/* =========================================================================
   Editorial single — loaded only on singular views.
   ========================================================================= */

/* --- Reading-progress bar ---------------------------------------------- */
.ft-progress { position: sticky; inset-block-start: 0; z-index: 90; block-size: 3px; background: transparent; }
.ft-progress__fill { display: block; block-size: 100%; inline-size: 0; background: var(--ft-color-accent); transition: width 80ms linear; }
@media (prefers-reduced-motion: reduce) { .ft-progress__fill { transition: none; } }

/* --- Header ------------------------------------------------------------- */
.ft-article__header { max-width: var(--ft-content); margin-inline: auto; margin-block: clamp(1.5rem, 4vw, 2.5rem) 1.5rem; }
.ft-article__title { font-size: clamp(2rem, 1.5rem + 2.6vw, 3.25rem); margin-block: 0.5rem; }
.ft-article__standfirst { font-family: var(--ft-font-serif); font-size: clamp(1.15rem, 1.05rem + 0.6vw, 1.45rem); color: var(--ft-color-muted); line-height: 1.5; margin: 0; }

/* --- Hero --------------------------------------------------------------- */
.ft-article__hero { margin: 0 0 clamp(1.5rem, 4vw, 2.5rem); }
.ft-article__hero img { inline-size: 100%; border-radius: var(--ft-radius); aspect-ratio: 16 / 9; object-fit: cover; }
.ft-article__caption { max-width: var(--ft-content); margin-inline: auto; margin-block-start: 0.5rem; font-size: 0.85rem; color: var(--ft-color-muted); padding-inline: var(--ft-gutter); }

/* --- Layout: share rail | content | sidebar ---------------------------- */
.ft-article__layout {
	display: grid;
	grid-template-columns: 56px minmax(0, var(--ft-content)) 300px;
	justify-content: center;
	gap: clamp(1.5rem, 3vw, 2.5rem);
	align-items: start;
}

/* --- Sticky share rail -------------------------------------------------- */
.ft-article__rail { position: sticky; inset-block-start: calc(var(--ft-masthead-h) + 1rem); }
.ft-article__rail .ft-share { flex-direction: column; gap: 0.5rem; }
.ft-article__rail .ft-share__label { writing-mode: vertical-rl; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ft-color-muted); }
.ft-article__share-foot { margin-block: 2rem; }
.ft-article__share-foot .ft-share { flex-direction: row; flex-wrap: wrap; }

.ft-share { display: flex; align-items: center; gap: 0.5rem; }
.ft-share__label { display: inline-flex; align-items: center; gap: 0.35rem; }
.ft-share__btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-inline-size: 40px; block-size: 40px; padding-inline: 0.75rem; border: 0; border-radius: var(--ft-radius-sm); background: var(--ft-share-color, var(--ft-brand)); color: #fff; font-family: var(--ft-font-sans); font-size: 0.82rem; font-weight: 600; text-decoration: none; cursor: pointer; transition: transform var(--ft-dur-fast) var(--ft-ease), filter var(--ft-dur) var(--ft-ease), box-shadow var(--ft-dur) var(--ft-ease); }
.ft-share__btn:hover { color: #fff; transform: translateY(-2px); filter: brightness(1.12); box-shadow: var(--ft-shadow-sm); }
.ft-share__btn:active { transform: translateY(0) scale(0.96); }
.ft-share__btn svg { flex: 0 0 auto; }
.ft-share__btn.is-copied { filter: brightness(1.2); }
/* Vertical sticky rail: icon-only (labels hidden, square buttons). */
.ft-article__rail .ft-share__btn { padding-inline: 0; min-inline-size: 40px; }
.ft-article__rail .ft-share__btn-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) { .ft-share__btn:hover { transform: none; } }

/* --- Table of contents -------------------------------------------------- */
.ft-toc { background: var(--ft-color-surface); border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: 1rem 1.25rem; margin-block-end: 1.75rem; }
.ft-toc__title { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ft-color-muted); margin: 0 0 0.6rem; }
.ft-toc__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.35rem; counter-reset: toc; }
.ft-toc__item a { color: var(--ft-color-text); text-decoration: none; }
.ft-toc__item a:hover, .ft-toc__item a.is-active { color: var(--ft-color-link-hover); font-weight: 600; }
.ft-toc__item--l3 { padding-inline-start: 1rem; font-size: 0.92rem; }

/* --- Prose -------------------------------------------------------------- */
.ft-article__content { min-inline-size: 0; }
.ft-article__content .ft-prose { max-width: none; }

/* --- Tags --------------------------------------------------------------- */
.ft-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: center; margin-block: 2rem; }
.ft-tags__label { font-size: 0.8rem; color: var(--ft-color-muted); margin-inline-end: 0.25rem; }
.ft-tags a { font-size: 0.78rem; color: var(--ft-color-text); background: var(--ft-color-surface-2); padding: 0.18rem 0.6rem; border-radius: 999px; text-decoration: none; }
.ft-tags a:hover { background: var(--ft-brand); color: var(--ft-color-on-brand); }

/* --- Author box --------------------------------------------------------- */
.ft-authorbox { display: grid; grid-template-columns: 96px 1fr; gap: 1.25rem; align-items: start; background: var(--ft-color-surface); border: 1px solid var(--ft-color-line); border-radius: var(--ft-radius); padding: 1.5rem; margin-block: 2.5rem; }
.ft-authorbox__avatar img { border-radius: 999px; }
.ft-authorbox__eyebrow { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ft-color-muted); margin: 0; }
.ft-authorbox__name { font-size: 1.25rem; margin: 0.1rem 0 0.3rem; }
.ft-authorbox__name a { color: var(--ft-color-heading); text-decoration: none; }
.ft-authorbox__role { font-size: 0.9rem; color: var(--ft-color-muted); margin: 0 0 0.5rem; }
.ft-authorbox__bio { margin: 0 0 0.75rem; }
.ft-authorbox__links { display: flex; gap: 1rem; list-style: none; margin: 0; padding: 0; font-size: 0.85rem; font-weight: 600; }

/* --- Sidebar ------------------------------------------------------------ */
.ft-sidebar { display: grid; gap: 1.5rem; }
.ft-sidebar__sticky { position: sticky; inset-block-start: calc(var(--ft-masthead-h) + 1rem); }

/* --- Related ------------------------------------------------------------ */
.ft-related { margin-block: clamp(2.5rem, 6vw, 4rem); }

/* --- Print -------------------------------------------------------------- */
@media print {
	.ft-masthead, .ft-footer, .ft-article__rail, .ft-sidebar, .ft-anchor-ad,
	.ft-progress, .ft-share, .ft-related, .ft-ad, .ft-toc, .ft-breadcrumbs { display: none !important; }
	.ft-article__layout { grid-template-columns: 1fr; }
	body { color: #000; background: #fff; }
}

/* --- Responsive --------------------------------------------------------- */
@media (max-width: 1024px) {
	.ft-article__layout { grid-template-columns: minmax(0, 1fr); }
	.ft-article__rail { position: static; }
	.ft-article__rail .ft-share { flex-direction: row; flex-wrap: wrap; margin-block-end: 1.5rem; }
	.ft-article__rail .ft-share__label { writing-mode: horizontal-tb; }
	.ft-sidebar { margin-block-start: 2.5rem; }
	.ft-sidebar__sticky { position: static; }
}
