/* Spark + Stone — Opportunity Zones article normalization
   Layered on top of each OZ article's own CSS to unify typography
   without rewriting their unique layouts. Loaded AFTER the article's
   <style> block and BEFORE dark-mode.css so dark-mode overrides still win.
*/

/* ─ Typography ───────────────────────────────────────────────── */
.oz-article,
.oz-article p,
.oz-article li,
.oz-article td,
.oz-article th,
.oz-article .lede,
.oz-article .section-intro,
.oz-article blockquote,
.oz-article .callout,
.oz-article .midsize-banner,
.oz-article .data-cell .label {
  font-family: 'DM Sans', 'Poppins', 'Helvetica Neue', sans-serif !important;
  font-feature-settings: 'ss01', 'ss02';
  color: #2a2e25 !important;   /* override per-article #1a1a1a "forced black" */
}

/* H1 display title — Playfair, same scale as article.css */
.oz-article h1,
.oz-article .article-title {
  font-family: 'Playfair Display', Georgia, serif !important;
  font-size: clamp(28px, 4.5vw, 42px) !important;
  font-weight: 700 !important;
  line-height: 1.22 !important;
  letter-spacing: -0.4px !important;
}

/* H2–H4 section headings: Playfair for editorial weight */
.oz-article h2,
.oz-article h3,
.oz-article h4,
.oz-article .pullquote,
.oz-article .data-cell .num,
.oz-article .stat-num,
.oz-article .f-brand {
  font-family: 'Playfair Display', Georgia, serif !important;
  letter-spacing: -0.005em;
}

/* Kickers / labels / metadata — keep DM Sans uppercase */
.oz-article .kicker,
.oz-article .tag,
.oz-article .article-category,
.oz-article .section-label,
.oz-article .box-label,
.oz-article .meta-line,
.oz-article .brand-tag,
.oz-article .section-tag,
.oz-article .num,
.oz-article .pcard-num {
  font-family: 'DM Sans', 'Poppins', sans-serif !important;
}

/* ─ Body rhythm ──────────────────────────────────────────────── */
.oz-article {
  font-size: 17px;
  line-height: 1.75;
  color: #2a2e25;
}
.oz-article p {
  margin-bottom: 1.1em;
  max-width: 70ch;
}
.oz-article h2 {
  font-size: clamp(24px, 3vw, 30px);
  font-weight: 600;
  line-height: 1.25;
  margin-top: 2.4em;
  margin-bottom: 0.7em;
}
.oz-article h3 {
  font-size: clamp(18px, 2.2vw, 21px);
  font-weight: 600;
  line-height: 1.3;
  margin-top: 1.8em;
  margin-bottom: 0.6em;
}

/* ─ Content column ───────────────────────────────────────────── */
.oz-article .wrap,
.oz-article .article-body,
.oz-article main,
.oz-article > section {
  max-width: 880px;
}

/* ─ Spacing safety — keep the page off the fixed navbar ─────── */
.oz-article {
  padding-top: 8px;
}

/* ─ Disclaimer / fine print at end ───────────────────────────── */
.oz-article .disclaimer,
.oz-article footer .disclaimer {
  font-size: 13px;
  color: #6b6b62;
  line-height: 1.7;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(75, 84, 66, 0.18);
  max-width: 70ch;
}

/* ─ Dark-mode hand-offs ─────────────────────────────────────── */
body.dark-mode .oz-article,
body.dark-mode .oz-article p,
body.dark-mode .oz-article li,
body.dark-mode .oz-article td,
body.dark-mode .oz-article th,
body.dark-mode .oz-article .lede,
body.dark-mode .oz-article .section-intro,
body.dark-mode .oz-article blockquote,
body.dark-mode .oz-article .callout {
  color: #edf0ea !important;
}
body.dark-mode .oz-article .disclaimer {
  color: #b0bfa6;
  border-top-color: #333d2c;
}
