/*
 * Print styles.
 *
 * Three jobs: a boarding pass that prints as a keepsake, a packing checklist a parent
 * can tick with a pen, and travel guides that read properly on paper.
 */

@page {
	margin: 14mm;
}

/*
 * v4 is a dark theme, so print has one extra job the light themes did not need:
 * every gilded hairline, glow and clipped-gradient heading has to be flattened to
 * black on white, or the page prints as a grey smear or as nothing at all.
 */
body {
	background: #fff !important;
	background-image: none !important;
	color: #000 !important;
	font-size: 11pt;
	line-height: 1.5;
}

.airmail-stripe,
.announcement,
.snow-edge,
.lantern,
.sparkle,
.seal,
.corner,
.gild-rule,
.flourish,
.masthead,
.menu-toggle,
.site-footer,
.postbox-cta,
.related,
.delivery-strip,
.trust-strip,
.reading-progress,
.article-toc,
.inline-reveal,
.demo,
.ladder,
.skip-link,
.media-frame__play,
.video-theatre,
.breadcrumbs,
.snow,
.checklist__note {
	display: none !important;
}

.hero,
.article-hero {
	padding: 0 0 8mm !important;
	background: none !important;
	border-bottom: 1pt solid #000;
}

.hero::before,
.hero::after,
.article-hero::before,
.article-hero::after {
	display: none !important;
}

.hero h1,
.article-hero h1,
h1, h2, h3 {
	color: #000 !important;
}

.section,
.guide-section {
	padding: 6mm 0 !important;
	background: none !important;
	border: 0 !important;
}

.section--night,
.section--pine,
.section--kraft,
.guide-section--kraft,
.verdict,
.key-facts {
	background: none !important;
	color: #000 !important;
	border: 1pt solid #999 !important;
}

.section--night p,
.section--pine p,
.verdict p {
	color: #000 !important;
}

.article-layout {
	display: block !important;
	padding: 0 !important;
}

.article-body {
	max-width: none !important;
	font-size: 11pt !important;
}

.article-body h2,
.article-body h3,
.guide-section h2 {
	page-break-after: avoid;
	break-after: avoid;
}

.article-body p,
.article-body li,
.paper,
.card,
.idea,
.glance__row,
.checklist__group,
.band {
	page-break-inside: avoid;
	break-inside: avoid;
}

.paper,
.card {
	box-shadow: none !important;
	border: 1pt solid #999 !important;
	filter: none !important;
}

.ledger {
	box-shadow: none !important;
}

.ledger thead th {
	background: #eee !important;
	color: #000 !important;
	-webkit-print-color-adjust: exact;
	print-color-adjust: exact;
}

a {
	color: #000 !important;
	text-decoration: underline;
}

.article-body a[href^="http"]::after {
	content: " (" attr(href) ")";
	font-size: 9pt;
	word-break: break-all;
}

/* The packing checklist prints as a tick-box list, two columns on paper. */
.checklist {
	display: block !important;
	column-count: 2;
	column-gap: 10mm;
}

.checklist__group {
	break-inside: avoid;
	margin-bottom: 6mm;
}

.checklist__group input[type="checkbox"] {
	appearance: none;
	-webkit-appearance: none;
	width: 3.5mm;
	height: 3.5mm;
	border: 1pt solid #000;
	display: inline-block;
}

.checklist__group input:checked + label {
	text-decoration: none !important;
	color: #000 !important;
}

/* Ticket printing: everything except the pass itself is hidden. */
body.ticket-printing * {
	visibility: hidden !important;
}

body.ticket-printing #lapland-ticket,
body.ticket-printing #lapland-ticket * {
	visibility: visible !important;
}

body.ticket-printing #lapland-ticket {
	position: absolute !important;
	inset: 0 auto auto 0;
	width: 170mm;
	min-height: 80mm;
	margin: 0;
	padding: 12mm;
	border: 1.5pt solid #14452f !important;
	background: #fff !important;
	color: #221b14 !important;
	box-shadow: none !important;
	display: grid;
	gap: 8mm;
	print-color-adjust: exact;
	-webkit-print-color-adjust: exact;
}

body.ticket-printing .ticket__route {
	color: #8c1420 !important;
}

body.ticket-printing .ticket__name {
	color: #14452f !important;
	font-size: 30pt;
}


/* Flatten the v4 ornament layer for paper. */
body::before,
body::after {
	display: none !important;
}

.wordmark__name,
.site-footer__mark,
.hero h1 em,
.hero h1 strong,
.article-hero h1 em,
.article-hero h1 strong {
	background-image: none !important;
	-webkit-text-fill-color: #000 !important;
	color: #000 !important;
}

.media-frame,
.video-showcase__frame,
.paper,
.card,
.stamp-card,
.ticket {
	transform: none !important;
	background: #fff !important;
	box-shadow: none !important;
	border: 1px solid #000 !important;
}
