/* Print / Save as PDF: a compact, ink-friendly investor brief.
   Loaded with media="print"; motion.js reveals every pending element before printing. */

@page { size: A4; margin: 14mm 14mm 16mm; }

html { font-size: 10.5pt; scroll-behavior: auto; }
body { font-size: 10.5pt; line-height: 1.45; background: #fff; color: #000; }
* { animation: none !important; transition: none !important; box-shadow: none !important; }
[data-reveal] { opacity: 1 !important; transform: none !important; }

.top, .skip, .modal, .hero-visual, .lead + .actions, .hero .actions, .contact-actions, .case-actions .btn-text,
.card-more, .more, .tl-links, .card-visual, .card-points, .case-visual > .phone { display: none !important; }
.print-only { display: block !important; }

.wrap { max-width: none; padding-inline: 0; }
.section { padding-top: 7mm; }
.section-head { margin-bottom: 4mm; padding-top: 2mm; break-after: avoid; }
.folio { font-size: 20pt; }
.section-head h2 { font-size: 18pt; }
.section-lead { font-size: 10pt; margin-top: 2mm; }

/* hero → title block */
.hero { padding: 0 0 5mm; display: block; }
.kicker { margin-bottom: 4mm; padding-bottom: 2mm; }
.hero h1 { font-size: 24pt; line-height: 1.05; }
.hero-copy { gap: 3mm; }
.lead { font-size: 11pt; max-width: none; }

.facts-grid { break-inside: avoid; }
.fact { padding-top: 3mm; padding-bottom: 3mm; gap: 2mm; }
.fact dd { font-size: 26pt; }

.points li, .columns li { padding-top: 3mm; padding-bottom: 3mm; break-inside: avoid; }
.points h3, .columns h3 { font-size: 11.5pt; margin-bottom: 1.5mm; }
.points p, .columns p { font-size: 9.5pt; }
.num { margin-bottom: 1.5mm; }

/* case studies: screenshot left, facts right, one block per case */
.cases { gap: 5mm; }
.case { break-inside: avoid; padding-top: 3mm; column-gap: 5mm; }
.case-visual, .case-flip .case-visual { grid-column: 1 / span 4; grid-row: 1; margin: 0; }
.case-text, .case-flip .case-text { grid-column: 5 / -1; grid-row: 1; }
.case-name { font-size: 15pt; margin-top: 1mm; }
.case-tagline { font-size: 10pt; margin-top: 1mm; }
.case-facts { margin-top: 2mm; font-size: 9pt; }
.case-facts dt, .case-facts dd { padding: 1.2mm 0; }
.case-facts dt { font-size: 8.5pt; }
.case-actions { margin-top: 2mm; gap: 2mm; }
.case-actions .btn { min-height: 0; padding: 0; border: 0; background: none; color: #000; font-size: 9pt; }
.case-actions .btn .icon { display: none; }

/* grids → dense text lists */
.grid, .grid.grid-more { grid-template-columns: repeat(3, 1fr); }
.cell-wide { grid-column: auto; }
.cell-wide .card { display: flex; }
.cell-wide .card-name { font-size: 11pt; margin-top: 0; }
.cell-wide .card-tagline { font-size: 8.5pt; }
.card { padding: 2.5mm; gap: 1mm; }
.card-name { font-size: 11pt; }
.card-tagline { font-size: 8.5pt; }
.cell { break-inside: avoid; }

.timeline { grid-template-columns: repeat(3, 1fr); }
.tl-item { padding: 2.5mm 3mm 2.5mm 0; break-inside: avoid; }
.tl-date { font-size: 12pt; }
.tl-text { font-size: 9pt; margin-top: 1mm; }

.ask-value { font-size: 15pt; }
.ask-cell { padding-top: 3mm; padding-bottom: 3mm; }
.ledger-row { padding: 2.5mm 0; break-inside: avoid; }
.ledger-row h3 { font-size: 11pt; }

.stages { grid-template-columns: repeat(4, 1fr); }
.stage { padding-top: 3mm; break-inside: avoid; }
.stage + .stage { border-left: 1px solid var(--line); padding-left: 3mm; border-top: 0; }
.stage h3 { font-size: 13pt; }
.stage-list li { padding: 1.5mm 0; }
.link { font-size: 10pt; text-decoration: none; }

/* contact → plain block with written-out links */
.contact { background: #fff; color: #000; margin-top: 7mm; border-top: 2px solid #000; break-inside: avoid; }
.contact-inner { padding: 4mm 0 0; }
.contact .folio { color: var(--blue); }
.contact h2 { font-size: 18pt; }
.contact-text { margin: 2mm 0; font-size: 10pt; }
#print-contact { font-weight: 600; font-size: 11pt; }
.foot { padding: 4mm 0 0; font-size: 8.5pt; }

.badge { min-height: 0; padding: 0.3mm 1.5mm; font-size: 7.5pt; }
.badge-live { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
