/**
 * Reconnect - Editorial Sanctuary Theme
 * Magazine-editorial aesthetic meets luxury wellness retreat
 * Typography-driven, asymmetric, premium details
 */

/* ========================================
   CSS CUSTOM PROPERTIES
   ======================================== */
:root {
    /* Brand Colors - Used more boldly */
    --teal-deep: #2A7D6F;
    --teal-medium: #3A9D8C;
    --teal-light: #4DB8A5;
    --teal-pale: rgba(77, 184, 165, 0.08);

    --sage-light: #F4F9F7;
    --sage-medium: #E8F2EE;
    --sage-dark: #D4E5DE;

    --orange-brand: #EDA225;
    --orange-light: #F5B94D;
    --orange-glow: rgba(237, 162, 37, 0.15);

    --cream: #FDFDF9;
    --cream-warm: #FBF9F4;

    --charcoal: #2C3E3A;
    --charcoal-light: #4A5F5A;
    --charcoal-muted: #6B7F7A;

    --white: #FFFFFF;
    --black: #1A2421;

    /* Shadows - Editorial, subtle */
    --shadow-xs: 0 1px 2px rgba(42, 125, 111, 0.04);
    --shadow-sm: 0 2px 8px rgba(42, 125, 111, 0.06);
    --shadow-md: 0 8px 24px rgba(42, 125, 111, 0.08);
    --shadow-lg: 0 16px 48px rgba(42, 125, 111, 0.1);
    --shadow-xl: 0 24px 64px rgba(42, 125, 111, 0.12);
    --shadow-glow: 0 0 60px rgba(77, 184, 165, 0.25);

    /* Typography - Dramatic */
    --font-display: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-body: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    /* Spacing */
    --space-xs: 0.5rem;
    --space-sm: 1rem;
    --space-md: 1.5rem;
    --space-lg: 2rem;
    --space-xl: 3rem;
    --space-2xl: 4rem;
    --space-3xl: 6rem;
    --space-4xl: 8rem;
    --space-5xl: 7rem;

    /* Transitions */
    --ease-out: cubic-bezier(0.33, 1, 0.68, 1);
    --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    --duration-fast: 150ms;
    --duration-normal: 300ms;
    --duration-slow: 500ms;
    --duration-slower: 800ms;

    /* Border Radius */
    --radius-sm: 4px;
    --radius-md: 8px;
    --radius-lg: 16px;
    --radius-xl: 24px;
    --radius-2xl: 32px;
    --radius-full: 9999px;
}

/* ========================================
   RESET & BASE
   ======================================== */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 16px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.7;
    color: var(--charcoal);
    background: var(--cream);
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: inherit;
    text-decoration: none;
    transition: color var(--duration-normal) var(--ease-out);
}

ul, ol {
    list-style: none;
}

button {
    font-family: inherit;
    cursor: pointer;
    border: none;
    background: none;
}

/* ========================================
   GRAIN TEXTURE OVERLAY
   ======================================== */
.grain-overlay {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 9999;
    opacity: 0.03;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
    background-repeat: repeat;
}

/* ========================================
   TYPOGRAPHY - DRAMATIC
   ======================================== */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 600;
    line-height: 1.1;
    color: var(--charcoal);
    letter-spacing: -0.03em;
}

h1 { font-size: clamp(3rem, 8vw, 7rem); }
h2 { font-size: clamp(2.5rem, 5vw, 4rem); }
h3 { font-size: clamp(1.5rem, 3vw, 2rem); }
h4 { font-size: clamp(1.25rem, 2vw, 1.5rem); }

em {
    font-style: italic;
    color: var(--teal-deep);
}

p {
    color: var(--charcoal-light);
    margin-bottom: var(--space-md);
}

p:last-child {
    margin-bottom: 0;
}

/* ========================================
   LAYOUT
   ======================================== */
.container {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

.container-wide {
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

/* Section Label - Editorial */
.section-label {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--teal-deep);
    margin-bottom: var(--space-lg);
}

.section-label::before {
    content: '';
    width: 40px;
    height: 2px;
    background: var(--orange-brand);
}

.section-label.centered {
    justify-content: center;
}

.section-label.centered::before {
    display: inline-block;
}

.section-label.light {
    color: var(--white);
}

.section-label.light::before {
    background: var(--orange-light);
}

/* ========================================
   BUTTONS
   ======================================== */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: 1.125rem 2.25rem;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
    border-radius: var(--radius-full);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all var(--duration-normal) var(--ease-out);
    position: relative;
    overflow: hidden;
}

.btn svg {
    width: 16px;
    height: 16px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    transition: transform var(--duration-normal) var(--ease-out);
}

.btn:hover svg {
    transform: translateX(4px);
}

.btn-primary {
    background: var(--teal-deep);
    color: var(--white);
    border-color: var(--teal-deep);
}

.btn-primary:hover {
    background: var(--charcoal);
    border-color: var(--charcoal);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.btn-ghost {
    background: transparent;
    color: var(--charcoal);
    border-color: var(--charcoal-muted);
}

.btn-ghost:hover {
    background: var(--charcoal);
    border-color: var(--charcoal);
    color: var(--white);
}

.btn-outline {
    background: transparent;
    color: var(--teal-deep);
    border-color: var(--teal-deep);
}

.btn-outline:hover {
    background: var(--teal-deep);
    color: var(--white);
}

.btn-white {
    background: var(--white);
    color: var(--teal-deep);
    border-color: var(--white);
}

.btn-white:hover {
    background: var(--cream);
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

.btn-outline-light {
    background: transparent;
    color: var(--white);
    border-color: rgba(255, 255, 255, 0.4);
}

.btn-outline-light:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: var(--white);
}

/* ========================================
   HEADER
   ======================================== */
.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: rgba(253, 253, 249, 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid rgba(212, 229, 222, 0.4);
    transition: all var(--duration-normal) var(--ease-out);
}

.site-header.scrolled {
    box-shadow: var(--shadow-md);
}

.header-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--space-xl);
    max-width: 1440px;
    margin: 0 auto;
}

/* Logo */
.site-logo {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-shrink: 0;
}

.logo-icon {
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.logo-icon svg {
    width: 100%;
    height: 100%;
    color: var(--teal-deep);
}

.logo-wordmark {
    display: flex;
    flex-direction: column;
}

.logo-name {
    font-family: var(--font-body);
    font-size: 1.375rem;
    font-weight: 600;
    color: var(--charcoal);
    letter-spacing: -0.01em;
    line-height: 1.1;
}

.logo-tagline {
    font-size: 0.5625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--charcoal-muted);
    margin-top: 3px;
}

/* Logo Image */
.logo-image {
    height: 50px;
    width: auto;
    transition: transform var(--duration-normal) var(--ease-out);
}

.site-logo:hover .logo-image {
    transform: scale(1.02);
}

/* Navigation */
.main-nav {
    display: flex;
    align-items: center;
    gap: var(--space-xl);
}

.nav-menu {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

.nav-menu a {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--charcoal);
    padding: var(--space-xs) 0;
    position: relative;
}

.nav-menu a::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 1px;
    background: var(--teal-deep);
    transition: width var(--duration-normal) var(--ease-out);
}

.nav-menu a:hover,
.nav-menu a.active {
    color: var(--teal-deep);
}

.nav-menu a:hover::after,
.nav-menu a.active::after {
    width: 100%;
}

/* Header CTA */
.header-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.375rem;
}

.btn-cta-gold {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.75rem 2rem;
    font-family: var(--font-body);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: normal;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--white);
    background: var(--orange-brand);
    border: none;
    border-radius: var(--radius-full);
    transition: all var(--duration-normal) var(--ease-out);
}

.btn-cta-gold:hover {
    background: #c47f1a;
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}

/* Button morph overlay - expands from clicked button into modal */
.btn-morph-overlay {
    position: fixed;
    z-index: 9999;
    background: var(--orange-brand);
    border-radius: var(--radius-full);
    pointer-events: none;
    transition: all 0.45s cubic-bezier(0.4, 0, 0.2, 1);
}

.btn-morph-overlay.morph-expanding {
    border-radius: var(--radius-xl);
}

.header-cta__links {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.header-cta__contact {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--charcoal);
}

.header-cta__contact:hover {
    color: var(--teal-deep);
}

.header-cta__phone {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--orange-brand);
}

.header-cta__phone:hover {
    color: #c47f1a;
}

/* Nav: tighten link padding first. The link selectors below are `.main-nav .nav-menu > li > a` because
   page-styles.css (loaded later) styles `.nav-menu > li > a` and would otherwise win. */
@media (max-width: 1440px) {
    .main-nav .nav-menu > li > a {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }
}

/* Nav shrink for smaller desktops */
@media (max-width: 1380px) {
    .nav-menu {
        gap: var(--space-md);
    }
    .main-nav .nav-menu > li > a {
        font-size: 0.8125rem;
        padding-left: 0.625rem;
        padding-right: 0.625rem;
    }
}

/* Nav further shrink — hide phone number, keep Book Now compact */
@media (max-width: 1280px) {
    .nav-menu {
        gap: var(--space-xs);
    }
    .main-nav .nav-menu > li > a {
        font-size: 0.775rem;
        padding-left: 0.625rem;
        padding-right: 0.625rem;
    }
    .header-cta__phone {
        display: none;
    }
    .header-cta .btn {
        padding: 0.4rem 0.75rem;
        font-size: 0.75rem;
    }
    .header-inner {
        padding: var(--space-sm) var(--space-lg);
    }
}

@media (max-width: 1220px) {
    .main-nav .nav-menu > li > a {
        font-size: 0.75rem;
        padding-left: 0.4rem;
        padding-right: 0.4rem;
    }
}

/* Nav tightest squeeze before hamburger */
@media (max-width: 1100px) {
    .nav-menu {
        gap: 0.15rem;
    }
    .main-nav .nav-menu > li > a {
        font-size: 0.75rem;
        letter-spacing: 0;
        padding-left: 0.45rem;
        padding-right: 0.45rem;
    }
    .nav-arrow {
        width: 8px;
        height: 8px;
    }
    .header-cta .btn {
        padding: 0.25rem 0.5rem;
        font-size: 0.6rem;
        white-space: nowrap;
    }
    .logo-image {
        height: 34px;
    }
    .header-inner {
        padding: var(--space-xs) 0.5rem;
    }
}

/* Mobile Header CTA — hidden on desktop, shown via media query */
.mobile-header-cta {
    display: none;
}

/* Mobile Toggle */
.mobile-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: var(--space-xs);
}

.mobile-menu-toggle span {
    width: 24px;
    height: 2px;
    background: var(--charcoal);
    border-radius: var(--radius-full);
    transition: all var(--duration-normal) var(--ease-out);
}

/* ========================================
   HERO SECTION - FULL-BLEED BACKGROUND
   ======================================== */
.hero {
    position: relative;
    display: flex;
    align-items: center;
    background: var(--sage-light);
    padding-top: 80px;
    overflow: hidden;
}

.hero--fullbleed {
    min-height: 100vh;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--teal-deep);
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        135deg,
        rgba(20, 65, 56, 0.72) 0%,
        rgba(26, 78, 68, 0.55) 40%,
        rgba(26, 78, 68, 0.35) 100%
    );
    z-index: 1;
}

/* Hero Inner */
.hero--fullbleed .hero-inner {
    display: flex;
    flex-direction: column;
    justify-content: center;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: var(--space-3xl) var(--space-3xl);
    min-height: calc(100vh - 80px);
    position: relative;
    z-index: 2;
}

.hero-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl);
    align-items: center;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: var(--space-xl) var(--space-3xl);
}

/* Hero Content */
.hero-content {
    position: relative;
    z-index: 2;
}

.hero--fullbleed .hero-content {
    max-width: 680px;
}

.hero-eyebrow {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
}

.eyebrow-number {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--orange-brand);
}

.eyebrow-divider {
    width: 40px;
    height: 1px;
    background: var(--sage-dark);
}

.eyebrow-text {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--charcoal-muted);
}

/* Hero Tagline */
.hero-tagline {
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--orange-brand);
    margin-bottom: var(--space-md);
}

.hero--fullbleed .hero-tagline {
    color: var(--orange-light);
}

/* Word-by-word reveal — slow, calming */
.hero-tagline__word {
    display: inline-block;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 0.8s cubic-bezier(0.33, 1, 0.68, 1), transform 1s cubic-bezier(0.33, 1, 0.68, 1);
}

.hero-tagline__word.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* "Reconnect" — gentle entrance with continuous breathing */
.hero-tagline__reconnect {
    display: inline-block;
    position: relative;
    opacity: 0;
    transform: translateY(8px);
    color: var(--teal-deep);
    font-size: 1.1em;
    letter-spacing: normal;
    transition: opacity 1.5s cubic-bezier(0.33, 1, 0.68, 1), transform 1.5s cubic-bezier(0.33, 1, 0.68, 1);
}

/* Step 1: Gentle fade in */
.hero-tagline__reconnect.land {
    opacity: 1;
    transform: translateY(0);
}

/* Step 2: Continuous breathing glow — never stops */
@keyframes reconnectBreathe {
    0%, 100% {
        text-shadow: 0 0 0 rgba(42, 125, 111, 0), 0 0 0 rgba(237, 162, 37, 0);
        transform: scale(1);
    }
    50% {
        text-shadow: 0 0 20px rgba(42, 125, 111, 0.25), 0 0 50px rgba(237, 162, 37, 0.08);
        transform: scale(1.03);
    }
}

.hero-tagline__reconnect.breathing {
    opacity: 1;
    transform: none;
    color: var(--teal-deep);
    animation: reconnectBreathe 6s ease-in-out infinite;
}

.hero-tagline__reconnect::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 3px;
    background: var(--teal-deep);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.8s var(--ease-out);
}

.hero-tagline__reconnect.land::after,
.hero-tagline__reconnect.breathing::after {
    transform: scaleX(1);
}

.hero--fullbleed .hero-tagline__reconnect,
.hero--fullbleed .hero-tagline__reconnect.land,
.hero--fullbleed .hero-tagline__reconnect.breathing {
    color: var(--white);
}

.hero--fullbleed .hero-tagline__reconnect::after {
    background: var(--teal-deep);
}

/* Hero Headline */
.hero-headline {
    margin-bottom: var(--space-sm);
    line-height: 1.05;
    color: var(--charcoal);
    font-size: clamp(2.5rem, 5vw, 4rem);
    transition: color 1s cubic-bezier(0.33, 1, 0.68, 1);
}

.hero--fullbleed .hero-headline {
    color: var(--white);
}

.hero-headline.headline-teal {
    color: var(--teal-deep);
}

.headline-line {
    display: block;
}

.headline-italic {
    font-style: italic;
    margin-left: 0.5em;
}

.hero-headline .hero-letter,
.page-hero__headline .hero-letter {
    opacity: 0;
    color: var(--charcoal);
    transition: opacity 0.5s var(--ease-out), color 0.7s var(--ease-out);
}

.hero-headline .hero-letter.letter-visible,
.page-hero__headline .hero-letter.letter-visible {
    opacity: 1;
}

.hero-headline .hero-letter.letter-revealed,
.page-hero__headline .hero-letter.letter-revealed {
    color: var(--teal-deep);
}

.hero--fullbleed .hero-headline .hero-letter {
    color: rgba(255, 255, 255, 0.6);
}

.hero--fullbleed .hero-headline .hero-letter.letter-visible {
    opacity: 1;
}

.hero--fullbleed .hero-headline .hero-letter.letter-revealed {
    color: var(--white);
}

/* Hero Subhead */
.hero-subhead {
    font-size: 1.25rem;
    line-height: 1.7;
    color: var(--charcoal-light);
    max-width: 480px;
    margin-bottom: var(--space-md);
}

/* Hero Feature Checkmarks */
.hero-features {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem 1.5rem;
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-md);
    max-width: 540px;
}

.hero-feature {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.925rem;
    font-weight: 500;
    color: var(--charcoal);
    opacity: 0;
    transform: translateY(8px);
    transition: opacity 0.7s cubic-bezier(0.33, 1, 0.68, 1), transform 0.9s cubic-bezier(0.33, 1, 0.68, 1);
}

.hero--fullbleed .hero-feature {
    color: rgba(255, 255, 255, 0.92);
}

.hero-feature.revealed {
    opacity: 1;
    transform: translateY(0);
}

.hero-feature__check {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    color: var(--teal-deep);
    filter: drop-shadow(0 1px 3px rgba(29, 106, 88, 0.25));
}

.hero--fullbleed .hero-feature__check {
    color: var(--orange-light);
    filter: drop-shadow(0 1px 4px rgba(0, 0, 0, 0.3));
}

.hero-feature__check path {
    stroke-dasharray: 20;
    stroke-dashoffset: 20;
    transition: stroke-dashoffset 0.5s cubic-bezier(0.33, 1, 0.68, 1);
}

.hero-feature.revealed .hero-feature__check path {
    stroke-dashoffset: 0;
}

@media (max-width: 600px) {
    .hero-features {
        grid-template-columns: 1fr;
        gap: 0.5rem;
    }
}

/* Hero Actions */
.hero-actions {
    display: flex;
    gap: var(--space-md);
    flex-wrap: wrap;
    align-items: center;
}

.btn-hero-cta {
    padding: 1.35rem 3.25rem;
    font-size: 1.2rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: normal;
    gap: 0.75rem;
    box-shadow: var(--shadow-md);
    animation: hero-cta-glow 4s ease-in-out infinite;
}

.btn-hero-cta svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
}

@keyframes hero-cta-glow {
    0%, 100% {
        box-shadow: var(--shadow-md), 0 0 0 0 rgba(237, 162, 37, 0.3);
    }
    50% {
        box-shadow: var(--shadow-md), 0 0 15px 3px rgba(237, 162, 37, 0.15);
    }
}

/* Hero ghost button on dark backgrounds */
.btn-ghost--light {
    color: rgba(255, 255, 255, 0.9);
    border-color: rgba(255, 255, 255, 0.3);
}

.btn-ghost--light:hover {
    color: var(--white);
    border-color: rgba(255, 255, 255, 0.6);
    background: rgba(255, 255, 255, 0.08);
}

/* Hero Visual (fallback for non-fullbleed) */
.hero-visual {
    position: relative;
}

.hero-image-wrapper {
    position: relative;
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.hero-image {
    width: 100%;
    height: 480px;
    object-fit: cover;
    transition: transform var(--duration-slower) var(--ease-out);
}

.hero-image-wrapper:hover .hero-image {
    transform: scale(1.03);
}

.hero-image-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(42, 125, 111, 0.2) 0%, transparent 40%);
    pointer-events: none;
}

/* Hero Ambient Gradient - Slow organic watercolor movement */
.hero-ambient-gradient {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0;
    background:
        radial-gradient(ellipse 80% 50% at 20% 40%, rgba(77, 184, 165, 0.12) 0%, transparent 70%),
        radial-gradient(ellipse 60% 80% at 80% 60%, rgba(237, 162, 37, 0.06) 0%, transparent 70%),
        radial-gradient(ellipse 70% 60% at 50% 20%, rgba(42, 125, 111, 0.08) 0%, transparent 70%);
    background-size: 200% 200%, 200% 200%, 200% 200%;
    animation: heroGradientDrift 30s ease-in-out infinite;
    transition: opacity 2s ease;
}

.hero-ambient-gradient.active {
    opacity: 1;
}

@keyframes heroGradientDrift {
    0%, 100% { background-position: 0% 0%, 100% 100%, 50% 0%; }
    33% { background-position: 100% 50%, 0% 0%, 0% 100%; }
    66% { background-position: 50% 100%, 50% 50%, 100% 50%; }
}

/* Floating Botanical Elements */
.hero-botanicals {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: hidden;
}

.floating-botanical {
    position: absolute;
    opacity: 0;
}

.floating-botanical circle,
.floating-botanical ellipse,
.floating-botanical path {
    fill: none;
    stroke-linecap: round;
}

@keyframes floatDrift {
    0% {
        transform: translate(0, 0) rotate(0deg);
        opacity: 0;
    }
    10% {
        opacity: var(--drift-opacity, 0.12);
    }
    50% {
        transform: translate(var(--dx, 30px), var(--dy, -20px)) rotate(var(--dr, 5deg));
        opacity: var(--drift-opacity, 0.12);
    }
    90% {
        opacity: var(--drift-opacity, 0.12);
    }
    100% {
        transform: translate(0, 0) rotate(0deg);
        opacity: 0;
    }
}

.floating-botanical.active {
    animation: floatDrift var(--drift-duration, 25s) ease-in-out infinite;
    animation-delay: var(--drift-delay, 0s);
}

/* Hero Parallax support */
.hero-visual {
    position: relative;
    will-change: transform;
}

.hero-content {
    will-change: transform, opacity;
}

/* ========================================
   INSURANCE BAR - MINIMAL
   ======================================== */
@keyframes marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-33.3333%); }
}

.insurance-bar {
    padding: var(--space-lg) 0;
    background: var(--white);
    border-bottom: 1px solid var(--sage-medium);
    overflow: hidden;
}

.insurance-bar__label {
    text-align: center;
    margin-bottom: var(--space-md);
}

.insurance-bar__footer {
    text-align: center;
    margin-top: var(--space-md);
}

.insurance-label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--charcoal-muted);
}

.insurance-marquee {
    width: 100%;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0%, black 8%, black 92%, transparent 100%);
}

.insurance-track {
    display: flex;
    align-items: center;
    gap: var(--space-3xl);
    width: max-content;
    animation: marquee-scroll 40s linear infinite;
}

.insurance-track:hover {
    animation-play-state: paused;
}

.logo-item {
    flex-shrink: 0;
    opacity: 1;
    transform: none;
}

.logo-item.logo-revealed {
    opacity: 1;
    transform: none;
}

.logo-item img {
    height: 40px;
    width: 140px;
    object-fit: contain;
    filter: grayscale(100%);
    opacity: 0.65;
    transition: filter 0.3s ease, opacity 0.3s ease;
}

.logo-item img:hover {
    filter: grayscale(0%);
    opacity: 1;
}

/* Per-logo scale compensators — some source files have heavy internal padding */
.logo-item img[src*="insurance-magellan"],
.logo-item img[src*="insurance-compsych"],
.logo-item img[src*="insurance-mha"],
.logo-item img[src*="insurance-cigna"] {
    transform: scale(1.55);
}

.insurance-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--teal-deep);
    transition: all var(--duration-normal) var(--ease-out);
}

.insurance-link svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
    transition: transform var(--duration-normal) var(--ease-out);
}

.insurance-link:hover {
    color: var(--charcoal);
}

.insurance-link:hover svg {
    transform: translateX(4px);
}

/* ========================================
   ABOUT SECTION - ASYMMETRIC EDITORIAL
   ======================================== */
.about-section {
    position: relative;
    padding: var(--space-5xl) 0;
    background: var(--sage-light);
    overflow: visible;
}

.about-inner {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: var(--space-4xl);
    align-items: start;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--space-3xl);
}

/* About Image Column */
.about-image-col {
    position: relative;
}

.about-image-wrapper {
    position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.about-image-wrapper img {
    width: 100%;
    height: 600px;
    object-fit: cover;
}

.image-accent-border {
    position: absolute;
    top: 24px;
    left: 24px;
    right: -24px;
    bottom: -24px;
    border: 2px solid var(--orange-brand);
    border-radius: var(--radius-xl);
    z-index: -1;
    opacity: 0.5;
}

.about-image-caption {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-top: var(--space-lg);
    padding-left: var(--space-md);
}

.caption-line {
    width: 24px;
    height: 1px;
    background: var(--orange-brand);
}

.about-image-caption span {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--charcoal-muted);
    letter-spacing: 0.05em;
}

/* About Content Column */
.about-content-col {
    padding-left: var(--space-2xl);
}

.about-headline {
    margin-bottom: var(--space-xl);
}

.about-headline em {
    position: relative;
}

.about-headline em::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0.05em;
    width: 100%;
    height: 3px;
    background: var(--orange-brand);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.8s var(--ease-out);
}

em.underline-revealed::after {
    transform: scaleX(1);
}

/* ----------------------------------------
   UNIVERSAL ITALIC + ORANGE UNDERLINE
   Applies to <em> in all heading contexts
   EXCLUDES animated hero headlines (.hero-headline, .page-hero__headline, .hero-tagline)
   ---------------------------------------- */
h2 em,
h3 em,
h4 em,
.section-heading em,
.section-subheading em,
.card-title em,
.cta-heading em,
.prefooter-cta__text em,
.modalities-headline em,
.programs-headline em,
.rittm-headline em,
.behavioral-headline em,
.mindbody-headline em,
.core-therapies__headline em,
.about-conditions__headline em,
.programs-compare__headline em,
.rittm-spotlight__headline em,
.therapy-section__headline em,
.nature-banner__headline em,
.contact-form-headline em,
.mission-headline em,
.inline-cta__text em,
.conditions-headline em,
.founder-headline em,
.founder-title em {
    position: relative;
    font-style: italic;
}

h2 em::after,
h3 em::after,
h4 em::after,
.section-heading em::after,
.section-subheading em::after,
.card-title em::after,
.cta-heading em::after,
.prefooter-cta__text em::after,
.modalities-headline em::after,
.programs-headline em::after,
.rittm-headline em::after,
.behavioral-headline em::after,
.mindbody-headline em::after,
.core-therapies__headline em::after,
.about-conditions__headline em::after,
.programs-compare__headline em::after,
.rittm-spotlight__headline em::after,
.therapy-section__headline em::after,
.nature-banner__headline em::after,
.contact-form-headline em::after,
.mission-headline em::after,
.inline-cta__text em::after,
.conditions-headline em::after,
.founder-headline em::after,
.founder-title em::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0.05em;
    width: 100%;
    height: 3px;
    background: var(--orange-brand);
    border-radius: 2px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.8s var(--ease-out);
}

h2 em.underline-revealed::after,
h3 em.underline-revealed::after,
h4 em.underline-revealed::after,
.section-heading em.underline-revealed::after,
.section-subheading em.underline-revealed::after,
.card-title em.underline-revealed::after,
.cta-heading em.underline-revealed::after,
.prefooter-cta__text em.underline-revealed::after,
.modalities-headline em.underline-revealed::after,
.programs-headline em.underline-revealed::after,
.rittm-headline em.underline-revealed::after,
.behavioral-headline em.underline-revealed::after,
.mindbody-headline em.underline-revealed::after,
.core-therapies__headline em.underline-revealed::after,
.about-conditions__headline em.underline-revealed::after,
.programs-compare__headline em.underline-revealed::after,
.rittm-spotlight__headline em.underline-revealed::after,
.therapy-section__headline em.underline-revealed::after,
.nature-banner__headline em.underline-revealed::after,
.contact-form-headline em.underline-revealed::after,
.mission-headline em.underline-revealed::after,
.inline-cta__text em.underline-revealed::after {
    transform: scaleX(1);
}

/* Exclude animated hero headlines from the universal em underline */
.hero-headline em::after,
.page-hero__headline em::after,
.hero-tagline em::after {
    display: none;
}

/* Pull Quote - Editorial */
.about-pull-quote {
    position: relative;
    padding: var(--space-lg) 0 var(--space-lg) var(--space-xl);
    margin-bottom: var(--space-lg);
    border-left: 3px solid var(--teal-deep);
}

.about-pull-quote .quote-mark {
    position: absolute;
    top: -10px;
    left: -8px;
    font-family: var(--font-display);
    font-size: 5rem;
    font-weight: 700;
    color: var(--teal-pale);
    line-height: 1;
}

.about-pull-quote p {
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-style: italic;
    line-height: 1.6;
    color: var(--charcoal);
    margin: 0;
}

.about-body {
    font-size: 1.0625rem;
    line-height: 1.8;
    margin-bottom: var(--space-xl);
}

/* About Features */
.about-features {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
}

.feature-row {
    display: flex;
    gap: var(--space-xl);
}

.feature-item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.feature-number {
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--orange-brand);
    letter-spacing: 0.05em;
}

.feature-text {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--charcoal);
}

/* Decorative Line */
.about-decorative-line {
    position: absolute;
    bottom: 0;
    left: 10%;
    right: 10%;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--sage-dark), transparent);
}

/* ========================================
   MODALITIES SECTION - EDITORIAL
   ======================================== */
.modalities-section {
    padding: var(--space-5xl) 0;
    background: var(--white);
}

.modalities-editorial {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4xl);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
    align-items: start;
}

.modalities-intro .section-label {
    margin-bottom: var(--space-md);
}

.modalities-headline {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    line-height: 1.25;
    margin-bottom: var(--space-lg);
}

.modalities-body {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--charcoal-light);
    margin-bottom: var(--space-xl);
}

.modalities-list {
    display: flex;
    flex-direction: column;
}

.modality-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-lg);
    padding: var(--space-md) 0;
    border-bottom: 1px solid var(--sage-dark);
    text-decoration: none;
    transition: padding-left var(--duration-normal) var(--ease-out);
}

.modality-item:first-child {
    border-top: 1px solid var(--sage-dark);
}

.modality-item:hover {
    padding-left: var(--space-sm);
}

.modality-name {
    font-family: var(--font-body);
    font-size: 1.0625rem;
    font-weight: 700;
    color: var(--teal-deep);
    flex-shrink: 0;
    flex-basis: 11rem;
}

.modality-detail {
    font-size: 0.9375rem;
    color: var(--charcoal-light);
    line-height: 1.55;
    flex: 1 1 0;
    min-width: 0;
    text-align: left;
}

@media (max-width: 1024px) {
    .modalities-editorial {
        grid-template-columns: 1fr;
        gap: var(--space-2xl);
    }
}

@media (max-width: 600px) {
    .modality-detail {
        display: none;
    }
}

/* ========================================
   PROGRAMS SECTION - EDITORIAL ACCORDION
   ======================================== */
.programs-section {
    position: relative;
    padding: var(--space-5xl) 0 var(--space-4xl);
    background: var(--teal-deep);
    overflow: visible;
}

.programs-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4xl);
    align-items: start;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--space-3xl);
    padding-top: var(--space-3xl);
}

/* Programs Content */
.programs-content {
    padding-right: var(--space-xl);
}

.programs-headline {
    color: var(--white);
    margin-bottom: var(--space-md);
}

.programs-headline em {
    color: var(--orange-light);
}

.programs-subhead {
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.0625rem;
    line-height: 1.7;
    margin-bottom: var(--space-xl);
}

/* Program Accordion */
.program-accordion {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.accordion-item {
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all var(--duration-normal) var(--ease-out);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.accordion-item:hover {
    background: rgba(255, 255, 255, 0.12);
}

.accordion-item.active {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.2);
}

.accordion-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-lg);
    text-align: left;
    transition: all var(--duration-normal) var(--ease-out);
}

.trigger-number {
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--orange-light);
    letter-spacing: 0.05em;
}

.trigger-text {
    flex: 1;
    font-size: 1rem;
    font-weight: 600;
    color: var(--white);
}

.trigger-icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform var(--duration-normal) var(--ease-out);
}

.trigger-icon svg {
    width: 16px;
    height: 16px;
    stroke: var(--white);
    stroke-width: 2;
    fill: none;
}

.accordion-item.active .trigger-icon {
    transform: rotate(45deg);
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--duration-slow) var(--ease-out);
}

.accordion-item.active .accordion-content {
    max-height: 150px;
}

.accordion-content p {
    padding: 0 var(--space-lg) var(--space-lg);
    padding-left: calc(var(--space-lg) + 24px + var(--space-md));
    font-size: 0.9375rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.75);
    margin: 0;
}

/* Programs Visual */
.programs-visual {
    position: relative;
}

.visual-frame {
    position: relative;
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.programs-image {
    width: 100%;
    height: 600px;
    object-fit: cover;
    transition: all var(--duration-slower) var(--ease-out);
}

.visual-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(42, 125, 111, 0.3) 0%, transparent 50%);
    pointer-events: none;
}

.visual-stat {
    position: absolute;
    bottom: var(--space-xl);
    left: var(--space-xl);
    padding: var(--space-lg) var(--space-xl);
    background: var(--white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
}

.visual-stat .stat-value {
    display: block;
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--teal-deep);
    line-height: 1;
    margin-bottom: var(--space-xs);
}

.visual-stat .stat-text {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--charcoal-muted);
    text-transform: uppercase;
    letter-spacing: normal;
}

/* ========================================
   TESTIMONIALS SECTION - EDITORIAL
   ======================================== */
.testimonials-section {
    padding: var(--space-5xl) 0;
    background: var(--sage-light);
}

.testimonials-header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.testimonials-headline {
    margin-bottom: 0;
}

/* Trustindex widget wrapper */
.trustindex-widget-wrap {
    width: 100%;
}

.trustindex-widget-wrap .trustindex-widget {
    width: 100%;
}

/* Featured Testimonial - Editorial Style */
.testimonials-featured {
    position: relative;
    max-width: 900px;
    margin: 0 auto var(--space-3xl);
    padding: var(--space-3xl);
    background: var(--white);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-lg);
    text-align: center;
}

.featured-quote-mark {
    position: absolute;
    top: var(--space-lg);
    left: var(--space-xl);
    font-family: var(--font-display);
    font-size: 4rem;
    font-weight: 700;
    color: var(--teal-pale);
    line-height: 1;
    opacity: 0.6;
    pointer-events: none;
}

.featured-quote {
    position: relative;
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-style: italic;
    line-height: 1.5;
    color: var(--charcoal);
    margin-bottom: var(--space-xl);
    z-index: 1;
}

.featured-author {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-lg);
}

.featured-author .author-image {
    width: 64px;
    height: 64px;
    background: linear-gradient(135deg, var(--teal-deep), var(--teal-light));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--white);
}

.featured-author .author-details {
    text-align: left;
}

.featured-author cite {
    display: block;
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 700;
    font-style: normal;
    color: var(--charcoal);
    margin-bottom: 2px;
}

.featured-author .author-details span {
    font-size: 0.875rem;
    color: var(--charcoal-muted);
}

.author-rating {
    display: flex;
    gap: 2px;
}

.author-rating svg {
    width: 18px;
    height: 18px;
    fill: var(--orange-brand);
    stroke: none;
}

/* Testimonials Scroll */
.testimonials-scroll {
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
    margin: 0 calc(var(--space-xl) * -1);
    padding: var(--space-md) var(--space-xl);
}

.testimonials-scroll::-webkit-scrollbar {
    display: none;
}

.testimonials-track {
    display: flex;
    gap: var(--space-lg);
    padding-bottom: var(--space-md);
}

/* Testimonial Card */
.testimonial-card {
    flex: 0 0 360px;
    background: var(--white);
    border-radius: var(--radius-xl);
    padding: var(--space-xl);
    position: relative;
    box-shadow: var(--shadow-md);
    transition: all var(--duration-normal) var(--ease-out);
}

.testimonial-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

.card-quote-mark {
    position: absolute;
    top: var(--space-md);
    right: var(--space-lg);
    font-family: var(--font-display);
    font-size: 4rem;
    font-weight: 700;
    color: var(--orange-glow);
    line-height: 1;
}

.testimonial-card blockquote {
    font-size: 1rem;
    font-style: italic;
    line-height: 1.7;
    color: var(--charcoal);
    margin-bottom: var(--space-lg);
}

.testimonial-card footer {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding-top: var(--space-md);
    border-top: 1px solid var(--sage-medium);
}

.author-avatar {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, var(--teal-deep), var(--teal-light));
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--white);
}

.author-info cite {
    display: block;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 700;
    font-style: normal;
    color: var(--charcoal);
    margin-bottom: 2px;
}

.author-info span {
    font-size: 0.8125rem;
    color: var(--charcoal-muted);
}

/* ========================================
   NATURE BANNER CTA - Reusable photo banners
   ======================================== */
.nature-banner {
    position: relative;
    padding: var(--space-4xl) 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: var(--teal-deep);
    overflow: hidden;
}

.nature-banner__overlay {
    position: absolute;
    inset: 0;
    background: rgba(20, 65, 56, 0.72);
    z-index: 1;
}

.nature-banner--warm .nature-banner__overlay {
    background: linear-gradient(
        135deg,
        rgba(20, 55, 46, 0.75) 0%,
        rgba(30, 70, 58, 0.6) 50%,
        rgba(40, 80, 65, 0.5) 100%
    );
}

.nature-banner__inner {
    position: relative;
    z-index: 2;
    max-width: 700px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
    text-align: center;
}

.nature-banner__headline {
    font-family: var(--font-display);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 700;
    color: var(--white);
    margin-bottom: var(--space-md);
    line-height: 1.15;
}

.nature-banner__text {
    font-size: 1.125rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: var(--space-xl);
}

.nature-banner__actions {
    display: flex;
    gap: var(--space-md);
    justify-content: center;
    flex-wrap: wrap;
}

/* ========================================
   ASK AI SECTION
   ======================================== */
.ask-ai-section {
    padding: var(--space-4xl) var(--space-xl);
    background: var(--sage-light);
    text-align: center;
}

.ask-ai-inner {
    max-width: 680px;
    margin: 0 auto;
}

.ask-ai-headline {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 400;
    font-style: italic;
    color: var(--charcoal);
    line-height: 1.2;
    margin-bottom: var(--space-md);
}

.ask-ai-body {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--charcoal-light);
    margin-bottom: var(--space-xl);
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.ask-ai-buttons {
    display: flex;
    gap: var(--space-md);
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: var(--space-lg);
}

.ask-ai-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    padding: 0.875rem 1.5rem;
    border-radius: var(--radius-full);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    text-decoration: none;
    transition: all var(--duration-normal) var(--ease-out);
    border: 1.5px solid transparent;
}

.ask-ai-btn__icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.ask-ai-btn__arrow {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    opacity: 0.5;
    transition: all var(--duration-normal) var(--ease-out);
    fill: none;
}

.ask-ai-btn:hover .ask-ai-btn__arrow {
    opacity: 1;
    transform: translate(2px, -2px);
}

/* ChatGPT button */
.ask-ai-btn--chatgpt {
    background: var(--white);
    color: #1a1a1a;
    border-color: rgba(0, 0, 0, 0.1);
    box-shadow: var(--shadow-sm);
}

.ask-ai-btn--chatgpt:hover {
    background: #1a1a1a;
    color: var(--white);
    border-color: #1a1a1a;
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

/* Claude button */
.ask-ai-btn--claude {
    background: var(--white);
    color: #D97757;
    border-color: rgba(217, 119, 87, 0.2);
    box-shadow: var(--shadow-sm);
}

.ask-ai-btn--claude:hover {
    background: #D97757;
    color: var(--white);
    border-color: #D97757;
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

/* Perplexity button */
.ask-ai-btn--perplexity {
    background: var(--white);
    color: #20808D;
    border-color: rgba(32, 128, 141, 0.2);
    box-shadow: var(--shadow-sm);
}

.ask-ai-btn--perplexity:hover {
    background: #20808D;
    color: var(--white);
    border-color: #20808D;
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

@media (max-width: 600px) {
    .ask-ai-buttons {
        flex-direction: column;
        align-items: center;
    }

    .ask-ai-btn {
        width: 100%;
        max-width: 280px;
        justify-content: center;
    }
}

/* ========================================
   CTA SECTION - FULL BLEED TEAL
   ======================================== */
.cta-section {
    position: relative;
    padding: var(--space-5xl) 0;
    background: var(--teal-deep);
    overflow: hidden;
}

.cta-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(26, 78, 68, 0.78);
    z-index: 1;
}

.cta-inner {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
    padding-top: var(--space-3xl);
    text-align: center;
    position: relative;
    z-index: 2;
}

.cta-headline {
    color: var(--white);
    font-style: italic;
    margin-bottom: var(--space-lg);
}

.cta-subhead {
    font-size: 1.125rem;
    line-height: 1.7;
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: var(--space-lg);
}

.cta-trust {
    display: inline-flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-lg);
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-full);
    margin-bottom: var(--space-xl);
}

.cta-trust svg {
    width: 20px;
    height: 20px;
    stroke: var(--orange-light);
    stroke-width: 2;
    fill: none;
    flex-shrink: 0;
}

.cta-trust span {
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--white);
}

.cta-actions {
    display: flex;
    gap: var(--space-md);
    justify-content: center;
    flex-wrap: wrap;
}

/* ========================================
   CERTIFICATIONS
   ======================================== */
.certifications {
    padding: var(--space-md) 0;
    background: var(--sage-light);
    border-top: 1px solid var(--sage-medium);
}

.certifications-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.certification {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 0;
    border-right: none;
}

.certification:not(:last-child)::after {
    content: '·';
    margin-left: var(--space-lg);
    font-size: 1.25rem;
    color: var(--sage-dark);
    font-weight: 700;
}

.certification span {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--orange-brand);
    letter-spacing: normal;
    text-transform: uppercase;
}

@media (max-width: 768px) {
    .certifications-inner {
        flex-direction: column;
        gap: var(--space-sm);
    }
    .certification:not(:last-child)::after {
        display: none;
    }
    .certification {
        padding: var(--space-xs) 0;
    }
}

/* ========================================
   FOOTER
   ======================================== */
.site-footer {
    background: var(--charcoal);
    color: var(--white);
    padding: var(--space-4xl) 0 var(--space-xl);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr;
    gap: var(--space-3xl);
    max-width: 1200px;
    margin: 0 auto var(--space-3xl);
    padding: 0 var(--space-xl);
}

/* Footer Logo */
.footer-logo {
    margin-bottom: var(--space-md);
}

.footer-logo a {
    display: inline-block;
}

.footer-logo-image {
    max-width: 180px;
    height: auto;
    filter: brightness(0) invert(1);
}

.footer-brand p {
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.9375rem;
    line-height: 1.8;
}

.footer-column h5 {
    font-family: var(--font-body);
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--orange-brand);
    margin-bottom: var(--space-lg);
}

.footer-column p,
.footer-column a {
    display: block;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.9375rem;
    line-height: 2.2;
    transition: color var(--duration-normal) var(--ease-out);
}

.footer-column a:hover {
    color: var(--white);
}

.footer-social {
    display: flex;
    gap: var(--space-sm);
    margin-top: var(--space-md);
}

.footer-social a {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--duration-normal) var(--ease-out);
}

.footer-social a:hover {
    background: var(--teal-deep);
    transform: translateY(-2px);
}

.footer-social svg {
    width: 18px;
    height: 18px;
    stroke: var(--white);
    stroke-width: 2;
    fill: none;
}

.footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-xl) var(--space-xl) 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom p {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.4);
}

.footer-bottom-links {
    display: flex;
    gap: var(--space-lg);
}

.footer-bottom-links a {
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.4);
}

.footer-bottom-links a:hover {
    color: var(--white);
}

.footer-ask-ai {
    margin-top: 0.75rem;
    font-size: 0.8125rem;
    color: rgba(255, 255, 255, 0.4);
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.footer-ask-ai a {
    color: rgba(255, 255, 255, 0.55);
    text-decoration: none;
    transition: color var(--duration-normal) var(--ease-out);
}

.footer-ask-ai a:hover {
    color: var(--white);
}

.footer-ask-ai__sep {
    color: rgba(255, 255, 255, 0.25);
}

/* ========================================
   ANIMATIONS
   ======================================== */
[data-animate] {
    opacity: 0;
    transform: translateY(60px);
}

[data-animate].animated {
    opacity: 1;
    transform: translateY(0);
}

/* Watercolor bloom reveal — soft scale + focus from center */
[data-animate="bloom"] {
    opacity: 0;
    transform: scale(0.94);
    filter: blur(4px);
}

[data-animate="bloom"].animated {
    opacity: 1;
    transform: scale(1);
    filter: blur(0);
}

/* Text split reveal utilities */
.word-mask {
    display: inline-block;
    overflow: hidden;
    vertical-align: bottom;
    padding-bottom: 0.05em;
}
.word-mask .word {
    display: inline-block;
    transform: translateY(105%);
    will-change: transform;
}

/* Testimonial cards — gentle floating sway */
@keyframes testimonialFloat {
    0%, 100% { transform: translateY(0) rotate(0deg); }
    50% { transform: translateY(-6px) rotate(0.3deg); }
}

.google-review-card.floating {
    animation: testimonialFloat var(--float-duration, 8s) ease-in-out infinite;
    animation-delay: var(--float-delay, 0s);
}

/* ========================================
   RESPONSIVE - 1200px
   ======================================== */
@media (max-width: 1200px) {
    .hero-inner,
    .about-inner,
    .programs-inner {
        gap: var(--space-3xl);
    }
}

/* ========================================
   RESPONSIVE - 1024px
   ======================================== */
@media (max-width: 1024px) {
    :root {
        --space-3xl: 4rem;
        --space-4xl: 5rem;
        --space-5xl: 6rem;
    }

    .hero {
        min-height: auto;
        padding-top: 100px;
    }

    .hero--fullbleed {
        min-height: auto;
    }

    .hero--fullbleed .hero-inner {
        padding: var(--space-2xl);
        min-height: auto;
    }

    .hero-inner,
    .about-inner,
    .programs-inner {
        grid-template-columns: 1fr;
        gap: var(--space-lg);
        padding: var(--space-xl) var(--space-md);
    }

    .hero-image {
        height: 260px;
    }

    .about-image-wrapper img {
        height: 280px;
    }

    .about-content-col {
        padding-left: 0;
    }

    .modalities-bento {
        grid-template-columns: repeat(2, 1fr);
    }

    .programs-image {
        height: 260px;
    }

    .testimonials-featured {
        padding: var(--space-xl);
    }

    .featured-quote {
        font-size: 1.375rem;
    }

    .featured-quote-mark {
        font-size: 3rem;
    }

    .footer-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-xl);
    }

}

/* ========================================
   HEADER NAV → HAMBURGER (1024px)
   ======================================== */
@media (max-width: 1024px) {
    .nav-menu {
        display: none;
    }

    .header-inner {
        padding: var(--space-sm) var(--space-md);
    }

    .logo-image {
        height: 40px;
        max-height: 40px;
        width: auto;
    }

    .mobile-menu-toggle {
        display: flex;
        position: relative;
        z-index: 10001;
    }

    .mobile-menu-toggle.active span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }

    .mobile-menu-toggle.active span:nth-child(2) {
        opacity: 0;
        transform: translateX(-10px);
    }

    .mobile-menu-toggle.active span:nth-child(3) {
        transform: rotate(-45deg) translate(7px, -6px);
    }

    body.menu-open {
        overflow: hidden;
    }

    .header-cta {
        display: none;
    }

    .mobile-header-cta {
        display: inline-flex;
        align-items: center;
        padding: 0.5rem 1rem;
        font-size: 0.8125rem;
        font-weight: 700;
        margin-right: 0.75rem;
    }
}

/* ========================================
   MOBILE MENU OVERLAY (outside header, no backdrop-filter trap)
   ======================================== */
.mobile-menu-overlay {
    display: none;
}

@media (max-width: 1024px) {
    .mobile-menu-overlay {
        position: fixed;
        inset: 0;
        z-index: 10000;
        background: #fdfdf9;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        padding: 6rem 2rem 3rem;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.4s cubic-bezier(0.4, 0, 0.2, 1),
                    visibility 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .mobile-menu-overlay.open {
        opacity: 1;
        visibility: visible;
    }

    .mobile-overlay-close {
        position: absolute;
        top: 1.25rem;
        right: 1.25rem;
        background: none;
        border: none;
        font-size: 2rem;
        line-height: 1;
        color: var(--charcoal);
        cursor: pointer;
        padding: 0.5rem;
        z-index: 1;
        opacity: 0;
        transition: opacity 0.3s ease;
    }

    .mobile-menu-overlay.open .mobile-overlay-close {
        opacity: 1;
        transition-delay: 0.15s;
    }

    .mobile-overlay-links {
        list-style: none;
        padding: 0;
        margin: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.5rem;
        width: 100%;
    }

    .mobile-overlay-links li {
        text-align: center;
        width: 100%;
        opacity: 0;
        transform: translateY(10px);
        transition: opacity 0.35s ease, transform 0.35s ease;
    }

    .mobile-menu-overlay.open .mobile-overlay-links li {
        opacity: 1;
        transform: translateY(0);
    }

    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(1)  { transition-delay: 0.06s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(2)  { transition-delay: 0.12s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(3)  { transition-delay: 0.18s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(4)  { transition-delay: 0.24s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(5)  { transition-delay: 0.30s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(6)  { transition-delay: 0.36s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(7)  { transition-delay: 0.42s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(8)  { transition-delay: 0.48s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(9)  { transition-delay: 0.54s; }
    .mobile-menu-overlay.open .mobile-overlay-links li:nth-child(10) { transition-delay: 0.60s; }

    .mobile-overlay-links > li > a {
        font-size: 1.25rem;
        font-family: 'Playfair Display', Georgia, serif;
        padding: 0.6rem 0;
        display: block;
        color: var(--charcoal);
        text-decoration: none;
        transition: color 0.2s ease;
    }

    .mobile-overlay-links > li > a:hover {
        color: var(--gold-deep, #b8860b);
    }

    .mobile-overlay-links .mobile-nav-cta {
        margin-top: 1rem;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.5rem;
    }
}

/* ========================================
   RESPONSIVE - 768px
   ======================================== */
@media (max-width: 768px) {
    :root {
        --space-3xl: 2.5rem;
        --space-4xl: 3rem;
        --space-5xl: 4rem;
    }

    .header-inner {
        padding: var(--space-sm) var(--space-md);
    }

    .logo-image {
        height: 36px;
    }

    .hero-inner,
    .about-inner,
    .programs-inner,
    .cta-inner {
        padding: var(--space-md);
    }

    .hero--fullbleed .hero-inner {
        padding: var(--space-lg) var(--space-md);
        min-height: auto;
    }

    .hero--fullbleed .hero-content {
        max-width: 100%;
    }

    .hero-headline {
        font-size: clamp(2rem, 9vw, 3.5rem);
    }

    .hero-tagline {
        font-size: 0.8125rem;
        letter-spacing: normal;
    }

    .btn-hero-cta {
        padding: 1rem 2rem;
        font-size: 1rem;
        width: 100%;
        justify-content: center;
    }

    .btn-ghost--light {
        width: 100%;
        justify-content: center;
    }

    .nature-banner {
        padding: var(--space-3xl) 0;
    }

    .nature-banner__inner {
        padding: 0 var(--space-md);
    }

    .nature-banner__headline {
        font-size: clamp(1.5rem, 6vw, 2.5rem);
    }

    .nature-banner__actions {
        flex-direction: column;
        align-items: stretch;
    }

    .headline-italic {
        margin-left: 0;
    }

    .hero-actions,
    .cta-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .insurance-inner {
        flex-direction: column;
        gap: var(--space-md);
    }

    .insurance-logos {
        flex-wrap: wrap;
        justify-content: center;
        gap: var(--space-lg);
    }

    .about-inner {
        gap: var(--space-lg);
    }

    .about-image-wrapper img {
        height: 220px;
    }

    .about-headline {
        font-size: clamp(1.75rem, 6vw, 2.5rem);
    }

    .about-pull-quote {
        padding-left: var(--space-md);
    }

    .about-pull-quote .quote-mark {
        font-size: 3rem;
        left: -4px;
        top: -5px;
    }

    .feature-row {
        flex-direction: column;
        gap: var(--space-sm);
    }

    .modalities-bento {
        grid-template-columns: 1fr;
    }

    .modalities-headline {
        font-size: clamp(1.75rem, 6vw, 2.5rem);
    }

    .conditions-headline {
        font-size: clamp(1.75rem, 6vw, 2.5rem);
    }

    .programs-inner {
        padding: var(--space-xl) var(--space-md);
    }

    .programs-content {
        padding-right: 0;
    }

    .programs-image {
        height: 200px;
    }

    .accordion-content p {
        padding-left: var(--space-lg);
    }

    .founder-inner {
        gap: var(--space-xl);
        padding: 0 var(--space-md);
    }

    .founder-image-wrapper img {
        height: 240px;
    }

    .founder-headline {
        font-size: clamp(1.75rem, 6vw, 2.5rem);
    }

    .google-reviews-carousel {
        gap: var(--space-md);
    }

    .google-review-card {
        min-width: 280px;
    }

    .cta-inner {
        padding: var(--space-xl) var(--space-md);
    }

    .cta-headline {
        font-size: clamp(1.5rem, 6vw, 2.5rem);
    }

    .cta-subhead {
        font-size: 1rem;
    }

    .cta-trust {
        padding: var(--space-sm) var(--space-md);
    }

    .cta-trust span {
        font-size: 0.8125rem;
    }

    .featured-author {
        flex-direction: column;
        gap: var(--space-md);
    }

    .featured-author .author-details {
        text-align: center;
    }

    .testimonial-card {
        flex: 0 0 300px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: var(--space-xl);
    }

    .footer-bottom {
        flex-direction: column;
        gap: var(--space-md);
        text-align: center;
    }

}

/* ========================================
   RESPONSIVE - 480px
   ======================================== */
@media (max-width: 480px) {
    :root {
        --space-2xl: 2.5rem;
        --space-3xl: 2rem;
        --space-4xl: 2.5rem;
        --space-5xl: 3rem;
    }

    .container,
    .container-wide {
        padding: 0 var(--space-sm);
    }

    .image-accent-border {
        display: none;
    }

    .about-image-caption {
        display: none;
    }

    .hero--fullbleed {
        min-height: auto;
    }

    .hero-headline {
        font-size: clamp(1.75rem, 8vw, 2.5rem);
    }

    .hero-tagline {
        font-size: 0.75rem;
    }

    .about-image-wrapper img {
        height: 180px;
    }

    .about-headline {
        font-size: 1.5rem;
    }

    .about-body {
        font-size: 0.9375rem;
    }

    .logo-item img {
        height: 32px;
        width: 110px;
    }

    .insurance-logos {
        gap: var(--space-md);
    }

    .stat-item {
        flex: 0 0 calc(50% - var(--space-sm));
    }

    .stat-number {
        font-size: clamp(2rem, 8vw, 3rem);
    }

    .stat-suffix {
        font-size: clamp(1.25rem, 4vw, 2rem);
    }

    .conditions-inner {
        padding: 0 var(--space-md);
    }

    .condition-text h3 {
        font-size: 1rem;
    }

    .founder-image-wrapper img {
        height: 200px;
    }

    .programs-headline,
    .founder-headline {
        font-size: 1.5rem;
    }

    .google-review-card {
        min-width: 260px;
        padding: var(--space-md);
    }

    .testimonial-card {
        flex: 0 0 280px;
    }

    .nature-banner__headline {
        font-size: 1.375rem;
    }

    .nature-banner__text {
        font-size: 0.9375rem;
    }

}

/* ========================================
   IMPACT STATS - ANIMATED COUNTERS
   ======================================== */
.impact-stats {
    padding: var(--space-3xl) 0;
    background: var(--white);
    border-bottom: 1px solid var(--sage-medium);
}

.stats-grid {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2xl);
    flex-wrap: wrap;
}

.stat-item {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.stat-number {
    font-family: var(--font-display);
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 600;
    color: var(--teal-deep);
    line-height: 1;
    display: inline;
}

.stat-suffix {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    font-weight: 600;
    color: var(--orange-brand);
    display: inline;
    margin-left: 2px;
}

.stat-item > div:first-child {
    display: flex;
    align-items: baseline;
    justify-content: center;
}

.stat-label {
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--charcoal-muted);
    margin-top: var(--space-xs);
}

.stat-divider {
    width: 1px;
    height: 60px;
    background: var(--sage-dark);
}

@media (max-width: 768px) {
    .impact-stats {
        padding: var(--space-2xl) 0;
    }

    .stats-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--space-xl) var(--space-md);
    }

    .stat-divider {
        display: none;
    }

    .stat-item {
        flex: none;
    }
}

/* ========================================
   CONDITIONS SECTION - WHAT WE TREAT
   ======================================== */
.conditions-section {
    padding: var(--space-5xl) 0;
    background: var(--white);
}

.conditions-inner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: var(--space-4xl);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.conditions-content {
    position: sticky;
    top: 120px;
    align-self: start;
}

.conditions-headline {
    font-size: clamp(2rem, 4vw, 3rem);
    margin-bottom: var(--space-lg);
    line-height: 1.2;
}

.conditions-intro {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--charcoal-light);
}

.conditions-list {
    display: flex;
    flex-direction: column;
}

.condition-item {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    padding: var(--space-lg) 0;
    border-bottom: 1px solid var(--sage-medium);
    text-decoration: none;
    transition: all var(--duration-normal) var(--ease-out);
}

.condition-item:first-child {
    border-top: 1px solid var(--sage-medium);
}

.condition-item:hover {
    padding-left: var(--space-md);
    background: linear-gradient(90deg, var(--sage-light) 0%, transparent 100%);
}

.condition-number {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--orange-brand);
    letter-spacing: 0.05em;
    flex-shrink: 0;
    width: 24px;
}

.condition-text {
    flex: 1;
}

.condition-text h3 {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--charcoal);
    margin: 0 0 4px 0;
    transition: color var(--duration-normal) var(--ease-out);
}

.condition-item:hover .condition-text h3 {
    color: var(--teal-deep);
}

.condition-text p {
    font-size: 0.9375rem;
    color: var(--charcoal-muted);
    margin: 0;
    line-height: 1.5;
}

.condition-arrow {
    font-size: 1.25rem;
    color: var(--sage-dark);
    transition: all var(--duration-normal) var(--ease-out);
    flex-shrink: 0;
}

.condition-item:hover .condition-arrow {
    color: var(--teal-deep);
    transform: translateX(4px);
}

@media (max-width: 1024px) {
    .conditions-inner {
        grid-template-columns: 1fr;
        gap: var(--space-2xl);
    }

    .conditions-content {
        position: static;
    }
}

@media (max-width: 640px) {
    .condition-item {
        flex-wrap: wrap;
        gap: var(--space-sm);
    }

    .condition-number {
        width: auto;
    }

    .condition-text {
        flex-basis: calc(100% - 50px);
    }
}

/* ========================================
   FOUNDER SECTION
   ======================================== */
.founder-section {
    padding: var(--space-5xl) 0;
    background: var(--sage-light);
}

.founder-inner {
    display: grid;
    grid-template-columns: 0.8fr 1.2fr;
    gap: var(--space-4xl);
    align-items: start;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.founder-image-col {
    position: relative;
}

.founder-image-wrapper {
    position: relative;
    border-radius: var(--radius-2xl);
    overflow: hidden;
}

.founder-image-wrapper img {
    width: 100%;
    height: 500px;
    object-fit: cover;
    object-position: center top;
}

.founder-headline {
    font-size: clamp(2rem, 4vw, 3rem);
    margin-bottom: var(--space-xs);
}

.founder-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--teal-deep);
    text-transform: uppercase;
    letter-spacing: normal;
    margin-bottom: var(--space-lg);
}

.founder-bio {
    font-size: 1.0625rem;
    line-height: 1.8;
    color: var(--charcoal-light);
    margin-bottom: var(--space-xl);
}

.founder-credentials {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
}

.credential {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-sm) var(--space-md);
    background: var(--white);
    border-radius: var(--radius-full);
    box-shadow: var(--shadow-sm);
}

.credential svg {
    width: 18px;
    height: 18px;
    stroke: var(--teal-deep);
    stroke-width: 2;
    fill: none;
}

.credential span {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--charcoal);
}

@media (max-width: 1024px) {
    .founder-inner {
        grid-template-columns: 1fr;
        gap: var(--space-2xl);
    }

    .founder-image-wrapper img {
        height: 400px;
    }
}

/* ========================================
   PROGRAMS CTA
   ======================================== */
.programs-cta {
    margin-top: var(--space-xl);
}

/* ========================================
   TESTIMONIALS CTA
   ======================================== */
.testimonials-cta {
    text-align: center;
    margin-top: var(--space-2xl);
}

/* ========================================
   PAGE HERO - SHARED INNER PAGES
   ======================================== */
.page-hero {
    position: relative;
    min-height: 80vh;
    display: flex;
    align-items: center;
    background: var(--sage-light);
    padding-top: 100px;
    overflow: hidden;
}

.page-hero__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4xl);
    align-items: center;
    width: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: var(--space-4xl) var(--space-3xl);
}

.page-hero__headline {
    margin-bottom: var(--space-xl);
    line-height: 0.95;
    font-size: clamp(2.75rem, 7vw, 5.5rem);
}

.page-hero__subhead {
    font-size: 1.25rem;
    line-height: 1.7;
    color: var(--charcoal-light);
    max-width: 520px;
    margin-bottom: var(--space-xl);
}

.page-hero__image-frame {
    position: relative;
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.page-hero__image-frame img {
    width: 100%;
    height: 580px;
    object-fit: cover;
    transition: transform var(--duration-slower) var(--ease-out);
}

.page-hero__image-frame:hover img {
    transform: scale(1.03);
}

.page-hero__image-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(42, 125, 111, 0.2) 0%, transparent 40%);
    pointer-events: none;
}

@media (max-width: 1024px) {
    .page-hero {
        min-height: auto;
        padding-top: 100px;
    }

    .page-hero__inner {
        grid-template-columns: 1fr;
        gap: var(--space-lg);
        padding: var(--space-xl) var(--space-md);
    }

    .page-hero__image-frame img {
        height: 260px;
    }
}

@media (max-width: 768px) {
    .page-hero__inner {
        padding: var(--space-md);
        gap: var(--space-md);
    }

    .page-hero__headline {
        font-size: clamp(2.25rem, 8vw, 3.5rem);
    }
}

/* ========================================
   ABOUT PAGE - MISSION SECTION
   ======================================== */
.mission-section {
    padding: var(--space-5xl) 0;
    background: var(--white);
    text-align: center;
}

.mission-inner {
    max-width: 900px;
    margin: 0 auto;
}

.mission-quote {
    position: relative;
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.75rem);
    font-style: italic;
    line-height: 1.4;
    color: var(--charcoal);
    margin: 0 0 var(--space-lg);
}

.mission-quote__mark {
    font-family: var(--font-display);
    font-size: 6rem;
    font-weight: 700;
    color: var(--teal-pale);
    line-height: 0.5;
    display: block;
    margin-bottom: var(--space-md);
}

.mission-attribution {
    font-size: 1rem;
    font-weight: 600;
    color: var(--teal-deep);
    letter-spacing: 0.03em;
}

/* ========================================
   ABOUT PAGE - FOUNDER FEATURE
   ======================================== */
.founder-feature {
    padding: var(--space-5xl) 0;
    background: var(--sage-light);
    overflow: hidden;
}

.founder-feature__inner {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: var(--space-4xl);
    align-items: center;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--space-3xl);
}

.portrait-frame {
    position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.portrait-frame img {
    width: 100%;
    height: 620px;
    object-fit: cover;
    object-position: center top;
}

.portrait-accent {
    position: absolute;
    top: 20px;
    left: 20px;
    right: -20px;
    bottom: -20px;
    border: 2px solid var(--orange-brand);
    border-radius: var(--radius-xl);
    z-index: -1;
    opacity: 0.5;
}

.portrait-caption {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-top: var(--space-lg);
    padding-left: var(--space-md);
}

.portrait-caption span {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--charcoal-muted);
    letter-spacing: 0.05em;
}

.founder-feature__content {
    padding-left: var(--space-2xl);
}

.founder-feature__pull-quote {
    position: relative;
    padding: var(--space-lg) 0 var(--space-lg) var(--space-xl);
    margin-bottom: var(--space-lg);
    border-left: 3px solid var(--teal-deep);
}

.founder-feature__pull-quote .quote-mark {
    position: absolute;
    top: 12px;
    left: 12px;
    font-family: var(--font-display);
    font-size: 4rem;
    font-weight: 700;
    color: var(--teal-pale);
    line-height: 1;
    opacity: 0.5;
}

.founder-feature__pull-quote p {
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-style: italic;
    line-height: 1.6;
    color: var(--charcoal);
    margin: 0;
}

.founder-feature__bio p {
    font-size: 1.0625rem;
    line-height: 1.8;
    margin-bottom: var(--space-md);
}

.founder-bio-expanded {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s ease, opacity 0.4s ease;
    opacity: 0;
}

.founder-bio-expanded.is-open {
    max-height: 1200px;
    opacity: 1;
}

.founder-read-more {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    color: var(--sage);
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    cursor: pointer;
    padding: 0;
    margin-top: var(--space-sm);
    transition: color 0.3s ease;
}

.founder-read-more:hover {
    color: var(--forest);
}

.founder-read-more .read-more-icon {
    transition: transform 0.3s ease;
}

.founder-read-more.is-open .read-more-icon {
    transform: rotate(180deg);
}

/* Credentials handled in page-styles.css */

@media (max-width: 1024px) {
    .founder-feature__inner {
        grid-template-columns: 1fr;
        gap: var(--space-2xl);
        padding: var(--space-2xl);
    }

    .founder-feature__content {
        padding-left: 0;
    }

    .portrait-frame img {
        height: 450px;
    }
}

@media (max-width: 768px) {
    .founder-feature__inner {
        padding: var(--space-md);
    }

    .founder-credentials {
        flex-direction: column;
        gap: var(--space-xs);
    }
}

/* ========================================
   ABOUT PAGE - DIFFERENTIATORS
   ======================================== */
.differentiators-section {
    padding: var(--space-5xl) 0;
    background: var(--white);
}

.differentiators-header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.differentiators-headline {
    margin-bottom: 0;
}

.differentiators-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
}

.differentiator-item {
    padding: var(--space-xl);
    background: var(--sage-light);
    border-radius: var(--radius-xl);
    border: 2px solid transparent;
    transition: all var(--duration-normal) var(--ease-out);
}

.differentiator-item:hover {
    background: var(--white);
    border-color: var(--sage-dark);
    transform: translateY(-8px);
    box-shadow: var(--shadow-lg);
}

.differentiator-number {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--orange-brand);
    letter-spacing: 0.05em;
    margin-bottom: var(--space-md);
}

.differentiator-item h3 {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: var(--space-sm);
}

.differentiator-item p {
    font-size: 0.9375rem;
    line-height: 1.7;
    margin: 0;
}

@media (max-width: 1024px) {
    .differentiators-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .differentiators-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   ABOUT PAGE - CONDITIONS TAGS
   ======================================== */
.about-conditions {
    padding: var(--space-5xl) 0;
    background: var(--teal-deep);
    overflow: hidden;
}

.about-conditions__inner {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: var(--space-4xl);
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.about-conditions__headline {
    color: var(--white);
    margin-bottom: var(--space-md);
}

.about-conditions__headline em,
.cta-headline em,
.nature-banner__headline em {
    color: inherit;
}

.about-conditions__intro {
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.0625rem;
    line-height: 1.7;
}

.about-conditions__list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.condition-tag {
    padding: var(--space-sm) var(--space-lg);
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: var(--radius-full);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--white);
    transition: all var(--duration-normal) var(--ease-out);
}

.condition-tag:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.4);
    transform: translateY(-2px);
}

@media (max-width: 1024px) {
    .about-conditions__inner {
        grid-template-columns: 1fr;
        gap: var(--space-2xl);
    }
}

/* ========================================
   ABOUT PAGE - INCLUSIVITY
   ======================================== */
.inclusivity-section {
    padding: var(--space-3xl) 0;
    background: var(--sage-light);
}

.inclusivity-inner {
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
    padding: var(--space-2xl);
    background: var(--white);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-md);
}

.inclusivity-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto var(--space-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--sage-light);
    border-radius: var(--radius-lg);
}

.inclusivity-icon svg {
    width: 28px;
    height: 28px;
    stroke: var(--teal-deep);
    fill: none;
}

.inclusivity-inner h3 {
    margin-bottom: var(--space-md);
}

.inclusivity-inner p {
    font-size: 1.0625rem;
    line-height: 1.8;
    max-width: 600px;
    margin: 0 auto;
}

/* ========================================
   PROGRAMS PAGE - PROGRAM CARDS
   ======================================== */
.programs-overview {
    padding: var(--space-5xl) 0;
    background: var(--white);
}

.programs-overview__header {
    text-align: center;
    max-width: 700px;
    margin: 0 auto var(--space-3xl);
}

.programs-overview__subhead {
    font-size: 1.125rem;
    line-height: 1.7;
    color: var(--charcoal-light);
}

.program-detail {
    padding: var(--space-5xl) 0;
    position: relative;
}

.program-detail:nth-child(even) {
    background: var(--sage-light);
}

.program-detail__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4xl);
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.program-detail:nth-child(even) .program-detail__inner {
    direction: rtl;
}

.program-detail:nth-child(even) .program-detail__inner > * {
    direction: ltr;
}

.program-detail__visual {
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.program-detail__visual img {
    width: 100%;
    height: 450px;
    object-fit: cover;
}

.program-detail__number {
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--orange-brand);
    letter-spacing: 0.1em;
    margin-bottom: var(--space-md);
}

.program-detail__content h3 {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    margin-bottom: var(--space-md);
}

.program-detail__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    margin-bottom: var(--space-lg);
}

.meta-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-md);
    background: var(--teal-pale);
    border-radius: var(--radius-full);
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--teal-deep);
}

.meta-badge svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    stroke-width: 2;
    fill: none;
}

.program-detail__features {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--space-xl);
}

.program-detail__features li {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    padding: var(--space-sm) 0;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--charcoal-light);
    border-bottom: 1px solid var(--sage-medium);
}

.program-detail__features li:last-child {
    border-bottom: none;
}

.program-detail__features li svg {
    width: 18px;
    height: 18px;
    stroke: var(--teal-deep);
    stroke-width: 2;
    fill: none;
    flex-shrink: 0;
    margin-top: 2px;
}

@media (max-width: 1024px) {
    .program-detail__inner {
        grid-template-columns: 1fr;
        gap: var(--space-2xl);
    }

    .program-detail:nth-child(even) .program-detail__inner {
        direction: ltr;
    }

    .program-detail__visual img {
        height: 350px;
    }
}

/* ========================================
   PROGRAMS PAGE - COMPARISON TABLE
   ======================================== */
.programs-compare {
    padding: var(--space-5xl) 0;
    background: var(--teal-deep);
}

.programs-compare__header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.programs-compare__headline {
    color: var(--white);
    margin-bottom: var(--space-md);
}

.programs-compare__headline em {
    color: var(--orange-light);
}

.programs-compare__subhead {
    color: rgba(255, 255, 255, 0.8);
    font-size: 1.0625rem;
}

.compare-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: var(--space-md);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.compare-card {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--radius-xl);
    padding: var(--space-xl);
    text-align: center;
    transition: all var(--duration-normal) var(--ease-out);
}

.compare-card:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateY(-4px);
}

.compare-card.featured {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--orange-light);
    position: relative;
}

.compare-card__badge {
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    padding: var(--space-xs) var(--space-md);
    background: var(--orange-brand);
    border-radius: var(--radius-full);
    font-size: 0.6875rem;
    font-weight: 700;
    color: var(--white);
    text-transform: uppercase;
    letter-spacing: normal;
    white-space: nowrap;
}

.compare-card h4 {
    color: var(--white);
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: var(--space-md);
}

.compare-card__hours {
    font-family: var(--font-display);
    font-size: 2.5rem;
    font-weight: 600;
    color: var(--orange-light);
    line-height: 1;
    margin-bottom: var(--space-xs);
}

.compare-card__unit {
    font-size: 0.75rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.6);
    text-transform: uppercase;
    letter-spacing: normal;
    margin-bottom: var(--space-md);
}

.compare-card__format {
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.5;
}

@media (max-width: 768px) {
    .compare-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .compare-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   THERAPIES PAGE - RITTM SPOTLIGHT
   ======================================== */
.rittm-spotlight {
    padding: var(--space-5xl) 0;
    background: var(--teal-deep);
    position: relative;
    overflow: hidden;
}

.rittm-spotlight__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-4xl);
    align-items: center;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 var(--space-3xl);
}

.rittm-spotlight__content .section-label {
    color: var(--white);
}

.rittm-spotlight__content .section-label::before {
    background: var(--orange-light);
}

.rittm-spotlight__headline {
    color: var(--white);
    font-size: clamp(2rem, 4vw, 3.5rem);
    margin-bottom: var(--space-lg);
}

.rittm-spotlight__headline em {
    color: var(--orange-light);
}

.rittm-spotlight__desc {
    color: rgba(255, 255, 255, 0.85);
    font-size: 1.125rem;
    line-height: 1.8;
    margin-bottom: var(--space-xl);
}

.rittm-spotlight__quote {
    position: relative;
    padding: var(--space-lg) 0 var(--space-lg) var(--space-xl);
    border-left: 3px solid var(--orange-light);
    margin-bottom: var(--space-xl);
}

.rittm-spotlight__quote p {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-style: italic;
    line-height: 1.6;
    color: var(--white);
    margin: 0;
}

.rittm-spotlight__visual {
    border-radius: var(--radius-2xl);
    overflow: hidden;
    box-shadow: var(--shadow-xl);
}

.rittm-spotlight__visual img {
    width: 100%;
    height: 500px;
    object-fit: cover;
}

@media (max-width: 1024px) {
    .rittm-spotlight__inner {
        grid-template-columns: 1fr;
        gap: var(--space-2xl);
        padding: var(--space-2xl);
    }

    .rittm-spotlight__visual img {
        height: 350px;
    }
}

/* ========================================
   THERAPIES PAGE - THERAPY CARDS
   ======================================== */
.therapy-section {
    padding: var(--space-5xl) 0;
}

.therapy-section--alt {
    background: var(--sage-light);
}

.therapy-section__header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.therapy-section__headline {
    margin-bottom: var(--space-md);
}

.therapy-section__subhead {
    font-size: 1.0625rem;
    color: var(--charcoal-light);
    max-width: 600px;
    margin: 0 auto;
}

.therapy-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-lg);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.therapy-card {
    padding: var(--space-xl);
    background: var(--white);
    border-radius: var(--radius-xl);
    border: 2px solid transparent;
    box-shadow: var(--shadow-sm);
    transition: all var(--duration-normal) var(--ease-out);
}

.therapy-section--alt .therapy-card {
    background: var(--white);
}

.therapy-card:hover {
    border-color: var(--sage-dark);
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}

.therapy-card__icon {
    width: 56px;
    height: 56px;
    background: var(--sage-light);
    border-radius: var(--radius-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: var(--space-md);
    transition: all var(--duration-normal) var(--ease-out);
}

.therapy-card:hover .therapy-card__icon {
    background: var(--teal-deep);
}

.therapy-card__icon svg {
    width: 24px;
    height: 24px;
    stroke: var(--teal-deep);
    stroke-width: 2;
    fill: none;
    transition: stroke var(--duration-normal) var(--ease-out);
}

.therapy-card:hover .therapy-card__icon svg {
    stroke: var(--white);
}

.therapy-card__creator {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: normal;
    color: var(--orange-brand);
    margin-bottom: var(--space-xs);
}

.therapy-card h3 {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: var(--space-sm);
}

.therapy-card p {
    font-size: 0.9375rem;
    line-height: 1.7;
    margin: 0;
}

.therapy-bento {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

@media (max-width: 1024px) {
    .therapy-bento {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .therapy-grid {
        grid-template-columns: 1fr;
    }

    .therapy-bento {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   INSURANCE PAGE - PROVIDERS GRID
   ======================================== */
.providers-section {
    padding: var(--space-5xl) 0;
    background: var(--white);
}

.providers-section__header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.providers-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-lg);
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.provider-item {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-lg);
    background: var(--sage-light);
    border-radius: var(--radius-xl);
    min-height: 100px;
    transition: all var(--duration-normal) var(--ease-out);
}

.provider-item:hover {
    background: var(--white);
    box-shadow: var(--shadow-md);
    transform: translateY(-4px);
}

.provider-item img {
    max-height: 40px;
    max-width: 120px;
    width: auto;
    object-fit: contain;
    opacity: 0.6;
    filter: grayscale(100%);
    transition: all var(--duration-normal) var(--ease-out);
}

.provider-item:hover img {
    opacity: 1;
    filter: grayscale(0%);
}

.provider-item--text {
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--charcoal-muted);
    text-align: center;
    transition: color var(--duration-normal) var(--ease-out);
}

.provider-item:hover .provider-item--text {
    color: var(--teal-deep);
}

@media (max-width: 768px) {
    .providers-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 480px) {
    .providers-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ========================================
   INSURANCE PAGE - HOW IT WORKS
   ======================================== */
.how-it-works {
    padding: var(--space-5xl) 0;
    background: var(--sage-light);
}

.how-it-works__header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.steps-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-xl);
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.step-card {
    text-align: center;
    padding: var(--space-2xl) var(--space-xl);
    background: var(--white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
    position: relative;
}

.step-card__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    background: var(--teal-deep);
    color: var(--white);
    border-radius: 50%;
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: var(--space-lg);
}

.step-card h3 {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: var(--space-sm);
}

.step-card p {
    font-size: 0.9375rem;
    line-height: 1.7;
    margin: 0;
}

@media (max-width: 768px) {
    .steps-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   INSURANCE/CONTACT - FORM STYLES
   ======================================== */
.form-section {
    padding: var(--space-5xl) 0;
    background: var(--white);
}

.form-section--alt {
    background: var(--sage-light);
}

.form-section__header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.form-wrapper {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--space-2xl);
    background: var(--white);
    border-radius: var(--radius-2xl);
    box-shadow: var(--shadow-lg);
}

.form-section--alt .form-wrapper {
    /* already white */
}

.verify-form,
.contact-form {
    display: grid;
    gap: var(--space-lg);
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-lg);
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.form-group label {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--charcoal);
    letter-spacing: 0.02em;
}

.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 1rem 1.25rem;
    border: 2px solid var(--sage-medium);
    border-radius: var(--radius-md);
    font-family: var(--font-body);
    font-size: 1rem;
    color: var(--charcoal);
    background: var(--white);
    transition: all var(--duration-normal) var(--ease-out);
    outline: none;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: var(--charcoal-muted);
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--teal-deep);
    box-shadow: 0 0 0 4px var(--teal-pale);
}

.form-group textarea {
    min-height: 150px;
    resize: vertical;
}

.form-submit {
    display: flex;
    justify-content: center;
    margin-top: var(--space-md);
}

.form-submit .btn {
    min-width: 250px;
}

@media (max-width: 768px) {
    .form-row {
        grid-template-columns: 1fr;
    }

    .form-wrapper {
        padding: var(--space-lg);
    }
}

/* ========================================
   CONTACT PAGE - CONTACT CARDS
   ======================================== */
.contact-cards {
    padding: var(--space-5xl) 0;
    background: var(--white);
}

.contact-cards__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.contact-card {
    text-align: center;
    padding: var(--space-2xl) var(--space-xl);
    background: var(--sage-light);
    border-radius: var(--radius-xl);
    transition: all var(--duration-normal) var(--ease-out);
}

.contact-card:hover {
    background: var(--white);
    transform: translateY(-6px);
    box-shadow: var(--shadow-lg);
}

.contact-card__icon {
    width: 64px;
    height: 64px;
    margin: 0 auto var(--space-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-sm);
    transition: all var(--duration-normal) var(--ease-out);
}

.contact-card:hover .contact-card__icon {
    background: var(--teal-deep);
}

.contact-card__icon svg {
    width: 28px;
    height: 28px;
    stroke: var(--teal-deep);
    stroke-width: 2;
    fill: none;
    transition: stroke var(--duration-normal) var(--ease-out);
}

.contact-card:hover .contact-card__icon svg {
    stroke: var(--white);
}

.contact-card h3 {
    font-family: var(--font-body);
    font-size: 1.125rem;
    font-weight: 700;
    margin-bottom: var(--space-sm);
}

.contact-card a {
    font-size: 1rem;
    font-weight: 600;
    color: var(--teal-deep);
    display: block;
    margin-bottom: var(--space-xs);
}

.contact-card a:hover {
    color: var(--charcoal);
}

.contact-card__sub {
    font-size: 0.8125rem;
    color: var(--charcoal-muted);
    margin-top: var(--space-sm);
}

@media (max-width: 768px) {
    .contact-cards__grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   CONTACT PAGE - MAP
   ======================================== */
.map-section {
    padding: 0 var(--space-xl) var(--space-5xl);
    max-width: 1200px;
    margin: 0 auto;
}

.map-section iframe {
    width: 100%;
    height: 450px;
    border: none;
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-md);
}

/* ========================================
   INSURANCE FAQ ACCORDION
   ======================================== */
.faq-section {
    padding: var(--space-5xl) 0;
    background: var(--sage-light);
}

.faq-section__header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

.faq-list {
    max-width: 800px;
    margin: 0 auto;
    padding: 0 var(--space-xl);
}

.faq-item {
    background: var(--white);
    border-radius: var(--radius-lg);
    margin-bottom: var(--space-sm);
    overflow: hidden;
    border: 1px solid var(--sage-medium);
    transition: all var(--duration-normal) var(--ease-out);
}

.faq-item:hover {
    border-color: var(--sage-dark);
}

.faq-trigger {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    padding: var(--space-lg);
    text-align: left;
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 600;
    color: var(--charcoal);
    cursor: pointer;
}

.faq-trigger__icon {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: transform var(--duration-normal) var(--ease-out);
}

.faq-trigger__icon svg {
    width: 16px;
    height: 16px;
    stroke: var(--charcoal-muted);
    stroke-width: 2;
    fill: none;
}

.faq-item.active .faq-trigger__icon {
    transform: rotate(45deg);
}

.faq-item.active .faq-trigger {
    color: var(--teal-deep);
}

.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--duration-slow) var(--ease-out);
}

.faq-item.active .faq-answer {
    max-height: 300px;
}

.faq-answer p {
    padding: 0 var(--space-lg) var(--space-lg);
    font-size: 0.9375rem;
    line-height: 1.8;
    margin: 0;
}

/* ========================================
   ACCESSIBILITY & SEO ADDITIONS
   ======================================== */

/* Skip Link */
.skip-link {
    position: absolute;
    left: -9999px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.skip-link:focus {
    position: fixed;
    top: 0;
    left: 0;
    width: auto;
    height: auto;
    padding: 1rem 2rem;
    background: var(--teal-deep);
    color: var(--white);
    z-index: 100000;
    font-size: 1rem;
    text-decoration: none;
}

/* Footer Heading - replaces h5 for proper heading hierarchy */
.footer-heading {
    display: block;
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: var(--white);
}

/* Focus Styles for Keyboard Navigation */
a:focus-visible,
button:focus-visible {
    outline: 2px solid var(--teal-deep);
    outline-offset: 2px;
}

/* ========================================
   BOOK NOW CTA ELEMENTS
   ======================================== */

/* Mobile Nav CTA - shown only in mobile menu */
.mobile-nav-cta {
    display: none;
}

@media (max-width: 1024px) {
    .mobile-nav-cta {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: var(--space-sm);
        padding-top: var(--space-lg);
        border-top: 1px solid var(--sage-dark);
        margin-top: var(--space-md);
        width: 80%;
    }
    .mobile-nav-cta .btn {
        width: 100%;
        text-align: center;
        justify-content: center;
    }
    .mobile-nav-cta .btn-cta-gold {
        padding: 1rem 2rem;
        font-size: 1rem;
    }
    .mobile-nav-cta__phone {
        font-family: var(--font-body);
        font-size: 1.125rem;
        color: var(--teal-deep);
        text-decoration: none;
        font-weight: 700;
        letter-spacing: 0.02em;
    }
    .mobile-nav-cta__phone:hover {
        color: var(--teal-medium);
    }
}

/* Mobile Sticky CTA Bar */
.mobile-sticky-cta {
    display: none;
}

@media (max-width: 1024px) {
    .mobile-sticky-cta {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: var(--space-md);
        height: 56px;
        padding: 0 var(--space-md);
        background: rgba(253, 253, 249, 0.92);
        backdrop-filter: blur(20px);
        -webkit-backdrop-filter: blur(20px);
        border-top: 1px solid var(--sage-dark);
        box-shadow: 0 -4px 20px rgba(42, 125, 111, 0.08);
        transform: translateY(100%);
        transition: transform 0.3s var(--ease-out);
    }
    .mobile-sticky-cta.visible {
        transform: translateY(0);
    }
    .mobile-sticky-cta .btn {
        padding: 0.5rem 1.5rem;
        font-size: 0.875rem;
    }
    .mobile-sticky-cta__phone {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        color: var(--teal-deep);
        text-decoration: none;
        font-weight: 700;
        font-size: 0.9375rem;
    }
    .mobile-sticky-cta__phone svg {
        width: 18px;
        height: 18px;
    }
    .mobile-sticky-cta__phone:hover {
        color: var(--teal-medium);
    }
}

/* Pre-Footer CTA Band */
.prefooter-cta {
    background: var(--sage-light);
    padding: var(--space-xl) 0;
}

.prefooter-cta__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-lg);
    flex-wrap: wrap;
}

.prefooter-cta__text {
    font-family: var(--font-display);
    font-size: 1.375rem;
    font-weight: 500;
    color: var(--charcoal);
    margin: 0;
}

.prefooter-cta__actions {
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

.prefooter-cta__phone {
    color: var(--teal-deep);
    text-decoration: none;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: 0.02em;
    transition: color var(--duration-fast) ease;
}

.prefooter-cta__phone:hover {
    color: var(--teal-medium);
}

@media (max-width: 768px) {
    .prefooter-cta__inner {
        flex-direction: column;
        text-align: center;
        gap: var(--space-sm);
    }
    .prefooter-cta__text {
        font-size: 1.25rem;
    }
    .prefooter-cta__actions {
        flex-direction: column;
        gap: var(--space-sm);
    }
}

/* Inline CTA (mid-page) */
.inline-cta {
    padding: var(--space-3xl) 0;
    background: var(--sage-light);
}

.inline-cta__inner {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-md);
}

.inline-cta__text {
    font-family: var(--font-display);
    font-size: 1.75rem;
    font-weight: 500;
    font-style: italic;
    color: var(--charcoal);
    margin: 0;
}

@media (max-width: 768px) {
    .inline-cta {
        padding: var(--space-2xl) 0;
    }
    .inline-cta__text {
        font-size: 1.375rem;
    }
}

/* Compare Card CTA */
.compare-card__cta {
    display: inline-block;
    margin-top: var(--space-md);
    color: var(--teal-deep);
    text-decoration: none;
    font-weight: 700;
    font-size: 0.9375rem;
    letter-spacing: 0.02em;
    transition: color var(--duration-fast) ease;
}

.compare-card__cta:hover {
    color: var(--teal-medium);
}

.compare-card.featured .compare-card__cta {
    color: var(--white);
}

.compare-card.featured .compare-card__cta:hover {
    color: var(--sage-light);
}

/* Inner page hero actions (matching front-page hero style) */
.page-hero .hero-actions {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    margin-top: var(--space-lg);
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .page-hero .hero-actions {
        flex-direction: column;
        align-items: flex-start;
    }
    .page-hero .hero-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* Ensure mobile sticky doesn't overlap footer */
@media (max-width: 1024px) {
    .site-footer {
        padding-bottom: 60px;
    }

    /* Hide 2nd nature banner ("Your Story Isn't Over") on mobile */
    .nature-banner--warm {
        display: none;
    }

    /* Hide modality card description paragraphs on mobile */
    .modality-card p {
        display: none;
    }
}

/* ========================================
   BOOKING MODAL
   ======================================== */
.booking-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s var(--ease-out), visibility 0.3s var(--ease-out);
}

.booking-modal.active {
    opacity: 1;
    visibility: visible;
}

.booking-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(26, 36, 33, 0.6);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

.booking-modal__container {
    position: relative;
    width: 90vw;
    max-width: 700px;
    height: 85vh;
    max-height: 800px;
    background: var(--white);
    border-radius: var(--radius-xl);
    box-shadow: var(--shadow-xl);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateY(20px) scale(0.97);
    transition: transform 0.3s var(--ease-out);
}

.booking-modal.active .booking-modal__container {
    transform: translateY(0) scale(1);
}

.booking-modal__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--space-lg);
    border-bottom: 1px solid var(--sage-dark);
    flex-shrink: 0;
}

.booking-modal__title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--charcoal);
    margin: 0;
}

.booking-modal__close {
    width: 36px;
    height: 36px;
    border: none;
    background: var(--sage-light);
    border-radius: var(--radius-full);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--duration-fast) ease;
}

.booking-modal__close svg {
    width: 18px;
    height: 18px;
    color: var(--charcoal);
}

.booking-modal__close:hover {
    background: var(--sage-dark);
}

.booking-modal__body {
    flex: 1;
    position: relative;
    overflow: hidden;
}

.booking-modal__body iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: none;
}

.booking-modal__loading {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    background: var(--white);
}

.booking-modal__loading p {
    font-size: 0.9375rem;
    color: var(--charcoal-muted);
    margin: 0;
}

.booking-modal__spinner {
    width: 32px;
    height: 32px;
    border: 3px solid var(--sage-dark);
    border-top-color: var(--teal-deep);
    border-radius: 50%;
    animation: booking-spin 0.8s linear infinite;
}

@keyframes booking-spin {
    to { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .booking-modal__container {
        width: 100vw;
        height: 100vh;
        max-width: none;
        max-height: none;
        border-radius: 0;
    }
    .booking-modal__header {
        padding: var(--space-sm) var(--space-md);
    }
}

/* ========================================
   GSAP SCROLLTRIGGER SUPPORT
   ======================================== */

/* Performance hints for GSAP-animated elements */
.logo-item,
.condition-item,
.modality-card,
.google-review-card,
.stat-divider {
    will-change: transform, opacity;
}

/* Parallax containers need overflow hidden to clip translated images */
.about-image-wrapper,
.founder-image-wrapper,
.visual-frame {
    overflow: hidden;
}

/* Reduced motion: disable all GSAP parallax/animations via CSS override */
@media (prefers-reduced-motion: reduce) {
    .logo-item,
    .condition-item,
    .modality-card,
    .google-review-card,
    .stat-divider,
    .about-content-col > *,
    .programs-content > *,
    .founder-image-col,
    .founder-content-col,
    .cta-content > *,
    .hero-content {
        transform: none !important;
        opacity: 1 !important;
    }
}

/* Fallback: restore CSS transitions when GSAP doesn't load */
.no-gsap [data-animate] {
    transition: opacity 0.6s var(--ease-out), transform 0.6s var(--ease-out);
}
.no-gsap [data-animate="bloom"] {
    transition: opacity 1.2s cubic-bezier(0.33, 1, 0.68, 1),
                transform 1.4s cubic-bezier(0.33, 1, 0.68, 1),
                filter 1s cubic-bezier(0.33, 1, 0.68, 1);
}
.no-gsap .logo-item {
    transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out);
}

/* Lenis smooth scroll */
html.lenis, html.lenis body {
    height: auto;
}
.lenis.lenis-smooth {
    scroll-behavior: auto !important;
}
.lenis.lenis-smooth [data-lenis-prevent] {
    overscroll-behavior: contain;
}
.lenis.lenis-stopped {
    overflow: hidden;
}

/* ========================================
   FLOATING TEXT-GRAYSON WIDGET
   ======================================== */
.floating-cta {
    position: fixed;
    bottom: 20px;
    left: 20px;
    z-index: 999;
    opacity: 0;
    transform: translateY(12px) scale(0.95);
    animation: floatingCTAIn 0.5s var(--ease-spring) 3s forwards;
}

@keyframes floatingCTAIn {
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.floating-cta__card {
    background: var(--white);
    border-radius: 14px;
    box-shadow:
        0 4px 24px rgba(0, 0, 0, 0.1),
        0 1px 4px rgba(0, 0, 0, 0.05);
    padding: 12px;
    width: 220px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.floating-cta__header {
    display: flex;
    align-items: center;
    gap: 10px;
}

.floating-cta__photo {
    position: relative;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.floating-cta__photo img {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 20%;
    display: block;
}

.floating-cta__online {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 10px;
    height: 10px;
    background: #22c55e;
    border-radius: 50%;
    border: 2px solid var(--white);
}

.floating-cta__info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.floating-cta__name {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 0.8125rem;
    color: var(--charcoal);
    line-height: 1.3;
}

.floating-cta__role {
    font-family: var(--font-body);
    font-size: 0.6875rem;
    color: var(--charcoal-muted);
    line-height: 1.3;
}

.floating-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.floating-cta__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    flex: 1;
    padding: 10px 14px;
    min-height: 44px;
    background: var(--teal-deep);
    color: var(--white);
    border: none;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 0.8125rem;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.25s var(--ease-out);
}

.floating-cta__btn--text {
    background: var(--white);
    color: var(--teal-deep);
    border: 1.5px solid var(--teal-deep);
}

.floating-cta__btn svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.floating-cta__btn:hover {
    background: var(--teal-medium);
    color: var(--white);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(42, 125, 111, 0.25);
}

.floating-cta__btn--text:hover {
    border-color: var(--teal-medium);
}

.floating-cta__btn:active {
    transform: translateY(0);
}

/* Mobile — collapsed avatar bubbles */
@media (max-width: 768px) {
    .floating-cta {
        bottom: 76px;
        left: 14px;
    }
    .floating-cta__card {
        width: auto;
        padding: 0;
        background: none;
        box-shadow: none;
    }
    .floating-cta__header {
        width: 48px;
        height: 48px;
        background: var(--white);
        border-radius: 50%;
        box-shadow: 0 2px 12px rgba(0,0,0,0.15);
        padding: 3px;
        cursor: pointer;
    }
    .floating-cta__photo {
        width: 42px;
        height: 42px;
    }
    .floating-cta__photo img {
        width: 42px;
        height: 42px;
    }
    .floating-cta__info,
    .floating-cta__actions {
        display: none;
    }
    /* Expanded */
    .floating-cta__card.expanded {
        padding: 12px;
        background: var(--white);
        border-radius: 14px;
        box-shadow: 0 4px 24px rgba(0,0,0,0.1), 0 1px 4px rgba(0,0,0,0.05);
        width: 180px;
    }
    .floating-cta__card.expanded .floating-cta__header {
        width: auto;
        height: auto;
        background: none;
        border-radius: 0;
        box-shadow: none;
        padding: 0;
    }
    .floating-cta__card.expanded .floating-cta__photo {
        width: 36px;
        height: 36px;
    }
    .floating-cta__card.expanded .floating-cta__photo img {
        width: 36px;
        height: 36px;
    }
    .floating-cta__card.expanded .floating-cta__info,
    .floating-cta__card.expanded .floating-cta__actions {
        display: flex;
    }
}

/* ========================================
   RETELL VOICE WIDGET — DR. DARSA
   ======================================== */
.voice-widget {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 1000;
    opacity: 0;
    transform: translateY(12px) scale(0.95);
    animation: floatingCTAIn 0.5s var(--ease-spring) 3s forwards;
}

.voice-widget__card,
.voice-widget__active,
.voice-widget__transfer,
.voice-widget__error {
    background: var(--white);
    border-radius: 14px;
    box-shadow:
        0 4px 24px rgba(0, 0, 0, 0.1),
        0 1px 4px rgba(0, 0, 0, 0.05);
    padding: 12px;
    width: 200px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.voice-widget__card[hidden],
.voice-widget__active[hidden],
.voice-widget__transfer[hidden],
.voice-widget__error[hidden] {
    display: none;
}

.voice-widget__header {
    display: flex;
    align-items: center;
    gap: 10px;
    position: relative;
}

.voice-widget__avatar-wrap {
    position: relative;
    width: 36px;
    height: 36px;
    flex-shrink: 0;
}

.voice-widget__avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 20%;
    display: block;
    transition: box-shadow 0.3s ease;
}

.voice-widget__online {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 10px;
    height: 10px;
    background: #22c55e;
    border-radius: 50%;
    border: 2px solid var(--white);
}

.voice-widget__header-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.voice-widget__name {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 0.8125rem;
    color: var(--charcoal);
    line-height: 1.3;
}

.voice-widget__title {
    font-family: var(--font-body);
    font-size: 0.6875rem;
    color: var(--warm-gray);
    line-height: 1.3;
}

.voice-widget__call-info {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.voice-widget__agent-name {
    font-family: var(--font-body);
    font-weight: 700;
    font-size: 0.8125rem;
    color: var(--charcoal);
    line-height: 1.3;
}

.voice-widget__status {
    font-family: var(--font-body);
    font-size: 0.6875rem;
    color: var(--charcoal-muted);
    line-height: 1.3;
}

.voice-widget__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    background: var(--teal-deep);
    color: var(--white);
    border: none;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 0.8125rem;
    cursor: pointer;
    transition: all 0.25s var(--ease-out);
}

.voice-widget__btn svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.voice-widget__btn:hover {
    background: var(--teal-medium);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(42, 125, 111, 0.25);
}

.voice-widget__btn:active {
    transform: translateY(0);
}

.voice-widget__disclosure {
    font-family: var(--font-body);
    font-size: 0.625rem;
    color: var(--charcoal-muted);
    text-align: center;
    letter-spacing: 0.02em;
    margin-top: -4px;
}

/* Active call state */
.voice-widget__active .voice-widget__avatar {
    box-shadow: 0 0 0 3px rgba(42, 125, 111, 0.3);
}

.voice-widget__active .voice-widget__avatar.speaking {
    box-shadow: 0 0 0 3px var(--teal-deep), 0 0 12px rgba(42, 125, 111, 0.4);
}

/* Audio visualizer bars */
.voice-widget__visualizer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    height: 24px;
}

.voice-widget__visualizer span {
    display: block;
    width: 3px;
    height: 6px;
    background: var(--sage-medium);
    border-radius: 2px;
    transition: height 0.15s ease, background 0.15s ease;
}

.voice-widget__visualizer.speaking span {
    background: var(--teal-deep);
    animation: vizBar 0.6s ease-in-out infinite alternate;
}

.voice-widget__visualizer.speaking span:nth-child(1) { animation-delay: 0s; }
.voice-widget__visualizer.speaking span:nth-child(2) { animation-delay: 0.1s; }
.voice-widget__visualizer.speaking span:nth-child(3) { animation-delay: 0.2s; }
.voice-widget__visualizer.speaking span:nth-child(4) { animation-delay: 0.1s; }
.voice-widget__visualizer.speaking span:nth-child(5) { animation-delay: 0s; }

@keyframes vizBar {
    0%   { height: 4px; }
    100% { height: 20px; }
}

/* End call button */
.voice-widget__end {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    background: #dc2626;
    color: var(--white);
    border: none;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 0.8125rem;
    cursor: pointer;
    transition: all 0.25s var(--ease-out);
}

.voice-widget__end svg {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.voice-widget__end:hover {
    background: #b91c1c;
    transform: translateY(-1px);
}

.voice-widget__end:active {
    transform: translateY(0);
}

/* Transfer state */
.voice-widget__transfer {
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px 12px;
}

.voice-widget__spinner {
    width: 28px;
    height: 28px;
    border: 3px solid var(--sage-medium);
    border-top-color: var(--teal-deep);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.voice-widget__transfer-text {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    color: var(--charcoal);
    font-weight: 600;
}

/* Error state */
.voice-widget__error {
    align-items: center;
    text-align: center;
}

.voice-widget__error-text {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    color: var(--charcoal);
    margin: 0;
}

.voice-widget__fallback-phone {
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--teal-deep);
    text-decoration: none;
}

.voice-widget__fallback-phone:hover {
    text-decoration: underline;
}

.voice-widget__retry {
    padding: 6px 14px;
    background: var(--teal-deep);
    color: var(--white);
    border: none;
    border-radius: 8px;
    font-family: var(--font-body);
    font-weight: 600;
    font-size: 0.75rem;
    cursor: pointer;
    transition: background 0.2s;
}

.voice-widget__retry:hover {
    background: var(--teal-medium);
}

.voice-widget__close-btn {
    padding: 4px 0;
    background: none;
    border: none;
    color: var(--gray-600);
    font-family: var(--font-body);
    font-size: 0.7rem;
    cursor: pointer;
    transition: color 0.2s;
}

.voice-widget__close-btn:hover {
    color: var(--charcoal);
}

/* Mobile — collapsed avatar bubble for idle state */
@media (max-width: 768px) {
    .voice-widget {
        bottom: 76px;
        right: 14px;
    }
    .voice-widget__card {
        width: auto;
        padding: 0;
        background: none;
        box-shadow: none;
    }
    .voice-widget__card .voice-widget__header {
        width: 48px;
        height: 48px;
        background: var(--white);
        border-radius: 50%;
        box-shadow: 0 2px 12px rgba(0,0,0,0.15);
        padding: 3px;
        cursor: pointer;
        gap: 0;
        justify-content: center;
        align-items: center;
    }
    .voice-widget__card .voice-widget__avatar-wrap {
        width: 42px;
        height: 42px;
        min-width: 42px;
    }
    .voice-widget__card .voice-widget__avatar {
        width: 42px;
        height: 42px;
    }
    .voice-widget__card .voice-widget__header-info,
    .voice-widget__card .voice-widget__name,
    .voice-widget__card .voice-widget__title,
    .voice-widget__card .voice-widget__btn,
    .voice-widget__card .voice-widget__disclosure {
        display: none;
    }
    /* Expanded */
    .voice-widget__card.expanded {
        padding: 12px;
        background: var(--white);
        border-radius: 14px;
        box-shadow: 0 4px 24px rgba(0,0,0,0.1), 0 1px 4px rgba(0,0,0,0.05);
        width: 180px;
    }
    .voice-widget__card.expanded .voice-widget__header {
        width: auto;
        height: auto;
        background: none;
        border-radius: 0;
        box-shadow: none;
        padding: 0;
    }
    .voice-widget__card.expanded .voice-widget__avatar-wrap {
        width: 32px;
        height: 32px;
    }
    .voice-widget__card.expanded .voice-widget__avatar {
        width: 32px;
        height: 32px;
    }
    .voice-widget__card.expanded .voice-widget__header-info,
    .voice-widget__card.expanded .voice-widget__name,
    .voice-widget__card.expanded .voice-widget__title,
    .voice-widget__card.expanded .voice-widget__btn,
    .voice-widget__card.expanded .voice-widget__disclosure {
        display: block;
    }
    .voice-widget__card.expanded .voice-widget__header-info {
        display: flex;
    }
    /* Active/transfer/error always show full on mobile */
    .voice-widget__active,
    .voice-widget__transfer,
    .voice-widget__error {
        width: 180px;
    }
}

/* ========================================
   GRAYSON AI CHAT WIDGET
   ======================================== */

/* --- Chat button on floating Grayson card --- */
.floating-cta__btn--chat {
    background: var(--white);
    color: var(--teal-deep);
    border: 1.5px solid var(--teal-deep);
}

.floating-cta__btn--chat:hover {
    background: var(--teal-deep);
    color: var(--white);
    border-color: var(--teal-medium);
}

/* --- Chat popup container --- */
.grayson-chat {
    position: fixed;
    bottom: 90px;
    left: 20px;
    width: 360px;
    max-height: 580px;
    background: var(--white);
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    animation: graysonChatOpen 0.35s var(--ease-spring) both;
}

.grayson-chat[hidden] {
    display: none;
}

@keyframes graysonChatOpen {
    from {
        opacity: 0;
        transform: translateY(16px) scale(0.97);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* --- Header --- */
.grayson-chat__header {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
    background: var(--white);
    border-radius: 14px 14px 0 0;
    flex-shrink: 0;
}

.grayson-chat__avatar {
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 20%;
    margin-right: 10px;
}

.grayson-chat__header-info {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-width: 0;
}

.grayson-chat__header-name {
    font-weight: 700;
    font-size: 0.875rem;
    color: var(--charcoal);
    line-height: 1.3;
}

.grayson-chat__header-label {
    font-size: 0.6875rem;
    color: var(--teal-deep);
    font-weight: 600;
    line-height: 1.3;
    margin-top: 2px;
    display: inline-block;
    background: var(--teal-pale);
    padding: 2px 8px;
    border-radius: 10px;
    width: fit-content;
}

.grayson-chat__close {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: var(--charcoal-muted);
    font-size: 1.25rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-left: 8px;
    transition: background 0.2s ease;
}

.grayson-chat__close:hover {
    background: rgba(0,0,0,0.06);
}

/* --- Messages area --- */
.grayson-chat__messages {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    scroll-behavior: smooth;
    min-height: 200px;
}

.grayson-chat__messages::-webkit-scrollbar {
    width: 4px;
}

.grayson-chat__messages::-webkit-scrollbar-track {
    background: transparent;
}

.grayson-chat__messages::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.12);
    border-radius: 4px;
}

.grayson-chat__messages::-webkit-scrollbar-thumb:hover {
    background: rgba(0,0,0,0.2);
}

/* --- Message rows --- */
.grayson-chat__msg {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 8px;
    animation: graysonMsgIn 0.3s var(--ease-out) both;
}

@keyframes graysonMsgIn {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.grayson-chat__msg--bot {
    justify-content: flex-start;
}

.grayson-chat__msg--user {
    justify-content: flex-end;
}

.grayson-chat__msg-avatar {
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 20%;
    flex-shrink: 0;
}

.grayson-chat__msg--user .grayson-chat__msg-avatar {
    display: none;
}

.grayson-chat__msg-bubble {
    max-width: 85%;
    padding: 10px 14px;
    font-size: 0.875rem;
    line-height: 1.5;
    font-family: var(--font-body);
}

.grayson-chat__msg--bot .grayson-chat__msg-bubble {
    background: var(--cream-warm);
    color: var(--charcoal);
    border-radius: 4px 14px 14px 14px;
}

.grayson-chat__msg--user .grayson-chat__msg-bubble {
    background: var(--teal-deep);
    color: var(--white);
    border-radius: 14px 4px 14px 14px;
}

/* --- Typing indicator --- */
.grayson-chat__typing {
    display: flex;
    flex-direction: row;
    align-items: flex-end;
    gap: 8px;
}

.grayson-chat__typing .grayson-chat__msg-avatar {
    width: 28px;
    height: 28px;
    min-width: 28px;
    border-radius: 50%;
    object-fit: cover;
    object-position: center 20%;
    flex-shrink: 0;
}

.grayson-chat__typing-dots {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 12px 16px;
    background: var(--cream-warm);
    border-radius: 4px 14px 14px 14px;
}

.grayson-chat__typing-dots span {
    display: block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--teal-deep);
    animation: graysonBounce 1.2s infinite ease-in-out;
}

.grayson-chat__typing-dots span:nth-child(2) {
    animation-delay: 0.15s;
}

.grayson-chat__typing-dots span:nth-child(3) {
    animation-delay: 0.3s;
}

@keyframes graysonBounce {
    0%, 60%, 100% {
        transform: translateY(0);
    }
    30% {
        transform: translateY(-6px);
    }
}

/* --- Quick-reply options --- */
.grayson-chat__options {
    padding: 0 16px 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.grayson-chat__option {
    background: var(--white);
    border: 1.5px solid var(--teal-deep);
    color: var(--teal-deep);
    border-radius: 20px;
    padding: 8px 16px;
    font-size: 0.8125rem;
    font-weight: 600;
    font-family: var(--font-body);
    cursor: pointer;
    transition: all 0.2s ease;
    animation: graysonOptionIn 0.3s var(--ease-out) both;
}

.grayson-chat__option:nth-child(2) { animation-delay: 0.05s; }
.grayson-chat__option:nth-child(3) { animation-delay: 0.1s; }
.grayson-chat__option:nth-child(4) { animation-delay: 0.15s; }
.grayson-chat__option:nth-child(5) { animation-delay: 0.2s; }

@keyframes graysonOptionIn {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.grayson-chat__option:hover {
    background: var(--teal-deep);
    color: var(--white);
}

.grayson-chat__option:active {
    transform: scale(0.97);
}

/* --- Input area --- */
.grayson-chat__input-area {
    display: flex;
    flex-direction: row;
    align-items: center;
    padding: 12px 16px;
    border-top: 1px solid rgba(0,0,0,0.06);
    flex-shrink: 0;
}

.grayson-chat__input-area input {
    flex: 1;
    border: 1.5px solid transparent;
    padding: 8px 12px;
    font-size: 0.875rem;
    font-family: var(--font-body);
    background: var(--cream);
    border-radius: 8px;
    outline: none;
    color: var(--charcoal);
    transition: border-color 0.2s ease;
}

.grayson-chat__input-area input::placeholder {
    color: var(--charcoal-muted);
}

.grayson-chat__input-area input:focus {
    border-color: var(--teal-deep);
}

.grayson-chat__send {
    width: 36px;
    height: 36px;
    min-width: 36px;
    border-radius: 50%;
    background: var(--teal-deep);
    color: var(--white);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-left: 8px;
    transition: background 0.2s ease;
}

.grayson-chat__send svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.grayson-chat__send:hover {
    background: var(--teal-medium);
}

/* --- Mobile: full-screen chat --- */
@media (max-width: 768px) {
    .grayson-chat {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        width: 100%;
        max-height: 100%;
        height: 100%;
        border-radius: 0;
        z-index: 10000;
    }

    .grayson-chat__header {
        border-radius: 0;
    }

    .floating-cta__actions {
        flex-wrap: wrap;
    }

    .floating-cta__btn--chat {
        flex: 1 1 100%;
    }
}

/* --- Page mode (assessment page) --- */
.grayson-chat--page {
    position: static;
    width: 100%;
    min-height: 600px;
    max-height: none;
    border-radius: 14px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.06);
    animation: none;
}

.grayson-chat--page .grayson-chat__messages {
    min-height: 400px;
}

@media (max-width: 768px) {
    .grayson-chat--page {
        position: static;
        width: 100%;
        height: auto;
        min-height: 500px;
        border-radius: 14px;
        z-index: auto;
        top: auto;
        left: auto;
        right: auto;
        bottom: auto;
    }
}

/* --- Assessment page layout --- */
.assessment-content {
    padding: 60px 0 80px;
}

.assessment-layout {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 32px;
    align-items: start;
}

.assessment-layout__sidebar .section-label {
    margin-bottom: 16px;
}

@media (max-width: 768px) {
    .assessment-layout {
        grid-template-columns: 1fr;
    }
}

.assessment-programs {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.assessment-program-card {
    background: var(--white);
    border-radius: 12px;
    padding: 20px;
    border: 1px solid rgba(0,0,0,0.06);
    transition: box-shadow 0.25s var(--ease-out);
}

.assessment-program-card:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}

.assessment-program-card__icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--teal-pale);
    color: var(--teal-deep);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.assessment-program-card__icon svg {
    width: 20px;
    height: 20px;
    stroke: currentColor;
    fill: none;
    stroke-width: 2;
}

.assessment-program-card__name {
    font-weight: 700;
    font-size: 1rem;
    color: var(--charcoal);
    margin: 0 0 6px;
}

.assessment-program-card__desc {
    font-size: 0.8125rem;
    color: var(--charcoal-muted);
    line-height: 1.5;
    margin: 0 0 10px;
}

.assessment-program-card__link {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--teal-deep);
    text-decoration: none;
    cursor: pointer;
    transition: color 0.2s ease;
}

.assessment-program-card__link:hover {
    color: var(--teal-medium);
}

/* ==========================================================================
   CRISIS NOTICE (footer + chat widget) — added 2026-09-22
   ========================================================================== */
.footer-crisis {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-lg) var(--space-xl) 0;
    text-align: center;
}
.footer-crisis p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: rgba(255, 255, 255, 0.78);
}
.footer-crisis strong { color: #fff; }
.footer-crisis a {
    color: #fff;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.grayson-chat__crisis {
    padding: 8px 16px 10px;
    font-size: 12px;
    line-height: 1.5;
    color: #5c6b68;
    background: #f6f9f8;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
    flex-shrink: 0;
}
.grayson-chat__crisis a {
    color: #2c3e3a;
    font-weight: 600;
    text-decoration: underline;
}

/* Lighter hero background for phones (LCP) — added 2026-09-22 */
@media (max-width: 768px) {
    .hero--fullbleed {
        background-image: url('../images/hero-forest-sunlight-mobile.webp') !important;
    }
}

/* Team profile hero photo: keep faces in frame; square on tablet/phone instead of a 260px strip — added 2026-09-24 */
.single-team_member .page-hero__image-frame img {
    object-position: center 25%;
}
@media (max-width: 1024px) {
    .single-team_member .page-hero__image-frame {
        width: 100%;
        max-width: 420px;
        margin-left: auto;
        margin-right: auto;
    }
    .single-team_member .page-hero__image-frame img {
        height: auto;
        aspect-ratio: 1 / 1;
    }
}
/* Empty <p> injected after the lazyload <noscript> left a 24px strip under every page-hero photo — added 2026-09-24 */
.page-hero__image-frame > p:empty {
    display: none;
}

/* ==========================================================================
   BOOKING INTAKE GATE — added 2026-09-23
   Step 1 insurance/program chooser inside #booking-modal (booking-intake.js)
   and the Meridian intake form page (page-intake.php, /intake/).
   ========================================================================== */
.booking-gate {
    position: absolute;
    inset: 0;
    z-index: 2;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    background: var(--white);
}
.booking-gate__inner {
    max-width: 560px;
    margin: 0 auto;
    padding: var(--space-md) var(--space-lg) var(--space-lg);
}
.booking-gate__title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--charcoal);
    margin: 0 0 6px;
}
.booking-gate__lede {
    font-family: var(--font-body);
    font-size: 0.9375rem;
    color: var(--charcoal-muted);
    margin: 0 0 var(--space-md);
}
.booking-gate__group {
    border: 0;
    margin: 0 0 var(--space-md);
    padding: 0;
    min-width: 0;
}
.booking-gate__legend {
    font-family: var(--font-body);
    font-size: 1rem;
    font-weight: 700;
    color: var(--charcoal);
    padding: 0;
    margin: 0 0 10px;
}
.booking-gate__options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.booking-gate__options--card {
    flex-direction: column;
    gap: 10px;
}
.booking-gate__opt {
    position: relative;
    display: block;
    cursor: pointer;
    margin: 0;
}
.booking-gate__radio {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    margin: 0;
    pointer-events: none;
}
.booking-gate__face {
    display: block;
    border: 1.5px solid var(--sage-dark);
    background: var(--sage-light);
    color: var(--charcoal);
    transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}
.booking-gate__opt--pill .booking-gate__face {
    border-radius: var(--radius-full);
    padding: 9px 16px;
}
.booking-gate__opt--card .booking-gate__face {
    border-radius: var(--radius-md);
    padding: 12px 16px 12px 44px;
    position: relative;
}
.booking-gate__opt--card .booking-gate__face::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 15px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid var(--charcoal-muted);
    background: var(--white);
    box-sizing: border-box;
}
.booking-gate__opt-label {
    display: block;
    font-family: var(--font-body);
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.3;
}
.booking-gate__opt-desc {
    display: block;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--charcoal-muted);
    margin-top: 3px;
}
.booking-gate__opt:hover .booking-gate__face {
    border-color: var(--teal-medium);
}
.booking-gate__radio:checked + .booking-gate__face {
    border-color: var(--teal-deep);
    background: var(--white);
    box-shadow: 0 0 0 1px var(--teal-deep), var(--shadow-sm);
}
.booking-gate__opt--pill .booking-gate__radio:checked + .booking-gate__face {
    background: var(--teal-deep);
    color: var(--white);
}
.booking-gate__opt--card .booking-gate__radio:checked + .booking-gate__face::before {
    border-color: var(--teal-deep);
    background: radial-gradient(circle, var(--teal-deep) 0 4px, var(--white) 4.5px);
}
.booking-gate__radio:focus-visible + .booking-gate__face {
    outline: 3px solid var(--orange-brand);
    outline-offset: 2px;
}
.booking-gate__actions {
    padding-top: var(--space-xs);
}
.booking-gate__continue {
    width: 100%;
}
.booking-gate__continue:disabled {
    opacity: 0.45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}
.booking-gate__continue:disabled:hover {
    background: var(--teal-deep);
    border-color: var(--teal-deep);
}
.booking-gate__backbar {
    display: none;
    padding: 8px var(--space-lg);
    border-bottom: 1px solid var(--sage-dark);
    background: var(--sage-light);
    flex-shrink: 0;
}
.booking-gate__backbar.is-visible {
    display: block;
}
.booking-gate__back {
    border: 0;
    background: none;
    padding: 4px 0;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--teal-deep);
    cursor: pointer;
}
.booking-gate__back:hover { text-decoration: underline; }
.booking-gate__back:focus-visible { outline: 2px solid var(--orange-brand); outline-offset: 2px; }

@media (max-width: 768px) {
    .booking-gate__inner { padding: var(--space-sm) 16px var(--space-lg); }
    .booking-gate__title { font-size: 1.3125rem; }
    .booking-gate__backbar { padding: 6px 16px; }
}

/* ---- Intake page (/intake/) ---- */
.intake-page {
    background: var(--cream-warm);
    padding: 140px 16px var(--space-3xl);
}
.intake-page__inner {
    max-width: 760px;
    margin: 0 auto;
}
.intake-page__back {
    display: inline-block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--teal-deep);
    text-decoration: none;
    margin-bottom: var(--space-sm);
}
.intake-page__back:hover { text-decoration: underline; }
.intake-page__title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 600;
    line-height: 1.2;
    color: var(--charcoal);
    margin: 0 0 10px;
}
.intake-page__lede {
    font-size: 1.0625rem;
    line-height: 1.6;
    color: var(--charcoal-light);
    margin: 0 0 var(--space-lg);
}
.intake-form-root {
    background: var(--white);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-md);
    padding: var(--space-lg);
}
.intake-form { margin: 0; }
.intake-hp {
    position: absolute !important;
    left: -9999px !important;
    top: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.intake-section + .intake-section {
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    border-top: 1px solid var(--sage-medium);
}
.intake-section__title {
    font-family: var(--font-display);
    font-size: 1.25rem;
    font-weight: 600;
    color: var(--charcoal);
    margin: 0 0 var(--space-sm);
}
.intake-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 var(--space-sm);
}
.intake-field {
    margin-bottom: var(--space-sm);
    min-width: 0;
}
.intake-field__label {
    display: block;
    font-size: 0.9375rem;
    font-weight: 700;
    color: var(--charcoal);
    margin: 0 0 6px;
    padding: 0;
}
.intake-field__req { color: #b3261e; }
.intake-field__opt { font-weight: 400; color: var(--charcoal-muted); }
.intake-field__input {
    display: block;
    width: 100%;
    box-sizing: border-box;
    min-height: 46px;
    padding: 10px 12px;
    font-family: var(--font-body);
    font-size: 16px; /* 16px stops iOS zooming on focus */
    color: var(--charcoal);
    background: var(--white);
    border: 1.5px solid var(--sage-dark);
    border-radius: var(--radius-md);
    -webkit-appearance: none;
    appearance: none;
}
select.intake-field__input {
    padding-right: 36px;
    background-image: linear-gradient(45deg, transparent 50%, var(--charcoal-muted) 50%), linear-gradient(135deg, var(--charcoal-muted) 50%, transparent 50%);
    background-position: calc(100% - 18px) 50%, calc(100% - 13px) 50%;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}
.intake-field__input:focus {
    outline: none;
    border-color: var(--teal-deep);
    box-shadow: 0 0 0 3px rgba(42, 125, 111, 0.18);
}
.intake-field__input[aria-invalid="true"] { border-color: #b3261e; }
.intake-field__hint {
    font-size: 0.8125rem;
    color: var(--charcoal-muted);
    margin: 5px 0 0;
}
.intake-field__error {
    font-size: 0.8125rem;
    font-weight: 600;
    color: #b3261e;
    margin: 5px 0 0;
}
.intake-checks {
    border: 0;
    margin: 0 0 var(--space-sm);
    padding: 0;
    min-width: 0;
}
.intake-checks__list { display: flex; flex-wrap: wrap; gap: 8px 12px; }
.intake-checks__list--col { flex-direction: column; gap: 6px; }
.intake-check {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    border: 1.5px solid var(--sage-dark);
    border-radius: var(--radius-md);
    background: var(--sage-light);
    cursor: pointer;
    font-size: 0.9375rem;
    line-height: 1.4;
    color: var(--charcoal);
    margin: 0;
}
.intake-check input {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--teal-deep);
}
.intake-check:has(input:checked) {
    border-color: var(--teal-deep);
    background: var(--white);
}
.intake-check:has(input:focus-visible) {
    outline: 3px solid var(--orange-brand);
    outline-offset: 2px;
}
.intake-crisis {
    margin: 0 0 var(--space-sm);
    padding: 12px 14px;
    border-left: 4px solid #b3261e;
    border-radius: var(--radius-sm);
    background: #fdecea;
    color: #7a1c14;
    font-size: 0.9375rem;
    font-weight: 600;
    line-height: 1.5;
}
.intake-crisis a { color: #7a1c14; text-decoration: underline; }
.intake-form__status {
    margin: var(--space-sm) 0 0;
    padding: 12px 14px;
    border-radius: var(--radius-md);
    background: #fdecea;
    color: #7a1c14;
    font-size: 0.9375rem;
    line-height: 1.5;
}
.intake-form__actions { margin-top: var(--space-md); }
.intake-form__submit { min-width: 180px; }
.intake-form__submit.is-loading { opacity: 0.7; cursor: progress; }
.intake-form__note {
    font-size: 0.8125rem;
    color: var(--charcoal-muted);
    margin: var(--space-sm) 0 0;
}
.intake-success {
    text-align: center;
    padding: var(--space-lg) var(--space-sm);
    outline: none;
}
.intake-success__icon {
    width: 56px;
    height: 56px;
    margin: 0 auto var(--space-sm);
    border-radius: 50%;
    background: var(--teal-deep);
    color: var(--white);
    font-size: 28px;
    line-height: 56px;
}
.intake-success__title {
    font-family: var(--font-display);
    font-size: 1.625rem;
    color: var(--charcoal);
    margin: 0 0 8px;
}
.intake-success__text {
    font-size: 1.0625rem;
    color: var(--charcoal-light);
    margin: 0;
}
.intake-page__noscript { margin: 0; }

@media (max-width: 640px) {
    .intake-page { padding: 110px 16px var(--space-2xl); }
    .intake-form-root { padding: var(--space-md) 16px; border-radius: var(--radius-md); }
    .intake-row { grid-template-columns: 1fr; }
    .intake-form__submit { width: 100%; }
}

/* ---- Intake page: therapist picker (reuses .team-card from page-styles.css) ---- */
.intake-form-root.is-picker {
    background: transparent;
    box-shadow: none;
    padding: 0;
}
.intake-therapists {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-md);
}
.intake-therapist.team-card {
    display: flex;
    flex-direction: column;
    padding: var(--space-lg) var(--space-md);
    min-width: 0;
}
.intake-therapist.team-card:hover { transform: none; }
.intake-therapist .team-card__avatar { width: 112px; height: 112px; }
.intake-therapist .team-card__specialties { margin-bottom: var(--space-sm); }
.intake-therapist__blurb {
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--charcoal-light);
    margin: 0 0 var(--space-md);
}
.intake-therapist__actions {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.intake-therapist__book { width: 100%; max-width: 260px; }
.intake-therapist__profile {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--teal-deep);
    text-decoration: underline;
    text-underline-offset: 2px;
}
.intake-sr {
    position: absolute !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.intake-picker > .intake-form__status { margin: 0 0 var(--space-sm); }
.intake-therapist-summary:empty { display: none; }
.intake-therapist-summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    margin: 0 0 var(--space-md);
    border-radius: var(--radius-md);
    background: var(--sage-light);
    border: 1px solid var(--sage-dark);
}
.intake-therapist-summary__img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    flex-shrink: 0;
}
.intake-therapist-summary__text {
    margin: 0;
    flex: 1;
    min-width: 0;
    font-size: 0.9375rem;
    color: var(--charcoal);
}
.intake-therapist-summary__change {
    border: 0;
    background: none;
    padding: 6px 4px;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--teal-deep);
    text-decoration: underline;
    cursor: pointer;
}
@media (max-width: 640px) {
    .intake-therapists { grid-template-columns: 1fr; }
}

/* Intake page: hide the global pre-footer Book Now CTA (it would just reopen the gate). */
.page-template-page-intake .prefooter-cta { display: none; }
.intake-page__title:focus { outline: none; }

/* ---- Gate: insurance logo tiles (3 columns x 2 rows at all widths) ---- */
.booking-gate__options--logo {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
.booking-gate__opt--logo { min-width: 0; }
.booking-gate__opt--logo .booking-gate__face {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 84px;
    padding: 8px 6px;
    box-sizing: border-box;
    background: var(--white);
    border: 1.5px solid var(--sage-dark);
    border-radius: var(--radius-md);
    transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;
}
.booking-gate__logo {
    display: block;
    flex: 0 0 70%;
    width: 70%;
    max-width: none;
    height: 44px;
    max-height: 44px;
    min-width: 0;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    filter: none;
    opacity: 1;
}
.booking-gate__opt--logo:hover .booking-gate__face {
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}
.booking-gate__opt--logo .booking-gate__radio:checked + .booking-gate__face {
    border-color: var(--teal-deep);
    background: var(--teal-pale);
    box-shadow: 0 0 0 1px var(--teal-deep), var(--shadow-sm);
}
.booking-gate__tick {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--teal-deep);
    color: var(--white);
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity var(--duration-fast) ease, transform var(--duration-fast) ease;
}
.booking-gate__radio:checked + .booking-gate__face .booking-gate__tick {
    opacity: 1;
    transform: scale(1);
}
.booking-gate__options--extra {
    display: block;
    margin-top: 8px;
}
.booking-gate__opt--text .booking-gate__face {
    border-radius: var(--radius-md);
    padding: 9px 14px;
    text-align: center;
}
.booking-gate__opt--text .booking-gate__opt-label {
    font-size: 0.875rem;
}
.booking-gate__opt--text .booking-gate__radio:checked + .booking-gate__face {
    background: var(--teal-pale);
}
@media (max-width: 600px) {
    .booking-gate__options--logo { gap: 8px; }
    .booking-gate__opt--logo .booking-gate__face { height: 72px; padding: 6px 4px; }
    .booking-gate__logo { flex-basis: 78%; width: 78%; height: 38px; max-height: 38px; }
}
@media (prefers-reduced-motion: reduce) {
    .booking-gate__opt--logo:hover .booking-gate__face { transform: none; }
}

/* ==========================================================================
   BOOKING GATE — two-step (added 2026-09-24)
   Screen 1: insurance logo tiles (3x2) + "Other / no insurance".
   Screen 2: OP / IOP / PHP cards, Back + chosen-insurance line.
   Tiles/cards are <button>s and auto-advance on click; no Continue button.
   Self-contained: overrides the earlier gate rules, so this block alone can be
   copied to another copy of this file.
   ========================================================================== */
.booking-gate__screen {
    max-width: 560px;
    margin: 0 auto;
    padding: var(--space-md) var(--space-lg) var(--space-lg);
}
.booking-gate__screen .booking-gate__title {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.25;
    color: var(--charcoal);
    margin: 0 0 4px;
}
.booking-gate__screen .booking-gate__title:focus { outline: none; }
.booking-gate__screen .booking-gate__lede {
    font-size: 0.9375rem;
    color: var(--charcoal-muted);
    margin: 0 0 var(--space-sm);
}
.booking-gate__tiles {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: var(--space-sm);
}
.booking-gate__tile {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
    margin: 0;
    box-sizing: border-box;
    font-family: var(--font-body);
    color: var(--charcoal);
    background: var(--white);
    border: 1.5px solid var(--sage-dark);
    border-radius: var(--radius-md);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;
}
.booking-gate__tile--logo {
    height: 84px;
    padding: 8px 6px;
}
.booking-gate__tile .booking-gate__logo {
    display: block;
    flex: 0 0 70%;
    width: 70%;
    max-width: none;
    height: 44px;
    max-height: 44px;
    min-width: 0;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    pointer-events: none;
}
.booking-gate__tiles-extra { margin-top: 10px; }
.booking-gate__tile--text {
    min-height: 44px;
    padding: 10px 14px;
    font-size: 0.9375rem;
    font-weight: 600;
    background: var(--sage-light);
}
.booking-gate__tile:hover {
    border-color: var(--teal-medium);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}
.booking-gate__tile.is-selected {
    border-color: var(--teal-deep);
    background: var(--teal-pale);
    box-shadow: 0 0 0 1px var(--teal-deep), var(--shadow-sm);
}
.booking-gate__tile .booking-gate__tick {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--teal-deep);
    color: var(--white);
    font-size: 11px;
    font-weight: 700;
    line-height: 18px;
    text-align: center;
    opacity: 0;
    transform: scale(0.6);
    transition: opacity var(--duration-fast) ease, transform var(--duration-fast) ease;
}
.booking-gate__tile.is-selected .booking-gate__tick {
    opacity: 1;
    transform: scale(1);
}
.booking-gate__tile:focus-visible,
.booking-gate__card:focus-visible,
.booking-gate__link:focus-visible {
    outline: 3px solid var(--orange-brand);
    outline-offset: 2px;
}
.booking-gate__link {
    border: 0;
    background: none;
    padding: 4px 2px;
    margin: 0;
    font-family: var(--font-body);
    font-size: 0.875rem;
    font-weight: 700;
    color: var(--teal-deep);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}
.booking-gate__back-link {
    display: inline-block;
    text-decoration: none;
    margin: 0 0 6px;
}
.booking-gate__back-link:hover { text-decoration: underline; }
.booking-gate__chosen {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 8px;
    margin: 4px 0 var(--space-sm);
    font-size: 0.875rem;
    color: var(--charcoal-light);
}
.booking-gate__chosen-logo {
    display: block;
    width: auto;
    max-width: 96px;
    height: 22px;
    object-fit: contain;
}
.booking-gate__chosen-name { font-weight: 600; color: var(--charcoal); }
.booking-gate__cards {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.booking-gate__card {
    display: block;
    width: 100%;
    margin: 0;
    padding: 14px 18px;
    box-sizing: border-box;
    text-align: left;
    font-family: var(--font-body);
    color: var(--charcoal);
    background: var(--sage-light);
    border: 1.5px solid var(--sage-dark);
    border-radius: var(--radius-md);
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, box-shadow var(--duration-fast) ease, transform var(--duration-fast) ease;
}
.booking-gate__card:hover {
    border-color: var(--teal-medium);
    background: var(--white);
    transform: translateY(-2px);
    box-shadow: var(--shadow-sm);
}
.booking-gate__card.is-selected {
    border-color: var(--teal-deep);
    background: var(--teal-pale);
    box-shadow: 0 0 0 1px var(--teal-deep);
}
.booking-gate__card-label {
    display: block;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
}
.booking-gate__card-desc {
    display: block;
    margin-top: 3px;
    font-size: 0.875rem;
    line-height: 1.45;
    color: var(--charcoal-muted);
}
@media (max-width: 600px) {
    .booking-gate__screen { padding: var(--space-sm) 16px var(--space-md); }
    .booking-gate__screen .booking-gate__title { font-size: 1.3125rem; }
    .booking-gate__tiles { gap: 8px; }
    .booking-gate__tile--logo { height: 72px; padding: 6px 4px; }
    .booking-gate__tile .booking-gate__logo { flex-basis: 78%; width: 78%; height: 38px; max-height: 38px; }
    .booking-gate__card { padding: 12px 14px; }
}
@media (prefers-reduced-motion: reduce) {
    .booking-gate__tile:hover,
    .booking-gate__card:hover { transform: none; }
}
/* ==================== end BOOKING GATE — two-step ==================== */

/* ==========================================================================
   BOOKING GATE — sizing + compact therapist picker (added 2026-09-24)
   A) While a gate screen shows, #booking-modal gets .booking-modal--gate and the
      modal fits its content (JS removes the class when the Acuity iframe shows).
      Bigger insurance tiles; phones: 2x3 grid, screen 1 vertically centered.
   B) /intake/ therapist picker: compact cards, 4 across on desktop, 2 across on phones.
   Self-contained: overrides earlier rules; copy this block as a whole.
   ========================================================================== */

/* ---- A. Modal fits its content on gate screens ---- */
.booking-modal--gate .booking-modal__container {
    height: auto;
    max-height: calc(100vh - 48px);
}
.booking-modal--gate .booking-modal__body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
}
.booking-modal--gate .booking-gate {
    position: relative;
    inset: auto;
    overflow: visible;
}

/* Bigger insurance tiles (desktop / tablet) */
.booking-gate--step1 .booking-gate__tiles { gap: 12px; }
.booking-gate--step1 .booking-gate__tile--logo {
    height: 104px;
    padding: 8px 6px;
}
.booking-gate--step1 .booking-gate__tile .booking-gate__logo {
    flex: 0 0 62%;
    width: 62%;
    height: 52px;
    max-height: 52px;
}
.booking-gate--step1 .booking-gate__tiles-extra { margin-top: 12px; }

/* Phones and small tablets: the modal is full screen (see BOOKING MODAL) */
@media (max-width: 768px) {
    .booking-modal--gate .booking-modal__container {
        height: 100vh;
        height: 100dvh;
        max-height: none;
    }
    .booking-modal--gate .booking-modal__body {
        display: flex;
        flex-direction: column;
    }
    .booking-modal--gate .booking-gate {
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }
    /* Screen 1: center the content block vertically; still scrolls if it doesn't fit. */
    .booking-gate--step1 .booking-gate__screen {
        margin-top: auto;
        margin-bottom: auto;
        width: 100%;
        box-sizing: border-box;
    }
}
@media (max-width: 600px) {
    .booking-gate--step1 .booking-gate__tiles {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
    .booking-gate--step1 .booking-gate__tile--logo {
        height: 92px;
        padding: 6px 4px;
    }
    .booking-gate--step1 .booking-gate__tile .booking-gate__logo {
        flex-basis: 70%;
        width: 70%;
        height: 44px;
        max-height: 44px;
    }
}
@media (max-width: 600px) and (max-height: 700px) {
    .booking-gate--step1 .booking-gate__tile--logo { height: 80px; }
    .booking-gate--step1 .booking-gate__tile .booking-gate__logo { height: 40px; max-height: 40px; }
}

/* ---- B. Compact therapist picker ---- */
.intake-page__inner:has(.intake-form-root.is-picker) { max-width: 1120px; }
.intake-form-root.is-picker .intake-therapists {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-sm);
}
.intake-form-root.is-picker .intake-therapist.team-card {
    padding: var(--space-md) 14px;
    border-radius: var(--radius-lg);
}
.intake-form-root.is-picker .intake-therapist .team-card__avatar {
    width: 96px;
    height: 96px;
    margin-bottom: 12px;
}
.intake-form-root.is-picker .intake-therapist .team-card__name {
    font-size: 1.125rem;
    line-height: 1.25;
}
.intake-form-root.is-picker .intake-therapist .team-card__credentials {
    margin-bottom: 10px;
}
.intake-form-root.is-picker .intake-therapist .team-card__specialties {
    gap: 4px;
    margin-bottom: 10px;
}
.intake-form-root.is-picker .intake-therapist .team-card__specialties span {
    padding: 3px 8px;
    font-size: 0.6875rem;
}
.intake-form-root.is-picker .intake-therapist__blurb {
    font-size: 0.875rem;
    line-height: 1.5;
    margin-bottom: 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.intake-form-root.is-picker .intake-therapist__actions { gap: 6px; }
.intake-form-root.is-picker .intake-therapist__book {
    width: 100%;
    max-width: none;
    padding: 0.75rem 1rem;
    font-size: 0.8125rem;
}
.intake-form-root.is-picker .intake-therapist__profile { font-size: 0.8125rem; }
@media (max-width: 1024px) and (min-width: 601px) {
    .intake-form-root.is-picker .intake-therapists { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .intake-form-root.is-picker .intake-therapists {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }
    .intake-form-root.is-picker .intake-therapist.team-card {
        padding: 14px 10px;
        border-radius: var(--radius-md);
    }
    .intake-form-root.is-picker .intake-therapist .team-card__avatar {
        width: 76px;
        height: 76px;
        margin-bottom: 8px;
    }
    .intake-form-root.is-picker .intake-therapist .team-card__name { font-size: 1rem; margin-bottom: 2px; }
    .intake-form-root.is-picker .intake-therapist .team-card__credentials { font-size: 0.75rem; margin-bottom: 8px; }
    .intake-form-root.is-picker .intake-therapist .team-card__specialties span:nth-child(n+3) { display: none; }
    .intake-form-root.is-picker .intake-therapist .team-card__specialties span { font-size: 0.625rem; padding: 2px 7px; }
    .intake-form-root.is-picker .intake-therapist__blurb { display: none; }
    .intake-form-root.is-picker .intake-therapist__book { padding: 0.625rem 0.5rem; font-size: 0.8125rem; }
    .intake-form-root.is-picker .intake-therapist__profile { font-size: 0.75rem; }
}
/* ============ end BOOKING GATE — sizing + compact therapist picker ============ */

/* ==========================================================================
   BOOKING GATE — mobile QA fixes (added 2026-09-24)
   Modal above the chat widget, dvh heights, tap targets, touch-safe hover,
   spinner fade, crisis note spacing, floating bubbles hidden on /intake/.
   Self-contained: overrides earlier rules; copy this block as a whole.
   ========================================================================== */

/* 1. Booking modal above the full-screen chat (.grayson-chat is 10000).
      Stays below .skip-link:focus (100000). */
#booking-modal.booking-modal { z-index: 10050; }

/* 9. Full-height modal on phones: dvh after the vh fallback (toolbars). */
@media (max-width: 768px) {
    .booking-modal__container {
        height: 100vh;
        height: 100dvh;
    }
}

/* 6. Tap targets */
.booking-modal__close {
    width: 44px;
    height: 44px;
}
.booking-gate__back,
.booking-gate__link,
.intake-therapist-summary__change {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-top: 0;
    padding-bottom: 0;
}
.booking-gate__backbar { padding-top: 0; padding-bottom: 0; }
.booking-gate__back-link { margin-bottom: 0; }
.booking-gate__chosen { margin-top: 0; }
.intake-page__back {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
}
.intake-form-root.is-picker .intake-therapist__book,
.intake-therapist__book {
    min-height: 44px;
}
.intake-therapist__profile {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
}

/* 7. Hover only on devices that really hover (no stuck hover after a tap). */
@media (hover: none) {
    .booking-gate__tile:hover:not(.is-selected) {
        transform: none;
        box-shadow: none;
        border-color: var(--sage-dark);
    }
    .booking-gate__card:hover:not(.is-selected) {
        transform: none;
        box-shadow: none;
        border-color: var(--sage-dark);
        background: var(--sage-light);
    }
}

/* 8. Acuity spinner fades out (JS keeps it up ~1.5s after the iframe loads). */
.booking-modal__loading {
    z-index: 3;
    opacity: 1;
    transition: opacity 0.3s ease;
}
.booking-modal__loading.is-fading { opacity: 0; }

/* 2. Crisis note now sits right under the screening legend. */
.intake-checks > .intake-crisis { margin: 0 0 10px; }

/* 3. Floating Grayson card and voice widget cover the form on /intake/. */
.page-template-page-intake #floating-cta,
.page-template-page-intake #retell-voice-widget {
    display: none !important;
}
/* ============ end BOOKING GATE — mobile QA fixes ============ */

/* ==========================================================================
   Floating widgets: auto-collapse on desktop (2026-09-24)
   The Grayson card (#floating-cta) and the Dr. Darsa voice card
   (#retell-voice-widget) collapse to the same photo bubble phones use,
   15 s after load (script at the end of footer.php). Desktop only: every
   rule is inside min-width: 769px, so the <=768px mobile rules are untouched.
   Classes: .rc-fw-collapsed (bubble), .rc-fw-out (fade step),
   html.rc-fw-pre (set by a tiny inline script before the widget markup when
   sessionStorage rc_widgets_collapsed=1, so later pages paint as bubbles),
   .rc-fw-toggle (bubble button), .rc-fw-min (minimize button).
   Self-contained: copy this block as a whole.
   ========================================================================== */
.rc-fw-toggle,
.rc-fw-min {
    display: none;
}

@media (min-width: 769px) {
    .floating-cta__card,
    .voice-widget__card {
        position: relative;
        transition: opacity 0.2s ease, transform 0.2s ease;
    }
    .floating-cta__card { transform-origin: bottom left; }
    .voice-widget__card { transform-origin: bottom right; }
    .floating-cta__card.rc-fw-out,
    .voice-widget__card.rc-fw-out {
        opacity: 0;
        transform: translateY(6px) scale(0.92);
    }

    /* Minimize button on the expanded card */
    .rc-fw-min {
        display: flex;
        align-items: center;
        justify-content: center;
        position: absolute;
        top: 6px;
        right: 6px;
        width: 26px;
        height: 26px;
        padding: 0;
        border: 0;
        border-radius: 50%;
        background: transparent;
        color: var(--charcoal-muted);
        cursor: pointer;
        transition: background 0.2s ease, color 0.2s ease;
    }
    .rc-fw-min::before {
        content: "";
        display: block;
        width: 10px;
        height: 2px;
        border-radius: 1px;
        background: currentColor;
    }
    .rc-fw-min:hover {
        background: var(--sage-light, #eef3f1);
        color: var(--charcoal);
    }
    .rc-fw-min:focus-visible,
    .rc-fw-toggle:focus-visible {
        outline: 2px solid var(--teal-deep);
        outline-offset: 2px;
    }

    /* Collapsed: same bubble as the <=768px rules */
    .floating-cta__card.rc-fw-collapsed,
    html.rc-fw-pre .floating-cta__card,
    .voice-widget__card.rc-fw-collapsed,
    html.rc-fw-pre .voice-widget__card {
        width: auto;
        padding: 0;
        background: none;
        box-shadow: none;
    }
    .floating-cta__card.rc-fw-collapsed .floating-cta__header,
    html.rc-fw-pre .floating-cta__card .floating-cta__header,
    .voice-widget__card.rc-fw-collapsed .voice-widget__header,
    html.rc-fw-pre .voice-widget__card .voice-widget__header {
        width: 48px;
        height: 48px;
        background: var(--white);
        border-radius: 50%;
        box-shadow: 0 2px 12px rgba(0,0,0,0.15);
        padding: 3px;
        cursor: pointer;
    }
    .voice-widget__card.rc-fw-collapsed .voice-widget__header,
    html.rc-fw-pre .voice-widget__card .voice-widget__header {
        gap: 0;
        justify-content: center;
        align-items: center;
    }
    .floating-cta__card.rc-fw-collapsed .floating-cta__photo,
    html.rc-fw-pre .floating-cta__card .floating-cta__photo,
    .floating-cta__card.rc-fw-collapsed .floating-cta__photo img,
    html.rc-fw-pre .floating-cta__card .floating-cta__photo img,
    .voice-widget__card.rc-fw-collapsed .voice-widget__avatar-wrap,
    html.rc-fw-pre .voice-widget__card .voice-widget__avatar-wrap,
    .voice-widget__card.rc-fw-collapsed .voice-widget__avatar,
    html.rc-fw-pre .voice-widget__card .voice-widget__avatar {
        width: 42px;
        height: 42px;
        min-width: 42px;
    }
    .floating-cta__card.rc-fw-collapsed .floating-cta__info,
    html.rc-fw-pre .floating-cta__card .floating-cta__info,
    .floating-cta__card.rc-fw-collapsed .floating-cta__actions,
    html.rc-fw-pre .floating-cta__card .floating-cta__actions,
    .voice-widget__card.rc-fw-collapsed .voice-widget__header-info,
    html.rc-fw-pre .voice-widget__card .voice-widget__header-info,
    .voice-widget__card.rc-fw-collapsed .voice-widget__btn,
    html.rc-fw-pre .voice-widget__card .voice-widget__btn,
    .voice-widget__card.rc-fw-collapsed .voice-widget__disclosure,
    html.rc-fw-pre .voice-widget__card .voice-widget__disclosure,
    .floating-cta__card.rc-fw-collapsed .rc-fw-min,
    html.rc-fw-pre .floating-cta__card .rc-fw-min,
    .voice-widget__card.rc-fw-collapsed .rc-fw-min,
    html.rc-fw-pre .voice-widget__card .rc-fw-min {
        display: none;
    }

    /* Bubble button: invisible, covers the 48px bubble */
    .floating-cta__card.rc-fw-collapsed .rc-fw-toggle,
    html.rc-fw-pre .floating-cta__card .rc-fw-toggle,
    .voice-widget__card.rc-fw-collapsed .rc-fw-toggle,
    html.rc-fw-pre .voice-widget__card .rc-fw-toggle {
        display: block;
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
        border: 0;
        border-radius: 50%;
        background: transparent;
        cursor: pointer;
    }
    .floating-cta__card.rc-fw-collapsed:hover .floating-cta__header,
    .voice-widget__card.rc-fw-collapsed:hover .voice-widget__header {
        box-shadow: 0 4px 16px rgba(0,0,0,0.2);
    }
}

@media (min-width: 769px) and (prefers-reduced-motion: reduce) {
    .floating-cta__card,
    .voice-widget__card {
        transition: none;
    }
    .floating-cta__card.rc-fw-out,
    .voice-widget__card.rc-fw-out {
        transform: none;
    }
}
/* ============ end Floating widgets: auto-collapse on desktop ============ */

/* Team grid on phones (2026-09-24): the section, .detail-inner and .team-grid each added 48px side padding,
   leaving the cards ~90px wide so they overflowed and were cut off on the right. */
@media (max-width: 768px) {
    .detail-section .detail-inner > .team-grid {
        padding-left: 0;
        padding-right: 0;
    }
    .page-block-content .detail-section:has(.team-grid) {
        padding-left: var(--space-md);
        padding-right: var(--space-md);
    }
    .detail-section .detail-inner:has(> .team-grid) {
        padding-left: 0;
        padding-right: 0;
    }
    .team-grid .team-card {
        padding: var(--space-lg) var(--space-md);
    }
}

/* ============ RITTM Training for Clinicians (/rittm/, added 2026-09-26) ============
   Pricing cards, clinician testimonials and a 3-up module grid for page 13.
   Scoped to .rittm-* classes used only in that page's content. */
.rittm-modules .therapy-editorial-grid {
    grid-template-columns: repeat(3, 1fr);
}
.rittm-modules .therapy-editorial-card {
    grid-template-columns: 1fr;
    gap: var(--space-md);
    padding: var(--space-xl);
}
.rittm-modules .therapy-card__icon-col {
    flex-direction: row;
    justify-content: flex-start;
    gap: var(--space-md);
}
@media (max-width: 1024px) {
    .rittm-modules .therapy-editorial-grid {
        grid-template-columns: 1fr;
        max-width: 640px;
    }
}

.rittm-pricing {
    padding: var(--space-5xl) 0;
    background: var(--sage-light);
}
.rittm-pricing__header,
.rittm-voices__header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto var(--space-2xl);
}
.rittm-pricing__header p,
.rittm-voices__header p {
    color: var(--charcoal-light);
    font-size: 1.0625rem;
    line-height: 1.7;
}
.rittm-pricing__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-lg);
    max-width: 1200px;
    margin: 0 auto;
    align-items: stretch;
}
.rittm-price-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: var(--white);
    border: 1px solid var(--sage-dark);
    border-radius: var(--radius-xl);
    padding: var(--space-xl) var(--space-lg);
    box-shadow: var(--shadow-sm);
}
.rittm-price-card--featured {
    border: 2px solid var(--teal-deep);
    box-shadow: var(--shadow-lg);
}
.rittm-price-card__flag {
    align-self: flex-start;
    background: var(--teal-deep);
    color: var(--white);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    line-height: 1;
    padding: 6px 11px;
    border-radius: 999px;
    margin: 0 0 var(--space-sm);
}
.rittm-price-card__kicker {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--orange-brand);
    margin: 0 0 var(--space-xs);
}
.rittm-price-card h3 {
    font-size: 1.375rem;
    line-height: 1.3;
    margin: 0 0 var(--space-sm);
}
.rittm-price-card__price {
    font-family: var(--font-display);
    font-size: 2.5rem;
    line-height: 1;
    color: var(--teal-deep);
    margin: 0 0 var(--space-md);
}
.rittm-price-card__price span {
    font-family: var(--font-body);
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--charcoal-muted);
    margin-left: 0.35rem;
}
.rittm-price-card__for {
    color: var(--charcoal-light);
    font-size: 0.9375rem;
    line-height: 1.6;
    margin: 0 0 var(--space-md);
}
.rittm-price-card ul {
    list-style: none;
    margin: 0 0 var(--space-md);
    padding: 0;
}
.rittm-price-card li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.6rem;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--charcoal);
}
.rittm-price-card li::before {
    content: '';
    position: absolute;
    left: 0.25rem;
    top: 0.55em;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--teal-light);
}
.rittm-price-card__ce {
    font-size: 0.8125rem;
    line-height: 1.55;
    color: var(--charcoal-muted);
    margin: 0 0 var(--space-lg);
}
.rittm-price-card .btn {
    margin-top: auto;
    align-self: stretch;
}
.rittm-pricing__note {
    text-align: center;
    max-width: 760px;
    margin: var(--space-xl) auto 0;
    font-size: 0.9375rem;
    line-height: 1.7;
    color: var(--charcoal-light);
}
.rittm-pricing__note a {
    color: var(--teal-deep);
    font-weight: 600;
}

.rittm-voices {
    padding: var(--space-5xl) 0;
    background: var(--cream-warm);
}
.rittm-voices__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: var(--space-lg);
    max-width: 1200px;
    margin: 0 auto;
    align-items: start;
}
.rittm-voices .testimonial-card {
    flex: none;
    margin: 0;
}
.rittm-voices .testimonial-card blockquote {
    margin: 0 0 var(--space-lg);
    padding: 0;
    border: 0;
}
.rittm-voices .testimonial-card footer {
    display: block;
}
.rittm-voices__name {
    display: block;
    font-style: normal;
    font-weight: 700;
    color: var(--charcoal);
}
.rittm-voices__role {
    display: block;
    font-size: 0.8125rem;
    color: var(--charcoal-muted);
    margin-top: 0.2rem;
}
.rittm-voices__more {
    text-align: center;
    margin-top: var(--space-xl);
}

@media (max-width: 1024px) {
    .rittm-pricing__grid,
    .rittm-voices__grid {
        grid-template-columns: 1fr;
        max-width: 560px;
    }
}
/* ============ end RITTM Training for Clinicians ============ */

/* ============ Modality grid note line (home: "Are you a clinician?", added 2026-09-26) ============ */
.modalities-note {
    margin: var(--space-lg) 0 0;
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--charcoal-light);
}
.modalities-note a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--teal-deep);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.modalities-note a:hover { text-decoration-thickness: 2px; }
.modalities-note svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    flex-shrink: 0;
}

/* FAQ block header: rc_render_faq() outputs .faq-header (the rule above targets .faq-section__header) (2026-09-26) */
.faq-header {
    text-align: center;
    margin-bottom: var(--space-3xl);
}

/* Text selection: brand teal instead of the browser's default blue (2026-09-26).
   On the teal-deep sections, invert so the highlight stays visible. */
::selection {
    background: var(--teal-medium);
    color: var(--white);
}
.cta-section ::selection,
.about-conditions ::selection,
.programs-compare ::selection,
.rittm-spotlight ::selection {
    background: var(--white);
    color: var(--teal-deep);
}

/* ========================================
   HERO TEXT SAFETY — added 2026-09-28
   The homepage hero tagline, checklist and buttons start at opacity 0 and are revealed by
   main.js. Without JS (html has no .rc-js, set by an inline script in header.php) show them
   as-is. If main.js is late, blocked or throws, html.rc-hero-failsafe (added 4 s after the
   head is parsed) forces them visible. By then the normal reveal has long finished (~2.5 s).
   ======================================== */
html:not(.rc-js) .hero--fullbleed [data-animate],
html:not(.rc-js) .hero-feature,
html:not(.rc-js) .hero-tagline__reconnect {
    opacity: 1;
    transform: none;
}
html:not(.rc-js) .hero-tagline__reconnect::after {
    transform: scaleX(1);
}
html:not(.rc-js) .hero-feature__check path {
    stroke-dashoffset: 0;
}
html.rc-hero-failsafe .hero--fullbleed .hero-content,
html.rc-hero-failsafe .hero--fullbleed .hero-tagline,
html.rc-hero-failsafe .hero--fullbleed .hero-tagline__word,
html.rc-hero-failsafe .hero--fullbleed .hero-feature,
html.rc-hero-failsafe .hero--fullbleed .hero-actions {
    opacity: 1 !important;
    transform: none !important;
}
/* Opacity only: a transform !important would stop the "breathing" keyframe animation. */
html.rc-hero-failsafe .hero--fullbleed .hero-tagline__reconnect {
    opacity: 1 !important;
}
html.rc-hero-failsafe .hero--fullbleed .hero-tagline__reconnect:not(.land):not(.breathing) {
    transform: none;
}
html.rc-hero-failsafe .hero--fullbleed .hero-tagline__reconnect::after {
    transform: scaleX(1);
}
html.rc-hero-failsafe .hero--fullbleed .hero-actions {
    clip-path: none !important;
}
html.rc-hero-failsafe .hero--fullbleed .hero-feature__check path {
    stroke-dashoffset: 0 !important;
}

/* ========================================
   HERO BACKGROUND VIDEO — added 2026-09-28
   Optional muted loop behind the homepage hero (reconnect/hero bgVideoUrl / bgVideoMobileUrl).
   The section's background-image stays the LCP; the video fades in over it once it plays.
   ======================================== */
.hero--fullbleed {
    position: relative;
}
.hero--fullbleed .hero-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 0;
    transition: opacity 1.2s ease;
    pointer-events: none;
}
.hero--fullbleed .hero-video.is-playing {
    opacity: 1;
}
/* Overlay with a video (owner, 2026-09-28): the brand-teal overlay made the golden shoreline murky,
   so while the video plays a warm neutral dark gradient replaces it (darker behind the centred text
   column and at the bottom, lighter at the top/edges). Until then the forest image keeps the
   original teal overlay; the two crossfade together with the video's 1.2 s fade-in.
   Contrast, white text vs background, worst of 5 frames (median): checklist 5.7-6.1, headline 6.4-8.0. */
.hero--has-video .hero-overlay {
    background: none;
}
.hero--has-video .hero-overlay::before,
.hero--has-video .hero-overlay::after {
    content: "";
    position: absolute;
    inset: 0;
    transition: opacity 1.2s ease;
}
.hero--has-video .hero-overlay::before {
    background: linear-gradient(
        135deg,
        rgba(20, 65, 56, 0.72) 0%,
        rgba(26, 78, 68, 0.55) 40%,
        rgba(26, 78, 68, 0.35) 100%
    );
}
.hero--has-video .hero-overlay::after {
    opacity: 0;
    background:
        radial-gradient(ellipse 70% 65% at 45% 55%, rgba(24, 18, 12, 0.40) 0%, rgba(24, 18, 12, 0.22) 60%, rgba(24, 18, 12, 0) 100%),
        linear-gradient(to bottom, rgba(28, 22, 16, 0.06) 0%, rgba(28, 22, 16, 0.18) 45%, rgba(28, 22, 16, 0.45) 100%);
}
@media (max-width: 768px) {
    /* Phones: the text fills the whole hero, so keep the top darker too. */
    .hero--has-video .hero-overlay::after {
        background:
            radial-gradient(ellipse 80% 60% at 40% 45%, rgba(24, 18, 12, 0.36) 0%, rgba(24, 18, 12, 0.18) 60%, rgba(24, 18, 12, 0) 100%),
            linear-gradient(to bottom, rgba(28, 22, 16, 0.30) 0%, rgba(28, 22, 16, 0.22) 45%, rgba(28, 22, 16, 0.45) 100%);
    }
}
.hero-video.is-playing + .hero-overlay::before {
    opacity: 0;
}
.hero-video.is-playing + .hero-overlay::after {
    opacity: 1;
}
/* Once the video has faded in, drop the image under it (the colour matches the clip's bottom edge). */
.hero--fullbleed.hero--video-on {
    background-image: none !important;
    background-color: #604739;
}
/* LCP guard. Desktop (>1024px): the hero is >= 100vh, so Chrome treats both the background image
   and the full-size video as full-viewport backgrounds and ignores them (the H1 is the LCP).
   <=1024px the hero is auto-height and often shorter than the viewport, so the background image
   IS the LCP there; Chrome only reports a new LCP entry for a LARGER element, so the video is kept
   1px shorter than the image, otherwise it would become a late LCP. The 1px strip is covered by
   .hero--video-on's background colour. */
@media (max-width: 1024px) {
    .hero--fullbleed .hero-video {
        height: calc(100% - 1px);
    }
}
@media (prefers-reduced-motion: reduce) {
    .hero--fullbleed .hero-video {
        display: none;
    }
}

/* ========================================
   HERO: WAVES FIRST FRAME + TRANSPARENT HEADER — added 2026-09-28
   The homepage opens on the video's first frame (hero-waves-v1-poster*.webp, not the forest photo),
   with the warm overlay from the start, so the video takes over seamlessly. The header is
   see-through with a white logo/menu over the hero until the page is scrolled (main.js .scrolled).
   Only with JS (html.rc-js), so a no-JS visitor never gets white links over white content.
   ======================================== */
.hero--fullbleed.hero--has-video:not(.hero--video-on) {
    background-image: url('../images/hero-waves-v1-poster.webp') !important;
}
@media (max-width: 768px) {
    .hero--fullbleed.hero--has-video:not(.hero--video-on) {
        background-image: url('../images/hero-waves-v1-poster-mobile.webp') !important;
    }
}
.hero--has-video .hero-overlay::before {
    opacity: 0;
}
.hero--has-video .hero-overlay::after {
    opacity: 1;
}

html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) {
    background: linear-gradient(to bottom, rgba(20, 15, 10, 0.38) 0%, rgba(20, 15, 10, 0) 100%);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom-color: transparent;
    box-shadow: none;
}
html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) .logo-image {
    filter: brightness(0) invert(1);
}
html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) .main-nav .nav-menu > li > a,
html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) .main-nav .nav-menu > li > a:hover,
html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) .main-nav .nav-menu > li > a.active,
html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) .header-cta__contact {
    color: #fff;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.25);
}
html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) .main-nav .nav-menu > li > a::after {
    background: #fff;
}
html.rc-js body.home:not(.menu-open) .site-header:not(.scrolled) .mobile-menu-toggle span {
    background: #fff;
}

/* ========================================
   TEXT CONTRAST — added 2026-10-02
   Small text that failed WCAG AA (4.5:1) in Lighthouse. The gold buttons are unchanged (owner's choice).
   Footer grey 3.2 -> 5.5, "In-network with" 4.2 -> 5.2, small gold labels 2.0 -> 4.8 (deeper gold).
   ======================================== */
.insurance-label {
    color: #5E716C;
}
.feature-number,
.certification span {
    color: #9A6206;
}
.footer-bottom p,
.footer-bottom-links a,
.footer-ask-ai {
    color: rgba(255, 255, 255, 0.62);
}
.footer-bottom-links a:hover {
    color: var(--white);
}
