/* Print styles — every page should yield 1–3 pages on Letter, not 12.
   - Hide nav, header, footer, filter UI, action buttons, tabs.
   - Expand main content to full page width.
   - Keep tables readable; avoid orphan rows.
   - Print colors only where they carry meaning (badges, headers). */
@media print {
  @page { size: letter; margin: 0.55in 0.65in; }

  body { background: white; font-size: 11pt; color: black; line-height: 1.35; }
  body, main, .container { width: 100% !important; max-width: 100% !important;
    margin: 0 !important; padding: 0 !important; }

  .site-header, .site-nav, .site-footer,
  .skip-link, .header-search, .lang-toggle, .header-pills, .currency-toggle,
  .btn, .btn-row, .btn-ghost, .filters, .tabs, [data-print-hide],
  .modal-backdrop, .scenario-decisions,
  #print-btn, #print-catalogue-btn, #why-rate,
  iframe { display: none !important; }

  /* Headings tighter on print */
  .page-title { font-size: 20pt; color: black; margin: 0 0 4pt; letter-spacing: -0.2pt; }
  .page-intro { font-size: 10.5pt; color: #333; margin: 0 0 12pt; font-style: italic; }
  .section-title {
    font-size: 9pt; letter-spacing: 0.18em; margin: 16pt 0 6pt;
    border-bottom: 0.5pt solid #999; padding-bottom: 2pt;
    color: black;
  }
  .section-title::after { display: none; }

  /* Cards collapse cleanly on paper, never split across pages */
  .card, .stat-card, .scenario-card, .doc-card, .callout, .empty-state {
    border-color: #ccc !important; box-shadow: none !important; page-break-inside: avoid;
  }
  .stat-card { border-left-width: 2pt !important; }

  /* Grids collapse so cards stack vertically — easier to scan in print */
  .grid-stats, .grid-cards, .doc-pane-grid, .plan-grid {
    display: block !important;
  }
  .grid-stats > *, .grid-cards > *, .doc-pane-grid > * {
    margin-bottom: 10pt;
    break-inside: avoid;
  }

  /* Budget scenarios: stay in a 2-column grid on paper so all four cards
     fit on roughly 2 Letter pages instead of stacking to 5. */
  .budget-scenarios {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8pt 12pt !important;
    margin-top: 0 !important;
  }
  .budget-scenarios > * { break-inside: avoid; margin-bottom: 0; }

  /* Scenario cards: drop the floating badge (positioned over card), keep
     the left border as a printable accent; tighten typography. */
  .scenario-card { margin-top: 0 !important; padding: 8pt 10pt !important; }
  .scenario-card.recommended, .scenario-card.architect {
    border-left-width: 2pt !important;
    padding-left: 9pt !important;
  }
  .scenario-card::before { display: none !important; }
  .scenario-card .scenario-name { font-size: 11pt; margin: 0 0 6pt; }
  .scenario-card .eq-row { font-size: 7.5pt; line-height: 1.2; padding: 0 0 0 4pt; }
  .scenario-card .eq-row-empty { display: none; }
  .scenario-card .eq-section-head { font-size: 7pt; margin-top: 3pt; padding-top: 2pt; letter-spacing: 0.1em; }
  .scenario-card .scenario-total { font-size: 12pt; margin-top: 4pt; }
  .scenario-card .scenario-total-usd { font-size: 8pt; margin-top: 1pt; }
  .scenario-card .scenario-decisions { display: none !important; }

  /* Tables: shrink, allow page breaks between rows but not inside rows;
     repeat header on each page */
  .table-wrap { overflow: visible !important; border: none !important; }
  table.data { font-size: 9pt; page-break-inside: auto; }
  table.data thead { display: table-header-group; }
  table.data tr { page-break-inside: avoid; }
  table.data th {
    background: #eee !important; color: #000 !important;
    border-bottom: 1pt solid #000 !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
    position: static !important;
    padding: 4pt 6pt;
    font-size: 7.5pt; letter-spacing: 0.12em;
  }
  table.data td { padding: 3pt 6pt; font-size: 9pt; line-height: 1.3; vertical-align: top; }
  table.data tr.total td { border-top: 1pt solid #000; border-bottom: 1.5pt solid #000; background: white !important; }

  /* Links: don't append URL for in-page or javascript anchors; do append
     for external/data refs so the printed page is self-contained */
  a { text-decoration: none; color: black; }
  a[href^="http"]:after, a[href^="./"]:after { content: ""; }
  a[href^="#"]:after, a[href^="javascript:"]:after, a[href^="mailto:"]:after { content: ""; }

  /* Badges become outline-only */
  .badge {
    border: 0.5pt solid #999 !important;
    background: white !important;
    color: black !important;
    padding: 0 4pt; font-size: 7.5pt;
  }

  /* Suppliers: keep wa-glyph hidden in print, phone is just text */
  .wa-glyph { display: none !important; }
  .phone-link { text-decoration: none; color: black; }

  /* Plans page: hide the side panel; show image full width */
  .floor-plan-wrap { border: none !important; padding: 0 !important; }

  /* Doc page: hide the PDF iframe (already in iframe rule above) but keep
     the right-pane content visible. Drop the two-pane grid. */
  .pdf-frame { display: none !important; }

  /* Tax page: show the tables full width */
  #tax-totals { font-size: 11pt; margin-bottom: 12pt; }
}
