/* ==========================================================================
   Historical Africa — brand.css (v2.0.0 "Kente & Gold")
   Loaded after GeneratePress. Mobile-first. No external requests.

   Contents
   1. Design tokens
   2. Base & typography
   3. GeneratePress header, navigation, footer
   4. Layout primitives (containers, grids, section heads)
   5. Cards
   6. Homepage: hero, tiles, latest/trending, feature band, untold + on this day
   7. Newsletter
   8. Article (single) & pages
   9. Figures, captions, reconstruction labels, block styles
   10. Share, author, related, corrections, tags
   11. Archives, search, 404, pagination, empty states
   12. Forms & buttons
   13. Accessibility & motion
   14. Print
   15. Kente & Gold (v2): kente bands, header, nav, newsletter band, footer, archive
       (sits before 13 in the file so accessibility/print rules come last)
   ========================================================================== */

/* 1. Design tokens --------------------------------------------------------- */
:root {
	/* Colour */
	--ha-ink: #0F0E0C;          /* primary black (warm) */
	--ha-charcoal: #1C1A17;     /* raised dark surfaces */
	--ha-stone: #2E2A25;        /* dark borders */
	--ha-cream: #F4EDE0;        /* page background */
	--ha-paper: #FBF7EF;        /* cards, inputs */
	--ha-gold: #B8935A;         /* antique gold: on dark only, rules, icons */
	--ha-gold-light: #D4B47E;   /* gold text/hover on black */
	--ha-gold-deep: #7A5A2B;    /* gold text/links on cream (AA 5.4:1) */
	--ha-muted: #5E564A;        /* secondary text on cream (AA 6.2:1) */
	--ha-muted-dark: #A89E8C;   /* secondary text on black (AA 7.3:1) */
	--ha-rule: #D8CCB6;         /* hairlines on cream (decorative) */
	--ha-rule-strong: #B5A88F;  /* input borders on cream */
	--ha-focus: #7A5A2B;

	/* Type */
	--ha-font-display: "Playfair Display", "Playfair", Georgia, "Times New Roman", serif;
	--ha-font-body: "Source Serif 4", "Source Serif Pro", Georgia, Cambria, "Times New Roman", serif;
	--ha-font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;

	--ha-fs-xs: 0.8125rem;                                   /* 13 — labels, credits */
	--ha-fs-sm: 0.9375rem;                                   /* 15 — meta, UI */
	--ha-fs-base: 1.125rem;                                  /* 18 — body */
	--ha-fs-prose: clamp(1.125rem, 1.06rem + 0.3vw, 1.25rem);  /* 18→20 — article body */
	--ha-fs-lg: clamp(1.1875rem, 1.1rem + 0.4vw, 1.375rem);   /* 19→22 — standfirst, small headlines */
	--ha-fs-xl: clamp(1.375rem, 1.2rem + 0.8vw, 1.75rem);     /* 22→28 — card headlines */
	--ha-fs-2xl: clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem);      /* 28→40 — section titles */
	--ha-fs-3xl: clamp(2.125rem, 1.5rem + 3vw, 3.75rem);      /* 34→60 — article H1 */
	--ha-fs-display: clamp(2.375rem, 1.6rem + 3.2vw, 4rem);   /* 38→64 — hero */

	--ha-lh-tight: 1.1;
	--ha-lh-snug: 1.25;
	--ha-lh-body: 1.65;

	/* Space (4px base) */
	--ha-space-1: 0.25rem;  /* 4 */
	--ha-space-2: 0.5rem;   /* 8 */
	--ha-space-3: 0.75rem;  /* 12 */
	--ha-space-4: 1rem;     /* 16 */
	--ha-space-5: 1.5rem;   /* 24 */
	--ha-space-6: 2rem;     /* 32 */
	--ha-space-7: 3rem;     /* 48 */
	--ha-space-8: 4rem;     /* 64 */
	--ha-space-9: 6rem;     /* 96 */
	--ha-section: clamp(3rem, 2rem + 4vw, 6rem);

	/* Layout */
	--ha-max: 1280px;
	--ha-wide: 1100px;
	--ha-text: 68ch;
	--ha-gutter: clamp(1rem, 0.5rem + 2.5vw, 2.5rem);
	--ha-gap: clamp(1.25rem, 0.8rem + 1.5vw, 2rem);
	--ha-radius: 2px;
	--ha-shadow: 0 1px 0 rgba(15, 14, 12, 0.06);
}

/* 2. Base & typography ----------------------------------------------------- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
	background-color: var(--ha-cream);
	color: var(--ha-ink);
	font-family: var(--ha-font-body);
	font-size: var(--ha-fs-base);
	line-height: var(--ha-lh-body);
	font-optical-sizing: auto;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--ha-font-display);
	font-weight: 700;
	line-height: var(--ha-lh-snug);
	color: var(--ha-ink);
	letter-spacing: -0.01em;
	text-wrap: balance;
}

a { color: var(--ha-gold-deep); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover, a:focus { color: var(--ha-ink); }

::selection { background: var(--ha-gold-light); color: var(--ha-ink); }

img { max-width: 100%; height: auto; }

.ha-eyebrow,
.ha-kicker {
	font-family: var(--ha-font-ui);
	font-size: var(--ha-fs-xs);
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.3;
	margin: 0 0 var(--ha-space-2);
	color: var(--ha-gold-deep);
}
.ha-kicker a { color: inherit; text-decoration: none; display: inline-block; padding-block: 0.45em; margin-block: -0.45em -0.1em; } /* 24px touch target without shifting layout */
.ha-kicker a:hover { text-decoration: underline; }

.ha-meta {
	font-family: var(--ha-font-ui);
	font-size: var(--ha-fs-xs);
	color: var(--ha-muted);
	margin: var(--ha-space-2) 0 0;
	line-height: 1.5;
	display: flex;
	flex-wrap: wrap;
	gap: 0 var(--ha-space-2);
}
.ha-meta a { color: inherit; font-weight: 600; text-decoration: none; }
.ha-meta a:hover { text-decoration: underline; color: var(--ha-ink); }
.ha-meta__sep { opacity: 0.6; }
.ha-muted { color: var(--ha-muted); }

/* 3. GeneratePress header, navigation, footer ------------------------------ */
.site-header {
	background-color: var(--ha-ink);
	color: var(--ha-cream);
	border-bottom: 1px solid var(--ha-gold);
}
.site-header .inside-header { padding-top: var(--ha-space-4); padding-bottom: var(--ha-space-4); }
.main-title { font-family: var(--ha-font-display); font-weight: 700; font-size: clamp(1.375rem, 1.1rem + 1vw, 1.875rem); letter-spacing: 0.01em; line-height: 1.1; margin: 0; }
.main-title a, .main-title a:hover { color: var(--ha-cream); text-decoration: none; }
.site-description { color: var(--ha-gold-light); font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); }
.site-logo img, .custom-logo { max-height: 56px; width: auto; }

.main-navigation,
.main-navigation ul ul { background-color: var(--ha-ink); }
.main-navigation .main-nav ul li a,
.main-navigation .menu-toggle,
.main-navigation .menu-bar-items {
	font-family: var(--ha-font-ui);
	font-size: 0.8125rem;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ha-cream);
}
.main-navigation .main-nav ul li:not([class*="current-menu-"]):hover > a,
.main-navigation .main-nav ul li:not([class*="current-menu-"]):focus > a,
.main-navigation .main-nav ul li.sfHover:not([class*="current-menu-"]) > a,
.main-navigation .menu-bar-item:hover > a { color: var(--ha-gold-light); background: transparent; }
.main-navigation .main-nav ul li[class*="current-menu-"] > a { color: var(--ha-gold-light); box-shadow: inset 0 -2px 0 var(--ha-gold); }
.main-navigation ul ul { border-top: 1px solid var(--ha-gold); }
.main-navigation .main-nav ul ul li a { text-transform: none; letter-spacing: 0; font-size: var(--ha-fs-sm); }
/* Header search bar (GeneratePress nav search): cream field, gold border, room on the right for the close icon. */
.main-navigation .navigation-search.nav-search-active { box-sizing: border-box; padding: 8px 64px 8px 12px; background: var(--ha-ink); }
.main-navigation .navigation-search input[type="search"],
.main-navigation .navigation-search input[type="search"]:active,
.main-navigation .navigation-search input[type="search"]:focus { box-sizing: border-box; height: 44px; padding: 0 1rem; background: var(--ha-paper); color: var(--ha-ink); opacity: 1; border: 2px solid var(--ha-gold); border-radius: var(--ha-radius); font-family: var(--ha-font-ui); font-size: 1rem; line-height: 1.2; }
.main-navigation .navigation-search input[type="search"]:focus { outline: 0; border-color: var(--ha-gold-light); box-shadow: 0 0 0 3px rgba(212, 180, 126, 0.45); }
.main-navigation .navigation-search input[type="search"]::placeholder { color: var(--ha-muted); opacity: 1; }
.main-navigation .menu-bar-items .search-item.active > a { color: var(--ha-gold-light); }
.mobile-menu-control-wrapper .menu-toggle,
.mobile-menu-control-wrapper .menu-toggle:hover,
.mobile-menu-control-wrapper .menu-toggle:focus,
.has-inline-mobile-toggle #site-navigation.toggled { background: var(--ha-ink); color: var(--ha-cream); }

.site-footer { background: var(--ha-ink); color: var(--ha-cream); }
.site-info { background: var(--ha-ink); color: var(--ha-muted-dark); font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); border-top: 1px solid var(--ha-stone); }
.site-info a { color: var(--ha-cream); }
.site-info a:hover { color: var(--ha-gold-light); }
.site-info .inside-site-info { padding-top: var(--ha-space-5); padding-bottom: var(--ha-space-5); }
.site-info .copyright-bar { display: flex; flex-wrap: wrap; gap: var(--ha-space-2) var(--ha-space-5); align-items: center; justify-content: space-between; width: 100%; }
.ha-inline-list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--ha-space-2) var(--ha-space-5); }
.ha-legal-nav { display: inline-block; }

.ha-footer { padding: var(--ha-section) 0 var(--ha-space-7); }
.ha-footer__grid { display: grid; gap: var(--ha-space-6); grid-template-columns: 1fr; }
.ha-footer__logo { font-family: var(--ha-font-display); font-size: var(--ha-fs-2xl); font-weight: 700; line-height: 1.1; margin: 0 0 var(--ha-space-4); }
.ha-footer__logo a { color: var(--ha-cream); text-decoration: none; }
.ha-footer__about { color: var(--ha-muted-dark); font-size: var(--ha-fs-sm); max-width: 38ch; margin: 0; }
.ha-footer__heading { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ha-gold); margin: 0 0 var(--ha-space-4); }
.ha-footer__list { list-style: none; margin: 0; padding: 0; font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); }
.ha-footer__list li { margin: 0 0 var(--ha-space-2); }
.ha-footer a { color: var(--ha-cream); text-decoration: none; }
.ha-footer a:hover, .ha-footer a:focus { color: var(--ha-gold-light); text-decoration: underline; }
.ha-footer__widget { color: var(--ha-muted-dark); font-size: var(--ha-fs-sm); }
@media (min-width: 600px) { .ha-footer__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .ha-footer__grid { grid-template-columns: 2fr repeat(auto-fit, minmax(160px, 1fr)); } }

/* Back-to-top (GeneratePress) */
a.generate-back-to-top { background: var(--ha-ink); color: var(--ha-gold); border: 1px solid var(--ha-gold); border-radius: 0; }
a.generate-back-to-top:hover, a.generate-back-to-top:focus { background: var(--ha-gold); color: var(--ha-ink); }

/* 4. Layout primitives ----------------------------------------------------- */
.ha-container {
	width: 100%;
	max-width: calc(var(--ha-max) + 2 * var(--ha-gutter));
	margin-inline: auto;
	padding-inline: var(--ha-gutter);
	box-sizing: border-box;
}
.ha-container--wide { max-width: calc(var(--ha-wide) + 2 * var(--ha-gutter)); }
.ha-container--text { max-width: calc(var(--ha-text) + 2 * var(--ha-gutter)); }
.ha-container .ha-container { padding-inline: 0; }

/* GeneratePress content area: let our sections run edge to edge. */
.ha-magazine .site-content { display: block; padding: 0; }
.ha-magazine .content-area, .ha-magazine .site-main { width: 100%; margin: 0; }
.ha-magazine .site-main > * { margin-bottom: 0; } /* GeneratePress adds 20px between main's children; our bands butt together. */
.ha-magazine.one-container .site-content,
.ha-magazine .site.grid-container { background: transparent; max-width: none; padding: 0; }

.ha-section { padding-block: var(--ha-section) 0; }
.ha-section:last-child { padding-bottom: var(--ha-section); }

.ha-section-head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: var(--ha-space-2) var(--ha-space-5);
	border-top: 2px solid var(--ha-ink);
	padding-top: var(--ha-space-3);
	margin-bottom: var(--ha-space-5);
}
.ha-section-title { font-size: var(--ha-fs-2xl); margin: 0; flex: 1 1 auto; }
.ha-section-title a { color: inherit; text-decoration: none; }
.ha-section-title a:hover { color: var(--ha-gold-deep); }
.ha-section-desc { flex: 1 1 100%; order: 3; margin: 0; color: var(--ha-muted); font-size: var(--ha-fs-sm); max-width: 60ch; }
.ha-section-link {
	font-family: var(--ha-font-ui);
	font-size: var(--ha-fs-xs);
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	color: var(--ha-gold-deep);
	white-space: nowrap;
}
.ha-section-link::after { content: " →"; }
.ha-section-link:hover { color: var(--ha-ink); text-decoration: underline; }

.ha-grid { display: grid; gap: var(--ha-gap); grid-template-columns: 1fr; }
@media (min-width: 600px) { .ha-grid--3, .ha-grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1025px) { .ha-grid--3 { grid-template-columns: repeat(3, 1fr); } }

/* 5. Cards ----------------------------------------------------------------- */
.ha-card { position: relative; display: flex; flex-direction: column; gap: var(--ha-space-3); margin: 0; min-width: 0; }
.ha-card__media { display: block; position: relative; overflow: hidden; background: var(--ha-charcoal); aspect-ratio: 3 / 2; }
.ha-card__media img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.ha-card:hover .ha-card__media img { transform: scale(1.03); }
.ha-card__media--empty { display: grid; place-items: center; background: var(--ha-charcoal) linear-gradient(135deg, var(--ha-charcoal), var(--ha-ink)); }
.ha-card__monogram { font-family: var(--ha-font-display); font-weight: 700; font-size: clamp(2rem, 1rem + 4vw, 4rem); color: var(--ha-gold); letter-spacing: 0.05em; opacity: 0.85; }
.ha-card__title { font-size: var(--ha-fs-lg); line-height: var(--ha-lh-snug); margin: 0; }
.ha-card__title a { color: var(--ha-ink); text-decoration: none; background-image: linear-gradient(currentColor, currentColor); background-size: 0 1px; background-repeat: no-repeat; background-position: 0 100%; transition: background-size 0.3s ease; }
.ha-card__title a:hover, .ha-card__title a:focus { color: var(--ha-ink); background-size: 100% 1px; }
.ha-card__excerpt { margin: var(--ha-space-2) 0 0; color: var(--ha-muted); font-size: var(--ha-fs-sm); line-height: 1.55; }
.ha-card .ha-kicker { margin-bottom: var(--ha-space-1); }

/* Lead card */
.ha-card--lead .ha-card__title { font-size: var(--ha-fs-2xl); line-height: var(--ha-lh-tight); }
.ha-card--lead .ha-card__excerpt { font-size: var(--ha-fs-base); }

/* List card (thumb + text) */
.ha-card--list { flex-direction: row; align-items: flex-start; gap: var(--ha-space-4); padding-block: var(--ha-space-4); border-top: 1px solid var(--ha-rule); }
.ha-card--list .ha-card__media { flex: 0 0 96px; aspect-ratio: 1 / 1; order: 2; }
.ha-card--list .ha-card__body { flex: 1 1 auto; min-width: 0; }
.ha-card--list .ha-card__title { font-size: var(--ha-fs-lg); }
@media (min-width: 769px) { .ha-card--list .ha-card__media { flex-basis: 120px; } }

/* Compact (hero secondary, on black) */
.ha-card--compact { flex-direction: row; gap: var(--ha-space-3); align-items: flex-start; }
.ha-card--compact .ha-card__media { flex: 0 0 72px; aspect-ratio: 1 / 1; }
.ha-card--compact .ha-card__title { font-size: 1.0625rem; }

/* Numbered (trending) */
.ha-card--numbered { flex-direction: row; gap: var(--ha-space-4); align-items: baseline; }
.ha-card__number { font-family: var(--ha-font-display); font-size: 2rem; line-height: 1; color: var(--ha-gold-deep); font-weight: 700; flex: 0 0 2.5rem; }
.ha-card--numbered .ha-card__title { font-size: 1.0625rem; }

/* Dark (untold band) */
.ha-card--dark .ha-card__media { aspect-ratio: 4 / 5; }
.ha-card--dark .ha-card__title a, .ha-card--dark .ha-card__title a:hover { color: var(--ha-cream); }
.ha-card--dark .ha-kicker, .ha-card--dark .ha-kicker a { color: var(--ha-gold-light); }
.ha-card--dark .ha-card__excerpt, .ha-card--dark .ha-meta { color: var(--ha-muted-dark); }

/* Badge for reconstructions on cards */
.ha-badge {
	position: absolute; left: var(--ha-space-2); bottom: var(--ha-space-2);
	font-family: var(--ha-font-ui); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
	background: rgba(15, 14, 12, 0.85); color: var(--ha-gold-light); padding: 0.2em 0.55em; border: 1px solid var(--ha-gold);
}

/* 6. Homepage (v2 "Kente & Gold") ------------------------------------------ */

/* Section heads: eyebrow + big serif title, optional note/link on the right. */
.ha-sechead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--ha-space-3) var(--ha-space-6); margin-bottom: var(--ha-space-6); }
.ha-sechead__title { font-size: clamp(1.875rem, 1.4rem + 1.6vw, 2.5rem); line-height: 1.08; margin: 0; letter-spacing: -0.01em; }
.ha-sechead__eyebrow { display: block; font-family: var(--ha-font-ui); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ha-gold-deep); margin-bottom: var(--ha-space-2); }
.ha-sechead__note { margin: 0; max-width: 34ch; font-size: var(--ha-fs-sm); font-style: italic; color: var(--ha-muted); }
.ha-sechead__link { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); font-weight: 700; letter-spacing: 0.06em; color: var(--ha-gold-deep); text-decoration: none; border-bottom: 1px solid currentColor; padding-block: 0.3em; }
.ha-sechead__link::after { content: " →"; }
.ha-sechead__link:hover, .ha-sechead__link:focus { color: var(--ha-ink); }

/* Hero */
.ha-hero { background: var(--ha-ink); color: var(--ha-cream); padding-block: var(--ha-space-6) var(--ha-space-7); }
.ha-hero__grid { display: grid; gap: var(--ha-space-6); grid-template-columns: minmax(0, 1fr); align-items: center; }
.ha-hero__frame { position: relative; }
.ha-hero__figure { position: relative; margin: 0; aspect-ratio: 4 / 3.4; overflow: hidden; background: var(--ha-charcoal); outline: 3px solid var(--ha-ink); }
.ha-hero__figure img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ha-hero__figure .ha-label-reconstruction { top: var(--ha-space-3); left: var(--ha-space-3); }
.ha-hero__credit { position: absolute; left: var(--ha-space-3); bottom: var(--ha-space-3); max-width: calc(100% - 1.5rem); font-family: var(--ha-font-ui); font-size: 0.6875rem; line-height: 1.4; color: #E6DDCB; background: rgba(15, 14, 12, 0.78); padding: 0.3em 0.7em; }
.ha-hero__wordmark { position: absolute; left: 0; right: 0; bottom: var(--ha-space-5); text-align: center; font-family: var(--ha-font-ui); font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.3em; text-transform: uppercase; color: var(--ha-gold-light); }
.ha-hero__kicker, .ha-hero .ha-kicker, .ha-hero .ha-kicker a { color: var(--ha-gold); }
.ha-hero__kicker { font-size: var(--ha-fs-xs); }
.ha-hero__kicker .ha-kicker__sym { width: 22px; height: 22px; }
.ha-hero__title { font-size: clamp(2.375rem, 1.5rem + 3.4vw, 4rem); line-height: 1.02; letter-spacing: -0.02em; margin: var(--ha-space-4) 0 var(--ha-space-5); color: var(--ha-cream); }
.ha-hero__title a { color: var(--ha-cream); text-decoration: none; }
.ha-hero__title a:hover, .ha-hero__title a:focus { color: var(--ha-gold-light); }
.ha-hero__dek { font-size: clamp(1.0625rem, 1rem + 0.3vw, 1.25rem); line-height: 1.55; color: #DCD3C3; max-width: 36ch; margin: 0 0 var(--ha-space-4); }
.ha-hero .ha-meta, .ha-hero .ha-meta a { color: var(--ha-muted-dark); }
.ha-zigzag { display: block; width: 160px; height: 14px; margin: var(--ha-space-5) 0 var(--ha-space-5); background: var(--ha-zig) repeat-x; background-size: 28px 14px; }
.ha-hero__also { list-style: none; margin: var(--ha-space-7) 0 0; padding: var(--ha-space-6) 0 0; border-top: 1px solid var(--ha-stone); display: grid; gap: var(--ha-space-5); grid-template-columns: minmax(0, 1fr); }
.ha-hero__also li { margin: 0; }
.ha-hero__also .ha-card--compact { gap: var(--ha-space-4); align-items: center; }
.ha-hero__also .ha-card--compact .ha-card__media { flex: 0 0 88px; border: 1px solid var(--ha-stone); }
.ha-hero__also .ha-card__title { font-size: 1.1875rem; line-height: 1.2; }
.ha-hero .ha-card__title a, .ha-hero .ha-card__title a:hover { color: var(--ha-cream); }
@media (min-width: 769px) {
	.ha-hero__also { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ha-space-6); }
	.ha-hero__also .ha-card--compact .ha-card__media { flex-basis: 110px; }
}
@media (min-width: 1025px) {
	.ha-hero { padding-block: var(--ha-space-8) var(--ha-space-8); }
	.ha-hero__grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--ha-space-8); }
}

/* Proverb (site tagline, Settings > General): masthead line (desktop only) + footer line */
.ha-proverb { margin: 0; }
.ha-header-proverb { display: none; }
@media (min-width: 1025px) {
	.ha-header-proverb { display: flex; flex: 1 1 0; min-width: 0; justify-content: center; align-items: center; padding-inline: var(--ha-space-4); }
	.ha-proverb--header { max-width: 34rem; margin: 0; text-align: center; font-family: var(--ha-font-body); font-style: italic; font-weight: 400; font-size: 0.9375rem; line-height: 1.45; color: #D9D0C0; color: color-mix(in srgb, var(--ha-cream) 72%, var(--ha-muted-dark)); text-wrap: balance; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
	.ha-proverb--header .ha-proverb__cite { margin-left: 0.25em; font-family: var(--ha-font-ui); font-style: normal; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ha-gold-light); white-space: nowrap; }
	.ha-header-proverb + .ha-header-cta { margin-left: 0; }
}
.ha-footer__proverb { margin-top: var(--ha-space-7); padding-top: var(--ha-space-5); border-top: 1px solid var(--ha-stone); }
.ha-proverb--footer { font-family: var(--ha-font-body); font-style: italic; font-size: var(--ha-fs-sm); line-height: 1.5; color: var(--ha-muted-dark); }
.ha-proverb--footer .ha-proverb__cite { font-family: var(--ha-font-ui); font-style: normal; font-size: var(--ha-fs-xs); letter-spacing: 0.06em; color: var(--ha-gold); white-space: nowrap; }

/* Kente frame + placeholder art */
.ha-kente-frame { padding: 10px; background: var(--ha-kente); background-size: auto 28px; }
@media (min-width: 769px) { .ha-kente-frame { padding: 14px; } }
.ha-placeholder-art { display: grid; place-items: center; width: 100%; height: 100%; color: var(--ha-gold); background: radial-gradient(circle at 50% 45%, #2E2A25 0, var(--ha-charcoal) 45%, var(--ha-ink) 100%); }
.ha-placeholder-art__sym { width: 34%; height: auto; max-width: 120px; aspect-ratio: 1; opacity: 0.9; }
.ha-hero__figure .ha-placeholder-art__sym { width: 42%; max-width: 220px; }
.ha-card--compact .ha-placeholder-art__sym { width: 52%; }

/* Adinkra section tiles */
.ha-tiles { background: var(--ha-paper); padding-block: var(--ha-space-7) var(--ha-space-7); border-bottom: 1px solid var(--ha-rule); }
.ha-tiles__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ha-space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ha-tiles__grid > li { margin: 0; display: flex; }
.ha-tiles__grid > li:last-child:nth-child(odd) { grid-column: span 2; }
.ha-tile { flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--ha-space-1); padding: var(--ha-space-5) var(--ha-space-3) var(--ha-space-5); background: var(--ha-ink); color: var(--ha-cream); text-decoration: none; border-bottom: 6px solid var(--ha-gold); transition: transform 0.2s ease, border-color 0.2s ease; }
.ha-tiles__grid > li:nth-child(even) .ha-tile { background: var(--ha-charcoal); }
.ha-tile:hover, .ha-tile:focus { color: var(--ha-cream); border-bottom-color: var(--ha-gold-light); transform: translateY(-2px); }
.ha-tile:focus-visible { outline: 3px solid var(--ha-gold-deep); outline-offset: 3px; }
.ha-tile__sym { width: 50px; height: 50px; color: var(--ha-gold); margin-bottom: var(--ha-space-3); }
.ha-tile__name { font-family: var(--ha-font-display); font-weight: 700; font-size: 1.125rem; line-height: 1.2; }
.ha-tile__symbol { font-style: italic; font-size: 0.8125rem; color: var(--ha-muted-dark); }
.ha-tile__meaning { font-family: var(--ha-font-ui); font-size: 0.625rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ha-gold); margin-top: var(--ha-space-1); line-height: 1.4; }
@media (min-width: 600px) {
	.ha-tiles__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.ha-tiles__grid > li:last-child:nth-child(odd) { grid-column: auto; }
}
@media (min-width: 1100px) {
	.ha-tiles { padding-block: var(--ha-space-8) var(--ha-space-7); }
	.ha-tiles__grid { grid-template-columns: repeat(var(--ha-tiles, 7), minmax(0, 1fr)); gap: var(--ha-space-4); }
	.ha-tile__sym { width: 58px; height: 58px; }
}

/* Latest stories */
.ha-latest { padding-block: var(--ha-space-7) var(--ha-space-7); }
.ha-latest__grid { display: grid; gap: var(--ha-space-6) var(--ha-space-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) {
	.ha-latest__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ha-latest__grid--lead > .ha-card--lead { grid-column: 1 / -1; }
}
@media (min-width: 1025px) {
	.ha-latest { padding-block: 4.5rem; }
	.ha-latest__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ha-space-7) var(--ha-space-6); }
	.ha-latest__grid--lead > .ha-card--lead { grid-column: span 2; grid-row: span 2; }
	.ha-latest__grid--lead > .ha-card--lead .ha-card__media { aspect-ratio: 16 / 10; }
}
.ha-latest .ha-card__title { font-size: clamp(1.25rem, 1.1rem + 0.5vw, 1.4375rem); line-height: 1.22; }
.ha-latest .ha-card--lead .ha-card__title { font-size: clamp(1.625rem, 1.2rem + 1.4vw, 2.25rem); line-height: 1.1; }
.ha-card--placeholder .ha-card__title { color: var(--ha-muted); font-style: italic; }

/* Kente strip under card images */
.ha-card--standard .ha-card__media::after,
.ha-card--lead .ha-card__media::after,
.ha-untold__media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 6px; background: var(--ha-kente); background-size: auto 6px; pointer-events: none; }
.ha-card--standard .ha-badge, .ha-card--lead .ha-badge, .ha-untold__media .ha-badge { bottom: 14px; }

/* Trending row */
.ha-trending { margin-top: var(--ha-space-7); border-top: 2px solid var(--ha-ink); padding-top: var(--ha-space-4); }
.ha-trending__title { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ha-gold-deep); margin: 0 0 var(--ha-space-4); }
.ha-trending__list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ha-space-4) var(--ha-space-6); grid-template-columns: minmax(0, 1fr); }
.ha-trending__list li { margin: 0; padding: 0 0 var(--ha-space-4); border-bottom: 1px solid var(--ha-rule); }
@media (min-width: 769px) {
	.ha-trending__list { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
	.ha-trending__list li { border-bottom: 0; padding: 0; }
}

/* Feature band */
.ha-feature { background: var(--ha-ink); color: var(--ha-cream); }
.ha-feature__grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.ha-feature__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ha-charcoal); margin: 0; }
.ha-feature__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ha-feature__media .ha-label-reconstruction { top: var(--ha-space-3); left: var(--ha-space-3); }
.ha-feature__credit { position: absolute; left: var(--ha-space-3); bottom: var(--ha-space-3); max-width: calc(100% - 1.5rem); font-family: var(--ha-font-ui); font-size: 0.6875rem; color: #E6DDCB; background: rgba(15, 14, 12, 0.78); padding: 0.3em 0.7em; }
.ha-feature__media--empty { display: grid; place-items: center; }
.ha-feature__kente { position: absolute; inset: 0; background: var(--ha-kente); background-size: auto 72px; opacity: 0.9; }
.ha-feature__media--empty .ha-placeholder-art { position: relative; width: 46%; height: auto; aspect-ratio: 1; border: 6px solid var(--ha-ink); }
.ha-feature__media--empty .ha-placeholder-art__sym { width: 56%; }
.ha-feature__body { padding: var(--ha-space-6) var(--ha-gutter) var(--ha-space-7); }
.ha-feature__kicker, .ha-feature .ha-kicker, .ha-feature .ha-kicker a { color: var(--ha-gold); }
.ha-feature__title { font-size: clamp(2rem, 1.4rem + 2vw, 2.875rem); line-height: 1.05; color: var(--ha-cream); margin: var(--ha-space-3) 0 var(--ha-space-4); }
.ha-feature__title a { color: inherit; text-decoration: none; }
.ha-feature__intro { color: #D6CCBA; font-size: var(--ha-fs-base); max-width: 46ch; margin: 0 0 var(--ha-space-5); }
.ha-feature__list { list-style: none; margin: 0; padding: 0; counter-reset: ha-feat; }
.ha-feature__list li { counter-increment: ha-feat; display: grid; grid-template-columns: 54px minmax(0, 1fr); column-gap: var(--ha-space-3); padding: var(--ha-space-4) 0; border-top: 1px solid var(--ha-stone); margin: 0; }
.ha-feature__list li::before { content: counter(ha-feat, decimal-leading-zero); grid-row: span 2; font-family: var(--ha-font-display); font-size: 1.875rem; font-weight: 700; line-height: 1; color: var(--ha-gold); }
.ha-feature__list li > * { grid-column: 2; }
.ha-feature__item-title { font-size: 1.25rem; line-height: 1.25; margin: 0; color: var(--ha-cream); }
.ha-feature__item-title a { color: var(--ha-cream); text-decoration: none; }
.ha-feature__item-title a:hover, .ha-feature__item-title a:focus { color: var(--ha-gold-light); text-decoration: underline; }
.ha-feature__item-meta { font-family: var(--ha-font-ui); font-size: 0.75rem; color: var(--ha-muted-dark); margin: var(--ha-space-1) 0 0; }
.ha-feature__more { margin: var(--ha-space-5) 0 0; }
.ha-feature .ha-admin-hint { margin-top: var(--ha-space-5); }
@media (min-width: 1025px) {
	.ha-feature__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 560px; }
	.ha-feature__media { aspect-ratio: auto; min-height: 100%; }
	.ha-feature__media img { position: absolute; inset: 0; }
	.ha-feature__body { padding: var(--ha-space-8) var(--ha-space-8) var(--ha-space-8) var(--ha-space-8); max-width: 640px; box-sizing: border-box; align-self: center; }
}

/* Untold Stories + On this day */
.ha-two { display: grid; gap: var(--ha-space-7); grid-template-columns: minmax(0, 1fr); padding-block: var(--ha-space-7); }
@media (min-width: 1025px) { .ha-two { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: var(--ha-space-8); padding-block: 5rem; align-items: start; } }
.ha-untold { position: relative; min-width: 0; }
.ha-untold > * { position: relative; z-index: 1; }
.ha-untold > .ha-untold__wm { position: absolute; z-index: 0; right: -10px; top: -30px; width: 160px; height: 160px; color: var(--ha-rule); opacity: 0.7; pointer-events: none; }
@media (min-width: 769px) { .ha-untold > .ha-untold__wm { width: 220px; height: 220px; } }
.ha-untold__feat { display: grid; gap: var(--ha-space-4) var(--ha-space-6); grid-template-columns: minmax(0, 1fr); margin: 0 0 var(--ha-space-5); }
@media (min-width: 600px) { .ha-untold__feat { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; } }
.ha-untold__media { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ha-charcoal); }
.ha-untold__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ha-untold__feat-title { font-size: clamp(1.5rem, 1.2rem + 1vw, 1.75rem); line-height: 1.12; margin: var(--ha-space-2) 0 var(--ha-space-3); }
.ha-untold__feat-title a, .ha-untold__item-title a { color: var(--ha-ink); text-decoration: none; }
.ha-untold__feat-title a:hover, .ha-untold__item-title a:hover { text-decoration: underline; color: var(--ha-ink); }
.ha-untold__excerpt { color: var(--ha-muted); font-size: var(--ha-fs-sm); margin: 0; }
.ha-untold__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0 var(--ha-space-6); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 600px) { .ha-untold__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ha-untold__list li { margin: 0; padding: var(--ha-space-4) 0; border-top: 1px solid var(--ha-rule); }
.ha-untold__item-title { font-size: 1.125rem; line-height: 1.25; margin: 0 0 var(--ha-space-1); }
.ha-untold__item-text { color: var(--ha-muted); font-size: 0.90625rem; margin: 0; line-height: 1.5; }
.ha-untold__empty { border-top: 2px solid var(--ha-ink); padding-top: var(--ha-space-4); max-width: 52ch; }
.ha-untold__intro { font-size: var(--ha-fs-lg); color: var(--ha-ink); margin: 0 0 var(--ha-space-3); }
.ha-untold__soon { font-style: italic; color: var(--ha-muted); margin: 0; }

.ha-otd { background: var(--ha-ink); color: var(--ha-cream); padding: var(--ha-space-6) var(--ha-space-5); border-top: 8px solid var(--ha-gold); min-width: 0; }
@media (min-width: 769px) { .ha-otd { padding: 2.125rem; } }
.ha-otd__label { color: var(--ha-gold); margin: 0 0 var(--ha-space-4); }
.ha-otd__day { display: flex; align-items: center; gap: var(--ha-space-4); margin: 0 0 var(--ha-space-4); }
.ha-otd__day b { font-family: var(--ha-font-display); font-size: 4.375rem; font-weight: 700; line-height: 0.9; color: var(--ha-gold); }
.ha-otd__day span { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ha-muted-dark); line-height: 1.5; }
.ha-otd__content h2, .ha-otd__content h3, .ha-otd__content h4, .ha-otd__title { color: var(--ha-cream); font-size: clamp(1.375rem, 1.2rem + 0.6vw, 1.6875rem); line-height: 1.2; margin: 0 0 var(--ha-space-3); }
.ha-otd__content p { color: #CFC5B3; font-size: 1rem; margin: 0 0 var(--ha-space-4); }
.ha-otd__content a { color: var(--ha-gold-light); }
.ha-otd__content a:hover { color: var(--ha-cream); }
.ha-otd__content ul, .ha-otd__content ol { list-style: none; margin: var(--ha-space-4) 0 0; padding: 0; border-top: 1px solid var(--ha-stone); }
.ha-otd__content li { margin: 0; padding: var(--ha-space-3) 0; border-bottom: 1px solid var(--ha-stone); font-size: 0.9375rem; line-height: 1.45; color: #E6DDCB; }
.ha-otd__content li:has(> strong:first-child) { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: var(--ha-space-3); }
.ha-otd__content li strong { font-family: var(--ha-font-ui); font-size: 0.75rem; font-weight: 700; letter-spacing: 0.04em; color: var(--ha-gold); padding-top: 0.15em; }
.ha-otd__widget + .ha-otd__widget { margin-top: var(--ha-space-5); }
.ha-otd__empty { color: #CFC5B3; font-style: italic; margin: 0; }
.ha-otd :focus-visible { outline-color: var(--ha-gold-light); }

/* 7. Newsletter ------------------------------------------------------------ */
.ha-newsletter { padding-block: var(--ha-section); }
.ha-newsletter--band { background: var(--ha-paper); border-block: 1px solid var(--ha-rule); margin-top: var(--ha-section); }
.ha-newsletter--inline { padding-block: var(--ha-space-7); }
.ha-newsletter--inline .ha-newsletter__inner { max-width: calc(var(--ha-wide) + 2 * var(--ha-gutter)); }
.ha-newsletter--inline .ha-newsletter__inner > * { position: relative; }
.ha-newsletter--compact { background: var(--ha-charcoal); color: var(--ha-cream); padding-block: var(--ha-space-7); }
.ha-newsletter--compact .ha-newsletter__title { color: var(--ha-cream); }
.ha-newsletter--compact .ha-newsletter__text, .ha-newsletter--compact .ha-newsletter__note { color: var(--ha-muted-dark); }
.ha-newsletter--compact .ha-eyebrow { color: var(--ha-gold); }
.ha-newsletter__inner { display: grid; gap: var(--ha-space-5); grid-template-columns: 1fr; align-items: center; }
.ha-newsletter--inline .ha-newsletter__inner { background: var(--ha-ink); color: var(--ha-cream); padding: var(--ha-space-6) var(--ha-gutter); border-top: 4px solid var(--ha-gold); }
.ha-newsletter--inline .ha-newsletter__title { color: var(--ha-cream); }
.ha-newsletter--inline .ha-newsletter__text, .ha-newsletter--inline .ha-newsletter__note { color: var(--ha-muted-dark); }
.ha-newsletter--inline .ha-eyebrow { color: var(--ha-gold); }
.ha-newsletter__title { font-size: var(--ha-fs-2xl); margin: 0 0 var(--ha-space-3); }
.ha-newsletter__text { margin: 0; max-width: 52ch; }
.ha-newsletter__note { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); color: var(--ha-muted); margin: var(--ha-space-3) 0 0; }
.ha-newsletter__widget-title { font-family: var(--ha-font-ui); font-weight: 700; margin: 0 0 var(--ha-space-2); }
@media (min-width: 769px) { .ha-newsletter__inner { grid-template-columns: 1fr 1fr; gap: var(--ha-space-7); } }

/* Normalise common provider form markup (Mailchimp, MailerLite, Kit, Beehiiv iframes). */
.ha-newsletter__form form { margin: 0; }
.ha-newsletter__form input[type="email"],
.ha-newsletter__form input[type="text"] {
	width: 100%; min-height: 48px; box-sizing: border-box; font: inherit; font-family: var(--ha-font-ui); font-size: 1rem;
	padding: 0.75rem 1rem; background: var(--ha-paper); color: var(--ha-ink); border: 1px solid var(--ha-rule-strong); border-radius: var(--ha-radius); margin: 0 0 var(--ha-space-3);
}
.ha-newsletter__form button,
.ha-newsletter__form input[type="submit"] {
	min-height: 48px; padding: 0.75rem 1.5rem; font-family: var(--ha-font-ui); font-weight: 700; font-size: 0.9375rem; letter-spacing: 0.06em; text-transform: uppercase;
	background: var(--ha-gold); color: var(--ha-ink); border: 0; border-radius: var(--ha-radius); cursor: pointer; width: 100%;
}
.ha-newsletter__form button:hover, .ha-newsletter__form input[type="submit"]:hover { background: var(--ha-gold-light); color: var(--ha-ink); }
.ha-newsletter--band .ha-newsletter__form button, .ha-newsletter--band .ha-newsletter__form input[type="submit"] { background: var(--ha-ink); color: var(--ha-cream); }
.ha-newsletter--band .ha-newsletter__form button:hover, .ha-newsletter--band .ha-newsletter__form input[type="submit"]:hover { background: var(--ha-gold-deep); color: var(--ha-cream); }
.ha-newsletter__form iframe { width: 100%; max-width: 100%; border: 0; }
.ha-newsletter__form label { font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); }
@media (min-width: 480px) {
	.ha-newsletter__form .ha-inline-form { display: flex; gap: var(--ha-space-2); }
	.ha-newsletter__form .ha-inline-form input[type="email"] { margin: 0; flex: 1; }
	.ha-newsletter__form .ha-inline-form button { width: auto; }
}
.ha-newsletter--placeholder { padding-block: var(--ha-space-5); }

/* 8. Article & pages ------------------------------------------------------- */
.ha-article__header, .ha-page__header { padding-block: var(--ha-space-6) var(--ha-space-5); }
.ha-article__title, .ha-page__title { font-size: var(--ha-fs-3xl); line-height: 1.06; letter-spacing: -0.02em; margin: 0 0 var(--ha-space-4); }
.ha-article__standfirst { font-size: var(--ha-fs-lg); line-height: 1.5; color: var(--ha-muted); margin: 0 0 var(--ha-space-4); font-style: italic; }
.ha-article__header .ha-meta { font-size: var(--ha-fs-sm); }
.ha-article__hero { margin-bottom: var(--ha-space-5); }
@media (max-width: 768px) { .ha-article__hero { padding-inline: 0; } .ha-article__hero .ha-figure__caption { padding-inline: var(--ha-gutter); } }

.ha-prose { font-size: var(--ha-fs-prose); line-height: var(--ha-lh-body); max-width: var(--ha-text); }
.ha-prose--wide { max-width: none; }
.ha-prose--wide > *:not(.alignwide):not(.alignfull) { max-width: calc(var(--ha-text) + 2 * var(--ha-gutter)); margin-inline: auto; padding-inline: var(--ha-gutter); box-sizing: border-box; }
.ha-prose--wide > .alignwide { max-width: calc(var(--ha-max) + 2 * var(--ha-gutter)); margin-inline: auto; padding-inline: var(--ha-gutter); box-sizing: border-box; }
.ha-prose > * + * { margin-top: 1.2em; }
.ha-prose p { margin-bottom: 0; }
.ha-prose h2 { font-size: var(--ha-fs-2xl); margin-top: 1.8em; margin-bottom: 0; }
.ha-prose h3 { font-size: var(--ha-fs-xl); margin-top: 1.6em; margin-bottom: 0; }
.ha-prose h4 { font-size: var(--ha-fs-lg); margin-top: 1.4em; margin-bottom: 0; }
.ha-prose ul, .ha-prose ol { margin-left: 1.25em; padding-left: 0; }
.ha-prose li + li { margin-top: 0.4em; }
.ha-prose a { color: var(--ha-gold-deep); text-decoration: underline; }
.ha-prose a:hover { color: var(--ha-ink); }
.ha-prose blockquote:not(.is-style-ha-pull) { border-left: 3px solid var(--ha-gold); margin-left: 0; padding: 0 0 0 var(--ha-space-5); font-style: italic; color: var(--ha-ink); }
.ha-prose blockquote cite { display: block; margin-top: var(--ha-space-2); font-family: var(--ha-font-ui); font-style: normal; font-size: var(--ha-fs-sm); color: var(--ha-muted); }
.ha-prose hr, .ha-prose .wp-block-separator { border: 0; border-top: 1px solid var(--ha-rule); margin-block: 2.5em; max-width: 8rem; margin-inline: auto; }
.ha-prose .wp-block-separator.is-style-dots::before { color: var(--ha-gold); }
.ha-prose table { width: 100%; border-collapse: collapse; font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); }
.ha-prose th, .ha-prose td { border-bottom: 1px solid var(--ha-rule); padding: 0.6em 0.5em; text-align: left; }
.ha-prose .alignwide, .ha-prose .alignfull { max-width: none; }
@media (min-width: 1025px) {
	.ha-article .ha-prose .alignwide { margin-inline: calc((var(--ha-text) - var(--ha-wide)) / 2); max-width: var(--ha-wide); width: var(--ha-wide); }
}
.ha-prose .alignfull { margin-inline: calc(50% - 50vw); width: 100vw; max-width: 100vw; }
.ha-prose .wp-block-image figcaption, .ha-prose .wp-element-caption { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); color: var(--ha-muted); margin-top: var(--ha-space-2); line-height: 1.5; text-align: left; }
.ha-page__updated { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); color: var(--ha-muted); margin-top: var(--ha-space-6); }
.ha-page .ha-prose { padding-bottom: var(--ha-space-8); }

/* Breadcrumbs (fallback + Rank Math markup) */
.ha-breadcrumbs { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); color: var(--ha-muted); margin: 0 0 var(--ha-space-5); }
.ha-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25em; }
.ha-breadcrumbs li { margin: 0; }
.ha-breadcrumbs li + li::before { content: "›"; margin-right: 0.35em; color: var(--ha-gold-deep); }
.ha-breadcrumbs a { color: var(--ha-muted); text-decoration: none; }
.ha-breadcrumbs a:hover { color: var(--ha-ink); text-decoration: underline; }
.ha-breadcrumbs .rank-math-breadcrumb p { margin: 0; }
.ha-breadcrumbs .rank-math-breadcrumb .separator { color: var(--ha-gold-deep); margin: 0 0.3em; }
.ha-breadcrumbs [aria-current="page"], .ha-breadcrumbs .last { color: var(--ha-ink); display: inline-block; max-width: 40ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }

/* Drop cap & standfirst block styles */
.ha-prose > p.is-style-ha-dropcap::first-letter,
.is-style-ha-dropcap::first-letter { float: left; font-family: var(--ha-font-display); font-weight: 700; font-size: 4.2em; line-height: 0.82; margin: 0.06em 0.1em 0 0; color: var(--ha-gold-deep); }
.is-style-ha-standfirst { font-size: var(--ha-fs-lg); line-height: 1.5; color: var(--ha-muted); font-style: italic; }

/* Pull quote */
.wp-block-quote.is-style-ha-pull,
.ha-prose .wp-block-pullquote {
	border: 0; border-block: 1px solid var(--ha-gold); margin-block: 2em; padding: var(--ha-space-5) 0; text-align: left;
}
.wp-block-quote.is-style-ha-pull p,
.ha-prose .wp-block-pullquote p { font-family: var(--ha-font-display); font-size: var(--ha-fs-2xl); line-height: 1.2; font-weight: 600; color: var(--ha-ink); font-style: normal; }
.wp-block-quote.is-style-ha-pull p::before { content: "“"; color: var(--ha-gold); margin-right: 0.05em; }
.wp-block-quote.is-style-ha-pull cite,
.ha-prose .wp-block-pullquote cite { font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); color: var(--ha-muted); font-style: normal; text-transform: none; }

/* Fact box & dark band */
.wp-block-group.is-style-ha-fact-box { background: var(--ha-paper); border-top: 4px solid var(--ha-gold); padding: var(--ha-space-5); font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); line-height: 1.55; }
.wp-block-group.is-style-ha-fact-box h2, .wp-block-group.is-style-ha-fact-box h3 { font-size: var(--ha-fs-lg); margin-top: 0; }
.wp-block-group.is-style-ha-dark-band { background: var(--ha-ink); color: var(--ha-cream); padding: var(--ha-space-7) var(--ha-gutter); }
.wp-block-group.is-style-ha-dark-band h2, .wp-block-group.is-style-ha-dark-band h3 { color: var(--ha-cream); }
.wp-block-group.is-style-ha-dark-band a { color: var(--ha-gold-light); }

/* 9. Figures, captions, reconstruction labels ------------------------------ */
.ha-figure { margin: 0; }
.ha-figure__frame { position: relative; background: var(--ha-charcoal); aspect-ratio: 16 / 9; overflow: hidden; }
.ha-figure__frame img { display: block; width: 100%; height: 100%; object-fit: cover; }
.ha-figure__caption, .ha-credit { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); line-height: 1.5; color: var(--ha-muted); }
.ha-figure__caption { margin-top: var(--ha-space-2); display: flex; flex-wrap: wrap; gap: 0.25em 0.75em; }
.ha-figure__text { color: var(--ha-ink); }
.ha-credit { text-transform: none; letter-spacing: 0.01em; }

.ha-label-reconstruction,
.wp-block-image.is-style-ha-reconstruction::before {
	position: absolute; left: var(--ha-space-3); top: var(--ha-space-3); z-index: 2;
	font-family: var(--ha-font-ui); font-size: 0.75rem; font-weight: 700; line-height: 1.3; letter-spacing: 0.04em;
	background: rgba(15, 14, 12, 0.88); color: var(--ha-gold-light); border: 1px solid var(--ha-gold); padding: 0.35em 0.7em; max-width: calc(100% - 1.5rem);
}
.wp-block-image.is-style-ha-reconstruction { position: relative; }
.wp-block-image.is-style-ha-reconstruction::before { content: "Illustration / reconstruction — not an archival photograph"; }
.wp-block-image.is-style-ha-reconstruction img { outline: 1px dashed var(--ha-gold); outline-offset: -1px; }
.wp-block-image.is-style-ha-archival img { filter: none; box-shadow: 0 0 0 1px var(--ha-rule); }
.wp-block-image.is-style-ha-archival figcaption::before { content: "Archival photograph · "; font-weight: 700; color: var(--ha-gold-deep); }

/* 10. Share, author, related, corrections, tags ---------------------------- */
.ha-share { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ha-space-2) var(--ha-space-4); margin-block: var(--ha-space-5); }
.ha-share--top { border-block: 1px solid var(--ha-rule); padding-block: var(--ha-space-3); margin-top: 0; }
.ha-share--bottom { margin-top: var(--ha-space-7); }
.ha-share__label { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; margin: 0; color: var(--ha-muted); }
.ha-share__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--ha-space-2); }
.ha-share__list li { margin: 0; }
.ha-share__link {
	display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.9rem; box-sizing: border-box;
	font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); font-weight: 600; color: var(--ha-ink); background: transparent;
	border: 1px solid var(--ha-rule-strong); border-radius: 999px; text-decoration: none; cursor: pointer; line-height: 1;
}
.ha-share__link:hover, .ha-share__link:focus { background: var(--ha-ink); border-color: var(--ha-ink); color: var(--ha-cream); }
.ha-share__copy.is-copied { background: var(--ha-gold); border-color: var(--ha-gold); color: var(--ha-ink); }
.ha-share__copy[hidden] { display: none; }

.ha-author { display: flex; gap: var(--ha-space-5); align-items: flex-start; padding: var(--ha-space-5); background: var(--ha-paper); border-top: 2px solid var(--ha-ink); margin-block: var(--ha-space-6) var(--ha-space-7); }
.ha-author__avatar { flex: 0 0 auto; }
.ha-author__avatar img { border-radius: 50%; width: 72px; height: 72px; display: block; filter: grayscale(0.15); }
.ha-author__name { font-family: var(--ha-font-display); font-size: var(--ha-fs-xl); font-weight: 700; margin: 0 0 var(--ha-space-2); line-height: 1.2; }
.ha-author__name a { color: var(--ha-ink); text-decoration: none; }
.ha-author__bio { font-size: var(--ha-fs-sm); margin: 0 0 var(--ha-space-2); color: var(--ha-ink); }
.ha-author__links { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); margin: 0; display: flex; gap: 0.5em; }
@media (min-width: 600px) { .ha-author__avatar img { width: 96px; height: 96px; } }

.ha-related { padding-block: var(--ha-section); background: var(--ha-paper); border-top: 1px solid var(--ha-rule); }

.ha-correction { margin-top: var(--ha-space-7); padding: var(--ha-space-4) var(--ha-space-5); border-left: 4px solid var(--ha-gold-deep); background: var(--ha-paper); font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); }
.ha-correction__title { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); text-transform: uppercase; letter-spacing: 0.12em; margin: 0 0 var(--ha-space-2); color: var(--ha-gold-deep); }
.ha-correction p { margin: 0 0 0.5em; }
.ha-standards { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); color: var(--ha-muted); margin-top: var(--ha-space-6); }

.ha-tags, .ha-pill-list { list-style: none; margin: var(--ha-space-5) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--ha-space-2); }
.ha-tags li, .ha-pill-list li { margin: 0; }
.ha-pill { display: inline-flex; align-items: center; min-height: 36px; padding: 0 0.85rem; font-family: var(--ha-font-ui); font-size: var(--ha-fs-sm); color: var(--ha-ink); background: var(--ha-paper); border: 1px solid var(--ha-rule); border-radius: 999px; text-decoration: none; }
.ha-pill:hover, .ha-pill:focus { background: var(--ha-ink); color: var(--ha-cream); border-color: var(--ha-ink); }

.ha-comments { padding-block: var(--ha-space-7); }

/* 11. Archives, search, 404, pagination, empty ----------------------------- */
.ha-archive-head { background: var(--ha-ink); color: var(--ha-cream); padding-block: var(--ha-space-6) var(--ha-space-7); border-bottom: 1px solid var(--ha-gold); }
.ha-archive-head .ha-breadcrumbs, .ha-archive-head .ha-breadcrumbs a { color: var(--ha-muted-dark); }
.ha-archive-head .ha-breadcrumbs [aria-current="page"], .ha-archive-head .ha-breadcrumbs .last { color: var(--ha-cream); }
.ha-archive-head .ha-breadcrumbs li + li::before { color: var(--ha-gold); }
.ha-archive-head .ha-eyebrow { color: var(--ha-gold); }
.ha-archive-head__title { font-size: var(--ha-fs-display); color: var(--ha-cream); margin: 0; line-height: 1.02; letter-spacing: -0.02em; }
.ha-archive-head__desc { color: #E6DDCB; font-size: var(--ha-fs-lg); max-width: 60ch; margin-top: var(--ha-space-4); }
.ha-archive-head__desc p { margin: 0; }
.ha-archive-head__count { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); color: var(--ha-muted-dark); letter-spacing: 0.08em; text-transform: uppercase; margin: var(--ha-space-4) 0 0; }
.ha-archive { padding-block: var(--ha-space-7) var(--ha-section); }
.ha-archive__lead { margin-bottom: var(--ha-space-7); padding-bottom: var(--ha-space-7); border-bottom: 1px solid var(--ha-rule); }
@media (min-width: 1025px) {
	.ha-archive__lead .ha-card--lead { display: grid; grid-template-columns: 7fr 5fr; gap: var(--ha-space-7); align-items: center; }
	.ha-archive__lead .ha-card--lead .ha-card__media { aspect-ratio: 16 / 9; }
	.ha-archive__lead .ha-card--lead .ha-card__title { font-size: var(--ha-fs-3xl); }
}
.ha-archive__grid .ha-card__title { font-size: var(--ha-fs-xl); }

.ha-search-form { margin-top: var(--ha-space-5); max-width: 36rem; }
.ha-search-form form { display: flex; gap: var(--ha-space-2); }
.ha-search-form label { flex: 1; margin: 0; }
.ha-search-form input[type="search"] { width: 100%; min-height: 48px; font-family: var(--ha-font-ui); font-size: 1rem; padding: 0 1rem; background: var(--ha-paper); color: var(--ha-ink); border: 1px solid var(--ha-rule-strong); box-sizing: border-box; }
.ha-search-form .search-submit { min-height: 48px; }
.ha-search-results { padding-block: var(--ha-space-6) var(--ha-section); }
.ha-list > .ha-card--list:first-child { border-top: 0; }
.ha-tips { font-size: var(--ha-fs-sm); color: var(--ha-muted); }

.ha-404 { padding-block: var(--ha-section) var(--ha-space-7); text-align: left; }
.ha-404__code { font-family: var(--ha-font-display); font-weight: 800; font-size: clamp(5rem, 3rem + 10vw, 10rem); line-height: 0.9; color: var(--ha-gold); margin: 0; letter-spacing: -0.03em; }
.ha-404__title { font-size: var(--ha-fs-3xl); margin: var(--ha-space-4) 0; line-height: 1.05; }
.ha-404__text { font-size: var(--ha-fs-lg); color: var(--ha-muted); }
.ha-404__links { display: flex; flex-wrap: wrap; gap: var(--ha-space-3); margin-top: var(--ha-space-6); }
.ha-latest-strip { padding-bottom: var(--ha-section); }

.ha-pagination, .navigation.pagination { margin-top: var(--ha-space-7); font-family: var(--ha-font-ui); }
.ha-pagination .nav-links, .navigation.pagination .nav-links { display: flex; flex-wrap: wrap; gap: var(--ha-space-2); justify-content: center; }
.ha-pagination .page-numbers, .navigation.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 0.75rem; box-sizing: border-box; border: 1px solid var(--ha-rule-strong); color: var(--ha-ink); text-decoration: none; font-size: var(--ha-fs-sm); }
.ha-pagination .page-numbers.current, .navigation.pagination .page-numbers.current { background: var(--ha-ink); color: var(--ha-cream); border-color: var(--ha-ink); }
.ha-pagination a.page-numbers:hover, .navigation.pagination a.page-numbers:hover { background: var(--ha-gold); border-color: var(--ha-gold); color: var(--ha-ink); }
.ha-pagination .dots { border: 0; }

.ha-empty { padding-block: var(--ha-section); }
.ha-empty__inner { max-width: calc(46rem + 2 * var(--ha-gutter)); }
.ha-empty__title { font-size: var(--ha-fs-2xl); margin: 0 0 var(--ha-space-4); }
.ha-admin-hint { font-family: var(--ha-font-ui); font-size: var(--ha-fs-xs); background: #FFF8E5; color: #4A3A12; border: 1px dashed var(--ha-gold-deep); padding: var(--ha-space-3) var(--ha-space-4); margin: var(--ha-space-4) 0; }
.ha-section--empty, .ha-untold--empty { padding-block: var(--ha-space-4) 0; }

/* 12. Forms & buttons ------------------------------------------------------ */
.ha-button,
.ha-prose .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 0.4em; min-height: 48px; padding: 0 1.5rem; box-sizing: border-box;
	font-family: var(--ha-font-ui); font-weight: 700; font-size: 0.875rem; letter-spacing: 0.08em; text-transform: uppercase; text-decoration: none;
	background: var(--ha-ink); color: var(--ha-cream); border: 1px solid var(--ha-ink); border-radius: var(--ha-radius); transition: background-color 0.2s ease, color 0.2s ease;
}
.ha-button:hover, .ha-button:focus, .ha-prose .wp-block-button__link:hover { background: var(--ha-gold-deep); border-color: var(--ha-gold-deep); color: var(--ha-cream); }
.ha-button--gold { background: var(--ha-gold); border-color: var(--ha-gold); color: var(--ha-ink); }
.ha-button--gold:hover, .ha-button--gold:focus { background: var(--ha-gold-light); border-color: var(--ha-gold-light); color: var(--ha-ink); }
.ha-button--outline-gold { background: transparent; border-color: var(--ha-gold); color: var(--ha-gold-light); }
.ha-button--outline-gold:hover, .ha-button--outline-gold:focus { background: var(--ha-gold); color: var(--ha-ink); }
.ha-button--ghost { background: transparent; color: var(--ha-ink); border-color: var(--ha-rule-strong); }
.ha-button--ghost:hover, .ha-button--ghost:focus { background: var(--ha-ink); color: var(--ha-cream); }

button, html input[type="button"], input[type="reset"], input[type="submit"], a.button { font-family: var(--ha-font-ui); font-weight: 700; letter-spacing: 0.04em; }
input[type="text"], input[type="email"], input[type="url"], input[type="password"], input[type="search"], input[type="tel"], textarea, select { font-family: var(--ha-font-ui); border-radius: var(--ha-radius); }

/* 15. Kente & Gold (v2): header, kente bands, symbols, footer, archive ----- */
:root {
	/* Kente-only accent colours (gold #C9A227, green #1F6B3A, red #A8281E) live
	   inside this pattern and nowhere else in the theme. */
	--ha-kente: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22160%22%20height%3D%2248%22%20viewBox%3D%220%200%20160%2048%22%20shape-rendering%3D%22crispEdges%22%3E%0A%3Crect%20width%3D%2240%22%20height%3D%2248%22%20fill%3D%22%23C9A227%22/%3E%3Crect%20y%3D%224%22%20width%3D%2240%22%20height%3D%223%22%20fill%3D%22%230F0E0C%22/%3E%3Crect%20y%3D%2210%22%20width%3D%2240%22%20height%3D%223%22%20fill%3D%22%230F0E0C%22/%3E%3Crect%20y%3D%2221%22%20width%3D%2240%22%20height%3D%226%22%20fill%3D%22%231F6B3A%22/%3E%3Crect%20y%3D%2235%22%20width%3D%2240%22%20height%3D%223%22%20fill%3D%22%230F0E0C%22/%3E%3Crect%20y%3D%2241%22%20width%3D%2240%22%20height%3D%223%22%20fill%3D%22%230F0E0C%22/%3E%0A%3Crect%20x%3D%2240%22%20width%3D%2240%22%20height%3D%2248%22%20fill%3D%22%231F6B3A%22/%3E%3Crect%20x%3D%2244%22%20width%3D%224%22%20height%3D%2248%22%20fill%3D%22%23C9A227%22/%3E%3Crect%20x%3D%2252%22%20width%3D%222%22%20height%3D%2248%22%20fill%3D%22%23A8281E%22/%3E%3Crect%20x%3D%2258%22%20width%3D%224%22%20height%3D%2248%22%20fill%3D%22%230F0E0C%22/%3E%3Crect%20x%3D%2266%22%20width%3D%222%22%20height%3D%2248%22%20fill%3D%22%23A8281E%22/%3E%3Crect%20x%3D%2272%22%20width%3D%224%22%20height%3D%2248%22%20fill%3D%22%23C9A227%22/%3E%0A%3Crect%20x%3D%2280%22%20width%3D%2240%22%20height%3D%2248%22%20fill%3D%22%230F0E0C%22/%3E%3Cg%20fill%3D%22%23C9A227%22%3E%3Crect%20x%3D%2284%22%20y%3D%224%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%22100%22%20y%3D%224%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%2292%22%20y%3D%2212%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%22108%22%20y%3D%2212%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%2284%22%20y%3D%2220%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%22100%22%20y%3D%2220%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%2292%22%20y%3D%2228%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%22108%22%20y%3D%2228%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%2284%22%20y%3D%2236%22%20width%3D%228%22%20height%3D%228%22/%3E%3Crect%20x%3D%22100%22%20y%3D%2236%22%20width%3D%228%22%20height%3D%228%22/%3E%3C/g%3E%0A%3Crect%20x%3D%22120%22%20width%3D%2240%22%20height%3D%2248%22%20fill%3D%22%23A8281E%22/%3E%3Crect%20x%3D%22120%22%20y%3D%226%22%20width%3D%2240%22%20height%3D%224%22%20fill%3D%22%23C9A227%22/%3E%3Crect%20x%3D%22120%22%20y%3D%2214%22%20width%3D%2240%22%20height%3D%222%22%20fill%3D%22%231F6B3A%22/%3E%3Crect%20x%3D%22120%22%20y%3D%2222%22%20width%3D%2240%22%20height%3D%224%22%20fill%3D%22%23C9A227%22/%3E%3Crect%20x%3D%22120%22%20y%3D%2232%22%20width%3D%2240%22%20height%3D%222%22%20fill%3D%22%231F6B3A%22/%3E%3Crect%20x%3D%22120%22%20y%3D%2238%22%20width%3D%2240%22%20height%3D%224%22%20fill%3D%22%23C9A227%22/%3E%0A%3C/svg%3E");
	--ha-zig: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2228%22%20height%3D%2214%22%20viewBox%3D%220%200%2028%2014%22%3E%3Cpath%20d%3D%22M0%2012%20L7%202%20L14%2012%20L21%202%20L28%2012%22%20fill%3D%22none%22%20stroke%3D%22%23B8935A%22%20stroke-width%3D%222%22/%3E%3C/svg%3E");
}

.ha-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ha-sym { display: inline-block; flex: none; vertical-align: middle; fill: currentColor; }

/* Kente bands */
.ha-kente { height: 14px; background: var(--ha-kente) repeat-x left center; background-size: auto 14px; }
.ha-kente--thick { height: 22px; background-size: auto 22px; }
@media (min-width: 769px) { .ha-kente--thick { height: 28px; background-size: auto 28px; } }

/* Kickers with a small symbol */
.ha-kicker { display: flex; align-items: center; gap: 0.45rem; }
.ha-kicker__sym { width: 15px; height: 15px; }
.ha-kicker__prefix { white-space: nowrap; }

/* Utility bar */
.ha-utility { background: var(--ha-ink); color: var(--ha-muted-dark); font-family: var(--ha-font-ui); font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; border-bottom: 1px solid var(--ha-stone); }
.ha-utility__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--ha-space-4); min-height: 34px; }
.ha-utility__text { display: none; text-align: right; }
@media (min-width: 769px) { .ha-utility__text { display: block; } }

/* Align GeneratePress header, nav and bottom bar with the theme's .ha-container. */
.site-header .inside-header,
.main-navigation .inside-navigation,
.site-info .inside-site-info { max-width: calc(var(--ha-max) + 2 * var(--ha-gutter)); margin-inline: auto; padding-left: var(--ha-gutter); padding-right: var(--ha-gutter); box-sizing: border-box; }

/* Masthead */
.site-header { border-bottom: 0; }
.site-header .inside-header { padding-top: var(--ha-space-4); padding-bottom: var(--ha-space-4); gap: var(--ha-space-4); }
.main-title a { display: inline-flex; align-items: center; gap: 0.75rem; }
.ha-brand-mark { width: 34px; height: 34px; color: var(--ha-gold); }
.main-title { font-size: clamp(1.375rem, 1rem + 1.4vw, 2rem); }
.site-description { margin: 0.4rem 0 0; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--ha-gold); display: none; }
.ha-header-cta { margin-left: auto; flex: none; }
.ha-button--sm { min-height: 40px; padding: 0 1rem; font-size: 0.8125rem; letter-spacing: 0.04em; text-transform: none; }
@media (max-width: 768px) {
	.site-header .inside-header { flex-direction: row; flex-wrap: nowrap; justify-content: space-between; text-align: left; }
	.site-header .site-branding-container { flex-direction: row; text-align: left; }
	.ha-brand-name { white-space: nowrap; }
}
@media (max-width: 420px) {
	.main-title { font-size: 1.1875rem; }
	.ha-brand-mark { width: 30px; height: 30px; }
	.main-title a { gap: 0.5rem; }
	.ha-button--sm { padding: 0 0.75rem; font-size: 0.75rem; min-height: 38px; }
}
@media (min-width: 769px) {
	.site-header .inside-header { padding-top: 1.375rem; padding-bottom: 1.375rem; }
	.ha-brand-mark { width: 44px; height: 44px; }
	.main-title a { gap: 0.875rem; }
	.site-description { display: block; padding-left: calc(44px + 0.875rem); }
	.ha-button--sm { padding: 0 1.25rem; }
}

/* Charcoal category bar */
.main-navigation, .main-navigation ul ul { background-color: var(--ha-charcoal); }
.main-navigation { border-top: 1px solid var(--ha-stone); }
.main-navigation .main-nav ul li a { display: flex; align-items: center; gap: 0.5rem; }
.main-navigation .main-nav ul li[class*="current-menu-"] > a { box-shadow: inset 0 -3px 0 var(--ha-gold); }
.ha-menu-sym { width: 18px; height: 18px; color: var(--ha-gold); }
@media (max-width: 768px) {
	.main-navigation .menu-toggle { padding-left: 0; }
	.main-navigation .main-nav ul li a { padding-left: 0; padding-right: 0; line-height: 52px; }
	.main-navigation .main-nav ul ul li a { padding-left: 1.5rem; }
	.main-navigation .menu-bar-items .menu-bar-item > a { padding-right: 0; }
}
@media (min-width: 769px) {
	.main-navigation .main-nav { flex: 1 1 auto; }
	.main-navigation .main-nav > ul { justify-content: space-between; }
	.main-navigation .main-nav ul li a { padding-left: 0.25rem; padding-right: 0.25rem; line-height: 56px; }
	.main-navigation .main-nav ul ul li a { padding-left: 1rem; padding-right: 1rem; line-height: 1.4; }
	.main-navigation .menu-bar-items { margin-left: var(--ha-space-5); }
}

/* Newsletter band (homepage) */
.ha-newsletter--band { background: var(--ha-charcoal); color: var(--ha-cream); border: 0; margin-top: 0; text-align: center; padding-block: var(--ha-space-7) var(--ha-space-7); }
@media (min-width: 769px) { .ha-newsletter--band { padding-block: 4.5rem; } }
.ha-newsletter--band .ha-newsletter__inner { grid-template-columns: minmax(0, 1fr); max-width: calc(640px + 2 * var(--ha-gutter)); justify-items: center; gap: var(--ha-space-5); }
.ha-newsletter__sym { display: block; width: 56px; height: 56px; margin: 0 auto var(--ha-space-4); color: var(--ha-gold); }
@media (min-width: 769px) { .ha-newsletter__sym { width: 64px; height: 64px; } }
.ha-newsletter--band .ha-eyebrow { color: var(--ha-gold); }
.ha-newsletter--band .ha-newsletter__title { color: var(--ha-cream); font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); line-height: 1.08; }
.ha-newsletter--band .ha-newsletter__text { color: #CFC5B3; margin-inline: auto; }
.ha-newsletter--band .ha-newsletter__note { color: var(--ha-muted-dark); }
.ha-newsletter--band .ha-newsletter__form { width: 100%; max-width: 520px; text-align: left; }
.ha-newsletter--band .ha-newsletter__form input[type="email"], .ha-newsletter--band .ha-newsletter__form input[type="text"] { background: var(--ha-ink); color: var(--ha-cream); border-color: var(--ha-gold); }
.ha-newsletter--band .ha-newsletter__form input::placeholder { color: var(--ha-muted-dark); }
.ha-newsletter--band .ha-newsletter__form button, .ha-newsletter--band .ha-newsletter__form input[type="submit"] { background: var(--ha-gold); color: var(--ha-ink); }
.ha-newsletter--band .ha-newsletter__form button:hover, .ha-newsletter--band .ha-newsletter__form input[type="submit"]:hover { background: var(--ha-gold-light); color: var(--ha-ink); }
.ha-newsletter--band .ha-newsletter__form label, .ha-newsletter--band .ha-newsletter__widget-title { color: var(--ha-cream); }
.ha-newsletter--band :focus-visible { outline-color: var(--ha-gold-light); }
.ha-newsletter--band .ha-admin-hint { text-align: left; }

/* Footer */
.ha-footer__logo a { display: inline-flex; align-items: center; gap: 0.6rem; }
.ha-footer__logo .ha-brand-mark { width: 30px; height: 30px; }
.ha-footer__list .ha-menu-sym { width: 14px; height: 14px; margin-right: 0.5rem; vertical-align: -2px; }
.ha-footer__heading { font-size: 0.6875rem; letter-spacing: 0.2em; }
@media (min-width: 1025px) { .ha-footer__grid { grid-template-columns: 1.4fr repeat(3, minmax(0, 1fr)); } }

/* Archive head with category symbol */
.ha-archive-head { border-bottom: 0; }
.ha-archive-head__row { display: flex; align-items: center; gap: var(--ha-space-5); }
.ha-archive-head__sym { width: 56px; height: 56px; color: var(--ha-gold); }
@media (min-width: 769px) { .ha-archive-head__sym { width: 84px; height: 84px; } }
.ha-archive-head__symname { color: var(--ha-muted-dark); letter-spacing: 0.08em; }
.ha-archive-head .ha-eyebrow { display: block; }

/* Cards: placeholder art fills the media box */
.ha-card__media--empty { display: block; background: var(--ha-charcoal); }

/* MailerLite signup form (inc/newsletter.php). Light by default; dark newsletter sections switch the colour tokens. */
.ha-ml { --ha-ml-text: var(--ha-ink); --ha-ml-muted: var(--ha-muted); --ha-ml-link: var(--ha-gold-deep); --ha-ml-error: #A3261B; width: 100%; font-family: var(--ha-font-ui); color: var(--ha-ml-text); text-align: left; }
.ha-newsletter--band .ha-ml, .ha-newsletter--inline .ha-ml, .ha-newsletter--compact .ha-ml { --ha-ml-text: var(--ha-cream); --ha-ml-muted: var(--ha-muted-dark); --ha-ml-link: var(--ha-gold-light); --ha-ml-error: #FF9E92; }
.ha-ml .ml-form-fieldRow { margin: 0 0 var(--ha-space-4); }
.ha-ml input[type="email"] { margin: 0; }
.ha-ml .ml-form-checkboxRow { margin: 0 0 var(--ha-space-4); }
.ha-ml .ml-form-checkboxRow label.checkbox { display: flex; align-items: flex-start; gap: 0.625rem; margin: 0; cursor: pointer; font-family: var(--ha-font-ui); font-size: 0.875rem; line-height: 1.5; color: var(--ha-ml-muted); }
.ha-ml .ml-form-checkboxRow input[type="checkbox"] { flex: none; width: 1.125rem; height: 1.125rem; margin: 0.125rem 0 0; accent-color: var(--ha-gold); cursor: pointer; }
.ha-ml .label-description p { margin: 0; }
.ha-ml .label-description a { color: var(--ha-ml-link); text-decoration: underline; text-underline-offset: 2px; }
.ha-ml .ml-form-embedSubmit { margin: 0; }
.ha-ml .ml-form-embedSubmit button.loading { cursor: progress; }
.ha-ml .ml-form-embedSubmitLoad { display: inline-block; width: 20px; height: 20px; vertical-align: middle; }
.ha-ml .ml-form-embedSubmitLoad::after { content: ""; display: block; box-sizing: border-box; width: 18px; height: 18px; margin: 1px; border-radius: 50%; border: 3px solid currentColor; border-right-color: transparent; animation: ha-ml-spin 1.2s linear infinite; }
@keyframes ha-ml-spin { to { transform: rotate(360deg); } }
.ha-ml .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.ha-ml .d-none { display: none; }
.ha-ml__error { display: none; margin: var(--ha-space-2) 0 0; font-family: var(--ha-font-ui); font-size: 0.875rem; font-weight: 600; color: var(--ha-ml-error); }
.ha-ml .ml-error .ha-ml__error { display: block; }
.ha-ml .ml-error input[type="email"] { border-color: var(--ha-ml-error); box-shadow: 0 0 0 1px var(--ha-ml-error); }
.ha-ml .ml-form-checkboxRow.ml-error .label-description, .ha-ml .ml-form-checkboxRow.ml-error .label-description a { color: var(--ha-ml-error); }
.ha-ml .ml-form-checkboxRow.ml-error input[type="checkbox"] { outline: 2px solid var(--ha-ml-error); outline-offset: 2px; }
.ha-ml__server-error { margin: var(--ha-space-3) 0 0; font-family: var(--ha-font-ui); font-size: 0.875rem; color: var(--ha-ml-error); }
.ha-ml .ml-form-successContent { padding: var(--ha-space-4) var(--ha-space-5); border-left: 4px solid var(--ha-gold); background: rgba(184, 147, 90, 0.14); color: var(--ha-ml-text); font-family: var(--ha-font-ui); font-size: 1rem; line-height: 1.5; }
.ha-ml .ml-form-successContent p { margin: 0; }

/* 13. Accessibility & motion ----------------------------------------------- */
:focus-visible { outline: 3px solid var(--ha-focus); outline-offset: 2px; }
.ha-hero :focus-visible, .ha-untold :focus-visible, .ha-archive-head :focus-visible, .site-header :focus-visible, .site-footer :focus-visible, .ha-newsletter--inline :focus-visible, .ha-newsletter--compact :focus-visible { outline-color: var(--ha-gold-light); }
.skip-link:focus { background: var(--ha-gold); color: var(--ha-ink); }
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; scroll-behavior: auto !important; }
	.ha-card:hover .ha-card__media img { transform: none; }
}
@media (forced-colors: active) {
	.ha-label-reconstruction, .ha-badge, .wp-block-image.is-style-ha-reconstruction::before { border: 2px solid CanvasText; }
}

/* 14. Print ---------------------------------------------------------------- */
@media print {
	.site-header, .site-footer, .ha-share, .ha-newsletter, .ha-related, .ha-comments, .generate-back-to-top, .ha-breadcrumbs { display: none !important; }
	body { background: #fff; color: #000; font-size: 11pt; }
	.ha-prose a::after { content: " (" attr(href) ")"; font-size: 0.85em; word-break: break-all; }
	.ha-label-reconstruction { position: static; display: inline-block; background: #fff; color: #000; border: 1px solid #000; }
}
