/*!
 * Fontes : SIL Open Font License, Version 1.1 (https://openfontlicense.org)
 * Cormorant Garamond — Copyright 2015 the Cormorant Project Authors (github.com/CatharsisFonts/Cormorant) — SIL Open Font License 1.1 — fonts/terrae/CormorantGaramond-OFL.txt
 * Tenor Sans — Copyright (c) 2011, Denis Masharov <denis.masharov@gmail.com>, with Reserved Font Name "Tenor", "Tenor Sans". — SIL Open Font License 1.1 — fonts/terrae/TenorSans-OFL.txt
 */

/* ============ 1. Fontes de la maison (OFL) ============ */
@font-face {
  font-family: "TC Cormorant Garamond";
  src: url("fonts/terrae/CormorantGaramond-roman-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  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;
  ascent-override: 92.40%;
  descent-override: 28.70%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "TC Cormorant Garamond";
  src: url("fonts/terrae/CormorantGaramond-roman-latin-ext.woff2") format("woff2");
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  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;
  ascent-override: 92.40%;
  descent-override: 28.70%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "TC Cormorant Garamond";
  src: url("fonts/terrae/CormorantGaramond-italic-latin.woff2") format("woff2");
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  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;
  ascent-override: 92.40%;
  descent-override: 28.70%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "TC Cormorant Garamond";
  src: url("fonts/terrae/CormorantGaramond-italic-latin-ext.woff2") format("woff2");
  font-style: italic;
  font-weight: 300 700;
  font-display: swap;
  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;
  ascent-override: 92.40%;
  descent-override: 28.70%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "TC Tenor Sans";
  src: url("fonts/terrae/TenorSans-latin.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  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;
  ascent-override: 92.00%;
  descent-override: 25.00%;
  line-gap-override: 0%;
}

/* ============ 2. Espaces typographiques absentes des sous-ensembles latin (U+2009, U+200A, U+202F) ============
   Mesuré : aucune des fontes retenues ne contient U+202F (espace fine insécable FR). Cette face locale ne sert QUE
   ces trois points de code ; elle évite qu'une police système arbitraire les dessine. */
@font-face {
  font-family: "TC Espaces";
  src: local("Times New Roman"), local("TimesNewRomanPSMT"), local("Liberation Serif"), local("Roboto"), local("Noto Serif");
  unicode-range: U+2009, U+200A, U+202F;
  font-display: block;
}

/* ============ 3. Replis métriques (anti-CLS) — size-adjust mesuré sur les textes réels, overrides = métriques de la fonte web ============ */
@font-face { /* macOS, iOS, Windows ; Linux via Liberation Serif (métriquement compatible) — rôles : display-1, display-2, titre-3, titre-4, menu-salon, texte, chiffre-donnee */
  font-family: "TC Repli display";
  src: local("Times New Roman"), local("TimesNewRomanPSMT"), local("Liberation Serif"), local("LiberationSerif");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 96.79%;
  ascent-override: 95.46%;
  descent-override: 29.65%;
  line-gap-override: 0%;
}
@font-face { /* Android — rôles : display-1, display-2, titre-3, titre-4, menu-salon, texte */
  font-family: "TC Repli display A";
  src: local("Noto Serif"), local("NotoSerif");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 82.19%;
  ascent-override: 112.42%;
  descent-override: 34.92%;
  line-gap-override: 0%;
}
@font-face { /* macOS, iOS, Windows ; Linux — rôles : chapo, citation, annotation */
  font-family: "TC Repli display italique";
  src: local("Times New Roman Italic"), local("TimesNewRomanPS-ItalicMT"), local("Liberation Serif Italic"), local("LiberationSerif-Italic");
  font-style: italic;
  font-weight: 100 900;
  size-adjust: 87.30%;
  ascent-override: 105.84%;
  descent-override: 32.88%;
  line-gap-override: 0%;
}
@font-face { /* Android — rôles : chapo, citation, annotation */
  font-family: "TC Repli display italique A";
  src: local("Noto Serif Italic"), local("NotoSerif-Italic");
  font-style: italic;
  font-weight: 100 900;
  size-adjust: 76.26%;
  ascent-override: 121.16%;
  descent-override: 37.63%;
  line-gap-override: 0%;
}
@font-face { /* macOS, iOS, Windows ; Linux via Liberation Serif (métriquement compatible) — rôles : chiffre-display */
  font-family: "TC Repli display 2";
  src: local("Times New Roman"), local("TimesNewRomanPSMT"), local("Liberation Serif"), local("LiberationSerif");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 92.49%;
  ascent-override: 99.9%;
  descent-override: 31.03%;
  line-gap-override: 0%;
}
@font-face { /* Android — rôles : chiffre-display */
  font-family: "TC Repli display A 2";
  src: local("Noto Serif"), local("NotoSerif");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 83.41%;
  ascent-override: 110.78%;
  descent-override: 34.41%;
  line-gap-override: 0%;
}
@font-face { /* macOS, iOS, Windows ; Linux via Liberation Sans — rôles : texte-petit, texte-legal, legende, champ, message */
  font-family: "TC Repli interface";
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("LiberationSans");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 109.35%;
  ascent-override: 84.13%;
  descent-override: 22.86%;
  line-gap-override: 0%;
}
@font-face { /* Android — rôles : texte-petit, texte-legal, legende, champ, message */
  font-family: "TC Repli interface A";
  src: local("Roboto"), local("Roboto-Regular");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 110.10%;
  ascent-override: 83.56%;
  descent-override: 22.71%;
  line-gap-override: 0%;
}
@font-face { /* macOS, iOS, Windows ; Linux via Liberation Sans — rôles : surtitre, nav, bouton, label */
  font-family: "TC Repli interface 2";
  src: local("Arial"), local("ArialMT"), local("Liberation Sans"), local("LiberationSans");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 107.37%;
  ascent-override: 85.69%;
  descent-override: 23.28%;
  line-gap-override: 0%;
}
@font-face { /* Android — rôles : surtitre, nav, bouton, label */
  font-family: "TC Repli interface A 2";
  src: local("Roboto"), local("Roboto-Regular");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 116.37%;
  ascent-override: 79.06%;
  descent-override: 21.48%;
  line-gap-override: 0%;
}
@font-face { /* Android — rôles : chiffre-donnee */
  font-family: "TC Repli display A 3";
  src: local("Noto Serif"), local("NotoSerif");
  font-style: normal;
  font-weight: 100 900;
  size-adjust: 87.71%;
  ascent-override: 105.35%;
  descent-override: 32.72%;
  line-gap-override: 0%;
}

/* ============ 4. Jetons ============ */
:root {
  --tc-famille-display: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A", serif;
  --tc-famille-interface: "TC Tenor Sans", "TC Espaces", "TC Repli interface", "TC Repli interface A", sans-serif;
  --tc-c-papier: #EFEBE3; /* papier minéral */
  --tc-c-encre: #2A1620; /* aubergine profonde */
  --tc-c-encre-2: #55453A; /* terre ombrée */
  --tc-c-accent: #1F2C23; /* vert très sombre */
  --tc-c-sombre: #1E0F17; /* vin profond */
  --tc-c-sur-sombre: #EDE6DA; /* papier minéral */
  --tc-c-sur-sombre-2: #BFB1A3; /* craie de Champagne */
  --tc-c-filet: #8A7A6C; /* terre ombrée claire (filets seulement) */
  --tc-mesure-texte: 66ch;
  --tc-mesure-chapo: 34em;
  --tc-mesure-titre: 18em;
  --tc-taille-min: 0.75rem; /* plancher absolu : 12 px */
  /* display-1 — h1 d’ouverture des terres — 320:40px · 390:46px · 768:66px · 1440:112px · 1920:128px */
  --tc-ff-display-1: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A", serif;
  --tc-fs-display-1: clamp(2.5rem, 0.7857rem + 8.5714vw, 2.875rem);
  --tc-fw-display-1: 500;
  --tc-fst-display-1: normal;
  --tc-lh-display-1: 1.02;
  --tc-ls-display-1: -0.004em;
  --tc-tt-display-1: none;
  --tc-ffs-display-1: normal;
  /* display-2 — h2 de section — 320:32px · 390:36px · 768:48px · 1440:72px · 1920:80px */
  --tc-ff-display-2: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A", serif;
  --tc-fs-display-2: clamp(2rem, 0.8571rem + 5.7143vw, 2.25rem);
  --tc-fw-display-2: 500;
  --tc-fst-display-2: normal;
  --tc-lh-display-2: 1.06;
  --tc-ls-display-2: -0.002em;
  --tc-tt-display-2: none;
  --tc-ffs-display-2: normal;
  /* titre-3 — h3, noms de terroirs — 320:26px · 390:28px · 768:32px · 1440:40px · 1920:44px */
  --tc-ff-titre-3: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A", serif;
  --tc-fs-titre-3: clamp(1.625rem, 1.0536rem + 2.8571vw, 1.75rem);
  --tc-fw-titre-3: 600;
  --tc-fst-titre-3: normal;
  --tc-lh-titre-3: 1.14;
  --tc-ls-titre-3: 0;
  --tc-tt-titre-3: none;
  --tc-ffs-titre-3: normal;
  /* titre-4 — h4–h6 — 320:21px · 390:22px · 768:23px · 1440:27px · 1920:28px */
  --tc-ff-titre-4: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A", serif;
  --tc-fs-titre-4: clamp(1.3125rem, 1.0268rem + 1.4286vw, 1.375rem);
  --tc-fw-titre-4: 600;
  --tc-fst-titre-4: normal;
  --tc-lh-titre-4: 1.22;
  --tc-ls-titre-4: 0;
  --tc-tt-titre-4: none;
  --tc-ffs-titre-4: normal;
  /* chapo — chapô, accroche — 320:22px · 390:23px · 768:25px · 1440:30px · 1920:32px */
  --tc-ff-chapo: "TC Cormorant Garamond", "TC Espaces", "TC Repli display italique", "TC Repli display italique A", serif;
  --tc-fs-chapo: clamp(1.375rem, 1.0893rem + 1.4286vw, 1.4375rem);
  --tc-fw-chapo: 500;
  --tc-fst-chapo: italic;
  --tc-lh-chapo: 1.38;
  --tc-ls-chapo: 0;
  --tc-tt-chapo: none;
  --tc-ffs-chapo: normal;
  /* citation — citation, exergue — 320:26px · 390:28px · 768:34px · 1440:46px · 1920:52px */
  --tc-ff-citation: "TC Cormorant Garamond", "TC Espaces", "TC Repli display italique", "TC Repli display italique A", serif;
  --tc-fs-citation: clamp(1.625rem, 1.0536rem + 2.8571vw, 1.75rem);
  --tc-fw-citation: 500;
  --tc-fst-citation: italic;
  --tc-lh-citation: 1.18;
  --tc-ls-citation: 0;
  --tc-tt-citation: none;
  --tc-ffs-citation: normal;
  /* chiffre-display — hectares, altitudes, millésimes de fondation — 320:46px · 390:54px · 768:72px · 1440:96px · 1920:112px */
  --tc-ff-chiffre-display: "TC Cormorant Garamond", "TC Espaces", "TC Repli display 2", "TC Repli display A 2", serif;
  --tc-fs-chiffre-display: clamp(2.875rem, 0.5893rem + 11.4286vw, 3.375rem);
  --tc-fw-chiffre-display: 500;
  --tc-fst-chiffre-display: normal;
  --tc-lh-chiffre-display: 1;
  --tc-ls-chiffre-display: -0.01em;
  --tc-tt-chiffre-display: none;
  --tc-ffs-chiffre-display: "lnum" 1;
  /* menu-salon — menu plein écran — 320:34px · 390:38px · 768:50px · 1440:64px · 1920:72px */
  --tc-ff-menu-salon: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A", serif;
  --tc-fs-menu-salon: clamp(2.125rem, 0.9821rem + 5.7143vw, 2.375rem);
  --tc-fw-menu-salon: 500;
  --tc-fst-menu-salon: normal;
  --tc-lh-menu-salon: 1.06;
  --tc-ls-menu-salon: 0;
  --tc-tt-menu-salon: none;
  --tc-ffs-menu-salon: normal;
  /* texte — récit des terres (paragraphes) — 320:19px · 390:20px · 768:20px · 1440:21px · 1920:22px */
  --tc-ff-texte: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A", serif;
  --tc-fs-texte: clamp(1.1875rem, 0.9018rem + 1.4286vw, 1.25rem);
  --tc-fw-texte: 500;
  --tc-fst-texte: normal;
  --tc-lh-texte: 1.55;
  --tc-ls-texte: 0.003em;
  --tc-tt-texte: none;
  --tc-ffs-texte: normal;
  /* texte-petit — notes, footer, consentement — 320:15px · 390:15px · 768:15px · 1440:15.5px · 1920:16px */
  --tc-ff-texte-petit: "TC Tenor Sans", "TC Espaces", "TC Repli interface", "TC Repli interface A", sans-serif;
  --tc-fs-texte-petit: 0.9375rem;
  --tc-fw-texte-petit: 400;
  --tc-fst-texte-petit: normal;
  --tc-lh-texte-petit: 1.65;
  --tc-ls-texte-petit: 0.01em;
  --tc-tt-texte-petit: none;
  --tc-ffs-texte-petit: normal;
  /* texte-legal — confidentialité, mentions — 320:16px · 390:16px · 768:16px · 1440:16px · 1920:16.5px */
  --tc-ff-texte-legal: "TC Tenor Sans", "TC Espaces", "TC Repli interface", "TC Repli interface A", sans-serif;
  --tc-fs-texte-legal: 1rem;
  --tc-fw-texte-legal: 400;
  --tc-fst-texte-legal: normal;
  --tc-lh-texte-legal: 1.72;
  --tc-ls-texte-legal: 0.01em;
  --tc-tt-texte-legal: none;
  --tc-ffs-texte-legal: normal;
  /* legende — légendes, crédits — 320:13px · 390:13px · 768:13.5px · 1440:14px · 1920:14px */
  --tc-ff-legende: "TC Tenor Sans", "TC Espaces", "TC Repli interface", "TC Repli interface A", sans-serif;
  --tc-fs-legende: 0.8125rem;
  --tc-fw-legende: 400;
  --tc-fst-legende: normal;
  --tc-lh-legende: 1.5;
  --tc-ls-legende: 0.02em;
  --tc-tt-legende: none;
  --tc-ffs-legende: normal;
  /* surtitre — surtitres, régions (CHAMPAGNE · ITALIA) — 320:12px · 390:12px · 768:12.5px · 1440:13px · 1920:13.5px */
  --tc-ff-surtitre: "TC Tenor Sans", "TC Espaces", "TC Repli interface 2", "TC Repli interface A 2", sans-serif;
  --tc-fs-surtitre: 0.75rem;
  --tc-fw-surtitre: 400;
  --tc-fst-surtitre: normal;
  --tc-lh-surtitre: 1.3;
  --tc-ls-surtitre: 0.2em;
  --tc-tt-surtitre: uppercase;
  --tc-ffs-surtitre: normal;
  /* nav — navigation, langues — 320:13px · 390:13px · 768:13.5px · 1440:14px · 1920:14px */
  --tc-ff-nav: "TC Tenor Sans", "TC Espaces", "TC Repli interface 2", "TC Repli interface A 2", sans-serif;
  --tc-fs-nav: 0.8125rem;
  --tc-fw-nav: 400;
  --tc-fst-nav: normal;
  --tc-lh-nav: 1.2;
  --tc-ls-nav: 0.14em;
  --tc-tt-nav: uppercase;
  --tc-ffs-nav: normal;
  /* bouton — CTA, boutons, envoi — 320:13px · 390:13px · 768:13.5px · 1440:14px · 1920:14px */
  --tc-ff-bouton: "TC Tenor Sans", "TC Espaces", "TC Repli interface 2", "TC Repli interface A 2", sans-serif;
  --tc-fs-bouton: 0.8125rem;
  --tc-fw-bouton: 400;
  --tc-fst-bouton: normal;
  --tc-lh-bouton: 1.1;
  --tc-ls-bouton: 0.16em;
  --tc-tt-bouton: uppercase;
  --tc-ffs-bouton: normal;
  /* champ — champs, placeholder, select — 320:17px · 390:17px · 768:17px · 1440:17px · 1920:17px */
  --tc-ff-champ: "TC Tenor Sans", "TC Espaces", "TC Repli interface", "TC Repli interface A", sans-serif;
  --tc-fs-champ: 1.0625rem;
  --tc-fw-champ: 400;
  --tc-fst-champ: normal;
  --tc-lh-champ: 1.4;
  --tc-ls-champ: 0.01em;
  --tc-tt-champ: none;
  --tc-ffs-champ: normal;
  /* label — labels de formulaire — 320:12px · 390:12px · 768:12.5px · 1440:13px · 1920:13px */
  --tc-ff-label: "TC Tenor Sans", "TC Espaces", "TC Repli interface 2", "TC Repli interface A 2", sans-serif;
  --tc-fs-label: 0.75rem;
  --tc-fw-label: 400;
  --tc-fst-label: normal;
  --tc-lh-label: 1.3;
  --tc-ls-label: 0.14em;
  --tc-tt-label: uppercase;
  --tc-ffs-label: normal;
  /* message — erreurs, succès, aides, assistant — 320:15px · 390:15px · 768:15px · 1440:15.5px · 1920:16px */
  --tc-ff-message: "TC Tenor Sans", "TC Espaces", "TC Repli interface", "TC Repli interface A", sans-serif;
  --tc-fs-message: 0.9375rem;
  --tc-fw-message: 400;
  --tc-fst-message: normal;
  --tc-lh-message: 1.55;
  --tc-ls-message: 0.01em;
  --tc-tt-message: none;
  --tc-ffs-message: normal;
  /* chiffre-donnee — données de terroir, tableaux — 320:17px · 390:17px · 768:18px · 1440:18px · 1920:19px */
  --tc-ff-chiffre-donnee: "TC Cormorant Garamond", "TC Espaces", "TC Repli display", "TC Repli display A 3", serif;
  --tc-fs-chiffre-donnee: 1.0625rem;
  --tc-fw-chiffre-donnee: 600;
  --tc-fst-chiffre-donnee: normal;
  --tc-lh-chiffre-donnee: 1.35;
  --tc-ls-chiffre-donnee: 0;
  --tc-tt-chiffre-donnee: none;
  --tc-ffs-chiffre-donnee: "lnum" 1, "tnum" 1;
  /* annotation — toponymes et annotations de cartes (italique cartographique) — 320:15px · 390:15px · 768:16px · 1440:17px · 1920:18px */
  --tc-ff-annotation: "TC Cormorant Garamond", "TC Espaces", "TC Repli display italique", "TC Repli display italique A", serif;
  --tc-fs-annotation: 0.9375rem;
  --tc-fw-annotation: 500;
  --tc-fst-annotation: italic;
  --tc-lh-annotation: 1.35;
  --tc-ls-annotation: 0.01em;
  --tc-tt-annotation: none;
  --tc-ffs-annotation: normal;
}
@media (min-width: 390px) { /* tranche 390→768 px */
  :root {
    --tc-fs-display-1: clamp(2.875rem, 1.5853rem + 5.291vw, 4.125rem);
    --tc-fs-display-2: clamp(2.25rem, 1.4762rem + 3.1746vw, 3rem);
    --tc-fs-titre-3: clamp(1.75rem, 1.4921rem + 1.0582vw, 2rem);
    --tc-fs-titre-4: clamp(1.375rem, 1.3105rem + 0.2646vw, 1.4375rem);
    --tc-fs-chapo: clamp(1.4375rem, 1.3085rem + 0.5291vw, 1.5625rem);
    --tc-fs-citation: clamp(1.75rem, 1.3631rem + 1.5873vw, 2.125rem);
    --tc-fs-chiffre-display: clamp(3.375rem, 2.2143rem + 4.7619vw, 4.5rem);
    --tc-fs-menu-salon: clamp(2.375rem, 1.6012rem + 3.1746vw, 3.125rem);
    --tc-fs-texte: 1.25rem;
    --tc-fs-texte-petit: 0.9375rem;
    --tc-fs-texte-legal: 1rem;
    --tc-fs-legende: clamp(0.8125rem, 0.7803rem + 0.1323vw, 0.8438rem);
    --tc-fs-surtitre: clamp(0.75rem, 0.7178rem + 0.1323vw, 0.7813rem);
    --tc-fs-nav: clamp(0.8125rem, 0.7803rem + 0.1323vw, 0.8438rem);
    --tc-fs-bouton: clamp(0.8125rem, 0.7803rem + 0.1323vw, 0.8438rem);
    --tc-fs-champ: 1.0625rem;
    --tc-fs-label: clamp(0.75rem, 0.7178rem + 0.1323vw, 0.7813rem);
    --tc-fs-message: 0.9375rem;
    --tc-fs-chiffre-donnee: clamp(1.0625rem, 0.998rem + 0.2646vw, 1.125rem);
    --tc-fs-annotation: clamp(0.9375rem, 0.873rem + 0.2646vw, 1rem);
  }
}
@media (min-width: 768px) { /* tranche 768→1440 px */
  :root {
    --tc-fs-display-1: clamp(4.125rem, 0.8393rem + 6.8452vw, 7rem);
    --tc-lh-display-1: 0.95;
    --tc-ls-display-1: -0.016em;
    --tc-fs-display-2: clamp(3rem, 1.2857rem + 3.5714vw, 4.5rem);
    --tc-lh-display-2: 1;
    --tc-ls-display-2: -0.01em;
    --tc-fs-titre-3: clamp(2rem, 1.4286rem + 1.1905vw, 2.5rem);
    --tc-lh-titre-3: 1.12;
    --tc-ls-titre-3: -0.004em;
    --tc-fs-titre-4: clamp(1.4375rem, 1.1518rem + 0.5952vw, 1.6875rem);
    --tc-lh-titre-4: 1.2;
    --tc-ls-titre-4: 0;
    --tc-fs-chapo: clamp(1.5625rem, 1.2054rem + 0.744vw, 1.875rem);
    --tc-lh-chapo: 1.36;
    --tc-ls-chapo: 0;
    --tc-fs-citation: clamp(2.125rem, 1.2679rem + 1.7857vw, 2.875rem);
    --tc-lh-citation: 1.14;
    --tc-ls-citation: -0.006em;
    --tc-fs-chiffre-display: clamp(4.5rem, 2.7857rem + 3.5714vw, 6rem);
    --tc-lh-chiffre-display: 0.96;
    --tc-ls-chiffre-display: -0.016em;
    --tc-fs-menu-salon: clamp(3.125rem, 2.125rem + 2.0833vw, 4rem);
    --tc-lh-menu-salon: 1.04;
    --tc-ls-menu-salon: -0.01em;
    --tc-fs-texte: clamp(1.25rem, 1.1786rem + 0.1488vw, 1.3125rem);
    --tc-lh-texte: 1.58;
    --tc-ls-texte: 0.003em;
    --tc-fs-texte-petit: clamp(0.9375rem, 0.9018rem + 0.0744vw, 0.9688rem);
    --tc-lh-texte-petit: 1.65;
    --tc-ls-texte-petit: 0.01em;
    --tc-fs-texte-legal: 1rem;
    --tc-lh-texte-legal: 1.74;
    --tc-ls-texte-legal: 0.01em;
    --tc-fs-legende: clamp(0.8438rem, 0.808rem + 0.0744vw, 0.875rem);
    --tc-lh-legende: 1.5;
    --tc-ls-legende: 0.02em;
    --tc-fs-surtitre: clamp(0.7813rem, 0.7455rem + 0.0744vw, 0.8125rem);
    --tc-lh-surtitre: 1.3;
    --tc-ls-surtitre: 0.22em;
    --tc-fs-nav: clamp(0.8438rem, 0.808rem + 0.0744vw, 0.875rem);
    --tc-lh-nav: 1.2;
    --tc-ls-nav: 0.14em;
    --tc-fs-bouton: clamp(0.8438rem, 0.808rem + 0.0744vw, 0.875rem);
    --tc-lh-bouton: 1.1;
    --tc-ls-bouton: 0.16em;
    --tc-fs-champ: 1.0625rem;
    --tc-lh-champ: 1.4;
    --tc-ls-champ: 0.01em;
    --tc-fs-label: clamp(0.7813rem, 0.7455rem + 0.0744vw, 0.8125rem);
    --tc-lh-label: 1.3;
    --tc-ls-label: 0.14em;
    --tc-fs-message: clamp(0.9375rem, 0.9018rem + 0.0744vw, 0.9688rem);
    --tc-lh-message: 1.55;
    --tc-ls-message: 0.01em;
    --tc-fs-chiffre-donnee: 1.125rem;
    --tc-lh-chiffre-donnee: 1.35;
    --tc-ls-chiffre-donnee: 0;
    --tc-fs-annotation: clamp(1rem, 0.9286rem + 0.1488vw, 1.0625rem);
    --tc-lh-annotation: 1.35;
    --tc-ls-annotation: 0.01em;
  }
}
@media (min-width: 1440px) { /* tranche 1440→1920 px */
  :root {
    --tc-fs-display-1: clamp(7rem, 4rem + 3.3333vw, 8rem);
    --tc-fs-display-2: clamp(4.5rem, 3rem + 1.6667vw, 5rem);
    --tc-fs-titre-3: clamp(2.5rem, 1.75rem + 0.8333vw, 2.75rem);
    --tc-fs-titre-4: clamp(1.6875rem, 1.5rem + 0.2083vw, 1.75rem);
    --tc-fs-chapo: clamp(1.875rem, 1.5rem + 0.4167vw, 2rem);
    --tc-fs-citation: clamp(2.875rem, 1.75rem + 1.25vw, 3.25rem);
    --tc-fs-chiffre-display: clamp(6rem, 3rem + 3.3333vw, 7rem);
    --tc-fs-menu-salon: clamp(4rem, 2.5rem + 1.6667vw, 4.5rem);
    --tc-fs-texte: clamp(1.3125rem, 1.125rem + 0.2083vw, 1.375rem);
    --tc-fs-texte-petit: clamp(0.9688rem, 0.875rem + 0.1042vw, 1rem);
    --tc-fs-texte-legal: clamp(1rem, 0.9063rem + 0.1042vw, 1.0313rem);
    --tc-fs-legende: 0.875rem;
    --tc-fs-surtitre: clamp(0.8125rem, 0.7188rem + 0.1042vw, 0.8438rem);
    --tc-fs-nav: 0.875rem;
    --tc-fs-bouton: 0.875rem;
    --tc-fs-champ: 1.0625rem;
    --tc-fs-label: 0.8125rem;
    --tc-fs-message: clamp(0.9688rem, 0.875rem + 0.1042vw, 1rem);
    --tc-fs-chiffre-donnee: clamp(1.125rem, 0.9375rem + 0.2083vw, 1.1875rem);
    --tc-fs-annotation: clamp(1.0625rem, 0.875rem + 0.2083vw, 1.125rem);
  }
}
@media (min-width: 1920px) { /* plafond ≥ 1920 px */
  :root {
    --tc-fs-display-1: 8rem;
    --tc-fs-display-2: 5rem;
    --tc-fs-titre-3: 2.75rem;
    --tc-fs-titre-4: 1.75rem;
    --tc-fs-chapo: 2rem;
    --tc-fs-citation: 3.25rem;
    --tc-fs-chiffre-display: 7rem;
    --tc-fs-menu-salon: 4.5rem;
    --tc-fs-texte: 1.375rem;
    --tc-fs-texte-petit: 1rem;
    --tc-fs-texte-legal: 1.0313rem;
    --tc-fs-legende: 0.875rem;
    --tc-fs-surtitre: 0.8438rem;
    --tc-fs-nav: 0.875rem;
    --tc-fs-bouton: 0.875rem;
    --tc-fs-champ: 1.0625rem;
    --tc-fs-label: 0.8125rem;
    --tc-fs-message: 1rem;
    --tc-fs-chiffre-donnee: 1.1875rem;
    --tc-fs-annotation: 1.125rem;
  }
}

/* ============ 5. Couche de base : TOUS les contextes possédés reçoivent un jeton ============ */
@layer tc-typo-base, tc-typo-utilitaires;
@layer tc-typo-base {
  html { font-family: var(--tc-ff-texte); font-size: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; font-synthesis: none; font-optical-sizing: auto; font-kerning: normal; font-variant-ligatures: common-ligatures; text-rendering: optimizeLegibility; }
  body { font-family: var(--tc-ff-texte); font-size: var(--tc-fs-texte); font-weight: var(--tc-fw-texte); font-style: var(--tc-fst-texte); line-height: var(--tc-lh-texte); letter-spacing: var(--tc-ls-texte); text-transform: var(--tc-tt-texte); font-feature-settings: var(--tc-ffs-texte); color: var(--tc-c-encre); }
  :lang(fr) { quotes: "«\202F" "\202F»" "“" "”"; }
  :lang(it) { quotes: "«" "»" "“" "”"; }
  :lang(en) { quotes: "“" "”" "‘" "’"; }
  h1 { font-family: var(--tc-ff-display-1); font-size: var(--tc-fs-display-1); font-weight: var(--tc-fw-display-1); font-style: var(--tc-fst-display-1); line-height: var(--tc-lh-display-1); letter-spacing: var(--tc-ls-display-1); text-transform: var(--tc-tt-display-1); font-feature-settings: var(--tc-ffs-display-1); text-wrap: balance; hyphens: manual; overflow-wrap: break-word; }
  h2 { font-family: var(--tc-ff-display-2); font-size: var(--tc-fs-display-2); font-weight: var(--tc-fw-display-2); font-style: var(--tc-fst-display-2); line-height: var(--tc-lh-display-2); letter-spacing: var(--tc-ls-display-2); text-transform: var(--tc-tt-display-2); font-feature-settings: var(--tc-ffs-display-2); text-wrap: balance; hyphens: manual; overflow-wrap: break-word; }
  h3 { font-family: var(--tc-ff-titre-3); font-size: var(--tc-fs-titre-3); font-weight: var(--tc-fw-titre-3); font-style: var(--tc-fst-titre-3); line-height: var(--tc-lh-titre-3); letter-spacing: var(--tc-ls-titre-3); text-transform: var(--tc-tt-titre-3); font-feature-settings: var(--tc-ffs-titre-3); text-wrap: balance; overflow-wrap: break-word; }
  h4, h5, h6 { font-family: var(--tc-ff-titre-4); font-size: var(--tc-fs-titre-4); font-weight: var(--tc-fw-titre-4); font-style: var(--tc-fst-titre-4); line-height: var(--tc-lh-titre-4); letter-spacing: var(--tc-ls-titre-4); text-transform: var(--tc-tt-titre-4); font-feature-settings: var(--tc-ffs-titre-4); text-wrap: balance; overflow-wrap: break-word; }
  p, li, dd, dt { text-wrap: pretty; overflow-wrap: break-word; }
  :is(p, li, dd):is(:lang(fr), :lang(it), :lang(en)) { hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; }
  small, .tc-note { font-family: var(--tc-ff-texte-petit); font-size: var(--tc-fs-texte-petit); font-weight: var(--tc-fw-texte-petit); font-style: var(--tc-fst-texte-petit); line-height: var(--tc-lh-texte-petit); letter-spacing: var(--tc-ls-texte-petit); text-transform: var(--tc-tt-texte-petit); font-feature-settings: var(--tc-ffs-texte-petit); }
  b, strong { font-weight: 650; }
  :is(nav, button, label, figcaption, small, [role="button"]) em { font-family: var(--tc-ff-chapo); font-style: italic; font-size: 1.08em; letter-spacing: 0; }
  blockquote, q { font-family: var(--tc-ff-citation); font-size: var(--tc-fs-citation); font-weight: var(--tc-fw-citation); font-style: var(--tc-fst-citation); line-height: var(--tc-lh-citation); letter-spacing: var(--tc-ls-citation); text-transform: var(--tc-tt-citation); font-feature-settings: var(--tc-ffs-citation); }
  blockquote p { max-width: none; }
  figcaption, caption, .tc-credit { font-family: var(--tc-ff-legende); font-size: var(--tc-fs-legende); font-weight: var(--tc-fw-legende); font-style: var(--tc-fst-legende); line-height: var(--tc-lh-legende); letter-spacing: var(--tc-ls-legende); text-transform: var(--tc-tt-legende); font-feature-settings: var(--tc-ffs-legende); }
  :is(nav, [role="navigation"]) :is(a, button) { font-family: var(--tc-ff-nav); font-size: var(--tc-fs-nav); font-weight: var(--tc-fw-nav); font-style: var(--tc-fst-nav); line-height: var(--tc-lh-nav); letter-spacing: var(--tc-ls-nav); text-transform: var(--tc-tt-nav); font-feature-settings: var(--tc-ffs-nav); text-decoration: none; }
  a { text-decoration-thickness: 1px; text-underline-offset: 0.2em; text-decoration-skip-ink: auto; }
  button, [type="button"], [type="submit"], [type="reset"], [role="button"] { font-family: var(--tc-ff-bouton); font-size: var(--tc-fs-bouton); font-weight: var(--tc-fw-bouton); font-style: var(--tc-fst-bouton); line-height: var(--tc-lh-bouton); letter-spacing: var(--tc-ls-bouton); text-transform: var(--tc-tt-bouton); font-feature-settings: var(--tc-ffs-bouton); }
  label, legend { font-family: var(--tc-ff-label); font-size: var(--tc-fs-label); font-weight: var(--tc-fw-label); font-style: var(--tc-fst-label); line-height: var(--tc-lh-label); letter-spacing: var(--tc-ls-label); text-transform: var(--tc-tt-label); font-feature-settings: var(--tc-ffs-label); }
  input, select, textarea, option { font-family: var(--tc-ff-champ); font-size: var(--tc-fs-champ); font-weight: var(--tc-fw-champ); font-style: var(--tc-fst-champ); line-height: var(--tc-lh-champ); letter-spacing: var(--tc-ls-champ); text-transform: var(--tc-tt-champ); font-feature-settings: var(--tc-ffs-champ); color: var(--tc-c-encre); }
  ::placeholder { font: inherit; letter-spacing: inherit; color: var(--tc-c-encre-2); opacity: 1; }
  [role="alert"], .tc-erreur, .tc-succes, [role="status"] { font-family: var(--tc-ff-message); font-size: var(--tc-fs-message); font-weight: var(--tc-fw-message); font-style: var(--tc-fst-message); line-height: var(--tc-lh-message); letter-spacing: var(--tc-ls-message); text-transform: var(--tc-tt-message); font-feature-settings: var(--tc-ffs-message); }
  table { font-variant-numeric: tabular-nums lining-nums; }
  th { font-family: var(--tc-ff-label); font-size: var(--tc-fs-label); font-weight: var(--tc-fw-label); font-style: var(--tc-fst-label); line-height: var(--tc-lh-label); letter-spacing: var(--tc-ls-label); text-transform: var(--tc-tt-label); font-feature-settings: var(--tc-ffs-label); text-align: start; }
  td { font-family: var(--tc-ff-texte-petit); font-size: var(--tc-fs-texte-petit); font-weight: var(--tc-fw-texte-petit); font-style: var(--tc-fst-texte-petit); line-height: var(--tc-lh-texte-petit); letter-spacing: var(--tc-ls-texte-petit); text-transform: var(--tc-tt-texte-petit); font-feature-settings: var(--tc-ffs-texte-petit); font-variant-numeric: tabular-nums lining-nums; }
  dialog, [role="dialog"] { font-family: var(--tc-ff-texte); font-size: var(--tc-fs-texte); font-weight: var(--tc-fw-texte); font-style: var(--tc-fst-texte); line-height: var(--tc-lh-texte); letter-spacing: var(--tc-ls-texte); text-transform: var(--tc-tt-texte); font-feature-settings: var(--tc-ffs-texte); }
  dialog :is(h1, h2), [role="dialog"] :is(h1, h2) { font-family: var(--tc-ff-titre-3); font-size: var(--tc-fs-titre-3); font-weight: var(--tc-fw-titre-3); font-style: var(--tc-fst-titre-3); line-height: var(--tc-lh-titre-3); letter-spacing: var(--tc-ls-titre-3); text-transform: var(--tc-tt-titre-3); font-feature-settings: var(--tc-ffs-titre-3); }
  footer { font-family: var(--tc-ff-texte-petit); font-size: var(--tc-fs-texte-petit); font-weight: var(--tc-fw-texte-petit); font-style: var(--tc-fst-texte-petit); line-height: var(--tc-lh-texte-petit); letter-spacing: var(--tc-ls-texte-petit); text-transform: var(--tc-tt-texte-petit); font-feature-settings: var(--tc-ffs-texte-petit); }
  footer :is(h2, h3, h4) { font-family: var(--tc-ff-surtitre); font-size: var(--tc-fs-surtitre); font-weight: var(--tc-fw-surtitre); font-style: var(--tc-fst-surtitre); line-height: var(--tc-lh-surtitre); letter-spacing: var(--tc-ls-surtitre); text-transform: var(--tc-tt-surtitre); font-feature-settings: var(--tc-ffs-surtitre); }
  code, kbd, samp, time[data-tc-technique] { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 0.92em; }
  abbr[title] { text-decoration: underline dotted 1px; text-underline-offset: 0.18em; }
  sup, sub { font-size: 0.68em; line-height: 0; }
  ::selection { background: var(--tc-c-encre); color: var(--tc-c-papier); }
  :focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
  :disabled, [aria-disabled="true"] { opacity: 1; color: var(--tc-c-encre-2); cursor: not-allowed; }
  video::cue { font-family: var(--tc-ff-texte-petit); font-size: 1.05em; line-height: 1.35; color: #fff; background: rgb(0 0 0 / 0.72); }
}

/* ============ 6. Utilitaires (opt-in par classe) ============ */
@layer tc-typo-utilitaires {
  .tc-t-display-1 { font-family: var(--tc-ff-display-1); font-size: var(--tc-fs-display-1); font-weight: var(--tc-fw-display-1); font-style: var(--tc-fst-display-1); line-height: var(--tc-lh-display-1); letter-spacing: var(--tc-ls-display-1); text-transform: var(--tc-tt-display-1); font-feature-settings: var(--tc-ffs-display-1); text-wrap: balance; hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-display-2 { font-family: var(--tc-ff-display-2); font-size: var(--tc-fs-display-2); font-weight: var(--tc-fw-display-2); font-style: var(--tc-fst-display-2); line-height: var(--tc-lh-display-2); letter-spacing: var(--tc-ls-display-2); text-transform: var(--tc-tt-display-2); font-feature-settings: var(--tc-ffs-display-2); text-wrap: balance; hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-titre-3 { font-family: var(--tc-ff-titre-3); font-size: var(--tc-fs-titre-3); font-weight: var(--tc-fw-titre-3); font-style: var(--tc-fst-titre-3); line-height: var(--tc-lh-titre-3); letter-spacing: var(--tc-ls-titre-3); text-transform: var(--tc-tt-titre-3); font-feature-settings: var(--tc-ffs-titre-3); text-wrap: balance; hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-titre-4 { font-family: var(--tc-ff-titre-4); font-size: var(--tc-fs-titre-4); font-weight: var(--tc-fw-titre-4); font-style: var(--tc-fst-titre-4); line-height: var(--tc-lh-titre-4); letter-spacing: var(--tc-ls-titre-4); text-transform: var(--tc-tt-titre-4); font-feature-settings: var(--tc-ffs-titre-4); text-wrap: balance; hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-chapo { font-family: var(--tc-ff-chapo); font-size: var(--tc-fs-chapo); font-weight: var(--tc-fw-chapo); font-style: var(--tc-fst-chapo); line-height: var(--tc-lh-chapo); letter-spacing: var(--tc-ls-chapo); text-transform: var(--tc-tt-chapo); font-feature-settings: var(--tc-ffs-chapo); text-wrap: pretty; hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-citation { font-family: var(--tc-ff-citation); font-size: var(--tc-fs-citation); font-weight: var(--tc-fw-citation); font-style: var(--tc-fst-citation); line-height: var(--tc-lh-citation); letter-spacing: var(--tc-ls-citation); text-transform: var(--tc-tt-citation); font-feature-settings: var(--tc-ffs-citation); text-wrap: balance; hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-chiffre-display { font-family: var(--tc-ff-chiffre-display); font-size: var(--tc-fs-chiffre-display); font-weight: var(--tc-fw-chiffre-display); font-style: var(--tc-fst-chiffre-display); line-height: var(--tc-lh-chiffre-display); letter-spacing: var(--tc-ls-chiffre-display); text-transform: var(--tc-tt-chiffre-display); font-feature-settings: var(--tc-ffs-chiffre-display); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-menu-salon { font-family: var(--tc-ff-menu-salon); font-size: var(--tc-fs-menu-salon); font-weight: var(--tc-fw-menu-salon); font-style: var(--tc-fst-menu-salon); line-height: var(--tc-lh-menu-salon); letter-spacing: var(--tc-ls-menu-salon); text-transform: var(--tc-tt-menu-salon); font-feature-settings: var(--tc-ffs-menu-salon); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-texte { font-family: var(--tc-ff-texte); font-size: var(--tc-fs-texte); font-weight: var(--tc-fw-texte); font-style: var(--tc-fst-texte); line-height: var(--tc-lh-texte); letter-spacing: var(--tc-ls-texte); text-transform: var(--tc-tt-texte); font-feature-settings: var(--tc-ffs-texte); text-wrap: pretty; hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; }
  .tc-t-texte-petit { font-family: var(--tc-ff-texte-petit); font-size: var(--tc-fs-texte-petit); font-weight: var(--tc-fw-texte-petit); font-style: var(--tc-fst-texte-petit); line-height: var(--tc-lh-texte-petit); letter-spacing: var(--tc-ls-texte-petit); text-transform: var(--tc-tt-texte-petit); font-feature-settings: var(--tc-ffs-texte-petit); text-wrap: pretty; hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; }
  .tc-t-texte-legal { font-family: var(--tc-ff-texte-legal); font-size: var(--tc-fs-texte-legal); font-weight: var(--tc-fw-texte-legal); font-style: var(--tc-fst-texte-legal); line-height: var(--tc-lh-texte-legal); letter-spacing: var(--tc-ls-texte-legal); text-transform: var(--tc-tt-texte-legal); font-feature-settings: var(--tc-ffs-texte-legal); text-wrap: pretty; hyphens: auto; -webkit-hyphens: auto; hyphenate-limit-chars: 10 4 4; }
  .tc-t-legende { font-family: var(--tc-ff-legende); font-size: var(--tc-fs-legende); font-weight: var(--tc-fw-legende); font-style: var(--tc-fst-legende); line-height: var(--tc-lh-legende); letter-spacing: var(--tc-ls-legende); text-transform: var(--tc-tt-legende); font-feature-settings: var(--tc-ffs-legende); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-surtitre { font-family: var(--tc-ff-surtitre); font-size: var(--tc-fs-surtitre); font-weight: var(--tc-fw-surtitre); font-style: var(--tc-fst-surtitre); line-height: var(--tc-lh-surtitre); letter-spacing: var(--tc-ls-surtitre); text-transform: var(--tc-tt-surtitre); font-feature-settings: var(--tc-ffs-surtitre); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-nav { font-family: var(--tc-ff-nav); font-size: var(--tc-fs-nav); font-weight: var(--tc-fw-nav); font-style: var(--tc-fst-nav); line-height: var(--tc-lh-nav); letter-spacing: var(--tc-ls-nav); text-transform: var(--tc-tt-nav); font-feature-settings: var(--tc-ffs-nav); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-bouton { font-family: var(--tc-ff-bouton); font-size: var(--tc-fs-bouton); font-weight: var(--tc-fw-bouton); font-style: var(--tc-fst-bouton); line-height: var(--tc-lh-bouton); letter-spacing: var(--tc-ls-bouton); text-transform: var(--tc-tt-bouton); font-feature-settings: var(--tc-ffs-bouton); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-champ { font-family: var(--tc-ff-champ); font-size: var(--tc-fs-champ); font-weight: var(--tc-fw-champ); font-style: var(--tc-fst-champ); line-height: var(--tc-lh-champ); letter-spacing: var(--tc-ls-champ); text-transform: var(--tc-tt-champ); font-feature-settings: var(--tc-ffs-champ); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-label { font-family: var(--tc-ff-label); font-size: var(--tc-fs-label); font-weight: var(--tc-fw-label); font-style: var(--tc-fst-label); line-height: var(--tc-lh-label); letter-spacing: var(--tc-ls-label); text-transform: var(--tc-tt-label); font-feature-settings: var(--tc-ffs-label); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-message { font-family: var(--tc-ff-message); font-size: var(--tc-fs-message); font-weight: var(--tc-fw-message); font-style: var(--tc-fst-message); line-height: var(--tc-lh-message); letter-spacing: var(--tc-ls-message); text-transform: var(--tc-tt-message); font-feature-settings: var(--tc-ffs-message); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-chiffre-donnee { font-family: var(--tc-ff-chiffre-donnee); font-size: var(--tc-fs-chiffre-donnee); font-weight: var(--tc-fw-chiffre-donnee); font-style: var(--tc-fst-chiffre-donnee); line-height: var(--tc-lh-chiffre-donnee); letter-spacing: var(--tc-ls-chiffre-donnee); text-transform: var(--tc-tt-chiffre-donnee); font-feature-settings: var(--tc-ffs-chiffre-donnee); hyphens: manual; -webkit-hyphens: manual; }
  .tc-t-annotation { font-family: var(--tc-ff-annotation); font-size: var(--tc-fs-annotation); font-weight: var(--tc-fw-annotation); font-style: var(--tc-fst-annotation); line-height: var(--tc-lh-annotation); letter-spacing: var(--tc-ls-annotation); text-transform: var(--tc-tt-annotation); font-feature-settings: var(--tc-ffs-annotation); hyphens: manual; -webkit-hyphens: manual; }
  .tc-chiffres-tab { font-variant-numeric: tabular-nums lining-nums; }
  .tc-chiffres-prop { font-variant-numeric: proportional-nums; }
  .tc-insecable { white-space: nowrap; }
  .tc-exposant { font-size: max(0.68em, 0.75rem); vertical-align: 0.42em; line-height: 0; letter-spacing: 0.02em; } /* « XIXᵉ » : XIX<span class="tc-exposant">e</span> (U+1D49 absent de toutes les fontes) */
  .tc-capitales { text-transform: uppercase; letter-spacing: 0.12em; font-size: 0.86em; } /* pas de petites capitales vraies (smcp absent) : jamais de petites capitales synthétisées */
  .tc-mesure { max-width: var(--tc-mesure-texte); }
  .tc-equilibre { text-wrap: balance; }
  .tc-sur-sombre { color: var(--tc-c-sur-sombre); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }
  .tc-sur-sombre :is(small, figcaption, .tc-t-legende, .tc-t-texte-petit, .tc-t-annotation) { color: var(--tc-c-sur-sombre-2); }
}
