/* DeLuca: one spacing scale across the existing site. No changes to brand or content. */
body {
    --dl-space-tiny: 8px;
    --dl-space-small: 12px;
    --dl-space-item: 16px;
    --dl-space-block: 24px;
    --dl-space-group: 24px;
    --dl-space-section: 40px;
}

/* Page frame, navigation and footer. */
body #main-content { padding-block: var(--dl-space-section); }
body #featured-title .featured-title-inner-wrap { min-height: 0; padding-block: var(--dl-space-block); }
body #footer { padding-block: var(--dl-space-section) var(--dl-space-block); }
body #bottom { padding-block: var(--dl-space-item); }
body #sidebar .widget { margin-top: var(--dl-space-group); }
body #sidebar .widget:first-child { margin-top: 0; }
body #footer-widgets .widget { margin-block: 0 var(--dl-space-block); }
body #footer-widgets .widget:last-child { margin-bottom: 0; }
body #sidebar .widget-title,
body #footer-widgets .widget-title { margin-bottom: var(--dl-space-item); }
@media (min-width: 992px) {
    body #site-header .site-navigation-wrap #main-nav > ul > li { padding-inline: 12px; }
    body #site-header #site-header-inner { padding-block: 20px; }
}
@media (min-width: 992px) and (max-width: 1199px) {
    body #site-header .site-navigation-wrap #main-nav > ul > li { padding-inline: 8px; }
    body #site-header .site-navigation-wrap #main-nav > ul > li > a { letter-spacing: .4px; }
}
@media (min-width: 992px) and (max-width: 1099px) {
    body #site-header .site-navigation-wrap #main-nav > ul > li { padding-inline: 4px; }
}

/* Builder rows use one gap, independent of their old inline padding and spacers. */
body .dl-layout-row {
    padding-block: var(--dl-space-section) 0 !important;
    margin-block: 0 !important;
}
body .dl-layout-row.dl-row-grid { padding-top: var(--dl-space-block) !important; }
body .dl-layout-row.dl-row-hero { padding-block: 0 !important; }
body .dl-layout-row.dl-row-cta {
    padding-block: 0 !important;
    margin-top: var(--dl-space-section) !important;
}
body .dl-layout-row.dl-row-empty,
body .dl-layout-row .dl-empty-column,
body .dl-layout-row .vc_empty_space,
body .dl-layout-row .dl-spacer-only { display: none !important; }
body #main-content .wpb-content-wrapper > .dl-layout-row:first-of-type,
body.deluca-catalog #site-content .page-description > .dl-layout-row:first-of-type {
    padding-top: 0 !important;
}
body .dl-layout-row.dl-row-surface:not(:has(+ .dl-row-surface)) {
    padding-bottom: var(--dl-space-section) !important;
}
/* The wrapper supplies one footer gap, including after hidden responsive rows. */
body .wpb-content-wrapper:has(> .dl-layout-row):not(:has(> .dl-row-cta:last-child)):not(:has(> .dl-row-hero:last-child)) {
    padding-bottom: var(--dl-space-section);
}
body #main-content .wpb-content-wrapper { padding-bottom: 0 !important; }
body .dl-layout-row > .container > .row,
body .dl-layout-row > .row {
    display: flex;
    flex-wrap: wrap;
    row-gap: var(--dl-space-block);
    margin-inline: calc(var(--dl-space-block) / -2);
}
body .dl-layout-row > .container > .row::before,
body .dl-layout-row > .container > .row::after,
body .dl-layout-row > .row::before,
body .dl-layout-row > .row::after { display: none; }
body .dl-layout-row > .container > .row > .wpb_column,
body .dl-layout-row > .row > .wpb_column { margin-block: 0 !important; }
body .dl-layout-row > .container > .row > .wpb_column > .vc_column-inner,
body .dl-layout-row > .row > .wpb_column > .vc_column-inner {
    padding-inline: calc(var(--dl-space-block) / 2);
}
body .dl-layout-row .vc_column-inner > .wpb_wrapper > * { margin-block: 0 !important; }
body .dl-layout-row .vc_column-inner > .wpb_wrapper > :not(.vc_empty_space):not(.dl-spacer-only) ~ :not(.vc_empty_space):not(.dl-spacer-only) {
    margin-top: var(--dl-space-block) !important;
}
body .dl-layout-row .wpb_text_column .wpb_wrapper > :last-child { margin-bottom: 0; }
@media (min-width: 1200px) { body .dl-row-hidden-lg { display: none !important; } }
@media (min-width: 992px) and (max-width: 1199px) { body .dl-row-hidden-md { display: none !important; } }
@media (min-width: 768px) and (max-width: 991px) { body .dl-row-hidden-sm { display: none !important; } }
@media (max-width: 767px) { body .dl-row-hidden-xs { display: none !important; } }

/* Repeated content components. Leave typography and image proportions intact. */
body .wprt-headings .heading:empty { display: none; }
body .wprt-headings.style-1 .sub-heading { margin-top: var(--dl-space-small); }
body .wprt-headings .heading:empty + .sub-heading { margin-top: 0; }
body .wprt-headings .sub-heading p { margin-bottom: var(--dl-space-item); }
body .wpb_text_column p { margin-bottom: var(--dl-space-item); }
body .wpb_text_column p:last-child { margin-bottom: 0; }
body .wprt-image-box .item .text-wrap { padding-top: var(--dl-space-item); }
body .wprt-image-box.style-1 .item .title { margin-bottom: var(--dl-space-tiny); }
body .wprt-image-box .wprt-button { margin-top: var(--dl-space-small); }
body .wprt-icon-box.icon-top .heading { margin-top: var(--dl-space-item); }
body .wprt-icon-box .desc p:last-child { margin-bottom: 0; }
body .wprt-icon-box .elm-btn .simple-link { margin-top: var(--dl-space-small); }
body .wprt-icon-box .elm-btn .wprt-button { margin-top: var(--dl-space-item); }
body .wprt-content-box:is(.style-2,.style-3,.style-4,.style-6),
body .wprt-adv-image .inner { padding: var(--dl-space-block); }
body .wprt-content-box > .vc_column-inner { margin: var(--dl-space-block); }
body .wprt-action-box { padding-block: var(--dl-space-item); }
body .wprt-action-box.has-padding { padding: var(--dl-space-block); }
body .wprt-team .text-wrap,
body .wprt-team.has-shadow .text-wrap { padding: var(--dl-space-item); }
body .wprt-team .position { margin-bottom: 0; }
body .has-bullets .owl-theme .owl-dots { padding-top: var(--dl-space-item); }

/* Form panels and related fields. Keep usable control sizes and avoid double margins. */

body.page-id-300 .booking-page-panel,
body.page-id-300 .wprt-appointment-form,
body .wprt-appointment-form { padding: var(--dl-space-block); }
body.page-id-300 .booking-page-panel + .booking-page-panel { margin-top: var(--dl-space-block); }
body.page-id-300 .booking-step { gap: var(--dl-space-item); margin-top: var(--dl-space-item); padding-top: var(--dl-space-item); }
body.page-id-300 .booking-step:first-of-type { margin-top: var(--dl-space-item); }
body .wpcf7 form p { margin-bottom: var(--dl-space-small); }
body .wpcf7 .wprt-contact-form p { margin-bottom: 0; }
body .wpcf7 :is(input[type="text"],input[type="email"],input[type="tel"],input[type="date"],select,textarea),
body.page-id-300 .wprt-appointment-form :is(input[type="text"],input[type="email"],input[type="tel"],input[type="date"],select,textarea) {
    margin-bottom: var(--dl-space-small);
    padding: var(--dl-space-tiny) var(--dl-space-small);
    min-height: 48px;
}
body .wprt-contact-form textarea.wpcf7-textarea { height: 160px; min-height: 160px; }
body.page-id-300 .wprt-appointment-form textarea { min-height: 140px; }
body.page-id-300 .wprt-appointment-form .wpcf7-submit { min-height: 48px; }
body.page-id-300 .wprt-appointment-form .wrap-submit { margin-top: var(--dl-space-small); }

/* WooCommerce: retain catalog behavior and align its spacing with the rest of the site. */
body.deluca-product-cards { --dl-gap: 16px; }
body.deluca-catalog #site-content .page-description > p:empty { display: none; }

body.deluca-catalog #site-content .woo_vpf_filter_title { margin-bottom: var(--dl-space-small); }
body.deluca-catalog #site-content .widget-woo-vpf-filter { margin-bottom: var(--dl-space-block); }
body.deluca-catalog #site-content .widget-woo-vpf-filter form { gap: var(--dl-space-tiny); }
body.deluca-product-cards #site-content :is(.content-woocommerce, section.related.products, section.up-sells.products) > ul.products {
    padding-top: var(--dl-space-item);
    margin-bottom: var(--dl-space-group);
}
body.deluca-product-cards #site-content ul.products > li.product { padding: var(--dl-space-small); }
body.deluca-product-cards #site-content ul.products > li.product .product-info { padding-top: var(--dl-space-small); }
body.deluca-product-cards #site-content ul.products > li.product .product-info > .price { margin-bottom: var(--dl-space-small); }
body.woocommerce-page .woo-single-post-class .summary .cart,
body.woocommerce-page .woo-single-post-class .summary .product_meta { margin-top: var(--dl-space-block); }
body.woocommerce-page .woo-single-post-class .woocommerce-tabs .panel { padding-block: var(--dl-space-block) var(--dl-space-item); }
body.woocommerce-page .woo-single-post-class .related.products { padding-top: var(--dl-space-block); }
body.woocommerce-page .cart_totals { margin-top: var(--dl-space-block); }
body.woocommerce-page form .form-row { margin-bottom: var(--dl-space-small); }

@media (max-width: 767px) {
    body { --dl-space-section: 24px; --dl-space-group: 24px; --dl-space-block: 16px; }
    body #featured-title .featured-title-inner-wrap { padding-block: var(--dl-space-item); }
    body #footer { padding-block: var(--dl-space-group); }
    body #sidebar { margin-top: var(--dl-space-group); }
    body #footer-widgets .widget { margin-bottom: var(--dl-space-block); }
    /* Columns stack on phones: use one clear gap between siblings. */

    body .wprt-spacer[data-desktop="0"] { height: 0 !important; }
    body .wprt-action-box .button-wrap { margin-top: var(--dl-space-small); }
    body.deluca-product-cards #site-content ul.products > li.product { padding: var(--dl-space-item); }
}

/* Quote wizard: the theme's generic button overflow clips Forminator step labels. */
body.page-id-997 #forminator-module-1308 .forminator-pagination-steps {
    margin-block: 0 var(--dl-space-block, 24px);
}
body.page-id-997 #forminator-module-1308 .forminator-pagination-steps .forminator-step {
    overflow: visible;
}
@media (min-width: 783px) {
    body.page-id-997 #forminator-module-1308:not(.forminator-size--small) .forminator-pagination-steps .forminator-step {
        width: auto;
        min-width: 88px;
        min-height: 44px;
        justify-content: flex-end;
    }
    body.page-id-997 #forminator-module-1308:not(.forminator-size--small) .forminator-pagination-steps .forminator-step-label {
        white-space: nowrap;
    }
}

/* The wizard participates in the row spacing instead of adding an outer margin. */
body.page-id-997 #forminator-module-1308 { margin-block: 0; }
