/* =========================================================
   FONTS.CSS — DM Sans, hébergée par le site lui-même.
   Chargé AVANT tous les autres CSS.
   =========================================================

   POURQUOI LES POLICES NE VIENNENT PLUS DE GOOGLE

   Le site chargeait ses polices depuis fonts.googleapis.com. À chaque
   visite, le navigateur contactait donc Google et lui transmettait
   l'adresse IP du visiteur, sans son accord. La CNIL considère cela
   comme un transfert de données personnelles, et des tribunaux
   européens ont déjà condamné des sites pour ce seul motif.

   Les deux fichiers sont maintenant servis depuis public/assets/fonts/ :
   plus aucune requête vers un domaine tiers, et le site continue de
   s'afficher correctement même si Google est inaccessible.

   POURQUOI UNE SEULE POLICE

   Le site utilisait deux familles : Syne pour les titres, DM Sans pour
   le texte. Syne est une police « display », dessinée pour des affiches
   et des logos : ses lettres ont des formes inhabituelles qui ralentissent
   la lecture dans un titre de plusieurs mots. Elle a été entièrement
   remplacée par DM Sans, qui servait déjà pour le texte courant.

   Conséquences concrètes : une famille de moins à télécharger, une
   hiérarchie visuelle qui repose désormais sur la taille et la graisse
   plutôt que sur un changement de dessin, et des titres lisibles au
   premier coup d'œil.

   POURQUOI UNE POLICE « VARIABLE »

   Un seul fichier contient toutes les graisses de 100 à 1000. Le site
   utilise 400, 500, 600, 700, 800 et 900 : en version statique il aurait
   fallu six fichiers par jeu de caractères. Ici : deux fichiers, 55 Ko au
   total, et grâce à unicode-range la plupart des visiteurs français ne
   téléchargent que le premier (37 Ko).

   font-display: swap — le texte s'affiche immédiatement dans la police
   de secours, puis bascule sur DM Sans une fois chargée. Le visiteur ne
   voit jamais une page blanche en attendant une police.

   POURQUOI DANS assets/fonts/ ET NON DANS fonts/

   backend/server.js ne sert que deux dossiers statiques : /css et
   /assets (correction de la faille V1 — servir la racine exposait
   backend/.env). Un dossier public/fonts/ aurait renvoyé une erreur 404
   en production, et les titres seraient tombés sur la police système
   sans que rien ne le signale. Les fichiers sont donc placés sous
   assets/, déjà servi, ce qui évite de toucher au serveur.
   ========================================================= */

/* Jeu de caractères latin étendu : polonais, turc, tchèque, roumain…
   N'est téléchargé que si la page contient réellement ces caractères
   (nom d'un client, d'une entreprise). */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url('../assets/fonts/dm-sans-latin-ext-wght-normal.woff2') format('woff2-variations'),
       url('../assets/fonts/dm-sans-latin-ext-wght-normal.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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* Jeu latin de base : couvre tout le français, y compris é è à ç ù ô
   î û ë ï ü ÿ œ Œ, l'euro € et les guillemets « ». C'est le seul
   fichier que télécharge un visiteur français ordinaire. */
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 100 1000;
  font-display: swap;
  src: url('../assets/fonts/dm-sans-latin-wght-normal.woff2') format('woff2-variations'),
       url('../assets/fonts/dm-sans-latin-wght-normal.woff2') format('woff2');
  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;
}

/* Chaîne de secours utilisée pendant le chargement, et sur un navigateur
   qui refuserait le woff2. Elle reprend la police système de chaque
   appareil : rien à télécharger, et un rendu déjà correct. */
:root {
  --police: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,
            'Helvetica Neue', Arial, sans-serif;
}
