/* When editing this file, bump PRINT_CSS_VERSION in Head.tsx so the browser doesn't serve a cached copy. */
@page {
  size: A4;
  margin: 5mm 0;
}

@media print {
  /* NAVIGATION & SHELL — collapse / hide */

  /* Header has position:fixed via inline style — browsers re-paint fixed elements
     on every printed page. Switch to static to prevent repeating on pages 2+. */
  body[data-print-template='print-fitting-calc'] [class*='GlobalNavigation-styles__StyledHeader'] > div {
    position: static !important;
    transform: none !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='GlobalNavigation-styles__StyledHeader'],
  body[data-print-template='print-fitting-calc'] [class*='GlobalNavigation-styles__StyledHeader'] > div,
  body[data-print-template='print-fitting-calc'] [class*='StyledGlobalNavigation'],
  body[data-print-template='print-fitting-calc'] [class*='UniversalNavBar-styles__StyledContainer'] {
    padding: 0 !important;
    margin: 0 !important;
    min-height: 0 !important;
    height: auto !important;
  }
  body[data-print-template='print-fitting-calc'] [class*='StyledUniversalNavBar'] {
    margin: 0 !important;
    min-height: 0 !important;
  }

  /* Space below the logo so page content doesn't overlap it. */
  body[data-print-template='print-fitting-calc'] [class*='GlobalNavigation-styles__StyledHeader'] {
    padding-bottom: 40px !important;
  }

  body[data-print-template='print-fitting-calc'] {
    padding-top: 0 !important;
    margin-top: 0 !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='StyledUniversalBannerContainer'],
  body[data-print-template='print-fitting-calc'] [class*='BigContentBlockWrapper'],
  body[data-print-template='print-fitting-calc'] [class*='StyledBreadcrumbsWrapper'] {
    display: none !important;
  }

  /* PAGE-SPECIFIC BLOCKS — hide */

  body[data-print-template='print-fitting-calc'] [class*='LocalNavigationBar-styles__StyledContainer'],
  body[data-print-template='print-fitting-calc'] [class*='StyledNavBarButtonsContainer'],
  body[data-print-template='print-fitting-calc'] [class*='StyledFilterGroupWrapper'],
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__StyledContainer'],
  body[data-print-template='print-fitting-calc'] [class*='StyledFooter'],
  body[data-print-template='print-fitting-calc'] [class*='components-styles__StyledButtonsContainer'],
  body[data-print-template='print-fitting-calc'] [class*='SocialSharing-styles__SocialSharingWrapper'],
  body[data-print-template='print-fitting-calc'] [class*='Button-styles__StyledButton'],
  body[data-print-template='print-fitting-calc'] [class*='Accordion-styles__ContentContainer'] {
    display: none !important;
  }

  /* RESULTS LAYOUT */

  /* Stack RE/LI product cards vertically. A flex ancestor breaks Chrome's
     page-break-inside support for descendants, so use block instead. */
  body[data-print-template='print-fitting-calc'] [class*='ProductResultItem-styles__FittingCalculatorFormResultItemWrapper'] {
    display: block !important;
    border: none !important;
    border-radius: 0 !important;
  }

  /* Keep a single product card intact on one page. */
  body[data-print-template='print-fitting-calc'] [class*='ProductResultItem-styles__ProductResultItemMainContainer'] {
    padding: 0 !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* Table header row/label block must not split across pages. */
  body[data-print-template='print-fitting-calc'] [class*='components-styles__TableHeader'],
  body[data-print-template='print-fitting-calc'] [class*='components-styles__StyledHeaderContainer'] {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* CategoriesContainer: spacing is owned by CategoryWrapper margin-block-start.
     Drop display:flex — a flex ancestor here also keeps the CategoryWrapper border
     (::before) and headline from tracking correctly with the content that follows. */
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__CategoriesContainer'] {
    display: block !important;
    gap: 0 !important;
    padding-top: 0 !important;
  }

  /* CategoryWrapper owns the visual border via ::before.
       margin-block-start creates space for the floating category headline above the border:
         headline height 36px + gap to border 40px + gap below divider 40px = 116px */
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__CategoryWrapper'] {
    display: block !important;
    border: none !important;
    border-radius: 0 !important;
    margin-block-start: 116px !important;
    padding: 24px !important;
    position: relative !important;
    overflow: visible !important;
    width: fit-content !important;
  }

  /* CategoryWrapper switched from flex (gap) to block, so restore spacing between
     stacked product cards with margin instead. */
  body[data-print-template='print-fitting-calc']
    [class*='ProductResultItem-styles__FittingCalculatorFormResultItemWrapper']
    + [class*='ProductResultItem-styles__FittingCalculatorFormResultItemWrapper'] {
    margin-block-start: 16px !important;
  }

  /* Force every category after the first one onto a fresh page, instead of letting the
     headline/table try (and sometimes fail) to partially fit the remaining space. */
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__CategoryWrapper']:not(:first-of-type) {
    break-before: page !important;
    page-break-before: always !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__CategoryWrapper']::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    inset-inline-start: 0 !important;
    inset-inline-end: 0 !important;
    bottom: 0 !important;
    border: 1px solid #d4d4d4 !important;
    border-radius: 24px !important;
    pointer-events: none !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Category headline floats above the border inside the margin-block-start zone. */
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__StyledHeadline'] {
    position: absolute !important;
    top: -80px !important;
    padding: 0 !important;
    inset-inline-start: 0 !important;
  }

  /* Page headline: 40px gap below before the divider. */
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__StyledLargeHeadline'],
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__StyledLargeHeadlineWithIcon'] {
    display: block !important;
    margin-bottom: 40px !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__StyledDivider'] {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Headline wrapper: prevent overflow:hidden from collapsing the container height. */
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__StyledHeadlineFilterAndSocialWrapper'],
  body[data-print-template='print-fitting-calc'] [class*='FittingCalculatorResults-styles__StyledHeadlineAndFilterWrapper'] {
    overflow: visible !important;
  }

  /* COLORS & PRINT-COLOR ADJUST */

  body[data-print-template='print-fitting-calc'] [class*='StyledDivider'] {
    background-color: #888b8d !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  body[data-print-template='print-fitting-calc'] [class*='Badge-styles__StyledBadge'] {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* MISC LAYOUT FIXES */

  body[data-print-template='print-fitting-calc'] [class*='hocs-styles__ComponentWithColoredBgWrapper'] {
    padding-top: 82px !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='components-styles__StyledMobileHeaderContainer'] {
    display: flex !important;
    align-items: center !important;
    gap: 24px !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='components-styles__StyledImageButtonContainer'] {
    width: auto !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='components-styles__TableContainer'] {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* Portrait-only: tighter font and padding inside table cells. */
@media print and (orientation: portrait) {
  body[data-print-template='print-fitting-calc'] [class*='components-styles__TableCell'],
  body[data-print-template='print-fitting-calc'] [class*='components-styles__StyledLabel'],
  body[data-print-template='print-fitting-calc'] [class*='components-styles__StyledCellValue'],
  body[data-print-template='print-fitting-calc'] [class*='components-styles__StyledAxisValueCell'],
  body[data-print-template='print-fitting-calc'] [class*='components-styles__CellContent'] {
    font-size: 12px !important;
  }

  body[data-print-template='print-fitting-calc'] [class*='components-styles__TableCell'] {
    padding: 12px !important;
  }
}
