@page {
  size: A4 landscape;
  margin: 10mm;
}

@media print {
  :root {
    --paper: #fff;
    --frame: 0px;
    --gutter: 8mm;
    --header-offset: 0px;
    /* Leave 2mm below the composition for print-engine rounding. */
    --print-page-height: 188mm;
    font-size: 10pt;
  }

  html,
  body {
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  body {
    font-size: 10pt;
    line-height: 1.4;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
  }

  .site-menu-toggle,
  .offcanvas,
  .offcanvas-backdrop,
  .no-script-nav,
  .skip-link,
  .page-loader,
  .site-footer,
  .modal,
  .modal-backdrop,
  #contact,
  form,
  .actions,
  .btn,
  .btn-origin__fill {
    display: none !important;
  }

  /* Include off-screen content, never a frozen reveal or a perspective tilt. */
  .deck,
  .deck * {
    opacity: 1 !important;
    visibility: visible !important;
    transform: none !important;
    translate: none !important;
    rotate: none !important;
    scale: none !important;
    filter: none !important;
    clip-path: none !important;
    content-visibility: visible !important;
  }

  .deck {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .deck > .slide-shell {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* A break before each subsequent printed section avoids a trailing blank page. */
  .deck > .slide-shell:not(#contact) ~ .slide-shell:not(#contact) {
    break-before: page;
    page-break-before: always;
  }

  .deck-page {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: var(--print-page-height);
    min-height: 0;
    margin: 0;
    overflow: visible;
  }

  .deck-page .slide-masthead {
    flex: 0 0 21mm;
    height: 21mm;
    min-height: 0;
    padding: 2mm var(--gutter) 5mm;
  }

  .slide-masthead .brand {
    display: inline-flex !important;
    width: 43mm;
    min-height: 0;
  }

  .deck-page .slide-number {
    color: var(--ink-strong) !important;
    font-size: 22pt;
    letter-spacing: -0.2rem;
  }

  .section-content {
    padding-inline: var(--gutter);
  }

  .section-body {
    min-height: 0;
    padding-block: 6mm 8mm;
  }

  .deck-page .section-title {
    max-width: none;
    margin: 0 0 5mm;
    font-size: 25pt;
    line-height: 1.12;
  }

  .section-heading {
    margin-bottom: 6mm;
  }

  .deck-page .subheading {
    margin-bottom: 3mm;
    font-size: 15pt;
    line-height: 1.2;
  }

  .eyebrow {
    margin-bottom: 3mm;
    font-size: 8pt;
  }

  .section-intro,
  .prose p {
    margin-bottom: 3mm;
  }

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

  p,
  li {
    orphans: 3;
    widows: 3;
  }

  .text-link {
    min-height: 0;
    margin-top: 3mm;
    font-size: 9pt;
  }

  .text-link__label {
    text-decoration-color: currentColor !important;
  }

  .text-link__marker {
    background-size: 0% 100% !important;
  }

  .media-frame {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Keep the desktop columns regardless of the screen used to open Print. */
  .deck-page .row {
    --bs-gutter-x: 6mm;
    --bs-gutter-y: 5mm;
  }

  .deck-page .row > [class*="col-"] {
    flex: 0 0 auto;
    min-width: 0;
  }

  .deck-page .col-lg-4 { width: 33.333333%; }
  .deck-page .col-lg-5 { width: 41.666667%; }
  .deck-page .col-lg-6 { width: 50%; }
  .deck-page .col-lg-7 { width: 58.333333%; }
  .deck-page .section-heading .col-lg-8 { width: 100%; }
  .strengths-panel .row > div { width: 33.333333%; }
  .team-grid > div { width: 25%; }

  .hero-content {
    padding: 8mm 12mm;
  }

  .hero-page .hero-title {
    max-width: 23ch;
    margin-bottom: 7mm;
    font-size: 38pt;
    line-height: 1.08;
  }

  .hero-intro {
    max-width: 80ch;
    text-align: center;
  }

  .hero-bottom {
    padding-block: 0 6mm;
  }

  .headline-rotator__word {
    display: none !important;
  }

  .headline-rotator__word:first-child {
    display: block !important;
  }

  .trust-list {
    display: flex;
    justify-content: center;
    gap: 3mm 5mm;
    margin-top: 4mm;
    padding-top: 4mm;
    font-size: 8pt;
  }

  .trust-list li + li::before {
    display: none;
  }

  .deck-page.split-page {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 21mm minmax(0, 1fr);
  }

  .split-page .slide-masthead {
    grid-area: 1 / 1 / 2 / -1;
  }

  .deck-page .split-copy {
    grid-area: 2 / 1;
    min-width: 0;
    padding: 6mm var(--gutter) 8mm;
    align-self: center;
    font-size: 10pt;
  }

  .deck-page .split-media {
    grid-area: 2 / 2;
    width: auto;
    height: 100%;
    min-height: 0;
    max-width: none;
    max-height: none;
    margin: 0;
    aspect-ratio: auto;
    align-self: stretch;
  }

  .split-page .split-media img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  .split-page--reverse .split-copy { grid-column: 2; }
  .split-page--reverse .split-media { grid-column: 1; }

  .vision-page .section-title,
  .vision-page .eyebrow {
    margin-right: 0;
  }

  .vision-panel {
    margin-top: 4mm;
    padding: 6mm;
  }

  .mission-primary {
    height: 74mm;
    margin-bottom: 6mm;
    aspect-ratio: auto;
  }

  .mission-panel {
    padding: 6mm;
  }

  .mission-secondary {
    height: 52mm;
    margin-top: 5mm;
    aspect-ratio: auto;
  }

  .editorial-signature {
    margin-top: 4mm;
  }

  .strengths-panel {
    padding: 6mm;
  }

  .strength-item {
    padding-bottom: 3mm;
  }

  .item-number {
    margin-bottom: 3mm;
    font-size: 8pt;
  }

  .solutions-page .solution-card__visual {
    height: 45mm;
    max-height: none;
    margin-bottom: 4mm;
    aspect-ratio: auto;
  }

  .product-name {
    margin-bottom: 3mm;
    font-size: 20pt;
  }

  .product-heading {
    grid-template-columns: minmax(0, 1fr) 20mm;
    gap: 6mm;
    margin-bottom: 5mm;
  }

  .deck-page .product-title {
    margin-bottom: 0;
    font-size: 21pt;
  }

  .product-title__name {
    font-size: 1.5em;
  }

  .product-heading .product-mark {
    display: block;
  }

  .product-visual {
    max-width: none;
  }

  .product-visual img {
    width: 100%;
    height: 103mm;
    max-height: none;
  }

  .benefit-list {
    margin-block: 4mm 0;
  }

  .benefit-list li {
    margin-bottom: 2mm;
  }

  .profile-copy {
    padding-top: 4mm;
  }

  .profile-role {
    margin-bottom: 4mm;
  }

  .team-member {
    max-width: none;
    margin: 0;
  }

  .team-member__photo {
    height: 54mm;
    max-height: none;
    margin-bottom: 4mm;
    aspect-ratio: auto;
  }
}
