/*
Theme Name: AFB Monde
Theme URI: https://afbahrain.org/
Author: Alliance Française Bahrain
Description: Proposition 3 — "a bridge between Bahrain, France and the world": clear enrolment paths and a strong narrative, mobile-first block theme for the Alliance Française Bahrain.
Version: 1.0.0
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: afb-monde
*/

/* ==========================================================================
   Tokens — AF red + white, warm stone greys (as the new premises).
   Colour references to be checked against the network's brand guidelines.
   ========================================================================== */

:root {
	/* Palette proposed in the brief (to be validated with the Alliance).
	   Text-safe variants keep WCAG AA contrast on ivory and white. */
	--afb-navy: var(--wp--preset--color--navy, #142840);
	--afb-ivory: var(--wp--preset--color--ivory, #f7f3eb);
	--afb-coral: var(--wp--preset--color--coral, #ef6555);
	--afb-coral-dark: var(--wp--preset--color--coral-dark, #b23f33);
	--afb-teal: var(--wp--preset--color--turquoise, #168c91);
	--afb-teal-dark: var(--wp--preset--color--turquoise-dark, #0f6e72);
	--afb-sand: var(--wp--preset--color--sand, #c6a66b);
	--afb-red: var(--afb-coral);
	--afb-red-dark: var(--afb-coral-dark);
	--afb-ink: var(--afb-navy);
	--afb-slate: var(--wp--preset--color--slate, #4e5a6b);
	--afb-stone: #efe7d8;
	--afb-line: #e2d7c3;
	--afb-green: #128c4a;
	--afb-radius: 18px;
	--afb-shadow: 0 1px 2px rgba(20, 40, 64, .06), 0 14px 32px -16px rgba(20, 40, 64, .28);
	--afb-shadow-lg: 0 2px 4px rgba(20, 40, 64, .06), 0 30px 60px -24px rgba(20, 40, 64, .4);
	--afb-ease: cubic-bezier(.2, .7, .2, 1);
	--afb-gutter: clamp(1rem, 4vw, 2.5rem);
	--afb-wide: 1240px;
}

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; }
:where(a) { text-underline-offset: .18em; text-decoration-thickness: 1px; }
:where(h1, h2, h3, h4) { text-wrap: balance; }
:where(p) { text-wrap: pretty; }
img { height: auto; max-width: 100%; }
::selection { background: var(--afb-sand); color: var(--afb-navy); }

/* Accessibility: visible focus and skip link */
:focus-visible { outline: 3px solid var(--afb-teal-dark); outline-offset: 2px; }
.afb-skip {
	position: absolute;
	left: .75rem;
	top: -100px;
	z-index: 1000;
	padding: .75rem 1rem;
	background: var(--afb-ink);
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}
.afb-skip:focus { top: .75rem; }
.screen-reader-text:not(:focus) { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); white-space: nowrap; }

/* Icons (CSS masks; the set is generated at the end of this file) */
.afb-i,
.afb-ico-before::before {
	display: inline-block;
	flex: none;
	width: 1.15em;
	height: 1.15em;
	background: currentColor;
	-webkit-mask: var(--afb-icon) no-repeat center / contain;
	mask: var(--afb-icon) no-repeat center / contain;
	vertical-align: -.2em;
}

/* ==========================================================================
   Prototype ribbon
   ========================================================================== */

.afb-proto {
	margin: 0;
	padding: .45rem var(--afb-gutter);
	background: #fff4c2;
	color: #5c4a00;
	font-size: var(--wp--preset--font-size--x-small);
	text-align: center;
}
.afb-sample {
	display: inline-block;
	padding: .05rem .45rem;
	border: 1px dashed #b38f00;
	border-radius: 3px;
	background: #fffaf0;
	color: #7a5f00;
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .02em;
	vertical-align: middle;
	white-space: nowrap;
}

/* ==========================================================================
   Typography helpers
   ========================================================================== */

.afb-kicker {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: .5rem !important;
	color: var(--afb-teal-dark);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.afb-kicker::before { content: ""; width: 2rem; height: 2px; background: var(--afb-sand); }
.afb-lead { color: var(--afb-slate); font-size: var(--wp--preset--font-size--large); line-height: 1.55; }
.afb-muted { color: var(--afb-slate); }
.afb-small { font-size: var(--wp--preset--font-size--small); }

/* ==========================================================================
   Layout: sections
   ========================================================================== */

.afb-section {
	padding-top: var(--wp--preset--spacing--60);
	padding-bottom: var(--wp--preset--spacing--60);
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}
.afb-section--tight { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.afb-section--stone { background: var(--afb-stone); }
.afb-section--ink { background: var(--afb-navy); color: var(--afb-ivory); }
.afb-section--red { background: var(--afb-coral); color: var(--afb-navy); }
.afb-section--teal { background: var(--afb-teal-dark); color: #fff; }
.afb-section--white { background: #fff; }
:is(.afb-section--ink, .afb-section--teal) :is(h1, h2, h3, h4) { color: #fff; }
:is(.afb-section--ink, .afb-section--teal) .afb-lead,
:is(.afb-section--ink, .afb-section--teal) .afb-muted { color: rgba(255, 255, 255, .86); }
:is(.afb-section--ink, .afb-section--teal) .afb-kicker { color: #fff; }
:is(.afb-section--ink, .afb-section--teal) a:not(.wp-element-button):not(.afb-btn) { color: #fff; }

.afb-head { max-width: 46rem; margin-bottom: var(--wp--preset--spacing--40) !important; }
.afb-head > * { margin-top: 0; }
.afb-head h2 { margin-bottom: .6rem; }
.afb-head-row {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1rem 2rem;
	margin-bottom: var(--wp--preset--spacing--40) !important;
}
.afb-head-row .afb-head { margin-bottom: 0 !important; }

.afb-reveal.is-pending { opacity: 0; transform: translateY(12px); transition: opacity .6s var(--afb-ease), transform .6s var(--afb-ease); }
.afb-reveal.is-visible { opacity: 1; transform: none; }

/* ==========================================================================
   Buttons (block buttons + .afb-btn used by the plugin output)
   ========================================================================== */

.afb-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	min-height: 44px;
	padding: .7rem 1.25rem;
	border: 2px solid var(--afb-coral);
	border-radius: 999px;
	background: var(--afb-coral);
	color: var(--afb-navy) !important;
	font-weight: 700;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.afb-btn:hover { background: var(--afb-navy); border-color: var(--afb-navy); color: var(--afb-ivory) !important; }
.afb-btn--small { min-height: 40px; padding: .45rem .9rem; font-size: var(--wp--preset--font-size--small); }
.afb-btn--block { display: flex; width: 100%; }
.afb-btn--outline { border-color: var(--afb-navy); background: transparent; color: var(--afb-navy) !important; }
.afb-btn--outline:hover { background: var(--afb-navy); color: var(--afb-ivory) !important; }
.afb-btn--ghost { border-color: var(--afb-line); background: #fff; color: var(--afb-ink) !important; }
.afb-btn--ghost:hover { border-color: var(--afb-ink); background: #fff; }
.afb-btn--whatsapp { border-color: var(--afb-green); background: var(--afb-green); color: #fff !important; }
.afb-btn--whatsapp:hover { border-color: #0c6b38; background: #0c6b38; }

.wp-block-button__link { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; transition: background-color .2s ease, color .2s ease; }
.wp-block-button.is-style-outline > .wp-block-button__link { border: 2px solid currentColor; background: transparent; color: var(--afb-navy); padding-top: calc(.85rem - 2px); padding-bottom: calc(.85rem - 2px); }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--afb-navy); border-color: var(--afb-navy); color: var(--afb-ivory); }
:is(.afb-section--ink, .afb-section--teal, .afb-hero, .afb-cta) .wp-block-button.is-style-outline > .wp-block-button__link { color: #fff; }
:is(.afb-section--ink, .afb-section--teal, .afb-hero, .afb-cta) .wp-block-button.is-style-outline > .wp-block-button__link:hover { background: #fff; border-color: #fff; color: var(--afb-navy); }
.afb-btn-white .wp-block-button__link { background: var(--afb-ivory); color: var(--afb-navy); }
.afb-btn-white .wp-block-button__link:hover { background: var(--afb-coral); color: var(--afb-navy); }
.afb-btn-wa .wp-block-button__link { background: var(--afb-green); color: #fff; }
.afb-btn-wa .wp-block-button__link:hover { background: #0c6b38; }

.afb-link {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	color: var(--afb-red-dark);
	font-weight: 600;
	text-decoration: none;
}
.afb-link::after {
	content: "";
	width: .95em;
	height: .95em;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") no-repeat center / contain;
	transition: transform .25s var(--afb-ease);
}
.afb-link:hover { text-decoration: underline; }
.afb-link:hover::after { transform: translateX(3px); }
p.afb-link-p a { color: var(--afb-red-dark); font-weight: 600; text-decoration: none; }
p.afb-link-p a::after { content: " →"; }

/* ==========================================================================
   Header
   ========================================================================== */

.afb-utility {
	background: var(--afb-navy);
	color: rgba(255, 255, 255, .85);
	font-size: var(--wp--preset--font-size--x-small);
}
.afb-utility__inner { min-height: 2.5rem; gap: .5rem 1.25rem !important; }
.afb-utility p { margin: 0; }
.afb-utility a { color: inherit; text-decoration: none; }
.afb-utility a:hover { color: #fff; text-decoration: underline; }
.afb-utility .afb-ico-before { display: inline-flex; align-items: center; gap: .4rem; }
.afb-utility .afb-ico-before::before { width: 1em; height: 1em; }
@media (max-width: 599px) { .afb-utility .afb-hide-sm { display: none !important; } }

.afb-lang ul { display: flex; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.afb-lang a,
.afb-lang span { display: inline-block; padding: .2rem .45rem; border-radius: 3px; color: rgba(255, 255, 255, .85); font-weight: 700; text-decoration: none; }
.afb-lang a[aria-current] { background: #fff; color: var(--afb-ink); }
.afb-lang span[aria-disabled] { opacity: .5; cursor: help; }

.wp-site-blocks > header.wp-block-template-part { position: sticky; top: -2.5rem; z-index: 50; }
.admin-bar .wp-site-blocks > header.wp-block-template-part { top: calc(var(--wp-admin--admin-bar--height, 32px) - 2.5rem); }
@media (max-width: 600px) { .admin-bar .wp-site-blocks > header.wp-block-template-part { top: -2.5rem; } }

.afb-header {
	background: var(--afb-ivory);
	border-bottom: 1px solid var(--afb-line);
	transition: box-shadow .3s ease;
}
.afb-header.is-scrolled { box-shadow: 0 8px 24px -18px rgba(29, 29, 34, .5); }
.afb-header__inner { min-height: 4rem; gap: .75rem !important; }
@media (min-width: 1024px) { .afb-header__inner { min-height: 5rem; } }

.afb-brand { display: inline-flex; align-items: center; gap: .65rem; color: var(--afb-ink); text-decoration: none; line-height: 1; }
.afb-brand__mark { flex: none; width: 40px; height: 40px; }
.afb-brand__name { display: block; font-family: var(--wp--preset--font-family--display); font-size: 1.05rem; font-weight: 600; }
.afb-brand__place { display: block; margin-top: .25rem; font-size: .66rem; font-weight: 700; letter-spacing: .3em; text-transform: uppercase; color: var(--afb-red); }
@media (min-width: 1024px) { .afb-brand__mark { width: 48px; height: 48px; } .afb-brand__name { font-size: 1.2rem; } }
.afb-brand--light { color: #fff; }

.afb-header .wp-block-navigation { font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.afb-header .wp-block-navigation .wp-block-navigation-item__content { padding: .55rem .6rem; color: var(--afb-ink); }
.afb-header .wp-block-navigation .wp-block-navigation-item__content:hover { color: var(--afb-coral-dark); text-decoration: underline; text-underline-offset: .4em; text-decoration-thickness: 2px; }
.afb-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container {
	min-width: 260px !important;
	padding: .5rem !important;
	border: 1px solid var(--afb-line) !important;
	border-top: 3px solid var(--afb-sand) !important;
	border-radius: 0 0 14px 14px;
	background: var(--afb-ivory) !important;
	box-shadow: var(--afb-shadow-lg);
}
.afb-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .6rem .75rem; font-weight: 400; }
.afb-header .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--afb-stone); text-decoration: none; }
.afb-header .wp-block-navigation-submenu__toggle { margin-left: -.35rem; padding-right: .5rem; }
.afb-header__cta .wp-block-button__link { padding: .55rem .95rem; font-size: var(--wp--preset--font-size--small); white-space: nowrap; }
.afb-header__cta .wp-block-button__link::before {
	content: "";
	width: 1em;
	height: 1em;
	margin-right: .45rem;
	background: currentColor;
	-webkit-mask: var(--afb-icon) no-repeat center / contain;
	mask: var(--afb-icon) no-repeat center / contain;
}
@media (max-width: 380px) { .afb-header__cta .wp-block-button__link { padding: .5rem .7rem; } .afb-brand__text { display: none; } }

/* Mobile menu overlay */
.afb-header .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem var(--afb-gutter) 2.5rem !important;
	--navigation-layout-justification-setting: flex-start;
	--navigation-layout-justify: flex-start;
	--navigation-layout-align: flex-start;
}
.afb-header .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; align-items: flex-start !important; }
.afb-header .is-menu-open :is(.wp-block-navigation__container, .wp-block-navigation-item, .wp-block-navigation__submenu-container) { align-items: flex-start !important; text-align: left; }
.afb-header .is-menu-open .wp-block-navigation__container { gap: 1rem !important; width: 100%; }
.afb-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item { width: 100%; padding-bottom: 1rem; border-bottom: 1px solid var(--afb-line); }
.afb-header .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { padding: 0; font-family: var(--wp--preset--font-family--display); font-size: 1.35rem; font-weight: 600; }
.afb-header .is-menu-open .wp-block-navigation__submenu-container { gap: .1rem; padding: .6rem 0 0 !important; }
.afb-header .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .35rem 0; color: var(--afb-slate); font-size: 1rem; font-weight: 400; }

/* ==========================================================================
   Page header (templates)
   ========================================================================== */

.afb-page-hero {
	margin-top: 0 !important;
	padding-top: clamp(1.75rem, 5vw, 3.5rem);
	padding-bottom: clamp(2rem, 5vw, 3.5rem);
	background: var(--afb-stone);
	border-bottom: 1px solid var(--afb-line);
}
.afb-page-hero h1 { margin: .75rem 0 0; font-size: clamp(2rem, 5vw, 3.2rem); max-width: 22ch; }
.afb-page-hero .wp-block-post-excerpt { margin-top: .9rem; max-width: 44rem; }
.afb-page-hero .wp-block-post-excerpt__excerpt { margin: 0; color: var(--afb-slate); font-size: var(--wp--preset--font-size--large); }
.afb-page-hero__media { display: none; margin: 0 !important; }
@media (min-width: 900px) {
	.afb-page-hero > .alignwide:has(> .afb-page-hero__media) { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); column-gap: 3rem; align-items: center; }
	.afb-page-hero > .alignwide:has(> .afb-page-hero__media) > :first-child { grid-column: 1 / -1; }
	.afb-page-hero > .alignwide > .afb-page-hero__media { display: block; overflow: hidden; border-radius: var(--afb-radius); }
	.afb-page-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
}

.afb-breadcrumbs { display: flex; flex-wrap: wrap; gap: .4rem; font-size: var(--wp--preset--font-size--x-small); color: var(--afb-slate); }
.afb-breadcrumbs a { color: var(--afb-slate); }
.afb-breadcrumbs [aria-current] { color: var(--afb-ink); font-weight: 700; }

.afb-entry > .wp-block-post-content > :first-child { margin-top: 0; }
.afb-entry .wp-block-post-content > :last-child:not(.alignfull) { margin-bottom: var(--wp--preset--spacing--60); }
.afb-entry .wp-block-post-content > .alignfull:first-child { margin-top: calc(-1 * var(--wp--preset--spacing--50)) !important; }

/* ==========================================================================
   Cards
   ========================================================================== */

.afb-card {
	--pad: clamp(1.15rem, 2.5vw, 1.6rem);
	position: relative;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	padding: var(--pad) !important;
	background: #fff;
	border: 1px solid var(--afb-line);
	border-radius: var(--afb-radius);
	transition: box-shadow .25s ease, border-color .25s ease;
}
.afb-card > * { margin: 0 !important; }
.afb-card h3 { font-size: 1.25rem; }
.afb-card h3 a { color: inherit; text-decoration: none; }
.afb-card p { color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }
.afb-card .afb-card__foot { margin-top: auto !important; padding-top: .35rem; }
.afb-card--link:hover { border-color: var(--afb-sand); box-shadow: var(--afb-shadow); }
.afb-card--link h3 a::after { content: ""; position: absolute; inset: 0; }
.afb-card--link:hover h3 a { color: var(--afb-red-dark); }
.afb-card--link:focus-within { outline: 3px solid var(--afb-red); outline-offset: 2px; }
.afb-card--media { padding-top: 0 !important; overflow: hidden; }
.afb-card .afb-card__media { margin: 0 calc(-1 * var(--pad)) .4rem !important; }
.afb-card .afb-card__media img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }

/* Icon cards */
.afb-card--icon::before {
	content: "";
	display: block;
	width: 2.75rem;
	height: 2.75rem;
	border-radius: 50%;
	background: var(--afb-stone);
	margin-bottom: .2rem;
}
.afb-card--icon::after {
	content: "";
	position: absolute;
	top: calc(var(--pad) + .6875rem);
	left: calc(var(--pad) + .6875rem);
	width: 1.375rem;
	height: 1.375rem;
	background: var(--afb-red);
	-webkit-mask: var(--afb-icon) no-repeat center / contain;
	mask: var(--afb-icon) no-repeat center / contain;
}

/* Audience cards: photo with label */
.afb-audience {
	position: relative;
	overflow: hidden;
	margin: 0 !important;
	border-radius: var(--afb-radius);
	background: var(--afb-ink);
	aspect-ratio: 4 / 3;
}
@media (min-width: 782px) { .afb-audience { aspect-ratio: 3 / 4; } }
.afb-audience > * { margin: 0 !important; }
.afb-audience .wp-block-image { position: absolute; inset: 0; }
.afb-audience .wp-block-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--afb-ease); }
.afb-audience::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgba(20, 20, 24, .85) 0%, rgba(20, 20, 24, .1) 60%); pointer-events: none; }
.afb-audience__body { position: absolute; z-index: 1; left: 0; right: 0; bottom: 0; padding: 1.25rem !important; color: #fff; }
.afb-audience__body > * { margin: 0 !important; }
.afb-audience__body > * + * { margin-top: .3rem !important; }
.afb-audience h3 { color: #fff; font-size: 1.4rem; }
.afb-audience h3 a { color: inherit; text-decoration: none; }
.afb-audience h3 a::after { content: ""; position: absolute; inset: 0; z-index: 2; }
.afb-audience p { color: rgba(255, 255, 255, .85); font-size: var(--wp--preset--font-size--small); }
.afb-audience:hover .wp-block-image img { transform: scale(1.04); }
.afb-audience:focus-within { outline: 3px solid var(--afb-red); outline-offset: 2px; }

/* Entry points (Sydney: new / returning / level test) */
.afb-entry-card { border-top: 5px solid var(--afb-coral) !important; }
.afb-entry-card:nth-child(2) { border-top-color: var(--afb-teal) !important; }
.afb-entry-card:nth-child(3) { border-top-color: var(--afb-sand) !important; }

/* Strengths */
.afb-feature { display: grid; grid-template-columns: 2.5rem 1fr; gap: .2rem 1rem; align-items: start; }
.afb-feature > * { margin: 0 !important; }
.afb-feature::before {
	content: "";
	grid-row: span 2;
	width: 2.5rem;
	height: 2.5rem;
	background: var(--afb-red);
	-webkit-mask: var(--afb-icon) no-repeat center / 1.6rem;
	mask: var(--afb-icon) no-repeat center / 1.6rem;
}
.afb-feature h3 { font-family: var(--wp--preset--font-family--body); font-size: 1.1rem; font-weight: 700; }
.afb-feature p { color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }
.afb-section--ink .afb-feature::before { background: #ff8a9b; }
.afb-section--ink .afb-feature p { color: rgba(255, 255, 255, .78); }

/* Testimonial placeholders (authorised quotes to be collected) */
.afb-quote-ph {
	padding: 1.5rem !important;
	border: 2px dashed var(--afb-line);
	border-radius: var(--afb-radius);
	background: #fff;
}
.afb-quote-ph > * { margin: 0 !important; }
.afb-quote-ph > * + * { margin-top: .6rem !important; }
.afb-quote-ph .afb-quote-ph__text { font-family: var(--wp--preset--font-family--display); font-size: 1.15rem; font-style: italic; color: var(--afb-slate); }
.afb-quote-ph .afb-quote-ph__who { font-size: var(--wp--preset--font-size--small); font-weight: 700; }

/* Stats */
.afb-stats { gap: 0 !important; }
.afb-stat { padding: 1rem 1rem 1rem 0 !important; }
.afb-stat > * { margin: 0 !important; }
.afb-stat__num { font-family: var(--wp--preset--font-family--display); font-size: clamp(2rem, 4.5vw, 2.8rem) !important; font-weight: 600; line-height: 1 !important; color: var(--afb-red); }
.afb-section--red .afb-stat__num, .afb-section--ink .afb-stat__num { color: #fff; }
.afb-stat__label { margin-top: .4rem !important; font-size: var(--wp--preset--font-size--small); color: var(--afb-slate); }
:is(.afb-section--red, .afb-section--ink) .afb-stat__label { color: rgba(255, 255, 255, .85); }

/* Steps (registration path) */
.afb-steps { counter-reset: s; gap: 0 !important; }
.afb-step { counter-increment: s; position: relative; padding: 0 0 1.75rem 3.25rem !important; }
.afb-step::before {
	content: counter(s);
	position: absolute;
	left: 0;
	top: 0;
	display: grid;
	place-items: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: var(--afb-red);
	color: #fff;
	font-weight: 700;
}
.afb-step::after { content: ""; position: absolute; left: 1.1rem; top: 2.5rem; bottom: .25rem; width: 2px; background: var(--afb-line); }
.afb-step:last-child::after { display: none; }
.afb-step > * { margin: 0 !important; }
.afb-step > * + * { margin-top: .3rem !important; }
.afb-step h3 { font-family: var(--wp--preset--font-family--body); font-size: 1.1rem; font-weight: 700; }
.afb-step p { color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }
@media (min-width: 900px) {
	.afb-steps--row { display: grid !important; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 1.5rem !important; }
	.afb-steps--row .afb-step { padding: 3.25rem 0 0 !important; }
	.afb-steps--row .afb-step::after { left: 2.75rem; right: -1.25rem; top: 1.1rem; bottom: auto; width: auto; height: 2px; }
}

/* People */
.afb-person { gap: .15rem !important; border-left: 3px solid var(--afb-red) !important; }
.afb-person__name { color: var(--afb-ink) !important; font-size: 1.05rem !important; font-weight: 700; }

/* Lists */
.afb-check { list-style: none; padding-left: 0 !important; }
.afb-check li { position: relative; padding-left: 1.75rem; margin: .45rem 0; }
.afb-check li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .3em;
	width: 1.1rem;
	height: 1.1rem;
	background: var(--afb-red);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / contain;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") no-repeat center / contain;
}

/* Panel */
.afb-panel { padding: clamp(1.25rem, 3vw, 2rem) !important; border-radius: var(--afb-radius); background: var(--afb-stone); }
.afb-panel > :first-child { margin-top: 0; }
.afb-panel--line { background: #fff; border: 1px solid var(--afb-line); }

/* Details / FAQ */
.wp-block-details.afb-faq { border-bottom: 1px solid var(--afb-line); padding: 0; }
.afb-faq summary { padding: 1rem 2.5rem 1rem 0; font-weight: 700; cursor: pointer; list-style: none; position: relative; }
.afb-faq summary::-webkit-details-marker { display: none; }
.afb-faq summary::after { content: "+"; position: absolute; right: .25rem; top: .7rem; font-size: 1.5rem; font-weight: 400; color: var(--afb-red); }
.afb-faq[open] summary::after { content: "–"; }
.afb-faq > :not(summary) { margin-top: 0; margin-bottom: 1rem; color: var(--afb-slate); }

/* ==========================================================================
   Sessions (course cards from the plugin)
   ========================================================================== */

.afb-sessions { display: grid; gap: 1rem; }
@media (min-width: 1100px) { .afb-sessions--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.afb-session {
	display: grid;
	grid-template-columns: 3.75rem 1fr;
	gap: .75rem 1rem;
	padding: 1rem !important;
	background: #fff;
	border: 1px solid var(--afb-line);
	border-left: 4px solid var(--afb-red);
	border-radius: var(--afb-radius);
}
.afb-session.is-full { border-left-color: var(--afb-slate); }
.afb-session__date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	height: 3.75rem;
	border-radius: 4px;
	background: var(--afb-stone);
	line-height: 1;
}
.afb-session__day { font-family: var(--wp--preset--font-family--display); font-size: 1.5rem; font-weight: 700; }
.afb-session__month { margin-top: .2rem; font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--afb-red-dark); }
.afb-session__body > * { margin: 0; }
.afb-session__meta { font-size: var(--wp--preset--font-size--x-small); color: var(--afb-slate); text-transform: uppercase; letter-spacing: .06em; }
.afb-session__meta strong { color: var(--afb-ink); }
.afb-session__title { margin-top: .2rem !important; font-family: var(--wp--preset--font-family--body); font-size: 1.15rem; font-weight: 700; line-height: 1.3; }
.afb-session__title a { color: var(--afb-ink); text-decoration: none; }
.afb-session__title a:hover { color: var(--afb-red-dark); text-decoration: underline; }
.afb-session__facts { margin: .5rem 0 0; padding: 0; list-style: none; font-size: var(--wp--preset--font-size--small); color: var(--afb-slate); }
.afb-session__facts li { display: flex; gap: .45rem; align-items: baseline; margin: .2rem 0; }
.afb-session__facts .afb-i { color: var(--afb-red); }
.afb-session__side {
	grid-column: 1 / -1;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem 1rem;
	padding-top: .75rem;
	border-top: 1px solid var(--afb-line);
}
.afb-session__side > * { margin: 0; }
.afb-session__price { font-family: var(--wp--preset--font-family--display); font-size: 1.35rem; font-weight: 700; }
.afb-session__seats { font-size: var(--wp--preset--font-size--small); font-weight: 600; color: #1d6b3a; }
.afb-session__seats.is-low { color: #9a5b00; }
.afb-session__seats.is-full { color: var(--afb-slate); }
.afb-session__side .afb-btn { margin-left: auto; }
@media (min-width: 700px) {
	.afb-session { grid-template-columns: 4.5rem 1fr auto; align-items: center; padding: 1.25rem !important; }
	.afb-session__date { height: 4.5rem; }
	.afb-session__side { grid-column: auto; flex-direction: column; align-items: flex-end; padding: 0 0 0 1.25rem; border-top: 0; border-left: 1px solid var(--afb-line); text-align: right; }
	.afb-session__side .afb-btn { margin-left: 0; }
}

/* Course finder */
.afb-finder {
	padding: clamp(1rem, 3vw, 1.5rem) !important;
	border-radius: var(--afb-radius);
	background: var(--afb-stone);
	border: 1px solid var(--afb-line);
}
.afb-finder__fields { display: grid; gap: .75rem; }
@media (min-width: 600px) { .afb-finder__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .afb-finder__fields { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.afb-finder__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: 1rem 0 0; }
.afb-results { margin-top: 1.5rem; }
.afb-results__count { color: var(--afb-slate); }
.afb-empty { padding: 1.25rem; border: 1px dashed var(--afb-line); border-radius: var(--afb-radius); background: #fff; }

/* Facts card (course & event pages) */
.afb-facts-card {
	padding: 1.25rem !important;
	border: 1px solid var(--afb-line);
	border-top: 4px solid var(--afb-red);
	border-radius: var(--afb-radius);
	background: #fff;
	box-shadow: var(--afb-shadow);
}
@media (min-width: 900px) { .afb-facts-card { position: sticky; top: 6.5rem; } }
.afb-facts-card__price { padding-bottom: 1rem; border-bottom: 1px solid var(--afb-line); }
.afb-facts-card__price > * { margin: 0 0 .25rem; }
.afb-price { font-family: var(--wp--preset--font-family--display); font-size: 2rem; font-weight: 700; line-height: 1.1; }
.afb-facts { margin: 1rem 0; }
.afb-facts__row { display: grid; grid-template-columns: 8.5rem 1fr; gap: .75rem; padding: .55rem 0; border-bottom: 1px solid var(--afb-stone); font-size: var(--wp--preset--font-size--small); }
.afb-facts dt { display: flex; gap: .45rem; align-items: baseline; color: var(--afb-slate); }
.afb-facts dt .afb-i { color: var(--afb-red); }
.afb-facts dd { margin: 0; font-weight: 600; }
.afb-facts-card__cta { display: grid; gap: .6rem; margin-top: 1rem; }

/* Exam table → cards on small screens */
.afb-table-wrap { overflow-x: auto; }
.afb-exam-table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); }
.afb-exam-table th, .afb-exam-table td { padding: .85rem .75rem; border-bottom: 1px solid var(--afb-line); text-align: left; vertical-align: middle; }
.afb-exam-table thead th { background: var(--afb-ink); color: #fff; font-weight: 700; }
.afb-exam-table tbody th { font-weight: 700; }
@media (max-width: 781px) {
	.afb-exam-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px, 1px, 1px, 1px); }
	.afb-exam-table, .afb-exam-table tbody, .afb-exam-table tr, .afb-exam-table th, .afb-exam-table td { display: block; width: 100%; }
	.afb-exam-table tr { margin-bottom: 1rem; padding: .75rem 1rem; border: 1px solid var(--afb-line); border-left: 4px solid var(--afb-red); border-radius: var(--afb-radius); }
	.afb-exam-table th, .afb-exam-table td { padding: .3rem 0; border: 0; }
	.afb-exam-table tbody th { font-size: 1.05rem; }
	.afb-exam-table td[data-label]::before { content: attr(data-label) ": "; color: var(--afb-slate); }
}
.afb-status { display: inline-block; padding: .15rem .5rem; border-radius: 3px; font-size: .78rem; font-weight: 700; }
.afb-status--open { background: #e3f4e9; color: #1d6b3a; }
.afb-status--soon { background: #fff4d6; color: #7a5600; }
.afb-status--full, .afb-status--closed { background: var(--afb-stone); color: var(--afb-slate); }

/* Fee table */
.afb-table table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); }
.afb-table th, .afb-table td { padding: .7rem .75rem; border-bottom: 1px solid var(--afb-line); text-align: left; }
.afb-table thead { border: 0; }
.afb-table th { background: var(--afb-stone); font-weight: 700; }

/* ==========================================================================
   Events
   ========================================================================== */

.afb-events { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .afb-events { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .afb-events { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.afb-event { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--afb-line); border-radius: var(--afb-radius); overflow: hidden; transition: box-shadow .25s ease; }
.afb-event:hover { box-shadow: var(--afb-shadow); }
.afb-event__media { position: relative; display: block; overflow: hidden; aspect-ratio: 16 / 10; background: var(--afb-stone); }
.afb-event__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.afb-event__placeholder { position: absolute; inset: 0; background: linear-gradient(135deg, var(--afb-red) 0 50%, var(--afb-red-dark) 50%); }
.afb-event__date { position: absolute; left: .75rem; top: .75rem; display: flex; flex-direction: column; align-items: center; min-width: 3.25rem; padding: .35rem .5rem; border-radius: 4px; background: #fff; font-size: .72rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--afb-red-dark); line-height: 1.1; }
.afb-event__date strong { font-family: var(--wp--preset--font-family--display); font-size: 1.35rem; color: var(--afb-ink); letter-spacing: 0; }
.afb-event__body { display: flex; flex-direction: column; gap: .35rem; padding: 1rem 1.15rem 1.25rem; }
.afb-event__body > * { margin: 0; }
.afb-event__cats { font-size: .74rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--afb-red-dark); }
.afb-event__title { font-family: var(--wp--preset--font-family--body); font-size: 1.12rem; font-weight: 700; line-height: 1.3; }
.afb-event__title a { color: var(--afb-ink); text-decoration: none; }
.afb-event__title a::after { content: ""; position: absolute; inset: 0; }
.afb-event:hover .afb-event__title a { color: var(--afb-red-dark); }
.afb-event__meta { display: flex; gap: .45rem; align-items: baseline; font-size: var(--wp--preset--font-size--small); color: var(--afb-slate); }
.afb-event__meta .afb-i { color: var(--afb-red); }

.afb-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.afb-chip { display: inline-flex; align-items: center; min-height: 40px; padding: .4rem .9rem; border: 1px solid var(--afb-line); border-radius: 999px; background: #fff; color: var(--afb-ink); font-size: var(--wp--preset--font-size--small); font-weight: 600; text-decoration: none; }
.afb-chip:hover { border-color: var(--afb-ink); }
.afb-chip.is-active { background: var(--afb-ink); border-color: var(--afb-ink); color: #fff; }
.afb-month { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: 1.5rem; }
.afb-month label { font-weight: 700; font-size: var(--wp--preset--font-size--small); }
.afb-agenda__archive { margin-top: 1.5rem; color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }

/* ==========================================================================
   Forms
   ========================================================================== */

.afb-form-card { padding: clamp(1.15rem, 3vw, 2rem) !important; border: 1px solid var(--afb-line); border-radius: var(--afb-radius); background: #fff; box-shadow: var(--afb-shadow); }
.afb-form__legend { margin-top: 0; color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }
.afb-tag { display: inline-block; margin-right: .5rem; padding: .15rem .55rem; border-radius: 3px; background: var(--afb-ink); color: #fff; font-size: .78rem; font-weight: 700; }
.afb-form__grid { display: grid; gap: 1rem; }
@media (min-width: 640px) { .afb-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .afb-field--full { grid-column: 1 / -1; } }
.afb-field { display: flex; flex-direction: column; gap: .35rem; margin: 0; }
.afb-field label { font-size: var(--wp--preset--font-size--small); font-weight: 700; }
.afb-field abbr { color: var(--afb-red-dark); text-decoration: none; }
.afb-field input,
.afb-field select,
.afb-field textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 46px;
	padding: .65rem .85rem;
	border: 1.5px solid #c9c2b7;
	border-radius: 4px;
	background: #fff;
	color: var(--afb-ink);
	font: inherit;
}
.afb-field :is(input, select, textarea):focus { outline: 3px solid rgba(217, 15, 49, .25); border-color: var(--afb-red); }
.afb-form__consent { margin: 1rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--afb-slate); }
.afb-form__consent label { display: flex; gap: .6rem; align-items: flex-start; }
.afb-form__consent input { width: 1.15rem; height: 1.15rem; margin-top: .2rem; accent-color: var(--afb-red); }
.afb-form__submit { margin: 1.25rem 0 0; }
.afb-form__hp { position: absolute !important; left: -9999px; }
.afb-notice { margin-bottom: 1.25rem; padding: 1rem 1.15rem; border-radius: 4px; }
.afb-notice--success { background: #e3f4e9; color: #164f2c; }
.afb-notice--error { background: #fde8eb; color: var(--afb-red-dark); }

/* ==========================================================================
   Contact, map, premises, CTA, logos
   ========================================================================== */

.afb-contact-list { margin: 0; padding: 0; list-style: none; }
.afb-contact-list li { position: relative; padding: .55rem 0 .55rem 2rem; border-bottom: 1px solid var(--afb-line); }
.afb-contact-list li::before { content: ""; position: absolute; left: 0; top: .8rem; width: 1.2rem; height: 1.2rem; background: var(--afb-red); -webkit-mask: var(--afb-icon) no-repeat center / contain; mask: var(--afb-icon) no-repeat center / contain; }
.afb-map { position: relative; overflow: hidden; border-radius: var(--afb-radius); border: 1px solid var(--afb-line); background: var(--afb-stone); aspect-ratio: 4 / 3; }
.afb-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.afb-timeline { margin: 0; padding: 0; list-style: none; }
.afb-timeline li { position: relative; padding: 0 0 1rem 1.5rem; }
.afb-timeline li::before { content: ""; position: absolute; left: 0; top: .45rem; width: .65rem; height: .65rem; border-radius: 50%; background: var(--afb-red); }
.afb-timeline li::after { content: ""; position: absolute; left: .28rem; top: 1.2rem; bottom: 0; width: 2px; background: rgba(255, 255, 255, .25); }
.afb-timeline li:last-child::after { display: none; }
.afb-timeline strong { display: block; }

.afb-cta {
	padding: clamp(1.5rem, 4vw, 2.75rem) !important;
	border-radius: var(--afb-radius);
	background: var(--afb-teal-dark);
	color: #fff;
}
.afb-cta :is(h2, h3) { color: #fff; margin: 0; }
.afb-cta .afb-kicker { color: #fff; }
.afb-cta p { color: rgba(255, 255, 255, .9); margin: .5rem 0 0; }

.afb-logos { gap: 1rem !important; }
.afb-logos .afb-logo { display: grid; place-items: center; margin: 0; padding: .75rem; aspect-ratio: 3 / 2; border: 1px solid var(--afb-line); border-radius: var(--afb-radius); background: #fff; }
.afb-logos .afb-logo img { max-width: 100%; max-height: 4.5rem; width: auto; object-fit: contain; }
.afb-board img { width: 100%; border: 1px solid var(--afb-line); border-radius: var(--afb-radius); }
.afb-rounded img { border-radius: var(--afb-radius); }
.afb-ratio img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.afb-gallery { gap: .75rem !important; }
.afb-gallery .wp-block-image { margin: 0; }
.afb-gallery img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--afb-radius); }

/* ==========================================================================
   Footer
   ========================================================================== */

.afb-footer { margin-top: 0 !important; background: var(--afb-navy); color: rgba(255, 255, 255, .8); font-size: var(--wp--preset--font-size--small); border-top: 4px solid var(--afb-sand); }
.afb-footer a { color: rgba(255, 255, 255, .9); text-decoration: none; }
.afb-footer a:hover { color: #fff; text-decoration: underline; }
.afb-footer h2 { color: #fff; font-family: var(--wp--preset--font-family--body); font-size: .8rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; margin-bottom: .75rem; }
.afb-footer ul { list-style: none; margin: 0; padding: 0 !important; }
.afb-footer li { margin: .45rem 0; }
.afb-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .12); font-size: var(--wp--preset--font-size--x-small); }
.afb-footer__bottom p { margin: 0; }
.afb-footer .wp-block-social-links .wp-social-link { background: rgba(255, 255, 255, .1) !important; color: #fff !important; }
.afb-footer .wp-block-social-links .wp-social-link:hover { background: var(--afb-teal) !important; }

/* Mobile sticky action bar (find a course / WhatsApp) */
.afb-mobile-bar { display: none; }
@media (max-width: 781px) {
	.afb-mobile-bar {
		position: fixed;
		z-index: 40;
		left: 0;
		right: 0;
		bottom: 0;
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: .5rem;
		padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom));
		background: #fff;
		box-shadow: 0 -6px 20px -10px rgba(29, 29, 34, .35);
	}
	.afb-mobile-bar .afb-btn { min-height: 46px; }
	body { padding-bottom: 4.5rem; }
}

/* ==========================================================================
   Icon set
   ========================================================================== */
.afb-i--pen,.icon-pen{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4Z'/%3E%3C/svg%3E")}
.afb-i--award,.icon-award{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='6'/%3E%3Cpath d='M15.5 12.9 17 22l-5-3-5 3 1.5-9.1'/%3E%3C/svg%3E")}
.afb-i--calendar,.icon-calendar{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M16 2v4M8 2v4M3 10h18'/%3E%3C/svg%3E")}
.afb-i--sparkles,.icon-sparkles{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 3l1.9 5.1L18 10l-5.1 1.9L11 17l-1.9-5.1L4 10l5.1-1.9Z'/%3E%3Cpath d='M19 14l.8 2.2L22 17l-2.2.8L19 20l-.8-2.2L16 17l2.2-.8Z'/%3E%3C/svg%3E")}
.afb-i--trophy,.icon-trophy{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0Z'/%3E%3Cpath d='M17 5h3v2a3 3 0 0 1-3 3M7 5H4v2a3 3 0 0 0 3 3'/%3E%3C/svg%3E")}
.afb-i--chat,.icon-chat{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2Z'/%3E%3Cpath d='M8 9h8M8 13h5'/%3E%3C/svg%3E")}
.afb-i--globe,.icon-globe{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M2 12h20M12 2a15 15 0 0 1 0 20 15 15 0 0 1 0-20Z'/%3E%3C/svg%3E")}
.afb-i--users,.icon-users{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8'/%3E%3C/svg%3E")}
.afb-i--briefcase,.icon-briefcase{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='20' height='14' rx='2'/%3E%3Cpath d='M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16'/%3E%3C/svg%3E")}
.afb-i--smile,.icon-smile{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 14s1.5 2 4 2 4-2 4-2M9 9h.01M15 9h.01'/%3E%3C/svg%3E")}
.afb-i--user,.icon-user{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 21a8 8 0 0 1 16 0'/%3E%3C/svg%3E")}
.afb-i--book,.icon-book{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 1 6.5 17H20V2H6.5A2.5 2.5 0 0 0 4 4.5Z'/%3E%3Cpath d='M4 19.5A2.5 2.5 0 0 0 6.5 22H20v-5'/%3E%3C/svg%3E")}
.afb-i--heart,.icon-heart{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 14c1.5-1.5 3-3.2 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.8 0-3 .5-4.5 2-1.5-1.5-2.7-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4 3 5.5l7 7Z'/%3E%3C/svg%3E")}
.afb-i--star,.icon-star{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 2l3.1 6.3 6.9 1-5 4.9 1.2 6.8L12 17.8 5.8 21l1.2-6.8-5-4.9 6.9-1Z'/%3E%3C/svg%3E")}
.afb-i--building,.icon-building{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='2' width='16' height='20' rx='2'/%3E%3Cpath d='M9 22v-4h6v4M8 6h.01M12 6h.01M16 6h.01M8 10h.01M12 10h.01M16 10h.01M8 14h.01M12 14h.01M16 14h.01'/%3E%3C/svg%3E")}
.afb-i--translate,.icon-translate{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8l6 6M4 14l6-6 2-3M2 5h12M7 2h1M22 22l-5-10-5 10M14 18h6'/%3E%3C/svg%3E")}
.afb-i--cap,.icon-cap{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 10 12 5 2 10l10 5 10-5Z'/%3E%3Cpath d='M6 12v5c3 3 9 3 12 0v-5'/%3E%3C/svg%3E")}
.afb-i--scale,.icon-scale{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v18M7 21h10M4 7h16M7 7l-3 7a3 3 0 0 0 6 0Zm10 0-3 7a3 3 0 0 0 6 0Z'/%3E%3C/svg%3E")}
.afb-i--clock,.icon-clock{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/svg%3E")}
.afb-i--pin,.icon-pin{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 6-8 12-8 12S4 16 4 10a8 8 0 0 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E")}
.afb-i--phone,.icon-phone{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.7a2 2 0 0 1-.5 2.1L8 9.8a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.7.7a2 2 0 0 1 1.7 2Z'/%3E%3C/svg%3E")}
.afb-i--mail,.icon-mail{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='2'/%3E%3Cpath d='m22 7-10 6L2 7'/%3E%3C/svg%3E")}
.afb-i--arrow,.icon-arrow{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E")}
.afb-i--check,.icon-check{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.afb-i--music,.icon-music{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18V5l12-2v13'/%3E%3Ccircle cx='6' cy='18' r='3'/%3E%3Ccircle cx='18' cy='16' r='3'/%3E%3C/svg%3E")}
.afb-i--plane,.icon-plane{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.8 19.2 16 11l3.5-3.5C21 6 21.5 4 21 3c-1-.5-3 0-4.5 1.5L13 8 4.8 6.2c-.5-.1-.9.1-1.1.5l-.3.5c-.2.5-.1 1 .3 1.3L9 12l-2 3H4l-1 1 3 2 2 3 1-1v-3l3-2 3.5 5.3c.3.4.8.5 1.3.3l.5-.2c.4-.3.6-.7.5-1.2Z'/%3E%3C/svg%3E")}
.afb-i--target,.icon-target{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Ccircle cx='12' cy='12' r='6'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3C/svg%3E")}
.afb-i--layers,.icon-layers{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 2 10 5-10 5L2 7Z'/%3E%3Cpath d='m2 17 10 5 10-5M2 12l10 5 10-5'/%3E%3C/svg%3E")}
.afb-i--hourglass,.icon-hourglass{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 2h12M6 22h12M7 2v4a5 5 0 0 0 10 0V2M7 22v-4a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E")}
.afb-i--level,.icon-level{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 20V14M10 20V9M16 20V4M2 20h20'/%3E%3C/svg%3E")}
.afb-i--ticket,.icon-ticket{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8a2 2 0 0 0 2-2h14a2 2 0 0 0 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 0-2 2H5a2 2 0 0 0-2-2v-2a2 2 0 0 0 0-4Z'/%3E%3Cpath d='M13 6v2M13 11v2M13 16v2'/%3E%3C/svg%3E")}
.afb-i--whatsapp,.icon-whatsapp{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l1.6-4.7A8.5 8.5 0 1 1 8 19.6Z'/%3E%3Cpath d='M9 9.5c0 3 2.5 5.5 5.5 5.5l1-1.6-2-1-1 .8a4 4 0 0 1-2.3-2.3l.8-1-1-2Z'/%3E%3C/svg%3E")}
.afb-i--search,.icon-search{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")}
.afb-i--refresh,.icon-refresh{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12a9 9 0 0 1-15.5 6.2L3 16M3 12a9 9 0 0 1 15.5-6.2L21 8'/%3E%3Cpath d='M21 3v5h-5M3 21v-5h5'/%3E%3C/svg%3E")}
.afb-i--student,.icon-student{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3Cpath d='M5.5 21a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='M16 3.5 20 5l-4 1.5'/%3E%3C/svg%3E")}
.afb-i--family,.icon-family{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='7' cy='6' r='2.5'/%3E%3Ccircle cx='17' cy='6' r='2.5'/%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M3 20v-4a4 4 0 0 1 8 0M13 20v-4a4 4 0 0 1 8 0M9.5 20v-2a2.5 2.5 0 0 1 5 0v2'/%3E%3C/svg%3E")}
.afb-i--shield,.icon-shield{--afb-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 4 6v6c0 5 3.5 8 8 9 4.5-1 8-4 8-9V6Z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E")}

/* ==========================================================================
   Goals ("why French?") and audiences: photo cards
   ========================================================================== */

.afb-audience { border-radius: var(--afb-radius); }
.afb-audience::after { background: linear-gradient(0deg, rgba(20, 40, 64, .92) 0%, rgba(20, 40, 64, .2) 62%); }
.afb-goal { aspect-ratio: 4 / 5 !important; }
@media (max-width: 781px) { .afb-goal { aspect-ratio: 16 / 11 !important; } }
.afb-goal .afb-tag { align-self: flex-start; background: var(--afb-sand); color: var(--afb-navy); }
.afb-audience__body .afb-tag { display: inline-block; margin-bottom: .2rem !important; }
.afb-audience h3 { font-size: 1.7rem; }

/* ==========================================================================
   Community (turquoise), network, premises
   ========================================================================== */

.afb-section--teal .afb-stat__num { color: #fff; }
.afb-section--teal .afb-stat__label { color: rgba(255, 255, 255, .88); }
.afb-section--teal .afb-quote-ph { border-color: rgba(255, 255, 255, .35); background: rgba(255, 255, 255, .06); }
.afb-section--teal .afb-quote-ph .afb-quote-ph__text { color: rgba(255, 255, 255, .9); }
.afb-section--teal .afb-quote-ph .afb-quote-ph__who { color: #fff; }
.afb-section--teal .afb-tag { background: var(--afb-sand); color: var(--afb-navy); }
.afb-section--teal .afb-feature::before { background: var(--afb-sand); }
.afb-section--teal .afb-feature p { color: rgba(255, 255, 255, .86); }
.afb-section--teal .afb-feature h3 { color: #fff; }

.afb-collage-3 { display: grid !important; grid-template-columns: 1.2fr 1fr; grid-template-rows: auto auto; gap: .75rem !important; }
.afb-collage-3 > * { margin: 0 !important; }
.afb-collage-3 > :first-child { grid-row: span 2; }
.afb-collage-3 img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--afb-radius); }
.afb-collage-3 > :first-child img { aspect-ratio: 3 / 4; }
.afb-collage-3 > :not(:first-child) img { aspect-ratio: 4 / 3; }

.afb-cities { display: flex; flex-wrap: wrap; gap: .5rem !important; }
.afb-cities > * { margin: 0 !important; }
.afb-city { padding: .4rem .9rem; border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; color: #fff; font-size: var(--wp--preset--font-size--small); font-weight: 600; }
.afb-city--here { border-color: var(--afb-sand); background: var(--afb-sand); color: var(--afb-navy); }
.afb-section--ink .afb-stat__num { color: var(--afb-sand); }
.afb-section--ink .afb-stat__label { color: rgba(255, 255, 255, .85); }

.afb-benefits { padding: clamp(1.25rem, 3vw, 2rem) !important; border-radius: var(--afb-radius); background: #fff; border: 1px solid var(--afb-line); box-shadow: var(--afb-shadow); }
.afb-benefits > :first-child { margin-top: 0; }

/* Contact strip: big WhatsApp entry */
.afb-wa-card { display: grid !important; gap: .5rem !important; padding: clamp(1.25rem, 3vw, 2rem) !important; border-radius: var(--afb-radius); background: var(--afb-green); color: #fff; }
.afb-wa-card > * { margin: 0 !important; }
.afb-wa-card h3 { color: #fff; }
.afb-wa-card .wp-block-button__link { background: #fff; color: var(--afb-navy); }
.afb-wa-card .wp-block-button__link:hover { background: var(--afb-navy); color: #fff; }

/* Session cards & facts: coral accents with text-safe labels */
.afb-session { border-left-color: var(--afb-coral); }
.afb-facts-card { border-top-color: var(--afb-coral); }
.afb-tag { border-radius: 999px; padding: .2rem .7rem; }
.afb-chip.is-active { background: var(--afb-navy); border-color: var(--afb-navy); }
.afb-exam-table thead th { background: var(--afb-navy); }
.afb-step::before { background: var(--afb-coral); color: var(--afb-navy); }

/* Small brand text needs the text-safe coral on ivory; the bright coral is fine on deep blue. */
.afb-brand__place { color: var(--afb-coral-dark); }
.afb-footer .afb-brand__place { color: var(--afb-coral); }


/* ==========================================================================
   Proposition 3 — human hero: learners + Bahrain/France tiles joined by a bridge
   ========================================================================== */

.afb-hero3 { margin-top: 0 !important; padding-top: clamp(2rem, 6vw, 4.5rem); padding-bottom: clamp(3rem, 7vw, 5.5rem); background: var(--afb-ivory); overflow: hidden; }
.afb-hero3__grid { display: grid !important; gap: 2rem !important; align-items: center; }
.afb-hero3__grid > * { margin: 0 !important; }
@media (min-width: 960px) { .afb-hero3__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: clamp(2rem, 5vw, 4.5rem) !important; } }
.afb-hero3 h1 { margin: .6rem 0 1rem; font-size: clamp(2.6rem, 6.5vw, 4.6rem); line-height: 1.02; letter-spacing: -.01em; }
.afb-hero3 h1 em { color: var(--afb-teal-dark); font-style: italic; }
.afb-hero3 .afb-lead { max-width: 34rem; }
.afb-hero3 .wp-block-buttons { margin-top: 1.5rem; }
.afb-hero3__facts { margin-top: 1.75rem !important; gap: .5rem 1.5rem !important; color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }
.afb-hero3__facts p { margin: 0; display: flex; align-items: center; gap: .45rem; }
.afb-hero3__facts p::before { content: ""; width: .5rem; height: .5rem; border-radius: 50%; background: var(--afb-sand); }

.afb-mosaic { position: relative; display: grid !important; grid-template-columns: 1fr 1fr; gap: .75rem !important; }
.afb-mosaic > * { margin: 0 !important; }
.afb-mosaic .wp-block-image { position: relative; overflow: hidden; border-radius: 24px; }
.afb-mosaic img { display: block; width: 100%; height: 100%; object-fit: cover; }
.afb-mosaic .afb-m-main { grid-column: 1 / -1; aspect-ratio: 4 / 3; }
.afb-mosaic .afb-m-bh, .afb-mosaic .afb-m-fr { aspect-ratio: 4 / 3; }
.afb-mosaic figcaption {
	position: absolute;
	left: .75rem;
	bottom: .75rem;
	margin: 0;
	padding: .25rem .7rem;
	border-radius: 999px;
	background: rgba(247, 243, 235, .94);
	color: var(--afb-navy);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 700;
}
.afb-mosaic .afb-m-bh figcaption { background: var(--afb-sand); }
.afb-mosaic .afb-bridge3 { display: none; }
@media (min-width: 960px) {
	.afb-mosaic { grid-template-columns: 1.45fr 1fr; grid-template-rows: 1fr 1fr; padding-right: 2.5rem; }
	.afb-mosaic .afb-m-main { grid-column: 1; grid-row: 1 / span 2; aspect-ratio: 4 / 5; }
	.afb-mosaic .afb-m-bh, .afb-mosaic .afb-m-fr { aspect-ratio: auto; }
	.afb-mosaic .afb-bridge3 { display: block; position: absolute; right: 0; top: 22%; bottom: 22%; width: 3rem; pointer-events: none; }
	.afb-bridge3 svg { width: 100%; height: 100%; overflow: visible; }
}

/* Goal cards: compact two-column grid on phones (no carousel). */
@media (max-width: 781px) {
	.afb-grid > .afb-goal { aspect-ratio: 1 / 1 !important; }
	.afb-grid:has(> .afb-goal) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: .6rem !important; }
	.afb-goal h3 { font-size: 1.25rem !important; }
	.afb-goal .afb-audience__body { padding: .85rem !important; }
	.afb-goal .afb-audience__body p:not(.afb-tag) { display: none; }
}

/* Section call-to-action row (one action per home section, as in the brief) */
.afb-actions { margin-top: var(--wp--preset--spacing--30) !important; }

/* Three request states */
.afb-states { display: grid; gap: .75rem; margin: 0; padding: 0; list-style: none; counter-reset: none; }
@media (min-width: 782px) { .afb-states { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.afb-states__item { position: relative; display: flex; flex-direction: column; gap: .3rem; padding: 1.1rem 1.1rem 1.1rem 3.6rem; border-radius: var(--afb-radius); background: #fff; border: 1px solid var(--afb-line); }
.afb-states__item span:last-child { color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }
.afb-states__num { position: absolute; left: 1rem; top: 1rem; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--afb-stone); color: var(--afb-navy); font-weight: 700; }
.afb-states__item:nth-child(2) .afb-states__num { background: var(--afb-coral); }
.afb-states__item:nth-child(3) .afb-states__num { background: var(--afb-teal-dark); color: #fff; }

/* "How to register" box on course pages */
.afb-howto { margin-top: 1rem; padding: 1rem; border-radius: 12px; background: var(--afb-stone); font-size: var(--wp--preset--font-size--small); }
.afb-howto__title { margin: 0 0 .4rem; font-weight: 700; }
.afb-howto ol { margin: 0; padding-left: 1.2rem; }
.afb-howto li { margin: .25rem 0; }

/* Map loads only on request / with consent */
.afb-map__load { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .6rem; padding: 1.5rem; text-align: center; background: var(--afb-stone); }
.afb-map__load p { margin: 0; max-width: 26rem; color: var(--afb-slate); font-size: var(--wp--preset--font-size--small); }

/* Consent banner */
.afb-consent { position: fixed; z-index: 60; left: 1rem; right: 1rem; bottom: 1rem; max-width: 34rem; margin-left: auto; padding: 1.1rem 1.25rem; border-radius: var(--afb-radius); background: var(--afb-navy); color: rgba(255, 255, 255, .9); box-shadow: var(--afb-shadow-lg); font-size: var(--wp--preset--font-size--small); }
.afb-consent[hidden] { display: none; }
.afb-consent p { margin: 0 0 .75rem; }
.afb-consent a { color: #fff; }
.afb-consent__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.afb-consent .afb-btn--outline { border-color: #fff; color: #fff !important; }
@media (max-width: 781px) { .afb-consent { bottom: 5.25rem; } }

/* Arabic (optional RTL version): same family covers Latin and Arabic */
:lang(ar) { font-family: "Readex Pro", system-ui, sans-serif; }
.afb-price .afb-small { font-family: var(--wp--preset--font-family--body); font-weight: 500; }

/* Full-width buttons must include their padding in the width. */
.afb-btn { box-sizing: border-box; max-width: 100%; }
@media (max-width: 781px) { .afb-grid > .afb-goal:last-child:nth-child(odd) { grid-column: 1 / -1; aspect-ratio: 2 / 1 !important; } }
