@media print {
  @page { size: A4 landscape; margin: 7mm; }

  html, body {
    width: auto !important; height: auto !important;
    margin: 0 !important; padding: 0 !important;
    overflow: visible !important;
  }
  body {
    font-size: 10px !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  body > header, body > footer, .popup, .popup-overlay, .system-notification { display: none !important; }

  /* Reset layout wrappers to full-width static flow. */
  body .main-container,
  body .step-container.classicbond,
  body .step-summary,
  body .step-summary .summary-container,
  body .step-summary .step-input-data.basket,
  body .step-summary #summary-container,
  body .step-summary #your-kit-container {
    width: 100% !important; max-width: none !important;
    height: auto !important; min-height: 0 !important;
    margin: 0 !important; padding: 0 !important;
    overflow: visible !important; float: none !important;
    position: static !important; transform: none !important;
  }
  body .step-summary .step-input-data.basket { background: none !important; border: none !important; box-shadow: none !important; }
  body .step-summary .row.summary-container { display: block !important; }

  /* Kit container has three children: specification, tiers and upsells. */
  body .step-summary #your-kit-container {
    display: grid !important;
    grid-template-columns: 24% minmax(0, 1fr) !important;
    grid-template-rows: auto auto !important;
    gap: 8px 12px !important;
    align-items: start !important;
  }
  body .step-summary #your-kit-container > .col-md-3,
  body .step-summary #your-kit-container > .tier-item-container,
  body .step-summary #your-kit-container > .upsells-container {
    width: auto !important; max-width: none !important;
    float: none !important; padding: 0 !important; margin: 0 !important;
  }
  body .step-summary #your-kit-container > .col-md-3 { grid-column: 1 !important; grid-row: 1 / span 2 !important; }
  body .step-summary #your-kit-container > .tier-item-container { grid-column: 2 !important; grid-row: 1 !important; display: flow-root !important; }
  body .step-summary #your-kit-container > .upsells-container { grid-column: 2 !important; grid-row: 2 !important; }

  /* Specification (left column), restored from narrow-viewport hiding. */
  body .step-summary .kit-container .specificationContainer {
    display: block !important; position: static !important;
    width: 100% !important; max-width: 100% !important;
    height: auto !important; min-height: 0 !important;
    margin: 0 !important; padding: 8px !important;
    border: 1px solid #ddd !important; box-shadow: none !important;
  }
  body .step-summary .specificationContainer .specification {
    display: block !important;
    width: 100% !important; max-width: none !important;
    height: auto !important; min-height: 0 !important;
    margin: 0 !important;
  }
  body .step-summary .specificationContainer .specification > div,
  body .step-summary .specificationContainer .specification > hr {
    display: block !important; width: 100% !important;
  }
  body .step-summary .specificationContainer .specification > div { margin-bottom: 6px !important; }
  body .step-summary .specificationContainer .specification > hr { margin: 5px 0 !important; }
  body .step-summary .specificationContainer h1 {
    font-size: 15px !important; line-height: 18px !important;
    margin: -8px -8px 7px !important; padding: 7px 8px !important;
    background: #eee !important;
  }
  body .step-summary .specificationContainer p {
    font-size: 10px !important; line-height: 13px !important;
    margin-bottom: 3px !important;
  }
  body .step-summary .specificationContainer .specification div:nth-child(n+2) p:first-child {
    font-size: 11px !important; line-height: 14px !important;
  }

  /* No interactive controls on the printed document. */
  body .step-summary .backToEditImg,
  body .step-summary .prdInThisKitBtn,
  body .step-summary .upsellItem .quantity-container button,
  body .step-summary #btnSaveKit,
  body .step-summary #btnBuyKit { display: none !important; }

  /* Membrane choices: two side by side. */
  body .step-summary .tier-item-container h2 { font-size: 15px !important; line-height: 19px !important; margin: 0 0 8px !important; }
  body .step-summary .tier-item-container h2.reassurance { display: block !important; }
  body .step-summary .tier-item-container .tierItem {
    width: calc(50% - 6px) !important; min-width: 0 !important;
    height: auto !important; min-height: 140px !important;
    float: left !important; clear: none !important;
    margin: 0 12px 0 0 !important; padding: 10px !important;
  }
  body .step-summary .tier-item-container .tierItem:nth-of-type(2n) { margin-right: 0 !important; }
  body .step-summary .tierItem p.name,
  body .step-summary .tierItem p.price { font-size: 14px !important; line-height: 17px !important; }
  body .step-summary .tierItem .description {
    font-size: 10px !important; line-height: 13px !important;
    min-height: 38px !important; margin-top: 5px !important;
  }
  body .step-summary .tierItem .selector { width: 20px !important; }
  body .step-summary .tierItem .text { width: calc(100% - 25px) !important; }

  /* Recommended extras: two side by side. */
  body .step-summary #upsells-container { display: flow-root !important; margin: 0 !important; }
  body .step-summary .upsellItem {
    display: block !important;
    width: calc(50% - 6px) !important; min-height: 130px !important;
    float: left !important; clear: none !important;
    margin: 0 12px 0 0 !important; padding: 9px !important;
  }
  body .step-summary .upsellItem:nth-child(even) { margin-right: 0 !important; }
  body .step-summary .upsellItem > div:nth-child(1) { width: 72px !important; }
  body .step-summary .upsellItem > div:nth-child(2) { width: calc(100% - 72px) !important; }
  body .step-summary .upsellItem img { width: 62px !important; height: 62px !important; object-fit: contain !important; }
  body .step-summary .upsellProductName,
  body .step-summary .upsellPrice { font-size: 12px !important; line-height: 15px !important; margin: 0 0 3px !important; }
  body .step-summary .upsellItem .description,
  body .step-summary .upsellItem li { font-size: 9px !important; line-height: 12px !important; }

  /* Selected quantity shown as a plain read-only value. */
  body .step-summary .upsellItem .quantity-container {
    display: flex !important; align-items: center !important;
    width: auto !important; margin-top: 8px !important;
  }
  body .step-summary .upsellItem .quantity-container input.amount {
    display: inline-block !important; float: none !important;
    width: 32px !important; height: 24px !important; padding: 2px !important;
    font-size: 12px !important; text-align: center !important;
    border: 1px solid #ddd !important; background: #fff !important;
    opacity: 1 !important; -webkit-text-fill-color: #222 !important;
  }

  /* Total printed after the main content, not as a fixed toolbar. */
  body .step-summary .basket-summary-container {
    display: block !important; position: static !important;
    width: 100% !important; max-width: none !important;
    height: auto !important; min-height: 0 !important;
    margin: 8px 0 0 !important; padding: 0 !important;
    background: none !important; border: none !important;
    box-shadow: none !important; overflow: visible !important;
  }
  body .step-summary .basket-summary.primary {
    display: block !important;
    width: 100% !important; min-height: 0 !important;
    margin: 0 !important; padding: 8px 12px !important;
    background: none !important;
    border: none !important; box-shadow: none !important;
  }
  body .step-summary #total-container {
    display: block !important; float: none !important;
    width: auto !important; margin: 0 !important;
    text-align: right !important;
  }
  body .step-summary #total-container .totalPrice {
    display: block !important;
    font-size: 20px !important; line-height: 24px !important;
    font-weight: 700 !important; white-space: nowrap !important;
  }
  body .step-summary #total-container .subtotalPrice {
    display: block !important;
    font-size: 11px !important; line-height: 15px !important;
    font-weight: 400 !important; white-space: nowrap !important;
  }

  body .step-summary .specificationContainer,
  body .step-summary .tierItem,
  body .step-summary .upsellItem,
  body .step-summary .basket-summary-container { break-inside: avoid !important; }
}
