/* ============================================================
   SROSM Design System — tokens first, components after.
   Palette from the practice's actual brand (extracted from logo
   2026-08-11): charcoal #4D5153 + apple green #8FBF3B.
   Bright brand green is for accents/badges/numerals on charcoal;
   the text-safe accent is a deepened leaf green for links/CTAs
   (contrast-checked on white). Full guideline: vault note
   "SROSM Brand Guideline".
   Type: serif display (authority) over humanist sans (warmth).
   ============================================================ */

@font-face {
  font-family: "Fraunces";
  src: url("../assets/fonts/fraunces-var.woff2") format("woff2");
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Figtree";
  src: url("../assets/fonts/figtree-var.woff2") format("woff2");
  font-weight: 300 900;
  font-display: swap;
}

:root {
  --bone: #F7F8F5;          /* page ground — warm paper, hint of green */
  --bone-deep: #EEF0EA;     /* tinted section ground */
  --surface: #FFFFFF;
  --ink: #2B2F31;           /* brand charcoal, deepened for body text */
  --ink-soft: #545A5C;
  --faint: #8F9799;
  --charcoal: #494D4F;      /* brand charcoal — bands, footer */
  --green: #8FBF3B;         /* brand apple green — badges, numerals, pops */
  --accent: #567F1E;        /* text-safe leaf green — links, CTAs */
  --accent-deep: #44650F;
  --accent-wash: #EEF4E2;
  --sand: #D9D5C9;          /* warm neutral, used sparingly */
  --line: #E2E4DF;
  --ok: #2E7D4F;

  --serif: "Fraunces", "Iowan Old Style", Palatino, Georgia, serif;
  --sans: "Figtree", "Seravek", "Segoe UI", system-ui, sans-serif;

  --step-0: 1.03rem;
  --step-1: 1.21rem;
  --step-2: 1.45rem;
  --step-3: 1.75rem;
  --step-4: 2.15rem;
  --step-5: 3.4rem;
  --wrap: 1200px;
  --column: 720px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

body {
  margin: 0;
  background: var(--bone);
  color: var(--ink);
  font-family: var(--sans);
  font-size: var(--step-0);
  line-height: 1.65;
}

img { max-width: 100%; display: block; }
a { color: var(--accent); }
a:focus-visible, button:focus-visible, input:focus-visible, label:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: 2px;
}

.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 24px; }
.column { max-width: var(--column); }

/* ---------------- header / nav ---------------- */
.site-head {
  background: var(--surface);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 50;
}
.site-head .bar {
  max-width: 1280px;
  display: flex; align-items: center; gap: 20px;
  padding: 14px 24px;
}
.wordmark {
  font-family: var(--serif); font-weight: 650; font-size: 19px;
  color: var(--ink); text-decoration: none; letter-spacing: 0.01em;
  line-height: 1.2;
}
.wordmark span { color: var(--accent); }
.nav { display: flex; gap: 15px; margin-left: auto; flex-wrap: wrap; }
.nav a {
  color: var(--ink-soft); text-decoration: none; font-size: 14px; font-weight: 550;
}
.nav a:hover, .nav a[aria-current="page"] { color: var(--accent); }
.head-cta {
  background: var(--accent); color: #fff; text-decoration: none;
  padding: 9px 18px; border-radius: 3px; font-size: 14.5px; font-weight: 600;
  white-space: nowrap;
}
.head-cta:hover { background: var(--accent-deep); }

/* ---------------- hero ---------------- */
.hero {
  padding: 64px 0 52px;
  background:
    radial-gradient(900px 480px at 88% -10%, rgba(143,191,59,0.14), transparent 65%),
    var(--bone);
}
.hero .hero-grid {
  display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 56px; align-items: center;
}
.hero .eyebrow {
  text-transform: uppercase; letter-spacing: 0.16em; font-size: 12.5px;
  font-weight: 650; color: var(--accent); margin: 0 0 18px;
}
.hero h1 {
  font-family: var(--serif); font-weight: 620;
  font-size: clamp(2.3rem, 5.2vw, var(--step-5));
  line-height: 1.04; letter-spacing: -0.015em;
  margin: 0 0 22px; max-width: 16ch; text-wrap: balance;
}
.hero .lede { font-size: var(--step-1); color: var(--ink-soft); max-width: 52ch; margin: 0 0 18px; line-height: 1.55; }
.hero .cta-row { margin-top: 30px; }

/* framed image: photo with an offset green frame behind it */
.img-frame { position: relative; }
.img-frame img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: cover; border-radius: 4px; }
.img-frame::after {
  content: ""; position: absolute; inset: 0;
  transform: translate(14px, 14px);
  border: 2px solid var(--green); border-radius: 4px; z-index: 0;
}

/* ---------------- scroll reveal ---------------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity 600ms ease, transform 600ms ease; }
.reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* ---------------- awards strip ---------------- */
.awards { display: flex; align-items: center; gap: 34px; flex-wrap: wrap; padding: 26px 0 8px; }
.awards img { height: 96px; width: auto; border-radius: 3px; }
.awards img.wide { height: 54px; }
@media (max-width: 600px) { .awards img { height: 72px; } .awards img.wide { height: 40px; } }
.awards .label { font-size: 13px; color: var(--faint); text-transform: uppercase; letter-spacing: 0.09em; font-weight: 600; }

/* ---------------- doctor strip ---------------- */
.docstrip { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 16px; }
.doc-card { text-decoration: none; color: var(--ink); background: var(--surface); border: 1px solid var(--line); border-radius: 4px; overflow: hidden; transition: transform 120ms ease, box-shadow 120ms ease; display: block; }
.doc-card:hover { transform: translateY(-3px); box-shadow: 0 10px 26px rgba(30,39,41,0.10); }
.doc-card img { width: 100%; aspect-ratio: 4/5; object-fit: cover; object-position: top; }
.doc-card .nm { padding: 12px 14px 3px; font-weight: 650; font-size: 15px; line-height: 1.25; }
.doc-card .sp { padding: 0 14px 14px; color: var(--accent); font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.05em; }

/* ---------------- four doors ---------------- */
.doors { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 8px 0 0; }
.door {
  display: block; text-decoration: none; color: var(--ink);
  background: var(--surface); border: 1px solid var(--line); border-radius: 4px;
  padding: 24px 24px 20px; transition: transform 120ms ease, box-shadow 120ms ease, border-color 120ms ease;
}
.door:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(30, 39, 41, 0.10); border-color: var(--green); }
.door .icon {
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--accent-wash); color: var(--accent);
  display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
}
.door .icon svg { width: 24px; height: 24px; stroke: currentColor; fill: none; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.door h3 { font-family: var(--serif); font-size: var(--step-2); margin: 0 0 6px; font-weight: 600; line-height: 1.2; }
.door p { margin: 0 0 12px; color: var(--ink-soft); font-size: 14.5px; }
.door .go { color: var(--accent); font-weight: 650; font-size: 14px; }

/* ---------------- trust band ---------------- */
.trust {
  background: var(--charcoal); color: #fff; margin-top: 46px;
}
.trust b { color: var(--green); }
.trust .items {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 0; text-align: center;
}
.trust .item { padding: 26px 12px 22px; border-left: 1px solid rgba(255,255,255,0.16); }
.trust .item:first-child { border-left: none; }
.trust b {
  display: block; font-family: var(--serif); font-size: 27px; font-weight: 650;
  font-variant-numeric: tabular-nums; line-height: 1.1;
}
.trust span { font-size: 12.5px; opacity: 0.85; display: block; margin-top: 4px; line-height: 1.35; }

/* ---------------- sections ---------------- */
.section { padding: 46px 0; }
.section.tinted { background: var(--bone-deep); }
.section h2 {
  font-family: var(--serif); font-weight: 600; font-size: var(--step-4);
  line-height: 1.15; margin: 0 0 10px; text-wrap: balance;
}
.section .kicker { color: var(--ink-soft); margin: 0 0 30px; max-width: 60ch; }

/* ---------------- cards ---------------- */
.cardrow { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
@media (max-width: 1000px) { .cardrow { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .cardrow { grid-template-columns: 1fr; } }
.card {
  background: var(--surface); border: 1px solid var(--line); padding: 22px;
}
.card h3 { font-family: var(--serif); font-size: var(--step-2); margin: 0 0 8px; font-weight: 600; }
.card p { margin: 0 0 12px; color: var(--ink-soft); font-size: 15px; }
.card a { font-weight: 650; font-size: 14.5px; text-decoration: none; }

/* ---------------- photo placeholders (shoot-day slots) ---------------- */
.photo-slot {
  background:
    repeating-linear-gradient(45deg, var(--bone-deep) 0 14px, var(--bone) 14px 28px);
  border: 1px dashed var(--sand);
  display: flex; align-items: center; justify-content: center;
  color: var(--faint); font-size: 13px; letter-spacing: 0.04em;
  text-transform: uppercase; text-align: center; padding: 12px;
  min-height: 220px;
}

/* ---------------- answer-first block (AEO) ---------------- */
.answer {
  background: var(--accent-wash); border-left: 4px solid var(--accent);
  padding: 20px 24px; margin: 0 0 34px; font-size: var(--step-1); max-width: 68ch;
}
.answer p { margin: 0; }

/* ---------------- prose / article ---------------- */
.prose { max-width: var(--column); margin: 0 auto; }
.prose h2 { font-size: var(--step-3); margin-top: 36px; }
.prose h3 { font-family: var(--serif); font-size: var(--step-2); font-weight: 600; margin: 32px 0 8px; }
.prose p, .prose li { max-width: 68ch; }
.prose ul { padding-left: 22px; }
.prose li { margin-bottom: 7px; }

/* ---------------- timeline ---------------- */
.timeline { list-style: none; padding: 0; margin: 24px 0; }
.timeline li {
  display: grid; grid-template-columns: 120px 1fr; gap: 18px;
  padding: 16px 0; border-top: 1px solid var(--line);
}
.timeline li:last-child { border-bottom: 1px solid var(--line); }
.timeline .when { color: var(--accent); font-weight: 700; font-size: 13.5px; text-transform: uppercase; letter-spacing: 0.05em; padding-top: 3px; }
.timeline h4 { margin: 0 0 4px; font-size: 16px; }
.timeline p { margin: 0; color: var(--ink-soft); font-size: 15px; }

/* ---------------- FAQ ---------------- */
.faq details { border-top: 1px solid var(--line); }
.faq details:last-child { border-bottom: 1px solid var(--line); }
.faq summary {
  cursor: pointer; padding: 16px 4px; font-weight: 650; font-size: 16px;
  list-style: none; display: flex; justify-content: space-between; gap: 16px;
}
.faq summary::after { content: "+"; color: var(--accent); font-size: 20px; font-weight: 600; }
.faq details[open] summary::after { content: "–"; }
.faq .a { padding: 0 4px 18px; color: var(--ink-soft); max-width: 66ch; }
.faq .a p { margin: 0 0 10px; }

/* ---------------- CTA band ---------------- */
.cta-band { background: var(--charcoal); color: #fff; padding: 52px 0; }
.cta-band h2 span, .cta-band .pop { color: var(--green); }
.cta-band.photo {
  background:
    linear-gradient(rgba(43,47,49,0.85), rgba(43,47,49,0.92)),
    url("../assets/brand/banner1.jpg") center 35% / cover no-repeat;
}
.cta-band h2 { font-size: var(--step-4); }

/* card images */
.card .cardimg { width: calc(100% + 44px); margin: -22px -22px 16px; aspect-ratio: 16/9; object-fit: cover; display: block; }
@media (max-width: 900px) { .hero .hero-grid { grid-template-columns: 1fr; gap: 36px; } }
.cta-band h2 { font-family: var(--serif); font-size: var(--step-3); margin: 0 0 8px; }
.cta-band p { margin: 0 0 22px; opacity: 0.9; max-width: 56ch; }
.btn {
  display: inline-block; text-decoration: none; font-weight: 650; font-size: 15.5px;
  padding: 13px 26px; border-radius: 3px;
}
.btn.light { background: #fff; color: var(--accent-deep); }
.btn.light:hover { background: var(--bone); }
.btn.solid { background: var(--accent); color: #fff; }
.btn.solid:hover { background: var(--accent-deep); }
.btn.ghost { border: 1.5px solid var(--accent); color: var(--accent); }
.btn + .btn { margin-left: 12px; }

/* ---------------- doctor page ---------------- */
.doc-hero { display: grid; grid-template-columns: 300px 1fr; gap: 44px; align-items: start; padding: 64px 0 48px; }
.doc-hero .photo-slot { min-height: 360px; }
.doc-hero h1 { font-family: var(--serif); font-size: var(--step-4); margin: 0 0 6px; line-height: 1.12; }
.doc-hero .role { color: var(--accent); font-weight: 650; margin: 0 0 16px; }
.credchips { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; padding: 0; list-style: none; }
.credchips li {
  background: var(--accent-wash); color: var(--accent-deep);
  font-size: 13px; font-weight: 600; padding: 5px 12px; border-radius: 100px;
}
.statline { display: flex; gap: 36px; margin: 22px 0; flex-wrap: wrap; }
.statline div b { font-family: var(--serif); font-size: 25px; display: block; color: var(--accent); font-variant-numeric: tabular-nums; }
.statline div span { font-size: 13px; color: var(--ink-soft); }

/* ---------------- doctor page v2: large hero ---------------- */
.doc-hero-lg { position: relative; background: var(--charcoal); color: #fff; }
.doc-hero-lg .photo {
  position: relative; min-height: 480px; max-height: 620px; overflow: hidden;
}
.doc-hero-lg .photo img, .doc-hero-lg .photo .photo-slot {
  width: 100%; height: 100%; min-height: 480px; object-fit: cover; object-position: top center;
}
.doc-hero-lg .photo .photo-slot { position: absolute; inset: 0; }
.doc-hero-lg .photo::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(43,47,49,0.92) 0%, rgba(43,47,49,0.35) 45%, rgba(43,47,49,0.05) 75%);
}
.doc-hero-lg .id {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; padding: 0 0 34px;
}
.doc-hero-lg h1 { font-family: var(--serif); font-size: clamp(2rem, 4.6vw, 3rem); font-weight: 620; margin: 0 0 6px; line-height: 1.05; }
.doc-hero-lg .role { color: var(--green); font-weight: 650; margin: 0 0 4px; font-size: 16px; }
.doc-hero-lg .tag { color: rgba(255,255,255,0.85); margin: 0; max-width: 62ch; font-size: 15.5px; }
@media (max-width: 760px) { .doc-hero-lg .photo, .doc-hero-lg .photo img, .doc-hero-lg .photo .photo-slot { min-height: 380px; } }

/* doctor hero v2: charcoal identity band + full-width hero-image slot */
.doc-band { background: var(--charcoal); color: #fff; padding: 56px 0 48px; }
.doc-band .grid { display: grid; grid-template-columns: 1fr 280px; gap: 48px; align-items: center; }
.doc-band h1 { font-family: var(--serif); font-size: clamp(2rem, 4.6vw, 3rem); font-weight: 620; margin: 0 0 6px; line-height: 1.05; }
.doc-band .role { color: var(--green); font-weight: 650; margin: 0 0 14px; font-size: 16px; }
.doc-band .tag { color: rgba(255,255,255,0.88); margin: 0 0 18px; max-width: 58ch; font-size: 16px; line-height: 1.6; }
.doc-band .credchips li { background: rgba(143,191,59,0.16); color: #D7E8B8; }
.doc-band .statline div b { color: var(--green); }
.doc-band .statline div span { color: rgba(255,255,255,0.75); }
.doc-band .img-frame img { aspect-ratio: 238/322; object-fit: cover; }
.doc-band .photonote { font-size: 11.5px; color: rgba(255,255,255,0.55); text-transform: uppercase; letter-spacing: 0.07em; margin-top: 12px; text-align: center; }
.doc-herophoto { min-height: 320px; }
.doc-herophoto .photo-slot { min-height: 320px; border: none; border-radius: 0; }
@media (max-width: 760px) {
  .doc-band .grid { grid-template-columns: 1fr; }
  .doc-band .img-frame { max-width: 280px; }
}

/* ---------------- video slot (placeholder until footage lands) ---------------- */
.video-slot {
  position: relative; aspect-ratio: 16/9; width: 100%;
  background:
    radial-gradient(500px 260px at 50% 40%, rgba(143,191,59,0.16), transparent 70%),
    var(--charcoal);
  border-radius: 4px; overflow: hidden;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  color: #C8CDCB; text-align: center; padding: 20px; gap: 12px;
}
.video-slot .play {
  width: 62px; height: 62px; border-radius: 50%;
  background: rgba(143,191,59,0.9); color: #223012;
  display: flex; align-items: center; justify-content: center; flex: none;
}
.video-slot .play svg { width: 24px; height: 24px; fill: currentColor; margin-left: 4px; }
.video-slot .vtitle { color: #fff; font-weight: 650; font-size: 16px; max-width: 46ch; }
.video-slot .vnote { font-size: 12.5px; text-transform: uppercase; letter-spacing: 0.07em; opacity: 0.75; }

/* ---------------- related links (journey + cluster interlinks) ---------------- */
.related { border-top: 1px solid var(--line); margin-top: 36px; padding-top: 24px; }
.related h3 { font-family: var(--serif); font-size: var(--step-2); font-weight: 600; margin: 0 0 14px; }
.related .rel-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 10px; }
.related a {
  display: block; text-decoration: none; background: var(--surface);
  border: 1px solid var(--line); border-radius: 4px; padding: 13px 16px;
  color: var(--ink); font-size: 14.5px; line-height: 1.4;
  transition: border-color 120ms ease, transform 120ms ease;
}
.related a:hover { border-color: var(--green); transform: translateY(-2px); }
.related a b { display: block; color: var(--accent); font-size: 12px; text-transform: uppercase; letter-spacing: 0.07em; margin-bottom: 3px; font-weight: 700; }

/* ---------------- quiz ---------------- */
.quiz-card { background: var(--surface); border: 1px solid var(--line); padding: 34px; max-width: 640px; }
.quiz-q { font-family: var(--serif); font-size: var(--step-2); font-weight: 600; margin: 0 0 18px; }
.quiz-opts { display: grid; gap: 10px; }
.quiz-opts button {
  text-align: left; font-family: var(--sans); font-size: 15.5px; color: var(--ink);
  background: var(--bone); border: 1.5px solid var(--line); padding: 13px 16px;
  cursor: pointer; border-radius: 3px;
}
.quiz-opts button:hover { border-color: var(--accent); background: var(--accent-wash); }
.quiz-progress { font-size: 13px; color: var(--faint); margin-bottom: 10px; text-transform: uppercase; letter-spacing: 0.06em; }

/* ---------------- footer ---------------- */
.site-foot { background: var(--ink); color: #B9C2C4; padding: 48px 0 40px; margin-top: 0; font-size: 14px; }
.site-foot .cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 28px; }
.site-foot h4 { color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: 0.09em; margin: 0 0 10px; }
.site-foot a { color: #B9C2C4; text-decoration: none; display: block; margin-bottom: 6px; }
.site-foot a:hover { color: #fff; }
.site-foot .legal { border-top: 1px solid rgba(255,255,255,0.14); margin-top: 34px; padding-top: 18px; font-size: 12.5px; color: #8B9699; }

.draft-ribbon {
  background: var(--sand); color: var(--ink); text-align: center;
  font-size: 12.5px; font-weight: 650; letter-spacing: 0.04em; padding: 6px 12px;
}

@media (max-width: 760px) {
  .doc-hero { grid-template-columns: 1fr; }
  .timeline li { grid-template-columns: 1fr; gap: 4px; }
  .nav { display: none; } /* placeholder until mobile menu is built */
}

/* ---------------- nav dropdowns ---------------- */
.nav .drop { position: relative; }
.nav .drop > a::after {
  content: ""; display: inline-block; margin-left: 6px; vertical-align: 2px;
  border-left: 4px solid transparent; border-right: 4px solid transparent;
  border-top: 5px solid currentColor; opacity: 0.55;
}
.nav .drop-menu {
  position: absolute; top: 100%; left: -18px; padding-top: 15px;
  display: none; z-index: 60;
}
.nav .drop:hover .drop-menu,
.nav .drop:focus-within .drop-menu { display: block; }
.nav .dm-in {
  background: var(--surface); border: 1px solid var(--line); border-radius: 4px;
  box-shadow: 0 16px 38px rgba(30,39,41,0.13); padding: 8px 0; min-width: 240px;
}
.nav .dm-in a { display: block; padding: 9px 18px; font-size: 14px; white-space: nowrap; }
.nav .dm-in a:hover { background: var(--bone); }
.nav .drop > a.sec-on { color: var(--accent); }
@media (max-width: 900px) {
  .nav .drop-menu { position: static; padding-top: 4px; }
  .nav .dm-in { box-shadow: none; border: none; padding: 0 0 4px 14px; min-width: 0; }
}

/* ---------------- figure rail (two-column pages) ---------------- */
.page-grid { display: grid; grid-template-columns: minmax(0, 1fr) 350px; gap: 56px; align-items: start; }
.page-grid .prose { margin: 0; }
.fig-rail { position: sticky; top: 92px; display: grid; gap: 22px; }
@media (max-width: 1000px) {
  .page-grid { grid-template-columns: 1fr; }
  .fig-rail { position: static; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}
.fig-card { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 14px; margin: 0; }
.fig-card img { width: 100%; height: auto; display: block; border-radius: 3px; background: #fff; }
.fig-card figcaption { font-size: 13px; color: var(--faint); margin-top: 10px; line-height: 1.45; }
.fig-card figcaption a { color: inherit; }

/* ---------------- brand logo header ---------------- */
.site-head .logo-link { display: flex; align-items: center; flex: 0 0 auto; }
.site-head .logo-link img { height: 50px; width: auto; display: block; }

/* ---------------- mobile nav ---------------- */
.nav-toggle { display: none; margin-left: auto; background: none; border: 1.5px solid var(--line); border-radius: 4px; padding: 8px 10px; cursor: pointer; }
.nav-toggle span { display: block; width: 20px; height: 2px; background: var(--ink); margin: 4px 0; }
@media (max-width: 920px) {
  .nav-toggle { display: block; }
  .site-head .bar { flex-wrap: wrap; gap: 12px; }
  .nav { display: none; flex-direction: column; align-items: flex-start; width: 100%; gap: 2px; padding: 4px 0 12px; margin-left: 0; }
  .nav.open { display: flex; }
  .nav a { padding: 7px 0; font-size: 15.5px; }
  .nav .drop { width: 100%; }
  .nav .drop-menu { position: static; display: block; padding: 0 0 4px 16px; }
  .nav .dm-in { border: none; box-shadow: none; padding: 0; min-width: 0; background: transparent; }
  .nav .dm-in a { padding: 6px 0; }
  .nav .drop > a::after { display: none; }
  .head-cta { margin-left: 0; }
}

/* ---------------- footer locations (dark footer) ---------------- */
.foot-grid { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1fr; gap: 30px; align-items: start; }
@media (max-width: 900px) { .foot-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .foot-grid { grid-template-columns: 1fr; } }
.f-brand .f-name { font-family: var(--serif); font-weight: 650; font-size: 19px; color: #fff; margin: 0 0 8px; }
.f-brand .f-name span { color: var(--accent); }
.f-brand p { color: #B9C2C4; font-size: 14px; max-width: 34ch; margin: 0; }
.f-loc p { margin: 0 0 8px; color: #B9C2C4; font-size: 14px; line-height: 1.55; }
.f-loc a.tel { color: var(--accent); font-weight: 700; text-decoration: none; font-size: 15.5px; white-space: nowrap; display: inline; margin: 0; }
.f-loc a.tel:hover { text-decoration: underline; }
.foot-grid + .cols { border-top: 1px solid rgba(255,255,255,0.14); margin-top: 30px; padding-top: 26px; }

/* mobile header sizing */
@media (max-width: 920px) {
  .site-head .logo-link img { height: 36px; }
  .head-cta { padding: 8px 12px; font-size: 13px; }
  .site-head .bar { padding: 10px 16px; }
}
body { overflow-x: hidden; }

/* responsive safety: images never exceed their container; grid children may shrink */
img { max-width: 100%; height: auto; }
.hero-grid > div, .hero-grid > .img-frame, .page-grid > *, .doors > *, .items > * { min-width: 0; }

/* ---------------- team directory cards ---------------- */
.team-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 34px; }
@media (max-width: 880px) { .team-grid { grid-template-columns: 1fr; } }
.team-card {
  display: flex; background: var(--surface); border: 1px solid var(--line); border-radius: 6px;
  overflow: hidden; text-decoration: none; color: var(--ink);
  transition: transform 120ms ease, box-shadow 120ms ease;
}
.team-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(30,39,41,0.11); }
.team-card img, .team-card .photo-slot {
  width: 200px; min-width: 200px; aspect-ratio: 4/5; object-fit: cover; object-position: top;
  height: auto; margin: 0; border-radius: 0;
}
.team-card .tc-body { padding: 22px 24px; display: flex; flex-direction: column; min-width: 0; }
.tc-body .nm { font-family: var(--serif); font-weight: 650; font-size: 21px; line-height: 1.2; margin-bottom: 3px; }
.tc-body .sp { color: var(--accent-deep); font-size: 13.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 12px; }
.tc-body .hook { color: var(--ink-soft); font-size: 15px; line-height: 1.5; font-style: italic; }
.tc-body .go { margin-top: auto; padding-top: 14px; color: var(--accent-deep); font-weight: 700; font-size: 14.5px; }
@media (max-width: 480px) {
  .team-card { flex-direction: column; }
  .team-card img, .team-card .photo-slot { width: 100%; min-width: 0; aspect-ratio: 1/1; }
}

/* footer logo on white chip (grey wordmark is illegible on charcoal) */
.f-lockup { display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.f-lockup img { height: 62px; width: auto; flex: 0 0 auto; }
.f-lockup .f-n1 { display: block; color: #fff; font-weight: 800; font-size: 18px; letter-spacing: 0.05em; text-transform: uppercase; line-height: 1.2; }
.f-lockup .f-n2 { display: block; color: #B9C2C4; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; margin-top: 4px; }

/* ---------------- header top strip ---------------- */
.top-strip { background: var(--charcoal); font-size: 13px; }
.top-strip .ts-in { max-width: 1280px; margin: 0 auto; padding: 7px 24px; display: flex; justify-content: space-between; align-items: center; gap: 18px; flex-wrap: wrap; }
.ts-locs { display: flex; gap: 20px; flex-wrap: wrap; }
.top-strip a { color: #cfd6d8; text-decoration: none; }
.top-strip a b { color: #fff; font-weight: 650; margin-right: 5px; }
.top-strip a:hover { color: var(--accent); }
.ts-links { display: flex; gap: 10px; align-items: center; }
.ts-links a {
  border: 1.5px solid rgba(255,255,255,0.4); border-radius: 99px;
  padding: 4px 15px; color: #fff; font-weight: 650; line-height: 1.4;
}
.ts-links a:hover { border-color: var(--accent); color: var(--accent); }
.ts-links .portal { background: var(--accent); border-color: var(--accent); color: #fff; font-weight: 700; }
.ts-links .portal:hover { background: var(--accent-deep); border-color: var(--accent-deep); color: #fff; }
@media (max-width: 920px) { .ts-locs { display: none; } .top-strip .ts-in { justify-content: center; padding: 6px 16px; } }

/* larger logo + search icon */
.site-head .logo-link img { height: 62px; }
.search-link { display: flex; align-items: center; padding: 6px; border-radius: 4px; }
.search-link svg { width: 21px; height: 21px; stroke: var(--ink-soft); fill: none; stroke-width: 2; stroke-linecap: round; }
.search-link:hover svg { stroke: var(--accent-deep); }

/* footer legal links */
.foot-links { text-align: center; margin: 28px 0 0; font-size: 13px; color: #8B9699; }
.foot-links a { color: #B9C2C4; text-decoration: none; display: inline; margin: 0 6px; }
.foot-links a:hover { color: var(--accent); }

/* homepage sticky contact bar */
.sticky-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 70;
  background: var(--charcoal); border-top: 1px solid rgba(255,255,255,0.15);
  display: flex; justify-content: center; align-items: center; gap: 16px;
  padding: 10px 16px; flex-wrap: wrap;
}
.sticky-bar a { text-decoration: none; font-weight: 700; font-size: 14.5px; }
.sticky-bar .sb-call { color: #fff; }
.sticky-bar .sb-portal { color: #fff; border: 1.5px solid rgba(255,255,255,0.4); border-radius: 99px; padding: 7px 18px; }
.sticky-bar .sb-portal:hover { border-color: var(--accent); }
.sticky-bar .sb-call:hover, .sticky-bar .sb-portal:hover { color: var(--accent); }
.sticky-bar .sb-book { background: var(--accent); color: #fff; padding: 9px 20px; border-radius: 4px; }
.sticky-bar .sb-book:hover { background: var(--accent-deep); }
body.has-sticky { padding-bottom: 62px; }
@media (max-width: 560px) { .sticky-bar .sb-portal { display: none; } }

/* search page */
.search-box { max-width: 720px; margin: 0 auto; }
.search-box input { width: 100%; padding: 14px 18px; font-size: 17px; border: 2px solid var(--line); border-radius: 6px; font-family: var(--sans); }
.search-box input:focus { outline: none; border-color: var(--accent); }
.search-results { max-width: 720px; margin: 26px auto 0; }
.search-results a { display: block; padding: 14px 16px; border: 1px solid var(--line); border-radius: 6px; margin-bottom: 10px; text-decoration: none; color: var(--ink); background: var(--surface); }
.search-results a:hover { border-color: var(--accent); }
.search-results b { display: block; margin-bottom: 3px; }
.search-results span { color: var(--ink-soft); font-size: 14px; }
.search-results .none { color: var(--faint); text-align: center; padding: 20px; }

/* ---------------- video embeds + review quotes ---------------- */
.video-embed { margin: 26px 0; }
.video-embed .vframe { position: relative; aspect-ratio: 16/9; border-radius: 6px; overflow: hidden; background: #000; }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.video-embed figcaption { font-size: 13.5px; color: var(--faint); margin-top: 8px; }
.quote-card {
  border-left: 4px solid var(--accent); background: var(--surface);
  border-radius: 0 8px 8px 0; padding: 20px 24px; margin: 26px 0;
}
.quote-card .stars { color: #E8A33D; font-size: 15px; letter-spacing: 2px; margin-bottom: 6px; }
.quote-card blockquote { margin: 0 0 10px; font-family: var(--serif); font-size: 17.5px; line-height: 1.55; font-style: italic; color: var(--ink); }
.quote-card cite { font-style: normal; font-size: 13.5px; color: var(--faint); font-weight: 600; }


/* ================= UX polish, Sept 30 2026 ================= */
/* readable text floor */
.stat span, .stats span, .doc-card .sp, .doc-card .nm { line-height: 1.35; }
.doc-card .sp { font-size: 12.5px !important; }

@media (max-width: 920px) {
  /* compact header: one row of logo + menu + search; utility strip hidden (moved into menu) */
  .top-strip { display: none; }
  .site-head .bar { padding-top: 8px; padding-bottom: 8px; gap: 8px; flex-wrap: wrap; align-items: center; }
  .site-head .logo-link img { height: 44px; }
  .nav-toggle { width: 44px; height: 44px; }
  .search-link { min-width: 44px; min-height: 44px; justify-content: center; }
  .head-cta { display: none; }
  .nav a { padding: 12px 0; font-size: 16.5px; min-height: 44px; display: flex; align-items: center; }
  .nav .dm-in a { padding: 11px 0; font-size: 15.5px; }
  .nav .nav-extra { display: flex; gap: 10px; padding: 12px 0 4px; width: 100%; }
  .nav .nav-extra a { border: 1.5px solid var(--line); border-radius: 99px; padding: 10px 18px; min-height: 44px; font-weight: 700; }
}
@media (min-width: 921px) { .nav .nav-extra { display: none; } }

@media (max-width: 760px) {
  /* less scrolling: tighter section rhythm */
  section, .section { padding-top: 40px; padding-bottom: 40px; }
  h2 { font-size: clamp(26px, 7vw, 32px); }
  /* content appears without waiting for a scroll trigger */
  .reveal { opacity: 1 !important; transform: none !important; transition: none; }
  /* bigger tap targets */
  .go, .tc-body .go, .card a.more, a.arrow, .cardrow a { min-height: 44px; display: inline-flex; align-items: center; }
  main p a, .card a { padding-block: 6px; }
  .btn, .button, a.btn { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }
  /* swipe rows instead of endless stacks */
  .docstrip { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding: 4px 16px 14px; margin: 0 -16px; -webkit-overflow-scrolling: touch; }
  .docstrip .doc-card { flex: 0 0 62%; scroll-snap-align: start; }
  .swipe-row { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 14px; padding: 4px 16px 14px; margin: 0 -16px; }
  .swipe-row > * { flex: 0 0 82%; scroll-snap-align: start; }
  /* hero: photo first, proof next */
  .hero .hero-grid { gap: 20px; }
  .hero .img-frame { display: block; order: -1; max-height: 200px; overflow: hidden; border-radius: 10px; }
  .hero .img-frame img { width: 100%; height: 200px; object-fit: cover; object-position: center 40%; }
  .hero h1 { font-size: clamp(31px, 8.6vw, 38px); line-height: 1.08; }
  .hero-actions, .hero .cta-row { display: grid; gap: 10px; }
  /* small print floor */
  .stat span, .stats span, .eyebrow, .kicker { font-size: 13px; }
}

/* cookie notice: one slim strip, never covers the primary buttons */
#srosm-cookie { left: 0 !important; right: 0 !important; bottom: 0 !important; max-width: none !important; width: auto !important; border-radius: 0 !important; margin: 0 !important; padding: 10px 14px !important; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; z-index: 80; }
#srosm-cookie p, #srosm-cookie div { margin: 0; font-size: 13px; line-height: 1.35; flex: 1 1 220px; }
#srosm-cookie button { min-height: 40px; padding: 8px 16px; }
body.has-sticky #srosm-cookie { bottom: 62px !important; }
@media (max-width: 560px) { #srosm-cookie { bottom: 62px !important; font-size: 12.5px; } #srosm-cookie p, #srosm-cookie div { flex-basis: 100%; } #srosm-cookie button { flex: 1; } }

/* sticky bar: bigger tap targets, no wrap */
.sticky-bar { flex-wrap: nowrap; }
.sticky-bar a { min-height: 44px; display: inline-flex; align-items: center; }

/* slimmer cookie notice on phones */
@media (max-width: 560px) {
  #srosm-cookie { padding: 8px 12px !important; gap: 8px; }
  #srosm-cookie p, #srosm-cookie div { font-size: 12px; line-height: 1.3; }
  #srosm-cookie button { min-height: 36px; padding: 6px 12px; font-size: 13px; }
}


/* ==========================================================
   Chiropractic-landing look, applied site-wide (Sept 30 2026)
   Poppins, bold headings, tinted hero, card + button shapes,
   3-button bottom bar on phones.
   ========================================================== */
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-400.woff2") format("woff2"); font-weight: 400; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-500.woff2") format("woff2"); font-weight: 500; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-600.woff2") format("woff2"); font-weight: 600; font-display: swap; }
@font-face { font-family: "Poppins"; src: url("../assets/fonts/poppins-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }

:root {
  --serif: "Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --sans: "Poppins", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  --step-0: 1rem; --step-1: 1.1rem; --step-2: 1.28rem; --step-3: 1.5rem; --step-4: 1.85rem; --step-5: 2.6rem;
  --tint: #F4F7EA;
}
body { font-family: var(--sans); font-size: 16px; line-height: 1.6; }
h1, h2, h3, h4 { font-family: var(--serif); letter-spacing: -0.01em; line-height: 1.2; }
h1 { font-weight: 700; font-size: clamp(1.9rem, 4.6vw, 3rem); }
h2 { font-weight: 700; font-size: clamp(1.45rem, 3vw, 2rem); }
h3 { font-weight: 600; }
.door h3, .card h3, .prose h3, .related h3, .cta-band h2, .quiz-q, .tc-body .nm, .f-brand .f-name, .doc-hero h1, .doc-hero-lg h1, .doc-band h1 { font-weight: 600; letter-spacing: -0.01em; }
.doc-hero h1, .doc-hero-lg h1, .doc-band h1 { font-weight: 700; }
blockquote, .quote, .story-q { font-style: normal; }

/* buttons: 48px, 6px corners, semibold */
.btn, .button { border-radius: 6px; min-height: 48px; font-weight: 600; font-family: var(--sans); display: inline-flex; align-items: center; justify-content: center; gap: .5em; }
.btn.solid { background: var(--accent); color: #fff; border-color: var(--accent); }

/* hero: pale green ground, text first, proof list */
.hero { background: var(--tint); border-bottom: 1px solid var(--line); }
.hero .lede { font-size: 1.05rem; color: var(--ink-soft); }
.hero .proof { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 0; margin: 18px 0 0; list-style: none; font-size: .9rem; color: var(--ink-soft); }
.hero .proof li::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--green); margin-right: 8px; vertical-align: 1px; }
.srosm-rating { font-size: .92rem; }

/* cards: rounded, green top edge (the chiropractic "checker" look) */
.door, .card, .team-card { border-radius: 10px; }
.door { border-top: 5px solid var(--green); box-shadow: 0 10px 30px rgba(60,70,20,.07); }

/* header: sticky, compact */
.site-head { position: sticky; top: 0; z-index: 60; background: #fff; }
.site-head .bar { min-height: 64px; }
.head-cta { border-radius: 6px; font-weight: 600; min-height: 42px; display: inline-flex; align-items: center; padding: 0 16px; }

/* cookie notice: honors [hidden] (fixes banner staying after Accept) */
#srosm-cookie[hidden] { display: none !important; }
#srosm-cookie:not([hidden]) { display: flex; }

/* bottom bar: three equal buttons, phones only */
.sticky-bar { display: none; }
@media (max-width: 899px) {
  .sticky-bar { display: grid; grid-template-columns: 1fr 1fr 1.25fr; gap: 0; padding: 0 0 env(safe-area-inset-bottom, 0px); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -4px 16px rgba(0,0,0,.08); position: fixed; bottom: 0; left: 0; right: 0; z-index: 70; }
  .sticky-bar a { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 58px; padding: 6px 4px; text-decoration: none; color: var(--ink); font-weight: 600; font-size: 14px; line-height: 1.2; border-right: 1px solid var(--line); background: #fff; }
  .sticky-bar a small { font-size: 11.5px; font-weight: 500; color: var(--ink-soft); }
  .sticky-bar a.sb-book { background: var(--accent); color: #fff; border-right: 0; }
  .sticky-bar a.sb-book small { color: #E7F0D4; }
  body.has-sticky { padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px)); }
}
@media (min-width: 900px) { body.has-sticky { padding-bottom: 0; } }

@media (max-width: 920px) {
  .site-head .bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-top: 6px; padding-bottom: 6px; }
  .site-head .logo-link { margin-right: auto; }
  .site-head .logo-link img { height: 42px; }
  .head-cta { display: inline-flex !important; order: 2; margin-left: 0; min-height: 40px; padding: 0 14px; font-size: 14.5px; }
  .nav-toggle { order: 3; }
  .search-link { display: none; }
  .nav { order: 5; }
}
@media (max-width: 599px) { .head-cta .lg { display: none; } }

@media (max-width: 760px) {
  /* text-first hero like the $90 page */
  .hero .img-frame { display: none !important; }
  .hero .wrap.hero-grid { padding-top: 26px; padding-bottom: 30px; gap: 0; }
  .hero h1 { font-size: clamp(1.85rem, 7.4vw, 2.2rem); line-height: 1.15; }
  .hero .cta-row { display: grid; gap: 10px; margin: 20px 0 16px; }
  .hero .cta-row .btn { width: 100%; }
  .hero .awards { display: none; }
  .srosm-rating { display: flex; gap: 10px; align-items: center; padding: 10px 12px; border-radius: 8px; background: #fff; border: 1px solid var(--line); }
  .srosm-rating .sub, .srosm-rating a { display: none; }
  /* "What brought you in" becomes a compact 2 x 2 picker */
  .doors { display: grid !important; grid-template-columns: 1fr 1fr; gap: 10px; }
  .doors .door { padding: 14px 12px; min-height: 0; }
  .doors .door p, .doors .door .go { display: none; }
  .doors .door h3 { font-size: 1.02rem; margin: 8px 0 0; }
  .doors .door .icon { width: 38px; height: 38px; }
  #doors .kicker { font-size: .95rem; }
  h2 { font-size: clamp(1.4rem, 6vw, 1.7rem); }
}

#srosm-cookie { left: 0 !important; right: 0 !important; bottom: 0 !important; max-width: none !important; border-radius: 0 !important; margin: 0 !important; padding: 10px 14px !important; gap: 10px !important; align-items: center; flex-wrap: wrap; font-size: 13px !important; line-height: 1.4 !important; }
#srosm-cookie > div { flex: 0 0 auto; display: flex; gap: 8px; }
#srosm-cookie button { min-height: 40px; padding: 8px 18px !important; font-size: 14px; }
@media (max-width: 899px) { body.has-sticky #srosm-cookie { bottom: calc(58px + env(safe-area-inset-bottom, 0px)) !important; } }
@media (max-width: 560px) { #srosm-cookie .ck-more { display: none; } #srosm-cookie > div { width: 100%; } #srosm-cookie button { flex: 1; } }

/* fixes from phone review */
.sticky-bar a.sb-call, .sticky-bar a.sb-loc { color: var(--ink); }
.sticky-bar a b { color: inherit; font-weight: 700; }
.hero .cta-row .btn { margin: 0; }
@media (max-width: 760px) { .hero .wrap.hero-grid { padding-top: 18px; } .hero .eyebrow { margin-top: 0; } }
.head-cta { gap: .25em; }
@media (max-width: 760px) { .hero { padding-top: 0 !important; } .hero .wrap.hero-grid { padding-top: 12px; } }

/* story-card photos fill the card edge to edge */
.card { overflow: hidden; }
.card picture { display: block; }
.card .cardimg { display: block; width: calc(100% + 44px); max-width: none; height: auto; aspect-ratio: 16 / 9; object-fit: cover; margin: -22px -22px 16px; }

/* surgeon module: swipe row + full-width buttons on phones */
.hub-docs .hd-cta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
@media (max-width: 760px) {
  .hub-docs .hd-grid { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding: 2px 2px 12px; margin: 0 -4px; }
  .hub-docs .hd-card { flex: 0 0 62%; scroll-snap-align: start; }
  .hub-docs .hd-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center top; }
  .hub-docs .hd-cta { display: grid; grid-template-columns: 1fr; }
  .hub-docs .hd-cta .btn { width: 100%; margin: 0; }
}

/* ===== Tom's fixes (Sept 30): bigger tap targets, 13px text floor, shorter phone homepage ===== */
@media (max-width: 760px) {
  /* text floor */
  .doc-card .sp, .trust .item span, .eyebrow, .kicker, .site-foot .legal, .f-n2, .rel-grid b,
  .srosm-rating .sub, .sticky-bar a small, .stat span, .stats span { font-size: 13px !important; }
  #srosm-cookie button, #srosm-cookie p { font-size: 14px !important; }
  #srosm-cookie p { font-size: 13px !important; }
  /* long card stacks become swipe rows */
  .cardrow { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; padding: 2px 2px 14px; margin: 0 -2px; -webkit-overflow-scrolling: touch; }
  .cardrow > * { flex: 0 0 84%; scroll-snap-align: start; min-width: 0; }
  .cardrow .card p { font-size: 15px; }
  .cardrow .loc-card .cardimg { aspect-ratio: 16/9; }
  /* specialties: compact 2-column list of names */
  .rel-grid { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .rel-grid a { font-size: 0 !important; line-height: 0; display: flex !important; align-items: center; min-height: 56px; padding: 10px 12px !important; }
  .rel-grid a b { font-size: 14px !important; line-height: 1.25; display: block; margin: 0; }
  /* tighter section rhythm */
  .section { padding-top: 32px !important; padding-bottom: 32px !important; }
  .kicker { margin-bottom: 14px; }
  .steps { gap: 10px; }
}
@media (max-width: 899px) {
  /* footer: two columns, every link 44px tall */
  .foot-grid { grid-template-columns: 1fr 1fr !important; gap: 8px 18px !important; }
  .foot-grid .f-brand { grid-column: 1 / -1; }
  .site-foot a { display: block; padding: 11px 0; margin-bottom: 0; min-height: 44px; }
  .site-foot .f-brand p a, .site-foot .legal a, .foot-links a { display: inline; padding: 0; min-height: 0; }
  .site-foot .f-social a { width: 44px !important; height: 44px !important; }
  .site-foot .f-social a svg { width: 20px; height: 20px; }
  .foot-links { line-height: 2.2; }
}
@media (max-width: 760px) {
  .section { padding-top: 24px !important; padding-bottom: 24px !important; }
  .section h2 { margin-bottom: 8px; }
  #one-roof .steps .step { padding: 14px 16px; }
  #one-roof .step p { font-size: 15px; }
}

/* ===== desktop fixes (Sept 30) ===== */
.doc-card .sp, .trust .item span, .eyebrow, .kicker, .site-foot .legal, .f-n2, .rel-grid a b, .srosm-rating .sub, .stat span, .stats span { font-size: 13px; }
@media (min-width: 900px) {
  .nav > a, .nav .drop > a { padding: 13px 10px; display: inline-block; }
  .top-strip a { padding: 10px 2px; display: inline-block; }
  .ts-links a { padding: 8px 15px; }
  .search-link { min-width: 44px; min-height: 44px; justify-content: center; }
  .site-foot a { padding: 9px 0; margin-bottom: 0; min-height: 40px; }
  .site-foot .f-brand p a, .site-foot .legal a, .foot-links a { padding: 0; min-height: 0; display: inline; }
  .site-foot .f-social a { width: 44px !important; height: 44px !important; }
  .go, .tc-body .go, .section > .wrap > a, .cardrow .card a:not(.btn), .related a.more { display: inline-flex; align-items: center; min-height: 44px; }
  .head-cta { min-height: 44px; }
}

/* shorter phone home page + one-line cookie bar on desktop */
@media (max-width: 760px) {
  #specialties .kicker, #one-roof .kicker { display: none; }
  .trust .item { padding: 14px 10px 12px; }
}
@media (min-width: 900px) {
  #srosm-cookie { flex-wrap: nowrap !important; padding: 8px 24px !important; }
  #srosm-cookie p { flex: 1 1 auto !important; margin: 0 !important; }
  #srosm-cookie > div { width: auto !important; flex: 0 0 auto; }
}

/* slimmer sticky header on desktop */
@media (min-width: 921px) {
  .top-strip .ts-in { padding-top: 3px; padding-bottom: 3px; }
  .site-head .logo-link img { height: 50px; }
  .site-head .bar { min-height: 0; padding-top: 6px; padding-bottom: 6px; }
}

/* ---------------- mobile menu fix (Sept 30, 2026) ----------------
   The open menu lived inside the sticky header and was taller than the screen,
   so everything below Specialties was unreachable. Now it scrolls on its own. */
@media (max-width: 920px) {
  .nav.open { max-height: calc(100vh - 70px); max-height: calc(100dvh - 70px); overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding-bottom: 96px; border-top: 1px solid var(--line); }
  .nav.open { flex-wrap: nowrap; }
  .nav.open > * { flex-shrink: 0; }
  .nav .drop > a { font-weight: 700; }
  .nav .drop-menu { padding: 0 0 6px 16px; margin: 0 0 6px 6px; border-left: 2px solid var(--line); }
  .nav .dm-in a { padding: 8px 0; min-height: 40px; font-size: 15px; }
}

/* ---------------- mobile QA fixes (Sept 30, 2026) ---------------- */
@media (max-width: 760px) {
  /* Q&A library + "Where to next?" tiles: show the actual text again (the compact name-only style is homepage specialties only) */
  .rel-grid { grid-template-columns: 1fr !important; gap: 8px !important; }
  .rel-grid a { font-size: 15px !important; line-height: 1.4; display: block !important; min-height: 0; padding: 12px 14px !important; }
  .rel-grid a b { display: block; font-size: 12px !important; letter-spacing: .06em; text-transform: uppercase; color: var(--accent); margin: 0 0 3px; line-height: 1.3; }
  div.related[style] .rel-grid { grid-template-columns: 1fr 1fr !important; }
  div.related[style] .rel-grid a { font-size: 0 !important; line-height: 0; display: flex !important; align-items: center; min-height: 56px; padding: 10px 12px !important; }
  div.related[style] .rel-grid a b { font-size: 14px !important; line-height: 1.25; text-transform: none; letter-spacing: 0; color: inherit; margin: 0; }
  /* service heroes: one Book/Call pair, full width */
  .hero .hero-grid:has(.cx-ctas) .hero-cta { display: none; }
  .hero .cx-ctas { display: grid; gap: 10px; }
  .hero .cx-ctas .cx-btn { width: 100%; justify-content: center; box-sizing: border-box; }
  /* hub surgeon swipe row: don't clip the peeking card */
  .hub-docs .hd-grid { margin: 0 -24px; padding: 2px 24px 12px; scroll-padding-left: 24px; }
  /* hero: shorter stack so Book is above the fold */
  .hero h1 { font-size: clamp(1.7rem, 7vw, 2rem); }
  .hero .eyebrow { font-size: 12px; letter-spacing: .08em; }
  /* footer legal links: real tap targets */
  .site-foot .legal a, .foot-links a { display: inline-block !important; padding: 8px 6px !important; min-height: 40px !important; line-height: 24px; }
  /* trust strip: odd last stat spans the row */
  .trust .item:last-child:nth-child(odd) { grid-column: 1 / -1; border-top: 1px solid rgba(255,255,255,.16); }
  /* inline text links: taller tap targets; no orphan arrows */
  .loc-card a { display: inline-block; padding-block: 8px; }
  .team-grid a.more, .card a.more, a.arrow { white-space: nowrap; }
  form button[type=submit], form .btn[type=submit] { width: 100%; }
}
@media (max-width: 920px) {
  /* am-i-a-candidate: restore side gutters (inline style zeroed them) */
  main.wrap[style] { padding-left: 24px !important; padding-right: 24px !important; }
  /* mobile menu: parents are section headings, sub-links do the navigating */
  .nav .drop > a { pointer-events: none; color: var(--ink-soft); }
  .nav .nav-extra a { white-space: nowrap; padding: 10px 14px; }
}

/* ---- Staff Portal (append to css/site.css) ---- */
.foot-portal{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 18px;margin:34px auto 0;padding:16px 20px;max-width:760px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(255,255,255,.04)}
.foot-portal a{display:inline-block;background:var(--green,#8FBF3B);color:#1f2a12!important;font-weight:700;padding:11px 22px;border-radius:4px;margin:0;letter-spacing:.01em}
.foot-portal a:hover{background:#fff;color:#1f2a12}
.foot-portal span{font-size:13px;color:#B9C2C4}
.portal-page{padding:36px 24px 56px}
.portal-main{min-width:0}
.portal-main h2{font-size:var(--step-3);margin:40px 0 12px}
.portal-main ol{padding-left:22px;max-width:70ch}.portal-main li{margin-bottom:8px}
.portal-aside{position:sticky;top:96px}
.portal-aside .box{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:20px 22px;margin-bottom:16px;font-size:15px}
.portal-aside .box h3{font-family:var(--serif);font-size:1.15rem;margin:0 0 8px}
.portal-aside .box p{margin:0 0 10px;color:var(--ink-soft)}.portal-aside .box p:last-child{margin:0}
.portal-aside .box ul{margin:0;padding-left:18px;color:var(--ink-soft)}.portal-aside .box li{margin-bottom:5px}
.portal-aside .box.green{background:var(--accent-wash);border-color:transparent}
.portal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:8px 0 12px}
@media(max-width:1000px){.portal-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.portal-grid{grid-template-columns:1fr}}
.consent-band{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:center;background:var(--charcoal);color:#fff;border-radius:10px;padding:30px 34px;margin:4px 0 26px;text-decoration:none}
.consent-band b{display:block;font-family:var(--serif);font-size:1.7rem;line-height:1.15;margin-bottom:8px;color:#fff}
.consent-band p{margin:0;color:#D5DBDD;font-size:15.5px}
.consent-band .cta{justify-self:end;background:var(--green);color:#1f2a12;font-weight:700;padding:14px 26px;border-radius:4px;white-space:nowrap}
.consent-band:hover .cta{background:#fff}
@media(max-width:760px){.consent-band{grid-template-columns:1fr}.consent-band .cta{justify-self:start}}
.portal-card{display:block;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--green);border-radius:8px;padding:22px 22px 18px;text-decoration:none;color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.04)}
.portal-card:hover{border-color:var(--accent);box-shadow:0 6px 20px rgba(0,0,0,.08)}
.portal-card b{display:block;font-family:var(--serif);font-size:1.25rem;margin-bottom:6px;color:var(--ink)}
.portal-card p{margin:0 0 12px;font-size:15px;color:var(--ink-soft)}
.portal-card .go{font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.portal-card.consent{border-top-color:var(--charcoal);background:var(--accent-wash)}
.sr-form{display:grid;gap:18px;max-width:none;background:var(--surface,#fff);border:1px solid var(--line,#e6e2d8);border-radius:10px;padding:30px 32px}
@media(max-width:640px){.sr-form{padding:22px 18px}}
.sr-form .row{display:grid;gap:16px;grid-template-columns:1fr 1fr}@media(max-width:640px){.sr-form .row{grid-template-columns:1fr}}
.sr-form label{display:block;font-weight:650;font-size:14.5px;margin-bottom:6px}.sr-form label small{font-weight:400;color:var(--ink-soft)}
.sr-form input,.sr-form select,.sr-form textarea{width:100%;font:inherit;font-size:16px;padding:12px 14px;border:1.5px solid var(--line,#d9d5cc);border-radius:4px;background:#fff;color:var(--ink)}
.sr-form input:focus,.sr-form select:focus,.sr-form textarea:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.sr-form textarea{min-height:140px;resize:vertical}
.sr-form input[type=file]{padding:10px;background:var(--bone,#f6f4ef)}
.sr-form input[type=checkbox],.sr-form input[type=radio]{width:auto;margin:0 10px 0 0;transform:scale(1.25)}
.sr-form .check{display:flex;align-items:flex-start;gap:6px;font-weight:500;font-size:16px;line-height:1.45;padding:4px 0}
.sr-form .check input{margin-top:4px;flex:none}
.sr-form .choices{display:grid;gap:12px}
.sr-form .stack{display:grid;gap:16px}
.sr-form .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.sr-form .btn{justify-self:start;background:var(--accent);color:#fff;border:0;cursor:pointer;font-size:17px;padding:14px 26px;border-radius:4px}
.sr-form .btn:hover{background:var(--accent-deep)}
.sr-form .btn[disabled]{opacity:.55;cursor:wait}
.sr-form .fine{font-size:13px;color:var(--ink-soft);margin:0}
.sr-form fieldset{border:0;border-top:1px solid var(--line);border-radius:0;padding:18px 0 4px;margin:4px 0 0}
.sr-form fieldset:first-of-type{border-top:0;padding-top:0}
.sr-form legend{display:block;width:100%;font-family:var(--serif);font-weight:650;font-size:1.2rem;padding:0;margin-bottom:12px}
.sr-form fieldset{min-width:0;display:grid;gap:16px}
.sr-form legend small{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--ink-soft)}
.sr-form .choices{display:grid;gap:12px}
.sr-form .choices{display:grid;gap:10px}
.sr-note{background:var(--accent-wash,#eef4e3);border-left:4px solid var(--accent);padding:14px 18px;border-radius:4px;max-width:none;margin:0 0 22px}
.sr-note p{margin:0;font-size:15px}
.consent-text{background:var(--bone);border:1.5px solid var(--line);border-radius:6px;padding:22px 26px;font-size:15px;line-height:1.55;columns:2;column-gap:36px}
@media(max-width:900px){.consent-text{columns:1}}
.consent-text h3{break-after:avoid}.consent-text p{break-inside:avoid}
.consent-text h3{font-family:var(--serif);font-size:1.1rem;margin:16px 0 6px}
.consent-text h3:first-child{margin-top:0}
.consent-text p{margin:0 0 10px}
.sig-box{font-family:"Brush Script MT","Snell Roundhand",cursive;font-size:26px!important;padding:8px 14px!important}
.sr-success{display:none;background:#fff;border:1px solid var(--line);border-left:6px solid var(--ok);border-radius:8px;padding:28px 32px}
.sr-success h2{margin:0 0 8px;font-family:var(--serif)}
.sr-success .btn{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;padding:12px 22px;border-radius:4px;font-weight:700;margin-right:10px}
.portal-back{display:inline-block;margin:0 0 18px;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
@media print{.site-head,.site-foot,.sticky-bar,#srosm-cookie,.portal-back,.sr-form .btn,.no-print{display:none!important}.consent-text{max-height:none;overflow:visible;border:0}.sr-form{border:0;padding:0}body{background:#fff}}
