/* ============================================================
   Allied health — the live page, built from the Claude Design redesign
   Page: /allied-health/   Source: "Allied Health Page.dc.html"

   The design was authored from this site's own palette, so every colour and
   gradient in it maps exactly onto an existing token — nothing here is an
   approximation. Ported to classes rather than the design's inline styles so
   the P0 "zero raw hex outside :root" rule holds.

   Exact mappings used throughout:
     #1C4159 brand-950 · #225278 --color-secondary · #2B648C brand-600
     #438FB9 --color-primary · #67B8DC --color-accent
     #283641 --color-ink · #5a6b78 --color-ink-soft
     #EEF4F9 --color-surface-alt · #e7eef4 --color-border-soft
     linear-gradient(150deg,…) --grad-hero      linear-gradient(135deg,…) --grad-deep
     linear-gradient(135deg,#67B8DC,#438FB9) --grad-primary
     linear-gradient(90deg,#225278,#67B8DC) --grad-line
     linear-gradient(135deg,#2B648C,#67B8DC) --grad-chip
   ============================================================ */

.ahd-sec { padding: var(--space-3xl) 0; position: relative; }
.ahd-sec.on-white { background: var(--color-surface); }
.ahd-sec.on-tint { background: var(--color-surface-alt); overflow: hidden; }
/* The journey's .jcopy paints a ground to occlude the spine behind it (journey.css). On this
   page the journey sits on the tinted band, so tell it which ground to paint. */
.ahd-sec.on-tint .journey { --journey-ground: var(--color-surface-alt); }
.ahd-sec.on-dark { background: var(--grad-deep); overflow: hidden; }
.ahd-sec.on-dark-hero { background: var(--grad-hero); overflow: hidden; }

/* Ambient wash + discs, straight from the design's absolute layers */
.ahd-wash { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.ahd-wash.a { background: radial-gradient(900px 480px at 88% -8%, oklch(from var(--color-accent) l c h / 38%), transparent 60%), radial-gradient(700px 520px at -6% 108%, oklch(from var(--color-accent) l c h / 22%), transparent 60%); }
.ahd-wash.b { background: radial-gradient(800px 460px at 12% -10%, oklch(from var(--color-accent) l c h / 32%), transparent 60%), radial-gradient(700px 520px at 104% 106%, oklch(from var(--color-accent) l c h / 20%), transparent 60%); }
.ahd-disc { position: absolute; z-index: 0; border-radius: var(--radius-full); pointer-events: none; background: oklch(from var(--color-accent) l c h / 18%); }
.ahd-disc.tinted { background: oklch(from var(--color-primary) l c h / 14%); }

/* ---- Section heads ----
   These defer to the site's own components: .eyebrow, .rule and .lede come from
   components.css and h2 from the framework scale, so this page reads at the same
   size as every other. Only the on-dark colour swaps and section rhythm live here.
   (First pass reimplemented all four at the design file's own sizes — the eyebrow
   landed at --step--2, roughly half the site's --text-md. Don't reintroduce that.) */
.ahd .eyebrow { color: var(--color-primary); }
.ahd .eyebrow.on-dark { color: var(--color-accent); }
.ahd-h2 { margin: 0 0 var(--space-s); color: var(--color-secondary); text-wrap: pretty; }
/* Emphasis inside a section heading is carried by COLOUR, not weight — .ahd-h2 is already
   800 and craft.md caps there. Matches .section-head h2 .hl and .jcopy h2 .hl elsewhere on
   the site; without this rule the span renders inert. */
.ahd-h2 .hl { color: var(--color-primary); }
.ahd-h2.on-dark { color: #fff; }
.ahd-rule { margin: 0 0 var(--space-m); }
.ahd-rule.on-dark { background: linear-gradient(90deg, var(--color-accent), var(--brand-100)); }
.ahd-rule.centred { margin-inline: auto; }
.ahd-head-centred { max-width: 760px; margin: 0 auto var(--space-xl); text-align: center; }
.ahd-lede { max-width: none; }
.ahd-lede.on-dark { color: rgb(255 255 255 / 90%); }
/* Sub-heading inside a body column — left aligned, one step under .ahd-h2. Used by #what,
   where "All the patient needs, in one place." moved out of the centred head and into the
   copy (owner, 2026-09-13) so it leads the paragraphs rather than floating under the rule. */
.ahd-subh { margin: 0 0 var(--space-s); font-size: var(--text-xl); font-weight: var(--weight-bold);
  color: var(--color-secondary); line-height: var(--line-snug); letter-spacing: -.01em; }
.ahd-subh.on-dark { color: #fff; }

.ahd-body { margin: 0 0 var(--space-m); font-size: var(--text-md); color: var(--color-ink); text-wrap: pretty; }
.ahd-body.on-dark { color: rgb(255 255 255 / 90%); }
.ahd-body.on-dark strong { color: #fff; }

/* The design's buttons are chunkier and bolder than the site default; .btn supplies
   everything else (12px radius, gradient fills, hover lift, focus ring). */
/* ⚠️ Do NOT reintroduce padding here. `.ahd .btn` is specificity 0,2,0 and beats .btn-sm and
   .btn-lg (0,1,0), so a padding override pins every button on the page to one hard-coded size
   and silently opts the whole page out of the button scale — which is what a 15px literal here
   did until 2026-08-18. Weight is safe; size belongs to the modifiers. */
.ahd .btn { font-weight: var(--weight-bold); }
.ahd .btn-ghost { background: rgb(255 255 255 / 12%); border: 1.5px solid rgb(255 255 255 / 45%); backdrop-filter: blur(6px); color: #fff; }
.ahd .btn-ghost:hover { background: rgb(255 255 255 / 20%); }

/* Lede + rule variants. These were inline style attributes carried over from the port —
   the design file is inline-styled throughout, and converting only the structural rules
   left these one-offs behind. Named so they can be reused and reasoned about. */
.ahd-lede-hero { margin-bottom: var(--space-xs); max-width: 560px; }
.ahd-lede-tight { margin-bottom: var(--space-m); max-width: 520px; }
.ahd-lede-gap { margin-bottom: var(--space-l); }
.ahd-rule-flush { margin-bottom: 0; }
/* ic-play is a filled glyph, not a stroked one. */
.ahd-ic-solid { fill: currentColor; stroke: none; }
/* Referral float card lines. */
.ahd-statcard.bl strong { display: block; font-size: var(--text-sm); color: var(--color-secondary); line-height: 1.2; }
.ahd-statcard.bl span span { font-size: var(--text-xs); color: var(--color-ink-soft); }

/* ---- Hero: design 1c (navy copy panel / full-bleed photo) ----
   Full-bleed rather than the canvas's rounded card. The copy panel's left padding aligns its
   text to the site grid gutter so the hero reads as part of the page. Top padding clears the
   fixed nav, matching .ah-hero's 172px on the live allied health page. */
.ahd-hero1c { position: relative; overflow: hidden; background: var(--color-surface); }
.ahd-hero1c-grid { position: relative; display: grid; grid-template-columns: 1.02fr 1fr; min-height: 660px; }
.ahd-hero1c-copy { position: relative; background: var(--grad-deep); display: flex; flex-direction: column; justify-content: center;
  padding: 172px var(--space-2xl) var(--space-3xl) max(var(--space-2xl), calc((100vw - var(--grid-max-width)) / 2 + var(--space-m))); }
.ahd-hero1c-wash { position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(700px 420px at -10% -10%, oklch(from var(--color-accent) l c h / 34%), transparent 60%); }
.ahd-hero1c-inner { position: relative; z-index: 1; max-width: 520px; }
.ahd-hero1c-inner h1 { margin: 0 0 var(--space-s); color: #fff; line-height: 1.06; text-wrap: pretty; }
.ahd-hero1c-inner h1 .hl { color: var(--color-accent); }
.ahd-hero-tagline { margin: 0 0 var(--space-l); font-size: var(--text-md); font-weight: var(--weight-semibold); color: var(--color-accent); }
.ahd-hero-note { margin: var(--space-s) 0 0; font-size: var(--text-sm); color: rgb(255 255 255 / 72%); }

.ahd-hero1c-media { position: relative; overflow: hidden; min-height: 420px; }
.ahd-hero1c-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ahd-hero1c-scrim { position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(100deg, oklch(from var(--brand-950) l c h / 55%), transparent 46%); }

/* Floating card straddles the seam between the two panels. */
.ahd-float { position: absolute; z-index: 3; background: var(--color-surface); border-radius: 14px; padding: var(--space-2xs) var(--space-s);
  box-shadow: var(--shadow-lg); display: flex; align-items: center; gap: 11px; animation: ahd-bob 6s ease-in-out infinite; }
.ahd-hero1c-float { left: 46%; top: 172px; }
.ahd-float-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--grad-chip); color: #fff; flex: none; }
.ahd-float-ic svg { width: 18px; height: 18px; fill: none; stroke-width: 2; }
.ahd-float strong { display: block; font-size: var(--text-md); color: var(--color-secondary); line-height: 1.2; }
.ahd-float span span { font-size: var(--text-sm); color: var(--color-ink-soft); }
@keyframes ahd-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* Centred on the photo column (which is the right 1fr of a 1.02fr 1fr grid, so its centre
   sits at ~74.75% of the hero width) rather than pinned to the right edge. */
.ahd-hero1c-stats { position: absolute; left: 74.75%; transform: translateX(-50%); bottom: var(--space-l); z-index: 3; box-sizing: border-box;
  width: min(520px, calc(50% - var(--space-l))); background: rgb(255 255 255 / 94%); backdrop-filter: blur(10px);
  border-radius: 18px; padding: var(--space-m); box-shadow: var(--shadow-lg);
  display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-s); }
.ahd-stat-n { font-size: 1.7rem; font-weight: var(--weight-extrabold); color: var(--color-secondary); line-height: 1.1; letter-spacing: -.02em; }
.ahd-stat-l { font-size: var(--text-sm); color: var(--color-ink-soft); }

@media (max-width: 1040px) {
  .ahd-hero1c-grid { grid-template-columns: 1fr; min-height: 0; }
  .ahd-hero1c-copy { padding: 140px var(--space-m) var(--space-2xl); }
  .ahd-hero1c-inner { max-width: none; }
  .ahd-hero1c-float { position: static; margin: var(--space-m) var(--space-m) 0; }
  .ahd-hero1c-stats { position: static; transform: none; left: auto; width: auto; margin: var(--space-m); }
}
@media (max-width: 640px) { .ahd-hero1c-stats { grid-template-columns: 1fr; } }

/* ---- Generic split + cards ---- */
.ahd-split { display: grid; grid-template-columns: 1fr 1.05fr; gap: var(--space-2xl); align-items: center; }
.ahd-split.flip { grid-template-columns: 1fr 1.1fr; }
.ahd-split.tight { grid-template-columns: 1fr 1fr; align-items: start; }
.ahd-split.narrow-left { grid-template-columns: .9fr 1.1fr; }
/* ⚠️ .ahd-shot / .ahd-statcard* / .ahd-mark and the .ahd-statcard.br mobile stack were PROMOTED to
   components.css 2026-09-14 — partials/complexity.njk renders the same illustration + floating stat
   card on /gp/ and /specialists/, which don't load this file. Edit them there, not here. The .bl
   variant and .ahd-shot.is-narrow are allied-health-only and stayed here. */


/* A portrait shot at full column width dwarfs the numbered cards beside it — cap it and
   centre it in the column. The float card is positioned against .ahd-shot, so constrain the
   container rather than the img, or the card detaches from the image edge. */
.ahd-shot.is-narrow { max-width: 380px; margin-inline: auto; }
/* #complexity carries an ILLUSTRATION, not a photo — a patient ringed by a wait list, a
   broken Medicare card, a phone on hold, cash and a clock, i.e. the three barriers the copy
   names. It is near-square (800x846) and already cropped at source, so no aspect-ratio crop
   here: cropping further would clip the orbiting elements, which are the whole point.
   ⚠️ Capped and centred so it balances three short paragraphs rather than towering over them. */


.ahd-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: 18px; padding: var(--space-l); box-shadow: var(--shadow-xs); transition: transform .2s var(--ease), box-shadow .2s, border-color .2s; }
.ahd-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); border-color: var(--color-accent); }
.ahd-card h3 { margin: 0 0 var(--space-2xs); font-size: var(--text-lg); font-weight: var(--weight-bold); color: var(--color-secondary); line-height: 1.25; }
.ahd-card p { margin: 0; font-size: var(--text-md); color: var(--color-ink-soft); text-wrap: pretty; }
.ahd-chip { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--grad-chip); color: #fff; margin-bottom: var(--space-s); }
.ahd-chip svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ahd-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-m); }

/* Floating stat card over an image */


.ahd-statcard.bl { left: -20px; bottom: -22px; max-width: none; display: flex; align-items: center; gap: var(--space-xs); padding: 14px 18px; border-radius: 14px; }
/* The "in" rides smaller than the numerals it joins, matching .prob-stat .num .in on the
   live page — otherwise "1 in 6" reads as three equal-weight characters. */
/* Citation markers on the problem stats — same treatment as the evidence list. */



.ahd-statcard-n .in { font-size: .52em; font-weight: var(--weight-semibold); vertical-align: middle; margin: 0 .12em; }



.ahd-statcard-ic { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: var(--grad-chip); color: #fff; flex: none; }
.ahd-statcard-ic svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; }

/* Quote callout (problem section). The .ahd-statrow block that sat here went with the stat
   boxes in #complexity, which is prose now. */
.ahd-note { border-left: 5px solid var(--color-accent); background: var(--color-surface); border-radius: var(--radius-lg); padding: var(--space-s) var(--space-m); color: var(--brand-600); font-size: var(--text-md); }
.ahd-note strong { color: var(--color-secondary); }
.ahd-note.on-tint { background: var(--color-surface-alt); }

/* Citation buttons inside body copy — match .ahd-statrow-b / .ahd-statcard-l exactly.
   ⚠️ These survived the removal of the .ahd-reason boxes on purpose: the 5-session claim in
   #complexity still carries a <sup><button data-ref> citation inside .ahd-body. */
/* ---- Highlighter mark ----
   The same device as the testimonial .hl (components.css): a gradient band sitting behind the
   lower third of the text, not a border-bottom — it follows the baseline across a line wrap.
   ⚠️ NOT named .hl. On this page .hl already means "tint this word" inside .ahd-h2; reusing
   the name for a different effect would make both unpredictable.
   The accent is derived with oklch(from …) rather than a literal rgba, matching .ahd-disc
   above and keeping DESIGN.md's no-raw-colour rule. */


.ahd-body sup { line-height: 0; }
.ahd-body sup button { background: none; border: 0; padding: 0 0 0 2px; font: inherit;
  font-size: var(--text-xs); color: var(--color-primary); cursor: pointer; }
.ahd-body sup button:hover { text-decoration: underline; }

/* A genuinely light card on the dark band, not a frosted one — at 20% white the accent link
   had nowhere near enough contrast. Now near-white, so the link can use --color-primary, the
   site's standard link colour, which is several steps darker than --color-accent. */
.ahd-glass { background: rgb(255 255 255 / 94%); border: 1px solid rgb(255 255 255 / 60%); backdrop-filter: blur(8px); border-radius: 16px; padding: var(--space-s) var(--space-m); box-shadow: var(--shadow-md); }
.ahd-glass p { margin: 0; font-size: var(--text-md); color: var(--color-ink); }
.ahd-glass strong { color: var(--color-secondary); }
.ahd-glass a { color: var(--color-primary); font-weight: var(--weight-semibold); text-decoration: underline; text-decoration-color: var(--brand-300); text-underline-offset: 2px; }
.ahd-glass a:hover { text-decoration-color: currentColor; }

/* ---- Discipline pills ---- */
.ahd-pills { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-bottom: var(--space-l); }
.ahd-pill { display: inline-flex; align-items: center; gap: var(--space-3xs); border: 1px solid var(--color-border-soft); background: var(--color-surface); border-radius: var(--radius-full); padding: 10px 18px; font-size: var(--text-sm); font-weight: var(--weight-semibold); color: var(--color-ink); box-shadow: var(--shadow-xs); position: relative; z-index: 0; cursor: default;
  transition: transform .2s cubic-bezier(.34,1.56,.64,1), border-color .2s, box-shadow .2s, color .2s; }
/* Matches the eligibility pills on /specialists/ — the springy cubic-bezier is what makes it
   feel interactive rather than just moving. z-index lifts the hovered chip over its neighbours,
   which matters once it scales past them. */
.ahd-pill:hover { z-index: 1; transform: translateY(-3px) scale(1.12); border-color: var(--color-accent);
  box-shadow: var(--shadow-md); color: var(--color-primary); }
.ahd-pill svg { width: 15px; height: 15px; fill: none; color: var(--color-primary); stroke-width: 2.4;
  transition: transform .2s var(--ease); }
.ahd-pill:hover svg { transform: scale(1.3); }
/* Disciplines read as a confirmation — "yes, yours counts" — so their ticks take the success
   colour. Scoped to .ahd-pills so the support-team and onboarding pills keep the brand tick. */
.ahd-pills .ahd-pill svg { color: var(--color-success); }
.ahd-pill-more { display: inline-flex; align-items: center; padding: 10px 18px; font-size: var(--text-sm); color: var(--color-ink-soft); }
.ahd-collage { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-s); }
.ahd-collage img { width: 100%; display: block; border-radius: 16px; box-shadow: var(--shadow-md); }
.ahd-collage img:nth-child(1) { margin-top: 26px; }
.ahd-collage img:nth-child(3) { margin-top: -10px; }
.ahd-collage img:nth-child(4) { margin-top: -36px; }

/* ---- Numbered referral list ---- */
.ahd-numlist { display: grid; gap: var(--space-xs); }
.ahd-num { display: flex; gap: var(--space-m); background: var(--color-surface); border: 1px solid var(--color-border-soft); border-radius: 16px; padding: var(--space-m); box-shadow: var(--shadow-xs); transition: transform .2s var(--ease), box-shadow .2s; }
.ahd-num:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.ahd-num-n { font-size: 1.5rem; font-weight: var(--weight-extrabold); color: var(--color-accent); line-height: 1.1; flex: none; font-variant-numeric: tabular-nums; }
.ahd-num h3 { margin: 0 0 var(--space-3xs); font-size: var(--text-md); font-weight: var(--weight-bold); color: var(--color-secondary); }
.ahd-num p { margin: 0; font-size: var(--text-md); color: var(--color-ink-soft); text-wrap: pretty; }


/* Quote cards use the shared .quotes/.quote/.quote-org/.src component. Only the marquee
   speed differs from the site default, and that is not worth a rule. */

/* ---- Team ---- */
.ahd-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-m); }
.ahd-team.nine { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); max-width: 1100px; margin: 0 auto; }
.ahd-initials { width: 92px; height: 92px; border-radius: var(--radius-full); margin: 0 auto var(--space-2xs); display: flex; align-items: center; justify-content: center; font-size: var(--text-xl); font-weight: var(--weight-bold); color: #fff; background: linear-gradient(150deg, var(--brand-600), var(--color-secondary)); box-shadow: var(--shadow-sm); }
.ahd-person { text-align: center; }
.ahd-person img { width: 92px; height: 92px; border-radius: var(--radius-full); object-fit: cover; margin: 0 auto var(--space-2xs); display: block; box-shadow: var(--shadow-md); }
.ahd-person h3 { margin: 0 0 2px; font-size: var(--text-md); font-weight: var(--weight-bold); color: var(--color-secondary); }
.ahd-person p { margin: 0; font-size: var(--text-sm); color: var(--color-ink-soft); }
.ahd-support-row { display: flex; flex-wrap: wrap; gap: var(--space-2xs); justify-content: center; margin-top: var(--space-l); }

/* ---- Background plate ----
   A calm architectural shot anchored bottom-left, fading up and to the right on a single
   diagonal mask so the heading block (top-left) and the cards (right) stay clear of it.
   photography.md sanctions an empty corridor precisely for this — as a calm background,
   not a scene. Decorative, so it is a background-image on an aria-hidden span, not an <img>. */
.ahd-sec.has-bgplate { overflow: hidden; }
/* Covers the WHOLE section, so the element has no visible edge of its own — an inset box
   shows its own boundary wherever the mask has not reached zero. The mask starts solid at the
   bottom edge and fades straight up, reaching fully transparent by half the section height —
   the heading block in the left column sits well above that, so no image sits behind the text.
   The cards on the right carry their own background, so the band passing behind them is fine.
   No opacity property: a blanket opacity multiplies against the mask and stops the bottom ever
   being properly solid, which is what made the first attempt look washed out. */
.ahd-bgplate { position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background: url("/assets/img/gen-clinic-corridor-bg-oai.webp") left bottom / cover no-repeat;
  -webkit-mask-image: linear-gradient(to top, #000 0%, #000 16%, rgb(0 0 0 / 38%) 32%, transparent 50%);
  mask-image: linear-gradient(to top, #000 0%, #000 16%, rgb(0 0 0 / 38%) 32%, transparent 50%); }
@media (max-width: 1040px) { .ahd-bgplate { display: none; } }

/* ---- Compliance: copy + photo left, accent-edged cards stacked right ---- */
.ahd-comp { display: grid; gap: var(--space-s); }
.ahd-comp-card { background: var(--color-surface); border: 1px solid var(--color-border-soft); border-left: 4px solid var(--color-accent); border-radius: var(--radius-lg); padding: var(--space-m); box-shadow: var(--shadow-xs); }
.ahd-comp-head { display: flex; align-items: center; gap: var(--space-2xs); margin-bottom: var(--space-2xs); }
.ahd-comp-head h3 { margin: 0; font-size: var(--text-md); font-weight: var(--weight-bold); color: var(--color-secondary); }
.ahd-comp-ic { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: linear-gradient(135deg, var(--color-surface-alt), var(--brand-100)); color: var(--color-secondary); flex: none; }
.ahd-comp-ic svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 2; }
.ahd-comp-items { display: grid; gap: var(--space-3xs); }
.ahd-comp-items span { display: flex; align-items: flex-start; gap: var(--space-3xs); font-size: var(--text-md); color: var(--color-ink-soft); }
.ahd-comp-items svg { width: 16px; height: 16px; fill: none; color: var(--color-primary); stroke-width: 2.4; flex: none; margin-top: 4px; }

/* ---- Getting started ----
   The four-column .ahd-startcard / .ahd-steps grid was replaced by the shared flow-board
   illustration (journey.css) on 2026-09-13; only the deco disc and the closing CTA are
   page-specific now. */
.ahd-disc.deep { background: oklch(from var(--color-secondary) l c h / 10%); }
.ahd-startcta { text-align: center; margin-top: var(--space-xl); }
.ahd-startcta p { margin: var(--space-xs) 0 0; font-size: var(--text-sm); color: var(--color-ink-soft); }

/* ---- Closing CTA: copy left, image right ---- */
.ahd-cta { padding: var(--space-3xl) 0; }
.ahd-cta-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--space-2xl); align-items: center; }
.ahd-cta h2 { margin: 0 0 var(--space-s); color: #fff; line-height: 1.12; text-wrap: pretty; }
.ahd-cta p { color: rgb(255 255 255 / 88%); max-width: 560px; margin: 0 0 var(--space-l); font-size: var(--text-lg); line-height: var(--line-relaxed); }
.ahd-cta-img { width: 100%; display: block; border-radius: 18px; box-shadow: var(--shadow-xl); }

/* ---- Footnote marker ---- */
.ahd-figures a { color: var(--color-primary); font-weight: var(--weight-semibold); text-decoration: none; }  /* .ahd-fn promoted to .fn-mark in components.css 2026-08-21 */

/* ---- Responsive ---- */
@media (max-width: 1040px) {
  .ahd-split, .ahd-split.flip, .ahd-split.tight, .ahd-split.narrow-left, .ahd-hero-grid { grid-template-columns: 1fr; gap: var(--space-xl); }
  .ahd-grid-3 { grid-template-columns: repeat(2, 1fr); }
  .ahd-cta-grid { grid-template-columns: 1fr; gap: var(--space-xl); }
  .ahd-team { grid-template-columns: repeat(2, 1fr); }
  .ahd-float.one { left: 0; }
  .ahd-float.two { right: 0; }
}
@media (max-width: 760px) {
  .ahd-stats { grid-template-columns: repeat(2, 1fr); }
  .ahd-stat:nth-child(2) { border-right: 0; }
  .ahd-stat:nth-child(1), .ahd-stat:nth-child(2) { border-bottom: 1px solid var(--color-border-soft); }
  .ahd-grid-3, .ahd-grid-2, .ahd-est-out { grid-template-columns: 1fr; }
  .ahd-hero { padding: 140px 0 var(--space-4xl); }
  .ahd-statcard.bl { position: static; margin-top: var(--space-s); max-width: none; }
}

/* Reduced motion: the bob and marquee are decorative only. */
@media (prefers-reduced-motion: reduce) {
  .ahd-float, .ahd-marquee-track { animation: none !important; }
}
