/* ==========================================================================
   Typography — Oswald (display, uppercase) × Manrope (text)
   × Cormorant Garamond italic (literary accent)
   <em> inside any heading = animated gold gradient words.
   .afro-script = serif italic accent (e.g. "Find your voice").
   ========================================================================== */

body.afro :is(h1, h2, h3, h4, h5, h6),
body.afro .elementor-widget-heading .elementor-heading-title {
	font-family: var(--afro-font-display);
	font-weight: 600;
	line-height: 1.18;
	letter-spacing: 0;
	text-transform: uppercase;
	color: var(--afro-heading);
	margin: 0 0 .45em;
	text-wrap: balance;
}
body.afro h1 { font-size: var(--afro-fs-display); line-height: 1.08; }
body.afro h2 { font-size: var(--afro-fs-h2); }
body.afro h3 { font-size: var(--afro-fs-h3); }
body.afro h4 { font-size: var(--afro-fs-h4); }
body.afro h5, body.afro h6 { font-size: var(--afro-fs-sm); letter-spacing: .12em; }
body.afro p { margin: 0 0 1em; }

/* Gold gradient words (shimmer). Applied to the word spans too, so it survives the split-text animation. */
body.afro :is(h1, h2, h3, h4, .elementor-heading-title, .afro-gold) em,
body.afro :is(h1, h2, h3, h4, .elementor-heading-title) em .al-word,
.afro-gold {
	font-style: normal;
	background: var(--afro-gold-text);
	background-size: 220% 100%;
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent; color: transparent;
	animation: afro-shimmer 7s linear infinite;
}
body.afro :is(h1, h2, h3, h4, .elementor-heading-title) em:has(.al-word) { animation: none; background: none; }
@keyframes afro-shimmer { to { background-position: -220% 0; } }
.afro-bg-mustard :is(h1, h2, h3, h4, .elementor-heading-title) em,
.afro-bg-mustard :is(h1, h2, h3, h4, .elementor-heading-title) em .al-word { background: none; -webkit-text-fill-color: currentColor; color: inherit; animation: none; text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .12em; }

/* Size utilities (work on plain HTML and Elementor widgets) */
.afro-mega, .afro-mega .elementor-heading-title { font-family: var(--afro-font-display) !important; font-size: var(--afro-fs-mega) !important; line-height: .92 !important; letter-spacing: -.01em !important; font-weight: 600 !important; text-transform: uppercase; }
.afro-display, .afro-display .elementor-heading-title { font-family: var(--afro-font-display) !important; font-size: var(--afro-fs-display) !important; line-height: 1.04 !important; font-weight: 600 !important; text-transform: uppercase; }
.afro-h2, .afro-h2 .elementor-heading-title { font-family: var(--afro-font-display) !important; font-size: var(--afro-fs-h2) !important; line-height: 1.16 !important; font-weight: 600 !important; }
.afro-h3, .afro-h3 .elementor-heading-title, .afro-h3 p { font-family: var(--afro-font-display) !important; font-size: var(--afro-fs-h3) !important; line-height: 1.2 !important; font-weight: 600 !important; text-transform: uppercase; color: var(--afro-heading); }

/* Kicker — italic gold label with a leading gold rule (kit signature) */
.afro-kicker, .afro-kicker .elementor-heading-title, .afro-kicker p {
	font-family: var(--afro-font-text) !important;
	font-size: .78rem !important;
	font-weight: 700 !important;
	font-style: italic;
	letter-spacing: .14em !important;
	text-transform: uppercase !important;
	line-height: 1.4 !important;
	color: var(--afro-yellow) !important;
	margin: 0 0 1rem;
}
.afro-kicker--tick .elementor-heading-title::before, p.afro-kicker--tick::before, .afro-kicker--tick > span::before {
	content: ""; display: inline-block; width: 2.6rem; height: 2px; margin-right: .8rem;
	vertical-align: middle; background: var(--afro-gold); transform: translateY(-2px);
}
.afro-centre .afro-kicker--tick .elementor-heading-title::after { content: ""; display: inline-block; width: 2.6rem; height: 2px; margin-left: .8rem; vertical-align: middle; background: var(--afro-gold); transform: translateY(-2px); }
.afro-bg-mustard .afro-kicker, .afro-bg-mustard .afro-kicker .elementor-heading-title { color: var(--afro-black) !important; }
.afro-bg-mustard .afro-kicker--tick .elementor-heading-title::before { background: var(--afro-black); }

/* Literary serif accent */
.afro-script, .afro-script .elementor-heading-title, .afro-script p {
	font-family: var(--afro-font-serif) !important; font-style: italic; font-weight: 500 !important;
	text-transform: none !important; letter-spacing: 0 !important; line-height: 1.2 !important;
	font-size: var(--afro-fs-h3) !important; color: var(--afro-yellow) !important;
}

.afro-num, .afro-num .elementor-heading-title { font-family: var(--afro-font-display) !important; color: var(--afro-yellow) !important; font-size: var(--afro-fs-h3) !important; }

.afro-lede, .afro-lede p { font-size: var(--afro-fs-lede); line-height: 1.6; color: inherit; max-width: 38em; }
.afro-muted, .afro-muted p { color: var(--afro-text-muted); }

/* Links */
body.afro a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.afro-link {
	display: inline-flex; align-items: center; gap: .5rem;
	font-weight: 700; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase;
	color: var(--afro-yellow) !important; text-decoration: none !important;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition: background-size .5s var(--afro-ease), gap .3s var(--afro-ease);
	padding-bottom: 3px;
}
.afro-link:hover { background-size: 100% 1px; gap: .85rem; }
.afro-bg-mustard .afro-link { color: var(--afro-black) !important; }

/* Long-form prose (dark reading, tuned contrast) */
.afro-prose { max-width: 42rem; margin-inline: auto; font-size: clamp(1.05rem, 1rem + .25vw, 1.15rem); line-height: 1.82; color: #D6D3CC; }
.afro-prose > * + * { margin-top: 1.4em; }
.afro-prose > p:first-of-type::first-letter {
	float: left; font-family: var(--afro-font-display); font-size: 4.2em; line-height: .82;
	padding: .06em .12em 0 0; font-weight: 600; color: var(--afro-yellow);
}
.afro-prose h2 { font-size: var(--afro-fs-h3); margin-top: 2.2em; }
.afro-prose h3 { font-size: var(--afro-fs-h4); margin-top: 1.8em; }
.afro-prose a { color: var(--afro-yellow); text-decoration-thickness: 1px; }
.afro-prose a:hover { color: var(--afro-yellow-light); }
.afro-prose strong { color: #fff; }
.afro-prose blockquote {
	margin: 2em 0; padding: 0 0 0 1.5rem; border-left: 3px solid var(--afro-yellow);
	font-family: var(--afro-font-serif); font-size: var(--afro-fs-h3); font-style: italic; line-height: 1.3; color: #fff;
}
.afro-prose figure { margin-block: 2.2em; }
.afro-prose img { border-radius: var(--afro-radius); }
.afro-prose figcaption, .wp-element-caption { font-size: var(--afro-fs-sm); color: var(--afro-text-muted); margin-top: .75rem; padding-left: .85rem; border-left: 2px solid var(--afro-yellow); }
.afro-prose .alignwide { width: min(1100px, 92vw); max-width: none; margin-inline: 50%; transform: translateX(-50%); }
.afro-prose .alignfull { width: 100vw; max-width: none; margin-inline: 50%; transform: translateX(-50%); }
.afro-prose ul, .afro-prose ol { padding-left: 1.25em; }
.afro-prose li::marker { color: var(--afro-yellow); }
.afro-prose hr { border: 0; text-align: center; margin: 3em 0; }
.afro-prose hr::before { content: "✦  ✦  ✦"; color: var(--afro-yellow); letter-spacing: .5em; }
.afro-prose iframe, .afro-prose .wp-block-embed { width: 100%; border-radius: var(--afro-radius); }
