/* ================================================================
   MESACARE HEALTH
   Design system inspired by newdawnok.com (which MesaCare owns)
   Palette: Navy #1F2F5F · Blue #3B82C4 · Gold #F7C147 · Cream #FAF7F1
   Type:    Fraunces (display) · Inter (eyebrow + body)
   =============================================================== */

:root {
  /* Colors — light theme */
  --navy: #1F2F5F;
  --navy-deep: #18254C;
  --navy-soft: rgba(31, 47, 95, 0.68);
  --blue: #3B82C4;
  --blue-soft: #629BCF;
  --gold: #F7C147;
  --gold-soft: rgba(247, 193, 71, 0.35);
  --cream: #FAF7F1;
  --cream-warm: #F5F0E6;
  --sand: #EDE6D6;
  --ink: #0E0E0E;
  --ink-soft: #3E3E3E;
  --ink-mute: #7A7A7A;
  --white: #FFFFFF;
  --line: rgba(31, 47, 95, 0.12);

  /* Semantic */
  --bg: var(--cream);
  --bg-alt: var(--white);
  --bg-navy: var(--navy);
  --fg: var(--ink);
  --fg-soft: var(--ink-soft);
  --fg-mute: var(--ink-mute);
  --border: var(--line);
  --accent: var(--gold);
  --cta: var(--blue);

  /* Type — ONE display serif (Fraunces) + ONE sans (Inter). Warm + clinical. */
  --font-display: "Fraunces", "Georgia", serif;
  --font-eyebrow: "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, sans-serif;
  --type-h1: clamp(2rem, 3.9vw, 3.5rem);
  --type-h2: clamp(1.75rem, 3vw, 2.75rem);
  --type-body: 1.0625rem;
  --type-body-leading: 1.7;
  --type-label: .75rem;
  --type-label-tracking: .2em;
  --type-button: .82rem;
  --type-nav: .78rem;
  --rhythm-label: 1rem;
  --rhythm-copy: 1.5rem;
  --rhythm-paragraph: 1rem;
  --rhythm-cta: 2rem;
  --rhythm-heading: clamp(2rem, 4vw, 3rem);

  /* Spacing */
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --section-y: clamp(4rem, 9vw, 8rem);
  --section-y-tight: clamp(2.5rem, 5vw, 4.5rem);

  /* Radius */
  --r-sm: 8px;
  --r: 16px;
  --r-lg: 28px;
  --r-xl: 44px;

  /* Shadow */
  --shadow-sm: 0 2px 6px rgba(24, 37, 76, 0.06);
  --shadow: 0 12px 32px rgba(24, 37, 76, 0.08);
  --shadow-lg: 0 24px 60px rgba(24, 37, 76, 0.15);

  /* Motion */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in: cubic-bezier(0.4, 0, 1, 1);
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
  --tt: 200ms var(--ease-out);
  --tt-fast: 140ms var(--ease-out);

  /* Layout */
  --max-w: 1240px;
  --max-w-narrow: 880px;
}

[data-theme="dark"] {
  --bg: #0F1731;
  --bg-alt: #17224A;
  --bg-navy: #0A1128;
  --fg: #F2F2F2;
  --fg-soft: #C9CDD8;
  --fg-mute: #8A93A6;
  --border: rgba(255,255,255,0.08);
  --cream: #17224A;
  --cream-warm: #1B2A5A;
  --sand: #22326A;
  --white: #17224A;
}

body {
  font-family: var(--font-body);
  font-weight: 400;
  color: var(--fg);
  background: var(--bg);
  font-size: 16.5px;
  overflow-x: clip;
}

.container {
  width: 100%;
  max-width: var(--max-w);
  margin-inline: auto;
  padding-inline: var(--gutter);
}
.container-narrow { max-width: var(--max-w-narrow); margin-inline: auto; padding-inline: var(--gutter); }

/* ================================================================
   TYPOGRAPHY
   =============================================================== */
.display,
h1.display, h2.display, h3.display {
  font-family: var(--font-display);
  font-weight: 400 !important;
  font-optical-sizing: auto;
  font-variation-settings: "opsz" 48, "SOFT" 100;
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--navy);
}
[data-theme="dark"] .display,
[data-theme="dark"] h1.display,
[data-theme="dark"] h2.display,
[data-theme="dark"] h3.display { color: var(--white); }

.display-xl { font-size: clamp(2.75rem, 6.4vw, 5.5rem); letter-spacing: -0.02em; }
.display-lg { font-size: clamp(2rem, 4vw, 3.25rem); }
.display-md { font-size: clamp(1.75rem, 3vw, 2.5rem); }
.display-sm { font-size: clamp(1.4rem, 2.1vw, 1.85rem); }

/* Split-media heading — even tighter since column is narrow */
.split-body h2.display-lg { font-size: clamp(1.9rem, 3.2vw, 2.75rem); line-height: 1.08; }

.eyebrow {
  font-family: var(--font-eyebrow);
  font-weight: 500;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.35em;
  color: var(--ink);
}
.eyebrow-blue { color: var(--blue); }
.eyebrow-gold { color: #8a6a1a; }
[data-theme="dark"] .eyebrow { color: var(--fg-soft); }

.subtitle {
  font-family: var(--font-eyebrow);
  font-weight: 400;
  font-size: clamp(1.05rem, 1.6vw, 1.4rem);
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
}

.lede { font-size: 1.15rem; color: var(--fg-soft); max-width: 62ch; }
.body-lg { font-size: 1.075rem; line-height: 1.7; color: var(--fg-soft); }
.body { color: var(--fg-soft); line-height: 1.7; }
.small { font-size: 0.875rem; color: var(--fg-mute); }

/* ================================================================
   BUTTONS
   =============================================================== */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 48px;
  min-height: 48px;
  gap: 0.6rem;
  font-family: var(--font-eyebrow);
  font-weight: 500;
  font-size: var(--type-button);
  text-transform: uppercase;
  letter-spacing: 0.18em;
  padding: 0.375rem 1.75rem;
  border-radius: 999px;
  border: 1px solid transparent;
  transition: background var(--tt), color var(--tt), border-color var(--tt), transform var(--tt), box-shadow var(--tt);
  white-space: normal;
  text-align: center;
  line-height: 1.25;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-primary { background: var(--navy); color: var(--white); border-color: var(--navy); }
.btn-primary:hover { background: var(--navy-deep, #18254C); border-color: var(--navy-deep, #18254C); }
.btn-launch-single { background: var(--blue); color: var(--white); border-color: var(--blue); }
.btn-launch-single:hover { background: var(--navy); border-color: var(--navy); }

.btn-cta { background: var(--gold); color: var(--navy); }
.btn-cta:hover { background: #E5AD2E; }

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

.btn-outline { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn-outline:hover { background: var(--navy); color: var(--white); }

/* Ghost is context-aware: default = dark text on light bg. */
.btn-ghost { background: transparent; color: var(--navy); border-color: var(--navy); }
.btn-ghost:hover { background: var(--navy); color: var(--white); border-color: var(--navy); }

/* On dark parents (navy sections, footers, hero images), ghost inverts. */
.section-navy .btn-ghost,
.schedule-strip .btn-ghost,
.hero .btn-ghost,
.btn-ghost-light { background: transparent; color: var(--white); border-color: rgba(255,255,255,0.55); }
.section-navy .btn-ghost:hover,
.schedule-strip .btn-ghost:hover,
.hero .btn-ghost:hover,
.btn-ghost-light:hover { background: var(--white); color: var(--navy); border-color: var(--white); }

.btn-sm { height: 44px; min-height: 44px; padding: 0.5rem 1.35rem; font-size: 0.75rem; }

/* Arrow-only icon button */
.arrow-btn {
  width: 42px; height: 42px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 999px;
  border: 1px solid currentColor;
  transition: background var(--tt), color var(--tt), transform var(--tt);
}
.arrow-btn:hover { background: currentColor; }
.arrow-btn:hover svg { stroke: var(--navy); }
.arrow-btn svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.5; }

/* ================================================================
   HEADER / NAVIGATION
   =============================================================== */
/* Solid white bar, always — NewDawn style. No transparent-over-hero. */
.site-header {
  position: sticky; top: 0; left: 0; right: 0; z-index: 90;
  background: var(--white);
  padding: 0.9rem 0;
  box-shadow: 0 1px 0 var(--border);
  transition: padding var(--tt), box-shadow var(--tt);
}
.site-header.scrolled {
  padding: 0.6rem 0;
  box-shadow: 0 6px 20px -12px rgba(24,37,76,0.18);
}
[data-theme="dark"] .site-header { background: var(--bg-alt); }

/* Header default: transparent, white text (over hero) */
.site-header .nav-inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 2rem;
  min-height: 63px;
}
.brand {
  display: inline-flex; align-items: center; gap: 0.7rem;
  color: var(--navy);
  transition: color var(--tt);
  flex-shrink: 0;
}
.brand-mark { width: 44px; height: 44px; flex-shrink: 0; }

/* Real MesaCare lockup — flat on the white header, no pill, no shadow */
.brand-lockup { padding: 0; flex-shrink: 0; }
.brand-lockup picture { display: block; line-height: 0; }
.brand-img {
  display: block;
  height: 63px;
  width: auto;
  max-width: none;
  flex-shrink: 0;
  background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  transition: height var(--tt);
}
.site-header.scrolled .brand-img { height: 55px; }

/* Footer keeps a soft white plate on the dark navy footer for contrast */
.footer-brand .brand-lockup-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 22rem;
  min-height: 104px;
  padding: 24px 20px;
  margin-inline: auto;
  background: #fff;
  border-radius: 10px;
}
.brand-lockup-footer .brand-img {
  width: 80%;
  max-width: 100%;
  height: auto;
  padding: 0;
  background: transparent;
  border-radius: 0;
  object-fit: contain;
  object-position: center;
}
@media (max-width: 640px) {
  .brand-img { height: 50px; }
  .site-header.scrolled .brand-img { height: 44px; }
}
.brand-name {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: -0.01em;
  line-height: 1;
}
.brand-tag {
  display: block;
  font-family: var(--font-eyebrow);
  font-size: 0.65rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  margin-top: 3px;
  opacity: 0.75;
}

.nav-links {
  display: flex; align-items: center; gap: 1.6rem;
}
.nav-links > a, .nav-links .nav-item > a { white-space: nowrap; }
@media (max-width: 1180px) { .nav-links { gap: 1.15rem; } .nav-links a { font-size: 0.72rem; } }

/* Mega dropdown — hidden by default, opens on hover / focus */
.nav-item.nav-has-mega {
  position: relative;
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
/* Invisible hover-bridge from trigger to panel — prevents mid-air hover break */
.nav-item.nav-has-mega::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  transform: translateX(-50%);
  width: 100%;
  min-width: 180px;
  height: 22px;
  background: transparent;
  pointer-events: none;
  z-index: 199;
}
.nav-item.nav-has-mega:hover::after,
.nav-item.nav-has-mega:focus-within::after {
  pointer-events: auto;
}
.nav-item.nav-has-mega > a {
  display: inline-flex;
  align-items: center;
  line-height: 1;
}
.nav-item.nav-has-mega > a .caret {
  width: 10px;
  height: 7px;
  margin-left: 0.4rem;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.75;
}
.nav-item.nav-has-mega > .mega {
  position: absolute;
  top: calc(100% + 14px);
  left: 50%;
  transform: translateX(-50%) translateY(-8px);
  min-width: 680px;
  background: var(--white);
  border: 1px solid rgba(31,47,95,0.08);
  border-radius: 18px;
  box-shadow: 0 30px 60px -20px rgba(24,37,76,0.28);
  padding: 1.5rem 1.75rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* Longer close delay so cursor has time to cross into the panel */
  transition: opacity 200ms ease 120ms, transform 200ms ease 120ms, visibility 0s linear 320ms;
  z-index: 200;
}
.nav-item.nav-has-mega:hover > .mega,
.nav-item.nav-has-mega:focus-within > .mega,
.nav-item.nav-has-mega.is-open > .mega {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
  transition: opacity 180ms ease, transform 180ms ease, visibility 0s;
}
.mega-inner { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem 2rem; }
.mega-col { display: flex; flex-direction: column; gap: 0.4rem; }
.mega-title {
  font-family: var(--font-eyebrow);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 0.35rem;
}
.mega-col a {
  font-family: var(--font-body) !important;
  font-size: 0.85rem !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--navy) !important;
  padding: 0.25rem 0;
  border-bottom: none !important;
}
.mega-col a:hover { color: var(--blue) !important; }
[data-theme="dark"] .nav-item.nav-has-mega > .mega { background: var(--bg-alt); border-color: rgba(255,255,255,0.08); }
[data-theme="dark"] .mega-col a { color: var(--white) !important; }
@media (max-width: 1320px) { .nav-item.nav-has-mega > .mega { display: none; } }
.nav-links a {
  font-family: var(--font-eyebrow);
  font-size: var(--type-nav);
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--navy);
  transition: color var(--tt), opacity var(--tt);
  padding: 0.35rem 0;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  border-bottom: 1px solid transparent;
}
.nav-links a:hover { border-bottom-color: currentColor; }
.nav-links a.active { border-bottom-color: var(--gold); }

.nav-cta { flex-shrink: 0; }
.nav-cta .btn { background: var(--blue); color: var(--white); border-color: var(--blue); }
.nav-cta .btn:hover { background: var(--white); color: var(--navy); border-color: var(--white); }
.site-header.scrolled .nav-cta .btn { background: var(--blue); color: var(--white); border-color: var(--blue); }
.site-header.scrolled .nav-cta .btn:hover { background: var(--navy); border-color: var(--navy); }

/* Right-side utility cluster: keep nav link, lang pill, and Book button on one axis */
.nav-utility { line-height: 1; }
.nav-utility > * { display: inline-flex; align-items: center; height: 36px; }
.nav-utility .btn.btn-sm { height: 36px; padding-top: 0; padding-bottom: 0; }

/* Language toggle pill */
.lang-toggle {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  height: 36px;
  padding: 0 0.75rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: transparent;
  color: var(--navy);
  font-family: var(--font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  white-space: nowrap;
  cursor: pointer;
  transition: background var(--tt), border-color var(--tt);
}
.lang-toggle:hover { background: rgba(31,47,95,0.06); border-color: var(--navy); }
@media (max-width: 800px) { .lang-toggle { min-height: 44px; padding-block: 0.4rem; } }
.lang-toggle .lang-divider {
  color: var(--muted);
  font-weight: 400;
}
.lang-toggle [data-lang-en],
.lang-toggle [data-lang-es] {
  opacity: 0.4;
  transition: opacity var(--tt), color var(--tt);
}
html[lang="en"] .lang-toggle [data-lang-en],
html[lang="es"] .lang-toggle [data-lang-es] {
  opacity: 1;
  color: var(--navy);
}
@media (max-width: 900px) {
  /* Keep the desktop lang toggle visible in the header on mobile, sitting
     just left of the hamburger. Hide only the Request Care CTA on mobile
     (it lives in the drawer). */
  .lang-toggle { font-size: 0.7rem; padding: 0 0.55rem; height: 32px; letter-spacing: 0; }
  .nav-utility > *, .nav-utility .btn.btn-sm { height: 32px; }
  .nav-utility { gap: 0.5rem !important; }
  .nav-utility .nav-cta { display: none; }
}

/* Drawer lang toggle removed — the header pill is now shown on mobile too. */
.lang-toggle-mobile { display: none !important; }
@media (max-width: 900px) {
  .mobile-nav .lang-toggle-mobile { display: none !important; }
}

/* Mobile nav */
.mobile-nav { display: none; }
.nav-toggle {
  display: none;
  width: 44px; height: 44px;
  color: var(--navy);
  background: transparent;
  border: 0;
  padding: 0;
  cursor: pointer;
  align-items: center; justify-content: center;
}
.site-header.scrolled .nav-toggle { color: var(--navy); }
.nav-toggle svg { width: 26px; height: 26px; stroke: currentColor; stroke-width: 2; }

@media (max-width: 1320px) {
  .nav-links, .nav-cta > .btn { display: none; }
  .nav-toggle { display: inline-flex; }

  /* Elegant dropdown panel: slides down from under the header, sits over
     the hero image, semi-transparent navy so mesa is faintly visible behind.
     Not a full-screen slab. */
  .mobile-nav {
    position: fixed;
    top: var(--mobile-nav-top, 74px);
    right: 0;
    left: 0;
    width: 100%;
    max-width: 100%;
    background: rgba(24, 37, 76, 0.88);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    backdrop-filter: blur(14px) saturate(140%);
    z-index: 89;
    display: flex; flex-direction: column;
    padding: 1.25rem 1.5rem 2rem;
    border-top: 1px solid rgba(255,255,255,0.08);
    box-shadow: 0 24px 40px -20px rgba(0,0,0,0.35);
    /* Start hidden above the viewport (translated up), fade + slide in on open */
    transform: translateY(-12px);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: transform 320ms var(--ease-out), opacity 240ms var(--ease-out), visibility 0s linear 320ms;
    overflow-y: auto;
    max-height: calc(100vh - var(--mobile-nav-top, 74px));
  }
  .mobile-nav.open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition: transform 320ms var(--ease-out), opacity 240ms var(--ease-out), visibility 0s linear 0s;
  }
  .mobile-nav a {
    color: var(--white);
    font-family: var(--font-body);
    font-weight: 500;
    font-size: 1.15rem;
    letter-spacing: 0.01em;
    padding: 0.95rem 0.25rem;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    text-decoration: none;
    transition: color var(--tt);
  }
  .mobile-nav a:hover { color: var(--gold); }
  .mobile-nav a:last-of-type { border-bottom: none; }
  .mobile-nav .btn {
    margin-top: 1.25rem;
    align-self: stretch;
    text-align: center;
    justify-content: center;
  }
  /* Close X lives inside the header (the same hamburger toggles) - hide the
     in-drawer close button since the top X in the header handles it. */
  .mobile-nav-close { display: none !important; }

  /* Subtle backdrop over the rest of the page below the panel so the eye
     stays on the menu. */
  .mobile-nav-backdrop {
    position: fixed;
    top: var(--mobile-nav-top, 74px);
    left: 0; right: 0; bottom: 0;
    background: rgba(24, 37, 76, 0.35);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
    transition: opacity 240ms var(--ease-out), visibility 0s linear 240ms;
    z-index: 88;
  }
  .mobile-nav-backdrop.open {
    opacity: 1;
    pointer-events: auto;
    visibility: visible;
    transition: opacity 240ms var(--ease-out), visibility 0s linear 0s;
  }

  /* Note: no body scroll-lock. Locking overflow on <body> breaks the sticky
     header's containing block on iOS Safari and drops the header off-screen. */
}

/* ================================================================
   HERO
   =============================================================== */
.launch-announcement {
  position: absolute;
  top: 3.25rem;
  left: 0;
  right: 0;
  z-index: 2;
  color: var(--white);
  background: transparent;
  padding: 0 1.25rem;
  text-align: center;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}
.launch-announcement p {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.15em 0.35em;
  margin: 0;
  font-family: var(--font-body);
  font-size: clamp(1.15rem, 2.2vw, 1.65rem);
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 0.025em;
}
.launch-announcement strong { font-weight: 700; white-space: nowrap; }
@media (max-width: 480px) {
  .launch-announcement { top: 2.75rem; padding: 0 0.75rem; }
}
.hero {
  position: relative;
  min-height: 88vh;
  padding-top: 8rem;
  padding-bottom: 8rem;
  overflow: hidden;
  isolation: isolate;
  display: flex;
  align-items: center;
  color: var(--white);
}
.hero-bg {
  position: absolute; inset: 0;
  background: var(--navy);
  z-index: -2;
}
.hero-bg::after {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(24, 37, 76, 0.25) 0%, rgba(24, 37, 76, 0.15) 45%, rgba(24, 37, 76, 0.65) 100%);
  z-index: 1;
}
.hero-bg img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 62%;
  /* Hide broken-image alt text bleed during load; the navy .hero-bg fallback
     stays visible until the photo decodes.  Once loaded, the img is fully
     opaque again. */
  color: transparent;
  font-size: 0;
}
.hero .container {
  position: relative;
  z-index: 2;
  text-align: center;
}
.hero-eyebrow {
  color: var(--white);
  opacity: 1;
  margin-bottom: 1.75rem;
  display: inline-flex; align-items: center; justify-content: center; gap: 1rem;
  max-width: 100%;
  font-size: clamp(0.97rem, 1.1vw, 1.16rem);
  letter-spacing: 0.2em;
  font-weight: 500;
}
.hero-eyebrow::before, .hero-eyebrow::after {
  content: "";
  display: inline-block;
  width: 44px; height: 2px;
  background: var(--gold);
  flex-shrink: 0;
}
.hero-eyebrow-text {
  display: inline-block;
  text-align: center;
  white-space: normal;
  overflow-wrap: break-word;
  max-width: 100%;
}
.hero-eyebrow-seg { display: inline; }
.hero-eyebrow-sep { display: inline; margin: 0 0.55em; opacity: 0.85; }
@media (max-width: 900px) {
  /* On mobile, stack the eyebrow segments as three centered lines and
     replace the flanking gold rules with a single centered rule below.
     Fixes the asymmetric look where flex rules sat next to line 2 of a
     4-line wrapping text block. */
  .hero-eyebrow {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.35rem;
    letter-spacing: 0.16em;
  }
  .hero-eyebrow::before { display: none; }
  .hero-eyebrow::after {
    width: 56px;
    margin-top: 0.5rem;
  }
  .hero-eyebrow-seg { display: block; line-height: 1.25; }
  .hero-eyebrow-sep { display: none; }
}

.hero h1.display {
  color: var(--white);
  max-width: 18ch;
  margin-inline: auto;
  margin-bottom: 1.75rem;
}
.hero-tag {
  font-family: var(--font-eyebrow);
  font-size: clamp(1rem, 1.5vw, 1.35rem);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--white);
  opacity: 0.95;
  margin-bottom: 3rem;
  font-weight: 500;
}

.hero-tag em {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 400;
  text-transform: none;
  letter-spacing: -0.005em;
  color: var(--gold);
  font-size: 1.15em;
}
.hero .btn-group { display: inline-flex; gap: 0.85rem; flex-wrap: wrap; justify-content: center; }

/* CTA tile bar — floating pill cards sitting inside a cream band that
   bridges the hero photo and the About section, so there is a clear pause
   above and below the tiles instead of tiles butting into the photo. */
.cta-tiles {
  position: relative;
  z-index: 3;
  background: var(--cream);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
  max-width: 100%;
  margin: 0;
  /* Vertical padding = breathing room above/below the tiles inside the cream
     band. Horizontal padding matches the site container gutter so tiles align
     with the rest of the page. */
  padding-block: clamp(1.75rem, 3vw, 2.75rem);
  padding-inline: var(--gutter);
}
.cta-tile {
  background: var(--blue);
  color: var(--white);
  padding: 2rem 1.5rem;
  display: flex; flex-direction: column; align-items: center;
  gap: 1rem;
  text-align: center;
  min-height: 148px;
  justify-content: center;
  border-radius: 14px;
  box-shadow: 0 14px 32px -18px rgba(24, 37, 76, 0.35);
  transition: background var(--tt), transform var(--tt), box-shadow var(--tt);
}
.cta-tile:hover {
  background: var(--navy);
  transform: translateY(-4px);
  box-shadow: 0 20px 40px -18px rgba(24, 37, 76, 0.5);
}
/* The tile bar's own bottom padding now supplies the gap to the next
   section, so remove the previous padding-top override that stacked extra
   space and made the layout feel bottom-heavy. */
.cta-tiles + section.section { padding-top: 0; }

.cta-tile:nth-child(2) { background: #4A93D2; }
.cta-tile:nth-child(3) { background: #559FDD; }
.cta-tile:nth-child(4) { background: #62AAE8; }
.cta-tile:hover { background: var(--navy); }
.cta-tile-label {
  font-family: var(--font-eyebrow);
  font-size: 0.82rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  font-weight: 500;
}
.cta-tile .arrow-btn { color: var(--white); }
.cta-tile:hover .arrow-btn { background: var(--white); color: var(--navy); border-color: var(--white); }

@media (max-width: 768px) {
  .cta-tiles {
    grid-template-columns: repeat(2, 1fr);
    margin-top: 0;
    gap: 10px;
    padding-block: 1.5rem;
  }
  /* Mobile hero fills the visible viewport (svh accounts for browser chrome)
     so the CTA tile row below doesn't peek in on first paint. Fallback to vh
     for older engines. Desktop min-height (88vh) is untouched. */
  .hero { padding-bottom: 6rem; min-height: 100vh; min-height: 100svh; }
  .cta-tile { padding: 1.35rem 1rem; min-height: 120px; }
}
@media (max-width: 420px) {
  .cta-tiles { grid-template-columns: 1fr; margin-top: 0; gap: 10px; }
  .cta-tile { min-height: 96px; }
}

/* ================================================================
   DOTTED SEPARATOR (signature NewDawn element)
   =============================================================== */
/* Editorial section divider — hairline rules instead of dots.
   Enterprise/expensive treatment: two thin rules with a wider gap. */
.dot-strip {
  height: 40px;
  position: relative;
  background: transparent;
  opacity: 1;
}
.dot-strip::before, .dot-strip::after {
  content: "";
  position: absolute; left: 50%; transform: translateX(-50%);
  width: min(72%, 720px); height: 1px;
  background: rgba(31, 47, 95, 0.14);
}
.dot-strip::before { top: 45%; }
.dot-strip::after  { top: 55%; }
.dot-strip-dense::before, .dot-strip-dense::after {
  background: rgba(31, 47, 95, 0.10);
  width: min(56%, 560px);
}

/* ================================================================
   SECTION: Split image + text (about doorstep)
   =============================================================== */
.section { padding-block: var(--section-y); }
.section-tight { padding-block: var(--section-y-tight); }
.section-navy {
  background: var(--navy);
  color: var(--white);
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

/* Enterprise navy backdrop — the signature MesaCare treatment:
   Layer 1 (::before, z:-2): deep navy fill (fallback / prevents any bleed)
   Layer 2 (::after,  z:-1): fixed nurse photo under a heavy navy wash
   The photo stays fixed while content scrolls — editorial and expensive.
   Applied to EVERY .section-navy sitewide (not just the CTA). */
.section-navy::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: var(--navy-deep, #18254C);
}
.section-navy::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(180deg, rgba(24,37,76,0.92) 0%, rgba(24,37,76,0.88) 40%, rgba(24,37,76,0.94) 100%),
    url("assets/img/cta/nurse-home.png");
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  background-attachment: fixed;
}
@media (max-width: 900px) {
  .section-navy::after { background-attachment: scroll; }
}
@media (prefers-reduced-motion: reduce) {
  .section-navy::after { background-attachment: scroll; }
}

/* Content column sits above the wash */
.section-navy > .container,
.section-navy > * { position: relative; z-index: 1; }
.section-cream { background: var(--cream); }
.section-warm { background: var(--cream-warm); }

/* Collapse double padding when two same-background sections stack — avoids dead gap.
   .schedule-strip is treated as part of the .section-navy family for this purpose
   because it uses the same navy + fixed-nurse-wash treatment. */
.section-warm + .section-warm,
.section-cream + .section-cream,
.section-navy + .section-navy,
.section-navy + .schedule-strip,
.schedule-strip + .section-navy,
.schedule-strip + .schedule-strip { padding-top: 0; }

/* When schedule-strip follows a .section-navy, keep its own navy background + nurse-wash
   layers — the preceding section's fixed wash is clipped to its own box, so the strip
   MUST paint its own or it becomes a cream void with unreadable white text. Only the
   padding collapses (rule above); the visual treatment stays identical. */

.split {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}
.split-reverse { grid-template-columns: 1fr 1.05fr; }
.split-reverse .split-media { order: 2; }
@media (max-width: 900px) {
  .split, .split-reverse { grid-template-columns: 1fr; }
  .split-reverse .split-media { order: 0; }
}

.split {
  align-items: stretch;
}
.split-body {
  align-self: center;
}
.split-media {
  position: relative;
  border-radius: var(--r-xl);
  overflow: hidden;
  border: 1px solid var(--gold-soft);
  box-shadow: var(--shadow);
  isolation: isolate;
  height: 100%;
  align-self: stretch;
  max-height: 582px;
}
.split-media picture {
  display: block;
  width: 100%;
  height: 100%;
}
.split-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Device photography — one shared presentation for every care-stack modality so the
   Technology Overview reads as a single coordinated shoot: identical 4:3 source crops,
   identical neutral backdrop, identical scale and padding, design-system radius. */
.media-device {
  background: #F5F2EB;
  aspect-ratio: 4 / 3;
  height: auto;
  align-self: center;
  max-height: 582px;
}
.media-device img {
  object-fit: cover;
  object-position: center;
}
@media (max-width: 900px) {
  .split-media { aspect-ratio: 4/3; max-height: none; height: auto; }
  .split-media img { min-height: 0; }
  .split-body { align-self: auto; }
}

.split-body .eyebrow { margin-bottom: 1rem; display: inline-block; }
.split-body h2 { margin-bottom: 1.5rem; }
.split-body .arrow-link {
  display: inline-flex; align-items: center; gap: 0.75rem;
  margin-bottom: 2rem;
  font-family: var(--font-eyebrow);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.24em;
  color: var(--navy);
  transition: color var(--tt), gap var(--tt);
}
[data-theme="dark"] .split-body .arrow-link { color: var(--white); }
.split-body .arrow-link:hover { gap: 1.1rem; color: var(--blue); }
.split-body .arrow-link::after {
  content: "→";
  display: inline-block;
  transform: rotate(90deg);
  font-size: 1.2em;
}
@media (max-width: 800px) { .split-body .arrow-link { padding: 0.6rem 0; min-height: 44px; } }
.split-body p + p { margin-top: 1rem; }
.split-body .btn { margin-top: 2rem; }

/* ================================================================
   TITLE BLOCK — section header
   =============================================================== */
.title-block { text-align: center; max-width: 780px; margin: 0 auto var(--section-y-tight); }
.title-block .eyebrow { display: inline-block; margin-bottom: 1rem; color: var(--blue); }
.title-block h2 { margin-bottom: 1.25rem; }
.title-block .body-lg { margin-inline: auto; }

/* ================================================================
   SERVICES / CONDITIONS GRID
   =============================================================== */
/* ================================================================
   ENTERPRISE TILE-CARD SYSTEM — Streamline Ultimate icons
   Symmetric (H+V), centered, elegant, Fraunces/Inter typography.
   =============================================================== */
.tile-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  background: transparent;
  border: none;
  border-radius: 0;
  overflow: visible;
  align-items: stretch;
}
@media (max-width: 1100px) { .tile-grid { grid-template-columns: repeat(3, 1fr); gap: 0.875rem; } }
@media (max-width: 780px)  { .tile-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } }
@media (max-width: 480px)  { .tile-grid { grid-template-columns: 1fr; gap: 0.75rem; } }

.tile {
  background: var(--white);
  border: 1px solid rgba(31, 47, 95, 0.14);
  border-radius: 20px;
  padding: 2.25rem 1.25rem 2rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 1.25rem;
  text-align: center;
  transition: background var(--tt), border-color var(--tt), transform var(--tt), box-shadow var(--tt);
  min-height: 260px;
  box-sizing: border-box;
}
/* Anchor-tile: identical look to div-tile, but clickable and accessible */
a.tile,
a.tile:link,
a.tile:visited {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}
a.tile:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
  border-color: var(--navy);
}
[data-theme="dark"] .tile { background: var(--bg-alt); border-color: rgba(255,255,255,0.14); }
.tile:hover {
  background: var(--white);
  border-color: var(--navy);
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(31,47,95,0.08);
}
[data-theme="dark"] .tile:hover { background: var(--bg-alt); }

/* Icon well — fixed square, centered, symmetric */
.tile-icon {
  width: 72px;
  height: 72px;
  flex: 0 0 72px;
  color: var(--navy);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color var(--tt);
}
.tile-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}
/* Streamline icons ship with fill=currentColor after our normalize.
   Whatever they carry (fills OR strokes), inherit brand color cleanly. */
.tile-icon svg [fill]:not([fill="none"]) { fill: currentColor; }
.tile-icon svg [stroke]:not([stroke="none"]) { stroke: currentColor; }
.tile:hover .tile-icon { color: var(--navy); }

/* Navy grid variant */
.tile-grid-navy .tile {
  background: var(--navy);
  border-color: rgba(247, 193, 71, 0.28);
  color: var(--white);
}
.tile-grid-navy .tile:hover {
  background: var(--navy);
  border-color: var(--gold);
}
.tile-grid-navy .tile-icon { color: var(--gold); }
.tile-grid-navy .tile:hover .tile-icon { color: var(--gold); }

/* Typography — Fraunces label, Inter hint, sitewide consistency */
.tile-label {
  font-family: var(--font-display, "Fraunces"), Georgia, serif;
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--navy);
  line-height: 1.25;
  margin: 0;
  min-height: 2.75rem;      /* two lines reserved so titles align across the row */
  display: flex;
  align-items: center;
  justify-content: center;
}
[data-theme="dark"] .tile-label { color: var(--white); }
.tile-grid-navy .tile-label { color: var(--white); }

.tile-hint {
  font-family: var(--font-body, "Inter"), -apple-system, sans-serif;
  font-size: 0.9rem;
  font-weight: 400;
  color: rgba(31, 47, 95, 0.72);
  line-height: 1.5;
  margin: 0;
  max-width: 22ch;
}
[data-theme="dark"] .tile-hint { color: rgba(255,255,255,0.7); }
.tile-grid-navy .tile-hint { color: rgba(255, 255, 255, 0.72) !important; }

/* ================================================================
   ICON-TILE REVEAL — icon stays still, label drifts up slowly
   Longer, softer easing to match NewDawn's slow-fade rhythm.
   =============================================================== */
.tile .tile-icon {
  opacity: 0;
  transition: opacity 1400ms cubic-bezier(.25,.1,.25,1);
}
.tile.in .tile-icon { opacity: 1; }

.tile .tile-label,
.tile .tile-hint {
  transform: translateY(18px);
  opacity: 0;
  transition: transform 1400ms cubic-bezier(.25,.1,.25,1), opacity 1400ms cubic-bezier(.25,.1,.25,1);
}
.tile.in .tile-label { transform: translateY(0); opacity: 1; transition-delay: 280ms; }
.tile.in .tile-hint  { transform: translateY(0); opacity: 1; transition-delay: 420ms; }
@media (prefers-reduced-motion: reduce) {
  .tile .tile-icon, .tile .tile-label, .tile .tile-hint { transform: none; opacity: 1; transition: none; }
}

/* Navy-section text drift: slow, gentle rise; backdrop stays fixed */
.section-navy .reveal-up {
  transform: translateY(28px);
  opacity: 0;
  transition: transform 1600ms cubic-bezier(.25,.1,.25,1), opacity 1600ms cubic-bezier(.25,.1,.25,1);
}
.section-navy .reveal-up.in { transform: translateY(0); opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .section-navy .reveal-up { transform: none; opacity: 1; transition: none; }
}

/* Site-wide reveal timing — softer, longer for the whole page rhythm */
.reveal, .reveal-left, .reveal-right, .reveal-scale {
  transition-duration: 1400ms !important;
  transition-timing-function: cubic-bezier(.25,.1,.25,1) !important;
}

/* Dotted-band frame (side rails behind icon grids) — signature NewDawn framing */
.dotted-frame {
  position: relative;
  padding-inline: clamp(1rem, 4vw, 3rem);
}
.dotted-frame::before,
.dotted-frame::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  width: clamp(1rem, 3.2vw, 2.2rem);
  background-image: radial-gradient(circle, rgba(31,47,95,0.22) 1.3px, transparent 1.5px);
  background-size: 14px 14px;
  background-position: center;
  pointer-events: none;
}
.dotted-frame::before { left: 0; }
.dotted-frame::after  { right: 0; }
@media (max-width: 780px) {
  .dotted-frame::before, .dotted-frame::after { display: none; }
}

/* Card-grid responsive fallbacks */
/* card-grid mobile stacking moved BELOW base rule at :1059 to avoid override */

/* 3-up variant — keeps cards edge-to-edge symmetrical when there are exactly 3 */
.card-grid.card-grid-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .card-grid.card-grid-3 { grid-template-columns: 1fr; } }

/* Navy tile variant */
.tile-grid-navy { background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.1); }
.tile-grid-navy .tile { background: var(--navy); color: var(--white); }
.tile-grid-navy .tile:hover { background: var(--navy-deep); }
.tile-grid-navy .tile-icon { color: var(--gold); }
.tile-grid-navy .tile-label { color: var(--white); }
.tile-grid-navy .tile-hint { color: rgba(255,255,255,0.7); }

/* ================================================================
   FEATURE CARD (for tech pillars, team, etc)
   =============================================================== */
.card-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}
@media (max-width: 1100px) { .card-grid { grid-template-columns: repeat(2, 1fr); gap: 1.25rem; } }
@media (max-width: 720px)  { .card-grid { grid-template-columns: 1fr; gap: 1rem; } }
/* 3-column variant collapses at same breakpoints */
@media (max-width: 900px)  { .card-grid.card-grid-3 { grid-template-columns: 1fr; } }
.card {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 2rem;
  transition: border-color var(--tt), transform var(--tt), box-shadow var(--tt);
}
.card:hover { border-color: var(--gold); box-shadow: var(--shadow); transform: translateY(-3px); }
.card-eyebrow { color: var(--blue); margin-bottom: 0.75rem; display: inline-block; }
.card h3 {
  font-family: var(--font-body);
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--navy);
  margin-bottom: 0.6rem;
  line-height: 1.3;
}
[data-theme="dark"] .card h3 { color: var(--white); }
.card p { color: var(--fg-soft); font-size: 0.96rem; }
.card-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--sand);
  color: var(--navy);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: 1.25rem;
}
/* Inline stroke-based placeholder SVGs (legacy) */
.card-icon > svg:not([id*="Streamline"]) { width: 26px; height: 26px; stroke: currentColor; fill: none; stroke-width: 1.6; }
/* Injected Streamline icons (via data-icon) render as filled shapes */
.card-icon[data-icon] { width: 44px; height: 44px; color: var(--navy); display: inline-flex; align-items: center; justify-content: center; }
.card-icon[data-icon] > svg { width: 100%; height: 100%; display: block; fill: currentColor; stroke: none; }
.card-icon[data-icon] > svg [fill]:not([fill="none"]) { fill: currentColor; }
.card-icon[data-icon] > svg [stroke]:not([stroke="none"]) { stroke: currentColor; }

/* ================================================================
   CARD GRID 3 — vertical rhythm and slot symmetry
   Every card in a three-up row (care.html tech cards, and any
   future .card-grid-3) shares fixed slots so eyebrow, title, body,
   and optional vendor image line up top-to-bottom regardless of
   copy length.
   =============================================================== */
.card-grid.card-grid-3 .card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0;
}
.card-grid.card-grid-3 .card .card-icon,
.card-grid.card-grid-3 .card .card-icon[data-icon] {
  width: 56px;
  height: 56px;
  margin-bottom: 1.25rem;
  flex-shrink: 0;
}
.card-grid.card-grid-3 .card .card-icon[data-icon] > svg {
  width: 32px;
  height: 32px;
}
.card-grid.card-grid-3 .card .card-eyebrow {
  min-height: 1.4em;
  margin-bottom: 0.5rem;
}
.card-grid.card-grid-3 .card h3 {
  min-height: calc(1.3em * 2);
  margin-bottom: 0.6rem;
}
.card-grid.card-grid-3 .card p {
  min-height: calc(1.55em * 3);
  line-height: 1.55;
  margin: 0;
}
/* Optional vendor image slot: hidden by default; when Parker adds an
   <img class="card-vendor-image"> inside a card, it renders in the
   reserved slot below the copy without breaking symmetry. */
.card-grid.card-grid-3 .card .card-vendor-image {
  margin-top: 1.25rem;
  width: 100%;
  height: auto;
  border-radius: 12px;
  object-fit: cover;
  aspect-ratio: 16 / 10;
}
@media (max-width: 900px) {
  .card-grid.card-grid-3 .card h3 { min-height: 0; }
  .card-grid.card-grid-3 .card p { min-height: 0; }
  .card-grid.card-grid-3 .card .card-eyebrow { min-height: 0; }
}

/* ================================================================
   PROVIDER CARD (team page)
   =============================================================== */
.provider-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.75rem;
}
.provider {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
  transition: border-color var(--tt), transform var(--tt), box-shadow var(--tt);
}
.provider:hover { border-color: var(--gold); box-shadow: var(--shadow); transform: translateY(-3px); }
.provider-avatar {
  aspect-ratio: 4 / 5;
  background: linear-gradient(135deg, var(--sand), var(--cream-warm));
  display: flex; align-items: center; justify-content: center;
  border-bottom: 1px solid var(--border);
  overflow: hidden;
  position: relative;
}
.provider-avatar svg { width: 64px; height: 64px; color: var(--navy); opacity: 0.35; }
.provider-avatar img {
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 20%;
  display: block;
  filter: saturate(0.95);
}
.provider-body { padding: 1.5rem 1.5rem 1.75rem; text-align: center; }

/* Leadership row — 2 up on desktop, wider portraits */
.provider-grid.leadership {
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  max-width: 880px;
  margin: 0 auto;
  gap: 2rem;
}
.provider-grid.leadership .provider-avatar { aspect-ratio: 5 / 6; }
.provider-grid.leadership .provider-body { padding: 1.75rem 1.75rem 2rem; }
/* One balanced team: equal portraits and paired card heights. */
.provider-grid.team-four {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: 1fr;
  max-width: 880px;
  margin: 0 auto;
  gap: 2rem;
}
.team-four .provider { display: flex; flex-direction: column; min-width: 0; }
.team-four .provider-avatar { aspect-ratio: 4 / 5; flex: none; }
.team-four .provider-avatar img { object-position: center 12%; }
.team-four .provider-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
  padding: 1.75rem;
}
.team-four .provider-role-chip { min-height: 2rem; }
.team-four .provider-cred { min-height: 2.5rem; }
.team-four .provider-bio { flex: 1; }
.team-four .provider-tag { margin-top: 1rem; }
@media (max-width: 640px) {
  .provider-grid.team-four { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; max-width: 440px; gap: 1.5rem; }
  .team-four .provider-body { padding: 1.5rem; }
  .team-four .provider-cred { min-height: 0; }
}
.provider-role-chip {
  display: inline-block;
  font-family: var(--font-eyebrow);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(31,47,95,0.06);
  border: 1px solid rgba(31,47,95,0.12);
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  margin-bottom: 0.9rem;
}
.provider-tag {
  font-size: 0.78rem;
  color: var(--fg-mute);
  margin-top: 0.9rem;
  font-style: italic;
}
.provider-name {
  font-family: var(--font-body);
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--navy);
  margin-bottom: 0.35rem;
}
[data-theme="dark"] .provider-name { color: var(--white); }
.provider-cred {
  font-family: var(--font-eyebrow);
  font-size: 0.75rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--blue);
  margin-bottom: 0.85rem;
}
.provider-bio { font-size: 0.9rem; color: var(--fg-soft); line-height: 1.55; }

/* ================================================================
   INSURANCE GRID
   =============================================================== */
.insurance-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 0.75rem;
  max-width: 960px;
  margin: 0 auto;
}
.insurance-chip {
  padding: 1.1rem 1.25rem;
  border: 1px solid var(--border);
  border-radius: var(--r);
  background: var(--bg-alt);
  text-align: center;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  color: var(--navy);
  transition: border-color var(--tt), background var(--tt);
}
[data-theme="dark"] .insurance-chip { color: var(--white); }
.insurance-chip:hover { border-color: var(--gold); background: var(--cream); }
[data-theme="dark"] .insurance-chip:hover { background: var(--navy); }

/* ================================================================
   FINAL CTA (schedule strip)
   =============================================================== */
/* Final CTA schedule strip — same enterprise navy photo-wash treatment
   as .section-navy: fixed nurse photo under a heavy navy wash. */
.schedule-strip {
  background: var(--navy);
  color: var(--white);
  padding-block: var(--section-y);
  text-align: center;
  position: relative;
  isolation: isolate;
  overflow: hidden;
}
.schedule-strip::before {
  content: "";
  position: absolute; inset: 0;
  z-index: -2;
  background: var(--navy-deep, #18254C);
}
.schedule-strip::after {
  content: "";
  position: absolute; inset: 0;
  z-index: -1;
  background-image:
    linear-gradient(180deg, rgba(24,37,76,0.92) 0%, rgba(24,37,76,0.88) 40%, rgba(24,37,76,0.94) 100%),
    url("assets/img/cta/nurse-home.png");
  background-size: cover;
  background-position: center 30%;
  background-repeat: no-repeat;
  background-attachment: fixed;
}
@media (max-width: 900px) { .schedule-strip::after { background-attachment: scroll; } }
@media (prefers-reduced-motion: reduce) { .schedule-strip::after { background-attachment: scroll; } }
.schedule-strip > * { position: relative; z-index: 1; }
.schedule-strip h2 { color: var(--white); margin-bottom: 1rem; }
.schedule-strip .eyebrow { color: var(--gold); margin-bottom: 1.5rem; display: inline-block; }
.schedule-strip .phone {
  display: inline-flex; align-items: center; gap: 0.75rem;
  font-family: var(--font-body);
  font-weight: 500;
  font-style: normal;
  letter-spacing: -0.01em;
  line-height: 1.1;
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-size: clamp(1.9rem, 3.6vw, 2.6rem);
  color: var(--gold);
  margin-block: 1rem 2rem;
  transition: color var(--tt);
}
.schedule-strip .phone:hover { color: var(--white); }
.schedule-strip .phone svg { width: 32px; height: 32px; stroke: currentColor; fill: none; stroke-width: 1.5; }
@media (max-width: 480px) { .schedule-strip .phone { padding: 0.4rem 0; } }
.schedule-strip .btn-row {
  display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap;
  margin-top: 1.5rem;
}

/* ================================================================
   THREE DOORS (Call / Get a call / Refer) — universal footer CTA
   =============================================================== */
.three-doors {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  overflow: hidden;
}
.door {
  background: var(--bg-alt);
  padding: 2.5rem 1.75rem;
  text-align: center;
  transition: background var(--tt);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  /* Fixed slot per stacked element so all three cards line up top-to-bottom:
     icon row, title row, copy block, then button pinned to bottom. */
}
.door:hover { background: var(--cream); }
[data-theme="dark"] .door:hover { background: var(--navy); }
.door-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--sand);
  color: var(--navy);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
/* Inline stroke-based placeholder SVGs (legacy) */
.door-icon > svg:not([id*="Streamline"]) { width: 26px; height: 26px; stroke: currentColor; fill: none; stroke-width: 1.6; }
/* Injected Streamline icons (via data-icon) render as filled shapes */
.door-icon[data-icon] > svg { width: 28px; height: 28px; display: block; fill: currentColor; stroke: none; }
.door-icon[data-icon] > svg [fill]:not([fill="none"]) { fill: currentColor; }
.door-icon[data-icon] > svg [stroke]:not([stroke="none"]) { stroke: currentColor; }
.door h3 {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--navy);
  line-height: 1.2;
  margin: 0;
  min-height: 1.4em;
}
[data-theme="dark"] .door h3 { color: var(--white); }
/* Copy block — reserves consistent vertical space so 1-line and 2-line
   descriptions don't push buttons out of alignment across the row. */
.door p {
  color: var(--fg-soft);
  font-size: 0.94rem;
  line-height: 1.5;
  margin: 0;
  max-width: 28ch;
  min-height: calc(1.5em * 2); /* reserve 2 lines */
  display: flex;
  align-items: center;
  justify-content: center;
}
/* Button pinned to the bottom with margin-top:auto so every card's CTA
   sits at the same y regardless of copy length. Fixed min-width so all
   three buttons are the same shape. */
.door .btn {
  margin-top: auto;
  min-width: 220px;
  width: 240px;
  max-width: 100%;
  justify-content: center;
  padding-inline: 1rem;
}
/* Tail note (e.g., 'Fax: coming online at launch') gets its own reserved
   slot with matching min-height so cards without a tail note don't shrink. */
.door .door-note {
  font-size: 0.8rem;
  color: var(--fg-soft);
  margin: 0;
  min-height: 1.4em;
  opacity: 0.75;
  letter-spacing: 0.02em;
}
@media (max-width: 768px) {
  .three-doors { grid-template-columns: 1fr; }
  .door p { min-height: 0; }
  .door .door-note { min-height: 0; }
}

/* ================================================================
   FORMS
   =============================================================== */
.form {
  background: var(--bg-alt);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: clamp(1.75rem, 3vw, 2.75rem);
  box-shadow: var(--shadow-sm);
}
.field { margin-bottom: 1.25rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .field-row { grid-template-columns: 1fr; } }
.field label {
  display: block;
  font-family: var(--font-eyebrow);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--fg-soft);
  margin-bottom: 0.5rem;
}
.field label .req { color: var(--blue); margin-left: 3px; }
.field input, .field textarea, .field select {
  width: 100%;
  background: var(--cream);
  border: 1px solid var(--border);
  border-radius: var(--r);
  padding: 0.9rem 1rem;
  font-family: var(--font-body);
  font-size: 1rem;
  color: var(--fg);
  transition: border-color var(--tt), background var(--tt), box-shadow var(--tt);
}
[data-theme="dark"] .field input, [data-theme="dark"] .field textarea, [data-theme="dark"] .field select { background: rgba(255,255,255,0.05); }
.field input:focus, .field textarea:focus, .field select:focus {
  outline: none;
  border-color: var(--blue);
  background: var(--white);
  box-shadow: 0 0 0 4px rgba(59,130,196,0.15);
}
[data-theme="dark"] .field input:focus, [data-theme="dark"] .field textarea:focus, [data-theme="dark"] .field select:focus { background: rgba(255,255,255,0.08); }
.field textarea { min-height: 130px; resize: vertical; }
.form-actions { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-top: 2rem; flex-wrap: wrap; }
.form-actions .small { max-width: 30ch; }
.form-success {
  padding: 1.75rem;
  background: rgba(58, 123, 124, 0.12);
  border: 1px solid #3A7B7C;
  border-radius: var(--r);
  color: #2A5B5C;
  text-align: center;
}
[data-theme="dark"] .form-success { color: #A0D5D6; }

/* ================================================================
   FOOTER
   =============================================================== */
.site-footer {
  background: var(--navy-deep);
  color: rgba(255,255,255,0.7);
  padding-top: clamp(3rem, 6vw, 5rem);
  padding-bottom: 2rem;
  font-size: 0.9rem;
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr repeat(3, 1fr);
  gap: 3rem;
  padding-bottom: 3rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
@media (max-width: 800px) { .footer-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-brand .brand { color: var(--white); margin-bottom: 1rem; }
.footer-brand p { font-size: 0.9rem; line-height: 1.65; }
.footer-col h4 {
  font-family: var(--font-eyebrow);
  font-size: 0.72rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1.25rem;
}
.footer-col ul li { margin-bottom: 0.65rem; }
.footer-col a { color: rgba(255,255,255,0.75); transition: color var(--tt); display: inline-block; }
.footer-col a:hover { color: var(--white); }
/* Mobile: expand footer tap targets to meet iOS/Android 44px minimum */
@media (max-width: 800px) {
  .footer-col ul li { margin-bottom: 0.2rem; }
  .footer-col ul li a { padding: 0.7rem 0; min-height: 44px; display: inline-flex; align-items: center; }
  .footer-legal a, .footer-bar a { padding: 0.6rem 0; min-height: 44px; display: inline-flex; align-items: center; }
  .footer-brand p a[href^="tel:"] { padding: 0.5rem 0; display: inline-flex; align-items: center; min-height: 44px; }
}
.footer-bar {
  padding-top: 1.75rem;
  display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap;
  font-size: 0.78rem;
  color: rgba(255,255,255,0.5);
}
.footer-bar a { color: rgba(255,255,255,0.6); }
.footer-bar a:hover { color: var(--white); }
.footer-legal { display: flex; gap: 1.25rem; flex-wrap: wrap; }

/* ================================================================
   MOTION — bouncy on-scroll reveals via IntersectionObserver + class swap
   Easing mimics NewDawn: cubic-bezier(.34, 1.56, .64, 1) ("backOut")
   =============================================================== */
:root { --ease-bounce: cubic-bezier(0.34, 1.56, 0.64, 1); }

.reveal {
  opacity: 0;
  transform: translateY(48px);
  transition:
    opacity 900ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 900ms var(--ease-bounce);
  will-change: opacity, transform;
}
.reveal.in {
  opacity: 1;
  transform: translateY(0);
}

/* Directional variants */
.reveal-left { transform: translateX(-64px); }
.reveal-left.in { transform: translateX(0); }
.reveal-right { transform: translateX(64px); }
.reveal-right.in { transform: translateX(0); }
.reveal-scale { transform: translateY(20px) scale(0.94); }
.reveal-scale.in { transform: translateY(0) scale(1); }

@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-left, .reveal-right, .reveal-scale {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
}

/* Stagger for tile-grid children */
@supports (animation-timeline: scroll()) {
  .stagger > * {
    opacity: 0;
    animation: reveal-fade linear both;
    animation-timeline: view();
    animation-range: entry 5% cover 20%;
  }
  .stagger > *:nth-child(1) { animation-delay: 0ms; }
  .stagger > *:nth-child(2) { animation-delay: 60ms; }
  .stagger > *:nth-child(3) { animation-delay: 120ms; }
  .stagger > *:nth-child(4) { animation-delay: 180ms; }
  .stagger > *:nth-child(5) { animation-delay: 240ms; }
  .stagger > *:nth-child(6) { animation-delay: 300ms; }
  .stagger > *:nth-child(7) { animation-delay: 360ms; }
  .stagger > *:nth-child(8) { animation-delay: 420ms; }
}

/* ================================================================
   HELPERS
   =============================================================== */
.text-center { text-align: center; }
.mt-lg { margin-top: 3rem; }
.mt-md { margin-top: 2rem; }
.mt-sm { margin-top: 1rem; }
.mb-lg { margin-bottom: 3rem; }
.mx-auto { margin-inline: auto; }
.max-narrow { max-width: 680px; }
.hidden-mobile { }
@media (max-width: 768px) { .hidden-mobile { display: none; } }

/* ================================================================
   SERVICE CARDS — linked cards for the home Services/Conditions grids
   AND for the related-grid on each service page.
   Full dotted background on the section (not just side rails).
   =============================================================== */
/* Grey dot-fade wash — tiled grey dots on cream, faded by a CSS mask.
   Top: strong dot wash carrying deep toward the middle then dissolving fast.
   Bottom: subtle whisper of dots rising from the base. */
.section-dotted {
  position: relative;
  background-color: var(--cream, #FBF5E8);
  isolation: isolate;
}
.section-dotted::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.55;
  background-image: url("assets/img/bg-dots-tile.svg");
  background-repeat: repeat;
  background-size: 28px 28px;
  background-position: center top;
  /* Three-band vertical wash: strong top rail, subtle middle band,
     strong bottom rail. Everything stays washed out overall via opacity. */
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,0.90) 0%,
    rgba(0,0,0,0.65) 15%,
    rgba(0,0,0,0.22) 30%,
    rgba(0,0,0,0.30) 45%,
    rgba(0,0,0,0.32) 55%,
    rgba(0,0,0,0.22) 70%,
    rgba(0,0,0,0.65) 85%,
    rgba(0,0,0,0.90) 100%
  );
          mask-image: linear-gradient(
    to bottom,
    rgba(0,0,0,0.90) 0%,
    rgba(0,0,0,0.65) 15%,
    rgba(0,0,0,0.22) 30%,
    rgba(0,0,0,0.30) 45%,
    rgba(0,0,0,0.32) 55%,
    rgba(0,0,0,0.22) 70%,
    rgba(0,0,0,0.65) 85%,
    rgba(0,0,0,0.90) 100%
  );
}
.section-dotted > .container,
.section-dotted > .wrap { position: relative; z-index: 1; }

/* Navy dotted variant (legacy): now a no-op. The .section-navy photo wash
   already provides all the atmosphere; keeping this rule empty avoids
   fighting the ::after layer. */
.section-dotted-navy { position: relative; }
.section-dotted-navy > .container { position: relative; z-index: 1; }

/* Card grid */
.card-tile-grid {
  display: grid;
  gap: 1.25rem;
  margin-top: 2.5rem;
}
.card-tile-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1024px) { .card-tile-grid-4 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .card-tile-grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .card-tile-grid-4 { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } }

/* Individual card — white with subtle navy stroke, rounded, hover lift */
.service-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  padding: 2rem 1.25rem;
  background: var(--white, #ffffff);
  border: 1px solid rgba(31, 47, 95, 0.18);
  border-radius: 16px;
  text-decoration: none;
  color: var(--navy);
  min-height: 180px;
  text-align: center;
  transition: transform 400ms cubic-bezier(.2,.7,.2,1),
              box-shadow 400ms cubic-bezier(.2,.7,.2,1),
              border-color 400ms ease,
              background-color 400ms ease;
  -webkit-tap-highlight-color: transparent;
}
.service-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px -12px rgba(31, 47, 95, 0.22);
  border-color: rgba(31, 47, 95, 0.35);
}
.service-card:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 3px;
}

/* Card icon — Lucide SVG lives inside .card-icon > svg.
   Force the sizing and color at the child level. */
.service-card .card-icon {
  width: 68px;
  height: 68px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
  transition: color 300ms ease;
  /* Override global .card-icon disc — icons must float free on card surface */
  background: none !important;
  border-radius: 0 !important;
  margin-bottom: 0.9rem;
}
.service-card .card-icon svg,
.service-card .card-icon i[data-lucide] + svg {
  width: 100%;
  height: 100%;
  display: block;
  shape-rendering: geometricPrecision;
  overflow: visible;
}
/* Filled Streamline icons: use fill only, kill any accidental stroke so edges are crisp */
.service-card .card-icon svg [fill]:not([fill="none"]) { fill: currentColor; }
.service-card .card-icon svg [stroke]:not([stroke="none"]) {
  stroke: none;
}
/* Legacy Lucide fallback: if no fill/stroke attrs at all, treat as line icon */
.service-card .card-icon svg:not(:has([fill])):not(:has([stroke])) {
  stroke: currentColor;
  fill: none;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.service-card:hover .card-icon { color: var(--navy); }

/* Card label */
.service-card .card-label {
  font-family: var(--font-body, sans-serif);
  font-weight: 600;
  font-size: 1.02rem;
  line-height: 1.3;
  color: var(--navy);
  letter-spacing: -0.005em;
}

/* Navy variant */
.service-card-navy {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.22);
  color: var(--white);
}
.service-card-navy .card-icon { color: var(--gold); }
.service-card-navy .card-label { color: var(--white); }
.service-card-navy:hover {
  background: rgba(255, 255, 255, 0.09);
  border-color: rgba(247, 193, 71, 0.55);
  transform: translateY(-4px);
  box-shadow: 0 12px 30px -12px rgba(0, 0, 0, 0.4);
}
.service-card-navy:hover .card-icon { color: var(--gold); }
.service-card-navy:focus-visible {
  outline: 2px solid var(--gold);
  outline-offset: 3px;
}

/* Related-grid on service pages — same look, with an arrow */
.related-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-top: 2.5rem;
}
@media (max-width: 1024px) { .related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .related-grid { grid-template-columns: repeat(2, 1fr); gap: 0.75rem; } }
.related-card .card-arrow {
  position: absolute;
  bottom: 1rem; right: 1.25rem;
  font-size: 1.4rem;
  color: var(--blue);
  opacity: 0;
  transform: translateX(-6px);
  transition: all 300ms ease;
}
.related-card:hover .card-arrow { opacity: 1; transform: translateX(0); }

/* ================================================================
   SERVICE PAGE — hero + Q&A layout
   =============================================================== */
.wrap-narrow { max-width: 780px; margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2rem); }

.service-hero { padding-block: clamp(4rem, 8vw, 6rem) clamp(3rem, 6vw, 4rem); background: var(--white); }
.service-hero-inner { text-align: center; }

/* Inner-page hero: cream backdrop, navy type (no image, no navy overlay).
   Overrides base .hero which is styled for the homepage hero image. */
.hero.hero-inner {
  min-height: auto;
  padding-top: 4.5rem;
  padding-bottom: 3.5rem;
  background: var(--cream);
  color: var(--navy);
}
.hero.hero-inner h1.display,
.hero.hero-inner .display,
.hero.hero-inner .body-lg,
.hero.hero-inner p {
  color: var(--navy);
}
.hero.hero-inner .body-lg { color: rgba(31, 47, 95, 0.78); }
.hero.hero-inner .eyebrow { color: var(--blue); }
.hero-inner-inner { position: relative; z-index: 2; text-align: center; }

/* Services introduction: a balanced, compact hierarchy instead of display scale. */
body[data-page="services"] .hero.hero-inner {
  padding-block: clamp(4rem, 6vw, 5rem);
}
body[data-page="services"] .hero-inner-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
body[data-page="services"] .hero-inner-inner > .eyebrow {
  margin: 0;
}
body[data-page="services"] .hero-inner-inner h1.display {
  max-width: 26ch;
  margin: 0;
  text-wrap: balance;
}
body[data-page="services"] .hero-inner-inner .body-lg {
  max-width: 66ch;
  margin: 0;
  text-align: center;
  text-wrap: balance;
}
@media (max-width: 600px) {
  body[data-page="services"] .hero-inner-inner { gap: 1.25rem; }
}

/* Balance only service/condition hero copy; preserve existing sizing and spacing. */
body:is([data-page="services"], [data-page="conditions"]) .hero-inner-inner :is(h1, .body-lg),
.service-hero :is(.service-title, .service-intro p) {
  text-wrap: balance;
}
@media (max-width: 600px) {
  body:is([data-page="services"], [data-page="conditions"]) .hero-inner-inner h1 br {
    display: none;
  }
}

/* Tile grid: honor inline grid-template-columns on desktop, force responsive stacks
   on smaller viewports so 4-col grids don't overflow. */
@media (max-width: 900px) {
  .tile-grid[style*="repeat(4"],
  .tile-grid[style*="repeat(3"] {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 560px) {
  .tile-grid[style*="repeat(4"],
  .tile-grid[style*="repeat(3"],
  .tile-grid[style*="repeat(2"] {
    grid-template-columns: 1fr !important;
  }
  .card-grid.card-grid-3 { grid-template-columns: 1fr; }
}
.service-hero-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 72px; height: 72px;
  margin-bottom: 1.5rem;
  color: var(--blue);
  padding: 1rem;
  background: rgba(59, 130, 196, 0.08);
  border-radius: 20px;
}
.service-hero-icon svg { width: 100%; height: 100%; display: block; }
.service-hero-icon svg [fill]:not([fill="none"]) { fill: currentColor; }
.service-hero-icon svg [stroke]:not([stroke="none"]) { stroke: currentColor; }

/* Generic data-icon SVG sizing fallback (for one-off placements) */
[data-icon] > svg { width: 100%; height: 100%; display: block; }
[data-icon] > svg [fill]:not([fill="none"]) { fill: currentColor; }
[data-icon] > svg [stroke]:not([stroke="none"]) { stroke: currentColor; }
.service-title {
  font-family: var(--font-display, serif);
  font-size: clamp(2.2rem, 5vw, 3.4rem);
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--navy);
  margin: 0.5rem 0 1.5rem;
}
.service-intro p {
  font-size: 1.06rem;
  line-height: 1.65;
  color: var(--ink, #2c3348);
  margin: 0 0 1rem;
}
.hero-ctas {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 2rem;
  flex-wrap: wrap;
}

/* Q&A accordion */
.section-qa { padding-block: clamp(3rem, 6vw, 5rem); }
.qa-header { text-align: center; margin-bottom: 3rem; }
.qa-header h2 {
  font-family: var(--font-display, serif);
  font-size: clamp(1.6rem, 3.5vw, 2.4rem);
  color: var(--navy);
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.qa-list-wrap { display: flex; flex-direction: column; gap: 1rem; }
.qa-item {
  background: var(--white);
  border: 1px solid rgba(31, 47, 95, 0.14);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  transition: border-color 200ms ease, box-shadow 200ms ease;
}
.qa-item[open] { border-color: rgba(31, 47, 95, 0.28); box-shadow: 0 4px 12px -4px rgba(31, 47, 95, 0.1); }
.qa-item > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.qa-item > summary::-webkit-details-marker { display: none; }
.qa-item > summary::after {
  content: "+";
  font-size: 1.4rem;
  color: var(--blue);
  line-height: 1;
  flex-shrink: 0;
  transition: transform 300ms ease;
}
.qa-item[open] > summary::after { content: "−"; }
.qa-item summary h3 {
  font-family: var(--font-body, sans-serif);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--navy);
  margin: 0;
  line-height: 1.35;
}
.qa-answer {
  padding-top: 1rem;
  margin-top: 1rem;
  border-top: 1px solid rgba(31, 47, 95, 0.08);
  color: var(--ink, #2c3348);
  font-size: 1rem;
  line-height: 1.65;
}
.qa-answer p { margin: 0 0 0.75rem; }
.qa-answer p:last-child { margin-bottom: 0; }
.qa-answer .qa-list { margin: 0.5rem 0 0.75rem 1.25rem; padding: 0; }
.qa-answer .qa-list li { margin-bottom: 0.35rem; }

/* Related section */
.section-related { padding-block: clamp(3rem, 6vw, 5rem); }
.related-header { text-align: center; margin-bottom: 1rem; }
.related-header h2 {
  font-family: var(--font-display, serif);
  font-size: clamp(1.6rem, 3.5vw, 2.2rem);
  color: var(--navy);
  line-height: 1.2;
}

/* Ensure the schedule-strip stands out on service pages */
.schedule-strip { background: var(--navy); color: var(--white); padding-block: clamp(3rem, 6vw, 4.5rem); text-align: center; }
.schedule-strip .eyebrow-light { color: var(--gold); }
.schedule-strip h2 { font-family: var(--font-display, serif); font-size: clamp(2rem, 4vw, 2.8rem); color: var(--white); margin: 0.5rem 0 1rem; }
.schedule-strip .phone-hero {
  display: inline-block;
  font-family: var(--font-body);
  font-weight: 500;
  font-style: normal;
  line-height: 1.1;
  font-variant-numeric: lining-nums tabular-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-size: clamp(1.9rem, 3.6vw, 2.6rem);
  letter-spacing: -0.01em;
  color: var(--gold);
  text-decoration: none;
  margin-bottom: 1.5rem;
}
.schedule-strip .strip-ctas { display: flex; justify-content: center; gap: 0.75rem; flex-wrap: wrap; }
.btn-ghost-light {
  background: transparent;
  color: var(--white);
  border: 1px solid rgba(255, 255, 255, 0.35);
}
.btn-ghost-light:hover { background: rgba(255, 255, 255, 0.08); border-color: var(--gold); color: var(--gold); }

/* Mobile — tap targets, spacing */
@media (max-width: 768px) {
  .service-card { min-height: 150px; padding: 1.5rem 0.75rem; }
  .service-card .card-icon { width: 52px; height: 52px; }
  .service-card .card-label { font-size: 0.92rem; }
  .service-hero { padding-block: 3rem 2rem; }
  .service-hero-icon { width: 60px; height: 60px; padding: 0.75rem; }
}

/* Mega-nav wide variant (for the 3-col service nav) */
.mega-wide .mega-inner { grid-template-columns: repeat(3, minmax(200px, 1fr)); }

/* ============================================================
   ABOUT PAGE — company overview layout
   ============================================================ */
.prose {
  max-width: 68ch;
  margin: 0 auto;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--ink-2, #3a3f52);
}
.prose > p { margin: 0 0 1.15rem; }
.prose > p:last-child { margin-bottom: 0; }

.prose .qa-list.about-condition-list,
.prose .qa-list.about-capability-list {
  columns: 2;
  column-gap: 2.5rem;
  margin: 0.75rem 0 1.5rem;
  padding-left: 1.15rem;
  list-style: disc;
}
.prose .qa-list.about-condition-list li,
.prose .qa-list.about-capability-list li {
  break-inside: avoid;
  margin-bottom: 0.5rem;
  line-height: 1.55;
}
.prose .qa-list.about-capability-list li strong { color: var(--navy, #1F2F5F); }
.prose .qa-list.about-capability-list li sup { font-size: 0.55em; vertical-align: super; margin-left: 1px; }

@media (max-width: 640px) {
  .prose .qa-list.about-condition-list,
  .prose .qa-list.about-capability-list { columns: 1; }
}

.prose .small-note {
  font-size: 0.9375rem;
  color: var(--fg-mute, #6b7280);
  font-style: italic;
  margin-top: 0.5rem;
}

.access-block {
  max-width: 780px;
  margin: 0 auto;
  text-align: center;
}
.access-block .eyebrow { display: block; margin-bottom: 0.85rem; }
.access-block h2 { margin: 0 0 1.25rem; }

/* ============================================================
   FORMS — no-PHI callback pattern (radio pills, consent, alt CTA)
   ============================================================ */
.field-radio-group {
  border: 0;
  padding: 0.5rem 0 0;
  margin: 0.25rem 0 0.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: stretch;
}
.field-radio-group legend {
  font-family: var(--font-eyebrow, "Inter", sans-serif);
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--navy, #1F2F5F);
  margin-bottom: 0.6rem;
  width: 100%;
}
.field-radio-group legend .req { color: var(--gold, #F7C147); margin-left: 0.15em; }
.field-radio-group legend .legend-hint {
  font-family: var(--font-body, "Inter", sans-serif);
  font-size: 0.78rem;
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
  color: rgba(31, 47, 95, 0.65);
  margin-left: 0.5em;
}

/* Equal-width pills. No radio dot — whole tile is the affordance.
   Selected = tile fills navy, label goes white. Label is centered because
   the radio input is fully hidden (visually + spatially collapsed) rather
   than positioned inside the flex row. */
.radio-pill {
  position: relative;
  flex: 1 1 0;
  min-width: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.9rem 1.1rem;
  border: 1.5px solid rgba(31,47,95,0.14);
  border-radius: 999px;
  background: var(--white, #fff);
  color: var(--navy, #1F2F5F);
  font-family: var(--font-body, "Inter", sans-serif);
  font-size: 0.85rem;
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
  text-align: center;
  user-select: none;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, box-shadow 160ms ease;
}
.radio-pill > span { white-space: nowrap; }

/* Fully hide the native radio — keyboard/AT still reach it via the label.
   sr-only pattern: 1px, clipped, absolutely positioned so it takes no room
   in the flex row (that's what pushed the label off-center before). */
.radio-pill input[type="radio"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-width: 0 !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: -1px !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  background: transparent !important;
  box-shadow: none !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

/* Selected tile: fill navy, invert label to white */
.radio-pill:has(input:checked) {
  background: var(--navy, #1F2F5F);
  border-color: var(--navy, #1F2F5F);
  color: var(--white, #fff);
  box-shadow: 0 2px 6px rgba(31,47,95,0.18);
}

/* Hover on an unselected tile */
.radio-pill:hover { border-color: rgba(31,47,95,0.45); }

/* Keyboard focus ring on the whole tile via :focus-within (input is hidden) */
.radio-pill:focus-within {
  outline: none;
  box-shadow: 0 0 0 3px rgba(43,87,199,0.22);
}
.radio-pill:focus-within:has(input:checked) {
  box-shadow: 0 2px 6px rgba(31,47,95,0.18), 0 0 0 3px rgba(43,87,199,0.22);
}

/* On narrow screens let the pills wrap to one per row so labels never squish */
@media (max-width: 520px) {
  .field-radio-group { flex-direction: column; }
  .radio-pill { flex: 0 0 auto; width: 100%; }
}

/* SMS consent — hidden by default, shown when Text/Either is picked */
.field-consent {
  display: none;
  margin-top: 0.5rem;
  padding: 0.9rem 1rem;
  background: rgba(247,193,71,0.08);
  border: 1px solid rgba(247,193,71,0.35);
  border-radius: 12px;
}
.field-consent.is-visible { display: block; }
.checkbox-line {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.86rem;
  color: var(--ink-2, #3a3f52);
  line-height: 1.5;
  cursor: pointer;
}
.checkbox-line input[type="checkbox"] {
  margin-top: 0.15rem !important;
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  padding: 0 !important;
  flex-shrink: 0;
  accent-color: var(--blue, #2b57c7);
  cursor: pointer;
}

/* Secure-channel alt CTA under the callback form */
.secure-alt {
  margin: 2rem auto 0;
  padding: 1.5rem;
  background: rgba(31,47,95,0.04);
  border: 1px dashed rgba(31,47,95,0.18);
  border-radius: 14px;
  text-align: center;
}
.secure-alt .eyebrow { margin-bottom: 0.5rem; display: block; }
.secure-alt p { margin: 0 0 1rem; color: var(--ink-2, #3a3f52); }
.secure-alt .btn-row { justify-content: center; }

/* ============================================================
   INSURANCE & COVERAGE — home page section
   ============================================================ */
#insurance { scroll-margin-top: 90px; } /* clear sticky header on anchor jump */

/* Pyramid payer layout: 2 centered cards on top row, 3 cards below — all same size */
.payer-stack {
  --payer-gap: 1rem;
  --payer-max: 1080px;
  max-width: var(--payer-max);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: var(--payer-gap);
}

/* Bottom row: 3 equal columns */
.payer-row-secondary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--payer-gap);
}

/* Top row: 2 cards, each the exact width of one bottom-row card, centered */
.payer-row-featured {
  display: flex;
  justify-content: center;
  gap: var(--payer-gap);
}
.payer-row-featured .payer-card {
  /* Each card = width of one column in the 3-col bottom grid */
  flex: 0 0 calc((100% - 2 * var(--payer-gap)) / 3);
  max-width: calc((100% - 2 * var(--payer-gap)) / 3);
}

.payer-card {
  background: var(--white, #fff);
  border: 1px solid rgba(31,47,95,0.10);
  border-radius: 14px;
  padding: 1.25rem 1.35rem;
  text-align: left;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.payer-card:hover {
  transform: translateY(-2px);
  border-color: rgba(43,87,199,0.35);
  box-shadow: 0 6px 20px -8px rgba(31,47,95,0.18);
}

/* Featured cards on top row — same size as others, just gold accent bar */
.payer-card-lg::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  width: 4px;
  background: var(--gold, #F7C147);
}

.payer-name {
  font-family: var(--font-display, "Fraunces", serif);
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--navy, #1F2F5F);
  margin-bottom: 0.3rem;
  line-height: 1.2;
}
.payer-sub {
  font-family: var(--font-body, "Inter", sans-serif);
  font-size: 0.88rem;
  color: var(--ink-2, #3a3f52);
  line-height: 1.45;
}

.payer-expanding {
  margin: 2.5rem auto 0;
  max-width: 780px;
  padding: 1.75rem 2rem;
  background: rgba(31,47,95,0.04);
  border-left: 3px solid var(--gold, #F7C147);
  border-radius: 0 12px 12px 0;
  text-align: left;
}
.payer-expanding .eyebrow { margin-bottom: 0.5rem; display: block; }
.payer-expanding p { margin: 0 0 0.75rem; color: var(--ink-1, #1F2F5F); line-height: 1.55; }
.payer-expanding p:last-of-type { margin-bottom: 1.25rem; }
.payer-expanding .btn-row {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 0.5rem;
}

/* Tablet: tighter gap, same pyramid shape */
@media (max-width: 780px) {
  .payer-stack { --payer-gap: 0.75rem; }
}

/* Mobile: everything stacks to 1 column, featured cards on top keep their gold bar */
@media (max-width: 640px) {
  .payer-stack { --payer-gap: 0.75rem; }
  .payer-row-featured  { flex-direction: column; }
  .payer-row-featured .payer-card { flex: 1 1 auto; max-width: none; }
  .payer-row-secondary { grid-template-columns: 1fr; }
  .payer-card { padding: 1rem 1.15rem; }
  .payer-expanding { padding: 1.25rem 1.35rem; margin-top: 1.75rem; }
}

/* ============================================================
   CONTACT METHOD TILES — email addresses must never wrap
   ============================================================ */
.contact-methods .card { min-width: 0; }
.contact-methods .contact-email {
  /* Fluid font that shrinks in narrow tiles but never breaks the address */
  font-size: clamp(0.95rem, 2.1vw, 1.15rem);
  line-height: 1.25;
}
.contact-methods .contact-email a {
  /* Treat the email as a single token that will not break mid-word */
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: keep-all;
  display: inline-block;
  max-width: 100%;
}
/* Tiny screens: allow the email to shrink further rather than overflow */
@media (max-width: 380px) {
  .contact-methods .contact-email {
    font-size: clamp(0.85rem, 4.2vw, 1rem);
  }
}
/* Mobile: expand contact method tap targets to iOS/Android 44px minimum */
@media (max-width: 800px) {
  .contact-methods h3 a { display: inline-flex; align-items: center; min-height: 44px; padding-block: 0.5rem; }
  .contact-methods p a { display: inline-flex; align-items: center; min-height: 40px; padding-block: 0.35rem; }
}

/* PHI badges — referrer page */
.phi-badge {
  display: inline-block;
  font-size: 0.75rem;
  font-weight: 600;
  padding: 0.25rem 0.6rem;
  border-radius: 999px;
  margin: 0.5rem 0;
  letter-spacing: 0.02em;
  line-height: 1.35;
}
.phi-badge-ok {
  background: #E8F3EC;
  color: #1F5A34;
  border: 1px solid #C6E1CE;
}
.phi-badge-warn {
  background: #FDF3D6;
  color: #6B4A05;
  border: 1px solid #F0DDA3;
}

/* Prominent phone/fax number line inside referral door cards */
.door-number {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--navy);
  letter-spacing: 0.01em;
  line-height: 1.1;
  margin: 0;
}
[data-theme="dark"] .door-number { color: var(--white); }

/* ============================================================
   FOR-REFERRERS · Redesign (Council 2)
   Type scale, hero, proof pills, you-we table, def-list,
   fit-grid, variant blocks, how-list, tech-feature, prose-photo,
   channel-grid, faq, sticky-cta, select chevron, radio-tile.
   ============================================================ */

/* Referrer hero composition; type uses the shared scale below. */
body[data-page="referrers"] .ref-hero-h1 {
  color: var(--white);
  max-width: 22ch;
  margin: 0.5rem auto 1rem;
  text-align: center;
}
body[data-page="referrers"] .ref-hero-sub {
  color: var(--white);
  opacity: 0.94;
  max-width: 58ch;
  margin: 0 auto 1.5rem;
  text-align: center;
}
body[data-page="referrers"] .card h3,
body[data-page="referrers"] .provider-name {
  font-size: 1.25rem;
  line-height: 1.25;
}
body[data-page="referrers"] .body-lg { max-width: 62ch; }

/* Referrer flow: tighten the vertical rhythm across every content section.
   Each .section defaults to padding-block clamp(4rem,9vw,8rem) — two stacked
   sections at 1440px produce ~256px of dead space. Cut both the section
   padding and the title-block bottom margin roughly in half. */
body[data-page="referrers"] .section:not(.hero) {
  padding-block: clamp(2rem, 4.5vw, 3.5rem);
}
/* Clinician section: shorter bios make the card body top-heavy and leave
   dead space before the next section. Trim body padding and section bottom. */
body[data-page="referrers"] #clinicians { padding-bottom: clamp(1.5rem, 3vw, 2.5rem); }
body[data-page="referrers"] #clinicians .provider-body { padding: 1.1rem 1.25rem 1.3rem; }
body[data-page="referrers"] #clinicians .provider-bio { margin-top: 0.4rem; }

/* Proof pills (promoted trust strip in hero) */
.proof-pills {
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 68rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.55rem;
}
.proof-pills li {
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.28);
  color: var(--white);
  padding: 0.5rem 0.95rem;
  border-radius: 999px;
  font-family: var(--font-eyebrow);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  backdrop-filter: blur(4px);
}

/* You / We table */
.you-we-table {
  border: 1px solid rgba(31,47,95,0.14);
  border-radius: 16px;
  overflow: hidden;
  background: var(--white);
}
.yw-row {
  display: grid;
  grid-template-columns: 1fr 1.2fr 180px;
  gap: 0;
}
.yw-row + .yw-row { border-top: 1px solid rgba(31,47,95,0.10); }
.yw-cell {
  padding: 1.15rem 1.35rem;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--fg);
}
.yw-cell + .yw-cell { border-left: 1px solid rgba(31,47,95,0.08); }
.yw-cell strong { color: var(--navy); font-weight: 600; }
.yw-head .yw-cell {
  background: var(--cream);
  font-family: var(--font-eyebrow);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--navy);
  font-weight: 600;
  padding: 0.85rem 1.35rem;
}
.yw-clock {
  color: var(--navy);
  font-weight: 600;
  font-size: 0.92rem;
  background: rgba(31,47,95,0.03);
}
.yw-empty { background: rgba(31,47,95,0.02); }
@media (max-width: 780px) {
  .yw-empty { display: none; }
}
@media (max-width: 780px) {
  .yw-row { grid-template-columns: 1fr; }
  .yw-cell + .yw-cell { border-left: 0; border-top: 1px solid rgba(31,47,95,0.06); }
  .yw-head { display: none; }
  .yw-you::before { content: "You"; display: block; font-family: var(--font-eyebrow); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--navy); font-weight: 600; margin-bottom: 0.35rem; }
  .yw-we::before  { content: "We";  display: block; font-family: var(--font-eyebrow); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--navy); font-weight: 600; margin-bottom: 0.35rem; }
  .yw-clock::before { content: "Timing"; display: block; font-family: var(--font-eyebrow); font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--navy); font-weight: 600; margin-bottom: 0.35rem; }
}

/* Definition list (Billing + Business Terms block) */
.def-list {
  border-top: 1px solid rgba(31,47,95,0.14);
  margin: 0;
  padding: 0;
}
.def-row {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 1.5rem;
  padding: 1.15rem 0.25rem;
  border-bottom: 1px solid rgba(31,47,95,0.10);
}
.def-row dt {
  font-family: var(--font-eyebrow);
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--navy);
  font-weight: 600;
  padding-top: 0.15rem;
}
.def-row dd {
  margin: 0;
  color: var(--fg);
  font-size: 1rem;
  line-height: 1.6;
}
.def-list-inline { margin-top: 0.5rem; }
@media (max-width: 640px) {
  .def-row { grid-template-columns: 1fr; gap: 0.4rem; padding: 1rem 0.15rem; }
}

/* Clinical fit: two columns, Yes / Not-a-fit */
.fit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
}
.fit-col {
  background: var(--white);
  border: 1px solid rgba(31,47,95,0.12);
  border-radius: 16px;
  padding: 1.5rem 1.75rem;
}
.fit-col-no {
  background: var(--cream);
  border-style: dashed;
}
.fit-head { margin-bottom: 0.9rem; }
.fit-badge {
  display: inline-block;
  font-family: var(--font-eyebrow);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 0.35rem 0.7rem;
  border-radius: 999px;
}
.fit-badge-yes { background: var(--navy); color: var(--white); }
.fit-badge-no  { background: transparent; color: var(--navy-soft, #4a5578); border: 1px solid rgba(31,47,95,0.28); }
.fit-list { margin: 0; padding: 0; list-style: none; }
.fit-list li { padding: 0.55rem 0; border-bottom: 1px dashed rgba(31,47,95,0.10); line-height: 1.55; color: var(--fg); font-size: 0.98rem; }
.fit-list li:last-child { border-bottom: 0; }
.fit-list strong { color: var(--navy); }
@media (max-width: 780px) { .fit-grid { grid-template-columns: 1fr; } }

/* Variant blocks (for the 3-option compare section) */
.variant-block {
  background: var(--white);
  border: 1px solid rgba(31,47,95,0.10);
  border-radius: 18px;
  padding: 1.75rem 1.5rem 2.25rem;
}
.variant-tag {
  display: inline-block;
  font-family: var(--font-eyebrow);
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--navy);
  background: rgba(247,193,71,0.35);
  padding: 0.4rem 0.75rem;
  border-radius: 4px;
  margin-bottom: 1.5rem;
}
.variant-subhead {
  font-family: var(--font-display, "Fraunces", serif);
  font-size: 1.35rem;
  font-weight: 500;
  color: var(--navy);
  margin: 0 0 1rem;
}

/* Option A · Block A — borderless how-list */
.how-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
  margin-bottom: 2.25rem;
}
.how-list-item { display: flex; gap: 0.9rem; align-items: flex-start; }
.how-list-icon {
  width: 32px; height: 32px; flex-shrink: 0;
  color: var(--navy);
  display: flex; align-items: center; justify-content: center;
}
.how-list-icon svg { width: 24px; height: 24px; }
.how-list-title { font-size: 1.05rem; color: var(--navy); margin: 0 0 0.35rem; font-weight: 600; font-family: var(--font-eyebrow); }
.how-list-item p { color: var(--fg-soft); font-size: 0.95rem; line-height: 1.55; margin: 0; }
@media (max-width: 780px) { .how-list { grid-template-columns: 1fr; gap: 1rem; } }

/* Option A · Block B — tech feature panel */
.tech-feature {
  display: grid;
  grid-template-columns: 2fr 1.4fr;
  gap: 1.5rem;
  align-items: stretch;
  margin-bottom: 2.25rem;
  border: 1px solid rgba(31,47,95,0.10);
  border-radius: 14px;
  overflow: hidden;
  background: var(--cream);
}
.tech-feature-photo { position: relative; min-height: 320px; background: var(--navy); }
.tech-feature-photo img { width: 100%; height: 100%; object-fit: cover; display: block; opacity: 0.75; }
.tech-feature-photo-label,
.prose-photo-label {
  position: absolute; bottom: 0.6rem; left: 0.6rem;
  background: rgba(0,0,0,0.55); color: var(--white);
  font-family: var(--font-eyebrow); font-size: 0.7rem; letter-spacing: 0.06em;
  padding: 0.3rem 0.55rem; border-radius: 4px;
}
.tech-feature-text { padding: 1.5rem 1.75rem; display: flex; flex-direction: column; gap: 0.75rem; }
.tech-feature-text h3.display-md { margin: 0.25rem 0 0.5rem; }
.tech-item { padding: 0.5rem 0; border-top: 1px solid rgba(31,47,95,0.10); font-size: 0.95rem; line-height: 1.55; color: var(--fg); }
.tech-item:first-of-type { border-top: 0; padding-top: 0.25rem; }
.tech-item strong { color: var(--navy); }
@media (max-width: 780px) {
  .tech-feature { grid-template-columns: 1fr; }
  .tech-feature-photo { min-height: 220px; }
}

/* Option C · Prose + photo */
.prose-photo {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 2rem;
  align-items: center;
}
.prose-photo-text > *:first-child { margin-top: 0; }
.prose-photo-image { position: relative; border-radius: 14px; overflow: hidden; background: var(--navy); aspect-ratio: 4 / 5; }
.prose-photo-image img { width: 100%; height: 100%; object-fit: cover; opacity: 0.72; display: block; }
@media (max-width: 780px) { .prose-photo { grid-template-columns: 1fr; } }

/* Channel grid (call + fax) */
.channel-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  max-width: 52rem;
  margin: 0 auto;
}
.channel {
  background: var(--white);
  border: 1px solid rgba(31,47,95,0.12);
  border-radius: 14px;
  padding: 1.35rem 1.5rem;
  text-align: center;
}
.channel-icon {
  width: 40px; height: 40px; margin: 0 auto 0.5rem;
  color: var(--navy); display: flex; align-items: center; justify-content: center;
}
.channel-icon svg { width: 26px; height: 26px; }
.channel h3 {
  font-family: var(--font-eyebrow); font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--navy); font-weight: 600;
  margin: 0 0 0.4rem;
}
.channel-number { font-size: 1.4rem; font-weight: 700; color: var(--navy); margin-bottom: 0.5rem; letter-spacing: 0.01em; }
.channel-number a { color: inherit; text-decoration: none; border-bottom: 2px solid var(--gold); }
.channel-number .gold-underline { border-bottom: 2px solid var(--gold); padding-bottom: 1px; }
.channel-number a:hover { color: var(--navy-deep); }
.channel p { color: var(--fg-soft); font-size: 0.92rem; line-height: 1.5; margin: 0; }
.channel-footnote { text-align: center; color: var(--fg-mute); font-size: 0.85rem; margin: 1.25rem auto 0; max-width: 52rem; }
@media (max-width: 640px) { .channel-grid { grid-template-columns: 1fr; } }

/* FAQ */
.faq details {
  border-bottom: 1px solid rgba(31,47,95,0.12);
  padding: 1rem 0.25rem;
}
.faq details:first-child { border-top: 1px solid rgba(31,47,95,0.12); }
.faq summary {
  cursor: pointer;
  font-family: var(--font-body, "Inter", sans-serif);
  font-size: 1rem;
  font-weight: 600;
  color: var(--navy);
  padding: 0.25rem 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
  content: "+";
  font-family: var(--font-body);
  font-size: 1.4rem;
  color: var(--navy);
  font-weight: 400;
  line-height: 1;
  transition: transform 160ms ease;
}
.faq details[open] summary::after { content: "\2212"; }
.faq details p {
  color: var(--fg);
  font-size: 0.97rem;
  line-height: 1.6;
  margin: 0.65rem 0 0.25rem;
  max-width: 62ch;
}
.faq details p a { color: var(--navy); border-bottom: 1px solid var(--gold); text-decoration: none; }

/* Onboarding grid: packet + form */
.onboarding-grid {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 2rem;
  align-items: start;
}
.onboarding-packet {
  background: var(--cream);
  border: 1px solid rgba(31,47,95,0.10);
  border-radius: 14px;
  padding: 1.5rem 1.6rem;
  position: sticky;
  top: 6rem;
}
.onboarding-packet p { margin-top: 1rem; }
/* Focused facility contact page: one centered introduction and existing form. */
.facility-contact { padding-block: clamp(3rem, 5vw, 5rem) clamp(4rem, 6vw, 6rem); }
.facility-contact > .container { max-width: 880px; }
.facility-contact-intro { text-align: center; margin-bottom: 2.5rem; }
.facility-contact-intro .display { font-size: clamp(2rem, 3.4vw, 3rem); line-height: 1.15; text-wrap: balance; }
.facility-contact-intro p {
  max-width: 70ch;
  margin: 1.25rem auto 0;
  font-size: 1.0625rem;
  line-height: 1.75;
  color: var(--fg-soft);
  text-wrap: pretty;
}
.facility-contact .onboarding-form { padding: clamp(1.5rem, 3vw, 2.5rem); box-shadow: none; }
.facility-contact .field-row { column-gap: 1.5rem; }
.facility-contact .form-actions { flex-direction: column; justify-content: center; gap: 1.25rem; margin-top: 0.75rem; }
.facility-contact .form-actions .small { max-width: 56ch; text-align: center; text-wrap: balance; }
.facility-contact #facility-status { text-align: center; }
@media (max-width: 640px) {
  .facility-contact-intro { margin-bottom: 2rem; }
  .facility-contact-intro p { font-size: 1rem; line-height: 1.65; }
  .facility-contact .field-row { gap: 0; }
}
.check-list { list-style: none; padding: 0; margin: 0.75rem 0 0; }
.check-list li {
  padding: 0.55rem 0 0.55rem 1.75rem;
  position: relative;
  color: var(--fg);
  font-size: 0.98rem;
  line-height: 1.5;
  border-bottom: 1px dashed rgba(31,47,95,0.10);
}
.check-list li:last-child { border-bottom: 0; }
.check-list li::before {
  content: "";
  position: absolute; left: 0; top: 0.85rem;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--navy);
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><polyline points='4,12 10,18 20,6' fill='none' stroke='white' stroke-width='3'/></svg>") center/70% no-repeat;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><polyline points='4,12 10,18 20,6' fill='none' stroke='white' stroke-width='3'/></svg>") center/70% no-repeat;
}
.onboarding-form { background: var(--white); border: 1px solid rgba(31,47,95,0.10); border-radius: 14px; padding: 1.75rem; }
.onboarding-form[data-submitted="1"] #facility-status {
  margin: 0;
  padding-block: 2rem;
  text-align: center;
  text-wrap: balance;
  font-size: 1rem;
  color: var(--fg);
}
.onboarding-form[data-submitted="1"] #facility-status > * { display: block; }
.onboarding-form[data-submitted="1"] #facility-status strong { font-size: 1.125rem; font-weight: 600; }
.onboarding-form[data-submitted="1"] #facility-status span { margin-top: 0.75rem; }
.onboarding-form[data-submitted="1"] #facility-status .small { margin-top: 1.5rem; }
.field-full { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .onboarding-grid { grid-template-columns: 1fr; }
  .onboarding-packet { position: static; }
}

/* Purpose-picker radio tiles (stacked, sentence-length) */
.radio-tile {
  position: relative;
  display: flex;
  width: 100%;
  padding: 0.85rem 1rem 0.85rem 2.5rem;
  border: 1.5px solid rgba(31,47,95,0.14);
  border-radius: 10px;
  background: var(--white);
  color: var(--fg);
  font-family: var(--font-body, "Inter", sans-serif);
  font-size: 0.98rem;
  line-height: 1.4;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease, box-shadow 160ms ease;
}
.radio-tile > span { display: block; }
.radio-tile input[type="radio"],
.radio-tile input[type="checkbox"] {
  position: absolute; left: 1rem; top: 50%; transform: translateY(-50%);
  appearance: none; -webkit-appearance: none;
  width: 18px; height: 18px;
  border: 1.5px solid rgba(31,47,95,0.35);
  background: var(--white);
  margin: 0;
  cursor: pointer;
  transition: border-color 160ms ease, background-color 160ms ease;
}
.radio-tile input[type="radio"] { border-radius: 50%; }
.radio-tile input[type="checkbox"] { border-radius: 4px; }
.radio-tile input[type="radio"]:checked {
  border-color: var(--navy);
  background: radial-gradient(circle, var(--navy) 40%, transparent 45%);
}
.radio-tile input[type="checkbox"]:checked {
  border-color: var(--navy);
  background: var(--navy);
  /* white checkmark drawn with an inline SVG */
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='2,6 5,9 10,3'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 12px 12px;
}
.radio-tile:has(input:checked) {
  border-color: var(--navy);
  background: rgba(31,47,95,0.04);
  box-shadow: 0 1px 3px rgba(31,47,95,0.08);
}
.radio-tile:hover { border-color: rgba(31,47,95,0.35); }
.radio-tile:focus-within { outline: none; box-shadow: 0 0 0 3px rgba(43,87,199,0.22); }
.field-radio-group:has(.radio-tile) { flex-direction: column; }

/* Custom select chevron (fixes the raw OS chevron amateur tell) */
.select-wrap { position: relative; }
.select-wrap::after {
  content: "";
  position: absolute; right: 1rem; top: 50%;
  width: 10px; height: 10px;
  border-right: 2px solid var(--navy);
  border-bottom: 2px solid var(--navy);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
}
.select-wrap > select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none;
  padding-right: 2.5rem;
  cursor: pointer;
}

/* Sticky mobile CTA */
.sticky-cta {
  display: none;
  position: fixed;
  bottom: 1rem; left: 1rem; right: 1rem;
  z-index: 50;
  background: var(--gold);
  color: var(--navy);
  font-family: var(--font-eyebrow);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-align: center;
  padding: 0.95rem 1rem;
  border-radius: 999px;
  text-decoration: none;
  box-shadow: 0 6px 20px rgba(31,47,95,0.22);
  transition: transform 160ms ease, box-shadow 160ms ease;
}
.sticky-cta:hover { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(31,47,95,0.28); }
@media (max-width: 780px) {
  .sticky-cta { display: block; }
  body[data-page="referrers"] #page-content { padding-bottom: 5rem; }
}

/* Smooth anchor scroll site-wide, respecting reduced motion. Reserve space
   for the sticky nav so the jumped-to section isn't hidden underneath it. */
@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}
:target,
#channels, #onboarding, #clinicians, #census, #differentiators {
  scroll-margin-top: 96px;
}

/* Small helper */
.text-link { color: var(--navy); border-bottom: 1px solid var(--gold); text-decoration: none; font-weight: 600; }
.text-link:hover { color: var(--navy-deep); }
/* Pre-launch status uses the existing typography, colors, and section layout. */
.prelaunch-note { font-size: 1rem; line-height: 1.55; margin-top: 1.25rem; max-width: 65ch; }
.hero .prelaunch-note { margin-left: auto; margin-right: auto; }
.facility-anchor { display: block; scroll-margin-top: 7rem; }
.onboarding-form :disabled { cursor: not-allowed; opacity: .65; }
/* Accommodate the longer pre-launch CTA without changing the navigation. */
.nav-utility .btn[data-facility-link] { padding-left: 1rem; padding-right: 1rem; }
@media (min-width: 1321px) {
  .site-header,
  .site-header.scrolled { padding-block: 5.25px; }
  .site-header > .container { max-width: 1360px; padding-inline: 40px; }
  .site-header .nav-inner { min-height: 71px; gap: clamp(0.5rem, calc(25vw - 321px), 1.5rem); }
  .site-header.scrolled .nav-inner { min-height: 62px; }
  .site-header .brand-img { height: 71px; }
  .site-header.scrolled .brand-img { height: 62px; }
  .site-header .nav-links { gap: 1rem; flex-shrink: 0; }
  .site-header .nav-links > a,
  .site-header .nav-links .nav-item > a { letter-spacing: 0.15em; }
  .site-header .nav-utility { flex-shrink: 0; }
  .site-header .nav-utility .lang-toggle { padding-inline: 0.8rem; }
  .site-header .lang-toggle [data-lang-en],
  .site-header .lang-toggle [data-lang-es] { opacity: 0.7; }
  html[lang="en"] .site-header .lang-toggle [data-lang-en],
  html[lang="es"] .site-header .lang-toggle [data-lang-es] { opacity: 1; }
  .site-header .nav-utility .btn[data-facility-link] {
    padding-inline: 1.1rem;
    letter-spacing: 0.1em;
    white-space: nowrap;
    text-align: center;
  }
}
@media (max-width: 1320px) {
  .site-header .nav-inner { gap: .5rem; }
  .nav-utility .nav-cta { display: none; }
}

/* Header pills share one height; translated labels never stretch a pill. */
.site-header .nav-utility > .lang-toggle,
.site-header .nav-utility > .nav-cta,
.site-header .nav-utility .btn.btn-sm {
  height: 44px;
  min-height: 44px;
  box-sizing: border-box;
  flex-shrink: 0;
}
.site-header .nav-utility .btn.btn-sm,
.site-header .nav-utility > .lang-toggle {
  padding-top: 0;
  padding-bottom: 0;
  justify-content: center;
  white-space: nowrap;
  line-height: 1;
}

/* Shared launch treatment for the English and Spanish homepage heroes. */
.hero-launch-refined .launch-announcement {
  position: static;
  margin: 0 auto 2.5rem;
  padding: 0;
  color: var(--gold);
  text-shadow: 0 1px 2px var(--navy-deep), 0 0 8px rgba(24, 37, 76, .55);
}
.hero-launch-refined .launch-announcement p {
  font-size: clamp(.875rem, 1.4vw, 1.25rem);
  font-weight: 600;
  letter-spacing: .11em;
  text-transform: uppercase;
  gap: .35em .6em;
}
.hero-launch-refined .launch-announcement p > span { white-space: nowrap; }
@media (max-width: 600px) {
  .hero-launch-refined { padding-top: 3rem; }
  .hero-launch-refined .launch-announcement { margin-bottom: 2rem; }
  .hero-launch-refined .launch-announcement p { flex-direction: column; align-items: center; }
  .hero-launch-refined .launch-separator { display: none; }
  html[lang="es"] .hero-launch-refined .btn-group { max-width: 100%; }
  html[lang="es"] .hero-launch-refined .btn-group .btn {
    max-width: 100%;
    white-space: normal;
    justify-content: center;
    text-align: center;
    line-height: 1.25;
  }
}

/* Keep the contact-page facility CTA on the same centerline as its heading. */
body[data-page="contact"] #get-a-call > .container-narrow { text-align: center; }
body[data-page="contact"] #get-a-call .title-block { margin-bottom: 2rem; }

/* Shared compact-screen sizing: two-line labels keep the same pill height. */
@media (max-width: 600px) {
  .btn:not(.btn-sm) {
    height: 56px;
    min-height: 56px;
    max-width: 100%;
    white-space: normal;
    text-align: center;
    line-height: 1.25;
  }
  .hero .btn-group { width: 100%; max-width: 24rem; flex-direction: column; }
  .hero .btn-group > .btn { width: 100%; }
  /* The homepage has one launch action, not a full-width button stack. */
  body:is([data-page="home"], [data-page="index"]) .hero .btn-group {
    width: auto;
    max-width: 100%;
    align-items: center;
  }
  body:is([data-page="home"], [data-page="index"]) .hero .btn-group > .btn-launch-single {
    width: 220px;
    max-width: 100%;
    padding-inline: 1rem;
  }
}

/* About image hero: isolated from the homepage and other service pages. */
.service-hero.about-image-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  align-items: center;
  min-height: 650px;
  padding-block: clamp(4rem, 7vw, 6rem);
  background: var(--navy);
  color: #fff;
}
/* Reuse .hero-bg above so Home and About have identical image treatment. */
.about-image-hero > .wrap { width: 100%; }
.about-image-hero .service-title,
.about-image-hero .eyebrow,
.about-image-hero .service-intro p { color: #fff; }
.about-image-hero .service-intro { margin-inline: auto; }
.about-image-hero .hero-ctas { justify-content: center; }
@media (max-width: 640px) {
  .service-hero.about-image-hero {
    min-height: 600px;
    padding-block: 4rem;
  }
}

/* About: a symmetrical editorial system, isolated from shared site chrome. */
body[data-page="about"] {
  --about-body: clamp(1rem, .96rem + .2vw, 1.125rem);
  --about-title: clamp(2.375rem, 1.75rem + 2.4vw, 3.5rem);
  --about-heading: clamp(1.875rem, 1.4rem + 1.4vw, 2.75rem);
  --about-label: .75rem;
  --about-small: .875rem;
  --about-subtitle: 1.125rem;
  --about-2: .5rem;
  --about-4: 1rem;
  --about-5: 1.25rem;
  --about-6: 1.5rem;
  --about-8: 2rem;
  --about-10: 2.5rem;
  --about-12: 3rem;
  --about-16: 4rem;
  --about-20: 5rem;
  --about-24: 6rem;
}
.about-shell { width: min(100% - 2 * var(--gutter), 64rem); margin-inline: auto; }
.about-hero {
  padding-block: clamp(var(--about-16), 6vw, var(--about-24)) var(--about-10);
  text-align: center;
  background: var(--cream);
}
.about-eyebrow {
  margin: 0 0 var(--about-6);
  font-family: var(--font-body);
  font-size: var(--about-label);
  font-weight: 600;
  line-height: 1.6;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--navy);
  text-wrap: balance;
}
.about-hero h1,
.about-heading h2,
.about-partnership h2 {
  margin: 0;
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--navy);
  letter-spacing: -.025em;
  line-height: 1.15;
  text-wrap: balance;
}
.about-hero h1 { font-size: var(--about-title); }
.about-hero .about-lead {
  max-width: 42rem;
  margin: var(--about-6) auto var(--about-8);
  font-size: var(--about-body);
  line-height: 1.8;
  color: var(--fg-soft);
  text-wrap: balance;
}
.about-hero .btn,
.about-partnership .btn { min-height: 52px; padding-inline: var(--about-8); }
.about-settings {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 48rem;
  padding: var(--about-8) 0 0;
  margin: var(--about-12) auto 0;
  border-top: 1px solid var(--line);
  list-style: none;
  color: var(--navy);
  font-size: var(--about-small);
  line-height: 1.5;
}
.about-settings li { padding-inline: var(--about-5); margin: 0; align-content: center; text-wrap: balance; }
.about-settings li + li { border-left: 1px solid var(--line); }
.about-section { padding-block: clamp(var(--about-16), 6vw, var(--about-24)); }
.about-heading { text-align: center; max-width: 48rem; margin: 0 auto var(--about-12); }
.about-heading h2, .about-partnership h2 { font-size: var(--about-heading); }
.about-heading > p:not(.about-eyebrow) {
  max-width: 38rem;
  margin: var(--about-6) auto 0;
  font-size: var(--about-body);
  line-height: 1.75;
  color: var(--fg-soft);
  text-wrap: balance;
}
.about-purpose, .about-technology { background: var(--white); }
.about-copy-pair,
.about-care-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--about-10) var(--about-16);
  max-width: 58rem;
  margin-inline: auto;
}
.about-copy-pair p, .about-care-grid p, .about-capabilities p {
  margin: 0;
  font-size: var(--about-body);
  line-height: 1.8;
  color: var(--fg-soft);
  text-wrap: pretty;
}
.about-condition-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: var(--about-16);
  list-style: none;
  padding: 0;
  margin: 0 auto;
  max-width: 54rem;
}
.about-condition-grid li {
  display: flex;
  align-items: center;
  gap: var(--about-4);
  padding-block: var(--about-5);
  margin: 0;
  border-bottom: 1px solid var(--line);
  color: var(--navy);
  font-size: var(--about-body);
  line-height: 1.5;
}
.about-condition-grid li::before { content: ""; width: 4px; height: 4px; flex-shrink: 0; border-radius: 50%; background: var(--navy); }
.about-capabilities {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 58rem;
  margin: 0 auto;
  border-block: 1px solid var(--line);
}
.about-capabilities article { padding: var(--about-8) var(--about-10); }
.about-capabilities article:nth-child(even) { border-left: 1px solid var(--line); }
.about-capabilities article:nth-child(n+3) { border-top: 1px solid var(--line); }
.about-capabilities h3, .about-care-grid h3 {
  font-family: var(--font-body);
  font-size: var(--about-subtitle);
  font-weight: 600;
  line-height: 1.5;
  color: var(--navy);
  margin: 0 0 var(--about-2);
}
.about-capabilities sup { font-size: .6em; }
.about-note {
  max-width: 42rem;
  margin: var(--about-8) auto var(--about-4);
  color: var(--fg-soft);
  font-size: var(--about-small);
  line-height: 1.7;
  text-align: center;
  text-wrap: balance;
}
.about-text-link {
  width: fit-content;
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--about-2);
  margin-inline: auto;
  color: var(--navy);
  font-size: var(--about-small);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: .35em;
}
.about-text-link:hover { color: var(--blue); }
.about-text-link:focus-visible { outline: 2px solid var(--navy); outline-offset: 4px; }
.about-care-grid article { border-top: 1px solid var(--line); padding-top: var(--about-6); }
.about-partnership { text-align: center; background: var(--navy); }
.about-partnership .about-eyebrow { color: var(--gold); }
.about-partnership h2 { color: #fff; }
.about-partnership .about-shell > p:not(.about-eyebrow) {
  max-width: 40rem;
  margin: var(--about-6) auto var(--about-8);
  font-size: var(--about-body);
  line-height: 1.8;
  color: rgba(255,255,255,.85);
  text-wrap: balance;
}
/* One centered CTA stack with no leftover phone-label space. */
.schedule-strip,
.section-navy + .schedule-strip {
  padding-block: clamp(3.5rem, 6vw, 5rem);
}
.schedule-strip > .container,
.schedule-strip > .wrap,
.schedule-strip .strip-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.75rem;
  text-align: center;
}
.schedule-strip > .container > *,
.schedule-strip > .wrap > *,
.schedule-strip .strip-inner > * { margin-block: 0; }
.schedule-strip .strip-inner { width: 100%; }
.schedule-strip h2 {
  max-width: 24ch;
  text-wrap: balance;
}
.schedule-strip .eyebrow { margin: 0; }
.schedule-strip .btn-row,
.schedule-strip .strip-ctas {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0;
}
.schedule-strip .btn-launch-single,
.btn-launch-single {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
  min-height: 52px;
}
.schedule-strip .btn-launch-single:hover,
.btn-launch-single:hover {
  background: var(--navy-deep);
  border-color: var(--navy-deep);
  color: #fff;
}
@media (max-width: 640px) {
  .about-hero h1 { font-size: clamp(2rem, 8.5vw, 2.375rem); }
  .about-eyebrow { margin-bottom: var(--about-5); letter-spacing: .12em; }
  .about-settings { grid-template-columns: 1fr; gap: var(--about-4); margin-top: var(--about-10); padding-top: var(--about-6); }
  .about-settings li + li { border-left: 0; }
  .about-heading { margin-bottom: var(--about-8); }
  .about-copy-pair, .about-care-grid, .about-condition-grid, .about-capabilities { grid-template-columns: 1fr; gap: var(--about-6); }
  .about-condition-grid { gap: 0; }
  .about-capabilities { gap: 0; }
  .about-capabilities article { padding: var(--about-6) 0; }
  .about-capabilities article:nth-child(even) { border-left: 0; }
  .about-capabilities article + article { border-top: 1px solid var(--line); }
}

/* Shared typography rhythm for the primary pages (including Home/Insurance).
   Presentation only: preserve section layouts, imagery, colors and behavior. */
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(h1, h2) {
  font-family: var(--font-display);
  font-weight: 400;
  font-optical-sizing: auto;
  font-variation-settings: "opsz" 48, "SOFT" 100;
}
body:is([data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(.hero, .service-hero) h1[class] {
  font-size: var(--type-h1);
  line-height: 1.12;
  letter-spacing: -.02em;
  margin-block: 0 var(--rhythm-copy);
}
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(h2.display, h2) {
  font-size: var(--type-h2);
  line-height: 1.15;
  letter-spacing: -.015em;
}
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(.eyebrow, .card-eyebrow) {
  font-family: var(--font-body);
  font-size: var(--type-label);
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: var(--type-label-tracking);
  text-transform: uppercase;
}
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(.body, .body-lg, .lede, .prose, .service-intro p, .ref-hero-sub, .hero-tag, .provider-bio, .card-grid .card p, .facility-contact-intro p) {
  font-family: var(--font-body);
  font-size: var(--type-body);
  font-weight: 400;
  line-height: var(--type-body-leading);
}
/* These two legacy inline declarations are intentionally overridden, not
   the paragraph's inline color or any markup/content. */
body[data-page="about"] .access-block > p {
  font-size: var(--type-body) !important;
  line-height: var(--type-body-leading) !important;
}
body:is([data-page="home"], [data-page="index"], [data-page="providers"], [data-page="contact"]) .hero-tag {
  letter-spacing: normal;
}
body:is([data-page="home"], [data-page="index"], [data-page="providers"]) .hero-tag em {
  font-family: var(--font-body);
  font-size: 1em;
  letter-spacing: normal;
}
/* The existing desktop/mobile navigation and button sizes remain shared. */
.nav-links a { font-weight: 500; }

body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(.title-block, .qa-header) {
  margin-bottom: var(--rhythm-heading);
}
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(.title-block, .qa-header, .split-body, .access-block, .service-hero-inner, .hero-inner-inner) > .eyebrow {
  margin-block: 0 var(--rhythm-label);
}
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(.title-block, .qa-header, .split-body, .access-block, .facility-contact-intro) > h2 {
  margin-block: 0 var(--rhythm-copy);
}
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) :is(.prose, .split-body, .facility-contact-intro) > p + p {
  margin-top: var(--rhythm-paragraph);
}
body[data-page="about"] .prose > p { margin-bottom: var(--rhythm-paragraph); }
body[data-page="about"] .prose > p:last-child { margin-bottom: 0; }
body:is([data-page="home"], [data-page="index"], [data-page="providers"], [data-page="contact"], [data-page="referrers"]) .hero-eyebrow {
  margin-bottom: var(--rhythm-label);
}
body:is([data-page="home"], [data-page="index"]) .hero h1 { margin-bottom: var(--rhythm-copy); }
body:is([data-page="home"], [data-page="index"], [data-page="providers"], [data-page="contact"], [data-page="referrers"]) :is(.hero-tag, .ref-hero-sub) {
  margin-block: 0 var(--rhythm-cta);
}
body[data-page="about"] .service-intro p { margin-block: 0; }
body[data-page="about"] .hero-ctas { margin-top: var(--rhythm-cta); }
body[data-page="services"] .hero-inner-inner { gap: 0; }
body:is([data-page="home"], [data-page="index"], [data-page="about"], [data-page="providers"], [data-page="services"], [data-page="contact"], [data-page="referrers"]) .schedule-strip :is(.container, .wrap, .strip-inner) {
  gap: var(--rhythm-copy);
}
