/* ==========================================================================
   ENF — Jetons de design
   --------------------------------------------------------------------------
   Valeurs relevées nœud par nœud dans la maquette Figma
   « E.Francophones — Identité Visuelle » (nœud 879:948).
   L'écart assumé avec la maquette est signalé par « ÉCART ».
   ========================================================================== */

:root {
	/* ---------- Polices ----------
	   La maquette utilise deux caractères, et pas un seul :
	     Inter              → interface et texte courant (menu, paragraphes, méta)
	     Plus Jakarta Sans  → titres, boutons, labels, chiffres
	   Les deux sont auto-hébergés en version variable. */
	--enf-font: "Inter", "Inter Fallback", -apple-system, BlinkMacSystemFont,
		"Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--enf-font-display: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback",
		-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
		Arial, sans-serif;
	--enf-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	/* ---------- Couleurs de marque ----------
	   Deux oranges, et la règle tient en une phrase :
	     --enf-orange-vif  n'apparaît que sur fond sombre
	     --enf-orange      porte tout ce qui est écrit ou cliquable sur fond clair

	   Le relevé maquette est #FE6A34. Sur blanc il plafonne à 2,87:1, et sous
	   un libellé blanc de bouton à 2,72:1, là où le cahier des charges exige
	   AA, soit 4,5:1. #C2410C garde la même teinte en plus profond et monte à
	   5,18:1 dans les deux sens. Sur fond sombre, en revanche, #FE6A34 passe
	   largement : il y reste, c'est là qu'il fait l'identité. */
	--enf-orange: #c2410c;        /* texte et surfaces porteuses de texte — 5,18:1 */
	--enf-orange-2: #ad3803;      /* survol — 6,28:1 */
	--enf-orange-vif: #fe6a34;    /* relevé maquette — réservé aux fonds sombres */
	--enf-orange-soft: rgba(254, 106, 52, 0.1);
	/* Le même orange doux, mais opaque. Une étiquette posée sur une section
	   teintée voyait son fond s'assombrir et tombait à 4,44:1 ; avec une
	   couleur pleine, son contraste ne dépend plus de ce qu'il y a derrière —
	   4,70:1 partout. */
	--enf-orange-soft-solid: #fff0eb;
	--enf-blue: #1e3a8a;          /* relevé : carte remplie, titres de carte, icônes */
	--enf-blue-deep: #00236f;
	--enf-navy: #101a33;          /* ÉCART : la maquette exporte #131315 (quasi-noir) */
	--enf-navy-deep: #0b1425;     /* pied de page — repris du site actuel, sombre */

	/* ---------- Couleurs de texte ---------- */
	--enf-ink: #000000;           /* titres — relevé : la maquette est en noir pur */
	--enf-body: #444651;          /* texte courant */
	--enf-muted: #64748b;         /* texte secondaire */
	--enf-on-dark: #faf8ff;       /* texte sur fond sombre */
	--enf-on-dark-muted: #bec6e0;

	/* ---------- Surfaces ---------- */
	--enf-bg: #ffffff;
	--enf-bg-soft: #faf8ff;       /* sections alternées */
	--enf-bg-slate: #f1f5f9;
	--enf-line: #e2e8f0;          /* filet standard */
	--enf-line-soft: rgba(197, 197, 211, 0.1); /* filet des cartes, relevé tel quel */
	--enf-overlay: rgba(0, 0, 0, 0.2);         /* voile du hero */
	--enf-glass: rgba(255, 255, 255, 0.1);     /* pilule translucide */
	--enf-glass-line: rgba(255, 255, 255, 0.2);
	--enf-hairline-on-dark: rgba(255, 255, 255, 0.05);
	--enf-hairline-on-dark-strong: rgba(255, 255, 255, 0.1);

	/* ---------- Échelle typographique ----------
	   Tailles relevées à 1440 px dans la maquette, rendues fluides :
	     h1   Plus Jakarta Sans Bold      64 / 70,4 / −3px
	     h2   Plus Jakarta Sans Bold      48 / 52,8 / −0,96px
	     h3   Plus Jakarta Sans SemiBold  24 / 33,6 / 0
	     texte  Inter Regular             16 / 24   / −1px
	     menu   Inter Medium              16 / 24   / −1px          */
	--enf-fs-h1: clamp(2.5rem, 4.45vw, 4rem);
	--enf-fs-h2: clamp(2rem, 3.33vw, 3rem);
	--enf-fs-h3: 1.5rem;
	--enf-fs-h4: 1.125rem;
	--enf-fs-body: 1rem;
	--enf-fs-small: 0.875rem;
	--enf-fs-label: 0.75rem;
	--enf-fs-nav: 1rem;
	--enf-fs-nav-active: 0.875rem;
	--enf-fs-stat: clamp(2rem, 3.4vw, 2.75rem);

	--enf-lh-tight: 1.1;    /* h1 et h2 : 70,4/64 et 52,8/48 */
	--enf-lh-heading: 1.4;  /* h3 : 33,6/24 */
	--enf-lh-body: 1.5;     /* texte courant : 24/16 */

	--enf-ls-h1: -0.047em;   /* −3px à 64px */
	--enf-ls-h2: -0.02em;    /* −0,96px à 48px */
	--enf-ls-h3: 0;
	--enf-ls-ui: -0.0625em;  /* −1px à 16px, sur tout ce qui est en Inter */
	--enf-ls-label: 0.14em;
	--enf-ls-nav-active: 0.05em; /* +0,7px à 14px */

	--enf-fw-regular: 400;
	--enf-fw-medium: 500;
	--enf-fw-semibold: 600;
	--enf-fw-bold: 700;

	/* ---------- Espacements ---------- */
	--enf-space-1: 4px;
	--enf-space-2: 8px;
	--enf-space-3: 12px;
	--enf-space-4: 16px;   /* gap interne des cartes, relevé */
	--enf-space-5: 24px;   /* gouttière de grille, relevé */
	--enf-space-6: 32px;
	--enf-space-7: 40px;   /* padding interne des cartes, relevé */
	--enf-space-8: 48px;
	--enf-space-9: 64px;
	--enf-space-10: 80px;  /* écart titre de section → grille, relevé */
	--enf-space-11: 96px;
	--enf-space-12: 120px;

	/* Respiration verticale d'une section, fluide du mobile au grand écran. */
	--enf-section-y: clamp(56px, 7vw, 96px);

	/* ---------- Grille ---------- */
	--enf-container: 1280px;  /* relevé : largeur maximale du conteneur */
	--enf-gutter: 24px;       /* relevé : marge latérale interne */
	--enf-grid-gap: 24px;     /* relevé : gouttière entre colonnes */
	--enf-content: 1232px;    /* colonne utile = 1280 − 2 × 24 */

	/* ---------- Rayons ---------- */
	--enf-radius-sm: 4px;     /* relevé : boutons */
	--enf-radius: 12px;       /* relevé : cartes */
	--enf-radius-lg: 16px;
	--enf-radius-pill: 999px; /* pilules, champ newsletter */

	/* ---------- Élévations ---------- */
	/* La maquette n'utilise aucune ombre ; celles-ci ne servent qu'aux
	   états de survol demandés au cahier des charges. */
	--enf-shadow-hover: 0 8px 24px rgba(16, 26, 51, 0.08);
	--enf-shadow-header: 0 1px 0 var(--enf-line), 0 6px 20px rgba(16, 26, 51, 0.06);

	/* ---------- Divers ---------- */
	--enf-header-h: 81px;     /* relevé : hauteur de l'en-tête */
	/* Relevé : 40 (barre) + 24 (nav) = 64 de marge latérale, sur toute la largeur. */
	--enf-header-x: clamp(20px, 4.45vw, 64px);
	/* Écart entre les liens du menu. Le relevé donne 80 px, mais la barre ne
	   les tient qu'à partir de 1486 px : en dessous l'écart doit se resserrer,
	   sinon l'en-tête déborde. La formule est la place restante divisée par les
	   quatre intervalles, plancher à 32 px — c'est ce plancher qui fixe le
	   point de rupture de la barre à 1320 px. */
	--enf-nav-gap: clamp(32px, 25vw - 300px, 80px);
	--enf-transition: 160ms ease;
	--enf-focus: 3px solid var(--enf-blue);
	--enf-focus-offset: 2px;
}

/* --------------------------------------------------------------------------
   Points de rupture (pour mémoire — CSS n'accepte pas les variables
   dans les media queries) :
     560px   téléphone large
     768px   tablette portrait
     920px   tablette paysage
     1160px  ordinateur
   -------------------------------------------------------------------------- */

/* --------------------------------------------------------------------------
   Polices auto-hébergées, en version variable : un seul fichier par
   sous-ensemble couvre tout l'intervalle de graisses.
   Licences SIL Open Font 1.1 — voir assets/fonts/LICENSE-*.txt

   Seuls les sous-ensembles « latin » sont préchargés ; « latin étendu »
   ne se télécharge que si un caractère l'exige.
   -------------------------------------------------------------------------- */

/* Inter — interface et texte courant */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
		U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
		U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
		U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Plus Jakarta Sans — titres, boutons, labels */
@font-face {
	font-family: "Plus Jakarta Sans";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("../fonts/plus-jakarta-sans-latin-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
		U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191,
		U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: "Plus Jakarta Sans";
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url("../fonts/plus-jakarta-sans-latin-ext-wght-normal.woff2") format("woff2-variations");
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
		U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
		U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Polices de repli calées sur les métriques des deux caractères : évitent
   le saut de mise en page pendant le chargement (CLS). */
@font-face {
	font-family: "Inter Fallback";
	src: local("Helvetica Neue"), local("Arial"), local("Segoe UI");
	ascent-override: 90%;
	descent-override: 22.43%;
	line-gap-override: 0%;
	size-adjust: 107.64%;
}

@font-face {
	font-family: "Plus Jakarta Sans Fallback";
	src: local("Helvetica Neue"), local("Arial"), local("Segoe UI");
	ascent-override: 96%;
	descent-override: 24%;
	line-gap-override: 0%;
	size-adjust: 104%;
}
