/* ============================================================
   CAPITOL COMMUNICATOR — Ghost theme stylesheet
   Forked 2026-09-23 from The Measure theme v1.2.0 (tokens, chrome,
   editorial layouts). Measure masthead, tickers and iSpot unit removed.
   Grafted from tvrev2 v0.9.4: responsive embeds, author head.
   Single file; fonts are self-hosted in assets/fonts (no @import).
   ============================================================ */
@font-face { font-family:"Oswald"; src:url("../fonts/Oswald-400.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Oswald"; src:url("../fonts/Oswald-500.woff2") format("woff2"); font-weight:500; font-display:swap; }
@font-face { font-family:"Oswald"; src:url("../fonts/Oswald-600.woff2") format("woff2"); font-weight:600; font-display:swap; }
@font-face { font-family:"Open Sans"; src:url("../fonts/OpenSans-400.woff2") format("woff2"); font-weight:400; font-display:swap; }
@font-face { font-family:"Open Sans"; src:url("../fonts/OpenSans-600.woff2") format("woff2"); font-weight:600; font-display:swap; }

:root {
  /* neutrals — kept from The Measure's warm ramp */
  --ink-900:#141414; --ink-800:#1C1B1A; --ink-700:#2A2826; --ink-600:#3A3835; --ink-500:#55524D;
  --warmgray-600:#6B6760; --warmgray-500:#7D786F; --warmgray-400:#A8A096; --warmgray-300:#C9C3B9;
  --line-200:#E4E1DC; --line-100:#EFEDE9; --paper-100:#FBFAF7; --paper-000:#FFFFFF;
  /* the one gold. EMPHASIS ONLY: rules, eyebrow squares, the mark, buttons, text on ink.
     #FFB830 on paper is ~1.8:1, so gold never sets small text on a light ground —
     --gold-text is the readable cut for that. */
  --gold-500:#FFB830; --gold-600:#F0A410; --gold-text:#8A5A00;
  /* section series — WORKING SET, not yet ruled. Keyed on the live /c/ slugs. */
  --sec-marketing:#B5470F; --sec-advertising:#1E5F74; --sec-pr:#6B3FA0; --sec-media:#A31F34;
  --sec-digital:#1F6FB2; --sec-agency:#2E7D4F; --sec-people:#8A5A00; --sec-events:#0F766E; --sec-jobs:#475569;
  /* back-compat aliases: Measure rules still reference --series-* */
  --series-1:var(--gold-text); --series-2:var(--sec-advertising); --series-3:var(--gold-text); --series-4:var(--sec-pr); --series-5:var(--sec-agency);
  /* semantic */
  --bg:var(--paper-100); --surface:var(--paper-000); --surface-inverse:var(--ink-900);
  --text-strong:var(--ink-900); --text-body:#1F1E1C; --text-muted:var(--warmgray-600); --text-faint:var(--warmgray-500);
  --text-on-dark:var(--paper-000); --text-on-dark-muted:#BDB7AE;
  --accent:var(--gold-500); --accent-hover:var(--gold-600); --accent-on-dark:var(--gold-500);
  --accent-ink:var(--ink-900);           /* text ON a gold fill */
  --link:var(--ink-900); --link-rule:var(--gold-500);
  --border:var(--line-200); --border-strong:var(--warmgray-300); --border-on-dark:rgba(255,255,255,.14);
  /* type — keep the families, fix scale and contrast (live site: 18px heads, 14px #666 body) */
  --font-system:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --font-display:'Oswald',Impact,'Arial Narrow',sans-serif;
  --font-headline:'Oswald',Impact,'Arial Narrow',sans-serif;
  --font-body:'Open Sans',var(--font-system);
  --font-mono:ui-monospace,'SFMono-Regular',Menlo,Consolas,monospace;
  --ls-caps:.12em; --ls-headline:0;
  /* layout */
  --container:1200px; --gutter:32px; --radius-sm:4px; --radius-md:8px;
  --article-body:var(--font-body);
  --eyebrow:var(--gold-text);
}

/* ---- reset / base ---- */
*,*::before,*::after { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--bg); color:var(--text-body); font-family:var(--font-body);
  font-size:17px; line-height:1.6; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img { max-width:100%; height:auto; display:block; }
a { color:inherit; text-decoration:none; }
.inner { max-width:var(--container); margin:0 auto; padding:0 var(--gutter); }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* ============================================================
   HEADER + NAV (sticky)
   ============================================================ */
.tm-topgroup { position:sticky; top:0; z-index:50; background:var(--paper-100); }
.tm-header { border-bottom:1px solid var(--border); background:var(--paper-100); }
.tm-header-inner { display:flex; align-items:center; gap:24px; height:64px; }
.tm-logo { display:flex; align-items:center; flex:none; }
.tm-logo img { height:30px; width:auto; }
.tm-logo .tm-wordmark { font-family:var(--font-headline); font-weight:600; font-size:20px;
  letter-spacing:-.02em; text-transform:uppercase; color:var(--ink-900); }
.tm-nav { display:flex; gap:0; margin-left:8px; flex:1; min-width:0; overflow-x:auto; scrollbar-width:none; }
.tm-nav::-webkit-scrollbar { display:none; }
.tm-nav ul { list-style:none; display:flex; align-items:center; gap:22px; margin:0; padding:0; }
.tm-nav li { margin:0; }
.tm-nav a { font-family:var(--font-headline); font-weight:600; font-size:13px; letter-spacing:.02em;
  text-transform:uppercase; color:var(--ink-700); white-space:nowrap; padding:4px 0; transition:color .15s ease; }
.tm-nav a:hover { color:var(--gold-text); }
.tm-head-actions { display:flex; align-items:center; gap:12px; flex:none; }
.tm-icon-btn { background:none; border:0; padding:6px; cursor:pointer; color:var(--ink-700); display:flex; }
.tm-icon-btn:hover { color:var(--gold-text); }
.tm-icon-btn svg { width:18px; height:18px; }
.tm-search { display:flex; align-items:center; gap:8px; height:40px; padding:0 14px; background:var(--paper-000);
  border:1px solid var(--border); border-radius:8px; color:var(--text-muted); font-family:var(--font-body); font-size:14px; cursor:pointer; }
.tm-search:hover { border-color:var(--border-strong); color:var(--text-strong); }
.tm-search svg { width:16px; height:16px; }
.tm-search kbd { font-family:var(--font-mono); font-size:11px; color:var(--text-faint); border:1px solid var(--border); border-radius:4px; padding:1px 5px; line-height:1.4; }
.tm-subscribe { display:inline-flex; align-items:center; height:40px; font-family:var(--font-headline); font-weight:600; font-size:14px; letter-spacing:.01em;
  background:var(--accent); color:var(--accent-ink); padding:0 18px; border-radius:8px; transition:background .15s ease; }
.tm-subscribe:hover { background:var(--accent-hover); }
.tm-signin { font-family:var(--font-headline); font-weight:600; font-size:14px; color:var(--ink-700); }
.tm-signin:hover { color:var(--gold-text); }
.tm-burger { display:none; background:none; border:0; cursor:pointer; padding:6px; }
.tm-burger span { display:block; width:20px; height:2px; background:var(--ink-900); margin:4px 0; }



/* ============================================================
   BREAKING hero (renders when posts tagged #breaking exist)
   ============================================================ */
.tm-breaking { background:var(--paper-000); color:var(--text-strong); border-bottom:1px solid var(--border); }
.tm-breaking-inner { max-width:920px; margin:0 auto; padding:30px var(--gutter) 28px; text-align:center; }
.tm-breaking-kicker { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-headline);
  font-weight:600; font-size:12px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-text); }
.tm-breaking-kicker .dot { width:7px; height:7px; background:var(--accent); display:inline-block;
  animation:tmPulse 1.4s ease-in-out infinite; }
.tm-breaking-datetime { font-family:var(--font-mono); font-size:12px; color:var(--text-muted); margin-left:6px; }
@keyframes tmPulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.3;transform:scale(.6)} }
.tm-breaking-rot { height:210px; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; }
.tm-breaking-item { width:100%; }
.tm-breaking-rot h2 { font-family:var(--font-headline); font-weight:600; font-size:clamp(1.7rem,4vw,2.5rem);
  line-height:1.06; letter-spacing:var(--ls-headline); margin:0 0 10px; text-wrap:balance; color:var(--text-strong);
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; }
.tm-breaking-rot h2 a { color:inherit; text-decoration:none; }
.tm-breaking-rot h2 a:hover { color:var(--gold-text); }
.tm-breaking-rot p { font-family:var(--article-body); font-size:1.0625rem; line-height:1.5;
  color:var(--text-muted); margin:0; max-width:680px; margin-inline:auto; text-wrap:pretty;
  display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; }
.tm-breaking-dots { display:flex; gap:6px; justify-content:center; margin-top:18px; }
.tm-breaking-dots button { width:7px; height:7px; padding:0; border:0; cursor:pointer; background:var(--border-strong); }
.tm-breaking-dots button.on { background:var(--accent); }
@media (prefers-reduced-motion:reduce){ .tm-breaking-kicker .dot{animation:none;} }

/* ============================================================
   SECTION head (tag archive masthead)
   ============================================================ */
.tm-section-head { background:var(--paper-100); border-bottom:1px solid var(--border); }
.tm-section-head .inner { padding:48px var(--gutter) 30px; }
.tm-section-kicker { display:flex; align-items:center; gap:10px; margin-bottom:16px; font-family:var(--font-headline);
  font-weight:600; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); }
.tm-section-kicker .sq { width:9px; height:9px; background:var(--eyebrow); display:inline-block; }
.tm-section-head h1 { font-family:var(--font-headline); font-weight:600; font-size:clamp(2.4rem,6vw,4rem);
  line-height:.96; letter-spacing:-.02em; text-transform:uppercase; margin:0; color:var(--text-strong); }
.tm-section-head .desc { font-family:var(--font-body); font-style:italic; font-size:1.3rem; line-height:1.4;
  color:var(--text-muted); margin:16px 0 0; max-width:640px; text-wrap:pretty; }
.tm-section-head .rule { height:3px; width:64px; background:var(--eyebrow); margin-top:24px; }

/* ============================================================
   EDITORIAL primitives
   ============================================================ */
.tm-eyebrow { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-headline); font-weight:600;
  font-size:var(--fs-eyebrow,.75rem); letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--eyebrow); }
.tm-eyebrow::before { content:""; width:6px; height:6px; background:currentColor; display:inline-block; }
.tm-eyebrow[data-tag="marketing"]{ --eyebrow:var(--sec-marketing); }
.tm-eyebrow[data-tag="advertising"]{ --eyebrow:var(--sec-advertising); }
.tm-eyebrow[data-tag="pr"]{ --eyebrow:var(--sec-pr); }
.tm-eyebrow[data-tag="media"]{ --eyebrow:var(--sec-media); }
.tm-eyebrow[data-tag="digital"]{ --eyebrow:var(--sec-digital); }
.tm-eyebrow[data-tag="agency"]{ --eyebrow:var(--sec-agency); }
.tm-eyebrow[data-tag="people"]{ --eyebrow:var(--sec-people); }
.tm-eyebrow[data-tag="events"]{ --eyebrow:var(--sec-events); }
.tm-eyebrow[data-tag="jobs"]{ --eyebrow:var(--sec-jobs); }
.tm-meta { display:flex; align-items:center; gap:10px; font-family:var(--font-body); font-size:.8125rem; color:var(--text-muted); }
.tm-meta .dot { width:3px; height:3px; border-radius:50%; background:var(--warmgray-400); }
.tm-thumb { position:relative; overflow:hidden; background:var(--line-100); border-radius:var(--radius-sm); aspect-ratio:16/10; }
.tm-thumb img { width:100%; height:100%; object-fit:cover; }

a:hover .tm-link-h { color:var(--gold-text); transition:color .15s ease; }

/* ---- homepage grid ---- */
.tm-home { display:grid; grid-template-columns:1fr 340px; gap:56px; padding:40px 0 0; align-items:start; }
.tm-hero { display:grid; gap:16px; padding-bottom:34px; border-bottom:1px solid var(--border); }
.tm-hero .tm-thumb { aspect-ratio:16/9; border-radius:var(--radius-md); }
.tm-hero h2 { font-family:var(--font-headline); font-weight:600; font-size:clamp(1.9rem,4vw,2.7rem); line-height:1.03;
  letter-spacing:var(--ls-headline); margin:0; color:var(--text-strong); text-wrap:balance; }
.tm-hero p { font-family:var(--article-body); font-size:1.3125rem; line-height:1.42; margin:0; color:var(--text-body); text-wrap:pretty; }
.tm-secondary { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:28px; padding-top:30px; border-top:1px solid var(--border); }
.tm-tile { position:relative; display:grid; min-height:240px; border-radius:var(--radius-md); overflow:hidden;
  text-decoration:none; color:#fff; background:var(--ink-900); }
.tm-tile img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.tm-tile .scrim { position:absolute; inset:0; background:linear-gradient(180deg,rgba(20,17,15,.1) 0%,rgba(20,17,15,.4) 45%,rgba(20,17,15,.88) 100%); }
.tm-tile .body { position:relative; align-self:end; padding:20px; display:grid; gap:9px; }
.tm-tile h3 { font-family:var(--font-headline); font-weight:600; font-size:1.35rem; line-height:1.1; letter-spacing:var(--ls-headline); margin:0; text-wrap:balance; }
.tm-tile .tm-eyebrow { color:#fff; }

/* ---- story river ---- */
.tm-river { margin-top:44px; }
.tm-river-card { display:grid; grid-template-columns:1fr 150px; gap:22px; align-items:start; padding:24px 0;
  border-bottom:1px solid var(--border); text-decoration:none; color:inherit; }
.tm-river-card .body { display:grid; gap:9px; }
.tm-river-card h3 { font-family:var(--font-headline); font-weight:600; font-size:1.4rem; line-height:1.14;
  letter-spacing:var(--ls-headline); margin:0; color:var(--text-strong); text-wrap:balance; }
.tm-river-card p { font-family:var(--article-body); font-size:.9375rem; line-height:1.5; margin:0; color:var(--text-body);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.tm-river-card .tm-thumb { aspect-ratio:4/3; }

/* ---- section feed (grid layout) ---- */
.tm-feed-lead { display:grid; grid-template-columns:1.45fr 1fr; gap:36px; text-decoration:none; color:inherit;
  padding-bottom:34px; border-bottom:1px solid var(--border); }
.tm-feed-lead .tm-thumb { aspect-ratio:16/10; border-radius:var(--radius-md); }
.tm-feed-lead .body { display:grid; gap:14px; align-content:center; }
.tm-feed-lead h2 { font-family:var(--font-headline); font-weight:600; font-size:clamp(1.9rem,4vw,2.5rem); line-height:1.04;
  letter-spacing:var(--ls-headline); margin:0; color:var(--text-strong); text-wrap:balance; }
.tm-feed-lead p { font-family:var(--article-body); font-size:1.3125rem; line-height:1.45; margin:0; color:var(--text-body); text-wrap:pretty; }

/* ---- sidebar rail ---- */
.tm-rail { display:grid; gap:32px; align-content:start; position:sticky; top:88px; }
.tm-rail-card { display:grid; gap:7px; }
.tm-rail-card .adlabel { font-family:var(--font-mono); font-size:10px; letter-spacing:.2em; text-transform:uppercase; color:var(--text-faint); }
.tm-rail-section { display:flex; align-items:center; gap:10px; font-family:var(--font-headline); font-weight:600; font-size:13px; letter-spacing:.12em;
  text-transform:uppercase; color:var(--ink-900); padding-bottom:10px; border-bottom:2px solid var(--ink-900); }
.tm-rail-section .bar { width:18px; height:2px; background:var(--ink-900); flex:none; }
/* column promo */

/* numbered special reports */
.tm-rail-num { list-style:none; margin:0; padding:0; }
.tm-rail-num li a { display:grid; grid-template-columns:28px 1fr; gap:12px; align-items:baseline; padding:14px 0; border-bottom:1px solid var(--border); text-decoration:none; color:inherit; }
.tm-rail-num li:last-child a { border-bottom:0; }
.tm-rail-num .n { font-family:var(--font-mono); font-size:13px; color:var(--text-faint); }
.tm-rail-num h4 { font-family:var(--font-headline); font-weight:600; font-size:1.1rem; line-height:1.16; margin:0;
  color:var(--text-strong); letter-spacing:var(--ls-headline); }
.tm-rail-list a { display:grid; gap:5px; padding:14px 0; border-bottom:1px solid var(--border); }
.tm-rail-list a:last-child { border-bottom:0; }
.tm-rail-list h4 { font-family:var(--font-headline); font-weight:600; font-size:1.05rem; line-height:1.18; margin:0;
  color:var(--text-strong); letter-spacing:var(--ls-headline); }
.tm-newsletter { background:var(--ink-900); color:#fff; border-radius:var(--radius-md); padding:24px; }
.tm-newsletter h3 { font-family:var(--font-headline); font-weight:600; font-size:1.6rem; line-height:1.1; margin:8px 0 10px; letter-spacing:var(--ls-headline); color:#fff; }
.tm-newsletter p { font-size:.9375rem; line-height:1.5; color:var(--text-on-dark-muted); margin:0 0 16px; }
.tm-news-form { display:flex; gap:8px; }
.tm-news-form input { flex:1; min-width:0; background:rgba(255,255,255,.06); border:1px solid var(--border-on-dark);
  border-radius:var(--radius-sm); padding:11px 12px; color:#fff; font-size:14px; font-family:var(--font-body); }
.tm-news-form input::placeholder { color:var(--text-on-dark-muted); }
.tm-news-form button { flex:none; background:var(--accent); color:var(--accent-ink); border:0; border-radius:var(--radius-sm);
  font-family:var(--font-headline); font-weight:600; font-size:14px; padding:11px 18px; cursor:pointer; }
.tm-news-form button:hover { background:var(--accent-hover); }
.tm-news-form button .spin { display:none; width:14px; height:14px; border:2px solid rgba(255,255,255,.45);
  border-top-color:#fff; border-radius:50%; animation:tm-spin .7s linear infinite; }
@keyframes tm-spin { to { transform:rotate(360deg); } }
/* Ghost adds .loading / .success / .error to [data-members-form] on submit */
.tm-news-form.loading button { pointer-events:none; opacity:.8; }
.tm-news-form.loading button .lbl { display:none; }
.tm-news-form.loading button .spin { display:inline-block; }
.tm-newsletter .tm-news-msg { display:none; margin:12px 0 0; font-size:.875rem; line-height:1.5; }
.tm-newsletter .tm-news-ok { color:#fff; }
.tm-newsletter .tm-news-ok strong { color:var(--series-3); }
.tm-newsletter .tm-news-err { color:#FFB4A8; }
.tm-news-form.success ~ .tm-news-ok { display:block; animation:tm-fade .35s ease; }
.tm-news-form.error ~ .tm-news-err { display:block; animation:tm-fade .35s ease; }
.tm-news-form.success { display:none; }
.tm-newsletter.is-done > p:not(.tm-news-msg) { display:none; }
@keyframes tm-fade { from { opacity:0; transform:translateY(4px); } to { opacity:1; transform:none; } }
.tm-newsletter .btn { display:block; text-align:center; background:var(--accent); color:var(--accent-ink); font-family:var(--font-headline);
  font-weight:600; font-size:14px; padding:11px; border-radius:var(--radius-sm); }
.tm-newsletter .btn:hover { background:var(--accent-hover); }

/* ============================================================
   ARTICLE (post)
   ============================================================ */
.tm-article { max-width:720px; margin:0 auto; padding:48px var(--gutter) 0; }
.tm-article-head { display:grid; gap:16px; }
.tm-article-head h1 { font-family:var(--font-headline); font-weight:600; font-size:clamp(2rem,6vw,3rem); line-height:1.04;
  letter-spacing:var(--ls-headline); margin:0; color:var(--text-strong); text-wrap:balance; }
.tm-article-head .dek { font-family:var(--article-body); font-size:1.3125rem; line-height:1.42; color:var(--text-body); margin:0; text-wrap:pretty; }
.tm-article-figure { max-width:880px; margin:30px auto 0; padding:0 var(--gutter); }
.tm-article-figure .tm-thumb { aspect-ratio:16/9; border-radius:var(--radius-md); }
.tm-article-figure figcaption { font-size:.8125rem; color:var(--text-muted); margin:10px 2px 0; }
.gh-content { max-width:720px; margin:0 auto; padding:34px var(--gutter) 0; font-family:var(--article-body);
  font-size:1.1875rem; line-height:1.74; color:var(--text-body); overflow-wrap:anywhere; }
.gh-content > * { margin:0 0 22px; }
.gh-content h2 { font-family:var(--font-headline); font-weight:600; font-size:1.7rem; line-height:1.2; color:var(--text-strong);
  letter-spacing:var(--ls-headline); margin:38px 0 14px; }
.gh-content h3 { font-family:var(--font-headline); font-weight:600; font-size:1.35rem; color:var(--text-strong); margin:30px 0 12px; }
.gh-content a { color:var(--link); text-decoration:underline; text-decoration-color:var(--link-rule); text-decoration-thickness:2px; text-underline-offset:3px; }
.gh-content a:hover { text-decoration-color:var(--ink-900); }
.gh-content blockquote { border-left:3px solid var(--accent); margin:28px 0; padding:4px 0 4px 24px;
  font-family:var(--font-body); font-size:1.5rem; font-style:italic; line-height:1.35; color:var(--text-strong); }
.gh-content img,.gh-content figure { border-radius:var(--radius-sm); }
.gh-content figcaption { font-size:.8125rem; color:var(--text-muted); text-align:center; margin-top:8px; }

/* Koenig editor card widths (required by Ghost / GScan) */
.gh-content .kg-card,.gh-content figure { margin:0 0 22px; }
.kg-width-wide { position:relative; width:85vw; min-width:100%; margin-left:50%; transform:translateX(-50%); }
.kg-width-full { position:relative; width:100vw; margin-left:50%; transform:translateX(-50%); border-radius:0; }
.kg-width-wide img,.kg-width-full img { width:100%; }
@media (min-width:1200px){ .kg-width-wide { width:1040px; } }
.kg-image { display:block; margin-left:auto; margin-right:auto; }
.kg-embed-card,.kg-gallery-card { width:100%; }
.kg-bookmark-card a { color:inherit; text-decoration:none; }
/* analyst CTA + author + more-from */

.tm-author { max-width:720px; margin:40px auto 0; padding:26px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border);
  display:flex; gap:16px; align-items:center; }
.tm-author img { width:56px; height:56px; border-radius:50%; object-fit:cover; flex:none; }
.tm-author .name { font-family:var(--font-headline); font-weight:600; font-size:1.05rem; color:var(--text-strong); }
.tm-author .bio { font-size:.9375rem; color:var(--text-muted); margin-top:3px; }
.tm-morefrom { max-width:1100px; margin:64px auto 0; padding:0 var(--gutter); }
.tm-morefrom-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:32px; margin-top:20px; }
.tm-morefrom-grid a { display:grid; gap:12px; text-decoration:none; color:inherit; }
.tm-morefrom-grid h3 { font-family:var(--font-headline); font-weight:600; font-size:1.2rem; line-height:1.16;
  letter-spacing:var(--ls-headline); margin:0; color:var(--text-strong); text-wrap:balance; }

/* ============================================================
   FOOTER
   ============================================================ */
.tm-footer { background:var(--ink-900); color:var(--text-on-dark-muted); margin-top:80px; }
.tm-footer .inner { padding:54px var(--gutter); display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; }
.tm-footer img { height:26px; margin-bottom:16px; }
.tm-footer h4 { font-family:var(--font-headline); font-weight:600; font-size:12px; letter-spacing:.16em; text-transform:uppercase;
  color:#fff; margin:0 0 14px; }
.tm-footer a { display:block; padding:5px 0; color:var(--text-on-dark-muted); font-size:.9375rem; }
.tm-footer a:hover { color:#fff; }
.tm-footer .legal { border-top:1px solid var(--border-on-dark); }
.tm-footer .legal .inner { display:flex; justify-content:space-between; padding:20px var(--gutter); grid-template-columns:none; font-size:.8125rem; }

/* ============================================================
   PAGINATION
   ============================================================ */
.tm-pagination { display:flex; justify-content:space-between; align-items:center; max-width:880px; margin:36px auto 0;
  padding:30px var(--gutter) 64px; border-top:1px solid var(--border); }
.tm-pagination .page { font-family:var(--font-mono); font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); }
.tm-pagination a { font-family:var(--font-headline); font-weight:600; font-size:14px; color:var(--gold-text); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:920px){
  .tm-home { grid-template-columns:1fr; gap:44px; }
  .tm-rail { position:static; grid-template-columns:1fr 1fr; gap:32px 40px; }
  .tm-feed-lead { grid-template-columns:1fr; gap:18px; }
  .tm-morefrom-grid { grid-template-columns:1fr 1fr; }
  .tm-footer .inner { grid-template-columns:1fr 1fr; }
}
@media (max-width:720px){
  .tm-search span,.tm-search kbd { display:none; }
  .tm-search { padding:0 10px; }
  :root { --gutter:18px; }
  .tm-nav { display:none; }
  .tm-burger { display:block; }
  .tm-signin { display:none; }
  .tm-secondary { grid-template-columns:1fr; }
  .tm-rail { grid-template-columns:1fr; }
  .tm-morefrom-grid { grid-template-columns:1fr; }
  .tm-breaking-rot { height:186px; }
  .tm-river-card { grid-template-columns:1fr; }
  .tm-river-card .tm-thumb { display:none; }
  .tm-footer .inner { grid-template-columns:1fr; gap:30px; }
}
@media (max-width:420px){ .tm-breaking-rot { height:178px; } }

/* mobile nav drawer */
body.tm-nav-open .tm-nav { display:flex; position:fixed; inset:64px 0 auto 0; flex-direction:column; gap:0;
  background:var(--paper-000); border-bottom:1px solid var(--border); padding:8px var(--gutter); z-index:60; overflow:visible; }
body.tm-nav-open .tm-nav a { padding:13px 0; border-bottom:1px solid var(--border); font-size:15px; }


/* ============================================================
   CAPITOL COMMUNICATOR additions
   ============================================================ */

/* ---- the black bar: the lockup is white-on-ink, so the header is ink ---- */
.tm-topgroup, .tm-header { background:var(--ink-900); border-bottom:0; }
.tm-header { box-shadow:inset 0 -3px 0 var(--gold-500); }
.tm-logo img { height:34px; }
.tm-nav a { color:var(--text-on-dark); }
.tm-nav a:hover { color:var(--gold-500); }
.tm-nav .nav-current a { color:var(--gold-500); }
.tm-signin, .tm-icon-btn { color:var(--text-on-dark); }
.tm-signin:hover { color:var(--gold-500); }
.tm-search { background:transparent; border-color:var(--border-on-dark); color:var(--text-on-dark-muted); }
.tm-search:hover { border-color:var(--gold-500); color:#fff; }
.tm-search kbd { border-color:var(--border-on-dark); color:var(--text-on-dark-muted); }
.tm-burger span { background:#fff; }
@media (max-width:720px){ body.tm-nav-open .tm-nav a { color:var(--ink-900); } }

/* ---- section heads take the section colour for the rule and kicker ---- */
.tm-section-head[data-slug] .rule { background:var(--gold-500); width:96px; height:4px; }
.tm-section-kicker .sq { background:var(--gold-500); }

/* ---- typographic card: first-class, for the pre-2020 archive with no image ---- */
.cc-type { position:relative; display:flex; flex-direction:column; justify-content:flex-end; gap:10px;
  aspect-ratio:16/10; padding:18px 18px 16px; background:var(--ink-900); color:#fff; border-radius:var(--radius-sm); overflow:hidden; }
.cc-type::before { content:""; position:absolute; left:18px; top:18px; width:40px; height:4px; background:var(--gold-500); }
.cc-type .k { font-family:var(--font-headline); font-weight:500; font-size:11px; letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--gold-500); }
.cc-type .t { font-family:var(--font-headline); font-weight:500; font-size:1.05rem; line-height:1.15; text-transform:uppercase;
  display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.tm-river-card .cc-type { aspect-ratio:4/3; padding:12px; }
.tm-river-card .cc-type::before { left:12px; top:12px; width:28px; height:3px; }
.tm-river-card .cc-type .t { font-size:.8rem; -webkit-line-clamp:3; }
.tm-hero .cc-type { aspect-ratio:16/9; border-radius:var(--radius-md); padding:32px; }
.tm-hero .cc-type .t { font-size:clamp(1.6rem,3.4vw,2.4rem); -webkit-line-clamp:3; }

/* ---- headlines: Oswald, uppercase, the CC register ---- */
.tm-hero h2, .tm-river-card h3, .tm-tile h3, .tm-morefrom-grid h3, .tm-article-head h1, .tm-section-head h1 { text-transform:uppercase; letter-spacing:.005em; }
.tm-article-head h1 { line-height:1.08; }

/* ---- leaderboard (728x90 desktop, 320x50 phone). Label sits OUTSIDE the unit. ---- */
.cc-leader { background:var(--line-100); border-bottom:1px solid var(--border); padding:14px 0 16px; }
.cc-leader .inner { display:flex; flex-direction:column; align-items:center; gap:6px; }
.cc-ad-label { font:600 9px/1 var(--font-mono); letter-spacing:.18em; text-transform:uppercase; color:var(--text-faint); }
.cc-leader a, .cc-leader img { display:block; max-width:728px; width:100%; height:auto; }
.cc-leader .ph { width:728px; max-width:100%; aspect-ratio:728/90; display:grid; place-items:center;
  border:1px dashed var(--border-strong); color:var(--text-faint); font:600 11px/1 var(--font-mono); letter-spacing:.14em; text-transform:uppercase; }
@media (max-width:720px){ .cc-leader .ph { aspect-ratio:320/50; width:320px; } }

/* ---- sponsor carousel: pages tagged #sponsor; logo = feature image, link = excerpt ---- */
.cc-sponsors { border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--paper-000); padding:22px 0; margin-top:56px; }
.cc-sponsors .hd { display:flex; align-items:center; gap:10px; margin-bottom:14px; font-family:var(--font-headline); font-weight:500;
  font-size:12px; letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--text-muted); }
.cc-sponsors .hd .bar { width:18px; height:3px; background:var(--gold-500); }
.cc-sponsor-track { overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); }
.cc-sponsor-row { display:flex; gap:48px; width:max-content; align-items:center; animation:ccSlide 40s linear infinite; }
.cc-sponsor-track:hover .cc-sponsor-row { animation-play-state:paused; }
.cc-sponsor-row a { display:flex; align-items:center; height:56px; }
.cc-sponsor-row img { max-height:48px; max-width:160px; width:auto; filter:grayscale(1); opacity:.8; transition:filter .2s,opacity .2s; }
.cc-sponsor-row a:hover img { filter:none; opacity:1; }
.cc-sponsor-row .nm { font-family:var(--font-headline); font-weight:500; font-size:1.1rem; text-transform:uppercase; color:var(--ink-600); white-space:nowrap; }
@keyframes ccSlide { from{transform:translateX(0)} to{transform:translateX(-50%)} }
@media (prefers-reduced-motion:reduce){ .cc-sponsor-row{ animation:none; flex-wrap:wrap; width:auto; } }

/* ---- sponsored content: posts carrying #sponsored say so above the headline ---- */
.cc-sponsored-flag { display:inline-block; font:600 10px/1 var(--font-mono); letter-spacing:.16em; text-transform:uppercase;
  color:var(--ink-900); background:var(--gold-500); padding:5px 8px 4px; border-radius:2px; }

/* ---- People on the Move: face-led card grid ---- */
.cc-people { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:28px 24px; margin-top:36px; }
.cc-person { display:grid; gap:10px; align-content:start; }
.cc-person .face { aspect-ratio:1/1; border-radius:var(--radius-sm); overflow:hidden; background:var(--line-100); }
.cc-person .face img { width:100%; height:100%; object-fit:cover; object-position:50% 25%; }
.cc-person .face.cc-type { aspect-ratio:1/1; background:var(--ink-900); color:#fff; } /* beats .cc-person .face's grey */
.cc-person h3 { font-family:var(--font-headline); font-weight:500; font-size:1.1rem; line-height:1.18; text-transform:uppercase; margin:0; color:var(--text-strong); }
.cc-person p { font-size:.875rem; line-height:1.45; color:var(--text-muted); margin:0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* ---- author head (from tvrev2 author.hbs): face, bio, links; initials when no photo ---- */
.cc-authorhead { display:flex; gap:24px; align-items:center; }
.cc-authorface { width:96px; height:96px; border-radius:50%; object-fit:cover; flex:none; background:var(--ink-900); }
.cc-authorface--mono { display:grid; place-items:center; color:var(--gold-500); font-family:var(--font-headline); font-weight:500; font-size:2rem; }
.cc-authorlinks { display:flex; gap:16px; margin-top:12px; font-family:var(--font-headline); font-weight:500; font-size:13px; letter-spacing:.06em; text-transform:uppercase; }
.cc-authorlinks a { color:var(--ink-900); border-bottom:2px solid var(--gold-500); }
@media (max-width:560px){ .cc-authorhead { flex-direction:column; align-items:flex-start; } }

/* ---- embeds (from tvrev2 v0.9.4): imported WordPress posts carry fixed iframe sizes.
   453 CC posts embed YouTube (371), Vimeo (112), SoundCloud (20) and others. ---- */
.gh-content iframe, .gh-content .kg-embed-card iframe, .gh-content embed, .gh-content object, .gh-content video {
  width:100% !important; max-width:100%; display:block; border:0; }
.gh-content iframe[src*="youtube.com"], .gh-content iframe[src*="youtube-nocookie.com"], .gh-content iframe[src*="youtu.be"],
.gh-content iframe[src*="player.vimeo.com"], .gh-content iframe[src*="wistia"], .gh-content iframe[src*="dailymotion.com"],
.gh-content iframe[src*="facebook.com/plugins/video"], .gh-content video {
  aspect-ratio:16/9; height:auto !important; background:var(--line-100); border-radius:var(--radius-sm); }
.gh-content iframe[src*="soundcloud.com"], .gh-content iframe[src*="libsyn.com"], .gh-content iframe[src*="spotify.com"],
.gh-content iframe[src*="megaphone.fm"], .gh-content iframe[src*="simplecast.com"], .gh-content iframe[src*="omny.fm"],
.gh-content iframe[src*="podcasts.apple.com"], .gh-content iframe[src*="buzzsprout.com"], .gh-content audio {
  aspect-ratio:auto; border-radius:var(--radius-sm); }
.gh-content audio { width:100%; }
.gh-content iframe, .gh-content video, .gh-content audio { margin:1.6em 0; }
.gh-content figure iframe, .gh-content figure video { margin:0; }

/* ---- product pages (RFP tracker, newswire, membership): beta CTA placeholder ---- */
.cc-beta { margin:40px 0; padding:28px; background:var(--ink-900); color:#fff; border-radius:var(--radius-md); box-shadow:inset 4px 0 0 var(--gold-500); }
.cc-beta h3 { font-family:var(--font-headline); font-weight:500; text-transform:uppercase; font-size:1.5rem; margin:0 0 8px; }
.cc-beta p { color:var(--text-on-dark-muted); margin:0 0 18px; }
.cc-beta a { display:inline-block; background:var(--gold-500); color:var(--ink-900); font-family:var(--font-headline); font-weight:600;
  text-transform:uppercase; letter-spacing:.06em; padding:12px 20px; border-radius:var(--radius-sm); }

/* ---- footer nav: {{navigation}} emits a ul ---- */
.tm-footer ul { list-style:none; margin:0; padding:0; }
.tm-footer li { margin:0; }

/* ---- phone header: lockup + search + burger must fit 375px. Subscribe lives in the drawer's reach via Portal. ---- */
@media (max-width:720px){
  .tm-header-inner { gap:12px; }
  .tm-logo img { height:26px; }
  .tm-head-actions { gap:4px; }
  .tm-subscribe { height:34px; padding:0 12px; font-size:12px; }
}
@media (max-width:420px){ .tm-subscribe { display:none; } }

/* ---- People on the Move, phones: a face-left row, not a full-width square.
   One column of 330px headshots put one person per screen; a row scans like the list it is. ---- */
@media (max-width:560px){
  .cc-people { grid-template-columns:1fr; gap:0; margin-top:20px; }
  .cc-person { grid-template-columns:88px 1fr; grid-template-rows:auto auto 1fr; column-gap:14px; row-gap:4px;
    padding:14px 0; border-bottom:1px solid var(--border); }
  .cc-person .face { grid-row:1 / span 3; width:88px; }
  .cc-person .face.cc-type { padding:8px; justify-content:flex-end; }
  .cc-person .face.cc-type::before { left:8px; top:8px; width:20px; height:3px; }
  /* the headline is right beside it on a phone, so the no-photo face just says People */
  .cc-person .face.cc-type .t { display:none; }
  .cc-person .face.cc-type .k { font-size:10px; }
  .cc-person h3 { font-size:1rem; }
  .cc-person p { -webkit-line-clamp:2; font-size:.8125rem; }
}

/* ---- image shapes. The archive's art is 750x400 (1.875:1) and 1080x675 (1.6:1).
   Article hero: the image at its own shape, never cropped, never upscaled past native,
   never wider than the text column. Cards: 16:9, which crops 5-10% of either shape
   (4:3 was cutting ~29% off a 750x400 and clipping logos at the sides). ---- */
.tm-article-figure { max-width:calc(720px + 2 * var(--gutter)); }
.tm-article-figure .tm-thumb { aspect-ratio:auto; background:none; border-radius:var(--radius-md); }
.tm-article-figure .tm-thumb img { width:auto; height:auto; max-width:100%; margin:0 auto; object-fit:initial; border-radius:var(--radius-md); }
.tm-river-card .tm-thumb, .tm-river-card .cc-type { aspect-ratio:16/9; }
.tm-river-card { grid-template-columns:1fr 176px; }
.tm-morefrom-grid .tm-thumb { aspect-ratio:16/9; }
.gh-content img { max-width:100%; height:auto; }

/* ---- lead: hero + two cards under it (featured posts first, latest to fill) ---- */
.cc-lead-pair { display:grid; grid-template-columns:1fr 1fr; gap:28px; padding:28px 0 32px; border-bottom:1px solid var(--border); }
.cc-lead-pair > :nth-child(n+3) { display:none; }       /* fillers past the second slot */
.cc-lead-card { display:grid; gap:10px; align-content:start; }
.cc-lead-card .tm-thumb, .cc-lead-card .cc-type { aspect-ratio:16/9; }
.cc-lead-card h3 { font-family:var(--font-headline); font-weight:600; font-size:1.3rem; line-height:1.12; text-transform:uppercase; margin:0; color:var(--text-strong); }
.cc-lead-card p { font-size:.9375rem; line-height:1.5; margin:0; color:var(--text-body); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
@media (max-width:720px){ .cc-lead-pair { grid-template-columns:1fr; gap:24px; } }

/* ---- phone header: search + menu sit on the right margin ---- */
@media (max-width:720px){ .tm-head-actions { margin-left:auto; } }

/* ---- grid blowout guard: a 1fr track is minmax(auto,1fr), so one wide child (a long
   headline word, a fixed-width embed) forces the column past the phone's width. ---- */
.tm-home-main, .tm-rail, .cc-lead-card, .tm-river-card .body, .cc-person { min-width:0; }
@media (max-width:920px){ .tm-home { grid-template-columns:minmax(0,1fr); } }
@media (max-width:720px){ .cc-lead-pair { grid-template-columns:minmax(0,1fr); } }


/* ---- rail: 350 wide so the half-page sits at its native 350x600. Not sticky: with a 600px
   unit on top it is taller than most viewports, and a sticky element taller than the viewport
   cannot scroll to its own bottom. ---- */
.tm-home { grid-template-columns:minmax(0,1fr) 350px; }
.tm-rail { position:static; }
.cc-halfpage { display:grid; justify-items:center; gap:6px; }
.cc-halfpage a, .cc-halfpage img { display:block; width:350px; max-width:100%; height:auto; }
.cc-halfpage img { aspect-ratio:350/600; object-fit:cover; background:var(--line-100); }
.cc-halfpage .ph { width:350px; max-width:100%; aspect-ratio:350/600; display:grid; place-items:center; border:1px dashed var(--border-strong);
  color:var(--text-faint); font:600 11px/1 var(--font-mono); letter-spacing:.14em; text-transform:uppercase; }

/* ---- article + rail (parity: the live article page has a sidebar) ---- */
.cc-post-grid { display:grid; grid-template-columns:minmax(0,1fr) 350px; gap:56px; align-items:start; }
.cc-post-main .tm-article, .cc-post-main .tm-article-figure, .cc-post-main .gh-content, .cc-post-main .tm-author {
  max-width:720px; margin-left:0; margin-right:0; padding-left:0; padding-right:0; }
.cc-post-grid > .tm-rail { padding-top:48px; }
@media (max-width:1100px){
  .cc-post-grid { grid-template-columns:minmax(0,1fr); gap:40px; }
  .cc-post-main .tm-article, .cc-post-main .tm-article-figure, .cc-post-main .gh-content, .cc-post-main .tm-author { margin-left:auto; margin-right:auto; }
  .cc-post-grid > .tm-rail { padding-top:0; max-width:720px; width:100%; margin:0 auto; }
}

/* ---- [hidden] must win. An author rule like `.cc-halfpage a{display:block}` otherwise
   overrides the UA's [hidden]{display:none}, and every "hidden" rotation slot renders. ---- */
[hidden] { display:none !important; }

/* ---- responsive re-assertion. Must stay BELOW the 350px rail rule above: that rule comes
   later in the file than the original breakpoints, so without this it re-imposes a
   350px column on phones (home and section pages laid out at 412px on a 375px screen). ---- */
@media (max-width:920px){
  .tm-home { grid-template-columns:minmax(0,1fr); }
  .tm-rail { grid-template-columns:repeat(2, minmax(0,1fr)); }
  .tm-rail > .cc-halfpage { grid-column:1 / -1; }
}
@media (max-width:720px){ .tm-rail { grid-template-columns:minmax(0,1fr); } }


/* ---- sponsor strip: logos arrive trimmed and optically normalised on a 112px canvas (2x) ---- */
.cc-sponsor-row .cc-sp { display:flex; align-items:center; height:56px; }
.cc-sponsor-row img { height:56px; width:auto; max-height:none; max-width:none; filter:grayscale(1); opacity:.75; mix-blend-mode:multiply; }
.cc-sponsor-row a.cc-sp:hover img, .cc-sponsor-row .cc-sp:hover img { filter:none; opacity:1; }
.cc-sponsor-row { gap:36px; }

/* ---- home: "Latest" head, then section blocks ---- */
.cc-riverhead, .cc-sechead h2 a { display:flex; align-items:center; gap:10px; font-family:var(--font-headline); font-weight:600;
  font-size:13px; letter-spacing:var(--ls-caps); text-transform:uppercase; color:var(--text-strong); }
.cc-riverhead { margin:4px 0 -6px; } .cc-riverhead .bar { width:18px; height:3px; background:var(--gold-500); }
.cc-sections { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:40px 32px; margin:48px 0 40px;
  padding-top:32px; border-top:3px solid var(--ink-900); }
.cc-secblock { min-width:0; }
.cc-sechead { display:flex; align-items:baseline; justify-content:space-between; border-bottom:1px solid var(--border); padding-bottom:10px; margin-bottom:14px; }
.cc-sechead h2 { margin:0; }
.cc-sechead .sq { width:10px; height:10px; background:var(--eyebrow); }
.cc-sechead .more { font-family:var(--font-headline); font-weight:500; font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-muted); }
.cc-sechead .more:hover { color:var(--ink-900); }
.cc-secitems { display:grid; }
.cc-secitems > :nth-child(n+5) { display:none; }
.cc-secitem { display:grid; gap:6px; padding:12px 0; border-bottom:1px solid var(--border); }
.cc-secitem:last-child, .cc-secitem:nth-child(4) { border-bottom:0; }
.cc-secitem h3 { font-family:var(--font-headline); font-weight:500; font-size:1.02rem; line-height:1.2; text-transform:uppercase; margin:0; color:var(--text-strong); }
.cc-secitem:hover h3 { text-decoration:underline; text-decoration-color:var(--gold-500); text-decoration-thickness:2px; }
/* first item leads with its image; the rest are headline rows */
.cc-secitem .tm-thumb, .cc-secitem .cc-type { display:none; }
.cc-secitem:first-child { padding-top:0; }
.cc-secitem:first-child .tm-thumb, .cc-secitem:first-child .cc-type { display:flex; aspect-ratio:16/9; margin-bottom:4px; }
.cc-secitem:first-child .tm-thumb { display:block; }
.cc-secitem:first-child h3 { font-size:1.2rem; }
@media (max-width:720px){ .cc-sections { grid-template-columns:minmax(0,1fr); } }

/* name-only sponsors (logo files pending from Paul) trail the logos */
.cc-sponsor-row .cc-sp:has(.nm) { order:1; }

/* ---- The Brief page (page-the-brief.hbs, 7 Oct 2026) ----
   Ordinary website sections, not a dashboard: a section header, a plain numbered list, a list of
   issues. No counts, no hero numbers. */
.cc-brief-head .cc-brief-cta { display:inline-flex; align-items:center; height:44px; margin-top:22px; padding:0 20px;
  background:var(--ink-900); color:var(--paper-000); font-family:var(--font-headline); font-weight:600; font-size:15px;
  letter-spacing:.01em; border-radius:6px; }
.cc-brief-head .cc-brief-cta:hover { background:var(--ink-700); }
.cc-brief { max-width:880px; padding-bottom:72px; }
.cc-brief-intro { margin-top:32px; }
.cc-brief-sec { margin-top:44px; }
.cc-brief-sechead { display:flex; align-items:baseline; justify-content:space-between; gap:16px; flex-wrap:wrap;
  border-bottom:2px solid var(--ink-900); padding-bottom:10px; }
.cc-brief-sechead h2 { margin:0; font-family:var(--font-headline); font-weight:600; font-size:1.5rem; text-transform:uppercase;
  letter-spacing:.01em; color:var(--text-strong); }
.cc-brief-sechead span { font-size:.9rem; color:var(--text-muted); }
.cc-brief-list { list-style:none; margin:0; padding:0; counter-reset:brief; }
.cc-brief-list li { counter-increment:brief; display:grid; grid-template-columns:28px 112px minmax(0,1fr); gap:16px;
  align-items:start; padding:16px 0; border-bottom:1px solid var(--border); }
.cc-brief-list li::before { content:counter(brief); font-family:var(--font-headline); font-weight:600; font-size:1.25rem;
  line-height:1.2; color:var(--gold-text); }
.cc-brief-media .tm-thumb, .cc-brief-media .cc-type { aspect-ratio:16/9; width:112px; }
.cc-brief-media .cc-type { padding:8px; }
.cc-brief-media .cc-type .t { font-size:.7rem; -webkit-line-clamp:3; }
.cc-brief-text { display:grid; gap:6px; min-width:0; }
.cc-brief-title { font-family:var(--font-body); font-weight:700; font-size:1.06rem; line-height:1.3; color:var(--text-strong);
  text-wrap:pretty; }
.cc-brief-title:hover { text-decoration:underline; text-decoration-color:var(--link-rule); text-underline-offset:3px; }
.cc-brief-meta { display:flex; align-items:center; gap:8px; font-size:.85rem; color:var(--text-muted); }
.cc-brief-meta .dot { width:3px; height:3px; border-radius:50%; background:currentColor; }
.cc-brief-issues { display:grid; }
.cc-brief-issue { display:grid; grid-template-columns:130px minmax(0,1fr) auto; gap:18px; align-items:baseline;
  padding:16px 0; border-bottom:1px solid var(--border); color:var(--text-strong); }
.cc-brief-issue .d { font-size:.85rem; color:var(--text-muted); }
.cc-brief-issue .t { font-weight:700; line-height:1.3; }
.cc-brief-issue .go { font-size:.85rem; font-weight:600; color:var(--gold-text); white-space:nowrap; }
.cc-brief-issue:hover .t { text-decoration:underline; text-decoration-color:var(--link-rule); text-underline-offset:3px; }
.cc-brief-empty { padding:18px 0; color:var(--text-muted); border-bottom:1px solid var(--border); }
@media (max-width:560px) {
  .cc-brief-list li { grid-template-columns:22px minmax(0,1fr); }
  .cc-brief-media { display:none; }
  .cc-brief-issue { grid-template-columns:minmax(0,1fr); gap:4px; }
  .cc-brief-issue .go { display:none; }
}

/* ============================================================
   0.7.0 — Step 1 (7 Oct 2026): nav dropdown, sections strip, home v3,
   billboard band, Community, Resources, News, Jobs
   ============================================================ */
.tm-nav { overflow:visible; }
.tm-nav li { position:relative; }
.tm-nav .caret { font-size:9px; margin-left:4px; vertical-align:2px; }
.tm-nav .cc-sub { display:none; position:absolute; top:100%; left:-16px; z-index:60; min-width:180px; flex-direction:column; align-items:stretch; gap:0;
  background:var(--ink-900); border-top:3px solid var(--gold-500); padding:8px 0; border-radius:0 0 var(--radius-md) var(--radius-md); box-shadow:0 12px 30px rgba(0,0,0,.25); }
.tm-nav li:hover > .cc-sub, .tm-nav li:focus-within > .cc-sub { display:flex; }
.tm-nav .cc-sub a { display:block; padding:9px 16px; font-size:13px; }
.tm-footer .cc-sub, .tm-footer .caret { display:none; }
.tm-subscribe.cc-getbrief { text-transform:uppercase; }

.cc-subnav { background:var(--paper-000); border-bottom:1px solid var(--border); }
.cc-subnav .inner { display:flex; gap:26px; align-items:center; height:46px; overflow-x:auto; scrollbar-width:none; }
.cc-subnav .inner::-webkit-scrollbar { display:none; }
.cc-subnav a { display:inline-flex; align-items:center; gap:7px; font-family:var(--font-headline); font-weight:600; font-size:12px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--ink-600); white-space:nowrap; }
.cc-subnav a::before { content:""; width:8px; height:8px; background:var(--sq,transparent); }
.cc-subnav a.lbl { color:var(--text-muted); }
.cc-subnav a.lbl::before { display:none; }
.cc-subnav a:hover { color:var(--ink-900); text-decoration:underline; text-decoration-color:var(--gold-500); text-underline-offset:4px; }

.cc-blockhead { display:flex; align-items:baseline; justify-content:space-between; gap:12px; border-bottom:2px solid var(--ink-900); padding-bottom:8px; margin-bottom:6px; }
.cc-blockhead h2 { font-family:var(--font-headline); font-weight:600; text-transform:uppercase; font-size:22px; line-height:1.1; margin:0; letter-spacing:.005em; }
.cc-blockhead a { font-size:13px; font-weight:600; color:var(--gold-text); white-space:nowrap; }

/* home fold 1: lead + Brief | last ten | half-page */
.cc-fold1 { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) 350px; gap:36px; padding-top:32px; padding-bottom:40px; align-items:start; }
.cc-f1-lead { display:grid; gap:28px; min-width:0; }
.cc-f1-lead .tm-hero { padding-bottom:0; border-bottom:0; gap:12px; }
.cc-f1-lead .tm-hero .tm-thumb, .cc-f1-lead .tm-hero .cc-type { aspect-ratio:4/3; }
.cc-f1-lead .tm-hero h2 { font-size:clamp(1.7rem,2.6vw,2.15rem); }
.cc-f1-lead .tm-hero p { font-size:1rem; line-height:1.5; }
.cc-latest { list-style:none; margin:0; padding:0; counter-reset:cc; display:block; }
.cc-latest li { counter-increment:cc; display:grid; grid-template-columns:26px minmax(0,1fr); column-gap:12px; row-gap:3px; padding:11px 0; border-bottom:1px solid var(--border); }
.cc-latest li::before { content:counter(cc); grid-row:span 2; font-family:var(--font-headline); font-weight:600; font-size:17px; color:var(--gold-text); }
.cc-latest li:nth-child(n+11) { display:none; }
.cc-latest .t { font-size:15px; font-weight:600; line-height:1.33; color:var(--ink-900); }
.cc-latest .t:hover { text-decoration:underline; text-decoration-color:var(--gold-500); }
.cc-latest .m { display:inline-flex; align-items:center; gap:7px; font-size:12px; color:var(--text-muted); }
.cc-latest .sq { width:6px; height:6px; background:var(--sq); display:inline-block; }
.cc-f1-rail { display:grid; justify-items:center; }
.tm-newsletter .cc-nl-past { display:inline-block; margin-top:12px; font-size:13px; color:var(--text-on-dark-muted); text-decoration:underline; text-decoration-color:var(--gold-500); text-underline-offset:3px; }

/* billboard band */
.cc-billboard { background:var(--line-100); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:20px var(--gutter) 26px; display:grid; justify-items:center; gap:8px; }
.cc-billboard img { display:block; border-radius:4px; }
.cc-bb-desk img { width:970px; max-width:100%; height:auto; }
.cc-bb-mob { display:none; }
.cc-billboard .ph { display:flex; align-items:center; justify-content:center; width:970px; max-width:100%; height:250px; border:1px dashed var(--border-strong); font-family:var(--font-mono); font-size:11px; color:var(--text-muted); }
@media (max-width:720px){ .cc-bb-desk { display:none; } .cc-bb-mob { display:block; } .cc-bb-mob img { width:300px; height:250px; } }

/* home fold 2 */
.cc-fold2 { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:48px; padding-top:36px; padding-bottom:44px; align-items:start; }
.cc-moves { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 32px; margin-top:14px; }
.cc-move { display:grid; grid-template-columns:96px minmax(0,1fr); gap:14px; align-items:start; }
.cc-move img, .cc-move .ph { width:96px; height:96px; object-fit:cover; object-position:50% 25%; border-radius:4px; background:var(--line-100); display:block; }
.cc-move .k, .cc-movecard .k, .cc-commcard .k { display:block; font-family:var(--font-headline); font-weight:600; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-text); margin-bottom:5px; }
.cc-move .h, .cc-movecard .h { display:block; font-family:var(--font-headline); font-weight:500; font-size:18px; line-height:1.15; text-transform:uppercase; color:var(--ink-900); }
.cc-commcard { display:block; background:var(--gold-500); border-radius:var(--radius-md); padding:20px; margin:14px 0 6px; }
.cc-commcard .k { color:var(--ink-900); }
.cc-commcard .h { display:block; font-family:var(--font-headline); font-weight:600; font-size:20px; line-height:1.1; text-transform:uppercase; color:var(--ink-900); }

/* calendar (body of the #calendar page) */
.cc-cal ul { list-style:none; margin:0; padding:0; }
.cc-cal li { display:grid; grid-template-columns:56px minmax(0,1fr); column-gap:12px; padding:12px 0; border-top:1px solid var(--border); }
.cc-cal li:first-child { border-top:0; }
.cc-cal .d { grid-row:span 2; font-family:var(--font-headline); font-weight:600; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--sec-events); }
.cc-cal .d b { display:block; font-size:26px; letter-spacing:0; color:var(--ink-900); line-height:1.05; }
.cc-cal .t { font-weight:600; font-size:15px; line-height:1.3; color:var(--ink-900); }
.cc-cal .p { font-size:13px; color:var(--text-muted); }
.cc-cal-short li:nth-child(n+3) { display:none; }

/* buttons */
.cc-community .btn, .cc-resources .btn, .cc-jobs .btn { display:inline-flex; align-items:center; justify-content:center; height:46px; padding:0 22px; border-radius:6px;
  font-family:var(--font-headline); font-weight:600; font-size:15px; text-transform:uppercase; background:var(--ink-900); color:#fff; white-space:nowrap; }
.btn.gold { background:var(--gold-500) !important; color:var(--ink-900) !important; }
.btn.ghost { background:transparent !important; border:2px solid #fff; color:#fff !important; }
.btn.line { background:#fff !important; border:2px solid var(--ink-900); color:var(--ink-900) !important; }

/* Community */
.cc-community { padding-top:28px; }
.cc-kick { display:flex; align-items:center; gap:10px; margin-bottom:14px; font-family:var(--font-headline); font-weight:600; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-text); }
.cc-kick .sq { width:9px; height:9px; background:var(--gold-text); }
.cc-eventhero { background:var(--ink-900); color:#fff; border-radius:var(--radius-md); overflow:hidden; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); min-height:420px; }
.cc-eventhero .tx { padding:48px; display:flex; flex-direction:column; gap:18px; }
.cc-eventhero .k { font-family:var(--font-headline); font-weight:600; font-size:14px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-500); }
.cc-eventhero h1 { font-family:var(--font-headline); font-weight:600; font-size:clamp(2.4rem,4.6vw,3.75rem); line-height:.98; text-transform:uppercase; margin:0; letter-spacing:.005em; }
.cc-eventhero p { margin:0; font-size:18px; line-height:1.55; color:#D8D2C8; max-width:520px; }
.cc-eventhero .ctas { display:flex; gap:12px; margin-top:auto; flex-wrap:wrap; }
.cc-eventhero img { width:100%; height:100%; object-fit:cover; }
.cc-comm-grid { padding-top:44px; padding-bottom:56px; }
.cc-comm-grid .tm-home-main { display:grid; gap:48px; }
.cc-comm-body { margin-top:14px; }
.cc-comm-body p, .cc-comm-body li { font-size:17px; line-height:1.6; }
.cc-coming { border:2px dashed var(--border-strong); border-radius:var(--radius-md); background:#fff; padding:26px 30px; display:grid; grid-template-columns:56px minmax(0,1fr) auto; gap:22px; align-items:center; }
.cc-coming .k { font-family:var(--font-headline); font-weight:600; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-text); }
.cc-coming h2 { font-family:var(--font-headline); font-weight:600; font-size:26px; text-transform:uppercase; margin:4px 0 6px; }
.cc-coming p { margin:0; font-size:16px; line-height:1.5; color:var(--ink-600); }
.cc-movecards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:16px; }
.cc-movecard { display:grid; grid-template-columns:120px minmax(0,1fr); background:#fff; border:1px solid var(--border); border-radius:var(--radius-md); overflow:hidden; }
.cc-movecard img, .cc-movecard .ph { width:120px; height:120px; object-fit:cover; object-position:50% 25%; background:var(--line-100); display:block; }
.cc-movecard > span { padding:14px 16px; }

/* Resources */
.cc-resources { max-width:var(--container); padding-bottom:56px; }
.cc-ladder { list-style:none; margin:24px 0 0; padding:0; }
.cc-ladder > li { display:grid; grid-template-columns:72px minmax(0,1fr) 260px; gap:28px; padding:36px 0; border-bottom:1px solid var(--border); scroll-margin-top:90px; }
.cc-ladder .n { font-family:var(--font-headline); font-weight:600; font-size:64px; line-height:.9; color:var(--gold-text); }
.cc-ladder .k, .cc-res-more .k, .cc-res-member .k { font-family:var(--font-headline); font-weight:600; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-text); }
.cc-ladder h2 { font-family:var(--font-headline); font-weight:600; font-size:32px; text-transform:uppercase; margin:6px 0 10px; }
.cc-ladder p { font-size:17px; line-height:1.6; margin:0 0 12px; color:var(--text-body); max-width:640px; }
.cc-ladder ul { margin:0; padding-left:20px; font-size:15px; line-height:1.7; color:var(--ink-600); }
.cc-ladder .s { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.cc-ladder .flag { font-family:var(--font-headline); font-weight:600; font-size:11px; letter-spacing:.1em; text-transform:uppercase; background:var(--gold-500); color:var(--ink-900); padding:4px 10px; border-radius:3px; }
.cc-res-more { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; padding:40px 0; border-bottom:1px solid var(--border); }
.cc-res-more h3 { font-family:var(--font-headline); font-weight:600; font-size:22px; text-transform:uppercase; margin:6px 0 8px; }
.cc-res-more p { font-size:15px; line-height:1.55; color:var(--ink-600); margin:0 0 10px; }
.cc-res-more a { font-weight:600; color:var(--gold-text); }
.cc-res-member { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:56px; align-items:start; padding-top:40px; }
.cc-res-member h2 { font-family:var(--font-headline); font-weight:600; font-size:36px; line-height:1.02; text-transform:uppercase; margin:8px 0 12px; }
.cc-res-member p { font-size:17px; line-height:1.55; color:var(--ink-600); }
.cc-res-member .cc-beta { margin:0; }

/* Jobs */
.cc-jobs { padding-bottom:56px; }
.cc-jobcards { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; margin-top:32px; }
.cc-jobcard { border:1px solid var(--border); border-radius:var(--radius-md); padding:30px; background:#fff; display:flex; flex-direction:column; gap:10px; }
.cc-jobcard.dark { background:var(--ink-900); color:#fff; border-color:var(--ink-900); }
.cc-jobcard .k { font-family:var(--font-headline); font-weight:600; font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-text); }
.cc-jobcard.dark .k { color:var(--gold-500); }
.cc-jobcard h2 { font-family:var(--font-headline); font-weight:600; font-size:30px; text-transform:uppercase; margin:0; }
.cc-jobcard p { margin:0 0 8px; font-size:16px; line-height:1.55; color:var(--ink-600); }
.cc-jobcard.dark p { color:var(--text-on-dark-muted); }
.cc-jobcard .links { display:flex; flex-wrap:wrap; align-items:center; gap:18px; margin-top:auto; }
.cc-jobcard .links a:not(.btn) { font-weight:600; font-size:14px; color:var(--gold-text); }
.cc-jobcard.dark .links a:not(.btn) { color:#fff; text-decoration:underline; text-decoration-color:var(--gold-500); text-underline-offset:3px; }
.cc-jobboard { margin-top:44px; }
.cc-jobboard iframe { display:block; width:100%; height:1100px; border:1px solid var(--border); border-radius:var(--radius-md); background:#fff; margin-top:14px; }
.cc-more-link { margin:18px 0 40px; font-weight:600; }

@media (max-width:1100px){
  .cc-fold1 { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .cc-f1-rail { grid-column:1 / -1; }
}
@media (max-width:920px){
  .cc-fold2, .cc-res-member { grid-template-columns:minmax(0,1fr); gap:36px; }
  .cc-eventhero { grid-template-columns:minmax(0,1fr); }
  .cc-eventhero img { aspect-ratio:16/9; height:auto; order:-1; }
  .cc-ladder > li { grid-template-columns:48px minmax(0,1fr); }
  .cc-ladder .s { grid-column:2; }
  .cc-res-more { grid-template-columns:minmax(0,1fr); gap:28px; }
}
@media (max-width:720px){
  .cc-fold1 { grid-template-columns:minmax(0,1fr); gap:30px; padding-top:20px; }
  .cc-moves, .cc-movecards, .cc-jobcards { grid-template-columns:minmax(0,1fr); }
  .cc-eventhero .tx { padding:28px 22px; }
  .cc-coming { grid-template-columns:minmax(0,1fr); }
  .cc-coming svg { display:none; }
  .cc-ladder .n { font-size:44px; }
  .cc-jobboard iframe { height:900px; }
  .cc-subnav { display:none; }
}
.cc-comm-body.gh-content { display:block; }
.cc-comm-body > * { max-width:none; margin-left:0; margin-right:0; }
.cc-res-member .cc-beta p { color:var(--text-on-dark-muted); }

/* 0.7.1 */
.cc-comm-grid { padding-left:var(--gutter); padding-right:var(--gutter); }
/* header: six nav items + search + sign in + Get The Brief do not fit below ~1180px */
@media (max-width:1180px){ .tm-search span, .tm-search kbd { display:none; } .tm-search { padding:0 11px; } .tm-nav ul { gap:16px; } }
@media (max-width:1040px){
  .tm-nav { display:none; }
  .tm-burger { display:block; }
  .tm-head-actions { margin-left:auto; }
  body.tm-nav-open .tm-nav { display:flex; position:fixed; inset:64px 0 auto 0; flex-direction:column; background:var(--paper-100); padding:8px var(--gutter) 16px; border-bottom:1px solid var(--border); z-index:60; }
  body.tm-nav-open .tm-nav ul { flex-direction:column; align-items:stretch; gap:0; }
  body.tm-nav-open .tm-nav a { display:block; padding:13px 0; border-bottom:1px solid var(--border); font-size:15px; color:var(--ink-900); }
  body.tm-nav-open .tm-nav .cc-sub { display:none; }
  .tm-burger span { background:#fff; }
}
.cc-comm-body.gh-content { padding:0; } .cc-comm-body ol, .cc-comm-body ul { padding-left:22px; }

/* 0.7.2: home back to hero + pair + river + rail; billboard between river and section blocks */
.cc-home-top { padding-bottom:44px; }
.cc-home-bottom { padding-top:8px; padding-bottom:40px; }

/* ---- Calendar (0.8.0): Community "Coming up" band + /calendar/ list and month views ---- */
.cc-blockhead .lnk { display:flex; gap:18px; }
.cc-upnext { padding-top:40px; }
.cc-upnext-list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.cc-upnext-list li { position:relative; padding:18px 22px 6px; border-left:1px solid var(--border); }
.cc-upnext-list li:first-child { border-left:0; padding-left:0; }
.cc-upnext-list .dt { display:flex; align-items:baseline; gap:10px; margin-bottom:10px; }
.cc-upnext-list .dt b { order:-1; font-family:var(--font-headline); font-weight:600; font-size:44px; line-height:.9; color:var(--ink-900); }
.cc-upnext-list .dt span, .cc-ev-d span { font-family:var(--font-headline); font-weight:600; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:var(--sec-events); }
.cc-upnext-list .k, .cc-ev .k { display:block; font-family:var(--font-headline); font-weight:600; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-text); margin-bottom:4px; }
.cc-upnext-list h3, .cc-ev h3 { font-family:var(--font-headline); font-weight:500; font-size:19px; line-height:1.15; text-transform:uppercase; margin:0 0 6px; color:var(--ink-900); }
.cc-upnext-list h3 a, .cc-ev h3 a { color:inherit; }
.cc-upnext-list h3 a:hover, .cc-ev h3 a:hover { color:var(--gold-text); }
.cc-upnext-list .m, .cc-ev .m { margin:0; font-size:14px; line-height:1.45; color:var(--text-muted); }
.cc-sample { display:inline-block; margin-top:6px; font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); }
.cc-samplenote { margin:0 0 6px; font-size:13px; color:var(--text-faint); }
.cc-cal-empty, .cc-cal-hint { font-size:15px; color:var(--text-muted); padding:18px 0; margin:0; }
.cc-cal-empty a { color:var(--gold-text); font-weight:600; }

.cc-calpage { padding-top:36px; padding-bottom:64px; }
.cc-calbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px 28px; padding-bottom:16px; margin-bottom:12px; border-bottom:1px solid var(--border); }
.cc-view { display:inline-flex; border:2px solid var(--ink-900); border-radius:6px; overflow:hidden; }
.cc-view button { border:0; background:#fff; padding:7px 16px; font-family:var(--font-headline); font-weight:600; font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-900); cursor:pointer; }
.cc-view button[aria-pressed="true"] { background:var(--ink-900); color:#fff; }
.cc-tabs { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 14px; }
.cc-tabs .lbl { font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); }
.cc-tabs button { border:0; background:none; padding:4px 0; font:600 14px/1.2 var(--font-body); color:var(--text-muted); cursor:pointer; border-bottom:2px solid transparent; }
.cc-tabs button:hover { color:var(--ink-900); }
.cc-tabs button[aria-pressed="true"] { color:var(--ink-900); border-bottom-color:var(--gold-500); }
.cc-month { font-family:var(--font-headline); font-weight:600; text-transform:uppercase; font-size:22px; line-height:1.1; margin:30px 0 0; padding-bottom:8px; border-bottom:2px solid var(--ink-900); letter-spacing:.005em; }
.cc-evlist { list-style:none; margin:0; padding:0; }
.cc-ev { display:grid; grid-template-columns:64px minmax(0,1fr) auto; column-gap:20px; padding:18px 0; border-top:1px solid var(--border); }
.cc-ev:first-child { border-top:0; }
.cc-ev-d b { display:block; font-family:var(--font-headline); font-weight:600; font-size:38px; line-height:1; color:var(--ink-900); margin-top:2px; }
.cc-ev.is-featured .cc-ev-d { border-left:4px solid var(--gold-500); padding-left:10px; margin-left:-14px; }
.cc-ev-a { display:flex; flex-direction:column; align-items:flex-end; gap:4px; padding-top:2px; }
.cc-ev-a a { font-size:13px; font-weight:600; color:var(--gold-text); white-space:nowrap; }
.cc-ev-a .cc-sample { margin-top:0; }
.cc-mhead { display:flex; align-items:flex-end; gap:12px; }
.cc-mhead .cc-month { flex:1; }
.cc-mhead button { border:1px solid var(--border-strong); background:#fff; width:36px; height:36px; border-radius:6px; font-size:20px; line-height:1; cursor:pointer; margin-bottom:10px; color:var(--ink-900); }
.cc-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); border-left:1px solid var(--border); border-top:1px solid var(--border); margin-top:14px; }
.cc-grid .wd { padding:8px; font-size:12px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--text-faint); border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--paper-100); }
.cc-grid .c { display:flex; flex-direction:column; align-items:stretch; gap:3px; min-height:96px; padding:6px 7px; border:0; border-right:1px solid var(--border); border-bottom:1px solid var(--border); background:#fff; text-align:left; font:inherit; cursor:default; min-width:0; }
.cc-grid .c.pad { background:var(--paper-100); }
.cc-grid .c.has { cursor:pointer; }
.cc-grid .c.has:hover, .cc-grid .c.on { background:#FFF7E6; }
.cc-grid .n { font-family:var(--font-headline); font-weight:600; font-size:15px; color:var(--text-faint); }
.cc-grid .c.has .n { color:var(--ink-900); }
.cc-grid .c.today .n { color:var(--ink-900); text-decoration:underline; text-decoration-color:var(--gold-500); text-decoration-thickness:3px; text-underline-offset:4px; }
.cc-grid .e { display:block; font-size:12px; line-height:1.25; font-weight:600; color:var(--ink-900); border-left:3px solid var(--sec-events); padding-left:5px; overflow:hidden; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; }
.cc-grid .e.f { border-left-color:var(--gold-500); }
.cc-grid .more { font-size:11px; color:var(--text-muted); }
.cc-dayl { margin-top:8px; }
.cc-addev { background:#fff; border:1px solid var(--border); border-radius:var(--radius-md); padding:20px; }
.cc-addev p { margin:10px 0 0; font-size:15px; line-height:1.5; color:var(--text-body); }
.cc-addev .btn { display:inline-flex; align-items:center; height:44px; padding:0 20px; border-radius:6px; margin-top:16px; font-family:var(--font-headline); font-weight:600; font-size:14px; letter-spacing:.06em; text-transform:uppercase; }
@media (max-width:1040px) {
  .cc-upnext-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cc-upnext-list li:nth-child(3) { border-left:0; padding-left:0; }
  .cc-upnext-list li:nth-child(n+3) { border-top:1px solid var(--border); }
}
@media (max-width:640px) {
  .cc-upnext-list { grid-template-columns:1fr; }
  .cc-upnext-list li { border-left:0; padding:14px 0 4px; display:grid; grid-template-columns:64px minmax(0,1fr); column-gap:14px; border-top:1px solid var(--border); }
  .cc-upnext-list li:first-child { border-top:0; }
  .cc-upnext-list .dt { grid-row:span 4; flex-direction:column; gap:4px; margin:0; }
  .cc-upnext-list .dt span { font-size:11px; }
  .cc-upnext-list .dt b { order:0; font-size:34px; }
  .cc-blockhead .lnk a + a { display:none; }
  .cc-ev { grid-template-columns:52px minmax(0,1fr); column-gap:14px; }
  .cc-ev-a { grid-column:2; flex-direction:row; align-items:center; justify-content:flex-start; gap:12px; margin-top:8px; }
  .cc-ev-d b { font-size:30px; }
  .cc-ev.is-featured .cc-ev-d { margin-left:0; padding-left:8px; }
  .cc-calbar { gap:12px; }
  .cc-tabs { flex-wrap:nowrap; overflow-x:auto; width:100%; padding-bottom:2px; }
  .cc-tabs button { white-space:nowrap; }
  .cc-grid .c { min-height:52px; padding:4px; }
  .cc-grid .wd { padding:6px 2px; text-align:center; font-size:10px; }
  .cc-grid .e { font-size:0; border-left:0; padding:0; width:7px; height:7px; border-radius:50%; background:var(--sec-events); }
  .cc-grid .e.f { background:var(--gold-500); }
  .cc-grid .more { display:none; }
}

/* ============================================================
   0.8.1 masthead (Geoff 8 Oct, after Jason asked twice for a bigger logo)
   ≥1041px: the lockup gets its own row at 64px and the nav moves to a second line.
   The top group sticks at -102px (20 padding + 64 logo + 18 gap), so the logo row scrolls
   away and only the nav line stays pinned. ≤1040px: one 72px bar, lockup 40px; phones
   scale the lockup 26–36px so lockup + search + burger still fit at 320px.
   ============================================================ */
@media (min-width:1041px){
  .tm-topgroup { top:-102px; }
  .tm-header-inner { flex-wrap:wrap; height:auto; row-gap:0; padding-top:20px; }
  .tm-logo { order:0; }
  .tm-logo img { height:64px; }
  .tm-head-actions { order:1; margin-left:auto; }
  .tm-nav { order:2; flex:1 1 100%; margin:18px 0 0; height:46px; align-items:center; border-top:1px solid var(--border-on-dark); }
  .tm-nav ul { gap:22px; }
}
@media (max-width:1040px){
  .tm-header-inner { height:72px; }
  .tm-logo img { height:40px; }
  body.tm-nav-open .tm-nav { inset:72px 0 auto 0; }
}
@media (max-width:720px){
  .tm-logo img { height:clamp(26px, 9.2vw, 36px); }
}

/* ============================================================
   0.8.2 home (Geoff 8 Oct): billboard band under the hero + featured pair, then a ten-story river
   beside the rest of the rail. The half-page renders twice: in the top rail on desktop, below the
   river on phones/tablets (single column), so it never sits next to the billboard.
   ============================================================ */
.cc-mob-only { display:none; }
@media (max-width:920px){ .cc-desk-only { display:none; } .cc-mob-only { display:block; } }
.cc-home-top { padding-bottom:40px; }
.cc-home-river { padding-top:40px; padding-bottom:12px; }

/* ============================================================
   0.8.6 Fabric in the masthead (Jason 19 Oct: top-right, prominently; Geoff chose D now, A from January).
   Setting fabric_masthead: "Launch note" (D) through 31 Dec 2026, then "Endorsement" (A).
   ≥1041px: Fabric takes the logo row's top-right corner, and Search / Sign in / Get The Brief move to
   the right end of the nav line, which is the line that stays pinned. A 1px break line (::after) wraps
   the row, so the total height and the -102px sticky offset are unchanged from 0.8.1.
   ≤1040px: the endorsement stacks under the lockup inside the 72px bar; the launch note becomes
   a strip under the bar that scrolls away. CC leads: the Fabric wordmark is white, never gold.
   ============================================================ */
.cc-fabric { color:#fff; flex:none; }
.cc-fabric:focus-visible, .cc-fabric-strip:focus-visible, .cc-fabric-foot:focus-visible { outline:2px solid var(--gold-500); outline-offset:4px; }
.cc-fabric img, .cc-fabric-strip img, .cc-fabric-foot img { width:auto; }
.cc-fabric .by, .cc-fabric-foot span { font-family:var(--font-mono); font-weight:600; font-size:10px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--text-on-dark-muted); line-height:1; transition:color .15s ease; }
.cc-fabric:hover .by, .cc-fabric-foot:hover span { color:#fff; }

/* A: endorsement */
.cc-fabric--endorse { display:flex; flex-direction:column; align-items:flex-end; gap:7px; }
.cc-fabric--endorse img { height:34px; }

/* D: launch note */
.cc-fabric--note { display:grid; grid-template-columns:auto auto; align-items:end; column-gap:16px; row-gap:8px;
  border-left:1px solid var(--border-on-dark); padding-left:22px; }
.cc-fabric--note .k { grid-column:1 / -1; display:flex; align-items:center; gap:8px; font-family:var(--font-headline); font-weight:600;
  font-size:12px; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-500); line-height:1; }
.cc-fabric--note .k::before, .cc-fabric-strip .k::before { content:""; width:6px; height:6px; background:var(--gold-500); flex:none; }
.cc-fabric--note .line { display:flex; align-items:baseline; gap:10px; font-family:var(--font-headline); font-weight:500; font-size:19px;
  line-height:1; letter-spacing:.01em; text-transform:uppercase; }
.cc-fabric--note .line img { height:26px; }
.cc-fabric--note .meet, .cc-fabric-strip .meet { font-family:var(--font-headline); font-weight:600; font-size:12px; letter-spacing:.08em;
  text-transform:uppercase; color:#fff; border-bottom:2px solid var(--gold-500); padding-bottom:2px; line-height:1.2; transition:color .15s ease; }
.cc-fabric--note .meet { justify-self:end; }
.cc-fabric--note:hover .meet, .cc-fabric-strip:hover .meet { color:var(--gold-500); }

@media (min-width:1041px){
  .tm-header-inner::after { content:""; order:2; flex:0 0 100%; height:1px; margin-top:18px; background:var(--border-on-dark); }
  .cc-fabric { order:1; margin-left:auto; }
  .tm-nav { order:3; flex:1 1 auto; margin:0; height:45px; border-top:0; }
  .tm-head-actions { order:4; margin-left:auto; }
  .tm-head-actions .tm-search, .tm-head-actions .tm-subscribe { height:34px; }
  .tm-head-actions .tm-subscribe { padding:0 14px; font-size:13px; }
}

@media (max-width:1040px){
  .cc-fabric--note { display:none; }
  .tm-header-inner { position:relative; }
  .cc-fab-endorse .tm-logo { align-self:flex-start; margin-top:12px; }
  .cc-fab-endorse .tm-logo img { height:30px; }
  .cc-fabric--endorse { position:absolute; left:var(--gutter); top:48px; flex-direction:row; align-items:center; gap:8px; }
  .cc-fabric--endorse .by { font-size:9px; letter-spacing:.16em; }
  .cc-fabric--endorse img { height:13px; }
}
@media (max-width:720px){
  .cc-fab-endorse .tm-logo img { height:26px; }
  .cc-fabric--endorse { top:44px; }
}

/* D on tablets and phones: a strip under the bar, outside the sticky group */
.cc-fabric-strip { display:none; }
@media (max-width:1040px){
  .cc-fabric-strip { display:flex; align-items:center; gap:10px; height:40px; padding:0 var(--gutter); background:var(--ink-800); }
  .cc-fabric-strip .k { display:flex; align-items:center; gap:7px; font-family:var(--font-headline); font-weight:600; font-size:11px;
    letter-spacing:.1em; text-transform:uppercase; color:var(--gold-500); white-space:nowrap; }
  .cc-fabric-strip img { height:14px; }
  .cc-fabric-strip .meet { margin-left:auto; font-size:11px; white-space:nowrap; }
}

/* footer: the publisher under the CC lockup */
.tm-footer .cc-fabric-foot { display:inline-flex; align-items:center; gap:12px; margin-top:20px; padding:0; }
.tm-footer .cc-fabric-foot img { height:22px; margin:0; }

/* 0.8.7 half-page on narrow phones: the grid's auto track grew to the creative's 350px, so
   max-width:100% never bit and a 320px screen scrolled sideways. A bounded track lets the
   unit scale down (284x487 at 320px) and keeps its 350:600 shape. */
.cc-halfpage { grid-template-columns:minmax(0,1fr); }
