@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,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 Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-inter:"Inter","Inter Fallback"}:root{--color-background-canvas:#f6f8fa;--color-background-surface:#fff;--color-background-subtle:#f6f8fa;--color-foreground-default:#17202a;--color-foreground-muted:#536170;--color-foreground-strong:#334155;--color-brand-primary:#0597f4;--color-brand-secondary:#0f766e;--color-brand-primary-ink:#fff;--color-brand-primary-strong:#0570c4;--color-state-success:#15803d;--color-state-warning:#a16207;--color-state-danger:#b91c1c;--color-state-info:#0369a1;--color-border-default:#d8dee6;--color-border-strong:#7b8794;--font-family-display:Inter;--font-size-xs:12px;--font-size-sm:13px;--font-size-md:16px;--font-size-lg:18px;--font-size-xl:24px;--font-size-2xl:36px;--font-size-3xl:48px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-tracking-uppercase:0.08em;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-6:24px;--spacing-8:32px;--spacing-12:48px;--spacing-16:64px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-pill:999px;--shadow-sm:0 1px 2px rgba(23,32,42,.06);--shadow-md:0 4px 12px rgba(23,32,42,.08);--shadow-lg:0 12px 32px rgba(23,32,42,.12);--motion-duration-fast:120ms;--motion-duration-normal:200ms;--motion-duration-slow:320ms;--motion-easing-standard:cubic-bezier(.2,0,0,1);--motion-easing-in:cubic-bezier(.4,0,1,1);--motion-easing-out:cubic-bezier(0,0,.2,1);--motion-reduced-motion:0.01ms;--layout-container-max:1280px;--layout-content-max:896px;--layout-portal-max:1440px;--layout-intro-max:768px;--layout-prose-short:672px;--layout-form-max:640px;--breakpoint-xs:320px;--breakpoint-sm:640px;--breakpoint-md:768px;--breakpoint-lg:1024px;--breakpoint-xl:1440px;--icon-size-sm:16px;--icon-size-md:20px;--icon-size-lg:24px;--typography-scale-responsive-switches-at-md:768px;--typography-scale-responsive-switches-at-lg:1024px;--typography-scale-responsive-roles-display-base:32px;--typography-scale-responsive-roles-display-md:40px;--typography-scale-responsive-roles-display-comment-lg:"48px depuis BA-64-bis (2026-09-03). Voir font.size.3xl : le moteur joint ces deux declarations par EGALITE DE VALEUR, donc elles changent ensemble ou la jointure se rompt sans erreur.";--typography-scale-responsive-roles-display-lg:48px;--typography-scale-responsive-roles-display-weight:800;--typography-scale-responsive-roles-display-line-height:1.06;--typography-scale-responsive-roles-display-comment-line-height:"1.06 depuis home.html .hero h1{line-height:1.06, relevee le 2026-09-05. La valeur 1.04 n'est declaree par aucune maquette.";--typography-scale-responsive-roles-h1-base:28px;--typography-scale-responsive-roles-h1-md:32px;--typography-scale-responsive-roles-h1-lg:36px;--typography-scale-responsive-roles-h1-weight:800;--typography-scale-responsive-roles-h1-line-height:1.15;--typography-scale-responsive-roles-h1-comment-weight:"800 et 1.15 depuis TROIS maquettes du 2026-08-05, relevees le 2026-09-05 : 16-academy-home h1{font-weight:800, 34-academy-catalog-list .cataloghead h1{font-weight:800,line-height:1.15, 23-corp-editorial h1{font-weight:var(--fw-extrabold),line-height:1.15.";--typography-scale-responsive-roles-h2-base:22px;--typography-scale-responsive-roles-h2-md:24px;--typography-scale-responsive-roles-h2-lg:24px;--typography-scale-responsive-roles-h2-weight:700;--typography-scale-responsive-roles-h2-line-height:1.25;--typography-scale-responsive-roles-h2-comment-lg:"24px depuis la transcription des maquettes du 2026-09-04. 34-academy-catalog-list.html et 21-corp-offer-detail.html declarent --fs-h2 a 22px puis 24px puis 24px : aucune maquette n'ecrit 34px. La graisse 700 vient de .sec h3, le 16px de h3 vient de .offer h3.";--typography-scale-responsive-roles-h3-base:16px;--typography-scale-responsive-roles-h3-weight:700;--typography-scale-responsive-roles-h3-line-height:1.35;--typography-scale-responsive-roles-body-base:16px;--typography-scale-responsive-roles-body-weight:400;--typography-scale-responsive-roles-body-line-height:1.5;--typography-scale-responsive-roles-body-comment-line-height:"1.5 depuis les maquettes, relevee le 2026-09-05 : 16-academy-home.html et home.html ecrivent toutes deux body{line-height:1.5, et AUCUNE des six maquettes de reference n'ecrit 1.65. L'interligne du corps porte tout le texte des deux sites : 10 % de hauteur de ligne en trop sur chaque paragraphe.";--typography-scale-responsive-roles-small-base:13px;--typography-scale-responsive-roles-small-weight:400;--typography-scale-responsive-roles-small-line-height:1.5;--typography-scale-responsive-roles-eyebrow-base:12px;--typography-scale-responsive-roles-eyebrow-weight:600;--typography-scale-responsive-roles-eyebrow-transform:uppercase;--typography-scale-responsive-roles-eyebrow-tracking:"{font.tracking.uppercase";--typography-scale-responsive-tracking-rule:"0 partout, sauf `text-transform: uppercase` qui prend {font.tracking.uppercase. Aucune autre valeur n'est autorisee.";--typography-scale-responsive-legacy-note:"Les gabarits 00-08 et home conservent leurs propres maxima de titre, herites d'avant la doctrine. Leur taille a 320px et a >=1024px est inchangee , seul le palier intermediaire a ete fixe. Une harmonisation sur l'echelle canonique ci-dessus reste a faire et n'est PAS incluse dans cette livraison.";--doctrine-compliance-no-viewport-scaled-font-sizes-status:conforme;--doctrine-compliance-no-viewport-scaled-font-sizes-evidence:"0 occurrence de clamp() sur font-size dans livraison/maquettes/ *.html (14 avant correction, reparties sur 11 fichiers).";--doctrine-compliance-no-viewport-scaled-font-sizes-method:grep sur les 19 maquettes;--doctrine-compliance-letter-spacing-default-required:0;--doctrine-compliance-letter-spacing-default-status:conforme_avec_derogation_declaree;--doctrine-compliance-letter-spacing-default-evidence:"0 tracking negatif restant (68 avant correction). 54 usages positifs, tous a 0.08em et tous sur text-transform: uppercase.";--doctrine-compliance-letter-spacing-default-derogation:"font.tracking.uppercase — voir token_naming_map.extensions";--doctrine-compliance-letter-spacing-default-a-faire-acter-par:design authority;--doctrine-compliance-body-text-must-fit-container-status:conforme;--doctrine-compliance-avoid-single-hue-palette-status:a_verifier_par_la_design_authority;--doctrine-compliance-avoid-single-hue-palette-detail:"Academy porte desormais un bleu de marque (#0597f4, teinte 203 deg) a 2 deg de state.info (#0369a1, 201 deg). La palette reste multi-teintes grace au teal secondaire et a l'ambre, mais la proximite marque/info est reelle et mesuree. Voir token_naming_map.color.brand.primary.";--doctrine-compliance-contrast-standard-required:WCAG_2_2_AA;--doctrine-compliance-contrast-standard-status:mesure;--doctrine-compliance-contrast-standard-detail:contrast_on_surface est calcule pour chaque couleur dans les 3 modes. Les valeurs sous les seuils sont documentees avec leur usage autorise.;--a11y-target:WCAG 2.2 AA;--a11y-min-contrast-text:4.5;--a11y-min-contrast-ui:3.0;--a11y-min-touch-target:44px;--a11y-min-safe-spacing:8px;--a11y-focus-ring-width:3px;--a11y-focus-ring-offset:3px;--a11y-focus-ring-color:"{color.brand.primary";--a11y-zoom:"Jusqu'a 200% sans masquer une action primaire ni un texte essentiel.";--a11y-reflow:"L'ordre de focus doit rester coherent apres reflow responsive.";--a11y-color-alone:"Aucun statut ne repose sur la couleur seule — icone + libelle systematiques. Regle renforcee cote Academy ou brand.primary et state.info sont a 2 deg de teinte.";--performance-budget-profile-ref:PERF-BOX_ACADEMY;--performance-budget-authority:"DIGITAL_SURFACES_SPEC.yml — les 72 routes Academy pointent toutes ce profil, qui herite de GROUP_WEB_NFR_BASELINE.yml";--performance-budget-public-read-applies-to:42 routes (public_marketing,commerce,auth);--performance-budget-public-read-LCP-p75-mobile-ms:1500;--performance-budget-public-read-INP-p75-ms:100;--performance-budget-public-read-CLS-p75:0.03;--performance-budget-public-read-first-load-js-kb-max:220;--performance-budget-authenticated-applies-to:30 routes (company_portal 9,learner_portal 7,trainer_portal 8,plus les routes commerce authentifiees);--performance-budget-authenticated-mutation-accept-or-queue-p95-ms:1000;--performance-budget-authenticated-cache-hit-read-p95-ms:150;--grid-catalog-split-pattern:"grid gap-8 lg:grid-cols-[280px_1fr]";--grid-catalog-split-columns-base:1;--grid-catalog-split-columns-1024:280px/1fr;--grid-catalog-split-usage:"catalogue : panneau de filtres + resultats";--grid-catalog-split-responsive-rule:"Sous 1024, les filtres passent en feuille modale declenchee par un bouton, jamais en colonne ecrasee. Exigence du contrat gele : 'filter panels must remain usable on touch devices without hidden blocking layers'.";--grid-catalog-results-pattern:"grid gap-4 md:grid-cols-2 xl:grid-cols-3";--grid-catalog-results-columns-base:1;--grid-catalog-results-columns-768:2;--grid-catalog-results-columns-1440:3;--grid-catalog-results-usage:cartes de formation,parcours,bootcamps;--grid-catalog-results-responsive-rule:Degradation en une colonne AVANT tout debordement.;--grid-checkout-flow-pattern:"grid gap-8 lg:grid-cols-[1fr_360px]";--grid-checkout-flow-columns-base:1;--grid-checkout-flow-columns-1024:1fr/360px;--grid-checkout-flow-usage:"tunnel commerce : formulaire + recapitulatif";--grid-checkout-flow-responsive-rule:Sous 1024,le recapitulatif passe SOUS le formulaire. La barre de total collante ne doit jamais masquer un controle de formulaire ni une confirmation legale.;--grid-portal-data-pattern:table pleine largeur,ou liste de cartes sous md;--grid-portal-data-columns-base:cartes empilees;--grid-portal-data-columns-768:tableau;--grid-portal-data-usage:sessions,apprenants,devis,factures,documents,dossiers formateur;--grid-portal-data-responsive-rule:"Transformation approuvee obligatoire : une table dense qui ne tient pas devient une liste de cartes. Jamais de clipping, jamais de defilement horizontal sur la route.";--grid-portal-summary-pattern:"grid gap-4 sm:grid-cols-2 lg:grid-cols-4";--grid-portal-summary-columns-base:1;--grid-portal-summary-columns-640:2;--grid-portal-summary-columns-1024:4;--grid-portal-summary-usage:cartes de synthese des tableaux de bord;--grid-portal-summary-responsive-rule:"Empilement sans troncature de metrique — exigence explicite du contrat gele.";--grid-read-pattern:flux vertical,une colonne;--grid-read-columns-base:1;--grid-read-max:"{layout.content.max";--grid-read-usage:pages editoriales,mentions legales,FAQ;color-scheme:light;--focus-w:var(--a11y-focus-ring-width);--fs-eyebrow:12px;--fs-xs:var(--font-size-xs);--fw-bold:var(--font-weight-bold);--fw-extrabold:var(--font-weight-extrabold);--fw-semibold:var(--font-weight-semibold);--hairline-2:2px;--hairline:1px;--icon-md:var(--icon-size-md);--lh-body:var(--typography-scale-responsive-roles-body-line-height);--lh-h2:var(--typography-scale-responsive-roles-h2-line-height);--lh-h3:var(--typography-scale-responsive-roles-h3-line-height);--lh-ui:1.5;--spacing-20:80px;--spacing-5:20px;--w-semibold:var(--font-weight-semibold)}