/* ============================================================================
   FONTS — Self-hosted typography
   ----------------------------------------------------------------------------
   Police principale : General Sans (Indian Type Foundry, licence libre).
   On charge UNIQUEMENT les fichiers `.woff2` Variable (regular + italic) :
     - `woff2` est supporté par tous les navigateurs modernes (97 % +)
     - Le format Variable couvre tous les poids 200 → 700 dans un seul fichier
       (≈70 KB au lieu de 7 × ≈25 KB pour chaque poids statique)

   Stratégies clés :
     - `font-display: swap`   → affiche la police système immédiatement,
                                puis swap quand General Sans est chargée
                                (évite le FOIT — Flash Of Invisible Text)
     - `font-weight: 200 700` → déclare la plage du variable axis
     - `unicode-range`        → limite au latin pour économiser la BP
                                (subset latin + latin extended pour é à è ô ç…)

   Fichiers source : /assets/fonts/GeneralSans_Complete/Fonts/WEB/fonts/
   ============================================================================ */


/* ---- General Sans — Regular variable (poids 200 à 700) ---- */
@font-face {
  font-family: 'General Sans';
  src: url('../fonts/GeneralSans_Complete/Fonts/WEB/fonts/GeneralSans-Variable.woff2')
       format('woff2-variations'),
       url('../fonts/GeneralSans_Complete/Fonts/WEB/fonts/GeneralSans-Variable.woff2')
       format('woff2');
  font-weight: 200 700;
  font-style: normal;
  font-display: swap;
  unicode-range:
    U+0000-00FF,  /* Basic Latin + Latin-1 Supplement (couvre é à è ô ç…)   */
    U+0131,       /* dotless i                                               */
    U+0152-0153,  /* Œ œ                                                     */
    U+02BB-02BC,  /* ʻ ʼ                                                     */
    U+02C6,       /* ˆ                                                       */
    U+02DA,       /* ˚                                                       */
    U+02DC,       /* ˜                                                       */
    U+2000-206F,  /* Ponctuation générale (espaces fines, em-dash, etc.)     */
    U+2074,       /* exposant ⁴                                              */
    U+20AC,       /* €                                                       */
    U+2122,       /* ™                                                       */
    U+2191,       /* flèche ↑                                                */
    U+2193,       /* flèche ↓                                                */
    U+2212,       /* moins minus                                             */
    U+2215,       /* slash de fraction                                       */
    U+FEFF,       /* BOM                                                     */
    U+FFFD;       /* replacement character                                   */
}


/* ---- General Sans — Italic variable (poids 200 à 700) ---- */
@font-face {
  font-family: 'General Sans';
  src: url('../fonts/GeneralSans_Complete/Fonts/WEB/fonts/GeneralSans-VariableItalic.woff2')
       format('woff2-variations'),
       url('../fonts/GeneralSans_Complete/Fonts/WEB/fonts/GeneralSans-VariableItalic.woff2')
       format('woff2');
  font-weight: 200 700;
  font-style: italic;
  font-display: swap;
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215,
    U+FEFF, U+FFFD;
}


/* ----------------------------------------------------------------------------
   FALLBACK STACK
   ----------------------------------------------------------------------------
   Si General Sans n'a pas encore chargé (ou échoue), on tombe sur les polices
   système (`system-ui`, `-apple-system`, `BlinkMacSystemFont`...). Ces polices
   sont déjà installées et s'affichent en 0 ms. Quand General Sans est prête,
   le swap est presque invisible car les métriques sont proches.
   La stack complète est déclarée dans `brand-tokens.css` via
   `--brand-font-body` pour rester centralisée.
   ---------------------------------------------------------------------------- */
