/* print.css — PDF-friendly rendering.
   Linked only via media="print" so live page is untouched. */

@page {
  size: Letter;
  margin: 0.55in 0.5in 0.65in 0.5in;
}

@media print {
  /* ------ Global: force colors to render faithfully ------ */
  *, *::before, *::after {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
    box-shadow: none !important;
  }

  html, body {
    background: var(--bg) !important;
    font-size: 10.5pt;
  }

  /* ------ Reveal / motion: show final state always ------ */
  .reveal,
  .reveal--strong,
  .reveal--subtle {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
  }

  /* Num-strike line renders fully */
  .hero__h1 .num-strike::after { transform: scaleX(1) !important; }

  /* Kill pulsing dot animation */
  .pulse-dot::after { animation: none !important; opacity: 0.25 !important; }

  /* ------ Hide interactive / nav-only chrome ------ */
  .skip-link,
  .sticky-cta,
  .site-header__meta,
  .hero__cta-row,
  .diag-result .btn,
  .form__submit,
  #apply .form__consent,
  .form__success {
    display: none !important;
  }

  /* Header shouldn't be sticky in print */
  .site-header {
    position: static !important;
    backdrop-filter: none !important;
    background: transparent !important;
    border-bottom: 1px solid var(--border) !important;
  }

  /* ------ Expand every <details> accordion ------ */
  /* JS also sets the open attribute; this is the CSS safety net for
     browsers where the print pass runs before JS. */
  details > .disclosure__body {
    display: block !important;
    padding-bottom: 12pt !important;
  }
  details .disclosure__icon { display: none !important; }
  details > summary {
    padding-block: 10pt !important;
    cursor: default !important;
  }

  /* ------ Page-break discipline ------ */
  h1, h2, h3, h4 { break-after: avoid; }
  .section-head { break-after: avoid; }

  .section,
  .hero,
  .final-cta,
  .proof-rail {
    break-inside: auto;
  }

  .lever,
  .artifact,
  .testimonial,
  .case-step,
  .case-num,
  .disclosure,
  .proof-stat,
  .diag-field,
  .diag-result {
    break-inside: avoid;
  }

  figure, img, svg { break-inside: avoid; page-break-inside: avoid; }

  /* ------ Hero adjustments ------ */
  .hero { padding-block: 20pt 16pt !important; }
  .hero__h1 {
    font-size: 32pt !important;
    line-height: 0.96 !important;
  }
  .hero__lede { font-size: 11pt !important; max-width: none !important; }
  .hero__figure { break-before: auto; margin-top: 12pt; }

  /* ------ Section spacing: much tighter than screen ------ */
  .section {
    padding-block: 18pt !important;
  }
  .section-head {
    margin-bottom: 14pt !important;
    padding-block-end: 8pt !important;
  }
  .section-head__title {
    font-size: 22pt !important;
    line-height: 1.05 !important;
  }

  /* Mechanism levers — keep 2x2 even if very narrow */
  .levers {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Deliverable / case / founder grids — stack */
  .deliverable,
  .case-grid,
  .founder__grid,
  .final-cta__grid,
  .diagnostic__grid,
  .faq__grid {
    grid-template-columns: 1fr !important;
    gap: 14pt !important;
  }

  /* Diagnostic: on print, show the slider values in-line as computed */
  .diagnostic { padding-block: 18pt !important; }
  .diagnostic::before { display: none; }

  .diag-slider { pointer-events: none; opacity: 0.7; }

  /* Final CTA: present the form as-is minus submit */
  .final-cta::before { display: none; }
  .final-cta__h {
    font-size: 26pt !important;
    line-height: 1.0 !important;
  }
  .form {
    padding: 12pt !important;
  }

  /* Testimonials — 2-up in print */
  .testimonials-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10pt !important;
  }

  /* Footer compact */
  .site-footer { padding-block: 16pt 10pt !important; }
  .site-footer__grid {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 14pt !important;
    padding-bottom: 12pt !important;
  }

  /* Links: drop the underline-wash that reads as noise in print */
  a { text-decoration: none !important; border-bottom: 0 !important; }

  /* Hide the analytics-oriented data-evt decorations if any */
  [aria-hidden="true"] { print-color-adjust: exact; }

  /* Ensure dark sections keep their dark bg in print */
  .section--dark,
  .diagnostic,
  .final-cta,
  .site-footer {
    background: var(--ink-950) !important;
    color: var(--fg-onDark) !important;
  }

  /* Typography on light bg gets a hair darker for print contrast */
  :root {
    --fg-muted: var(--ink-500);
  }
}
