/*
 * Afritech Institute Theme design system.
 * Brand: royal blue + deep navy + gold, from the VTI Afritech seal.
 * Fonts: Sora (display) + Inter (text).
 */

:root {
	--afi-primary: #1c3f9e;
	--afi-primary-600: #16337f;
	--afi-primary-050: #eef2fc;
	--afi-navy: #0b1f4e;
	--afi-navy-deep: #071538;
	--afi-gold: #f5b40a;
	--afi-gold-deep: #d99a00;
	--afi-gold-050: #fff7e0;
	--afi-ink: #101828;
	--afi-muted: #5a6478;
	--afi-line: #e4e9f4;
	--afi-bg: #f6f8fd;
	--afi-surface: #ffffff;
	--afi-green: #1fa855;
	--afi-radius-sm: 10px;
	--afi-radius: 16px;
	--afi-radius-lg: 24px;
	--afi-shadow-1: 0 1px 2px rgba(11, 31, 78, .06), 0 4px 14px rgba(11, 31, 78, .06);
	--afi-shadow-2: 0 6px 18px rgba(11, 31, 78, .10), 0 18px 44px rgba(11, 31, 78, .10);
	--afi-grad-blue: linear-gradient(135deg, #16337f 0%, #1c3f9e 55%, #2a55c4 100%);
	--afi-grad-hero: radial-gradient(1100px 600px at 85% -10%, rgba(42, 85, 196, .55), transparent 60%), radial-gradient(800px 500px at -10% 110%, rgba(245, 180, 10, .18), transparent 55%), linear-gradient(150deg, #0b1f4e 0%, #12296b 60%, #16337f 100%);
	--afi-font-display: "Sora", "Inter", "Segoe UI", system-ui, sans-serif;
	--afi-font-text: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;
	--afi-container: 1180px;
	--afi-header-h: 76px;
	--afi-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------------------------------------------------------------- Reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--afi-header-h) + 20px); }
body {
	margin: 0;
	font-family: var(--afi-font-text);
	font-size: 16.5px;
	line-height: 1.65;
	color: var(--afi-ink);
	background: var(--afi-surface);
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--afi-primary); text-decoration: none; }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }

/* ------------------------------------------------------------- Layout */
.afi-container { width: min(var(--afi-container), 100% - 40px); margin-inline: auto; }
.afi-container-narrow { width: min(820px, 100% - 40px); }
.afi-section { padding: clamp(64px, 8vw, 104px) 0; }
.afi-app-page { padding: clamp(36px, 5vw, 60px) 0; } /* LDH account/checkout apps bring their own spacing. */
/* The account app self-limits (max-width 1240px + 1rem side padding + 4.25rem
 * top margin). Inside .afi-container those double up with the theme's own
 * gutters, so strip them: the container alone sets the 1180px measure. */
.afi-app-page .ldh-acct { max-width: none; margin: 0 auto; padding-left: 0; padding-right: 0; }
.afi-app-page .ldh-auth { margin-top: 0; } /* Auth card keeps its 480px measure, loses the doubled top gap. */
/* The account app's sticky sidebar must clear the theme's sticky header
 * (the app itself is theme-agnostic and only offsets 1.5rem). */
.afi-app-page .ldh-acct-side { top: calc(var(--afi-header-h) + 20px); }
body.admin-bar .afi-app-page .ldh-acct-side { top: calc(var(--afi-header-h) + var(--wp-admin--admin-bar--height, 32px) + 20px); }
.afi-section-alt { background: var(--afi-bg); }
.afi-section-dark { background: var(--afi-grad-hero); color: #fff; }
.afi-section-dark .afi-h2, .afi-section-dark .afi-h3, .afi-section-dark .afi-h4 { color: #fff; }
.afi-section-dark .afi-sub { color: rgba(255, 255, 255, .78); }
.afi-section-dark .afi-kicker { background: rgba(245, 180, 10, .14); color: var(--afi-gold); border-color: rgba(245, 180, 10, .3); }

/* ---------------------------------------------------------- Typography */
.afi-h1, .afi-h2, .afi-h3, .afi-h4 {
	font-family: var(--afi-font-display);
	color: var(--afi-ink);
	line-height: 1.14;
	margin: 0 0 .45em;
	letter-spacing: -.015em;
	font-weight: 700;
}
.afi-h1 { font-size: clamp(2.1rem, 4.6vw, 3.4rem); font-weight: 800; }
.afi-h2 { font-size: clamp(1.65rem, 3.2vw, 2.35rem); }
.afi-h3 { font-size: clamp(1.25rem, 2.2vw, 1.55rem); }
.afi-h4 { font-size: 1.12rem; line-height: 1.3; }
.afi-sub { font-size: 1.08rem; color: var(--afi-muted); max-width: 46em; }

.afi-kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--afi-font-display);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--afi-primary);
	background: var(--afi-primary-050);
	border: 1px solid #d8e1f7;
	border-radius: 999px;
	padding: 7px 14px;
	margin-bottom: 18px;
}
.afi-kicker-onblue { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .22); color: #ffd869; }

.afi-sec-head { margin-bottom: clamp(34px, 4.5vw, 54px); }
.afi-sec-head-center { text-align: center; }
.afi-sec-head-center .afi-sub { margin-inline: auto; }
.afi-sec-foot { margin-top: 42px; text-align: center; }

/* -------------------------------------------------------------- Icons */
.afi-icon { width: 22px; height: 22px; flex: none; }
.afi-icon-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 15px;
	background: var(--afi-grad-blue);
	color: #fff;
	box-shadow: 0 8px 18px rgba(28, 63, 158, .28);
	margin-bottom: 16px;
	flex: none;
}
.afi-icon-badge .afi-icon { width: 25px; height: 25px; }
.afi-icon-badge-lg { width: 66px; height: 66px; border-radius: 19px; }
.afi-icon-badge-lg .afi-icon { width: 32px; height: 32px; }
.afi-icon-badge-gold { background: linear-gradient(135deg, #d99a00, #f5b40a); color: var(--afi-navy-deep); box-shadow: 0 8px 18px rgba(245, 180, 10, .3); }
.afi-icon-badge-hero { margin-bottom: 0; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2); box-shadow: none; }

/* ------------------------------------------------------------- Buttons */
.afi-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	font-family: var(--afi-font-display);
	font-weight: 700;
	font-size: .98rem;
	line-height: 1;
	padding: 15px 26px;
	border-radius: 999px;
	border: 2px solid transparent;
	cursor: pointer;
	transition: transform .18s var(--afi-ease), box-shadow .18s var(--afi-ease), background .18s;
	white-space: nowrap;
}
.afi-btn:hover { transform: translateY(-2px); }
.afi-btn:active { transform: translateY(0); }
.afi-btn-arrow { width: 18px; height: 18px; }
.afi-btn-primary { background: var(--afi-grad-blue); color: #fff; box-shadow: 0 10px 22px rgba(28, 63, 158, .3); }
.afi-btn-primary:hover { box-shadow: 0 14px 28px rgba(28, 63, 158, .38); color: #fff; }
.afi-btn-gold { background: linear-gradient(135deg, #f5b40a, #ffcf40); color: var(--afi-navy-deep); box-shadow: 0 10px 22px rgba(245, 180, 10, .35); }
.afi-btn-gold:hover { box-shadow: 0 14px 30px rgba(245, 180, 10, .45); color: var(--afi-navy-deep); }
.afi-btn-white { background: rgba(255, 255, 255, .1); border-color: rgba(255, 255, 255, .38); color: #fff; }
.afi-btn-white:hover { background: rgba(255, 255, 255, .18); color: #fff; }
.afi-btn-ghost { border-color: #ccd7f0; color: var(--afi-primary); background: #fff; }
.afi-btn-ghost:hover { border-color: var(--afi-primary); }
.afi-btn-whatsapp { background: #e9f9ef; border-color: #bfe9cf; color: #128c46; }
.afi-btn-whatsapp:hover { background: #dcf5e6; color: #0e7038; }

.afi-link-more, .afi-prog-card-more, .afi-course-card-more {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-family: var(--afi-font-display);
	font-weight: 700;
	font-size: .92rem;
	color: var(--afi-primary);
	margin-top: auto;
}
.afi-link-more .afi-icon, .afi-prog-card-more .afi-icon, .afi-course-card-more .afi-icon { width: 17px; height: 17px; transition: transform .18s var(--afi-ease); }
.afi-prog-card:hover .afi-icon:last-child, .afi-course-card:hover .afi-course-card-more .afi-icon, .afi-family-card:hover .afi-link-more .afi-icon { transform: translateX(4px); }

/* ------------------------------------------------------ Badges & chips */
.afi-badge {
	display: inline-flex;
	align-items: center;
	font-family: var(--afi-font-display);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	padding: 5px 11px;
	border-radius: 999px;
}
.afi-badge-dqp { background: var(--afi-primary-050); color: var(--afi-primary); }
.afi-badge-cqp { background: #e8f6ff; color: #0b6aa8; }
.afi-badge-hnd { background: var(--afi-gold-050); color: #9c6f00; }
.afi-badge-entry { background: #eef1f7; color: var(--afi-muted); }
.afi-chip {
	display: inline-flex;
	align-items: center;
	background: var(--afi-primary-050);
	color: var(--afi-primary-600);
	font-weight: 600;
	font-size: .88rem;
	padding: 7px 14px;
	border-radius: 999px;
}
.afi-chip-gold { background: var(--afi-gold-050); color: #9c6f00; }

/* -------------------------------------------------------------- Grids */
.afi-grid-2, .afi-grid-3, .afi-grid-4 { display: grid; gap: 22px; }
.afi-grid-2 { grid-template-columns: repeat(2, 1fr); }
.afi-grid-3 { grid-template-columns: repeat(3, 1fr); }
.afi-grid-4 { grid-template-columns: repeat(4, 1fr); }
.afi-grid-3 + .afi-family-label { margin-top: 48px; }

/* -------------------------------------------------------------- Cards */
.afi-card, .afi-dark-card, .afi-family-card, .afi-prog-card, .afi-course-card, .afi-quote-card, .afi-team-card, .afi-contact-card, .afi-step, .afi-fact, .afi-mv-card {
	border-radius: var(--afi-radius);
	display: flex;
	flex-direction: column;
}
.afi-card {
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	padding: 28px;
	box-shadow: var(--afi-shadow-1);
	transition: transform .2s var(--afi-ease), box-shadow .2s var(--afi-ease);
}
.afi-card:hover { transform: translateY(-4px); box-shadow: var(--afi-shadow-2); }
.afi-card p { color: var(--afi-muted); font-size: .97rem; }

.afi-dark-card {
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .12);
	padding: 28px;
	backdrop-filter: blur(4px);
	transition: transform .2s var(--afi-ease), background .2s;
}
.afi-dark-card:hover { transform: translateY(-4px); background: rgba(255, 255, 255, .09); }
.afi-dark-card p { color: rgba(255, 255, 255, .75); font-size: .97rem; }

/* Family cards */
.afi-family-card {
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius-lg);
	padding: 34px;
	box-shadow: var(--afi-shadow-1);
	color: var(--afi-ink);
	position: relative;
	overflow: hidden;
	transition: transform .2s var(--afi-ease), box-shadow .2s var(--afi-ease);
}
.afi-family-card::after {
	content: "";
	position: absolute;
	inset: auto -60px -60px auto;
	width: 190px;
	height: 190px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(245, 180, 10, .16), transparent 65%);
}
.afi-family-card:hover { transform: translateY(-5px); box-shadow: var(--afi-shadow-2); }
.afi-family-card p { color: var(--afi-muted); }
.afi-family-card-meta { font-family: var(--afi-font-display); font-size: .8rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--afi-gold-deep); margin-bottom: 6px; }
.afi-family-card .afi-link-more { margin-top: 14px; }

/* Program cards */
.afi-prog-card {
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	padding: 26px;
	box-shadow: var(--afi-shadow-1);
	color: var(--afi-ink);
	gap: 4px;
	transition: transform .2s var(--afi-ease), box-shadow .2s var(--afi-ease), border-color .2s;
}
.afi-prog-card:hover { transform: translateY(-4px); box-shadow: var(--afi-shadow-2); border-color: #c8d6f5; }
.afi-prog-card .afi-icon-badge { margin-bottom: 12px; }
.afi-prog-card-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 8px; }
.afi-prog-card-title { font-family: var(--afi-font-display); font-weight: 700; font-size: 1.16rem; line-height: 1.3; }
.afi-prog-card-tagline { color: var(--afi-muted); font-size: .93rem; margin-bottom: 12px; }
.afi-family-label {
	display: flex;
	align-items: center;
	gap: 10px;
	font-family: var(--afi-font-display);
	font-size: 1.02rem;
	font-weight: 700;
	color: var(--afi-primary-600);
	margin: 44px 0 18px;
}
.afi-family-label .afi-icon { color: var(--afi-gold-deep); }
.afi-family-label:first-of-type { margin-top: 0; }

/* Course cards */
.afi-course-card, .afi-blog-card {
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	overflow: hidden;
	box-shadow: var(--afi-shadow-1);
	color: var(--afi-ink);
	transition: transform .2s var(--afi-ease), box-shadow .2s var(--afi-ease);
	border-radius: var(--afi-radius);
	display: flex;
	flex-direction: column;
}
.afi-course-card:hover, .afi-blog-card:hover { transform: translateY(-4px); box-shadow: var(--afi-shadow-2); }
.afi-course-card-media, .afi-blog-card-media { position: relative; aspect-ratio: 16 / 9; background: var(--afi-grad-blue); display: block; }
.afi-course-card-media img, .afi-blog-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.afi-course-card-fallback { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(255, 255, 255, .85); }
.afi-course-card-fallback .afi-icon { width: 44px; height: 44px; }
.afi-course-card-price {
	position: absolute;
	right: 12px;
	bottom: 12px;
	background: var(--afi-gold);
	color: var(--afi-navy-deep);
	font-family: var(--afi-font-display);
	font-weight: 700;
	font-size: .85rem;
	padding: 6px 12px;
	border-radius: 999px;
	box-shadow: 0 4px 12px rgba(7, 21, 56, .25);
}
.afi-course-card-body, .afi-blog-card-body { display: flex; flex-direction: column; gap: 8px; padding: 22px; flex: 1; }
.afi-course-card-title { font-family: var(--afi-font-display); font-weight: 700; font-size: 1.08rem; line-height: 1.35; }
.afi-course-card-excerpt { color: var(--afi-muted); font-size: .93rem; }
.afi-course-card-more { margin-top: auto; padding-top: 8px; }
.afi-blog-card-date { font-size: .82rem; font-weight: 600; color: var(--afi-gold-deep); text-transform: uppercase; letter-spacing: .07em; }

/* ------------------------------------------------------------- Topbar */
.afi-topbar { background: var(--afi-navy-deep); color: rgba(255, 255, 255, .88); font-size: .88rem; }
.afi-topbar-inner { display: flex; align-items: center; justify-content: center; gap: 16px; padding: 9px 0; flex-wrap: wrap; }
.afi-topbar-text { display: inline-flex; align-items: center; gap: 8px; }
.afi-topbar-text .afi-icon { width: 16px; height: 16px; color: var(--afi-gold); }
.afi-topbar-link { color: var(--afi-gold); font-weight: 700; }
.afi-topbar-link:hover { color: #ffd869; }

/* ------------------------------------------------------------- Header */
.afi-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: rgba(255, 255, 255, .92);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s, box-shadow .2s;
}
.afi-header.is-stuck { border-bottom-color: var(--afi-line); box-shadow: 0 6px 22px rgba(11, 31, 78, .07); }
/* The header row packs a logo, six links and up to three CTAs: give it a wider
   container than page content and tighter gaps so it always fits on one line. */
.afi-header .afi-container { width: min(1320px, 100% - 40px); }
.afi-header-inner { display: flex; align-items: center; gap: 20px; height: var(--afi-header-h); }
.afi-logo { display: inline-flex; align-items: center; gap: 12px; color: var(--afi-ink); min-width: 0; }
.afi-logo-img { width: 48px; height: 48px; object-fit: contain; flex: none; }
.afi-logo-text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.afi-logo-name { font-family: var(--afi-font-display); font-weight: 800; font-size: 1.08rem; letter-spacing: -.01em; white-space: nowrap; }
.afi-logo-tagline { font-size: .68rem; color: var(--afi-muted); letter-spacing: .02em; white-space: nowrap; }
.afi-nav { display: flex; align-items: center; gap: 16px; margin-left: auto; }
.afi-nav-list { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.afi-nav-list a, .afi-nav-link {
	display: inline-block;
	font-weight: 600;
	font-size: .95rem;
	color: var(--afi-ink);
	padding: 9px 12px;
	border-radius: 999px;
	white-space: nowrap; /* never break a label like "Online Courses" onto two lines */
	transition: background .15s, color .15s;
}
.afi-nav-list a:hover, .afi-nav-link:hover { background: var(--afi-primary-050); color: var(--afi-primary); }
.afi-nav-list .current-menu-item > a, .afi-nav-link.afi-current { background: var(--afi-primary-050); color: var(--afi-primary); }
.afi-nav-cta { display: flex; align-items: center; gap: 8px; }
.afi-nav-cta .afi-btn { padding: 12px 18px; font-size: .9rem; }
.afi-nav-account {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-weight: 600;
	font-size: .9rem;
	color: var(--afi-primary);
	padding: 10px 15px;
	border: 1.5px solid var(--afi-primary);
	border-radius: 999px;
	white-space: nowrap;
	transition: background .15s, color .15s;
}
.afi-nav-account:hover { background: var(--afi-primary-050); }
.afi-nav-account .afi-icon { width: 17px; height: 17px; }
.afi-nav-toggle { display: none; }

/* Dropdown submenus (when a WP menu with children is assigned) */
.afi-nav-list li { position: relative; }
.afi-nav-list .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 230px;
	list-style: none;
	margin: 6px 0 0;
	padding: 8px;
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	border-radius: 14px;
	box-shadow: var(--afi-shadow-2);
	display: none;
	z-index: 70;
}
.afi-nav-list li:hover > .sub-menu, .afi-nav-list li:focus-within > .sub-menu { display: block; }
.afi-nav-list .sub-menu a { display: block; border-radius: 9px; padding: 9px 12px; white-space: nowrap; }

/* --------------------------------------------------------------- Hero */
.afi-hero { background: var(--afi-grad-hero); color: #fff; padding: clamp(60px, 7vw, 96px) 0 0; }
.afi-hero-inner { display: grid; grid-template-columns: 1.15fr .85fr; gap: 48px; align-items: center; }
.afi-hero .afi-h1 { color: #fff; }
.afi-accent-text { color: var(--afi-gold); }
.afi-hero-sub { font-size: 1.13rem; color: rgba(255, 255, 255, .82); max-width: 36em; }
.afi-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.afi-hero-note { display: flex; align-items: center; gap: 9px; margin-top: 20px; font-size: .93rem; color: rgba(255, 255, 255, .72); }
.afi-hero-note .afi-icon { width: 17px; height: 17px; color: var(--afi-gold); }
.afi-hero-visual { display: flex; justify-content: center; }
.afi-hero-img { border-radius: var(--afi-radius-lg); box-shadow: var(--afi-shadow-2); max-height: 460px; object-fit: cover; }
.afi-hero-panel {
	background: rgba(255, 255, 255, .07);
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: var(--afi-radius-lg);
	padding: 44px 52px;
	text-align: center;
	backdrop-filter: blur(6px);
	box-shadow: var(--afi-shadow-2);
}
.afi-hero-slider {
	position: relative;
	width: 100%;
	max-width: 520px;
	aspect-ratio: 4 / 3;
	border-radius: var(--afi-radius-lg);
	overflow: hidden;
	box-shadow: var(--afi-shadow-2);
}
.afi-hero-slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 1.4s var(--afi-ease);
}
.afi-hero-slide.is-active { opacity: 1; }
.afi-hero-slider-dots {
	position: absolute;
	inset: auto 0 14px;
	display: flex;
	justify-content: center;
	gap: 8px;
	z-index: 2;
}
.afi-hero-slider-dot {
	width: 11px;
	height: 11px;
	border-radius: 50%;
	border: 0;
	padding: 0;
	background: rgba(255, 255, 255, .6);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .35);
	cursor: pointer;
	transition: background .2s, transform .2s;
}
.afi-hero-slider-dot:hover { background: #fff; }
.afi-hero-slider-dot.is-active { background: var(--afi-gold); transform: scale(1.25); }
.afi-hero-slider-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border: 0;
	border-radius: 50%;
	background: rgba(11, 31, 78, .55);
	color: #fff;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .3);
	backdrop-filter: blur(2px);
	transition: background .2s, transform .2s;
}
.afi-hero-slider-arrow:hover {
	background: var(--afi-gold);
	color: var(--afi-navy);
	transform: translateY(-50%) scale(1.06);
}
.afi-hero-slider-arrow:focus-visible { outline: 2px solid var(--afi-gold); outline-offset: 2px; }
.afi-hero-slider-arrow .afi-icon { width: 20px; height: 20px; }
.afi-hero-slider-arrow.is-prev { left: 12px; }
.afi-hero-slider-arrow.is-prev .afi-icon { transform: scaleX(-1); }
.afi-hero-slider-arrow.is-next { right: 12px; }
.afi-hero-seal { width: min(240px, 55vw); filter: drop-shadow(0 14px 30px rgba(0, 0, 0, .35)); }
.afi-hero-panel-tagline { margin-top: 18px; font-family: var(--afi-font-display); font-weight: 600; color: var(--afi-gold); letter-spacing: .02em; }
.afi-hero-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: clamp(44px, 6vw, 64px);
	transform: translateY(46px);
}
.afi-stat {
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius);
	box-shadow: var(--afi-shadow-2);
	padding: 22px 24px;
	text-align: center;
}
.afi-stat-n { display: block; font-family: var(--afi-font-display); font-weight: 800; font-size: 1.75rem; color: var(--afi-primary-600); line-height: 1.1; }
.afi-stat-l { display: block; margin-top: 4px; font-size: .87rem; color: var(--afi-muted); font-weight: 600; }
.afi-hero + * { padding-top: calc(clamp(64px, 8vw, 104px) + 46px); }
.afi-hero + .afi-accred { padding-top: calc(34px + 46px); }

/* Page hero (inner pages) */
.afi-page-hero { background: var(--afi-grad-hero); color: #fff; padding: clamp(56px, 6.5vw, 84px) 0; }
.afi-page-hero .afi-h1 { color: #fff; }
.afi-page-hero-slim { padding: clamp(40px, 5vw, 60px) 0; }
.afi-hero-date-pill {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	margin-top: 20px;
	background: rgba(245, 180, 10, .14);
	border: 1px solid rgba(245, 180, 10, .35);
	color: #ffd869;
	font-family: var(--afi-font-display);
	font-weight: 700;
	padding: 11px 20px;
	border-radius: 999px;
}
.afi-hero-date-pill .afi-icon { width: 18px; height: 18px; }

/* ------------------------------------------------------ Accreditation */
.afi-accred { background: var(--afi-surface); padding: 34px 0; border-bottom: 1px solid var(--afi-line); }
.afi-accred-items { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px 34px; }
.afi-accred-item { display: inline-flex; align-items: center; gap: 9px; font-family: var(--afi-font-display); font-weight: 700; font-size: .95rem; color: var(--afi-primary-600); }
.afi-accred-item .afi-icon { color: var(--afi-gold-deep); width: 20px; height: 20px; }
.afi-accred-note { text-align: center; color: var(--afi-muted); font-size: .82rem; margin: 14px 0 0; }

/* ------------------------------------------------------------- Ladder */
.afi-ladder { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; counter-reset: ladder; }
.afi-ladder-step {
	position: relative;
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius-lg);
	padding: 30px;
	box-shadow: var(--afi-shadow-1);
	transition: transform .2s var(--afi-ease), box-shadow .2s var(--afi-ease);
}
.afi-ladder-step:hover { transform: translateY(-4px); box-shadow: var(--afi-shadow-2); }
.afi-ladder-num {
	position: absolute;
	top: 22px;
	right: 26px;
	font-family: var(--afi-font-display);
	font-weight: 800;
	font-size: 2.6rem;
	color: var(--afi-primary-050);
	line-height: 1;
}
.afi-ladder-tag { display: block; font-family: var(--afi-font-display); font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--afi-gold-deep); margin-bottom: 6px; }
.afi-ladder-step p { color: var(--afi-muted); font-size: .96rem; }

/* -------------------------------------------------------- Progression */
.afi-progression { display: flex; flex-direction: column; gap: 14px; max-width: 980px; margin-inline: auto; }
.afi-progression-row {
	display: grid;
	grid-template-columns: 1fr 44px 300px;
	align-items: center;
	gap: 14px;
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius);
	padding: 18px 22px;
	box-shadow: var(--afi-shadow-1);
}
.afi-progression-from { display: flex; flex-wrap: wrap; gap: 8px; }
.afi-progression-arrow { display: flex; justify-content: center; color: var(--afi-gold-deep); }
.afi-progression-to {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--afi-font-display);
	font-weight: 700;
	color: var(--afi-ink);
	font-size: 1.02rem;
}
.afi-progression-to:hover { color: var(--afi-primary); }
.afi-progression-to-flat { color: var(--afi-muted); font-weight: 600; font-family: var(--afi-font-text); font-size: .95rem; }
.afi-progression-note { background: var(--afi-bg); }

/* -------------------------------------------------------------- Steps */
.afi-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.afi-step { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius); padding: 28px; box-shadow: var(--afi-shadow-1); position: relative; }
.afi-step-num {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--afi-grad-blue);
	color: #fff;
	font-family: var(--afi-font-display);
	font-weight: 800;
	margin-bottom: 16px;
	box-shadow: 0 6px 14px rgba(28, 63, 158, .3);
}
.afi-step p { color: var(--afi-muted); font-size: .95rem; }

/* --------------------------------------------------------- Checklists */
.afi-checklist { list-style: none; padding: 0; margin: 18px 0 0; display: flex; flex-direction: column; gap: 11px; }
.afi-checklist li { display: flex; gap: 10px; align-items: flex-start; font-size: .98rem; }
.afi-checklist .afi-icon { width: 20px; height: 20px; color: var(--afi-green); margin-top: 2px; }
.afi-checklist-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 11px 26px; }

/* --------------------------------------------------- Admissions bits */
.afi-admis-band {
	background: var(--afi-surface);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius-lg);
	box-shadow: var(--afi-shadow-2);
	padding: clamp(30px, 5vw, 54px);
}
.afi-admis-date { display: flex; align-items: center; gap: 9px; font-family: var(--afi-font-display); font-weight: 700; color: var(--afi-gold-deep); margin: 4px 0 10px; }
.afi-admis-date .afi-icon { width: 19px; height: 19px; }
.afi-admis-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.afi-admis-col { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius-lg); padding: 32px; box-shadow: var(--afi-shadow-1); }
.afi-admis-col .afi-h3 { display: flex; align-items: center; gap: 10px; }
.afi-admis-col .afi-h3 .afi-icon { color: var(--afi-gold-deep); }
.afi-fees { display: flex; flex-direction: column; margin-top: 18px; }
.afi-fee-row { padding: 14px 0; border-bottom: 1px dashed var(--afi-line); }
.afi-fee-row:last-child { border-bottom: 0; }
.afi-fee-main { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; }
.afi-fee-label { font-weight: 600; }
.afi-fee-amount { font-family: var(--afi-font-display); font-weight: 800; color: var(--afi-primary-600); white-space: nowrap; }
.afi-fee-note { font-size: .86rem; color: var(--afi-muted); }
.afi-fee-footnote { margin-top: 16px; font-size: .9rem; color: var(--afi-muted); }
.afi-fact { flex-direction: row; gap: 16px; align-items: center; background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius); padding: 20px 24px; box-shadow: var(--afi-shadow-1); }
.afi-fact .afi-icon-badge { margin-bottom: 0; width: 46px; height: 46px; }
.afi-fact-label { display: block; font-size: .8rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--afi-muted); }
.afi-fact-value { display: block; font-weight: 600; }
.afi-entry-text { font-size: 1.05rem; color: var(--afi-muted); }

/* ------------------------------------------------------- Testimonials */
.afi-quote-card { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius); padding: 30px; box-shadow: var(--afi-shadow-1); margin: 0; position: relative; }
.afi-quote-mark { font-family: var(--afi-font-display); font-size: 3.4rem; line-height: 1; color: var(--afi-gold); position: absolute; top: 18px; right: 26px; opacity: .6; }
.afi-quote-card blockquote { margin: 0 0 20px; font-size: 1.01rem; color: var(--afi-ink); }
.afi-quote-card figcaption { display: grid; grid-template-columns: auto 1fr; gap: 2px 12px; align-items: center; }
.afi-quote-avatar { grid-row: span 2; width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.afi-quote-name { font-family: var(--afi-font-display); font-weight: 700; font-size: .96rem; }
.afi-quote-role { font-size: .84rem; color: var(--afi-muted); }

/* -------------------------------------------------------------- Video */
.afi-video-facade {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	padding: 0;
	border: 0;
	border-radius: var(--afi-radius);
	overflow: hidden;
	cursor: pointer;
	background: var(--afi-navy);
	box-shadow: var(--afi-shadow-1);
}
.afi-video-facade img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .3s var(--afi-ease), opacity .3s;
	opacity: .92;
}
.afi-video-facade:hover img { transform: scale(1.03); opacity: 1; }
.afi-video-play {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
}
.afi-video-play .afi-icon {
	width: 68px;
	height: 68px;
	padding: 16px;
	border-radius: 50%;
	background: rgba(11, 31, 78, .55);
	border: 2px solid rgba(255, 255, 255, .75);
	backdrop-filter: blur(3px);
	transition: background .2s, transform .2s;
}
.afi-video-facade:hover .afi-video-play .afi-icon { background: var(--afi-gold); border-color: var(--afi-gold); transform: scale(1.06); }
.afi-video-frame { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: var(--afi-radius); overflow: hidden; box-shadow: var(--afi-shadow-1); background: #000; }
.afi-video-frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.afi-video-feature { max-width: 880px; margin-inline: auto; }
.afi-video-feature .afi-video-facade, .afi-video-feature .afi-video-frame { border-radius: var(--afi-radius-lg); box-shadow: var(--afi-shadow-2); }
.afi-video-quotes { margin-bottom: 34px; }
.afi-video-card { margin: 0; }
.afi-video-card figcaption { display: flex; flex-direction: column; gap: 1px; padding: 12px 4px 0; }
.afi-video-modal {
	position: fixed;
	inset: 0;
	z-index: 1200;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	background: rgba(11, 31, 78, .82);
	backdrop-filter: blur(4px);
	animation: afi-modal-in .2s var(--afi-ease);
}
@keyframes afi-modal-in { from { opacity: 0; } to { opacity: 1; } }
.afi-video-modal-dialog { position: relative; width: min(960px, 100%); }
.afi-video-modal-dialog .afi-video-frame { border-radius: var(--afi-radius-lg); box-shadow: var(--afi-shadow-2); }
.afi-video-modal-close {
	position: absolute;
	right: 0;
	bottom: 100%;
	margin-bottom: 10px;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 2px solid rgba(255, 255, 255, .75);
	border-radius: 50%;
	background: rgba(11, 31, 78, .55);
	color: #fff;
	font-size: 1.5rem;
	line-height: 1;
	cursor: pointer;
	transition: background .2s, transform .2s;
}
.afi-video-modal-close:hover { background: var(--afi-gold); border-color: var(--afi-gold); transform: scale(1.06); }
body.afi-modal-open { overflow: hidden; }

/* ---------------------------------------------------------------- FAQ */
.afi-faq { display: flex; flex-direction: column; gap: 12px; }
.afi-faq-item { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius); box-shadow: var(--afi-shadow-1); overflow: hidden; }
.afi-faq-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	cursor: pointer;
	list-style: none;
	font-family: var(--afi-font-display);
	font-weight: 700;
	font-size: 1.02rem;
	padding: 20px 24px;
}
.afi-faq-item summary::-webkit-details-marker { display: none; }
.afi-faq-chev { display: flex; color: var(--afi-gold-deep); transition: transform .2s var(--afi-ease); }
.afi-faq-chev .afi-icon { width: 19px; height: 19px; }
.afi-faq-item[open] .afi-faq-chev { transform: rotate(90deg); }
.afi-faq-a { padding: 0 24px 22px; color: var(--afi-muted); }

/* ------------------------------------------------------------ CTA band */
.afi-cta-band { background: var(--afi-grad-hero); color: #fff; }
.afi-cta-band-inner { display: flex; align-items: center; justify-content: space-between; gap: 36px; flex-wrap: wrap; }
.afi-cta-band .afi-h2 { color: #fff; }
.afi-cta-band .afi-sub { color: rgba(255, 255, 255, .78); }
.afi-cta-band-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* -------------------------------------------------------------- About */
.afi-story { display: grid; grid-template-columns: 1.2fr .8fr; gap: 48px; align-items: start; }
.afi-story-img { border-radius: var(--afi-radius-lg); box-shadow: var(--afi-shadow-2); }
.afi-story-panel {
	background: var(--afi-bg);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius-lg);
	padding: 48px;
	display: flex;
	justify-content: center;
	position: sticky;
	top: calc(var(--afi-header-h) + 24px);
}
.afi-story-panel img { width: min(260px, 100%); }
.afi-mv-card { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); padding: 36px; border-radius: var(--afi-radius-lg); }
.afi-mv-card p { color: rgba(255, 255, 255, .8); font-size: 1.02rem; }
.afi-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 42px; }
.afi-gallery-item { margin: 0; border-radius: var(--afi-radius); overflow: hidden; box-shadow: var(--afi-shadow-1); position: relative; }
.afi-gallery-item img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .3s var(--afi-ease); }
.afi-gallery-item:hover img { transform: scale(1.04); }
.afi-gallery-item figcaption { position: absolute; inset: auto 0 0; background: linear-gradient(transparent, rgba(7, 21, 56, .8)); color: #fff; font-size: .86rem; padding: 26px 14px 12px; }
.afi-team-card { align-items: center; text-align: center; background: var(--afi-surface); border: 1px solid var(--afi-line); padding: 32px 26px; box-shadow: var(--afi-shadow-1); }
.afi-team-photo { width: 108px; height: 108px; border-radius: 50%; overflow: hidden; margin-bottom: 18px; background: var(--afi-grad-blue); display: flex; align-items: center; justify-content: center; border: 3px solid var(--afi-gold); }
.afi-team-photo img { width: 100%; height: 100%; object-fit: cover; }
.afi-team-initials { font-family: var(--afi-font-display); font-size: 2.4rem; font-weight: 800; color: #fff; }
.afi-team-role { font-size: .86rem; font-weight: 700; color: var(--afi-gold-deep); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 10px; }
.afi-team-card p { color: var(--afi-muted); font-size: .93rem; }
.afi-stats-band { background: var(--afi-grad-hero); padding: 30px 0; }
.afi-stats-band .afi-hero-stats { margin-top: 0; transform: none; }
.afi-sister { text-align: center; max-width: 760px; }
.afi-sister .afi-sub { margin-inline: auto; margin-bottom: 26px; }

/* ------------------------------------------------------------ Contact */
.afi-contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; align-items: start; }
.afi-contact-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.afi-contact-card { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius); padding: 24px; box-shadow: var(--afi-shadow-1); color: var(--afi-ink); transition: transform .2s var(--afi-ease), box-shadow .2s var(--afi-ease); }
a.afi-contact-card:hover { transform: translateY(-4px); box-shadow: var(--afi-shadow-2); }
.afi-contact-card .afi-icon-badge { width: 46px; height: 46px; margin-bottom: 12px; }
.afi-contact-card-label { font-size: .8rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--afi-muted); }
.afi-contact-card-value { font-weight: 600; margin-top: 3px; }
.afi-contact-card-hours { display: flex; align-items: center; gap: 7px; margin-top: 10px; font-size: .86rem; color: var(--afi-muted); }
.afi-contact-card-hours .afi-icon { width: 16px; height: 16px; }
.afi-contact-form { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius-lg); padding: 36px; box-shadow: var(--afi-shadow-1); }
.afi-contact-wa-card { text-align: center; padding: 26px 12px; }
.afi-contact-wa-card p { color: var(--afi-muted); max-width: 30em; margin-inline: auto; margin-bottom: 22px; }
.afi-map iframe { display: block; width: 100%; height: 420px; border: 0; }

/* ------------------------------------------------------------ Program */
.afi-program-hero-row { display: flex; align-items: center; gap: 22px; margin-top: 8px; }
.afi-program-hero-badges { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.afi-program-layout { display: grid; grid-template-columns: 1fr 350px; gap: 44px; align-items: start; }
.afi-program-main .afi-h3 { margin-top: 38px; }
.afi-program-next { margin-top: 38px; background: var(--afi-bg); border: 1px solid var(--afi-line); border-radius: var(--afi-radius); padding: 28px; }
.afi-program-next .afi-h3 { margin-top: 0; }
.afi-program-side { position: sticky; top: calc(var(--afi-header-h) + 24px); }
.afi-program-facts { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius-lg); padding: 30px; box-shadow: var(--afi-shadow-2); }
.afi-program-facts dl { margin: 18px 0 0; display: flex; flex-direction: column; gap: 0; }
.afi-program-facts dl > div { padding: 12px 0; border-bottom: 1px dashed var(--afi-line); }
.afi-program-facts dt { font-size: .78rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--afi-muted); }
.afi-program-facts dd { margin: 3px 0 0; font-weight: 600; font-size: .97rem; }
.afi-program-facts-cta { display: flex; flex-direction: column; gap: 11px; margin-top: 24px; }
.afi-program-facts-cta .afi-btn { width: 100%; }

/* -------------------------------------------------------------- Prose */
.afi-prose { font-size: 1.04rem; }
.afi-prose p { margin-bottom: 1.15em; }
.afi-prose h2, .afi-prose h3 { font-family: var(--afi-font-display); letter-spacing: -.01em; margin: 1.6em 0 .5em; }
.afi-prose img { border-radius: var(--afi-radius); }
.afi-prose a { text-decoration: underline; text-underline-offset: 3px; }
.afi-prose blockquote { border-left: 4px solid var(--afi-gold); margin: 1.4em 0; padding: 4px 0 4px 20px; color: var(--afi-muted); }

/* --------------------------------------------------------------- Blog */
.afi-post-thumb { margin-bottom: 32px; }
.afi-post-thumb img { border-radius: var(--afi-radius-lg); }
.afi-pagination { margin-top: 44px; text-align: center; }
.afi-pagination .nav-links { display: inline-flex; gap: 8px; }
.afi-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 42px;
	height: 42px;
	padding: 0 10px;
	border-radius: 999px;
	border: 1px solid var(--afi-line);
	background: var(--afi-surface);
	font-weight: 600;
	color: var(--afi-ink);
}
.afi-pagination .page-numbers.current { background: var(--afi-grad-blue); color: #fff; border-color: transparent; }

/* ---------------------------------------------------------- Empty/404 */
.afi-empty { text-align: center; padding: 48px 20px; color: var(--afi-muted); }
.afi-empty .afi-icon-badge { margin-inline: auto; }
.afi-404-inner { text-align: center; padding: 40px 0; }
.afi-404-code { font-family: var(--afi-font-display); font-weight: 800; font-size: clamp(4.5rem, 12vw, 8rem); line-height: 1; background: var(--afi-grad-blue); -webkit-background-clip: text; background-clip: text; color: transparent; }
.afi-404 .afi-hero-actions { justify-content: center; }

/* ------------------------------------------------------------- Footer */
.afi-footer { background: var(--afi-navy-deep); color: rgba(255, 255, 255, .78); padding: clamp(56px, 7vw, 80px) 0 34px; }
.afi-footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 44px; }
.afi-logo-footer .afi-logo-name { color: #fff; }
.afi-logo-footer .afi-logo-tagline { color: var(--afi-gold); }
.afi-footer-about { margin-top: 18px; font-size: .93rem; color: rgba(255, 255, 255, .65); }
.afi-footer-social { display: flex; gap: 10px; margin-top: 20px; }
.afi-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: rgba(255, 255, 255, .08);
	border: 1px solid rgba(255, 255, 255, .14);
	color: #fff;
	transition: background .15s, transform .15s;
}
.afi-social-link:hover { background: var(--afi-gold); color: var(--afi-navy-deep); transform: translateY(-2px); }
.afi-social-link .afi-icon { width: 19px; height: 19px; }
.afi-footer-title { font-family: var(--afi-font-display); font-size: .86rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--afi-gold); margin: 6px 0 18px; }
.afi-footer-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.afi-footer-list a { color: rgba(255, 255, 255, .78); font-size: .95rem; }
.afi-footer-list a:hover { color: var(--afi-gold); }
.afi-footer-contact li { display: flex; gap: 11px; align-items: flex-start; font-size: .93rem; }
.afi-footer-contact .afi-icon { width: 18px; height: 18px; color: var(--afi-gold); margin-top: 3px; flex: none; }
.afi-footer-bottom { margin-top: 52px; padding-top: 26px; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.afi-footer-accred { font-size: .78rem; color: rgba(255, 255, 255, .45); max-width: 60ch; margin: 0; }
.afi-footer-copy { font-size: .84rem; color: rgba(255, 255, 255, .55); margin: 0; }
.afi-footer-credit { color: var(--afi-gold); margin-left: 8px; }

/* -------------------------------------------------- WhatsApp floater */
.afi-wa-float {
	position: fixed;
	right: 22px;
	bottom: 22px;
	z-index: 70;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: #25d366;
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 26px rgba(18, 140, 70, .4);
	transition: transform .18s var(--afi-ease);
}
.afi-wa-float:hover { transform: translateY(-3px) scale(1.05); color: #fff; }
.afi-wa-float .afi-icon { width: 28px; height: 28px; }

/* ------------------------------------------------------------- Reveal */
@media (prefers-reduced-motion: no-preference) {
	[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity .55s var(--afi-ease), transform .55s var(--afi-ease); }
	[data-reveal].is-in { opacity: 1; transform: none; }
}

/* --------------------------------------------------------- Responsive */
/* Header squeeze: between full desktop and the burger menu, shrink the row
   so every link (plus the CTAs) still fits on a single line. */
@media (max-width: 1280px) {
	.afi-logo-tagline { display: none; }
	.afi-header-inner { gap: 14px; }
	.afi-nav { gap: 10px; }
	.afi-nav-list a, .afi-nav-link { font-size: .9rem; padding: 8px 10px; }
	.afi-nav-account { font-size: .88rem; padding: 9px 12px; }
	.afi-nav-cta .afi-btn { padding: 11px 15px; font-size: .88rem; }
}

@media (max-width: 1080px) {
	.afi-grid-4 { grid-template-columns: repeat(2, 1fr); }
	.afi-steps { grid-template-columns: repeat(2, 1fr); }
	.afi-footer-grid { grid-template-columns: 1fr 1fr; }
	.afi-program-layout { grid-template-columns: 1fr; }
	.afi-program-side { position: static; }

	/* Mobile nav: below this width the inline row can no longer fit even when
	   squeezed, so the menu collapses into the burger + full-screen overlay. */
	.afi-nav-toggle {
		display: flex;
		flex-direction: column;
		justify-content: center;
		gap: 5px;
		margin-left: auto;
		width: 46px;
		height: 46px;
		padding: 0 11px;
		background: var(--afi-primary-050);
		border: 1px solid #d8e1f7;
		border-radius: 12px;
		cursor: pointer;
	}
	.afi-nav-toggle span { display: block; height: 2.5px; border-radius: 2px; background: var(--afi-primary-600); transition: transform .2s var(--afi-ease), opacity .2s; }
	.afi-nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
	.afi-nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
	.afi-nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }
	.afi-nav {
		position: fixed;
		inset: 0;
		top: 0;
		z-index: 55;
		flex-direction: column;
		gap: 10px;
		background: rgba(255, 255, 255, .98);
		backdrop-filter: blur(10px);
		margin: 0;
		padding: calc(var(--afi-header-h) + 20px) 24px 40px;
		overflow-y: auto;
		transform: translateY(-102%);
		transition: transform .3s var(--afi-ease);
	}
	.afi-nav.is-open { transform: none; }
	/* Auto margins center the menu when it fits and collapse to 0 when it
	   overflows, so a long menu scrolls instead of clipping off-screen. */
	.afi-nav-list { flex-direction: column; width: 100%; text-align: center; gap: 8px; margin-top: auto; }
	.afi-nav-list a, .afi-nav-link { display: block; font-size: 1.25rem; padding: 12px; white-space: normal; }
	/* Touch screens have no hover: show submenus inline under their parent. */
	.afi-nav-list li { position: static; }
	.afi-nav-list .sub-menu {
		position: static;
		display: block;
		min-width: 0;
		margin: 2px 0 6px;
		padding: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
	}
	.afi-nav-list .sub-menu a { font-size: 1.02rem; color: var(--afi-muted); padding: 8px 12px; white-space: normal; }
	.afi-nav-cta { margin-top: 12px; margin-bottom: auto; flex-direction: column; gap: 12px; }
	.afi-nav-account { font-size: 1.05rem; padding: 12px 26px; }
	.afi-header .afi-nav-toggle { position: relative; z-index: 65; }
}

@media (max-width: 920px) {
	.afi-grid-3 { grid-template-columns: repeat(2, 1fr); }
	.afi-hero-inner { grid-template-columns: 1fr; gap: 36px; }
	.afi-hero-visual { order: -1; }
	.afi-hero-panel { display: none; }
	.afi-hero-stats { grid-template-columns: repeat(2, 1fr); }
	.afi-story { grid-template-columns: 1fr; }
	.afi-story-panel { display: none; }
	.afi-contact-layout { grid-template-columns: 1fr; }
	.afi-admis-cols { grid-template-columns: 1fr; }
	.afi-progression-row { grid-template-columns: 1fr; gap: 10px; }
	.afi-progression-arrow { transform: rotate(90deg); justify-content: flex-start; }
}

@media (max-width: 620px) {
	body { font-size: 15.5px; }
	.afi-grid-2, .afi-grid-3, .afi-grid-4, .afi-steps, .afi-ladder { grid-template-columns: 1fr; }
	.afi-hero-stats { grid-template-columns: 1fr 1fr; gap: 12px; }
	.afi-stat { padding: 16px; }
	.afi-stat-n { font-size: 1.4rem; }
	.afi-contact-cards { grid-template-columns: 1fr; }
	.afi-checklist-cols { grid-template-columns: 1fr; }
	.afi-gallery { grid-template-columns: 1fr 1fr; }
	.afi-footer-grid { grid-template-columns: 1fr; gap: 34px; }
	.afi-footer-bottom { flex-direction: column; }
	.afi-cta-band-inner { flex-direction: column; align-items: flex-start; }
	.afi-program-hero-row { flex-direction: column; align-items: flex-start; }
	.afi-btn { width: 100%; }
	.afi-hero-actions .afi-btn, .afi-cta-band-actions .afi-btn { width: auto; flex: 1; min-width: 160px; }
}

/* ------------------------------------------------------------- Print */
@media print {
	.afi-topbar, .afi-header, .afi-footer, .afi-wa-float, .afi-cta-band { display: none !important; }
}

/* ----------------------------------------- Logged-in WP admin bar offset
   When the admin bar renders, WP pins #wpadminbar to the top of the viewport,
   so the sticky header (and the fixed mobile-nav overlay) must sit below it.
   Core exposes the bar height as --wp-admin--admin-bar--height: 32px on desktop
   and 46px at <= 782px. At <= 600px WP switches the bar to position:absolute so
   it scrolls away with the page, and the offset must reset to 0. */
body.admin-bar .afi-header {
	top: var(--wp-admin--admin-bar--height, 32px);
}

/* Keep in-page anchor links clear of both the admin bar and the sticky header. */
html:has(body.admin-bar) {
	scroll-padding-top: calc(var(--afi-header-h) + var(--wp-admin--admin-bar--height, 32px) + 20px);
}

@media (max-width: 1080px) {
	/* Mobile nav becomes a fixed full-screen overlay at this breakpoint. */
	body.admin-bar .afi-nav {
		top: var(--wp-admin--admin-bar--height, 32px);
	}
}

@media (max-width: 600px) {
	body.admin-bar .afi-header,
	body.admin-bar .afi-nav {
		top: 0;
	}
	html:has(body.admin-bar) {
		scroll-padding-top: calc(var(--afi-header-h) + 20px);
	}
}

/* -------------------------------------------------- Apply form + Verify */
.afi-apply-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.afi-form { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius-lg); padding: clamp(22px, 3.5vw, 36px); box-shadow: var(--afi-shadow-1); }
.afi-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.afi-field { display: flex; flex-direction: column; gap: 6px; }
.afi-field-full { grid-column: 1 / -1; }
.afi-field label { font-family: var(--afi-font-display); font-size: 13.5px; font-weight: 600; color: var(--afi-navy); }
.afi-req { color: var(--afi-gold-deep); }
.afi-field input,
.afi-field select,
.afi-field textarea {
	font: inherit;
	font-size: 15.5px;
	color: var(--afi-ink);
	background: var(--afi-bg);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius-sm);
	padding: 11px 14px;
	transition: border-color .18s var(--afi-ease), box-shadow .18s var(--afi-ease), background .18s var(--afi-ease);
}
.afi-field input:focus,
.afi-field select:focus,
.afi-field textarea:focus {
	outline: none;
	background: var(--afi-surface);
	border-color: var(--afi-primary);
	box-shadow: 0 0 0 3px var(--afi-primary-050);
}
.afi-form-submit { margin-top: 20px; width: 100%; justify-content: center; }
.afi-form-note { margin-top: 14px; font-size: 14px; color: var(--afi-muted); }
/* Honeypot: moved off-screen (not display:none, which naive bots detect). */
.afi-form-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.afi-banner { display: flex; align-items: flex-start; gap: 12px; border-radius: var(--afi-radius); padding: 16px 18px; margin-bottom: 20px; }
.afi-banner p { margin: 0; }
.afi-banner .afi-icon { width: 22px; height: 22px; flex-shrink: 0; margin-top: 2px; }
.afi-banner-ok { background: #e9f8ef; border: 1px solid #bde8cd; color: #14602f; }
.afi-banner-ok .afi-icon { color: var(--afi-green); }
.afi-banner-err { background: #fdeeee; border: 1px solid #f3c5c5; color: #8f1d1d; }
.afi-apply-aside { display: flex; flex-direction: column; gap: 18px; }
.afi-apply-point { display: flex; gap: 14px; align-items: flex-start; }
.afi-apply-point .afi-h4 { margin: 2px 0 4px; }
.afi-apply-point p { margin: 0; color: var(--afi-muted); font-size: 15px; }

.afi-verify-card { background: var(--afi-surface); border: 1px solid var(--afi-line); border-radius: var(--afi-radius-lg); padding: clamp(22px, 3.5vw, 36px); box-shadow: var(--afi-shadow-1); }
.afi-verify-form { display: flex; gap: 10px; }
.afi-verify-form input {
	flex: 1;
	font: inherit;
	font-size: 16px;
	letter-spacing: .06em;
	font-family: ui-monospace, "Cascadia Mono", Menlo, monospace;
	text-transform: uppercase;
	background: var(--afi-bg);
	border: 1px solid var(--afi-line);
	border-radius: var(--afi-radius-sm);
	padding: 12px 16px;
}
.afi-verify-form input:focus { outline: none; background: var(--afi-surface); border-color: var(--afi-primary); box-shadow: 0 0 0 3px var(--afi-primary-050); }
.afi-verify-help { margin-top: 10px; font-size: 14px; color: var(--afi-muted); }
.afi-verify-result { margin-top: 22px; border-radius: var(--afi-radius); padding: 22px; text-align: center; }
.afi-verify-result .afi-h4 { margin: 10px 0 6px; }
.afi-verify-badge { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; }
.afi-verify-badge .afi-icon { width: 24px; height: 24px; }
.afi-verify-good { background: #e9f8ef; border: 1px solid #bde8cd; }
.afi-verify-good .afi-verify-badge { background: var(--afi-green); color: #fff; }
.afi-verify-warn { background: var(--afi-gold-050); border: 1px solid #f2dfa4; }
.afi-verify-warn .afi-verify-badge { background: var(--afi-gold); color: var(--afi-navy); }
.afi-verify-bad { background: #fdeeee; border: 1px solid #f3c5c5; }
.afi-verify-bad .afi-verify-badge { background: #c4351f; color: #fff; }
.afi-verify-meta { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin: 18px 0 0; text-align: left; background: rgba(255, 255, 255, .6); border-radius: var(--afi-radius-sm); padding: 14px 16px; }
.afi-verify-meta div { margin: 0; }
.afi-verify-meta dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--afi-muted); }
.afi-verify-meta dd { margin: 2px 0 0; font-weight: 600; color: var(--afi-navy); }

.afi-program-live { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--afi-line); }
.afi-program-live .afi-h4 { margin: 0 0 10px; }
.afi-program-live dl { margin: 0; }
.afi-program-live dt { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--afi-muted); }
.afi-program-live dd { margin: 2px 0 10px; font-weight: 600; color: var(--afi-navy); }
.afi-program-live-amount { font-family: var(--afi-font-display); font-size: 20px; color: var(--afi-primary) !important; }

@media (max-width: 920px) {
	.afi-apply-layout { grid-template-columns: 1fr; }
	.afi-form-grid { grid-template-columns: 1fr; }
	.afi-verify-form { flex-direction: column; }
}

/* ------------------------------------------------------------------ */
/* Language switcher (EN | FR)                                        */
/* ------------------------------------------------------------------ */
.afi-lang-switch { display: inline-flex; align-items: center; gap: 2px; margin-left: 10px; padding: 3px; border: 1px solid var(--afi-line); border-radius: 999px; background: #fff; flex: none; }
.afi-lang-switch-item { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--afi-muted); text-decoration: none; transition: color .15s, background .15s; }
.afi-lang-switch-item:hover { color: var(--afi-primary); }
.afi-lang-switch-item.is-active { background: var(--afi-primary); color: #fff; }
@media (max-width: 980px) {
	.afi-lang-switch { margin-left: auto; margin-right: 10px; }
}
