/* v27 — 2026-09-19 — Tier A visual de-genericisation (loads after v22.css). v28 fix: ins-hero excluded from A1.
   Scope agreed with Dov: A1–A6, A8–A10. A7 (photo hero) NOT applied: the three
   films and the beat rotation stay exactly as in v26. Every block names its row.
   Selectors are written to out-rank the Astro-scoped rules ([data-astro-cid-*]) without !important
   wherever possible. */

/* ---------- A1 · no zebra: dark only for the hero (aurora / phero / ins-hero on case and insight pages) and the closers (cta / wcta). Contact panel untouched. v28: ins-hero and the contact "after" state added to the exclusions (v27 turned case-page heroes white and hid their H1). ---------- */
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after){
  background:#fff;
  color:#3b4160;
  --silver:#3b4160;
  --light:#3b4160; /* used as body text on dark cards; borders in these sections are overridden below */
  --label:#5b6180;
  --brand-cyan-lt:#0e7490;
  --focus-ring:#0a3a8c;
}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) h2,
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) h3,
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) h4,
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .gradient-text,
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .proof__line{color:#0f1020}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .sh__lead{color:#3b4160}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .sh__kicker,
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .mono-label{color:#5b6180}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .period{color:inherit;background:none;-webkit-text-fill-color:currentColor}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .gh[aria-hidden]{background:#e3e5ee}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .status--realised{color:#0e7490}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .status--modelled{color:#286dd9}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .status--quoted{color:#b45309}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .status--plan{color:#334155}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .status--milestone{color:#047857}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .status--assessment{color:#475569}
/* white-on-dark hairlines and cyan accents inside those sections */
main .section-dark .phase,
main .section-dark .rel-row,
main .section-dark .run-step,
main .section-dark .related-work{border-top-color:#e3e5ee}
main .section-dark .phase::before{background:#fff}
main .section-dark .phase__clock,
main .section-dark .proof__link,
main .section-dark .rel-row__arrow,
main .section-dark .run-step__t{color:#0a3a8c}
main .section-dark .rel-row{color:#0f1020}
main .section-dark .rel-row:hover{color:#0a3a8c}
/* the alternating light sections take one warm off-white so the page reads as one surface */
main .section.why, main .section.wsh, main .section.start, main .section.caps{background:#f7f6f2}

/* ---------- A2 · glows and grain off; page heroes are flat Abyss ---------- */
main .phero .phero__glow, main .wwd .wwd__grain, main .aurora .aurora__grain, main .ins-hero .ins-hero__glow{display:none}
main .section-dark.wwd::before, main .section-dark.wwd::after{display:none}
main .section-dark.wcta::before{display:none}
main .phero{background:#080818}

/* ---------- A3 · eyebrows and kickers: sentence case, DM Sans, slate. Figures stay DM Mono. ---------- */
main .mono-label, main .sh__kicker.mono-label, main .hero__eyebrow.mono-label, main .phero .phero__kicker, main .wsh .wsh__kicker, main .vouch .vouch__metrics{
  font-family:var(--font-body,"DM Sans"),system-ui,sans-serif;
  text-transform:none;
  letter-spacing:0;
  font-size:.95rem;
  font-weight:500;
  color:#5b6180;
}
main .aurora .hero__eyebrow.mono-label{color:#c9cde0}
.footer .mono-label{font-family:var(--font-body,"DM Sans"),system-ui,sans-serif;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:500}
main .section-dark .sh__kicker.mono-label, main .phero .phero__kicker, main .section-dark .mono-label{color:#aeb4cc}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .sh__kicker.mono-label{color:#5b6180}
main .vouch .vouch__metrics{color:#3b4160;font-weight:500}
main .case-grid[data-cases] .case__body summary{font-family:var(--font-body,"DM Sans"),system-ui,sans-serif;font-size:.9rem;letter-spacing:0;text-transform:none;font-weight:600}
main .prin__n, main .phase__n, main .svc-block__n, main .track__n, main .run-step__t, main .impact__num{font-family:var(--font-mono,"DM Mono"),ui-monospace,monospace}

/* ---------- A4 · gradient hairlines become plain rules (the wordmark keeps its gradient dot) ---------- */
main .gh[aria-hidden]{background:#e3e5ee;height:1px}
main .section-dark .gh[aria-hidden], .footer .gh[aria-hidden]{background:rgba(255,255,255,.14)}
main .section-dark:not(.aurora):not(.phero):not(.cta):not(.wcta):not(.panel):not(.ins-hero):not(.after) .gh[aria-hidden]{background:#e3e5ee}
main .caps .cap-detail-grid .cap-detail__rule{clip-path:none;transition:none}

/* ---------- A5 · un-card: Six ways, Sharp solutions and the What-we-do capabilities become ruled lists ---------- */
main .wwd .six{display:block;margin-top:2rem}
main .wwd .six__card{
  display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:.5rem 1.5rem;
  border:0;border-top:1px solid #e3e5ee;border-radius:0;background:none;
  padding:1.15rem 0;transform:none;
}
main .wwd .six__card:last-child{border-bottom:1px solid #e3e5ee}
main .wwd .six__card h3{margin:0;color:#0f1020}
main .wwd .six__card p{margin:0;color:#3b4160}
main .wwd .six__card a{color:#0a3a8c}
main .wwd .wwd-head{align-items:flex-start;text-align:left}
main .wwd .wwd-head__title{text-align:left;margin-left:0}
main .wwd .wwd-head__lead{text-align:left;margin-left:0;color:#3b4160}
main .why .why__grid{display:block}
main .why .why__card{
  display:grid;grid-template-columns:minmax(200px,280px) 1fr;gap:.5rem 1.5rem;
  border:0;border-top:1px solid #e3e5ee;border-radius:0;background:none;padding:1.15rem 0;
}
main .why .why__card:last-child{border-bottom:1px solid #e3e5ee}
main .why .why__card h3{margin:0}
main .why .why__card p{margin:0}
main .vouch .vouch__card{background:#fff;border:1px solid #e3e5ee;border-radius:6px}
main .vouch .vouch__card h3{color:#0f1020}
main .section-dark.vouch .vouch__card p:not(.vouch__metrics){color:#3b4160}
main .vouch .vouch__more{color:#0a3a8c}
main .caps .cap-detail{border:0;border-top:1px solid #e3e5ee;border-radius:0;background:none;box-shadow:none;padding-left:0;padding-right:0}
main .caps .cap-detail__case{border-radius:0}
@media (hover:hover){
  main .wwd .six__card:hover{transform:none;border-color:#e3e5ee}
  main .vouch .vouch__card:hover{border-color:#0a3a8c;transform:none}
}
@media (max-width:760px){
  main .wwd .six__card, main .why .why__card{grid-template-columns:1fr;gap:.35rem}
}

/* ---------- A6 · status chips become plain labels ---------- */
main .status{
  background:none;border:0;padding:0;border-radius:0;
  font:600 .82rem/1.4 var(--font-body,"DM Sans"),system-ui,sans-serif;
  letter-spacing:0;text-transform:none;
}

/* ---------- A8 · reveal-on-scroll off: content is visible at rest (hero rotation and count-up untouched) ---------- */
html.reveal-ready [data-reveal]:not(.is-visible),
html.reveal-ready [data-reveal-stagger]:not(.is-visible)>*,
[data-reveal],[data-reveal-stagger]>*{opacity:1;transform:none;transition:none}

/* ---------- A9 · "Deeper. Sharper. Delivered." set as ordinary punctuation: no coloured, spaced or animated dots ---------- */
main .periods .periods__unit .period{color:inherit !important;animation:none !important;background:none !important;-webkit-text-fill-color:currentColor}
main .phase__head h3 .period{color:inherit !important;background:none !important;-webkit-text-fill-color:currentColor}

/* ---------- A10 · static hero (reduced motion, Save-Data, no JS): beat 1 is the visible line; the H1 stays verbatim in the tree ---------- */
.hero__static-line{display:none}
[data-hero-rotate]:not(.hero--rotate) .hero__title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
[data-hero-rotate]:not(.hero--rotate) .hero__static-line{display:block;font-family:var(--font-display);font-size:var(--step-4);font-weight:800;line-height:1.05;color:#fff;max-width:22ch;text-wrap:balance;margin:0 0 1.25rem}
