/* ============================================================================
   Print rules. Loaded from the layout with media="print", so every page in the
   site prints sensibly - public pages, the enquiry list and the reports.
   ========================================================================= */

@page {
    size: A4;
    margin: 14mm 12mm 16mm;
}

body {
    background: #fff !important;
    color: #000;
    font-size: 10.5pt;
    line-height: 1.42;
}

/* Chrome and Edge drop backgrounds by default; ask for them so headers stay legible. */
* { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

/* Screen furniture that means nothing on paper */
.site-header,
.site-footer,
.nav-toggle,
.main-nav,
.skip-link,
.toast-stack,
.modal-backdrop,
.admin-sidebar,
.admin-topbar,
.admin-tabs,
.btn,
.btn-row,
.no-print,
.dp-toggle,
.dp-panel,
.table-tools,
.cta-strip,
.hero-badges,
form .field-error {
    display: none !important;
}

.container, .container-narrow { max-width: none; padding: 0; }
.section, .section-tight { padding-block: 0 8mm; }

/* A dark banner wastes a cartridge and reads worse than plain type. */
.hero, .page-banner, .section-ink {
    background: none !important;
    color: #000 !important;
    padding-block: 0 6mm !important;
    min-height: 0 !important;
}
.hero h1, .page-banner h1, .section-ink h2, .section-ink h3,
.hero-lede, .page-banner p { color: #000 !important; }

h1 { font-size: 19pt; }
h2 { font-size: 15pt; }
h3 { font-size: 12.5pt; }
h1, h2, h3, h4 { break-after: avoid; page-break-after: avoid; }

/* The letterhead only exists on paper */
.print-letterhead { display: block !important; }
.print-only { display: block !important; }
.screen-only { display: none !important; }

.print-letterhead {
    border-bottom: 2px solid #000;
    padding-bottom: 4mm;
    margin-bottom: 6mm;
}
.print-letterhead .pl-company { font-size: 15pt; font-weight: 800; }
.print-letterhead .pl-meta { font-size: 9.5pt; color: #333; }
.print-letterhead .pl-report { font-size: 12.5pt; font-weight: 700; margin-top: 2mm; }

/* Tables: the heading row repeats on every page. */
.table-scroll {
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    max-height: none !important;
}
table.data, table.spec { width: 100% !important; font-size: 9.5pt; }
table.data thead { display: table-header-group; }
table.data tfoot { display: table-footer-group; }
table.data thead th {
    position: static !important;
    background: #E4E9EE !important;
    color: #000 !important;
    box-shadow: none !important;
    border-bottom: 1px solid #000;
}
table.data th, table.data td { border-left: 1px solid #B8C1CA; }
table.data th:first-child, table.data td:first-child { border-left: 0; }
table.data tbody td { border-top: 1px solid #D5DCE3; }
table.data tbody td:nth-child(even) { background: #F4F6F8 !important; }
table.data tbody tr { break-inside: avoid; page-break-inside: avoid; }
table.data tbody tr:hover td { background: transparent !important; }

/* Totals: subtotal rule and a double rule under the grand total. */
tr.subtotal td { border-top: 1px solid #000; font-weight: 700; background: #F0F3F6 !important; }
tr.grand-total td {
    border-top: 1.5px solid #000;
    border-bottom: 3px double #000;
    font-weight: 800;
    background: #E4E9EE !important;
}

.card, .feature, .price-panel, .banner {
    border: 1px solid #B8C1CA !important;
    box-shadow: none !important;
    break-inside: avoid; page-break-inside: avoid;
}
.card:hover, .feature:hover { box-shadow: none !important; }
.card-media { background: none !important; height: auto !important; }

.grid-2, .grid-3, .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

/* Anything typed on screen has to appear on the printed copy - a textarea's
   value does not print, so the server also renders it as text for print. */
textarea, .input, .select {
    border: 1px solid #B8C1CA !important;
    background: none !important;
}

a { color: #000; text-decoration: none; }
/* Spell out where a link went, since a reader on paper cannot click it. */
main a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 8.5pt; color: #444; }
main a[href^="/"]::after,
main a[href^="mailto:"]::after,
main a[href^="tel:"]::after { content: ""; }

img { max-width: 100% !important; break-inside: avoid; }
