/* ==========================================================================
   PRINT
   ==========================================================================
   Loaded with media="print" (inc/enqueue.php), so none of this costs anything
   on screen.
   ========================================================================== */

@page {
	margin: 15mm;
}

* {
	background: transparent !important;
	color: #000 !important;
	box-shadow: none !important;
	text-shadow: none !important;
}

body {
	font-size: 11pt;
	line-height: 1.45;
}

/* Interface, not content. `.carousel__controls` itself stays visible — it
   carries the project title and slide caption. Only the dots and every
   `.carousel__btn` (prev, next, pause) inside it are hidden. */
.site-header,
.site-footer,
.skip-link,
.back-to-top,
.cmplz-cookiebanner,
.nav-toggle,
.primary-nav,
.site-search,
.search-form,
.project-filter,
.project-nav,
.carousel__dots,
.carousel__btn,
.staff-card__more,
#site-loader {
	display: none !important;
}

/* Never print a hidden slide, and never crop the one that does print. */
.carousel__slide:not(.is-active) {
	display: none !important;
}

.carousel__img {
	object-fit: contain !important;
	max-height: 120mm;
}

/* Reveals must never leave printed content invisible.

   Not scoped to `.js`: AOS's own CSS sets `opacity: 0` unconditionally, and a
   print job can be fired before AOS has revealed anything below the fold —
   which would print a page of blank space where the content should be. */
[data-aos] {
	opacity: 1 !important;
	transform: none !important;
	transition: none !important;
}

/* Spell out link destinations, but not for internal anchors or javascript. */
.prose a[href^="http"]::after {
	content: " (" attr(href) ")";
	font-size: 9pt;
	word-break: break-all;
}

h1,
h2,
h3,
h4 {
	break-after: avoid;
	page-break-after: avoid;
}

img,
figure,
.project-details,
blockquote {
	break-inside: avoid;
	page-break-inside: avoid;
}

.project-single__columns,
.staff-dialog__columns {
	display: block;
}

.staff-grid,
.project-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 4mm;
}
