/* ==========================================================================
   EurasiaPulse — main stylesheet
   Mobile-first. Breakpoints: 600 / 900 / 1200px. No build step.
   Fonts (@font-face) are printed by WordPress from theme.json.
   ========================================================================== */

/* ---------- Design tokens ---------- */
:root {
	--color-bg: #ffffff;
	--color-ink: #121212;
	--color-ink-2: #5a5a5a;
	--color-rule: #e2e2e2;
	--color-accent: #b80000;
	--color-img: #ededed;
	--color-code: #f4f4f4;

	--font-serif: "Source Serif 4", Georgia, "Times New Roman", serif;
	--font-sans: Inter, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;

	--container: 1240px;
	--gutter: 20px;
	--pad: 20px;
	--nav-height: 44px;

	--space-1: 4px;
	--space-2: 8px;
	--space-3: 12px;
	--space-4: 16px;
	--space-5: 24px;
	--space-6: 32px;
	--space-7: 48px;
	--space-8: 64px;

	--text-xs: 12px;
	--text-sm: 13px;
	--text-md: 15px;
	--text-lg: 19px;
	--text-xl: 24px;
	--text-2xl: 32px;
	--text-3xl: 30px;
	--text-body: 19px;
}

@media (min-width: 600px) {
	:root { --pad: 24px; --gutter: 24px; --text-3xl: 36px; }
}
@media (min-width: 900px) {
	:root { --pad: 32px; --text-xs: 11px; --text-body: 20px; }
}
@media (min-width: 1200px) {
	:root { --text-3xl: 44px; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body {
	margin: 0;
	background: var(--color-bg);
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: var(--text-md);
	line-height: 1.5;
	text-rendering: optimizeLegibility;
	overflow-x: clip;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--color-accent); }
h1, h2, h3, h4, h5, h6, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; color: inherit; border-radius: 0; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--color-ink); outline-offset: 2px; }
hr { border: 0; border-top: 1px solid var(--color-rule); margin: 0; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0); clip-path: inset(50%);
	white-space: nowrap; border: 0;
}
.skip-link:focus {
	position: fixed !important; top: 8px; left: 8px; z-index: 100;
	width: auto; height: auto; margin: 0; padding: 10px 14px;
	clip: auto; clip-path: none; white-space: normal;
	background: var(--color-ink); color: var(--color-bg);
	font-family: var(--font-sans); font-size: var(--text-sm);
}

/* ---------- Layout ---------- */
.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--pad); }
.grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--gutter); row-gap: var(--gutter); }
.grid > * { grid-column: 1 / -1; }

/* ---------- Header ---------- */
.topbar {
	display: flex; justify-content: space-between; align-items: center; gap: var(--space-4);
	font-family: var(--font-sans); font-size: var(--text-xs); color: var(--color-ink-2);
	padding: var(--space-2) 0; border-bottom: 1px solid var(--color-rule); letter-spacing: 0.02em;
}
.topbar__date { display: none; padding: var(--space-1) 0; }
.topbar__links { display: flex; gap: var(--space-4); margin-left: auto; }
.topbar__links a { display: inline-block; padding: var(--space-1) 0; }

.masthead { text-align: center; padding: var(--space-5) 0 var(--space-4); }
.masthead__logo { font-family: var(--font-serif); font-weight: 600; font-size: 24px; letter-spacing: 0.18em; text-transform: uppercase; line-height: 1; }
.masthead__logo a { display: inline-block; padding: var(--space-1) 0; }
.masthead__logo a:hover { color: var(--color-ink); }
.masthead__logo--image { letter-spacing: 0; text-transform: none; }
.masthead__logo--image .custom-logo-link { display: inline-block; }
.masthead__logo--image img { max-height: 60px; width: auto; margin: 0 auto; }

.nav {
	position: sticky; top: 0; z-index: 30;
	background: var(--color-bg);
	border-top: 1px solid var(--color-rule); border-bottom: 1px solid var(--color-rule);
	font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500;
}
.nav__inner { display: flex; justify-content: space-between; align-items: center; min-height: var(--nav-height); }
.nav__toggle { display: flex; align-items: center; gap: 8px; min-height: var(--nav-height); padding: 0; background: none; border: 0; color: var(--color-ink); }
.nav__toggle-icon { position: relative; display: block; width: 18px; height: 12px; }
.nav__toggle-icon::before, .nav__toggle-icon::after { content: ""; position: absolute; left: 0; width: 18px; height: 1.5px; background: currentColor; }
.nav__toggle-icon::before { top: 0; box-shadow: 0 5.25px 0 currentColor; }
.nav__toggle-icon::after { bottom: 0; }
.nav--open .nav__toggle-icon::before { top: 5px; box-shadow: none; transform: rotate(45deg); }
.nav--open .nav__toggle-icon::after { bottom: 5px; transform: rotate(-45deg); }

.nav__menu { display: none; }
.no-js .nav__menu { display: flex; flex-wrap: wrap; gap: 0 var(--space-4); }
.js .nav--open .nav__menu {
	display: flex; flex-direction: column;
	position: fixed; top: var(--nav-height); left: 0; right: 0; bottom: 0; z-index: 20;
	background: var(--color-bg); overflow-y: auto;
	padding: var(--space-3) var(--pad) var(--space-8);
	border-top: 1px solid var(--color-rule);
}
.nav--open .nav__menu a { display: block; padding: 14px 0; border-bottom: 1px solid var(--color-rule); font-size: 17px; font-weight: 500; }
.nav__menu a { display: inline-block; padding: 12px 0; letter-spacing: 0.01em; }
.nav__menu .current-menu-item > a, .nav__menu .current_page_item > a { color: var(--color-accent); }

.nav__search-toggle { display: flex; align-items: center; gap: 6px; min-height: var(--nav-height); color: var(--color-ink-2); }
.nav__search-toggle[aria-expanded="true"] { color: var(--color-ink); }
.nav__search-icon { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 1.6; }
.nav__search-label { display: none; }
.nav__search { border-top: 1px solid var(--color-rule); padding: var(--space-3) 0; }
.nav__search[hidden] { display: none; }
.no-js .nav__search[hidden] { display: block; }

.search-form { display: flex; gap: var(--space-2); max-width: 680px; margin: 0 auto; }
.search-form__input {
	flex: 1 1 auto; min-width: 0; padding: 10px 12px;
	border: 1px solid var(--color-ink); background: var(--color-bg);
	font-family: var(--font-sans); font-size: 16px; appearance: none;
}
.search-form__submit, .button {
	padding: 10px 18px; border: 1px solid var(--color-ink);
	background: var(--color-ink); color: var(--color-bg);
	font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; appearance: none;
}
.search-form__submit:hover, .button:hover { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-bg); }

@media (min-width: 600px) {
	.topbar { padding: var(--space-3) 0; }
	.topbar__date { display: block; }
	.masthead { padding: var(--space-6) 0 var(--space-5); }
	.masthead__logo { font-size: 32px; }
	.nav__search-label { display: inline; }
}
@media (min-width: 900px) {
	.masthead__logo { font-size: 40px; }
	.nav__inner { justify-content: center; position: relative; }
	.nav__toggle { display: none; }
	.nav__menu, .js .nav--open .nav__menu { display: flex; flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 0 var(--space-6); position: static; padding: 0; border: 0; overflow: visible; }
	.nav--open .nav__menu a, .nav__menu a { display: inline-block; padding: 12px 0; border: 0; font-size: var(--text-sm); }
	.nav__search-toggle { position: absolute; right: 0; top: 0; }
}

/* ---------- Editorial primitives ---------- */
.kicker { display: inline-block; font-family: var(--font-sans); font-size: var(--text-xs); font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-accent); }

/* Touch targets: small text links get an invisible 24px+ hit area (WCAG 2.5.8). Inline padding
   does not move text; blockified items (flex children) use a negative margin to stay in place. */
.meta a, .headline a, .card__author a, .article__byline a, .author-box a, .source-box a, .page-links a, .comment-meta a { padding-block: 5px; }
.kicker, .section__more { padding-block: 5px; margin-block: -5px; }
.meta { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--color-ink-2); letter-spacing: 0.02em; line-height: 1.5; }
.meta .sep { margin: 0 6px; }
.meta a:hover { color: var(--color-accent); }
.headline { font-family: var(--font-serif); font-weight: 600; line-height: 1.2; letter-spacing: -0.005em; text-wrap: pretty; overflow-wrap: anywhere; }
.headline a:hover { color: var(--color-accent); }
.dek { color: var(--color-ink-2); line-height: 1.45; text-wrap: pretty; }

.img { width: 100%; height: auto; object-fit: cover; background: var(--color-img); }
.img--169 { aspect-ratio: 16 / 9; }
.img--32 { aspect-ratio: 3 / 2; }
.figure__link { display: block; }
.figure__caption { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--color-ink-2); line-height: 1.45; margin-top: var(--space-2); }
.figure__credit { text-transform: uppercase; letter-spacing: 0.06em; font-size: 11px; margin-left: 6px; white-space: nowrap; }

.section { padding: var(--space-6) 0; border-top: 1px solid var(--color-rule); }
.section__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-4); margin-bottom: var(--space-5); }
.section__title { font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.section__more { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--color-ink-2); white-space: nowrap; }
.empty { padding: var(--space-7) 0; color: var(--color-ink-2); font-size: var(--text-lg); }

@media (min-width: 900px) {
	.section { padding: var(--space-7) 0; }
}

/* ---------- Cards ---------- */
.card { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.card--standard .headline { font-size: var(--text-xl); }
.card--standard .dek { font-size: var(--text-md); }
.card--compact { flex-direction: row; gap: var(--space-4); align-items: flex-start; }
.card__thumb { flex: 0 0 120px; width: 120px; }
.card__body { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; flex: 1 1 auto; }
.card--compact .headline { font-size: 17px; }
.card--text .headline { font-size: 18px; }
.card__author { font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.02em; }

/* Archive row variant of the compact card */
.card--row { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
.card--row .card__thumb { width: 100%; flex: none; order: -1; }
.card--row .headline { font-size: 22px; }
.card--row .dek { font-size: var(--text-md); }
@media (min-width: 600px) {
	.card--row { grid-template-columns: minmax(0, 1fr) 200px; gap: var(--gutter); }
	.card--row .card__thumb { order: 1; }
	.card--row .headline { font-size: var(--text-xl); }
}
@media (min-width: 900px) {
	.card--row { grid-template-columns: minmax(0, 1fr) 240px; }
}

/* Lead card */
.card--lead .headline { font-size: var(--text-3xl); }
.card--lead .dek { font-size: 17px; }
.lead-hero { position: relative; }
.lead-hero__overlay {
	position: absolute; inset: 0;
	display: flex; flex-direction: column; justify-content: flex-end; gap: var(--space-2);
	padding: var(--space-4);
	background: linear-gradient(to top, rgba(0, 0, 0, 0.82) 0%, rgba(0, 0, 0, 0.45) 45%, rgba(0, 0, 0, 0) 75%);
	color: #ffffff;
}
.lead-hero__overlay .kicker { color: #ffffff; }
.lead-hero__overlay .headline { color: #ffffff; font-size: 24px; }
.lead-hero__overlay .headline a:hover { color: #ffffff; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
@media (min-width: 600px) {
	.card--lead .dek { font-size: var(--text-lg); }
	.lead-hero__overlay { padding: var(--space-6); gap: var(--space-3); }
	.lead-hero__overlay .headline { font-size: var(--text-3xl); }
}

/* ---------- Homepage: lead block ---------- */
.lead { padding: var(--space-5) 0 var(--space-6); }
.lead__main { min-width: 0; }
.lead__sub { display: grid; grid-template-columns: 1fr; row-gap: var(--space-5); column-gap: var(--gutter); margin-top: var(--space-5); padding-top: var(--space-5); border-top: 1px solid var(--color-rule); }
.lead__sub .headline { font-size: 18px; }
.lead__side { border-top: 1px solid var(--color-rule); padding-top: var(--space-4); }
.lead__side li { padding: var(--space-4) 0; border-bottom: 1px solid var(--color-rule); }
.lead__side li:first-child { padding-top: 0; }
.lead__side li:last-child { border-bottom: 0; padding-bottom: 0; }
.lead__side .card__thumb { flex-basis: 96px; width: 96px; }
.lead__side .headline { font-size: 16px; }
@media (min-width: 600px) {
	.lead__sub { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 900px) {
	.lead { padding: var(--space-6) 0 var(--space-7); }
	.lead__main { grid-column: span 8; }
	.lead__side { grid-column: span 4; border-top: 0; border-left: 1px solid var(--color-rule); padding: 0 0 0 var(--gutter); }
}

/* ---------- Homepage: latest ---------- */
.latest__list { border-top: 1px solid var(--color-rule); }
.latest__item { display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: var(--space-3); padding: var(--space-4) 0; border-bottom: 1px solid var(--color-rule); align-items: start; }
.latest__item--thumb { grid-template-columns: 48px minmax(0, 1fr) 88px; }
.latest__item time { font-family: var(--font-sans); font-size: var(--text-sm); font-variant-numeric: tabular-nums; color: var(--color-ink-2); padding-top: 3px; }
.latest__item .headline { font-size: 17px; font-weight: 500; }
.latest__item .meta { display: block; margin-top: 2px; }
.latest__item .card__thumb { width: 88px; }
@media (min-width: 600px) {
	.latest__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--gutter); }
	.latest__item { grid-template-columns: 56px minmax(0, 1fr); column-gap: var(--space-4); }
	.latest__item--thumb { grid-template-columns: 56px minmax(0, 1fr) 96px; }
	.latest__item .card__thumb { width: 96px; }
}

/* ---------- Homepage: analysis / related grids ---------- */
.analysis__grid > *, .related__grid > * { grid-column: 1 / -1; }
@media (min-width: 600px) {
	.analysis__grid > *, .related__grid > * { grid-column: span 6; }
}
@media (min-width: 900px) {
	.analysis__grid > * { grid-column: span 4; }
	.related__grid > * { grid-column: span 3; }
}

/* ---------- Homepage: category blocks ---------- */
.cat__lead .headline { font-size: 24px; }
.cat__list { display: flex; flex-direction: column; }
.cat__list .card { padding: var(--space-4) 0; border-bottom: 1px solid var(--color-rule); }
.cat__list .card:first-child { border-top: 1px solid var(--color-rule); }
.cat__list .card:last-child { border-bottom: 0; }
@media (min-width: 900px) {
	.cat__lead { grid-column: span 6; }
	.cat__list { grid-column: span 6; }
	.cat__lead .headline { font-size: 28px; }
	.cat__list .card:first-child { padding-top: 0; border-top: 0; }
}

/* ---------- Homepage: region strip ---------- */
.regions { border-top: 1px solid var(--color-rule); border-bottom: 1px solid var(--color-rule); padding: var(--space-2) 0; }
.regions__inner { display: flex; align-items: center; gap: var(--space-5); font-family: var(--font-sans); font-size: var(--text-sm); overflow-x: auto; white-space: nowrap; scrollbar-width: thin; }
.regions__inner .section__title { flex: 0 0 auto; color: var(--color-ink-2); }
.regions__inner a { display: inline-block; padding: var(--space-2) 0; }

/* ---------- Homepage: opinion ---------- */
.opinion { border-top: 0; }
.opinion .headline { font-style: italic; font-weight: 400; font-size: 21px; }
.opinion__grid > * { grid-column: 1 / -1; padding-bottom: var(--space-4); border-bottom: 1px solid var(--color-rule); }
.opinion__grid > *:last-child { border-bottom: 0; }
@media (min-width: 600px) {
	.opinion__grid > * { grid-column: span 6; }
}
@media (min-width: 900px) {
	.opinion__grid > * { grid-column: span 3; padding-bottom: 0; border-bottom: 0; }
}

/* ---------- Archives, search, 404 ---------- */
.archive-header { padding: var(--space-6) 0 var(--space-5); border-bottom: 1px solid var(--color-ink); margin-bottom: 0; }
.archive-header__title { font-family: var(--font-serif); font-weight: 600; font-size: var(--text-2xl); line-height: 1.15; letter-spacing: -0.01em; margin-top: var(--space-2); overflow-wrap: anywhere; }
.archive-header__desc { max-width: 680px; margin-top: var(--space-3); color: var(--color-ink-2); font-size: var(--text-lg); line-height: 1.5; }
.archive-header .search-form { margin: var(--space-5) 0 0; }
.archive-list > * { padding: var(--space-5) 0; border-bottom: 1px solid var(--color-rule); }
.archive-empty { padding: var(--space-7) 0; }
.archive-empty p { font-size: var(--text-lg); color: var(--color-ink-2); margin-bottom: var(--space-5); }
.archive-empty .search-form { margin: 0; }
.link-list { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; margin-top: var(--space-5); }
.link-list a { display: inline-block; padding: var(--space-1) 0; }
@media (min-width: 900px) {
	.archive-header { padding: var(--space-7) 0 var(--space-5); }
	.archive-header__title { font-size: 40px; }
}

.pagination { padding: var(--space-6) 0; font-family: var(--font-sans); font-size: var(--text-sm); }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.pagination .page-numbers { display: inline-block; padding: 8px 12px; border: 1px solid var(--color-rule); line-height: 1.2; }
.pagination .page-numbers.current { border-color: var(--color-ink); background: var(--color-ink); color: var(--color-bg); }
.pagination .page-numbers.dots { border: 0; }
.pagination a.page-numbers:hover { border-color: var(--color-accent); color: var(--color-accent); }

/* ---------- Article ---------- */
.article { padding-top: var(--space-6); }
.article__header { max-width: 680px; margin: 0 auto var(--space-5); text-align: left; }
.article__labels { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-3); margin-bottom: var(--space-3); }
.article__labels .meta { margin: 0; }
.article__title { font-family: var(--font-serif); font-weight: 600; font-size: 30px; line-height: 1.15; letter-spacing: -0.01em; text-wrap: pretty; overflow-wrap: anywhere; }
.article__dek { font-size: var(--text-lg); line-height: 1.45; color: var(--color-ink-2); margin-top: var(--space-3); text-wrap: pretty; }
.article__meta { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--color-rule); font-family: var(--font-sans); font-size: var(--text-sm); }
.article__byline { font-weight: 600; }
.article__dates { color: var(--color-ink-2); margin-top: 2px; font-size: var(--text-xs); }
.article__dates .sep { margin: 0 6px; }
.article__figure { max-width: 900px; margin: 0 auto var(--space-6); }
.entry-content, .article__footer, .page__content { max-width: 680px; margin: 0 auto; }
@media (min-width: 600px) {
	.article__title { font-size: 36px; }
	.article__dek { font-size: 21px; }
}
@media (min-width: 900px) {
	.article { padding-top: var(--space-7); }
	.article__title { font-size: 42px; }
}

/* ---------- Article typography (also used on pages) ---------- */
.entry-content { font-size: var(--text-body); line-height: 1.6; }
.entry-content > * { margin-top: 0; margin-bottom: 1.3em; }
.entry-content > *:last-child { margin-bottom: 0; }
.entry-content a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.entry-content a:hover { color: var(--color-accent); }
.entry-content h2, .entry-content h3, .entry-content h4 { font-family: var(--font-serif); font-weight: 600; line-height: 1.2; letter-spacing: -0.005em; margin-top: 1.8em; margin-bottom: 0.6em; text-wrap: pretty; }
.entry-content h2 { font-size: 1.45em; }
.entry-content h3 { font-size: 1.2em; }
.entry-content h4 { font-size: 1.05em; font-family: var(--font-sans); }
.entry-content ul, .entry-content ol { padding-left: 1.4em; }
.entry-content ul { list-style: disc; }
.entry-content ol { list-style: decimal; }
.entry-content li { margin-bottom: 0.4em; }
.entry-content li > ul, .entry-content li > ol { margin-top: 0.4em; margin-bottom: 0; }
.entry-content strong { font-weight: 700; }
.entry-content small { font-size: 0.8em; }
.entry-content hr { margin: 2em auto; width: 80px; border-top-color: var(--color-ink); }

.entry-content blockquote, .entry-content .wp-block-quote {
	margin: 1.6em 0; padding: 0 0 0 var(--space-5);
	border-left: 2px solid var(--color-ink);
	font-size: 1em;
}
.entry-content blockquote p { margin-bottom: 0.8em; }
.entry-content blockquote cite, .entry-content .wp-block-quote cite, .entry-content .wp-block-pullquote cite {
	display: block; font-family: var(--font-sans); font-size: var(--text-sm); font-style: normal; color: var(--color-ink-2);
}
.entry-content .wp-block-pullquote {
	margin: 2em 0; padding: var(--space-5) 0;
	border-top: 1px solid var(--color-ink); border-bottom: 1px solid var(--color-ink);
	text-align: center;
}
.entry-content .wp-block-pullquote blockquote { border: 0; padding: 0; margin: 0; }
.entry-content .wp-block-pullquote p { font-size: 1.35em; line-height: 1.3; font-style: italic; margin-bottom: 0.5em; }
.entry-content .wp-block-pullquote cite { margin-top: var(--space-2); }

.entry-content figure { margin: 2em 0; }
.entry-content figure > img, .entry-content .wp-block-image img { width: 100%; height: auto; }
.entry-content figcaption, .entry-content .wp-element-caption {
	font-family: var(--font-sans); font-size: var(--text-xs); color: var(--color-ink-2); line-height: 1.45; margin-top: var(--space-2); text-align: left;
}
.entry-content .alignwide, .entry-content .alignfull { position: relative; left: 50%; transform: translateX(-50%); width: min(900px, calc(100vw - 2 * var(--pad))); max-width: none; }
.entry-content .alignleft { float: left; margin: 0.3em 1.5em 1em 0; max-width: 50%; }
.entry-content .alignright { float: right; margin: 0.3em 0 1em 1.5em; max-width: 50%; }
.entry-content .aligncenter { margin-left: auto; margin-right: auto; }
.entry-content::after { content: ""; display: table; clear: both; }

.entry-content .wp-block-table, .entry-content .table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.entry-content table { width: 100%; border-collapse: collapse; font-family: var(--font-sans); font-size: var(--text-sm); line-height: 1.4; }
.entry-content > table { display: block; overflow-x: auto; }
.entry-content th, .entry-content td { padding: 10px 12px; border-bottom: 1px solid var(--color-rule); text-align: left; vertical-align: top; white-space: nowrap; }
.entry-content th { font-weight: 600; border-bottom: 1px solid var(--color-ink); }
.entry-content .wp-block-table table { border: 0; }
.entry-content .wp-block-table thead { border-bottom: 0; }
.entry-content .wp-block-table tfoot { border-top: 0; }
.entry-content .wp-block-table th, .entry-content .wp-block-table td { border: 0; border-bottom: 1px solid var(--color-rule); }
.entry-content .wp-block-table th { border-bottom-color: var(--color-ink); }

.entry-content iframe, .entry-content video, .entry-content embed, .entry-content object { max-width: 100%; }
.entry-content .wp-block-embed { margin: 2em 0; }
.entry-content .wp-block-embed__wrapper { position: relative; }
.entry-content .wp-has-aspect-ratio .wp-block-embed__wrapper { aspect-ratio: 16 / 9; }
.entry-content .wp-has-aspect-ratio .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

.entry-content code, .entry-content kbd { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 0.85em; background: var(--color-code); padding: 0.1em 0.3em; }
.entry-content pre { font-family: ui-monospace, "SFMono-Regular", Consolas, monospace; font-size: 0.8em; line-height: 1.5; background: var(--color-code); padding: var(--space-4); overflow-x: auto; }
.entry-content pre code { background: none; padding: 0; }
.entry-content .has-text-align-center { text-align: center; }
.entry-content .has-text-align-right { text-align: right; }
.entry-content .wp-block-separator { width: 80px; margin: 2em auto; border: 0; border-top: 1px solid var(--color-ink); }
.entry-content .wp-block-buttons a, .entry-content .wp-block-button__link { display: inline-block; padding: 10px 18px; border: 1px solid var(--color-ink); text-decoration: none; font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; }
.entry-content .wp-block-columns { display: flex; flex-wrap: wrap; gap: var(--gutter); }
.entry-content .wp-block-column { flex: 1 1 220px; min-width: 0; }
.entry-content .wp-block-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--space-3); }
.page-links { font-family: var(--font-sans); font-size: var(--text-sm); margin-top: var(--space-5); }

/* ---------- Article footer blocks ---------- */
.article__footer { margin-top: var(--space-7); display: flex; flex-direction: column; gap: var(--space-6); }
.source-box { padding: var(--space-4) 0; border-top: 1px solid var(--color-rule); border-bottom: 1px solid var(--color-rule); font-family: var(--font-sans); font-size: var(--text-sm); }
.source-box p { margin-top: var(--space-2); }
.source-box a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.tags { font-family: var(--font-sans); font-size: var(--text-sm); }
.tags__list { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-2); }
.tags__list a { display: inline-block; padding: 5px 10px; border: 1px solid var(--color-rule); }
.tags__list a:hover { border-color: var(--color-accent); }
.share { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 500; }
.share__list { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); }
.share__list a, .share__copy { display: inline-block; padding: var(--space-1) 0; }
.share__copy { background: none; border: 0; padding: var(--space-1) 0; font-weight: 500; }
.share__copy:hover { color: var(--color-accent); }
.share__status { font-weight: 400; color: var(--color-ink-2); }
.author-box { border-top: 1px solid var(--color-ink); padding-top: var(--space-5); }
.author-box__name { font-family: var(--font-sans); font-size: var(--text-md); font-weight: 600; margin-top: var(--space-2); }
.author-box__bio { color: var(--color-ink-2); font-size: 16px; line-height: 1.5; margin-top: var(--space-2); }
.author-box__more { font-family: var(--font-sans); font-size: var(--text-sm); margin-top: var(--space-3); }
.related { margin-top: var(--space-7); }

/* ---------- Page ---------- */
.page__header { max-width: 680px; margin: var(--space-6) auto var(--space-5); padding-bottom: var(--space-4); border-bottom: 1px solid var(--color-ink); }
.page__title { font-family: var(--font-serif); font-weight: 600; font-size: var(--text-2xl); line-height: 1.15; letter-spacing: -0.01em; }
@media (min-width: 900px) {
	.page__header { margin-top: var(--space-7); }
	.page__title { font-size: 40px; }
}

/* ---------- Comments ---------- */
.comments { max-width: 680px; margin: var(--space-7) auto 0; padding-top: var(--space-5); border-top: 1px solid var(--color-ink); font-size: var(--text-md); }
.comments__title, .comments__reply-title { font-family: var(--font-sans); font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: var(--space-4); }
.comments__list .comment { padding: var(--space-4) 0; border-bottom: 1px solid var(--color-rule); }
.comments__list .children { padding-left: var(--space-5); }
.comment-meta { font-family: var(--font-sans); font-size: var(--text-xs); color: var(--color-ink-2); margin-bottom: var(--space-2); }
.comment-content p { margin-bottom: 0.8em; }
.comment-reply-link, .comment-edit-link { font-family: var(--font-sans); font-size: var(--text-xs); text-decoration: underline; }
.comment-form { margin-top: var(--space-5); font-family: var(--font-sans); font-size: var(--text-sm); }
.comment-form p { margin-bottom: var(--space-3); }
.comment-form label { display: block; margin-bottom: var(--space-1); }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--color-ink); background: var(--color-bg); font-family: var(--font-sans); font-size: 16px; appearance: none; }
.comment-form .submit { padding: 10px 18px; border: 1px solid var(--color-ink); background: var(--color-ink); color: var(--color-bg); font-weight: 500; }
.comments__closed { color: var(--color-ink-2); font-family: var(--font-sans); font-size: var(--text-sm); margin-top: var(--space-4); }

/* ---------- Footer ---------- */
.site-footer { border-top: 1px solid var(--color-ink); margin-top: var(--space-7); padding: var(--space-6) 0 var(--space-6); font-family: var(--font-sans); font-size: var(--text-sm); }
.footer__brand { font-family: var(--font-serif); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; font-size: 18px; margin-bottom: var(--space-2); }
.footer__brand a:hover { color: var(--color-ink); }
.footer__heading { font-family: var(--font-sans); font-size: var(--text-xs); letter-spacing: 0.1em; text-transform: uppercase; color: var(--color-ink-2); margin-bottom: var(--space-2); font-weight: 600; }
.footer__col + .footer__col, .footer__col > nav + .footer__heading { margin-top: var(--space-4); }
.footer__list a { display: inline-block; padding: 4px 0; }
.footer__bottom { border-top: 1px solid var(--color-rule); margin-top: var(--space-6); padding-top: var(--space-4); display: flex; justify-content: space-between; color: var(--color-ink-2); font-size: var(--text-xs); flex-wrap: wrap; gap: var(--space-3); }
@media (min-width: 600px) {
	.footer__brand, .footer__col { grid-column: span 6; }
	.footer__col + .footer__col { margin-top: 0; }
}
@media (min-width: 900px) {
	.site-footer { padding: var(--space-7) 0 var(--space-6); }
	.footer__brand, .footer__col { grid-column: span 3; }
}

/* ---------- Editor preset classes (theme.json palette / sizes, global-styles is not loaded) ---------- */
.has-base-color { color: var(--color-bg); }
.has-ink-color { color: var(--color-ink); }
.has-ink-2-color { color: var(--color-ink-2); }
.has-rule-color { color: var(--color-rule); }
.has-accent-color { color: var(--color-accent); }
.has-base-background-color { background-color: var(--color-bg); }
.has-ink-background-color { background-color: var(--color-ink); }
.has-ink-2-background-color { background-color: var(--color-ink-2); }
.has-rule-background-color { background-color: var(--color-rule); }
.has-accent-background-color { background-color: var(--color-accent); }
.has-small-font-size { font-size: 0.8125rem; }
.has-medium-font-size { font-size: 1.1875rem; }
.has-large-font-size { font-size: 1.5rem; }
.has-x-large-font-size { font-size: 2rem; }
.has-serif-font-family { font-family: var(--font-serif); }
.has-sans-font-family { font-family: var(--font-sans); }
