/*
Theme Name: The Crypto Economy
Theme URI: https://www.thecryptoeconomy.com/
Description: Editorial theme for thecryptoeconomy.com: news hub homepage, articles with bylines, crypto events calendar with city pages, glossary, rankings, reviews, fees index, country hubs, provider catalogue, partner content and newsletter. Built to work with Rank Math.
Version: 2.1.0
Requires at least: 6.4
Requires PHP: 8.0
Author: The Crypto Economy
Text Domain: tce
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

/*
Design notes (read before changing anything):
- Every colour, font, size and gap goes through a token in :root. No literal values below it.
- Labels, nav links, meta and captions: the body face, one step smaller, sentence case, never tracked capitals.
- No label above a headline. A story's section sits in its meta line, under the headline.
- Meta is split by thin vertical rules, never by middle dots.
- Structure comes from rules: hairline for ordinary breaks, a 2px ink rule over a section, a double rule for the masthead and the colophon.
- Two weights only: 400 and 600.
*/

/* ---------- Fonts (self-hosted, OFL) ---------- */
@font-face { font-family: "Newsreader"; src: url("assets/fonts/newsreader-latin-wght-normal.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Newsreader"; src: url("assets/fonts/newsreader-latin-ext-wght-normal.woff2") format("woff2"); font-weight: 200 800; font-style: normal; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Newsreader"; src: url("assets/fonts/newsreader-latin-wght-italic.woff2") format("woff2"); font-weight: 200 800; font-style: italic; font-display: swap; }
@font-face { font-family: "Public Sans"; src: url("assets/fonts/public-sans-latin-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Public Sans"; src: url("assets/fonts/public-sans-latin-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Public Sans"; src: url("assets/fonts/public-sans-latin-ext-400-normal.woff2") format("woff2"); font-weight: 400; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Public Sans"; src: url("assets/fonts/public-sans-latin-ext-600-normal.woff2") format("woff2"); font-weight: 600; font-display: swap; unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ---------- Tokens ---------- */
:root {
	/* Colour: neutrals tinted toward the green accent, OKLCH. */
	--tce-bg: oklch(98.6% 0.004 150);
	--tce-panel: oklch(95.6% 0.007 150);
	--tce-placeholder: oklch(93.4% 0.008 150);
	--tce-field: oklch(99.3% 0.003 150);
	--tce-ink: oklch(21% 0.012 175);
	--tce-ink-2: oklch(36% 0.014 175);
	--tce-muted: oklch(43% 0.014 175);
	--tce-faint: oklch(49% 0.014 175);
	--tce-rule: oklch(88.5% 0.008 165);
	--tce-rule-strong: oklch(68% 0.012 170);
	--tce-accent: oklch(46.9% 0.097 164);
	--tce-on-accent: oklch(98.6% 0.004 150);
	--tce-on-ink: oklch(98.6% 0.004 150);
	--tce-on-ink-2: oklch(84.5% 0.01 170);
	--tce-on-ink-3: oklch(76% 0.012 170);
	--tce-on-ink-ok: oklch(85% 0.08 166);
	--tce-on-ink-error: oklch(82% 0.078 29);
	--tce-ok-bg: oklch(94.8% 0.018 170);
	--tce-ok-ink: oklch(38.7% 0.078 163);
	--tce-error-bg: oklch(94.3% 0.022 28);
	--tce-error-ink: oklch(42.3% 0.139 30);

	/* Type. */
	--tce-serif: "Newsreader", Georgia, "Times New Roman", serif;
	--tce-sans: "Public Sans", "Helvetica Neue", Arial, sans-serif;
	--tce-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	--text-xs: 0.8125rem;
	--text-sm: 0.875rem;
	--text-base: 1rem;
	--text-md: 1.125rem;
	--text-lg: 1.25rem;
	--text-title: 1.5rem;
	--text-title-l: 1.875rem;
	--text-section: clamp(1.75rem, 2.6vw, 2.25rem);
	--text-display-s: clamp(2rem, 4.4vw, 3.25rem);
	--text-display: clamp(2.25rem, 4.2vw, 3.25rem);
	--text-masthead: clamp(2.5rem, 7vw, 5rem);
	--weight-regular: 400;
	--weight-strong: 600;
	--tracking-display: -0.015em;

	/* Space. */
	--space-3xs: 2px;
	--space-2xs: 4px;
	--space-xs: 8px;
	--space-sm: 12px;
	--space-md: 16px;
	--space-lg: 24px;
	--space-xl: 40px;
	--space-2xl: 64px;
	--space-3xl: 96px;
	--space-4xl: 144px;

	/* Frame. */
	--tce-wrap: 1240px;
	--tce-text: 720px;
	--tce-gutter: clamp(16px, 4vw, 40px);
	--rule-hair: 1px;
	--rule-section: 2px;
	--control-h: 48px;
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overflow-x: clip; }
body { margin: 0; overflow-x: clip; background: var(--tce-bg); color: var(--tce-ink); font-family: var(--tce-sans); font-size: var(--text-base); font-weight: var(--weight-regular); line-height: 1.55; text-rendering: optimizeLegibility; font-synthesis: none; }
img, svg, video { max-width: 100%; height: auto; }
a { color: var(--tce-ink); text-decoration: none; }
a:hover { color: var(--tce-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
:focus-visible { outline: 2px solid var(--tce-accent); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--tce-serif); font-weight: var(--weight-strong); line-height: 1.15; letter-spacing: var(--tracking-display); margin: 0; text-wrap: balance; overflow-wrap: break-word; min-width: 0; }
p { margin: 0 0 1em; text-wrap: pretty; }
strong, b { font-weight: var(--weight-strong); }
button, input, select, textarea { font: inherit; }
::selection { background: color-mix(in oklab, var(--tce-accent) 18%, transparent); }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; top: var(--space-xs); left: var(--space-xs); z-index: 1000; width: auto; height: auto; clip: auto; padding: var(--space-xs) var(--space-sm); background: var(--tce-ink); color: var(--tce-on-ink); }
.wrap { max-width: var(--tce-wrap); margin: 0 auto; padding-left: var(--tce-gutter); padding-right: var(--tce-gutter); }
.section { padding-top: var(--space-2xl); }
.section--wide { padding-top: var(--space-3xl); }
.meta { font-size: var(--text-sm); color: var(--tce-faint); }
.meta a { font-weight: var(--weight-strong); color: var(--tce-ink); }
.media { display: block; overflow: hidden; background: var(--tce-placeholder); }
.media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.media--16x9 { aspect-ratio: 16 / 9; }
.media--16x10 { aspect-ratio: 16 / 10; }
.empty-state { padding: var(--space-xl) 0; color: var(--tce-muted); }

/* Meta line: items parted by a thin vertical rule, never by dots. */
.meta-line { margin: 0; overflow: hidden; overflow: clip; overflow-clip-margin: 3px; font-size: var(--text-sm); line-height: 1.4; color: var(--tce-faint); }
/* Every item carries its rule on the left; the row is pulled left so the first rule of each line is clipped. */
.meta-line__row { display: flex; flex-wrap: wrap; align-items: center; row-gap: var(--space-2xs); margin-left: calc(-1 * (var(--space-sm) + var(--rule-hair))); }
.meta-line__item { display: inline-flex; align-items: center; gap: var(--space-xs); padding-left: var(--space-sm); margin-right: var(--space-sm); border-left: var(--rule-hair) solid var(--tce-rule-strong); }
.meta-line a { color: var(--tce-ink); font-weight: var(--weight-strong); }
.meta-line a.meta-line__section { color: var(--tce-accent); }
.meta-line time { font-variant-numeric: tabular-nums; }

/* Buttons: one filled primary, one ruled secondary. */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: var(--control-h); padding: 0 var(--space-lg); border: var(--rule-hair) solid transparent; background: var(--tce-accent); color: var(--tce-on-accent); font-weight: var(--weight-strong); font-size: var(--text-base); white-space: nowrap; cursor: pointer; text-decoration: none; }
.btn:hover { color: var(--tce-on-accent); background: color-mix(in oklab, var(--tce-accent) 88%, var(--tce-ink)); text-decoration: none; }
.btn:active { background: color-mix(in oklab, var(--tce-accent) 78%, var(--tce-ink)); }
.btn:disabled, .btn[aria-disabled="true"] { opacity: 0.55; cursor: not-allowed; }
.btn--ghost { background: transparent; color: var(--tce-ink); border-color: var(--tce-ink); }
.btn--ghost:hover { color: var(--tce-ink); background: var(--tce-panel); }
.btn--ghost:active { background: var(--tce-placeholder); }

/* Section heads: a 2px ink rule over the head, the link at the right. */
.section-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-xs) var(--space-md); border-top: var(--rule-section) solid var(--tce-ink); padding-top: var(--space-sm); margin-bottom: var(--space-xs); }
.section-head h2 { font-size: var(--text-section); }
.section-head a { font-size: var(--text-sm); font-weight: var(--weight-strong); color: var(--tce-accent); }

/* ---------- Header ---------- */
.utility { border-bottom: var(--rule-hair) solid var(--tce-rule); }
.utility__inner { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); align-items: center; justify-content: space-between; padding-top: var(--space-2xs); padding-bottom: var(--space-2xs); font-size: var(--text-sm); color: var(--tce-muted); }
.utility__links { display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-lg); align-items: center; }
.utility__links a { color: var(--tce-muted); }
.icon-btn { width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; padding: 0; color: var(--tce-ink); cursor: pointer; }
.icon-btn:hover { color: var(--tce-accent); }
.search-panel { border-bottom: var(--rule-hair) solid var(--tce-rule); padding: var(--space-md) 0; }
.search-panel[hidden] { display: none; }
.search-form { display: flex; gap: var(--space-xs); max-width: 640px; }
.search-form input[type="search"] { flex: 1; min-width: 0; height: var(--control-h); padding: 0 var(--space-sm); border: var(--rule-hair) solid var(--tce-faint); background: var(--tce-field); color: var(--tce-ink); }
.masthead { text-align: center; padding-top: var(--space-xl); padding-bottom: var(--space-lg); }
.masthead__title { margin: 0; font-family: var(--tce-serif); font-size: var(--text-masthead); font-weight: var(--weight-strong); letter-spacing: -0.02em; line-height: 1; }
.masthead__title a { color: var(--tce-ink); text-decoration: none; }
.masthead__logo img { max-height: 96px; width: auto; }
.masthead__tagline { margin: var(--space-sm) 0 0; font-family: var(--tce-serif); font-style: italic; font-size: var(--text-lg); color: var(--tce-muted); }
.mainnav__bar { border-top: 4px double var(--tce-ink); border-bottom: var(--rule-hair) solid var(--tce-ink); }
.mainnav ul { list-style: none; margin: 0; padding: var(--space-sm) 0; display: flex; justify-content: center; gap: var(--space-2xs) var(--space-xl); flex-wrap: wrap; font-size: var(--text-base); font-weight: var(--weight-strong); }
.mainnav li { margin: 0; }
.mainnav a { display: inline-block; padding: var(--space-3xs) 0; white-space: nowrap; }
.mainnav .current-menu-item > a, .mainnav .current-category-ancestor > a, .mainnav .current-post-ancestor > a { color: var(--tce-accent); text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.35em; }
@media (max-width: 720px) {
	.mainnav ul { flex-wrap: nowrap; justify-content: flex-start; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: var(--space-lg); padding-left: var(--space-3xs); }
	.mainnav ul::-webkit-scrollbar { display: none; }
	.mainnav li { flex: 0 0 auto; }
	.masthead { padding-top: var(--space-lg); }
}

/* ---------- Home: lead ---------- */
.lead-grid { display: flex; flex-wrap: wrap; gap: var(--space-xl); padding-top: var(--space-xl); }
.lead { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-md); }
.lead h1, .lead h2.lead__title { font-size: var(--text-display); line-height: 1.08; }
.lead__dek { margin: 0; font-size: var(--text-md); color: var(--tce-ink-2); max-width: 62ch; }
.secondary { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-lg); }
.secondary article { display: flex; flex-direction: column; gap: var(--space-xs); padding-bottom: var(--space-lg); border-bottom: var(--rule-hair) solid var(--tce-rule); }
.secondary article:first-child { padding-top: var(--space-sm); border-top: var(--rule-section) solid var(--tce-ink); }
.secondary h2 { font-size: var(--text-title); line-height: 1.2; }
.secondary p { margin: 0; font-size: var(--text-base); color: var(--tce-ink-2); }
.secondary .meta-line { margin-top: var(--space-2xs); }
.lead--row { flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--space-lg) var(--space-xl); }
.lead--row .media { flex: 1.4 1 520px; min-width: 0; }
.lead__text { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-md); }

/* ---------- Home: latest + sidebar ---------- */
.split { display: flex; flex-wrap: wrap; gap: var(--space-2xl) var(--space-2xl); }
.split__main { flex: 999 1 560px; min-width: 0; }
.split__aside { flex: 1 1 320px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-xl); }
.river-item { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: var(--space-2xs) var(--space-lg); padding: var(--space-md) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); }
.river-item__meta { display: flex; flex-direction: column; gap: var(--space-3xs); font-size: var(--text-sm); line-height: 1.35; }
.river-item__meta time { color: var(--tce-faint); font-variant-numeric: tabular-nums; }
.river-item__meta a { color: var(--tce-accent); font-weight: var(--weight-strong); }
.river-item__body { min-width: 0; display: flex; flex-direction: column; gap: var(--space-2xs); }
.river-item h3 { font-size: var(--text-lg); line-height: 1.3; }
@media (max-width: 540px) {
	.river-item { grid-template-columns: minmax(0, 1fr); }
	.river-item__meta { flex-direction: row; gap: var(--space-sm); }
}
.mostread { list-style: none; margin: 0; padding: 0; }
.mostread li { display: flex; gap: var(--space-md); padding: var(--space-sm) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); }
.mostread__n { flex: 0 0 1.75rem; font-family: var(--tce-serif); font-size: var(--text-title-l); line-height: 1; color: var(--tce-accent); font-variant-numeric: tabular-nums; }
.mostread a { font-family: var(--tce-serif); font-size: var(--text-md); line-height: 1.3; font-weight: var(--weight-strong); }
.partner-box { background: var(--tce-panel); border-top: var(--rule-hair) solid var(--tce-rule-strong); padding: var(--space-md) var(--space-lg) var(--space-lg); display: flex; flex-direction: column; gap: var(--space-xs); }
.label-paid { align-self: flex-start; font-size: var(--text-sm); font-weight: var(--weight-strong); color: var(--tce-ink-2); }
.partner-box a.partner-box__title { font-family: var(--tce-serif); font-size: var(--text-md); line-height: 1.3; font-weight: var(--weight-strong); }
.partner-box p { margin: 0; font-size: var(--text-sm); color: var(--tce-faint); }

/* ---------- Home: category blocks ---------- */
.cat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: var(--space-xl); }
.cat-block { display: flex; flex-direction: column; min-width: 0; }
.cat-block__head { border-top: var(--rule-section) solid var(--tce-ink); padding-top: var(--space-sm); margin-bottom: var(--space-md); }
.cat-block__head h2 { font-size: var(--text-title); }
.cat-block h3 { margin-top: var(--space-sm); font-size: var(--text-lg); line-height: 1.25; }
.cat-block__more-item { margin-top: var(--space-sm); padding-top: var(--space-sm); border-top: var(--rule-hair) solid var(--tce-rule); font-size: var(--text-base); line-height: 1.4; }
.cat-block__all { margin-top: var(--space-md); font-size: var(--text-sm); font-weight: var(--weight-strong); color: var(--tce-accent); }

/* ---------- Writers ---------- */
.writers { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: var(--space-lg); padding-top: var(--space-lg); }
.writer { display: flex; gap: var(--space-sm); align-items: center; min-width: 0; }
.writer__name { font-weight: var(--weight-strong); }
.writer__beat { font-size: var(--text-sm); color: var(--tce-muted); }
.writers-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-xs) var(--space-md); border-top: var(--rule-hair) solid var(--tce-rule-strong); padding-top: var(--space-sm); }
.writers-head h2 { font-size: var(--text-title); }
.writers-head a { font-size: var(--text-sm); font-weight: var(--weight-strong); color: var(--tce-accent); }

/* ---------- Avatars ---------- */
.avatar-img { border-radius: 50%; background: var(--tce-placeholder); object-fit: cover; flex-shrink: 0; }
.avatar-initials { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--tce-panel); border: var(--rule-hair) solid var(--tce-rule); color: var(--tce-ink); font-family: var(--tce-serif); font-weight: var(--weight-strong); line-height: 1; flex-shrink: 0; }
.author-box .avatar-initials { background: var(--tce-bg); }

/* ---------- Newsletter ---------- */
/* The ink band (homepage and /newsletter/). */
.newsletter { background: var(--tce-ink); color: var(--tce-on-ink); padding: clamp(var(--space-lg), 5vw, var(--space-2xl)); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(360px, 100%), 1fr)); gap: var(--space-lg) var(--space-2xl); align-items: center; }
.newsletter__copy { min-width: 0; }
.newsletter h2 { font-size: var(--text-section); line-height: 1.15; color: var(--tce-on-ink); }
.newsletter__copy p { margin: var(--space-sm) 0 0; font-size: var(--text-md); color: var(--tce-on-ink-2); }
.newsletter .newsletter-form label { color: var(--tce-on-ink-2); }
.newsletter .newsletter-form__note { color: var(--tce-on-ink-3); }
.newsletter .newsletter-form__note a { color: var(--tce-on-ink); }
.newsletter .newsletter-form__msg.is-ok { color: var(--tce-on-ink-ok); }
.newsletter .newsletter-form__msg.is-error { color: var(--tce-on-ink-error); }
.newsletter .btn { border-color: var(--tce-accent); }
/* The form, wherever it sits. */
.newsletter-form { min-width: 0; display: flex; flex-wrap: wrap; gap: var(--space-sm); align-items: flex-end; }
.newsletter-form__field { flex: 1 1 220px; display: flex; flex-direction: column; gap: var(--space-2xs); min-width: 0; }
.newsletter-form label { font-size: var(--text-sm); color: var(--tce-muted); }
.newsletter-form input[type="email"] { height: var(--control-h); padding: 0 var(--space-sm); border: var(--rule-hair) solid var(--tce-faint); background: var(--tce-field); color: var(--tce-ink); font-size: var(--text-base); }
.newsletter-form__note { flex: 1 1 100%; margin: 0; font-size: var(--text-xs); color: var(--tce-faint); }
.newsletter-form__note a { color: inherit; text-decoration: underline; }
.newsletter-form__msg { flex: 1 1 100%; margin: 0; font-size: var(--text-sm); font-weight: var(--weight-strong); }
.newsletter-form__msg:empty { display: none; }
.newsletter-form__msg.is-ok { color: var(--tce-ok-ink); }
.newsletter-form__msg.is-error { color: var(--tce-error-ink); }
/* In an article: a ruled well, not a band. */
.nl-inline { margin-top: var(--space-xl); padding: var(--space-lg) 0; border-top: var(--rule-section) solid var(--tce-ink); border-bottom: var(--rule-hair) solid var(--tce-rule); display: grid; gap: var(--space-md); }
.nl-inline h2 { font-size: var(--text-title); }
.nl-inline p.nl-inline__text { margin: 0; color: var(--tce-ink-2); }
.hp-field { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

/* ---------- Colophon (footer) ---------- */
.colophon { padding-top: var(--space-3xl); padding-bottom: var(--space-xl); }
.colophon__grid { border-top: 4px double var(--tce-ink); padding-top: var(--space-lg); display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--space-lg) var(--space-2xl); }
.colophon__name { margin: 0; font-family: var(--tce-serif); font-size: clamp(2rem, 3.6vw, 3rem); font-weight: var(--weight-strong); letter-spacing: -0.02em; line-height: 1.05; }
.colophon__name a { color: var(--tce-ink); }
.colophon__about { margin: var(--space-sm) 0 0; font-family: var(--tce-serif); font-style: italic; font-size: var(--text-md); color: var(--tce-muted); max-width: 34ch; }
.colophon__index { display: flex; flex-direction: column; }
.colophon__row { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: var(--space-2xs) var(--space-md); padding: var(--space-sm) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); font-size: var(--text-sm); }
.colophon__row:first-child { padding-top: 0; }
.colophon__label { margin: 0; font-family: var(--tce-sans); font-size: var(--text-sm); font-weight: var(--weight-regular); letter-spacing: 0; color: var(--tce-faint); }
.colophon__row ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-lg); }
.colophon__row a { white-space: nowrap; }
.colophon__legal { margin: var(--space-xl) 0 0; font-size: var(--text-sm); color: var(--tce-muted); max-width: 90ch; line-height: 1.6; }
.colophon__copy { margin: var(--space-sm) 0 0; font-size: var(--text-sm); color: var(--tce-faint); }
@media (max-width: 860px) {
	.colophon__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 480px) {
	.colophon__row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Archives ---------- */
.archive-head { padding-top: var(--space-xl); }
.archive-head h1 { font-size: var(--text-display-s); line-height: 1.08; }
.archive-head .search-form, .not-found .search-form { margin-top: var(--space-md); }
.archive-head .archive-desc { margin-top: var(--space-sm); font-size: var(--text-md); color: var(--tce-ink-2); max-width: 70ch; }
.card-list { display: flex; flex-direction: column; }
.card-list--spaced { padding-top: var(--space-lg); }
.card-row { display: flex; flex-wrap: wrap; gap: var(--space-md) var(--space-lg); padding: var(--space-lg) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); }
.card-row__media { flex: 0 1 280px; min-width: 0; }
.card-row__body { flex: 1 1 360px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-xs); }
.card-row h2, .card-row h3 { font-size: var(--text-title); line-height: 1.2; }
.card-row p { margin: 0; color: var(--tce-ink-2); max-width: 70ch; }
.pagination { padding: var(--space-xl) 0 0; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.pagination .page-numbers { min-width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; padding: 0 var(--space-sm); border: var(--rule-hair) solid var(--tce-rule); font-weight: var(--weight-strong); }
.pagination .page-numbers.current { background: var(--tce-ink); color: var(--tce-on-ink); border-color: var(--tce-ink); }

/* ---------- Breadcrumbs ---------- */
.breadcrumbs, .rank-math-breadcrumb { font-size: var(--text-sm); color: var(--tce-faint); padding-top: var(--space-lg); }
.rank-math-breadcrumb p { margin: 0; }
.rank-math-breadcrumb .separator { margin: 0 var(--space-xs); }
.breadcrumbs a, .rank-math-breadcrumb a { color: var(--tce-muted); }

/* ---------- Article ---------- */
.article { max-width: var(--tce-text); margin: 0 auto; }
.article__head { padding-top: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-md); }
.article__head h1 { font-size: var(--text-display-s); line-height: 1.08; }
.article__dek { margin: 0; font-size: var(--text-lg); line-height: 1.45; color: var(--tce-ink-2); }
.article__meta { border-top: var(--rule-hair) solid var(--tce-rule); border-bottom: var(--rule-hair) solid var(--tce-rule); padding: var(--space-sm) 0; }
.article__figure { margin: var(--space-lg) auto 0; max-width: 960px; }
.article__figure img { display: block; width: 100%; height: auto; }
.article__figure figcaption, .entry-content figcaption { font-size: var(--text-sm); color: var(--tce-faint); padding-top: var(--space-xs); }
.notice { margin: var(--space-lg) 0 0; padding: var(--space-sm) var(--space-md); background: var(--tce-panel); font-size: var(--text-sm); color: var(--tce-ink-2); }
.notice strong { color: var(--tce-ink); }
.toc { margin: var(--space-lg) 0 0; padding: var(--space-md) 0; border-top: var(--rule-section) solid var(--tce-ink); border-bottom: var(--rule-hair) solid var(--tce-rule); }
.toc__title { margin: 0 0 var(--space-xs); font-family: var(--tce-serif); font-size: var(--text-lg); font-weight: var(--weight-strong); }
.toc ol { margin: 0; padding-left: var(--space-lg); display: flex; flex-direction: column; gap: var(--space-2xs); }
.entry-content { padding-top: var(--space-lg); font-size: var(--text-md); line-height: 1.7; color: var(--tce-ink); }
.entry-content > * { margin-top: 0; margin-bottom: 1.1em; }
.is-article .entry-content > p:first-of-type::first-letter { float: left; font-family: var(--tce-serif); font-weight: var(--weight-strong); font-size: 3.6em; line-height: 0.8; padding: 0.06em 0.08em 0 0; color: var(--tce-ink); }
.entry-content h2 { font-size: var(--text-title-l); margin-top: 1.6em; margin-bottom: 0.5em; scroll-margin-top: var(--space-md); }
.entry-content h3 { font-size: var(--text-title); margin-top: 1.4em; margin-bottom: 0.4em; }
.entry-content a { color: var(--tce-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.entry-content a:hover { text-decoration-thickness: 2px; }
.entry-content ul, .entry-content ol { padding-left: 1.3em; }
.entry-content li + li { margin-top: 0.35em; }
.entry-content blockquote, .entry-content .wp-block-quote { margin-left: 0; margin-right: 0; padding-left: var(--space-lg); border-left: 3px solid var(--tce-ink); font-family: var(--tce-serif); font-size: var(--text-title); line-height: 1.4; }
.entry-content .wp-block-table, .entry-content .table-scroll { overflow-x: auto; }
.entry-content table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); line-height: 1.45; font-variant-numeric: tabular-nums; }
.entry-content .wp-block-table table { border: 0; }
.entry-content .wp-block-table thead { border-bottom: 0; }
.entry-content th, .entry-content td, .entry-content .wp-block-table td, .entry-content .wp-block-table th { text-align: left; padding: var(--space-xs) var(--space-sm); border: 0; border-bottom: var(--rule-hair) solid var(--tce-rule); vertical-align: top; }
.entry-content th, .entry-content .wp-block-table th { border-bottom: var(--rule-section) solid var(--tce-ink); font-weight: var(--weight-strong); white-space: nowrap; }
.entry-content img { height: auto; }
.entry-content pre, .entry-content code { font-family: var(--tce-mono); font-size: 0.88em; }
.entry-content pre { overflow-x: auto; background: var(--tce-panel); padding: var(--space-sm) var(--space-md); }
.entry-content .wp-block-image, .entry-content figure { margin-left: 0; margin-right: 0; }
.alignwide { max-width: 960px; margin-left: auto; margin-right: auto; }
.tags { display: flex; flex-wrap: wrap; gap: var(--space-xs); padding-top: var(--space-xs); }
.tags a { font-size: var(--text-sm); padding: var(--space-2xs) var(--space-sm); border: var(--rule-hair) solid var(--tce-rule); }
.author-box { margin-top: var(--space-xl); padding: var(--space-lg); background: var(--tce-panel); display: flex; gap: var(--space-md); align-items: flex-start; }
.author-box__name { font-family: var(--tce-serif); font-size: var(--text-title); font-weight: var(--weight-strong); }
.author-box__role { font-size: var(--text-sm); color: var(--tce-muted); margin: var(--space-3xs) 0 var(--space-xs); }
.author-box p { margin: 0 0 var(--space-xs); font-size: var(--text-base); }
.related { padding-top: var(--space-2xl); }
.related-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: var(--space-lg); padding-top: var(--space-md); }
.related-grid article { display: flex; flex-direction: column; gap: var(--space-xs); min-width: 0; }
.related-grid h3 { font-size: var(--text-lg); line-height: 1.25; }

/* ---------- Author page ---------- */
.author-head { padding-top: var(--space-xl); display: flex; flex-wrap: wrap; gap: var(--space-lg); align-items: flex-start; }
.author-head__body { flex: 1 1 420px; min-width: 0; }
.author-head h1 { font-size: var(--text-display-s); }
.author-head__role { margin: var(--space-2xs) 0 var(--space-sm); font-size: var(--text-base); color: var(--tce-muted); }
.author-head__bio { font-size: var(--text-md); color: var(--tce-ink-2); max-width: 70ch; }
.author-links { display: flex; flex-wrap: wrap; gap: var(--space-xs) var(--space-lg); font-size: var(--text-sm); font-weight: var(--weight-strong); }

/* ---------- Events ---------- */
.events-intro { margin-top: var(--space-sm); font-size: var(--text-md); color: var(--tce-ink-2); max-width: 70ch; }
.events-filters { margin-top: var(--space-lg); padding: var(--space-md); background: var(--tce-panel); display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); align-items: flex-end; }
.events-filters__field { display: flex; flex-direction: column; gap: var(--space-2xs); flex: 1 1 160px; min-width: 0; }
.events-filters label { font-size: var(--text-sm); font-weight: var(--weight-strong); color: var(--tce-muted); }
.events-filters select { height: var(--control-h); padding: 0 var(--space-xs); border: var(--rule-hair) solid var(--tce-faint); background: var(--tce-field); color: var(--tce-ink); }
.events-filters__actions { display: flex; gap: var(--space-sm); align-items: center; }
.events-filters + .meta { margin: var(--space-md) 0 0; }
.events-month { padding-top: var(--space-xl); }
.events-month h2 { font-size: var(--text-title-l); border-top: var(--rule-section) solid var(--tce-ink); padding-top: var(--space-sm); }
.event { display: flex; flex-wrap: wrap; gap: var(--space-md) var(--space-lg); padding: var(--space-lg) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); }
.event__date { flex: 0 0 88px; text-align: center; padding: var(--space-xs) var(--space-2xs); border: var(--rule-hair) solid var(--tce-ink); align-self: flex-start; }
.event__day { display: block; font-family: var(--tce-serif); font-size: var(--text-title-l); font-weight: var(--weight-strong); line-height: 1; font-variant-numeric: tabular-nums; }
.event__mon { display: block; margin-top: var(--space-2xs); font-size: var(--text-sm); font-weight: var(--weight-strong); color: var(--tce-muted); }
.event__body { flex: 1 1 360px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-xs); }
.event__body h3 { font-size: var(--text-title); line-height: 1.25; }
.event__desc { margin: 0; font-size: var(--text-base); color: var(--tce-ink-2); }
.event__actions { flex: 0 0 auto; display: flex; flex-direction: column; gap: var(--space-xs); align-self: center; }
.event__actions .meta { text-align: center; }
.event--featured { background: var(--tce-panel); padding: var(--space-lg); border: 0; margin-top: var(--space-sm); }
.events-submit { margin-top: var(--space-2xl); padding: var(--space-lg) 0 0; border-top: 4px double var(--tce-ink); display: flex; flex-wrap: wrap; gap: var(--space-md) var(--space-xl); align-items: center; justify-content: space-between; }
.events-submit h2 { font-size: var(--text-title-l); }
.events-submit p { margin: var(--space-xs) 0 0; color: var(--tce-ink-2); }
.events-submit details { flex: 1 1 100%; }
.events-submit summary { list-style: none; cursor: pointer; display: inline-flex; }
.events-submit summary::-webkit-details-marker { display: none; }
.events-submit details[open] summary { margin-bottom: var(--space-xs); }
.events-past { margin-top: var(--space-2xl); }
.events-past summary { cursor: pointer; font-family: var(--tce-serif); font-size: var(--text-title); font-weight: var(--weight-strong); padding: var(--space-sm) 0; border-top: var(--rule-section) solid var(--tce-ink); }
.events-past .event__date { opacity: 0.7; }
.event-single__facts { margin: var(--space-lg) 0 0; display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--space-xs) var(--space-lg); font-size: var(--text-base); }
.event-single__facts dt { font-weight: var(--weight-strong); }
.event-single__facts dd { margin: 0; color: var(--tce-ink-2); }
.event-single__cta { margin: var(--space-lg) 0 0; }
@media (max-width: 600px) {
	.event { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: var(--space-sm) var(--space-md); }
	.event__date { padding: var(--space-xs) var(--space-2xs); }
	.event__day { font-size: var(--text-title); }
	.event__body { grid-column: 2; grid-row: 1; }
	.event__actions { grid-column: 2; flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--space-xs) var(--space-md); align-self: start; }
	.event--featured { padding: var(--space-md); }
}

/* ---------- Partner content ---------- */
.partner-disclosure { margin-top: var(--space-lg); padding: var(--space-md) 0; border-top: var(--rule-section) solid var(--tce-ink); border-bottom: var(--rule-hair) solid var(--tce-rule); font-size: var(--text-sm); color: var(--tce-ink-2); }

/* ---------- Forms (advertise / contact / events) ---------- */
.tce-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr)); gap: var(--space-md); margin-top: var(--space-md); }
.tce-form__field { display: flex; flex-direction: column; gap: var(--space-2xs); min-width: 0; }
.tce-form__field--full { grid-column: 1 / -1; }
.tce-form label { font-size: var(--text-sm); font-weight: var(--weight-strong); }
.tce-form input, .tce-form select, .tce-form textarea { min-height: var(--control-h); padding: var(--space-xs) var(--space-sm); border: var(--rule-hair) solid var(--tce-faint); background: var(--tce-field); color: var(--tce-ink); }
.tce-form textarea { min-height: 140px; resize: vertical; }
.tce-form__check { display: flex; gap: var(--space-xs); align-items: flex-start; font-weight: var(--weight-regular) !important; }
.tce-form__check input { min-height: auto; width: 18px; height: 18px; margin: var(--space-2xs) 0 0; flex: 0 0 18px; }
.form-msg { padding: var(--space-sm) var(--space-md); font-weight: var(--weight-strong); }
.form-msg--ok { background: var(--tce-ok-bg); color: var(--tce-ok-ink); }
.form-msg--error { background: var(--tce-error-bg); color: var(--tce-error-ink); }

/* ---------- Page ---------- */
.page-content { max-width: var(--tce-text); margin: 0 auto; padding-top: var(--space-xl); }
.page-content h1 { font-size: var(--text-display-s); }
.not-found { max-width: var(--tce-text); margin: 0 auto; padding-top: var(--space-2xl); }
.not-found h1 { font-size: var(--text-display-s); margin-bottom: var(--space-sm); }

/* ---------- Labels ---------- */
.label-opinion { font-weight: var(--weight-strong); color: var(--tce-accent); }

/* ---------- Glossary links in text: a dotted underline marks a definition, a solid one a source. ---------- */
.entry-content a.glossary-link { color: inherit; text-decoration-style: dotted; text-decoration-color: var(--tce-rule-strong); }
.entry-content a.glossary-link:hover { color: var(--tce-accent); text-decoration-color: currentColor; }

/* ---------- Calendar: count line and city strip ---------- */
.events-count { margin-top: var(--space-md); }
.city-strip { margin-top: var(--space-md); display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-xs) var(--space-md); font-size: var(--text-sm); }
.city-strip__label { color: var(--tce-faint); }
.city-strip ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.city-strip a { display: inline-flex; gap: var(--space-2xs); padding: var(--space-2xs) var(--space-sm); border: var(--rule-hair) solid var(--tce-rule); font-weight: var(--weight-strong); }
.city-strip__n { color: var(--tce-faint); font-weight: var(--weight-regular); font-variant-numeric: tabular-nums; }

/* ---------- Wide band: tables that need more than the text column ---------- */
.wide-band { max-width: 960px; margin: var(--space-lg) auto 0; }
.table-note { margin: var(--space-xs) 0 0; }

/* ---------- Data tables (rankings, reviews, fees index) ---------- */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.data-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); line-height: 1.45; font-variant-numeric: tabular-nums; }
.data-table caption { text-align: left; padding: 0 0 var(--space-xs); font-size: var(--text-xs); color: var(--tce-faint); }
.data-table th, .data-table td { text-align: left; padding: var(--space-xs) var(--space-sm); border-bottom: var(--rule-hair) solid var(--tce-rule); vertical-align: top; min-width: 0; }
.data-table thead th { border-bottom: var(--rule-section) solid var(--tce-ink); font-weight: var(--weight-strong); white-space: nowrap; }
.data-table tbody th { font-weight: var(--weight-strong); }
.data-table th:first-child, .data-table td:first-child { padding-left: 0; }
.data-table a { color: var(--tce-accent); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
.data-table__sort { all: unset; cursor: pointer; font: inherit; font-weight: var(--weight-strong); color: inherit; padding-right: 1.1em; position: relative; }
.data-table__sort::after { content: ""; position: absolute; right: 0.2em; top: 50%; width: 0.45em; height: 0.45em; border-right: var(--rule-hair) solid var(--tce-rule-strong); border-bottom: var(--rule-hair) solid var(--tce-rule-strong); transform: translateY(-70%) rotate(45deg); }
th[aria-sort="ascending"] .data-table__sort::after { border-color: var(--tce-accent); transform: translateY(-30%) rotate(225deg); }
th[aria-sort="descending"] .data-table__sort::after { border-color: var(--tce-accent); }
.data-table__sort:focus-visible { outline: 2px solid var(--tce-accent); outline-offset: 2px; }

/* ---------- Method, FAQ, sections inside evergreen pages ---------- */
.method { margin-top: var(--space-lg); padding: var(--space-md) var(--space-lg); background: var(--tce-panel); border-top: var(--rule-section) solid var(--tce-ink); }
.method h2 { font-size: var(--text-lg); margin-bottom: var(--space-xs); }
.method p { margin: 0; font-size: var(--text-base); color: var(--tce-ink-2); }
.method p + p { margin-top: var(--space-xs); }
.data-section { margin-top: var(--space-xl); }
.data-section h2 { font-size: var(--text-title-l); margin-bottom: var(--space-sm); }
.data-section p { color: var(--tce-ink-2); }
.faq { margin-top: var(--space-xl); border-top: var(--rule-section) solid var(--tce-ink); }
.faq h2 { font-size: var(--text-title-l); padding-top: var(--space-sm); margin-bottom: var(--space-xs); }
.faq__item { border-bottom: var(--rule-hair) solid var(--tce-rule); }
.faq__item summary { cursor: pointer; padding: var(--space-sm) 0; font-family: var(--tce-serif); font-size: var(--text-lg); font-weight: var(--weight-strong); line-height: 1.3; list-style: none; display: flex; justify-content: space-between; gap: var(--space-md); }
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary::after { content: "+"; flex: 0 0 auto; color: var(--tce-faint); font-family: var(--tce-sans); font-weight: var(--weight-regular); }
.faq__item[open] summary::after { content: "\2212"; }
.faq__answer { padding: 0 0 var(--space-md); color: var(--tce-ink-2); max-width: 70ch; }
.faq__answer p { margin: 0 0 0.6em; }
.hub-link { margin-top: var(--space-lg); }

/* ---------- Review: verdict, rating, pros and cons, cross links ---------- */
.verdict { margin-top: var(--space-lg); padding: var(--space-lg); background: var(--tce-panel); border-top: var(--rule-section) solid var(--tce-ink); }
.verdict__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-xs) var(--space-md); }
.verdict__head h2 { font-size: var(--text-lg); }
.verdict__text { margin: var(--space-sm) 0 0; font-family: var(--tce-serif); font-size: var(--text-lg); line-height: 1.45; }
.verdict__cta { margin: var(--space-md) 0 0; }
.rating { display: inline-flex; align-items: baseline; gap: var(--space-xs); }
.rating__stars { position: relative; display: inline-block; font-size: var(--text-md); line-height: 1; letter-spacing: 0.03em; color: var(--tce-rule-strong); }
.rating__stars::before { content: "\2605\2605\2605\2605\2605"; }
.rating__fill { position: absolute; left: 0; top: 0; overflow: hidden; white-space: nowrap; color: var(--tce-accent); }
.rating__fill::before { content: "\2605\2605\2605\2605\2605"; }
.rating__num { font-weight: var(--weight-strong); font-variant-numeric: tabular-nums; }
.rating__of { color: var(--tce-faint); font-weight: var(--weight-regular); }
.rating-inline { font-weight: var(--weight-strong); color: var(--tce-ink); }
.pros-cons { margin-top: var(--space-lg); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(280px, 100%), 1fr)); gap: var(--space-lg) var(--space-xl); }
.pros-cons__col { min-width: 0; border-top: var(--rule-hair) solid var(--tce-rule-strong); padding-top: var(--space-sm); }
.pros-cons h2 { font-size: var(--text-lg); margin-bottom: var(--space-xs); }
.pros-cons__list { list-style: none; margin: 0; padding: 0; }
.pros-cons__list li { position: relative; padding-left: var(--space-lg); margin-bottom: var(--space-xs); color: var(--tce-ink-2); }
.pros-cons__list li::before { position: absolute; left: 0; top: 0; font-weight: var(--weight-strong); }
.pros-cons__list--pro li::before { content: "+"; color: var(--tce-accent); }
.pros-cons__list--con li::before { content: "\2212"; color: var(--tce-error-ink); }
.cross-links { margin-top: var(--space-xl); padding-top: var(--space-md); border-top: var(--rule-section) solid var(--tce-ink); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: var(--space-lg) var(--space-xl); }
.cross-links__col { min-width: 0; }
.cross-links h2 { font-size: var(--text-lg); margin-bottom: var(--space-xs); }
.cross-links ul { list-style: none; margin: 0; padding: 0; }
.cross-links li { padding: var(--space-xs) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); font-size: var(--text-base); }
.cross-links li a { font-weight: var(--weight-strong); }
.cross-links .meta { margin: var(--space-xs) 0 0; }

/* ---------- Glossary index and term pages ---------- */
.letter-nav { display: flex; flex-wrap: wrap; gap: var(--space-2xs); margin-top: var(--space-lg); padding-top: var(--space-sm); border-top: var(--rule-section) solid var(--tce-ink); }
.letter-nav a { min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; font-family: var(--tce-serif); font-size: var(--text-md); font-weight: var(--weight-strong); border: var(--rule-hair) solid var(--tce-rule); }
.glossary-group { padding-top: var(--space-xl); display: grid; grid-template-columns: 4rem minmax(0, 1fr); gap: var(--space-md) var(--space-xl); scroll-margin-top: var(--space-md); }
.glossary-group__letter { font-size: var(--text-display-s); line-height: 1; color: var(--tce-accent); }
.glossary-list { margin: 0; border-top: var(--rule-hair) solid var(--tce-rule-strong); }
.glossary-list__item { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 5fr); gap: var(--space-2xs) var(--space-lg); padding: var(--space-sm) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); }
.glossary-list dt { font-family: var(--tce-serif); font-size: var(--text-lg); font-weight: var(--weight-strong); line-height: 1.3; }
.glossary-list dd { margin: 0; color: var(--tce-ink-2); }
@media (max-width: 640px) {
	.glossary-group { grid-template-columns: minmax(0, 1fr); gap: var(--space-xs); }
	.glossary-list__item { grid-template-columns: minmax(0, 1fr); }
}
.term-related, .term-mentions { margin-top: var(--space-xl); padding-top: var(--space-sm); border-top: var(--rule-section) solid var(--tce-ink); }
.term-related h2, .term-mentions h2 { font-size: var(--text-lg); margin-bottom: var(--space-sm); }
.term-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.term-chips a { display: inline-block; padding: var(--space-2xs) var(--space-sm); border: var(--rule-hair) solid var(--tce-rule); font-weight: var(--weight-strong); font-size: var(--text-sm); }
.post-list { list-style: none; margin: 0; padding: 0; }
.post-list li { padding: var(--space-sm) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); }
.post-list li a { font-family: var(--tce-serif); font-size: var(--text-md); font-weight: var(--weight-strong); line-height: 1.3; }
.post-list .meta-line { margin-top: var(--space-3xs); }

/* ---------- Index grids (rankings, reviews, fees, countries, tools) ---------- */
.hub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr)); gap: var(--space-lg) var(--space-xl); padding-top: var(--space-xl); }
.hub-card { min-width: 0; border-top: var(--rule-section) solid var(--tce-ink); padding-top: var(--space-sm); display: flex; flex-direction: column; gap: var(--space-xs); }
.hub-card h2 { font-size: var(--text-title); line-height: 1.2; }
.hub-card p { margin: 0; color: var(--tce-ink-2); }

/* ---------- Country hub ---------- */
.hub__head { padding-top: var(--space-xl); }
.hub__head .meta-line { margin-top: var(--space-sm); }
.facts { margin: var(--space-lg) 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); gap: 0 var(--space-xl); border-top: var(--rule-section) solid var(--tce-ink); border-bottom: var(--rule-hair) solid var(--tce-rule); }
.facts__item { padding: var(--space-sm) 0; min-width: 0; }
.facts__item--wide { grid-column: 1 / -1; border-top: var(--rule-hair) solid var(--tce-rule); }
.facts dt { font-size: var(--text-sm); color: var(--tce-faint); }
.facts dd { margin: var(--space-3xs) 0 0; font-size: var(--text-md); line-height: 1.45; }
.facts dd a { font-weight: var(--weight-strong); color: var(--tce-accent); }
.hub__cols { display: flex; flex-wrap: wrap; gap: var(--space-2xl); padding-top: var(--space-lg); }
.hub__main { flex: 999 1 520px; min-width: 0; }
.hub__aside { flex: 1 1 300px; min-width: 0; display: flex; flex-direction: column; gap: var(--space-xl); }
.hub__main .entry-content { padding-top: 0; }
.hub-section { margin-top: var(--space-xl); }
.hub__aside .hub-section { margin-top: 0; }
.hub-section .section-head h2 { font-size: var(--text-title); }
.hub-section .term-chips { margin-top: var(--space-sm); }
.entrants { margin: 0 0 var(--space-md); padding-left: 1.4em; font-size: var(--text-md); line-height: 1.6; }
.entrants a { font-weight: var(--weight-strong); }

/* ---------- Provider catalogue ---------- */
.provider-list { display: flex; flex-direction: column; padding-top: var(--space-lg); }
.provider { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: var(--space-md) var(--space-lg); padding: var(--space-lg) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); align-items: start; }
.provider--featured { background: var(--tce-panel); padding: var(--space-lg); border-bottom: 0; margin-bottom: var(--space-xs); }
.provider__logo { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border: var(--rule-hair) solid var(--tce-rule); background: var(--tce-field); overflow: hidden; }
.provider__logo img { width: 100%; height: 100%; object-fit: contain; }
.provider__initial { font-family: var(--tce-serif); font-size: var(--text-title-l); font-weight: var(--weight-strong); color: var(--tce-faint); }
.provider__body { min-width: 0; display: flex; flex-direction: column; gap: var(--space-xs); }
.provider__name { font-size: var(--text-title); line-height: 1.2; }
.provider__desc { margin: 0; color: var(--tce-ink-2); max-width: 70ch; }
.provider__facts { margin: var(--space-2xs) 0 0; display: flex; flex-wrap: wrap; gap: var(--space-2xs) var(--space-lg); font-size: var(--text-sm); }
.provider__facts > div { display: flex; gap: var(--space-xs); min-width: 0; }
.provider__facts dt { color: var(--tce-faint); }
.provider__facts dd { margin: 0; }
.provider__actions { align-self: center; }
@media (max-width: 640px) {
	.provider { grid-template-columns: 48px minmax(0, 1fr); }
	.provider__logo { width: 48px; height: 48px; }
	.provider__actions { grid-column: 2; align-self: start; }
}
.cat-grid--providers { padding-top: var(--space-xl); }
.cat-block__desc { margin: 0; color: var(--tce-ink-2); }
.providers-note { margin-top: var(--space-xl); }
.page-content--wide { max-width: none; }
.page-content--wide .archive-head { padding-top: var(--space-lg); }
.page-content--wide .entry-content.article { padding-top: var(--space-lg); margin-left: 0; }

/* ---------- Fees index: CSV gate ---------- */
.csv-gate { margin-top: var(--space-xl); padding: var(--space-lg) 0; border-top: var(--rule-section) solid var(--tce-ink); border-bottom: var(--rule-hair) solid var(--tce-rule); display: grid; gap: var(--space-md); }
.csv-gate h2 { font-size: var(--text-title); }
.csv-gate p { margin: 0; color: var(--tce-ink-2); }

/* ---------- Corrections ---------- */
.correction { margin-top: var(--space-lg); padding: var(--space-sm) var(--space-md); border-left: 3px solid var(--tce-accent); background: var(--tce-panel); font-size: var(--text-sm); color: var(--tce-ink-2); }
.correction p { margin: 0; }
.correction a { font-weight: var(--weight-strong); }
.corrections-log { list-style: none; margin: var(--space-lg) 0 0; padding: 0; border-top: var(--rule-section) solid var(--tce-ink); }
.corrections-log__item { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: var(--space-2xs) var(--space-lg); padding: var(--space-md) 0; border-bottom: var(--rule-hair) solid var(--tce-rule); }
.corrections-log__date { font-size: var(--text-sm); color: var(--tce-faint); font-variant-numeric: tabular-nums; }
.corrections-log__title { font-family: var(--tce-serif); font-size: var(--text-md); font-weight: var(--weight-strong); }
.corrections-log p { margin: var(--space-2xs) 0 0; color: var(--tce-ink-2); }
@media (max-width: 540px) {
	.corrections-log__item { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Media kit stats ---------- */
.stats { margin: var(--space-lg) 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); gap: var(--space-lg) var(--space-xl); border-top: var(--rule-section) solid var(--tce-ink); padding-top: var(--space-md); }
.stats__item { min-width: 0; }
.stats dd { margin: 0; font-family: var(--tce-serif); font-size: var(--text-display-s); line-height: 1; font-weight: var(--weight-strong); font-variant-numeric: tabular-nums; }
.stats dt { margin-top: var(--space-xs); font-size: var(--text-sm); color: var(--tce-faint); }
.stats__asof { margin-top: var(--space-sm); }

/* ---------- Authors index ---------- */
.authors-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(320px, 100%), 1fr)); gap: var(--space-lg) var(--space-xl); padding-top: var(--space-xl); }
.author-card { display: flex; gap: var(--space-md); align-items: flex-start; min-width: 0; border-top: var(--rule-hair) solid var(--tce-rule-strong); padding-top: var(--space-md); }
.author-card__body { min-width: 0; display: flex; flex-direction: column; gap: var(--space-2xs); }
.author-card h2 { font-size: var(--text-title); line-height: 1.2; }
.author-card__bio { margin: var(--space-xs) 0 0; color: var(--tce-ink-2); }

/* ---------- Tag pages: link to the entity page ---------- */
.entity-link { margin: var(--space-md) 0 0; }

/* ---------- Newsletter sponsor line ---------- */
.nl-sponsor { margin: var(--space-sm) 0 0; font-size: var(--text-sm); color: var(--tce-faint); }
.nl-sponsor a { font-weight: var(--weight-strong); color: inherit; text-decoration: underline; }
.newsletter .nl-sponsor { color: var(--tce-on-ink-3); }
.newsletter .nl-sponsor a { color: var(--tce-on-ink); }

/* ---------- Tool pages ---------- */
.tool__body { max-width: 960px; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}
