/* WordPress/Contact Form 7 integration. Approved static preview remains untouched. */
body { --wp--style--block-gap: 0; }
/* Mobile disclosure backdrop sits above the contact bar (90), below header (100). */
.mobile-menu-backdrop { display: none; }
.site-nav__mobile-actions .button--primary {
    background: var(--color-brand-dark);
    color: var(--color-white);
}
.site-nav__mobile-actions .button--primary:hover,
.site-nav__mobile-actions .button--primary:active {
    background: var(--color-brand-text);
    color: var(--color-white);
}
@media (max-width: 1119.98px) {
    .js .mobile-menu-backdrop {
        display: block;
        position: fixed;
        z-index: 99;
        inset: 0;
        background: rgba(27, 39, 45, .18);
        -webkit-backdrop-filter: blur(4px);
        backdrop-filter: blur(4px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        touch-action: none;
        transition: opacity 160ms ease-out, visibility 0s linear 160ms;
    }
    .js .mobile-menu-backdrop.is-visible {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transition: opacity 220ms ease-out, visibility 0s;
    }
    .js .site-nav {
        max-height: calc(100dvh - var(--aria-menu-top, var(--header-height)) - 1rem - env(safe-area-inset-bottom));
    }
}
@media (prefers-reduced-motion: reduce) {
    .js .mobile-menu-backdrop,
    .js .mobile-menu-backdrop.is-visible { transition: none; }
}
@media print { .js .mobile-menu-backdrop { display: none; } }
/* Stable clipping layer: the animated figure never owns the outside silhouette. */
.hero-stage { --hero-radius: 18px; border-radius: var(--hero-radius); clip-path: inset(0 round var(--hero-radius)); }
.hero-visual-wrap { z-index: 0; overflow: hidden; border-radius: inherit; isolation: isolate; }
.hero-visual { z-index: auto; }
.hero-stage::after { z-index: 1; border-radius: inherit; }
.hero-grid { z-index: 2; }
.process-note { max-width: 81ch; }
@media (min-width: 700px) { .hero-stage { --hero-radius: 24px; } }
@media (min-width: 860px) { .cost-grid > .factor-list { align-self: center; } }
.admin-bar .site-header { top: 32px; }
.admin-bar { --aria-admin-height: 32px; }
html:has(body.admin-bar) { scroll-padding-top: calc(var(--header-height) + 56px); }
.contact-grid > .wpcf7 { min-width: 0; width: 100%; }
.contact-form { width: 100%; min-width: 0; overflow-wrap: anywhere; }
.contact-form .form-heading { min-width: 0; }
.contact-form .privacy-field label { min-width: 0; }
.contact-form .form-grid, .contact-form .contact-choice-grid, .contact-form .form-grid--two { grid-template-columns: minmax(0, 1fr); }
.contact-form .form-field, .contact-form .form-fieldset, .contact-form .wpcf7-form-control-wrap { min-width: 0; }
.contact-form input, .contact-form textarea, .contact-form select { max-width: 100%; min-width: 0; }
.contact-form .wpcf7-form-control-wrap { display: block; width: 100%; }
.contact-form .wpcf7-list-item { margin: 0; }
.contact-form .privacy-field .wpcf7-list-item label { display: flex; align-items: flex-start; gap: .8rem; font-weight: 400; }
.contact-form .privacy-field { display: block; }
.contact-form input[type="checkbox"] { width: 22px; min-width: 22px; height: 22px; margin-top: .2rem; }
.contact-form .wpcf7-list-item-label { min-width: 0; }
.contact-form .wpcf7-not-valid-tip { display: block; margin-top: .4rem; font-size: .9rem; color: #b42318; }
.contact-form .wpcf7-response-output { margin: 1rem 0 0; padding: 1rem; border-radius: 8px; }
.contact-form.sent .wpcf7-response-output { border-color: #356115; }
.aria-honeypot { display: none !important; }
.legal-page { max-width: 800px; width: calc(100% - 2.5rem); margin: auto; padding-block: 3rem 5rem; }
.legal-page h1 { margin-bottom: 2rem; }
.legal-page h2 { margin-block: 2rem .8rem; font-size: clamp(1.35rem, 3vw, 1.8rem); }
.legal-page h3 { margin-block: 1.5rem .6rem; font-size: 1.12rem; line-height: 1.4; }
.legal-page { overflow-wrap: anywhere; }
.legal-page p { margin-block: 1rem; }
.legal-page ul { padding-left: 1.3rem; }
.legal-page li + li { margin-top: .6rem; }
.legal-page .draft-note { padding: 1.5rem; background: #e8f0d6; border-left: 4px solid #5d7f22; border-radius: 0 12px 12px 0; }
.legal-page a { display: inline-block; padding-block: .5rem; color: #4f6e1d; }
.legal-page .contact-links { display: grid; justify-items: start; }
.legal-page .sources { display: flex; flex-wrap: wrap; gap: .5rem 1rem; }
@media (min-width: 45rem) { .contact-form .contact-choice-grid, .contact-form .form-grid--two { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
