/* =====================================================================
   Print styles
   =====================================================================
   Linked with media="print" from every page — zero cost on screen. */

@media print {

  /* Interactive chrome has no meaning on paper. */
  .skip-link,
  .site-header,
  .site-footer,
  .theme-toggle,
  .consent,
  .hero__scroll-hint,
  .map__placeholder,
  video,
  iframe,
  button {
    display: none !important;
  }

  /* Screen-only imagery: hero video/poster and the embedded map. */
  .hero__backdrop,
  .hero__overlay,
  .map {
    display: none;
  }

  /* Black on white, screen-independent typography. */
  :root,
  body {
    background: #fff !important;
    color: #000 !important;
  }

  body {
    font-size: 12pt;
    line-height: 1.5;
  }

  main {
    max-width: none;
    padding: 0;
  }

  a {
    color: #000 !important;
    text-decoration: underline;
  }

  /* Show destinations for external links (internal anchors stay clean). */
  a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 0.85em;
    word-break: break-all;
  }

  /* The hero relies on a dark video/poster for contrast, which does not print. */
  .hero {
    min-height: auto;
    padding-block: 1rem;
    background-color: transparent;
    color: var(--color-text);
  }

  .hero__title,
  .hero__lead {
    color: var(--color-text);
  }

  .section {
    padding-block: 1rem;
  }

  /* Keep figures and headings together across page breaks. */
  img {
    max-width: 100% !important;
    page-break-inside: avoid;
  }

  h1,
  h2,
  h3 {
    page-break-after: avoid;
  }

  section {
    page-break-inside: avoid;
  }
}
