/* ============================================================
   Design foundations: brand-neutral print / PDF stylesheet.
   Link last (after foundation.css, the theme and page.css), media="print".
   Keeps the page's type and rhythm and makes it paginate on A4:
   light theme forced, header becomes a running line, hero becomes
   a title block, nothing animates, rows never split across pages.
   Light is forced by the theme itself: a theme puts its dark remap
   under @media screen (see ../print.md), so print always resolves
   the light values. This file only whitens the canvas.
   ============================================================ */

@page { size: A4; margin: 14mm 14mm 16mm; }

:root, :root[data-theme] {
  --bg: #ffffff; --surface: #ffffff;
  --shell: 100%;
  --section-pad: 7mm;
  --fs-display: 30pt; --fs-h2: 21pt; --fs-h3: 13pt; --fs-lead: 11.5pt;
  --fs-body: 10pt; --fs-small: 8.5pt; --fs-micro: 7pt;
  color-scheme: light;
}

html, body { background: #fff; }
body { font-size: var(--fs-body); line-height: 1.45; -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* header: a quiet running line; no nav, no buttons, no glass */
.site-header { position: static; background: none !important; box-shadow: none !important; backdrop-filter: none !important; }
.header-inner { min-height: 0; padding-bottom: 4mm; }
.nav-links, .header-actions, .skip-link { display: none !important; }

/* hero: a title block */
.hero, .hero-compact { min-height: 0; padding-block: 2mm 6mm; border-bottom: 1px solid var(--line-strong); }
.hero-bleed, .hero-media, .hero-art { display: none !important; }
.hero-split .hero-inner { grid-template-columns: 1fr !important; }
.hero .lead { max-width: none; }

/* bands print on white; keep the colour fields, they carry meaning */
.band, .band-ink { background: none !important; color: var(--ink) !important; }
.band-ink .lead, .band-ink .muted, .band-ink .label, .band-ink .eyebrow { color: var(--muted) !important; }
.band-ink .rule-list > * { border-top-color: var(--ink) !important; }
.section { padding-block: var(--section-pad) 0; }
.split-sticky > :first-child { position: static; }

/* A4 is ~794px wide, which trips the tablet breakpoints: restore desktop grids */
.split { grid-template-columns: 1fr !important; gap: 4mm; }
.rule-list { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)) !important; gap: 0 6mm; }
.rule-list > * { padding-block: 3mm 4mm; }
.facts { grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)) !important; }
.facts strong { font-size: 22pt; }
.fields { grid-template-columns: repeat(12, 1fr) !important; gap: 3mm; }
.field { grid-column: span var(--span, 6) !important; min-height: 0; padding: 5mm; gap: 3mm; }
.index-list > li { grid-template-columns: 14mm 0.9fr 1.3fr !important; gap: 2mm 5mm; padding-block: 3mm; }
.index-list > li::before { font-size: 16pt; }
.kv > div { grid-template-columns: 42mm 1fr !important; padding-block: 2.5mm; }
.brief { display: block; padding: 6mm; }
.faq details > div { display: block; }
.board th, .board td { padding: 2.5mm 3.5mm; font-size: 9pt; }
.button { min-height: 0; padding: 2mm 5mm; }
.button-quiet { display: none; }

/* never split a row, a step or a panel; keep headings with what follows */
.rule-list > *, .index-list > li, .facts > div, .field, .kv > div, .board tr, .callout, .brief, figure { break-inside: avoid; }
h1, h2, h3, .eyebrow, .intro, .intro-row { break-after: avoid; }
.page-break { break-before: page; }
.screen-only { display: none !important; }
.print-only { display: block !important; }

/* everything visible, nothing moves */
.reveal, .js .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
*, *::before, *::after { animation: none !important; }
