/* Étape 21 : taille des titres adaptée à leur longueur (affichage seulement : aucun titre n'est modifié).
   La classe title--l / m / s / xs est posée sur le h1 par le préprocess (vvv_title_size_class : ≤ 30, 31-60, 61-100,
   > 100 caractères ; un mot de plus de 14 caractères fait descendre d'un cran).
   Feuille hors couches : elle l'emporte sur les h1 de la maquette (couches components et pages) sans les modifier. */

:root{
  /* pages de lecture (articles, balades, géologie) */
  --title-l:clamp(40px,4.4vw,64px);
  --title-m:clamp(32px,3.4vw,48px);
  --title-s:clamp(28px,2.7vw,38px);
  --title-xs:clamp(24px,2.2vw,32px);
  /* fiches (livre, vigneron, appellation) : titres plus grands, comme leur mise en page */
  --title-fiche-m:clamp(34px,5vw,72px);
  --title-fiche-s:clamp(30px,3.6vw,52px);
  --title-fiche-xs:clamp(26px,2.6vw,38px);
  --big-max:52px;
}

/* --- Pages de lecture --- */
.article-head h1.title--l,.article-head h1.title--m,.article-head h1.title--s,.article-head h1.title--xs{max-width:28ch;text-wrap:balance;overflow-wrap:break-word;hyphens:manual}
.article-head h1.title--l{font-size:var(--title-l);line-height:1.05}
.article-head h1.title--m{font-size:var(--title-m);line-height:1.08}
.article-head h1.title--s{font-size:var(--title-s);line-height:1.12}
.article-head h1.title--xs{font-size:var(--title-xs);line-height:1.15}

/* --- Fiches : le titre « l » garde sa taille d'origine --- */
.id-grid h1.title--m,.book-head__title.title--m{font-size:var(--title-fiche-m);line-height:1.02}
.id-grid h1.title--s,.book-head__title.title--s{font-size:var(--title-fiche-s);line-height:1.08}
.id-grid h1.title--xs,.book-head__title.title--xs{font-size:var(--title-fiche-xs);line-height:1.12}
.id-grid h1.title--m,.id-grid h1.title--s,.id-grid h1.title--xs,
.book-head__title.title--m,.book-head__title.title--s,.book-head__title.title--xs{text-wrap:balance;overflow-wrap:break-word}

/* --- Intertitres « big » des pages de contenu : 52 px au plus ; 40 px dans la colonne étroite des intertitres longs (titre sur 2 lignes) --- */
body:has(h1[class*="title--"]) h2.big{font-size:clamp(32px,3.8vw,var(--big-max));text-wrap:balance}
body:has(h1[class*="title--"]) .sidebar__aside h2.big{font-size:clamp(30px,3vw,40px)}
body:has(h1[class*="title--"]) .section__head--compact h2.big{font-size:clamp(30px,3.6vw,var(--big-max))}

/* --- Étape 22, lot C : hiérarchie des titres (affichage seulement ; les capitales des textes eZ sont conservées) ---
   (1) Le h2 du corps ne dépasse jamais le h1 de la page : sur les pages à h1 « s » ou « xs », plafond = la plus petite de
       taille du h1 × 1,05 et 36 px ; h3 ≈ 0,8 × h2 et h4 ≈ 0,65 × h2 (17 px au moins).
       Sur les pages à h1 « l » ou « m », le h2 du corps est plafonné à 44 px (valeur d'origine). */
body:has(.article-head h1.title--s){--prose-h2:min(calc(var(--title-s) * 1.05),36px)}
body:has(.article-head h1.title--xs){--prose-h2:min(calc(var(--title-xs) * 1.05),36px)}
body:has(.article-head h1.title--s) .prose h2,
body:has(.article-head h1.title--xs) .prose h2{font-size:var(--prose-h2);line-height:1.15;max-width:none;text-wrap:balance}
body:has(.article-head h1.title--s) .prose h3,
body:has(.article-head h1.title--xs) .prose h3{font-size:max(17px,calc(var(--prose-h2) * .8));line-height:1.25}
body:has(.article-head h1.title--s) .prose h4,
body:has(.article-head h1.title--xs) .prose h4{font-size:max(17px,calc(var(--prose-h2) * .65));line-height:1.35}
body:has(.article-head h1.title--l) .prose h2,
body:has(.article-head h1.title--m) .prose h2{font-size:min(clamp(32px,3.4vw,44px),44px)}

/* (2) Fiche d'appellation : h1 de 100 px au plus (jusqu'à 176 px avant) ; fiches livre et vigneron inchangées. */
.id-grid h1.h1--appellation.title--l,.id-grid h1.h1--appellation:not([class*="title--"]){font-size:min(clamp(72px,12vw,176px),100px)}
