*{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-RGUTrj{max-width:640px;margin:0 auto;padding:0 20px}
.sc-FbMiDr{padding:60px 0 40px;border-bottom:1px solid #ccc;margin-bottom:48px}
.sc-FbMiDr h1{font-size:24px;font-weight:400;letter-spacing:-.5px}
.sc-FbMiDr p{font-size:14px;color:#777;margin-top:6px;font-style:italic}
.sc-FbMiDr a{color:#2a2a2a;text-decoration:none;font-size:24px;font-weight:400;letter-spacing:-.5px}
.sc-OCZVCZ{padding:20px 0}
.sc-OCZVCZ h2{font-size:18px;font-weight:400;margin-bottom:4px}
.sc-OCZVCZ h2 a{color:#2a2a2a;text-decoration:none;border-bottom:1px solid transparent}
.sc-OCZVCZ h2 a:hover{border-bottom-color:#2a2a2a}
.sc-OCZVCZ .sc-MImDvf{font-size:12px;color:#aaa;margin-bottom:6px}
.sc-OCZVCZ p{font-size:14px;color:#666}
.sc-jGcoRT{color:#888;font-size:13px;text-decoration:none}
.sc-jGcoRT:hover{color:#2a2a2a}
.sc-PZAkvR{padding-bottom:60px}
.sc-PZAkvR h1{font-size:28px;font-weight:400;margin-bottom:8px}
.sc-PZAkvR .sc-MImDvf{font-size:12px;color:#aaa;display:block;margin-bottom:32px}
.sc-PZAkvR h2{font-size:21px;font-weight:400;margin:40px 0 12px;border-bottom:1px solid #eee;padding-bottom:6px}
.sc-PZAkvR h3{font-size:17px;margin:28px 0 8px}
.sc-PZAkvR p{margin-bottom:18px;font-size:16px}
.sc-PZAkvR ul,.sc-PZAkvR ol{margin:0 0 18px 20px}
.sc-PZAkvR a{color:#555;border-bottom:1px solid #ccc}
.sc-PZAkvR a:hover{color:#000;border-bottom-color:#000}
.sc-PZAkvR img{max-width:100%;height:auto;margin:24px 0}
.sc-dVxiCM{border-top:1px solid #ddd;padding:20px 0;margin-top:48px;text-align:center;font-size:12px;color:#aaa}
.sc-dVxiCM a{color:#aaa;text-decoration:none}
.sc-vdphun{padding:0 0 16px;margin-bottom:24px;font-size:12px;color:#aaa;font-style:italic;border-bottom:1px solid #eee}
.sc-RZJgno{padding:16px 0 0;margin-top:32px;font-size:11px;color:#999;border-top:1px solid #eee}
.sc-aQyAgF{font-size:12px;color:#aaa;margin:-26px 0 32px;font-weight:300}
.sc-boWmtE{margin:0 auto 32px;max-width:720px}
.sc-CbFEAk{width:100%;height:auto}
.sc-GNnHjN{margin-top:40px;padding-top:20px;border-top:1px solid #eee;font-size:14px;color:#888}
.sc-GNnHjN em{color:#aaa}
.sc-GNnHjN a{color:#555;border-bottom:1px solid #ddd;text-decoration:none}
.sc-CzKjtX{padding:24px 0 0;border-top:1px solid #eee;margin-top:24px}
.sc-CzKjtX p{padding:3px 0;margin:0;font-size:15px}
.sc-CzKjtX a{color:#2a2a2a;text-decoration:none;border-bottom:1px solid transparent}
.sc-CzKjtX a:hover{border-bottom-color:#2a2a2a}
/* === Theme === */
:root{--primary:#27364E;--accent:#C97A5C;--bg:#F0EAE0;--fg:#221F1A;--border:#D6C9B8;--hair:#DFD4C4;--panel:#FBF7EF;--moment:#5C6B4A;--r:3px;--fb:'Petrona';--fh:'Instrument Serif';--fm:'Archivo'}
/* === Custom === */
/* v.9b871e — layout revision */
/* Cuaderno de Resina — editorial pass.
   Voices: Instrument Serif (display, italic wordmark) / Petrona (text serif) / Archivo (meta, tracked caps).
   Moment colour: olive #5C6B4A — used exactly twice (hero kicker + hero drop cap).
   Assets: /theme-assets/hero-masthead.jpg (masthead) + /theme-assets/article-hero.jpg (article band + the
   two homepage section strips). hero-bg.jpg / story-cover.jpg 404 on this deploy — do NOT reference them.
   @font-face instead of @import: the deploy concatenates custom.css AFTER rule sets, so a top-of-file
   @import is dropped by the parser and the webfonts never load. */

@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/instrumentserif/v5/jizBRFtNs2ka5fXjeivQ4LroWlx-6zUTjnTLgNs.woff2) format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/instrumentserif/v5/jizHRFtNs2ka5fXjeivQ4LroWlx-6zAjjH7Motmp5g.woff2) format('woff2')}
@font-face{font-family:'Petrona';font-style:normal;font-weight:300 700;font-display:swap;src:url(https://fonts.gstatic.com/s/petrona/v38/mtG64_NXL7bZo9XXgXJYtUkS0CQ.woff2) format('woff2')}
@font-face{font-family:'Petrona';font-style:italic;font-weight:300 600;font-display:swap;src:url(https://fonts.gstatic.com/s/petrona/v38/mtG44_NXL7bZo9XXgXdot0MV8ia-Fg.woff2) format('woff2')}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 700;font-display:swap;src:url(https://fonts.gstatic.com/s/archivo/v25/k3kPo8UDI-1M0wlSV9XAw6lQkqWY8Q82sLydOxKsv4Rn.woff2) format('woff2')}

/* moment colour reassigned to olive for this site (cross-site fingerprint) */
:root { --moment: #5C6B4A; }

/* ---------- base ---------- */
:root body { font-family: var(--fb), Georgia, serif; color: var(--fg); background: var(--bg); line-height: 1.74; font-size: 17px; -webkit-font-smoothing: antialiased; }
::selection { background: var(--primary); color: #F6EFE4; }
:root hr { border: 0; border-top: 1px solid var(--hair); margin: 34px 0; }

/* ---------- masthead (shared) ---------- */
:root > body > header {
  max-width: none; margin: 0 0 52px; border: 0; border-radius: 0;
  background: var(--primary);
  padding: 0 max(24px, calc((100% - 1148px) / 2));
}
:root > body > header::before {
  content: ''; display: block; width: 40px; height: 40px; margin: 0 0 18px;
  background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'><circle cx='22' cy='22' r='21' fill='none' stroke='%23E4D9C8' stroke-width='1'/><path d='M22 9c0 0 8 9.2 8 14.4a8 8 0 0 1-16 0C14 18.2 22 9 22 9z' fill='none' stroke='%23C97A5C' stroke-width='1.6'/><circle cx='22' cy='25.2' r='2.4' fill='%23C97A5C'/></svg>") no-repeat center / contain;
}
:root > body > header > h1, :root > body > header h1 {
  max-width: none; margin: 0 0 14px; padding: 0;
  font-family: var(--fh), Georgia, serif; font-style: italic; font-weight: 400;
  font-size: clamp(40px, 5.6vw, 64px); line-height: .98; letter-spacing: -.018em;
  color: #F7F1E6;
}
:root > body > header > p, :root > body > header p {
  max-width: 740px; margin: 0; padding: 0;
  font-family: var(--fb), Georgia, serif; font-style: italic; font-weight: 300;
  font-size: 16px; line-height: 1.62; color: rgba(247, 241, 230, .82);
}
:root > body > header a {
  font-family: var(--fh), Georgia, serif; font-style: italic; font-weight: 400;
  font-size: 31px; line-height: 1; color: #F7F1E6; text-decoration: none; letter-spacing: -.015em;
}

/* home masthead — photo + ink gradient + tracked signature line */
:root > body > header:has(> h1) {
  padding-top: 76px; padding-bottom: 48px;
  background-image: linear-gradient(176deg, rgba(20, 27, 39, .82) 0%, rgba(20, 27, 39, .50) 40%, rgba(20, 27, 39, .92) 100%), url("/theme-assets/hero-masthead.jpg");
  background-size: cover, cover; background-position: 50% 50%, 50% 62%;
  border-bottom: 3px solid var(--accent);
}
:root > body > header:has(> h1)::after {
  content: 'Diario de experimentos · resina y arcilla · Santiago de Chile';
  display: block; max-width: 740px; margin: 24px 0 0; padding-top: 18px;
  border-top: 1px solid rgba(247, 241, 230, .26);
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .24em; text-transform: uppercase; color: rgba(247, 241, 230, .74);
}

/* article masthead — compact photo band */
:root > body > header:has(> a) {
  padding-top: 40px; padding-bottom: 32px; margin-bottom: 46px;
  background-image: linear-gradient(rgba(20, 27, 39, .72), rgba(20, 27, 39, .86)), url("/theme-assets/article-hero.jpg");
  background-size: cover, cover; background-position: 50% 50%, 50% 56%;
  border-bottom: 2px solid var(--accent);
}
:root > body > header:has(> a)::before { width: 30px; height: 30px; margin-bottom: 12px; }
:root > body > header:has(> a)::after {
  content: 'Volver al cuaderno';
  display: block; margin-top: 10px;
  font-family: var(--fm), system-ui, sans-serif; font-size: 10px; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: rgba(247, 241, 230, .60);
}

/* ---------- homepage: hero → picks band → strip → journal grid → strip → archive ---------- */
:root main { max-width: 740px; margin: 0 auto; padding: 0 26px 64px; }

:root main:has(> div > h2 > a) {
  max-width: 1148px; padding: 0 28px 76px;
  display: grid; grid-template-columns: repeat(6, 1fr);
  column-gap: 30px; row-gap: 0; align-items: stretch;
}

/* card reset — every card is quiet by default */
:root main > div:has(> h2 > a) {
  position: relative; background: transparent; border: 0; border-radius: 0;
  padding: 0; margin: 0;
}
:root main > div:has(> h2 > a) > p:first-child {
  font-family: var(--fm), system-ui, sans-serif; font-size: 10px; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--accent); margin: 0 0 9px;
}
:root main > div:has(> h2 > a) > h2 {
  font-family: var(--fh), Georgia, serif; font-weight: 400; font-size: 21px;
  line-height: 1.16; letter-spacing: -.006em; margin: 0 0 9px; padding: 0; border: 0;
}
:root main > div:has(> h2 > a) > h2 a { color: var(--primary); text-decoration: none; }
:root main > div:has(> h2 > a) > h2 a:hover { color: var(--accent); }
:root main > div:has(> h2 > a) > p:not(:first-child) {
  font-family: var(--fb), Georgia, serif; font-size: 15px; line-height: 1.58;
  color: var(--fg); opacity: .76; margin: 0 0 12px; max-width: 64ch;
}
/* the theme ships an English "read more →" on a Spanish site — relabel in CSS */
:root main > div:has(> h2 > a) > a:last-child {
  display: inline-block; font-size: 0; line-height: 1; text-decoration: none;
  color: var(--primary); border: 0; padding: 0; margin: 0;
}
:root main > div:has(> h2 > a) > a:last-child::before {
  content: 'Leer la entrada →';
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .16em; text-transform: uppercase; line-height: 1;
  border-bottom: 1px solid var(--accent); padding-bottom: 4px;
}
:root main > div:has(> h2 > a) > a:last-child:hover::before { border-bottom-color: var(--primary); }

/* — THE HERO — one loud voice, two columns so the right side is never empty */
:root main > div:nth-child(1):has(> h2 > a) {
  grid-column: 1 / -1;
  display: grid; grid-template-columns: minmax(0, 1.72fr) minmax(0, 1fr);
  column-gap: 46px; align-items: start;
  background: var(--panel); border: 1px solid var(--hair); border-top: 3px solid var(--primary);
  border-radius: 10px; box-shadow: 0 3px 16px rgba(34, 27, 18, .10);
  padding: 40px 42px 38px; margin-bottom: 68px;
}
:root main > div:nth-child(1):has(> h2 > a)::before {
  content: 'Última entrada'; grid-column: 1; grid-row: 1;
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .26em; text-transform: uppercase; color: var(--moment); margin: 0 0 16px;
}
:root main > div:nth-child(1) > h2 {
  grid-column: 1; grid-row: 2;
  font-family: var(--fh), Georgia, serif; font-weight: 400;
  font-size: clamp(33px, 3.9vw, 53px); line-height: 1.02; letter-spacing: -.017em;
  margin: 0 0 20px;
}
:root main > div:nth-child(1) > h2 a { color: var(--primary); text-decoration: none; }
:root main > div:nth-child(1) > p:last-of-type {
  grid-column: 1; grid-row: 3;
  font-family: var(--fb), Georgia, serif; font-size: 18.5px; line-height: 1.6;
  color: var(--fg); opacity: .92; margin: 0 0 26px;
}
:root main > div:nth-child(1) > p:last-of-type::first-letter {
  float: left; font-family: var(--fh), Georgia, serif; font-weight: 400;
  font-size: 68px; line-height: .76; padding: 8px 12px 0 0; color: var(--moment);
}
:root main > div:nth-child(1) > a:last-child {
  grid-column: 1; grid-row: 4; justify-self: start;
  border: 1px solid var(--primary); border-radius: 999px; padding: 12px 28px;
}
:root main > div:nth-child(1) > a:last-child::before { border-bottom: 0; padding-bottom: 0; }
:root main > div:nth-child(1) > a:last-child:hover { background: var(--primary); color: #F7F1E6; }
/* right rail — date + standfirst, so the hero row is balanced end to end */
:root main > div:nth-child(1) > p:first-of-type {
  grid-column: 2; grid-row: 1 / span 4; align-self: stretch;
  border-left: 1px solid var(--hair); padding: 3px 0 0 26px; margin: 0;
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase; color: var(--primary); opacity: 1;
}
:root main > div:nth-child(1) > p:first-of-type::before {
  content: 'Publicado'; display: block; color: var(--accent); margin-bottom: 6px;
}
:root main > div:nth-child(1) > p:first-of-type::after {
  content: 'Sin taller y sin maestra: una mesa de comedor en Santiago, un cuaderno y ocho meses de errores anotados uno por uno.';
  display: block; margin-top: 22px;
  font-family: var(--fb), Georgia, serif; font-style: italic; font-weight: 300;
  font-size: 15.5px; line-height: 1.62; letter-spacing: 0; text-transform: none;
  color: var(--fg); opacity: .82;
}

/* — SECOND GEAR: three picks, horizontal band — */
:root main > div:nth-child(2):has(> h2 > a),
:root main > div:nth-child(3):has(> h2 > a),
:root main > div:nth-child(4):has(> h2 > a) {
  grid-column: span 2;
  background: var(--panel); border: 1px solid var(--hair); border-top: 2px solid var(--primary);
  border-radius: 8px; box-shadow: 0 1px 4px rgba(34, 27, 18, .05);
  padding: 28px 30px 30px; margin-bottom: 64px;
}
:root main > div:nth-child(2):has(> h2 > a)::before {
  content: 'Empieza por acá — las tres que más me preguntan';
  position: absolute; top: -34px; left: 0; width: calc(300% + 60px);
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .24em; text-transform: uppercase; color: var(--primary);
}
:root main > div:nth-child(2) > h2,
:root main > div:nth-child(3) > h2,
:root main > div:nth-child(4) > h2 { font-size: 22px; line-height: 1.14; }
:root main > div:nth-child(2) > p:first-of-type::before { content: 'I · '; color: var(--primary); }
:root main > div:nth-child(3) > p:first-of-type::before { content: 'II · '; color: var(--primary); }
:root main > div:nth-child(4) > p:first-of-type::before { content: 'III · '; color: var(--primary); }

/* — STRIP 1 (photo band) — sits between the picks band and the journal grid.
   Anchored on the first journal card; the whole first journal row reserves the space via margin-top
   (a grid item's margin moves only itself, so cards 5 AND 6 both get it), and the band is absolutely
   placed in that reserved gap, spanning the full 6-col width (calc(200% + 30px) = 2×span-3 + one gap). */
:root main > div:nth-child(5):has(> h2 > a),
:root main > div:nth-child(6):has(> h2 > a) { margin-top: 248px; }
:root main > div:nth-child(5):has(> h2 > a)::before {
  content: 'EL CUADERNO';
  position: absolute; left: 0; top: -220px; width: calc(200% + 30px); height: 188px;
  display: flex; align-items: center; justify-content: center; border-radius: 8px;
  background-color: #1b232e;
  background-image: linear-gradient(rgba(20, 24, 28, .55), rgba(20, 24, 28, .25)), url("/theme-assets/article-hero.jpg");
  background-size: cover, cover; background-position: center, center 30%;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
  font-family: var(--fm), system-ui, sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: .32em; text-transform: uppercase; color: #F7F1E6; text-shadow: 0 1px 4px rgba(0, 0, 0, .55);
}

/* — CHRONOLOGICAL GRID: two columns of soft cards (M5) — */
:root main > div:nth-child(n+5):has(> h2 > a) {
  grid-column: span 3;
  background: var(--panel); border: 1px solid var(--hair); border-radius: 8px;
  box-shadow: 0 1px 4px rgba(34, 27, 18, .05);
  padding: 28px 32px 30px; margin-bottom: 32px;
}
:root main > div:nth-child(5):has(> h2 > a),
:root main > div:nth-child(6):has(> h2 > a) { border-top: 2px solid var(--primary); }

/* — STRIP 2 (photo band) + ARCHIVE index — scoped to homepage so it never renders on article pages,
   whose <main> also has a direct <div> child (the "last updated" time wrapper). */
:root main:has(> div > h2 > a) > div:not(:has(> h2)) {
  grid-column: 1 / -1; position: relative;
  margin-top: 92px; padding: 0; border: 0;
  counter-reset: arch;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 16px; align-items: stretch;
}
:root main:has(> div > h2 > a) > div:not(:has(> h2))::before {
  content: 'TODAS LAS ENTRADAS';
  grid-column: 1 / -1; display: flex; align-items: center; justify-content: center;
  height: 200px; margin: 0 0 34px; border-radius: 8px;
  background-color: #1b232e;
  background-image: linear-gradient(rgba(20, 24, 28, .55), rgba(20, 24, 28, .25)), url("/theme-assets/article-hero.jpg");
  background-size: cover, cover; background-position: center, center 70%;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
  font-family: var(--fm), system-ui, sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: .32em; text-transform: uppercase; color: #F7F1E6; text-shadow: 0 1px 4px rgba(0, 0, 0, .55);
}
:root main:has(> div > h2 > a) > div:not(:has(> h2)) > p {
  counter-increment: arch; position: relative; margin: 0;
  background: var(--panel); border: 1px solid var(--hair); border-radius: 8px;
  box-shadow: 0 1px 4px rgba(34, 27, 18, .05);
  padding: 20px 22px;
  font-family: var(--fb), Georgia, serif; font-size: 15px; line-height: 1.46;
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
:root main:has(> div > h2 > a) > div:not(:has(> h2)) > p:hover {
  box-shadow: 0 5px 16px rgba(34, 27, 18, .10); transform: translateY(-2px); border-color: var(--accent);
}
:root main:has(> div > h2 > a) > div:not(:has(> h2)) > p::before {
  content: counter(arch, decimal-leading-zero); display: block; margin: 0 0 8px;
  font-family: var(--fm), system-ui, sans-serif; font-size: 10px; font-weight: 700;
  letter-spacing: .1em; color: var(--accent);
}
:root main:has(> div > h2 > a) > div:not(:has(> h2)) > p > a { color: var(--primary); text-decoration: none; border: 0; }
:root main:has(> div > h2 > a) > div:not(:has(> h2)) > p > a:hover { text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--accent); }

/* ---------- article page ---------- */
:root main:has(> article) { max-width: 726px; padding: 0 26px 76px; }
:root main:has(> article) > h1 {
  font-family: var(--fh), Georgia, serif; font-weight: 400;
  font-size: clamp(32px, 5vw, 48px); line-height: 1.04; letter-spacing: -.018em;
  color: var(--primary); margin: 8px 0 18px;
}
:root main:nth-of-type(1):has(> article) > h1 + span {
  display: block; margin: 0 0 36px; padding-bottom: 22px;
  border-bottom: 1px solid var(--hair);
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .2em; text-transform: uppercase; color: var(--accent);
}
:root main:nth-of-type(1):has(> article) > h1 + span::before { content: 'Entrada del diario · '; color: var(--primary); }
:root main:nth-of-type(1):has(> article) > h1 + span::after { content: ' · por Daniela Mariño · Santiago'; color: var(--primary); opacity: .78; }

:root main:has(> article) > article > p {
  font-family: var(--fb), Georgia, serif; font-size: 17.5px; line-height: 1.78; margin: 0 0 22px;
}
:root main:has(> article) > article > p:nth-of-type(1) {
  font-size: 20px; line-height: 1.62; color: var(--primary); margin-bottom: 26px;
}
:root main:has(> article) > article > h2 {
  font-family: var(--fh), Georgia, serif; font-weight: 400; font-size: 30px;
  line-height: 1.12; letter-spacing: -.012em; color: var(--primary);
  margin: 6px 0 14px; padding: 0; border: 0;
}
:root main:has(> article) > article > h2::before {
  content: '✷ ✷ ✷'; display: block; text-align: center;
  font-family: var(--fm), system-ui, sans-serif; font-weight: 400;
  font-size: 15px; letter-spacing: .5em; text-indent: .5em; color: var(--accent);
  margin: 52px 0 34px; line-height: 1;
}
:root main:has(> article) > article > h3 {
  font-family: var(--fh), Georgia, serif; font-weight: 400; font-size: 22px;
  line-height: 1.2; color: var(--primary); margin: 30px 0 8px; letter-spacing: -.006em;
}
:root main:has(> article) > article ul, :root main:has(> article) > article ol { margin: 0 0 24px 22px; }
:root main:has(> article) > article li { margin-bottom: 9px; font-size: 16.5px; line-height: 1.66; }
:root main:has(> article) > article li::marker { color: var(--accent); }
:root main:has(> article) > article strong { color: var(--primary); font-weight: 700; }
:root main:has(> article) > article img {
  width: 100%; height: auto; display: block; border-radius: var(--r);
  margin: 34px 0; box-shadow: 0 2px 18px rgba(34, 27, 18, .13);
}
:root main:has(> article) > article > blockquote {
  position: relative; margin: 32px 0; padding: 4px 0 4px 34px;
  border-left: 2px solid var(--accent);
  font-family: var(--fb), Georgia, serif; font-style: italic; font-size: 20px; line-height: 1.56;
  color: var(--primary);
}
:root main:has(> article) > article > blockquote::before {
  content: '“'; position: absolute; left: -14px; top: 6px;
  font-family: var(--fh), Georgia, serif; font-size: 54px; line-height: 1; color: var(--accent); opacity: .55;
}
:root main:has(> article) > article > p a, :root main:has(> article) > article li a {
  color: var(--primary); text-decoration: underline; text-decoration-color: var(--accent);
  text-underline-offset: 3px; text-decoration-thickness: 1.5px; border: 0; font-weight: 600;
}
:root main:has(> article) > article > p a:hover, :root main:has(> article) > article li a:hover { color: var(--accent); text-decoration-color: var(--primary); }

/* affiliate CTAs (/find/) — RULE M10: render as a distinct accent pill/button, clearly set apart
   from inline prose links, so an unmistakable CTA is visible in the article body (incl. the
   materials list two-thirds down). Full body-link path + attribute so it strictly out-specifies
   the body-link colour rule above (RULE J) — cream text on accent fill, never text==background. */
:root main:has(> article) > article > p a[href^="/find/"],
:root main:has(> article) > article li a[href^="/find/"],
:root main:has(> article) > article ul a[href^="/find/"],
:root main:has(> article) > article ol a[href^="/find/"] {
  display: inline-block; vertical-align: baseline;
  background: var(--accent); color: #F7F1E6;
  padding: 5px 18px; border-radius: 999px; border: 1px solid var(--accent);
  text-decoration: none; font-family: var(--fm), system-ui, sans-serif;
  font-weight: 700; font-size: 13px; letter-spacing: .04em; line-height: 1.5;
  box-shadow: 0 1px 4px rgba(34, 27, 18, .12);
  transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}
:root main:has(> article) > article > p a[href^="/find/"]:hover,
:root main:has(> article) > article li a[href^="/find/"]:hover,
:root main:has(> article) > article ul a[href^="/find/"]:hover,
:root main:has(> article) > article ol a[href^="/find/"]:hover {
  background: var(--primary); border-color: var(--primary); color: #F7F1E6;
  box-shadow: 0 3px 10px rgba(34, 27, 18, .18); transform: translateY(-1px);
}

/* disclaimers stay footnote-quiet */
:root main > article > aside, :root main:has(> article) > article > aside {
  display: block; margin: 38px 0 0; padding: 14px 0 0; background: transparent;
  border: 0; border-top: 1px solid var(--hair);
  font-family: var(--fb), Georgia, serif; font-style: italic;
  font-size: 13px; line-height: 1.6; color: var(--fg); opacity: .55;
}
:root main > article > aside b { font-weight: 600; font-style: normal; }

/* related articles */
:root main:has(> article) > nav {
  margin-top: 46px; padding: 26px 34px 30px; background: var(--panel);
  border: 1px solid var(--hair); border-top: 2px solid var(--primary); border-radius: 10px;
  box-shadow: 0 3px 16px rgba(34, 27, 18, .10);
  font-size: 15px; color: var(--fg);
}
:root main:has(> article) > nav p { margin: 0; line-height: 1.8; }
:root main:has(> article) > nav em {
  display: block; margin-bottom: 10px; font-style: normal;
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .22em; text-transform: uppercase; color: var(--primary);
}
:root main:has(> article) > nav a {
  color: var(--primary); text-decoration: none; border-bottom: 1px solid var(--hair);
  font-family: var(--fb), Georgia, serif;
}
:root main:has(> article) > nav a:hover { border-bottom-color: var(--accent); }

/* ---------- footer ---------- */
:root > body > footer {
  background: transparent; border-top: 1px solid var(--hair);
  margin-top: 66px; padding: 34px 26px 48px; text-align: center;
  font-family: var(--fm), system-ui, sans-serif; font-size: 10.5px; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--fg); opacity: .58;
}
:root > body > footer::before {
  content: ''; display: block; width: 26px; height: 26px; margin: 0 auto 16px; opacity: .8;
  background: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 44'><circle cx='22' cy='22' r='21' fill='none' stroke='%23C0B0A0' stroke-width='1.4'/><path d='M22 9c0 0 8 9.2 8 14.4a8 8 0 0 1-16 0C14 18.2 22 9 22 9z' fill='none' stroke='%2327364E' stroke-width='1.8'/></svg>") no-repeat center / contain;
}
:root > body > footer a { color: var(--primary); text-decoration: none; border-bottom: 1px solid var(--hair); }
:root > body > footer a:hover { border-bottom-color: var(--accent); }

/* ---------- responsive ---------- */
@media (max-width: 1040px) {
  :root main > div:nth-child(1):has(> h2 > a) { column-gap: 34px; padding: 34px 32px 32px; }
}
@media (max-width: 860px) {
  :root main:has(> div > h2 > a) { grid-template-columns: 1fr; column-gap: 0; padding-bottom: 56px; }
  /* `span N` keeps minting implicit tracks — reset every band explicitly */
  :root main > div:nth-child(1):has(> h2 > a),
  :root main > div:nth-child(2):has(> h2 > a),
  :root main > div:nth-child(3):has(> h2 > a),
  :root main > div:nth-child(4):has(> h2 > a),
  :root main > div:nth-child(n+5):has(> h2 > a),
  :root main:has(> div > h2 > a) > div:not(:has(> h2)) { grid-column: 1 / -1; }

  :root main > div:nth-child(1):has(> h2 > a) {
    grid-template-columns: 1fr; padding: 28px 24px 30px; margin-bottom: 52px;
  }
  :root main > div:nth-child(1):has(> h2 > a)::before { grid-column: 1; grid-row: auto; }
  :root main > div:nth-child(1) > h2,
  :root main > div:nth-child(1) > p:last-of-type,
  :root main > div:nth-child(1) > a:last-child { grid-column: 1; grid-row: auto; }
  :root main > div:nth-child(1) > p:first-of-type {
    grid-column: 1; grid-row: auto; order: 9; align-self: start;
    border-left: 0; border-top: 1px solid var(--hair); padding: 20px 0 0; margin-top: 28px;
  }
  :root main > div:nth-child(1) > p:last-of-type::first-letter { font-size: 54px; padding-right: 10px; }

  :root main > div:nth-child(2):has(> h2 > a),
  :root main > div:nth-child(3):has(> h2 > a),
  :root main > div:nth-child(4):has(> h2 > a) { margin-bottom: 18px; padding: 24px 26px 22px; border-top-width: 1px; }
  :root main > div:nth-child(2):has(> h2 > a) { border-top-width: 2px; margin-top: 6px; }
  :root main > div:nth-child(4):has(> h2 > a) { margin-bottom: 56px; }
  :root main > div:nth-child(2):has(> h2 > a)::before { width: 100%; top: -30px; }

  /* Strip 1: shrink the reserved gap + band on mobile; card 6 no longer needs the gap */
  :root main > div:nth-child(5):has(> h2 > a) { margin-top: 178px; }
  :root main > div:nth-child(6):has(> h2 > a) { margin-top: 0; }
  :root main > div:nth-child(5):has(> h2 > a)::before { width: 100%; top: -162px; height: 134px; }
  :root main > div:nth-child(6):has(> h2 > a) { border-top-width: 1px; }

  /* Strip 2 + archive */
  :root main:has(> div > h2 > a) > div:not(:has(> h2)) { grid-template-columns: repeat(2, 1fr); margin-top: 64px; }
  :root main:has(> div > h2 > a) > div:not(:has(> h2))::before { height: 150px; }

  :root > body > header:has(> h1) { padding-top: 56px; padding-bottom: 38px; }
  :root main:has(> article) > article > h2 { font-size: 26px; }
  :root main:has(> article) > article > p:nth-of-type(1) { font-size: 18.5px; }
}


/* 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;
  }
}


/* archive-tail-cards: single-column cream cards on phones (M7) */
@media (max-width: 560px) {
  :root main:has(> div > h2 > a) > div:not(:has(> h2)) { grid-template-columns: 1fr; }
}


/* premium-upgrade v1 */
/* premium editorial upgrade — style=The-Sill-botanical overlay=25% grid=mixed scale=balanced 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; }
}

