/* ==========================================================================
   Fortifying Wellness — Integrative Psychiatry, Littleton CO
   Brand: Sage #a3b48c · Dark Sage #5d8164 · Teal #5a979b · Dark Teal #285b66 · Tan #ab8f69
   Type: Baskerville (display) · Gill Sans Light (body)
   ========================================================================== */

/* ---------- Fonts ---------- */
@font-face {
  font-family: "Baskerville W";
  src: url("../fonts/baskerville-regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Baskerville W";
  src: url("../fonts/baskerville-semibold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Baskerville W";
  src: url("../fonts/baskerville-italic.woff2") format("woff2");
  font-weight: 400; font-style: italic; font-display: swap;
}
@font-face {
  font-family: "Gill Sans W";
  src: url("../fonts/gillsans-light.woff2") format("woff2");
  font-weight: 300; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Gill Sans W";
  src: url("../fonts/gillsans-regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Gill Sans W";
  src: url("../fonts/gillsans-semibold.woff2") format("woff2");
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Gill Sans W";
  src: url("../fonts/gillsans-lightitalic.woff2") format("woff2");
  font-weight: 300; font-style: italic; font-display: swap;
}

/* ---------- Tokens ---------- */
:root {
  /* Brand */
  --sage: #a3b48c;
  --sage-dark: #5d8164;
  --teal: #5a979b;
  --teal-dark: #285b66;
  --tan: #ab8f69;

  /* Text-safe shades of brand colors (WCAG AA on cream/white) */
  --sage-text: #4c6852;      /* darker sage for small text on light */
  --tan-text: #85683f;       /* darker tan for small text on light */

  /* Derived neutrals & tints */
  --ink: #1f3238;            /* deep teal-charcoal for headings on light */
  --body-color: #3c4f53;     /* body text */
  --muted: #5f7276;          /* secondary text */
  --cream: #f8f7f2;          /* page background */
  --surface: #ffffff;
  --line: #e2e0d4;           /* warm hairline */
  --line-strong: #cfccbd;
  --sage-tint: #eff2e8;
  --teal-tint: #eaf1f1;
  --tan-tint: #f4eee4;
  --teal-deepest: #1d454d;   /* footer / hover of dark teal */

  --font-display: "Baskerville W", Baskerville, "Libre Caslon Text", Georgia, serif;
  --font-body: "Gill Sans W", "Gill Sans", "Gill Sans MT", "Source Sans 3", -apple-system, Helvetica, Arial, sans-serif;

  --container: 1180px;
  --radius: 10px;
  --radius-lg: 16px;
  --shadow-soft: 0 10px 30px -12px rgba(31, 50, 56, 0.18);
  --shadow-card: 0 4px 20px -8px rgba(31, 50, 56, 0.12);
  --header-h: 84px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body {
  margin: 0;
  font-family: var(--font-body);
  font-weight: 300;
  font-size: 1.0625rem;            /* 17px */
  line-height: 1.65;
  color: var(--body-color);
  background: var(--cream);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--teal-dark); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--teal); }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  font-weight: 400;
  color: var(--ink);
  line-height: 1.18;
  margin: 0 0 0.6em;
  letter-spacing: 0.005em;
}
h1 { font-size: clamp(2.1rem, 4.6vw, 3.3rem); }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.4rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.5rem); }
h4 { font-size: 1.125rem; }
p { margin: 0 0 1.1em; }
strong { font-weight: 600; }
ul, ol { padding-left: 1.3em; }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap;
}

/* ---------- Layout helpers ---------- */
.container { max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.section { padding: 88px 0; }
.section--tight { padding: 64px 0; }
.section--white { background: var(--surface); }
.section--sage { background: var(--sage-tint); }
.section--teal-tint { background: var(--teal-tint); }
.section--line-top { border-top: 1px solid var(--line); }

.section-head { max-width: 720px; margin: 0 auto 56px; text-align: center; }
.section-head--left { margin-left: 0; text-align: left; }
.section-head p { color: var(--muted); font-size: 1.125rem; margin-bottom: 0; }

/* Eyebrow label — Gill Sans caps with tan rules, echoing the wordmark */
.eyebrow {
  display: inline-flex; align-items: center; gap: 14px;
  font-weight: 600; font-size: 0.8125rem; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sage-text);
  margin-bottom: 18px;
}
.eyebrow::before, .eyebrow::after {
  content: ""; height: 1px; width: 34px; background: var(--tan); flex: none;
}
.eyebrow--left::before { display: none; }
.eyebrow--plain::before, .eyebrow--plain::after { display: none; }
.section-head--left .eyebrow::before { display: none; }

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  font-family: var(--font-body); font-weight: 600; font-size: 0.9375rem;
  letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
  border-radius: 999px; padding: 15px 30px; line-height: 1.1;
  border: 1px solid transparent; cursor: pointer;
  transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .15s ease, box-shadow .2s ease;
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--teal-dark); color: #fff; box-shadow: var(--shadow-card); }
.btn--primary:hover { background: var(--teal-deepest); color: #fff; }
.btn--outline { background: transparent; color: var(--teal-dark); border-color: var(--teal-dark); }
.btn--outline:hover { background: var(--teal-dark); color: #fff; }
.btn--on-dark { background: #fff; color: var(--teal-dark); }
.btn--on-dark:hover { background: var(--tan-tint); color: var(--teal-deepest); }
.btn--ghost-on-dark { background: transparent; color: #fff; border-color: rgba(255,255,255,.65); }
.btn--ghost-on-dark:hover { background: rgba(255,255,255,.12); color: #fff; border-color: #fff; }
.btn--small { padding: 11px 22px; font-size: 0.8125rem; }

.text-link {
  font-weight: 600; letter-spacing: 0.04em; text-decoration: none;
  color: var(--sage-text); border-bottom: 1px solid var(--tan);
  padding-bottom: 2px; transition: color .2s ease, border-color .2s ease;
}
.text-link:hover { color: var(--teal-dark); border-color: var(--teal-dark); }

/* ---------- Header / Nav ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(248, 247, 242, 0.92);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.site-header__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 28px;
  height: var(--header-h); max-width: 1320px; margin: 0 auto; padding: 0 24px;
}
.site-header__logo img { height: 52px; width: auto; }

.site-nav { display: flex; align-items: center; gap: 4px; }
.site-nav a { text-decoration: none; }
.site-nav__link {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 400; font-size: 0.9375rem; letter-spacing: 0.05em;
  color: var(--ink); padding: 10px 14px; border-radius: 8px;
  background: none; border: 0; font-family: var(--font-body); cursor: pointer;
}
.site-nav__link:hover, .site-nav__link[aria-expanded="true"] { color: var(--teal-dark); background: var(--teal-tint); }
.site-nav__link.is-current { color: var(--teal-dark); box-shadow: inset 0 -2px 0 var(--tan); border-radius: 8px 8px 0 0; }
.site-nav__caret { width: 10px; height: 10px; flex: none; transition: transform .2s ease; }
.site-nav__link[aria-expanded="true"] .site-nav__caret { transform: rotate(180deg); }

.nav-item { position: relative; }
.nav-dropdown {
  position: absolute; top: calc(100% + 10px); left: 50%; transform: translateX(-50%);
  min-width: 300px; background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius); box-shadow: var(--shadow-soft);
  padding: 10px; display: none; z-index: 110;
}
/* invisible hover bridge so the cursor can cross the gap below the nav button */
.nav-dropdown::before {
  content: ""; position: absolute; top: -16px; left: 0; right: 0; height: 16px;
}
.nav-item.is-open .nav-dropdown { display: block; }
.nav-dropdown a {
  display: block; padding: 10px 14px; border-radius: 8px;
  font-size: 0.9375rem; color: var(--ink); text-decoration: none;
}
.nav-dropdown a:hover { background: var(--sage-tint); color: var(--teal-dark); }
.nav-dropdown a span { display: block; font-size: 0.8125rem; color: var(--muted); margin-top: 1px; }
.nav-dropdown__all {
  border-top: 1px solid var(--line); margin-top: 8px; padding-top: 8px;
}
.nav-dropdown__all a { font-weight: 600; color: var(--sage-text); }

.site-header__actions { display: flex; align-items: center; gap: 18px; }
.site-header__phone {
  display: inline-flex; align-items: center; gap: 8px;
  font-weight: 600; font-size: 0.9375rem; letter-spacing: 0.03em;
  color: var(--teal-dark); text-decoration: none; white-space: nowrap;
}
.site-header__phone svg { width: 16px; height: 16px; }
.site-header__phone:hover { color: var(--teal); }

.nav-toggle {
  display: none; background: none; border: 0; padding: 10px; cursor: pointer; color: var(--teal-dark);
}
.nav-toggle svg { width: 28px; height: 28px; display: block; }

/* Mobile nav */
@media (max-width: 1080px) {
  .site-nav, .site-header__actions .btn, .site-header__phone { display: none; }
  .nav-toggle { display: block; }
  .site-header.nav-open .site-nav {
    display: flex; flex-direction: column; align-items: stretch; gap: 0;
    position: absolute; top: var(--header-h); left: 0; right: 0;
    background: var(--surface); border-bottom: 1px solid var(--line);
    padding: 12px 16px 24px; box-shadow: var(--shadow-soft);
    max-height: calc(100vh - var(--header-h)); overflow: auto;
  }
  .site-header.nav-open .site-nav__link { width: 100%; justify-content: space-between; font-size: 1.05rem; padding: 14px 10px; }
  .nav-dropdown { position: static; transform: none; min-width: 0; border: 0; box-shadow: none; padding: 0 0 8px 14px; }
  .site-header.nav-open .mobile-cta { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; padding: 0 10px; }
}
.mobile-cta { display: none; }

/* ---------- Hero ---------- */
.hero {
  position: relative; min-height: min(78vh, 720px);
  display: flex; align-items: center; overflow: hidden;
  background: var(--teal-deepest);
}
.hero__bg { position: absolute; inset: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.hero__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(23, 49, 56, 0.82) 0%, rgba(23, 49, 56, 0.55) 45%, rgba(23, 49, 56, 0.18) 100%);
}
.hero__inner { position: relative; z-index: 2; padding-top: 120px; padding-bottom: 120px; max-width: 100%; }
.hero__content { max-width: 640px; color: #fff; }
.hero__eyebrow {
  display: inline-flex; align-items: center; gap: 14px;
  font-weight: 600; font-size: 0.8125rem; letter-spacing: 0.2em; text-transform: uppercase;
  color: #e8dbc6; margin-bottom: 22px;
}
.hero__eyebrow::before { content: ""; width: 40px; height: 1px; background: var(--tan); }
.hero__content h1 { color: #fff; font-size: clamp(2.3rem, 4.8vw, 3.6rem); margin-bottom: 20px; }
.hero__lede { font-size: 1.25rem; line-height: 1.55; color: rgba(255, 255, 255, 0.92); max-width: 540px; margin-bottom: 34px; }
.hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 30px; }
.hero__meta {
  display: flex; flex-wrap: wrap; gap: 10px 26px;
  font-size: 0.9375rem; color: rgba(255, 255, 255, 0.85);
}
.hero__meta span { display: inline-flex; align-items: center; gap: 8px; }
.hero__meta svg { width: 15px; height: 15px; color: var(--sage); }

/* Sub-page hero */
.page-hero {
  background: linear-gradient(180deg, var(--teal-tint) 0%, var(--cream) 100%);
  border-bottom: 1px solid var(--line);
  padding: 64px 0 56px;
}
.page-hero--photo { position: relative; background: var(--teal-deepest); border-bottom: 0; padding: 96px 0; overflow: hidden; }
.page-hero--photo .page-hero__bg { position: absolute; inset: 0; }
/* Framed so the ridgeline falls below the lede and the dusk glow sits behind the CTAs. */
.page-hero--photo .page-hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 72%; }
.page-hero--photo .page-hero__bg::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(23,49,56,.85) 0%, rgba(23,49,56,.6) 50%, rgba(23,49,56,.25) 100%);
}
.page-hero--photo .container { position: relative; z-index: 2; }
.page-hero--photo h1, .page-hero--photo .page-hero__lede { color: #fff; }
.page-hero--photo .breadcrumbs, .page-hero--photo .breadcrumbs a { color: rgba(255,255,255,.75); }
.page-hero__content { max-width: 760px; }
.page-hero__lede { font-size: 1.1875rem; color: var(--muted); max-width: 640px; }
.page-hero--photo .page-hero__lede { color: rgba(255,255,255,.9); }
.page-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }

.breadcrumbs { font-size: 0.8438rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); margin-bottom: 22px; }
.breadcrumbs a { color: var(--sage-text); text-decoration: none; font-weight: 600; }
.breadcrumbs a:hover { color: var(--teal-dark); }
.breadcrumbs span[aria-hidden] { margin: 0 8px; color: var(--tan); }

/* ---------- Cards ---------- */
.card-grid { display: grid; gap: 22px; }
.card-grid--3 { grid-template-columns: repeat(3, 1fr); }
.card-grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .card-grid--3, .card-grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .card-grid--3, .card-grid--4 { grid-template-columns: 1fr; } }

.card {
  position: relative;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 30px 28px;
  display: flex; flex-direction: column; gap: 0;
  transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.card:hover { box-shadow: var(--shadow-soft); transform: translateY(-3px); border-color: var(--sage); }
.card__icon {
  width: 52px; height: 52px; border-radius: 50%;
  background: var(--sage-tint); color: var(--sage-dark);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 20px; transition: background-color .25s ease, color .25s ease;
}
.card:hover .card__icon { background: var(--teal-dark); color: #fff; }
.card__icon svg { width: 26px; height: 26px; }
.card h3 { margin-bottom: 10px; font-size: 1.3125rem; }
.card h3 a { text-decoration: none; color: inherit; }
.card h3 a::after { content: ""; position: absolute; inset: 0; }
.card p { font-size: 0.9843rem; color: var(--muted); margin-bottom: 18px; }
.card__more {
  margin-top: auto; font-weight: 600; font-size: 0.8438rem; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--sage-text);
  display: inline-flex; align-items: center; gap: 8px;
}
.card__more svg { width: 14px; height: 14px; transition: transform .2s ease; }
.card:hover .card__more { color: var(--teal-dark); }
.card:hover .card__more svg { transform: translateX(4px); }

/* ---------- At-a-glance fact panel ---------- */
.glance {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-card);
  overflow: hidden;
}
.glance__head {
  background: var(--teal-dark); color: #fff;
  padding: 18px 28px; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap;
}
.glance__head h2, .glance__head h3 { color: #fff; font-size: 1.25rem; margin: 0; }
.glance__head span { font-size: 0.8438rem; letter-spacing: 0.12em; text-transform: uppercase; color: #dcd2bd; font-weight: 600; }
.glance__grid { display: grid; grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .glance__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 580px) { .glance__grid { grid-template-columns: 1fr; } }
.glance__item { padding: 22px 28px; border-top: 1px solid var(--line); }
.glance__item--full { grid-column: 1 / -1; }
.glance__grid .glance__item:nth-child(-n+3) { border-top: 0; }
@media (max-width: 900px) { .glance__grid .glance__item:nth-child(3) { border-top: 1px solid var(--line); } }
.glance__label {
  font-size: 0.7813rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--tan-text); display: block; margin-bottom: 6px;
}
.glance__value { font-size: 0.9843rem; color: var(--body-color); }
.glance__value a { font-weight: 600; }
.glance__value ul { margin: 6px 0 0; padding-left: 1.2em; }
.glance__value ul li, .prose .glance__value ul li { margin-bottom: 5px; }
.glance__value ul li:last-child, .prose .glance__value ul li:last-child { margin-bottom: 0; }

/* ---------- Checklist ---------- */
.checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.checklist--2col { grid-template-columns: 1fr 1fr; gap: 14px 32px; }
@media (max-width: 720px) { .checklist--2col { grid-template-columns: 1fr; } }
.checklist li { display: flex; gap: 14px; align-items: flex-start; min-width: 0; overflow-wrap: anywhere; }
.checklist svg { width: 22px; height: 22px; flex: none; color: var(--sage-dark); margin-top: 2px; }

/* ---------- Steps / timeline ---------- */
.steps { list-style: none; margin: 0; padding: 0; position: relative; display: grid; gap: 34px; }
.steps::before {
  content: ""; position: absolute; left: 27px; top: 20px; bottom: 20px;
  width: 2px; background: linear-gradient(var(--sage), var(--teal));
  opacity: .45;
}
.step { position: relative; display: flex; gap: 26px; }
.step__num {
  flex: none; width: 56px; height: 56px; border-radius: 50%;
  background: var(--surface); border: 2px solid var(--sage-dark);
  color: var(--teal-dark); font-family: var(--font-display); font-size: 1.375rem;
  display: flex; align-items: center; justify-content: center;
  position: relative; z-index: 2;
}
.step__body {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 26px 30px; flex: 1; box-shadow: var(--shadow-card);
}
.step__body h3 { font-size: 1.25rem; margin: 0 0 8px; }
.step__body p { margin-bottom: 0; color: var(--muted); font-size: 0.9843rem; }

/* ---------- FAQ ---------- */
.faq { --faq-toggle-size: 20px; --faq-toggle-gap: 18px; display: grid; gap: 12px; }
.faq details {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 0 26px; transition: border-color .2s ease;
}
.faq details[open] { border-color: var(--sage); box-shadow: var(--shadow-card); }
.faq summary {
  cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: var(--faq-toggle-gap);
  padding: 20px 0; font-family: var(--font-display); font-size: 1.125rem; color: var(--ink);
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary svg { width: var(--faq-toggle-size); height: var(--faq-toggle-size); flex: none; color: var(--sage-dark); transition: transform .25s ease; }
.faq details[open] summary svg { transform: rotate(45deg); }
/* Answers share the question's text width, leaving the toggle column clear. */
.faq .faq__a { padding: 0 calc(var(--faq-toggle-size) + var(--faq-toggle-gap)) 22px 0; color: var(--muted); font-size: 0.9843rem; }
.faq .faq__a p:last-child { margin-bottom: 0; }

/* FAQs & insurance — single centered column */
/* The section intro and the insurance block read as one unit here, so the standard
   56px section-head gap opens a dead band between them. */
#faqs .section-head { margin-bottom: 30px; }
#faqs .split { display: block; max-width: 780px; margin: 0 auto; }
#faqs .split > div:first-child { text-align: center; margin-bottom: 48px; }
#faqs .split > div:first-child p { margin-left: auto; margin-right: auto; max-width: 62ch; }
#faqs .callout { display: none; }
#faqs .faq { gap: 0; }
#faqs .faq details {
  background: transparent; border: 0; border-bottom: 1px solid var(--line);
  border-radius: 0; padding: 0 4px;
}
#faqs .faq details:first-child { border-top: 1px solid var(--line); }
#faqs .faq details[open] { box-shadow: none; border-color: var(--line); }

/* ---------- CTA band ---------- */
.cta-band {
  position: relative; background: var(--teal-dark); color: #fff; overflow: hidden;
}
.cta-band::before {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(ellipse at 85% 20%, rgba(163, 180, 140, 0.25), transparent 55%),
              radial-gradient(ellipse at 10% 90%, rgba(90, 151, 155, 0.3), transparent 50%);
}
.cta-band .container { position: relative; z-index: 2; }
.cta-band__inner { padding: 84px 0; text-align: center; max-width: 680px; margin: 0 auto; }
.cta-band h2 { color: #fff; margin-bottom: 14px; }
.cta-band p { color: rgba(255, 255, 255, 0.88); font-size: 1.125rem; margin-bottom: 32px; }
.cta-band__ctas { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }
.cta-band__note { margin-top: 22px; font-size: 0.9063rem; color: rgba(255, 255, 255, 0.72); }
.cta-band__note a { color: #fff; }

/* CTA band variant with the map on the right */
.cta-band__inner--split {
  display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 64px; align-items: center;
  max-width: none; text-align: left;
}
.cta-band__inner--split .cta-band__ctas { justify-content: flex-start; }
@media (max-width: 940px) {
  .cta-band__inner--split { grid-template-columns: 1fr; gap: 44px; text-align: center; }
  .cta-band__inner--split .cta-band__ctas { justify-content: center; }
}

/* ---------- Map embed card ---------- */
.map-card {
  border-radius: var(--radius-lg); overflow: hidden; background: #fff;
  border: 1px solid var(--line); box-shadow: var(--shadow-soft);
}
.map-card iframe { display: block; width: 100%; height: 300px; border: 0; }
.map-card__link {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 18px; background: #fff; color: var(--teal-dark);
  font-weight: 600; font-size: 0.9063rem; border-top: 1px solid var(--line);
}
.map-card__link svg { width: 15px; height: 15px; }
.map-card--on-dark { border-color: rgba(255, 255, 255, 0.28); }

/* ---------- Environment / gallery ---------- */
.env-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
@media (max-width: 1100px) { .env-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .env-grid { grid-template-columns: 1fr; } }
.env-grid figure {
  margin: 0; border-radius: var(--radius-lg); overflow: hidden;
  border: 1px solid var(--line); background: var(--surface); box-shadow: var(--shadow-card);
}
.env-grid img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; transition: transform .6s ease; }
.env-grid figure:hover img { transform: scale(1.035); }
.env-grid figcaption {
  padding: 14px 18px; font-size: 0.8438rem; letter-spacing: 0.08em;
  text-transform: uppercase; font-weight: 600; color: var(--sage-text);
  border-top: 1px solid var(--line);
}

/* ---------- Split layouts ---------- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: center; }
.split--align-top { align-items: start; }
@media (max-width: 940px) { .split { grid-template-columns: 1fr; gap: 40px; } }
.split__media { position: relative; }
.split__media img { border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); width: 100%; object-fit: cover; }
.split__media--framed::before {
  content: ""; position: absolute; inset: -16px; border: 1px solid var(--tan);
  border-radius: calc(var(--radius-lg) + 8px); z-index: 0; pointer-events: none;
}
.split__media--framed img { position: relative; z-index: 1; }
/* Ampa One section (treatments/tms-therapy.html #ampa-one). Manufacturer photos: scale only, never crop, distort, or recolor. */
/* Each photo sits in its own .split__media--framed wrapper, so the spacing here leaves room for
   the frame's -16px outset above and below every image. */
.device-photos { display: grid; grid-template-columns: 1fr; gap: 50px; margin-top: 64px; }
.device-photos img { display: block; height: auto; }
.device-caption { margin: 32px 0 0; font-size: 0.875rem; color: var(--muted); }
/* Side by side, the photo column runs ~165px taller than the copy next to it, so the
   standard 88px bottom padding left the sage band trailing well past the last photo.
   Stacked, the copy is last and the normal rhythm still applies. */
@media (min-width: 941px) { #ampa-one { padding-bottom: 48px; } }

/* ---------- Trust strip ---------- */
.trust-strip { background: var(--surface); border-bottom: 1px solid var(--line); }
.trust-strip__inner {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 48px;
  padding: 20px 24px; max-width: var(--container); margin: 0 auto;
  font-size: 0.9063rem; color: var(--muted);
}
.trust-strip__inner span { display: inline-flex; align-items: center; gap: 10px; }
.trust-strip__inner svg { width: 17px; height: 17px; color: var(--sage-dark); flex: none; }

/* ---------- Insurance ---------- */
.payer-grid { display: flex; flex-wrap: wrap; gap: 12px; }
.payer-chip {
  border: 1px solid var(--line-strong); background: var(--surface);
  border-radius: 999px; padding: 10px 20px;
  font-weight: 400; font-size: 0.9375rem; color: var(--ink); letter-spacing: 0.02em;
}

/* ---------- Payer logos ---------- */
.payer-logos {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 24px;
  align-items: center; justify-items: center;
  list-style: none; padding: 0; margin: 0;
}
.payer-logos > li { display: flex; flex-direction: column; align-items: center; }
.payer-logos img { height: 34px; width: auto; max-width: 100%; object-fit: contain; }
/* Two-line supplied UHC mark: match the visual weight of the single-line logos.
   Multiply blends its white background into the section without editing the asset. */
.payer-logos .payer-logo--uhc { height: 44px; mix-blend-mode: multiply; }
@media (max-width: 620px) {
  .payer-logos { grid-template-columns: repeat(2, 1fr); gap: 26px 18px; }
  .payer-logos img { height: 28px; }
  .payer-logos .payer-logo--uhc { height: 38px; }
}

/* ---------- Embedded consultation form ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1.15fr; gap: 56px; align-items: start; padding: 84px 0; }
@media (max-width: 940px) { .contact-grid { grid-template-columns: 1fr; gap: 40px; } }
.contact-info h2 { color: #fff; }
.contact-info > p { color: rgba(255, 255, 255, 0.88); font-size: 1.0938rem; }
.contact-list { list-style: none; padding: 0; margin: 26px 0; display: grid; gap: 14px; }
.contact-list li { display: flex; gap: 12px; align-items: flex-start; color: rgba(255,255,255,.92); font-size: 0.9843rem; }
.contact-list a { color: #fff; font-weight: 600; }
.contact-list svg { width: 18px; height: 18px; margin-top: 3px; color: var(--sage); flex: none; }

/* Light variant — contact/referral grid on a light section instead of the dark cta-band */
.contact-grid--light { padding: 0; }
.contact-grid--light .contact-info h2 { color: var(--ink); }
.contact-grid--light .contact-info > p { color: var(--muted); }
.contact-grid--light .contact-list li { color: var(--body-color); }
.contact-grid--light .contact-list a { color: var(--teal-dark); }
.contact-grid--light .contact-list svg { color: var(--sage-dark); }
.form-card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft); padding: 10px 10px 0; overflow: hidden;
}
.form-card iframe { display: block; width: 100%; height: 1080px; border: 0; border-radius: 10px; background: #fff; }
.form-card__fallback { text-align: center; font-size: 0.8438rem; padding: 12px 0; color: var(--muted); margin: 0; }
.form-card__fallback a { color: var(--teal-dark); font-weight: 600; }
.form-card__privacy { display: flex; gap: 9px; align-items: flex-start; font-size: 0.8438rem; line-height: 1.55; color: var(--sage-text); background: var(--sage-tint); border-radius: 8px; padding: 11px 14px; margin: 0 0 12px; }
.form-card__privacy svg { width: 15px; height: 15px; flex: none; margin-top: 2px; }

/* contact.html hero: intro, form, and address/map are three cells of the two-column
   grid. The form spans both rows on the right, so on desktop the address block still
   sits directly under the intro. Below 940px the grid collapses to source order,
   which puts the form right under the intro instead of below the address and map. */
.contact-split { grid-template-rows: auto 1fr; column-gap: 72px; row-gap: 0; }
.contact-split__intro { grid-column: 1; grid-row: 1; }
.contact-split__details { grid-column: 1; grid-row: 2; padding-top: 36px; }
.contact-split__form { grid-column: 2; grid-row: 1 / span 2; }
@media (max-width: 940px) {
  .contact-split { grid-template-rows: none; }
  .contact-split__intro,
  .contact-split__details,
  .contact-split__form { grid-column: auto; grid-row: auto; }
  .contact-split__form { margin-top: 40px; }
}

/* ---------- Provider / about ---------- */
.credential-list { list-style: none; padding: 0; margin: 22px 0 0; display: grid; gap: 12px; }
.credential-list li { display: flex; gap: 14px; align-items: flex-start; font-size: 0.9843rem; color: var(--muted); }
.credential-list svg { width: 20px; height: 20px; flex: none; color: var(--tan); margin-top: 2px; }
.pull-quote {
  font-family: var(--font-display); font-style: italic; font-size: 1.375rem; line-height: 1.5;
  color: var(--sage-text); border-left: 2px solid var(--tan);
  padding-left: 24px; margin: 28px 0;
}
.testimonial { max-width: 760px; margin: 0 auto; }
.testimonial blockquote { margin: 18px 0 0; border-left: 2px solid var(--tan); padding-left: 26px; }
.testimonial blockquote p {
  font-family: var(--font-body); font-style: normal; font-weight: 300;
  font-size: 1.1875rem; line-height: 1.72;
  color: var(--sage-text); margin: 0;
}
.testimonial figcaption { margin-top: 18px; padding-left: 28px; font-size: 0.9375rem; color: var(--muted); }

/* Second team member: mirrors the Dr. Wagner split, photo on the left and in a narrower column */
.team-split { margin-top: 64px; padding-top: 56px; border-top: 1px solid rgba(0,0,0,0.1); grid-template-columns: 2fr 3fr; }
.team-split .split__media { order: -1; }
.team-split h3 { font-size: clamp(1.5rem, 2.4vw, 1.875rem); }
@media (max-width: 940px) { .team-split { grid-template-columns: 1fr; } .team-split .split__media { order: 0; max-width: 420px; } }

/* ---------- Prose (long-form inner pages) ---------- */
.prose { max-width: 68ch; }
.prose--legal { max-width: 920px; }
.prose--legal h2 { font-size: clamp(1.35rem, 2vw, 1.65rem); }
.prose--legal ol > li, .prose--legal ul > li { padding-left: 0.3em; }
.prose--legal ol > li + li { margin-top: 1em; }
.prose--legal ol ul { margin-top: 0.65em; }
.prose--legal .legal-contact-card { margin: 0 0 32px; }
.prose--legal .legal-contact-card p { margin-bottom: 0; }
.prose h2 { margin-top: 1.6em; }
.prose .eyebrow + h2 { margin-top: 0; }
.prose h3 { margin-top: 1.4em; }
.prose ul li, .prose ol li { margin-bottom: 0.45em; }
.prose .step__body h3 { margin-top: 0; }
.prose .steps li { margin-bottom: 0; }

.review-line {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  font-size: 0.875rem; color: var(--muted);
  border-top: 1px solid var(--line); margin-top: 56px; padding-top: 20px;
}
.review-line svg { width: 16px; height: 16px; color: var(--sage-dark); flex: none; }

/* ---------- Info callout ---------- */
.callout {
  background: var(--sage-tint); border: 1px solid var(--sage);
  border-radius: var(--radius-lg); padding: 26px 30px; margin: 30px 0;
}
.callout--tan { background: var(--tan-tint); border-color: var(--tan); }
.callout h3, .callout h4 { margin-bottom: 8px; }
.callout p:last-child, .callout ul:last-child { margin-bottom: 0; }

/* ---------- Related links ---------- */
.related-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px; }
.related-links a {
  text-decoration: none; font-weight: 400; font-size: 0.9063rem;
  border: 1px solid var(--line-strong); border-radius: 999px; padding: 9px 18px;
  color: var(--teal-dark); background: var(--surface);
  transition: background-color .2s ease, border-color .2s ease;
}
.related-links a:hover { background: var(--teal-tint); border-color: var(--teal); }

/* ---------- Research citations (treatment pages) ---------- */
.research-grid { display: grid; gap: 22px; grid-template-columns: repeat(4, 1fr); }
.research-grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 980px) { .research-grid, .research-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 620px) { .research-grid, .research-grid--3 { grid-template-columns: 1fr; } }
.research-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 26px 24px; display: flex; flex-direction: column;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.research-card:hover { box-shadow: var(--shadow-card); border-color: var(--sage); }
.research-card h3 { font-size: 1.1563rem; color: var(--teal-dark); margin-bottom: 6px; }
.research-card__meta {
  font-size: 0.7188rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--tan-text); margin-bottom: 12px;
}
.research-card > p:not(.research-card__meta) { font-size: 0.9375rem; color: var(--body-color); margin-bottom: 18px; }
.research-card__cite {
  margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line);
  font-size: 0.8438rem;
}
.research-card__cite em { display: block; color: var(--muted); margin-bottom: 6px; }
.research-card__link {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 600; font-size: 0.8125rem; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--sage-text); text-decoration: none;
}
.research-card__link:hover { color: var(--teal-dark); }
.research-card__link svg { width: 12px; height: 12px; }
.research-note { font-size: 0.8438rem; color: var(--muted); margin: 24px 0 0; max-width: 76ch; }

/* ---------- Evidence & FDA status strip (homepage) ---------- */
.evidence-strip { background: var(--surface); border-bottom: 1px solid var(--line); padding: 0 0 64px; text-align: center; }
.evidence-strip__label {
  font-weight: 600; font-size: 0.75rem; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--tan-text); margin: 0 0 20px;
}
.evidence-strip__items {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  max-width: 1060px; margin: 0 auto 20px;
}
.evidence-strip__items span {
  font-family: var(--font-display); font-size: 1.0625rem; line-height: 1.45;
  color: var(--ink); padding: 0 28px;
}
.evidence-strip__items span + span { border-left: 1px solid var(--line-strong); }
.evidence-strip__items b { font-weight: 600; color: var(--teal-dark); }
@media (max-width: 900px) {
  .evidence-strip__items { grid-template-columns: 1fr; gap: 12px; max-width: 480px; }
  .evidence-strip__items span + span { border-left: 0; }
}
.evidence-strip__line { font-size: 0.9375rem; color: var(--muted); max-width: 64ch; margin: 0 auto; }
.evidence-strip__line a { font-weight: 600; }
.evidence-strip__note { margin: 14px auto 0; font-size: 0.8438rem; color: var(--muted); font-style: italic; }

/* ---------- Stats ---------- */
.stat-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 720px) { .stat-row { grid-template-columns: 1fr; } }
.stat {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 28px; text-align: center;
}
.stat__num { font-family: var(--font-display); font-size: 2.4rem; color: var(--teal-dark); line-height: 1; margin-bottom: 8px; }
.stat__label { font-size: 0.875rem; letter-spacing: 0.06em; text-transform: uppercase; font-weight: 600; color: var(--muted); }
.stat__note { font-size: 0.8125rem; color: var(--muted); margin: 8px 0 0; }

/* ---------- Footer ---------- */
.site-footer { background: var(--teal-deepest); color: rgba(255, 255, 255, 0.82); }
.site-footer a { color: rgba(255, 255, 255, 0.82); text-decoration: none; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.site-footer__main {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 48px;
  padding: 72px 0 48px;
}
@media (max-width: 980px) { .site-footer__main { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .site-footer__main { grid-template-columns: 1fr; } }
.site-footer__brand img { height: 74px; width: auto; filter: brightness(0) invert(1); opacity: 0.95; margin-bottom: 18px; }
.site-footer__brand p { font-size: 0.9063rem; line-height: 1.6; max-width: 34ch; }
.site-footer h4 {
  color: #e8dbc6; font-family: var(--font-body); font-weight: 600;
  font-size: 0.8125rem; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 18px;
}
.site-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; font-size: 0.9375rem; }
.footer-guides { margin-top: 24px; }
.site-footer address { font-style: normal; font-size: 0.9375rem; line-height: 1.7; }
.site-footer address a { font-weight: 600; }
.site-footer address .nowrap { white-space: nowrap; }
.site-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.16);
  padding: 22px 0; display: flex; flex-wrap: wrap; gap: 12px 30px;
  justify-content: space-between; font-size: 0.8438rem; color: rgba(255, 255, 255, 0.6);
}
.site-footer__bottom a { color: rgba(255, 255, 255, 0.6); }
.footer-crisis {
  background: rgba(0, 0, 0, 0.18); font-size: 0.875rem; color: rgba(255,255,255,.75);
  padding: 14px 0; text-align: center;
}
.footer-crisis a { color: #fff; font-weight: 600; }

/* ---------- Misc ---------- */
.skip-link {
  position: fixed; top: 12px; left: 12px; z-index: 10000;
  transform: translateY(-160%); padding: 10px 16px;
  border-radius: 6px; background: #fff; color: var(--teal-deepest);
  box-shadow: 0 2px 12px rgba(0,0,0,.22); font-weight: 700;
}
.skip-link:focus { transform: translateY(0); outline: 3px solid var(--tan); outline-offset: 3px; }
.two-col-body { columns: 2; column-gap: 48px; }
@media (max-width: 800px) { .two-col-body { columns: 1; } }
.center { text-align: center; }
.mt-0 { margin-top: 0; } .mb-0 { margin-bottom: 0; }
.section-cta { text-align: center; margin-top: 48px; }
