@media print {
  /* Hide chrome that does not belong in a printed report */
  .site-header,
  .sidebar,
  .sidebar-reveal,
  .footer,
  .print-button,
  .pdf-download-button,
  .breadcrumbs,
  .mobile-menu-toggle,
  .mobile-nav-backdrop,
  .sidebar-close,
  .site-nav-mobile {
    display: none !important;
  }

  /* The on-screen frontmatter collapsible is replaced by the print cover */
  .frontmatter {
    display: none !important;
  }

  /* Reset page canvas */
  * {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  html,
  body {
    margin: 0;
    padding: 0;
    background: #fff;
    color: #1a1a1a;
    font-family: "Helvetica Neue", Arial, Helvetica, sans-serif;
    font-size: 10.5pt;
    line-height: 1.55;
  }

  .layout {
    display: block;
    max-width: none;
    padding: 0;
    margin: 0;
  }

  main {
    margin: 0;
  }

  .content {
    max-width: none;
    padding: 0;
  }

  /*
   * Cover page. Fills the full A4 content area (25.3cm at 2.4cm/2cm
   * top/bottom margins) and paints above the fixed .print-footer so the cover stays
   * free of running elements.
   */
  .print-cover {
    position: relative;
    z-index: 1;
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    height: 25.3cm;
    padding: 0;
    margin: 0;
    page-break-after: always;
    break-after: page;
    background: #fff;
  }

  .print-cover-accent {
    position: absolute;
    left: 0;
    right: 0;
    height: 0.45cm;
    background: #fc0f27;
  }

  .print-cover-accent-top {
    top: 0;
  }

  .print-cover-accent-bottom {
    bottom: 0;
  }

  .print-cover-inner {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    max-width: 17cm;
    padding: 1.5cm 0 1.5cm 0;
  }

  .print-cover-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5cm;
    border-bottom: 0.75pt solid #e5e7eb;
    padding-bottom: 0.8cm;
  }

  .print-cover-logo {
    width: 5.5cm;
    height: auto;
    display: block;
  }

  .print-cover-header-text {
    display: flex;
    align-items: baseline;
  }

  .print-cover-header-doctype {
    font-family: "Saira", "Helvetica Neue", Arial, sans-serif;
    font-size: 18pt;
    font-weight: 600;
    color: #fc0f27;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    text-align: right;
  }

  .print-cover-main {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 1cm 0 1.5cm 0;
  }

  .print-cover-title {
    font-family: "Saira", "Helvetica Neue", Arial, sans-serif;
    font-size: 32pt;
    font-weight: 800;
    line-height: 1.1;
    color: #111827;
    margin: 0 0 0.6cm 0;
    padding: 0;
    border: none;
  }

  .print-cover-description {
    font-size: 11.5pt;
    color: #4b5563;
    line-height: 1.6;
    max-width: 15cm;
    margin: 0;
    border-left: 3pt solid #fc0f27;
    background: #f8f9fa;
    padding: 0.4cm 0.6cm;
  }

  .print-cover-footer {
    padding-top: 0;
  }

  .print-cover-meta {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 0.6cm;
    font-size: 9.5pt;
  }

  .print-cover-meta th,
  .print-cover-meta td {
    padding: 0.28cm 0.45cm;
    text-align: left;
    vertical-align: top;
    border-bottom: 0.5pt solid #e5e7eb;
  }

  .print-cover-meta th {
    width: 35%;
    font-weight: 600;
    color: #6b7280;
    background: #f9fafb;
  }

  .print-cover-meta td {
    width: 65%;
    color: #1f2937;
  }

  .print-cover-meta tr:last-child th,
  .print-cover-meta tr:last-child td {
    border-bottom: none;
  }

  /* Document information page (follows the cover) */
  .print-info {
    page-break-after: always;
    break-after: page;
    padding-top: 0.5cm;
  }

  .print-info-title {
    font-family: "Saira", "Helvetica Neue", Arial, sans-serif;
    font-size: 14pt;
    font-weight: 700;
    color: #1a1a1a;
    border-bottom: 1pt solid #d1d5db;
    padding-bottom: 0.3cm;
    margin: 0 0 0.6cm 0;
    page-break-after: avoid;
    break-after: avoid;
  }

  .print-cover-sponsors {
    margin-top: 0.8cm;
    padding-top: 0.5cm;
    border-top: 1.5pt solid #d1d5db;
  }

  .print-cover-sponsors-label {
    font-size: 8.5pt;
    font-weight: 600;
    color: #6b7280;
    margin-bottom: 0.3cm;
  }

  .print-cover-sponsor-logos {
    display: flex;
    align-items: center;
    gap: 0.6cm;
    flex-wrap: wrap;
  }

  .print-cover-sponsor-logos img {
    max-height: 0.8cm;
    width: auto;
    max-width: 4cm;
    margin: 0;
  }

  /* Content typography */
  .content h1 {
    font-size: 18pt;
    font-weight: 700;
    color: #1a1a1a;
    border-bottom: 1pt solid #d1d5db;
    padding-bottom: 0.3cm;
    margin-top: 0;
    margin-bottom: 0.6cm;
    page-break-after: avoid;
    break-after: avoid;
  }

  .content h2 {
    font-size: 14pt;
    font-weight: 700;
    color: #1a1a1a;
    border-bottom: 0.5pt solid #e9ecef;
    padding-bottom: 0.2cm;
    margin-top: 0.9cm;
    margin-bottom: 0.4cm;
    page-break-after: avoid;
    break-after: avoid;
  }

  .content h3 {
    font-size: 12pt;
    font-weight: 700;
    color: #2a2a2a;
    margin-top: 0.7cm;
    margin-bottom: 0.3cm;
    page-break-after: avoid;
    break-after: avoid;
  }

  .content h4,
  .content h5,
  .content h6 {
    font-size: 11pt;
    font-weight: 700;
    color: #333;
    margin-top: 0.6cm;
    margin-bottom: 0.25cm;
    page-break-after: avoid;
    break-after: avoid;
  }

  .content p {
    margin: 0 0 0.4cm 0;
    orphans: 3;
    widows: 3;
  }

  .content ul,
  .content ol {
    margin: 0 0 0.5cm 0;
    padding-left: 1cm;
  }

  .content li {
    margin-bottom: 0.15cm;
  }

  /* Links */
  a {
    color: #1a1a1a;
    text-decoration: none;
  }

  /* Only external links get a URL annotation */
  a[href^="http"]::after,
  a[href^="mailto:"]::after {
    content: " (" attr(href) ")";
    font-size: 8.5pt;
    color: #555;
    word-break: break-all;
  }

  a[href^="#"]::after,
  a[href^="javascript:"]::after,
  a[href^="../../"]::after,
  a[href^="../"]::after,
  a[href^="./"]::after {
    content: "";
  }

  /* Tables */
  .content table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.5cm 0;
    font-size: 10pt;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .content thead {
    display: table-header-group;
  }

  .content th,
  .content td {
    padding: 0.25cm 0.35cm;
    border: 0.5pt solid #d1d5db;
    text-align: left;
    vertical-align: top;
  }

  .content th {
    background: #f8f9fa;
    font-weight: 600;
  }

  .content tr {
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* Images: capped so two figures fit on one page */
  .content img {
    max-width: 100%;
    max-height: 10cm;
    height: auto;
    display: block;
    margin: 0.5cm auto;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .content figure {
    margin: 0.5cm 0;
    text-align: center;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .content figcaption {
    font-size: 8.5pt;
    color: #6b7280;
    margin-top: 0.2cm;
  }

  /* Blockquotes / callouts */
  .content blockquote {
    page-break-inside: avoid;
    break-inside: avoid;
    border-left: 3pt solid #fc0f27;
    background: #f8f9fa;
    padding: 0.4cm 0.6cm;
    margin: 0.5cm 0;
  }

  .content blockquote.callout-danger {
    border-left-color: #c41e3a;
    background: #fdf2f4;
  }

  .content blockquote.callout-warning {
    border-left-color: #c25e00;
    background: #fff8f0;
  }

  .content blockquote.callout-note {
    border-left-color: #005587;
    background: #f2f8fb;
  }

  .content blockquote.callout-tip {
    border-left-color: #137a3a;
    background: #f2faf5;
  }

  .content blockquote p:last-child {
    margin-bottom: 0;
  }

  /* Code */
  .content pre {
    background: #f5f5f5;
    border: 0.5pt solid #ddd;
    padding: 0.4cm;
    font-size: 9pt;
    line-height: 1.4;
    page-break-inside: avoid;
    break-inside: avoid;
    white-space: pre-wrap;
    word-wrap: break-word;
  }

  .content code {
    font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
    font-size: 9pt;
    background: #f5f5f5;
    padding: 0.05cm 0.15cm;
    border-radius: 2pt;
  }

  .content pre code {
    background: transparent;
    padding: 0;
  }

  /* Cards */
  .card {
    border: 0.5pt solid #ccc;
    box-shadow: none;
    padding: 0.5cm;
    margin: 0.4cm 0;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  .card h3 {
    margin-top: 0;
  }

  /* Placeholder banner */
  .placeholder-banner {
    border: 1pt solid #c25e00;
    background: #fff8f0;
    color: #7a3d00;
    padding: 0.4cm 0.6cm;
    margin-bottom: 0.6cm;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* Page setup. Running headers and footers (rules, doc title/id, logo,
     page number) are stamped onto the PDF by docgen, not rendered via CSS. */
  @page {
    size: A4;
    margin: 2.4cm 1.8cm 2cm 1.8cm;
  }

  /* Hidden strings kept for browsers that support CSS Generated Content for Paged Media */
  .print-cover-strings {
    position: absolute;
    left: -9999px;
    top: 0;
  }

  /* Headings should not be orphaned */
  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
    break-after: avoid;
  }

  table, figure, pre, blockquote, .card {
    page-break-inside: avoid;
    break-inside: avoid;
  }
}
