/**
 * SNYCF — Single story
 *
 * Header, lead media, article/aside layout and the editorial sections that
 * follow the body. Card, row and record styling comes from components.css;
 * article prose from article.css.
 *
 * @package snycf
 */

/* =====================================================================
 * Header
 * ================================================================== */

.snycf-story-header {
	display: flex;
	flex-direction: column;
	gap: var( --snycf-space-sm );
	padding-block: var( --snycf-section-gap ) var( --snycf-space-md );
}

.snycf-story-header__title {
	margin: 0;
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-weight: var( --snycf-weight-bold );
	font-size: var( --snycf-size-h1 );
	line-height: 1.08;
	letter-spacing: var( --snycf-tracking-headline );
	text-wrap: balance;

	/* Investigative headlines run long; they break rather than overflow. */
	overflow-wrap: break-word;
}

.snycf-story-header__deck {
	margin: 0;
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-size: var( --snycf-size-deck );
	line-height: var( --snycf-leading-deck );
	color: var( --snycf-text-prose );
	text-wrap: pretty;
}

.snycf-story-header__meta {
	border-top: var( --snycf-border-width-hair ) solid var( --snycf-ink );
	border-bottom: var( --snycf-divider );
	padding-block: var( --snycf-space-xs );
}

/* ---- Allegation notice ---- */

.snycf-allegation {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var( --snycf-space-2xs ) var( --snycf-space-sm );
	padding-block: var( --snycf-space-xs );
	border-bottom: var( --snycf-divider );
}

.snycf-allegation__badge {
	flex: none;
}

.snycf-allegation__text {
	flex: 1 1 18rem;
	margin: 0;
	min-width: 0;
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-style: italic;
	font-size: 0.90625rem;
	line-height: 1.5;
	color: var( --snycf-text-meta );
}

/* =====================================================================
 * Lead media
 * ================================================================== */

.snycf-story-media {
	margin: var( --snycf-space-md ) 0 0;
}

/* =====================================================================
 * Article + aside
 * ================================================================== */

.snycf-story-body {
	padding-block: var( --snycf-space-xl ) 0;
}

.snycf-story-layout {
	display: grid;
	grid-template-columns: minmax( 0, 1fr );
	gap: var( --snycf-gap-sidebar );
	align-items: start;
}

.snycf-story-main {
	min-width: 0;
	max-width: var( --snycf-measure );
}

.snycf-story-aside {
	display: flex;
	flex-direction: column;
	gap: var( --snycf-space-3xl );
	min-width: 0;
}

/*
 * Desktop places the aside beside the article. On smaller screens it
 * follows the body — the reading order that matters is headline, deck,
 * media, article, and supporting context after it.
 */
@media ( min-width: 64rem ) {

	.snycf-story-layout {
		grid-template-columns: minmax( 0, 1fr ) 20rem;
	}

	.snycf-story-layout--solo {
		grid-template-columns: minmax( 0, 1fr );
	}
}

.snycf-aside-block {
	display: flex;
	flex-direction: column;
	gap: var( --snycf-space-2xs );
	min-width: 0;
}

/* =====================================================================
 * Editorial sections after the article body
 * ================================================================== */

.snycf-story-section {
	margin-top: var( --snycf-space-3xl );
}

.snycf-story-section > .snycf-section-heading {
	margin-bottom: var( --snycf-space-md );
}

/* ---- Timeline ---- */

/*
 * Selector is ol.snycf-… deliberately: the base reset uses ol[class], which
 * is (0,1,1) and would otherwise win over a plain class and strip the
 * padding — leaving the node markers hanging outside the container.
 */
ol.snycf-timeline__list {
	list-style: none;
	margin: 0;
	padding: 0 0 0 var( --snycf-space-md );
	border-left: var( --snycf-border-width-button ) solid var( --snycf-rule );
	display: flex;
	flex-direction: column;
	gap: var( --snycf-space-md );
}

.snycf-timeline__item {
	position: relative;
	min-width: 0;
}

.snycf-timeline__node {
	position: absolute;
	left: calc( -1 * var( --snycf-space-md ) - 7px );
	top: 0.45em;
	width: 10px;
	height: 10px;
	background-color: var( --snycf-ink );
}

.snycf-timeline__item.is-marked .snycf-timeline__node {
	background-color: var( --snycf-accent );
}

.snycf-timeline__body {
	display: flex;
	flex-direction: column;
	gap: var( --snycf-space-3xs );
}

.snycf-timeline__date {
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: var( --snycf-size-meta );
	font-weight: var( --snycf-weight-extrabold );
	letter-spacing: var( --snycf-tracking-meta );
	text-transform: uppercase;
	color: var( --snycf-text-meta );
}

.snycf-timeline__item.is-marked .snycf-timeline__date {
	color: var( --snycf-accent );
}

.snycf-timeline__event {
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-size: 1.0625rem;
	line-height: 1.5;
	color: var( --snycf-ink-2 );
	text-wrap: pretty;
}

/* ---- Responses ---- */

.snycf-responses__intro {
	margin: 0 0 var( --snycf-space-sm );
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-style: italic;
	font-size: 0.96875rem;
	color: var( --snycf-text-meta );
}

.snycf-responses__list {
	display: flex;
	flex-direction: column;
}

.snycf-responses__item {
	padding-block: var( --snycf-space-sm );
	border-bottom: var( --snycf-divider );
	min-width: 0;
}

.snycf-responses__source {
	margin: 0 0 var( --snycf-space-3xs );
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: var( --snycf-size-kicker );
	font-weight: var( --snycf-weight-extrabold );
	letter-spacing: var( --snycf-tracking-meta );
	text-transform: uppercase;
	color: var( --snycf-text-meta );
}

.snycf-responses__text {
	margin: 0;
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-size: var( --snycf-size-prose-sm );
	line-height: 1.6;
	color: var( --snycf-ink-2 );
	text-wrap: pretty;
}

/* A non-response is stated plainly, never emphasised. */
.snycf-responses__none {
	margin: 0;
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-style: italic;
	font-size: var( --snycf-size-prose-sm );
	line-height: 1.6;
	color: var( --snycf-text-meta );
}

/* ---- Update log ---- */

.snycf-updates__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var( --snycf-space-xs );
}

.snycf-updates__item {
	display: flex;
	flex-wrap: wrap;
	gap: var( --snycf-space-3xs ) var( --snycf-space-sm );
	min-width: 0;
}

.snycf-updates__date {
	flex: none;
	width: 9.375rem;
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: var( --snycf-size-meta );
	font-weight: var( --snycf-weight-extrabold );
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var( --snycf-accent );
}

.snycf-updates__text {
	flex: 1 1 15rem;
	min-width: 0;
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var( --snycf-ink-2 );
}

/* ---- People & entities ---- */

.snycf-entities__notice {
	margin: 0 0 var( --snycf-space-2xs );
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-style: italic;
	font-size: 0.71875rem;
	line-height: 1.5;
	color: var( --snycf-text-meta );
}

.snycf-entities__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.snycf-entities__item {
	padding-block: var( --snycf-space-xs );
	border-bottom: var( --snycf-divider );
	min-width: 0;
}

.snycf-entities__name {
	display: block;
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.8125rem;
	font-weight: var( --snycf-weight-extrabold );
	letter-spacing: 0.06em;
	text-transform: uppercase;
	overflow-wrap: break-word;
}

.snycf-entities__role {
	display: block;
	margin-top: 2px;
	font-size: 0.78125rem;
	color: var( --snycf-text-meta );
}

/* ---- Series ---- */

.snycf-series__list {
	list-style: none;
	margin: 0;
	padding: 0;
	counter-reset: none;
}

.snycf-series__link {
	display: flex;
	gap: var( --snycf-space-xs );
	align-items: baseline;
	min-height: var( --snycf-target-min );
	padding: var( --snycf-space-xs ) var( --snycf-space-2xs );
	border-bottom: var( --snycf-divider );
}

.snycf-series__item.is-current .snycf-series__link {
	background-color: var( --snycf-ink );
	color: var( --snycf-paper );
	border-bottom-color: var( --snycf-ink );
}

.snycf-series__part {
	flex: none;
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: var( --snycf-size-kicker );
	font-weight: var( --snycf-weight-black );
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var( --snycf-text-meta );
}

.snycf-series__item.is-current .snycf-series__part {
	color: var( --snycf-accent-on-ink );
}

.snycf-series__title {
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-weight: var( --snycf-weight-bold );
	font-size: 0.96875rem;
	line-height: 1.35;
	min-width: 0;
	overflow-wrap: break-word;
}

.snycf-issues--compact .snycf-issues__pill {
	font-size: 0.6875rem;
	padding: var( --snycf-space-2xs );
}

/* ---- Author ---- */

.snycf-author {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var( --snycf-space-sm );
	padding-top: var( --snycf-space-lg );
	border-top: var( --snycf-rule-top );
	border-top-color: var( --snycf-ink );
}

.snycf-author__mark {
	flex: none;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.5rem;
	height: 3.5rem;
	background-color: var( --snycf-ink );
	color: var( --snycf-paper );
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-weight: var( --snycf-weight-black );
	font-size: 1rem;
	letter-spacing: 0.05em;
}

.snycf-author__body {
	flex: 1 1 15rem;
	min-width: 0;
}

.snycf-author__eyebrow {
	margin: 0;
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.65625rem;
	font-weight: var( --snycf-weight-black );
	letter-spacing: var( --snycf-tracking-label );
	text-transform: uppercase;
	color: var( --snycf-text-meta );
}

.snycf-author__name {
	margin: var( --snycf-space-3xs ) 0 0;
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.875rem;
	font-weight: var( --snycf-weight-extrabold );
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.snycf-author__bio {
	margin: var( --snycf-space-3xs ) 0 0;
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-size: 0.90625rem;
	line-height: 1.5;
	color: var( --snycf-ink-2 );
}

.snycf-author__all {
	flex: none;
	display: inline-flex;
	align-items: center;
	gap: var( --snycf-space-3xs );
	min-height: var( --snycf-target-min );
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: var( --snycf-size-kicker );
	font-weight: var( --snycf-weight-extrabold );
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var( --snycf-text-meta );
}

.snycf-author__all:hover {
	color: var( --snycf-accent );
}

/* ---- Share ---- */

.snycf-share {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var( --snycf-space-sm );
	padding-top: var( --snycf-space-md );
	border-top: var( --snycf-divider );
}

.snycf-share__title {
	flex: none;
	margin: 0;
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.75rem;
	font-weight: var( --snycf-weight-black );
	letter-spacing: var( --snycf-tracking-label );
	text-transform: uppercase;
}

.snycf-share__list {
	display: flex;
	flex-wrap: wrap;
	gap: var( --snycf-space-2xs );
	list-style: none;
	margin: 0;
	padding: 0;
}

.snycf-share__link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var( --snycf-target-min );
	min-height: var( --snycf-target-min );
	padding-inline: var( --snycf-space-xs );
	border: var( --snycf-border-width-hair ) solid var( --snycf-ink );
	background: none;
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.6875rem;
	font-weight: var( --snycf-weight-extrabold );
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background-color var( --snycf-transition-fast ), color var( --snycf-transition-fast );
}

.snycf-share__link:hover,
.snycf-share__link.is-copied {
	background-color: var( --snycf-ink );
	color: var( --snycf-paper );
}

.snycf-share__status {
	margin: 0;
	flex-basis: 100%;
	font-size: 0.75rem;
	color: var( --snycf-text-meta );
}

.snycf-share__status:empty {
	display: none;
}

/* =====================================================================
 * Previous / next
 * ================================================================== */

.snycf-adjacent {
	display: grid;
	grid-template-columns: minmax( 0, 1fr );
	gap: 1px;
	margin-top: var( --snycf-space-xl );
	background-color: var( --snycf-rule );
	border: var( --snycf-border-width-hair ) solid var( --snycf-rule );
}

.snycf-adjacent__link {
	display: flex;
	flex-direction: column;
	gap: var( --snycf-space-2xs );
	padding: var( --snycf-space-md );
	background-color: var( --snycf-surface );
	min-width: 0;
}

.snycf-adjacent__link:hover {
	background-color: var( --snycf-hover-tint );
	color: var( --snycf-text );
}

.snycf-adjacent__label {
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.65625rem;
	font-weight: var( --snycf-weight-black );
	letter-spacing: var( --snycf-tracking-label );
	text-transform: uppercase;
	color: var( --snycf-text-meta );
}

.snycf-adjacent__title {
	font-family: var( --snycf-font-editorial ), 'Source Serif Fallback';
	font-weight: var( --snycf-weight-bold );
	font-size: 1.0625rem;
	line-height: 1.3;
	text-wrap: pretty;
	overflow-wrap: break-word;
}

@media ( min-width: 40rem ) {

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

	.snycf-adjacent__link--next {
		text-align: end;
		align-items: flex-end;
	}
}

.snycf-story-related {
	padding-top: var( --snycf-section-gap );
}

/* =====================================================================
 * Editorial block styles
 *
 * Front-end rendering of the styles registered in inc/blocks.php. The
 * editor stylesheet mirrors these so what an editor sees matches.
 * ================================================================== */

.is-style-snycf-editors-note,
.is-style-snycf-notice {
	background-color: var( --snycf-stock );
	border-inline-start: var( --snycf-border-width-rule ) solid var( --snycf-ink );
	padding: var( --snycf-space-sm ) var( --snycf-space-md );

	/* Metadata on the off-white surface needs the darker accessible token. */
	--snycf-text-meta: var( --snycf-meta-on-stock );
}

.is-style-snycf-notice {
	border-inline-start-color: var( --snycf-accent );
}

.is-style-snycf-editors-note::before,
.is-style-snycf-notice::before {
	display: block;
	margin-bottom: var( --snycf-space-2xs );
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.65625rem;
	font-weight: var( --snycf-weight-black );
	letter-spacing: var( --snycf-tracking-label );
	text-transform: uppercase;
	color: var( --snycf-text );
	content: 'Editor’s note';
}

.is-style-snycf-notice::before {
	content: 'Important notice';
	color: var( --snycf-accent );
}

.snycf-article .is-style-snycf-editors-note,
.snycf-article .is-style-snycf-notice {
	font-size: 0.96875rem;
	line-height: 1.6;
}

/* Pull quote. */
.snycf-article .is-style-snycf-pull {
	border-inline-start: var( --snycf-border-width-rule ) solid var( --snycf-accent );
	padding: var( --snycf-space-3xs ) 0 var( --snycf-space-3xs ) var( --snycf-space-xl );
	margin-block: var( --snycf-space-2xl );
	font-style: normal;
	background: none;
}

.snycf-article .is-style-snycf-pull p {
	font-size: clamp( 1.25rem, 1rem + 1.1vw, 1.625rem );
	font-weight: var( --snycf-weight-semibold );
	line-height: 1.35;
	color: var( --snycf-text );
	text-wrap: pretty;
}

.snycf-article .is-style-snycf-pull cite {
	font-size: var( --snycf-size-kicker );
}

/* Page links for multi-page posts. */
.snycf-page-links {
	display: flex;
	flex-wrap: wrap;
	gap: var( --snycf-space-2xs );
	margin-top: var( --snycf-space-xl );
	font-family: var( --snycf-font-ui ), 'Archivo Fallback';
	font-size: 0.75rem;
	font-weight: var( --snycf-weight-extrabold );
}
