/* Shared manual section presentation. No legacy section is selected by spacing rules. */
section[style*="--section-padding-desktop"] { padding-top: var(--section-padding-desktop) !important; padding-bottom: var(--section-padding-desktop) !important; }
@media (max-width: 768px) {
    section[style*="--section-padding-desktop"] { padding-top: var(--section-padding-mobile) !important; padding-bottom: var(--section-padding-mobile) !important; }
}
section[style*="--section-surface-active"] { background-color: var(--block-bg, var(--site-accent)); color: var(--block-text-color, var(--section-accent-contrast, var(--site-accent-contrast))); }
section[style*="--section-surface-active"] :is(.section-title, h2) { color: var(--block-section-heading-color, var(--block-heading-color, var(--section-accent-contrast, var(--site-accent-contrast)))); }
section[style*="--section-surface-active"] :is(.feature-card, .admin-features-card, .faq-item, .admin-faq-item, .service-card, .admin-services-card, .steps-item, .admin-steps-item, .lead-form-box, .admin-lead-form-box, .contacts-card, .admin-contacts-card) {
    background-color: var(--block-card-background-color, #FFFFFF);
    color: var(--section-card-text, #111827);
    --block-text-color: var(--section-card-text, #111827);
    --block-item-heading-color: var(--section-card-heading, #111827);
    --block-section-heading-color: var(--section-card-heading, #111827);
}
section[style*="--section-surface-active"].features-layout-list :is(.feature-card, .admin-features-card) { background: transparent; --block-text-color: var(--section-body-text, var(--section-accent-contrast, var(--site-accent-contrast))); }
section[style*="--section-surface-active"] a:not([class*="button"]):not(.btn) { color: var(--block-link-color, inherit); }
section[style*="--section-surface-active"] :is(p, li, .text-block__text, .feature-card__text) { color: var(--block-text-color, inherit); }
section[style*="--section-surface-active"] :is(a, button, input, textarea, select):focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }

/* Explicit light card surfaces on dark/accent sections keep their own text palette. */
section[style*="--section-surface-active"] :is(.service-card__title, .steps-item__title) { color: var(--block-item-heading-color, inherit); }
section[style*="--section-surface-active"] .lead-form-box :is(label, .section-title) { color: var(--section-card-heading, #111827); }
section[style*="--section-surface-active"] .site-button { background-color: var(--block-button-background-color, var(--block-button-color, #111827)); color: var(--block-button-text-color, #FFFFFF); }

/* Only explicit custom card surfaces receive a derived fallback. Explicit text still wins. */
section[style*="--section-card-text"] :is(.service-card, .admin-services-card, .faq-item, .admin-faq-item, .lead-form-box, .team-card, .testimonial-card) {
    --block-text-color: var(--section-card-text, #111827);
    --block-item-heading-color: var(--section-card-heading, #111827);
    --block-section-heading-color: var(--section-card-heading, #111827);
}
section[style*="--section-card-text"] .lead-form-box :is(.section-title, label) { color: var(--section-card-heading, #111827); }

section[style*="--section-surface-active"]:is(.contacts-style-card, .admin-contacts-style-card) :is(.contacts-list, .admin-contacts-list) {
    --block-text-color: var(--section-card-text, #111827);
    --block-link-color: var(--section-card-link, #111827);
    color: var(--section-card-text, #111827);
}

/* A translucent white card lightens saturated accents enough to fail body contrast.
   Keep the frame, but use the actual accent surface in newly opted-in CTA sections. */
section[style*="--section-surface-active"].cta-style-card .cta-inner,
section[style*="--section-surface-active"].admin-cta-style-card .admin-cta-inner { background-color: transparent; }

/* Explicit heading alignment only; body copy and composition geometry remain independent. */
section[style*="--section-heading-align"] :is(h1,h2) { text-align:var(--section-heading-align) !important; }

/* Explicit opt-in heading-group gap: subtitle styles are deliberately unchanged. */
section[style*="--section-heading-gap"]:has(h2) [data-heading-content] { padding-top:var(--section-heading-gap)!important; }
@media(max-width:768px){section[style*="--section-heading-gap"]:has(h2) [data-heading-content]{padding-top:var(--section-heading-gap-mobile)!important;}}
.section-thematic-icon { display:inline-flex; width:64px;height:64px;flex:0 0 64px;align-items:center;justify-content:center;color:inherit;margin-bottom:20px; }
.section-thematic-icon svg {width:52px;height:52px;max-width:100%;}
:is(.service-row__content,.admin-services-row__content)>.section-thematic-icon{float:left;margin-right:20px;}
@media(max-width:600px){.section-thematic-icon{width:52px;height:52px;flex-basis:52px}.section-thematic-icon svg{width:44px;height:44px}}

/* Keep the compact card dash visible below an enabled icon. */
.features-layout-compact :is(.feature-card,.admin-features-card):has(.section-thematic-icon)::before{display:block}

/* Keep the feature accent dash between icon and copy, in both editor and public render. */
:is(.feature-card,.admin-features-card):has(>.section-thematic-icon)>.section-thematic-icon{order:-1}

:is(.features-bg-dark,.features-bg-navy,.admin-features-bg-dark,.admin-features-bg-navy) :is(.feature-card,.admin-features-card){color:var(--block-text-color,#d1d5db)}

/* White feature copy keeps its decorative lines white in editor and public. */
[data-feature-white-lines] :is(.feature-card,.admin-features-card)::before{background:#FFFFFF;}
