/* ============================================================
   base.css — element defaults + global typography helpers
   ============================================================ */
body{
  font-family:var(--font-sans);
  color:var(--ink);
  background:var(--bg);
  line-height:var(--lh-base);
  font-size:var(--fs-base);
  -webkit-font-smoothing:antialiased;
}

/* ── Shared typography helpers ── */
.label{
  display:inline-block;font-family:var(--font-mono);font-size:.72rem;
  letter-spacing:.12em;text-transform:uppercase;color:var(--accent);
  margin-bottom:var(--space-5);padding-bottom:6px;border-bottom:1px solid var(--accent);
}
.heading-lg{font-size:2rem;font-weight:600;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin-bottom:var(--space-5)}
.heading-md{font-size:1.4rem;font-weight:600;line-height:1.25;letter-spacing:-.01em;color:var(--ink);margin-bottom:var(--space-4)}
.body-lg{font-size:1.05rem;color:var(--steel);max-width:680px;line-height:1.65}
.body-md{font-size:1rem;color:var(--steel);margin-bottom:var(--space-4)}
.subhead{font-size:1.1rem;font-weight:600;margin:var(--space-9) 0 var(--space-5);color:var(--ink)}

/* ── Prose: styles for cleaned WordPress content ── */
.prose{font-size:1rem;color:var(--ink-70);line-height:1.7;max-width:760px;overflow-wrap:break-word}
.prose > *:first-child{margin-top:0}
.prose h2{font-size:1.5rem;font-weight:600;line-height:1.25;color:var(--ink);margin:var(--space-8) 0 var(--space-4)}
.prose h3{font-size:1.2rem;font-weight:600;color:var(--ink);margin:var(--space-7) 0 var(--space-3)}
.prose h4{font-size:1.02rem;font-weight:600;color:var(--ink);margin:var(--space-6) 0 var(--space-2)}
.prose p{margin:0 0 var(--space-4)}
.prose ul,.prose ol{margin:0 0 var(--space-4);padding-left:1.3em}
.prose ul{list-style:square}
.prose ol{list-style:decimal}
.prose li{margin:0 0 var(--space-2)}
.prose li::marker{color:var(--accent)}
.prose a{color:var(--accent-ink);border-bottom:1px solid var(--accent-line);transition:border-color var(--t-fast)}
.prose a:hover{border-color:var(--accent-ink)}
.prose strong{color:var(--ink);font-weight:600}
.prose img{height:auto;margin:var(--space-5) 0;border:var(--border)}
.prose figure{margin:var(--space-5) 0}
.prose figcaption{font-family:var(--font-mono);font-size:.78rem;color:var(--mute);margin-top:6px}
.prose blockquote{margin:var(--space-5) 0;padding:var(--space-4) var(--space-5);border-left:3px solid var(--accent);background:var(--bg-soft);color:var(--steel)}
.prose hr{border:none;border-top:1px solid var(--line);margin:var(--space-7) 0}
.prose table{margin:var(--space-5) 0;font-size:.92rem;border:var(--border)}
.prose th,.prose td{border:var(--border);padding:10px 14px;text-align:left;vertical-align:top}
.prose th{background:var(--bg-soft);font-weight:600;color:var(--ink)}
.prose a[href$=".pdf"]::after{content:" ↓ PDF";font-family:var(--font-mono);font-size:.7rem;color:var(--mute)}
.prose iframe{width:100%;min-height:420px;border:var(--border);margin:var(--space-5) 0}
.prose svg{max-width:1.2em;height:auto;vertical-align:middle}  /* safety net for stray inline icons */
.prose .pdf-embed{display:inline-block;font-family:var(--font-mono);font-size:.85rem;border:var(--border-strong);padding:8px 16px;color:var(--ink)}
.prose .pdf-embed:hover{background:var(--ink);color:var(--bg);border-bottom-color:var(--ink)}
.prose .pdf-embed::after{content:""}
