/* ==========================================================================
   SimplyHuman — design system
   Dark-native. Obsidian ground, Bone text, Bronze as the single accent.
   All responsive rules are CONTAINER queries (@container canvas), never
   viewport media queries, so a section renders identically inside a fixed
   1440 or 390 artboard frame as it does in a live browser window.
   ========================================================================== */

/* ---------- Fonts: self-hosted, relative path, no network at runtime ------ */
@font-face {
  font-family: 'InterVariable';
  font-style: normal;
  font-weight: 100 900;
  font-display: block;
  src: url('fonts/InterVariable.woff2') format('woff2');
}
@font-face {
  font-family: 'InterVariable';
  font-style: italic;
  font-weight: 100 900;
  font-display: block;
  src: url('fonts/InterVariable-Italic.woff2') format('woff2');
}

/* ---------- Tokens ------------------------------------------------------- */
:root {
  /* Primary · Obsidian */
  --ob-950: #060709;
  --ob-900: #0D0F13;
  --ob-800: #16191F;
  --ob-700: #22262E;
  --ob-500: #454B57;
  --ob-300: #7C838F;
  --ob-100: #D8DBE0;

  /* Secondary · Bone */
  --bone-50:  #FDFCFB;
  --bone-100: #F6F3EF;
  --bone-200: #EBE6DF;
  --bone-300: #D9D2C8;
  --bone-500: #A9A093;
  --bone-700: #6E675C;

  /* Tertiary · Bronze */
  --bz-100: #EDE4D8;
  --bz-300: #D3C3AC;
  --bz-500: #BAA58E;
  --bz-600: #AC9A84;
  --bz-700: #8E7B64;
  --bz-800: #6E5D48;
  --bz-900: #4C4031;

  /* Semantic roles — DARK is the default surface */
  --surface:        var(--ob-950);
  --surface-raised: var(--ob-900);
  --surface-panel:  var(--ob-800);
  --hairline:       var(--ob-700);
  --hairline-soft:  var(--ob-800);
  --text:           var(--bone-50);
  --text-muted:     var(--bone-300);
  --text-quiet:     var(--bone-500);
  --accent-text:    var(--bz-500);
  --accent-fill:    var(--bz-600);
  --on-accent:      var(--ob-950);

  /* Type scale — container-relative */
  --t-display: clamp(2.5rem, 6.2cqi, 5.25rem);
  --t-h1:      clamp(2rem, 4.6cqi, 3.5rem);
  --t-h2:      clamp(1.5rem, 2.7cqi, 2.25rem);
  --t-h3:      clamp(1.0625rem, 1.5cqi, 1.375rem);
  --t-lede:    clamp(1.0625rem, 1.7cqi, 1.5rem);
  --t-body:    clamp(1rem, 1.15cqi, 1.0625rem);
  --t-small:   0.875rem;
  --t-micro:   0.8125rem;

  /* Rhythm */
  --gutter:    clamp(1.5rem, 4.4cqi, 5rem);
  --band:      clamp(4.5rem, 9cqi, 9rem);
  --measure:   68ch;
  --content:   1180px;

  --radius:    6px;
  --radius-lg: 14px;

  --ease: cubic-bezier(0.2, 0.7, 0.2, 1);
}

/* Light band — the accent MUST drop to Bronze 800 here (Bronze 600 on Bone
   is 2.66:1 and fails). See DECISIONS.md. */
.sh-light {
  --surface:        var(--bone-50);
  --surface-raised: var(--bone-100);
  --surface-panel:  var(--bone-100);
  --hairline:       var(--bone-300);
  --hairline-soft:  var(--bone-200);
  --text:           var(--ob-950);
  --text-muted:     var(--bone-700);
  --text-quiet:     var(--bone-700);
  --accent-text:    var(--bz-800);
  --accent-fill:    var(--bz-800);
  --on-accent:      var(--bone-50);
}

/* ---------- Reset -------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }

/* One source of truth for the sticky header's height: `.sh-nav` sizes itself
   from it and the anchor offset below reads it, so the two cannot drift. It
   is declared on `html` (not in the token block) because the scroll container
   is the root — a value set on .sh-canvas could not inherit back up to it.
   The header is the same height at 1440 and at 390: the narrow container
   query only hides the section links, it never changes the nav's min-height.
   Layout only — this names an existing measurement, it is not a design token.

   Anchors must clear that header, or a clicked section lands with its heading
   hidden underneath it. `scroll-padding-top` on the scroll container is the
   whole fix: it insets the landing edge for a clicked link, a plain :target
   jump and a keyboard scroll alike. Deliberately NOT paired with a
   `scroll-margin-top` on the sections — the two ADD, which measured out at a
   170px drop instead of 85px. Offset = header height + a little breathing
   room, so the section's top hairline reads as separate from the header. */
html {
  --header-h: 61px;                 /* 60px nav box + the 1px bottom hairline */
  scroll-padding-top: calc(var(--header-h) + 1.5rem);
}
body {
  margin: 0;
  background: var(--ob-950);
  color: var(--bone-50);
  font-family: 'InterVariable', -apple-system, BlinkMacSystemFont, 'Segoe UI',
               system-ui, 'Helvetica Neue', Arial, sans-serif;
  font-size: 16px;
  line-height: 1.6;
  font-synthesis-weight: none;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4, p, ul, ol, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
a { color: inherit; }
button, input, select, textarea { font: inherit; color: inherit; }

/* ---------- Focus: two-tone ring, legible on Obsidian, Bone AND bronze ---- */
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid transparent;      /* keeps a ring in forced-colors mode */
  outline-offset: 2px;
  box-shadow: 0 0 0 2px var(--ob-950), 0 0 0 5px var(--bone-50);
  border-radius: var(--radius);
}
.sh-light :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  box-shadow: 0 0 0 2px var(--bone-50), 0 0 0 5px var(--ob-950);
}

/* Skip link */
.sh-skip {
  position: absolute; left: 1rem; top: -100px; z-index: 999;
  padding: 0.85rem 1.25rem; min-height: 44px; display: inline-flex;
  align-items: center; background: var(--bone-50); color: var(--ob-950);
  font-weight: 600; text-decoration: none; border-radius: var(--radius);
  transition: top 0.15s var(--ease);
}
.sh-skip:focus { top: 0.75rem; }

/* ---------- Canvas: THE container ---------------------------------------- */
.sh-canvas {
  container-type: inline-size;
  container-name: canvas;
  background: var(--ob-950);
  color: var(--bone-50);
  width: 100%;
}

/* ---------- Header / nav -------------------------------------------------- */
.sh-header {
  position: sticky; top: 0; z-index: 50;
  background: color-mix(in srgb, var(--ob-950) 82%, transparent);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  backdrop-filter: saturate(140%) blur(14px);
  border-bottom: 1px solid var(--ob-800);
}
.sh-header--static { position: static; }
.sh-nav {
  max-width: var(--content); margin: 0 auto;
  padding: 0 var(--gutter);
  min-height: calc(var(--header-h) - 1px);
  display: flex; align-items: center; justify-content: space-between; gap: 1.5rem;
}
.sh-brand {
  display: inline-flex; align-items: center; gap: 0.6rem;
  min-height: 44px; text-decoration: none; letter-spacing: -0.02em;
}
.sh-brand__word { font-size: 1.0625rem; font-weight: 600; color: var(--bone-50); }
.sh-brand__word .dot { color: var(--bz-500); }
.sh-light .sh-brand__word { color: var(--ob-950); }
.sh-light .sh-brand__word .dot { color: var(--bz-800); }

.sh-nav__links { display: flex; align-items: center; gap: 0.25rem; }
.sh-nav__link {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; min-width: 44px;
  padding: 0 0.85rem; font-size: var(--t-small); font-weight: 500;
  color: var(--bone-300); text-decoration: none; border-radius: var(--radius);
  transition: color 0.18s var(--ease), background-color 0.18s var(--ease);
}
.sh-nav__link:hover { color: var(--bone-50); background: var(--ob-800); }
.sh-nav__link[aria-current='page'] { color: var(--bone-50); }
.sh-nav__cta { margin-left: 0.5rem; }

/* ---------- Buttons ------------------------------------------------------- */
.sh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 48px; min-width: 44px; padding: 0 1.5rem;
  border-radius: var(--radius); border: 1px solid transparent;
  font-size: var(--t-small); font-weight: 600; letter-spacing: -0.005em;
  text-decoration: none; cursor: pointer;
  transition: background-color 0.18s var(--ease), border-color 0.18s var(--ease),
              color 0.18s var(--ease), transform 0.18s var(--ease);
}
.sh-btn--primary { background: var(--accent-fill); color: var(--on-accent); }
.sh-btn--primary:hover { background: var(--bz-500); }
.sh-light .sh-btn--primary:hover { background: var(--bz-900); }
.sh-btn--ghost {
  /* Border is the only boundary this control has, so it must clear 3:1
     against the ground it sits on (1.4.11). Obsidian 300 = 5.28:1. */
  background: transparent; color: var(--text); border-color: var(--ob-300);
}
.sh-light .sh-btn--ghost { border-color: var(--bone-700); }  /* 5.45:1 on Bone 50 */
.sh-btn--ghost:hover { border-color: var(--text); background: color-mix(in srgb, var(--text) 7%, transparent); }
.sh-btn--sm { min-height: 44px; padding: 0 1.1rem; }

.sh-link {
  display: inline-flex; align-items: center; gap: 0.45rem; min-height: 44px;
  color: var(--accent-text); font-weight: 600; font-size: var(--t-small);
  text-decoration: none; border-bottom: 1px solid transparent;
}
.sh-link:hover { border-bottom-color: currentColor; }
.sh-link .arw { transition: transform 0.18s var(--ease); }
.sh-link:hover .arw { transform: translateX(3px); }

.sh-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* ---------- Section shell ------------------------------------------------- */
.sh-section {
  background: var(--surface); color: var(--text);
  padding-block: var(--band);
  border-top: 1px solid var(--hairline-soft);
}
.sh-section--flush { border-top: 0; }
.sh-section--tight { padding-block: calc(var(--band) * 0.62); }
.sh-wrap { max-width: var(--content); margin: 0 auto; padding-inline: var(--gutter); }
.sh-wrap--narrow { max-width: 860px; }

.sh-eyebrow {
  font-size: var(--t-micro); font-weight: 600; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--accent-text);
}
.sh-h1 { font-size: var(--t-h1); font-weight: 600; line-height: 1.06; letter-spacing: -0.028em; }
.sh-h2 { font-size: var(--t-h2); font-weight: 600; line-height: 1.14; letter-spacing: -0.022em; }
.sh-h3 { font-size: var(--t-h3); font-weight: 600; line-height: 1.3;  letter-spacing: -0.012em; }
.sh-lede { font-size: var(--t-lede); line-height: 1.5; color: var(--text-muted); max-width: 42ch; font-weight: 400; }
.sh-body { font-size: var(--t-body); line-height: 1.68; color: var(--text-muted); max-width: var(--measure); }
.sh-body strong, .sh-lede strong { color: var(--text); font-weight: 600; }
.sh-stack > * + * { margin-top: 1.15rem; }
.sh-stack--lg > * + * { margin-top: 1.75rem; }
.sh-head { max-width: 46ch; }
.sh-head > * + * { margin-top: 1.15rem; }

.sh-rule { height: 1px; background: var(--hairline); border: 0; margin: 0; }

/* ---------- Hero ---------------------------------------------------------- */
.sh-hero {
  position: relative; overflow: hidden;
  background: var(--ob-950); color: var(--bone-50);
  padding-block: clamp(5.5rem, 13cqi, 12rem) clamp(4rem, 9cqi, 8rem);
  border-top: 0;
}
.sh-hero::before {
  content: ''; position: absolute; inset: -20% -10% auto -10%; height: 120%;
  background:
    radial-gradient(58% 46% at 50% 0%, rgba(172,154,132,0.16) 0%, rgba(6,7,9,0) 68%),
    radial-gradient(40% 30% at 82% 18%, rgba(216,219,224,0.07) 0%, rgba(6,7,9,0) 70%);
  pointer-events: none;
}
.sh-hero__inner { position: relative; text-align: center; }
.sh-hero__eyebrow { justify-content: center; }
.sh-hero h1 {
  font-size: var(--t-display); font-weight: 600; line-height: 1.02;
  letter-spacing: -0.035em; max-width: 17ch; margin-inline: auto;
  text-wrap: balance;
}
.sh-hero h1 .soft { color: var(--bone-300); }
.sh-hero__lede { margin-inline: auto; max-width: 56ch; text-align: center; }
.sh-hero .sh-actions { justify-content: center; }
.sh-hero__scroll {
  margin-top: clamp(3rem, 6cqi, 5.5rem);
  font-size: var(--t-micro); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bone-500);
  display: flex; flex-direction: column; align-items: center; gap: 1.1rem;
}
.sh-hero__scroll .line {
  display: block; width: 1px; height: 56px;
  background: linear-gradient(var(--bz-600), rgba(172, 154, 132, 0));
}

/* ---------- Brand slot (asset pending — see DECISIONS.md) ----------------- */
.sh-brandslot {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 0.5rem; text-align: center;
  border: 1px dashed var(--bz-700); border-radius: var(--radius-lg);
  background: var(--ob-900);
  padding: clamp(1.5rem, 3cqi, 2.5rem);
  min-height: 132px;
}
.sh-brandslot__label {
  font-size: var(--t-micro); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bz-500); font-weight: 600;
}
.sh-brandslot__note { font-size: var(--t-small); color: var(--bone-500); max-width: 44ch; }
.sh-light .sh-brandslot { background: var(--bone-100); border-color: var(--bz-800); }
.sh-light .sh-brandslot__label { color: var(--bz-800); }
.sh-light .sh-brandslot__note { color: var(--bone-700); }

/* ---------- Placeholder marker -------------------------------------------- */
.sh-ph {
  display: inline-block; padding: 0.15em 0.5em; border-radius: 4px;
  background: var(--bz-900); color: var(--bz-100);
  font-size: 0.9em; font-weight: 600; letter-spacing: 0.01em;
  border: 1px solid var(--bz-700);
}
.sh-light .sh-ph { background: var(--bz-100); color: var(--bz-900); border-color: var(--bz-800); }
.sh-ph-block {
  border: 1px dashed var(--bz-700); border-radius: var(--radius-lg);
  background: var(--ob-900); padding: clamp(1.25rem, 2.6cqi, 2rem);
}
.sh-light .sh-ph-block { background: var(--bone-100); border-color: var(--bz-800); }

/* ---------- Grids --------------------------------------------------------- */
.sh-grid { display: grid; gap: clamp(1rem, 2cqi, 1.75rem); }
.sh-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sh-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
/* --4 exists for the seven services: 4 + 3 is the only even split of seven
   that does not leave a row of one. Added with copy v2 — see DECISIONS.md. */
.sh-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sh-grid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sh-split {
  display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
  gap: clamp(2rem, 5cqi, 5rem); align-items: start;
}

/* ---------- Cards --------------------------------------------------------- */
.sh-card {
  background: var(--surface-raised);
  border: 1px solid var(--hairline-soft);
  border-radius: var(--radius-lg);
  padding: clamp(1.35rem, 2.6cqi, 2.15rem);
  display: flex; flex-direction: column; gap: 0.7rem;
  transition: border-color 0.2s var(--ease), background-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.sh-card:hover { border-color: var(--bz-700); }
.sh-card__num {
  font-size: var(--t-micro); font-weight: 600; letter-spacing: 0.14em;
  color: var(--accent-text);
}
.sh-card p { font-size: var(--t-body); color: var(--text-muted); line-height: 1.6; margin: 0; }
.sh-card--plain { background: transparent; border: 0; padding: 0; }
.sh-card--plain:hover { border: 0; }

/* Rule-separated list rows (Apple-style spec rows) */
.sh-rows { border-top: 1px solid var(--hairline); }
.sh-row {
  border-bottom: 1px solid var(--hairline);
  display: grid; grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr);
  gap: clamp(1rem, 3cqi, 3rem);
  padding-block: clamp(1.5rem, 3cqi, 2.5rem);
}
.sh-row__title { display: flex; flex-direction: column; gap: 0.5rem; }
.sh-row__body > * + * { margin-top: 1rem; }

.sh-ticks { display: grid; gap: 0.7rem; }
.sh-ticks li {
  display: grid; grid-template-columns: 1.1rem 1fr; gap: 0.75rem;
  font-size: var(--t-body); color: var(--text-muted); line-height: 1.55;
}
.sh-ticks li::before {
  content: ''; margin-top: 0.62em; width: 0.5rem; height: 0.5rem;
  border: 1px solid var(--accent-fill); border-radius: 50%;
}
.sh-light .sh-ticks li::before { border-color: var(--bz-800); }

/* ---------- Milestone rail (screen 04) ------------------------------------ */
.sh-rail { display: grid; gap: 0; position: relative; }
.sh-step {
  display: grid;
  grid-template-columns: 3.25rem minmax(0, 1fr);
  gap: clamp(1rem, 2.4cqi, 2.25rem);
  padding-block: clamp(1.75rem, 3.4cqi, 3rem);
  border-top: 1px solid var(--hairline);
}
.sh-step:first-child { border-top: 0; padding-top: 0; }
.sh-step__marker { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; }
.sh-step__dot {
  width: 2.6rem; height: 2.6rem; flex: none; border-radius: 50%;
  border: 1px solid var(--bz-700); background: var(--ob-900);
  color: var(--bz-500); display: grid; place-items: center;
  font-size: var(--t-small); font-weight: 600; letter-spacing: 0.02em;
}
.sh-light .sh-step__dot { background: var(--bone-100); border-color: var(--bz-800); color: var(--bz-800); }
.sh-step__line { flex: 1; width: 1px; min-height: 1.5rem;
  background: linear-gradient(var(--bz-700), var(--ob-700) 22%, var(--ob-700)); }
.sh-step__body > * + * { margin-top: 0.9rem; }
.sh-step__meta {
  display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem;
  font-size: var(--t-small); color: var(--text-quiet);
}
.sh-step__meta dt {
  font-size: var(--t-micro); letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--accent-text); font-weight: 600;
}
.sh-step__meta dd { margin: 0; color: var(--text-muted); font-size: var(--t-small); }
.sh-step__meta > div { min-width: 0; }
.sh-step__meta > div + div { margin-top: 0; }

/* ---------- Statement band (the "we are those humans" screen) ------------- */
.sh-statement { background: var(--ob-900); border-top: 1px solid var(--ob-800); }
.sh-statement__quote {
  font-size: clamp(1.5rem, 3.6cqi, 3rem); font-weight: 500; line-height: 1.22;
  letter-spacing: -0.028em; color: var(--bone-300); max-width: 22ch;
  text-wrap: balance;
}
.sh-statement__quote em { font-style: normal; color: var(--bone-50); }
.sh-statement__punch { color: var(--bz-500); display: block; margin-top: 0.4em; font-weight: 600; }

/* ---------- Form ---------------------------------------------------------- */
.sh-form { display: grid; gap: 1.15rem; }
.sh-field { display: grid; gap: 0.45rem; }
.sh-field label { font-size: var(--t-small); font-weight: 600; color: var(--text); }
.sh-field .hint { font-size: var(--t-micro); color: var(--text-quiet); }
.sh-input, .sh-textarea, .sh-select {
  width: 100%; min-height: 48px; padding: 0.75rem 0.9rem;
  background: var(--ob-900); color: var(--bone-50);
  /* Field boundary carries the affordance — Obsidian 300 = 5.02:1 (1.4.11). */
  border: 1px solid var(--ob-300); border-radius: var(--radius);
  font-size: var(--t-body);
}
.sh-textarea { min-height: 132px; resize: vertical; line-height: 1.55; }
.sh-input::placeholder, .sh-textarea::placeholder { color: var(--ob-300); }
.sh-input:hover, .sh-textarea:hover, .sh-select:hover { border-color: var(--bone-500); }
.sh-light .sh-input, .sh-light .sh-textarea, .sh-light .sh-select {
  background: var(--bone-50); color: var(--ob-950); border-color: var(--bone-700);
}
.sh-form__status {
  border: 1px solid var(--bz-700); border-radius: var(--radius-lg);
  background: var(--ob-900); padding: 1.5rem;
  display: grid; gap: 0.5rem;
}
.sh-form__status h3 { color: var(--bone-50); }
.sh-form__status p { color: var(--bone-300); font-size: var(--t-body); margin: 0; }
[hidden] { display: none !important; }

/* ---------- Footer -------------------------------------------------------- */
.sh-footer {
  background: var(--ob-950); color: var(--bone-300);
  border-top: 1px solid var(--ob-800);
  padding-block: clamp(3rem, 6cqi, 5rem);
  font-size: var(--t-small);
}
.sh-footer a { color: var(--bone-300); text-decoration: none; }
.sh-footer a:hover { color: var(--bone-50); }
.sh-footer__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 4cqi, 4rem); }
.sh-footer__title {
  font-size: var(--t-micro); letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--bz-500); font-weight: 600; margin-bottom: 0.9rem;
}
.sh-footer__list li + li { margin-top: 0.35rem; }
.sh-footer__list a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.sh-footer__base {
  margin-top: clamp(2rem, 4cqi, 3.5rem); padding-top: 1.5rem;
  border-top: 1px solid var(--ob-800);
  display: flex; flex-wrap: wrap; gap: 1rem; justify-content: space-between;
  color: var(--bone-500); font-size: var(--t-micro);
}

/* ---------- Motion -------------------------------------------------------- */
.js .sh-reveal { opacity: 0; transform: translateY(14px); }
.js .sh-reveal.is-in {
  opacity: 1; transform: none;
  transition: opacity 0.6s var(--ease), transform 0.6s var(--ease);
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  .js .sh-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ---------- Container-query responsive ------------------------------------ */
@container canvas (max-width: 900px) {
  .sh-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sh-grid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sh-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sh-split { grid-template-columns: minmax(0, 1fr); }
  .sh-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container canvas (max-width: 700px) {
  /* Hide the section links on narrow canvases but KEEP the call to action —
     the footer carries full navigation, so a mobile header with no way to
     convert would be a real loss. */
  .sh-nav__links li:not(.sh-nav__cta) { display: none; }
  .sh-nav__cta { margin-left: 0; }
  .sh-grid--2, .sh-grid--3, .sh-grid--4, .sh-grid--5 { grid-template-columns: minmax(0, 1fr); }
  .sh-row { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .sh-footer__grid { grid-template-columns: minmax(0, 1fr); }
  .sh-hero h1 { max-width: 14ch; }
  .sh-statement__quote { max-width: 100%; }
  .sh-step { grid-template-columns: 2.4rem minmax(0, 1fr); gap: 1rem; }
  .sh-step__dot { width: 2.2rem; height: 2.2rem; font-size: var(--t-micro); }
  .sh-actions .sh-btn { width: 100%; }
  .sh-hero .sh-actions { flex-direction: column; }
}

/* ---------- Caption columns (the five-practice overview) ----------------- */
.sh-caps { gap: clamp(1rem, 2.2cqi, 2rem); }
.sh-cap {
  border-top: 1px solid var(--hairline);
  padding-top: 1.15rem;
  display: flex; flex-direction: column; gap: 0.5rem;
}
.sh-cap p:last-child {
  font-size: var(--t-small); line-height: 1.55; color: var(--text-muted); margin: 0;
}

/* ---------- Brand assets (derived set — dark surfaces only) --------------- */
.sh-brand__mark { width: 34px; height: 34px; flex: none; }
.sh-footer__lockup { width: clamp(190px, 20cqi, 240px); height: auto; }
