/* ============================================================================
   POLICES DU SITE — AUTO-HÉBERGÉES, AUCUN APPEL VERS UN TIERS
   ============================================================================
   🔴 CE QUE CE FICHIER FERME. Jusqu'au 12/09/2026, les quinze pages du site
      portaient chacune TROIS lignes : deux `preconnect` vers les serveurs de
      Google Fonts et un `<link>` vers leur feuille de styles. Tout visiteur —
      y compris celui qui ne fait que lire les CGV — transmettait donc son
      adresse IP à un sous-traitant américain absent de l'annexe IV du DPA.
      Quarante-cinq lignes, quinze fichiers, une seule et même forme.

   ⚠️ LE `preconnect` EST LA MOITIÉ QU'ON OUBLIE. Il ouvre la connexion
      TCP+TLS À LUI SEUL, avant toute ressource : retirer le `<link>` de
      feuille de styles en le laissant en place n'aurait rien fermé du tout.
      Les trois lignes se retirent ensemble, c'est pourquoi ce fichier les
      remplace toutes les trois.

   ⚠️ LE SECOND DOMAINE DE GOOGLE N'APPARAISSAIT PAS DANS LES `<link>` DE
      FEUILLE : il n'était atteint qu'indirectement, par les `src:` de la
      feuille que le premier renvoyait. Ici, il figurait en plus dans un
      `preconnect` — d'où deux domaines nommés pour une seule ressource.

   🔑 LES DEUX DOMAINES NE SONT PAS ÉCRITS ICI, ET C'EST DÉLIBÉRÉ. Le contrôle
      de non-régression du lot est un `grep` sur les fichiers SUIVIS PAR GIT,
      qui doit rendre zéro. Un commentaire qui les nomme rendrait ce contrôle
      définitivement bruyant, donc inutile — et un contrôle qu'on apprend à
      ignorer ne protège plus de rien.

   ── UN SEUL FICHIER, APPELÉ PAR LES QUINZE PAGES ────────────────────────────
      Le site n'avait aucune feuille de styles : tout est en ligne dans chaque
      page. Recopier ces six règles quinze fois aurait créé quinze copies d'une
      même liste de fichiers, et une liste recopiée finit toujours par diverger.
      Une seule source, ici, mise en cache une fois pour tout le site.

   ── LES SIX RÈGLES SONT TRANSPOSÉES, PAS RÉÉCRITES ──────────────────────────
      Elles viennent de `dentalsuite-frontend/styles.css` (l. 17-71), à l'espace
      près ; SEULE l'URL change — le front les sert en relatif depuis son propre
      répertoire, nous les servons depuis `/assets/fonts/`. Garder la mise en
      forme d'origine rend le `diff` entre les dépôts lisible le jour où l'un
      des deux bougera. Les mêmes six fichiers, aux mêmes empreintes SHA-256,
      sont servis par les trois dépôts (application, API, vitrine).

   ⚠️ NE PAS « HARMONISER » LES PLAGES DE GRAISSES ENTRE LES TROIS BLOCS :
      Fraunces romain va de 300 à 700, Fraunces italique de 300 à 600, Manrope
      de 200 à 800. Ce sont les plages réellement contenues dans chaque fichier
      variable ; en annoncer une plus large ferait extrapoler le navigateur au
      lieu de rendre.

   ── 🔴 CE LOT CHANGE LE RENDU, ET C'EST ASSUMÉ (décision du 11/09/2026) ─────
      L'URL Google ne demandait Manrope que jusqu'à 600. Les trois usages en
      700 — `.btn-hero-dominant`, `.pricing-free-banner strong`,
      `.feat-check::after`, tous sur la page d'accueil — étaient donc en FAUX
      GRAS synthétisé par le navigateur. Le fichier variable local les rend
      vraiment : meilleur, mais différent. (Fraunces romain 300, à l'inverse,
      était demandé sans être utilisé nulle part : une coupe payée pour rien.)

   ── LES URL SONT RACINE-RELATIVES ──────────────────────────────────────────
      C'est la convention du site (`/favicon.svg`, `/legal/…`, `/cgv/…`) et la
      seule qui soit indifférente à la profondeur de la page ET à la forme de
      l'URL servie : Netlify sert `/cgv/2026-10-01-r4` SANS barre finale (c'est
      un fichier) mais redirige `/bientot` vers `/bientot/` (c'est un
      répertoire). Un chemin relatif se résoudrait différemment selon le cas.

   ⚠️ Le cache-bust `?v=` doit rester cohérent avec la règle `immutable` de
      `netlify.toml` : un contenu qui change change d'adresse, sinon il reste
      en cache un an.
   ============================================================================ */

/* Fraunces — roman (latin) */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-standard-normal.woff2?v=20260912a') 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;
}
/* Fraunces — roman (latin-ext) */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-ext-standard-normal.woff2?v=20260912a') 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;
}
/* Fraunces — italique (latin) */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-standard-italic.woff2?v=20260912a') 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;
}
/* Fraunces — italique (latin-ext) */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 300 600;
  font-display: swap;
  src: url('/assets/fonts/fraunces-latin-ext-standard-italic.woff2?v=20260912a') 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;
}
/* Manrope — (latin). Plage 200..800 : couvre les poids 300-600 utilisés
   + 700 (auparavant approximé par Google, désormais rendu). */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/assets/fonts/manrope-latin-wght-normal.woff2?v=20260912a') 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;
}
/* Manrope — (latin-ext) */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('/assets/fonts/manrope-latin-ext-wght-normal.woff2?v=20260912a') 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;
}
