/* ============================================================
   Cranial Facial Release: Website
   Built by Greenlight Systems
   Direction: light-default, full blue range, orange ~10% accent,
   even/proportionate band rhythm.
   Type: Fraunces (display) + Manrope (body)
   ============================================================ */

:root {
  /* ---- VIOLET SCALE: purple chrome sitewide. Token names kept as blue-* so
     the whole legacy cascade re-themes without markup edits; facelift
     doctrine: colors only, inner content untouched. ---- */
  --blue-900: #291A52;   /* deep band — matched to the top-level navy-deep (footer keeps #1D1240 via chrome.css) */
  --blue-800: #3E2A78;   /* brand violet — dark surface, headings on light */
  --blue-600: #53409B;   /* dark cards, hovers */
  --blue-400: #7A62C9;   /* links on light, icon strokes */
  --blue-200: #DCD4F0;   /* light band (workhorse) */
  --blue-100: #F1EDFA;   /* lightest band, insets */

  /* ---- CORAL ACCENT (~10% only — his sinus red) ---- */
  --orange: #CE3A1E;
  --orange-soft: #E06A44;

  /* ---- NEUTRALS ---- */
  --white: #FFFFFF;
  --paper: #FBFAFE;      /* page base — near-white, violet-warm */
  --ink: #241A2E;        /* body/heading text on light */
  --slate: #6B5C82;      /* muted body / captions on light */
  --line: #E4DEF0;       /* hairline borders on light */
  --on-dark: #DFD8F0;    /* body text on violet surfaces */

  /* ---- legacy aliases (used by directory page CSS) ---- */
  --cfr-navy: #3E2A78;
  --cfr-navy-deep: #291A52;
  --cfr-navy-tint: #53409B;
  --cfr-ink: #241A2E;
  --cfr-orange: #CE3A1E;
  --cfr-orange-soft: #E06A44;
  --cfr-cream: #FFFFFF;
  --cfr-skyblue: #F1EDFA;
  --cfr-skydeep: #DCD4F0;
  --cfr-mist: rgba(255,255,255,0.78);
  --cfr-fog: rgba(255,255,255,0.55);
  --cfr-thin: rgba(255,255,255,0.16);
  --cfr-divider: rgba(255,255,255,0.10);

  --font-display: 'Source Serif 4', 'Fraunces', Georgia, serif;  /* matched to the top-level site */
  --font-body: 'Manrope', system-ui, -apple-system, sans-serif;

  --container: 1200px;
  --gutter: 40px;
  --radius: 10px;
  --radius-lg: 16px;
  --radius-pill: 100px;

  --shadow-card: 0 16px 40px -16px rgba(41,26,82,0.18);
  --shadow-deep: 0 24px 48px -16px rgba(29,18,64,0.45);
  --shadow-orange: 0 12px 24px -8px rgba(206,58,30,0.40);

  --band-pad: clamp(80px, 9vw, 130px);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "ss01", "cv11";
  overflow-x: clip; /* reveal.js side-entrances translate ±16px: never let that widen the page */
}
img { max-width: 100%; height: auto; display: block; }
button { font-family: inherit; cursor: pointer; }
a { color: var(--blue-400); text-decoration: none; transition: color .25s var(--ease-out); }
a:hover { color: var(--blue-600); }
::selection { background: var(--orange); color: var(--white); }

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.section { padding: var(--band-pad) 0; position: relative; }

/* ---- typography ---- */
h1, h2, h3, h4 {
  font-family: var(--font-display);
  color: var(--blue-800);
  font-weight: 700;
  line-height: 1.05;
  margin: 0 0 24px;
  letter-spacing: -0.02em;
  text-wrap: balance;
  font-variation-settings: "SOFT" 50, "opsz" 144;
}
h1 { font-size: clamp(2.8rem, 6vw, 4.8rem); letter-spacing: -0.035em; line-height: 1.0; }
h2 { font-size: clamp(2.1rem, 3.6vw, 3.25rem); }
h3 { font-size: clamp(1.4rem, 2.1vw, 1.9rem); }
h4 { font-family: var(--font-body); font-size: 1rem; font-weight: 600; letter-spacing: 0.02em; }
p { margin: 0 0 18px; max-width: 64ch; text-wrap: pretty; }

.eyebrow {
  display: inline-flex; align-items: center;
  font-family: var(--font-body);
  font-size: 0.8rem; letter-spacing: 0.24em; text-transform: uppercase;
  color: var(--orange); margin-bottom: 16px; font-weight: 800;
}

/* the double sub-heading pattern is retired: one eyebrow per section */
.section-index { display: none !important; }
.accent { color: var(--orange); font-style: italic; font-variation-settings: "SOFT" 100; }
.nowrap { white-space: nowrap; }

/* ---- buttons ---- */
/* buttons match the top-level system: 12px radius, 800 uppercase, coral action */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  padding: 15px 28px; border-radius: 12px;
  font-family: var(--font-body); font-weight: 800; font-size: 0.92rem; letter-spacing: 0.02em; text-transform: uppercase;
  text-decoration: none; border: 1px solid transparent; transition: transform .15s ease, box-shadow .2s ease; cursor: pointer;
}
.btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--orange); color: var(--white); box-shadow: var(--shadow-orange); }
.btn-primary:hover { background: var(--orange-soft); color: var(--white); transform: translateY(-2px); box-shadow: 0 16px 32px -8px rgba(255,105,0,0.5); }
.btn-ghost { background: transparent; border-color: var(--line); color: var(--blue-800); }
.btn-ghost:hover { background: var(--blue-100); border-color: var(--blue-400); color: var(--blue-800); }
.btn-lg { padding: 18px 36px; font-size: 1rem; }
.btn-arrow::after { content: '→'; margin-left: 4px; transition: transform .3s var(--ease-out); }
.btn-arrow:hover::after { transform: translateX(4px); }
/* ghost button on dark surfaces */
.on-dark .btn-ghost, .hero .btn-ghost, .final-cta .btn-ghost, .page-hero .btn-ghost, .band-900 .btn-ghost, .band-800 .btn-ghost { border-color: rgba(255,255,255,0.28); color: var(--white); }
.on-dark .btn-ghost:hover, .hero .btn-ghost:hover, .final-cta .btn-ghost:hover, .page-hero .btn-ghost:hover, .band-900 .btn-ghost:hover, .band-800 .btn-ghost:hover { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.5); color: var(--white); }

/* ---- HEADER / NAV (light, sticky) ---- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(251,252,254,0.85);
  backdrop-filter: blur(20px) saturate(140%);
  -webkit-backdrop-filter: blur(20px) saturate(140%);
  border-bottom: 1px solid var(--line);
}
.nav { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; }
.nav-brand { display: flex; align-items: center; gap: 14px; color: var(--blue-800); font-weight: 600; font-family: var(--font-display); font-size: 1.25rem; letter-spacing: -0.01em; }
.nav-brand img { height: 30px; width: auto; object-fit: contain; }
.nav-brand .brand-chip { display: inline-flex; align-items: center; justify-content: center; background: var(--blue-800); border-radius: 10px; padding: 9px; box-shadow: 0 4px 12px -4px rgba(62,42,120,0.4); }
.nav-links { display: flex; gap: 32px; list-style: none; margin: 0; padding: 0; align-items: center; }
.nav-links a { color: var(--blue-800); font-weight: 500; font-size: 0.875rem; letter-spacing: 0.01em; transition: color .2s var(--ease-out); }
.nav-links a:hover { color: var(--orange); }
.nav-links a.nav-mock { color: var(--slate); }
.nav-links a.nav-mock:hover { color: var(--orange); }
.nav-cta {
  background: var(--orange); color: var(--white) !important;
  padding: 10px 22px; border-radius: var(--radius-pill);
  font-size: 0.825rem !important; font-weight: 600 !important; letter-spacing: 0.03em; text-transform: uppercase;
  transition: all .25s var(--ease-out) !important; box-shadow: 0 4px 12px rgba(255,105,0,0.3);
}
.nav-cta:hover { background: var(--orange-soft); color: var(--white) !important; transform: translateY(-1px); box-shadow: 0 6px 16px rgba(255,105,0,0.45); }
.nav-toggle { display: none; background: transparent; border: 0; color: var(--blue-800); font-size: 1.5rem; }

/* ============================================================
   HERO — DEEP, two-door
   ============================================================ */
.hero { position: relative; padding: clamp(72px,8vw,110px) 0 clamp(64px,7vw,96px); overflow: hidden; background: var(--blue-900); color: var(--on-dark); }
.hero::before {
  content: ''; position: absolute; inset: 0;
  background-color: var(--blue-900);
  /* image sized by HEIGHT + anchored right = renders downscaled (sharp), not stretched.
     directional overlay keeps text crisp on the left, a restrained reveal on the right. */
  background-image:
    linear-gradient(100deg, rgba(29,18,64,0.985) 0%, rgba(29,18,64,0.96) 46%, rgba(62,42,120,0.82) 68%, rgba(62,42,120,0.62) 100%),
    url('/assets/hero-bg.jpg');
  background-size: auto, auto 120%;
  background-position: center, right center;
  background-repeat: no-repeat, no-repeat;
  pointer-events: none; z-index: 0;
}
.hero::after {
  content: ''; position: absolute; top: 40%; right: -12%; width: 640px; height: 640px;
  transform: translateY(-50%);
  background: radial-gradient(circle, rgba(255,105,0,0.16) 0%, transparent 62%);
  filter: blur(48px); pointer-events: none; z-index: 0;
}
.hero .container { position: relative; z-index: 1; }
.hero-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: 56px; align-items: center; }
.hero-content { animation: fadeUp .9s var(--ease-out) both; }
.hero .eyebrow { color: var(--orange); }
.hero h1 { color: var(--white); margin-bottom: 22px; }
.hero h1 .accent { color: var(--orange); }
.hero-sub { font-size: clamp(1.05rem,1.4vw,1.2rem); color: var(--on-dark); max-width: 560px; margin: 0 0 32px; line-height: 1.55; }

/* two doors */
.hero-doors { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; max-width: 620px; }
.hero-door {
  position: relative; display: flex; flex-direction: column; gap: 6px;
  background: var(--blue-600); border: 1px solid rgba(255,255,255,0.10);
  border-top: 3px solid var(--blue-400);
  border-radius: var(--radius); padding: 22px 22px 24px; color: var(--on-dark);
  transition: all .25s var(--ease-out);
}
.hero-door:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -16px rgba(0,0,0,0.55); }
.hero-door--patient { border-top-color: var(--orange); }
.hero-door-label { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange); font-weight: 700; }
.hero-door--practitioner .hero-door-label { color: var(--blue-200); }
.hero-door-title { font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; color: var(--white); line-height: 1.05; letter-spacing: -0.02em; }
.hero-door-sub { font-size: 0.85rem; color: var(--on-dark); line-height: 1.45; margin-bottom: 8px; }
.hero-door-cta { margin-top: auto; font-size: 0.82rem; font-weight: 700; letter-spacing: 0.02em; display: inline-flex; align-items: center; gap: 7px; }
.hero-door--patient .hero-door-cta { color: var(--orange); }
.hero-door--practitioner .hero-door-cta { color: var(--blue-200); }
.hero-door-cta::after { content: '→'; transition: transform .25s var(--ease-out); }
.hero-door:hover .hero-door-cta::after { transform: translateX(4px); }

/* hero video */
.hero-visual { position: relative; animation: fadeUp .9s .15s var(--ease-out) both; }
.video-frame { position: relative; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-deep); border: 1px solid rgba(255,255,255,0.14); aspect-ratio: 16/9; }
.video-frame iframe { width: 100%; height: 100%; border: 0; }
.hero-visual-tag {
  position: absolute; bottom: 18px; left: 18px;
  background: rgba(29,18,64,0.92); backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.18); color: var(--white);
  font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700;
  padding: 9px 15px; border-radius: var(--radius-pill); display: inline-flex; align-items: center; gap: 8px; z-index: 2;
}
.hero-visual-tag::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--orange); box-shadow: 0 0 12px var(--orange); animation: pulse 2s infinite; }

/* hero stat strip — full width, real numbers */
.hero-stats { display: grid; grid-template-columns: repeat(3, auto); gap: 56px; margin-top: 48px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,0.12); position: relative; z-index: 1; justify-content: start; }
.hero-stat { display: flex; flex-direction: column; gap: 6px; }
.hero-stat-num { font-family: var(--font-display); font-size: 2.4rem; font-weight: 700; color: var(--orange); line-height: 1; letter-spacing: -0.02em; font-variation-settings: "SOFT" 100; }
.hero-stat-label { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 600; }

/* ============================================================
   VIDEO TESTIMONIALS (carousel) — LIGHT band
   ============================================================ */
.video-testimonials { background: var(--paper); padding: var(--band-pad) 0 calc(var(--band-pad) - 40px); position: relative; }

/* practitioner testimonials — DEEP navy band, cards pop */
.video-testimonials--dark { background: var(--blue-900); }
.video-testimonials--dark .eyebrow { color: var(--orange); }
.video-testimonials--dark .video-carousel-header h3 { color: var(--white); }
.video-testimonials--dark .video-card { background: var(--blue-800); border-color: rgba(255,255,255,0.10); box-shadow: 0 18px 40px -18px rgba(0,0,0,0.55); }
.video-testimonials--dark .video-card:hover { border-color: rgba(255,255,255,0.22); }
.video-testimonials--dark .video-card-meta h4 { color: var(--white); }
.video-testimonials--dark .video-card-meta p { color: var(--on-dark); }
.video-testimonials--dark .video-carousel-track::-webkit-scrollbar-track { background: rgba(255,255,255,0.10); }
.video-testimonials--dark .video-carousel-track::-webkit-scrollbar-thumb { border-color: var(--blue-900); }
.video-carousel { position: relative; margin: 0; padding: 0; }
.video-carousel-header { max-width: var(--container); margin: 0 auto 32px; padding: 0 var(--gutter); display: flex; align-items: end; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.video-carousel-header h3 { font-family: var(--font-display); font-size: clamp(1.5rem,2.5vw,2.25rem); color: var(--blue-800); margin: 0; font-weight: 600; letter-spacing: -0.015em; }
.video-carousel-cta { padding: 12px 22px; font-size: 0.8rem; letter-spacing: 0.03em; text-transform: uppercase; }
/* desktop: 4-up grid, everything on screen, no horizontal scroll */
.video-carousel-track {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px;
  padding: 12px var(--gutter) 8px;
}
.video-carousel-track::-webkit-scrollbar { height: 10px; }
.video-carousel-track::-webkit-scrollbar-track { background: var(--line); border-radius: 6px; margin: 0 var(--gutter); }
.video-carousel-track::-webkit-scrollbar-thumb { background: var(--orange); border-radius: 6px; border: 3px solid var(--paper); background-clip: padding-box; min-width: 80px; }
.video-carousel-track::-webkit-scrollbar-thumb:hover { background: var(--orange-soft); background-clip: padding-box; border: 3px solid var(--paper); }
.video-card {
  background: var(--white);
  border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden;
  box-shadow: var(--shadow-card); transition: all .25s var(--ease-out);
}
.video-card:hover { transform: translateY(-4px); border-color: var(--blue-200); box-shadow: 0 24px 44px -18px rgba(62,42,120,0.28); }
.video-card-frame { position: relative; aspect-ratio: 16/11; background: #000; overflow: hidden; }
.video-mute-toggle { position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; background: rgba(29,18,64,0.78); border: 1px solid rgba(255,255,255,0.18); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: 50%; display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 3; transition: all .2s var(--ease-out); padding: 0; }
.video-mute-toggle:hover { background: var(--orange); border-color: var(--orange); transform: scale(1.08); }
.video-mute-toggle svg { width: 18px; height: 18px; color: var(--white); display: block; }
.video-mute-toggle .icon-on { display: none; }
.video-mute-toggle.unmuted { background: var(--orange); border-color: var(--orange); }
.video-mute-toggle.unmuted .icon-off { display: none; }
.video-mute-toggle.unmuted .icon-on { display: block; }
.video-card-frame video, .video-card-frame iframe { width: 100%; height: 100%; object-fit: cover; display: block; border: 0; }
.video-card-meta { padding: 18px 20px; }
.video-card-meta h4 { color: var(--blue-800); font-family: var(--font-body); font-size: 1rem; font-weight: 600; margin: 0 0 4px; }
.video-card-meta p { color: var(--slate); font-size: 0.85rem; margin: 0; letter-spacing: 0.02em; }
.video-card-tag { display: inline-block; margin-top: 12px; padding: 3px 10px; border-radius: var(--radius-pill); font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; background: rgba(255,105,0,0.12); color: var(--orange); }

/* carousel dots */
.carousel-dots { display: flex; justify-content: center; gap: 10px; padding: 4px var(--gutter) 0; flex-wrap: wrap; }
.carousel-dot { width: 36px; height: 4px; border-radius: 4px; background: var(--line); border: 0; padding: 0; cursor: pointer; transition: all .25s var(--ease-out); font-size: 0; }
.carousel-dot:hover { background: var(--blue-200); }
.carousel-dot.active { background: var(--orange); width: 56px; }

/* ============================================================
   ABOUT / THE TECHNIQUE (01) — LIGHT band
   ============================================================ */
.about { background: var(--blue-100); position: relative; }
.about-grid { display: grid; grid-template-columns: 1fr 1.35fr; gap: clamp(48px,6vw,90px); align-items: start; position: relative; }
.about-aside { position: sticky; top: 96px; }
.about-aside .eyebrow { margin-bottom: 18px; }
.about-visual { border-radius: var(--radius-lg); overflow: hidden; border: 1px solid var(--line); background: var(--white); margin-top: 16px; aspect-ratio: 4/5; box-shadow: var(--shadow-card); }
.about-visual img, .about-visual iframe { width: 100%; height: 100%; display: block; border: 0; object-fit: cover; }
.about-visual--video { aspect-ratio: 16/9; }
.about-body p { font-size: 1.05rem; color: var(--ink); }
.about-body p .lead-em { color: var(--blue-600); font-weight: 600; }
.about-meta { display: flex; gap: 36px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.about-meta-item .num { font-family: var(--font-display); font-size: 1.6rem; color: var(--orange); font-weight: 700; line-height: 1; font-variation-settings: "SOFT" 100; }
.about-meta-item .label { font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--slate); font-weight: 600; margin-top: 6px; }

/* ============================================================
   BENEFITS / WHAT CFR TREATS (02) — DEEP band
   ============================================================ */
.benefits { background: var(--blue-800); color: var(--on-dark); position: relative; }
.benefits::after {
  content: ''; position: absolute; inset: 0; pointer-events: none; opacity: 0.5;
  background: radial-gradient(at 85% 10%, rgba(83,64,155,0.7) 0%, transparent 55%);
}
.benefits .container { position: relative; z-index: 1; }
.benefits h2 { color: var(--white); }
.benefits .section-index { color: var(--blue-200); }
.benefits-header { max-width: 760px; margin: 0 0 56px; }
.benefits-header p { color: var(--on-dark); font-size: 1.05rem; }
.benefits-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.benefit-card { background: var(--blue-600); border: 1px solid rgba(255,255,255,0.16); border-radius: var(--radius); padding: 30px 28px; transition: all .3s var(--ease-out); }
.benefit-card:hover { transform: translateY(-4px); border-color: rgba(255,255,255,0.18); box-shadow: 0 20px 40px -18px rgba(0,0,0,0.5); }
.benefit-num { font-family: var(--font-display); font-size: 0.85rem; color: var(--orange); font-style: italic; margin-bottom: 16px; display: block; }
.benefit-card h3 { color: var(--white); font-size: 1.3rem; margin-bottom: 10px; }
.benefit-card p { color: var(--on-dark); font-size: 0.92rem; margin: 0; line-height: 1.6; }
/* condition chips */
.conditions-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 44px; padding-top: 36px; border-top: 1px solid rgba(255,255,255,0.12); }
.conditions-chips .chip-label { width: 100%; font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.55); font-weight: 600; margin-bottom: 6px; }
.cond-chip { display: inline-flex; padding: 8px 16px; background: rgba(255,255,255,0.10); border: 1px solid rgba(255,255,255,0.20); border-radius: var(--radius-pill); font-size: 0.82rem; color: var(--white); letter-spacing: 0.01em; }

/* ============================================================
   SEMINARS CTA — LIGHT band
   ============================================================ */
.cta-band { background: var(--blue-200); padding: var(--band-pad) 0; position: relative; overflow: hidden; color: var(--ink); }
.cta-band-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(48px,6vw,80px); align-items: center; }
.cta-band-text { max-width: 540px; }
.cta-band h2 { color: var(--blue-800); margin-bottom: 20px; }
.cta-band p { color: var(--ink); font-size: 1.08rem; max-width: 500px; margin: 0 0 24px; }
.cta-includes { list-style: none; margin: 0 0 32px; padding: 0; display: grid; gap: 12px; }
.cta-includes li { display: flex; align-items: flex-start; gap: 12px; font-size: 0.98rem; color: var(--ink); text-wrap: pretty; line-height: 1.5; }
.cta-includes li::before { content: '✓'; flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--orange); color: var(--white); font-size: 0.75rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; margin-top: 2px; }
.cta-includes .hook { font-weight: 700; color: var(--blue-800); }
.cta-band-image { border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-deep); border: 1px solid rgba(62,42,120,0.10); aspect-ratio: 4/3; }
.cta-band-image img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ============================================================
   FIND A DOCTOR PREVIEW (04) — DEEP band
   ============================================================ */
.locator-preview { background: var(--blue-800); color: var(--on-dark); position: relative; overflow: hidden; }
.locator-preview::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(at 15% 90%, rgba(83,64,155,0.6) 0%, transparent 55%); }
.locator-preview .container { position: relative; z-index: 1; }
.locator-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(48px,6vw,80px); align-items: center; }
.locator-text { max-width: 480px; }
.locator-text h2 { color: var(--white); }
.locator-text p { font-size: 1.05rem; margin-bottom: 36px; color: var(--on-dark); }
.locator-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius); overflow: hidden; margin-bottom: 36px; }
.locator-stat { background: var(--blue-800); padding: 22px 20px; }
.locator-stat-num { font-family: var(--font-display); font-size: 2.1rem; color: var(--orange); line-height: 1; margin-bottom: 6px; font-weight: 700; letter-spacing: -0.02em; font-variation-settings: "SOFT" 100; }
.locator-stat-label { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 600; }
.locator-visual-col { display: flex; flex-direction: column; gap: 26px; align-items: center; }
.locator-visual-col .btn { align-self: center; }
.locator-visual { position: relative; aspect-ratio: 4/3; border-radius: var(--radius-lg); overflow: hidden; display: block; border: 1px solid rgba(255,255,255,0.14); box-shadow: var(--shadow-deep); }
.locator-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
/* find-a-doctor globe */
.locator-globe { position: relative; width: 100%; max-width: 500px; aspect-ratio: 1/1; margin: 0 auto; display: flex; align-items: center; justify-content: center; cursor: grab; user-select: none; -webkit-user-select: none; -webkit-user-drag: none; }
.cfr-globe-canvas { width: 100%; height: 100%; aspect-ratio: 1; max-width: 500px; contain: layout paint size; opacity: 0; transition: opacity 1s var(--ease-out); user-select: none; -webkit-user-select: none; -webkit-user-drag: none; touch-action: pan-y; }
.cfr-globe-canvas.ready { opacity: 1; }
.locator-globe::after { content: ''; position: absolute; inset: 8%; border-radius: 50%; background: radial-gradient(circle, rgba(62,99,184,0.18) 0%, transparent 65%); pointer-events: none; z-index: -1; }
.globe-hint { position: absolute; bottom: -2px; left: 50%; transform: translateX(-50%); font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.5); font-weight: 600; white-space: nowrap; }
.locator-globe.globe-fallback { aspect-ratio: 4/3; background: url('/assets/directory-preview.png') center/cover no-repeat; border-radius: var(--radius-lg); border: 1px solid rgba(255,255,255,0.14); box-shadow: var(--shadow-deep); }
.locator-globe.globe-fallback .cfr-globe-canvas { display: none; }
.locator-globe.globe-fallback .globe-hint { bottom: 12px; }

/* ============================================================
   MEET DR. ADAM (05) — LIGHT band
   ============================================================ */
.founder { background: var(--blue-900); color: var(--on-dark); position: relative; overflow: hidden; box-shadow: inset 0 24px 60px -40px rgba(0,0,0,0.7); }
.founder-grid { display: grid; grid-template-columns: 0.85fr 1.3fr; gap: clamp(48px,6vw,80px); align-items: start; position: relative; }
.founder-portrait-stack { display: flex; flex-direction: column; gap: 18px; position: sticky; top: 96px; }
.founder-portrait { position: relative; border-radius: var(--radius-lg); overflow: hidden; aspect-ratio: 4/5; box-shadow: var(--shadow-card); border: 1px solid var(--line); background: var(--white); }
.founder-portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.founder-portrait-tag { position: absolute; bottom: 16px; right: 16px; left: auto; text-align: right; font-family: var(--font-display); color: var(--white); font-style: italic; font-size: 0.95rem; letter-spacing: 0.02em; font-weight: 600; text-shadow: 0 2px 12px rgba(0,0,0,0.6); background: rgba(29,18,64,0.5); padding: 7px 14px; border-radius: var(--radius-pill); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.founder-body h2 { color: var(--white); margin-bottom: 24px; }
.founder-body p { font-size: 1.02rem; color: var(--on-dark); margin-bottom: 18px; }
.founder-body .section-index { color: var(--blue-200); }
.founder-credentials { display: flex; gap: 28px; margin-top: 32px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,0.12); flex-wrap: nowrap; }
.founder-credentials .founder-cred-item { flex: 1 1 0; min-width: 0; }
.founder-cred-item .num { font-family: var(--font-display); font-size: 1.7rem; color: var(--orange); font-weight: 700; line-height: 1; font-variation-settings: "SOFT" 100; }
.founder-cred-item .label { font-size: 0.68rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 700; margin-top: 6px; }

/* patient testimonials variant stays light (uses .video-testimonials) */
/* patient testimonials — LIGHT blue band, DARK tiles */
.patient-testimonials { background: var(--blue-100); }
.patient-testimonials .video-carousel-header h3 { color: var(--blue-800); }
.patient-testimonials .video-card { background: var(--blue-800); border-color: rgba(255,255,255,0.10); box-shadow: 0 18px 40px -18px rgba(62,42,120,0.30); }
.patient-testimonials .video-card:hover { border-color: rgba(255,255,255,0.22); }
.patient-testimonials .video-card-meta h4 { color: var(--white); }
.patient-testimonials .video-card-meta p { color: var(--on-dark); }

/* provider testimonials (below seminars) — light band, dark tiles (mirrors patient) */
.provider-testimonials { background: var(--paper); }
.provider-testimonials .video-carousel-header h3 { color: var(--blue-800); }
.provider-testimonials .video-card { background: var(--blue-800); border-color: rgba(255,255,255,0.10); box-shadow: 0 18px 40px -18px rgba(62,42,120,0.30); }
.provider-testimonials .video-card:hover { border-color: rgba(255,255,255,0.22); }
.provider-testimonials .video-card-meta h4 { color: var(--white); }
.provider-testimonials .video-card-meta p { color: var(--on-dark); }

/* ============================================================
   FINAL DUAL CTA — DEEP band
   ============================================================ */
/* closing band flips aqua: a purple band never sits directly on the purple footer */
.final-cta { background: linear-gradient(160deg, #B4E4D7 0%, #8FD3C1 60%, #7CC8B4 100%); color: #24443A; text-align: center; position: relative; overflow: hidden; }
.final-cta::after { content: ''; position: absolute; top: 50%; left: 50%; width: 700px; height: 700px; transform: translate(-50%,-50%); background: radial-gradient(circle, rgba(255,105,0,0.10) 0%, transparent 60%); filter: blur(50px); pointer-events: none; }
.final-cta .container { position: relative; z-index: 1; }
.final-cta .eyebrow { color: #B23A17; justify-content: center; }
.final-cta h2 { color: #17262F; margin: 0 auto 16px; max-width: 16ch; }
.final-cta p { color: #24443A; max-width: 56ch; margin: 0 auto 36px; font-size: 1.08rem; }
.final-cta .btn-ghost { background: rgba(255,255,255,0.35); border-color: rgba(23,38,47,0.35); color: #17262F; }
.final-cta .btn-ghost:hover { background: rgba(255,255,255,0.6); border-color: #17262F; color: #17262F; }
/* the disclaimer was styled for the old dark CTA band; on aqua it reads dark green */
.final-cta .med-disclaimer, .final-cta .med-disclaimer p,
.condition-page .final-cta .med-disclaimer, .condition-page .final-cta .med-disclaimer p { color: #3A5A4E; }
.final-cta .med-disclaimer strong { color: #17262F; }
.final-cta-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* ============================================================
   FOOTER — DEEPEST
   ============================================================ */
.site-footer { background: var(--blue-900); padding: clamp(72px,8vw,96px) 0 40px; color: var(--on-dark); }
.footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 56px; margin-bottom: 56px; }
.footer-brand .nav-brand { color: var(--white); }
.footer-brand .nav-brand img { height: 40px; }
.footer-brand p { color: rgba(255,255,255,0.6); font-size: 0.95rem; max-width: 340px; margin-top: 22px; }
.footer-contact { margin-top: 18px; font-size: 0.92rem; color: var(--on-dark); line-height: 1.7; }
.footer-contact a { color: var(--on-dark); }
.footer-contact a:hover { color: var(--orange); }
.footer-col h4 { color: var(--white); font-family: var(--font-body); font-size: 0.75rem; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 22px; font-weight: 700; }
.footer-col ul { list-style: none; padding: 0; margin: 0; }
.footer-col li { margin-bottom: 13px; }
.footer-col a { color: rgba(255,255,255,0.72); font-size: 0.95rem; font-weight: 400; }
.footer-col a:hover { color: var(--orange); }
.footer-bottom { padding-top: 30px; border-top: 1px solid rgba(255,255,255,0.10); display: flex; flex-direction: column; align-items: center; gap: 18px; text-align: center; color: rgba(255,255,255,0.5); font-size: 0.82rem; }
.gls-credit { display: inline-flex; align-items: center; opacity: 0.85; transition: opacity .2s var(--ease-out); }
.gls-credit:hover { opacity: 1; }
.gls-credit img { height: 28px; width: auto; display: block; }

/* ============================================================
   FIND A DOCTOR PAGE (preserved — rebalanced later)
   ============================================================ */
.page-hero { padding: 96px 0 64px; background: linear-gradient(rgba(29,18,64,0.82), rgba(62,42,120,0.9)), url('/assets/gallery/g-43.jpg') center 30% / cover no-repeat; position: relative; overflow: hidden; color: var(--on-dark); }
.page-hero::before { content: ''; position: absolute; top: 50%; right: -10%; width: 500px; height: 500px; transform: translateY(-50%); background: radial-gradient(circle, rgba(255,105,0,0.12) 0%, transparent 65%); filter: blur(60px); pointer-events: none; }
.page-hero .container { position: relative; }
.page-hero-content { max-width: 760px; }
.page-hero h1 { color: var(--white); font-size: clamp(2.5rem,5vw,4rem); margin-bottom: 20px; }
.page-hero p { font-size: 1.05rem; color: var(--on-dark); max-width: 640px; }
.page-hero-stats { display: flex; gap: 56px; margin-top: 56px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,0.12); }
.page-hero-stat-num { font-family: var(--font-display); font-size: 1.75rem; color: var(--orange); font-weight: 700; font-variation-settings: "SOFT" 100; }
.page-hero-stat-label { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.6); font-weight: 500; margin-top: 4px; }
.filter-bar { background: var(--white); padding: 24px; border-radius: var(--radius-lg); border: 1px solid var(--line); box-shadow: var(--shadow-card); margin: 40px 0 24px; display: grid; grid-template-columns: 2fr 1fr 1.5fr auto; gap: 16px; align-items: end; }
.filter-field { display: flex; flex-direction: column; gap: 8px; }
.filter-field label { font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--slate); font-weight: 600; }
.filter-field input, .filter-field select { background: var(--paper); color: var(--ink); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px 16px; font-family: var(--font-body); font-size: 0.95rem; transition: border-color .2s var(--ease-out); }
.filter-field input:focus, .filter-field select:focus { outline: none; border-color: var(--orange); }
.filter-bar .btn { padding: 14px 28px; }
.chip-row { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 40px; }
.chip { display: inline-flex; align-items: center; padding: 9px 18px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-pill); font-size: 0.825rem; color: var(--slate); cursor: pointer; transition: all .2s var(--ease-out); user-select: none; letter-spacing: 0.02em; font-weight: 500; }
.chip:hover { border-color: var(--orange); color: var(--blue-800); }
.chip.active { background: var(--orange); border-color: var(--orange); color: var(--white); }
.directory-grid { display: grid; grid-template-columns: 440px 1fr; gap: 24px; min-height: 640px; margin-bottom: 96px; }
.directory-list { background: var(--white); border-radius: var(--radius-lg); border: 1px solid var(--line); padding: 24px; overflow-y: auto; max-height: 720px; box-shadow: var(--shadow-card); }
/* z-index:1 contains Leaflet's internal panes/controls (z up to 1000) in their own
   stacking context so they never paint over the sticky header (z-index 100) on scroll */
.directory-map { border-radius: var(--radius-lg); border: 1px solid var(--line); overflow: hidden; position: relative; z-index: 1; isolation: isolate; background: var(--blue-100); min-height: 720px; }
#map { width: 100%; height: 720px; }
.results-count { padding: 0 4px 20px; font-size: 0.8rem; color: var(--slate); border-bottom: 1px solid var(--line); margin-bottom: 20px; letter-spacing: 0.04em; font-weight: 500; }
.results-count strong { color: var(--blue-800); font-family: var(--font-display); font-size: 1.5rem; font-weight: 600; display: inline-block; margin-right: 6px; vertical-align: -2px; }
.practitioner-card { display: grid; grid-template-columns: 56px 1fr; gap: 16px; padding: 16px; margin-bottom: 8px; background: transparent; border: 1px solid transparent; border-radius: var(--radius); cursor: pointer; transition: all .25s var(--ease-out); }
.practitioner-card:hover { background: var(--blue-100); border-color: var(--line); }
.practitioner-card.active { background: rgba(255,105,0,0.06); border-color: var(--orange); }
.practitioner-photo { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 1px solid var(--line); }
.practitioner-info h4 { color: var(--blue-800); font-family: var(--font-body); font-size: 0.95rem; margin: 0 0 4px; font-weight: 600; letter-spacing: -0.01em; }
.practitioner-location { font-size: 0.8rem; color: var(--slate); margin: 0 0 10px; }
.practitioner-badge { display: inline-block; padding: 4px 10px; border-radius: var(--radius-pill); font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase; font-weight: 700; font-family: var(--font-body); }
.badge-instructor { background: rgba(252,185,0,0.16); color: #b8860b; }
.badge-elite { background: var(--orange); color: var(--blue-900); }
.badge-advanced { background: var(--blue-100); color: var(--blue-600); }
.badge-certified { background: var(--blue-100); color: var(--slate); }
.refer { background: var(--blue-200); color: var(--ink); padding: var(--band-pad) 0; position: relative; }
.refer-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px; align-items: center; }
.refer h2 { color: var(--blue-800); }
.refer p { color: var(--ink); font-size: 1.05rem; }
.refer-visual { font-family: var(--font-display); font-size: clamp(6rem,14vw,12rem); color: var(--orange); opacity: 0.28; font-style: italic; font-weight: 400; line-height: 1; text-align: right; font-variation-settings: "SOFT" 100; letter-spacing: -0.03em; }

/* ============================================================
   FIND A DOCTOR PAGE — dark-blue theme, light-blue UI, fit-to-screen
   ============================================================ */
body.fad-page { background: var(--blue-900); color: var(--on-dark); }
.fad-page .page-hero { padding: 60px 0 32px; }
.fad-page .filter-bar { background: var(--blue-100); border: 1px solid var(--blue-200); box-shadow: var(--shadow-deep); }
.fad-page .filter-field label { color: var(--blue-600); }
.fad-page .filter-field input, .fad-page .filter-field select { background: var(--white); color: var(--ink); border: 1px solid var(--blue-200); }
.fad-page .filter-field input:focus, .fad-page .filter-field select:focus { border-color: var(--orange); }
.fad-page .chip { background: var(--blue-100); border: 1px solid transparent; color: var(--blue-800); }
.fad-page .chip:hover { border-color: var(--orange); color: var(--blue-800); }
.fad-page .chip.active { background: var(--orange); border-color: var(--orange); color: #fff; }
.fad-page .directory-list { background: var(--blue-100); border: 1px solid var(--blue-200); }
.fad-page .results-count { color: var(--slate); border-bottom-color: var(--blue-200); }
.fad-page .results-count strong { color: var(--blue-800); }
.fad-page .practitioner-card { border-color: transparent; }
.fad-page .practitioner-card:hover { background: var(--white); border-color: var(--blue-200); }
.fad-page .practitioner-card.active { background: rgba(255,105,0,0.10); border-color: var(--orange); }
.fad-page .practitioner-photo { border-color: var(--blue-200); }
.fad-page .practitioner-info h4 { color: var(--blue-800); }
.fad-page .practitioner-location { color: var(--slate); }
.fad-page .filter-bar { padding: 18px; margin: 32px 0 0; }
.fad-page .chip-row { margin-bottom: 20px; margin-top: 18px; }
.fad-page .practitioner-card { padding: 12px 14px; }
.fad-page .directory-map { border: 1px solid var(--blue-200); background: var(--blue-800); }
/* blue-tint the dark map tiles so they sit inside the palette (not a black hole) */
.fad-page .leaflet-tile-pane { filter: sepia(0.45) hue-rotate(176deg) saturate(1.7) brightness(1.06); }
.fad-page .leaflet-container { background: var(--blue-800); }
/* fit search + map + list into one desktop screen */
@media (min-width: 1025px) {
  .fad-page .directory-grid { grid-template-columns: 380px 1fr; gap: 20px; height: calc(100vh - 250px); min-height: 460px; max-height: 740px; margin-bottom: 64px; }
  .fad-page .directory-list { max-height: 100%; height: 100%; }
  .fad-page .directory-map { min-height: 0; height: 100%; }
  .fad-page #map { height: 100%; }
}

/* leaflet overrides (light) */
.leaflet-popup-content-wrapper { background: var(--white); color: var(--ink); border-radius: var(--radius); border: 1px solid var(--line); padding: 4px; }
.leaflet-popup-tip { background: var(--white); }
.leaflet-popup-content { margin: 12px 16px; font-family: var(--font-body); }
.leaflet-popup-content h4 { color: var(--blue-800); font-family: var(--font-body); margin: 0 0 6px; font-size: 1rem; font-weight: 600; }
.leaflet-popup-content p { font-size: 0.85rem; margin: 0 0 6px; color: var(--slate); }
.leaflet-popup-content a { color: var(--orange); font-weight: 600; font-size: 0.85rem; }
.leaflet-container { background: var(--blue-100); font: inherit; }
.leaflet-control-attribution { font-size: 10px; background: rgba(255,255,255,0.85); color: var(--slate); }
.leaflet-control-attribution a { color: var(--blue-400); }
.marker-cluster { background-color: transparent !important; }
.marker-cluster div { background: var(--orange) !important; color: var(--white) !important; font-weight: 700; font-family: var(--font-body); border: 3px solid rgba(255,105,0,0.3); box-shadow: 0 4px 12px rgba(0,0,0,0.25); }
.cfr-pin { position: relative; width: 20px; height: 20px; background: var(--orange); border: 2px solid var(--white); border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); cursor: pointer; transition: transform .2s var(--ease-out); }
.cfr-pin::before { content: ''; position: absolute; inset: -8px; border-radius: 50%; background: rgba(255,105,0,0.2); animation: pulse 2.4s infinite; }
.cfr-pin:hover { transform: scale(1.2); }

@keyframes pulse { 0%,100% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.5); opacity: 0; } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }

/* ============================================================
   SEMINARS PAGE
   ============================================================ */
.seminars-hero { background: linear-gradient(100deg, rgba(29,18,64,0.95) 0%, rgba(29,18,64,0.84) 42%, rgba(62,42,120,0.56) 72%, rgba(62,42,120,0.42) 100%), url('/assets/seminar-hero.jpg') center 32% / cover no-repeat; }
.page-hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 8px; }
.section-head { max-width: 760px; margin: 0 0 48px; }
.section-head h2 { margin-bottom: 0; }
.section-head p { margin-top: 14px; color: var(--slate); font-size: 1.05rem; }

.upcoming { background: var(--blue-100); }
.seminar-list { display: flex; flex-direction: column; gap: 16px; }
.seminar-card { display: grid; grid-template-columns: 120px 1fr auto; gap: 28px; align-items: center; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 22px 28px; box-shadow: var(--shadow-card); transition: all .25s var(--ease-out); }
.seminar-card:hover { transform: translateY(-2px); border-color: var(--blue-200); box-shadow: 0 22px 44px -20px rgba(62,42,120,0.26); }
.seminar-date { text-align: center; border-right: 1px solid var(--line); padding-right: 24px; }
.seminar-month { display: block; font-family: var(--font-display); font-size: 1.05rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--orange); font-weight: 600; }
.seminar-day { display: block; font-family: var(--font-display); font-size: 1.85rem; color: var(--blue-800); font-weight: 600; line-height: 1.05; }
.seminar-year { display: block; font-size: 0.7rem; color: var(--slate); letter-spacing: 0.1em; text-transform: uppercase; margin-top: 3px; }
.seminar-type { display: inline-block; font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 700; padding: 4px 11px; border-radius: var(--radius-pill); margin-bottom: 10px; }
.seminar-type--basic { background: var(--blue-100); color: var(--blue-600); }
.seminar-type--advanced { background: rgba(255,105,0,0.12); color: var(--orange); }
.seminar-info h3 { font-size: 1.18rem; margin: 0 0 6px; color: var(--blue-800); }
.seminar-venue { font-size: 0.9rem; color: var(--slate); margin: 0; }
.seminar-actions { display: flex; flex-direction: column; gap: 10px; align-items: flex-end; }
.seminar-hotel { font-size: 0.8rem; color: var(--blue-400); font-weight: 600; white-space: nowrap; }
.seminar-hotel:hover { color: var(--orange); }
.reg-note { margin: 28px auto 0; text-align: center; max-width: 660px; font-size: 0.92rem; color: var(--slate); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 22px; }
.reg-note strong { color: var(--blue-800); }

.offer { background: var(--blue-900); color: var(--on-dark); }
.offer-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(40px,5vw,72px); align-items: center; }
.offer-text h2 { color: var(--white); }
.offer-text h2 .accent { color: var(--orange); }
.offer-text > p { color: var(--on-dark); font-size: 1.05rem; }
.offer .cta-includes li { color: var(--on-dark); }
.offer .cta-includes .hook { color: var(--white); }
.offer-fine { font-size: 0.85rem; color: rgba(255,255,255,0.55); font-style: italic; margin-bottom: 0; }
.offer-card { background: var(--blue-800); border: 1px solid rgba(255,255,255,0.12); border-top: 3px solid var(--orange); border-radius: var(--radius-lg); padding: 32px; box-shadow: var(--shadow-deep); }
.offer-card-eyebrow { display: inline-block; font-size: 0.66rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--orange); font-weight: 700; margin-bottom: 16px; }
.offer-card-quote { font-family: var(--font-display); font-size: 1.3rem; line-height: 1.35; color: var(--white); font-weight: 400; margin: 0 0 16px; font-variation-settings: "SOFT" 60; }
.offer-card-cite { font-size: 0.82rem; color: var(--on-dark); margin: 0 0 24px; letter-spacing: 0.02em; }

.forms { background: var(--blue-100); }
.forms-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.form-link { display: flex; align-items: center; gap: 14px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 20px; color: var(--blue-800); font-weight: 600; font-size: 0.95rem; transition: all .2s var(--ease-out); }
.form-link:hover { border-color: var(--orange); color: var(--blue-800); transform: translateX(3px); }
.form-tag { flex: 0 0 auto; font-size: 0.6rem; letter-spacing: 0.1em; font-weight: 700; background: rgba(255,105,0,0.12); color: var(--orange); padding: 4px 8px; border-radius: 5px; }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .directory-grid { grid-template-columns: 1fr; }
  .directory-list { max-height: 400px; order: 2; }
  .directory-map { min-height: 520px; order: 1; }
  #map { height: 520px; }
  .hero-grid { grid-template-columns: 1fr; gap: 48px; }
  /* stacked hero: contain the technique photo as a focused backdrop, text stays legible */
  .hero::before {
    background:
      linear-gradient(rgba(29,18,64,0.92), rgba(62,42,120,0.88)),
      url('/assets/hero-bg.jpg') center 22% / cover no-repeat;
  }
  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .about-aside { position: static; }
  .locator-grid { grid-template-columns: 1fr; gap: 48px; }
  .refer-grid { grid-template-columns: 1fr; gap: 40px; }
  .refer-visual { text-align: left; }
  .founder-grid { grid-template-columns: 1fr; gap: 40px; }
  .founder-portrait-stack { position: static; flex-direction: row; }
  .founder-portrait { max-width: 320px; }
  .cta-band-grid { grid-template-columns: 1fr; gap: 44px; }
  .cta-band-image { max-width: 560px; }
  .benefits-grid { grid-template-columns: repeat(2, 1fr); }
  .offer-grid { grid-template-columns: 1fr; gap: 40px; }
}
@media (max-width: 768px) {
  .section { padding: 72px 0; }
  .nav-links { display: none; position: absolute; top: 70px; left: 0; right: 0; flex-direction: column; background: var(--white); padding: 24px; border-bottom: 1px solid var(--line); box-shadow: var(--shadow-card); align-items: stretch; }
  /* the open mobile panel is a WHITE card under the purple header — links go dark again */
  .nav-links a, .nav-links .has-dropdown > a { color: var(--blue-800); }
  .nav-links a:hover { color: var(--orange); }
  .nav-links.open { display: flex; }
  .nav-toggle { display: block; }
  .hero-doors { grid-template-columns: 1fr; }
  /* testimonials: back to horizontal swipe with a visible scrollbar on mobile */
  .video-carousel-track { display: flex; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: auto; scrollbar-color: var(--orange) rgba(0,0,0,0.12); padding-bottom: 26px; }
  .video-card { flex: 0 0 80%; scroll-snap-align: start; }
  /* seminar cards stack on mobile */
  .seminar-card { grid-template-columns: 1fr; gap: 16px; }
  .seminar-date { border-right: 0; border-bottom: 1px solid var(--line); padding-right: 0; padding-bottom: 12px; display: flex; gap: 10px; align-items: baseline; text-align: left; }
  .seminar-year { margin-top: 0; }
  .seminar-actions { flex-direction: row; align-items: center; justify-content: space-between; }
  .forms-grid { grid-template-columns: 1fr; }
  .hero-stats { grid-template-columns: repeat(3, 1fr); gap: 18px; }
  .hero-stat-num { font-size: 1.6rem; }
  .hero-stat-label { font-size: 0.55rem; letter-spacing: 0.1em; }
  .benefits-grid { grid-template-columns: 1fr; }
  .founder-portrait-stack { flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr; gap: 40px; }
  .footer-bottom { flex-direction: column; gap: 16px; align-items: flex-start; }
  .filter-bar { grid-template-columns: 1fr; }
  .locator-stats { grid-template-columns: repeat(4, 1fr); }
  .locator-stat { padding: 16px 12px; }
  .locator-stat-num { font-size: 1.4rem; }
  .locator-stat-label { font-size: 0.55rem; letter-spacing: 0.1em; }
  .founder-credentials { gap: 16px; }
  .founder-cred-item .num { font-size: 1.3rem; }
  .founder-cred-item .label { font-size: 0.55rem; letter-spacing: 0.1em; margin-top: 4px; }
  .about-meta { gap: 24px; }
  .page-hero-stats { display: flex; flex-wrap: nowrap; gap: 16px; }
  .page-hero-stats > div { flex: 1 1 0; min-width: 0; }
  .page-hero-stat-num { font-size: 1.5rem; }
  .page-hero-stat-label { font-size: 0.55rem; letter-spacing: 0.1em; }
}
@media (max-width: 600px) {
  .hero-stats { grid-template-columns: 1fr; gap: 14px; }
}

/* ============================================================
   FINAL SYSTEM: authoritative font · dark-dominant
   palette · dropdown nav · full footer. Appended overrides win.
   ============================================================ */

/* --- 1. Authoritative heading font (matched to the top-level site) --- */
:root { --font-display: 'Source Serif 4', Georgia, 'Times New Roman', serif; }
h1, h2, h3, h4, .nav-brand, .accent,
.hero-stat-num, .locator-stat-num, .founder-cred-item .num, .page-hero-stat-num,
.seminar-day, .seminar-month, .offer-card-quote, .video-carousel-header h3,
.section-index { font-variation-settings: normal; }
h1, h2, h3 { letter-spacing: -0.015em; }

/* --- 2. Dropdown navigation --- */
.nav-links .has-dropdown { position: relative; }
.nav-links .has-dropdown > a, .nav-links .dropdown-toggle { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; background: none; border: 0; font: inherit; color: var(--blue-800); }
.nav-links .caret { font-size: 1.45em; line-height: 1; opacity: 1; margin-left: 3px; color: var(--orange); transition: transform .2s var(--ease-out); }
.nav-links .dropdown a { color: var(--blue-800); }
.nav-links .dropdown a:hover { color: var(--orange); }
.nav-links .dropdown { position: absolute; top: 100%; left: -8px; min-width: 232px; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-card); padding: 8px; margin: 0; list-style: none; opacity: 0; visibility: hidden; transform: translateY(10px); transition: all .2s var(--ease-out); z-index: 200; }
.nav-links .has-dropdown:hover .dropdown, .nav-links .has-dropdown:focus-within .dropdown { opacity: 1; visibility: visible; transform: translateY(4px); }
.nav-links .has-dropdown:hover .caret { transform: rotate(180deg); }
.nav-links .dropdown li { display: block; margin: 0; }
.nav-links .dropdown a { display: block; padding: 9px 14px; border-radius: 7px; font-size: 0.85rem; font-weight: 500; color: var(--blue-800); letter-spacing: 0; }
.nav-links .dropdown a:hover { background: var(--blue-100); color: var(--orange); }
@media (max-width: 768px) {
  .nav-links .has-dropdown { width: 100%; }
  .nav-links .dropdown { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; border-left: 2px solid var(--line); border-radius: 0; margin: 2px 0 10px 6px; padding: 0 0 0 10px; min-width: 0; background: transparent; }
  .nav-links .dropdown a { color: var(--slate); padding: 8px 0; }
  .nav-links .caret { display: none; }
  .nav-links .dropdown-toggle { padding: 0; color: var(--blue-800); }
}

/* --- 3. DARK-DOMINANT REBALANCE (authority) — flip light bands to deep navy,
   keep WHITE/light cards on top (never white-on-white) --- */

/* homepage: About / The Technique → deep */
.about { background: var(--blue-800); }
.about-body h2 { color: var(--white); }
.about-body p { color: var(--on-dark); }
.about-aside .section-index { color: var(--blue-200); }
.about-meta { border-top-color: rgba(255,255,255,0.14); }
.about-meta-item .label { color: rgba(255,255,255,0.6); }
.about-visual { border-color: rgba(255,255,255,0.12); background: var(--blue-900); }

/* homepage: Seminars CTA band → deep */
.cta-band { background: var(--blue-900); color: var(--on-dark); }
.cta-band h2 { color: var(--white); }
.cta-band p { color: var(--on-dark); }
.cta-band .section-index { color: var(--blue-200); }
.cta-band .cta-includes li { color: var(--on-dark); }
.cta-band .cta-includes .hook { color: var(--white); }

/* homepage: provider + patient testimonials → deep, WHITE cards */
.provider-testimonials { background: var(--blue-900); }
.patient-testimonials { background: var(--blue-800); }
.provider-testimonials .video-carousel-header h3,
.patient-testimonials .video-carousel-header h3 { color: var(--white); }
.provider-testimonials .video-card,
.patient-testimonials .video-card { background: var(--white); border-color: var(--line); box-shadow: var(--shadow-card); }
.provider-testimonials .video-card-meta h4,
.patient-testimonials .video-card-meta h4 { color: var(--blue-800); }
.provider-testimonials .video-card-meta p,
.patient-testimonials .video-card-meta p { color: var(--slate); }

/* seminars: Upcoming list → deep (white seminar tiles already pop) */
.upcoming { background: var(--blue-800); }
.upcoming .section-head h2 { color: var(--white); }
.upcoming .section-head p { color: var(--on-dark); }
.upcoming .section-index { color: var(--blue-200); }
.reg-note { background: var(--blue-900); border-color: rgba(255,255,255,0.14); color: var(--on-dark); }
.reg-note strong { color: var(--white); }

/* seminars: Forms band → deep (white form-links pop) */
.forms { background: var(--blue-800); }
.forms .section-head h2 { color: var(--white); }
.forms .section-head p { color: var(--on-dark); }
.forms .section-index { color: var(--blue-200); }

/* find-a-doctor: Refer band → deep */
.refer { background: var(--blue-900); }
.refer h2 { color: var(--white); }
.refer p { color: var(--on-dark); }
.refer .refer-visual { opacity: 0.4; }

/* --- 4. Footer legal row --- */
.footer-legal { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; padding: 4px 0 18px; font-size: 0.8rem; }
.footer-legal a { color: rgba(255,255,255,0.55); }
.footer-legal a:hover { color: var(--orange); }
.footer-social { display: inline-flex; gap: 12px; margin-top: 16px; }
.footer-social a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.16); color: var(--on-dark); transition: all .2s var(--ease-out); }
.footer-social a:hover { border-color: var(--orange); color: var(--orange); }

/* belt-and-suspenders: never allow horizontal scroll (clip is sticky-safe, unlike hidden) */
html { overflow-x: clip; }

/* ---------- ENTRANCE MOTION (see /js/reveal.js) ---------- */
html,body{overflow-x:hidden}
.mo{opacity:0;transition:opacity .75s ease,transform .75s ease;will-change:opacity,transform}
.mo-l{transform:translateX(-52px)}
.mo-r{transform:translateX(52px)}
.mo-in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.mo{opacity:1;transform:none;transition:none}}

/* ---------- BAND-LITE (house rule: never two purple bands in a row —
   js/reveal.js flips the second of any violet pair to this light band) ---------- */
/* --white is NO LONGER remapped here: it inverted every white CARD SURFACE
   (var(--white) backgrounds) to ink, creating black voids with invisible text
   (testimonials answer card, articles pull-quote). Text colors are handled by the
   explicit h/p/li rules below; surfaces stay truly white. */
.band-lite{background:#F1EDFA !important;background-image:none !important;color:#241A2E !important;
  --on-dark:#3A3050;
  --cfr-mist:rgba(36,26,46,.8);--cfr-fog:rgba(36,26,46,.55);
  --cfr-thin:rgba(41,26,82,.16);--cfr-divider:rgba(41,26,82,.12)}
.band-lite span,.band-lite cite{color:inherit}
/* strongs styled white-for-dark (incl. inline style attrs) go bold-ink when the band flips light */
.band-lite strong{color:#241A2E !important}
/* band-lite hardening: components styled white-for-dark flip readable when the alternator lightens their band */
.band-lite .chip-cloud .chip,.band-lite a.chip{background:#fff !important;border-color:#E4DEF0 !important;color:#574B63 !important}
.band-lite .video-card{background:#fff;border-color:#E4DEF0}
.band-lite .video-card-meta h4{color:#3E2A78 !important}
.band-lite .video-card-meta p{color:#574B63 !important}
.band-lite .video-card-tag{background:rgba(206,58,30,.12) !important;color:#B23A17 !important}
.band-lite .tools-answer,.band-lite .tools-answer span{color:#241A2E !important}
/* eyebrows + accent links on light violet surfaces read the darker coral */
.patient-testimonials .eyebrow,.cta-band .eyebrow{color:#A93216 !important}
.band-mid:not(.band-lite) .eyebrow,.provider-testimonials:not(.band-lite) .eyebrow{color:#CEC2F0 !important}
.video-library-note .video-library-card .eyebrow,.video-library-card .eyebrow{color:#A93216 !important}
.band-lite .faq-item h3{color:#3E2A78 !important}
.band-900:not(.band-lite) a.accent,.band-800:not(.band-lite) a.accent,
section:not(.band-lite)[style*="blue-9"] a.accent,section:not(.band-lite)[style*="blue-8"] a.accent{color:#EBD28C !important}
.band-lite .accent,.band-mid .accent,.provider-testimonials .accent,a.accent{color:#A93216}
.band-lite h1,.band-lite h2,.band-lite h3,.band-lite h4{color:#3E2A78 !important}
.band-lite p,.band-lite li{color:#3A3050}
.band-lite .btn-ghost{border-color:rgba(41,26,82,.32) !important;color:#241A2E !important;background:transparent !important}
.band-lite .btn-ghost:hover{background:rgba(41,26,82,.06) !important;border-color:rgba(41,26,82,.5) !important;color:#241A2E !important}
.band-lite .section-index{color:#53409B !important}
.band-lite .eyebrow{color:#A93216 !important}

/* band-lite remaps --white for TEXT: surfaces that used var(--white) invert to ink.
   Quick-answer cards now match the top-level aqua panel everywhere. */
.answer-card{background:#DFF2EA !important;border:1.5px solid rgba(143,211,193,.7) !important;border-left:4px solid #5FB49E !important}
.answer-card .answer-kicker{color:#2E5C4E !important}
.answer-card p{color:#17262F !important}
.answer-card p .accent{color:#0F3E30 !important;font-weight:700}
.answer-card p strong{color:#17262F !important}
/* eyebrows sitting on violet bands read lavender (the top-level rule), never coral */
.benefits .eyebrow,.locator .eyebrow,.quote-band .eyebrow,
.band-800:not(.band-lite) .eyebrow,.band-900:not(.band-lite) .eyebrow,.aff-value:not(.band-lite) .eyebrow,
.page-hero .eyebrow,.video-library-note .eyebrow,.video-testimonials--dark:not(.band-lite) .eyebrow,
section:not(.band-lite)[style*="blue-900"] .eyebrow,section:not(.band-lite)[style*="blue-800"] .eyebrow{color:#CEC2F0 !important}
.benefits .eyebrow::before,.locator .eyebrow::before,.quote-band .eyebrow::before,
.band-800:not(.band-lite) .eyebrow::before,.band-900:not(.band-lite) .eyebrow::before,.aff-value:not(.band-lite) .eyebrow::before,
.page-hero .eyebrow::before,.video-library-note .eyebrow::before,.video-testimonials--dark .eyebrow::before,
section:not(.band-lite)[style*="blue-900"] .eyebrow::before,section:not(.band-lite)[style*="blue-800"] .eyebrow::before{background:#CEC2F0}

/* ============================================================
   CONDITIONS READING TREATMENT (scoped to body.condition-page:
   the 10 /conditions/ pages; the hub rides cfr2.css).
   Facelift doctrine: the words are ranking and stay untouched. Design
   treatment only: type scale up (BIG, readable), spacing rhythm,
   line-length caps, and purple/lavender/cream palette conformance.
   ============================================================ */
body.condition-page { font-size: 18px; }

/* hero: intro + crumb */
.condition-page .page-hero .page-hero-content > p { font-size: 1.16rem; line-height: 1.7; max-width: 58ch; }
.condition-page .hero-crumb { font-size: .84rem; }

/* section intros */
.condition-page .section-head p { font-size: 1.12rem; line-height: 1.7; max-width: 58ch; }

/* answer-first quick-answer (scale only — panel color treatment is its own commit) */
.condition-page .answer-first p { font-size: 1.14rem; line-height: 1.68; }
.condition-page .answer-first .answer-label { font-size: .76rem; }

/* mechanism copy + note */
.condition-page .mech-grid .mech-copy p { font-size: 1.12rem; line-height: 1.78; max-width: 58ch; }
.condition-page .mech-note p { font-size: 1.04rem; line-height: 1.7; }

/* cards */
.condition-page .pop-card h3 { font-size: 1.18rem; }
.condition-page .pop-card p { font-size: 1.02rem; line-height: 1.66; }
.condition-page .rel-card h3 { font-size: 1.16rem; }
.condition-page .rel-card p { font-size: 1rem; line-height: 1.62; }

/* FAQ — the longest reading runs on these pages */
.condition-page .faq-item { padding: 32px 0; }
.condition-page .faq-item h3 { font-size: 1.32rem; margin-bottom: 14px; }
.condition-page .faq-item p { font-size: 1.1rem; line-height: 1.72; }

/* styled content lists (bells-palsy points / breathing + sinusitis steps) */
.condition-page .mech-points li, .condition-page .mech-steps li { font-size: 1.05rem; line-height: 1.62; }

/* disclaimer stays quiet but readable */
.condition-page .med-disclaimer { font-size: .95rem; }

/* final CTA body copy */
.condition-page .final-cta p { font-size: 1.14rem; }

/* palette conformance: periwinkle section-index -> lavender on the violet bands
   (band-lite's !important #53409B still wins on the runtime light bands) */
.condition-page .band-900 .section-index,
.condition-page .band-800 .section-index { color: var(--blue-200); }

/* cream canvas: the runtime-generated light bands warm from violet-white to cream */
.condition-page .band-lite { background: #F6F0E3 !important; }

/* mech-note inline link (was hardcoded periwinkle): lavender on violet, deep violet on the cream flipped band */
.condition-page .mech-note a { color: var(--blue-200); font-weight: 600; }
.condition-page .band-lite .mech-note a { color: #53409B; }

/* breadcrumb + disclaimer periwinkle residue -> palette-conform */
.condition-page .cond-breadcrumb a { color: rgba(255,255,255,.66); }
.condition-page .cond-breadcrumb a:hover { color: var(--orange); }
.condition-page .med-disclaimer, .condition-page .med-disclaimer p { color: rgba(255,255,255,.62); }
.condition-page .band-lite .med-disclaimer, .condition-page .band-lite .med-disclaimer p { color: #5A5070; }

/* ============================================================
   ANSWER-FIRST AQUA TREATMENT, sitewide.
   Condition-page info snippets get the /find-a-doctor/ recipe:
   aqua panel + aqua border + deep shadow on the violet hero,
   deep-green labels, ink text.
   ============================================================ */
.condition-page .answer-first {
  background: #DFF2EA;
  border: 1.5px solid rgba(143,211,193,.7);
  border-left: 4px solid #5FB49E;
  box-shadow: 0 14px 34px rgba(29,18,64,.35);
}
.condition-page .answer-first .answer-label { color: #2E5C4E; }
.condition-page .answer-first p { color: #17262F; }

.condition-page .mech-note {
  background: #DFF2EA;
  border: 1.5px solid rgba(143,211,193,.7);
  box-shadow: 0 10px 26px rgba(29,18,64,.22);
}
.condition-page .mech-note p { color: #35594E; }
.condition-page .mech-note strong { color: #17262F; }
.condition-page .mech-note a,
.condition-page .band-lite .mech-note a { color: #2E5C4E; text-decoration: underline; }
