/* stylelint-disable selector-class-pattern, no-descending-specificity -- Public component and block classes follow the approved register. */
/* stylelint-disable rule-empty-line-before -- Prettier removes leading blank lines inside nested at-rules. */

.cs-content-tier {
	min-width: 0;
}

.cs-content-tier--lead {
	display: grid;
	gap: var(--cs-space-m);
	margin-block: var(--cs-space-2xl);
	padding: clamp(1.5rem, 4vw, 3.5rem);
	border-inline-start: 0.25rem solid
		var(--cs-series-accent, var(--cs-area-accent));
	background: linear-gradient(
		135deg,
		var(--cs-color-surface-raised),
		var(--cs-color-surface)
	);
	box-shadow: var(--cs-shadow-raised);
}

.cs-content-tier--lead :where(h2, p) {
	max-width: none;
	margin: 0;
}

.cs-content-tier--card {
	padding: var(--cs-space-l);
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface);
}

.cs-content-tier--card:has(a):is(:hover, :focus-within) {
	border-color: var(--cs-series-accent, var(--cs-area-accent));
}

.cs-content-tier--compact {
	padding: var(--cs-space-m);
	border-inline-start: 0.125rem solid
		var(--cs-color-line-strong, var(--cs-color-line));
	background: color-mix(in srgb, var(--cs-color-surface) 62%, transparent);
}

/* Kicker-delimited prose: borders follow content, not the enclosing panel. */
.cs-prose.cs-content-tier--compact:has(> .is-style-cs-kicker) {
	max-width: none;
	padding-block: 0;
	padding-inline: 0;
	border-inline-start: 0;
	background: transparent;
}

.cs-prose.cs-content-tier--compact:has(> .is-style-cs-kicker) > * {
	width: 100%;
	max-width: none;
	margin-block: 0;
	padding-block: var(--cs-space-m) 0;
	padding-inline: var(--cs-space-m);
	border-inline-start: 0.125rem solid
		var(--cs-color-line-strong, var(--cs-color-line));
	background: color-mix(in srgb, var(--cs-color-surface) 62%, transparent);
}

.cs-site .cs-prose.cs-content-tier--compact > p.is-style-cs-kicker {
	margin-block: clamp(2.5rem, 5vw, 3.5rem) 0;
	padding-block: 0;
}

.cs-site .cs-prose.cs-content-tier--compact > p.is-style-cs-kicker:first-child {
	margin-block-start: 0;
}

.cs-prose.cs-content-tier--compact:has(> .is-style-cs-kicker) > :is(ul, ol) {
	padding-inline-start: calc(var(--cs-space-m) + 1.5em);
}

.cs-prose :is(ul, ol) > li + li {
	margin-block-start: 0.65em;
}

.cs-prose li > strong {
	margin-inline: 0.4em;
}

.cs-wordmark {
	font-family: var(--cs-font-display);
	font-weight: 600;
	letter-spacing: 0.035em;
}

.cs-wordmark--tactical {
	--cs-wordmark-roof: var(--cs-brand-tactical-roof);
	--cs-wordmark-dot: var(--cs-brand-tactical-dot);
	--cs-wordmark-area: var(--cs-brand-tactical-area);
}

.cs-wordmark--competition {
	--cs-wordmark-roof: var(--cs-brand-competition-roof);
	--cs-wordmark-dot: var(--cs-brand-competition-dot);
	--cs-wordmark-area: var(--cs-brand-competition-area);
}

.cs-wordmark--resilience {
	--cs-wordmark-roof: var(--cs-brand-resilience-roof);
	--cs-wordmark-dot: var(--cs-brand-resilience-dot);
	--cs-wordmark-area: var(--cs-brand-resilience-area);
}

.cs-wordmark__roof {
	color: var(--cs-wordmark-roof);
}

.cs-wordmark__suffix {
	white-space: nowrap;
}

.cs-wordmark__dot {
	color: var(--cs-wordmark-dot);
}

.cs-wordmark__area {
	color: var(--cs-wordmark-area);
}

.cs-wordmark--competition .cs-wordmark__area {
	font-weight: 500;
}

a.cs-content-tier--compact {
	color: var(--cs-color-text);
	text-decoration-thickness: 0.0625rem;
	text-underline-offset: 0.2em;
}

.cs-content-tier--list {
	padding-block: var(--cs-space-l);
	border-block: 1px solid var(--cs-color-line);
}

.cs-content-tier--preview,
.cs-content-tier--inactive {
	padding: var(--cs-space-l);
	border: 1px dashed var(--cs-color-line);
	background: transparent;
	color: var(--cs-color-muted);
}

.cs-content-tier--preview:is(:hover, :focus-within),
.cs-content-tier--inactive:is(:hover, :focus-within) {
	border-color: var(--cs-color-line);
	box-shadow: none;
}

.cs-area-home__orientation {
	width: 100%;
	max-width: none;
	margin-block-end: 0;
}

.cs-area-home__orientation > * {
	max-width: none;
}

.cs-area-home__module {
	margin-block-start: var(--cs-space-2xl);
}

.cs-area-home__eyebrow,
.cs-result-card__dimension {
	color: var(--cs-series-accent, var(--cs-area-accent));
	font-family: var(--cs-font-display);
	font-size: 0.75rem;
	font-weight: 650;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.cs-result-card__dimension::after {
	content: ":";
}

.cs-area-home__paths {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr));
	gap: var(--cs-space-m);
}

.cs-future-area-preview {
	max-width: none;
	padding-block: clamp(2.25rem, 5vw, 4rem);
}

.cs-future-area-preview h2 {
	margin-block: 0 var(--cs-space-l);
}

.cs-future-area-preview p {
	margin-block: 0 var(--cs-space-m);
	color: var(--cs-color-muted);
	font-size: clamp(1rem, 1.7vw, 1.125rem);
	line-height: 1.7;
}

.cs-area--competition .cs-page-content {
	background:
		linear-gradient(
			108deg,
			transparent 0 58%,
			rgb(167 43 80 / 3%) 58.2% 72%,
			transparent 72.2%
		),
		repeating-linear-gradient(
			90deg,
			transparent 0 8rem,
			rgb(43 52 55 / 2.2%) 8rem 8.05rem
		);
}

.cs-area--competition .cs-future-area-preview {
	position: relative;
	display: grid;
	overflow: hidden;
	max-width: none;
	margin-block: clamp(2.5rem, 5vw, 4.5rem);
	padding: clamp(1.75rem, 4vw, 3.25rem);
	border-block-start: 0.1875rem solid var(--cs-area-accent);
	background: color-mix(in srgb, var(--cs-color-surface) 94%, transparent);
	box-shadow:
		0 1.5rem 4rem rgb(42 47 48 / 9%),
		inset 0 0 0 1px var(--cs-color-line);
	grid-template-columns: minmax(13rem, 0.72fr) minmax(0, 1.28fr);
	gap: 0 clamp(2rem, 5vw, 4.25rem);
}

.cs-area--competition .cs-future-area-preview::before {
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 36%;
	background:
		linear-gradient(145deg, rgb(255 255 255 / 6%), transparent 48%), #315965;
	content: "";
}

.cs-area--competition .cs-future-area-preview h2 {
	max-width: 10ch;
	position: relative;
	z-index: 1;
	grid-row: 1 / span 2;
	margin: 0;
	color: #f1eee7;
	font-size: clamp(1.75rem, 3.8vw, 3.25rem);
	font-weight: 550;
	letter-spacing: -0.025em;
	line-height: 1.05;
}

.cs-area--competition .cs-future-area-preview h2::after {
	display: block;
	width: 3.5rem;
	height: 0.1875rem;
	margin-block-start: var(--cs-space-l);
	background: var(--cs-area-accent);
	content: "";
}

.cs-area--competition .cs-future-area-preview p {
	max-width: 42rem;
	margin: 0;
	font-size: clamp(0.975rem, 1.35vw, 1.075rem);
	line-height: 1.75;
}

.cs-area--competition .cs-future-area-preview p + p {
	margin-block-start: var(--cs-space-l);
	padding-block-start: var(--cs-space-l);
	border-block-start: 1px solid var(--cs-color-line);
}

@media (max-width: 48rem) {
	.cs-area--competition .cs-future-area-preview {
		grid-template-columns: minmax(0, 1fr);
		gap: var(--cs-space-xl);
	}

	.cs-area--competition .cs-future-area-preview::before {
		width: 100%;
		height: 9rem;
	}

	.cs-area--competition .cs-future-area-preview h2 {
		max-width: 14ch;
		grid-row: auto;
	}
}

.cs-area-home__paths :where(h3, p) {
	margin-block: 0 var(--cs-space-s);
}

.cs-content-tier--list ul {
	display: grid;
	gap: 0;
	margin: 0;
	padding: 0;
	list-style: none;
}

.cs-content-tier--list li {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--cs-space-m);
	padding-block: var(--cs-space-s);
	border-block-end: 1px solid var(--cs-color-line);
}

.cs-content-tier--list time {
	flex: 0 0 auto;
	color: var(--cs-color-muted);
	font-size: 0.8125rem;
}

.cs-section,
.cs-key-facts,
.cs-key-value,
.cs-update,
.cs-evidence,
.cs-figure,
.cs-data-table {
	max-width: none;
	margin: var(--cs-space-2xl) auto 0;
}

.cs-evidence {
	display: block;
}

.cs-key-facts,
.cs-key-value,
.cs-update,
.cs-evidence {
	padding: var(--cs-space-l);
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface);
}

.cs-key-facts dl,
.cs-key-value dl {
	display: grid;
	grid-template-columns: minmax(8rem, 0.7fr) minmax(0, 1.3fr);
	gap: 1px;
	margin: 0;
	background: var(--cs-color-line);
}

.cs-key-facts :where(dt, dd),
.cs-key-value :where(dt, dd) {
	margin: 0;
	padding: var(--cs-space-s) var(--cs-space-m);
	background: var(--cs-color-surface-raised);
}

.cs-key-facts h2,
.cs-key-value h2 {
	font-size: clamp(1.75rem, 7vw, 2.5rem);
}

.cs-key-facts dt,
.cs-key-value dt {
	color: var(--cs-color-muted);
	font-size: 0.8125rem;
	font-weight: 650;
}

.cs-update {
	border-inline-start: 0.25rem solid var(--cs-color-warning);
}

.cs-evidence[data-evidence="fact"],
.cs-evidence[data-level="fact"] {
	border-inline-start: 0.25rem solid var(--cs-color-success);
}

.cs-evidence[data-evidence="indication"],
.cs-evidence[data-level="indication"] {
	border-inline-start: 0.25rem solid var(--cs-color-warning);
}

.cs-evidence[data-evidence="open_question"],
.cs-evidence[data-level="open_question"] {
	border-inline-start: 0.25rem solid var(--cs-color-danger);
}

.cs-figure img {
	display: block;
	max-width: 100%;
	height: auto;
}

.cs-figure figcaption,
.cs-data-table caption {
	color: var(--cs-color-muted);
	font-size: 0.8125rem;
	text-align: start;
}

.cs-data-table__viewport {
	max-width: 100%;
	overflow: auto;
	overscroll-behavior-inline: contain;
	scrollbar-gutter: stable;
}

.cs-data-table__viewport:focus-visible {
	outline: 0;
	box-shadow: var(--cs-focus-ring);
}

.cs-data-table table {
	width: 100%;
	border-collapse: collapse;
	background: var(--cs-color-surface);
}

.cs-data-table--comparison-scroll table,
.cs-data-table--compact.cs-data-table--fallback-comparison-scroll table {
	width: max-content;
	min-width: 100%;
}

.cs-data-table :where(th, td) {
	padding: var(--cs-space-s) var(--cs-space-m);
	border: 1px solid var(--cs-color-line);
	text-align: start;
	vertical-align: top;
}

.cs-data-table th {
	background: var(--cs-color-surface-raised);
	font-weight: 650;
}

.cs-data-table--compact :where(th, td) {
	padding: var(--cs-space-xs) var(--cs-space-s);
	font-size: 0.875rem;
}

.cs-data-table__cell-label {
	display: none;
}

@media (max-width: 40rem) {
	.cs-content-tier--list li {
		align-items: flex-start;
		flex-direction: column;
		gap: var(--cs-space-xs);
	}

	.cs-key-facts dl,
	.cs-key-value dl {
		grid-template-columns: 1fr;
	}

	.cs-data-table--card-on-mobile table,
	.cs-data-table--compact.cs-data-table--fallback-card-on-mobile table,
	.cs-data-table--card-on-mobile :where(tbody, tr),
	.cs-data-table--compact.cs-data-table--fallback-card-on-mobile
		:where(tbody, tr) {
		display: block;
	}

	.cs-data-table--card-on-mobile caption,
	.cs-data-table--compact.cs-data-table--fallback-card-on-mobile caption {
		display: block;
		width: 100%;
		padding-block-end: var(--cs-space-s);
	}

	.cs-data-table--card-on-mobile thead,
	.cs-data-table--compact.cs-data-table--fallback-card-on-mobile thead {
		position: absolute;
		width: 1px;
		height: 1px;
		padding: 0;
		border: 0;
		margin: -1px;
		clip: rect(0 0 0 0);
		clip-path: inset(50%);
		overflow: hidden;
		white-space: nowrap;
	}

	.cs-data-table--card-on-mobile tr,
	.cs-data-table--compact.cs-data-table--fallback-card-on-mobile tr {
		margin-block-end: var(--cs-space-m);
		border: 1px solid var(--cs-color-line);
		background: var(--cs-color-surface);
	}

	.cs-data-table--card-on-mobile :where(th[scope="row"], td),
	.cs-data-table--compact.cs-data-table--fallback-card-on-mobile
		:where(th[scope="row"], td) {
		display: grid;
		grid-template-columns: minmax(7rem, 0.8fr) minmax(0, 1.2fr);
		gap: var(--cs-space-m);
		border: 0;
		border-block-end: 1px solid var(--cs-color-line);
	}

	.cs-data-table--card-on-mobile .cs-data-table__cell-label,
	.cs-data-table--compact.cs-data-table--fallback-card-on-mobile
		.cs-data-table__cell-label {
		display: inline;
		color: var(--cs-color-muted);
		font-size: 0.75rem;
		font-weight: 650;
		letter-spacing: 0.04em;
		text-transform: uppercase;
	}
}

@media print {
	.cs-data-table__viewport {
		overflow: visible;
	}

	.cs-data-table table {
		width: 100%;
		font-size: 9pt;
	}
}

/* Compact subpage masthead and fixed shell navigation states. */
.cs-section-masthead {
	position: relative;
	isolation: isolate;
	min-height: 0;
	overflow: hidden;
	border-block-end: 1px solid var(--cs-color-line);
	background:
		linear-gradient(
			90deg,
			rgb(5 8 10 / 94%) 0%,
			rgb(5 8 10 / 78%) 52%,
			rgb(5 8 10 / 68%) 100%
		),
		var(--cs-section-header-image, var(--cs-area-motif)),
		var(--cs-color-canvas);
	background-position: center;
	background-size: cover;
}

.cs-section-masthead--media {
	background: var(--cs-color-canvas);
}

.cs-section-masthead__image {
	position: absolute;
	z-index: -2;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	pointer-events: none;
}

.cs-section-masthead--media::before {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(
		90deg,
		rgb(5 8 10 / 94%) 0%,
		rgb(5 8 10 / 78%) 52%,
		rgb(5 8 10 / 68%) 100%
	);
	content: "";
	pointer-events: none;
}

.cs-section-masthead::after {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(180deg, transparent 45%, rgb(5 8 10 / 74%));
	content: "";
	pointer-events: none;
}

.cs-section-masthead__credit {
	position: absolute;
	z-index: 2;
	inset-block-end: 0.25rem;
	inset-inline-end: 0.5rem;
	max-width: calc(100% - 1rem);
	margin: 0;
	padding: 0.125rem 0.25rem;
	color: var(--cs-color-text);
	background: rgb(5 8 10 / 70%);
	font-size: 0.6875rem;
	line-height: 1.4;
	text-align: end;
}

.cs-site a.cs-media-credit {
	color: var(--cs-color-muted);
	font-family: var(--cs-font-body);
	font-size: 0.75rem;
	line-height: 1.45;
	text-decoration: none;
}

.cs-site .cs-section-masthead__credit a.cs-media-credit {
	color: var(--cs-color-text);
	font-size: 0.6875rem;
}

.cs-site a.cs-media-credit:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	text-decoration: underline;
}

.cs-media-disclosure {
	position: absolute;
	z-index: 3;
	inset-block-end: 0.125rem;
	inset-inline-end: 0.25rem;
	margin: 0;
}

.cs-media-disclosure__trigger {
	position: relative;
	display: grid;
	width: 44px;
	min-height: 44px;
	place-items: center;
	cursor: pointer;
	list-style: none;
}

.cs-media-disclosure__trigger::-webkit-details-marker {
	display: none;
}

.cs-media-disclosure__trigger::marker {
	content: "";
}

.cs-media-disclosure__badge {
	display: inline-grid;
	min-width: 1.5rem;
	min-height: 1.25rem;
	place-items: center;
	border: 1px solid var(--cs-color-muted);
	border-radius: 0.25rem;
	color: var(--cs-color-text);
	background: rgb(5 8 10 / 75%);
	font-family: var(--cs-font-body);
	font-size: 0.625rem;
	font-weight: 650;
	line-height: 1;
}

.cs-media-disclosure__info {
	position: absolute;
	inset-block-end: calc(100% - 0.25rem);
	inset-inline-start: var(--cs-tooltip-start, auto);
	inset-inline-end: var(--cs-tooltip-end, 0);
	width: max-content;
	max-width: min(20rem, calc(100vw - 3rem));
	padding: 0.5rem 0.75rem;
	border: 1px solid var(--cs-color-line);
	border-radius: 0.25rem;
	color: var(--cs-color-text);
	background: var(--cs-color-surface);
	font-family: var(--cs-font-body);
	font-size: 0.75rem;
	line-height: 1.45;
	opacity: 0;
	visibility: hidden;
	transform: translateX(var(--cs-tooltip-x, 0));
}

.cs-media-disclosure[open] .cs-media-disclosure__info,
.cs-media-disclosure__trigger:is(:hover, :focus-visible)
	.cs-media-disclosure__info {
	opacity: 1;
	visibility: visible;
}

.cs-media-disclosure__trigger[data-cs-tooltip-suppressed="true"]
	.cs-media-disclosure__info {
	opacity: 0;
	visibility: hidden;
}

.cs-media-disclosure__trigger:is(:hover, :focus-visible)
	.cs-media-disclosure__badge {
	border-color: var(--cs-area-accent);
	color: var(--cs-area-accent);
	box-shadow: 0 0 0.75rem
		color-mix(in srgb, var(--cs-area-accent) 60%, transparent);
}

.cs-media-disclosure__trigger:focus-visible {
	outline: 2px solid var(--cs-area-accent);
	outline-offset: -3px;
}

.cs-section-masthead__inner {
	position: relative;
	z-index: 1;
	padding-block: 0.375rem 0.625rem;
}

.cs-section-masthead__identity {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--cs-color-text);
	font-family: var(--cs-font-display);
	font-size: 0.8125rem;
	letter-spacing: 0.055em;
}

.cs-site .cs-section-masthead__home {
	--cs-tooltip-start: 0px;
	--cs-tooltip-x: 0px;
	position: relative;
	display: inline-flex;
	max-width: 100%;
	color: var(--cs-color-text);
	text-decoration: none;
	cursor: pointer;
	transition: filter var(--cs-duration-fast) var(--cs-easing-standard);
}

.cs-site .cs-section-masthead__home:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	text-decoration: none;
}

.cs-section-masthead__home:is(:hover, :focus-visible)
	:is(.cs-section-masthead__signet, .cs-section-masthead__brand) {
	filter: drop-shadow(0 0 0.35rem var(--cs-area-accent));
}

.cs-section-masthead__home:is(:hover, :focus-visible)
	.cs-section-masthead__area {
	color: inherit;
}

.cs-section-masthead__signet {
	width: 1.75rem;
	height: 1.75rem;
	flex: 0 0 auto;
}

.cs-section-masthead__signet svg {
	width: 100%;
	height: 100%;
}

.cs-section-masthead__brand {
	display: inline-flex;
	align-items: baseline;
	white-space: nowrap;
}

.cs-section-masthead__dot {
	color: var(--cs-area-accent);
}

.cs-section-masthead__area {
	color: var(--cs-brand-area);
}

.cs-section-masthead__home:is(:hover, :focus-visible)
	.cs-section-masthead__signet {
	color: var(--cs-area-accent);
}

.cs-section-masthead__tooltip,
.cs-primary-nav__tooltip {
	position: absolute;
	inset-block-start: calc(100% + 0.25rem);
	inset-inline-start: var(--cs-tooltip-start, 50%);
	inset-inline-end: var(--cs-tooltip-end, auto);
	z-index: var(--cs-z-overlay);
	width: max-content;
	max-width: 12rem;
	padding: 0.25rem 0.5rem;
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface-raised);
	color: var(--cs-color-muted);
	font: 0.625rem/1.3 var(--cs-font-body);
	letter-spacing: 0.025em;
	opacity: 0;
	pointer-events: none;
	text-transform: none;
	transform: translate(var(--cs-tooltip-x, -50%), -0.25rem);
	transition:
		opacity var(--cs-duration-fast) var(--cs-easing-standard),
		transform var(--cs-duration-fast) var(--cs-easing-standard);
}

:where(.cs-section-masthead__home, .cs-primary-nav__disabled):is(
		:hover,
		:focus-visible
	):not([data-cs-tooltip-suppressed="true"])
	:where(.cs-section-masthead__tooltip, .cs-primary-nav__tooltip) {
	opacity: 0.95;
	transform: translate(var(--cs-tooltip-x, -50%), 0);
}

.cs-section-masthead .cs-primary-nav--masthead {
	margin-block: 0;
	padding: 0.125rem;
	background: rgb(5 8 10 / 72%);
	backdrop-filter: blur(0.25rem);
}

.cs-primary-nav__disabled {
	position: relative;
	display: flex;
	min-height: 2.75rem;
	align-items: center;
	justify-content: center;
	padding: 0.5rem 0.875rem;
	color: color-mix(in srgb, var(--cs-color-muted) 52%, transparent);
	cursor: help;
	font: 650 0.6875rem var(--cs-font-display);
	hyphens: none;
	letter-spacing: 0.1em;
	overflow-wrap: normal;
	text-align: center;
	text-transform: uppercase;
	word-break: normal;
}

.cs-primary-nav__tooltip {
	inset-block-start: calc(100% - 0.125rem);
}

.cs-primary-nav__label {
	min-width: 0;
	overflow-wrap: anywhere;
}

.cs-primary-nav__label--compact {
	display: none;
}

@media (max-width: 850px) and (not (scripting: enabled)) {

	/* Visible links and labels need space, including disabled preview targets. */
	.cs-utility-bar:has([data-cs-menu-toggle][hidden]):has(
			[data-cs-menu-panel] :is(a, button, span)
		) {
		position: relative;
		inset-block-start: 0;
	}

	.cs-utility-bar__inner:has([data-cs-menu-toggle][hidden]):has(
			[data-cs-menu-panel] :is(a, button, span)
		) {
		flex-wrap: wrap;
	}

	.cs-utility-bar__inner:has([data-cs-menu-toggle][hidden]):has(
			[data-cs-menu-panel] :is(a, button, span)
		)
		.cs-utility-bar__actions {
		position: static;
		order: 3;
		width: 100%;
		max-width: 100%;
		flex-basis: 100%;
	}
}

@media (max-width: 850px) and (scripting: enabled) {

	/* Match the enhanced initial state before the footer module arrives. */
	.cs-utility-bar__inner:has([data-cs-menu-panel] :is(a, button))
		[data-cs-menu-toggle][hidden] {
		display: inline-flex;
	}

	.cs-utility-bar__inner:has([data-cs-menu-toggle][aria-expanded="false"])
		[data-cs-menu-panel]:has(:is(a, button)) {
		display: none;
	}
}

@media (max-width: 850px) {

	/* A language-only status fits in the compact row; it is not a dropdown. */
	.cs-utility-bar__inner:has([data-cs-menu-toggle][hidden])
		.cs-utility-bar__actions[data-cs-menu-panel]:not(
			:has(.cs-utility-links, a, button)
		) {
		position: static;
		width: auto;
		flex-basis: auto;
		padding: 0;
		border: 0;
		background: transparent;
		box-shadow: none;
	}

	.cs-utility-bar__actions:not(:has(.cs-utility-links, a, button))
		.cs-language-switcher {
		margin-block-start: 0;
		border-block-start: 0;
	}

}

@media (max-width: 64rem) {

	.cs-primary-nav__list--level-1 {
		display: grid;
		grid-template-columns: repeat(
			auto-fit,
			minmax(min(100%, max(50%, 9rem)), 1fr)
		);
	}

	.cs-primary-nav__label--full {
		display: none;
	}

	.cs-primary-nav__label--compact {
		display: inline;
	}

	.cs-primary-nav--masthead a,
	.cs-primary-nav--masthead .cs-primary-nav__disabled {
		padding-inline: 0.5rem;
		font-size: 0.625rem;
	}
}

.cs-global-footer__upper {
	grid-template-columns: minmax(0, 1fr) auto auto;
}

.cs-global-footer__left,
.cs-channel-links,
.cs-global-footer__legal {
	align-self: start;
}

.cs-global-footer__legal {
	justify-content: flex-end;
	text-align: end;
}

@media (max-width: 48rem) {
	.cs-global-footer__upper {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: 0.5rem;
	}

	.cs-global-footer__left {
		flex: 0 1 11rem;
		align-self: center;
	}

	.cs-global-footer__brand {
		white-space: normal;
	}

	.cs-global-footer__signet {
		flex: 0 0 auto;
	}

	.cs-global-footer__brand-copy {
		min-width: 0;
		gap: 0.25rem;
		transform: none;
	}

	.cs-global-footer__tagline {
		line-height: 1.4;
		overflow-wrap: anywhere;
		transform: none;
	}

	.cs-channel-links {
		flex-shrink: 0;
		align-self: center;
		max-width: 100%;
		margin-inline-start: auto;
	}

	.cs-channel-links ul {
		flex-wrap: wrap;
	}

	.cs-global-footer__legal {
		flex-basis: 100%;
		min-width: 0;
		max-width: 100%;
		justify-self: stretch;
		gap: 0.25rem 1rem;
	}

	.cs-global-footer__legal li {
		min-width: 0;
		max-width: 100%;
	}
}

@media (max-width: 35rem) {
	.cs-section-masthead {
		min-height: 0;
		background-position: 62% center;
	}

	.cs-section-masthead__image {
		object-position: 62% center;
	}
}

/* Keep shared orange text above AA contrast on the compact Resilience menu. */
@media (max-width: 850px) {
	.cs-site.cs-area--resilience .cs-utility-bar__actions {
		background: var(--cs-color-canvas);
	}
}

/* Shared navigation states must win over area-specific base colors. */
.cs-site.cs-site
	:is(.cs-utility-links, .cs-primary-nav, .cs-language-switcher)
	a {
	text-decoration: none;
}

.cs-site.cs-site
	:is(.cs-utility-links, .cs-primary-nav, .cs-language-switcher)
	:is(
		a:hover,
		a:focus-visible,
		[aria-current="page"],
		[aria-current="location"],
		.cs-language-switcher__current
	) {
	color: var(--cs-color-accent);
	box-shadow: inset 0 -3px var(--cs-color-accent);
}

.cs-site.cs-site
	:is(.cs-utility-links, .cs-primary-nav, .cs-language-switcher)
	a:is(:hover, :focus-visible) {
	text-shadow: 0 0 0.8rem
		color-mix(in srgb, var(--cs-color-accent) 70%, transparent);
}

/* The shell owns the default width; reading-width is an explicit opt-in. */
.cs-site .cs-prose,
.cs-site .cs-prose :where(p, li),
.cs-site .cs-area-home__orientation > * {
	max-width: none;
}

.cs-site
	a:any-link:not(
		:where(
			.wp-block-button__link,
			.cs-button-secondary,
			.cs-utility-links a,
			.cs-primary-nav a,
			.cs-language-switcher a,
			.cs-channel-links a,
			.cs-section-masthead__home,
			.cs-global-footer__legal a,
			.cs-series-members li > a,
			.cs-related-content a
		)
	):is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

/* Every owned tooltip uses its trigger as its containing block. */
.cs-site [data-cs-tooltip-trigger] {
	position: relative;
}

.cs-site [data-cs-tooltip-trigger] > [role="tooltip"] {
	max-width: min(12rem, calc(100vw - 2rem));
	white-space: normal;
	overflow-wrap: anywhere;
}

/* The leftmost masthead link remains safe even without JavaScript. */

.cs-site .cs-result-card__series-path a {
	color: var(--cs-area-accent);
	text-decoration: none;
}

.cs-site .cs-result-card__series-path a:is(:hover, :focus-visible) {
	text-decoration: underline;
	text-decoration-thickness: 2px;
	text-underline-offset: 0.2em;
}

/* Area-home orientation starts close to its masthead without affecting articles. */
.cs-site.cs-area--tactical .cs-page-content--area-home {
	padding-block-start: 24px;
}

.cs-site.cs-area--tactical
	.cs-area-home__orientation
	> .wp-block-group:first-child
	> .is-style-cs-kicker:first-child {
	margin-block-start: 0;
}

.cs-site .cs-series-navigation a.cs-button-secondary {
	display: grid;
	justify-items: start;
	text-align: start;
	border-color: var(--cs-area-accent);
	color: var(--cs-color-text);
}

.cs-site .cs-series-navigation a.cs-button-secondary > :is(span, strong) {
	color: var(--cs-color-text);
	text-decoration: none;
}

.cs-site .cs-series-navigation a.cs-button-secondary > span {
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

/* Interaction feedback stays orange even in the distinct area palettes. */
.cs-site :is(a, button):is(:hover, :focus-visible) {
	--cs-area-accent: var(--cs-color-accent);
}

/* Native editorial buttons share one link treatment throughout the site. */
.cs-site :is(.wp-block-button > .wp-block-button__link, .cs-button-secondary) {
	--cs-area-accent: var(--cs-color-accent);

	border-color: var(--cs-color-accent);
	text-decoration: none;
	transition:
		box-shadow 160ms ease,
		text-shadow 160ms ease;
}

.cs-site
	:is(.wp-block-button > .wp-block-button__link, .cs-button-secondary):is(
		:hover,
		:focus-visible
	) {
	text-decoration: none;
	box-shadow:
		0 0 0 1px color-mix(in srgb, var(--cs-area-accent) 80%, transparent),
		0 0 1rem color-mix(in srgb, var(--cs-area-accent) 65%, transparent),
		0 0 2rem color-mix(in srgb, var(--cs-area-accent) 40%, transparent);
	text-shadow: 0 0 0.8rem
		color-mix(in srgb, var(--cs-area-accent) 70%, transparent);
}

.cs-site
	:is(
		.wp-block-button > .wp-block-button__link,
		.cs-button-secondary
	):focus-visible {
	outline: 2px solid var(--cs-area-accent);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	.cs-site
		:is(.wp-block-button > .wp-block-button__link, .cs-button-secondary) {
		transition: none;
	}
}

/* stylelint-enable selector-class-pattern, no-descending-specificity */
/* stylelint-enable rule-empty-line-before */

/* Optional statistics never block the page or capture initial keyboard focus. */
.cs-statistics-consent {
	position: fixed;
	z-index: 400;
	inset-inline-start: 15px;
	inset-block-end: 15px;
	box-sizing: border-box;
	width: min(34rem, calc(100vw - 30px));
	max-height: 60vh;
	overflow-y: auto;
	padding: 1rem;
	border: 1px solid var(--cs-area-accent);
	background: var(--cs-color-surface);
	box-shadow: 0 0 1.5rem #0009;
	color: var(--cs-color-text);
	font-size: 0.875rem;
	line-height: 1.5;
}

.cs-statistics-consent[hidden],
.cs-statistics-settings[hidden] {
	display: none;
}

.cs-statistics-title {
	margin: 0 0 0.5rem;
	font-size: 1rem;
	line-height: 1.3;
}

.cs-statistics-copy {
	margin: 0 0 0.75rem;
}

.cs-statistics-consent [role="status"]:empty {
	display: none;
}

.cs-statistics-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem;
}

.cs-statistics-consent .cs-button-secondary {
	min-height: 44px;
	padding: 0.6rem 0.85rem;
	font-size: 0.875rem;
}

.cs-statistics-settings {
	display: inline-flex;
	min-height: 2.75rem;
	align-items: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--cs-color-text);
	font: inherit;
	white-space: nowrap;
	cursor: pointer;
}

.cs-statistics-settings:is(:hover, :focus-visible) {
	background: transparent;
	color: var(--cs-area-accent);
	box-shadow: inset 0 -0.125rem var(--cs-area-accent);
	text-decoration: none;
	text-shadow: 0 0 0.6rem
		color-mix(in srgb, var(--cs-area-accent) 25%, transparent);
}

.cs-statistics-settings:focus-visible {
	outline: 2px solid var(--cs-area-accent);
	outline-offset: 4px;
}

@media print {

	.cs-statistics-consent,
	.cs-statistics-settings {
		display: none;
	}
}

/* stylelint-disable selector-class-pattern -- Existing shared BEM component names. */

/* Shared desktop content typography: preserve the compact UI's readable labels. */
@media (min-width: 75rem) {

	.cs-site .cs-prose,
	.cs-site .cs-provisional-list__item,
	.cs-site .cs-result-card {
		font-size: var(--cs-desktop-body-size);
	}

	.cs-site .cs-article-hero h1,
	.cs-site .cs-series-hero h1 {
		font-size: var(--cs-desktop-title-size);
	}

	.cs-site .cs-page-content h1 {
		font-size: var(--cs-desktop-page-title-size);
	}

	.cs-site .cs-article-body h2 {
		font-size: var(--cs-desktop-h2-size);
	}

	.cs-site .cs-article-body h3 {
		font-size: var(--cs-desktop-h3-size);
	}

	.cs-site .cs-article-hero__subheadline,
	.cs-site .cs-article-hero__summary,
	.cs-site .cs-series-hero > p:last-child {
		font-size: 1.125rem;
	}

	.cs-site .cs-brand-masthead h1 {
		font-size: 1.375rem;
	}
}
