/* ══════════════════════════════════════════════════════════════════════════
   RECOV — jetons de couleur, SOURCE UNIQUE (05/09/2026).
   Chargé par toutes les pages publiques, avant leur <style> local.
   Règle : en typographie, UN SEUL vert — var(--vert-texte). Les autres verts
   servent aux fonds, bordures, boutons (texte noir sur lime).
   Garde : scripts/check-calculs.mjs section K (scripts/vert-texte.mjs).
   ══════════════════════════════════════════════════════════════════════════ */
:root{
  --vert-texte:#65a30d;   /* texte vert, partout (décision du 05/09/2026) */
  --vert:#65a30d;         /* vert charte — fonds, bordures, boutons */
  --lime:#84cc16;         /* accent — fonds et boutons, JAMAIS en texte sur fond clair */
  --lime-clair:#c1ff72;   /* accent sur fond sombre — fonds et bordures */
  --vert-fonce:#4d7c0f;   /* fonds sombres verts */
  --vert-pale:#ecfccb;    /* fonds pâles */
  --vert-pale-2:#d9f99d;
  --noir:#0d0d14;
}

/* ══════════════════════════════════════════════════════════════════════════
   Typographie : UNE SEULE famille sur le site public — General Sans
   (Indian Type Foundry via Fontshare, licence ITF gratuite, auto-hébergée dans
   /fonts/, voir fonts/LICENCE-general-sans.txt). Décision Pedro 05/09/2026,
   après comparaison A/B en local ; graisses et tailles sont les seuls contrastes.
   Toute déclaration font-family du site public passe par var(--police) —
   garde : check-calculs section L (scripts/police-site.mjs).
   ══════════════════════════════════════════════════════════════════════════ */
@font-face{font-family:'General Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/general-sans-400.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/general-sans-400-italic.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/general-sans-500.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:italic;font-weight:500;font-display:swap;src:url('/fonts/general-sans-500-italic.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/general-sans-600.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:italic;font-weight:600;font-display:swap;src:url('/fonts/general-sans-600-italic.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/general-sans-700.woff2') format('woff2')}
@font-face{font-family:'General Sans';font-style:italic;font-weight:700;font-display:swap;src:url('/fonts/general-sans-700-italic.woff2') format('woff2')}
:root{
  --police:'General Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
}
/* Les graisses 800 demandées par d'anciens titres se rendent en 700 (la plus forte disponible). */
/* Les contrôles de formulaire n'héritent pas de la police par défaut (cinq boutons
   de la home restaient en Arial, vu dans le navigateur le 05/09/2026). */
button,input,select,textarea{font-family:inherit}

/* ══════════════════════════════════════════════════════════════════════════
   Échelle typographique — UNE SEULE, pour tout le site public (05/09/2026).
   Fixes au pas de 2 px jusqu'à 20, 4 px jusqu'à 32, 8 px ensuite ; trois tailles
   fluides pour les titres. Toute font-size hors échelle casse le build
   (check-calculs section M, scripts/echelle-typo.mjs).
   ══════════════════════════════════════════════════════════════════════════ */
:root{
  --t12:12px;--t14:14px;--t16:16px;--t18:18px;--t20:20px;--t24:24px;
  --t28:28px;--t32:32px;--t40:40px;--t48:48px;--t56:56px;--t64:64px;
  --t-h2:clamp(22px,3vw,28px);      /* titre de section */
  --t-h1:clamp(28px,4.5vw,44px);    /* titre de page */
  --t-display:clamp(36px,5.2vw,64px); /* titre de héros */
}

/* ══════════════════════════════════════════════════════════════════════════
   Rôles de texte — couleurs, interlignes, interlettrages (05/09/2026).
   Quatre couleurs de texte, quatre interlignes, deux interlettrages : rien
   d'autre sur le site public (check-calculs section O, scripts/roles-texte.mjs).
   ══════════════════════════════════════════════════════════════════════════ */
:root{
  --texte:#0d0d14;                        /* texte courant sur fond clair */
  --texte-2:#475569;                      /* texte secondaire sur fond clair (contraste 7,6) */
  --texte-inverse:rgba(255,255,255,.92);  /* texte courant sur fond sombre */
  --texte-inverse-2:rgba(255,255,255,.7); /* texte secondaire sur fond sombre */
  --lh-titre:1.05;--lh-serre:1.2;--lh-court:1.45;--lh-corps:1.6;
  --ls-titre:-.02em;--ls-etiquette:.08em;
}
