/*
Theme Name: AFSAC
Theme URI: https://afsac.local
Author: AFSAC
Author URI: https://afsac.local
Description: Thème classique custom premium pour le site B2B AFSAC (centre de formation OACI). Présentation uniquement — la logique métier vit dans le plugin afsac-core. Multilingue FR/EN/AR avec support RTL.
Version: 0.3.0
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: afsac
Tags: custom-menu, featured-images, translation-ready, rtl-language-support, full-width-template
*/

/* =========================================================================
 * 1. DESIGN TOKENS — d'après la maquette
 * ====================================================================== */
:root {
	/* Marine — palette officielle maquette. */
	--afsac-navy:         #091b2f; /* Bleu nuit profond : fonds sombres, overlay, base des cartes */
	--afsac-navy-card:    #0f2238; /* Bleu ardoise : dégradé sombre des cartes, texte très foncé */
	--afsac-navy-deep:    #061425; /* barre du bas (base la plus sombre) */
	--afsac-navy-700:     #102f54; /* survol sur fond marine */
	--afsac-navy-mid:     #0a2c5c; /* azure/20 — fond section Documentation */
	--afsac-navy-darkest: #02101f; /* azure/6 — bande badges + barre basse footer */

	/* Bleus — palette officielle maquette (accent ≠ bouton). */
	--afsac-blue:         #5B97D6; /* Accent : titre « Sûreté de l'Aviation », chiffres stats, liens/accents, eyebrow sur clair */
	--afsac-blue-600:     #3f7cbf; /* survol accent (liens) */
	--afsac-blue-soft:    #5B97D6; /* accent sur fond sombre (= accent) */
	--afsac-blue-accent:  #0E5AA0; /* azure/34, accent fond clair (eyebrow, liens, gras) */
	--afsac-blue-btn:     #0d599f; /* Bouton principal */
	--afsac-blue-btn-600: #0a4a85; /* survol bouton */
	--afsac-gold:         #E2A33B; /* étoiles décoratives (note cours) */

	/* Clairs. */
	--afsac-sky:         #f4f7fb; /* sections claires */
	--afsac-sky-200:     #e4ecf6;
	--afsac-white:       #ffffff;
	--afsac-white-70:    rgba(255, 255, 255, 0.7); /* labels stats, eyebrow sur fond sombre */
	--afsac-white-65:    rgba(255, 255, 255, 0.65); /* labels barre de stats (réconcilié maquette) */
	--afsac-white-10:    rgba(255, 255, 255, 0.10); /* fond badge (verre dépoli) */
	--afsac-white-20:    rgba(255, 255, 255, 0.20); /* bordure badge (verre dépoli) */
	--afsac-white-05:    rgba(255, 255, 255, 0.05); /* strip footer : fond + bordure + séparateurs */
	--afsac-white-45:    rgba(255, 255, 255, 0.45); /* footer : copyright + liens légaux */
	--afsac-white-60:    rgba(255, 255, 255, 0.60); /* footer strip : « REGIONAL » */
	--afsac-white-75:    rgba(255, 255, 255, 0.75); /* footer : texte courant (liens, adresse, contact) */
	--afsac-white-85:    rgba(255, 255, 255, 0.85); /* footer strip : « AVSEC Training Centre » */

	/* Métal argenté — décorations vectorielles des cartes département (bouclier, icônes). */
	--afsac-silver-100:  #eaeff4; /* haut du bouclier métallisé (carte AVSEC FR) */
	--afsac-silver-300:  #b8c2ce; /* milieu métal / contour des icônes décoratives */
	--afsac-silver-500:  #8a97a6; /* bas du bouclier métallisé */

	/* Dégradé de fond des cartes département (spec Figma Dev Mode). */
	--afsac-card-grad-top:    #0f3d7e; /* haut du dégradé de carte */
	--afsac-card-grad-bottom: #06224f; /* bas du dégradé de carte */

	/* Texte. */
	--afsac-text:        #16263b; /* corps sur clair */
	--afsac-text-soft:   #51637a;
	--afsac-text-soft-2: #2B3346; /* azure/22, corps sur fond clair (utilisé par .afsac-intro__body) */
	--afsac-text-light:  #e6ecf5; /* corps sur marine */
	--afsac-text-muted:  #aebfd6; /* secondaire sur marine */
	--afsac-border:      #e2e8f0;
	--afsac-border-dark: rgba(255, 255, 255, 0.16);

	/* Typographie. */
	--afsac-font-head:   "Source Serif 4", Georgia, "Times New Roman", serif;
	--afsac-font-body:   "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--afsac-font-arabic: "Cairo", system-ui, sans-serif;

	/* Espacement généreux. */
	--afsac-sp-1: 0.5rem;
	--afsac-sp-2: 1rem;
	--afsac-sp-3: 1.5rem;
	--afsac-sp-4: 2.25rem;
	--afsac-sp-5: 3.5rem;
	--afsac-sp-6: 5.5rem;

	--afsac-maxwidth:  1240px;
	--afsac-radius:    8px;
	--afsac-radius-lg: 16px;
	--afsac-shadow:    0 18px 40px rgba(8, 24, 46, 0.12);
	--afsac-shadow-sm: 0 2px 10px rgba(8, 24, 46, 0.08);
	--afsac-transition: 0.22s ease;
}

/* =========================================================================
 * 2. BASE
 * ====================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
	margin: 0;
	font-family: var(--afsac-font-body);
	font-size: 1rem;
	line-height: 1.7;
	color: var(--afsac-text);
	background: var(--afsac-white);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 {
	font-family: var(--afsac-font-head);
	font-weight: 600;
	line-height: 1.18;
	color: var(--afsac-navy);
	margin: 0 0 var(--afsac-sp-2);
	letter-spacing: -0.01em;
}
h1 { font-size: clamp(2.2rem, 4.5vw, 3.4rem); }
h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); }
h3 { font-size: 1.3rem; }
p  { margin: 0 0 var(--afsac-sp-2); }

a { color: var(--afsac-blue); text-decoration: none; transition: color var(--afsac-transition); }
a:hover { color: var(--afsac-blue-600); }
img { max-width: 100%; height: auto; display: block; }

.afsac-container {
	width: 100%;
	max-width: var(--afsac-maxwidth);
	margin-inline: auto;
	padding-inline: var(--afsac-sp-3);
}

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	width: 1px; height: 1px; overflow: hidden; word-wrap: normal !important;
}
.skip-link { position: absolute; left: -9999px; top: 0; background: var(--afsac-blue); color: #fff; padding: 0.75rem 1.25rem; z-index: 1100; }
.skip-link:focus { left: 0; }
:focus-visible { outline: 3px solid var(--afsac-blue); outline-offset: 2px; }
.afsac-icon { display: inline-block; vertical-align: middle; flex: none; }

/* Intitulé de section (eyebrow). */
.afsac-eyebrow {
	display: block;
	font-family: var(--afsac-font-body);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.24em;
	line-height: 1.5;
	text-transform: uppercase;
	color: var(--afsac-blue-accent);
	margin-bottom: var(--afsac-sp-1);
}
.afsac-eyebrow--light { color: var(--afsac-white-70); }

/* Boutons. */
.afsac-button {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: var(--afsac-blue-btn);
	color: #fff;
	padding: 0.75rem 1.5rem;
	border: 1px solid var(--afsac-blue-btn);
	border-radius: var(--afsac-radius);
	font-family: var(--afsac-font-body);
	font-weight: 600;
	font-size: 0.78rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	cursor: pointer;
	transition: all var(--afsac-transition);
}
/* Chevron fin « › » — même glyphe/raffinement que .afsac-link. */
.afsac-button::after { content: "\203A"; font-weight: 400; font-size: 1.1em; line-height: 1; }
.afsac-button:hover { background: var(--afsac-blue-btn-600); border-color: var(--afsac-blue-btn-600); color: #fff; transform: translateY(-1px); }
.afsac-button--ghost { background: transparent; border-color: rgba(255,255,255,0.55); color: #fff; }
.afsac-button--ghost:hover { background: rgba(255,255,255,0.12); border-color: #fff; }
.afsac-button--small { padding: 0.45rem 1rem; font-size: 0.7rem; }
/* Variante inversée (sur fond accent) : fond blanc, texte accent ; lift hérité. */
.afsac-button--invert { background: var(--afsac-white); border-color: var(--afsac-white); color: var(--afsac-blue-accent); }
.afsac-button--invert:hover { background: #F0F4F9; border-color: #F0F4F9; color: var(--afsac-blue-accent); }

/* Sections. */
.afsac-section { padding-block: var(--afsac-sp-6); }
.afsac-section--light { background: var(--afsac-sky); }
.afsac-section--navy { background: var(--afsac-navy); color: var(--afsac-text-light); }
.afsac-section__head { max-width: 720px; margin-bottom: var(--afsac-sp-4); }
.afsac-section--center .afsac-section__head { margin-inline: auto; text-align: center; }

/* =========================================================================
 * 3. HEADER — barre supérieure
 * ====================================================================== */
.afsac-topbar { background: var(--afsac-navy); color: var(--afsac-text-light); font-size: 0.82rem; }
.afsac-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--afsac-sp-3); min-height: 44px; flex-wrap: wrap; }
.afsac-topbar__contact { display: flex; gap: var(--afsac-sp-3); flex-wrap: wrap; }
.afsac-topbar__link { display: inline-flex; align-items: center; gap: 0.45rem; color: rgba(255,255,255,0.85); }
.afsac-topbar__link:hover { color: #fff; }
.afsac-topbar__link .afsac-icon { width: 15px; height: 15px; opacity: 0.75; color: var(--afsac-blue-soft); }
.afsac-topbar__aside { display: flex; align-items: center; gap: var(--afsac-sp-3); }
.afsac-topbar__links { display: flex; gap: var(--afsac-sp-2); }
.afsac-topbar__menu { list-style: none; display: flex; gap: var(--afsac-sp-2); margin: 0; padding: 0; }
.afsac-topbar__menu a { display: inline-flex; align-items: center; color: #fff; font-weight: 600; }
.afsac-topbar__menu .menu-item > a::after { content: "\2192"; margin-inline-start: 0.4rem; }
.afsac-topbar__menu a:hover { color: var(--afsac-blue-soft); }
.afsac-topbar__links a { color: rgba(255,255,255,0.85); }
.afsac-topbar__links a:hover { color: #fff; }
.afsac-topbar__lang { display: inline-flex; align-items: center; }
.afsac-language-switcher__list { list-style: none; display: flex; align-items: center; gap: 0; margin: 0; padding: 0; }
.afsac-language-switcher__item { display: flex; align-items: center; }
.afsac-language-switcher__item:not(:first-child)::before { content: "\00B7"; margin-inline: 0.5rem; color: rgba(255,255,255,0.4); font-weight: 400; }
.afsac-language-switcher__link { color: rgba(255,255,255,0.6); text-transform: uppercase; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.05em; }
.afsac-language-switcher__link:hover { color: #fff; }
.afsac-language-switcher__item.is-current .afsac-language-switcher__link { color: #fff; font-weight: 700; }

/* =========================================================================
 * 4. HEADER — barre principale
 * ====================================================================== */
.afsac-mainbar { background: #fff; border-bottom: 1px solid var(--afsac-border); position: sticky; top: 0; z-index: 1000; box-shadow: var(--afsac-shadow-sm); }
.afsac-mainbar__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--afsac-sp-3); min-height: 64px; padding-block: var(--afsac-sp-1); }

.afsac-logo { display: inline-flex; align-items: center; gap: 0.7rem; }
.afsac-logo__mark { color: var(--afsac-blue); display: inline-flex; }
.afsac-logo__text { display: flex; flex-direction: column; line-height: 1; }
.afsac-logo__name { font-family: var(--afsac-font-head); font-weight: 700; font-size: 1.7rem; letter-spacing: 0.14em; color: var(--afsac-navy); }
.afsac-logo__tagline { font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--afsac-text-soft); margin-top: 4px; }
.custom-logo { height: 60px; width: auto; max-height: none; }

/* Lockup : logo │ tagline (cf. maquette). */
.afsac-branding__lockup { display: inline-flex; align-items: center; gap: var(--afsac-sp-2); }
.afsac-logo--img { display: inline-flex; align-items: center; }
.afsac-logo--img img { height: 60px; width: auto; }
.afsac-branding__divider { flex: none; width: 1px; height: 46px; background: var(--afsac-border); }
.afsac-branding__tagline { white-space: pre-line; font-family: var(--afsac-font-body); font-size: 0.66rem; font-weight: 500; line-height: 1.25; letter-spacing: 0.1em; text-transform: uppercase; color: var(--afsac-text-soft); }

.afsac-primary-nav .afsac-menu { list-style: none; display: flex; align-items: center; gap: var(--afsac-sp-1); margin: 0; padding: 0; }
.afsac-primary-nav .afsac-menu > li { position: relative; }
.afsac-primary-nav .afsac-menu a { display: block; color: var(--afsac-navy); font-weight: 600; font-size: 0.78rem; letter-spacing: 0.04em; text-transform: uppercase; white-space: nowrap; padding: 0.5rem 0.35rem; position: relative; }
/* Soulignement animé porté par ::before (::after est réservé au chevron). */
.afsac-primary-nav .afsac-menu > li > a::before { content: ""; position: absolute; left: 0; bottom: -2px; width: 0; height: 2px; background: var(--afsac-blue); transition: width var(--afsac-transition); }
.afsac-primary-nav .afsac-menu > li:hover > a, .afsac-primary-nav .afsac-menu > li.current-menu-item > a { color: var(--afsac-blue); }
.afsac-primary-nav .afsac-menu > li:hover > a::before, .afsac-primary-nav .afsac-menu > li.current-menu-item > a::before { width: 100%; }
/* Chevron « › » uniquement sur les items à sous-menu (auto ou classe manuelle). */
.afsac-primary-nav .afsac-menu .menu-item-has-children > a::after,
.afsac-primary-nav .afsac-menu .has-dropdown > a::after { content: "\203A"; margin-inline-start: 0.35rem; font-size: 1.05em; line-height: 0; color: inherit; }

.afsac-primary-nav .sub-menu { list-style: none; position: absolute; top: 100%; left: 0; min-width: 230px; background: #fff; border: 1px solid var(--afsac-border); border-radius: var(--afsac-radius); box-shadow: var(--afsac-shadow); padding: 0.5rem; margin: 0; opacity: 0; visibility: hidden; transform: translateY(6px); transition: all var(--afsac-transition); z-index: 50; }
.afsac-primary-nav .menu-item:hover > .sub-menu, .afsac-primary-nav .menu-item:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.afsac-primary-nav .sub-menu a { padding: 0.5rem 0.75rem; border-radius: 6px; text-transform: none; letter-spacing: 0; font-size: 0.9rem; }
.afsac-primary-nav .sub-menu a:hover { background: var(--afsac-sky); }

.afsac-mainbar__actions { display: flex; align-items: center; gap: 0.5rem; }
.afsac-action { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid var(--afsac-border); border-radius: 50%; background: #fff; color: var(--afsac-navy); cursor: pointer; transition: all var(--afsac-transition); }
.afsac-action:hover { background: var(--afsac-sky); color: var(--afsac-blue); border-color: var(--afsac-sky-200); }
.afsac-menu-toggle { display: none; }

.afsac-search-panel { background: var(--afsac-sky); border-bottom: 1px solid var(--afsac-border); padding-block: var(--afsac-sp-2); }
.afsac-search-panel[hidden] { display: none; }
.afsac-search-panel form { display: flex; gap: 0.5rem; }
.afsac-search-panel input[type="search"] { flex: 1; padding: 0.75rem 1rem; border: 1px solid var(--afsac-border); border-radius: var(--afsac-radius); font-size: 1rem; }

/* =========================================================================
 * 5. HERO + STATS
 * ====================================================================== */
.afsac-hero { position: relative; color: #fff; isolation: isolate; }
.afsac-hero__media { position: absolute; inset: 0; z-index: -2; background-size: cover; background-position: center; }
.afsac-hero::before {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(180deg,
			rgba(11, 37, 69, 0.55) 0%,
			rgba(11, 37, 69, 0.38) 45%,
			rgba(8, 24, 46, 0.82) 100%);
}
.afsac-hero__inner { padding-block: clamp(4rem, 9vw, 8rem) clamp(3rem, 6vw, 5rem); text-align: center; max-width: 900px; }
.afsac-hero .afsac-eyebrow { color: var(--afsac-white-70); }
.afsac-hero__title { color: #fff; font-size: clamp(2.4rem, 5.5vw, 4.2rem); line-height: 1.1; margin-bottom: var(--afsac-sp-3); }
.afsac-hero__title .line-1 { display: block; }
.afsac-hero__title .line-2 { display: block; font-style: italic; font-weight: 500; color: var(--afsac-blue-soft); }
.afsac-hero__actions { display: flex; gap: var(--afsac-sp-2); justify-content: center; flex-wrap: wrap; margin-top: var(--afsac-sp-3); }

/* Barre de stats. */
.afsac-hero__stats { border-top: 1px solid var(--afsac-border-dark); background: rgba(6, 20, 37, 0.30); backdrop-filter: blur(2px); }
.afsac-stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.afsac-stats__item { display: flex; align-items: baseline; justify-content: center; gap: 0.5rem; padding: var(--afsac-sp-3) var(--afsac-sp-2); position: relative; }
.afsac-stats__item + .afsac-stats__item::before { content: ""; position: absolute; inset-inline-start: 0; top: 25%; height: 50%; width: 1px; background: var(--afsac-border-dark); }
.afsac-stats__value { font-family: var(--afsac-font-head); font-size: clamp(1.5rem, 2.4vw, 1.75rem); font-weight: 400; color: var(--afsac-blue-soft); line-height: 1; letter-spacing: -0.015em; }
.afsac-stats__label { font-size: 0.656rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--afsac-white-65); line-height: 1.25; }

/* Accueil — intro / proposition de valeur. */
.afsac-intro .afsac-section__head { max-width: 800px; }
.afsac-intro__title { max-width: 21em; margin-inline: auto; font-size: clamp(1.9rem, 3vw, 2.625rem); font-weight: 400; line-height: 1.15; letter-spacing: -0.015em; color: #0A2C5C; }
.afsac-intro__body { max-width: 680px; margin-inline: auto; text-align: center; color: var(--afsac-text-soft-2); font-size: 0.9375rem; line-height: 1.75; }
.afsac-intro__body p + p { margin-top: var(--afsac-sp-2); }
.afsac-intro__body strong { color: var(--afsac-blue-accent); font-weight: 700; }
.afsac-intro__actions { margin-top: var(--afsac-sp-4); text-align: center; }

/* Lien texte discret (CTA) — distinct du bouton plein .afsac-button. */
.afsac-link { color: var(--afsac-blue-accent); font-weight: 600; font-size: 0.92rem; text-decoration: underline; text-decoration-color: var(--afsac-blue-accent); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.afsac-link::after { content: "\203A"; margin-inline-start: 0.3rem; font-weight: 400; display: inline-block; text-decoration: none; }
.afsac-link:hover { color: var(--afsac-blue-600); }

/* Accueil — « Choisissez votre département » (4 cartes sur-mesure). */
.afsac-departments__title { font-size: clamp(1.9rem, 3vw, 2.75rem); font-weight: 400; line-height: 1.25; letter-spacing: -0.015em; color: #0A2C5C; }
.afsac-departments__title::after { content: ""; display: block; width: 48px; height: 2px; margin: 0.75rem auto 0; background: var(--afsac-blue-accent); }
.afsac-dept-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--afsac-sp-2); margin-top: var(--afsac-sp-4); }
/* Cartes au format portrait (≈ maquette : 325 × 423). */
.afsac-dept-card { position: relative; display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 293 / 390.66; padding: var(--afsac-sp-3); border-radius: 0; background: linear-gradient(180deg, var(--afsac-card-grad-top) 0%, var(--afsac-card-grad-bottom) 100%); color: var(--afsac-white); overflow: hidden; isolation: isolate; transition: transform var(--afsac-transition); }
/* Scrim sombre en bas → lisibilité du texte par-dessus la décoration. */
.afsac-dept-card::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(to top, rgba(2,16,31,0.95) 0%, rgba(2,16,31,0.4) 50%, rgba(2,16,31,0) 100%); pointer-events: none; }
.afsac-dept-card:hover { transform: translateY(-4px); }
.afsac-dept-card__badge { position: absolute; top: var(--afsac-sp-2); inset-inline-end: var(--afsac-sp-2); z-index: 3; font-family: var(--afsac-font-body); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--afsac-white); background: var(--afsac-white-10); border: 1px solid var(--afsac-white-20); border-radius: 0; padding: 0.25rem 0.625rem; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
/* Décoration vectorielle (SVG) : traits en --afsac-blue, derrière le texte. */
.afsac-dept-card__deco { position: absolute; inset: 0; z-index: 0; width: 100%; height: 100%; color: var(--afsac-blue); pointer-events: none; }
/* Carte 4 : grand glyphe arabe, gris clair, en haut-droite. */
.afsac-dept-card__glyph { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 0; font-family: var(--afsac-font-arabic); font-size: clamp(4rem, 9vw, 6rem); line-height: 1; color: var(--afsac-silver-300); opacity: 0.55; pointer-events: none; }
.afsac-dept-card__body { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 0.4rem; }
/* Sous-titre en petites capitales, AU-DESSUS du titre. */
.afsac-dept-card__subtitle { font-size: 0.656rem; text-transform: uppercase; letter-spacing: 0.18em; color: var(--afsac-white-70); line-height: 1.5; }
/* Titre en SERIF (police du hero). */
.afsac-dept-card__title { font-family: var(--afsac-font-head); font-weight: 600; font-size: 1.5rem; line-height: 1.25; letter-spacing: -0.015em; }
/* Lien « Voir les cours » : petites capitales + flèche →. */
.afsac-dept-card__cta { margin-top: 0.35rem; font-size: 0.72rem; font-weight: 400; text-transform: uppercase; letter-spacing: 0.16em; color: var(--afsac-blue); }
.afsac-dept-card__cta::after { content: "\2192"; margin-inline-start: 0.45rem; }
.afsac-dept-card:hover .afsac-dept-card__cta { color: var(--afsac-blue-600); }
.afsac-departments__actions { margin-top: var(--afsac-sp-4); text-align: center; }
@media (max-width: 980px) { .afsac-dept-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .afsac-dept-grid { grid-template-columns: 1fr; } }

/* =========================================================================
 * 6. FOOTER
 * ====================================================================== */
.afsac-site-footer { background: var(--afsac-navy-mid); color: var(--afsac-white-75); margin-top: 0; } /* #0A2C5C (azure/20) */
.afsac-site-footer a { color: var(--afsac-white-75); transition: color var(--afsac-transition); }
.afsac-site-footer a:hover { color: var(--afsac-white); }

/* A. Bande principale — 4 colonnes égales. */
.afsac-footer__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px; padding-block: 64px; }
.afsac-footer__heading { font-family: var(--afsac-font-body); font-weight: 600; font-size: 11px; line-height: 16px; letter-spacing: 1.98px; text-transform: uppercase; color: var(--afsac-blue-soft); margin: 0 0 20px; }

/* Col 1 — liens utiles. */
.afsac-footer__menu, .afsac-footer__contact { list-style: none; margin: 0; padding: 0; }
.afsac-footer__menu { display: flex; flex-direction: column; gap: 9px; }
.afsac-footer__menu a { font-size: 13px; line-height: 20px; }

/* Col 2 — contact. */
.afsac-footer__contact { display: flex; flex-direction: column; gap: 9px; font-size: 13px; line-height: 20px; }
.afsac-footer__contact-row { display: flex; flex-wrap: wrap; gap: 8px 20px; }
.afsac-footer__contact-item { display: inline-flex; align-items: center; gap: 8px; }
.afsac-footer__contact-item .afsac-icon { width: 14px; height: 14px; opacity: 0.75; color: currentColor; flex: none; }
.afsac-footer__contact-phone { white-space: nowrap; } /* 🐛 fix : plus de wrap du numéro */

/* Col 3 — adresse. */
.afsac-footer__address { font-style: normal; font-size: 13px; line-height: 22px; color: var(--afsac-white-75); }

/* Col 4 — réseaux + abonnement. */
.afsac-social__list { list-style: none; display: flex; gap: 8px; margin: 0; padding: 0; }
.afsac-social__list a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid var(--afsac-white-20); border-radius: 0; color: var(--afsac-white); transition: background var(--afsac-transition), border-color var(--afsac-transition); }
.afsac-social__list a:hover { background: var(--afsac-white-10); border-color: var(--afsac-white); }
.afsac-social__list .afsac-icon { width: 18px; height: 18px; }
.afsac-footer__subscribe { margin-top: 16px; }
.afsac-footer__subscribe .afsac-footer__heading { margin-bottom: 12px; }
.afsac-footer__subscribe-btn { display: inline-flex; align-items: center; gap: 8px; background: var(--afsac-blue-accent); color: var(--afsac-white); padding: 10px 16px; border: none; border-radius: 0; font-family: var(--afsac-font-body); font-weight: 600; font-size: 11px; letter-spacing: 1.54px; text-transform: uppercase; cursor: pointer; transition: background var(--afsac-transition); }
.afsac-footer__subscribe-btn:hover { background: var(--afsac-blue-btn-600); color: var(--afsac-white); }
.afsac-footer__subscribe-btn::after { content: "\203A"; font-weight: 400; font-size: 1.2em; line-height: 1; }

/* B. Strip 3 cartes — sur #02101F. Séparateurs = gap 1px laissant voir le fond 5 % du conteneur. */
.afsac-footer__badges-band { background: var(--afsac-navy-darkest); } /* #02101F (azure/6) */
.afsac-footer__badges { list-style: none; margin: 0; padding: 0; display: flex; gap: 1px; background: var(--afsac-white-05); border: 1px solid var(--afsac-white-05); }
.afsac-badge-inst { flex: 1; display: flex; align-items: center; justify-content: center; gap: 12px; padding: 20px 16px; background: var(--afsac-navy-darkest); text-align: center; } /* AUCUNE bordure : évite le double trait */
.afsac-badge-inst__logo { width: 45px; height: auto; object-fit: contain; opacity: 0.9; flex: none; }
.afsac-badge-inst__lines { display: flex; flex-direction: column; }
.afsac-badge-inst__sup, .afsac-badge-inst__main { font-family: var(--afsac-font-body); font-weight: 600; font-size: 10.5px; letter-spacing: 1.89px; text-transform: uppercase; }
.afsac-badge-inst--icao .afsac-badge-inst__sup, .afsac-badge-inst--icao .afsac-badge-inst__main { color: var(--afsac-white-70); }
.afsac-badge-inst--trainair .afsac-badge-inst__main { font-family: var(--afsac-font-head); font-size: 18px; line-height: 27px; letter-spacing: 1.08px; text-transform: none; color: var(--afsac-blue-soft); }
.afsac-badge-inst--avsec .afsac-badge-inst__sup { color: var(--afsac-white-60); }
.afsac-badge-inst--avsec .afsac-badge-inst__main { font-family: var(--afsac-font-head); font-size: 16px; letter-spacing: 0.96px; text-transform: none; color: var(--afsac-white-85); }

/* C. Barre copyright. */
.afsac-footer__bottom { background: var(--afsac-navy-darkest); } /* #02101F (azure/6) */
.afsac-footer__bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 20px; flex-wrap: wrap; } /* padding-inline 24px hérité de .afsac-container */
.afsac-footer__copyright { margin: 0; font-size: 11px; color: var(--afsac-white-45); }
.afsac-footer__legal { display: flex; gap: 20px; flex-wrap: wrap; }
.afsac-footer__legal a { font-size: 11px; color: var(--afsac-white-45); }

/* Responsive (footer). */
@media (max-width: 960px) {
	.afsac-footer__grid { grid-template-columns: repeat(2, 1fr); gap: 32px; padding-block: 48px; }
}
@media (max-width: 600px) {
	.afsac-footer__grid { grid-template-columns: 1fr; }
	.afsac-footer__badges { flex-direction: column; }
	.afsac-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
}

/* =========================================================================
 * 7. RESPONSIVE
 * ====================================================================== */
@media (max-width: 1080px) {
	.afsac-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 980px) {
	.afsac-topbar__contact .afsac-topbar__link span { display: none; }
	.afsac-branding__divider, .afsac-branding__tagline { display: none; }
	.afsac-menu-toggle { display: inline-flex; }

	.afsac-primary-nav {
		position: fixed; top: 0; inset-inline-end: 0;
		width: min(330px, 86vw); height: 100vh;
		background: #fff; box-shadow: var(--afsac-shadow);
		padding: var(--afsac-sp-5) var(--afsac-sp-3) var(--afsac-sp-3);
		transform: translateX(100%); transition: transform var(--afsac-transition);
		overflow-y: auto; z-index: 1050;
	}
	.afsac-primary-nav.is-open { transform: translateX(0); }
	.afsac-primary-nav .afsac-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.afsac-primary-nav .afsac-menu > li { border-bottom: 1px solid var(--afsac-border); }
	.afsac-primary-nav .afsac-menu a { padding: 0.9rem 0; font-size: 0.85rem; }
	.afsac-primary-nav .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding-inline-start: var(--afsac-sp-2); }
	.afsac-primary-nav .menu-item > a::before { display: none; }

	body.afsac-nav-open { overflow: hidden; }
	.afsac-nav-overlay { position: fixed; inset: 0; background: rgba(6,20,37,0.55); opacity: 0; visibility: hidden; transition: opacity var(--afsac-transition); z-index: 1040; }
	body.afsac-nav-open .afsac-nav-overlay { opacity: 1; visibility: visible; }

	.afsac-stats { grid-template-columns: repeat(2, 1fr); }
	.afsac-stats__item:nth-child(3)::before { display: none; }
}

@media (max-width: 620px) {
	.afsac-topbar__inner { justify-content: center; gap: var(--afsac-sp-2); }
	.afsac-topbar__links { display: none; }
	.afsac-mainbar__inner { min-height: 66px; }
	.afsac-logo__name { font-size: 1.4rem; }
	.afsac-hero__actions { flex-direction: column; }
	.afsac-hero__actions .afsac-button { justify-content: center; }
	.afsac-footer__grid { grid-template-columns: 1fr; gap: var(--afsac-sp-3); }
	.afsac-footer__badges { grid-template-columns: 1fr; }
	.afsac-footer__bottom-inner { justify-content: center; text-align: center; }
	.afsac-stats__item + .afsac-stats__item::before { display: none; }
}

/* =========================================================================
 * 8. ARABE
 * ====================================================================== */
:lang(ar) body, [lang="ar"] { font-family: var(--afsac-font-arabic); }
:lang(ar) h1, :lang(ar) h2, :lang(ar) h3, :lang(ar) h4 { font-family: var(--afsac-font-arabic); }
.afsac-hero__title :lang(ar) .line-2 { font-style: normal; }

/* ===== Sessions à venir ===== */
.afsac-sessions { background: var(--afsac-white); }
.afsac-sessions__head { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--afsac-sp-3); margin-bottom: var(--afsac-sp-4); flex-wrap: wrap; }
.afsac-sessions__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: clamp(1.9rem, 3vw, 2.75rem); line-height: 1.25; letter-spacing: -0.015em; color: #0A2C5C; }
.afsac-sessions__title::after { content: ""; display: block; width: 48px; height: 2px; margin: 0.75rem 0 0; background: var(--afsac-blue-accent); }
.afsac-sessions__nav { display: flex; align-items: center; gap: var(--afsac-sp-2); }
.afsac-sessions__arrows { display: inline-flex; gap: 0.5rem; }
.afsac-sessions__arrow { width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--afsac-border); background: var(--afsac-white); color: var(--afsac-blue-accent); cursor: pointer; font-size: 1rem; line-height: 1; transition: all var(--afsac-transition); }
.afsac-sessions__arrow:hover { background: var(--afsac-sky); }
.afsac-sessions__calendar { font-family: var(--afsac-font-body); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--afsac-blue-accent); text-decoration: none; }
.afsac-sessions__calendar::after { content: "\203A"; margin-inline-start: 0.4rem; }
.afsac-sessions__calendar:hover { text-decoration: underline; }

.afsac-sessions__track { display: flex; gap: var(--afsac-sp-3); overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom: 0.5rem; scrollbar-width: none; }
.afsac-sessions__track::-webkit-scrollbar { display: none; }

.afsac-session-card { flex: 0 0 320px; max-width: 320px; scroll-snap-align: start; display: flex; flex-direction: column; background: var(--afsac-white); border: 1px solid #DCE3EC; color: var(--afsac-text); text-decoration: none; transition: transform var(--afsac-transition), box-shadow var(--afsac-transition); }
.afsac-session-card:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(9,27,47,0.12); }

.afsac-session-card__banner { position: relative; aspect-ratio: 320 / 168; overflow: hidden; isolation: isolate; background: linear-gradient(180deg, var(--afsac-card-grad-top), var(--afsac-card-grad-bottom)); }
.afsac-session-card__deco { position: absolute; inset: 0; width: 100%; height: 100%; color: var(--afsac-blue); opacity: 0.45; }
.afsac-session-card__badges { position: absolute; top: var(--afsac-sp-2); inset-inline-start: var(--afsac-sp-2); z-index: 2; display: flex; flex-direction: column; align-items: flex-start; }
.afsac-session-card__tag, .afsac-session-card__lang { font-family: var(--afsac-font-body); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--afsac-white); background: var(--afsac-white-10); border: 1px solid var(--afsac-white-20); padding: 0.25rem 0.5rem; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.afsac-session-card__lang { position: absolute; top: var(--afsac-sp-2); inset-inline-end: var(--afsac-sp-2); z-index: 2; }
.afsac-session-card__code { font-family: var(--afsac-font-body); font-weight: 600; font-size: 0.625rem; letter-spacing: 0.08em; color: var(--afsac-white-70); margin-top: 0.25rem; }

.afsac-session-card__body { display: flex; flex-direction: column; flex: 1; gap: 0.6rem; padding: var(--afsac-sp-3); }
.afsac-session-card__title { font-family: var(--afsac-font-body); font-weight: 600; font-size: 0.95rem; line-height: 1.35; color: #0A2C5C; }
.afsac-session-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.9rem; margin-top: auto; font-size: 0.75rem; color: var(--afsac-text-soft); }
.afsac-session-card__meta-item { display: inline-flex; align-items: center; gap: 0.4rem; }
.afsac-session-card__meta-item svg { width: 0.9em; height: 0.9em; flex: none; opacity: 0.7; }
.afsac-session-card__footer { display: flex; justify-content: space-between; align-items: center; margin-top: 0.6rem; padding-top: 0.75rem; border-top: 1px solid var(--afsac-border); }
.afsac-session-card__seats { font-size: 0.625rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--afsac-text-soft); }
.afsac-session-card__cta { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--afsac-blue-accent); }
.afsac-session-card__cta::after { content: "\2192"; margin-inline-start: 0.4rem; }

@media (max-width: 640px) { .afsac-session-card { flex-basis: 78%; max-width: 78%; } }

/* ===== Documentation (téléchargement du programme) ===== */
.afsac-documentation { background: var(--afsac-navy-mid); color: var(--afsac-white); }
.afsac-documentation .afsac-container { display: grid; grid-template-columns: 1fr 490px; gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
/* Override eyebrow : azure/60 (accent sur fond foncé) ; la base azure/34 serait trop sombre sur #0A2C5C. */
.afsac-documentation .afsac-eyebrow { color: var(--afsac-blue); }
.afsac-documentation__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: clamp(1.75rem, 4vw, 2.5rem); line-height: 1.2; letter-spacing: -0.015em; color: var(--afsac-white); margin: 0.75rem 0 1.25rem; }
.afsac-documentation__text { font-family: var(--afsac-font-body); font-size: 0.9375rem; line-height: 1.75; color: var(--afsac-white-70); max-width: 46ch; margin: 0; }
.afsac-documentation__cards { display: flex; flex-direction: column; gap: 0.75rem; }
.afsac-doc-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 89.75px; padding: 20px 24px; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.10); text-decoration: none; transition: background .2s, border-color .2s; }
.afsac-doc-card:hover { background: rgba(255,255,255,0.09); border-color: var(--afsac-white-20); }
.afsac-doc-card__text { display: flex; flex-direction: column; gap: 0.35rem; }
.afsac-doc-card__label { font-family: var(--afsac-font-body); font-weight: 600; font-size: 1.125rem; color: var(--afsac-white); }
.afsac-doc-card__meta { display: flex; align-items: center; gap: 0.875rem; flex: none; }
.afsac-doc-card__size { font-family: var(--afsac-font-body); font-size: 0.75rem; color: var(--afsac-white-70); white-space: nowrap; }
.afsac-doc-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: var(--afsac-blue-accent); color: var(--afsac-white); flex: none; }
.afsac-doc-card__icon svg { width: 18px; height: 18px; }
@media (max-width: 768px) { .afsac-documentation .afsac-container { grid-template-columns: 1fr; } }

/* ===== Témoignages (slider) ===== */
.afsac-temoignages { background: var(--afsac-white); border-bottom: 1px solid #dce3ec; } /* azure/89 */
.afsac-temoignages__inner { max-width: 860px; margin: 0 auto; text-align: center; }
.afsac-temoignages__title { font-family: var(--afsac-font-head); font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.25; letter-spacing: -0.01em; margin: 0.75rem 0 0; }
.afsac-temoignages__title-main { font-weight: 600; color: #0a2c5c; }
.afsac-temoignages__title-sep { color: var(--afsac-silver-300); font-weight: 300; margin: 0 0.5rem; }
.afsac-temoignages__title-sub { font-style: italic; font-weight: 400; color: var(--afsac-text-soft); }
.afsac-temoignages__title::after { content: ''; display: block; width: 48px; height: 2px; background: var(--afsac-blue-accent); margin: 1.25rem auto 0; }
.afsac-temoignages__slider { position: relative; margin-top: 2.5rem; }
.afsac-temoignages__track { min-height: 1px; }
.afsac-temoignage { display: none; }
.afsac-temoignage.is-active { display: block; animation: afsacFade .35s ease; }
.afsac-temoignage__org { display: inline-block; padding: 0.4rem 1rem; border: 1px solid var(--afsac-border); font-family: var(--afsac-font-body); font-weight: 600; font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--afsac-blue-accent); margin-bottom: 1.5rem; }
.afsac-temoignage__quote { font-family: var(--afsac-font-head); font-style: italic; font-size: clamp(1.0625rem, 2vw, 1.25rem); line-height: 1.7; color: var(--afsac-text-soft-2); max-width: 640px; margin: 0 auto 1.5rem; }
.afsac-temoignage__caption { display: flex; flex-direction: column; gap: 0.25rem; }
.afsac-temoignage__author { font-family: var(--afsac-font-body); font-weight: 700; font-size: 0.875rem; color: #0a2c5c; }
.afsac-temoignage__role { font-family: var(--afsac-font-body); font-size: 0.8125rem; color: var(--afsac-text-soft); }
.afsac-temoignages__arrow { position: absolute; top: 45%; transform: translateY(-50%); background: none; border: none; font-size: 1.75rem; line-height: 1; color: var(--afsac-text-soft); cursor: pointer; padding: 0.25rem 0.5rem; transition: color .2s; }
.afsac-temoignages__arrow--prev { left: 0; }
.afsac-temoignages__arrow--next { right: 0; }
.afsac-temoignages__arrow:hover { color: var(--afsac-blue-accent); }
.afsac-temoignages__dots { display: flex; justify-content: center; gap: 0.5rem; margin-top: 2rem; }
.afsac-temoignages__dot { width: 8px; height: 8px; border-radius: 50%; border: none; background: var(--afsac-silver-300); cursor: pointer; padding: 0; transition: background .2s; }
.afsac-temoignages__dot.is-active { background: var(--afsac-blue-accent); }
@keyframes afsacFade { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 600px) { .afsac-temoignages__arrow { position: static; transform: none; } }

/* ===== Partenaires ===== */
.afsac-partenaires { background: var(--afsac-sky); border-bottom: 1px solid #dce3ec; } /* grey/97 ≈ #f4f6fa */
.afsac-partenaires__head { text-align: center; margin-bottom: 2.5rem; }
.afsac-partenaires__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.25; letter-spacing: -0.01em; color: #0a2c5c; margin: 0.75rem 0 0; }
.afsac-partenaires__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid var(--afsac-border); border-left: 1px solid var(--afsac-border); }
.afsac-partenaire { display: flex; align-items: center; justify-content: center; min-height: 84px; padding: 1rem; background: var(--afsac-white); border-right: 1px solid var(--afsac-border); border-bottom: 1px solid var(--afsac-border); }
.afsac-partenaire__name { font-family: var(--afsac-font-body); font-size: 0.8125rem; letter-spacing: 0.04em; color: var(--afsac-text-soft); text-align: center; }
.afsac-partenaire__logo { max-width: 100%; max-height: 48px; width: auto; object-fit: contain; filter: grayscale(1); opacity: 0.7; transition: filter .2s, opacity .2s; }
.afsac-partenaire__logo:hover { filter: grayscale(0); opacity: 1; }
@media (max-width: 900px) { .afsac-partenaires__grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .afsac-partenaires__grid { grid-template-columns: repeat(2, 1fr); } }

/* ===== Fil d'Ariane (Rank Math) — barre fine sous le header ===== */
/* RM rend déjà <nav aria-label="breadcrumbs" class="rank-math-breadcrumb"> :
   on habille seulement, aucun second landmark ajouté ici. */
.afsac-breadcrumb { background: var(--afsac-white); border-bottom: 1px solid #DCE3EC; }
.afsac-breadcrumb .afsac-container { padding-block: 0.75rem; } /* barre ~44px de haut */
.afsac-breadcrumb .rank-math-breadcrumb p { margin: 0; font-size: 0.875rem; line-height: 1.4; color: #6A7388; }
.afsac-breadcrumb a { color: var(--afsac-blue-accent); } /* lien/accent navy (#0E5AA0) */
.afsac-breadcrumb a:hover { color: var(--afsac-blue-accent); text-decoration: underline; }
.afsac-breadcrumb .last { color: #6A7388; } /* page courante — gris muté */

/* ===== Formations & Services — Hero (bande 4 panneaux) ===== */
.afsac-fs-hero { background: var(--afsac-navy-mid); } /* #0A2C5C — fond de bande (maquette) */
.afsac-fs-hero__band { display: grid; grid-template-columns: repeat(4, 1fr); }
.afsac-fs-hero__panel { position: relative; display: flex; align-items: flex-start; aspect-ratio: 479 / 300; padding: clamp(0.85rem, 1.6vw, 1.25rem) clamp(1rem, 2.2vw, 1.75rem); background-color: var(--afsac-navy-mid); background-repeat: no-repeat; background-position: center; background-size: cover; }
.afsac-fs-hero__panel--campus  { background-image: url('assets/images/hero-campus.svg'); }
.afsac-fs-hero__panel--salle   { background-image: url('assets/images/hero-salle.svg'); }
.afsac-fs-hero__panel--piste   { background-image: url('assets/images/hero-piste.svg'); }
.afsac-fs-hero__panel--reunion { background-image: url('assets/images/hero-reunion.svg'); }
.afsac-fs-hero__label { margin: 0; color: var(--afsac-white); } /* surcharge la couleur bleue de .afsac-eyebrow */
/* Repli : 2×2 conservé jusqu'en bas (évite une bande trop haute en 1 colonne). */
@media (max-width: 900px) { .afsac-fs-hero__band { grid-template-columns: repeat(2, 1fr); } }

/* ===== Formations & Services — Intro (Notre offre) ===== */
.afsac-fs-intro { background: var(--afsac-white); padding-bottom: 28px; } /* ~56px avec padding-top des piliers */
.afsac-fs-intro__title { font-size: clamp(1.9rem, 3vw, 2.75rem); font-weight: 400; line-height: 1.25; letter-spacing: -0.015em; color: var(--afsac-navy-mid); }
.afsac-fs-intro__title::after { content: ""; display: block; width: 48px; height: 2px; margin: 0.75rem auto 0; background: var(--afsac-blue-accent); }
.afsac-fs-intro__body { max-width: 700px; margin-inline: auto; text-align: center; color: var(--afsac-text-soft-2); font-size: 0.9375rem; line-height: 1.75; }
.afsac-fs-intro__text { margin: 0; }

/* ===== Formations & Services — Piliers (2 colonnes) ===== */
.afsac-fs-pillars { background: var(--afsac-white); padding-top: 28px; padding-bottom: 80px; }
.afsac-fs-pillars .afsac-container { max-width: 1280px; padding-inline: 24px; } /* zone utile 1232px (maquette) */
/* Grille 1232px : 2 colonnes égales, cadre complet + divider vertical (#DCE3EC). */
.afsac-fs-pillars__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; border: 1px solid #DCE3EC; }
.afsac-fs-pillars__item { display: flex; flex-direction: column; padding: 48px; } /* marges 48px (maquette) → contenu ne touche pas le cadre */
.afsac-fs-pillars__item + .afsac-fs-pillars__item { border-left: 1px solid #DCE3EC; } /* divider entre colonnes */
.afsac-fs-pillars__title { font-family: var(--afsac-font-head); font-size: 30px; font-weight: 400; line-height: 34.5px; letter-spacing: -0.45px; color: var(--afsac-navy-mid); margin: 0 0 var(--afsac-sp-2); }
/* Carte : décor SVG en cover sur fond navy, libellé haut-gauche + badge bas. */
.afsac-fs-pillars__card { position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 518.49 / 393.88; margin-bottom: var(--afsac-sp-3); padding: clamp(1rem, 2vw, 1.5rem); background-color: var(--afsac-navy-mid); background-repeat: no-repeat; background-position: center; background-size: cover; }
.afsac-fs-pillars__card--salle   { background-image: url('assets/images/hero-salle.svg'); }
.afsac-fs-pillars__card--reunion { background-image: url('assets/images/hero-reunion.svg'); }
.afsac-fs-pillars__card-label { margin: 0; color: var(--afsac-white); } /* surcharge la couleur accent de .afsac-eyebrow */
.afsac-fs-pillars__card-badge { align-self: flex-start; font-family: var(--afsac-font-body); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--afsac-white); background: var(--afsac-white-10); border: 1px solid var(--afsac-white-20); padding: 0.35rem 0.75rem; }
.afsac-fs-pillars__text { color: var(--afsac-text-soft-2); font-size: 14px; line-height: 23.8px; margin: 0 0 var(--afsac-sp-2); }
.afsac-fs-pillars__list { list-style: none; margin: 0 0 var(--afsac-sp-3); padding: 0; display: grid; gap: 0.6rem; }
.afsac-fs-pillars__list li { position: relative; padding-left: 1.5rem; font-size: 14px; line-height: 1.6; color: var(--afsac-text-soft-2); }
.afsac-fs-pillars__list li::before { content: ""; position: absolute; left: 0; top: 0.55em; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--afsac-blue-accent); }
.afsac-fs-pillars__item .afsac-button { align-self: flex-start; margin-top: auto; padding: 14px 28px; background: var(--afsac-blue-accent); border-color: var(--afsac-blue-accent); } /* bouton aligné en bas + override maquette (#0E5AA0, 14/28) */
/* Mobile : 1 colonne, gouttières retirées, divider vertical → horizontal. */
@media (max-width: 768px) {
	.afsac-fs-pillars__grid { grid-template-columns: 1fr; }
	.afsac-fs-pillars__item { padding: 32px 24px; }
	.afsac-fs-pillars__item + .afsac-fs-pillars__item { border-left: 0; border-top: 1px solid #DCE3EC; }
}

/* ===== Formations & Services — Portefeuille de services (grille 3×2) ===== */
.afsac-fs-services { background: var(--afsac-white); border-bottom: 1px solid #DCE3EC; }
.afsac-fs-services .afsac-container { max-width: 1100px; padding-block: 80px; } /* padding-inline 24px hérité */
.afsac-fs-services__head { text-align: center; margin-bottom: var(--afsac-sp-4); }
.afsac-fs-services__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: 30px; line-height: 45px; letter-spacing: -0.45px; color: var(--afsac-navy-mid); margin: 0; }
.afsac-fs-services__title::after { content: ""; display: block; width: 48px; height: 2px; margin: 0.75rem auto 0; background: var(--afsac-blue-accent); } /* trait décoratif (= intro) */
/* Grille : filets via gap 1px + bordure sur fond #DCE3EC ; cartes en blanc. */
.afsac-fs-services__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #DCE3EC; border: 1px solid #DCE3EC; }
.afsac-fs-services__card { display: flex; flex-direction: column; gap: var(--afsac-sp-2); background: var(--afsac-white); padding: 28px 28px 50.44px; }
.afsac-fs-services__icon { width: 24px; height: 24px; color: var(--afsac-blue-accent); } /* SVG décoratif (currentColor) */
.afsac-fs-services__card-title { font-family: var(--afsac-font-head); font-weight: 400; font-size: 19px; line-height: 1.3; color: var(--afsac-navy-mid); margin: 0; }
.afsac-fs-services__card-text { font-size: 14px; line-height: 1.6; color: var(--afsac-text-soft-2); margin: 0; }
.afsac-fs-services__link { align-self: flex-start; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; color: var(--afsac-blue-accent); }
.afsac-fs-services__link::after { content: "\203A"; margin-inline-start: 0.4rem; font-weight: 400; }
.afsac-fs-services__link:hover { color: var(--afsac-blue-600); }
/* Responsive : 3 col ≥980px, 2 col 640–979px, 1 col <640px. */
@media (max-width: 979px) { .afsac-fs-services__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 639px)  { .afsac-fs-services__grid { grid-template-columns: 1fr; } }

/* ===== Formations & Services — Bandeau « Téléchargez le catalogue » ===== */
.afsac-fs-catalogue { background: var(--afsac-blue-accent); color: var(--afsac-white); padding-block: 56px; }
.afsac-fs-catalogue .afsac-container { max-width: 1280px; display: flex; align-items: center; justify-content: space-between; gap: 40px; }
/* Couverture : placeholder (cadre blanc) — TODO remplacer par la vraie image. */
.afsac-fs-catalogue__cover { flex: none; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; width: 100px; aspect-ratio: 3 / 4; background: var(--afsac-navy-mid); color: var(--afsac-white); border: 8px solid var(--afsac-white); border-radius: 2px; padding: 10px; font-family: var(--afsac-font-body); font-weight: 700; font-size: 0.6rem; letter-spacing: 0.12em; text-transform: uppercase; text-align: center; box-shadow: var(--afsac-shadow-sm); }
.afsac-fs-catalogue__text { flex: 1; }
.afsac-fs-catalogue__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: 28px; color: var(--afsac-white); margin: 0; }
.afsac-fs-catalogue__desc { font-size: 14px; line-height: 1.6; color: rgba(255, 255, 255, 0.85); margin: 0.5rem 0 0; }
/* Responsive : empilé et centré sous 768px. */
@media (max-width: 768px) {
	.afsac-fs-catalogue .afsac-container { flex-direction: column; text-align: center; }
	.afsac-fs-catalogue__text { flex: initial; }
}

/* ===== Fiche formation (single) ===== */
.afsac-formation { --afsac-hero-accent: var(--afsac-navy-mid); }

/* Hero (fond = couleur d'accent du domaine, surchargée via la var inline). */
.afsac-formation-hero { background: var(--afsac-hero-accent, var(--afsac-navy-mid)); color: var(--afsac-white); padding-block: var(--afsac-sp-4); }
.afsac-formation-hero__back { display: inline-block; margin-bottom: var(--afsac-sp-2); font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--afsac-white-70); }
.afsac-formation-hero__back:hover { color: var(--afsac-white); }
.afsac-formation-hero__body { display: flex; align-items: center; gap: var(--afsac-sp-4); }
.afsac-formation-hero__media { flex: none; width: 220px; margin: 0; }
.afsac-formation-hero__media img { display: block; width: 100%; height: auto; border-radius: var(--afsac-radius); }
.afsac-formation-hero__head { flex: 1; min-width: 0; }
.afsac-formation-hero__title { font-family: var(--afsac-font-head); font-weight: 600; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; color: var(--afsac-white); margin: 0; }
.afsac-formation-hero__abbr { font-weight: 400; color: var(--afsac-white-70); }
.afsac-formation-hero__code { margin: var(--afsac-sp-1) 0 0; font-size: 0.8125rem; color: var(--afsac-white-70); }
.afsac-formation-hero__row { display: flex; align-items: center; gap: var(--afsac-sp-2); margin-top: var(--afsac-sp-2); }
.afsac-stars { color: var(--afsac-gold); letter-spacing: 2px; font-size: 0.9rem; }

/* Badge générique. */
.afsac-badge { display: inline-block; padding: 0.25rem 0.6rem; font-family: var(--afsac-font-body); font-size: 0.625rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; border: 1px solid #DCE3EC; border-radius: var(--afsac-radius); color: var(--afsac-text-soft); }
.afsac-formation-hero .afsac-badge { border-color: var(--afsac-white-20); color: var(--afsac-white); }
.afsac-badge--full { border-color: var(--afsac-blue-accent); color: var(--afsac-blue-accent); }

/* Bandeau contexte (domaine › sous-domaine). */
.afsac-formation-context { background: var(--afsac-sky); border-bottom: 1px solid #DCE3EC; }
.afsac-formation-context__inner { display: flex; align-items: center; gap: 0.5rem; padding-block: var(--afsac-sp-2); font-size: 0.875rem; }
.afsac-formation-context__dot { flex: none; width: 0.625rem; height: 0.625rem; border-radius: 50%; background: var(--afsac-hero-accent, var(--afsac-navy-mid)); }
.afsac-formation-context__link { color: var(--afsac-blue-accent); font-weight: 600; }
.afsac-formation-context__link:hover { text-decoration: underline; }
.afsac-formation-context__sep { color: var(--afsac-text-soft); }

/* Grille principale 2/3 + 1/3. */
.afsac-formation-layout { display: grid; grid-template-columns: 2fr 1fr; gap: var(--afsac-sp-5); padding-block: var(--afsac-sp-5); align-items: start; }
.afsac-formation-section { margin-bottom: var(--afsac-sp-4); }
.afsac-formation-section:last-child { margin-bottom: 0; }
.afsac-formation-section__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: 1.5rem; line-height: 1.25; color: var(--afsac-navy-mid); margin: 0 0 var(--afsac-sp-2); }
.afsac-formation-section__content, .afsac-formation .afsac-entry-content { color: var(--afsac-text-soft-2); line-height: 1.75; }
.afsac-formation-modules { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.6rem; }
.afsac-formation-modules__item { color: var(--afsac-text-soft-2); line-height: 1.6; }
.afsac-formation-modules__label { color: var(--afsac-navy-mid); }

/* Sidebar : cartes. */
.afsac-formation-aside { display: grid; gap: var(--afsac-sp-3); }
.afsac-card { background: var(--afsac-white); border: 1px solid #DCE3EC; border-radius: var(--afsac-radius); padding: var(--afsac-sp-3); }
.afsac-card--center { text-align: center; }
.afsac-card__eyebrow { margin-bottom: var(--afsac-sp-2); }
.afsac-card__dev { margin: 0; color: var(--afsac-navy-mid); }
.afsac-card__dev-detail { margin: 0.25rem 0 0; font-size: 0.8125rem; color: var(--afsac-text-soft); }

/* Liste clé/valeur. */
.afsac-spec-list { margin: 0; }
.afsac-spec-list__row { display: flex; justify-content: space-between; gap: var(--afsac-sp-2); padding: 0.5rem 0; border-bottom: 1px solid #DCE3EC; }
.afsac-spec-list__row:last-child { border-bottom: 0; }
.afsac-spec-list dt { color: var(--afsac-text-soft); font-size: 0.8125rem; }
.afsac-spec-list dd { margin: 0; text-align: right; font-weight: 600; font-size: 0.8125rem; color: var(--afsac-text); }
.afsac-spec-list__price { color: var(--afsac-blue-accent); }

/* Liste sessions. */
.afsac-session-list { list-style: none; margin: 0 0 var(--afsac-sp-3); padding: 0; display: grid; gap: var(--afsac-sp-2); }
.afsac-session-list__item { padding-bottom: var(--afsac-sp-2); border-bottom: 1px solid #DCE3EC; }
.afsac-session-list__item:last-child { border-bottom: 0; padding-bottom: 0; }
.afsac-session-list__date { display: block; font-weight: 600; color: var(--afsac-navy-mid); }
.afsac-session-list__meta { display: block; margin-top: 0.25rem; font-size: 0.8125rem; color: var(--afsac-text-soft); }
.afsac-session-list__seats { color: var(--afsac-blue-accent); font-weight: 600; }
.afsac-formation-sessions__empty { margin: 0 0 var(--afsac-sp-2); color: var(--afsac-text-soft); font-size: 0.875rem; }
.afsac-formation-sessions__cta { width: 100%; justify-content: center; }

/* Responsive. */
@media (max-width: 900px) {
	.afsac-formation-layout { grid-template-columns: 1fr; gap: var(--afsac-sp-4); }
}
@media (max-width: 600px) {
	.afsac-formation-hero__body { flex-direction: column; align-items: flex-start; }
	.afsac-formation-hero__media { width: 100%; max-width: 220px; }
}

/* =========================================================================
 * PAGE « QUI SOMMES-NOUS » (À propos) — bloc auto-contenu (.afsac-about__*)
 * Le hero réutilise .afsac-fs-hero (template-part partagé) : NON restylé ici.
 * ====================================================================== */

/* Section générique. */
.afsac-about__section { padding-block: var(--afsac-sp-6); }
.afsac-about__section--sky { background: var(--afsac-sky); }
.afsac-about__section-head { max-width: 760px; margin: 0 auto var(--afsac-sp-4); text-align: center; }
.afsac-about__section-title { font-size: clamp(1.7rem, 3vw, 2.5rem); font-weight: 400; line-height: 1.25; letter-spacing: -0.015em; color: var(--afsac-navy-mid); margin: 0; }
/* Trait d'accent centré sous tous les titres de la page (intro + sections). */
.afsac-about__title::after,
.afsac-about__section-title::after { content: ""; display: block; width: 64px; height: 3px; margin: 20px auto 0; background: var(--afsac-blue-accent); border-radius: 2px; } /* var(--afsac-blue-accent) = #0E5AA0 */

/* 2. À propos (intro, fond blanc, centré). */
.afsac-about__intro { background: var(--afsac-white); text-align: center; border-bottom: 1px solid #DCE3EC; }
.afsac-about__intro-inner { max-width: 820px; margin-inline: auto; }
.afsac-about__title { font-size: clamp(1.9rem, 3.4vw, 2.75rem); font-weight: 400; line-height: 1.2; letter-spacing: -0.015em; color: var(--afsac-navy-mid); margin: 0 0 var(--afsac-sp-3); }
.afsac-about__lead { color: var(--afsac-text-soft-2); font-size: 0.9375rem; line-height: 1.75; }
.afsac-about__lead strong { color: var(--afsac-blue-accent); font-weight: 700; }
.afsac-about__intro .afsac-button { margin-top: var(--afsac-sp-3); }

/* 3. Frise chronologique (6 jalons horizontaux). */
.afsac-about__timeline { border-bottom: 1px solid #DCE3EC; }
.afsac-about__timeline-track { list-style: none; margin: 70px 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--afsac-sp-2); position: relative; }
.afsac-about__timeline-track::before { content: ""; position: absolute; top: 32px; left: 8%; right: 8%; border-top: 2px dotted var(--afsac-sky-200); z-index: 0; }
.afsac-about__milestone { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; padding-inline: 0.25rem; }
.afsac-about__milestone-icon { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 50%; background: var(--afsac-white); border: 2px solid var(--afsac-blue-accent); color: var(--afsac-blue-accent); box-shadow: var(--afsac-shadow-sm); }
.afsac-about__milestone-icon svg { width: 26px; height: 26px; }
.afsac-about__milestone-year { font-family: var(--afsac-font-head); font-size: 1.25rem; color: var(--afsac-navy-mid); margin-top: var(--afsac-sp-2); }
.afsac-about__milestone-title { font-weight: 600; font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--afsac-text); margin-top: 0.25rem; }
.afsac-about__milestone-desc { font-size: 0.78rem; line-height: 1.5; color: var(--afsac-text-soft); margin-top: 0.35rem; }

/* 4. Histoire (sous-blocs). */
.afsac-about__block { max-width: 980px; margin-inline: auto; }
.afsac-about__block + .afsac-about__block { margin-top: var(--afsac-sp-5); }
.afsac-about__block-title { font-size: 1.3rem; color: var(--afsac-navy-mid); margin: 0 0 var(--afsac-sp-2); }
.afsac-about__block-text { color: var(--afsac-text-soft-2); font-size: 14.5px; line-height: 1.75; margin: 0; }
.afsac-about__media-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: var(--afsac-sp-2); margin-top: var(--afsac-sp-3); }
.afsac-about__media { aspect-ratio: 4 / 3; border-radius: var(--afsac-radius); background-color: var(--afsac-navy-mid); background-repeat: no-repeat; background-position: center; background-size: cover; }
.afsac-about__media--reunion { background-image: url('assets/images/about-reunion.svg'); }
.afsac-about__media--salle   { background-image: url('assets/images/about-salle.svg'); }
.afsac-about__media--campus  { background-image: url('assets/images/about-campus.svg'); }
.afsac-about__labels { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid #DCE3EC; margin-top: var(--afsac-sp-3); }
.afsac-about__label { display: flex; align-items: center; justify-content: center; min-height: 74px; padding: 0.5rem 0.75rem; border-left: 1px solid #DCE3EC; font-family: var(--afsac-font-head); font-size: 12px; letter-spacing: 0.96px; color: #6A7388; text-align: center; }
.afsac-about__label:first-child { border-left: 0; }
.afsac-about__features { list-style: none; margin: var(--afsac-sp-3) 0 0; padding: 0; display: grid; gap: var(--afsac-sp-2); }
.afsac-about__feature { display: flex; gap: 0.75rem; font-size: 14px; line-height: 1.85; color: var(--afsac-text-soft-2); }
.afsac-about__feature svg { flex: none; width: 22px; height: 22px; color: var(--afsac-blue); margin-top: 3px; }
.afsac-about__feature strong { color: var(--afsac-navy-mid); font-weight: 700; }

/* 6. En savoir plus (4 cartes). */
.afsac-about__more { background: #F4F6FA; border-bottom: 1px solid #DCE3EC; }
.afsac-about__more .afsac-about__section-title { font-size: 34px; line-height: 1.25; letter-spacing: -0.51px; }
.afsac-about__cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--afsac-sp-3); max-width: 920px; margin: var(--afsac-sp-4) auto 0; }
.afsac-about__card { display: flex; flex-direction: column; align-items: center; gap: var(--afsac-sp-2); padding: 28px; background: var(--afsac-white); border: 1px solid #DCE3EC; border-radius: var(--afsac-radius); text-align: center; color: var(--afsac-navy-mid); transition: transform var(--afsac-transition); }
.afsac-about__card:hover { transform: translateY(-3px); color: var(--afsac-navy-mid); }
.afsac-about__card-icon { display: block; width: 48px; height: 48px; }
.afsac-about__card-label { font-family: var(--afsac-font-head); font-weight: 600; font-size: 16px; line-height: 1.5; letter-spacing: -0.24px; text-align: center; color: var(--afsac-navy-mid); }

/* Responsive. */
@media (max-width: 960px) {
	.afsac-about__timeline-track { grid-template-columns: 1fr; gap: 0; max-width: 460px; margin-inline: auto; }
	.afsac-about__timeline-track::before { top: 0; bottom: 0; left: 31px; right: auto; border-top: 0; border-left: 2px dotted var(--afsac-sky-200); }
	.afsac-about__milestone { flex-direction: row; align-items: flex-start; text-align: start; gap: var(--afsac-sp-2); padding: var(--afsac-sp-2) 0; }
	.afsac-about__milestone-icon { margin: 0; }
	.afsac-about__milestone-year { margin-top: 0; }
	.afsac-about__cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.afsac-about__cards { grid-template-columns: 1fr; }
}

/* =========================================================================
 * PAGE « RÉFÉRENCES & TÉMOIGNAGES » — bloc auto-contenu (.afsac-refs__*)
 * Passe en cours : SECTION 2 (intro). Les sections 3→9 suivront.
 * ====================================================================== */

/* 2. Intro — bloc centré, pleine largeur, fond blanc. */
.afsac-refs__intro { background: var(--afsac-white); text-align: center; border-bottom: 1px solid #DCE3EC; padding-block: 104px; }
.afsac-refs__intro-inner { max-width: 812px; margin-inline: auto; }

/* Eyebrow→H1 = 16px (collapse de .afsac-eyebrow margin-bottom 8px avec ce margin-top 16px). */
.afsac-refs__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: 46px; line-height: 51.52px; letter-spacing: -0.69px; color: var(--afsac-navy-mid); margin: 16px 0 0; }
/* Trait 64×3px sous le H1 — réplique locale du traitement À propos (à généraliser au refactor). */
.afsac-refs__title::after { content: ""; display: block; width: 64px; height: 3px; margin: 16px auto 0; background: var(--afsac-blue-accent); border-radius: 2px; } /* var(--afsac-blue-accent) = #0E5AA0 */

.afsac-refs__lead { color: var(--afsac-text-soft-2); font-family: var(--afsac-font-body); font-weight: 400; font-size: 15px; line-height: 26.25px; margin: 24px 0 0; } /* trait→§1 = 24px */
.afsac-refs__lead + .afsac-refs__lead { margin-top: 20px; } /* §1→§2 = 20px */
.afsac-refs__lead strong { font-weight: 700; } /* même taille/couleur que le corps (#2B3346) */

.afsac-refs__intro-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; } /* §2→boutons = 24px */
.afsac-refs__intro-actions .afsac-button { gap: 8px; } /* label↔chevron 8px ; padding 12/24 et radius 8 hérités de .afsac-button */

/* Variante OUTLINE sur fond clair : fond blanc, bordure 1px #DCE3EC, texte navy #0A2C5C. */
.afsac-button--outline { background: var(--afsac-white); border-color: #DCE3EC; color: var(--afsac-navy-mid); }
.afsac-button--outline:hover { background: var(--afsac-sky); border-color: #DCE3EC; color: var(--afsac-navy-mid); transform: translateY(-1px); }

/* Responsive — réduit H1 et paddings (pattern À propos). */
@media (max-width: 640px) {
	.afsac-refs__intro { padding-block: 64px; }
	.afsac-refs__title { font-size: 32px; line-height: 1.2; }
}

/* =========================================================================
 * COMPOSANT « BANDEAU STATS » — part partagé (template-parts/shared/stats-band).
 * Générique : utilisé par « Qui sommes-nous » et « Références & Témoignages ».
 * Valeurs migrées à l'identique depuis l'ancien bloc .afsac-about__stats.
 * Colonnes pilotées par --afsac-stats-cols (défaut 6) ; conteneur = .afsac-container (1240px).
 * ====================================================================== */
.afsac-stats-band { background: var(--afsac-navy-mid); color: var(--afsac-white); padding-block: var(--afsac-sp-5); }
.afsac-stats-band__inner { display: grid; grid-template-columns: repeat(var(--afsac-stats-cols, 6), 1fr); }
.afsac-stats-band__item { padding-inline-start: 20px; border-inline-start: 1px solid var(--afsac-white-10); text-align: start; }
.afsac-stats-band__item:first-child { border-inline-start: 0; }
.afsac-stats-band__number { display: block; font-family: var(--afsac-font-head); font-weight: 400; font-size: 36px; line-height: 1; letter-spacing: -0.54px; color: var(--afsac-blue-soft); margin-bottom: 7px; }
.afsac-stats-band__label { display: block; font-family: var(--afsac-font-body); font-weight: 400; font-size: 11px; line-height: 1.25; letter-spacing: 1.76px; text-transform: uppercase; color: var(--afsac-white-65); }

/* Responsive — identique à l'ancien bandeau (réglé pour ~6 items). */
@media (max-width: 960px) {
	.afsac-stats-band__inner { grid-template-columns: repeat(3, 1fr); }
	.afsac-stats-band__item:nth-child(3n+1) { border-inline-start: 0; }
}
@media (max-width: 560px) {
	.afsac-stats-band__inner { grid-template-columns: repeat(2, 1fr); }
	.afsac-stats-band__item:nth-child(even) { border-inline-start: 1px solid var(--afsac-white-10); }
	.afsac-stats-band__item:nth-child(odd)  { border-inline-start: 0; }
}

/* =========================================================================
 * COMPOSANT « EN-TÊTE DE SECTION » — part partagé (template-parts/shared/section-header).
 * Générique : eyebrow + titre serif (H2) + trait. align-left par défaut, --center pour centrer.
 * ====================================================================== */
.afsac-section-header { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; text-align: start; }
.afsac-section-header--center { align-items: center; text-align: center; }
.afsac-section-header__eyebrow { font-family: var(--afsac-font-body); font-weight: 600; font-size: 11px; line-height: 16.5px; letter-spacing: 2.64px; text-transform: uppercase; color: var(--afsac-blue-accent); }
.afsac-section-header__title { font-family: var(--afsac-font-head); font-weight: 400; font-size: 40px; line-height: 50px; letter-spacing: -0.6px; color: var(--afsac-navy-mid); margin: 0; }
.afsac-section-header__rule { width: 64px; height: 3px; background: var(--afsac-blue-accent); border-radius: 2px; } /* #0E5AA0 */
.afsac-section-header__title-accent { color: var(--afsac-blue-accent); font-weight: 500; } /* #0E5AA0 ; surchargé en --dark */
.afsac-section-header--dark .afsac-section-header__eyebrow { color: var(--afsac-blue-soft); } /* #5B97D6 */
.afsac-section-header--dark .afsac-section-header__title { color: var(--afsac-white); }
.afsac-section-header--dark .afsac-section-header__rule { background: var(--afsac-blue-soft); }
.afsac-section-header--dark .afsac-section-header__title-accent { color: var(--afsac-blue-soft); font-weight: 500; }
@media (max-width: 640px) {
	.afsac-section-header__title { font-size: 28px; line-height: 1.25; }
}

/* =========================================================================
 * PAGE « RÉFÉRENCES » — SECTION 4 : grille partenaires (.afsac-refs__partners*).
 * ====================================================================== */
.afsac-refs__partners { background: #F4F6FA; border-bottom: 1px solid #DCE3EC; padding-block: 88px; }
.afsac-refs__partners .afsac-container { max-width: 1232px; }
/* Filets verticaux ET horizontaux via gap 1px sur fond #DCE3EC. */
.afsac-refs__partners-grid { list-style: none; margin: 40px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 1px; background: #DCE3EC; border: 1px solid #DCE3EC; }
.afsac-refs__partner { display: flex; align-items: center; justify-content: center; min-height: 96px; padding: 16px; background: var(--afsac-white); font-family: var(--afsac-font-head); font-weight: 400; font-size: 13px; line-height: 1.4; letter-spacing: 0.96px; color: #6A7388; text-align: center; }
.afsac-refs__partners-note { margin: 24px 0 0; font-family: var(--afsac-font-body); font-size: 13px; color: #6A7388; text-align: center; }
@media (max-width: 640px) {
	.afsac-refs__partners { padding-block: 56px; }
	.afsac-refs__partners-grid { grid-template-columns: repeat(2, 1fr); }
}

/* =========================================================================
 * PAGE « RÉFÉRENCES » — SECTION 5 : empreinte régionale (bande sombre).
 * 5a : bande + en-tête (header dark à gauche + description à droite). Cartes en 5b.
 * ====================================================================== */
.afsac-refs__regions { background: #02101F; color: var(--afsac-white); padding-block: 80px; }
.afsac-refs__regions .afsac-container { max-width: 1280px; }
.afsac-refs__regions-head { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: start; }
.afsac-refs__regions-head > .afsac-section-header { grid-column: 1 / span 7; }
.afsac-refs__regions .afsac-section-header__title { font-size: 42px; line-height: 46.2px; letter-spacing: -0.63px; }
.afsac-refs__regions .afsac-section-header__rule { width: 48px; height: 2px; } /* override section 5 : 48×2 (défaut 64×3) ; couleur #5B97D6 héritée de --dark */
.afsac-refs__regions-desc { grid-column: 8 / span 5; max-width: 467px; margin: 0; font-family: var(--afsac-font-body); font-weight: 400; font-size: 14px; line-height: 23.8px; color: rgba(255, 255, 255, 0.70); }

/* 5b : grille des 4 cartes région (filets via gap 1px sur fond translucide). */
.afsac-refs__regions-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; max-width: 1232px; margin: 40px auto 0; border: 1px solid rgba(255, 255, 255, 0.10); background: rgba(255, 255, 255, 0.10); }
.afsac-refs__region { display: flex; flex-direction: column; gap: 20px; padding: 28px; background: #02101F; }
.afsac-refs__region-top { display: flex; align-items: center; justify-content: space-between; }
.afsac-refs__region-code { font-family: var(--afsac-font-body); font-weight: 600; font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); }
.afsac-refs__region-badge { padding: 2px 8px; border: 1px solid rgba(255, 255, 255, 0.15); font-family: var(--afsac-font-body); font-weight: 600; font-size: 11px; color: rgba(255, 255, 255, 0.70); }
.afsac-refs__region-name { margin: 0; min-height: 48px; font-family: var(--afsac-font-head); font-weight: 400; font-size: 20px; line-height: 24px; letter-spacing: -0.3px; color: var(--afsac-white); }
.afsac-refs__region-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.afsac-refs__region-stat { display: flex; flex-direction: column; gap: 4px; }
.afsac-refs__region-stat-value { font-family: var(--afsac-font-head); font-weight: 400; font-size: 36px; line-height: 36px; letter-spacing: -0.54px; color: var(--afsac-blue-soft); }
.afsac-refs__region-stat:nth-child(2) .afsac-refs__region-stat-value { color: var(--afsac-white); }
.afsac-refs__region-stat-label { font-family: var(--afsac-font-body); font-weight: 600; font-size: 9px; letter-spacing: 0.8px; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); }
.afsac-refs__region-mix { display: flex; flex-direction: column; gap: 10px; }
.afsac-refs__region-mix-label { font-family: var(--afsac-font-body); font-weight: 600; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); }
.afsac-refs__region-bar { display: flex; height: 6px; border-radius: 3px; overflow: hidden; }
.afsac-refs__region-bar-seg { height: 100%; }
.afsac-refs__region-cats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); column-gap: 12px; row-gap: 6px; }
.afsac-refs__region-cat { display: flex; align-items: center; gap: 6px; }
.afsac-refs__region-cat-dot { flex: none; width: 8px; height: 8px; border-radius: 2px; }
.afsac-refs__region-cat-name { font-family: var(--afsac-font-body); font-weight: 400; font-size: 11px; color: rgba(255, 255, 255, 0.65); }
.afsac-refs__region-cat-pct { margin-inline-start: auto; font-family: var(--afsac-font-body); font-weight: 500; font-size: 11px; color: rgba(255, 255, 255, 0.85); }

@media (max-width: 860px) {
	.afsac-refs__regions-head { grid-template-columns: 1fr; gap: 20px; }
	.afsac-refs__regions-head > .afsac-section-header,
	.afsac-refs__regions-desc { grid-column: auto; }
	.afsac-refs__regions .afsac-section-header__title { font-size: 32px; line-height: 1.2; }
	.afsac-refs__regions-grid { grid-template-columns: 1fr; }
}

/* =========================================================================
 * PAGE « RÉFÉRENCES » — SECTION 6 : registre public (fond blanc).
 * 6a : header (grille 12 col, variante claire). Recherche/filtres/tableau en 6b-6d.
 * ====================================================================== */
.afsac-refs__registry { background: var(--afsac-white); }
.afsac-refs__registry .afsac-container { max-width: 1280px; display: flex; flex-direction: column; gap: 23px; padding-block: 80px; }
.afsac-refs__registry-head { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px; align-items: start; }
.afsac-refs__registry-head > .afsac-section-header { grid-column: 1 / span 7; }
.afsac-refs__registry .afsac-section-header__title { font-size: 42px; line-height: 46.2px; letter-spacing: -0.63px; }
.afsac-refs__registry .afsac-section-header__title-accent {
	color: var(--afsac-navy-mid); /* #0A2C5C — accent navy uniforme (Figma) */
	display: block;               /* coupure « …institutions / au registre AFSAC. » */
}
.afsac-refs__registry-desc { grid-column: 8 / span 5; margin: 0; font-family: var(--afsac-font-body); font-weight: 400; font-size: 14px; line-height: 23.8px; letter-spacing: 0; color: var(--afsac-text-soft-2); }
@media (max-width: 860px) {
	.afsac-refs__registry-head { grid-template-columns: 1fr; gap: 20px; }
	.afsac-refs__registry-head > .afsac-section-header,
	.afsac-refs__registry-desc { grid-column: auto; }
	.afsac-refs__registry .afsac-section-header__title { font-size: 32px; line-height: 1.2; }
}

/* 6b : barre recherche + filtres (carte bordée, 3 rangées). */
.afsac-refs__filters { background: var(--afsac-white); border: 1px solid #DCE3EC; border-radius: 8px; overflow: hidden; }
.afsac-refs__filters-search { display: flex; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: 1px solid #DCE3EC; }
.afsac-refs__filters-icon { flex: none; width: 14px; height: 14px; color: #6A7388; }
.afsac-refs__filters-input { flex: 1; min-width: 0; border: 0; background: transparent; padding: 0; font-family: var(--afsac-font-body); font-weight: 400; font-size: 14px; line-height: 1; letter-spacing: 0; color: var(--afsac-text-soft-2); }
.afsac-refs__filters-input::placeholder { color: #6A7388; }
.afsac-refs__filters-input:focus { outline: none; }
.afsac-refs__filters-count { flex: none; font-family: ui-monospace, "Liberation Mono", monospace; font-size: 11px; line-height: 16.5px; letter-spacing: 1.1px; color: #6A7388; }
.afsac-refs__filters-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 20px; }
.afsac-refs__filters-label { margin-right: 8px; font-family: var(--afsac-font-body); font-weight: 600; font-size: 10.5px; line-height: 15.75px; letter-spacing: 1.89px; text-transform: uppercase; color: #6A7388; }
.afsac-refs__pill { height: 32px; padding: 6px 14px; border: 1px solid #DCE3EC; border-radius: 6px; background: var(--afsac-white); font-family: var(--afsac-font-body); font-weight: 600; font-size: 12px; line-height: 18px; letter-spacing: 0.72px; text-transform: uppercase; white-space: nowrap; color: var(--afsac-navy-mid); cursor: pointer; transition: all var(--afsac-transition); }
.afsac-refs__pill:hover { border-color: var(--afsac-blue-accent); color: var(--afsac-blue-accent); }
.afsac-refs__pill.is-active { background: var(--afsac-navy-mid); border-color: var(--afsac-navy-mid); color: var(--afsac-white); }
.afsac-refs__pill.is-active:hover { background: var(--afsac-navy-mid); border-color: var(--afsac-navy-mid); color: var(--afsac-white); }

/* 6c : tableau du registre (carte séparée + scroll horizontal). */
.afsac-refs__table-card { background: var(--afsac-white); border: 1px solid #DCE3EC; border-radius: 8px; overflow: hidden; }
.afsac-refs__table-scroll { overflow-x: auto; }
.afsac-refs__table { width: 100%; min-width: 760px; border-collapse: collapse; }
.afsac-refs__table col:nth-child(1) { width: 34%; }
.afsac-refs__table col:nth-child(2) { width: 16%; }
.afsac-refs__table col:nth-child(3) { width: 26%; }
.afsac-refs__table col:nth-child(4) { width: 12%; }
.afsac-refs__table col:nth-child(5) { width: 12%; }
.afsac-refs__table th { padding: 12px 16px; background: #F4F6FA; border-bottom: 1px solid #DCE3EC; font-family: var(--afsac-font-body); font-weight: 600; font-size: 10.5px; line-height: 15.75px; letter-spacing: 1.68px; text-transform: uppercase; color: #6A7388; text-align: left; white-space: nowrap; }
.afsac-refs__table td { padding: 16px; border-bottom: 1px solid #DCE3EC; vertical-align: middle; }
.afsac-refs__table tbody tr:last-child td { border-bottom: 0; }
.afsac-refs__table-num { text-align: right; }
.afsac-refs__table-inst { display: flex; align-items: center; gap: 12px; }
.afsac-refs__table-mono { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #DCE3EC; border-radius: 8px; background: #F4F6FA; font-family: ui-monospace, "Liberation Mono", monospace; font-weight: 700; font-size: 11px; line-height: 16.55px; letter-spacing: 0.55px; color: var(--afsac-navy-mid); }
.afsac-refs__table-inst-text { display: flex; flex-direction: column; gap: 2px; }
.afsac-refs__table-name { font-family: var(--afsac-font-head); font-weight: 600; font-size: 15.5px; line-height: 19.38px; letter-spacing: -0.23px; color: var(--afsac-navy-mid); }
.afsac-refs__table-langs { font-family: ui-monospace, "Liberation Mono", monospace; font-weight: 400; font-size: 10.5px; line-height: 15.75px; letter-spacing: 0.52px; text-transform: uppercase; color: #6A7388; }
.afsac-refs__table-country { font-family: var(--afsac-font-body); font-weight: 400; font-size: 13px; line-height: 19.5px; letter-spacing: 0; color: var(--afsac-text-soft-2); }
.afsac-refs__table-badge { display: inline-block; padding: 4px 10px; border: 1px solid #DCE3EC; border-radius: 5px; background: #F4F6FA; font-family: var(--afsac-font-body); font-weight: 600; font-size: 10px; line-height: 16px; letter-spacing: 0.5px; text-transform: uppercase; white-space: nowrap; color: #6A7388; }
.afsac-refs__table-since { font-family: ui-monospace, "Liberation Mono", monospace; font-weight: 400; font-size: 12.5px; line-height: 18.75px; letter-spacing: 0; text-align: right; color: var(--afsac-text-soft-2); }
.afsac-refs__table-courses { font-family: var(--afsac-font-head); font-weight: 600; font-size: 20px; line-height: 30px; letter-spacing: -0.3px; text-align: right; color: var(--afsac-blue-accent); }
.afsac-refs__table-note { margin: 0; padding: 14px; border-top: 1px solid #DCE3EC; text-align: center; font-family: var(--afsac-font-body); font-weight: 400; font-size: 12px; color: #6A7388; }
.afsac-refs__table-empty td { padding: 32px 16px; text-align: center; font-family: var(--afsac-font-body); font-size: 14px; color: #6A7388; }
.afsac-refs__table tbody tr[hidden] { display: none; } /* sécurité : masquage des lignes filtrées */
