/* Printable guide or document, laid out like the Hosting Filter price quote (template "clean").
   Only this page loads these rules. Columns are tables, sizes are mm, so the sheet is a page and not a screen.
   The bands on every printed page and the colours are written inline by Pdf::render_document(). */

@font-face { font-family: "S24 Assistant"; src: url("fonts/pdf-assistant-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: block; }
@font-face { font-family: "S24 Assistant"; src: url("fonts/pdf-assistant-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: block; }
@font-face { font-family: "S24 Assistant"; src: url("fonts/pdf-assistant-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: block; }
@font-face { font-family: "S24 Heebo"; src: url("fonts/pdf-heebo-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: block; }
@font-face { font-family: "S24 Heebo"; src: url("fonts/pdf-heebo-800.woff2") format("woff2"); font-weight: 800; font-style: normal; font-display: block; }

@page { size: A4; }

html:has(body.s24docs-pdf) { margin: 0 !important; padding: 0 !important; font-family: "S24 Assistant", Arial, sans-serif; }
body.s24docs-pdf {
    --pdf-accent: #0f5bd7;
    --pdf-ink: #11161d;
    --pdf-tint: #f6f8fb;
    --pdf-muted: #6b7480;
    --pdf-soft: #4b5563;
    --pdf-line: #e2e6ec;
    --pdf-hair: #eef1f5;
    --pdf-heading: "S24 Heebo", "S24 Assistant", Arial, sans-serif;
    margin: 0;
    padding: 0;
    color: var(--pdf-ink);
    background: #fff;
    font-family: "S24 Assistant", Arial, sans-serif;
    font-size: 10pt;
    line-height: 1.6;
    text-align: start;
    -webkit-font-smoothing: antialiased;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}
.s24docs-pdf *, .s24docs-pdf *::before, .s24docs-pdf *::after { box-sizing: border-box; }
.s24docs-pdf [hidden] { display: none !important; }
.s24docs-pdf table[role="presentation"] { width: 100%; border-collapse: collapse; table-layout: fixed; margin: 0; border: 0; background: transparent; }
.s24docs-pdf table[role="presentation"] td { border: 0; padding: 0; background: transparent; vertical-align: top; }
.s24docs-pdf__ltr { direction: ltr; unicode-bidi: embed; font-variant-numeric: tabular-nums; }

/* ---------- Sheet ---------- */
.s24docs-pdf__sheet { position: relative; width: 210mm; min-height: 297mm; margin: 0 auto; padding: 18mm 15mm 14mm; background: #fff; }

/* ---------- Heading: logo or name, and the kind of document ---------- */
.s24docs-pdf__head { padding-bottom: 5mm; margin-bottom: 5mm; border-bottom: 2px solid var(--pdf-ink); }
.s24docs-pdf__brand { vertical-align: middle !important; text-align: start; }
.s24docs-pdf__kind { vertical-align: middle !important; text-align: end; width: 45%; }
.s24docs-pdf img.s24docs-pdf__logo { display: block; width: auto; height: auto; max-height: 18mm; max-width: 70mm; object-fit: contain; }
.s24docs-pdf__brand-name { font-family: var(--pdf-heading); font-weight: 800; font-size: 17pt; letter-spacing: -0.01em; }
.s24docs-pdf__kicker { display: block; font-size: 8.5pt; letter-spacing: 0.08em; color: var(--pdf-muted); }
.s24docs-pdf__topic { display: block; font-family: var(--pdf-heading); font-weight: 800; font-size: 15pt; line-height: 1.25; }

/* ---------- Row of details ---------- */
.s24docs-pdf__meta { margin-bottom: 5.5mm; padding: 3.2mm 0; border-bottom: 1px solid var(--pdf-line); }
.s24docs-pdf__meta td { padding-inline-end: 4mm !important; }
.s24docs-pdf__label { display: block; font-size: 8pt; letter-spacing: 0.08em; color: var(--pdf-muted); margin-bottom: 0.6mm; }
.s24docs-pdf__value { display: block; font-weight: 700; font-size: 10pt; }
.s24docs-pdf__value time { display: inline-block; direction: ltr; unicode-bidi: isolate; font-variant-numeric: tabular-nums; }

/* ---------- Title ---------- */
.s24docs-pdf__heading { margin-bottom: 6mm; }
.s24docs-pdf .s24docs-pdf__title, .s24docs-pdf__content h1 { margin: 0 0 1.5mm; font-family: var(--pdf-heading); font-weight: 800; font-size: 22pt; line-height: 1.15; letter-spacing: -0.015em; color: var(--pdf-ink); overflow-wrap: anywhere; unicode-bidi: plaintext; }
.s24docs-pdf__lead { margin: 0; color: var(--pdf-soft); font-size: 10.5pt; }

/* ---------- Content ---------- */
.s24docs-pdf__content { font-size: 10pt; line-height: 1.65; overflow-wrap: anywhere; text-align: start; color: var(--pdf-ink); }
.s24docs-pdf__content :where(p, ul, ol, dl, blockquote, table, figure, pre) { margin-block: 0 3mm; }
.s24docs-pdf__content :where(h2, h3, h4, h5, h6) { font-family: var(--pdf-heading); font-weight: 700; line-height: 1.35; break-after: avoid; page-break-after: avoid; }
.s24docs-pdf__content h2 { margin: 6mm 0 2.4mm; font-size: 12pt; letter-spacing: 0.02em; color: var(--pdf-accent); }
.s24docs-pdf__content h3 { margin: 4.5mm 0 1.8mm; font-size: 10.5pt; color: var(--pdf-ink); }
.s24docs-pdf__content :where(h4, h5, h6) { margin: 4mm 0 1.5mm; font-size: 10pt; color: var(--pdf-ink); }
.s24docs-pdf__content > :first-child { margin-top: 0; }
.s24docs-pdf__content :where(p, li) { orphans: 3; widows: 3; }
.s24docs-pdf__content :where(ul, ol) { padding-inline-start: 6mm; }
.s24docs-pdf__content li { margin-block: 1.2mm; padding-inline-start: 1mm; }
.s24docs-pdf__content li::marker { color: var(--pdf-muted); font-weight: 700; }
.s24docs-pdf__content :where(strong, b) { font-weight: 700; }
.s24docs-pdf__content code { font-family: Consolas, "Courier New", monospace; font-size: 8.8pt; padding: 0.2mm 1.2mm; border-radius: 3px; background: var(--pdf-hair); direction: ltr; unicode-bidi: embed; }
.s24docs-pdf__content pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 8.8pt; padding: 3mm 4mm; background: var(--pdf-tint); direction: ltr; text-align: left; border-radius: 3px; }
.s24docs-pdf__content pre code { padding: 0; background: transparent; }
.s24docs-pdf__content blockquote { margin-inline: 0; padding: 2.4mm 4mm; background: var(--pdf-tint); border-inline-start: 2.5px solid var(--pdf-accent); font-style: normal; }
/* Tips and notes from the guides, like the validity box of the quote. */
.s24docs-pdf__content :is(.s24kb-note, .s24kb__note) { margin-block: 0 3mm; padding: 2.4mm 4mm; background: var(--pdf-tint); border-inline-start: 2.5px solid var(--pdf-accent); break-inside: avoid; page-break-inside: avoid; }
.s24docs-pdf__content .s24kb-note--warn { background: #fdf6ee; border-inline-start-color: #b4532a; }
.s24docs-pdf__content a { color: var(--pdf-ink); text-decoration: none; border-bottom: 1px solid var(--pdf-accent); overflow-wrap: anywhere; }
.s24docs-pdf__content :where(img, svg, video) { max-width: 100% !important; height: auto; }
.s24docs-pdf__content img { object-fit: contain; }
.s24docs-pdf__content figure { max-width: 100%; margin-inline: 0; }
.s24docs-pdf__content table { width: 100% !important; max-width: 100% !important; min-width: 0 !important; border-collapse: collapse; table-layout: fixed; font-size: 9pt; line-height: 1.5; }
.s24docs-pdf__content th { font-size: 8.5pt; letter-spacing: 0.06em; color: var(--pdf-muted); font-weight: 600; text-align: start; padding: 0 2mm 2mm 0; border-bottom: 1.5px solid var(--pdf-ink); }
.s24docs-pdf__content td { width: auto !important; min-width: 0 !important; padding: 2mm 2mm 2mm 0; border-bottom: 1px solid var(--pdf-hair); text-align: start; vertical-align: top; white-space: normal !important; overflow-wrap: anywhere; }
.s24docs-pdf__content details { margin-bottom: 3mm; }
.s24docs-pdf__content summary { font-weight: 700; }

/* ---------- Small print, the original, and the company ---------- */
.s24docs-pdf__disclaimer { margin: 7mm 0 0; padding-top: 2.5mm; border-top: 1px solid var(--pdf-hair); font-size: 7.5pt; line-height: 1.5; color: var(--pdf-muted); break-inside: avoid; page-break-inside: avoid; }
.s24docs-pdf__source { margin: 5mm 0 6mm; padding: 1.2mm 0; border-bottom: 1px solid var(--pdf-hair); break-inside: avoid; page-break-inside: avoid; }
.s24docs-pdf__source-label { display: inline-block; font-weight: 700; font-size: 9.5pt; border-bottom: 1px solid var(--pdf-accent); margin-inline-end: 4mm; }
.s24docs-pdf__source-url { font-size: 8.5pt; color: #8a94a1 !important; text-decoration: none; overflow-wrap: anywhere; unicode-bidi: embed; }
.s24docs-pdf__foot { padding-top: 3mm; border-top: 1px solid var(--pdf-line); font-size: 9pt; line-height: 1.5; color: var(--pdf-muted); break-inside: avoid; page-break-inside: avoid; }
.s24docs-pdf__foot strong { color: var(--pdf-soft); }
.s24docs-pdf__company { text-align: start; }
.s24docs-pdf__contact { text-align: left; width: 45%; }

/* Elementor is flattened only in this export view. No saved builder data is edited. */
.s24docs-pdf__content :is(.elementor, .elementor-element, .e-con, .e-con-inner, .elementor-section, .elementor-container, .elementor-row, .elementor-column, .elementor-widget-wrap, .elementor-widget, .elementor-widget-container) {
    position: static !important; float: none !important; display: block; width: 100% !important; min-width: 0 !important; max-width: 100% !important; height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; transform: none !important; opacity: 1 !important; animation: none !important; background: transparent !important; margin: 0 !important; padding: 0 !important;
}
.s24docs-pdf__content .elementor-invisible { visibility: visible !important; }
.s24docs-pdf__content :is(.elementor-tab-content, [role="tabpanel"]) { display: block !important; height: auto !important; }

/* ---------- On screen, before saving: the page on a grey desk, and a bar to save it ---------- */
@media screen {
    body.s24docs-pdf { background: #e8ebef; padding: 18px 12px 150px; overflow-x: hidden; }
    .s24docs-pdf__stage { overflow: hidden; }
    .s24docs-pdf__zoom { width: max-content; margin-inline: auto; transform-origin: top right; }
    .s24docs-pdf[dir="ltr"] .s24docs-pdf__zoom, [dir="ltr"] .s24docs-pdf__zoom { transform-origin: top left; }
    .s24docs-pdf__sheet { box-shadow: 0 1px 2px rgba(17, 22, 29, .08), 0 24px 60px -30px rgba(17, 22, 29, .5); }
    .s24docs-pdf__bar { position: fixed; inset-inline: 0; bottom: 0; z-index: 10; padding: 12px 16px; background: #fff; border-top: 1px solid #d8dde4; text-align: center; font-size: 14px; }
    .s24docs-pdf__bar-row { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; align-items: center; }
    .s24docs-pdf button.s24docs-pdf__save, .s24docs-pdf__back { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px; border-radius: 10px; font: inherit; font-weight: 700; font-size: 15px; text-decoration: none; cursor: pointer; }
    .s24docs-pdf button.s24docs-pdf__save { color: #fff; background: var(--pdf-accent); border: 1px solid var(--pdf-accent); }
    .s24docs-pdf button.s24docs-pdf__save:disabled { cursor: wait; opacity: .55; }
    .s24docs-pdf__back { color: var(--pdf-ink); background: #fff; border: 1px solid #d8dee7; }
    .s24docs-pdf__status { margin: 0 0 8px; font-size: 13px; color: var(--pdf-muted); }
    .s24docs-pdf__status[data-state="error"] { color: #912b23; font-weight: 700; }
    .s24docs-pdf__hint { display: block; margin-top: 6px; font-size: 12px; color: var(--pdf-muted); }
    .s24docs-pdf a:focus-visible, .s24docs-pdf button:focus-visible { outline: 3px solid var(--pdf-accent); outline-offset: 3px; }
    @media (max-width: 460px) {
        .s24docs-pdf__bar-row { flex-direction: column; align-items: stretch; }
    }
}

@media print {
    html, body.s24docs-pdf { margin: 0 !important; padding: 0 !important; background: #fff !important; width: auto !important; height: auto !important; }
    .s24docs-pdf__bar { display: none !important; }
    .s24docs-pdf__stage { height: auto !important; overflow: visible !important; }
    .s24docs-pdf__zoom { width: auto !important; transform: none !important; }
    /* No full page height in print: a sheet a fraction of a millimetre too tall makes an empty last page.
       The page margins, where the bands sit, give the air at the top and the bottom. */
    .s24docs-pdf .s24docs-pdf__sheet { width: auto; min-height: 0; margin: 0; padding: 4mm 15mm 0; box-shadow: none; }
    .s24docs-pdf__content :where(figure, img, blockquote, tr) { break-inside: avoid; page-break-inside: avoid; }
    .s24docs-pdf__content img { max-height: 190mm; }
    .s24docs-pdf__content thead { display: table-header-group; }
    .s24docs-pdf__content a::after { content: none !important; }
}
