/* Named page rule — must be outside @media print */ @page slide-page { size: A4 landscape; margin: 0; } @media screen { body { background: #d1d5db; } } @media print { @page { size: A4 landscape; margin: 0; } html, body { margin: 0 !important; padding: 0 !important; -webkit-print-color-adjust: exact; -moz-print-color-adjust: exact; print-color-adjust: exact; } * { -moz-print-color-adjust: exact; print-color-adjust: exact; } .no-print { display: none !important; } .print-deck-wrapper { padding: 0 !important; margin: 0 !important; display: block !important; } /* * Block wrapper owns the page break. * - `page: slide-page` assigns each wrapper its own named page type, * which forces Firefox/Chrome to start a new physical page per element. * - break-before/page-break-before are belt-and-suspenders for older engines. * - We use break-before (not break-after) to avoid a blank trailing page. */ .print-page-break + .print-page-break { page: slide-page; display: block !important; break-before: page !important; page-break-before: always !important; margin: 0 !important; padding: 0 !important; } .print-page-break:first-child { page: slide-page; display: block !important; margin: 0 !important; padding: 0 !important; } /* Flex layout inside each slide — no break properties here */ .print-page { width: 297mm !important; height: 210mm !important; display: flex !important; flex-direction: column !important; overflow: visible !important; margin: 0 !important; box-shadow: none !important; } }