.hero-cinema {
  position: relative; overflow: hidden;
  display: grid; align-items: center;
  min-height: clamp(34rem, 78vh, 50rem);
  min-height: clamp(34rem, 78svh, 50rem);
  padding-block: clamp(4rem, 9svh, 6rem);
  background: var(--brand);
  color: var(--c-ivory);
}
.hero__cta { display: flex; align-items: center; gap: var(--s-2); flex-wrap: wrap; }
.hero__cta-note { margin-top: 0.85rem; font-size: 0.85rem; letter-spacing: 0.01em; color: color-mix(in srgb, var(--c-cream) 78%, transparent); }
.hero__links { display: flex; align-items: center; flex-wrap: wrap; column-gap: 2rem; row-gap: 0.5rem; }
.hero__links a[data-cta="login"] { font-weight: 600; }
@media (max-width: 480px) {
  .hero__links { flex-direction: column; align-items: flex-start; row-gap: 0.85rem; }
}
.hero__reset { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.hero__reset:hover { color: var(--c-cream); }
.hero-cinema__media {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(110% 90% at 82% 22%, color-mix(in srgb, var(--c-butter) 52%, var(--c-sand)) 0%, color-mix(in srgb, var(--c-butter) 30%, transparent) 38%, transparent 62%),
    radial-gradient(90% 80% at 12% 88%, color-mix(in srgb, var(--c-conifer) 72%, var(--c-sage)) 0%, transparent 58%),
    linear-gradient(163deg, color-mix(in srgb, var(--c-conifer) 84%, var(--c-butter)) 0%, color-mix(in srgb, var(--c-conifer) 58%, var(--c-butter)) 48%, color-mix(in srgb, var(--c-butter) 55%, var(--c-conifer)) 100%);
}
.hero-cinema__media::after {
  content: ""; position: absolute; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  opacity: .05; mix-blend-mode: overlay;
}
.hero-cinema__video, .hero-cinema__fallback, .hero-cinema__stills, .hero-cinema__still {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
.hero-cinema__scrim {
  position: absolute; inset: 0;
  background:
    radial-gradient(115% 125% at 16% 70%, color-mix(in srgb, var(--c-conifer) var(--hero-scrim-core), transparent) 0%, color-mix(in srgb, var(--c-conifer) var(--hero-scrim-text), transparent) 40%, transparent 72%),
    linear-gradient(to top, color-mix(in srgb, var(--c-conifer) 42%, transparent) 0%, transparent 24%),
    linear-gradient(color-mix(in srgb, var(--c-conifer) var(--hero-scrim-veil), transparent), color-mix(in srgb, var(--c-conifer) var(--hero-scrim-veil), transparent));
}
.hero-cinema__content { position: relative; z-index: 1; }
/* Quiet cross-link line inside closing statement bands */
.statement .statement__links { margin-top: var(--s-3); text-align: center; font-size: var(--fs-small);
  color: color-mix(in srgb, var(--c-cream) 75%, transparent); }
.statement .statement__links a { color: var(--c-cream); text-decoration: underline; text-underline-offset: 3px; }
.statement .statement__links a:hover { color: var(--c-butter); }
.section--sand.statement .statement__links { color: color-mix(in srgb, var(--text) 70%, transparent); }
.section--sand.statement .statement__links a { color: var(--brand); }
.section--sand.statement .statement__links a:hover { color: var(--text); }
.hero-cinema h1 { font-size: var(--fs-display); font-weight: 500; line-height: var(--lh-display); letter-spacing: var(--tracking-display); color: var(--c-ivory); max-width: 14ch; margin-bottom: var(--s-3); }
.hero-cinema__sub { font-size: var(--fs-lede); line-height: 1.6; max-width: 44ch; color: var(--c-cream); margin-bottom: var(--s-4); }
.hero-cinema .btn:not(.btn--ghost) { border-color: color-mix(in srgb, var(--c-ivory) 30%, transparent); }
.hero-cinema .btn--ghost { --_fg: var(--c-cream); border-color: color-mix(in srgb, var(--c-cream) 65%, transparent); }
.hero-cinema .btn--ghost:hover { --_fg: var(--c-ivory); background: color-mix(in srgb, var(--c-cream) 12%, transparent); border-color: var(--c-cream); box-shadow: none; }
.hero-cinema :focus-visible { outline-color: var(--c-cream); }
.hero-cinema ::selection { background: color-mix(in srgb, var(--c-butter) 30%, transparent); }
.hero-cinema__credit { position: absolute; z-index: 1; bottom: var(--s-2); right: max(var(--s-3), calc((100% - var(--container)) / 2 + var(--s-3))); font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: var(--tracking-label); text-transform: uppercase; color: var(--c-ivory); }
.hero-cinema[data-hero-mode="placeholder"] .hero-cinema__video, .hero-cinema[data-hero-mode="placeholder"] .hero-cinema__fallback, .hero-cinema[data-hero-mode="placeholder"] .hero-cinema__stills { display: none; }
.hero-cinema[data-hero-mode="poster"] .hero-cinema__video { display: none; }
.hero-cinema[data-hero-mode="video"] .hero-cinema__stills { display: none; }
.hero-cinema[data-hero-mode="stills"] .hero-cinema__video, .hero-cinema[data-hero-mode="stills"] .hero-cinema__fallback { display: none; }
.hero-cinema__still { opacity: 0; transition: opacity 1.2s var(--ease-soft); }
.hero-cinema__still.is-active { opacity: 1; }
/* Ken Burns drift runs continuously on every still, independent of the crossfade,
   so an outgoing image holds its scale while it fades: opacity is the only thing
   that changes at the swap, and there is no size snap. */
.hero-cinema--kenburns .hero-cinema__still {
  transform-origin: 50% 40%;
  animation: hero-kenburns 19.5s ease-in-out infinite alternate;
}
@keyframes hero-kenburns { from { transform: scale(1); } to { transform: scale(1.055); } }
@media (prefers-reduced-motion: reduce) {
  .hero-cinema__video { display: none; }
  /* Stills route: show the poster as a static fallback, no rotation or drift. */
  .hero-cinema[data-hero-mode="stills"] .hero-cinema__fallback { display: block; }
  .hero-cinema[data-hero-mode="stills"] .hero-cinema__stills { display: none; }
  .hero-cinema--kenburns .hero-cinema__still { animation: none; }
}

/* Availability strip */
.availability-strip { background: var(--c-ivory); }
.availability-strip p { display: flex; align-items: center; justify-content: center; gap: .75rem; max-width: none; padding-block: .6875rem; text-align: center; font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: var(--fs-small); line-height: 1.4; color: var(--brand); }
.availability-strip p::before, .availability-strip p::after { content: ""; width: var(--eyebrow-rule); height: 1px; flex-shrink: 0; background: currentColor; opacity: .5; }
@media (max-width: 860px) { .availability-strip p::before, .availability-strip p::after { display: none; } }

/* Founder strip */
.founder-strip { padding-block: clamp(2.5rem, 4vw, 3.5rem); }
.founder-strip p { max-width: 52ch; margin-inline: auto; text-align: center; font-family: var(--font-display); font-style: italic; font-weight: 500; font-size: var(--fs-body); line-height: 1.55; color: color-mix(in srgb, var(--c-conifer) 90%, var(--c-cream)); }

.section-head { text-align: center; max-width: 52ch; margin-inline: auto; margin-bottom: var(--s-5); }
/* Unified centered section-intro treatment: eyebrow, heading with a
   var(--s-3) gap below, then a centered muted lede at ~50ch measure.
   Applies to every paragraph in the pattern, lede-classed or not, since
   the base 64ch measure cap otherwise leaves narrower paragraphs
   hugging the left edge. */
.section-head :is(h1, h2, h3) { margin-bottom: var(--s-3); }
.section-head p {
  margin-inline: auto; max-width: 50ch;
  line-height: 1.6; color: var(--text-muted);
}
.statement p { margin-inline: auto; }
.section-head .eyebrow { justify-content: center; margin-bottom: var(--s-2); }

.grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-3); }
.grid-3 > .reveal:nth-child(2){transition-delay:90ms} .grid-3 > .reveal:nth-child(3){transition-delay:180ms}
.values > .reveal:nth-child(2){transition-delay:60ms} .values > .reveal:nth-child(3){transition-delay:120ms} .values > .reveal:nth-child(4){transition-delay:180ms} .values > .reveal:nth-child(5){transition-delay:240ms} .values > .reveal:nth-child(6){transition-delay:300ms}

.values { display: grid; grid-template-columns: repeat(6, 1fr); gap: 0; text-align: center; }
.values .value { display: flex; flex-direction: column; align-items: center; gap: .75rem; padding: var(--s-2); border-inline-start: 1px solid var(--c-hairline); }
.values .value:first-child { border-inline-start: 0; }
.values svg { width: 26px; height: 26px; stroke: var(--brand); stroke-width: var(--icon-stroke);
  fill: none; stroke-linecap: butt; stroke-linejoin: miter; }
.values span { font-size: var(--fs-small); color: var(--text); line-height: 1.35; }

.statement { text-align: center; --section-y: clamp(5rem, 9vw, 7.5rem); }
.statement h2 { font-size: var(--fs-h1); font-weight: 500; letter-spacing: -0.015em; max-width: 22ch; margin-inline: auto; }
.statement .leafmark { width: 40px; height: 40px; margin: 0 auto var(--s-2); color: var(--c-sage); }

@media (max-width: 860px) {
  .hero-cinema { min-height: min(88svh, 44rem); align-items: end; padding-block: var(--s-6) var(--s-5); }
  .hero-cinema__scrim { background: linear-gradient(to top, color-mix(in srgb, var(--c-conifer) 78%, transparent) 0%, color-mix(in srgb, var(--c-conifer) var(--hero-scrim-text), transparent) 52%, color-mix(in srgb, var(--c-conifer) var(--hero-scrim-veil), transparent) 100%); }
  .grid-3 { grid-template-columns: 1fr; }
  .values { grid-template-columns: repeat(2, 1fr); }
  .values .value { padding-block: var(--s-3); }
  .values .value:nth-child(odd) { border-inline-start: 0; }
  .values .value:nth-child(n+3) { border-top: 1px solid var(--c-hairline); }
}
@media (max-width: 480px) { .hero-cinema .hero__cta .btn { flex: 1 1 100%; justify-content: center; } }

/* ===== Shared page-header + 2-up grid (Membership / About) ===== */
.page-head { padding-block: clamp(3rem, 6vw, 5rem) 0; display: flow-root; } /* flow-root contains the intro's bottom margin so the ivory paints it; no body-color strip before the next section */
.page-head .lede { font-size: 1.15rem; color: var(--text-muted); margin-inline: auto; margin-top: var(--s-2); }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-3); }
@media (max-width: 860px) { .grid-2 { grid-template-columns: 1fr; } }

/* Checklist - bespoke conifer check mark (no butter on light surfaces) */
.checklist { list-style: none; display: flex; flex-direction: column; gap: var(--s-1); margin-top: var(--s-2); }
.checklist li { display: flex; align-items: flex-start; gap: .6rem; }
.checklist li > svg { width: 16px; height: 16px; margin-top: .3em; }

/* ===== Membership page ===== */
.page-membership .tiers .card h3 { margin-bottom: var(--s-1); }
.page-membership .pricing-plate {
  background: var(--surface); border: 1px solid var(--c-hairline);
  border-radius: var(--r-lg); box-shadow: var(--shadow-md);
  max-width: 760px; margin-inline: auto; overflow: hidden;
}
.page-membership .pricing-table { width: 100%; border-collapse: collapse; }
.page-membership .pricing-table th,
.page-membership .pricing-table td { padding: var(--s-2) var(--s-3); text-align: left; }
.page-membership .pricing-table thead th {
  font-family: var(--font-mono); font-size: var(--fs-label);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--text-muted); border-bottom: 1px solid var(--c-hairline);
}
.page-membership .pricing-table tbody tr + tr th,
.page-membership .pricing-table tbody tr + tr td { border-top: 1px solid var(--c-hairline); }
.page-membership .pricing-table tbody th { font-weight: 500; }
.page-membership .pricing-table td {
  font-family: var(--font-display); font-size: var(--fs-h3); color: var(--brand);
  font-variant-numeric: tabular-nums lining-nums;
}
.page-membership .plate-notes { max-width: 760px; margin: var(--s-4) auto 0; }
.page-membership .eyebrow--onGreen { color: var(--c-cream); justify-content: center; margin-bottom: var(--s-2); }
.page-membership .onGreen-note { margin: var(--s-3) auto 0; color: color-mix(in srgb, var(--c-cream) 78%, transparent); }

/* ===== About page ===== */
.page-about .provider { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: var(--s-5); align-items: start; }
.page-about .provider--mirrored .provider__photo { order: 2; }
.page-about .provider--mirrored .provider__text { order: 1; }
.page-about .provider__photo {
  aspect-ratio: 4/5; border-radius: var(--r-lg);
  background: linear-gradient(150deg, var(--c-sand), var(--c-cream) 70%);
  border: 1px solid var(--c-hairline);
  box-shadow: var(--shadow-sm); display: grid; place-items: center;
  position: sticky; top: 88px; overflow: hidden;
}
.page-about .provider__photo img {
  width: 100%; height: 100%; object-fit: cover; object-position: center 30%;
}
.page-about .provider__photo span {
  font-family: var(--font-mono); font-size: var(--fs-label);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--text-muted);
}
.page-about .provider__text .eyebrow { margin-bottom: var(--s-2); }
.page-about .provider__text h2 { margin-bottom: var(--s-1); }
.page-about .provider__cred {
  font-family: var(--font-mono); font-size: var(--fs-small);
  color: var(--text-muted); margin-bottom: var(--s-3);
}
.page-about .provider__text p + p { margin-top: var(--s-2); }
@media (max-width: 860px) {
  .page-about .provider { grid-template-columns: 1fr; }
  .page-about .provider--mirrored .provider__photo { order: 0; }
  .page-about .provider--mirrored .provider__text { order: 1; }
  .page-about .provider__photo { position: static; aspect-ratio: 4/5; max-width: 420px; }
}

/* ===== Interior page header (Services / Home Visits / New Patients) ===== */
.page-header h1 { max-width: 18ch; margin-bottom: var(--s-3); }
.page-header .lede { font-size: var(--fs-lede); line-height: 1.6; max-width: 52ch;
  color: color-mix(in srgb, var(--c-ink) 80%, var(--c-cream)); }
.page-header .eyebrow { margin-bottom: var(--s-2); }

/* ===== Services: specimen index ===== */
.specimen-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--c-hairline); margin-top: var(--s-4); }
.specimen { padding: var(--s-3); border-bottom: 1px solid var(--c-hairline); border-inline-start: 1px solid var(--c-hairline); }
.specimen:nth-child(3n+1) { border-inline-start: 0; }
.specimen__no { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: var(--tracking-label);
  color: var(--text-muted); display: block; margin-bottom: .5rem; }
.specimen h3 { font-size: var(--fs-h3); margin-bottom: .35rem; }
.specimen p { font-size: var(--fs-small); color: var(--text-muted); margin-bottom: .75rem; }
.tier-tag { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: var(--tracking-label);
  text-transform: uppercase; color: var(--brand); background: color-mix(in srgb, var(--c-sage) 16%, transparent);
  padding: .25rem .6rem; border-radius: var(--r-sm); display: inline-block; }
.specimen-grid__note { text-align: center; margin-top: var(--s-4); margin-inline: auto; font-size: var(--fs-small); color: var(--text-muted); }
@media (max-width: 860px) {
  .specimen-grid { grid-template-columns: repeat(2, 1fr); }
  .specimen:nth-child(3n+1) { border-inline-start: 1px solid var(--c-hairline); }
  .specimen:nth-child(odd) { border-inline-start: 0; }
}
@media (max-width: 480px) {
  .specimen-grid { grid-template-columns: 1fr; }
  .specimen { border-inline-start: 0 !important; }
}

/* ===== Services: what we treat ===== */
.grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-3); }
.card--tinted { background: var(--c-blush); border-color: color-mix(in srgb, var(--c-conifer) 10%, transparent); }
@media (max-width: 860px) { .grid-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .grid-4 { grid-template-columns: 1fr; } }

/* ===== Surveyor's-rule checklist + disclaimer (Home Visits / New Patients; scoped so the membership checklist keeps its check-mark treatment) ===== */
:is(.page-homevisits, .page-newpatients) .checklist { list-style: none; max-width: 52ch; margin-top: var(--s-3); display: grid; gap: var(--s-2); }
:is(.page-homevisits, .page-newpatients) .checklist li { display: flex; align-items: baseline; gap: .75rem; font-size: var(--fs-body); }
.checklist__tick { width: 14px; height: 1px; flex: none; background: var(--brand); opacity: .5; transform: translateY(-.4em); }
.disclaimer { margin-top: var(--s-4); padding-top: var(--s-3); border-top: 1px solid var(--c-hairline);
  font-size: var(--fs-small); color: var(--text-muted); max-width: 60ch; }

/* ===== Home Visits: pricing plates ===== */
.pricing-plates__toggle { display: inline-flex; gap: 0; margin: var(--s-4) auto; border: 1px solid var(--c-hairline);
  border-radius: var(--r-pill); padding: 3px; }
.toggle-btn { font-family: var(--font-body); font-size: var(--fs-small); font-weight: 500; padding: .5rem 1.1rem;
  border-radius: var(--r-pill); background: none; border: 0; color: var(--text-muted); cursor: pointer; }
.toggle-btn.is-active { background: var(--brand); color: var(--c-ivory); }
.toggle-btn__note { font-family: var(--font-mono); font-size: .7rem; opacity: .75; margin-left: .35rem; }

.pricing-plates__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-4); margin-block: var(--s-5); align-items: start; }
.page-homevisits .pricing-plate { background: var(--c-ivory); border: 1px solid var(--c-hairline); border-radius: var(--r-lg); padding: var(--s-4); }
.pricing-plate__table { width: 100%; border-collapse: collapse; margin-block: var(--s-3); font-variant-numeric: tabular-nums; }
.pricing-plate__table td { padding: .6rem 0; border-bottom: 1px solid var(--c-hairline); font-size: var(--fs-small); }
.pricing-plate__table td:last-child { text-align: right; font-family: var(--font-display); color: var(--brand); }
.pricing-plate__cap { font-size: var(--fs-small); color: var(--text-muted); margin-bottom: var(--s-3); }
.pricing-plate__ledger { list-style: none; display: grid; gap: .6rem; margin-bottom: var(--s-3); }
.pricing-plate__ledger li { display: flex; align-items: flex-start; gap: .6rem; font-size: var(--fs-small); }
.ledger-check { width: 14px; height: 14px; flex: none; margin-top: .3rem; color: var(--brand); }
.pricing-plate__fee { font-size: var(--fs-small); color: var(--text-muted); padding-top: var(--s-2); border-top: 1px solid var(--c-hairline); }
.page-homevisits .pricing-plate--founding { background: var(--accent-fill); color: var(--on-accent); border-color: transparent; grid-column: 1 / -1; }
.pricing-plate--founding .eyebrow { color: var(--on-accent); }
.pricing-plate--founding .pricing-plate__table td { border-bottom-color: color-mix(in srgb, var(--c-ink) 14%, transparent); }
.pricing-plate--founding .ledger-check,
.pricing-plate--founding .pricing-plate__fee,
.pricing-plate--founding .pricing-plate__cap { color: var(--on-accent); }
.page-homevisits .pricing-plate--alacarte { grid-column: 1 / -1; background: var(--c-sand); border: 0; }
.pricing-plates__note { text-align: center; margin-top: var(--s-5); margin-inline: auto; font-family: var(--font-display); font-style: italic;
  font-weight: 500; font-size: var(--fs-lede); color: var(--brand); }
@media (max-width: 860px) { .pricing-plates__grid { grid-template-columns: 1fr; } }

/* ===== New Patients: numbered onboarding flow ===== */
.onboarding-flow { list-style: none; max-width: 60ch; margin-top: var(--s-4);
  border-inline-start: 1px solid var(--c-hairline); }
.onboarding-flow li { position: relative; padding: 0 0 var(--s-5) var(--s-4); }
.onboarding-flow li:last-child { padding-bottom: 0; }
.onboarding-flow__no { font-family: var(--font-mono); font-size: var(--fs-label); letter-spacing: var(--tracking-label);
  color: var(--text-muted); position: absolute; left: calc(-1 * var(--s-4) - 1px); top: 0;
  background: var(--c-sand); padding-inline-end: .6rem; }
.onboarding-flow h3 { margin-bottom: .35rem; }
.onboarding-flow p { color: var(--text-muted); max-width: 46ch; }

/* -- FAQ index: field-guide jump list (the page's one considered
   detail). Hairline dividers, mono caps, same family as the value
   strip's specimen-table treatment. */
.faq-index {
  display: flex; flex-wrap: wrap; justify-content: center;
  margin: var(--s-5) auto var(--s-6); max-width: 46rem;
}
.faq-index a {
  padding: var(--s-1) var(--s-3);
  border-inline-start: 1px solid var(--c-hairline);
  font-family: var(--font-mono); font-size: var(--fs-label);
  letter-spacing: var(--tracking-label); text-transform: uppercase;
  color: var(--text-muted);
  transition: color var(--dur-fast) var(--ease-soft);
}
.faq-index a:first-child { border-inline-start: 0; }
.faq-index a:hover { color: var(--brand); }
@media (max-width: 640px) {
  .faq-index { flex-direction: column; align-items: center; gap: var(--s-1); }
  .faq-index a { border-inline-start: 0; padding-block: .35rem; }
}
/* -- FAQ hero: give the heading and jump index more horizontal room
   so neither wraps on desktop. */
.page-faq .section-head { max-width: 72ch; }
.page-faq .faq-index { max-width: 64rem; }

/* -- FAQ groups & accordion -----------------------------------
   Rows on the page background, hairline dividers, one open at a
   time page-wide. Toggle mark is a CSS-drawn hairline cross, not
   an SVG icon (see spec section 3 for why that's in-language). */
.faq-group { max-width: 44rem; margin-inline: auto; scroll-margin-top: 6rem; }
.faq-group + .faq-group { margin-top: var(--s-7); }
.faq-group__head { margin-bottom: var(--s-3); }

.faq-item { border-top: 1px solid var(--c-hairline); }
.faq-list .faq-item:last-child { border-bottom: 1px solid var(--c-hairline); }

.faq-item__q {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: var(--s-3);
  background: none; border: none; cursor: pointer; text-align: left;
  padding-block: var(--s-3);
  font-family: var(--font-body); font-weight: 500; font-size: var(--fs-body);
  color: var(--text);
  transition: color var(--dur-fast) var(--ease-soft);
}
.faq-item__q:hover,
.faq-item__q[aria-expanded="true"] { color: var(--brand); }

.faq-item__mark { position: relative; width: 15px; height: 15px; flex-shrink: 0; color: var(--brand); }
.faq-item__mark::before,
.faq-item__mark::after {
  content: ""; position: absolute; top: 50%; left: 50%; background: currentColor;
  transition: transform var(--dur-fast) var(--ease-out);
}
.faq-item__mark::before { width: 15px; height: 1.5px; transform: translate(-50%, -50%); }
.faq-item__mark::after  { width: 1.5px; height: 15px; transform: translate(-50%, -50%); }
.faq-item__q[aria-expanded="true"] .faq-item__mark::after { transform: translate(-50%, -50%) rotate(90deg) scaleY(0); }

.faq-item__a {
  display: grid; grid-template-rows: 0fr;
  transition: grid-template-rows var(--dur-mid) var(--ease-out);
}
.faq-item__a[data-open="true"] { grid-template-rows: 1fr; }
.faq-item__a-inner { overflow: hidden; }
.faq-item__a-inner p {
  padding-bottom: var(--s-3); max-width: 62ch;
  color: var(--text-muted); font-size: var(--fs-small); line-height: var(--lh-body);
}

.faq-closing {
  text-align: center; margin-top: var(--s-7); padding-top: var(--s-5);
  border-top: 1px solid var(--c-hairline);
}
.faq-closing p {
  font-family: var(--font-display); font-style: italic; font-weight: 500;
  font-size: var(--fs-h3); color: var(--brand); margin-bottom: var(--s-3); max-width: none;
}

/* -- Contact channels: specimen table, no icons ----------------
   Same hairline-column family as .values. Text carries the
   hierarchy: mono label, then the value. */
.contact-info {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 0;
  text-align: center; margin-block: var(--s-6);
}
.contact-info__item {
  padding: var(--s-3); border-inline-start: 1px solid var(--c-hairline);
}
.contact-info__item:first-child { border-inline-start: 0; }
.contact-info__item .eyebrow { justify-content: center; margin-bottom: var(--s-2); }
.contact-info__item p { font-size: var(--fs-h3); font-family: var(--font-display); color: var(--brand); }
.contact-info__item p a { transition: color var(--dur-fast) var(--ease-soft); }
.contact-info__item p a:hover { color: color-mix(in srgb, var(--brand) 80%, var(--c-ink)); }
.contact-info__sub {
  display: inline-block; margin-top: .5rem; font-size: var(--fs-small);
  color: var(--text-muted); text-decoration: underline;
}
@media (max-width: 640px) {
  .contact-info { grid-template-columns: 1fr; }
  .contact-info__item { border-inline-start: 0; border-top: 1px solid var(--c-hairline); }
  .contact-info__item:first-child { border-top: 0; }
}

.contact-note {
  background: var(--c-sand); border: 1px solid var(--c-hairline); border-radius: var(--r-md);
  padding: var(--s-4); max-width: 56ch; margin: 0 auto var(--s-7); text-align: center;
}
.contact-note .eyebrow { justify-content: center; margin-bottom: var(--s-2); }
.contact-note p { max-width: 52ch; margin-inline: auto; color: var(--text-muted); }

/* -- Contact primary: the page's one sanctioned butter surface
   (icon-standard.md section 3.3). Generous, confident, ink on top. */
.contact-primary {
  background: var(--accent-fill); color: var(--on-accent);
  border: 1px solid var(--c-hairline); border-radius: var(--r-lg);
  padding: var(--s-5); text-align: center; max-width: 640px; margin: 0 auto var(--s-7);
}
.contact-primary .eyebrow { justify-content: center; color: var(--on-accent); }
.contact-primary h2 { margin-block: var(--s-2); color: var(--on-accent); }
.contact-primary p { max-width: 46ch; margin-inline: auto; }
.contact-primary__actions {
  display: flex; flex-direction: column; align-items: center; gap: var(--s-2);
  margin-top: var(--s-3);
}
.contact-primary__text {
  font-size: var(--fs-small); text-decoration: underline; color: var(--on-accent); opacity: .78;
}
.contact-primary__login {
  display: inline-block; margin-top: var(--s-3); font-size: var(--fs-small);
  text-decoration: underline; color: var(--on-accent);
}


.availability-note {
  margin-top: var(--s-2); margin-inline: auto; font-family: var(--font-display); font-style: italic; font-weight: 500;
  color: var(--brand); text-align: center;
}
.service-area-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-5);
  max-width: 52rem; margin: var(--s-5) auto 0;
}
.service-area-grid .eyebrow { margin-bottom: var(--s-2); }
.service-area-fine {
  text-align: center; margin-top: var(--s-5); margin-inline: auto; font-size: var(--fs-small); color: var(--text-muted);
}
@media (max-width: 640px) {
  .service-area-grid { grid-template-columns: 1fr; gap: var(--s-4); }
}

/* -- Map placeholder: same composed-field technique as the hero
   placeholder in hero-fullbleed.md, scaled down to a section panel. */
.contact-map {
  position: relative; overflow: hidden; min-height: 320px;
  display: grid; place-items: center; padding: var(--s-4);
  border-radius: var(--r-lg); border: 1px solid var(--c-hairline);
  margin-block: var(--s-6);
  background:
    radial-gradient(120% 100% at 80% 20%, color-mix(in srgb, var(--c-butter) 35%, var(--c-sand)) 0%, transparent 55%),
    radial-gradient(100% 90% at 15% 90%, color-mix(in srgb, var(--c-conifer) 55%, var(--c-sage)) 0%, transparent 55%),
    linear-gradient(160deg, var(--c-sand), var(--c-ivory) 55%, color-mix(in srgb, var(--c-sage) 30%, transparent));
}
.contact-map__caption {
  text-align: center; background: color-mix(in srgb, var(--c-ivory) 88%, transparent);
  border: 1px solid var(--c-hairline); border-radius: var(--r-md);
  padding: var(--s-3) var(--s-4); max-width: 46ch;
}
.contact-map__caption .eyebrow { justify-content: center; margin-bottom: var(--s-1); }
.contact-map__embed { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* -- Ghost button on any green section (not just the cinematic
   hero). Mirrors hero-fullbleed.md's inverted ghost exactly. */
.section--green .btn--ghost {
  --_fg: var(--c-cream);
  border-color: color-mix(in srgb, var(--c-cream) 65%, transparent);
}
.section--green .btn--ghost:hover {
  --_fg: var(--c-ivory);
  background: color-mix(in srgb, var(--c-cream) 12%, transparent);
  border-color: var(--c-cream); box-shadow: none;
}
.section--green .btn--ghost .btn__arrow { color: currentColor; }

/* Plain-language regulatory notice (Medicare/Medicaid). Deliberately visible: body size, not fine print. */
.notice-plain { max-width: 56ch; margin: var(--s-3) auto; text-align: center; font-size: var(--fs-small);
  padding: var(--s-2) var(--s-3); border: 1px solid var(--c-hairline); border-radius: var(--radius-md, 12px);
  background: var(--c-ivory); color: var(--text); }
.notice-plain--onGreen { background: transparent; border-color: color-mix(in srgb, var(--c-cream) 30%, transparent);
  color: color-mix(in srgb, var(--c-cream) 88%, transparent); }
