@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=IBM+Plex+Mono:wght@400;500&family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,600;1,8..60,400&display=swap');

/* ── TOKENS ── */
:root {
  --ct-black:  #0C0B09;
  --ct-red:    #C4251A;
  --ct-gold:   #D4960A;
  --ct-cream:  #F4EFE4;
  --ct-warm:   #FAF8F4;
  --ct-mid:    #6B6459;
  --ct-border: #D9D2C3;
}

/* ── BODY — CT article body: 17px / lh 1.7 ── */
body {
  background: var(--ct-warm);
  color: var(--ct-black);
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 17px;
  line-height: 1.7;
  overflow-x: hidden;
}

/* ── PARAGRAPHS & LISTS — 17px Source Serif 4 ── */
p, li, td, blockquote {
  font-family: 'Source Serif 4', Georgia, serif;
  font-size: 17px;
  line-height: 1.7;
}

/* WordPress medium font size — CT uses 24px ── */
.has-medium-font-size {
  font-size: 24px !important;
  line-height: 1.7 !important;
}
.has-large-font-size  { font-size: 2rem !important; line-height: 1.3 !important; }
.has-small-font-size  { font-size: 14px !important; }

/* ── MONTSERRAT BODY TEXT → Source Serif 4 at correct size ──
   Paragraphs/lists that used Montserrat for body copy keep readable size */
p.has-montserrat-font-family,
li.has-montserrat-font-family,
p[class*="has-montserrat"],
li[class*="has-montserrat"] {
  font-family: 'Source Serif 4', Georgia, serif !important;
  font-size: 17px;
  line-height: 1.7;
  letter-spacing: normal;
  text-transform: none;
  color: var(--ct-black);
}

/* ── HEADINGS — matched to CT article page computed values ── */
h1, h2, h3, h4, h5, h6,
.wp-block-heading, .entry-title, .page-title {
  font-family: 'DM Serif Display', Georgia, serif;
  font-weight: 400;
  color: var(--ct-black);
}

/* CT article title: 57.6px / clamp / lh 1.1 */
h1, .entry-title, .page-title {
  font-size: clamp(2rem, 5vw, 3.6rem);
  line-height: 1.1;
  letter-spacing: -0.01em;
}

/* CT section heading: 26px / lh 1.0 */
h2, .wp-block-heading:is(h2) {
  font-size: 1.625rem;
  line-height: 1.0;
  border-bottom: 2px solid var(--ct-black);
  padding-bottom: 0.5rem;
  margin-bottom: 1.25rem;
}

/* CT card title: 25.6px / lh 1.2 */
h3, .wp-block-heading:is(h3) {
  font-size: 1.6rem;
  line-height: 1.2;
}

h4 { font-size: 1.2rem; line-height: 1.2; }
h5, h6 { font-size: 1rem; line-height: 1.3; }

/* ── EYEBROW / LABEL HEADINGS (Montserrat on headings = IBM Plex Mono labels) ── */
h2.has-montserrat-font-family,
h3.has-montserrat-font-family,
h4.has-montserrat-font-family,
h5.has-montserrat-font-family,
h6.has-montserrat-font-family,
h2[class*="has-montserrat"],
h3[class*="has-montserrat"],
h4[class*="has-montserrat"] {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--ct-red);
  border-bottom: none;
  line-height: 1.6;
}

/* ── LINKS ── */
a { color: var(--ct-red); text-decoration: underline; text-underline-offset: 3px; }
a:hover { color: var(--ct-gold); }

/* ── KENTE STRIPE ── */
header.wp-block-template-part::before {
  content: '';
  display: block;
  height: 6px;
  background: repeating-linear-gradient(90deg,
    var(--ct-red)   0    20px,
    var(--ct-gold)  20px 32px,
    var(--ct-black) 32px 44px,
    var(--ct-gold)  44px 56px,
    var(--ct-red)   56px 68px,
    var(--ct-cream) 68px 76px);
}

/* ── SITE HEADER / MASTHEAD ── */
header.wp-block-template-part {
  background: var(--ct-black) !important;
  border-bottom: 3px solid var(--ct-red);
}
header.wp-block-template-part .wp-block-group {
  background: transparent !important;
}
header.wp-block-template-part .wp-block-site-title,
header.wp-block-template-part .wp-block-site-title a {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ct-gold) !important;
  text-decoration: none;
}
header.wp-block-template-part .wp-block-navigation a,
header.wp-block-template-part nav a {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55) !important;
  text-decoration: none;
}
header.wp-block-template-part .wp-block-navigation a:hover,
header.wp-block-template-part nav a:hover {
  color: var(--ct-cream) !important;
}

/* ── SEPARATORS ── */
.wp-block-separator, hr {
  border: none;
  border-top: 2px solid var(--ct-border);
  margin: 1.5rem 0;
}

/* ── BLOCKQUOTES — CT style: red left border, Source Serif 4, mid colour ── */
.wp-block-quote, blockquote {
  border-left: 3px solid var(--ct-red);
  padding-left: 1.25rem;
  color: var(--ct-mid);
  font-style: italic;
  font-size: 17px;
}

/* ── BUTTONS ── */
.wp-block-button__link, .wp-element-button {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  background-color: var(--ct-red) !important;
  color: #fff !important;
  border-radius: 0 !important;
  padding: 0.85rem 1.4rem !important;
  text-decoration: none;
}
.wp-block-button__link:hover, .wp-element-button:hover {
  background-color: #a81f15 !important;
}

/* ── GROUP BLOCKS / SECTIONS ── */
.wp-block-group { border-radius: 0; }
.wp-block-group.has-black-background-color,
.wp-block-group.has-theme-4-background-color,
.wp-block-group.has-theme-5-background-color {
  background: var(--ct-black) !important;
  color: var(--ct-cream);
}
.wp-block-group.has-black-background-color h1,
.wp-block-group.has-black-background-color h2,
.wp-block-group.has-black-background-color h3,
.wp-block-group.has-theme-4-background-color h1,
.wp-block-group.has-theme-4-background-color h2 {
  color: var(--ct-cream);
  border-bottom-color: rgba(244,239,228,0.3);
}
.wp-block-group.has-theme-1-background-color {
  background: var(--ct-cream) !important;
}

/* ── IMAGES ── */
.wp-block-image img { border: 1px solid var(--ct-border); max-width: 100%; display: block; }
.wp-block-image figcaption, figcaption {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ct-mid);
  margin-top: 0.5rem;
}

/* ── META ── */
time, .post-meta {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ct-mid);
}

/* ── FOOTER ── */
footer.wp-block-template-part {
  background: var(--ct-black) !important;
  border-top: 3px solid var(--ct-gold) !important;
  color: var(--ct-cream);
}
footer.wp-block-template-part .wp-block-group { background: transparent !important; }
footer.wp-block-template-part a {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--ct-gold) !important;
  text-decoration: none;
}
footer.wp-block-template-part a:hover { color: var(--ct-cream) !important; }
footer.wp-block-template-part p,
footer.wp-block-template-part span,
footer.wp-block-template-part li {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: rgba(255,255,255,0.55);
}
footer.wp-block-template-part h2,
footer.wp-block-template-part h3,
footer.wp-block-template-part h4 {
  color: var(--ct-cream);
  border-bottom: none;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  font-weight: 400;
}

/* ── IMAGE SIZING — matched to CT article column (776px) ── */

/* Constrain main content to CT article width */
main.wp-block-group,
.wp-block-post-content,
.entry-content {
  max-width: 880px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 2rem;
  padding-right: 2rem;
}

/* All images: fit within content column, never overflow */
.wp-block-image img,
.entry-content img,
.wp-block-post-content img,
main img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Standard image block — constrained to content width */
.wp-block-image:not(.alignwide):not(.alignfull) {
  max-width: 100%;
}
.wp-block-image:not(.alignwide):not(.alignfull) img {
  max-width: 100%;
  height: auto;
}

/* Wide images — up to 1200px, centred */
.wp-block-image.alignwide,
.wp-block-image.alignwide img,
.alignwide.wp-block-cover,
.alignwide.wp-block-group {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  height: auto;
}

/* Full-width images — cap at 1400px so they don't stretch on very wide screens */
.wp-block-image.alignfull img,
.alignfull.wp-block-cover {
  max-width: 1400px;
  margin-left: auto;
  margin-right: auto;
  height: auto;
}

/* Gallery (photo-gallery page) — 3-column grid matching CT gallery style */
.wp-block-jetpack-tiled-gallery,
.tiled-gallery__gallery {
  max-width: 880px;
  margin: 0 auto;
}
.tiled-gallery__item img {
  border: 1px solid var(--ct-border);
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* Embed/video blocks */
.wp-block-embed,
.wp-block-video {
  max-width: 100%;
}
.wp-block-embed iframe,
.wp-block-video video {
  max-width: 100%;
  height: auto;
}

/* ── CT EYEBROW LINE — red 24px bar before label/eyebrow text ── */
/* Matches CT hero-eyebrow::before exactly: width 24px, height 2px, red */
h2.has-montserrat-font-family,
h3.has-montserrat-font-family,
h4.has-montserrat-font-family,
h2[class*="has-montserrat"],
h3[class*="has-montserrat"],
h4[class*="has-montserrat"] {
  display: flex;
  align-items: center;
  gap: 0.6rem;
}
h2.has-montserrat-font-family::before,
h3.has-montserrat-font-family::before,
h4.has-montserrat-font-family::before,
h2[class*="has-montserrat"]::before,
h3[class*="has-montserrat"]::before,
h4[class*="has-montserrat"]::before {
  content: '';
  display: inline-block;
  width: 24px;
  height: 2px;
  background: var(--ct-red);
  flex-shrink: 0;
}

/* ── CT SECTION H2 LINE — full-width black underline ── */
/* Already applied via border-bottom on h2; ensure consistent spacing */
h2:not(.has-montserrat-font-family):not([class*="has-montserrat"]),
.wp-block-heading:is(h2):not(.has-montserrat-font-family) {
  padding-bottom: 0.5rem;
  margin-bottom: 1.25rem;
  border-bottom: 2px solid var(--ct-black);
}

/* ── CT SEPARATOR STYLE — matches CT section dividers ── */
.wp-block-separator,
hr {
  border: none;
  border-top: 2px solid var(--ct-border);
  margin: 2rem 0;
  position: relative;
}

/* Red accent dot at centre of separators */
.wp-block-separator::after {
  content: '';
  position: absolute;
  left: 50%;
  top: -3px;
  transform: translateX(-50%);
  width: 6px;
  height: 6px;
  background: var(--ct-red);
  border-radius: 50%;
}

/* ── SCROLLBAR — matches CT exactly ── */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: var(--ct-warm); }
::-webkit-scrollbar-thumb { background: var(--ct-border); }

/* ══════════════════════════════════════
   HOME PAGE — match CT design exactly
   (.home body class scopes all rules)
   ══════════════════════════════════════ */

/* ── KENTE STRIPE before the white nav block ── */
.home .wp-block-group.shadow.has-background::before {
  content: '';
  display: block;
  height: 6px;
  background: repeating-linear-gradient(90deg,
    var(--ct-red)   0    20px,
    var(--ct-gold)  20px 32px,
    var(--ct-black) 32px 44px,
    var(--ct-gold)  44px 56px,
    var(--ct-red)   56px 68px,
    var(--ct-cream) 68px 76px);
}

/* ── NAV BLOCK → CT black masthead ── */
.home .wp-block-group.shadow.has-background {
  background: var(--ct-black) !important;
  background-color: var(--ct-black) !important;
  border-bottom: 3px solid var(--ct-red) !important;
  padding-top: 0 !important;
}

/* Site title / logo inside nav block */
.home .wp-block-group.shadow.has-background .wp-block-site-title a,
.home .wp-block-group.shadow.has-background .wp-block-site-logo a {
  color: var(--ct-gold) !important;
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
}

/* Nav links inside nav block */
.home .wp-block-group.shadow.has-background .wp-block-navigation a,
.home .wp-block-group.shadow.has-background nav a,
.home .wp-block-group.shadow.has-background li a {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 10px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.55) !important;
  text-decoration: none !important;
}
.home .wp-block-group.shadow.has-background .wp-block-navigation a:hover,
.home .wp-block-group.shadow.has-background li a:hover {
  color: var(--ct-cream) !important;
}

/* ── HOME PAGE HEADINGS — CT-consistent sizes ── */
/* Override inline clamp sizes to match CT section headings */
.home .wp-block-heading:is(h2),
.home h2.wp-block-heading {
  font-size: 1.75rem !important;
  line-height: 1.05 !important;
  letter-spacing: -0.01em;
}

/* H3 cards — CT card-title-lg: 25.6px / 1.6rem */
.home h3.wp-block-heading,
.home .wp-block-heading:is(h3) {
  font-size: 1.6rem !important;
  line-height: 1.2 !important;
}

/* Hero H1 — keep large, matches CT hero aesthetic */
.home h1.wp-block-heading {
  font-size: clamp(2.5rem, 6vw, 4rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em;
}

/* ── HOME PAGE BODY TEXT — 17px Source Serif 4 ── */
/* Medium size (24px) only for lead/quote paragraphs, not all body */
.home p:not(.has-medium-font-size):not(.has-large-font-size) {
  font-size: 17px !important;
  line-height: 1.7 !important;
  font-family: 'Source Serif 4', Georgia, serif !important;
}

/* ── HOME SECTIONS — warm white background ── */
.home .wp-site-blocks {
  background: var(--ct-warm);
}

/* ── HOME H2 SECTION DIVIDER LINE ── */
.home h2.wp-block-heading:not(.has-montserrat-font-family) {
  border-bottom: 2px solid var(--ct-black);
  padding-bottom: 0.5rem;
  margin-bottom: 1.25rem;
}

/* ── HOME PAGE LOGO REPLACEMENT ── */
/* Replace existing logo image with new PAN ★ AFRICANISM TODAY logo */
.home .wp-block-group.shadow.has-background img {
  content: url(https://patsec.org/wp-content/uploads/2026/06/pat-logo.png);
  max-width: 420px;
  width: 100%;
  height: auto;
  display: block;
}

/* Centre the logo in the nav block */
.home .wp-block-group.shadow.has-background .wp-block-image,
.home .wp-block-group.shadow.has-background figure {
  display: flex;
  justify-content: center;
  margin: 1.5rem auto;
}

/* ── LOGO REPLACEMENT — all pages with standard template header ── */
/* Excludes Common Thread (page-template-template-blank = no wp-block-template-part header) */
body:not(.page-template-template-blank) header.wp-block-template-part img,
body:not(.page-template-template-blank) header.wp-block-template-part .wp-block-site-logo img {
  content: url(https://patsec.org/wp-content/uploads/2026/06/pat-logo.png);
  max-width: 380px;
  width: 100%;
  height: auto;
  display: block;
}

/* Ensure logo image container doesn't constrain it */
body:not(.page-template-template-blank) header.wp-block-template-part .wp-block-image,
body:not(.page-template-template-blank) header.wp-block-template-part .wp-block-site-logo {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin: 0.75rem 0;
}

/* ══════════════════════════════════════════
   HEADINGS ON DARK BACKGROUNDS — cream text
   Fixes dark-on-dark invisible headings
   ══════════════════════════════════════════ */

/* ── Site header (black masthead) ── */
header.wp-block-template-part h1,
header.wp-block-template-part h2,
header.wp-block-template-part h3,
header.wp-block-template-part h4,
header.wp-block-template-part .wp-block-heading {
  color: var(--ct-cream) !important;
  border-bottom-color: rgba(244,239,228,0.25) !important;
}

/* ── Home page black nav/hero block ── */
.home .wp-block-group.shadow.has-background h1,
.home .wp-block-group.shadow.has-background h2,
.home .wp-block-group.shadow.has-background h3,
.home .wp-block-group.shadow.has-background h4,
.home .wp-block-group.shadow.has-background .wp-block-heading {
  color: var(--ct-cream) !important;
  border-bottom-color: rgba(244,239,228,0.25) !important;
}

/* ── Any group block with explicit dark/black background ── */
.wp-block-group.has-black-background-color h1,
.wp-block-group.has-black-background-color h2,
.wp-block-group.has-black-background-color h3,
.wp-block-group.has-black-background-color h4,
.wp-block-group.has-black-background-color .wp-block-heading,
.wp-block-group.has-theme-4-background-color h1,
.wp-block-group.has-theme-4-background-color h2,
.wp-block-group.has-theme-4-background-color h3,
.wp-block-group.has-theme-4-background-color .wp-block-heading,
.wp-block-group.has-theme-5-background-color h1,
.wp-block-group.has-theme-5-background-color h2,
.wp-block-group.has-theme-5-background-color h3,
.wp-block-group.has-theme-5-background-color .wp-block-heading {
  color: var(--ct-cream) !important;
  border-bottom-color: rgba(244,239,228,0.25) !important;
}

/* ── Cover blocks (typically have dark overlay) ── */
.wp-block-cover h1,
.wp-block-cover h2,
.wp-block-cover h3,
.wp-block-cover h4,
.wp-block-cover .wp-block-heading {
  color: var(--ct-cream) !important;
  border-bottom-color: rgba(244,239,228,0.25) !important;
}

/* ── Home page hero section (white text on bg image) ── */
.home .wp-block-group.alignfull h1,
.home .wp-block-group.alignfull h2,
.home .wp-block-group.alignfull h3,
.home .wp-block-group.alignfull .wp-block-heading {
  color: #ffffff !important;
  border-bottom-color: rgba(255,255,255,0.25) !important;
}

/* ── Paragraphs & text on dark backgrounds ── */
.wp-block-group.has-black-background-color p,
.wp-block-group.has-black-background-color li,
.wp-block-group.has-black-background-color span,
.wp-block-group.has-theme-4-background-color p,
.wp-block-group.has-theme-4-background-color li,
.wp-block-cover p {
  color: var(--ct-cream);
}

/* ── Footer headings already handled — reinforce ── */
footer.wp-block-template-part h1,
footer.wp-block-template-part h2,
footer.wp-block-template-part h3,
footer.wp-block-template-part h4,
footer.wp-block-template-part .wp-block-heading {
  color: var(--ct-cream) !important;
  border-bottom: none !important;
}

/* ══════════════════════════════════════════
   FIX: white headings on cream background
   Bottom home page section + any light bg
   ══════════════════════════════════════════ */

/* Headings inside column cards on cream background — reset to CT black */
.home .wp-block-group.alignfull .wp-block-columns h2,
.home .wp-block-group.alignfull .wp-block-columns h3,
.home .wp-block-group.alignfull .wp-block-columns h4,
.home .wp-block-group.alignfull .wp-block-columns .wp-block-heading {
  color: var(--ct-black) !important;
  border-bottom-color: var(--ct-border) !important;
}

/* Standalone H2 section titles on cream (not in hero) */
.home .wp-block-group.alignwide h2,
.home .wp-block-group.alignwide h3,
.home .wp-block-group.alignwide h4,
.home .wp-block-group.alignwide .wp-block-heading {
  color: var(--ct-black) !important;
  border-bottom-color: var(--ct-black) !important;
}

/* Global safety net: any heading that is white on a light/warm background */
.has-global-padding h2:not(header *):not(.wp-block-cover *),
.has-global-padding h3:not(header *):not(.wp-block-cover *) {
  color: var(--ct-black);
}

/* ── Hero H1 "Education and Solidarity for Africa's Liberation." → cream ── */
.home .wp-block-group.alignfull h1,
.home .wp-block-group.alignfull .wp-block-heading:is(h1) {
  color: var(--ct-cream) !important;
}

/* ══════════════════════════════════════
   MOBILE RESPONSIVE — ≤ 768px
   ══════════════════════════════════════ */
@media (max-width: 768px) {

  /* ── Base text ── */
  body {
    font-size: 16px;
    line-height: 1.65;
  }

  p, li, td, blockquote {
    font-size: 16px;
    line-height: 1.65;
  }

  /* ── Headings scale down ── */
  h1, .entry-title, .page-title {
    font-size: clamp(1.75rem, 7vw, 2.4rem);
    line-height: 1.1;
  }

  h2, .wp-block-heading:is(h2) {
    font-size: 1.4rem;
    line-height: 1.15;
  }

  h3, .wp-block-heading:is(h3) {
    font-size: 1.2rem;
  }

  h4 { font-size: 1rem; }

  /* ── Content padding ── */
  main.wp-block-group,
  .wp-block-post-content,
  .entry-content {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  /* ── Site header ── */
  header.wp-block-template-part {
    padding: 0 1rem;
  }

  /* ── Logo scales on mobile ── */
  body:not(.page-template-template-blank) header.wp-block-template-part img,
  .home .wp-block-group.shadow.has-background img {
    max-width: 260px !important;
  }

  /* ── Nav: hamburger menu already handled by WP, just ensure readable size ── */
  header.wp-block-template-part .wp-block-navigation a,
  header.wp-block-template-part nav a {
    font-size: 12px !important;
    letter-spacing: 0.1em !important;
  }

  /* ── Columns stack vertically ── */
  .wp-block-columns {
    flex-direction: column !important;
  }

  .wp-block-column {
    width: 100% !important;
    flex-basis: 100% !important;
    min-width: unset !important;
  }

  /* ── Images ── */
  .wp-block-image img,
  main img {
    max-width: 100% !important;
    height: auto !important;
  }

  .wp-block-image.alignwide,
  .wp-block-image.alignfull {
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* ── Home page nav block ── */
  .home .wp-block-group.shadow.has-background {
    padding: 0.5rem 1rem !important;
  }

  /* ── Tiled gallery ── */
  .wp-block-jetpack-tiled-gallery,
  .tiled-gallery__gallery {
    max-width: 100% !important;
  }

  /* ── Buttons full width on small screens ── */
  .wp-block-button__link,
  .wp-element-button {
    padding: 0.75rem 1rem !important;
    font-size: 10px !important;
    width: 100%;
    text-align: center;
    display: block;
  }

  /* ── Footer columns stack ── */
  footer.wp-block-template-part .wp-block-columns {
    flex-direction: column !important;
    gap: 1.5rem !important;
  }

  footer.wp-block-template-part .wp-block-column {
    width: 100% !important;
    flex-basis: 100% !important;
    text-align: center;
  }

  /* ── Medium font size capped for mobile ── */
  .has-medium-font-size {
    font-size: 18px !important;
    line-height: 1.6 !important;
  }

  .has-large-font-size {
    font-size: 1.5rem !important;
  }

  /* ── Blockquote ── */
  .wp-block-quote, blockquote {
    padding-left: 1rem;
    font-size: 16px;
  }

  /* ── Separators ── */
  .wp-block-separator, hr {
    margin: 1rem 0;
  }

  /* ── Kente stripe ── */
  header.wp-block-template-part::before,
  .home .wp-block-group.shadow.has-background::before {
    height: 4px;
  }
}

/* ── Small phones ≤ 480px ── */
@media (max-width: 480px) {

  h1, .entry-title {
    font-size: clamp(1.5rem, 8vw, 2rem);
  }

  h2 { font-size: 1.25rem; }
  h3 { font-size: 1.1rem; }

  body, p, li { font-size: 15px; }

  body:not(.page-template-template-blank) header.wp-block-template-part img,
  .home .wp-block-group.shadow.has-background img {
    max-width: 200px !important;
  }
}

/* ── Hamburger button — cream so visible on black header ── */
.wp-block-navigation__responsive-container-open,
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-open span {
  color: var(--ct-cream) !important;
  fill: var(--ct-cream) !important;
}
.home .wp-block-group.shadow.has-background .wp-block-navigation__responsive-container-open,
.home .wp-block-group.shadow.has-background .wp-block-navigation__responsive-container-open svg {
  color: var(--ct-cream) !important;
  fill: var(--ct-cream) !important;
}

/* ── Close button ── */
.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-close svg {
  color: var(--ct-cream) !important;
  fill: var(--ct-cream) !important;
}

/* ── Open menu overlay ── */
.wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--ct-black) !important;
  padding: 2rem 1.5rem !important;
}

/* ── Links in open menu ── */
.wp-block-navigation__responsive-container.is-menu-open a {
  font-family: 'IBM Plex Mono', monospace !important;
  font-size: 14px !important;
  letter-spacing: 0.15em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,0.8) !important;
  text-decoration: none !important;
  padding: 0.75rem 0 !important;
  display: block;
  border-bottom: 1px solid rgba(255,255,255,0.1) !important;
}
.wp-block-navigation__responsive-container.is-menu-open a:hover {
  color: var(--ct-gold) !important;
}