/*
 * Print styles — a clean, ink-friendly printout on any kickstart page, whether
 * the visitor uses a site's „Drucken" button (window.print) or the browser's
 * own print (Ctrl/Cmd-P). Site chrome is dropped so only #main prints.
 *
 * Served as a `media="print"` stylesheet outside the entry bundle, so it never
 * blocks rendering (see lupus-nuxt-core/nuxt.config.ts).
 * Opt an element out of print with the `.print-hidden` class (or the
 * equivalent `data-print-hidden` attribute).
 */
@media print {
  /* Drop site chrome: header + topbar, footer, breadcrumbs, flash messages,
   * cookie banner, any modal/popup dialog, and anything a component opts out. */
  [data-id="site-header"],
  #footer,
  [data-id="footer-navigation"],
  #breadcrumbs,
  [data-id="messages"],
  section.cookieControl,
  [role="dialog"],
  .print-hidden,
  [data-print-hidden] {
    display: none !important;
  }

  /* Neutral page: white background, black text — no branded surfaces burning
   * ink, and readable if the visitor prints in grayscale. */
  html,
  body {
    background: #fff !important;
    color: #000 !important;
  }

  /* Main content spans the full page — drop the on-screen container width. */
  #main {
    max-width: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Nothing sticks or floats in print; boxes shed their on-screen chrome. */
  .sticky,
  [class*=":sticky"] {
    position: static !important;
    top: auto !important;
  }

  [class*="shadow"] {
    box-shadow: none !important;
  }

  /* Keep headings with their content, and don't split list rows or media. */
  h1,
  h2,
  h3,
  h4 {
    break-after: avoid;
  }

  li,
  tr,
  img,
  figure {
    break-inside: avoid;
  }

  /* Links print as plain text — no colour or underline noise. */
  a {
    color: inherit !important;
    text-decoration: none !important;
  }
}
