/*
Theme Name: NH Care Center v415
Theme URI: https://nhcarecenter.com
Author: NH Care Center, LLC
Description: Official website theme for NH Care Center, LLC — a licensed New Hampshire home health care provider offering personal care, companionship, and skilled nursing services. Editorial-warm design with structured data, conversion-focused layout, and full Customizer control.
Version: 4.4.17
License: GNU General Public License v2 or later
Text Domain: nh-care
Tags: custom-logo, custom-menu, featured-images, theme-options, accessibility-ready
Requires at least: 5.0
Requires PHP: 7.4
*/

/* ============================================================
   DEFENSIVE LAYOUT GUARDS (v4.0.2)
   These rules use !important to bulletproof critical layout
   regardless of cache state or theme-mod content drift.
   ============================================================ */

/* Icons: never balloon. Inline width/height attrs handle no-CSS state;
   these rules constrain when icons land in a flex/grid item. */
.nh-icon{
    width:24px !important;
    height:24px !important;
    flex-shrink:0 !important;
    display:inline-block !important;
    vertical-align:middle !important;
    fill:none;stroke:currentColor;
    stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;
}
/* Default icon size by context (specific contexts override below) */
.feature-icon .nh-icon,.service-icon .nh-icon,.process-icon .nh-icon,
.contact-card-icon .nh-icon,.cfd-item .nh-icon,.hero-stat-icon .nh-icon{
    width:26px !important;height:26px !important;
}
.trust-item .nh-icon,.job-meta-item .nh-icon,.area-list-item .nh-icon,
.faq-toggle .nh-icon,.btn-primary .nh-icon,.btn-secondary .nh-icon,
.btn-cta .nh-icon,.header-cta .nh-icon{
    width:18px !important;height:18px !important;
}
.service-flip-btn .nh-icon,.mcta-call .nh-icon,.mcta-contact .nh-icon,
.mobile-cta-inner .nh-icon{
    width:14px !important;height:14px !important;
}
.section-eyebrow .nh-icon,.breadcrumb .nh-icon,.faq-search .nh-icon{
    width:16px !important;height:16px !important;
}

/* Trust strip: force horizontal flex layout */
.trust-strip-inner{
    display:flex !important;
    flex-wrap:wrap !important;
    align-items:center !important;
    justify-content:center !important;
    gap:24px 40px !important;
}
.trust-item{
    display:inline-flex !important;
    align-items:center !important;
    gap:10px !important;
}

/* Stats grid: force 4-col grid (responsive below) */
.stats-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:32px !important;
}
.stat-item{text-align:center}
.stat-number{
    font-family:Newsreader,Georgia,serif;
    font-size:clamp(2.5rem,5vw,3.75rem) !important;
    font-weight:600;line-height:1;
    color:#1f5765;letter-spacing:-.02em;
}
.stat-suffix{font-size:.6em;opacity:.7;margin-left:.15em}
.stat-label{
    margin-top:10px;font-size:.9375rem;
    color:#465c63;line-height:1.4;
}
@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:480px){.stats-grid{grid-template-columns:1fr !important;gap:20px !important}}

/* Process grid: force 4-col layout */
.process-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:24px !important;
}
@media(max-width:900px){.process-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:600px){.process-grid{grid-template-columns:1fr !important}}

/* Service cards: hide back face by default. Show only when flipped.
   This avoids fragile 3D transforms that break when CSS partially loads. */
.service-card{position:relative}
.service-card-inner{
    position:relative !important;
    transform:none !important;
    transform-style:flat !important;
    min-height:auto !important;
}
.service-card-back{
    display:none !important;
    position:static !important;
    transform:none !important;
    backface-visibility:visible !important;
}
.service-card.is-flipped .service-card-front{display:none !important}
.service-card.is-flipped .service-card-back{
    display:flex !important;flex-direction:column !important;
}

/* Mobile CTA bar: hidden on desktop, visible on mobile only */
.mobile-cta-bar{display:none !important}
@media(max-width:768px){
    .mobile-cta-bar{display:block !important}
    body.has-mobile-cta{padding-bottom:64px !important}
}

/* Features grid: force 4-col layout */
.features-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:24px !important;
}
@media(max-width:1000px){.features-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:600px){.features-grid{grid-template-columns:1fr !important}}

/* Services grid: force 4-col layout */
.services-grid{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:24px !important;
}
@media(max-width:1000px){.services-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media(max-width:600px){.services-grid{grid-template-columns:1fr !important}}

/* Booking overlay icon */
.booking-close .nh-icon{width:18px !important;height:18px !important}

/* Hero layout safety net */
.hero-grid{
    display:grid !important;
    grid-template-columns:1.15fr 1fr !important;
    gap:64px !important;
    align-items:center !important;
}
@media(max-width:900px){
    .hero-grid{grid-template-columns:1fr !important;gap:32px !important}
    /* Hero content comes FIRST on mobile (main pitch + CTAs visible above the fold).
       Visual card sits below as supporting content. */
    .hero-content{order:1 !important}
    .hero-visual{order:2 !important;max-height:none !important;overflow:visible !important}
}
.hero-meta{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:16px 28px !important;
    margin-top:32px !important;
}
.hero-meta-item{
    display:inline-flex !important;
    align-items:center !important;
    gap:8px !important;
    font-size:.9375rem !important;
    color:#465c63 !important;
}
.hero-meta-item .nh-icon{
    width:18px !important;height:18px !important;
    color:#1f5765 !important;
}
.hero-buttons{
    display:flex !important;
    flex-wrap:wrap !important;
    gap:14px !important;
    margin-top:8px !important;
}
.hero-visual{
    position:relative !important;
}
.hero-visual-placeholder{
    width:100% !important;
    aspect-ratio:1 !important;
    max-height:480px !important;
    background:linear-gradient(135deg,#e8f1f3 0%,#faf6ee 100%) !important;
    border-radius:24px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    overflow:hidden !important;
}
.hero-visual-placeholder .nh-icon{
    width:96px !important;height:96px !important;
    color:#1f5765 !important;
    opacity:.25 !important;
}
.hero-stat-card{
    position:absolute !important;
    bottom:20px !important;left:20px !important;
    background:#fff !important;
    padding:16px 20px !important;
    border-radius:16px !important;
    box-shadow:0 12px 32px rgba(15,36,42,.18) !important;
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    max-width:calc(100% - 40px) !important;
}
.hero-stat-icon{
    width:40px !important;height:40px !important;
    flex-shrink:0 !important;
    background:#1f5765 !important;color:#fff !important;
    border-radius:10px !important;
    display:flex !important;align-items:center !important;justify-content:center !important;
}
.hero-stat-icon .nh-icon{
    width:20px !important;height:20px !important;
    color:#fff !important;
}
.hero-stat-text{display:flex !important;flex-direction:column !important;line-height:1.3 !important}
.hero-stat-text strong{font-weight:600 !important;color:#0f2429 !important;font-size:.9375rem !important}
.hero-stat-text span{font-size:.8125rem !important;color:#465c63 !important}

/* Hero visual: editable content card (when no image uploaded) */
.hero-visual.has-content{
    background:linear-gradient(160deg,#e8f1f3 0%,#faf6ee 100%) !important;
    border-radius:24px !important;
    overflow:hidden !important;
    min-height:480px !important;
    display:flex !important;
    flex-direction:column !important;
    justify-content:center !important;
    box-shadow:0 20px 50px -20px rgba(15,36,42,.15) !important;
}
.hero-visual-content{
    padding:48px 40px !important;
    display:flex !important;
    flex-direction:column !important;
    gap:14px !important;
    max-width:100% !important;
}
.hero-visual-eyebrow{
    display:inline-flex !important;
    align-self:flex-start !important;
    background:rgba(31,87,101,.1) !important;
    color:#1f5765 !important;
    padding:6px 14px !important;
    border-radius:999px !important;
    font-size:.75rem !important;
    font-weight:600 !important;
    letter-spacing:.06em !important;
    text-transform:uppercase !important;
}
.hero-visual-heading{
    font-family:Newsreader,Georgia,serif !important;
    font-size:clamp(1.625rem,2.5vw,2.125rem) !important;
    font-weight:600 !important;
    color:#0f2429 !important;
    line-height:1.15 !important;
    letter-spacing:-.01em !important;
    margin:0 !important;
}
.hero-visual-body{
    color:#465c63 !important;
    font-size:1rem !important;
    line-height:1.6 !important;
}
.hero-visual-body p{margin:0 0 10px !important}
.hero-visual-body p:last-child{margin-bottom:0 !important}
.hero-visual-cta{align-self:flex-start !important;margin-top:8px !important}

/* Subtle heart watermark behind hero visual content - perfectly centered */
.hero-visual.has-content{position:relative !important}
.hero-visual-watermark{
    position:absolute !important;
    top:50% !important;
    left:50% !important;
    transform:translate(-50%,-50%) !important;
    color:#1f5765 !important;
    opacity:.07 !important;
    pointer-events:none !important;
    z-index:0 !important;
    line-height:0 !important;
}
.hero-visual-watermark .nh-icon{
    width:340px !important;height:340px !important;
    stroke-width:1 !important;
}
.hero-visual-content{position:relative !important;z-index:1 !important}
@media(max-width:900px){
    .hero-visual-watermark .nh-icon{width:240px !important;height:240px !important}
}
@media(max-width:600px){
    .hero-visual-watermark{display:none !important}
}
@media(max-width:900px){
    .hero-visual.has-content{min-height:auto !important;max-height:none !important}
    .hero-visual-content{padding:36px 28px !important}
}

/* Stats section: light text on dark background for the optional title */
.stats-section{background:linear-gradient(160deg,#1a4953 0%,#1f5765 100%) !important;color:#fff !important;padding:80px 0 !important}
.stats-header{margin-bottom:56px !important;color:#fff !important;text-align:center !important}
.stats-header .section-eyebrow{color:rgba(255,255,255,.7) !important}
.stats-header .section-title{color:#fff !important}
.stats-header .section-subtitle{color:rgba(255,255,255,.85) !important;max-width:680px !important;margin:14px auto 0 !important}
.stats-section .stat-number{color:#faf6ee !important}
.stats-section .stat-suffix{color:#c89c4a !important}
.stats-section .stat-label{color:rgba(255,255,255,.85) !important;text-transform:uppercase !important;letter-spacing:.08em !important;font-size:.75rem !important;margin-top:14px !important;font-weight:600 !important}

/* Footer social media icons */
.footer-social{
    list-style:none !important;
    padding:0 !important;
    margin:18px 0 0 !important;
    display:flex !important;
    gap:10px !important;
    flex-wrap:wrap !important;
}

/* ============================================================
   COMPACT FOOTER + HEADER SOCIAL (v4.1.8)
   ============================================================ */

/* Header social icons — hidden on desktop, shown on mobile near nav */
.header-social{
    list-style:none !important;
    padding:0 !important;
    margin:0 !important;
    display:none !important;
    gap:6px !important;
    align-items:center !important;
}
.header-social li{margin:0 !important}
.header-social a{
    width:32px !important;height:32px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:rgba(31,87,101,.08) !important;
    border-radius:50% !important;
    color:#1f5765 !important;
    transition:all .2s ease !important;
    text-decoration:none !important;
}
.header-social a:hover{background:#c89c4a !important;color:#fff !important}
.header-social .nh-icon{width:14px !important;height:14px !important;stroke-width:1.7 !important}

/* Tighter footer overall */
.site-footer{padding:40px 0 0 !important}
.footer-grid{
    padding-bottom:28px !important;
    gap:32px !important;
}
.footer-about p{margin:8px 0 12px !important;font-size:.875rem !important;line-height:1.55 !important}
.footer-brand{font-size:1.25rem !important;margin-bottom:6px !important}

@media(max-width:768px){
    /* Hide the desktop CTA button on mobile — the sticky bottom bar
       (Call us / Get in touch) already covers this. Frees space so the
       brand name displays fully without truncation. */
    .header-actions{display:none !important}

    /* Show social icons on mobile, positioned on the RIGHT side of header
       just before the hamburger menu. */
    .header-social{
        display:flex !important;
        order:4 !important;
        margin-left:auto !important;
        flex-shrink:0 !important;
        flex-wrap:nowrap !important;
    }
    .header-social a{
        width:30px !important;height:30px !important;
    }
    /* Push hamburger fully to the right (after social icons) */
    .menu-toggle{
        order:5 !important;
        margin-left:6px !important;
        flex-shrink:0 !important;
        padding:8px !important;
    }

    /* Branding gets the remaining room. With the CTA hidden, full brand
       name fits comfortably alongside logo + 2 social icons + hamburger.
       We DO NOT use max-width or text-overflow ellipsis — the brand should
       always render in full. */
    .site-branding{
        order:1 !important;
        flex:0 0 auto !important;
        min-width:0 !important;
    }
    .site-branding a,.site-branding .logo-with-text{
        gap:8px !important;
        flex-wrap:nowrap !important;
    }
    .site-branding .site-name-text,.site-branding .site-title{
        white-space:nowrap !important;
        overflow:visible !important;
        text-overflow:clip !important;
        font-size:1rem !important;
        max-width:none !important;
        flex-shrink:0 !important;
    }
    .site-branding .custom-logo{flex-shrink:0 !important;max-height:40px !important;width:auto !important}

    /* Tighten header inner gap on mobile so branding has more room */
    .header-inner{gap:8px !important;padding:0 14px !important}

    /* Compact footer on mobile */
    .site-footer{padding:24px 0 0 !important}
    .footer-grid{
        grid-template-columns:1fr !important;
        gap:20px !important;
        padding-bottom:18px !important;
    }

    /* Hide the entire about column on mobile (brand + about text + license badge) */
    .footer-about{display:none !important}

    /* Hide Quick Links column entirely on mobile (top nav already covers it) */
    .footer-col:nth-child(2){display:none !important}

    /* Hide footer social on mobile (now in header) */
    .footer-social{display:none !important}

    /* Compact contact column: smaller text, tighter spacing */
    .footer-col h4{
        font-size:.7rem !important;
        margin-bottom:8px !important;
        letter-spacing:.08em !important;
    }
    .footer-col ul{margin:0 !important;padding:0 !important;list-style:none !important}
    .footer-col ul li{
        margin:0 0 6px !important;
        font-size:.8125rem !important;
        line-height:1.4 !important;
    }
    .footer-col ul li a,.footer-col ul li{
        gap:8px !important;
    }
    .footer-col ul li svg,.footer-col ul li .nh-icon{
        width:13px !important;height:13px !important;
        flex-shrink:0 !important;
    }
    /* Hours column ultra compact */
    .footer-col:last-child ul li{font-size:.78rem !important}
}

/* Payment section: when right block is hidden, left content takes full width */
.payment-grid.payment-grid-single{
    grid-template-columns:1fr !important;
    max-width:780px !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

/* Header nav: keep each menu item on a single line — prevents "FAQ / Resources"
   from wrapping at the slash. */
.nav-menu li a{white-space:nowrap !important}

/* ============================================================
   OUR TEAM PAGE (v4.4.1)
   ============================================================ */
.team-hero{
    padding:48px 0 32px !important;
    background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%) !important;
}
.team-hero-content{max-width:780px;margin:0 auto;text-align:center}
.team-hero-content .section-badge{display:inline-flex;margin-bottom:16px}
.team-hero-content .section-title{
    font-size:clamp(2rem,3.6vw,2.875rem) !important;
    margin:0 0 16px !important;
    line-height:1.1 !important;
}
.team-hero-content .section-subtitle{
    max-width:680px;
    margin:0 auto 28px;
    font-size:1.0625rem;
    line-height:1.65;
}
.team-hero-cta{
    display:flex;
    gap:12px;
    justify-content:center;
    flex-wrap:wrap;
}

.team-section{padding:32px 0 64px !important;background:var(--c-bg) !important}
.team-group{margin-bottom:56px}
.team-group:last-child{margin-bottom:0}
.team-group-heading{
    font-family:var(--font-display) !important;
    font-size:.875rem !important;
    font-weight:600 !important;
    color:var(--c-muted) !important;
    text-transform:uppercase !important;
    letter-spacing:.1em !important;
    margin:0 0 24px !important;
    padding-bottom:14px !important;
    border-bottom:1px solid var(--c-border-soft);
    text-align:center;
}

/* Expanded leader cards — for primary leaders with full bios */
.team-grid{
    display:grid;
    gap:24px;
    margin-bottom:28px;
}
.team-grid:last-child{margin-bottom:0}
.team-grid--expanded{
    grid-template-columns:repeat(auto-fit, minmax(360px, 1fr));
}

/* Compact cards — for co-owners listed by name and role only */
.team-grid--compact{
    grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
    gap:16px;
}

.team-card{
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:16px;
    padding:28px;
    transition:all .25s ease;
    text-align:left;
}
.team-card:hover{
    border-color:var(--c-primary-200);
    box-shadow:0 14px 32px -16px rgba(15,36,42,.16);
    transform:translateY(-2px);
}
.team-card--compact{padding:20px;text-align:center}
.team-card--compact .team-card-photo{margin:0 auto 14px}

.team-card-photo{
    width:96px;
    height:96px;
    border-radius:50%;
    overflow:hidden;
    background:linear-gradient(135deg,var(--c-primary,#1f5765) 0%,var(--c-primary-700,#144a55) 100%);
    margin:0 0 18px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}
.team-card-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
.team-card-photo--placeholder .team-card-initials{
    color:#fff;
    font-family:var(--font-display);
    font-size:1.625rem;
    font-weight:500;
    letter-spacing:.02em;
}
.team-card--compact .team-card-photo{width:72px;height:72px}
.team-card--compact .team-card-initials{font-size:1.25rem}

.team-card-name{
    font-family:var(--font-display) !important;
    font-size:1.25rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 4px !important;
    line-height:1.25 !important;
}
.team-card--compact .team-card-name{font-size:1.0625rem !important}

.team-card-role{
    color:var(--c-primary) !important;
    font-size:.9375rem !important;
    font-weight:500 !important;
    margin:0 0 8px !important;
    line-height:1.45 !important;
}
.team-card--compact .team-card-role{font-size:.875rem !important;margin:0 !important}

.team-card-credentials{
    color:var(--c-muted) !important;
    font-size:.8125rem !important;
    margin:0 0 10px !important;
    line-height:1.45 !important;
    letter-spacing:.02em;
}

.team-card-bio{
    color:var(--c-body) !important;
    font-size:.9375rem !important;
    line-height:1.65 !important;
    margin:0 !important;
}

.team-card-contact{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--c-border-soft);
    display:flex;
    flex-direction:column;
    gap:8px;
}
.team-card-contact-item{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--c-primary) !important;
    font-size:.875rem;
    text-decoration:none;
    transition:color .15s ease;
}
.team-card-contact-item:hover{color:var(--c-primary-700,#144a55) !important}
.team-card-contact-item .nh-icon{width:14px !important;height:14px !important;flex-shrink:0}

/* Care team block */
.team-careteam{margin-top:48px}
.team-careteam-inner{
    background:linear-gradient(135deg,rgba(31,87,101,.04) 0%,rgba(200,156,74,.05) 100%);
    border:1px solid var(--c-border-soft);
    border-radius:16px;
    padding:32px 36px;
    text-align:left;
}
.team-careteam-inner h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.375rem,2.2vw,1.75rem) !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 14px !important;
    line-height:1.2 !important;
}
.team-careteam-inner > p{
    color:var(--c-body) !important;
    font-size:1rem !important;
    line-height:1.7 !important;
    margin:0 0 12px !important;
}
.team-careteam-cta-text{
    color:var(--c-slate) !important;
    font-weight:500 !important;
    margin:14px 0 18px !important;
    font-size:.9375rem !important;
}
.team-careteam-cta{margin-top:8px}

/* Visit block */
.team-visit{margin-top:32px}
.team-visit-inner{
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-left:4px solid var(--c-accent-500,#c89c4a);
    border-radius:12px;
    padding:28px 32px;
    display:grid;
    grid-template-columns:1fr auto;
    gap:24px;
    align-items:center;
}
.team-visit-content h2{
    font-family:var(--font-display) !important;
    font-size:1.25rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 6px !important;
    line-height:1.25 !important;
}
.team-visit-content p{
    margin:0 0 4px !important;
    color:var(--c-body) !important;
    font-size:.9375rem !important;
    line-height:1.5 !important;
}
.team-visit-address{color:var(--c-slate) !important}
.team-visit-meta{color:var(--c-muted) !important;font-size:.8125rem !important}
.team-visit-actions{
    display:flex;
    gap:10px;
    flex-shrink:0;
    flex-wrap:wrap;
}

@media(max-width:768px){
    .team-hero{padding:24px 0 20px !important}
    .team-section{padding:24px 0 48px !important}
    .team-group{margin-bottom:40px}
    .team-grid--expanded{grid-template-columns:1fr;gap:16px}
    .team-grid--compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}
    .team-card{padding:22px}
    .team-card--compact{padding:18px 14px}
    .team-careteam-inner{padding:24px 22px}
    .team-visit-inner{
        grid-template-columns:1fr;
        gap:18px;
        padding:22px;
    }
    .team-visit-actions{width:100%}
    .team-visit-actions .btn-primary,
    .team-visit-actions .btn-secondary{flex:1 1 auto;justify-content:center}
}

/* Discharge-planner / B2B referral line — subtle, professional, sits below the
   Payment Options closer. Catches B2B scanning without distracting B2C. */
.payment-referral-line{
    display:flex !important;
    align-items:flex-start !important;
    gap:10px !important;
    margin:24px auto 0 !important;
    max-width:760px !important;
    padding:14px 18px !important;
    background:rgba(31,87,101,.04);
    border-radius:10px;
    color:var(--c-body) !important;
    font-size:.875rem !important;
    line-height:1.5 !important;
}
.payment-referral-line > .nh-icon{
    width:16px !important;height:16px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;
    margin-top:2px;
}
.payment-referral-line > span{flex:1;min-width:0}
.payment-referral-line a{
    display:inline;
    color:var(--c-primary) !important;
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-color:rgba(31,87,101,.35);
    transition:text-decoration-color .15s ease;
}
.payment-referral-line a:hover{text-decoration-color:var(--c-primary)}
.payment-referral-line a .nh-icon{
    width:12px !important;height:12px !important;
    margin-left:2px;
    vertical-align:middle;
}
@media(max-width:600px){
    .payment-referral-line{
        padding:12px 14px !important;
        font-size:.8125rem !important;
    }
}

/* ============================================================
   PRIVACY / HIPAA TRUST SIGNAL — v4.4.10
   ============================================================ */
.privacy-section{
    background:linear-gradient(180deg,var(--c-bg-cream) 0%,#fff 100%);
    padding:80px 0;
}
.privacy-section .section-header{
    max-width:780px;
    margin:0 auto 40px;
    text-align:center;
}
.privacy-section .section-header .section-eyebrow{
    display:inline-block;
    margin-bottom:12px;
}
.privacy-section .section-header .section-subtitle{
    max-width:760px;
    margin:14px auto 0;
    line-height:1.7;
    font-size:1.0625rem;
}

.privacy-pillars{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:16px;
    margin-bottom:32px;
}
.privacy-pillar{
    display:flex;
    align-items:flex-start;
    gap:14px;
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:12px;
    padding:22px;
    transition:all .2s ease;
}
.privacy-pillar:hover{
    border-color:var(--c-primary-200);
    transform:translateY(-1px);
    box-shadow:0 8px 20px -12px rgba(15,36,42,.15);
}
.privacy-pillar-icon{
    width:40px;
    height:40px;
    border-radius:10px;
    background:var(--c-primary-50,#e8f1f4);
    color:var(--c-primary);
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}
.privacy-pillar-icon .nh-icon{width:20px !important;height:20px !important;stroke-width:2}
.privacy-pillar-body{flex:1;min-width:0}
.privacy-pillar-body h3{
    font-family:var(--font-display) !important;
    font-size:1.0625rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 6px !important;
    line-height:1.25 !important;
}
.privacy-pillar-body p{
    color:var(--c-body) !important;
    font-size:.9375rem !important;
    line-height:1.55 !important;
    margin:0 !important;
}
.privacy-cta{text-align:center}

@media(max-width:768px){
    .privacy-section{padding:48px 0}
    .privacy-pillars{grid-template-columns:1fr;gap:12px}
    .privacy-pillar{padding:18px}
}

/* ============================================================
   SERVICE AREAS — restructured for B2B specificity (v4.4.10)
   ============================================================ */
.areas-section{padding:80px 0;background:#fff}
.areas-section .section-header{
    max-width:780px;
    margin:0 auto 40px;
    text-align:center;
}
.areas-section .section-header .section-subtitle{max-width:760px;margin:14px auto 0;line-height:1.7}

.areas-tiers{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:24px;
    margin-bottom:32px;
}

.areas-tier{
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:14px;
    padding:24px 26px;
    transition:all .25s ease;
}
.areas-tier--primary{
    border-left:4px solid var(--c-primary,#1f5765);
}
.areas-tier--extended{
    border-left:4px solid var(--c-accent-500,#c89c4a);
}
.areas-tier:hover{
    box-shadow:0 10px 24px -14px rgba(15,36,42,.15);
}

.areas-tier-header{
    display:flex;
    align-items:flex-start;
    gap:12px;
    margin-bottom:16px;
    padding-bottom:14px;
    border-bottom:1px solid var(--c-border-soft);
}
.areas-tier-header > .nh-icon{
    width:18px !important;height:18px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;
    margin-top:2px;
}
.areas-tier--extended .areas-tier-header > .nh-icon{
    color:var(--c-accent-700,#a47a30) !important;
}
.areas-tier-header h3{
    font-family:var(--font-display) !important;
    font-size:1.125rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 4px !important;
    line-height:1.2 !important;
}
.areas-tier-header p{
    color:var(--c-body) !important;
    font-size:.875rem !important;
    line-height:1.55 !important;
    margin:0 !important;
}

.areas-county-list{
    list-style:none;
    padding:0;
    margin:0;
}
.areas-county-list li{
    padding:10px 0;
    border-bottom:1px solid var(--c-border-soft);
    display:flex;
    flex-direction:column;
    gap:3px;
}
.areas-county-list li:last-child{border-bottom:none}
.areas-county-list li strong{
    color:var(--c-slate);
    font-weight:600;
    font-size:.9375rem;
    font-family:var(--font-display);
}
.areas-county-list li span{
    color:var(--c-body);
    font-size:.875rem;
    line-height:1.5;
}

.areas-cta{
    display:flex;
    gap:12px;
    justify-content:center;
    flex-wrap:wrap;
    margin-top:8px;
}

@media(max-width:768px){
    .areas-section{padding:48px 0}
    .areas-tiers{grid-template-columns:1fr;gap:14px}
    .areas-tier{padding:20px}
    .areas-cta{flex-direction:column;align-items:stretch}
    .areas-cta .btn-primary,
    .areas-cta .btn-secondary{justify-content:center}
}

/* ============================================================
   PRIVATE PAY PAGE (v4.4.8)
   ============================================================ */
.pp-hero{padding:48px 0 32px !important;background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%) !important}
.pp-hero-content{max-width:880px;margin:0 auto}
.pp-hero-content .section-badge{display:inline-flex;margin-bottom:16px}
.pp-hero-content .section-title{
    font-size:clamp(1.875rem,3.4vw,2.625rem) !important;
    margin:0 0 18px !important;
    line-height:1.15 !important;
}
.pp-hero-content .section-subtitle{max-width:780px;font-size:1.0625rem;line-height:1.65;margin-bottom:28px}

.pp-section{background:var(--c-bg) !important;padding:48px 0 64px !important}
.pp-container{max-width:860px}
.pp-block{margin-bottom:48px}
.pp-block:last-child{margin-bottom:0}
.pp-block h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.5rem,2.3vw,1.875rem) !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 18px !important;
    line-height:1.2 !important;
}
.pp-block > p{
    color:var(--c-body) !important;
    font-size:1.0625rem !important;
    line-height:1.75 !important;
    margin:0 0 16px !important;
}
.pp-block .pp-note{
    font-size:.875rem !important;
    color:var(--c-muted) !important;
    padding-top:6px !important;
}
.pp-block .pp-note a{
    display:inline-flex;align-items:center;gap:6px;
    color:var(--c-primary) !important;
    text-decoration:underline;text-underline-offset:3px;
}
.pp-block .pp-note a .nh-icon{width:13px !important;height:13px !important}

.pp-services-list{list-style:none;padding:0;margin:18px 0 0}
.pp-services-list li{
    display:flex;align-items:flex-start;gap:12px;
    padding:10px 0;
    border-bottom:1px solid var(--c-border-soft);
}
.pp-services-list li:last-child{border-bottom:none}
.pp-services-list li > .nh-icon{
    width:18px !important;height:18px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;margin-top:3px;
}
.pp-services-list li > span{flex:1;font-size:.9375rem;line-height:1.55;color:var(--c-body)}
.pp-services-list strong{color:var(--c-slate);font-weight:600;margin-right:4px}

.pp-why-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:14px;
    margin-top:18px;
}
.pp-why-card{
    display:flex;gap:12px;align-items:flex-start;
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:12px;
    padding:18px;
    transition:all .2s ease;
}
.pp-why-card:hover{border-color:var(--c-primary-200);transform:translateY(-1px)}
.pp-why-card > .nh-icon{
    width:18px !important;height:18px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;margin-top:3px;
}
.pp-why-card h3{
    font-family:var(--font-display) !important;
    font-size:1rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 4px !important;
    line-height:1.25 !important;
}
.pp-why-card p{
    margin:0 !important;
    font-size:.875rem !important;
    line-height:1.55 !important;
    color:var(--c-body) !important;
}

.pp-ops-list{list-style:none;padding:0;margin:18px 0 0}
.pp-ops-list li{
    padding:14px 0;
    border-bottom:1px solid var(--c-border-soft);
}
.pp-ops-list li:last-child{border-bottom:none}
.pp-ops-list strong{
    display:block;
    font-family:var(--font-display);
    font-size:1rem;
    color:var(--c-slate);
    margin-bottom:4px;
    font-weight:600;
}
.pp-ops-list span{
    color:var(--c-body);
    font-size:.9375rem;
    line-height:1.6;
}

.pp-other-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(240px, 1fr));
    gap:14px;
    margin-top:18px;
}
.pp-other-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:12px;
    padding:18px 20px;
    text-decoration:none;
    transition:all .2s ease;
}
.pp-other-card:hover{
    border-color:var(--c-primary-200);
    transform:translateY(-1px);
    box-shadow:0 8px 20px -10px rgba(15,36,42,.15);
}
.pp-other-card h3{
    font-family:var(--font-display) !important;
    font-size:1rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 4px !important;
    line-height:1.3 !important;
}
.pp-other-card p{
    margin:0 !important;
    font-size:.8125rem !important;
    line-height:1.5 !important;
    color:var(--c-muted) !important;
}
.pp-other-card > .nh-icon{
    width:18px !important;height:18px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;
}

.pp-final-cta{
    background:var(--c-primary,#1f5765);
    color:#fff;
    padding:56px 0;
    text-align:center;
}
.pp-final-cta-inner{max-width:680px;margin:0 auto;padding:0 20px}
.pp-final-cta h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.75rem,2.6vw,2.25rem) !important;
    color:#fff !important;
    margin:0 0 14px !important;
    font-weight:500 !important;
}
.pp-final-cta p{
    color:rgba(255,255,255,.92) !important;
    font-size:1.0625rem !important;
    line-height:1.65 !important;
    margin:0 0 28px !important;
}
.pp-final-cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.pp-final-cta-actions .btn-primary{
    background:var(--c-accent-500,#c89c4a) !important;
    color:var(--c-primary-900,#0c3239) !important;
}
.pp-final-cta-actions .btn-primary:hover{
    background:var(--c-accent-400,#dab575) !important;
    color:var(--c-primary-900,#0c3239) !important;
}
.pp-final-cta-actions .btn-secondary{
    background:transparent !important;
    color:#fff !important;
    border:1.5px solid rgba(255,255,255,.4) !important;
}
.pp-final-cta-actions .btn-secondary:hover{
    background:rgba(255,255,255,.1) !important;
    border-color:#fff !important;
}

@media(max-width:768px){
    .pp-hero{padding:24px 0 20px !important}
    .pp-hero-content .section-title{font-size:1.625rem !important}
    .pp-section{padding:32px 0 48px !important}
    .pp-block{margin-bottom:36px}
    .pp-block > p{font-size:1rem !important}
    .pp-final-cta{padding:40px 0}
    .pp-final-cta-actions .btn-primary,
    .pp-final-cta-actions .btn-secondary{width:100%;justify-content:center}
}

/* ============================================================
   FOR HEALTHCARE PROFESSIONALS PAGE (v4.4.8)
   ============================================================ */
.hp-hero{padding:48px 0 32px !important;background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%) !important}
.hp-hero-content{max-width:880px;margin:0 auto}
.hp-hero-content .section-badge{display:inline-flex;margin-bottom:16px}
.hp-hero-content .section-title{
    font-size:clamp(1.875rem,3.4vw,2.625rem) !important;
    margin:0 0 18px !important;
    line-height:1.15 !important;
}
.hp-hero-content .section-subtitle{max-width:780px;font-size:1.0625rem;line-height:1.65;margin-bottom:28px}
.hp-hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:20px}

.hp-hero-sla{
    display:inline-flex !important;
    align-items:flex-start !important;
    gap:10px !important;
    background:rgba(31,87,101,.06) !important;
    border-left:3px solid var(--c-accent-500,#c89c4a) !important;
    padding:12px 18px !important;
    border-radius:8px !important;
    font-size:.9375rem !important;
    line-height:1.5 !important;
    color:var(--c-body) !important;
    margin:0 !important;
}
.hp-hero-sla .nh-icon{
    width:18px !important;height:18px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;margin-top:1px;
}
.hp-hero-sla strong{
    color:var(--c-slate);
    font-weight:600;
    margin-right:6px;
}
.hp-hero-sla span{color:var(--c-muted)}

.hp-section{background:var(--c-bg) !important;padding:48px 0 64px !important}
.hp-container{max-width:880px}
.hp-block{margin-bottom:48px}
.hp-block:last-child{margin-bottom:0}
.hp-block h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.5rem,2.3vw,1.875rem) !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 18px !important;
    line-height:1.2 !important;
}
.hp-block > p{
    color:var(--c-body) !important;
    font-size:1.0625rem !important;
    line-height:1.75 !important;
    margin:0 0 16px !important;
}
.hp-subhead{
    font-family:var(--font-display) !important;
    font-size:1.125rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:24px 0 12px !important;
    line-height:1.3 !important;
}

.hp-why-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));
    gap:14px;
    margin-top:18px;
}
.hp-why-card{
    display:flex;gap:12px;align-items:flex-start;
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:12px;
    padding:18px;
    transition:all .2s ease;
}
.hp-why-card:hover{border-color:var(--c-primary-200);transform:translateY(-1px)}
.hp-why-card > .nh-icon{
    width:18px !important;height:18px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;margin-top:3px;
}
.hp-why-card h3{
    font-family:var(--font-display) !important;
    font-size:1rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 4px !important;
    line-height:1.25 !important;
}
.hp-why-card p{
    margin:0 !important;
    font-size:.875rem !important;
    line-height:1.55 !important;
    color:var(--c-body) !important;
}

.hp-capabilities{
    list-style:none;
    padding:0;
    margin:0 0 16px;
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
    gap:6px 24px;
}
.hp-capabilities li{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:6px 0;
    font-size:.9375rem;
    line-height:1.5;
    color:var(--c-body);
}
.hp-capabilities li > .nh-icon{
    width:16px !important;height:16px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;margin-top:3px;
}

.hp-payers{
    list-style:none;
    padding:0;
    margin:0 0 16px;
}
.hp-payers li{
    padding:8px 0;
    border-bottom:1px solid var(--c-border-soft);
    font-size:.9375rem;
    line-height:1.55;
    color:var(--c-body);
}
.hp-payers li:last-child{border-bottom:none}
.hp-payers li strong{color:var(--c-slate);margin-right:4px}

.hp-payer-note{
    font-size:.875rem !important;
    color:var(--c-muted) !important;
    background:rgba(200,156,74,.08);
    padding:12px 16px;
    border-radius:8px;
    border-left:3px solid var(--c-accent-500,#c89c4a);
    margin:12px 0 0 !important;
}
.hp-payer-note strong{color:var(--c-slate)}

.hp-block-refer{
    background:linear-gradient(135deg,rgba(31,87,101,.04) 0%,rgba(200,156,74,.05) 100%);
    border-radius:14px;
    padding:32px 36px !important;
    margin-bottom:48px !important;
}
.hp-block-refer h2{margin-top:0 !important}
.hp-refer-options{
    display:flex;
    flex-direction:column;
    gap:16px;
    margin-top:20px;
}
.hp-refer-card{
    display:flex;
    gap:16px;
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:12px;
    padding:20px 22px;
}
.hp-refer-num{
    width:32px;height:32px;
    border-radius:50%;
    background:var(--c-primary);
    color:#fff;
    font-weight:700;
    font-size:.9375rem;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.hp-refer-card h3{
    font-family:var(--font-display) !important;
    font-size:1.0625rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:4px 0 8px !important;
    line-height:1.25 !important;
}
.hp-refer-card p{margin:0 0 8px !important;font-size:.9375rem !important;line-height:1.5 !important}
.hp-refer-action a{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:var(--c-primary) !important;
    font-size:1.0625rem;
    text-decoration:none;
}
.hp-refer-action a:hover{text-decoration:underline}
.hp-refer-action .nh-icon{width:16px !important;height:16px !important}
.hp-refer-meta{
    color:var(--c-body) !important;
    font-size:.875rem !important;
}
.hp-refer-warning{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin-top:10px !important;
    padding:10px 12px;
    background:rgba(200,156,74,.1);
    border-radius:8px;
    font-size:.8125rem !important;
    line-height:1.5 !important;
    color:var(--c-body) !important;
}
.hp-refer-warning .nh-icon{
    width:15px !important;height:15px !important;
    color:var(--c-accent-700,#a47a30) !important;
    flex-shrink:0;
    margin-top:1px;
}
.hp-refer-warning strong{color:var(--c-slate);margin-right:4px;font-weight:600}

.hp-intake-steps{
    list-style:none;
    padding:0;
    margin:18px 0 0;
}
.hp-intake-steps > li{
    display:flex;
    gap:18px;
    padding:18px 0;
    border-bottom:1px solid var(--c-border-soft);
}
.hp-intake-steps > li:last-child{border-bottom:none}
.hp-intake-num{
    width:36px;height:36px;
    border-radius:50%;
    background:var(--c-primary);
    color:#fff;
    font-weight:700;
    font-size:1rem;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.hp-intake-steps h3{
    font-family:var(--font-display) !important;
    font-size:1.0625rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:6px 0 4px !important;
    line-height:1.3 !important;
}
.hp-intake-steps p{
    margin:0 !important;
    font-size:.9375rem !important;
    line-height:1.55 !important;
    color:var(--c-body) !important;
}

.hp-block-callout{
    background:#fff !important;
    border:1px solid var(--c-border-soft) !important;
    border-left:4px solid var(--c-primary,#1f5765) !important;
    border-radius:12px;
    padding:28px 32px !important;
    margin-bottom:48px !important;
}
.hp-block-callout h2{margin-top:0 !important}
.hp-infra-points{
    list-style:none;
    padding:0;
    margin:14px 0 0;
}
.hp-infra-points li{
    display:flex;
    gap:10px;
    align-items:flex-start;
    padding:6px 0;
    font-size:.9375rem;
    line-height:1.55;
    color:var(--c-body);
}
.hp-infra-points li > .nh-icon{
    width:16px !important;height:16px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;margin-top:3px;
}

.hp-clinical-contact{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:18px;
}

.hp-final-cta{
    background:var(--c-primary,#1f5765);
    color:#fff;
    padding:56px 0;
    text-align:center;
}
.hp-final-cta-inner{max-width:680px;margin:0 auto;padding:0 20px}
.hp-final-cta h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.75rem,2.6vw,2.25rem) !important;
    color:#fff !important;
    margin:0 0 14px !important;
    font-weight:500 !important;
}
.hp-final-cta p{
    color:rgba(255,255,255,.92) !important;
    font-size:1.0625rem !important;
    line-height:1.65 !important;
    margin:0 0 28px !important;
}
.hp-final-cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.hp-final-cta-actions .btn-primary{
    background:var(--c-accent-500,#c89c4a) !important;
    color:var(--c-primary-900,#0c3239) !important;
}
.hp-final-cta-actions .btn-primary:hover{
    background:var(--c-accent-400,#dab575) !important;
    color:var(--c-primary-900,#0c3239) !important;
}
.hp-final-cta-actions .btn-secondary{
    background:transparent !important;
    color:#fff !important;
    border:1.5px solid rgba(255,255,255,.4) !important;
}
.hp-final-cta-actions .btn-secondary:hover{
    background:rgba(255,255,255,.1) !important;
    border-color:#fff !important;
}

@media(max-width:768px){
    .hp-hero{padding:24px 0 20px !important}
    .hp-hero-content .section-title{font-size:1.625rem !important}
    .hp-section{padding:32px 0 48px !important}
    .hp-block{margin-bottom:36px}
    .hp-block > p{font-size:1rem !important}
    .hp-block-refer{padding:24px 22px !important}
    .hp-block-callout{padding:22px !important}
    .hp-capabilities{grid-template-columns:1fr;gap:4px}
    .hp-final-cta{padding:40px 0}
    .hp-final-cta-actions .btn-primary,
    .hp-final-cta-actions .btn-secondary{width:100%;justify-content:center}
    .hp-clinical-contact .btn-primary,
    .hp-clinical-contact .btn-secondary{width:100%;justify-content:center}
}

/* ============================================================
   CFI WAIVER LANDING PAGE (v4.4.0)
   ============================================================ */
.cfi-hero{padding:48px 0 32px !important;background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%) !important}
.cfi-hero-content{max-width:880px;margin:0 auto;text-align:left}
.cfi-hero-content .section-badge{display:inline-flex;margin-bottom:16px}
.cfi-hero-content .section-title{
    font-size:clamp(2rem,3.6vw,2.875rem) !important;
    margin:0 0 18px !important;
    line-height:1.1 !important;
}
.cfi-hero-content .section-subtitle{max-width:780px;font-size:1.0625rem;line-height:1.65;margin-bottom:28px}

.cfi-section{background:var(--c-bg) !important;padding:48px 0 64px !important}
.cfi-container{max-width:860px}
.cfi-block{margin-bottom:48px}
.cfi-block:last-child{margin-bottom:0}
.cfi-block h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.5rem,2.3vw,1.875rem) !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 18px !important;
    line-height:1.2 !important;
}
.cfi-block > p{
    color:var(--c-body) !important;
    font-size:1.0625rem !important;
    line-height:1.75 !important;
    margin:0 0 16px !important;
}
.cfi-block .cfi-note{
    font-size:.875rem !important;
    color:var(--c-muted) !important;
    padding-top:6px !important;
}
.cfi-block .cfi-note a{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--c-primary) !important;
    text-decoration:underline;
    text-underline-offset:3px;
}
.cfi-block .cfi-note a .nh-icon{width:13px !important;height:13px !important}

.cfi-eligibility{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin-top:20px;
}
.cfi-elig-card{
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:12px;
    padding:20px;
}
.cfi-elig-card h3{
    font-family:var(--font-display) !important;
    font-size:1.0625rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 8px !important;
    line-height:1.25 !important;
}
.cfi-elig-card p{
    font-size:.875rem !important;
    color:var(--c-body) !important;
    line-height:1.55 !important;
    margin:0 !important;
}

.cfi-services-list{
    list-style:none;
    padding:0;
    margin:18px 0 14px;
}
.cfi-services-list li{
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:10px 0;
    border-bottom:1px solid var(--c-border-soft);
}
.cfi-services-list li:last-child{border-bottom:none}
.cfi-services-list li > .nh-icon{
    width:18px !important;height:18px !important;
    color:var(--c-primary) !important;
    flex-shrink:0;
    margin-top:3px;
}
.cfi-services-list li > span{
    flex:1;
    font-size:.9375rem;
    line-height:1.55;
    color:var(--c-body);
}
.cfi-services-list strong{color:var(--c-slate);font-weight:600;margin-right:4px}

.cfi-steps{
    list-style:none;
    padding:0;
    margin:18px 0 0;
    counter-reset:cfistep;
}
.cfi-steps > li{
    display:flex;
    gap:18px;
    padding:18px 0;
    border-bottom:1px solid var(--c-border-soft);
}
.cfi-steps > li:last-child{border-bottom:none}
.cfi-step-num{
    width:36px;height:36px;
    border-radius:50%;
    background:var(--c-primary);
    color:#fff;
    font-weight:700;
    font-size:1rem;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.cfi-steps h3{
    font-family:var(--font-display) !important;
    font-size:1.125rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:6px 0 6px !important;
    line-height:1.3 !important;
}
.cfi-steps p{
    margin:0 !important;
    font-size:.9375rem !important;
    line-height:1.6 !important;
    color:var(--c-body) !important;
}
.cfi-steps p a{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:var(--c-primary) !important;
    text-decoration:underline;
    text-underline-offset:3px;
    margin-left:6px;
    font-weight:500;
}
.cfi-steps p a .nh-icon{width:12px !important;height:12px !important}

.cfi-block-callout{
    background:linear-gradient(135deg,rgba(31,87,101,.05) 0%,rgba(200,156,74,.07) 100%) !important;
    border-left:4px solid var(--c-accent-500,#c89c4a);
    border-radius:12px;
    padding:28px 32px !important;
    margin-bottom:48px !important;
}
.cfi-block-callout h2{margin-top:0 !important}
.cfi-callout-cta{
    display:flex;
    gap:12px;
    flex-wrap:wrap;
    margin-top:18px;
}

.cfi-final-cta{
    background:var(--c-primary,#1f5765);
    color:#fff;
    padding:56px 0;
    text-align:center;
}
.cfi-final-cta-inner{max-width:680px;margin:0 auto;padding:0 20px}
.cfi-final-cta h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.75rem,2.6vw,2.25rem) !important;
    color:#fff !important;
    margin:0 0 14px !important;
    font-weight:500 !important;
}
.cfi-final-cta p{
    color:rgba(255,255,255,.92) !important;
    font-size:1.0625rem !important;
    line-height:1.65 !important;
    margin:0 0 28px !important;
}
.cfi-final-cta-actions{
    display:flex;
    gap:12px;
    justify-content:center;
    flex-wrap:wrap;
}
.cfi-final-cta-actions .btn-primary{
    background:var(--c-accent-500,#c89c4a) !important;
    color:var(--c-primary-900,#0c3239) !important;
}
.cfi-final-cta-actions .btn-primary:hover{
    background:var(--c-accent-400,#dab575) !important;
    color:var(--c-primary-900,#0c3239) !important;
}
.cfi-final-cta-actions .btn-secondary{
    background:transparent !important;
    color:#fff !important;
    border:1.5px solid rgba(255,255,255,.4) !important;
}
.cfi-final-cta-actions .btn-secondary:hover{
    background:rgba(255,255,255,.1) !important;
    border-color:#fff !important;
}

@media(max-width:768px){
    .cfi-hero{padding:24px 0 20px !important}
    .cfi-hero-content .section-title{font-size:1.75rem !important}
    .cfi-section{padding:32px 0 48px !important}
    .cfi-block{margin-bottom:36px}
    .cfi-block > p{font-size:1rem !important}
    .cfi-eligibility{grid-template-columns:1fr;gap:10px}
    .cfi-elig-card{padding:16px}
    .cfi-block-callout{padding:22px !important}
    .cfi-final-cta{padding:40px 0}
    .cfi-final-cta-actions .btn-primary,
    .cfi-final-cta-actions .btn-secondary{width:100%;justify-content:center}
}

/* ============================================================
   ONLINE BOOKING (Outlook / Microsoft Bookings) — v4.4.5
   ============================================================ */
.nh-booking-cta .nh-icon{width:16px !important;height:16px !important;flex-shrink:0}
.nh-booking-cta span{display:inline-block}

/* Contact page: "Prefer to self-schedule?" alternative above the form */
.contact-booking-alt{
    display:flex;
    align-items:center;
    gap:16px;
    padding:18px 20px;
    background:linear-gradient(135deg,rgba(31,87,101,.04) 0%,rgba(200,156,74,.06) 100%);
    border:1px solid var(--c-border-soft);
    border-radius:12px;
    margin-bottom:18px;
}
.contact-booking-alt-text{
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:2px;
    line-height:1.4;
}
.contact-booking-alt-text strong{
    color:var(--c-slate);
    font-size:.9375rem;
    font-weight:600;
    font-family:var(--font-display);
}
.contact-booking-alt-text span{
    color:var(--c-muted);
    font-size:.8125rem;
    line-height:1.45;
}
.contact-booking-alt .nh-booking-cta{
    flex-shrink:0;
    font-size:.875rem !important;
    padding:10px 16px !important;
    white-space:nowrap;
}

.contact-booking-divider{
    display:flex;
    align-items:center;
    text-align:center;
    color:var(--c-muted);
    font-size:.75rem;
    text-transform:uppercase;
    letter-spacing:.1em;
    margin:18px 0;
}
.contact-booking-divider::before,
.contact-booking-divider::after{
    content:'';
    flex:1;
    border-top:1px solid var(--c-border-soft);
}
.contact-booking-divider span{padding:0 14px}

@media(max-width:600px){
    .contact-booking-alt{
        flex-direction:column;
        align-items:stretch;
        text-align:center;
        padding:16px;
    }
    .contact-booking-alt-text{align-items:center}
    .contact-booking-alt .nh-booking-cta{width:100%;justify-content:center}
}

/* Sticky floating Book button (off by default, toggleable in Customizer) */
.nh-booking-sticky{
    position:fixed;
    bottom:24px;
    right:24px;
    z-index:90;
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 22px;
    background:var(--c-primary,#1f5765);
    color:#fff;
    font-family:var(--font-body);
    font-size:.9375rem;
    font-weight:600;
    border-radius:999px;
    text-decoration:none;
    box-shadow:0 8px 24px -8px rgba(15,36,42,.45),0 0 0 1px rgba(255,255,255,.05) inset;
    transition:all .25s ease;
    /* Subtle entrance */
    animation:nh-booking-sticky-in .5s ease-out .8s both;
}
.nh-booking-sticky:hover{
    background:var(--c-primary-700,#144a55);
    color:#fff;
    transform:translateY(-2px);
    box-shadow:0 12px 32px -8px rgba(15,36,42,.55),0 0 0 1px rgba(255,255,255,.05) inset;
}
.nh-booking-sticky .nh-icon{
    width:18px !important;
    height:18px !important;
    color:#fff;
}
@keyframes nh-booking-sticky-in{
    from{opacity:0;transform:translateY(20px)}
    to{opacity:1;transform:translateY(0)}
}
@media(max-width:768px){
    /* Hidden on mobile — the existing bottom CTA bar covers conversion */
    .nh-booking-sticky{display:none}
}
@media(prefers-reduced-motion:reduce){
    .nh-booking-sticky{animation:none}
    .nh-booking-sticky:hover{transform:none}
}

/* ============================================================
   STICKY PAYER BANNER (v4.4.0)
   ============================================================ */
.nh-payer-banner{
    background:linear-gradient(135deg,#1f5765 0%,#1a4953 100%);
    color:#fff;
    font-size:.8125rem;
    line-height:1.45;
    position:relative;
    z-index:99;
}
.nh-payer-banner__inner{
    max-width:1200px;
    margin:0 auto;
    padding:9px 24px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    flex-wrap:nowrap;
    text-align:center;
}
.nh-payer-banner__text{
    flex:1 1 auto;
    min-width:0;
    color:rgba(255,255,255,.95);
}
.nh-payer-banner__text strong{color:#fff;font-weight:600}
.nh-payer-banner__text--mobile{display:none}
.nh-payer-banner__link{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:#fff;
    font-weight:600;
    text-decoration:underline;
    text-underline-offset:3px;
    text-decoration-color:rgba(255,255,255,.45);
    flex-shrink:0;
    transition:text-decoration-color .15s ease;
    white-space:nowrap;
}
.nh-payer-banner__link:hover{text-decoration-color:#fff}
.nh-payer-banner__link .nh-icon{width:13px !important;height:13px !important;color:#fff}
.nh-payer-banner__close{
    background:transparent;
    border:0;
    color:rgba(255,255,255,.75);
    width:28px;height:28px;
    padding:0;
    border-radius:50%;
    cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
    transition:all .15s ease;
}
.nh-payer-banner__close:hover{
    color:#fff;
    background:rgba(255,255,255,.12);
}
@media(max-width:768px){
    .nh-payer-banner__inner{
        padding:8px 14px;
        gap:10px;
    }
    .nh-payer-banner__text--desktop{display:none}
    .nh-payer-banner__text--mobile{display:inline;font-size:.75rem}
    .nh-payer-banner__link{font-size:.75rem}
    .nh-payer-banner__close{width:24px;height:24px}
}

/* ============================================================
   PAYMENT SECTION — RESTRUCTURED AS CARDS (v4.4.0)
   ============================================================ */
.payment-section .payment-header{
    max-width:760px !important;
    margin:0 auto 36px !important;
    text-align:center !important;
}
.payment-section .payment-header .section-eyebrow{display:inline-block !important;margin-bottom:10px !important}
.payment-section .payment-header .section-title{margin:0 0 14px !important}
.payment-section .payment-header .section-subtitle{margin:0 auto !important;max-width:680px !important}

.payment-subhead{
    font-family:var(--font-body) !important;
    font-weight:600 !important;
    color:var(--c-muted) !important;
    text-align:center !important;
    margin:0 0 20px !important;
    text-transform:uppercase !important;
    letter-spacing:.08em !important;
    font-size:.8125rem !important;
}

.payment-cards{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:18px !important;
    margin-bottom:36px !important;
}
.payment-card{
    display:flex !important;
    align-items:flex-start !important;
    gap:14px !important;
    background:#fff !important;
    border:1px solid var(--c-border-soft) !important;
    border-radius:14px !important;
    padding:22px !important;
    transition:all .25s ease !important;
}
.payment-card:hover{
    border-color:var(--c-primary-200) !important;
    box-shadow:0 12px 28px -14px rgba(15,36,42,.16) !important;
    transform:translateY(-2px) !important;
}
.payment-card-icon{
    width:40px !important;height:40px !important;
    border-radius:10px !important;
    background:var(--c-primary-50,#e8f1f4) !important;
    color:var(--c-primary) !important;
    display:flex !important;align-items:center !important;justify-content:center !important;
    flex-shrink:0 !important;
}
.payment-card-icon .nh-icon{width:18px !important;height:18px !important;stroke-width:2 !important}
.payment-card-body{flex:1 !important;min-width:0 !important}
.payment-card-body h4{
    font-family:var(--font-display) !important;
    font-size:1.125rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 8px !important;
    line-height:1.25 !important;
}
.payment-card-body p{
    margin:0 0 12px !important;
    color:var(--c-body) !important;
    font-size:.9375rem !important;
    line-height:1.55 !important;
}
.payment-card-link{
    display:inline-flex !important;
    align-items:center !important;
    gap:6px !important;
    color:var(--c-primary) !important;
    font-weight:600 !important;
    font-size:.875rem !important;
    text-decoration:none !important;
    border-bottom:1px solid transparent !important;
    transition:all .15s ease !important;
}
.payment-card-link:hover{
    color:var(--c-primary-700,#144a55) !important;
    border-bottom-color:var(--c-primary-700,#144a55) !important;
}
.payment-card-link .nh-icon{width:14px !important;height:14px !important}

/* Coming soon subsection */
.payment-coming{margin-bottom:28px !important}
.payment-coming-inner{
    background:linear-gradient(135deg,rgba(31,87,101,.04) 0%,rgba(200,156,74,.06) 100%) !important;
    border:1px dashed var(--c-border-soft) !important;
    border-radius:14px !important;
    padding:24px 28px !important;
    display:flex !important;
    flex-direction:column !important;
    gap:10px !important;
    align-items:flex-start !important;
}
.payment-coming-badge{
    display:inline-block !important;
    background:var(--c-accent-500,#c89c4a) !important;
    color:#fff !important;
    font-size:.6875rem !important;
    font-weight:700 !important;
    letter-spacing:.08em !important;
    text-transform:uppercase !important;
    padding:4px 10px !important;
    border-radius:6px !important;
}
.payment-coming-inner h3{
    font-family:var(--font-display) !important;
    font-size:1.25rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 !important;
    line-height:1.2 !important;
}
.payment-coming-inner p{
    margin:0 !important;
    color:var(--c-body) !important;
    font-size:.9375rem !important;
    line-height:1.6 !important;
    max-width:760px !important;
}
.payment-coming-inner .btn-secondary{margin-top:6px !important}

/* Free assessment closer */
.payment-closer-inner{
    background:#fff !important;
    border:1px solid var(--c-border-soft) !important;
    border-left:4px solid var(--c-accent-500,#c89c4a) !important;
    border-radius:12px !important;
    padding:24px 28px !important;
    display:grid !important;
    grid-template-columns:auto 1fr auto !important;
    gap:20px !important;
    align-items:center !important;
}
.payment-closer-inner > .nh-icon{
    width:32px !important;height:32px !important;
    color:var(--c-accent-500,#c89c4a) !important;
    flex-shrink:0 !important;
}
.payment-closer-inner strong{
    display:block !important;
    font-family:var(--font-display) !important;
    font-size:1.0625rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:0 0 4px !important;
}
.payment-closer-inner p{
    margin:0 !important;
    font-size:.875rem !important;
    line-height:1.5 !important;
    color:var(--c-body) !important;
}
.payment-closer-cta{
    display:flex !important;
    gap:10px !important;
    flex-shrink:0 !important;
    flex-wrap:wrap !important;
}

@media(max-width:768px){
    .payment-cards{grid-template-columns:1fr !important;gap:12px !important;margin-bottom:24px !important}
    .payment-card{padding:18px !important}
    .payment-coming-inner{padding:20px !important}
    .payment-closer-inner{
        grid-template-columns:1fr !important;
        gap:14px !important;
        padding:20px !important;
        text-align:left !important;
    }
    .payment-closer-cta{width:100% !important}
    .payment-closer-cta .btn-primary,
    .payment-closer-cta .btn-secondary{flex:1 1 auto !important;justify-content:center !important}
}

/* ============================================================
   CONTACT PAGE — FORM-FIRST HERO LAYOUT (v4.2.4)
   ============================================================ */
.contact-hero-with-form{
    padding:32px 0 24px !important;
    background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%) !important;
    text-align:left !important;
}
.contact-hero-with-form .container{text-align:left !important}
.contact-hero-grid{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:48px !important;
    align-items:start !important;
    text-align:left !important;
}
@media(max-width:960px){
    .contact-hero-grid{grid-template-columns:1fr !important;gap:32px !important}
}

/* Left column: everything flush-left, NO inherited centering from .section-header */
.contact-hero-info{text-align:left !important}
.contact-hero-info .section-badge{
    display:inline-flex !important;
    margin:0 0 16px !important;
    text-align:left !important;
}
.contact-hero-info .section-title{
    font-size:clamp(1.875rem,3.2vw,2.5rem) !important;
    margin:0 0 14px !important;
    line-height:1.1 !important;
    text-align:left !important;
}
.contact-hero-info .section-subtitle{
    margin:0 0 24px !important;
    max-width:none !important;
    font-size:1rem !important;
    text-align:left !important;
    line-height:1.6 !important;
}
.contact-hero-cta{
    display:flex !important;
    gap:10px !important;
    flex-wrap:wrap !important;
    margin-bottom:24px !important;
    justify-content:flex-start !important;
}
.contact-hero-details{
    display:flex !important;
    flex-direction:column !important;
    gap:14px !important;
    padding-top:20px !important;
    border-top:1px solid var(--c-border-soft) !important;
    text-align:left !important;
}
.contact-hero-details .cfd-item{
    display:flex !important;
    align-items:flex-start !important;
    gap:12px !important;
    text-align:left !important;
}
.contact-hero-details .cfd-item .nh-icon{
    color:var(--c-primary) !important;
    flex-shrink:0 !important;
    margin-top:2px !important;
    width:18px !important;height:18px !important;
}
.contact-hero-details .cfd-item > div{flex:1 !important;text-align:left !important}
.contact-hero-details .cfd-item strong{
    display:block !important;
    color:var(--c-slate) !important;
    font-weight:600 !important;
    font-size:.9375rem !important;
    text-align:left !important;
    margin:0 !important;
}
.contact-hero-details .cfd-item span{
    display:block !important;
    color:var(--c-body) !important;
    font-size:.8125rem !important;
    line-height:1.45 !important;
    text-align:left !important;
}

/* Right column: form card, slightly more compact */
.contact-hero-form-card{
    background:#fff !important;
    border-radius:16px !important;
    padding:24px !important;
    box-shadow:0 12px 40px -12px rgba(15,36,42,.18) !important;
    border:1px solid var(--c-border-soft) !important;
}
.contact-form-card-header{margin-bottom:16px !important;text-align:center !important}
.contact-form-card-header .section-eyebrow{
    display:inline-block !important;
    margin-bottom:4px !important;
}
.contact-form-card-header h2{
    font-family:var(--font-display) !important;
    font-size:1.375rem !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:4px 0 0 !important;
    line-height:1.2 !important;
    text-align:center !important;
}
.contact-hero-form-card .form-group{margin-bottom:12px !important}
.contact-hero-form-card .form-row{margin-bottom:0 !important}
.contact-hero-form-card label{
    font-size:.8125rem !important;
    margin-bottom:4px !important;
}
.contact-hero-form-card input,
.contact-hero-form-card select,
.contact-hero-form-card textarea{
    padding:10px 12px !important;
    font-size:.9375rem !important;
}
.contact-hero-form-card textarea{min-height:90px !important}
.contact-hero-form-card .btn-block{
    width:100% !important;
    justify-content:center !important;
    margin-top:4px !important;
    padding:12px 20px !important;
}

@media(max-width:768px){
    .contact-hero-with-form{padding:20px 0 16px !important}
    .contact-hero-form-card{padding:20px 18px !important}
    .contact-hero-cta{margin-bottom:20px !important}
    .contact-hero-info .section-title{font-size:1.625rem !important}
    .contact-hero-details{padding-top:16px !important;gap:12px !important}
}

/* Compact contact cards (now below the hero, supporting role) */
.contact-cards-compact{padding:24px 0 !important;background:var(--c-bg) !important}
.contact-cards-compact .contact-cards-grid{
    display:grid !important;
    grid-template-columns:repeat(3,1fr) !important;
    gap:14px !important;
}
.contact-cards-compact .contact-card-item{
    display:flex !important;
    align-items:flex-start !important;
    gap:12px !important;
    padding:14px 16px !important;
    background:#fff !important;
    border:1px solid var(--c-border-soft) !important;
    border-radius:10px !important;
    text-decoration:none !important;
    transition:all .25s ease !important;
}
.contact-cards-compact .contact-card-item:hover{
    border-color:var(--c-primary-200) !important;
    transform:translateY(-2px) !important;
    box-shadow:0 8px 20px -10px rgba(15,36,42,.15) !important;
}
.contact-cards-compact .contact-card-icon{
    width:36px !important;height:36px !important;
    background:var(--c-primary) !important;
    color:#fff !important;
    border-radius:8px !important;
    display:flex !important;align-items:center !important;justify-content:center !important;
    flex-shrink:0 !important;
    margin:0 !important;
}
.contact-cards-compact .contact-card-icon .nh-icon{width:16px !important;height:16px !important}
.contact-cards-compact .contact-card-text{flex:1 !important;min-width:0 !important;text-align:left !important}
.contact-cards-compact .contact-card-text h3{
    font-size:.6875rem !important;
    text-transform:uppercase !important;
    letter-spacing:.06em !important;
    color:var(--c-muted) !important;
    margin:0 0 2px !important;
    font-weight:600 !important;
    font-family:var(--font-body) !important;
    text-align:left !important;
}
.contact-cards-compact .contact-card-text p{
    color:var(--c-slate) !important;
    margin:0 !important;
    font-size:.875rem !important;
    line-height:1.35 !important;
    font-weight:500 !important;
    word-break:break-word !important;
    text-align:left !important;
}
.contact-cards-compact .contact-card-note{
    display:block !important;
    margin-top:2px !important;
    font-size:.6875rem !important;
    color:var(--c-muted) !important;
    line-height:1.3 !important;
    text-align:left !important;
}
@media(max-width:768px){
    .contact-cards-compact{padding:16px 0 !important}
    .contact-cards-compact .contact-cards-grid{grid-template-columns:1fr !important;gap:10px !important}
}

/* ============================================================
   VISIT US SECTION (replaces embedded Google Map on /contact/)
   ============================================================ */
.contact-visit-section{
    background:var(--c-bg-cream) !important;
    padding:48px 0 64px !important;
}
.visit-card{
    display:grid !important;
    grid-template-columns:auto 1fr !important;
    gap:32px !important;
    align-items:flex-start !important;
    background:#fff !important;
    border:1px solid var(--c-border-soft) !important;
    border-radius:18px !important;
    padding:36px 40px !important;
    box-shadow:0 12px 32px -14px rgba(15,36,42,.14) !important;
    max-width:920px !important;
    margin:0 auto !important;
}
.visit-icon-wrap{
    width:64px !important;height:64px !important;
    border-radius:16px !important;
    background:linear-gradient(135deg,var(--c-primary,#1f5765) 0%,var(--c-primary-700,#144a55) 100%) !important;
    color:#fff !important;
    display:flex !important;align-items:center !important;justify-content:center !important;
    flex-shrink:0 !important;
}
.visit-icon-wrap .nh-icon{width:28px !important;height:28px !important;color:#fff !important}

.visit-content{flex:1 !important;min-width:0 !important}
.visit-content .section-eyebrow{
    display:inline-block !important;
    margin-bottom:6px !important;
}
.visit-content h2{
    font-family:var(--font-display) !important;
    font-size:clamp(1.5rem,2.4vw,2rem) !important;
    font-weight:600 !important;
    color:var(--c-slate) !important;
    margin:4px 0 14px !important;
    line-height:1.2 !important;
}
.visit-content > p{
    color:var(--c-body) !important;
    font-size:1rem !important;
    line-height:1.7 !important;
    margin:0 0 24px !important;
    max-width:640px !important;
}

.visit-meta{
    display:grid !important;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr)) !important;
    gap:20px !important;
    padding:20px 0 !important;
    border-top:1px solid var(--c-border-soft) !important;
    border-bottom:1px solid var(--c-border-soft) !important;
    margin-bottom:24px !important;
}
.visit-meta-item{
    display:flex !important;
    align-items:flex-start !important;
    gap:12px !important;
}
.visit-meta-item .nh-icon{
    color:var(--c-primary) !important;
    flex-shrink:0 !important;
    margin-top:2px !important;
    width:18px !important;height:18px !important;
}
.visit-meta-item > div{flex:1 !important;min-width:0 !important}
.visit-meta-item strong{
    display:block !important;
    color:var(--c-muted) !important;
    font-weight:600 !important;
    font-size:.6875rem !important;
    text-transform:uppercase !important;
    letter-spacing:.06em !important;
    margin-bottom:3px !important;
}
.visit-meta-item span{
    display:block !important;
    color:var(--c-slate) !important;
    font-size:.9375rem !important;
    line-height:1.45 !important;
    font-weight:500 !important;
}

.visit-actions{
    display:flex !important;
    gap:12px !important;
    flex-wrap:wrap !important;
}
.visit-actions .btn-primary,
.visit-actions .btn-secondary{
    display:inline-flex !important;
    align-items:center !important;
    gap:8px !important;
}
.visit-actions .btn-primary .nh-icon:first-child,
.visit-actions .btn-secondary .nh-icon:first-child{
    width:16px !important;height:16px !important;
}

@media(max-width:768px){
    .contact-visit-section{padding:32px 0 48px !important}
    .visit-card{
        grid-template-columns:1fr !important;
        gap:20px !important;
        padding:28px 24px !important;
    }
    .visit-icon-wrap{width:56px !important;height:56px !important}
    .visit-meta{grid-template-columns:1fr !important;gap:14px !important;padding:16px 0 !important}
    .visit-content h2{font-size:1.5rem !important}
    .visit-actions{flex-direction:column !important}
    .visit-actions .btn-primary,
    .visit-actions .btn-secondary{
        width:100% !important;
        justify-content:center !important;
    }
}

/* ============================================================
   EKG HEART — used for both loading (looping) and success (one-shot)
   States are driven by [data-state="loading"] vs [data-state="success"]
   on .contact-success-modal.
   ============================================================ */
.ekg-heart-wrap{
    width:140px;height:120px;
    margin:0 auto 18px;
    display:flex;align-items:center;justify-content:center;
}
.ekg-heart{
    width:100%;height:100%;
    overflow:visible;
    fill:none;
    stroke:var(--c-primary,#1f5765);
    stroke-width:5;
    stroke-linecap:round;
    stroke-linejoin:round;
}

/* === SUCCESS STATE: heart halves draw once and hold === */
[data-state="success"] .ekg-heart-left,
[data-state="success"] .ekg-heart-right{
    stroke-dasharray:300;
    stroke-dashoffset:300;
    animation:ekg-heart-draw 1.1s cubic-bezier(.6,.05,.4,1) forwards;
}
@keyframes ekg-heart-draw{
    0%   { stroke-dashoffset:300; }
    100% { stroke-dashoffset:0; }
}
[data-state="success"] .ekg-line{
    stroke:var(--c-accent-500,#c89c4a);
    stroke-width:4;
    stroke-dasharray:400;
    stroke-dashoffset:400;
    animation:ekg-line-draw 1.0s ease-in-out 1.0s forwards;
}
@keyframes ekg-line-draw{
    0%   { stroke-dashoffset:400; }
    100% { stroke-dashoffset:0; }
}
[data-state="success"] .ekg-pulse{
    fill:var(--c-accent-500,#c89c4a);
    stroke:none;
    opacity:0;
    animation:ekg-pulse-trail 1.0s ease-in-out 1.0s forwards;
}
@keyframes ekg-pulse-trail{
    0%   { opacity:0;  transform:translateX(0)    translateY(0); }
    5%   { opacity:1; }
    20%  { transform:translateX(50px)  translateY(0); }
    35%  { transform:translateX(70px)  translateY(-30px); }
    45%  { transform:translateX(80px)  translateY(30px); }
    55%  { transform:translateX(90px)  translateY(-20px); }
    65%  { transform:translateX(100px) translateY(10px); }
    75%  { transform:translateX(110px) translateY(0); }
    95%  { opacity:1; transform:translateX(180px) translateY(0); }
    100% { opacity:0; transform:translateX(180px) translateY(0); }
}
[data-state="success"] .ekg-heart-wrap{
    animation:ekg-final-pulse .6s ease-in-out 2.1s 2;
}
@keyframes ekg-final-pulse{
    0%,100%{transform:scale(1)}
    50%{transform:scale(1.05)}
}

/* === LOADING STATE: heart halves loop, EKG line cycles, pulse rides === */
[data-state="loading"] .ekg-heart-left,
[data-state="loading"] .ekg-heart-right{
    stroke-dasharray:300;
    stroke-dashoffset:300;
    animation:ekg-heart-loop 2.4s cubic-bezier(.5,.05,.5,1) infinite;
}
@keyframes ekg-heart-loop{
    0%   { stroke-dashoffset:300; opacity:.6; }
    35%  { stroke-dashoffset:0;   opacity:1; }
    70%  { stroke-dashoffset:0;   opacity:.85; }
    100% { stroke-dashoffset:300; opacity:.6; }
}
[data-state="loading"] .ekg-line{
    stroke:var(--c-accent-500,#c89c4a);
    stroke-width:4;
    stroke-dasharray:400;
    stroke-dashoffset:400;
    animation:ekg-line-loop 2.4s ease-in-out infinite;
    animation-delay:.4s;
}
@keyframes ekg-line-loop{
    0%   { stroke-dashoffset:400; }
    50%  { stroke-dashoffset:0; }
    100% { stroke-dashoffset:-400; }
}
[data-state="loading"] .ekg-pulse{
    fill:var(--c-accent-500,#c89c4a);
    stroke:none;
    animation:ekg-pulse-loop 2.4s ease-in-out infinite;
    animation-delay:.4s;
}
@keyframes ekg-pulse-loop{
    0%,100% { opacity:0; transform:translateX(0) translateY(0); }
    10%     { opacity:1; }
    25%     { transform:translateX(50px)  translateY(0); }
    35%     { transform:translateX(70px)  translateY(-30px); }
    42%     { transform:translateX(80px)  translateY(30px); }
    50%     { transform:translateX(90px)  translateY(-20px); }
    58%     { transform:translateX(100px) translateY(10px); }
    65%     { transform:translateX(110px) translateY(0); }
    85%     { opacity:1; transform:translateX(180px) translateY(0); }
    95%     { opacity:0; }
}

/* Loading text below heart */
.contact-loading-text{
    text-align:center;
    color:var(--c-muted);
    font-size:.95rem;
    letter-spacing:.02em;
    animation:ekg-loading-fade 1.6s ease-in-out infinite;
}
@keyframes ekg-loading-fade{
    0%,100%{opacity:.55}
    50%{opacity:1}
}

@media(prefers-reduced-motion:reduce){
    .ekg-heart-left,.ekg-heart-right{stroke-dashoffset:0 !important;animation:none !important;opacity:1 !important}
    .ekg-line{stroke-dashoffset:0 !important;animation:none !important}
    .ekg-pulse{opacity:0 !important;animation:none !important}
    [data-state] .ekg-heart-wrap{animation:none !important}
    .contact-loading-text{animation:none !important;opacity:.85 !important}
}

/* ============================================================
   FORM ERROR STATES
   ============================================================ */
.nh-contact-form .form-error{
    display:none;
    color:#c0334b;
    font-size:.8125rem;
    margin-top:5px;
    line-height:1.4;
    font-weight:500;
}
.nh-contact-form .form-error.visible{display:block}
.nh-contact-form input.has-error,
.nh-contact-form textarea.has-error,
.nh-contact-form select.has-error{
    border-color:#c0334b !important;
    box-shadow:0 0 0 3px rgba(192,51,75,.12) !important;
}
.nh-contact-form input.has-error:focus,
.nh-contact-form textarea.has-error:focus,
.nh-contact-form select.has-error:focus{
    border-color:#c0334b !important;
    box-shadow:0 0 0 3px rgba(192,51,75,.18) !important;
}

/* ============================================================
   TIGHTER SECTION SPACING (v4.1.3)
   Reduce excessive vertical gaps between sections so the page
   reads as a connected flow rather than disjoint blocks.
   ============================================================ */
.hero-section{padding:56px 0 72px !important}
.features-section{padding:64px 0 !important}
.services-section{padding:64px 0 !important}
.process-section{padding:64px 0 !important}
.stats-section{padding:64px 0 !important}
.areas-section{padding:64px 0 !important}
.team-section{padding:64px 0 !important}
.payment-section{padding:64px 0 !important}
.gallery-section{padding:64px 0 !important}
.careers-hero{padding:56px 0 40px !important}
.careers-section{padding:0 0 64px !important}
.testimonials-section{padding:64px 0 !important}
.cta-section{padding:64px 0 !important}
.contact-section,.contact-form-section{padding:64px 0 !important}
.contact-cards-section{padding:48px 0 !important}
.contact-hero{padding:56px 0 40px !important}
.faq-hero{padding:56px 0 32px !important}
.faq-section{padding:32px 0 64px !important}
.resources-section{padding:48px 0 64px !important}
.trust-strip{padding:32px 0 !important}

/* Section header bottom margin tightened too */
.section-header{margin-bottom:40px !important}

@media(max-width:768px){
    .hero-section{padding:16px 0 36px !important}
    .features-section,.services-section,.process-section,.stats-section,
    .areas-section,.team-section,.payment-section,.gallery-section,
    .testimonials-section,.cta-section,.contact-section,
    .contact-form-section{padding:40px 0 !important}
    .careers-hero,.contact-hero,.faq-hero{padding:24px 0 20px !important}
    .section-header{margin-bottom:24px !important}
}
.footer-social li{margin:0 !important}
.footer-social a{
    width:38px !important;height:38px !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    background:rgba(255,255,255,.08) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    border-radius:50% !important;
    color:rgba(255,255,255,.85) !important;
    transition:all .2s ease !important;
    text-decoration:none !important;
}
.footer-social a:hover{
    background:#c89c4a !important;
    border-color:#c89c4a !important;
    color:#0c3239 !important;
    transform:translateY(-2px) !important;
}
.footer-social .nh-icon{
    width:18px !important;height:18px !important;
    stroke-width:1.6 !important;
}

/* ============================================================
   PICTURE GALLERY (future-proof, off by default)
   ============================================================ */
.gallery-section{padding:96px 0 !important;background:#faf6ee !important}
.gallery-section .section-header{margin-bottom:48px !important;text-align:center !important}
.gallery-grid{
    display:grid !important;
    gap:18px !important;
}
.gallery-cols-2{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.gallery-cols-3{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.gallery-cols-4{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
@media(max-width:900px){
    .gallery-cols-3,.gallery-cols-4{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media(max-width:560px){
    .gallery-cols-2,.gallery-cols-3,.gallery-cols-4{grid-template-columns:1fr !important}
}
.gallery-item{
    margin:0 !important;
    border-radius:14px !important;
    overflow:hidden !important;
    background:#fff !important;
    box-shadow:0 6px 18px -8px rgba(15,36,42,.12) !important;
    transition:transform .35s ease,box-shadow .35s ease !important;
}
.gallery-item:hover{
    transform:translateY(-4px) !important;
    box-shadow:0 16px 32px -10px rgba(15,36,42,.2) !important;
}
.gallery-image-wrap{
    aspect-ratio:4/3 !important;
    overflow:hidden !important;
    background:#e8e2d4 !important;
}
.gallery-image-wrap img{
    width:100% !important;height:100% !important;
    object-fit:cover !important;
    display:block !important;
    transition:transform .5s ease !important;
}
.gallery-item:hover .gallery-image-wrap img{transform:scale(1.04) !important}
.gallery-item figcaption{
    padding:14px 18px !important;
    font-size:.875rem !important;
    color:#465c63 !important;
    line-height:1.5 !important;
    border-top:1px solid #f0e8d8 !important;
}

/* ============================================================
   MOBILE FIXES (v4.0.7)
   ============================================================ */

/* Job cards: left-align content even when inherited from .careers-hero */
.job-card,.jobs-grid .job-card *{text-align:left !important}
.job-card .job-meta{justify-content:flex-start !important}

@media(max-width:768px){
    /* Hero stat card: move out of absolute positioning so it doesn't
       overlap the body text on narrow viewports. Sits below the visual card. */
    .hero-stat-card{
        position:static !important;
        margin:16px 0 0 !important;
        max-width:100% !important;
        width:100% !important;
        left:auto !important;right:auto !important;bottom:auto !important;
    }
    /* Visual card: more compact on mobile so it doesn't dominate the viewport */
    .hero-visual.has-content{
        min-height:auto !important;
        margin-bottom:0 !important;
        max-height:none !important;
        border-radius:18px !important;
    }
    .hero-visual.has-image{
        aspect-ratio:auto !important;
        max-height:none !important;
        height:auto !important;
    }
    .hero-visual-content{padding:32px 24px !important;gap:10px !important}
    .hero-visual-eyebrow{font-size:.6875rem !important;padding:5px 12px !important}
    .hero-visual-heading{font-size:1.375rem !important;line-height:1.2 !important}
    .hero-visual-body{font-size:.9375rem !important;line-height:1.55 !important}

    /* Job card: Featured badge inline, not floating over the title */
    .job-card.featured::before{
        position:static !important;
        display:inline-block !important;
        margin:0 0 12px !important;
        align-self:flex-start !important;
    }
    .job-card{padding:24px 20px !important}

    /* Job badge: long employment type lists shouldn't render as a giant pill.
       Reduce border-radius and let it wrap as a soft chip. */
    .job-badge{
        border-radius:8px !important;
        padding:6px 10px !important;
        font-size:.6875rem !important;
        line-height:1.4 !important;
        max-width:100% !important;
        word-break:normal !important;
        white-space:normal !important;
        text-align:center !important;
    }

    /* Job card footer: stack the badge and View & apply button vertically
       so neither gets squashed. */
    .job-card-footer{
        flex-direction:column !important;
        align-items:stretch !important;
        gap:12px !important;
    }
    .job-card-footer .btn-primary,.job-card-footer .btn-sm{
        width:100% !important;
        justify-content:center !important;
    }
}

/* Anchor links land below sticky header */
html{scroll-padding-top:96px !important;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Refined focus-visible — accessible without being garish */
*:focus{outline:none}
*:focus-visible{
    outline:2px solid #1f5765 !important;
    outline-offset:3px !important;
    border-radius:3px;
}
.btn-primary:focus-visible,.btn-secondary:focus-visible,.btn-cta:focus-visible{
    outline-offset:4px !important;
}

/* Selection color matches brand */
::selection{background:rgba(200,156,74,.4) !important;color:#0c3239 !important}

/* Smoother card hovers */
.feature-card,.service-card,.process-step,.job-card,.team-card,.testimonial-card{
    transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s cubic-bezier(.2,.8,.2,1),border-color .25s ease !important;
}

/* Better link underline rhythm */
.entry-content a:not(.btn-primary):not(.btn-secondary){
    text-underline-offset:3px;
    text-decoration-thickness:1px;
}

/* Print: hide decorative chrome, keep content readable */
@media print{
    .site-header,.cta-section,.cta-buttons,.mobile-cta-bar,.booking-overlay,
    .cookie-banner,#nh-cookie-consent,.footer-legal,.nh-footer-legal,
    .hero-visual-watermark,.footer-social{display:none !important}
    body{color:#000 !important;background:#fff !important}
    a{color:#000 !important;text-decoration:underline}
    .container{max-width:100% !important;padding:0 !important}
}

/* Reduce motion: respect user preference fully */
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
        transition-duration:.01ms !important;
    }
    .reveal{opacity:1 !important;transform:none !important}
}

/* End defensive layout guards */

/* ============================================================
   DESIGN TOKENS
   ============================================================ */
:root{
    /* Brand teal scale */
    --c-primary-900:#0c3239;
    --c-primary-800:#103e48;
    --c-primary-700:#144a55;
    --c-primary-600:#175462;
    --c-primary-500:#1f5765; /* base brand */
    --c-primary-400:#357585;
    --c-primary-300:#6ea3b1;
    --c-primary-200:#b3d2dc;
    --c-primary-100:#dceaef;
    --c-primary-50:#f1f7f9;
    --c-primary:var(--c-primary-500);
    --c-primary-dark:var(--c-primary-700);
    --c-primary-light:var(--c-primary-100);

    /* Warm accent (used sparingly) */
    --c-accent-700:#8d671f;
    --c-accent-600:#b08234;
    --c-accent-500:#c89c4a;
    --c-accent-400:#d6b066;
    --c-accent-100:#f5e8c8;
    --c-accent-50:#fbf5e6;

    /* Sage secondary */
    --c-sage-600:#5e7a59;
    --c-sage-500:#708d6a;
    --c-sage-200:#bbcdb6;
    --c-sage-100:#dde6da;

    /* Neutrals */
    --c-ink:#0e1a1f;
    --c-slate:#1a2a32;
    --c-body:#3d4f57;
    --c-muted:#6e7e85;
    --c-border:#d8e2e6;
    --c-border-soft:#e8eef0;
    --c-bg:#ffffff;
    --c-bg-cream:#faf6ee;
    --c-bg-bone:#f5ede0;
    --c-bg-soft:#f7faf9;

    /* Status */
    --c-success:#15803d;
    --c-success-bg:#d1fae5;
    --c-error:#b91c1c;
    --c-warning:#92400e;

    /* Typography */
    --font-display:'Newsreader','Source Serif Pro','Iowan Old Style','Apple Garamond',Georgia,'Times New Roman',serif;
    --font-body:'DM Sans',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,Roboto,sans-serif;
    --font-mono:ui-monospace,'SF Mono',Menlo,Consolas,monospace;

    /* Spacing scale (4px base) */
    --s-1:.25rem;
    --s-2:.5rem;
    --s-3:.75rem;
    --s-4:1rem;
    --s-5:1.25rem;
    --s-6:1.5rem;
    --s-8:2rem;
    --s-10:2.5rem;
    --s-12:3rem;
    --s-16:4rem;
    --s-20:5rem;
    --s-24:6rem;

    /* Radius */
    --r-sm:6px;
    --r:10px;
    --r-lg:16px;
    --r-xl:24px;
    --r-pill:999px;

    /* Shadow */
    --sh-sm:0 1px 2px rgba(14,26,31,.06),0 1px 3px rgba(14,26,31,.04);
    --sh:0 4px 12px rgba(14,26,31,.06),0 2px 4px rgba(14,26,31,.04);
    --sh-lg:0 12px 32px rgba(14,26,31,.10),0 4px 12px rgba(14,26,31,.05);
    --sh-xl:0 24px 64px rgba(14,26,31,.14),0 8px 24px rgba(14,26,31,.06);
    --sh-glow:0 0 0 4px rgba(31,87,101,.12);

    /* Layout */
    --max-w:1240px;
    --max-w-narrow:880px;
    --header-h:84px;

    /* Easing */
    --ease:cubic-bezier(.2,.8,.2,1);
    --ease-out:cubic-bezier(.16,1,.3,1);
    --t-fast:.15s;
    --t:.3s;
    --t-slow:.6s;

    /* Legacy aliases (backward compat with v3 markup) */
    --color-primary:var(--c-primary-500);
    --color-primary-dark:var(--c-primary-700);
    --color-primary-light:var(--c-primary-100);
    --color-secondary:var(--c-primary-400);
    --color-text:var(--c-body);
    --color-text-light:var(--c-body);
    --color-text-muted:var(--c-muted);
    --color-bg:var(--c-bg);
    --color-bg-alt:var(--c-bg-cream);
    --color-bg-card:var(--c-bg);
    --color-border:var(--c-border);
    --color-border-light:var(--c-border-soft);
    --font-heading:var(--font-display);
    --max-width:var(--max-w);
    --header-height:var(--header-h);
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}
body{
    font-family:var(--font-body);
    font-size:1rem;
    line-height:1.65;
    color:var(--c-body);
    background:var(--c-bg);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{text-decoration:none;color:var(--c-primary);transition:color var(--t-fast) var(--ease)}
a:hover{color:var(--c-primary-700)}
ul,ol{list-style:none}
button{font-family:inherit}
input,textarea,select,button{font-family:inherit;font-size:inherit}

/* Distinctive serif headings */
h1,h2,h3,h4,h5,h6{
    font-family:var(--font-display);
    font-weight:500; /* Newsreader looks elegant at 500 */
    line-height:1.15;
    color:var(--c-slate);
    letter-spacing:-.01em;
    text-wrap:balance;
}
h1{font-size:clamp(2.25rem,4.5vw,3.75rem);font-weight:500;letter-spacing:-.02em}
h2{font-size:clamp(1.75rem,3.2vw,2.5rem);letter-spacing:-.015em}
h3{font-size:1.25rem}
h4{font-size:1.0625rem;font-family:var(--font-body);font-weight:600;letter-spacing:0}

p{text-wrap:pretty}
::selection{background:var(--c-accent-100);color:var(--c-primary-900)}

/* SVG defaults */
svg:not([class]){fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}

/* Layout primitives */
.container{max-width:var(--max-w);margin:0 auto;padding:0 24px}
.container-narrow{max-width:var(--max-w-narrow);margin:0 auto;padding:0 24px}

/* Skip link */
.skip-link{
    position:absolute;left:-9999px;top:0;
    background:var(--c-primary);color:#fff;padding:12px 20px;
    font-weight:600;border-radius:0 0 var(--r) 0;z-index:99999;
}
.skip-link:focus{left:0}

/* Focus styles */
:focus-visible{outline:2px solid var(--c-primary);outline-offset:3px;border-radius:2px}
button:focus-visible,a.btn-primary:focus-visible,a.btn-secondary:focus-visible,a.btn-cta:focus-visible{outline-offset:4px}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary,.btn-secondary,.btn-cta,.btn-ghost{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:14px 28px;
    font-family:var(--font-body);
    font-size:.9375rem;font-weight:600;
    border-radius:var(--r);
    border:none;cursor:pointer;
    transition:all var(--t) var(--ease);
    white-space:nowrap;
    line-height:1.2;
    letter-spacing:-.005em;
}
.btn-primary{background:var(--c-primary);color:#fff;box-shadow:var(--sh-sm)}
.btn-primary:hover{background:var(--c-primary-700);color:#fff;transform:translateY(-1px);box-shadow:var(--sh)}
.btn-primary:active{transform:translateY(0)}

.btn-secondary{background:transparent;color:var(--c-primary);border:1.5px solid var(--c-primary)}
.btn-secondary:hover{background:var(--c-primary);color:#fff}

.btn-cta{
    background:var(--c-accent-500);color:var(--c-primary-900);
    padding:11px 22px;font-size:.875rem;
    box-shadow:var(--sh-sm);
}
.btn-cta:hover{background:var(--c-accent-400);color:var(--c-primary-900);transform:translateY(-1px);box-shadow:var(--sh)}

.btn-ghost{background:transparent;color:var(--c-primary);padding:10px 16px}
.btn-ghost:hover{background:var(--c-primary-50);color:var(--c-primary-700)}

.btn-sm{padding:9px 18px;font-size:.8125rem}
.btn-lg{padding:18px 36px;font-size:1rem}

/* Arrow nudge on hover */
.btn-primary svg,.btn-secondary svg,.btn-ghost svg,.btn-cta svg{
    width:16px;height:16px;transition:transform var(--t-fast) var(--ease);
}
.btn-primary:hover svg,.btn-secondary:hover svg,.btn-ghost:hover svg,.btn-cta:hover svg{transform:translateX(2px)}

/* ============================================================
   BADGES
   ============================================================ */
.section-badge{
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 14px;
    background:var(--c-primary-100);
    color:var(--c-primary-700);
    font-size:.75rem;font-weight:600;
    text-transform:uppercase;letter-spacing:.08em;
    border-radius:var(--r-pill);
    font-family:var(--font-body);
    margin-bottom:20px;
}
.section-badge::before{
    content:'';width:6px;height:6px;border-radius:50%;
    background:var(--c-primary);
}
.section-badge.badge-accent{background:var(--c-accent-100);color:var(--c-accent-700)}
.section-badge.badge-accent::before{background:var(--c-accent-600)}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
    position:sticky;top:0;z-index:1000;
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(12px) saturate(140%);
    -webkit-backdrop-filter:blur(12px) saturate(140%);
    border-bottom:1px solid var(--c-border-soft);
    height:var(--header-h);
    transition:box-shadow var(--t) var(--ease),background var(--t) var(--ease);
}
.site-header.is-scrolled{
    box-shadow:0 1px 0 rgba(14,26,31,.05),0 8px 24px rgba(14,26,31,.06);
    background:rgba(255,255,255,.96);
}
.header-inner{display:flex;align-items:center;height:100%;max-width:var(--max-w);margin:0 auto;padding:0 24px;gap:32px}

.header-layout-logo-left .header-inner{justify-content:flex-start}
.header-layout-logo-left .site-branding{order:1}
.header-layout-logo-left .main-navigation{order:2;flex:1}
.header-layout-logo-left .header-actions{order:3}

.header-layout-logo-center .header-inner{justify-content:center}
.header-layout-logo-center .main-navigation{order:1;flex:1}
.header-layout-logo-center .main-navigation .nav-menu{justify-content:flex-end}
.header-layout-logo-center .site-branding{order:2;margin:0 30px;white-space:nowrap}
.header-layout-logo-center .header-actions{order:3;flex:1;display:flex;justify-content:flex-start}

.header-layout-logo-right .header-inner{justify-content:flex-start;flex-direction:row-reverse}
.header-layout-logo-right .site-branding{order:1}
.header-layout-logo-right .main-navigation{order:2;flex:1}
.header-layout-logo-right .main-navigation .nav-menu{justify-content:flex-end}
.header-layout-logo-right .header-actions{order:3}

/* Branding */
.site-branding{flex:0 0 auto !important;flex-shrink:0 !important;overflow:visible !important;min-width:0;z-index:2}
.site-branding a{display:flex;align-items:center;gap:12px}
.site-branding .custom-logo{max-height:48px;width:auto}
.site-branding .logo-with-text{display:flex;align-items:center;gap:12px}
.site-branding .site-name-text,.site-title{
    font-family:var(--font-display);
    font-size:1.375rem;font-weight:500;
    color:var(--c-primary);
    letter-spacing:-.01em;
    white-space:nowrap;
    line-height:1;
}

/* When nav has many items, allow menu items to shrink/tighten before branding does */
.main-navigation{min-width:0}
.nav-menu{flex-wrap:nowrap;min-width:0}
@media(min-width:1025px) and (max-width:1280px){
    /* Tighter gaps + slightly smaller text for the squeeze zone */
    .header-inner{gap:20px !important}
    .nav-menu{gap:2px !important}
    .nav-menu a{padding:8px 10px !important;font-size:.9rem !important}
}

/* Navigation */
.main-navigation{display:flex;align-items:center}
.nav-menu{display:flex;align-items:center;gap:4px}
.nav-menu li{position:relative}
.nav-menu li a{
    display:block;padding:9px 16px;
    font-size:.9375rem;font-weight:500;
    color:var(--c-slate);
    border-radius:var(--r-sm);
    transition:all var(--t-fast) var(--ease);
    position:relative;
}
.nav-menu li a:hover{color:var(--c-primary);background:var(--c-primary-50)}
.nav-menu li.current-menu-item>a,.nav-menu li.current_page_item>a,.nav-menu li.current-menu-ancestor>a{
    color:var(--c-primary);background:var(--c-primary-50);
}
.nav-menu li .sub-menu{
    position:absolute;top:calc(100% + 4px);left:0;min-width:240px;
    background:#fff;border:1px solid var(--c-border-soft);
    border-radius:var(--r);box-shadow:var(--sh-lg);
    padding:6px;opacity:0;visibility:hidden;transform:translateY(8px);
    transition:all .2s var(--ease);z-index:100;
}
.nav-menu li:hover>.sub-menu,.nav-menu li:focus-within>.sub-menu{
    opacity:1;visibility:visible;transform:translateY(0);
}
.nav-menu li .sub-menu li a{padding:10px 14px;font-size:.875rem}

/* Header Actions */
.header-actions{display:flex;align-items:center;gap:14px;flex:0 0 auto;flex-shrink:0;min-width:0}

/* Header phone — icon-only pill with hover tooltip showing the number */
.header-phone{
    position:relative;
    display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;
    color:var(--c-primary);
    background:transparent;
    border:1.5px solid var(--c-border-soft);
    border-radius:50%;
    transition:all var(--t-fast) var(--ease);
    flex-shrink:0;
    text-decoration:none;
}
.header-phone:hover,.header-phone:focus-visible{
    color:#fff;
    background:var(--c-primary);
    border-color:var(--c-primary);
    transform:translateY(-1px);
    box-shadow:0 4px 10px -3px rgba(31,87,101,.35);
}
.header-phone svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;flex-shrink:0}
/* Hide accessible text label visually but keep it for screen readers */
.header-phone span{
    position:absolute;
    width:1px;height:1px;
    padding:0;margin:-1px;overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;border:0;
}
/* Tooltip showing the actual number on hover/focus */
.header-phone::after{
    content:attr(aria-label);
    position:absolute;
    top:calc(100% + 8px);
    right:0;
    background:var(--c-slate,#0c3239);
    color:#fff;
    font-size:.75rem;
    font-weight:500;
    padding:6px 10px;
    border-radius:6px;
    white-space:nowrap;
    opacity:0;
    pointer-events:none;
    transform:translateY(-4px);
    transition:all .15s ease;
    z-index:10;
}
.header-phone:hover::after,.header-phone:focus-visible::after{
    opacity:1;
    transform:translateY(0);
}

.btn-cta{flex-shrink:0;white-space:nowrap}

/* Squeeze-zone (1025-1380px): tighten everything before hiding things. */
@media(min-width:1025px) and (max-width:1380px){
    .header-actions{gap:10px !important}
    .btn-cta{padding:9px 14px !important;font-size:.875rem !important}
}

/* Mobile toggle */
.menu-toggle{
    display:none;background:none;border:none;cursor:pointer;
    padding:10px;border-radius:var(--r-sm);
    transition:background var(--t-fast) var(--ease);
}
.menu-toggle:hover{background:var(--c-primary-50)}
.menu-toggle span{
    display:block;width:24px;height:2px;
    background:var(--c-slate);margin:5px 0;
    transition:.3s var(--ease);border-radius:2px;
}
.menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
.menu-toggle.active span:nth-child(2){opacity:0}
.menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}

/* ============================================================
   SECTION COMMON
   ============================================================ */
.section{padding:96px 0}
.section-sm{padding:64px 0}
.section-header{text-align:center;margin-bottom:64px;max-width:720px;margin-left:auto;margin-right:auto}
.section-header.section-header-left{text-align:left;margin-left:0}
.section-eyebrow{
    display:block;font-family:var(--font-body);
    font-size:.75rem;font-weight:600;text-transform:uppercase;
    letter-spacing:.12em;color:var(--c-primary);
    margin-bottom:14px;
}
.section-title{
    font-size:clamp(1.875rem,3.4vw,2.75rem);
    color:var(--c-slate);
    margin-bottom:18px;
    line-height:1.1;
}
.section-subtitle{
    font-size:1.0625rem;color:var(--c-body);
    max-width:640px;margin:0 auto;
    line-height:1.7;
}
.section-header.section-header-left .section-subtitle{margin-left:0;margin-right:0}

/* ============================================================
   HERO
   ============================================================ */
.hero-section{
    position:relative;overflow:hidden;
    padding:80px 0 100px;
    background:
        radial-gradient(circle at 85% 20%,rgba(31,87,101,.06) 0,transparent 45%),
        radial-gradient(circle at 15% 80%,rgba(200,156,74,.05) 0,transparent 50%),
        linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%);
}
.hero-section::before{
    content:'';position:absolute;inset:0;
    background-image:
        repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(31,87,101,.015) 2px,rgba(31,87,101,.015) 4px);
    pointer-events:none;
}
.hero-grid{
    display:grid;grid-template-columns:1.05fr .95fr;gap:64px;
    align-items:center;position:relative;z-index:2;
}
.hero-content{max-width:600px}
.hero-title{
    font-size:clamp(2.5rem,5.5vw,4.25rem);
    font-weight:500;
    line-height:1.05;
    letter-spacing:-.025em;
    color:var(--c-slate);
    margin:18px 0 24px;
}
.hero-title em{font-style:italic;color:var(--c-primary);font-weight:400}
.hero-subtitle{
    font-size:1.1875rem;
    color:var(--c-body);
    line-height:1.7;
    margin-bottom:36px;
    max-width:540px;
}
.hero-buttons{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px}
.hero-meta{
    display:flex;flex-wrap:wrap;gap:20px 32px;
    padding-top:32px;border-top:1px solid var(--c-border);
}
.hero-meta-item{
    display:flex;align-items:center;gap:10px;
    font-size:.875rem;color:var(--c-muted);
}
.hero-meta-item svg{width:18px;height:18px;stroke:var(--c-primary);stroke-width:2}
.hero-meta-item strong{color:var(--c-slate);font-weight:600;font-family:var(--font-body)}

/* Hero visual */
.hero-visual{
    position:relative;aspect-ratio:1/1.1;
    border-radius:var(--r-xl);overflow:hidden;
    background:linear-gradient(135deg,var(--c-primary-100) 0%,var(--c-sage-100) 100%);
    box-shadow:var(--sh-xl);
}
.hero-visual.has-image{background:none}
.hero-visual .hero-bg-image{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;
}
.hero-visual::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 50%,rgba(14,26,31,.18) 100%);
}
.hero-visual-placeholder{
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    color:var(--c-primary-400);
}
.hero-visual-placeholder svg{width:120px;height:120px;opacity:.4;stroke-width:1}

/* Floating stat card */
.hero-stat-card{
    position:absolute;bottom:24px;left:24px;right:24px;
    background:#fff;
    padding:20px 22px;
    border-radius:var(--r);
    box-shadow:var(--sh-lg);
    display:flex;align-items:center;gap:16px;
    border:1px solid var(--c-border-soft);
}
.hero-stat-icon{
    flex-shrink:0;width:44px;height:44px;
    background:var(--c-primary-50);border-radius:var(--r-sm);
    display:flex;align-items:center;justify-content:center;
    color:var(--c-primary);
}
.hero-stat-icon svg{width:22px;height:22px}
.hero-stat-text strong{
    display:block;font-family:var(--font-display);
    font-size:1.125rem;color:var(--c-slate);
    font-weight:600;line-height:1.2;
}
.hero-stat-text span{font-size:.8125rem;color:var(--c-muted)}

/* ============================================================
   TRUST STRIP (under hero)
   ============================================================ */
.trust-strip{
    background:var(--c-bg);
    padding:32px 0;
    border-bottom:1px solid var(--c-border-soft);
}
.trust-strip-inner{
    display:flex;align-items:center;justify-content:center;
    flex-wrap:wrap;gap:40px 56px;
}
.trust-item{
    display:inline-flex;align-items:center;gap:10px;
    font-size:.875rem;font-weight:500;color:var(--c-slate);
}
.trust-item svg{
    width:20px;height:20px;
    stroke:var(--c-primary);stroke-width:2;
}
.trust-item strong{
    font-family:var(--font-body);font-weight:600;
    color:var(--c-slate);
}
.trust-item-divider{display:none;width:1px;height:24px;background:var(--c-border)}
@media(min-width:900px){
    .trust-item-divider{display:block}
}

/* ============================================================
   FEATURES (Why Choose)
   ============================================================ */
.features-section{padding:96px 0;background:var(--c-bg)}
.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.feature-card{
    background:var(--c-bg);
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    padding:32px 28px;
    transition:all var(--t) var(--ease);
    position:relative;
}
.feature-card:hover{
    transform:translateY(-3px);
    border-color:var(--c-primary-200);
    box-shadow:var(--sh-lg);
}
.feature-icon{
    width:52px;height:52px;
    background:linear-gradient(135deg,var(--c-primary-50) 0%,var(--c-primary-100) 100%);
    border-radius:var(--r);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:22px;
    color:var(--c-primary);
}
.feature-icon svg{width:26px;height:26px;stroke-width:1.75}
.feature-card h3{
    font-family:var(--font-display);font-weight:600;
    font-size:1.1875rem;color:var(--c-slate);
    margin-bottom:10px;line-height:1.25;
}
.feature-card p{font-size:.9375rem;color:var(--c-body);line-height:1.65}

/* ============================================================
   SERVICES (cards with proper a11y)
   ============================================================ */
.services-section{
    padding:96px 0;
    background:var(--c-bg-cream);
    background-image:
        radial-gradient(circle at 100% 0,rgba(31,87,101,.04) 0,transparent 40%);
}
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.service-card{
    position:relative;perspective:1200px;
    min-height:380px;
}
.service-card-inner{
    position:relative;width:100%;height:100%;min-height:380px;
    transition:transform .6s var(--ease-out);
    transform-style:preserve-3d;
}
.service-card.is-flipped .service-card-inner{transform:rotateY(180deg)}
.service-card-front,.service-card-back{
    position:absolute;inset:0;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    padding:32px 28px;
    display:flex;flex-direction:column;
    text-align:left;
    cursor:pointer;
    transition:border-color var(--t) var(--ease),box-shadow var(--t) var(--ease);
}
.service-card-front:hover{border-color:var(--c-primary-200);box-shadow:var(--sh)}
.service-card-back{
    transform:rotateY(180deg);
    background:linear-gradient(160deg,var(--c-primary-700) 0%,var(--c-primary-500) 100%);
    color:rgba(255,255,255,.95);
    border-color:var(--c-primary-700);
}
.service-card-back h3{color:#fff}
.service-card-back p{color:rgba(255,255,255,.92);font-size:.9375rem;line-height:1.65;flex:1}
.service-icon{
    width:52px;height:52px;
    background:linear-gradient(135deg,var(--c-primary-50) 0%,var(--c-primary-100) 100%);
    border-radius:var(--r);
    display:flex;align-items:center;justify-content:center;
    margin-bottom:22px;color:var(--c-primary);
}
.service-icon svg{width:26px;height:26px;stroke-width:1.75}
.service-icon-back{
    background:rgba(255,255,255,.16);
    color:#fff;
}
.service-icon-back svg{stroke:#fff}
.service-card h3{
    font-family:var(--font-display);font-weight:600;
    font-size:1.1875rem;margin-bottom:12px;
    line-height:1.25;
}
.service-card-front p{
    font-size:.9375rem;color:var(--c-body);
    line-height:1.65;flex:1;
}
.service-flip-btn{
    margin-top:auto;
    padding:10px 14px;
    border:1px solid var(--c-border);
    background:transparent;
    border-radius:var(--r-sm);
    font-size:.8125rem;font-weight:500;
    color:var(--c-primary);
    cursor:pointer;display:inline-flex;align-items:center;gap:6px;
    align-self:flex-start;
    transition:all var(--t-fast) var(--ease);
}
.service-flip-btn:hover{border-color:var(--c-primary);background:var(--c-primary-50)}
.service-card-back .service-flip-btn{
    color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);
}
.service-card-back .service-flip-btn:hover{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.5)}
.service-flip-btn svg{width:14px;height:14px}

/* ============================================================
   PROCESS (4-step "How care begins")
   ============================================================ */
.process-section{padding:96px 0;background:var(--c-bg)}
.process-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:24px;
    counter-reset:process-step;
    position:relative;
}
.process-step{
    position:relative;padding:32px 24px;
    background:var(--c-bg);
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    transition:all var(--t) var(--ease);
}
.process-step:hover{border-color:var(--c-primary-200);box-shadow:var(--sh)}
.process-step::before{
    counter-increment:process-step;
    content:"0" counter(process-step);
    position:absolute;top:24px;right:24px;
    font-family:var(--font-display);
    font-size:1.875rem;font-weight:300;
    color:var(--c-primary-200);
    line-height:1;
    letter-spacing:-.02em;
}
.process-icon{
    width:48px;height:48px;
    background:var(--c-primary-50);
    color:var(--c-primary);
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    margin-bottom:20px;
}
.process-icon svg{width:22px;height:22px;stroke-width:2}
.process-step h3{
    font-family:var(--font-display);font-weight:600;
    font-size:1.125rem;color:var(--c-slate);
    margin-bottom:10px;
}
.process-step p{font-size:.9375rem;color:var(--c-body);line-height:1.65}

/* ============================================================
   STATS / IMPACT
   ============================================================ */
.stats-section{
    padding:80px 0;
    background:var(--c-primary-700);
    color:#fff;
    position:relative;overflow:hidden;
}
.stats-section::before{
    content:'';position:absolute;inset:0;
    background:
        radial-gradient(circle at 0 0,rgba(255,255,255,.06) 0,transparent 40%),
        radial-gradient(circle at 100% 100%,rgba(200,156,74,.10) 0,transparent 40%);
    pointer-events:none;
}
.stats-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:48px;
    position:relative;z-index:2;
}
.stat-item{text-align:center}
.stat-number{
    font-family:var(--font-display);font-weight:400;
    font-size:clamp(2.25rem,4vw,3.25rem);
    color:#fff;line-height:1;
    letter-spacing:-.03em;margin-bottom:8px;
}
.stat-number .stat-suffix{
    font-size:.55em;color:var(--c-accent-400);
    font-weight:300;
}
.stat-label{
    font-size:.875rem;color:rgba(255,255,255,.8);
    text-transform:uppercase;letter-spacing:.08em;
    font-weight:500;
}

/* ============================================================
   SERVICE AREAS
   ============================================================ */
.areas-section{padding:96px 0;background:var(--c-bg-cream)}
.areas-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.areas-intro h2{margin-bottom:16px}
.areas-intro p{color:var(--c-body);font-size:1.0625rem;line-height:1.7;margin-bottom:24px}
.areas-list{
    display:grid;grid-template-columns:1fr 1fr;
    gap:8px 16px;
    background:#fff;padding:32px;
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    box-shadow:var(--sh-sm);
}
.areas-list li{
    display:flex;align-items:center;gap:8px;
    font-size:.9375rem;color:var(--c-slate);
    padding:8px 0;
}
.areas-list li svg{
    width:14px;height:14px;flex-shrink:0;
    stroke:var(--c-primary);stroke-width:2.5;
}
.areas-note{
    margin-top:18px;
    font-size:.875rem;color:var(--c-muted);
    line-height:1.6;
}

/* ============================================================
   TEAM / LEADERSHIP
   ============================================================ */
.team-section{padding:96px 0;background:var(--c-bg)}
.team-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
    gap:32px;
}
.team-card{
    background:var(--c-bg);
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    overflow:hidden;
    transition:all var(--t) var(--ease);
}
.team-card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:var(--c-primary-200)}
.team-photo{
    aspect-ratio:1/1;
    background:linear-gradient(135deg,var(--c-primary-100) 0%,var(--c-sage-100) 100%);
    display:flex;align-items:center;justify-content:center;
    color:var(--c-primary-300);
}
.team-photo svg{width:60px;height:60px;opacity:.5;stroke-width:1}
.team-photo img{width:100%;height:100%;object-fit:cover;display:block}
.team-info{padding:24px 24px 28px}
.team-name{
    font-family:var(--font-display);font-weight:600;
    font-size:1.25rem;color:var(--c-slate);
    margin-bottom:4px;
}
.team-role{
    font-size:.8125rem;text-transform:uppercase;
    letter-spacing:.08em;color:var(--c-primary);
    font-weight:600;margin-bottom:14px;
}
.team-bio{font-size:.9375rem;color:var(--c-body);line-height:1.65}

/* ============================================================
   INSURANCE / PAYMENT
   ============================================================ */
.payment-section{
    padding:96px 0;
    background:var(--c-bg-cream);
}
.payment-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:64px;
    align-items:start;
}
.payment-content h2{margin-bottom:18px}
.payment-content>p{color:var(--c-body);font-size:1.0625rem;line-height:1.7;margin-bottom:28px}
.payment-list{margin-bottom:28px}
.payment-list li{
    display:flex;gap:14px;align-items:flex-start;
    padding:14px 0;border-bottom:1px solid var(--c-border-soft);
}
.payment-list li:last-child{border-bottom:none}
.payment-list li svg{
    width:20px;height:20px;flex-shrink:0;
    stroke:var(--c-primary);stroke-width:2;margin-top:2px;
}
.payment-list li strong{display:block;color:var(--c-slate);font-weight:600;margin-bottom:2px;font-family:var(--font-body)}
.payment-list li span{font-size:.875rem;color:var(--c-muted);line-height:1.6}
.payment-note{
    background:#fff;border-left:3px solid var(--c-accent-500);
    padding:18px 22px;border-radius:var(--r-sm);
    font-size:.9375rem;color:var(--c-body);line-height:1.65;
}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testimonials-section{padding:96px 0;background:var(--c-bg)}
.testimonials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.testimonial-card{
    background:var(--c-bg);
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    padding:36px 32px;
    position:relative;
    transition:all var(--t) var(--ease);
}
.testimonial-card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:var(--c-primary-200)}
.testimonial-card::before{
    content:'"';
    position:absolute;top:16px;right:24px;
    font-family:var(--font-display);
    font-size:5rem;line-height:1;
    color:var(--c-primary-100);
    font-weight:600;
}
.testimonial-stars{
    color:var(--c-accent-500);font-size:1.125rem;
    letter-spacing:3px;margin-bottom:18px;
    position:relative;z-index:2;
}
.testimonial-text{
    font-family:var(--font-display);
    font-size:1.0625rem;color:var(--c-slate);
    line-height:1.6;margin-bottom:24px;
    font-style:italic;font-weight:400;
    position:relative;z-index:2;
}
.testimonial-author{
    font-family:var(--font-body);font-weight:600;
    font-size:.9375rem;color:var(--c-slate);
}
.testimonial-role{font-size:.8125rem;color:var(--c-muted);margin-top:2px}

/* ============================================================
   CTA
   ============================================================ */
.cta-section{
    padding:96px 0;
    background:linear-gradient(135deg,var(--c-primary-800) 0%,var(--c-primary-600) 100%);
    color:#fff;text-align:center;
    position:relative;overflow:hidden;
}
.cta-section::before{
    content:'';position:absolute;inset:0;
    background:
        radial-gradient(circle at 20% 30%,rgba(255,255,255,.05) 0,transparent 35%),
        radial-gradient(circle at 80% 70%,rgba(200,156,74,.08) 0,transparent 35%);
    pointer-events:none;
}
.cta-section .container{position:relative;z-index:2}
.cta-section .section-title{color:#fff;font-size:clamp(2rem,3.6vw,2.875rem)}
.cta-section .section-subtitle{color:rgba(255,255,255,.85);max-width:600px;margin:0 auto}
.cta-buttons{display:flex;justify-content:center;gap:14px;margin-top:36px;flex-wrap:wrap}
.cta-section .btn-primary{background:var(--c-accent-500);color:var(--c-primary-900)}
.cta-section .btn-primary:hover{background:var(--c-accent-400);color:var(--c-primary-900)}
.cta-section .btn-secondary{border-color:rgba(255,255,255,.6);color:#fff}
.cta-section .btn-secondary:hover{background:#fff;color:var(--c-primary-700);border-color:#fff}

/* ============================================================
   FAQ
   ============================================================ */
.faq-hero{
    padding:80px 0 48px;
    background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%);
    text-align:center;
}
.faq-section{padding:0 0 96px;background:var(--c-bg-cream)}
.faq-tabs{
    display:flex;justify-content:center;gap:8px;
    margin-bottom:40px;flex-wrap:wrap;
}
.faq-tab{
    padding:9px 20px;
    border:1px solid var(--c-border);
    border-radius:var(--r-pill);
    font-size:.875rem;font-weight:500;
    cursor:pointer;transition:all var(--t-fast) var(--ease);
    background:#fff;color:var(--c-slate);
    text-decoration:none;display:inline-block;
}
.faq-tab:hover{border-color:var(--c-primary);color:var(--c-primary)}
.faq-tab.active{
    background:var(--c-primary);color:#fff;
    border-color:var(--c-primary);
}
.faq-search{
    max-width:520px;margin:0 auto 32px;
    position:relative;
}
.faq-search input{
    width:100%;padding:14px 20px 14px 48px;
    border:1px solid var(--c-border);
    border-radius:var(--r);
    font-size:.9375rem;background:#fff;
    transition:all var(--t-fast) var(--ease);
}
.faq-search input:focus{outline:none;border-color:var(--c-primary);box-shadow:var(--sh-glow)}
.faq-search svg{
    position:absolute;left:18px;top:50%;transform:translateY(-50%);
    width:18px;height:18px;stroke:var(--c-muted);
    pointer-events:none;
}
.faq-list{max-width:820px;margin:0 auto}
.faq-item{
    border:1px solid var(--c-border-soft);
    border-radius:var(--r);
    margin-bottom:10px;overflow:hidden;
    background:#fff;
    transition:border-color var(--t-fast) var(--ease);
}
.faq-item.is-open{border-color:var(--c-primary-200)}
.faq-question{
    display:flex;justify-content:space-between;align-items:center;
    width:100%;padding:20px 24px;
    cursor:pointer;font-family:var(--font-display);
    font-size:1.0625rem;font-weight:500;color:var(--c-slate);
    background:none;border:none;text-align:left;gap:16px;
    transition:background var(--t-fast) var(--ease);
    line-height:1.4;
}
.faq-question:hover{background:var(--c-primary-50)}
.faq-toggle{
    width:28px;height:28px;min-width:28px;
    border-radius:50%;
    background:var(--c-primary-50);
    display:flex;align-items:center;justify-content:center;
    transition:transform var(--t) var(--ease),background var(--t-fast) var(--ease);
    color:var(--c-primary);
}
.faq-item.is-open .faq-toggle{transform:rotate(180deg);background:var(--c-primary-100)}
.faq-toggle svg{width:14px;height:14px;stroke-width:2.5}
.faq-answer{
    padding:0 24px;max-height:0;overflow:hidden;
    transition:all var(--t) var(--ease);
    color:var(--c-body);line-height:1.7;
    font-size:.9375rem;
}
.faq-item.is-open .faq-answer{padding:0 24px 22px;max-height:1200px}
.faq-answer p{margin-bottom:12px}
.faq-answer p:last-child{margin-bottom:0}
.faq-answer ul,.faq-answer ol{margin:8px 0 12px 22px;list-style:disc}
.faq-answer ol{list-style:decimal}
.faq-answer li{margin-bottom:6px}
.faq-answer strong{color:var(--c-slate);font-weight:600}
.faq-empty{
    text-align:center;padding:60px 20px;
    color:var(--c-muted);font-size:1rem;
}

/* Resources */
.resources-section{padding:80px 0;background:var(--c-bg)}
.resources-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.resource-card{
    background:var(--c-bg);
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);padding:28px;
    transition:all var(--t) var(--ease);
}
.resource-card:hover{transform:translateY(-3px);box-shadow:var(--sh);border-color:var(--c-primary-200)}
.resource-type{
    font-size:.75rem;text-transform:uppercase;
    letter-spacing:.08em;color:var(--c-primary);
    font-weight:600;margin-bottom:10px;
}
.resource-card h3{
    font-family:var(--font-display);font-weight:600;
    font-size:1.125rem;margin-bottom:10px;
}
.resource-card h3 a{color:var(--c-slate)}
.resource-card h3 a:hover{color:var(--c-primary)}
.resource-card p{font-size:.875rem;color:var(--c-body);line-height:1.65}

/* ============================================================
   CAREERS
   ============================================================ */
.careers-hero{
    padding:80px 0 60px;
    background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%);
    text-align:center;
}
.careers-section{padding:0 0 96px;background:var(--c-bg-cream)}
.careers-filters{
    display:flex;gap:8px;flex-wrap:wrap;
    margin-bottom:32px;justify-content:center;
}
.jobs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.job-card{
    background:#fff;
    border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    padding:32px;transition:all var(--t) var(--ease);
    display:flex;flex-direction:column;
    position:relative;
}
.job-card:hover{transform:translateY(-3px);box-shadow:var(--sh-lg);border-color:var(--c-primary-200)}
.job-card.featured{
    border-left:3px solid var(--c-accent-500);
}
.job-card.featured::before{
    content:'★ Featured';
    position:absolute;top:24px;right:24px;
    font-size:.6875rem;font-weight:600;
    color:var(--c-accent-700);background:var(--c-accent-100);
    padding:3px 10px;border-radius:var(--r-pill);
    letter-spacing:.04em;
}
.job-card h3{
    font-family:var(--font-display);font-weight:600;
    font-size:1.375rem;margin-bottom:12px;line-height:1.25;
}
.job-card h3 a{color:var(--c-slate)}
.job-card h3 a:hover{color:var(--c-primary)}
.job-meta{
    display:flex;flex-wrap:wrap;gap:14px;
    margin-bottom:16px;font-size:.875rem;color:var(--c-muted);
}
.job-meta-item{display:inline-flex;align-items:center;gap:6px}
.job-meta-item svg{width:14px;height:14px;stroke-width:2}
.job-card .job-excerpt{
    font-size:.9375rem;color:var(--c-body);
    line-height:1.65;flex:1;margin-bottom:20px;
}
.job-card-footer{
    display:flex;justify-content:space-between;align-items:center;
    margin-top:auto;
}
.job-badge{
    display:inline-block;padding:5px 12px;
    background:var(--c-primary-50);color:var(--c-primary);
    font-size:.75rem;font-weight:600;
    border-radius:var(--r-pill);letter-spacing:.02em;
}
.no-jobs{
    text-align:center;padding:80px 20px;
    background:#fff;border-radius:var(--r-lg);
    border:1px dashed var(--c-border);
}
.no-jobs p{color:var(--c-muted);font-size:1.0625rem}

/* Single Job */
.single-job-header{
    padding:56px 0 40px;
    background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%);
}
.single-job-header .breadcrumb{
    font-size:.8125rem;color:var(--c-muted);margin-bottom:18px;
    letter-spacing:.02em;
}
.single-job-header .breadcrumb a{color:var(--c-primary);font-weight:500}
.single-job-header h1{
    font-size:clamp(2rem,3.4vw,2.75rem);
    margin-bottom:20px;
}
.job-details-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.job-detail-chip{
    display:inline-flex;align-items:center;gap:6px;
    padding:8px 14px;
    background:#fff;border:1px solid var(--c-border);
    border-radius:var(--r-pill);
    font-size:.8125rem;color:var(--c-slate);font-weight:500;
}
.job-detail-chip svg{width:14px;height:14px;stroke:var(--c-primary);stroke-width:2}
.single-job-content{padding:0 0 96px;background:var(--c-bg-cream)}
.job-content-grid{display:grid;grid-template-columns:2fr 1fr;gap:48px;align-items:start;padding-top:48px}
.job-description{font-size:1rem;line-height:1.8;color:var(--c-body)}
.job-description h2,.job-description h3{
    font-family:var(--font-display);font-weight:600;
    margin:36px 0 14px;color:var(--c-slate);
}
.job-description h2{font-size:1.5rem}
.job-description h3{font-size:1.25rem}
.job-description ul,.job-description ol{margin:14px 0 18px 22px;list-style:disc}
.job-description ol{list-style:decimal}
.job-description li{margin-bottom:8px}
.job-description p{margin-bottom:18px}
.job-sidebar{position:sticky;top:104px}
.job-sidebar-card{
    background:#fff;border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);padding:32px;box-shadow:var(--sh-sm);
}
.job-sidebar-card h3{
    font-family:var(--font-display);font-size:1.125rem;
    margin-bottom:22px;padding-bottom:16px;
    border-bottom:1px solid var(--c-border-soft);
}
.job-sidebar-item{margin-bottom:18px}
.job-sidebar-item label{
    display:block;font-size:.6875rem;
    text-transform:uppercase;letter-spacing:.1em;
    color:var(--c-muted);font-weight:600;margin-bottom:4px;
}
.job-sidebar-item p{font-size:.9375rem;color:var(--c-slate)}

/* Application Form */
.application-section{padding:64px 0 96px;background:var(--c-bg)}
.application-form{
    max-width:720px;margin:0 auto;
    background:#fff;border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);padding:48px;
    box-shadow:var(--sh-sm);
}
.application-form h2{
    font-family:var(--font-display);font-weight:600;
    font-size:1.75rem;margin-bottom:8px;text-align:center;
}
.application-form .form-subtitle{
    text-align:center;color:var(--c-muted);
    margin-bottom:32px;font-size:.9375rem;
}

/* ============================================================
   FORMS (shared)
   ============================================================ */
.form-group{margin-bottom:20px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-group label{
    display:block;font-size:.8125rem;
    font-weight:600;color:var(--c-slate);
    margin-bottom:6px;letter-spacing:.005em;
}
.form-group label .required{color:var(--c-error)}
.form-group input,.form-group textarea,.form-group select{
    width:100%;padding:12px 16px;
    border:1px solid var(--c-border);
    border-radius:var(--r-sm);
    font-size:.9375rem;font-family:var(--font-body);
    transition:all var(--t-fast) var(--ease);
    background:#fff;color:var(--c-slate);
}
.form-group input:focus,.form-group textarea:focus,.form-group select:focus{
    outline:none;border-color:var(--c-primary);
    box-shadow:var(--sh-glow);
}
.form-group textarea{min-height:140px;resize:vertical}
.form-group input,.form-group textarea{cursor:text}
.form-group select{cursor:pointer}

/* File input */
.file-input-wrapper{
    position:relative;border:2px dashed var(--c-border);
    border-radius:var(--r);padding:28px;text-align:center;
    cursor:pointer;transition:all var(--t-fast) var(--ease);
    background:var(--c-bg-soft);
}
.file-input-wrapper:hover{border-color:var(--c-primary);background:var(--c-primary-50)}
.file-input-wrapper input[type="file"]{position:absolute;inset:0;opacity:0;cursor:pointer}
.file-input-wrapper .upload-text{color:var(--c-muted);font-size:.875rem}
.file-input-wrapper .upload-text strong{
    color:var(--c-primary);display:block;
    margin-bottom:4px;font-size:1rem;
}
.application-form .btn-primary{width:100%;padding:16px;font-size:1rem}

.alert-success{
    padding:18px 22px;
    background:var(--c-success-bg);border:1px solid #a7f3d0;
    border-radius:var(--r-sm);
    margin-bottom:24px;color:var(--c-success);
    text-align:center;font-weight:500;
}

/* ============================================================
   CONTACT
   ============================================================ */
.contact-hero{
    padding:80px 0 60px;
    background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%);
    text-align:center;
}
.contact-hero .section-title{font-size:clamp(2rem,3.4vw,2.75rem)}

.contact-cards-section{padding:0 0 64px;background:var(--c-bg-cream);margin-top:-30px;position:relative;z-index:2}
.contact-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.contact-card-item{
    display:block;
    background:#fff;border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);
    padding:36px 28px;text-align:center;
    transition:all var(--t) var(--ease);
    box-shadow:var(--sh-sm);
    text-decoration:none;color:inherit;
}
.contact-card-item:hover{
    transform:translateY(-3px);
    box-shadow:var(--sh-lg);
    border-color:var(--c-primary-200);
    color:inherit;
}
.contact-card-icon{
    width:56px;height:56px;
    background:var(--c-primary);
    border-radius:var(--r);
    display:flex;align-items:center;justify-content:center;
    margin:0 auto 20px;color:#fff;
}
.contact-card-icon svg{width:24px;height:24px;stroke-width:2}
.contact-card-item h3{
    font-family:var(--font-display);font-weight:600;
    font-size:1.1875rem;margin-bottom:8px;color:var(--c-slate);
}
.contact-card-item p{font-size:.9375rem;color:var(--c-slate);line-height:1.5}
.contact-card-item p a{color:var(--c-primary);font-weight:500}
.contact-card-note{
    display:block;margin-top:10px;
    font-size:.8125rem;color:var(--c-muted);
}

.contact-form-section{padding:64px 0 96px;background:var(--c-bg)}
.contact-form-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:64px;align-items:start}
.contact-form-info h2{
    font-family:var(--font-display);font-weight:500;
    font-size:clamp(1.75rem,2.6vw,2.25rem);
    margin-bottom:18px;
}
.contact-form-info>p{
    font-size:1rem;color:var(--c-body);
    line-height:1.7;margin-bottom:32px;
}
.contact-form-details{display:flex;flex-direction:column;gap:18px}
.cfd-item{display:flex;gap:14px;align-items:flex-start}
.cfd-item svg{
    width:22px;height:22px;min-width:22px;
    stroke:var(--c-primary);stroke-width:2;margin-top:2px;
}
.cfd-item strong{
    display:block;font-size:.9375rem;
    color:var(--c-slate);font-weight:600;
    margin-bottom:2px;font-family:var(--font-body);
}
.cfd-item span{font-size:.875rem;color:var(--c-muted);line-height:1.5}
.contact-form-card{
    background:#fff;border:1px solid var(--c-border-soft);
    border-radius:var(--r-lg);padding:40px;
    box-shadow:var(--sh-sm);
}
.contact-form-card .btn-primary{width:100%}
.contact-map-section{background:var(--c-bg-cream)}
.contact-map-section iframe{filter:saturate(.88) contrast(1.02);display:block}

/* Contact success overlay */
.contact-success-overlay{
    display:none;position:fixed;inset:0;z-index:10001;
    background:rgba(14,26,31,.55);backdrop-filter:blur(4px);
    align-items:center;justify-content:center;padding:20px;
}
.contact-success-overlay.active{display:flex}
.contact-success-modal{
    background:#fff;border-radius:var(--r-lg);
    padding:48px 40px;text-align:center;
    max-width:440px;width:100%;
    box-shadow:var(--sh-xl);
    animation:popIn .3s var(--ease-out);
}
@keyframes popIn{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.contact-success-icon{
    width:64px;height:64px;
    background:var(--c-success-bg);
    color:var(--c-success);
    border-radius:50%;display:flex;align-items:center;justify-content:center;
    font-size:1.875rem;margin:0 auto 20px;
}
.contact-success-modal h3{
    font-family:var(--font-display);font-weight:600;
    font-size:1.5rem;margin-bottom:10px;
}
.contact-success-modal p{
    color:var(--c-body);margin-bottom:24px;
    line-height:1.6;
}

/* ============================================================
   BOOKING OVERLAY
   ============================================================ */
.booking-overlay{
    display:none;position:fixed;inset:0;z-index:10000;
    background:rgba(14,26,31,.65);
    backdrop-filter:blur(4px);
    align-items:center;justify-content:center;padding:20px;
    animation:fadeInOverlay .3s var(--ease);
}
.booking-overlay.active{display:flex}
@keyframes fadeInOverlay{from{opacity:0}to{opacity:1}}
.booking-modal{
    position:relative;width:100%;max-width:920px;height:85vh;
    background:#fff;border-radius:var(--r-lg);
    overflow:hidden;box-shadow:var(--sh-xl);
    animation:slideUp .3s var(--ease-out);
}
@keyframes slideUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.booking-modal::after{
    content:'Loading booking calendar...';
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    font-size:.9375rem;color:var(--c-muted);z-index:0;
}
.booking-modal-header{
    display:flex;justify-content:space-between;align-items:center;
    padding:14px 22px;
    background:var(--c-primary-700);color:#fff;
    position:relative;z-index:2;
}
.booking-modal-header h3{
    font-family:var(--font-body);font-weight:600;
    font-size:1.0625rem;color:#fff;
}
.booking-close{
    background:rgba(255,255,255,.16);border:none;color:#fff;
    width:36px;height:36px;border-radius:var(--r-sm);
    font-size:1.25rem;cursor:pointer;display:flex;
    align-items:center;justify-content:center;
    transition:background var(--t-fast) var(--ease);
}
.booking-close:hover{background:rgba(255,255,255,.26)}
.booking-modal iframe{width:100%;height:calc(100% - 56px);border:none;background:#fff;position:relative;z-index:1}

/* ============================================================
   STICKY MOBILE CTA BAR
   ============================================================ */
.mobile-cta-bar{
    display:none;position:fixed;bottom:0;left:0;right:0;
    background:#fff;border-top:1px solid var(--c-border);
    box-shadow:0 -4px 16px rgba(14,26,31,.08);
    z-index:998;
    padding:10px 14px;
}
.mobile-cta-inner{display:flex;gap:8px}
.mobile-cta-inner a{
    flex:1;display:flex;align-items:center;justify-content:center;gap:6px;
    padding:12px;font-size:.8125rem;font-weight:600;
    border-radius:var(--r-sm);
    text-decoration:none;
}
.mobile-cta-inner .mcta-call{
    background:var(--c-primary);color:#fff;
}
.mobile-cta-inner .mcta-contact{
    background:var(--c-accent-500);color:var(--c-primary-900);
}
.mobile-cta-inner svg{width:14px;height:14px;stroke-width:2.5}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{
    background:var(--c-primary-900);
    color:rgba(255,255,255,.72);
    padding:64px 0 0;
    font-size:.9375rem;
}
.footer-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:48px;
    padding-bottom:48px;
    border-bottom:1px solid rgba(255,255,255,.08);
}
.footer-brand{
    color:#fff;
    font-family:var(--font-display);
    font-size:1.5rem;font-weight:500;
    margin-bottom:16px;letter-spacing:-.01em;
}
.footer-about p{
    font-size:.875rem;line-height:1.7;
    color:rgba(255,255,255,.6);margin-bottom:20px;
}
.footer-license{
    display:inline-flex;align-items:center;gap:8px;
    padding:6px 12px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(255,255,255,.1);
    border-radius:var(--r-pill);
    font-size:.75rem;color:rgba(255,255,255,.7);
    margin-top:8px;
}
.footer-license svg{width:14px;height:14px;stroke:var(--c-accent-400)}
.footer-col h4{
    color:#fff;font-family:var(--font-body);
    font-size:.8125rem;font-weight:600;
    text-transform:uppercase;letter-spacing:.1em;
    margin-bottom:18px;
}
.footer-col ul li{
    margin-bottom:10px;font-size:.875rem;
}
.footer-col ul li a{
    color:rgba(255,255,255,.65);
    transition:color var(--t-fast) var(--ease);
    display:inline-flex;align-items:center;gap:8px;
}
.footer-col ul li a:hover{color:#fff}
.footer-col ul li svg{
    width:14px;height:14px;min-width:14px;
    stroke:rgba(255,255,255,.5);stroke-width:2;
    transition:stroke var(--t-fast) var(--ease);
}
.footer-col ul li a:hover svg{stroke:var(--c-accent-400)}
.footer-bottom{
    padding:20px 0;text-align:center;
    font-size:.8125rem;color:rgba(255,255,255,.45);
}
.footer-bottom a{color:rgba(255,255,255,.65)}
.footer-bottom a:hover{color:#fff}

/* ============================================================
   PAGES (generic)
   ============================================================ */
.elementor-content-area:empty{display:none}
.page-content,.entry-content{padding:60px 0}
.wp-block-image img{border-radius:var(--r-sm)}
.alignwide{max-width:1100px;margin-left:auto;margin-right:auto}
.alignfull{width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw}
.pagination{display:flex;justify-content:center;gap:8px;margin-top:48px;flex-wrap:wrap}
.pagination a,.pagination span{
    padding:9px 16px;border:1px solid var(--c-border);
    border-radius:var(--r-sm);font-size:.875rem;color:var(--c-slate);
    text-decoration:none;
}
.pagination a:hover{border-color:var(--c-primary);color:var(--c-primary)}
.pagination .current{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}

/* 404 */
.error-404{
    padding:120px 0;text-align:center;
    background:linear-gradient(180deg,#fff 0%,var(--c-bg-cream) 100%);
    min-height:60vh;
}
.error-404 .error-num{
    font-family:var(--font-display);font-weight:300;
    font-size:clamp(5rem,12vw,9rem);
    color:var(--c-primary-200);line-height:1;
    letter-spacing:-.05em;margin-bottom:0;
}
.error-404 h1{
    font-size:clamp(1.75rem,3vw,2.5rem);
    margin-bottom:14px;
}
.error-404 p{
    font-size:1.0625rem;color:var(--c-body);
    margin-bottom:28px;max-width:480px;
    margin-left:auto;margin-right:auto;
}
.error-404 .error-actions{display:inline-flex;gap:12px;flex-wrap:wrap;justify-content:center}

/* ============================================================
   REVEAL ANIMATIONS
   ============================================================ */
.reveal{
    opacity:0;transform:translateY(16px);
    transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);
}
.reveal.is-visible{opacity:1;transform:translateY(0)}
@media(prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1100px){
    .features-grid,.services-grid,.process-grid{grid-template-columns:repeat(2,1fr)}
    .stats-grid{grid-template-columns:repeat(2,1fr);gap:32px}
    .testimonials-grid,.resources-grid{grid-template-columns:1fr 1fr}
    .footer-grid{grid-template-columns:1.5fr 1fr 1fr;gap:32px}
    .hero-grid{gap:40px}
    .areas-grid,.payment-grid{grid-template-columns:1fr;gap:40px}
    .job-content-grid{grid-template-columns:1fr;gap:32px}
    .job-sidebar{position:static}
    .contact-form-grid{grid-template-columns:1fr;gap:48px}
}
@media(max-width:768px){
    :root{--header-h:72px}
    .section{padding:64px 0}
    .features-section,.services-section,.process-section,.team-section,.payment-section,.areas-section,.testimonials-section,.cta-section{padding:64px 0}
    .stats-section{padding:56px 0}

    .menu-toggle{display:flex;flex-direction:column;justify-content:center;align-items:center;order:3;margin-left:auto}
    .main-navigation{
        position:fixed;top:var(--header-h);left:0;right:0;
        background:#fff;border-bottom:1px solid var(--c-border-soft);
        padding:16px;transform:translateY(-120%);
        transition:transform .3s var(--ease);
        box-shadow:var(--sh-lg);z-index:999;
        max-height:calc(100vh - var(--header-h));overflow-y:auto;
    }
    .main-navigation.toggled{transform:translateY(0)}
    .nav-menu{flex-direction:column;gap:2px;align-items:stretch}
    .nav-menu li a{padding:12px 16px;border-radius:var(--r-sm)}
    .nav-menu li .sub-menu{
        position:static;opacity:1;visibility:visible;transform:none;
        box-shadow:none;border:none;padding-left:16px;background:transparent;
    }
    .header-actions{order:2}
    .header-phone{display:none}
    .header-actions .btn-cta{padding:9px 16px;font-size:.8125rem}

    .header-layout-logo-center .site-branding,.header-layout-logo-right .header-inner{flex-direction:row;order:unset}
    .header-layout-logo-center .main-navigation,.header-layout-logo-right .main-navigation{order:unset}

    .hero-section{padding:48px 0 80px}
    .hero-grid{grid-template-columns:1fr;gap:48px}
    .hero-visual{aspect-ratio:1.2/1;max-height:380px}
    .hero-stat-card{left:16px;right:16px;bottom:16px;padding:16px}

    .features-grid,.services-grid,.process-grid{grid-template-columns:1fr}
    .stats-grid{grid-template-columns:1fr 1fr;gap:24px}
    .testimonials-grid,.resources-grid{grid-template-columns:1fr}
    .jobs-grid{grid-template-columns:1fr}
    .areas-list{grid-template-columns:1fr}
    .footer-grid{grid-template-columns:1fr}

    .cta-buttons{flex-direction:column;align-items:stretch}
    .cta-buttons a{width:100%}
    .form-row{grid-template-columns:1fr}

    .contact-cards-grid{grid-template-columns:1fr}
    .contact-form-card{padding:28px}
    .application-form{padding:28px}

    .trust-strip-inner{gap:20px 28px}
    .trust-item{font-size:.8125rem}

    .single-job-header h1{font-size:1.625rem}

    .mobile-cta-bar{display:block}
    body.has-mobile-cta{padding-bottom:64px}
}
@media(max-width:480px){
    .container{padding:0 18px}
    .section-header{margin-bottom:40px}
    .hero-buttons{flex-direction:column;align-items:stretch}
    .hero-buttons a{width:100%}
}

/* ============================================================
   PRINT
   ============================================================ */
@media print{
    .site-header,.cta-section,.cta-buttons,.mobile-cta-bar,.booking-overlay,.cookie-banner,#nhcc-cookie-banner,.footer-legal,.nhcc-footer-legal{display:none!important}
    body{background:#fff;color:#000}
    a{color:#000;text-decoration:underline}
    .section,.features-section,.services-section,.process-section,.testimonials-section,.areas-section,.payment-section,.team-section{padding:24px 0;page-break-inside:avoid}
}
