:root{
  --navy:#0E2C33;
  --navy-2:#123842;
  /* Brand palette (2026 refresh): deep navy, clinical blue, muted seafoam,
     and a very sparing lime-green accent inspired by the legacy logo.
     --sand and --terracotta are kept as variable names for backward
     compatibility with existing markup/pages, but now resolve to the new
     palette so the whole site shares one consistent system. */
  --clinical-blue:#2C6E8E;
  --seafoam:#7FA99B;
  --seafoam-tint:#E4EEEA;
  --lime:#A8C93B;
  --sand: var(--seafoam-tint);
  --terracotta: var(--clinical-blue);
  --off-white:#FAF8F4;
  --ink:#161A1A;
  --line: rgba(14,44,51,0.12);
  --shadow: 0 20px 60px rgba(14,44,51,0.12);
  --ease: cubic-bezier(.22,.9,.28,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter', -apple-system, sans-serif;
  background:var(--off-white);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,.serif{
  font-family:'Fraunces', Georgia, serif;
  font-weight:500;
  letter-spacing:-0.01em;
  color:var(--navy);
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.container{max-width:1180px; margin:0 auto; padding:0 24px;}
section{position:relative;}

/* Visible focus states - WCAG 2.2 AA. Lime is reserved almost entirely for
   this functional purpose, which keeps the accent "very sparing" while
   still giving every interactive element a highly legible focus ring. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid var(--lime);
  outline-offset:3px;
  border-radius:4px;
}

@media (prefers-reduced-motion: reduce){
  *{animation:none !important; transition:none !important;}
  html{scroll-behavior:auto;}
}

/* ---------- ANNOUNCEMENT BAR ---------- */
.announcement-bar{
  background:var(--navy); color:var(--off-white);
  font-size:.8rem; padding:9px 0;
}
.announcement-bar .container{
  display:flex; align-items:center; justify-content:center; gap:22px; flex-wrap:wrap; text-align:center;
}
.announcement-bar .notice{opacity:.92;}
.announcement-bar .emergency{
  display:inline-flex; align-items:center; gap:8px; font-weight:600;
}
.announcement-bar .emergency::before{
  content:''; width:7px; height:7px; border-radius:50%; background:var(--lime); flex-shrink:0;
}
.announcement-bar .emergency a{text-decoration:underline; text-underline-offset:2px;}

/* ---------- NAV ---------- */
header{
  position:sticky; top:0; z-index:100;
  background:rgba(250,248,244,0.96);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  padding:22px 0;
  border-bottom:1px solid transparent;
  transition:padding .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
header.scrolled{
  padding:12px 0;
  box-shadow:0 4px 24px rgba(14,44,51,0.06);
  border-bottom-color:var(--line);
}
.nav-row{display:flex; align-items:center; justify-content:space-between;}
.logo{font-family:'Fraunces',serif; font-size:1.25rem; font-weight:600; color:var(--navy); display:flex; align-items:center; gap:12px;}
.logo-badge{height:56px; width:auto; display:block; transition:height .35s var(--ease);}
header.scrolled .logo-badge{height:42px;}
.logo-wordmark{display:flex; flex-direction:column; line-height:1.15;}
.logo-wordmark .name{font-family:'Fraunces',serif; font-weight:500; font-size:1.05rem; color:var(--navy);}
.logo-wordmark .name span{color:var(--terracotta); font-style:italic;}
.logo-wordmark .sub{display:block; font-family:'Inter',sans-serif; font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--terracotta); font-weight:600; margin-top:2px;}
nav ul{list-style:none; display:flex; gap:34px;}
nav a{font-size:.92rem; font-weight:500; color:var(--navy); opacity:.85; position:relative;}
nav a::after{content:''; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:var(--terracotta); transition:width .3s var(--ease);}
nav a:hover::after{width:100%;}
.nav-cta{display:flex; align-items:center; gap:18px;}
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:13px 26px; border-radius:100px; font-size:.9rem; font-weight:600;
  background:var(--navy); color:var(--off-white);
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
  border:1px solid var(--navy);
  cursor:pointer;
}
.btn:hover{transform:scale(1.03); box-shadow:0 10px 30px rgba(14,44,51,.25);}
.btn-ghost{background:transparent; color:var(--navy); border:1px solid var(--line);}
.btn-terracotta{background:var(--terracotta); border-color:var(--terracotta); color:#fff;}
.phone-pill{font-size:.85rem; font-weight:600; color:var(--navy); opacity:.9;}
.menu-toggle{display:none;}

/* ---------- HERO ---------- */
.hero{
  min-height:calc(100vh - 140px); min-height:calc(100dvh - 140px); display:flex; align-items:center;
  padding-top:60px; padding-bottom:80px;
  background:
    radial-gradient(ellipse 60% 50% at 80% 20%, rgba(44,110,142,0.10), transparent 60%),
    radial-gradient(ellipse 70% 60% at 10% 80%, rgba(14,44,51,0.06), transparent 60%),
    var(--off-white);
  overflow:hidden;
}
.hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:60px; align-items:center;}
.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:.78rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--terracotta); margin-bottom:22px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--terracotta);}
.hero-headline{
  font-size:clamp(2.4rem, 5vw, 4.1rem);
  line-height:1.05;
  position:relative;
  min-height:2.2em;
}
.headline-line{
  display:block; position:absolute; top:0; left:0; width:100%;
  opacity:0; transform:translateY(16px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.headline-line.active{position:relative; opacity:1; transform:translateY(0);}
.headline-line em{font-style:italic; color:var(--terracotta);}
.hero-sub{
  margin-top:28px; font-size:1.15rem; max-width:520px; color:var(--ink); opacity:.8;
}
.hero-actions{display:flex; align-items:center; gap:18px; margin-top:38px; flex-wrap:wrap;}
.credentials{
  margin-top:52px; display:flex; gap:34px; flex-wrap:wrap;
}
.credential{font-size:.82rem; opacity:.75; padding-left:16px; border-left:2px solid var(--sand);}
.credential strong{display:block; font-family:'Fraunces',serif; font-size:1.4rem; color:var(--navy); font-weight:500;}

.hero-visual{
  position:relative; aspect-ratio:4/5; border-radius:28px; overflow:hidden;
  background:linear-gradient(160deg, var(--navy) 0%, var(--navy-2) 60%, #1a4b57 100%);
  box-shadow:var(--shadow);
}
.hero-photo{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:8% center;}
.hero-visual .glow{
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 30% 30%, rgba(228,238,234,0.25), transparent 45%),
    radial-gradient(circle at 75% 70%, rgba(44,110,142,0.35), transparent 40%);
  animation:drift 12s ease-in-out infinite alternate;
}
@keyframes drift{
  from{transform:translate(0,0) scale(1);}
  to{transform:translate(-2%, 2%) scale(1.06);}
}
.hero-visual .rings{position:absolute; inset:0; display:flex; align-items:center; justify-content:center;}
.ring{
  position:absolute; border:1px solid rgba(232,221,199,0.28); border-radius:50%;
  animation:pulse 6s var(--ease) infinite;
}
.ring:nth-child(1){width:60%; aspect-ratio:1; animation-delay:0s;}
.ring:nth-child(2){width:80%; aspect-ratio:1; animation-delay:1.2s;}
.ring:nth-child(3){width:100%; aspect-ratio:1; animation-delay:2.4s;}
@keyframes pulse{
  0%{transform:scale(.85); opacity:0;}
  30%{opacity:.7;}
  100%{transform:scale(1.05); opacity:0;}
}
.hero-illustration{position:absolute; inset:0; width:100%; height:100%;}
.placeholder-tag{
  position:absolute; top:22px; left:22px; z-index:2;
  font-size:.68rem; font-weight:600; letter-spacing:.04em; color:var(--off-white);
  background:rgba(0,0,0,0.28); padding:6px 12px; border-radius:100px;
}
.hero-seal{
  position:absolute; top:22px; right:22px; width:64px; height:64px; border-radius:50%;
  background:rgba(250,248,244,0.92); display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px rgba(0,0,0,0.25); overflow:hidden;
}
.hero-seal img{width:82px; height:auto; margin-top:-4px;}
.hero-visual .caption{
  position:absolute; left:24px; right:24px; bottom:24px;
  color:var(--off-white); font-size:.85rem; opacity:.85;
  padding:16px 18px; border-radius:14px;
  background:rgba(255,255,255,0.08); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,0.12);
}

/* ---------- TRUST STRIP ---------- */
.trust-strip{background:var(--seafoam-tint); padding:52px 0;}
.trust-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:36px;}
.trust-item{display:flex; align-items:flex-start; gap:16px;}
.trust-icon{
  flex-shrink:0; width:44px; height:44px; border-radius:50%;
  background:var(--navy); color:var(--off-white);
  display:flex; align-items:center; justify-content:center;
}
.trust-icon svg{width:20px; height:20px;}
.trust-item h3{font-size:1.02rem; font-family:'Inter',sans-serif; font-weight:700; color:var(--navy); margin-bottom:4px;}
.trust-item p{font-size:.86rem; opacity:.72; line-height:1.5;}

/* ---------- FIND CARE FOR YOUR PAIN (feature cards) ---------- */
.feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:20px;}
.feature-card{
  display:block; padding:32px; border-radius:20px; background:#fff;
  border:1px solid var(--line); box-shadow:0 1px 0 rgba(14,44,51,.02);
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.feature-card:hover, .feature-card:focus-visible{
  transform:translateY(-6px);
  box-shadow:0 20px 44px rgba(14,44,51,.12);
  border-color:var(--clinical-blue);
}
.feature-card .feature-icon{
  width:52px; height:52px; border-radius:14px; margin-bottom:20px;
  background:var(--seafoam-tint); display:flex; align-items:center; justify-content:center;
}
.feature-card .feature-icon svg{width:24px; height:24px; color:var(--clinical-blue);}
.feature-card h3{font-family:'Fraunces',serif; font-size:1.2rem; color:var(--navy); margin-bottom:8px; font-weight:500;}
.feature-card p{font-size:.9rem; opacity:.72; margin-bottom:14px;}
.feature-card .feature-link{font-size:.85rem; font-weight:600; color:var(--clinical-blue); display:inline-flex; align-items:center; gap:6px;}
.feature-card .feature-link svg{width:14px; height:14px; transition:transform .3s var(--ease);}
.feature-card:hover .feature-link svg{transform:translateX(4px);}
.feature-note{font-size:.85rem; opacity:.62; text-align:center; max-width:560px; margin:0 auto;}

/* ---------- CARE BEGINS BY LISTENING (process) ---------- */
.path-num{background:var(--navy);}
.path-steps::before{background:repeating-linear-gradient(90deg, var(--lime) 0 8px, transparent 8px 16px); opacity:.5;}

/* ---------- DARK PATIENT RESOURCES ---------- */
.resources-dark{background:var(--navy); color:var(--off-white);}
.resources-dark .section-head h2{color:var(--off-white);}
.resources-dark .section-head p{color:var(--off-white); opacity:.72;}
.resources-dark .eyebrow{color:var(--seafoam);}
.resources-dark .eyebrow::before{background:var(--seafoam);}
.resource-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.resource-card{
  padding:32px; border-radius:20px;
  background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.12);
  transition:transform .3s var(--ease), background .3s var(--ease), border-color .3s var(--ease);
}
.resource-card:hover, .resource-card:focus-visible{
  transform:translateY(-4px);
  background:rgba(255,255,255,0.08);
  border-color:var(--seafoam);
}
.resource-card h3{font-family:'Fraunces',serif; font-size:1.15rem; margin-bottom:10px; font-weight:500; color:var(--off-white);}
.resource-card p{font-size:.88rem; opacity:.7; margin-bottom:16px;}
.resource-card .resource-link{font-size:.85rem; font-weight:600; color:var(--seafoam); display:inline-flex; align-items:center; gap:6px;}

/* ---------- MAP FACADE (click-to-load, privacy-conscious) ---------- */
.map-facade{
  position:relative; border-radius:20px; overflow:hidden; aspect-ratio:16/10;
  background:
    linear-gradient(160deg, var(--navy-2), var(--navy)),
    repeating-linear-gradient(45deg, rgba(255,255,255,0.03) 0 2px, transparent 2px 14px);
  display:flex; align-items:center; justify-content:center;
}
.map-facade button{
  display:inline-flex; align-items:center; gap:10px; padding:14px 26px; border-radius:100px;
  background:var(--off-white); color:var(--navy); font-weight:600; font-size:.88rem; border:none; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.map-facade button:hover{transform:scale(1.04); box-shadow:0 12px 28px rgba(0,0,0,.25);}
.map-facade .map-hint{
  position:absolute; bottom:18px; left:18px; right:18px; text-align:center;
  font-size:.72rem; color:var(--off-white); opacity:.55;
}
.map-facade iframe{position:absolute; inset:0; width:100%; height:100%; border:0;}

/* ---------- LEGAL / LONG-FORM PAGE CONTENT ---------- */
.page-content h2{
  font-size:1.5rem; margin-top:44px; margin-bottom:14px; font-weight:500;
}
.page-content h2:first-child{margin-top:0;}
.page-content h3{
  font-size:1.15rem; margin-top:28px; margin-bottom:10px; font-weight:600;
  font-family:'Inter',sans-serif; color:var(--navy);
}
.page-content p{margin-bottom:16px;}
.page-content ul, .page-content ol{margin:0 0 16px 22px;}
.page-content li{margin-bottom:8px;}
.page-content strong{color:var(--navy);}
.page-content a{color:var(--clinical-blue); text-decoration:underline;}
.page-content table{
  width:100%; border-collapse:collapse; margin:0 0 20px; font-size:.92rem;
}
.page-content th, .page-content td{
  text-align:left; padding:10px 14px; border:1px solid var(--line); vertical-align:top;
}
.page-content th{background:var(--seafoam-tint); font-weight:600; color:var(--navy);}
.page-content hr{border:0; border-top:1px solid var(--line); margin:32px 0;}
.page-content .doc-meta{
  font-size:.85rem; opacity:.7; margin-bottom:28px;
}
.page-content .counsel-note{
  background:#FDF3E7; border-left:3px solid var(--clinical-blue); padding:14px 18px;
  font-size:.85rem; font-style:italic; color:var(--navy); margin:18px 0; border-radius:0 8px 8px 0;
}
.draft-banner{
  background:#3a2a12; color:#FDF3E7; text-align:center; font-size:.85rem;
  font-weight:600; padding:12px 20px; letter-spacing:.02em;
}

/* ---------- FOOTER LEGAL ---------- */
.footer-legal{
  display:flex; flex-wrap:wrap; gap:8px 22px; font-size:.8rem; opacity:.7; margin-top:18px;
}
.footer-legal .pending{opacity:.6; font-size:.72rem;}
.footer-disclaimer{
  margin-top:24px; padding-top:24px; border-top:1px solid var(--line);
  font-size:.78rem; opacity:.6; max-width:720px;
}

/* ---------- REVEAL SYSTEM ---------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.stagger > *{transition-delay:calc(var(--i) * 70ms);}

/* ---------- SECTION HEADERS ---------- */
.section-pad{padding:110px 0;}
.section-head{max-width:640px; margin-bottom:56px;}
.section-head .eyebrow{margin-bottom:16px;}
.section-head h2{font-size:clamp(1.9rem, 3.4vw, 2.7rem); line-height:1.15;}
.section-head p{margin-top:16px; opacity:.75; font-size:1.05rem;}

/* ---------- THE TURN (empathy) ---------- */
.turn{background:var(--navy); color:var(--off-white);}
.turn h2{color:var(--off-white); font-size:clamp(1.7rem,3.2vw,2.5rem); font-weight:400; line-height:1.4;}
.turn h2 em{font-style:italic; color:var(--sand);}
.turn-grid{display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;}
.turn-list{list-style:none; margin-top:8px;}
.turn-list li{
  display:flex; gap:14px; padding:16px 0; border-bottom:1px solid rgba(250,248,244,0.14);
  font-size:.98rem; opacity:.85;
}
.turn-list li::before{content:'·'; color:var(--terracotta); flex-shrink:0;}

/* ---------- METHOD / STATS ---------- */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:20px;}
.stat{padding:28px 24px; background:#fff; border-radius:18px; border:1px solid var(--line);}
.stat .num{font-family:'Fraunces',serif; font-size:2.4rem; color:var(--terracotta); font-weight:500;}
.stat .label{font-size:.85rem; opacity:.7; margin-top:6px;}

/* ---------- CONDITION EXPLORER ---------- */
.explorer{background:#fff; border:1px solid var(--line); border-radius:28px; padding:44px; box-shadow:var(--shadow);}
.chip-row{display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px;}
.chip{
  padding:10px 20px; border-radius:100px; border:1px solid var(--line);
  font-size:.85rem; font-weight:600; cursor:pointer; background:var(--off-white);
  transition:all .25s var(--ease);
}
.chip.active, .chip:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
.condition-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.condition-card{
  padding:22px; border-radius:16px; border:1px solid var(--line); background:var(--off-white);
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.condition-card:hover{transform:translateY(-4px); box-shadow:0 16px 34px rgba(14,44,51,.1); border-color:var(--terracotta);}
.condition-card h4{font-family:'Fraunces',serif; font-weight:500; color:var(--navy); font-size:1.05rem; margin-bottom:6px;}
.condition-card p{font-size:.85rem; opacity:.68;}
.condition-card[data-cat]{display:block;}
.condition-card.hide{display:none;}
.condition-card .testi{margin-top:12px; padding-top:12px; border-top:1px solid var(--line); font-style:italic; font-size:.78rem; opacity:.75;}
.no-results{grid-column:1/-1; text-align:center; padding:30px; opacity:.6; font-size:.9rem; display:none;}
.no-results.show{display:block;}

/* ---------- TEAM ---------- */
.team-grid-solo{display:flex; align-items:center; gap:48px; flex-wrap:wrap; justify-content:center;}
.team-grid-solo .team-card{width:220px; flex-shrink:0;}
.team-grid-solo .team-cta{max-width:340px; text-align:left;}
.team-grid-solo .team-cta p{margin-bottom:16px; color:var(--ink-soft, #5a5a52);}
@media (max-width:720px){.team-grid-solo{flex-direction:column; text-align:center;} .team-grid-solo .team-cta{text-align:center;}}
.team-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.team-card{text-align:left;}
.team-photo{
  aspect-ratio:3/4; border-radius:16px; overflow:hidden; margin-bottom:16px;
  background:linear-gradient(160deg, var(--sand), #d8c9a8);
  position:relative;
  transition:transform .4s var(--ease);
}
.team-card:hover .team-photo{transform:translateY(-6px);}
.team-photo .initials{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-family:'Fraunces',serif; font-size:2.4rem; color:var(--navy); opacity:.35;
}
.team-photo img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:top center;
}
.team-card h4{font-size:.98rem; color:var(--navy); font-weight:700; font-family:'Inter',sans-serif;}
.team-card .cred{font-size:.75rem; opacity:.6; margin-top:2px;}
.team-card .bio{font-size:.82rem; opacity:.72; margin-top:10px; line-height:1.55;}

/* ---------- PATH ---------- */
.path{background:var(--sand); border-radius:32px; padding:60px; margin:0 auto;}
.path-steps{display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:40px; position:relative;}
.path-steps::before{
  content:''; position:absolute; top:22px; left:8%; right:8%; height:1px;
  background:repeating-linear-gradient(90deg, var(--navy) 0 8px, transparent 8px 16px);
  opacity:.35;
}
.path-step{position:relative;}
.path-num{
  width:46px; height:46px; border-radius:50%; background:var(--navy); color:#fff;
  display:flex; align-items:center; justify-content:center; font-family:'Fraunces',serif; font-size:1.2rem;
  margin-bottom:20px; position:relative; z-index:2;
}
.path-step h4{font-size:1.1rem; color:var(--navy); margin-bottom:8px;}
.path-step p{font-size:.9rem; opacity:.75;}

/* ---------- LOCATIONS / CLOSE ---------- */
.locations{display:grid; grid-template-columns:1fr 1fr; gap:24px;}
.location-card{
  padding:32px; border-radius:20px; background:var(--navy); color:var(--off-white);
  display:flex; flex-direction:column; gap:14px;
}
.location-card.alt{background:var(--navy-2);}
.location-card .tag{font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; color:var(--sand); opacity:.8;}
.location-card h4{color:#fff; font-size:1.3rem;}
.location-card address{font-style:normal; font-size:.95rem; opacity:.85;}
.location-card .btn{margin-top:10px; align-self:flex-start;}

footer{padding:60px 0 40px; border-top:1px solid var(--line); margin-top:60px;}
.footer-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:20px;}
.footer-row p{font-size:.82rem; opacity:.6;}

/* mobile sticky CTA */
.mobile-cta{
  display:none; position:fixed; bottom:0; left:0; right:0; z-index:200;
  background:var(--navy); padding:14px 20px; align-items:center; justify-content:space-between;
  box-shadow:0 -8px 24px rgba(0,0,0,.15);
}
.mobile-cta a{color:#fff; font-weight:600; font-size:.95rem;}
.mobile-cta .btn-terracotta{padding:10px 22px;}

@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr;}
  .hero-visual{aspect-ratio:16/10;}
  nav ul, .nav-cta .btn-ghost{display:none;}
  .phone-pill{font-size:.8rem;}
  .logo-badge{height:40px;}
  .logo-wordmark .name{font-size:.88rem;}
  .logo-wordmark .sub{font-size:.6rem;}
  .turn-grid{grid-template-columns:1fr; gap:30px;}
  .stats{grid-template-columns:repeat(2,1fr);}
  .condition-grid{grid-template-columns:repeat(2,1fr);}
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .locations{grid-template-columns:1fr;}
  .path{padding:36px 24px;}
  .path-steps{grid-template-columns:1fr; gap:26px;}
  .path-steps::before{display:none;}
  .mobile-cta{display:flex;}
  body{padding-bottom:70px;}
  .section-pad{padding:70px 0;}
  .trust-grid{grid-template-columns:1fr; gap:26px;}
  .feature-grid{grid-template-columns:1fr;}
  .resource-grid{grid-template-columns:1fr;}
  .announcement-bar .container{gap:8px 18px; font-size:.74rem;}
}


/* === MOBILE NAV REBUILD (ECD Tier 1) ============================== */
.mobile-call,
.nav-toggle{display:none;}

.nav-toggle{
  background:none; border:0; padding:10px; margin:0; cursor:pointer;
  width:48px; height:48px; align-items:center; justify-content:center;
  color:var(--navy, #12333c); border-radius:12px;
}
.nav-toggle:focus-visible{outline:2px solid var(--teal, #2b6d84); outline-offset:2px;}
.nav-toggle-bars{display:block; width:24px; height:16px; position:relative;}
.nav-toggle-bars span{
  position:absolute; left:0; height:2px; width:100%; background:currentColor;
  border-radius:2px; transition:transform .25s ease, opacity .2s ease;
}
.nav-toggle-bars span:nth-child(1){top:0;}
.nav-toggle-bars span:nth-child(2){top:7px;}
.nav-toggle-bars span:nth-child(3){top:14px;}
body.nav-open .nav-toggle-bars span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.nav-open .nav-toggle-bars span:nth-child(2){opacity:0;}
body.nav-open .nav-toggle-bars span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-call{
  width:48px; height:48px; align-items:center; justify-content:center;
  color:var(--navy, #12333c); border-radius:12px; text-decoration:none;
  border:1px solid rgba(18,51,60,.18);
}
.mobile-call:focus-visible{outline:2px solid var(--teal, #2b6d84); outline-offset:2px;}

@media (max-width:900px){
  #siteHeader .nav-row{
    display:flex; align-items:center; justify-content:space-between;
    gap:10px; flex-wrap:nowrap; min-height:64px;
  }
  #siteHeader .logo{flex:1 1 auto; min-width:0; display:flex; align-items:center; gap:10px;}
  #siteHeader .logo img,
  #siteHeader .logo .logo-badge{flex:0 0 auto; max-height:40px; width:auto;}

  .mobile-call,
  .nav-toggle{display:inline-flex; flex:0 0 auto;}

  .nav-drawer{
    position:absolute; left:0; right:0; top:100%;
    background:var(--cream, #faf8f4);
    border-top:1px solid rgba(18,51,60,.10);
    box-shadow:0 18px 40px rgba(18,51,60,.14);
    padding:8px 20px 24px;
    display:none; flex-direction:column; gap:4px;
    max-height:calc(100vh - 64px); overflow-y:auto;
    z-index:60;
  }
  body.nav-open .nav-drawer{display:flex;}
  #siteHeader{position:relative;}

  .nav-drawer nav{width:100%;}
  .nav-drawer nav ul{
    list-style:none; margin:0; padding:0;
    display:flex; flex-direction:column;
  }
  .nav-drawer nav li{margin:0;}
  .nav-drawer nav a{
    display:block; width:100%;
    padding:15px 4px; min-height:48px;
    font-size:1.05rem; text-decoration:none;
    color:var(--navy, #12333c);
    border-bottom:1px solid rgba(18,51,60,.08);
  }
  .nav-drawer nav a:active{background:rgba(18,51,60,.04);}

  .nav-drawer > div{
    display:flex; flex-direction:column; gap:10px;
    margin-top:18px; width:100%;
  }
  .nav-drawer > div > a{
    display:flex; align-items:center; justify-content:center;
    width:100%; min-height:50px; text-align:center;
  }
  .nav-drawer > div > a[href^="tel:"]{
    order:3; font-weight:600; text-decoration:none;
    color:var(--navy, #12333c);
  }
}

@media (min-width:901px){
  .nav-drawer{display:contents;}
}

@media (max-width:900px){
  /* Drawer overrides the legacy "hide on mobile" rules */
  .nav-drawer .nav-cta{display:flex !important; flex-direction:column; gap:10px; margin-top:18px; width:100%;}
  .nav-drawer .nav-cta > a{display:flex !important; align-items:center; justify-content:center; width:100%; min-height:50px; text-align:center;}
  .nav-drawer .nav-cta > a[href^="tel:"]{order:3; font-weight:600; color:var(--navy,#12333c); text-decoration:none;}
}

@media (max-width:900px){
  /* Kill legacy desktop nav gap inside the drawer */
  .nav-drawer nav ul{gap:0 !important; row-gap:0 !important; column-gap:0 !important;}
  .nav-drawer nav li{margin:0 !important;}

  /* Hero visual gets a proper portrait crop on phones */
  .hero-visual{aspect-ratio:4/5 !important; min-height:0;}
  .hero-photo{object-position:12% center;}
}
/* === END MOBILE NAV REBUILD ======================================= */


/* === PHI notice on contact form (ECD Tier 1) === */
.phi-notice{
  background:#fff8ec;
  border:1px solid #e6d3a8;
  border-left:4px solid #b98a2e;
  border-radius:10px;
  padding:14px 16px;
  margin:0 0 20px;
  font-size:.92rem;
  line-height:1.55;
  color:#4a4034;
}
.phi-notice strong{display:block; margin-bottom:4px; color:#7a5a12;}


/* === Mobile CTA tap targets (ECD Tier 2) === */
@media (max-width:980px){
  .mobile-cta{gap:12px; padding:10px 16px;}
  .mobile-cta a{display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 14px;}
  .mobile-cta a[href^="tel:"]{flex:0 0 auto;}
  .mobile-cta .btn-terracotta{flex:1 1 auto; min-height:44px;}
}


/* === Insurance section (ECD Tier 3) === */
.insurance-grid{display:grid; grid-template-columns:1.4fr 1fr; gap:40px; margin-top:8px;}
.insurance-col h3{font-size:1.05rem; letter-spacing:.04em; text-transform:uppercase; color:var(--teal,#2b6d84); margin:0 0 16px; padding-bottom:10px; border-bottom:1px solid rgba(18,51,60,.12);}
.insurance-list{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:8px 20px;}
.insurance-col:last-child .insurance-list{grid-template-columns:1fr;}
.insurance-list li{position:relative; padding-left:20px; line-height:1.5; font-size:.95rem;}
.insurance-list li::before{content:''; position:absolute; left:0; top:.55em; width:7px; height:7px; border-radius:50%; background:var(--teal,#2b6d84); opacity:.55;}
.insurance-note{margin-top:32px; padding:16px 18px; background:#fff8ec; border:1px solid #e6d3a8; border-left:4px solid #b98a2e; border-radius:10px; font-size:.92rem; line-height:1.6; color:#4a4034;}
.insurance-note strong{color:#7a5a12;}
.insurance-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:28px;}
@media (max-width:820px){
  .insurance-grid{grid-template-columns:1fr; gap:32px;}
  .insurance-list{grid-template-columns:1fr;}
  .insurance-cta .btn{width:100%; justify-content:center; text-align:center;}
}


/* === Contact options (form removed) === */
.contact-options{display:flex; flex-direction:column; gap:22px; margin-top:26px;}
.contact-option{padding-bottom:20px; border-bottom:1px solid rgba(255,255,255,.14);}
.contact-option:last-child{border-bottom:0; padding-bottom:0;}
.contact-option h5{margin:0 0 6px; font-size:1rem; letter-spacing:.02em;}
.contact-option p{margin:0 0 12px; opacity:.85; font-size:.9rem; line-height:1.55;}
.contact-option .btn{display:inline-flex; align-items:center; justify-content:center; min-height:44px;}
.contact-privacy{margin-top:24px; padding-top:18px; border-top:1px solid rgba(255,255,255,.14); font-size:.82rem; line-height:1.6; opacity:.8;}

/* === Buttons on the dark contact card (contrast fix) === */
.location-card.alt .btn{background:var(--cream,#faf8f4); color:var(--navy,#0e2c33); border:1px solid var(--cream,#faf8f4);}
.location-card.alt .btn:hover{background:#fff; border-color:#fff;}
.location-card.alt .btn-ghost{background:transparent; color:#faf8f4; border:1px solid rgba(250,248,244,.55);}
.location-card.alt .btn-ghost:hover{background:rgba(250,248,244,.10); border-color:rgba(250,248,244,.85);}

/* Cards size to their own content instead of stretching */
.locations{align-items:start;}


/* === First Visit page === */
.fv-highlight{background:var(--navy,#12333c); color:var(--cream,#faf8f4); border-radius:18px; padding:28px 30px; margin:8px 0 40px;}
.fv-highlight h2{margin:0 0 10px; font-size:1.35rem; color:var(--cream,#faf8f4);}
.fv-highlight p{margin:0; font-size:1.02rem; line-height:1.6; opacity:.92;}
.fv-highlight strong{color:#a8d5b5;}
.fv-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:36px 44px;}
.fv-item h2{font-size:1.15rem; margin:0 0 12px; padding-bottom:10px; border-bottom:1px solid rgba(18,51,60,.12); color:var(--teal,#2b6d84); letter-spacing:.02em;}
.fv-item p{margin:0 0 10px; line-height:1.62;}
.fv-item ul{margin:0 0 10px; padding-left:20px;}
.fv-item li{margin-bottom:6px; line-height:1.55;}
.fv-note{font-size:.9rem; opacity:.78;}
.fv-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:44px;}
@media (max-width:820px){
  .fv-grid{grid-template-columns:1fr; gap:32px;}
  .fv-cta .btn{width:100%; justify-content:center; text-align:center;}
}


/* ---------------------------------------------------------------------------
   Language switcher (Polylang)
   --------------------------------------------------------------------------- */
.lang-switch{display:flex;align-items:center;gap:.15rem;list-style:none;margin:0;padding:0;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.lang-switch li{margin:0}
.lang-switch li+li::before{content:"/";opacity:.35;margin-right:.15rem}
.lang-switch a{display:inline-block;padding:.35rem .3rem;color:inherit;opacity:.6;text-decoration:none;border-radius:4px}
.lang-switch a:hover,.lang-switch a:focus-visible{opacity:1;text-decoration:underline}
.lang-switch .current-lang a,.lang-switch li.current-lang a{opacity:1;text-decoration:underline;text-underline-offset:3px}
@media (max-width:900px){.lang-switch{font-size:.85rem}.lang-switch a{padding:.6rem .5rem}}

/* Keep the header on one line when Spanish labels run longer. */
.phone-pill{white-space:nowrap}
.lang-switch{flex:0 0 auto}
@media (min-width:901px) and (max-width:1280px){
  .nav-cta{gap:.5rem}
  .lang-switch{font-size:.7rem}
  .lang-switch a{padding:.35rem .2rem}
}

.nav-cta .btn{white-space:nowrap}
@media (min-width:901px) and (max-width:1440px){
  .nav-cta{gap:.5rem}
  .nav-cta .btn{padding-inline:1rem;font-size:.86rem}
  .lang-switch{font-size:.7rem}
  .lang-switch a{padding:.35rem .2rem}
}


/* ---------------------------------------------------------------------------
   Footer social icons
   --------------------------------------------------------------------------- */
.social-links{display:flex;align-items:center;gap:.35rem;margin:1.25rem 0 0}
.social-link{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;color:inherit;opacity:.6;transition:opacity .2s ease,background-color .2s ease}
.social-link svg{width:20px;height:20px;fill:currentColor}
.social-link:hover,.social-link:focus-visible{opacity:1;background:rgba(255,255,255,.1)}
.social-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.social-link{transition:none}}


/* Clinician licence + hospital privileges line on staff cards */
.team-card .license{margin:.4rem 0 .6rem;font-size:.74rem;line-height:1.45;letter-spacing:.01em;opacity:.62}


/* ---------------------------------------------------------------------------
   Language switcher on mobile
   The desktop switcher lives inside .nav-cta, which collapses into the drawer
   below 900px - so a Spanish speaker would have had to open the hamburger to
   find it. In Hialeah that is the wrong default, so a second copy sits in the
   always-visible mobile header bar next to the call icon. Exactly one is
   displayed at any width.
   --------------------------------------------------------------------------- */
.lang-switch--mobile{display:none}
@media (max-width:900px){
  .nav-drawer .nav-cta .lang-switch{display:none}
  .lang-switch--mobile{display:flex;margin-left:auto;margin-right:.15rem}
  .lang-switch--mobile a{padding:.6rem .45rem;font-size:.82rem;opacity:.75}
  .lang-switch--mobile .current-lang a{opacity:1}
}


/* ---------------------------------------------------------------------------
   Language switcher sits last in the header, after the appointment button.
   Between the nav and the phone number it read as more navigation and got
   lost; trailing the solid button it reads as a distinct utility control.
   --------------------------------------------------------------------------- */
@media (min-width:901px){
  .nav-cta .lang-switch{margin-left:.85rem;padding-left:.85rem;border-left:1px solid rgba(0,0,0,.14)}
}


/* ---------------------------------------------------------------------------
   The header row needs more room than the 1180px content container.
   Measured: with single-line nav labels the header needs ~1268px, so at 1180
   the browser was wrapping "Care for Your Pain" onto three lines. The header
   gets its own wider max-width; body content stays at 1180.
   --------------------------------------------------------------------------- */
@media (min-width:901px){
  .nav-row{max-width:1340px}
  nav ul a{white-space:nowrap}
  .nav-cta .phone-pill{white-space:nowrap}
}
@media (min-width:901px) and (max-width:1400px){
  nav ul{gap:1.15rem}
  .nav-cta{gap:.6rem}
  .nav-cta .lang-switch{margin-left:.6rem;padding-left:.6rem}
}

/* The logo must not be squeezed by the now-single-line nav. */
@media (min-width:901px){
  .nav-row{gap:1.5rem}
  .nav-row > .logo{flex:0 0 auto}
  .logo-wordmark .name{white-space:nowrap}
}


/* ---- Legal document pages ---- */
.page-content .legal-updated{font-size:.9rem;opacity:.7;margin-bottom:1.75rem}
.page-content .legal-notice{background:#f4f1ec;border-left:4px solid var(--accent,#b08d57);padding:1rem 1.15rem;font-size:.88rem;line-height:1.6;letter-spacing:.01em}
.page-content .legal-contact{background:#f7f6f3;padding:1rem 1.15rem;border-radius:6px;line-height:1.7}
.page-content .legal-placeholder{background:#fff4e5;border:1px dashed #c98a00;color:#7a5200;padding:.85rem 1.1rem;border-radius:6px}
.page-content h2{margin-top:2.25rem}
.page-content h3{margin-top:1.5rem}
