/*
Theme Name: The Millennial Press
Theme URI: https://themillennialpress.com
Description: Custom magazine theme for The Millennial Press. Faithful implementation of the approved Website Mockups V2 and Brand Guidance v3.0 — Libre Baskerville + Inter (self-hosted), restrained TMP red (#BE2117), editorial grid layout. Pair with the Millennial Press Core plugin for content-type classification, commercial disclosures and the TMP Draft Operator role.
Author: The Millennial Press
Version: 1.2.6
Requires at least: 6.5
Requires PHP: 8.0
License: Proprietary — The Millennial Press / D&A Ecosource Limited
Text Domain: millennial-press
*/

/* ---------- Self-hosted fonts (no third-party requests) ---------- */
/* Inter normal 400 — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/f4.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter normal 400 — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/f2.woff2) format('woff2');
  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;
}
/* Inter normal 500 — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/f4.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter normal 500 — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/fonts/f2.woff2) format('woff2');
  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;
}
/* Inter normal 600 — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/f4.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter normal 600 — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/fonts/f2.woff2) format('woff2');
  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;
}
/* Inter normal 700 — latin-ext */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/f4.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Inter normal 700 — latin */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/f2.woff2) format('woff2');
  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;
}
/* Libre Baskerville italic 400 — latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/f8.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville italic 400 — latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/f9.woff2) format('woff2');
  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;
}
/* Libre Baskerville normal 400 — latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/f10.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville normal 400 — latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/f11.woff2) format('woff2');
  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;
}
/* Libre Baskerville normal 700 — latin-ext */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/f10.woff2) format('woff2');
  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-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* Libre Baskerville normal 700 — latin */
@font-face {
  font-family: 'Libre Baskerville';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/fonts/f11.woff2) format('woff2');
  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;
}

/* ---------- TMP design system (ported from approved mockups V2) ---------- */
/* The Millennial Press — design prototype stylesheet (not for production) */

:root {
  --tmp-serif: 'Libre Baskerville', Georgia, 'Times New Roman', serif;
  --tmp-sans: Inter, Arial, sans-serif;
  --tmp-red: #BE2117;
  --tmp-ink: #151515;
  --tmp-body: #252521;
  --tmp-paper: #FFFDF9;
  --tmp-muted: #5E5D5A;
  --tmp-rule: #BEBDB7;
  --tmp-white: #FFFFFF;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { overflow-x: clip; }

body {
  background: var(--tmp-paper);
  color: var(--tmp-body);
  font-family: var(--tmp-serif);
  font-size: 1.05rem;
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
a:focus-visible, .skip:focus-visible { outline: 2px solid var(--tmp-red); outline-offset: 3px; }

.wrap { max-width: 1180px; margin: 0 auto; padding: 0 24px; }

.skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--tmp-red); color: #fff; padding: 8px 16px;
  font-family: var(--tmp-sans); font-size: .85rem; z-index: 100;
}
.skip:focus { left: 0; }

/* ---------- Masthead (homepage top) ---------- */
.masthead-zone { padding: 44px 0 0; }
.masthead-zone img.masthead {
  margin: 0 auto; width: min(860px, 92%);
  height: auto;
}
.masthead-zone .dateline {
  text-align: center; font-family: var(--tmp-sans);
  font-size: .74rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--tmp-muted); margin-top: 18px;
}

/* ---------- Primary nav ---------- */
.menu-toggle { display: none; }
.primary-nav {
  border-top: 1px solid var(--tmp-ink);
  border-bottom: 1px solid var(--tmp-rule);
  margin-top: 20px;
}
.primary-nav ul {
  list-style: none; display: flex; flex-wrap: wrap; justify-content: center;
  gap: 0;
}
.primary-nav a {
  display: block; padding: 13px 22px;
  font-family: var(--tmp-sans); font-size: .8rem; font-weight: 600;
  letter-spacing: .12em; text-transform: uppercase; color: var(--tmp-ink);
}
.primary-nav a:hover { color: var(--tmp-red); }

/* ---------- Sticky compact header ---------- */
.sticky-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  background: rgba(255,253,249,.97);
  border-bottom: 1px solid var(--tmp-rule);
  transform: translateY(-110%);
  transition: transform .25s ease;
}
.sticky-bar { visibility: hidden; pointer-events: none; }
.sticky-bar.visible { transform: translateY(0); visibility: visible; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { .sticky-bar { transition: none; } }
.sticky-bar .wrap {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding-top: 10px; padding-bottom: 10px;
}
.sticky-bar .brand img { height: 34px; width: auto; }
.menu-toggle {
  display: none; align-items: center; gap: 8px;
  font-family: var(--tmp-sans); font-size: .72rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--tmp-ink);
  background: none; border: 1px solid var(--tmp-rule); padding: 8px 12px;
  cursor: pointer;
}
.menu-toggle:hover { color: var(--tmp-red); border-color: var(--tmp-red); }
.menu-toggle svg { width: 14px; height: 14px; display: block; }
.sticky-bar nav ul { list-style: none; display: flex; flex-wrap: wrap; }
.sticky-bar nav a {
  padding: 8px 12px; font-family: var(--tmp-sans); font-size: .72rem;
  font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--tmp-ink);
}
.sticky-bar nav a:hover { color: var(--tmp-red); }

/* ---------- Cards ---------- */
.kicker {
  display: inline-block; font-family: var(--tmp-sans); font-size: .72rem;
  font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: var(--tmp-red); margin-bottom: 10px;
}
.card h3, .card h2 {
  font-family: var(--tmp-serif); font-weight: 700; color: var(--tmp-ink);
  letter-spacing: -0.015em; line-height: 1.22;
}
.card h3 a:hover, .card h2 a:hover { color: var(--tmp-red); }
.card .deck {
  font-family: var(--tmp-serif); color: var(--tmp-muted); margin-top: 10px;
}
.card img { width: 100%; height: auto; }

/* Feature (hero) card */
.feature { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 36px; align-items: start; }
.feature > *, .card, .row-wide > *, .illus-feature > *, .list-rows .row > *, .three-up > *, .related .grid > * { min-width: 0; }
.feature .lead img { margin-bottom: 18px; }
.feature .lead h2 { font-size: clamp(1.9rem, 3.2vw, 2.9rem); line-height: 1.1; }
.feature .lead .deck { font-size: clamp(1.05rem, 1.4vw, 1.3rem); line-height: 1.45; }
.feature .lead .kicker { font-size: .76rem; }
.stack { display: grid; gap: 28px; }
.stack .card { border-bottom: 1px solid var(--tmp-rule); padding-bottom: 24px; }
.stack .card:last-child { border-bottom: none; padding-bottom: 0; }
.stack .card h3 { font-size: 1.25rem; line-height: 1.28; }
.stack .card img { margin-bottom: 12px; }

/* Section shells */
.section { margin: 52px 0 0; }
.section-head {
  display: flex; align-items: baseline; justify-content: space-between;
  border-top: 3px solid var(--tmp-ink); padding-top: 12px; margin-bottom: 26px;
}
.section-head h2 {
  font-family: var(--tmp-sans); font-size: .85rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--tmp-ink);
}
.section-head a {
  font-family: var(--tmp-sans); font-size: .74rem; letter-spacing: .08em;
  text-transform: uppercase; color: var(--tmp-red); font-weight: 600;
}

/* Grid: one wide + supporting */
.row-wide { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(0, 1fr); gap: 36px; }
.row-wide .wide h3 { font-size: clamp(1.4rem, 2vw, 1.9rem); margin-top: 14px; }
.row-wide .wide img { margin-bottom: 0; }

/* Three-up card row */
.three-up { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px; margin-top: 34px; }
.three-up .card h3 { font-size: 1.22rem; line-height: 1.3; }
.three-up .card img { margin-bottom: 14px; }

/* Illustration feature: text + image side by side */
.illus-feature { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 40px; align-items: center; }
.illus-feature h3 { font-size: clamp(1.5rem, 2.4vw, 2.1rem); line-height: 1.15; margin-top: 12px; }
.illus-feature .deck { margin-top: 14px; }
.illus-feature .excerpt { margin-top: 16px; color: var(--tmp-muted); font-size: .98rem; }

/* Compact article cards have exactly two grid children: thumbnail
   (left) and kicker + headline together in one text wrapper (right).
   No cross-row placement or fixed offsets, so long headlines stay beside
   the image. The thumbnail is balanced against the complete text block. */
.list-rows .row {
  display: grid; grid-template-columns: 150px minmax(0, 1fr); column-gap: 20px;
  align-items: center;
  padding: 18px 0; border-bottom: 1px solid var(--tmp-rule);
}
.list-rows .row:last-child { border-bottom: none; }
.list-rows .row-thumb { display: block; grid-column: 1; min-width: 0; }
.list-rows .row-thumb img { display: block; width: 100%; height: auto; }
.list-rows .row-copy { grid-column: 2; min-width: 0; }
.list-rows .row-copy .kicker { display: block; margin-bottom: 6px; }
.list-rows .row-copy h3 { font-size: 1.08rem; line-height: 1.3; margin: 0; }
.list-rows .row.no-thumb .row-copy { grid-column: 1 / -1; }

/* Latest list */
.latest { columns: 2; column-gap: 48px; }
.latest .item {
  break-inside: avoid; padding: 14px 0; border-bottom: 1px solid var(--tmp-rule);
}
.latest h3 { font-size: 1.02rem; line-height: 1.35; }
.latest .kicker { margin-bottom: 4px; }

/* Footer */
footer {
  margin-top: 72px; border-top: 4px solid var(--tmp-red);
  background: var(--tmp-white); padding: 40px 0 48px;
}
footer .wrap { display: grid; gap: 20px; justify-items: center; }
footer img { height: 40px; width: auto; }
footer nav ul { list-style: none; display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 22px; }
footer nav a {
  font-family: var(--tmp-sans); font-size: .72rem; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--tmp-ink);
}
footer nav a:hover { color: var(--tmp-red); }
footer .site-links {
  width: 100%; border-top: 1px solid var(--tmp-rule); padding-top: 14px;
  display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 18px;
}
footer .site-links a {
  font-family: var(--tmp-sans); font-size: .72rem; color: var(--tmp-muted);
}
footer .site-links a:hover { color: var(--tmp-red); }
footer .fine {
  font-family: var(--tmp-sans); font-size: .74rem; color: var(--tmp-muted); text-align: center;
}

/* ---------- Article page ---------- */
.article-hero img { width: 100%; height: auto; }
.article-hero figcaption {
  font-family: var(--tmp-sans); font-size: .74rem; color: var(--tmp-muted);
  padding: 10px 0 0; border-bottom: 1px solid var(--tmp-rule); padding-bottom: 14px;
}
.article-head { max-width: 820px; margin: 44px auto 0; }
.article-head h1 {
  font-size: clamp(2.2rem, 4vw, 3.4rem); line-height: 1.12; color: var(--tmp-ink);
  letter-spacing: -0.02em;
}
.article-head .deck {
  font-size: clamp(1.1rem, 1.5vw, 1.35rem); line-height: 1.5; color: var(--tmp-muted); margin-top: 18px;
}
.byline {
  display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center;
  font-family: var(--tmp-sans); font-size: .8rem; color: var(--tmp-ink);
  padding: 18px 0; margin-top: 26px;
  border-top: 1px solid var(--tmp-ink); border-bottom: 1px solid var(--tmp-rule);
}
.byline .avatar {
  width: 40px; height: 40px; border-radius: 50%; background: var(--tmp-rule);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--tmp-sans); font-size: .7rem; color: var(--tmp-white);
}
.article-body { max-width: 720px; margin: 36px auto 0; font-size: 1.12rem; line-height: 1.72; }
.article-body p { margin: 0 0 26px; }
.article-body h2 {
  font-size: clamp(1.35rem, 2vw, 1.7rem); line-height: 1.25; color: var(--tmp-ink);
  margin: 40px 0 18px; letter-spacing: -0.015em;
}
/* Subsection headings (h3): same Libre Baskerville voice, one step below h2 —
   clearly distinct from body text but subordinate in the editorial hierarchy. */
.article-body h3 {
  font-family: var(--tmp-serif); font-weight: 700;
  font-size: clamp(1.15rem, 1.6vw, 1.38rem); line-height: 1.3;
  color: var(--tmp-ink); margin: 34px 0 14px; letter-spacing: -0.01em;
}
.article-body h4 {
  font-family: var(--tmp-serif); font-weight: 700;
  font-size: 1.05rem; line-height: 1.35;
  color: var(--tmp-ink); margin: 28px 0 12px;
}
.pull-quote {
  border-top: 3px solid var(--tmp-red); border-bottom: 3px solid var(--tmp-red);
  padding: 22px 6px; margin: 38px 0;
  font-family: var(--tmp-serif); font-style: italic;
  font-size: clamp(1.25rem, 2vw, 1.55rem); line-height: 1.4; color: var(--tmp-ink);
}
.sources { max-width: 720px; margin: 48px auto 0; }
.sources h2, .related h2 {
  font-family: var(--tmp-sans); font-size: .8rem; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; color: var(--tmp-ink);
  border-top: 3px solid var(--tmp-ink); padding-top: 12px; margin-bottom: 18px;
}
.sources ul { list-style: none; }
.sources li {
  font-family: var(--tmp-sans); font-size: .86rem; line-height: 1.55;
  padding: 10px 0; border-bottom: 1px solid var(--tmp-rule);
}
.sources a { color: var(--tmp-red); word-break: break-all; }
.related { max-width: 980px; margin: 56px auto 0; }
.related .grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.related .card h3 { font-size: 1.1rem; line-height: 1.3; margin-top: 12px; }

/* ---------- Responsive ---------- */
@media (max-width: 1024px) {
  .feature, .row-wide, .illus-feature { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .illus-feature .illus-img { order: -1; }
}
@media (max-width: 720px) {
  .three-up, .related .grid { grid-template-columns: minmax(0, 1fr); gap: 26px; }
  .latest { columns: 1; }
  /* Approved mobile Menu control — replaces the horizontal category rail.
     The compact red TMP logo stays visible in the sticky header; the nav
     collapses behind an accessible Menu toggle with a dropdown panel. */
  /* The homepage opens with the full masthead. The existing primary
     navigation becomes its single accessible mobile Menu below the tagline.
     When that navigation scrolls away, JS reveals the compact sticky TMP
     header and its Menu, avoiding two visible buttons or a covered masthead. */
  .primary-nav {
    display: flex; justify-content: flex-end; position: relative;
    padding-top: 10px; padding-bottom: 10px; margin-top: 8px;
    border-top: 0; border-bottom: 1px solid var(--tmp-rule);
  }
  .menu-toggle { display: inline-flex; }
  .sticky-bar nav ul, .primary-nav ul { display: none; }
  .sticky-bar nav ul.open, .primary-nav ul.open {
    display: flex; flex-direction: column; align-items: stretch;
  }
  .sticky-bar nav { position: relative; }
  /* Anchor the dropdown to the right edge of the Menu button.  The old
     left:0/right:0 rules made the panel only as wide as the button and
     sent the long category labels outside the mobile viewport. */
  .sticky-bar nav ul.open,
  .primary-nav ul.open {
    position: absolute; top: calc(100% + 9px); right: 0; left: auto;
    width: min(320px, calc(100vw - 32px));
    max-height: calc(100vh - 100px); overflow-y: auto;
    background: var(--tmp-paper); border: 1px solid var(--tmp-rule);
    box-shadow: 0 10px 24px rgba(21, 21, 21, .08); z-index: 60;
  }
  .sticky-bar nav ul.open a,
  .primary-nav ul.open a {
    display: block; width: 100%;
    white-space: normal; overflow-wrap: break-word;
    text-align: left;
  }
  .primary-nav ul.open { border-top: none; }
  .sticky-bar nav ul.open a, .primary-nav ul.open a {
    padding: 12px 24px; border-bottom: 1px solid var(--tmp-rule);
  }
  .sticky-bar nav ul.open li:last-child a,
  .primary-nav ul.open li:last-child a { border-bottom: none; }
  .masthead-zone { padding-top: 30px; }
  .list-rows .row { grid-template-columns: 110px minmax(0, 1fr); column-gap: 14px; }
  body { font-size: 1rem; }
}
@media (max-width: 420px) {
  .wrap { padding: 0 16px; }
  .list-rows .row { grid-template-columns: minmax(0, 1fr); row-gap: 12px; }
  .list-rows .row-thumb { grid-column: 1; grid-row: 1; }
  .list-rows .row-copy { grid-column: 1; grid-row: 2; }
  .list-rows .row.no-thumb .row-copy { grid-row: 1; }
  .list-rows .row-thumb img { max-height: 170px; object-fit: cover; }
}


/* ---------- WordPress integration ---------- */
/* Interior pages: compact header visible from load; offset the fixed bar */
body.tmp-interior main { padding-top: 76px; }


/* Archive head (category pages) */
.archive-head h1 {
  font-size: clamp(1.9rem, 3.2vw, 2.9rem); line-height: 1.15;
  color: var(--tmp-ink); letter-spacing: -0.015em;
}

/* Editor content alignment inside .article-body */
.article-body img { height: auto; }
.article-body blockquote {
  border-top: 3px solid var(--tmp-red); border-bottom: 3px solid var(--tmp-red);
  padding: 22px 6px; margin: 38px 0; font-style: italic;
  font-family: var(--tmp-serif); font-size: 1.2rem; line-height: 1.4; color: var(--tmp-ink);
}
.article-body figure { margin: 30px 0; }
.article-body figcaption {
  font-family: var(--tmp-sans); font-size: .74rem; color: var(--tmp-muted); margin-top: 8px;
}
.article-body ul, .article-body ol { margin: 0 0 26px 22px; }
.article-body li { margin-bottom: 8px; }
