/* stylelint-disable selector-class-pattern, no-descending-specificity -- Public component classes follow the approved register. */

.cs-editorial-page {
	padding-block: var(--cs-space-l) var(--cs-space-3xl);
}

.cs-external-video {
	margin: 0;
	overflow-wrap: anywhere;
}

.cs-external-video__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface);
}

.cs-external-video__poster {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cs-external-video.is-playing .cs-external-video__poster {
	display: none;
}

.cs-external-video [data-cs-video-load]:not([hidden]) {
	position: absolute;
	top: 50%;
	left: 50%;
	display: grid;
	place-items: center;
	width: 80px;
	height: 64px;
	margin: 0;
	border: 2px solid var(--cs-color-accent);
	border-radius: 12px;
	color: var(--cs-color-accent);
	background: rgb(0 0 0 / 80%);
	font-size: 2rem;
	transform: translate(-50%, -50%);
}

.cs-external-video [data-cs-video-remove]:not([hidden]) {
	position: absolute;
	top: 0;
	right: 0;
	background: var(--cs-color-surface);
}

.cs-external-video__provider {
	color: var(--cs-area-accent);
	font-weight: 650;
}

.cs-external-video__notice {
	font-size: 0.875rem;
}

.cs-external-video button {
	min-height: 44px;
	margin: 0.5rem;
	padding: 0.5rem 1rem;
	border: 1px solid currentcolor;
	color: inherit;
	background: transparent;
	cursor: pointer;
}

.cs-external-video button:is(:hover, :focus-visible),
.cs-detail .cs-detail__open:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	box-shadow: 0 0 0.75rem
		color-mix(in srgb, var(--cs-area-accent) 18%, transparent);
}

.cs-external-video iframe {
	display: block;
	width: 100%;
	min-height: 0;
	aspect-ratio: 16 / 9;
	border: 0;
}

.cs-breadcrumbs {
	margin-block-end: var(--cs-space-xl);
	color: var(--cs-color-muted);
	font-size: 0.8125rem;
}

.cs-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cs-space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cs-breadcrumbs li:not(:last-child)::after {
	margin-inline-start: var(--cs-space-xs);
	color: var(--cs-area-accent);
	content: "/";
}

.cs-breadcrumbs a {
	color: inherit;
}

.cs-article-hero,
.cs-series-hero,
.cs-series-frame {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	overflow-wrap: anywhere;
	gap: var(--cs-space-m);
	max-width: none;
	margin-inline: 0 auto;
	padding: clamp(1.5rem, 5vw, 4rem);
	border: 1px solid var(--cs-color-line);
	background:
		linear-gradient(135deg, rgb(14 20 25 / 98%), rgb(8 11 14 / 92%)),
		var(--cs-color-surface);
	overflow: clip;
}

@media screen {

	.cs-area--resilience .cs-article-hero:not(.cs-series-profile) {
		background: var(--cs-color-surface);
	}
}

.cs-article-hero.cs-series-profile,
.cs-series-profile .cs-series-frame {
	border-color: color-mix(
		in srgb,
		var(--cs-series-accent, var(--cs-area-accent)) 46%,
		var(--cs-color-line)
	);
	background: linear-gradient(
		135deg,
		color-mix(
			in srgb,
			var(--cs-series-surface, var(--cs-color-surface)) 96%,
			transparent
		),
		color-mix(
			in srgb,
			var(--cs-series-background, var(--cs-color-canvas)) 94%,
			transparent
		)
	);
	color: var(--cs-series-foreground, var(--cs-color-text));
}

.cs-series-frame {
	gap: var(--cs-space-xl);
}

.cs-series-frame > .cs-series-hero {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	overflow: visible;
}

.cs-series-frame > :is(.cs-series-members, .cs-series-body) {
	max-width: none;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}

.cs-article-hero__type,
.cs-series-hero > p:first-child,
.cs-series-identity {
	margin: 0;
	color: var(--cs-series-accent, var(--cs-area-accent));
	font-family: var(--cs-font-display);
	font-size: 0.8125rem;
	font-weight: 650;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cs-series-identity span {
	margin-inline-end: var(--cs-space-xs);
	color: var(--cs-color-muted);
}

.cs-article-hero h1,
.cs-series-hero h1 {
	max-width: none;
	margin: 0;
	font-size: clamp(2.15rem, 6vw, 5rem);
	letter-spacing: -0.025em;
	text-wrap: balance;
}

.cs-article-hero__subheadline,
.cs-article-hero__summary,
.cs-series-hero > p:last-child {
	max-width: none;
	margin: 0;
	color: var(--cs-color-muted);
	font-size: clamp(1.05rem, 2.2vw, 1.35rem);
}

.cs-article-meta {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cs-space-m) var(--cs-space-xl);
	margin-block: var(--cs-space-m) 0;
}

.cs-article-meta div {
	display: grid;
	gap: var(--cs-space-2xs);
}

.cs-article-meta :where(dt, dd) {
	margin: 0;
}

.cs-article-meta dt {
	color: var(--cs-color-muted);
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cs-article-meta dd {
	font-size: 0.9375rem;
}

.cs-article-meta__tooltip {
	position: absolute;
	inset-block-start: calc(100% + 0.25rem);
	inset-inline-start: var(--cs-tooltip-start, 0);
	inset-inline-end: var(--cs-tooltip-end, auto);
	z-index: var(--cs-z-overlay);
	width: max-content;
	padding: 0.375rem 0.5rem;
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface-raised);
	color: var(--cs-color-text);
	font: 0.75rem/1.35 var(--cs-font-body);
	letter-spacing: normal;
	opacity: 0;
	pointer-events: none;
	text-transform: none;
	transform: translateX(var(--cs-tooltip-x, 0));
}

.cs-article-meta__history-link:is(:hover, :focus-visible):not([data-cs-tooltip-suppressed="true"])
	.cs-article-meta__tooltip {
	opacity: 1;
}

.cs-article-hero__media {
	margin: var(--cs-space-l) 0 0;
}

.cs-article-hero__media img {
	display: block;
	width: 100%;
	height: auto;
	max-height: 34rem;
	object-fit: contain;
}

.cs-article-hero__media figcaption {
	padding-block-start: var(--cs-space-xs);
	color: var(--cs-color-muted);
	font-size: 0.75rem;
}

.cs-update-note {
	max-width: none;
	margin: var(--cs-space-xl) auto 0 0;
	padding: var(--cs-space-m) var(--cs-space-l);
	border-inline-start: 0.25rem solid
		var(--cs-series-accent, var(--cs-area-accent));
	background: var(--cs-color-surface);
}

.cs-reading-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--cs-space-xl);
	max-width: 58rem;
	margin-inline: 0 auto;
	margin-block-start: var(--cs-space-2xl);
}

.cs-article-sidebar {
	min-width: 0;
}

.cs-reading-depth-nav {
	padding: var(--cs-space-m);
	border-block: 1px solid var(--cs-color-line);
	overflow: auto;
}

.cs-reading-depth-nav__title,
.cs-article-tools__title {
	min-height: 44px;
	cursor: pointer;
	margin-block: 0 var(--cs-space-s);
	color: var(--cs-color-text);
	font-family: var(--cs-font-display);
	font-size: 0.8125rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.cs-reading-depth-nav ol {
	display: grid;
	gap: var(--cs-space-xs);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cs-reading-depth-nav a {
	display: block;
	overflow-wrap: anywhere;
	padding: var(--cs-space-xs) var(--cs-space-s);
	border-inline-start: 0.125rem solid var(--cs-color-line);
	color: var(--cs-color-muted);
	font-size: 0.8125rem;
	line-height: 1.45;
	text-decoration: none;
}

.cs-reading-depth-nav a:is(:hover, :focus-visible),
.cs-reading-depth-nav a[aria-current="location"] {
	border-color: var(--cs-area-accent);
	color: var(--cs-color-text);
}

.cs-reading-depth-nav__level--3 a {
	padding-inline-start: var(--cs-space-l);
}

.cs-article-body {
	display: flow-root;
	min-width: 0;
	font-size: 1.0625rem;
}

/* Dossiers use the whole shell; the TOC precedes, rather than displaces, text. */
.cs-reading-layout:not(:has(.cs-article-sidebar)) {
	grid-template-columns: minmax(0, 1fr);
}

.cs-editorial-page--dossier .cs-reading-layout {
	grid-template-columns: minmax(0, 1fr);
}

.cs-editorial-page--dossier .cs-article-body,
.cs-editorial-page--dossier .cs-article-body :where(p, li) {
	max-width: none;
}

.cs-editorial-page--dossier .cs-reading-depth-nav {
	position: static;
	max-height: none;
}

:where(.is-style-cs-frame, .is-style-cs-frame-left, .is-style-cs-frame-right),
.cs-detail {
	position: relative;
	max-width: 100%;
	margin-block: 1.5rem;
	padding: 1rem;
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface);
	overflow-wrap: anywhere;
}

:where(figure.cs-detail) {
	margin-inline: 0;
}

:where(.is-style-cs-frame-left, .cs-detail.is-style-cs-detail-preview-left) {
	float: left;
	width: min(42%, 25rem);
	margin-inline: 0 var(--cs-object-text-gap);
}

:where(.is-style-cs-frame-right, .cs-detail.is-style-cs-detail-preview-right) {
	float: right;
	width: min(42%, 25rem);
	margin-inline: var(--cs-object-text-gap) 0;
}

.cs-detail__content {
	min-width: 0;
	overflow-x: auto;
}

/* Keep native detail tables readable; scroll the table, not the whole page. */
@media screen {

	.cs-detail__content .wp-block-table {
		max-width: 100%;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
	}

	.cs-detail__content .wp-block-table table {
		min-width: 40rem;
		table-layout: auto;
	}

	.cs-detail__content .wp-block-table :where(th, td) {
		overflow-wrap: normal;
		word-break: normal;
	}

	.cs-detail__content .wp-block-table a {
		overflow-wrap: anywhere;
	}
}

.cs-detail.is-style-cs-detail-preview,
.is-style-cs-frame {
	clear: both;
}

.cs-detail.is-enhanced.is-style-cs-detail-preview {
	width: min(100%, 26rem);
}

.cs-prose:has(.cs-detail) {
	display: flow-root;
}

.cs-detail__content > * {
	margin: 0;
	max-width: none;
}

.cs-detail button {
	min-height: 44px;
	padding: 0.75rem 1rem;
	border: 1px solid var(--cs-area-accent);
	background: var(--cs-color-surface);
	color: var(--cs-color-text);
	font: inherit;
	cursor: pointer;
}

.cs-detail button[hidden] {
	display: none;
}

.cs-detail.is-enhanced:not(.is-open) .cs-detail__panel {
	height: var(--cs-detail-preview-height, 13rem);
	overflow: hidden;
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface);
}

.cs-detail.is-enhanced:not(.is-open) .cs-detail__content {
	width: var(--cs-detail-preview-width, 60rem);
	transform: scale(var(--cs-detail-preview-scale, 0.3));
	transform-origin: top left;
	pointer-events: none;
}

.cs-detail__open {
	display: inline-flex;
	align-items: start;
	gap: 0.5rem;
	text-align: start;
}

.cs-detail .cs-detail__open {
	min-height: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: inherit;
	font: inherit;
}

/* Keep a 44px pointer target above the caption's lower edge, without
 * adding invisible space below its text. The figure is the containing block;
 * the preview above belongs to the same action, never to a different control. */
.cs-detail__open::before {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 44px;
}

.cs-detail__open-icon {
	flex: 0 0 auto;
	color: var(--cs-area-accent);
}

/* Keep the preview clickable without painting an icon over its contents. */
.cs-detail__open::after {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: var(--cs-detail-preview-height, 13rem);
	border: 1px solid var(--cs-area-accent);
}

.cs-detail.is-enhanced {
	padding: 0;
	border: 0;
	background: transparent;
}

.cs-detail__caption:empty {
	display: none;
}

.cs-detail__title {
	margin-block: 0 1rem;
	font-weight: 650;
	font-size: 1.25rem;
}

.cs-detail__scroll-hint {
	margin-block: 0 1rem;
	font-size: 0.875rem;
}

.cs-detail.is-open .cs-detail__panel {
	position: fixed;
	z-index: 1000000;
	inset: max(1rem, env(safe-area-inset-top))
		max(1rem, env(safe-area-inset-right))
		max(1rem, env(safe-area-inset-bottom))
		max(1rem, env(safe-area-inset-left));
	width: auto;
	max-width: 90rem;
	margin-inline: auto;
	padding: clamp(1rem, 3vw, 2rem);
	border: 1px solid var(--cs-area-accent);
	background: var(--cs-color-canvas);
	color: var(--cs-color-text);
	box-shadow: 0 0 0 100vmax rgb(0 0 0 / 75%);
	overflow: auto;
	overscroll-behavior: contain;
}

.cs-detail__close {
	position: sticky;
	z-index: 1;
	top: 0;
	display: block;
	margin-block-end: 1rem;
	margin-inline-start: auto;
}

.cs-detail-modal-open {
	overflow: hidden;
}

@media (max-width: 40rem) {

	:where(
		.is-style-cs-frame-left,
		.is-style-cs-frame-right,
		.cs-detail.is-style-cs-detail-preview-left,
		.cs-detail.is-style-cs-detail-preview-right
	) {
		float: none;
		width: 100%;
		margin-inline: 0;
	}
}

@media print {

	.cs-detail.is-enhanced:not(.is-open) .cs-detail__panel,
	.cs-detail.is-open .cs-detail__panel {
		position: static;
		height: auto;
		overflow: visible;
		mask-image: none;
		box-shadow: none;
	}

	.cs-detail.is-enhanced:not(.is-open) .cs-detail__content {
		width: 100%;
		transform: none;
	}

	.cs-detail button,
	.cs-detail__scroll-hint {
		display: none;
	}
}

.cs-article-body > :first-child,
.cs-series-body > :first-child {
	margin-block-start: 0;
}

.cs-article-body :where(h2, h3, [id]),
.cs-series-body :where(h2, h3, [id]) {
	scroll-margin-block-start: var(--cs-space-xl);
}

.cs-article-body :where(h2, h3) {
	text-wrap: balance;
}

.cs-source-register,
.cs-related-content,
.cs-series-navigation,
.cs-series-members,
.cs-reference-card {
	max-width: var(--cs-content-width);
	margin: var(--cs-space-2xl) auto 0;
	padding: var(--cs-space-l);
	border: 1px solid var(--cs-color-line);
	background: var(--cs-color-surface);
}

.cs-source-register h2,
.cs-related-content h2,
.cs-series-members h2,
.cs-reference-card h2 {
	margin-block-start: 0;
}

.cs-source-register a,
.cs-related-content a,
.cs-series-navigation a,
.cs-series-members li > a {
	overflow-wrap: anywhere;
}

.cs-related-content ul,
.cs-series-members ol {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
	gap: var(--cs-space-m);
	margin: 0;
	padding: 0;
	list-style: none;
}

.cs-related-content a,
.cs-series-members li > a {
	display: grid;
	align-content: start;
	height: 100%;
	gap: var(--cs-space-xs);
	padding: var(--cs-space-m);
	border: 1px solid var(--cs-color-line);
	color: var(--cs-color-text);
	text-decoration: none;
}

.cs-related-content a:hover,
.cs-related-content a:focus-visible,
.cs-series-members li > a:hover,
.cs-series-members li > a:focus-visible {
	border-color: var(--cs-series-accent, var(--cs-area-accent));
	color: var(--cs-color-text);
	text-decoration: none;
	text-shadow: none;
	cursor: pointer;
	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);
}

.cs-related-content a > span:first-child,
.cs-series-members li > a > span:first-child {
	color: var(--cs-series-accent, var(--cs-area-accent));
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cs-series-navigation {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--cs-space-m);
}

.cs-series-navigation a {
	display: grid;
	min-height: 4.5rem;
	align-content: center;
	gap: var(--cs-space-xs);
	padding: var(--cs-space-m);
	border: 1px solid var(--cs-color-line);
	color: var(--cs-color-text);
	text-decoration: none;
}

.cs-series-navigation__next {
	text-align: end;
}

.cs-series-page .cs-series-article {
	color: var(--cs-series-foreground, var(--cs-color-text));
}

.cs-series-body,
.cs-series-language-gap {
	margin: var(--cs-space-2xl) auto 0 0;
}

.cs-reference-card dl {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 13rem), 1fr));
	gap: 1px;
	background: var(--cs-color-line);
}

.cs-reference-card dl div {
	padding: var(--cs-space-m);
	background: var(--cs-color-surface-raised);
}

.cs-system-reference dl {
	grid-template-columns: minmax(8rem, 0.75fr) minmax(0, 1.25fr);
}

.cs-system-reference dl > :where(dt, dd) {
	padding: var(--cs-space-s) var(--cs-space-m);
	background: var(--cs-color-surface-raised);
}

.cs-reference-card :where(dt, dd) {
	margin: 0;
}

.cs-reference-card dt {
	color: var(--cs-color-muted);
	font-size: 0.75rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.cs-reference-card dd {
	margin-block-start: var(--cs-space-xs);
	font-family: var(--cs-font-display);
}

.cs-system-reference dl > dd {
	margin-block-start: 0;
}

.cs-reference-card footer {
	display: flex;
	flex-wrap: wrap;
	gap: var(--cs-space-m);
	margin-block-start: var(--cs-space-l);
	color: var(--cs-color-muted);
	font-size: 0.8125rem;
}

@media (max-width: 63.99rem) {

	.cs-reading-layout {
		grid-template-columns: minmax(0, 1fr);
	}

	.cs-reading-depth-nav {
		position: static;
		max-height: none;
		padding: var(--cs-space-m);
		border: 1px solid var(--cs-color-line);
	}
}

@media (max-width: 35.99rem) {

	.cs-editorial-page {
		padding-block-start: var(--cs-space-m);
	}

	.cs-article-hero,
	.cs-series-hero,
	.cs-series-frame,
	.cs-source-register,
	.cs-related-content,
	.cs-series-navigation,
	.cs-series-members,
	.cs-reference-card {
		padding: var(--cs-space-m);
	}

	.cs-series-navigation {
		grid-template-columns: 1fr;
	}

	.cs-system-reference dl {
		grid-template-columns: minmax(0, 1fr);
	}

	.cs-system-reference dl > :where(dt, dd) {
		overflow-wrap: anywhere;
	}

	.cs-series-navigation__next {
		text-align: start;
	}
}

@media print {

	.cs-utility-bar,
	.cs-primary-nav,
	.cs-global-footer,
	.cs-reading-depth-nav,
	.cs-series-navigation {
		display: none !important;
	}

	.cs-site {
		background: #fff;
		color: #000;
	}

	.cs-article-hero,
	.cs-series-frame,
	.cs-source-register,
	.cs-related-content,
	.cs-series-members,
	.cs-reference-card {
		border-color: #777;
		background: #fff;
		color: #000;
	}

	.cs-reading-layout {
		display: block;
	}

	.cs-editorial-page a::after {
		content: " (" attr(href) ")";
		font-size: 0.8em;
	}
}

/* Editorial reader layout and native media-flow presentation. */
.cs-series-identity {
	display: flex;
	align-items: baseline;
	gap: 0.75rem;
	color: var(--cs-color-text);
	font-family: var(--cs-font-body);
	font-size: 0.8125rem;
	font-weight: 400;
	letter-spacing: normal;
	text-transform: none;
}

.cs-series-identity > span {
	flex-shrink: 0;
	margin-inline-end: 0;
	font-size: inherit;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cs-series-identity a {
	min-width: 0;
	font-size: inherit;
	font-weight: 700;
	color: var(--cs-color-text);
	text-decoration: none;
	text-underline-offset: 0.18em;
}

.cs-series-identity a:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
}

.cs-series-identity + .cs-article-hero__type {
	padding-block-start: 0.5rem;
}

.cs-site
	:where(
		.cs-article-body,
		.cs-series-body,
		.cs-prose,
		.is-style-cs-reading-text
	)
	> :where(h2, h3):not(:first-child) {
	margin-block-start: var(--cs-heading-section-gap);
	margin-block-end: 1.25rem;
}

/* Normalize the last prose margin to the same 25px wrap clearance as the
 * floated object. Subtract that shared clearance from the next section gap:
 * the visible end, not the flow container's margin box, sets the rhythm. */
.cs-site
	.cs-media-flow:has(
		+ :is(h2, h3),
		+ .wp-block-group > :is(h2, h3):first-child
	)
	> :last-child {
	margin-block-end: var(--cs-object-text-gap);
}

/* Place the remaining gap on the new group when WP resets its first heading. */
.cs-site .cs-media-flow + :is(h2, h3),
.cs-site .cs-media-flow + .wp-block-group:has(> :is(h2, h3):first-child) {
	margin-block-start: calc(
		var(--cs-heading-section-gap) - var(--cs-object-text-gap)
	);
}

.cs-site
	:where(
		.cs-article-body,
		.cs-series-body,
		.cs-prose,
		.is-style-cs-reading-text
	)
	> .is-style-cs-kicker
	+ :where(h2, h3) {
	margin-block-start: 0.75rem;
}

.cs-site
	:where(.cs-prose, .cs-article-body, .cs-series-body, .cs-source-register)
	a {
	color: var(--cs-area-accent);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

.cs-site
	:where(.cs-prose, .cs-article-body, .cs-series-body, .cs-source-register)
	a:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	text-decoration-thickness: 0.12em;
}

.cs-site
	:where(.cs-result-card, .cs-content-tier--card)
	a:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	text-decoration: underline;
	text-underline-offset: 0.18em;
}

@supports (grid-template-rows: subgrid) {

	.cs-related-content li,
	.cs-series-members li {
		display: grid;
		grid-row: span 3;
		grid-template-rows: subgrid;
		min-width: 0;
	}

	.cs-related-content li > a,
	.cs-series-members li > a {
		grid-row: span 3;
		grid-template-rows: subgrid;
		height: auto;
	}

	.cs-related-content a > *,
	.cs-series-members li > a > * {
		align-self: start;
	}
}

/* Native table content is retained; classification is an explicit pattern. */
.cs-site .wp-block-table[tabindex="0"]:focus-visible {
	outline: 2px solid var(--cs-color-accent);
	outline-offset: 3px;
}

.wp-block-table :where(th, td) {
	text-align: start;
}

.wp-block-table.cs-classification-table :where(th, td):last-child {
	min-width: 6ch;
	text-align: center;
}

.wp-block-table.cs-classification-table th:last-child {
	white-space: nowrap;
	overflow-wrap: normal;
	word-break: normal;
}

/* New media/text sections contain their floats instead of trapping prose
 * inside a second formatting context. The following section starts cleanly. */
.wp-block-group.cs-media-flow {
	display: flow-root;
	max-width: none;
}

/* Shared by all areas and editorial containers, including native WP flows.
 * The outer object includes its caption: returning prose clears both. */
.cs-site .cs-media-flow,
.cs-site
	:is(
		.is-style-cs-frame,
		.is-style-cs-frame-left,
		.is-style-cs-frame-right,
		.cs-detail
	) {
	margin-block-start: var(--cs-object-text-gap);
}

.cs-site
	:is(
		.is-style-cs-frame,
		.is-style-cs-frame-left,
		.is-style-cs-frame-right,
		.cs-detail
	) {
	margin-block-end: var(--cs-object-text-gap);
}

.cs-site
	.cs-media-flow
	> :where(
		.is-style-cs-frame,
		.is-style-cs-frame-left,
		.is-style-cs-frame-right,
		.cs-detail
	) {
	margin-block-start: 0;
}

.cs-media-flow > p:first-of-type {
	margin-block-start: 0;
}

.cs-media-flow :where(img, video) {
	max-width: 100%;
	height: auto;
}

@media print {

	.cs-series-identity,
	.cs-series-identity a,
	.cs-site
		:where(
			.cs-prose,
			.cs-article-body,
			.cs-series-body,
			.cs-source-register
		)
		a {
		color: #000;
	}
}

/* Shared magazine axis: no independent centering inside an article section. */
.cs-article-tools {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
	font-size: 0.875rem;
}

.cs-article-tools :where(a, button) {
	min-height: 44px;
	padding: 0.5rem;
	border: 1px solid var(--cs-color-line);
	background: transparent;
	color: var(--cs-area-accent);
	font: inherit;
	cursor: pointer;
}

.cs-article-tools :where(a, button):is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	border-color: currentcolor;
}

.cs-article-topics {
	padding-block-start: 1rem;
	border-block-start: 1px solid var(--cs-color-line);
}

.cs-article-topics form {
	margin: 0;
}

.cs-article-topics__disclosure {
	width: 100%;
	min-width: 0;
}

.cs-article-topics__group {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.cs-article-topics__group + .cs-article-topics__group {
	margin-block-start: 0.75rem;
}

.cs-article-topics button {
	max-width: 100%;
	text-align: start;
	white-space: normal;
	overflow-wrap: anywhere;
}

.cs-article-topics .cs-subject-tag {
	color: var(--cs-color-muted);
}

.cs-site
	:where(.cs-article-body, .cs-series-body)
	.wp-block-group.is-style-cs-reading-text {
	max-width: none;
	margin-inline: 0;
}

.cs-site .cs-article-body :where(h2, h3) {
	clear: both;
}

.cs-site .cs-article-body h2 {
	font-size: clamp(1.65rem, 3vw, 2.25rem);
	line-height: 1.25;
}

.cs-site .cs-article-body h3 {
	font-family: var(--cs-font-body);
	font-size: clamp(1.25rem, 2vw, 1.5rem);
	line-height: 1.4;
}

.cs-detail__caption,
.cs-external-video > figcaption,
.cs-article-body :where(figcaption, .cs-detail__caption) {
	margin: 0;
	padding-block-start: 0.75rem;
	color: var(--cs-color-muted);
	font-family: var(--cs-font-body);
	font-size: 0.8125rem;
	line-height: 1.5;
}

/* Float the complete figure, including attribution; frame only the media. */
.cs-media-flow
	> :is(.is-style-cs-frame-left, .is-style-cs-frame-right):has(figure),
.cs-article-body
	figure:is(
		.is-style-cs-frame,
		.is-style-cs-frame-left,
		.is-style-cs-frame-right
	) {
	padding: 0;
	border: 0;
	background: transparent;
}

.cs-media-flow :where(.wp-block-image, .wp-block-video) {
	margin: 0;
}

.cs-media-flow :where(img, video),
.cs-article-body
	figure:is(
		.is-style-cs-frame,
		.is-style-cs-frame-left,
		.is-style-cs-frame-right
	)
	> :where(img, video) {
	display: block;
	width: 100%;
	border: 1px solid var(--cs-color-line);
}

.cs-article-body .wp-block-pullquote {
	clear: both;
	margin: 3rem 0;
	padding: 1.5rem 0;
	border-block: 1px solid var(--cs-color-line);
	color: var(--cs-area-accent);
	text-align: start;
}

.cs-article-body .wp-block-pullquote blockquote {
	margin: 0;
	padding: 0;
	border: 0;
}

.cs-article-body .wp-block-pullquote p {
	font-size: clamp(1.35rem, 3vw, 2rem);
	font-weight: 650;
}

.cs-article-body .wp-block-pullquote cite {
	display: block;
	margin-block-start: 1rem;
	color: var(--cs-color-muted);
	font-size: 0.8125rem;
	font-style: normal;
}

.cs-managed-information-page--about > h1 .cs-wordmark {
	display: block;
}

/* Magazine utility rail: one reading axis, never reflow into the empty rail. */
.cs-article-rail {
	display: grid;
	align-content: start;
	gap: 1.5rem;
	min-width: 0;
}

.cs-article-rail .cs-article-tools {
	gap: 0.5rem;
}

.cs-article-rail .cs-article-tools > strong,
.cs-article-tools__status:not(:empty) {
	flex-basis: 100%;
}

.cs-article-rail .cs-article-tools > strong {
	margin-block-end: 0.5rem;
	font-size: 0.75rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.cs-article-tools .cs-article-tools__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	border-color: transparent;
}

.cs-article-tools__icon[hidden] {
	display: none;
}

.cs-article-tools__icon svg {
	fill: none;
	stroke: currentcolor;
	stroke-width: 1.5;
}

.cs-article-tools__disclosure {
	width: 100%;
	min-width: 0;
	padding-block: 1rem;
	border-block: 1px solid var(--cs-color-line);
}

.cs-article-tools__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem;
}

.cs-article-tools__icon[data-cs-social-share] svg {
	fill: currentcolor;
	stroke: none;
}

.cs-article-tools__title:is(:hover, :focus-visible),
.cs-reading-depth-nav__title:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
}

.cs-article-rail .cs-reading-depth-nav {
	padding-inline: 0;
}

/* Explicit specificity beats native WordPress flow/figure margin resets. */
.cs-site
	:is(.is-style-cs-frame-left, .cs-detail.is-style-cs-detail-preview-left) {
	margin-inline: 0 var(--cs-object-text-gap);
}

.cs-site
	:is(.is-style-cs-frame-right, .cs-detail.is-style-cs-detail-preview-right) {
	margin-inline: var(--cs-object-text-gap) 0;
}

@media screen and (min-width: 48rem) {

	/* A floated rail releases its space to subsequent article blocks. Each
	 * content block contains its own media floats, independent of the rail. */
	.cs-editorial-page:is(
			.cs-editorial-page--article,
			.cs-editorial-page--dossier
		)
		.cs-reading-layout {
		display: flow-root;
		max-width: none;
		margin-inline: 0;
	}

	.cs-editorial-page:is(
			.cs-editorial-page--article,
			.cs-editorial-page--dossier
		)
		.cs-article-hero {
		max-width: none;
	}

	.cs-reading-layout > .cs-article-rail {
		float: left;
		width: clamp(11rem, 16vw, 14rem);
		margin-inline-end: clamp(1rem, 2vw, 2rem);
		margin-block-end: var(--cs-object-text-gap);
	}

	.cs-reading-layout > .cs-article-body {
		display: block;
		max-width: none;
	}

	.cs-reading-layout > .cs-article-body > :not(.cs-detail) {
		display: flow-root;
		width: auto;
		clear: none;
		max-width: none;
	}

	.cs-article-rail .cs-article-topics {
		display: grid;
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 40rem) {

	.cs-site
		:is(
			.is-style-cs-frame-left,
			.is-style-cs-frame-right,
			.cs-detail.is-style-cs-detail-preview-left,
			.cs-detail.is-style-cs-detail-preview-right
		) {
		margin-inline: 0;
	}
}

@media print {

	.cs-article-rail .cs-article-tools {
		display: none;
	}
}

.cs-site .cs-series-identity a:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	text-decoration-line: underline;
	text-decoration-color: var(--cs-area-accent);
	text-decoration-thickness: 0.1875rem;
	text-shadow: 0 0 0.8rem
		color-mix(in srgb, var(--cs-area-accent) 70%, transparent);
}

/* Shared navigation contract; paragraph/source links retain their own style. */
.cs-site
	:where(
		.cs-breadcrumbs,
		.cs-series-identity,
		.cs-reading-depth-nav,
		h1,
		h2,
		h3,
		h4,
		h5,
		h6,
		.is-style-cs-kicker
	)
	a:any-link,
.cs-site a.cs-content-tier--compact:any-link,
.cs-site a.is-style-cs-kicker:any-link {
	text-decoration-line: none;
}

.cs-site
	:where(
		.cs-breadcrumbs,
		.cs-series-identity,
		.cs-reading-depth-nav,
		h1,
		h2,
		h3,
		h4,
		h5,
		h6,
		.is-style-cs-kicker
	)
	a:any-link:is(:hover, :focus-visible),
.cs-site a.cs-content-tier--compact:any-link:is(:hover, :focus-visible),
.cs-site a.is-style-cs-kicker:any-link:is(:hover, :focus-visible) {
	color: var(--cs-area-accent);
	text-decoration-line: underline;
	text-decoration-color: var(--cs-area-accent);
	text-decoration-thickness: 0.1875rem;
	text-underline-offset: 0.2em;
	text-shadow: 0 0 0.8rem
		color-mix(in srgb, var(--cs-area-accent) 70%, transparent);
}

/* Align the media border to the adjacent visible capital-height, not its line box. */
@media (min-width: 40.01rem) {

	.cs-site
		.cs-media-flow
		> :is(
			.is-style-cs-frame-left,
			.is-style-cs-frame-right,
			.cs-detail.is-style-cs-detail-preview-left,
			.cs-detail.is-style-cs-detail-preview-right
		) {
		margin-block-start: calc((1lh - 1cap) / 2);
	}
}

.cs-external-video__consent {
	display: block;
	margin-block-start: 0.5rem;
	font-size: 0.75rem;
	line-height: 1.45;
}

/* stylelint-enable selector-class-pattern, no-descending-specificity */

/* Topic clusters are structural headings, not search result labels. */
.cs-series-cluster + .cs-series-cluster {
	margin-block-start: 3rem;
}

.cs-site .cs-series-cluster > h2 {
	margin-block-end: 1.5rem;
}

/* Give the methodology a readable rhythm across all language/area variants. */
.cs-site
	[data-cs-page-role="methodology"]
	.cs-prose
	> :is(h2, h3):not(:first-child) {
	margin-block-start: 2.75rem;
	margin-block-end: 1.25rem;
}

.cs-site [data-cs-page-role="methodology"] .cs-prose > p + p {
	margin-block-start: 1.25rem;
}

.cs-site [data-cs-page-role="methodology"] .cs-prose li + li {
	margin-block-start: 0.85rem;
}

.cs-site .cs-series-cluster .cs-result-card > h3 {
	margin-block: 0 var(--cs-space-s);
	font-size: 1.25rem;
	line-height: 1.4;
}

/* Editorial history stays secondary and closed until explicitly requested. */
.cs-change-log {
	margin-block-start: var(--cs-space-xl);
	border-block-start: 1px solid var(--cs-color-line);
	padding-block-start: var(--cs-space-m);
	scroll-margin-top: calc(3.25rem + var(--cs-space-m) + var(--wp-admin--admin-bar--height, 0px));
}

.cs-change-log > summary {
	width: fit-content;
	color: var(--cs-color-muted);
	font-size: 0.9375rem;
	font-weight: 600;
	cursor: pointer;
}

.cs-change-log > summary::marker {
	color: var(--cs-color-accent);
}

.cs-change-log > summary:hover,
.cs-change-log > summary:focus-visible {
	color: var(--cs-color-accent);
}

.cs-change-log-entries {
	padding-block-start: var(--cs-space-s);
	font-size: 0.9375rem;
}
