/* ==========================================================================
   Typo sans coupure — audit mots / lettres coupés (toutes résolutions)
   Chargé en dernier. Ne change pas l’échelle « wow » sauf là où elle coupait.
   ========================================================================== */

/* 1. Titres : jamais de coupure au milieu d’un mot (sauf URL) */
h1, h2, h3, h4, h5, h6 { overflow-wrap: normal; hyphens: manual; }
a[href^="http"], .url, code { overflow-wrap: anywhere; }

/* 2. Mots masqués qui montent : on ne rogne plus que verticalement,
      avec de l’air pour les accents (É, À) et les jambages (g, p, q) */
.mot-masque { overflow-x: visible; overflow-y: clip; padding-block: 0.16em 0.2em; margin-block: -0.16em -0.2em; }
.js-mouvement [data-mots]:not([data-mots="defile"]) .mot { transform: translateY(140%); }
.js-mouvement [data-mots].est-visible:not([data-mots="defile"]) .mot { transform: none; }

/* 3. Fiches : le nom tient toujours sur la carte, sans couper le mot le plus long */
.fiche__face { container-type: inline-size; }
.fiche__nom { overflow-wrap: normal; hyphens: manual; font-size: min(clamp(1.3rem, 1rem + .8vw, 1.9rem), 11.5cqi); }
.fiche--finale .fiche__nom { font-size: min(clamp(2rem, 1.4rem + 1.6vw, 3rem), 17cqi); }
.fiches.est-3d .fiche__nom { font-size: min(calc(var(--w) * .14), 11.5cqi); }
.fiches.est-3d .fiche--finale .fiche__nom { font-size: min(calc(var(--w) * .2), 17cqi); }

/* 4. Fiches 2D : à 2560-3840 px la racine grossit mais pas la carte ; on plafonne sans descendre sous 15 px */
.fiche__ben, .fiche__cta { font-size: min(.85rem, max(15px, 8cqi)); }
.fiche__tag { font-size: min(.72rem, max(12px, 6.5cqi)); }

/* 5. Étapes « ensemble » : le nom du module tient dans sa case */
.ensemble__etape b { overflow-wrap: normal; hyphens: manual; }
@media (min-width: 900px) and (max-width: 1199px) { .ensemble__etape b { font-size: 15px; letter-spacing: -0.01em; } }

/* 6. Tableau comparatif (tablette) : colonnes étroites, mots entiers */
.sol-tableau th, .sol-tableau td { overflow-wrap: normal; hyphens: manual; }
@media (min-width: 760px) and (max-width: 1023px) {
  .sol-tableau th, .sol-tableau td, .sol-tableau--voies td, .sol-tableau--voies td.nous { font-size: 15px; }
  .sol-tableau .nous { padding-left: 10px; }
}
.sol-etats__liste li { overflow-wrap: normal; hyphens: manual; }

/* 7. Schémas : les étiquettes en bord de dessin ne sont plus rognées */
.produit__dessin { overflow: visible; }

/* 8. Diagnostic, piste « voix » épinglée : sur les écrans peu hauts (1024×768, 1280×720),
      la phrase finale tenait sous le bord. On resserre seulement en hauteur courte. */
@media (min-width: 761px) and (max-height: 860px) {
  .js-mouvement .voix__colle { padding-top: calc(var(--barre) + var(--e-3)); padding-bottom: var(--e-4); }
  .js-mouvement .voix__tete .t-titre { font-size: clamp(1.8rem, 5.6vh, 3rem); }
  .js-mouvement .voix__fin { font-size: clamp(1.8rem, 5.6vh, 3rem); }
  .js-mouvement .voix__scene { min-height: 110px; }
  .js-mouvement .voix__bas { margin-top: var(--e-3); }
}
