*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Palatino Linotype',Palatino,'Book Antiqua',serif;line-height:1.9;color:#2a2a2a;background:#fefefe}
.sc-lNKrme{max-width:640px;margin:0 auto;padding:0 20px}
.sc-IFaGsJ{padding:60px 0 40px;border-bottom:1px solid #ccc;margin-bottom:48px}
.sc-IFaGsJ h1{font-size:24px;font-weight:400;letter-spacing:-.5px}
.sc-IFaGsJ p{font-size:14px;color:#777;margin-top:6px;font-style:italic}
.sc-IFaGsJ a{color:#2a2a2a;text-decoration:none;font-size:24px;font-weight:400;letter-spacing:-.5px}
.sc-RTEWHw{padding:20px 0}
.sc-RTEWHw h2{font-size:18px;font-weight:400;margin-bottom:4px}
.sc-RTEWHw h2 a{color:#2a2a2a;text-decoration:none;border-bottom:1px solid transparent}
.sc-RTEWHw h2 a:hover{border-bottom-color:#2a2a2a}
.sc-RTEWHw .sc-rWcNbH{font-size:12px;color:#aaa;margin-bottom:6px}
.sc-RTEWHw p{font-size:14px;color:#666}
.sc-FJTfiK{color:#888;font-size:13px;text-decoration:none}
.sc-FJTfiK:hover{color:#2a2a2a}
.sc-CNFLWN{padding-bottom:60px}
.sc-CNFLWN h1{font-size:28px;font-weight:400;margin-bottom:8px}
.sc-CNFLWN .sc-rWcNbH{font-size:12px;color:#aaa;display:block;margin-bottom:32px}
.sc-CNFLWN h2{font-size:21px;font-weight:400;margin:40px 0 12px;border-bottom:1px solid #eee;padding-bottom:6px}
.sc-CNFLWN h3{font-size:17px;margin:28px 0 8px}
.sc-CNFLWN p{margin-bottom:18px;font-size:16px}
.sc-CNFLWN ul,.sc-CNFLWN ol{margin:0 0 18px 20px}
.sc-CNFLWN a{color:#555;border-bottom:1px solid #ccc}
.sc-CNFLWN a:hover{color:#000;border-bottom-color:#000}
.sc-CNFLWN img{max-width:100%;height:auto;margin:24px 0}
.sc-FJaSZZ{border-top:1px solid #ddd;padding:20px 0;margin-top:48px;text-align:center;font-size:12px;color:#aaa}
.sc-FJaSZZ a{color:#aaa;text-decoration:none}
.sc-KqWfXK{padding:0 0 16px;margin-bottom:24px;font-size:12px;color:#aaa;font-style:italic;border-bottom:1px solid #eee}
.sc-YRwtTN{padding:16px 0 0;margin-top:32px;font-size:11px;color:#999;border-top:1px solid #eee}
.sc-WekDcK{font-size:12px;color:#aaa;margin:-26px 0 32px;font-weight:300}
.sc-sTXeTa{margin:0 auto 32px;max-width:720px}
.sc-IOHyXy{width:100%;height:auto}
.sc-xsXBrb{margin-top:40px;padding-top:20px;border-top:1px solid #eee;font-size:14px;color:#888}
.sc-xsXBrb em{color:#aaa}
.sc-xsXBrb a{color:#555;border-bottom:1px solid #ddd;text-decoration:none}
.sc-dffLtA{padding:24px 0 0;border-top:1px solid #eee;margin-top:24px}
.sc-dffLtA p{padding:3px 0;margin:0;font-size:15px}
.sc-dffLtA a{color:#2a2a2a;text-decoration:none;border-bottom:1px solid transparent}
.sc-dffLtA a:hover{border-bottom-color:#2a2a2a}
/* === Theme === */
@import url('https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&family=Playfair+Display:wght@400;700&display=swap');
body{font-family:'Lora',sans-serif;color:#2D242E;background:#FAF9F6}
.sc-IFaGsJ{background:#4A314D;color:#fff}
.sc-IFaGsJ h1{font-family:'Playfair Display',serif;color:#fff}
.sc-IFaGsJ p{color:rgba(255,255,255,.75)}
.sc-IFaGsJ a{color:#fff;text-decoration:none}
.card h2{font-family:'Playfair Display',serif}
.card h2 a{color:#4A314D}
.card h2 a:hover{color:#E07A5F}
.read-more{color:#E07A5F}
.article-content h1{font-family:'Playfair Display',serif}
.article-content h2{font-family:'Playfair Display',serif}
.article-content a{color:#E07A5F}
.article-content img{border-radius:8px}
.affiliate-disclosure{border-radius:8px}
.ymyl-disclaimer{border-radius:8px}
/* === Custom === */
/* v.c8336c — layout revision */
/* pj-pareja-es — "Gestos de Pareja" · Andrés Velarde, Rosario
   Alegreya superfamily (loaded by theme @font-face): italic display + roman
   text + Alegreya Sans tracked meta. Algarrobo brown + verde pampa on cream,
   #7C4A5C (moment) used exactly twice: masthead rule + hero drop cap.
   All homepage/article selectors are :root-prefixed to out-specify the
   theme's obfuscated single-class rules (.sc-lNKrme max-width:640, etc.).   */

/* ─── TOKENS ─────────────────────────────────────────────────────────── */
:root {
  --color-primary:      #5E3A1A;
  --color-accent:       #2E7A5F;
  --color-moment:       #7C4A5C;
  --color-bg:           #FAF6EE;
  --color-bg-alt:       #EDE7D6;
  --color-bg-panel:     #F2EBDA;
  --color-text:         #241A11;
  --color-text-muted:   #6A5B4A;
  --color-heading:      #35220F;
  --color-link:         #5E3A1A;
  --color-link-hover:   #2E7A5F;
  --color-border:       rgba(58, 37, 16, .13);
  --color-rule:         rgba(58, 37, 16, .16);

  --font-display: 'Alegreya', Georgia, 'Times New Roman', serif;
  --font-body:    'Alegreya', Georgia, 'Times New Roman', serif;
  --font-meta:    'Alegreya Sans', system-ui, -apple-system, sans-serif;

  --size-base:  18px;
  --lh-body:    1.78;
  --max-width:  68ch;
}

/* ─── BASE ───────────────────────────────────────────────────────────── */
:root body {
  font-family:            var(--font-body);
  font-size:              var(--size-base);
  line-height:            var(--lh-body);
  color:                  var(--color-text);
  background:             var(--color-bg);
  -webkit-font-smoothing: antialiased;
}

:root *,
:root *::before,
:root *::after { box-sizing: border-box; }

:root h1, :root h2, :root h3, :root h4, :root h5, :root h6 {
  font-family: var(--font-display);
  color:       var(--color-heading);
  line-height: 1.18;
}

:root p  { margin: 0 0 1.4rem; }
:root ul, :root ol { max-width: var(--max-width); margin-bottom: 1.4rem; padding-left: 1.4em; }
:root li { margin-bottom: .45em; }
:root li::marker { color: var(--color-accent); }

:root a {
  color: var(--color-link);
  text-decoration: underline;
  text-underline-offset: 3px;
  text-decoration-thickness: 1px;
  transition: color .15s ease, background-color .18s ease, border-color .18s ease;
}
:root a:hover { color: var(--color-link-hover); }

/* ══════════════════════════════════════════════════════════════════════
   MASTHEAD  (body > header)  — full-bleed brown paper, italic wordmark,
   tracked kicker, moment rule (#1/2), manifesto line, two-voices seal.
   ══════════════════════════════════════════════════════════════════════ */
:root body > header {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0 0 clamp(56px, 8vw, 92px);
  padding: clamp(58px, 9vw, 98px) 24px clamp(46px, 6vw, 70px);
  text-align: center;
  color: #F4ECDC;
  background:
    radial-gradient(120% 150% at 50% -10%, rgba(124, 74, 92, .22), transparent 62%),
    linear-gradient(168deg, #6B421F 0%, #5E3A1A 46%, #472A11 100%);
  border-bottom: 1px solid rgba(255, 255, 255, .10);
}

:root body > header::before {
  content: "Cuaderno de pareja · Rosario";
  display: block;
  font-family: var(--font-meta);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .34em;
  text-transform: uppercase;
  color: rgba(244, 236, 220, .64);
  margin-bottom: 1.05rem;
}

:root body > header h1 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.4rem, 6vw, 3.45rem);
  line-height: 1.03;
  letter-spacing: .005em;
  color: #FBF4E6;
  margin: 0;
}

:root body > header h1::after {           /* moment use #1 — filet under wordmark */
  content: "";
  display: block;
  width: 60px;
  height: 3px;
  margin: 1.15rem auto 0;
  border-radius: 2px;
  background: var(--color-moment);
}

:root body > header p {
  max-width: 58ch;
  margin: 1.2rem auto 0;
  font-family: var(--font-body);
  font-style: italic;
  font-size: 1.06rem;
  line-height: 1.6;
  color: rgba(244, 236, 220, .82);
}

:root body > header::after {              /* signature: ring + two voices, short = la pausa */
  content: "";
  display: block;
  width: 34px;
  height: 34px;
  margin: 1.5rem auto 0;
  opacity: .82;
  background: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 40 40" fill="none" stroke="%23E6C6A6" stroke-width="1.4" stroke-linecap="round"><circle cx="20" cy="20" r="18"/><line x1="11" y1="16.5" x2="29" y2="16.5"/><line x1="11" y1="24" x2="22" y2="24"/></svg>') center / contain no-repeat;
}

:root body > header a { color: inherit; text-decoration: none; }

/* ══════════════════════════════════════════════════════════════════════
   HOMEPAGE  (main without an <article> child) — 2-col editorial grid.
   div:has(> h2) = story cards · div:not(:has(> h2)) = the index tail.
   ══════════════════════════════════════════════════════════════════════ */
:root main:not(:has(> article)) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;          /* M4: equalise same-row card heights (out-specify theme class) */
  gap: 46px 34px;
  width: 100%;
  max-width: 1060px;
  margin: 0 auto;
  padding: 0 24px 110px;
}

/* ── Base story card ── */
:root main:not(:has(> article)) > div:has(> h2) {
  display: flex;
  flex-direction: column;
  height: 100%;                  /* M4: fill the stretched grid row so neighbours share a bottom line */
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  border-radius: 8px;
  padding: 30px 34px 28px;
  box-shadow: 0 1px 4px rgba(58, 37, 16, .05);
  transition: box-shadow .18s ease, border-color .18s ease;
}
:root main:not(:has(> article)) > div:has(> h2):hover {
  border-color: rgba(94, 58, 26, .28);
  box-shadow: 0 6px 20px rgba(58, 37, 16, .10);
}

/* date / kicker */
:root main:not(:has(> article)) > div:has(> h2) > p:first-of-type {
  font-family: var(--font-meta);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin: 0 0 .7rem;
}

/* title */
:root main:not(:has(> article)) > div:has(> h2) > h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.32rem;
  line-height: 1.22;
  margin: 0 0 .5rem;
}
:root main:not(:has(> article)) > div:has(> h2) > h2 a[href] {
  color: var(--color-heading);
  text-decoration: none;
  border-bottom: 0;
}
:root main:not(:has(> article)) > div:has(> h2) > h2 a[href]:hover { color: var(--color-accent); }

/* excerpt — clamped to normalise card height (RULE D) */
:root main:not(:has(> article)) > div:has(> h2) > p:last-of-type {
  font-size: 1rem;
  line-height: 1.62;
  color: var(--color-text);
  max-width: 62ch;
  margin: 0 0 1.15rem;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* read-more — hide the English "read more →", print Spanish label */
:root main:not(:has(> article)) > div:has(> h2) > a[href] {
  margin-top: auto;
  align-self: flex-start;
  font-size: 0;
  text-decoration: none;
  border-bottom: 0;
}
:root main:not(:has(> article)) > div:has(> h2) > a[href]::after {
  content: "Seguir leyendo →";
  font-family: var(--font-meta);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--color-primary);
}
:root main:not(:has(> article)) > div:has(> h2) > a[href]:hover::after { color: var(--color-accent); }

/* ── HERO (first card) — the loud voice ── */
:root main:not(:has(> article)) > div:first-of-type {
  grid-column: 1 / -1;
  position: relative;
  margin-top: 64px;              /* reserve room for the floating section band (M2) */
  overflow: visible;            /* let the ::before band escape above the card frame */
  background: linear-gradient(180deg, var(--color-bg-panel) 0%, var(--color-bg-alt) 100%);
  border: 1px solid rgba(58, 37, 16, .15);
  border-radius: 10px;
  padding: clamp(36px, 5vw, 56px) clamp(34px, 5vw, 60px) clamp(32px, 4vw, 48px);
}
/* M2: section label as a full-row band ABOVE the card, not inside the frame */
:root main:not(:has(> article)) > div:first-of-type::before {
  content: "La última entrada";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  margin-bottom: 16px;
  padding-bottom: .7rem;
  border-bottom: 1.5px solid var(--color-accent);   /* M2 refix: saturated accent hairline (the old .42 taupe was invisible) so the full-row underline band reads */
  font-family: var(--font-meta);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .28em;
  text-transform: uppercase;
  color: var(--color-accent);
}
:root main:not(:has(> article)) > div:first-of-type > p:first-of-type {
  font-family: var(--font-meta);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin: 0 0 1.05rem;
}
:root main:not(:has(> article)) > div:first-of-type > p:first-of-type::after {
  content: " · por Andrés";
}
:root main:not(:has(> article)) > div:first-of-type > h2 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2rem, 4.4vw, 2.85rem);
  line-height: 1.1;
  margin: 0 0 1rem;
}
:root main:not(:has(> article)) > div:first-of-type > h2 a[href] { color: var(--color-heading); }
:root main:not(:has(> article)) > div:first-of-type > h2 a[href]:hover { color: var(--color-accent); }
:root main:not(:has(> article)) > div:first-of-type > p:last-of-type {
  font-size: 1.24rem;
  line-height: 1.5;
  color: var(--color-text);
  max-width: 60ch;
  margin: 0 0 1.6rem;
  display: block;
  -webkit-line-clamp: none;
  overflow: visible;
}
:root main:not(:has(> article)) > div:first-of-type > p:last-of-type::first-letter {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 700;
  font-size: 3.4em;
  line-height: .78;
  float: left;
  margin: .06em .12em -.04em 0;
  color: var(--color-moment);              /* moment use #2 — hero drop cap */
}
/* hero CTA — outlined pill */
:root main:not(:has(> article)) > div:first-of-type > a[href] {
  display: inline-block;
  margin-top: 0;
  padding: .62rem 1.55rem;
  border: 1.5px solid var(--color-primary);
  border-radius: 999px;
}
:root main:not(:has(> article)) > div:first-of-type > a[href]::after {
  content: "Leer la entrada →";
  color: var(--color-primary);
}
:root main:not(:has(> article)) > div:first-of-type > a[href]:hover { background: var(--color-primary); }
:root main:not(:has(> article)) > div:first-of-type > a[href]:hover::after { color: #F4ECDC; }

/* ── EDITOR'S PICK (2nd card) — the change of gear, full width ── */
:root main:not(:has(> article)) > div:nth-of-type(2) {
  grid-column: 1 / -1;
  position: relative;
  margin-top: 56px;             /* reserve room for the floating section band (M2) */
  overflow: visible;
  border-left: 3px solid var(--color-accent);
}
/* M2: section label as a full-row band ABOVE the card, not inside the frame */
:root main:not(:has(> article)) > div:nth-of-type(2)::before {
  content: "Para empezar · si sólo leés una";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  margin-bottom: 16px;
  padding-bottom: .7rem;
  border-bottom: 1.5px solid var(--color-accent);   /* M2 refix: saturated accent hairline (the old .42 taupe was invisible) so the full-row underline band reads */
  font-family: var(--font-meta);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--color-accent);
}
:root main:not(:has(> article)) > div:nth-of-type(2) > h2 { font-size: 1.7rem; }

/* ── JOURNAL LEAD (3rd card) — Strip 1 "EL CUADERNO" floats above it, full width ── */
:root main:not(:has(> article)) > div:nth-of-type(3) {
  grid-column: 1 / -1;
  position: relative;
  margin-top: 226px;            /* reserve room for the 200px section break above (M6) */
  overflow: visible;           /* card keeps its own cream frame; band sits outside it */
}
/* M6: tall atmospheric hero-photo section break BETWEEN Editor's Picks and the Journal grid,
   floated fully above the card frame (no longer embedded in the boxed section) */
:root main:not(:has(> article)) > div:nth-of-type(3)::before {
  content: "El cuaderno · en orden de escritura";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  margin-bottom: 26px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-family: var(--font-meta);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: #F5ECDD;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .45);
  background:
    linear-gradient(rgba(30, 22, 12, .60), rgba(30, 22, 12, .34)),
    url("/theme-assets/story-cover.jpg") center 30% / cover no-repeat,
    linear-gradient(135deg, #5E3A1A 0%, #7A4A22 55%, #2E5A47 130%);
}

/* ══ INDEX TAIL (last div, no h2) — Strip 2 floats above · 3-col boxed magazine index ══ */
:root main:not(:has(> article)) > div:not(:has(> h2)) {
  grid-column: 1 / -1;
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);   /* M7: full-width 3-col magazine index */
  gap: 10px 16px;
  align-content: start;
  padding: 0;                               /* M7: de-box the single cream panel */
  overflow: visible;
  margin-top: 226px;                        /* reserve room for the 200px section break above (M6) */
}
/* M6: second tall atmospheric hero-photo section break BETWEEN the Journal grid and the
   archive tail, floated fully above the index (no longer embedded in a boxed section) */
:root main:not(:has(> article)) > div:not(:has(> h2))::before {
  content: "Entradas anteriores";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 100%;
  margin-bottom: 26px;
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  font-family: var(--font-meta);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .32em;
  text-transform: uppercase;
  color: #F5ECDD;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .45);
  background:
    linear-gradient(rgba(30, 22, 12, .62), rgba(30, 22, 12, .36)),
    url("/theme-assets/story-cover.jpg") center 70% / cover no-repeat,
    linear-gradient(135deg, #2E5A47 0%, #7A4A22 55%, #5E3A1A 130%);
}
/* M7: each index entry is its own boxed cream card — same paper/border/radius/shadow/hover
   system as the top-of-page journal cards, tighter. Grid stretch equalises row heights. */
:root main:not(:has(> article)) > div:not(:has(> h2)) > p {
  margin: 0;
  padding: 18px 20px;
  background: var(--color-bg-alt);
  border: 1px solid var(--color-border);
  border-radius: 7px;
  box-shadow: 0 1px 4px rgba(58, 37, 16, .05);
  transition: box-shadow .18s ease, border-color .18s ease;
}
:root main:not(:has(> article)) > div:not(:has(> h2)) > p:hover {
  border-color: rgba(94, 58, 26, .28);
  box-shadow: 0 6px 20px rgba(58, 37, 16, .10);
}
:root main:not(:has(> article)) > div:not(:has(> h2)) > p a[href] {
  display: block;
  color: var(--color-link);
  text-decoration: none;
  border-bottom: 0;
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.42;
}
:root main:not(:has(> article)) > div:not(:has(> h2)) > p a[href]:hover {
  color: var(--color-accent);
  text-decoration: underline;
}

/* ══════════════════════════════════════════════════════════════════════
   ARTICLE PAGE  (main:has(> article))
   ══════════════════════════════════════════════════════════════════════ */
:root main:has(> article) {
  max-width: 730px;
  margin: 0 auto;
  padding: clamp(40px, 6vw, 72px) 24px 96px;
}
:root main:has(> article) > h1,
:root main:has(> article) article > h1 {
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 500;
  font-size: clamp(2.1rem, 5vw, 3rem);
  line-height: 1.08;
  color: var(--color-heading);
  margin: 0 0 1rem;
}
:root main:has(> article) > span {
  display: block;
  font-family: var(--font-meta);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--color-text-muted);
  margin: 0 0 2.3rem;
  padding-bottom: 1.2rem;
  border-bottom: 1px solid var(--color-rule);
}
/* S6: persona anchor appended to the bare date meta (byline + location) */
:root main:has(> article) > span::after {
  content: " · por Andrés Velarde · Rosario";
}
:root main:has(> article) article {
  font-size: 1.15rem;
  line-height: 1.8;
}
:root main:has(> article) article p { max-width: none; margin: 0 0 1.4rem; }

/* body links — beat theme's .sc-CNFLWN a (0,2,1) via [href] */
:root main:has(> article) article a[href] {
  color: var(--color-link);
  text-decoration: underline;
  text-underline-offset: 3px;
  border-bottom: 0;
}
:root main:has(> article) article a[href]:hover { color: var(--color-accent); }

/* M10 refix iter2 — affiliate CTA visibility. Product/affiliate anchors in this
   site use the /r/ prefix (/r/main, /r/alt-1) and were rendering as plain inline
   prose links, invisible as CTAs. Promote them to a distinct verde-pampa pill:
   filled accent background + cream text + meta font, clearly differentiated from
   the underlined prose links above. Selector matches the prose-link rule's
   specificity but comes later → wins with no !important. */
:root main:has(> article) article a[href^="/r/"] {
  display: inline-block;
  margin: .3rem .1rem;
  padding: .5rem 1.4rem;
  background: var(--color-accent);
  color: #FBF4E6;
  font-family: var(--font-meta);
  font-size: .92rem;
  font-weight: 600;
  letter-spacing: .01em;
  line-height: 1.35;
  border: 1px solid rgba(58, 37, 16, .18);
  border-radius: 999px;
  text-decoration: none;
  text-underline-offset: 0;
  box-shadow: 0 1px 4px rgba(58, 37, 16, .10);
}
:root main:has(> article) article a[href^="/r/"]::after {
  content: " →";
  font-weight: 700;
}
:root main:has(> article) article a[href^="/r/"]:hover {
  background: var(--color-primary);
  color: #FBF4E6;
  border-color: var(--color-primary);
  box-shadow: 0 4px 14px rgba(58, 37, 16, .18);
}

/* section headings + dinkus divider */
:root main:has(> article) article h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.55rem;
  line-height: 1.22;
  color: var(--color-heading);
  margin: 2.4em 0 .7em;
}
:root main:has(> article) article h2::before {
  content: "✷ ✷ ✷";
  display: block;
  text-align: center;
  font-weight: 400;
  font-style: normal;
  font-size: .82rem;
  letter-spacing: .5em;
  color: var(--color-accent);
  margin: 0 0 1.4em;
}
:root main:has(> article) article h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.22rem;
  color: var(--color-text-muted);
  margin: 1.8em 0 .5em;
}

/* blockquote — hanging quote */
:root main:has(> article) article blockquote {
  position: relative;
  background: var(--color-bg-alt);
  border-left: 3px solid var(--color-accent);
  border-radius: 0 8px 8px 0;
  margin: 1.9rem 0;
  padding: 1.1rem 1.4rem 1.1rem 1.7rem;
  font-style: italic;
  color: var(--color-text);
}
:root main:has(> article) article blockquote::before {
  content: "\201C";
  position: absolute;
  left: .32rem;
  top: -.1rem;
  font-family: var(--font-display);
  font-size: 3rem;
  line-height: 1;
  color: rgba(46, 122, 95, .30);
}
:root main:has(> article) article blockquote p { margin: 0; }

/* images */
:root main:has(> article) article img {
  max-width: min(100%, 680px);
  height: auto;
  display: block;
  margin: 2rem auto;
  border-radius: 8px;
  box-shadow: 0 3px 14px rgba(58, 37, 16, .14);
}

/* ─── FOOTER ─────────────────────────────────────────────────────────── */
:root body > footer {
  margin-top: 96px;
  padding: 48px 24px;
  background: var(--color-bg-alt);
  border-top: 1px solid var(--color-rule);
  font-family: var(--font-meta);
  font-size: 13px;
  letter-spacing: .04em;
  color: var(--color-text-muted);
  text-align: center;
}
:root body > footer a[href] { color: var(--color-text-muted); text-decoration: none; }
:root body > footer a[href]:hover { color: var(--color-accent); }


/* related-articles-nav-fix v1 */
:root main > nav p,
:root main > section p {
  line-height: 1.85;
  margin: 0;
}
:root main > nav a,
:root main > section a {
  display: inline-block;
  margin: 0 4px;
  padding: 0 2px;
}


/* mobile-overflow-fix v1 */
:root html, :root body { overflow-x: hidden; max-width: 100%; }
@media (max-width: 920px) {
  :root main > * { max-width: 100%; }
  :root main { overflow-x: hidden; }
}


/* mobile-overflow-fix v2 */
@media (max-width: 640px) {
  :root main,
  :root main > article,
  :root main > div,
  :root main > section,
  :root main > nav {
    box-sizing: border-box;
    max-width: 100%;
    width: 100%;
  }
  :root main > article > *,
  :root main > div > *,
  :root main > section > *,
  :root main > nav > * {
    max-width: 100%;
  }
  :root main h1,
  :root main h2,
  :root main h3,
  :root main h4 {
    overflow-wrap: break-word;
    word-break: normal;
  }
  /* Any 3+ col grid inside main → 1 col on mobile */
  :root main :is(ul, ol, section, div, nav)[style*="grid-template-columns"],
  :root main > section > ul,
  :root main > nav > ul,
  :root main > div > ul {
    grid-template-columns: 1fr !important;
  }
  /* Any CSS multi-column layout → 1 col on mobile */
  :root main :is(ul, ol, section, div, p) {
    columns: 1;
  }
  /* Article body images stay inside viewport */
  :root main img,
  :root main figure {
    max-width: 100%;
    height: auto;
  }
}


/* mobile-padding-fix v1 */
@media (max-width: 640px) {
  :root main {
    padding-left: 20px;
    padding-right: 20px;
  }
}


/* qa-refix iter1: keep the M7 boxed index readable on narrow screens (3-col → 2-col) */
@media (max-width: 640px) {
  :root main:not(:has(> article)) > div:not(:has(> h2)) {
    grid-template-columns: 1fr 1fr;
  }
}


/* qa-refix iter1: M3/M4/M8/S7 — the two-narrow-column journal grid made story-card
   text cramped on mobile (titles hugging the card edges, ragged row bottoms, tight
   meta→title→excerpt→CTA rhythm). Collapse the homepage grid to ONE full-width column
   below 640px: each story card spans the row, so it regains its 34px side padding (M3),
   equal-height is trivial with one card per row (M4), and the block gets breathing
   room instead of two compressed columns (M8/S7). Full-width hero/pick/lead cards are
   already grid-column:1/-1, so they are unaffected. */
@media (max-width: 640px) {
  :root main:not(:has(> article)) {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  /* M8: open up the intra-card vertical rhythm on the narrow layout */
  :root main:not(:has(> article)) > div:has(> h2) > p:first-of-type { margin-bottom: .95rem; }  /* meta → title */
  :root main:not(:has(> article)) > div:has(> h2) > h2            { margin-bottom: .8rem; }      /* title → excerpt */
  :root main:not(:has(> article)) > div:has(> h2) > p:last-of-type { line-height: 1.72; }        /* excerpt breathing */
}


/* premium-upgrade v1 */
/* premium editorial upgrade — style=Substack-modern overlay=25% grid=mixed scale=dramatic family=flat-divs */


/* ── CARD 1: featured full-row with 300px photo header (via card-own background, NOT ::before —
    leaves ::before free for existing site's M2 label / meta content). ── */
:root main:not(:has(> h1)) > div:nth-of-type(1) {
  grid-column: 1 / -1;
  position: relative;      /* anchor for existing site's ::before label if it uses absolute */
  overflow: visible;       /* let above-card labels render without clipping */
  padding: 320px 44px 40px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-1.webp") no-repeat center top / 100% 300px,
    var(--bg) !important;
  margin-top: 60px !important;  /* room for above-card M2 label (existing site convention) */
}

/* ── CARDS 2-4: medium with 180px photo header (background technique, ::before untouched) ── */
:root main:not(:has(> h1)) > div:nth-of-type(2) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-2.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}
:root main:not(:has(> h1)) > div:nth-of-type(3) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-3.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}
:root main:not(:has(> h1)) > div:nth-of-type(4) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-card-4.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}

/* ── flat-divs family: cards 5 & 6 also get photo headers ── */
:root main:not(:has(> h1)) > div:nth-of-type(5) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-strip-1.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}
:root main:not(:has(> h1)) > div:nth-of-type(6) {
  padding: 200px 32px 32px !important;
  border-radius: 8px;
  background:
    url("/theme-assets/premium-hero-strip-2.webp") no-repeat center top / 100% 180px,
    var(--bg) !important;
}

/* ── Article page: drop cap + dinkus dividers ── */
:root main:has(> h1) > article > p:first-of-type::first-letter {
  font-family: var(--fh), Georgia, serif;
  font-size: 76px; line-height: 0.9; color: var(--primary);
  float: left; margin: 6px 12px 0 0; padding: 0; font-weight: 400;
}
:root main:has(> h1) > article > h2 + p ~ h2::before {
  content: "✦ ✦ ✦";
  display: block; text-align: center; color: var(--accent);
  font-size: 12px; letter-spacing: 0.3em; margin-bottom: 24px;
  font-weight: 400;
}

/* ── Mobile responsive: adjust photo heights via background-size on the card itself ── */
@media (max-width: 720px) {
  :root main:not(:has(> h1)) > div:nth-of-type(1) {
    padding: 240px 22px 28px !important;
    background:
      url("/theme-assets/premium-hero-card-1.webp") no-repeat center top / 100% 220px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1)) > div:nth-of-type(2) {
    padding: 180px 22px 26px !important;
    background:
      url("/theme-assets/premium-hero-card-2.webp") no-repeat center top / 100% 160px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1)) > div:nth-of-type(3) {
    padding: 180px 22px 26px !important;
    background:
      url("/theme-assets/premium-hero-card-3.webp") no-repeat center top / 100% 160px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1)) > div:nth-of-type(4) {
    padding: 180px 22px 26px !important;
    background:
      url("/theme-assets/premium-hero-card-4.webp") no-repeat center top / 100% 160px,
      var(--bg) !important;
  }
  :root main:not(:has(> h1))::before,
  :root main:not(:has(> h1))::after { min-height: 240px; }
  :root main:has(> h1) > article > p:first-of-type::first-letter { font-size: 60px; }
}

