/* ==========================================================================
   Media / Press — "Sarkinen Calibrating in the Media"
   Managing Manufacturing, May 2024 cover story showcase.
   Used by the homepage band (.media-section) and the /media page.
   ========================================================================== */

/* The band keeps the red the client's existing site uses for this section
   (#da0004) so the magazine block stays recognisable, but blended into the
   navy brand color as a diagonal gradient rather than a flat red field. */

.media-section {
	--media-red: #da0004;
	position: relative;
	display: flex;
	width: 100%;
	flex-direction: column;
	align-items: center;
	justify-content: start;
	overflow: hidden;
	padding: 80px 100px 100px;
	background-color: var(--media-red);
	background-image:
		radial-gradient(1100px 520px at 50% -10%, rgba(255, 255, 255, 0.10), transparent 60%),
		radial-gradient(800px 460px at 90% 110%, rgba(0, 0, 0, 0.22), transparent 62%),
		linear-gradient(125deg, #0c2b40 0%, #123954 22%, var(--media-red) 62%, #a50510 100%);
}

/* ---------- Replica of the current site's media block ---------- */

.media-legacy {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	text-align: center;
}

.media-legacy-heading {
	color: #fff;
	font: 700 38px/44px var(--font-urbanist);
	text-align: center;
	margin: 0 0 var(--spacing-32) 0;
}

.media-legacy-tile {
	position: relative;
	display: block;
	width: 450px;
	max-width: 100%;
	aspect-ratio: 450 / 600;
	overflow: hidden;
	text-decoration: none;
	box-shadow: 0 18px 44px rgba(0, 0, 0, 0.42);
	transition: transform var(--transition-base) ease, box-shadow var(--transition-base) ease;
}

.media-legacy-tile:hover,
.media-legacy-tile:focus-visible {
	transform: scale(1.06);
	box-shadow: 12px 7px 7px -2px rgba(0, 0, 0, 0.42);
}

.media-legacy-tile img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.media-legacy-tile::after {
	content: "";
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(0, 0, 0, 0.22), rgba(0, 0, 0, 0.73));
	transition: opacity var(--transition-base) ease;
}

.media-legacy-tile:hover::after,
.media-legacy-tile:focus-visible::after {
	opacity: 0.35;
}

.media-legacy-caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 2;
	padding: 18px 20px;
	color: #fff;
	font: 600 13px/1.4 var(--font-inter);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--spacing-8);
}

.media-legacy-sub {
	margin: var(--spacing-24) 0 0 0;
	color: rgba(255, 255, 255, 0.85);
	font: 400 16px/26px var(--font-inter);
	max-width: 720px;
	text-align: center;
}

.media-divider {
	width: 100%;
	height: 1px;
	background-color: rgba(255, 255, 255, 0.22);
	margin: var(--spacing-80) 0 0 0;
}

.media-content {
	align-self: center;
	z-index: 1;
	width: 100%;
	max-width: 1240px;
}

/* ---------- Header ---------- */

.media-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-16);
	max-width: 760px;
}

.media-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-8);
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.55);
	background-color: rgba(255, 255, 255, 0.14);
	color: #fff;
	font: 600 12px/1 var(--font-inter);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.media-chip i {
	font-size: 15px;
}

.media-title {
	color: var(--color-neutral-white);
	font: 700 44px/53px var(--font-urbanist);
	margin: 0;
}

.media-title-accent {
	color: #ffe08a;
}

.media-subtitle {
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: -0.1px;
	font: 400 16px/26px var(--font-inter);
	margin: 0;
}

/* ---------- Feature block ---------- */

.media-feature {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr) 190px;
	gap: 48px;
	align-items: start;
	margin-top: var(--spacing-56);
}

/* Used where the cover already sits above in the replica block. */
.media-feature.is-nocover {
	grid-template-columns: minmax(0, 1fr) 210px;
	margin-top: var(--spacing-48);
}

.media-cover-link {
	position: relative;
	display: block;
	border-radius: var(--radius-16);
	overflow: hidden;
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.45);
	border: 1px solid rgba(255, 255, 255, 0.3);
	transition: transform var(--transition-base) ease, box-shadow var(--transition-base) ease, border-color var(--transition-base) ease;
	text-decoration: none;
	background-color: #111;
}

.media-cover-link:hover,
.media-cover-link:focus-visible {
	transform: translateY(-6px);
	box-shadow: 0 30px 70px rgba(0, 0, 0, 0.55);
	border-color: rgba(255, 255, 255, 0.85);
}

.media-cover {
	display: block;
	width: 100%;
	height: auto;
}

.media-cover-badge {
	position: absolute;
	top: 14px;
	left: 14px;
	padding: 6px 12px;
	border-radius: var(--radius-6);
	background-color: #fff;
	color: var(--media-red, #da0004);
	font: 700 11px/1 var(--font-inter);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.media-feature-body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-20);
	min-width: 0;
}

.media-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-10);
	color: rgba(255, 255, 255, 0.8);
	font: 600 12px/1.4 var(--font-inter);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.media-meta-dot {
	width: 4px;
	height: 4px;
	border-radius: 50%;
	background-color: rgba(255, 255, 255, 0.75);
	flex-shrink: 0;
}

.media-article-title {
	color: var(--color-neutral-white);
	font: 700 34px/42px var(--font-urbanist);
	margin: 0;
}

.media-byline {
	color: rgba(255, 255, 255, 0.78);
	font: 400 14px/20px var(--font-inter);
	font-style: italic;
}

.media-pullquote {
	position: relative;
	margin: 0;
	padding: 24px 28px;
	border-left: 3px solid #fff;
	border-radius: 0 var(--radius-12) var(--radius-12) 0;
	background-color: rgba(0, 0, 0, 0.22);
}

.media-pullquote p {
	color: var(--color-neutral-white);
	font: 600 21px/32px var(--font-urbanist);
	margin: 0;
}

.media-pullquote cite {
	display: block;
	margin-top: var(--spacing-12);
	color: rgba(255, 255, 255, 0.85);
	font: 600 13px/1.4 var(--font-inter);
	font-style: normal;
	letter-spacing: 0.04em;
}

.media-excerpt {
	color: rgba(255, 255, 255, 0.88);
	letter-spacing: -0.1px;
	font: 400 16px/27px var(--font-inter);
	margin: 0;
}

.media-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--spacing-16);
	margin-top: var(--spacing-4);
}

.media-btn-primary,
.media-btn-secondary {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-8);
	padding: 14px 26px;
	border-radius: var(--radius-8);
	font: 600 15px/1 var(--font-inter);
	text-decoration: none;
	transition: all var(--transition-base) ease;
	cursor: pointer;
}

.media-btn-primary {
	background-color: #fff;
	color: var(--media-red, #da0004);
	border: 1px solid #fff;
}

.media-btn-primary:hover,
.media-btn-primary:focus-visible {
	background-color: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-neutral-black);
	transform: translateY(-2px);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.3);
}

.media-btn-secondary {
	background-color: transparent;
	color: var(--color-neutral-white);
	border: 1px solid rgba(255, 255, 255, 0.6);
}

.media-btn-secondary:hover,
.media-btn-secondary:focus-visible {
	background-color: rgba(255, 255, 255, 0.14);
	border-color: #fff;
	color: #fff;
	transform: translateY(-2px);
}

.media-award {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-12);
	padding: 22px 18px 18px;
	border-radius: var(--radius-16);
	border: 1px solid rgba(255, 255, 255, 0.5);
	background-color: #fbfbfc;
	text-align: center;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.4);
}

.media-award img {
	width: 100%;
	max-width: 150px;
	height: auto;
	display: block;
}

.media-award-label {
	color: var(--color-neutral-800);
	font: 700 11px/16px var(--font-inter);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* ---------- Page snippets ---------- */

.media-spreads {
	margin-top: var(--spacing-80);
	padding-top: var(--spacing-48);
	border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.media-spreads-title {
	color: var(--color-neutral-white);
	font: 700 26px/34px var(--font-urbanist);
	margin: 0 0 var(--spacing-8) 0;
}

.media-spreads-note {
	color: rgba(255, 255, 255, 0.8);
	font: 400 14px/22px var(--font-inter);
	margin: 0 0 var(--spacing-40) 0;
}

.media-spread-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
}

.media-video-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
}

.media-video-tile {
	width: 640px;
	aspect-ratio: 16 / 9;
	margin: 0 auto;
}

.media-video-play {
	position: absolute;
	top: 50%;
	left: 50%;
	z-index: 3;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 76px;
	height: 76px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.92);
	color: var(--media-red);
	font-size: 28px;
	padding-left: 4px;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
	transition: transform var(--transition-base) ease;
}

.media-video-tile:hover .media-video-play,
.media-video-tile:focus-visible .media-video-play {
	transform: translate(-50%, -50%) scale(1.08);
}

@media (max-width: 720px) {
	.media-video-tile {
		width: 100%;
	}
}

.media-spread-card {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-16);
	padding: 0;
	background: none;
	border: 0;
	text-align: left;
	font-family: var(--font-inter);
	cursor: pointer;
	color: inherit;
}

.media-spread-thumb {
	position: relative;
	display: block;
	width: 100%;
	border-radius: var(--radius-12);
	overflow: hidden;
	border: 1px solid rgba(255, 255, 255, 0.35);
	background-color: #fff;
	transition: transform var(--transition-base) ease, border-color var(--transition-base) ease, box-shadow var(--transition-base) ease;
}

.media-spread-card:hover .media-spread-thumb,
.media-spread-card:focus-visible .media-spread-thumb {
	transform: translateY(-5px);
	border-color: #fff;
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.45);
}

.media-spread-thumb img {
	display: block;
	width: 100%;
	height: auto;
}

.media-spread-zoom {
	position: absolute;
	right: 10px;
	bottom: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background-color: #fff;
	color: var(--media-red, #da0004);
	font-size: 16px;
	opacity: 0;
	transition: opacity var(--transition-base) ease;
}

.media-spread-card:hover .media-spread-zoom,
.media-spread-card:focus-visible .media-spread-zoom {
	opacity: 1;
}

.media-spread-page {
	color: #fff;
	font: 700 11px/1 var(--font-inter);
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.media-spread-snippet {
	color: rgba(255, 255, 255, 0.88);
	font: 400 14px/22px var(--font-inter);
	margin: var(--spacing-8) 0 0 0;
}

/* ---------- Lightbox ---------- */

.media-lightbox {
	position: fixed;
	inset: 0;
	z-index: 2000;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 40px 24px;
	background-color: rgba(6, 6, 6, 0.94);
	backdrop-filter: blur(6px);
}

.media-lightbox.is-open {
	display: flex;
}

.media-lightbox-figure {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--spacing-12);
	width: 100%;
	max-width: 100%;
	height: 100%;
	margin: 0;
}

/* The stage clips the page while it is zoomed and panned. */
.media-lightbox-stage {
	position: relative;
	flex: 1 1 auto;
	width: 100%;
	min-height: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	touch-action: none;
	cursor: zoom-in;
}

.media-lightbox-stage.is-zoomed {
	cursor: grab;
}

.media-lightbox-stage.is-zoomed:active {
	cursor: grabbing;
}

.media-lightbox-img {
	max-width: min(820px, 100%);
	max-height: 100%;
	width: auto;
	height: auto;
	border-radius: var(--radius-8);
	box-shadow: 0 30px 80px rgba(0, 0, 0, 0.7);
	background-color: #fff;
	transform-origin: center center;
	transition: transform 0.18s ease-out;
	will-change: transform;
	user-select: none;
	-webkit-user-drag: none;
}

.media-lightbox-stage.is-zoomed .media-lightbox-img {
	transition: none;
}

/* Zoom toolbar */

.media-zoom-bar {
	display: flex;
	align-items: center;
	gap: var(--spacing-8);
	padding: 6px 8px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.22);
	background-color: rgba(20, 20, 20, 0.9);
	flex-shrink: 0;
}

.media-zoom-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 0;
	background-color: transparent;
	color: #fff;
	font-size: 17px;
	cursor: pointer;
	transition: background-color var(--transition-base) ease, color var(--transition-base) ease;
}

.media-zoom-btn:hover:not(:disabled),
.media-zoom-btn:focus-visible:not(:disabled) {
	background-color: #fff;
	color: var(--media-red, #da0004);
}

.media-zoom-btn:disabled {
	opacity: 0.35;
	cursor: default;
}

.media-zoom-reset {
	width: auto;
	padding: 0 14px;
	border-radius: 999px;
	font: 600 12px/1 var(--font-inter);
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.media-zoom-level {
	min-width: 52px;
	text-align: center;
	color: rgba(255, 255, 255, 0.85);
	font: 600 12px/1 var(--font-inter);
	font-variant-numeric: tabular-nums;
}

.media-lightbox-caption {
	color: rgba(255, 255, 255, 0.85);
	font: 400 14px/20px var(--font-inter);
	text-align: center;
	max-width: 640px;
	flex-shrink: 0;
}

.media-lightbox-caption a {
	color: #fff;
	text-decoration: underline;
}

.media-zoom-hint {
	color: rgba(255, 255, 255, 0.5);
	font: 400 12px/18px var(--font-inter);
	text-align: center;
}

.media-lightbox-btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, 0.25);
	background-color: rgba(20, 20, 20, 0.85);
	color: #fff;
	font-size: 20px;
	cursor: pointer;
	transition: all var(--transition-base) ease;
}

.media-lightbox-btn:hover,
.media-lightbox-btn:focus-visible {
	background-color: #fff;
	border-color: #fff;
	color: var(--media-red, #da0004);
}

.media-lightbox-prev {
	left: 20px;
}

.media-lightbox-next {
	right: 20px;
}

.media-lightbox-close {
	position: absolute;
	top: 20px;
	right: 20px;
	transform: none;
}

/* ==========================================================================
   /media page only
   ========================================================================== */

.media-page-hero {
	display: flex;
	width: 100%;
	flex-direction: column;
	align-items: center;
	padding: 140px 100px 70px;
	background-color: #da0004;
	background-image:
		radial-gradient(1000px 520px at 20% -10%, rgba(255, 255, 255, 0.12), transparent 62%),
		radial-gradient(800px 460px at 92% 110%, rgba(0, 0, 0, 0.20), transparent 62%);
}

.media-page-hero-content {
	width: 100%;
	max-width: 1240px;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-20);
}

.media-page-hero h1 {
	color: var(--color-neutral-white);
	font: 700 54px/62px var(--font-urbanist);
	margin: 0;
	max-width: 900px;
}

.media-page-hero p {
	color: rgba(255, 255, 255, 0.9);
	font: 400 18px/29px var(--font-inter);
	margin: 0;
	max-width: 780px;
}

.media-page-hero .media-section {
	padding: 0;
}

/* Light band used on the /media page for quotes and context */

.media-light-section {
	display: flex;
	width: 100%;
	flex-direction: column;
	align-items: center;
	padding: 100px;
	background-color: var(--background-primary);
	border-bottom: 1px solid var(--border-light);
}

.media-light-section.is-alt {
	background-color: var(--background-secondary);
}

.media-light-content {
	width: 100%;
	max-width: 1240px;
}

.media-light-header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--spacing-16);
	max-width: 760px;
	margin-bottom: var(--spacing-56);
}

.media-light-chip {
	display: inline-flex;
	align-items: center;
	gap: var(--spacing-8);
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid var(--color-primary-dark);
	background-color: var(--color-primary-light);
	color: var(--color-primary-dark);
	font: 600 12px/1 var(--font-inter);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.media-light-title {
	color: var(--color-neutral-black);
	font: 700 40px/48px var(--font-urbanist);
	margin: 0;
}

.media-light-sub {
	color: var(--color-neutral-700);
	font: 400 16px/26px var(--font-inter);
	margin: 0;
}

/* Quote cards from the article */

.media-quote-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
	gap: 24px;
}

.media-quote-card {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: var(--spacing-32);
	padding: 32px;
	border-radius: var(--radius-24);
	border: 1.5px solid var(--border-light);
	background-color: var(--color-neutral-white);
	box-shadow: 0px 2px 4px 0px rgba(27, 28, 29, 0.04);
	transition: transform var(--transition-base) ease, box-shadow var(--transition-base) ease, border-color var(--transition-base) ease;
}

.media-quote-card:hover {
	transform: translateY(-4px);
	border-color: var(--color-primary);
	box-shadow: var(--shadow-lg);
}

.media-quote-mark {
	color: var(--color-primary);
	font-size: 28px;
	line-height: 1;
}

.media-quote-text {
	color: var(--color-neutral-800);
	font: 400 17px/28px var(--font-inter);
	margin: var(--spacing-16) 0 0 0;
}

.media-quote-attr {
	display: flex;
	flex-direction: column;
	gap: var(--spacing-4);
	padding-top: var(--spacing-20);
	border-top: 1px solid var(--border-light);
}

.media-quote-name {
	color: var(--color-neutral-black);
	font: 600 16px/22px var(--font-inter);
	margin: 0;
}

.media-quote-role {
	color: var(--color-neutral-700);
	font: 400 13px/19px var(--font-inter);
	margin: 0;
}

.media-quote-source {
	color: var(--color-text-muted);
	font: 400 12px/18px var(--font-inter);
	margin: var(--spacing-4) 0 0 0;
	font-style: italic;
}

/* Case detail from the article */

.media-case {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
	gap: 48px;
	align-items: center;
}

.media-case-body h3 {
	color: var(--color-neutral-black);
	font: 700 30px/38px var(--font-urbanist);
	margin: 0 0 var(--spacing-20) 0;
}

.media-case-body p {
	color: var(--color-neutral-700);
	font: 400 16px/27px var(--font-inter);
	margin: 0 0 var(--spacing-16) 0;
}

.media-case-specs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 16px;
	margin-top: var(--spacing-32);
	padding: 0;
	list-style: none;
}

.media-case-specs li {
	padding: 18px 20px;
	border-radius: var(--radius-12);
	background-color: var(--color-neutral-white);
	border: 1px solid var(--border-light);
}

.media-case-spec-value {
	display: block;
	color: var(--color-neutral-black);
	font: 700 24px/30px var(--font-urbanist);
}

.media-case-spec-label {
	display: block;
	margin-top: var(--spacing-4);
	color: var(--color-neutral-700);
	font: 400 12px/18px var(--font-inter);
}

.media-case-figure {
	margin: 0;
	border-radius: var(--radius-16);
	overflow: hidden;
	border: 1px solid var(--border-light);
	background-color: var(--color-neutral-white);
	box-shadow: var(--shadow-lg);
}

.media-case-figure img {
	display: block;
	width: 100%;
	height: auto;
}

.media-case-figure figcaption {
	padding: 14px 18px;
	color: var(--color-neutral-700);
	font: 400 12px/18px var(--font-inter);
	border-top: 1px solid var(--border-light);
}

/* Attribution / rights note */

.media-rights {
	margin-top: var(--spacing-40);
	color: rgba(255, 255, 255, 0.7);
	font: 400 12px/19px var(--font-inter);
	max-width: 860px;
}

.media-rights a {
	color: #fff;
	text-decoration: underline;
}

.media-light-section .media-rights {
	color: var(--color-text-muted);
}

.media-light-section .media-rights a {
	color: var(--color-primary-dark);
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1440px) {

	.media-section,
	.media-light-section {
		padding: 100px;
	}

	.media-page-hero {
		padding: 140px 100px 80px;
	}
}

@media (max-width: 1200px) {

	.media-section,
	.media-light-section {
		padding: 80px 60px;
	}

	.media-page-hero {
		padding: 130px 60px 70px;
	}

	.media-feature {
		grid-template-columns: 290px minmax(0, 1fr);
		gap: 40px;
	}

	.media-award {
		grid-column: 1 / -1;
		flex-direction: row;
		justify-content: flex-start;
		text-align: left;
		gap: var(--spacing-20);
	}

	.media-award img {
		max-width: 90px;
	}
}

@media (max-width: 1080px) {

	.media-section,
	.media-light-section {
		padding: 80px 48px;
	}

	.media-page-hero {
		padding: 120px 48px 64px;
	}

	.media-spread-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.media-case {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}
}

@media (max-width: 860px) {
	.media-feature {
		grid-template-columns: minmax(0, 1fr);
		gap: 32px;
	}

	.media-cover-link {
		max-width: 300px;
	}

	.media-title {
		font-size: 34px;
		line-height: 42px;
	}

	.media-article-title {
		font-size: 27px;
		line-height: 35px;
	}

	.media-page-hero h1 {
		font-size: 38px;
		line-height: 46px;
	}

	.media-light-title {
		font-size: 30px;
		line-height: 38px;
	}
}

@media (max-width: 640px) {

	.media-section,
	.media-light-section {
		padding: 64px 20px;
	}

	.media-page-hero {
		padding: 110px 20px 56px;
	}

	.media-title {
		font-size: 28px;
		line-height: 36px;
	}

	.media-article-title {
		font-size: 23px;
		line-height: 31px;
	}

	.media-pullquote {
		padding: 20px;
	}

	.media-pullquote p {
		font-size: 18px;
		line-height: 28px;
	}

	.media-spreads {
		margin-top: var(--spacing-48);
		padding-top: var(--spacing-32);
	}

	.media-spread-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 28px;
	}

	.media-actions {
		width: 100%;
	}

	.media-btn-primary,
	.media-btn-secondary {
		flex: 1 1 auto;
		justify-content: center;
	}

	.media-lightbox {
		padding: 64px 12px 24px;
	}

	.media-lightbox-btn {
		width: 40px;
		height: 40px;
		font-size: 17px;
	}

	.media-lightbox-prev {
		left: 8px;
	}

	.media-lightbox-next {
		right: 8px;
	}

	.media-quote-card {
		padding: 24px;
	}
}

@media (prefers-reduced-motion: reduce) {

	.media-cover-link,
	.media-spread-thumb,
	.media-btn-primary,
	.media-btn-secondary,
	.media-quote-card {
		transition: none;
	}

	.media-cover-link:hover,
	.media-spread-card:hover .media-spread-thumb,
	.media-btn-primary:hover,
	.media-btn-secondary:hover,
	.media-quote-card:hover {
		transform: none;
	}
}
