/* ============================================================
   Print / PDF.

   The site is a screen document: a fixed rail, breakout grid,
   an animated hero. None of that belongs in a PDF. This turns
   each page into a plain reading document — one column, light
   palette regardless of the reader's theme, no interactive
   furniture, and no decoration that only costs ink.

   Loaded with media="print", so it never touches the screen.
   ============================================================ */

/* Always print light. Someone reading in Midnight should not get a
   black PDF, and the product colours are chosen for light grounds. */
:root, html[data-theme="midnight"]{
  --ink:#17202e; --dim:#3f4756; --faint:#4b5360;
  --bg:#ffffff; --plate:#ffffff; --card:#ffffff; --well:#ffffff;
  --line:#c9c0ad; --rule:#b3a992;
  --gold:#b8860b; --gold-ink:#6b4a00; --on-accent:#17202e;
  --st-open:#7a5000; --st-over:#8a3410; --st-closed:#37503f;
  --audit:#1a4487; --books:#6b2860;
  --mk-gold-0:#C8901A; --mk-gold-1:#8A5A00;
  --mk-audit-0:#1F4E9C; --mk-audit-1:#12356B;
  --mk-books-0:#7A2E6E; --mk-books-1:#4E1C45;
  --mk-stroke:#A5700F;
  --measure:100%;
}

@page{ size:A4; margin:16mm 15mm 18mm; }

html,body{background:#fff !important;}
body{font-size:10.5pt; line-height:1.55;}

/* ---------- one column ---------- */
.wrap{display:block !important;}
.col{display:block !important; padding:0 !important; max-inline-size:none !important; margin:0 !important;}
.col>section{display:block !important; padding:0 0 9mm !important; background:none !important;
  border:0 !important; break-inside:auto;}
.col>section>*{max-inline-size:none !important;}
section.well{background:none !important; border-block:0 !important;}

/* ---------- the rail becomes a masthead ---------- */
.plate{position:static !important; inline-size:auto !important; background:none !important;
  border:0 !important; border-block-end:1.5pt solid var(--rule) !important;
  display:block !important; padding:0 0 5mm !important; margin:0 0 8mm !important;}
.ptop{display:flex !important; flex-direction:row !important; align-items:center; gap:5mm;}
.brand{flex-direction:row !important; align-items:center !important; gap:3.5mm; text-align:left !important;}
.brand .bmark{inline-size:16mm !important;}
.brand b{font-size:20pt;}
.plate .tag{text-align:left !important; margin:1mm 0 0; font-size:9pt;}
/* interactive furniture has no meaning on paper */
.plate nav, .a11y-open, .pbot, .plateMid, .skip, dialog.a11y{display:none !important;}
.plate .legal{display:block !important; font-size:8.5pt; margin:3mm 0 0;}

/* ---------- decoration off ---------- */
.heroArt, .field, .wm, .facetrule, .seamrule, .markfall, .stage, .stage3d,
.hero::after, .kick::before{display:none !important;}
.hero{background:none !important;}
.hero .heroGrid{display:block !important;}

/* ---------- type ---------- */
h1{font-size:23pt; line-height:1.12; margin:0 0 3mm;}
h2{font-size:15pt; line-height:1.2; margin:0 0 2.5mm;}
h3{font-size:11.5pt;}
.claim{font-size:16pt !important; line-height:1.25; max-width:none;}
.lede{font-size:12pt; color:var(--ink);}
.kick{font-size:8pt; letter-spacing:.12em; color:var(--gold-ink); margin:0 0 2mm;
  grid-column:auto !important; text-align:left !important; padding:0 !important;
  max-inline-size:none !important; flex-direction:row !important;}
p{margin:0 0 3mm;}

/* Headings must not be orphaned from what they introduce. break-after:avoid
   only binds to the NEXT element, and a product head is a three-link chain:
   .phead -> .what -> .lede. Every link needs the rule or the head strands. */
h1,h2,h3,.kick,.phead,.claim,.what{break-after:avoid-page; page-break-after:avoid;}
.what,.lede,.cap{break-before:avoid-page; page-break-before:avoid;}
/* a product's own section always opens a page — it is a chapter */
#shard-audit,#shard-books{break-before:page; page-break-before:always;}

/* ---------- blocks hold together ---------- */
.products,.product,.engines,.engine,.aud,.a1,.finding,.reg,.call,.note,.steps li{
  break-inside:avoid-page; page-break-inside:avoid;}
.products,.engines,.aud{display:block !important; border:0 !important; background:none !important;}
.product,.engine,.a1{border:0.75pt solid var(--line) !important; border-radius:2mm;
  padding:4mm !important; margin:0 0 4mm !important; background:#fff !important;}
.steps{display:block !important; background:none !important; border:0 !important;}
.steps li{background:none !important; border-block-end:0.5pt solid var(--line) !important;
  padding:2.5mm 0 !important;}
.reg{border:0.75pt solid var(--line) !important;}
.reg .r{border-block-end:0.5pt solid var(--line) !important; padding:2mm 3mm !important;}
.note{border-inline-start:2pt solid var(--audit) !important; padding:3.5mm 4mm !important;}
.call{border:1pt solid var(--gold-ink) !important; padding:5mm !important;}
.cta{border:0.75pt solid var(--gold-ink); background:none !important; color:var(--gold-ink) !important;
  padding:2mm 4mm;}
.tagpill,.badge{border:0.5pt solid var(--rule) !important;}

/* ---------- links: show nothing that should stay unscraped ---------- */
a{color:var(--gold-ink); text-decoration:none;}
a[href^="http"]::after{content:" (" attr(href) ")"; font-size:8.5pt; color:var(--faint);}
/* the address is assembled in script and must never be rendered as text */
a[data-mail]::after{content:none !important;}

.foot{margin-block-start:8mm; padding-block-start:3mm; border-block-start:0.75pt solid var(--rule);
  font-size:8.5pt;}
