/* ==========================================================================
   Business Week Afrika — component styles
   Colours, fonts and sizes come from theme.json (var(--wp--preset--*)).
   ========================================================================== */
:root {
	--bwa-red: var(--wp--preset--color--red);
	--bwa-red-block: var(--wp--preset--color--red-block);
	--bwa-red-deep: var(--wp--preset--color--red-deep);
	--bwa-navy: var(--wp--preset--color--navy);
	--bwa-navy-deep: var(--wp--preset--color--navy-deep);
	--bwa-blue: var(--wp--preset--color--blue);
	--bwa-green: var(--wp--preset--color--green);
	--bwa-cream: var(--wp--preset--color--cream);
	--bwa-display: var(--wp--preset--font-family--display);
	--bwa-section: var(--wp--preset--spacing--70);
	--bwa-header-h: 104px;
}
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
img { height: auto; }
.wp-site-blocks { padding-top: 0; }
.wp-site-blocks > * { margin-block-start: 0; }
:where(.wp-site-blocks) > main { margin-block-start: 0; }

/* ---------- Kicker label ---------- */
.is-style-kicker {
	font-family: var(--bwa-display) !important; font-weight: 600; font-size: 0.8125rem !important;
	letter-spacing: 0.08em; text-transform: uppercase; line-height: 1; color: var(--bwa-red-block); /* deep red: AA contrast at small size on white/cream */
	margin-bottom: 0 !important;
}
.has-red-block-background-color .is-style-kicker,
.has-navy-background-color .is-style-kicker,
.has-navy-deep-background-color .is-style-kicker,
.wp-block-cover .is-style-kicker { color: var(--bwa-blue); }
.has-red-block-background-color .is-style-kicker { color: rgba(255,255,255,.85); }
.is-style-kicker + * { margin-block-start: 1.1rem !important; }

/* ---------- Buttons: slanted ---------- */
.wp-block-button__link, .wp-element-button {
	position: relative; isolation: isolate; background: transparent !important; white-space: nowrap;
	transition: color .2s;
}
.wp-block-button__link::before, .wp-element-button::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: 3px;
	background: var(--bwa-red-block); transform: skewX(-12deg); transition: background .2s, transform .2s;
}
.wp-block-button__link:hover::before, .wp-element-button:hover::before { background: var(--bwa-navy); transform: skewX(-12deg) scale(1.04); }
.wp-block-button__link:hover { color: #fff !important; }
/* On red or navy bands the button turns white so it stays visible. */
:is(.has-red-block-background-color, .has-navy-background-color, .has-navy-deep-background-color) .wp-block-button:not(.is-style-ghost) .wp-block-button__link { color: var(--bwa-red-block) !important; }
:is(.has-red-block-background-color, .has-navy-background-color, .has-navy-deep-background-color) .wp-block-button:not(.is-style-ghost) .wp-block-button__link::before { background: #fff; }
:is(.has-red-block-background-color, .has-navy-background-color, .has-navy-deep-background-color) .wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover { color: #fff !important; }
:is(.has-red-block-background-color, .has-navy-background-color, .has-navy-deep-background-color) .wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover::before { background: var(--bwa-navy-deep); }
.is-style-red .wp-block-button__link { color: #fff !important; }
.is-style-red .wp-block-button__link::before { background: var(--bwa-red-block); }
.is-style-red .wp-block-button__link:hover::before { background: var(--bwa-navy); }
.is-style-ghost .wp-block-button__link { color: #fff !important; }
.is-style-ghost .wp-block-button__link::before { background: transparent; border: 2px solid currentColor; }
.is-style-ghost .wp-block-button__link:hover::before { background: #fff; border-color: #fff; }
.wp-block-button.is-small .wp-block-button__link { padding: 12px 22px; font-size: 0.75rem; }
/* Search / form buttons */
.wp-block-search__button { color: #fff !important; }
.wp-block-search__button::before { background: var(--bwa-red-block); }

/* ---------- Header ---------- */
/* Sticky header. The template-part wrapper is what sticks (or is fixed over the hero);
   body.is-scrolled (set in main.js) gives the overlay header a solid background and a
   slimmer bar once the visitor scrolls. */
:root { --bwa-admin-offset: 0px; }
.admin-bar { --bwa-admin-offset: 32px; }
.wp-site-blocks > .wp-block-template-part:has(> .site-header) { position: sticky; top: var(--bwa-admin-offset); z-index: 100; }
.wp-site-blocks > .wp-block-template-part:has(> .site-header.is-overlay) { position: fixed; top: var(--bwa-admin-offset); left: 0; right: 0; }
.site-header { position: relative; background: var(--bwa-navy-deep); color: #fff; transition: background-color .3s, box-shadow .3s; }
.site-header.is-overlay { background: transparent; }
.is-scrolled .site-header { background: var(--bwa-navy-deep); box-shadow: 0 6px 24px rgba(0,0,0,.25); }
.site-header__bar { min-height: var(--bwa-header-h); gap: 24px; transition: min-height .3s; }
.is-scrolled .site-header__bar { min-height: 76px; }
.site-header .wp-block-site-logo img { width: auto !important; height: 72px; transition: height .3s; }
.is-scrolled .site-header .wp-block-site-logo img { height: 52px; }
/* Desktop: header logo 30% smaller (72px → 50px; scrolled 52px → 36px). */
@media (min-width: 1101px) {
	.site-header .wp-block-site-logo img { height: 50px; }
	.is-scrolled .site-header .wp-block-site-logo img { height: 36px; }
}
.site-header .wp-block-navigation { gap: 28px; }
.site-header .wp-block-navigation-item__content { padding: 8px 0; }
.site-header .wp-block-navigation-item__content:hover,
.site-header .current-menu-item > .wp-block-navigation-item__content { color: var(--bwa-blue); }
/* Both headers use the custom dropdown menu below (main.js). The Contact Us source button only
   feeds the dropdown; it is never shown in the navy bar itself. */
.menu-cta-source { display: none !important; }

/* ---------- Hero (cover) ---------- */
.bwa-hero {
	min-height: 100svh !important; padding-top: calc(var(--bwa-header-h) + 40px) !important;
	padding-left: var(--wp--custom--gutter) !important; padding-right: var(--wp--custom--gutter) !important;
}
/* Hero copy lines up with the site's wide content edge, whatever the content position. */
.bwa-hero .wp-block-cover__inner-container { width: 100% !important; max-width: var(--wp--style--global--wide-size); margin-inline: auto !important; padding-left: 0 !important; padding-right: 0 !important; }
.bwa-hero .wp-block-cover__background { background: linear-gradient(90deg, rgba(14,22,38,.88) 0%, rgba(14,22,38,.55) 50%, rgba(14,22,38,.15) 100%) !important; opacity: 1 !important; }
/* Homepage hero height: 86% of the viewport on desktop, 50% on mobile. */
.bwa-hero.has-slides { min-height: 86vh !important; }
@media (max-width: 781.98px) {
	/* Compact so the copy fits in half the screen; bottom padding keeps the dots clear of the button. */
	.bwa-hero.has-slides {
		min-height: 50vh !important; min-height: 50svh !important;
		padding-top: calc(var(--bwa-header-h) + 20px) !important; padding-bottom: 52px !important;
	}
	.bwa-hero.has-slides h1 { font-size: clamp(2rem, 9vw, 2.75rem) !important; }
	.bwa-hero.has-slides .is-style-kicker + * { margin-block-start: .75rem !important; }
	.bwa-hero.has-slides .wp-block-buttons { margin-top: 1.25rem !important; }
	.bwa-hero.has-slides .hero-dots { bottom: 20px; }
}

/* Hero slideshow: image blocks in .hero-slides crossfade behind the overlay (main.js). */
/* The cover is a flex container, so its inner container (z-index:1 from core) would form one
   stacking layer holding both slides and copy. z-index:auto lets slides, overlay and copy each
   take their own place in the hero's stack. */
.bwa-hero.has-slides .wp-block-cover__inner-container { position: static; z-index: auto !important; }
.hero-slides { position: absolute !important; inset: 0; z-index: 0; margin: 0 !important; max-width: none !important; overflow: hidden; }
.hero-slides figure { position: absolute; inset: 0; margin: 0 !important; opacity: 0; transition: opacity 1.4s ease; }
.hero-slides figure:first-child, .hero-slides figure.is-active { opacity: 1; }
.hero-slides.is-running figure:first-child:not(.is-active) { opacity: 0; }
.hero-slides img { width: 100%; height: 100% !important; object-fit: cover; transform: scale(1.08); transition: transform 7s ease-out; }
.hero-slides figure.is-active img { transform: scale(1); }
/* Explicit layer order inside the hero: photos (0) < overlay (2) < copy (3) < dots (4). */
.bwa-hero { isolation: isolate; }
.bwa-hero.has-slides .wp-block-cover__background { z-index: 2 !important; }
.hero-content { position: relative; z-index: 3; }
/* Event photos have bright white stage backdrops: a stronger left-to-right and bottom
   shade keeps the headline readable on every slide. */
.bwa-hero.has-slides .wp-block-cover__background {
	background:
		linear-gradient(90deg, rgba(14,22,38,.94) 0%, rgba(14,22,38,.82) 38%, rgba(14,22,38,.5) 70%, rgba(14,22,38,.3) 100%),
		linear-gradient(180deg, rgba(14,22,38,.55) 0%, rgba(14,22,38,0) 28%, rgba(14,22,38,0) 62%, rgba(14,22,38,.75) 100%) !important;
}
.bwa-hero.has-slides h1 { text-shadow: 0 2px 24px rgba(0,0,0,.35); }
.hero-dots { position: absolute; z-index: 4; left: 50%; bottom: 32px; transform: translateX(-50%); display: flex; gap: 10px; }
.hero-dots button { width: 34px; height: 4px; padding: 0; border: 0; cursor: pointer; background: rgba(255,255,255,.4); transition: background .3s, width .3s; }
.hero-dots button[aria-current="true"] { background: var(--bwa-red); width: 56px; }
.hero-dots button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .hero-slides img { transform: none !important; transition: none; } }
.bwa-hero h1 { max-width: 14ch; line-height: 1.06; }
.bwa-hero h1 mark { background: none; color: var(--bwa-red); }
.bwa-hero .hero-lede { max-width: 520px; font-weight: 600; }
.hero-flag { position: absolute; right: var(--wp--custom--gutter); bottom: 40px; display: flex; z-index: 2; }
.hero-flag span { width: 44px; height: 8px; }

/* Pan-African stripe */
.bwa-stripe { display: flex; height: 10px; margin: 0 !important; }
/* Full-width page sections sit flush against each other (no block gap between bands). */
.wp-block-post-content > .alignfull, .wp-block-post-content > .alignfull + * { margin-block-start: 0 !important; }
.wp-block-post-content > .alignfull:last-child { margin-block-end: 0 !important; }
/* Same for full-width bands placed directly in a template's <main> (homepage, archives). */
main.wp-block-group > :is(.alignfull, .bwa-stripe), main.wp-block-group > :is(.alignfull, .bwa-stripe) + * { margin-block-start: 0 !important; }
.bwa-stripe span { flex: 1; }
.s-red { background: var(--wp--preset--color--red); }
.s-green { background: var(--wp--preset--color--green); }
.s-blue { background: var(--wp--preset--color--blue); }

/* ---------- Section rhythm ---------- */
.bwa-section { padding-top: var(--bwa-section) !important; padding-bottom: var(--bwa-section) !important; }
.section-title { color: var(--bwa-red-block); }
/* Titles on coloured bands: white on red/navy, navy on green (never red on red). */
:is(.has-red-block-background-color, .has-navy-background-color, .has-navy-deep-background-color, .wp-block-cover) .section-title { color: #fff; }
.has-green-background-color .section-title { color: var(--bwa-navy-deep); }
.has-red-block-background-color .split-statement { line-height: 1.25; }

/* ---------- Pillars ---------- */
.pillar-grid { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 20px !important; }
/* Grid items line up on one row: cancel core's stacked-block top margin (blockGap), which
   would otherwise push every card after the first one down. */
:is(.pillar-grid, .info-grid, .past-grid, .speaker-grid, .contact-grid, .stats-grid, .logo-wall, .summit-facts, .mosaic, .programme-index__grid) > * { margin-block: 0 !important; }
.is-style-card, .pillar { background: var(--bwa-cream); }
.pillar { display: flex; flex-direction: column; gap: 0 !important; transition: transform .3s, box-shadow .3s; }
.pillar:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(90,18,13,.15); }
.pillar .pillar-img { position: relative; overflow: hidden; margin: 0; }
.pillar .pillar-img img { aspect-ratio: 4 / 3.4; object-fit: cover; width: 100%; transition: transform .6s; }
.pillar:hover .pillar-img img { transform: scale(1.06); }
.pillar-num {
	position: absolute; left: 0; bottom: 0; margin: 0 !important; background: var(--bwa-red-block); color: #fff;
	font: 800 15px/1 var(--bwa-display); padding: 10px 12px;
}
.pillar-body { padding: 24px 22px 26px !important; display: flex; flex-direction: column; flex: 1; gap: 0 !important; }
.pillar-body h3 { color: var(--bwa-red-deep); font-size: 1.0625rem !important; line-height: 1.3; }
.pillar-body p { font-size: 0.9375rem; line-height: 1.6; margin: 12px 0 18px; }
.pillar-body ul { list-style: none; padding: 0; margin: 0 0 20px; font-size: 0.8125rem; font-weight: 500; }
.pillar-body li { padding: 8px 0; border-top: 1px solid rgba(90,18,13,.12); }
.pillar-body .more { margin: auto 0 0 !important; font: 700 0.75rem/1 var(--bwa-display); text-transform: uppercase; }
.pillar-body .more a { color: var(--bwa-red-block); text-decoration: none; }
.pillar-body .more a::after { content: " →"; }
.pillar-body .more a::before { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.pillar { position: relative; }

/* ---------- Quote band ---------- */
.quote-band { gap: 0 !important; margin: 0 !important; min-height: 460px; }
.quote-band > .wp-block-column { margin: 0 !important; }
.quote-band .quote-img { position: relative; align-self: stretch; }
.quote-band .quote-img figure, .quote-band .quote-img .wp-block-image { margin: 0; height: 100%; }
.quote-band .quote-img img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; }
.quote-band .quote-img::after { content: ""; position: absolute; inset: 0; pointer-events: none; }
.quote-band.has-navy-background-color .quote-img::after { background: linear-gradient(90deg, transparent 55%, var(--bwa-navy) 100%); }
.quote-band.has-red-block-background-color .quote-img::after { background: linear-gradient(90deg, transparent 55%, var(--bwa-red-block) 100%); }
.quote-band .quote-text { padding: 64px var(--wp--custom--gutter) 64px clamp(24px, 4vw, 56px) !important; }
.quote-band blockquote { border: 0; padding: 0; margin: 0; }
.quote-band blockquote p { font: 700 clamp(1.5rem, 2.6vw, 2.25rem)/1.3 var(--bwa-display); letter-spacing: -.01em; max-width: 30ch; }
.quote-band cite { display: block; margin-top: 24px; font: 600 0.875rem var(--bwa-display); font-style: normal; text-transform: uppercase; color: var(--bwa-blue); letter-spacing: .04em; }

/* ---------- Summit ---------- */
.summit-title { line-height: 1.04 !important; }
.summit-title span { color: var(--bwa-navy); display: block; }
.summit-facts { display: grid !important; grid-template-columns: 1fr 1fr; gap: 2px !important; }
.summit-facts > * { background: var(--bwa-cream); padding: 18px; margin: 0 !important; line-height: 1.4; font-size: .8125rem; }
.summit-facts strong { display: block; font: 700 1.375rem/1.15 var(--bwa-display); color: var(--bwa-red-block); }
.mosaic { display: grid !important; grid-template-columns: 1.4fr 1fr; grid-template-rows: 300px 220px; gap: 10px !important; }
.mosaic > * { margin: 0 !important; height: 100%; }
.mosaic img { width: 100%; height: 100% !important; object-fit: cover; }
.mosaic > :first-child { grid-column: 1 / -1; }

/* ---------- Stats ---------- */
.stats-grid { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 0 !important; }
.stats-grid > * { margin: 0 !important; padding: 48px 24px; text-align: center; border-left: 1px solid rgba(255,255,255,.12); font: 600 .8125rem/1.4 var(--bwa-display); text-transform: uppercase; letter-spacing: .03em; }
.stats-grid > :first-child { border-left: 0; }
.stats-grid strong { display: block; margin-bottom: 10px; font: 800 clamp(2.25rem, 4vw, 3.5rem)/1 var(--bwa-display); color: var(--bwa-blue); }

/* ---------- Post cards (query loops) ---------- */
.news-head { align-items: flex-end !important; }
.post-cards .wp-block-post-template { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; }
.post-cards .wp-block-post { margin: 0 !important; }
.post-card { background: #fff; height: 100%; display: flex; flex-direction: column; gap: 0 !important; position: relative; transition: transform .3s, box-shadow .3s; }
.post-card:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(14,22,38,.1); }
.has-white-background-color .post-card, .bwa-archive .post-card { background: var(--bwa-cream); }
.post-card .wp-block-post-featured-image { margin: 0; }
.post-card .wp-block-post-featured-image img { aspect-ratio: 16/10; object-fit: cover; width: 100%; }
.post-card .post-card__body { padding: 24px 24px 28px !important; display: flex; flex-direction: column; flex: 1; gap: 12px !important; }
.post-card .wp-block-post-title { font-size: 1.1875rem !important; line-height: 1.3; letter-spacing: -.01em; }
.post-card .wp-block-post-title a { color: var(--bwa-navy); text-decoration: none; }
.post-card .wp-block-post-title a::before { content: ""; position: absolute; inset: 0; } /* whole card clickable */
.post-card .wp-block-post-excerpt { font-size: .9375rem; margin: 0; }
.post-card .wp-block-post-excerpt__more-text { display: none; }
.post-card .wp-block-post-date { font: 600 .75rem var(--bwa-display); text-transform: uppercase; color: #888; }
.post-card__meta { margin-top: auto !important; padding-top: 14px; border-top: 1px solid rgba(27,39,64,.1); gap: 4px 0 !important; align-items: center; }
.post-card__meta > * { margin: 0 !important; }
.card-author { font: 700 .75rem var(--bwa-display); text-transform: uppercase; color: var(--bwa-navy); }
.card-author + .wp-block-post-date::before { content: "·"; margin: 0 8px; color: #bbb; }
.post-card .card-image.is-placeholder { background: var(--bwa-navy); aspect-ratio: 16 / 10; display: grid; place-items: center; }
.post-card .card-image.is-placeholder a { display: grid; place-items: center; width: 100%; height: 100%; }
.post-card .card-image.is-placeholder img { aspect-ratio: auto; width: 38% !important; height: auto; object-fit: contain; }

/* Category badge */
.cat-badge { margin: 0 !important; }
.cat-badge a {
	display: inline-block; background: var(--bwa-red-block); color: #fff !important; text-decoration: none;
	font: 700 .6875rem/1 var(--bwa-display); text-transform: uppercase; padding: 7px 10px; position: relative; z-index: 1;
}
.cat-badge .wp-block-post-terms__separator { display: none; }
.cat-badge a:not(:first-child) { display: none; }

/* ---------- Topic chips (categories block) ---------- */
.is-style-chips { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.is-style-chips li { margin: 0; }
.is-style-chips a {
	display: inline-block; padding: 9px 16px; border: 1.5px solid rgba(255,255,255,.5); color: #fff; text-decoration: none;
	font: 700 .75rem/1 var(--bwa-display); text-transform: uppercase; transition: background .2s, color .2s;
}
.is-style-chips a:hover, .is-style-chips .current-cat a { background: #fff; border-color: #fff; color: var(--bwa-red-block); }

/* ---------- Page / archive title band ---------- */
.title-band { padding-top: clamp(56px, 8vw, 96px) !important; padding-bottom: clamp(56px, 8vw, 96px) !important; }
/* Narrow children (title, lede) stay left-aligned with the band's content edge
   instead of being centred by the constrained layout. */
.title-band { --band-w: 1240px; }
.single-head { --band-w: 900px; }
.title-band > h1, .title-band > .lede, .title-band > .wp-block-term-description,
.single-head > .wp-block-post-title {
	margin-left: max(0px, calc((100% - var(--band-w)) / 2)) !important; margin-right: auto !important;
}
.title-band h1 { max-width: 20ch; }
.title-band .wp-block-term-description, .title-band .lede { max-width: 640px; color: rgba(255,255,255,.88); }

/* ---------- Single post ---------- */
.single-head { padding-top: clamp(48px, 7vw, 88px) !important; padding-bottom: clamp(40px, 5vw, 64px) !important; }
.single-head .wp-block-post-title { font-size: clamp(2rem, 4.2vw, 3.5rem) !important; line-height: 1.12; max-width: 22ch; }
.single-meta { font: 600 .8125rem var(--bwa-display); text-transform: uppercase; color: rgba(255,255,255,.75); gap: 6px 18px !important; }
.single-meta > * { margin: 0 !important; }
.single-feature { margin-top: calc(-1 * clamp(24px, 4vw, 48px)) !important; position: relative; z-index: 1; }
.single-feature img { aspect-ratio: 16/9; object-fit: cover; width: 100%; }
.post-body { font-size: 1.1875rem; line-height: 1.75; }
.post-body > * + * { margin-block-start: 1.4em; }
.post-body h2, .post-body h3 { color: var(--bwa-red-block); text-transform: none; letter-spacing: -.01em; line-height: 1.2; margin-block-start: 2em; }
.post-body h2 { font-size: 1.75rem; }
.post-body h3 { font-size: 1.375rem; }
.post-body blockquote { border-left: 6px solid var(--bwa-red); padding: 4px 0 4px 28px; font: 700 1.5rem/1.4 var(--bwa-display); text-transform: none; }
.post-body hr { border: 0; height: 6px; width: 64px; background: var(--bwa-red); margin: 2.5em 0; }
.post-body a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.post-body img { border-radius: 2px; }
.post-tags a { display: inline-block; padding: 6px 12px; background: var(--bwa-cream); color: var(--bwa-red-deep); text-decoration: none; font: 600 .75rem var(--bwa-display); text-transform: uppercase; margin: 0 6px 6px 0; }
.post-tags .wp-block-post-terms__separator { display: none; }
.share-row a { font-weight: 600; }

/* ---------- Pagination ---------- */
.wp-block-query-pagination { gap: 8px; font: 700 .8125rem var(--bwa-display); text-transform: uppercase; }
.wp-block-query-pagination a, .wp-block-query-pagination .current { padding: 10px 14px; text-decoration: none; }
.wp-block-query-pagination .current { background: var(--bwa-red-block); color: #fff; }

/* ---------- Partners ---------- */
.logo-wall {
	display: grid !important; grid-template-columns: repeat(6, 1fr); gap: 0 !important;
	border-top: 1px solid rgba(27,39,64,.1); border-left: 1px solid rgba(27,39,64,.1);
}
.logo-wall figure {
	margin: 0 !important; background: #fff; aspect-ratio: 3 / 2; display: grid; place-items: center; padding: 18px 22px;
	border-right: 1px solid rgba(27,39,64,.1); border-bottom: 1px solid rgba(27,39,64,.1);
}
.logo-wall img { max-height: 72px !important; max-width: 100%; width: auto !important; object-fit: contain; transition: transform .25s; }
.logo-wall figure:hover img { transform: scale(1.06); }

/* ---------- Newsletter CTA ---------- */
.cta-band form { display: flex; gap: 12px; flex: 0 1 480px; }
.cta-band input[type=email] { flex: 1; min-width: 0; border: 2px solid var(--bwa-red-deep); background: #fff; padding: 14px 16px; font: 500 1rem var(--wp--preset--font-family--body); }
.cta-band button { border: 0; cursor: pointer; font: 700 .875rem/1 var(--bwa-display); text-transform: uppercase; color: #fff; padding: 15px 30px; }
.cta-band button::before { background: var(--bwa-red-block); }

/* ---------- Footer ---------- */
.site-footer { color: rgba(255,255,255,.85); font-size: .875rem; }
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { color: var(--bwa-blue); }
.site-footer .wp-block-site-logo img { width: auto !important; height: 76px; }
.site-footer .wp-block-navigation { font-size: .75rem; gap: 14px 28px; }
.site-footer strong { color: #fff; font-family: var(--bwa-display); }
.site-footer .footer-contact p { margin: 0 0 6px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,.15); font-size: .8125rem; }
.wp-block-social-links.is-style-default .wp-social-link { background: #fff !important; color: var(--bwa-navy-deep) !important; }
.wp-block-social-links .wp-social-link:hover { background: var(--bwa-blue) !important; }

/* ---------- Homepage loader ---------- */
.bwa-loader {
	position: fixed; inset: 0; z-index: 9999; display: grid; place-content: center; justify-items: center; gap: 22px;
	background: var(--bwa-cream); opacity: 0; visibility: hidden; transition: opacity .5s ease, visibility 0s linear .5s;
}
.bwa-loading .bwa-loader { opacity: 1; visibility: visible; transition: none; }
.bwa-loader img { width: 96px; height: 96px; border-radius: 50%; animation: bwa-pulse 1.4s ease-in-out infinite; }
.bwa-loader__bar { position: relative; width: 120px; height: 3px; overflow: hidden; background: rgba(176,38,30,.15); border-radius: 3px; }
.bwa-loader__bar::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 40%; background: var(--bwa-red-block); border-radius: 3px; animation: bwa-bar 1.1s ease-in-out infinite; }
@keyframes bwa-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.06); } }
@keyframes bwa-bar { 0% { transform: translateX(-100%); } 100% { transform: translateX(250%); } }
@media (prefers-reduced-motion: reduce) { .bwa-loader img, .bwa-loader__bar::after { animation: none; } }

/* ---------- Hero experiment: floating header bar + inset hero card ---------- */
.site-header.is-floating, .is-scrolled .site-header.is-floating { background: transparent; box-shadow: none; padding: 16px 16px 0; }
/* Fixed header height: when the mobile menu opens, the bar grows down over the page (overlay)
   instead of pushing the hero down. */
.site-header.is-floating { height: 100px; }
.site-header.is-floating .floating-bar { position: relative; z-index: 2; }
@media (max-width: 1279.98px) { .site-header.is-floating { height: 92px; } }
.floating-bar {
	min-height: 84px; padding: 0 16px 0 28px; gap: 24px !important; background: #fff; border-radius: 16px;
	box-shadow: 0 10px 30px rgba(14,22,38,.08); transition: min-height .3s, box-shadow .3s;
}
.is-scrolled .floating-bar { min-height: 70px; box-shadow: 0 12px 36px rgba(14,22,38,.16); }
.floating-logo { margin: 0 !important; }
.floating-logo img { height: 44px !important; width: auto !important; transition: height .3s; }
.is-scrolled .floating-logo img { height: 36px !important; }
.site-header .floating-nav { gap: 30px; font-weight: 500 !important; letter-spacing: .1em; font-size: .8125rem !important; flex-wrap: nowrap; }
.site-header .floating-nav .wp-block-navigation__container { flex-wrap: nowrap; gap: 30px; }
.site-header .floating-nav .wp-block-navigation-item__content { white-space: nowrap; }
/* Desktop: logo and Contact Us stay at the bar's edges; only the menu moves so "What We Do" starts
   at the hero headline's left edge (same maths as the hero card's content inset). Where the headline
   sits under the logo, the menu starts 40px after the logo instead (logo ends at 28px + ~58px). */
@media (min-width: 1280px) {
	.floating-bar > .floating-nav {
		position: absolute; top: 50%; transform: translateY(-50%); margin: 0 !important;
		left: max(clamp(24px, 6vw, 96px), calc((100% - var(--wp--style--global--wide-size)) / 2), 126px);
	}
	.floating-bar > .floating-nav .wp-block-navigation__container { justify-content: flex-start; }
	.floating-cta { margin-left: auto !important; }
}
.site-header .floating-nav .wp-block-navigation-item__content { color: var(--bwa-navy-deep); }
.site-header .floating-nav .wp-block-navigation-item__content:hover,
.site-header .floating-nav .current-menu-item > .wp-block-navigation-item__content { color: var(--bwa-red-block); }

.hero-inset-wrap { padding: 16px; margin: 0 !important; }
.bwa-hero.is-inset {
	border-radius: 22px; overflow: hidden;
	padding: 64px clamp(24px, 6vw, 96px) !important;
}
.bwa-hero.is-inset h1 {
	font-weight: 500; font-size: clamp(2.75rem, 6.2vw, 6rem) !important; line-height: 1.02; letter-spacing: -.045em; max-width: 11ch;
}
.bwa-hero.is-inset .hero-sub { max-width: 44ch; margin-top: 1.75rem !important; font-size: 1.125rem; line-height: 1.6; opacity: .9; }
.bwa-hero.is-inset .hero-actions { margin-top: 2.25rem !important; gap: 12px; }
.hero-proof { margin-top: 2.75rem; }
.hero-proof__faces { display: flex; align-items: center; }
.hero-proof__faces img, .hero-proof__faces span {
	width: 38px; height: 38px; border-radius: 50%; object-fit: cover; border: 2px solid rgba(255,255,255,.92); margin-left: -10px;
}
.hero-proof__faces img:first-child { margin-left: 0; }
.hero-proof__faces span {
	display: grid; place-items: center; background: var(--bwa-red-block); color: #fff; border-color: rgba(255,255,255,.92);
	font: 700 .625rem/1 var(--bwa-display); letter-spacing: -.02em;
}
.hero-proof p { margin: 12px 0 0 !important; font-size: 1rem; color: rgba(255,255,255,.9); }
/* Mobile menu (Pipely-style): the bar wraps and grows into a dropdown card. */
:is(.floating-bar, .menu-bar) { flex-wrap: nowrap !important; row-gap: 0 !important; }
.floating-toggle, .floating-panel { display: none; }
/* Below this width the full menu can't share one row with the logo and Contact Us, so the bar
   switches to the toggle + dropdown (keep in sync with BWA_FLOAT_BP in main.js). */
@media (max-width: 1279.98px) {
	.floating-bar .floating-cta, .floating-bar > .floating-nav { display: none !important; }
	.floating-bar { flex-wrap: wrap !important; padding: 14px 14px 14px 24px; border-radius: 20px; min-height: 0; }
	.floating-toggle {
		display: grid; place-content: center; gap: 5px; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 4px;
		background: var(--bwa-red-block); cursor: pointer; margin: 0 !important;
	}
	.floating-toggle span { display: block; width: 22px; height: 2px; background: #fff; border-radius: 2px; transition: transform .35s cubic-bezier(.2,.8,.2,1), opacity .2s; }
	:is(.floating-bar, .menu-bar).is-open .floating-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
	:is(.floating-bar, .menu-bar).is-open .floating-toggle span:nth-child(2) { opacity: 0; }
	:is(.floating-bar, .menu-bar).is-open .floating-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
	.floating-toggle:focus-visible { outline: 2px solid var(--bwa-navy-deep); outline-offset: 3px; }

	/* Height animates via grid rows (0fr → 1fr). Closing: links fade first, then the card collapses. */
	.floating-panel {
		display: grid; grid-template-rows: 0fr; flex-basis: 100%; order: 10; margin: 0 !important;
		transition: grid-template-rows .32s cubic-bezier(.4,0,.2,1) .14s;
	}
	:is(.floating-bar, .menu-bar).is-open .floating-panel { grid-template-rows: 1fr; transition: grid-template-rows .45s cubic-bezier(.2,.8,.2,1); }
	.floating-panel__inner { overflow: hidden; min-height: 0; }
	.floating-panel ul { list-style: none; margin: 0; padding: 18px 0 4px; }
	.floating-panel li, .floating-panel__cta {
		opacity: 0; transform: translateX(28px); transition: opacity .14s ease, transform .14s ease;
	}
	:is(.floating-bar, .menu-bar).is-open .floating-panel li, :is(.floating-bar, .menu-bar).is-open .floating-panel__cta {
		opacity: 1; transform: none;
		transition: opacity .4s ease calc(.12s + var(--i) * .07s), transform .5s cubic-bezier(.2,.8,.2,1) calc(.12s + var(--i) * .07s);
	}
	.floating-panel li a {
		display: block; padding: 12px 0; color: #4a4f5a; text-decoration: none;
		font: 500 1rem/1.2 var(--bwa-display); text-transform: uppercase; letter-spacing: .12em;
	}
	.floating-panel li a:hover, .floating-panel li a[aria-current] { color: var(--bwa-red-block); }
	.floating-panel__cta { display: block; margin: 14px 10px 6px 0 !important; }
	.floating-panel__cta .wp-block-button__link { display: block; text-align: center; padding: 16px 20px; }

	/* Navy header (inner pages): same behaviour as the homepage. The bar keeps its height in the
	   header so the open dropdown overlays the page instead of pushing it down. */
	.menu-bar > .site-nav { display: none !important; }
	.menu-bar { flex-wrap: wrap !important; align-content: flex-start; }
	.site-header:not(.is-floating) { height: var(--bwa-header-h); }
	.is-scrolled .site-header:not(.is-floating) { height: 76px; }
	.menu-bar { position: relative; z-index: 2; transition: background-color .3s, box-shadow .3s, min-height .3s; }
	/* First row = exactly the header height, so logo and toggle stay centred whatever the logo size. */
	.menu-bar { min-height: 0 !important; align-items: center !important; }
	.menu-bar > .wp-block-site-logo { height: var(--bwa-header-h); display: flex; align-items: center; margin: 0 !important; transition: height .3s; }
	.is-scrolled .menu-bar > .wp-block-site-logo { height: 76px; }
	.menu-bar > .floating-toggle { align-self: center; }
	.menu-bar.is-open { background: var(--bwa-navy-deep); box-shadow: 0 0 0 var(--wp--custom--gutter) var(--bwa-navy-deep), 0 34px 40px rgba(0,0,0,.35); }
	.menu-bar .floating-panel ul { padding-top: 6px; }
	.menu-bar .floating-panel li a { color: rgba(255,255,255,.85); }
	.menu-bar .floating-panel li a:hover, .menu-bar .floating-panel li a[aria-current] { color: var(--bwa-blue); }
	.menu-bar .floating-panel__cta { margin: 14px 0 18px !important; }
	.menu-bar .floating-panel__cta .wp-block-button__link { color: var(--bwa-red-block) !important; }
	.menu-bar .floating-panel__cta .wp-block-button__link::before { background: #fff; }
	.menu-bar .floating-toggle:focus-visible { outline-color: #fff; }
}
@media (prefers-reduced-motion: reduce) {
	.floating-panel, .floating-panel li, .floating-panel__cta, .floating-toggle span { transition: none !important; }
}
@media (max-width: 600px) {
	.bwa-hero.is-inset .hero-proof { display: none; } /* keeps the phone hero close to half the screen */
}
@media (max-width: 781.98px) {
	.site-header.is-floating { padding: 16px 16px 0; }
	.floating-logo img { height: 40px !important; }
	.hero-inset-wrap { padding: 16px; }
	.bwa-hero.has-slides.is-inset { border-radius: 16px; padding: 40px 22px 56px !important; }	.bwa-hero.is-inset h1 { font-size: clamp(2.25rem, 10vw, 2.75rem) !important; }
	.bwa-hero.is-inset .hero-sub { font-size: .9375rem; margin-top: 1rem !important; }
	.bwa-hero.is-inset .hero-actions { margin-top: 1.25rem !important; }
	.hero-proof { margin-top: 1.5rem; }
	.hero-proof__faces img, .hero-proof__faces span { width: 30px; height: 30px; margin-left: -8px; }
	.hero-proof p { font-size: .875rem; }
}

/* ---------- Home: vision & mission (photo collage + icon rows) ---------- */
.vm-collage { position: relative; display: grid !important; grid-template-columns: 1fr 1fr; gap: 18px; padding-right: 28px; }
.vm-collage > * { margin: 0 !important; }
.vm-photo img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 10px; display: block; box-shadow: 0 18px 40px rgba(14,22,38,.12); }
.vm-photo--a { align-self: start; margin-bottom: 56px !important; }
.vm-photo--b { align-self: end; margin-top: 56px !important; }
.vm-badge {
	position: absolute; right: 0; bottom: 18%; z-index: 2; min-width: 180px; padding: 26px 24px !important;
	background: var(--bwa-navy-deep); color: #fff; border-radius: 10px; text-align: center;
	font: 600 .8125rem/1.5 var(--bwa-display); text-transform: uppercase; letter-spacing: .08em;
	box-shadow: 0 20px 40px rgba(14,22,38,.3);
}
.vm-badge strong { display: block; font: 800 2.5rem/1 var(--bwa-display); letter-spacing: -.02em; margin-bottom: 8px; color: #fff; }
.vm-badge::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 4px; background: var(--bwa-red); border-radius: 0 0 3px 3px; }

.vm-pill {
	display: inline-block; margin: 0 0 2.25rem !important; padding: 10px 18px; border: 1.5px solid rgba(27,39,64,.25); border-radius: 6px;
	font: 600 .8125rem/1 var(--bwa-display); text-transform: uppercase; letter-spacing: .08em; color: var(--bwa-navy);
}
.vm-item { gap: 24px !important; padding: 30px 0; margin: 0 !important; border-bottom: 1px solid rgba(27,39,64,.12); }
.vm-pill + .vm-item { padding-top: 0; }
.vm-item:last-child { border-bottom: 0; padding-bottom: 0; }
.vm-icon {
	flex: none; width: 68px; height: 68px; display: grid; place-items: center; border-radius: 8px;
	background: var(--bwa-navy-deep); color: #fff; transition: background .25s, transform .25s;
}
.vm-item:hover .vm-icon { background: var(--bwa-red-block); transform: translateY(-2px); }
.vm-text > * { margin: 0 !important; }
.vm-text h3 { font-size: 1.375rem !important; color: var(--bwa-navy); letter-spacing: 0; }
.vm-text p { margin-top: 10px !important; font-size: 1.125rem; line-height: 1.6; color: #4a4f5a; max-width: 46ch; }
@media (max-width: 781px) {
	.vm-collage { padding-right: 0; margin-bottom: 2.5rem !important; }
	.vm-photo--a { margin-bottom: 36px !important; }
	.vm-photo--b { margin-top: 36px !important; }
	.vm-badge { right: 12px; bottom: 10%; min-width: 0; padding: 18px 18px !important; }
	.vm-badge strong { font-size: 1.875rem; }
	.vm-icon { width: 56px; height: 56px; }
	.vm-item { gap: 18px !important; }
	.vm-text h3 { font-size: 1.125rem !important; }
	.vm-text p { font-size: 1rem; }
}

/* ---------- Home additions ---------- */
.pillar-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.quote-band .quote-body { max-width: 52ch; color: rgba(255,255,255,.88); margin-top: 1.25rem !important; }
.summit-facts .span-2 { grid-column: 1 / -1; }
.past-badge { display: inline-block; background: var(--bwa-red-block); color: #fff !important; padding: 8px 12px; transform: skewX(-12deg); }

/* ---------- Past events ---------- */
.past-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 24px !important; }
.past-card { background: rgba(255,255,255,.06); margin: 0 !important; position: relative; transition: transform .3s; }
.past-card:hover { transform: translateY(-6px); }
.past-card figure { margin: 0; }
.past-card img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.past-card__body { padding: 24px 24px 28px !important; }
.past-card__body > * { margin: 0 !important; }
.past-card__body > * + * { margin-top: 12px !important; }
.past-date { font: 600 .75rem/1.4 var(--bwa-display); text-transform: uppercase; color: var(--bwa-blue); }
.past-card h3 { font-size: 1.125rem !important; line-height: 1.3; }
.past-card .more a { color: var(--bwa-blue); }
.past-card .more a::before { content: ""; position: absolute; inset: 0; }
.past-card .more a::after { content: " →"; }
.has-navy-background-color .more a { font: 700 .75rem/1 var(--bwa-display); text-transform: uppercase; text-decoration: none; }

/* ---------- Business School ---------- */
/* Core pads coloured columns; drop that and align the copy to the site's wide edge, measured
   against the hero itself (cqw) so the scrollbar never throws it off. */
.school-hero { margin-top: 0 !important; margin-bottom: 0 !important; padding: 0 !important; min-height: 88vh; align-items: stretch !important; gap: 0 !important; container-type: inline-size; }
.school-hero > .wp-block-column { margin: 0 !important; min-width: 0; }
.school-hero__text {
	padding: calc(var(--bwa-header-h) + 56px) clamp(24px, 5vw, 72px) clamp(56px, 7vw, 96px) max(var(--wp--custom--gutter), calc((100cqw - var(--wp--style--global--wide-size)) / 2)) !important;
}
.school-hero__text h1 { max-width: 18ch; line-height: 1.08; }
.school-hero__text p { max-width: 54ch; color: rgba(255,255,255,.92); }
.school-hero__media { position: relative; min-height: 420px; }
.school-hero__media figure { position: absolute; inset: 0; margin: 0 !important; }
.school-hero__media img { width: 100%; height: 100% !important; object-fit: cover; transform: scaleX(-1); } /* mirrored so the subject faces the headline */
.school-hero__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--bwa-red-block) 0%, rgba(176,38,30,0) 22%); pointer-events: none; }

.programme-index { padding-top: 0 !important; padding-bottom: 0 !important; }
.programme-index__grid { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 0 !important; }
.programme-index__item { margin: 0 !important; border-left: 1px solid rgba(255,255,255,.12); }
.programme-index__item:last-child { border-right: 1px solid rgba(255,255,255,.12); }
.programme-index__item a {
	display: flex; flex-direction: column; gap: 10px; height: 100%; padding: 30px 26px; color: #fff; text-decoration: none;
	font: 700 1.0625rem/1.3 var(--bwa-display); transition: background .25s;
}
.programme-index__item a span { font-size: .8125rem; color: var(--bwa-blue); }
.programme-index__item a:hover { background: var(--bwa-red-block); }
.programme-index__item a:hover span { color: #fff; }
#training-programs, #courses, #free-weekly-webinars, #need-based-curriculums { scroll-margin-top: 90px; }

.webinar-band { color: var(--bwa-navy-deep); }
.webinar-band h2 { color: var(--bwa-navy-deep); }
.webinar-num { font: 800 .9375rem/1 var(--bwa-display); color: #fff; background: var(--bwa-navy-deep); display: inline-block; padding: 10px 12px; margin-bottom: 1.25rem !important; }
/* Schedule line: a step below the section heading (x-large), white for emphasis on green. */
.webinar-time { margin-top: 1.25rem !important; font: 700 clamp(1.375rem, 2.2vw, 1.875rem)/1.25 var(--bwa-display); letter-spacing: -.01em; color: #fff; }
.webinar-band p:not(.webinar-num):not(.webinar-time) { font-size: 1.0625rem; line-height: 1.7; }

.school-closing { padding: clamp(72px, 10vw, 140px) var(--wp--custom--gutter) !important; }
.school-closing h3 { line-height: 1.25; }
.school-closing .wp-block-button__link { color: var(--bwa-red-block) !important; }
.school-closing .wp-block-button__link::before { background: #fff; }
.school-closing .wp-block-button__link:hover { color: #fff !important; }
.school-closing .wp-block-button__link:hover::before { background: var(--bwa-navy-deep); }

@media (max-width: 1100px) {
	.programme-index__grid { grid-template-columns: repeat(2, 1fr); }
	.programme-index__item { border-bottom: 1px solid rgba(255,255,255,.12); }
}
@media (max-width: 781px) {
	.school-hero { min-height: 0; }
	.school-hero__text { padding: calc(var(--bwa-header-h) + 40px) var(--wp--custom--gutter) 56px !important; }
	.school-hero__media { min-height: 300px; }
	.school-hero__media::after { background: linear-gradient(180deg, var(--bwa-red-block) 0%, rgba(176,38,30,0) 25%); }
}
@media (max-width: 480px) {
	.programme-index__grid { grid-template-columns: 1fr; }
	.programme-index__item a { flex-direction: row; align-items: baseline; padding: 20px 4px; }
}

/* ---------- Inner-page hero ---------- */
.bwa-hero.is-page { min-height: 72vh !important; padding-bottom: clamp(48px, 7vw, 88px) !important; }
.bwa-hero.is-page h1 { max-width: 16ch; }
.bwa-hero.is-page .wp-block-cover__background { background: linear-gradient(0deg, rgba(14,22,38,.9) 0%, rgba(14,22,38,.55) 55%, rgba(14,22,38,.35) 100%) !important; }

/* ---------- Feature rows (image + text) ---------- */
.feature-row + .feature-row { margin-top: clamp(56px, 8vw, 104px) !important; }
.feature-row.is-reversed { flex-direction: row-reverse; }
.feature-media { position: relative; align-self: center; }
.feature-media figure { margin: 0; }
.feature-media img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.feature-text .section-title { line-height: 1.15; }
.check-list { list-style: none; padding: 0; margin: 0; }
.check-list li { position: relative; padding: 12px 0 12px 30px; border-top: 1px solid rgba(90,18,13,.12); font-weight: 500; }
.check-list li::before { content: ""; position: absolute; left: 0; top: 19px; width: 14px; height: 14px; background: var(--bwa-green); transform: skewX(-12deg); }
.has-red-block-background-color .check-list li::before { background: #fff; }
.has-red-block-background-color .check-list li, .has-navy-background-color .check-list li { border-color: rgba(255,255,255,.18); }

/* ---------- Info cards ---------- */
.info-grid { display: grid !important; gap: 20px !important; }
.info-grid.cols-2 { grid-template-columns: repeat(2, 1fr); }
.info-grid.cols-3 { grid-template-columns: repeat(3, 1fr); }
.info-grid.cols-4 { grid-template-columns: repeat(4, 1fr); }
.info-card { background: var(--bwa-cream); padding: 30px 28px 32px; margin: 0 !important; border-top: 4px solid var(--bwa-red-block); transition: transform .3s; }
.info-card:hover { transform: translateY(-4px); }
.has-cream-background-color .info-card { background: #fff; }
.has-red-block-background-color .info-card, .has-navy-background-color .info-card { background: rgba(255,255,255,.08); border-top-color: var(--bwa-blue); }
.has-red-block-background-color .info-card { border-top-color: #fff; }
.info-card > * { margin: 0 !important; }
/* Card photo: full-bleed across the top of the card, under the coloured border. */
.info-card.has-image { padding-top: 0; overflow: hidden; }
.info-card .info-img { margin: 0 -28px 22px !important; }
.info-card .info-img img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .6s; }
.info-card.has-image:hover .info-img img { transform: scale(1.04); }
.info-card .info-img + * { margin-top: 0 !important; }
.info-card > * + * { margin-top: 12px !important; }
.info-num { font: 800 .9375rem/1 var(--bwa-display); color: var(--bwa-red-block); }
.has-navy-background-color .info-num { color: var(--bwa-blue); }
.has-red-block-background-color .info-num { color: #fff; }
.info-label { font: 600 .75rem/1.3 var(--bwa-display); text-transform: uppercase; letter-spacing: .06em; color: var(--wp--preset--color--green); }
.info-card h3 { font-size: 1.125rem !important; line-height: 1.3; color: var(--bwa-red-deep); }
.has-red-block-background-color .info-card h3, .has-navy-background-color .info-card h3 { color: #fff; }
.info-card p { font-size: .9375rem; line-height: 1.65; }

/* ---------- Highlight band (green) ---------- */
.highlight-band { color: var(--bwa-navy-deep); }
.highlight-band h2 { color: var(--bwa-navy-deep); }
.highlight-big { font: 700 clamp(2.5rem, 6vw, 5rem)/1.02 var(--bwa-display); color: var(--bwa-navy-deep); letter-spacing: -.03em; }

/* ---------- Speakers ---------- */
.speaker-grid { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 20px !important; }
.speaker { background: #fff; padding: 26px 24px; margin: 0 !important; border-left: 4px solid var(--bwa-green); }
.speaker > * { margin: 0 !important; }
.speaker-initials { width: 56px; height: 56px; display: grid; place-items: center; border-radius: 50%; background: var(--bwa-red-block); color: #fff; font: 800 1.125rem/1 var(--bwa-display); }
.speaker h3 { margin-top: 18px !important; font-size: 1.125rem !important; color: var(--bwa-navy); }
.speaker p:last-child { margin-top: 6px !important; font-size: .875rem; line-height: 1.5; color: var(--wp--preset--color--muted); }

/* ---------- Tracks ---------- */
.track { display: grid !important; grid-template-columns: 120px 1fr; gap: 24px !important; padding: 28px 0; border-top: 1px solid rgba(255,255,255,.18); margin: 0 !important; }
.track > * { margin: 0 !important; }
.track-num { font: 800 .8125rem/1 var(--bwa-display); text-transform: uppercase; color: var(--bwa-blue); padding-top: 6px; }
.track h3 { font-size: 1.25rem !important; }
.track p { margin-top: 10px !important; color: rgba(255,255,255,.85); }

/* ---------- Contact ---------- */
.contact-grid { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 20px !important; }
.contact-grid.is-single { grid-template-columns: minmax(0, 560px) !important; justify-content: center; }
.contact-grid.is-single .contact-card { padding: 40px 36px; text-align: center; border-top: 4px solid var(--bwa-red-block); }
.contact-grid.is-single .contact-card h3 { font-size: 1.5rem !important; }
.contact-grid.is-single .contact-card p:not(.contact-role) { font-size: 1.125rem; }
.contact-card { background: var(--bwa-cream); padding: 32px 28px; margin: 0 !important; }
.contact-card > * { margin: 0 !important; }
.contact-card h3 { font-size: 1.125rem !important; color: var(--bwa-red-deep); }
.contact-card .contact-role { margin-top: 6px !important; font: 600 .75rem var(--bwa-display); text-transform: uppercase; color: var(--wp--preset--color--green); letter-spacing: .05em; }
.contact-card p:not(.contact-role) { margin-top: 14px !important; font-size: .9375rem; }
.contact-card a { color: var(--bwa-navy); }

/* ---------- Contact form (Fluent Forms) in theme style ---------- */
.contact-form-card { background: #fff; padding: clamp(32px, 5vw, 56px) clamp(22px, 5vw, 56px) !important; border-top: 4px solid var(--bwa-red-block); }
.contact-form-card .section-title { margin-bottom: 2rem !important; }
.contact-form-card .fluentform { font-family: var(--wp--preset--font-family--body); }
.contact-form-card .ff-el-group { margin-bottom: 20px; }
.contact-form-card .ff-el-input--label label {
	font: 600 .75rem/1.3 var(--bwa-display) !important; text-transform: uppercase; letter-spacing: .08em; color: var(--bwa-navy) !important;
}
.contact-form-card .ff-el-is-required.asterisk-right label::after { color: var(--bwa-red-block) !important; }
.contact-form-card .ff-el-form-control {
	border: 1.5px solid rgba(27,39,64,.18) !important; border-radius: 4px !important; background: #fff !important;
	padding: 14px 16px !important; font: 400 1rem/1.4 var(--wp--preset--font-family--body) !important; color: var(--bwa-navy-deep) !important;
	transition: border-color .2s, box-shadow .2s;
}
.contact-form-card .ff-el-form-control:focus { border-color: var(--bwa-red-block) !important; box-shadow: 0 0 0 3px rgba(176,38,30,.12) !important; outline: 0; }
.contact-form-card textarea.ff-el-form-control { min-height: 160px; }
/* Phone field: leave room for the international country-flag picker (44px wide). */
.contact-form-card .iti { width: 100%; }
.contact-form-card .iti input.ff-el-form-control { padding-left: 56px !important; }
.contact-form-card .ff_submit_btn_wrapper { margin-top: 8px; text-align: center; }
/* Submit button: same slanted red style as the site's buttons. */
.contact-form-card .ff-btn-submit {
	position: relative; isolation: isolate; background: transparent !important; border: 0 !important; color: #fff !important;
	font: 700 .875rem/1 var(--bwa-display) !important; text-transform: uppercase; letter-spacing: .02em; padding: 16px 36px !important;
	box-shadow: none !important; cursor: pointer;
}
.contact-form-card .ff-btn-submit::before {
	content: ""; position: absolute; inset: 0; z-index: -1; background: var(--bwa-red-block); border-radius: 3px; transform: skewX(-12deg); transition: background .2s;
}
.contact-form-card .ff-btn-submit:hover::before { background: var(--bwa-navy); }
.contact-form-card .ff-message-success { border: 0; border-left: 4px solid var(--wp--preset--color--green); background: var(--bwa-cream); color: var(--bwa-navy-deep); }
.contact-form-card .error.text-danger { color: var(--bwa-red-block); font-size: .8125rem; }

/* ---------- FAQ (details blocks) ---------- */
.wp-block-details { border-top: 1px solid rgba(90,18,13,.15); padding: 0; margin: 0 !important; }
.wp-block-details:last-of-type { border-bottom: 1px solid rgba(90,18,13,.15); }
.wp-block-details summary {
	list-style: none; cursor: pointer; position: relative; padding: 24px 48px 24px 0;
	font: 700 1.1875rem/1.4 var(--bwa-display); color: var(--bwa-navy);
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); font-size: 1.75rem; font-weight: 400; color: var(--bwa-red-block); transition: transform .2s; }
.wp-block-details[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.wp-block-details > :not(summary) { margin: 0 0 24px !important; max-width: 64ch; }

/* ---------- Legal / long text ---------- */
.legal h2 { font-size: 1.25rem !important; color: var(--bwa-red-block); margin-top: 2.2em; }
.legal h3 { font-size: 1.0625rem !important; text-transform: none; }

/* ---------- 404 / search ---------- */
.wp-block-search__input { border: 2px solid var(--bwa-navy); padding: 12px 14px; }

/* ---------- Reveal ---------- */
.bwa-js .reveal { opacity: 0; transform: translateY(30px); transition: opacity .8s ease, transform .8s ease; }
.bwa-js .reveal.is-in { opacity: 1; transform: none; }
.editor-styles-wrapper .reveal { opacity: 1 !important; transform: none !important; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.pillar-grid, .info-grid.cols-4, .speaker-grid { grid-template-columns: repeat(2, 1fr); }
	.info-grid.cols-3, .contact-grid, .past-grid { grid-template-columns: repeat(2, 1fr); }
	.pillar-grid.cols-3 { grid-template-columns: 1fr 1fr; }
	.logo-wall { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 781px) {
	.feature-row.is-reversed { flex-direction: column; }
	.info-grid.cols-2, .info-grid.cols-3, .info-grid.cols-4, .contact-grid, .past-grid, .pillar-grid.cols-3 { grid-template-columns: 1fr; }
	.track { grid-template-columns: 1fr; gap: 8px !important; }
}
@media (max-width: 860px) {
	/* No core has-background padding when stacked: photo runs edge to edge, text sits on the page gutter. */
	.quote-band { flex-direction: column; padding: 0 !important; }
	.quote-band > .wp-block-column { box-sizing: border-box; }
	.quote-band .quote-img { min-height: 320px; flex-basis: auto !important; }
	.quote-band.has-navy-background-color .quote-img::after { background: linear-gradient(180deg, transparent 50%, var(--bwa-navy) 100%); }
	.quote-band.has-red-block-background-color .quote-img::after { background: linear-gradient(180deg, transparent 50%, var(--bwa-red-block) 100%); }
	.quote-band .quote-text { padding: 8px var(--wp--custom--gutter) 64px !important; }
	.post-cards .wp-block-post-template { grid-template-columns: 1fr; }
	.stats-grid { grid-template-columns: repeat(2, 1fr); }
	.stats-grid > :nth-child(3) { border-left: 0; }
	.stats-grid > :nth-child(n+3) { border-top: 1px solid rgba(255,255,255,.12); }
	.cta-band > .wp-block-group { flex-direction: column; align-items: stretch !important; }
	.cta-band form { flex: none; }
	.news-head { flex-direction: column; align-items: flex-start !important; }
	.hero-flag { display: none; }
}
@media (max-width: 781px) {
	.admin-bar { --bwa-admin-offset: 46px; }
}
@media (max-width: 600px) {
	.admin-bar { --bwa-admin-offset: 0px; } /* admin bar scrolls away on small screens */
}
@media (max-width: 600px) {
	:root { --bwa-header-h: 84px; }
	.site-header .wp-block-site-logo img { height: 54px; }
	.pillar-grid, .speaker-grid { grid-template-columns: 1fr; }
	.mosaic { grid-template-rows: 220px 150px; }
	.cta-band form { flex-direction: column; }
	.logo-wall { grid-template-columns: repeat(2, 1fr); }
	.logo-wall img { max-height: 56px !important; }
	.post-body { font-size: 1.0625rem; }
}

/* Cookie consent (inc/consent.php, assets/js/consent.js) */
.bwa-consent {
	position: fixed; z-index: 9000; left: clamp(12px, 3vw, 32px); bottom: clamp(12px, 3vw, 32px);
	width: min(460px, calc(100vw - 24px)); box-sizing: border-box; max-height: calc(100vh - 24px); overflow-y: auto;
	padding: 24px 24px 22px; background: var(--bwa-navy-deep); color: rgba(255,255,255,.88);
	border-top: 5px solid var(--bwa-red); box-shadow: 0 24px 60px -12px rgba(0,0,0,.5);
	font-size: 0.9375rem; line-height: 1.55;
	opacity: 0; transform: translateY(16px); transition: opacity .25s, transform .25s;
}
.bwa-consent.is-visible { opacity: 1; transform: none; }
.bwa-consent[hidden] { display: none; }
.bwa-consent p { margin: 0; }
.bwa-consent__title { font: 700 1.25rem/1.2 var(--bwa-display); color: #fff; margin-bottom: 8px !important; }
.bwa-consent__text a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.bwa-consent__text a:hover { color: var(--bwa-blue); }
.bwa-consent__prefs { display: grid; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14); }
.bwa-consent__prefs[hidden] { display: none; }
.bwa-consent__opt { display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; cursor: pointer; font-size: 0.875rem; }
.bwa-consent__opt strong { display: block; color: #fff; font-family: var(--bwa-display); font-size: 0.9375rem; }
.bwa-consent__opt input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--bwa-red-block); cursor: pointer; }
.bwa-consent__opt input:disabled { cursor: not-allowed; opacity: .6; }
.bwa-consent__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-top: 18px; }
/* Accept and Reject get equal weight, as consent rules expect. */
.bwa-consent__btn {
	flex: 1 1 130px; min-height: 46px; padding: 12px 20px; border: 0; cursor: pointer;
	font: 700 0.8125rem/1 var(--wp--preset--font-family--body, sans-serif); letter-spacing: .1em; text-transform: uppercase;
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%); transition: background-color .2s, color .2s;
}
.bwa-consent__btn[hidden] { display: none; }
.bwa-consent__btn.is-primary { background: var(--bwa-red-block); color: #fff; }
.bwa-consent__btn.is-secondary { background: #fff; color: var(--bwa-navy-deep); }
.bwa-consent__btn:hover { background: var(--bwa-blue); color: var(--bwa-navy-deep); }
.bwa-consent__btn:focus-visible, .bwa-consent__link:focus-visible, .bwa-consent__opt input:focus-visible { outline: 2px solid var(--bwa-blue); outline-offset: 3px; }
.bwa-consent__link { background: none; border: 0; padding: 4px 0; color: #fff; cursor: pointer; font: 600 0.8125rem var(--wp--preset--font-family--body, sans-serif); letter-spacing: .08em; text-transform: uppercase; text-decoration: underline; text-underline-offset: 4px; }
.bwa-consent__link[hidden] { display: none; }
.bwa-consent__link:hover { color: var(--bwa-blue); }
@media (max-width: 600px) {
	.bwa-consent { left: 12px; right: 12px; bottom: 12px; width: auto; padding: 20px 18px 18px; }
	.bwa-consent__link { flex-basis: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .bwa-consent { transition: none; } }

/* Embedded videos waiting for consent */
:where(*):has(> .bwa-embed-gate) { position: relative; min-height: 220px; }
.bwa-embed-gate {
	position: absolute; inset: 0; z-index: 1; display: grid; place-content: center; justify-items: center; gap: 16px;
	padding: 24px; text-align: center; background: var(--bwa-navy-deep); color: rgba(255,255,255,.88); font-size: 0.9375rem;
}
.bwa-embed-gate p { margin: 0; max-width: 40ch; }
.bwa-embed-gate__btn {
	min-height: 44px; padding: 12px 24px; border: 0; cursor: pointer; background: var(--bwa-red-block); color: #fff;
	font: 700 0.8125rem/1 var(--wp--preset--font-family--body, sans-serif); letter-spacing: .1em; text-transform: uppercase;
	clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%);
}
.bwa-embed-gate__btn:hover { background: var(--bwa-blue); color: var(--bwa-navy-deep); }
.bwa-embed-gate__btn:focus-visible { outline: 2px solid var(--bwa-blue); outline-offset: 3px; }