/* ═══════════════════════════════════════════════════════════════════
   POLICES HÉBERGÉES PAR NOS SOINS (11/09/2026)

   Elles étaient chargées depuis `fonts.googleapis.com`, ce qui transmettait
   l'adresse IP de chaque visiteur du catalogue à Google avant même qu'il ait
   lu une ligne. Le site institutionnel avait fait ce geste le 04/09/2026 ; le
   catalogue et le blog ne l'avaient pas suivi — même entreprise, mêmes
   visiteurs, décision inverse.

   ⚠️ C'est TOUT OU RIEN : tant qu'une seule famille vient de chez eux,
   l'adresse part quand même. Ne pas « alléger » en y laissant une police.

   ⚠️ Ce sont des polices VARIABLES : un seul fichier couvre toute la plage de
   graisses déclarée. Les `unicode-range` viennent de Google et ne sont pas
   décoratifs — ils évitent au navigateur de télécharger `latin-ext` (68 Ko
   pour Montserrat) pour un texte français, qui n'en a presque jamais besoin.

   ⚠️ `font-display: swap` : le texte s'affiche tout de suite dans la police de
   repli, puis bascule. Mieux vaut un texte lisible qu'une page blanche.

   ⚠️ Les chemins sont RELATIFS à ce fichier (`../fonts/…`) et non construits
   par `url_for` : cette feuille est aussi lue par les pages du blog, qui sont
   **exportées en HTML statique** et n'ont plus de routeur.

   ⚠️ **Graisses réellement employées, mesurées et non supposées** — Inter de
   400 à 700 (corps, boutons, étiquettes), Montserrat de 700 à 900 (h1 900,
   h2 800, h3/h4 700, `.logo`, `.stat-num`). Déclarer une plage plus étroite
   ferait SYNTHÉTISER les graisses manquantes par le navigateur, ce qui se voit
   sur un titre.

   Licences : Inter et Montserrat sont sous SIL Open Font License 1.1, qui
   autorise explicitement l'auto-hébergement. Voir `LICENCE-Inter.txt` et
   `LICENCE-Montserrat.txt` dans `static/fonts/`.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Inter : le corps de texte ── */
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/inter-normal-latin.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;
}
@font-face{
  font-family:'Inter';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('../fonts/inter-normal-latin-ext.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;
}

/* ── Montserrat : les titres ── */
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:700 900;
  font-display:swap;
  src:url('../fonts/montserrat-latin.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;
}
@font-face{
  font-family:'Montserrat';
  font-style:normal;
  font-weight:700 900;
  font-display:swap;
  src:url('../fonts/montserrat-latin-ext.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;
}

/* ── Newsreader : les titres éditoriaux du blog et des pages de contenu ──
   Reprise TELLE QUELLE des fichiers du site institutionnel : aucun
   téléchargement, et surtout la même fonte des deux côtés — c'est la police
   qui donne au blog son air de famille avec accespub.fr. */
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('../fonts/newsreader-normal-latin.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;
}
@font-face{
  font-family:'Newsreader';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('../fonts/newsreader-normal-latin-ext.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;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:400 500;
  font-display:swap;
  src:url('../fonts/newsreader-italic-latin.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;
}
@font-face{
  font-family:'Newsreader';
  font-style:italic;
  font-weight:400 500;
  font-display:swap;
  src:url('../fonts/newsreader-italic-latin-ext.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;
}

/* ── IBM Plex : le corps et les intertitres du blog ──
   ⚠️ PIÈGE MESURÉ le 11/09/2026 : Google sert le MÊME fichier pour les
   graisses 400, 500 et 600 d'IBM Plex Sans — elle est devenue VARIABLE. Les
   télécharger une par une embarquait trois copies identiques, soit 80 Ko de
   doublons envoyés à chaque visiteur. Les empreintes md5 l'ont montré, pas la
   lecture du CSS : trois URL distinctes dans la feuille, un seul fichier
   derrière. Toujours dédoublonner PAR URL avant d'enregistrer.
   IBM Plex Mono, elle, a bien un fichier par graisse. */
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('../fonts/plexsans-400-600-latin-ext.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;
}
@font-face{
  font-family:'IBM Plex Sans';
  font-style:normal;
  font-weight:400 600;
  font-display:swap;
  src:url('../fonts/plexsans-400-600-latin.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;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:400 400;
  font-display:swap;
  src:url('../fonts/plexmono-400-latin-ext.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;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:400 400;
  font-display:swap;
  src:url('../fonts/plexmono-400-latin.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;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500 500;
  font-display:swap;
  src:url('../fonts/plexmono-500-latin-ext.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;
}
@font-face{
  font-family:'IBM Plex Mono';
  font-style:normal;
  font-weight:500 500;
  font-display:swap;
  src:url('../fonts/plexmono-500-latin.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;
}
