/* ============================================================
   Souki Lodges & Spa — Couche typographique
   Chargée en dernier : elle arbitre la mesure, les alignements,
   les coupes et le rythme vertical, après que chaque section a
   posé sa mise en page.

   Trois règles gouvernent tout ce fichier :

   1. MESURE — 60 à 72 signes par ligne. Les valeurs sont en `ch`
      mais calées sur des relevés faits dans le navigateur, car le
      `ch` (largeur du zéro) est plus large que la moyenne des
      bas-de-casse : 62ch rendait 72 à 80 signes réels.

   2. ALIGNEMENT — le texte courant est au fer à gauche, jamais
      justifié : en français, les mots longs et les espaces avant
      signes doubles creusent des rivières de blanc. Le centrage
      est réservé aux blocs courts et symboliques : surtitres,
      titres, respirations, bandes d'appel à l'action.

   3. COUPES — `text-wrap: pretty` sur le texte courant (le
      navigateur évite les lignes veuves), `balance` sur les titres
      (il égalise les lignes). Les navigateurs qui l'ignorent
      retombent sur le rendu actuel, sans rien casser.
   ============================================================ */

/* ────────────────────────────────────────────────────────────
   1 · MESURE
   ──────────────────────────────────────────────────────────── */

/* La narration partage désormais la même voix que la home. Les éléments
   d'interface, métadonnées, boutons et informations techniques restent en
   Jost pour conserver une lecture immédiate. */
:is(
  .phero__lede,
  .lhero__lede,
  .pprose,
  .pband__body,
  .faq__a,
  .legal p,
  .legal li,
  .presse-item__texte,
  .xp-intro__lead,
  .xp-intro__final,
  .xp__ligne,
  .resa-etape__chapo,
  .suite__ligne,
  .appel__texte,
  .sortie__txt,
  .newsletter__texte
) {
  font-family: var(--font-editorial);
  font-weight: 400;
}

/* Texte courant : UNE mesure, une seule source — var(--mesure).

   Recalibrée le 7 août 2026. Tout le calibrage en `ch` de ce fichier
   datait du 29 juillet, sous Jost ; Instrument Serif est arrivé le
   5 août, et son `0` est large pour sa chasse réelle : 1 ch y rend
   environ 1,38 signe. Les 66-80ch d'alors composaient donc des lignes
   de 89 à 141 signes — mesuré au navigateur, en comptant les signes
   ligne à ligne. Le patchwork d'exceptions par page (58, 62, 68,
   80ch…) compensait la longueur des mots d'une page à l'autre : des
   écarts de quelques signes, tolérés autour de la cible commune.

   La cible est en SIGNES — 72 — et la valeur en `ch` n'est qu'un
   moyen : à re-mesurer au navigateur à tout changement du caractère
   de labeur, jamais à recopier. */
.pprose,
.intro__body,
.territoire__body,
.resa__body,
.moment__desc,
.lodge__desc,
.volet__text,
.suite__ligne,
.presse-item__texte,
.xp__ligne,
.xp-intro__lead {
  max-width: var(--mesure);
}

/* L'AXE — 530 px fixes. Ces blocs se composent dans un corps plus grand que
   le texte de labeur : à 52ch ils s'ouvraient à 593 px et fabriquaient un
   second axe (x=424 au lieu de x=455 à 1440). Deux d'entre eux — la mention
   des bandes d'appel et la note des bandes de La Maison — n'avaient aucune
   mesure du tout et s'étalaient à 1 040 et 928 px, à côté de leur propre
   frère. Arbitrage « grille éditoriale unique », 10 août 2026. */
.appel__texte,
.appel__mention,
.pband__body,
.pband__note,
.jour__sub,
.hero__subtitle,
/* Ajoutés le 10 août 2026 au titre de la cohérence par type : chacun
   occupait DEUX largeurs ou plus selon son conteneur. .pmeta courait à
   960 px dans .xp__texte et 1 056 px dans .psec__narrow contre 669 dans
   .pduo ; .eyebrow à 669 puis 1 056 ; .moment__meta à deux largeurs sur
   l'accueil. L'alignement, lui, reste hérité du conteneur. */
.pmeta,
.eyebrow,
.moment__meta {
  max-width: var(--colonne);
}
/* La boîte se centre quand son conteneur est centré, et reste ferrée
   quand il l'est — c'est ainsi qu'un bloc tient l'axe des deux côtés
   de l'alternance .pduo. */
.psec__narrow .pmeta,
.xp__texte .pmeta {
  margin-inline: auto;
}
/* .moment__meta n'y figure PAS : son frère .moment__desc est ferré à
   gauche dans .scene__text. Le centrer l'aurait décalé de 44 px et
   sorti de l'axe qu'il partage avec lui. */
/* Les blocs composés sur l'axe restent sur l'axe : la boîte se centre
   quand la mesure la borne. L'axe des bandes d'appel et des expériences
   est un arbitrage du 1er août — on ne le ferre pas à gauche. */
.appel__texte,
.appel__mention,
.xp__ligne,
.xp-intro__lead,
.pband__body,
.pband__note,
.jour__sub,
.hero__subtitle {
  margin-inline: auto;
}
/* .pduo .pmeta { max-width: none } — retiré le 10 août 2026 : c'est ce
   qui laissait .pmeta prendre toute la largeur de son conteneur, et donc
   trois largeurs différentes selon la page. Il tient l'axe comme les
   autres. */
/* La FAQ et les pages légales font porter la mesure à leur CONTENEUR —
   titres et textes partagent le même bord — via .faq__group et
   .legal__inner, tous deux à var(--mesure) dans pages.css. Au niveau du
   paragraphe, rien ne doit la doubler. */
.legal p,
.legal li,
.faq__a {
  max-width: none;
}

/* Accroches — phrases isolées en grand corps, pas un texte de labeur :
   mesure plus courte. Une seule largeur pour les dix-huit chapôs de hero :
   l'exception à 42ch de .phero--story est annulée depuis le 10 août 2026. */
.phero__lede,
.lhero__lede,
.presse-item__titre,
.lodges__sub,
.moments__sub,
.xp-intro__final {
  max-width: var(--mesure-etroite);
}
.lodges__sub,
.moments__sub,
.xp-intro__final {
  margin-inline: auto;
}

/* Titres : on borne la mesure pour choisir OÙ ils cassent. */
h1,
.hero__title {
  max-width: var(--mesure-titre);
}
.psec h2,
.pband h2,
.legal h2,
.lhero h1,
.intro__title,
.jour__title,
.lodges__title,
.moments__title,
.resa__title,
.territoire__title {
  max-width: var(--mesure-titre-l);
}
/* Exception : .faq__cat n'est pas un titre de lecture mais une
   étiquette de rubrique en petites capitales, soulignée sur toute
   la colonne. La borner couperait son filet. */
.faq__cat { max-width: none; }

/* Les blocs centrés gardent leur mesure centrée dans la colonne.
   Les chapôs de hero (.phero__lede, .lhero__lede) en sont SORTIS le
   7 août 2026 : leur titre est ferré à gauche, et dès que la mesure
   les a bornés, ce margin-inline les décollait du bord — chapô centré
   sous un titre à gauche, mesuré sur lodges. Ils restent calés sous
   leur titre. */
.psec__narrow .pprose,
.intro__inner .intro__body,
.pband__inner .pband__body,
.jour__head .jour__sub,
.lodges__head .lodges__sub,
.scene__intro .moments__sub {
  margin-inline: auto;
}

/* ────────────────────────────────────────────────────────────
   2 · ALIGNEMENT
   ──────────────────────────────────────────────────────────── */

/* ════════════════════════════════════════════════════════════
   JUSTIFICATION — REMESURÉE ET ABANDONNÉE UNE SECONDE FOIS
   10 août 2026. NE PAS LA ROUVRIR UNE TROISIÈME.

   Elle avait été abandonnée le 8 août avec le passage à Mulish, sur
   un raisonnement. Elle a été remesurée le 10 août à la demande de
   Fabien, sur une colonne de 720 px — la plus large jamais envisagée,
   donc la plus favorable — corps 17 px, interlignage 1,78, sur
   Expériences et La Maison. Chiffres relevés au navigateur, espace
   naturel du Mulish à 17 px = 4,46 px.

   Précision de méthode : l'écart entre le plus large et le plus étroit
   espace D'UNE MÊME LIGNE est nul. Le navigateur répartit l'excédent
   également sur tous les espaces d'une ligne. La distension se lit
   D'UNE LIGNE À L'AUTRE, contre l'espace naturel — pas dans la ligne.

   À 1440 px, colonne 720 :
     ferré à gauche  espace max 4,87 px (1,08×) — aucune ligne distendue
     JUSTIFIÉ sans césure   max 11,60 px (2,58×)
                            57 % des lignes à 1,5× ou plus, 22 % au-delà du double
     JUSTIFIÉ + césure auto max  7,73 px (1,72×)
                            26 % à 1,5× ou plus, mais 9 mots coupés sur 23 lignes
                            — une ligne sur trois finit sur un mot cassé

   À 390 px, la colonne retombe à 328-342 px et tout casse :
     JUSTIFIÉ sans césure   max 26,14 px, soit 6,19× l'espace naturel
                            48 % des lignes au-delà du double
                            14 lézardes sur La Maison (plancher de bruit : 4)
     JUSTIFIÉ + césure auto max 14,18 px (3,36×), 28 % au-delà du double,
                            14 lézardes, 17 mots coupés sur 78 lignes
                            et Chrome coupe après DEUX lettres : « mo-ment »

   Le garde-fou `hyphenate-limit-chars: 6 3 3`, qui imposerait trois
   signes de part et d'autre, N'EST PAS SUPPORTÉ PAR WEBKIT — vérifié
   le 10 août dans le moteur de Safari 26.6, CSS.supports renvoie false.
   La césure automatique est donc incontrôlable sur Safari.

   La raison de fond n'a pas changé : en français les mots sont longs et
   les signes doubles sont précédés d'une espace insécable, que la
   justification étire elle aussi — « refuge : les massages ».
   ════════════════════════════════════════════════════════════ */

/* Jamais de justification : la règle vaut pour tout le site. */
.pprose,
.legal p,
.legal li,
.faq__a,
.intro__body,
.territoire__body {
  text-align: left;
}

/* Les colonnes étroites restent centrées pour leurs TITRES, mais
   leur prose passe au fer à gauche : au-delà de deux lignes, un
   texte centré oblige l'œil à chercher chaque début de ligne. */
.psec__narrow .pprose,
.intro__inner .intro__body {
  text-align: left;
}

/* PHASE 3 de la grille éditoriale unique — 10 août 2026.
   Ces huit blocs étaient centrés sur deux paragraphes ou plus. Le centrage
   reste réservé aux blocs courts et symboliques ; passé deux paragraphes,
   l'œil cherche chaque début de ligne. La BOÎTE reste centrée quand elle
   l'était — c'est le texte qui se ferre, pas le bloc qui se déplace.
   Restent centrés par arbitrage : .appel__texte et .appel__mention
   (composition de la bande d'appel, arbitrage du 1er août), .jour__sub,
   .lodges__sub et .moments__sub (chapôs courts). */
.xp__ligne,
.xp-intro__lead,
.xp-intro__final,
.pmeta,
.pband__body,
.pband__note,
.contact-line {
  text-align: left;
}

/* Restent centrés, parce que courts et symboliques :
   surtitres, titres, respirations, métas, bandes d'appel.
   La liste est explicite pour qu'aucun bloc ne le devienne par
   héritage sans qu'on l'ait voulu. */
.psec__narrow .eyebrow,
.psec__narrow h2,
.psec__narrow h3,
.intro__inner .eyebrow,
.intro__inner .intro__title,
.intro__inner .intro__badge,
.breath__text,
.pband__inner,
.resa__inner,
.jour__head,
.lodges__head,
.scene__intro {
  text-align: center;
}

/* Bienvenue est en deux colonnes : le titre et le surtitre vivent dans une
   colonne latérale, où un centrage les ferait flotter sans axe. Ces règles
   annulent le centrage déclaré plus haut au § 2 pour .intro__inner. */
.intro .intro__inner .eyebrow,
.intro .intro__inner .intro__title,
.intro .intro__inner .intro__badge {
  text-align: left;
}

/* ────────────────────────────────────────────────────────────
   3 · COUPES — orphelines, veuves, titres mal cassés
   ──────────────────────────────────────────────────────────── */

/* Texte courant : le navigateur remonte un mot pour éviter qu'une
   ligne finale ne porte qu'un mot isolé. */
.pprose,
.legal p,
.legal li,
.faq__a,
.intro__body,
.territoire__body,
.resa__body,
.pband__body,
.phero__lede,
.hero__subtitle,
.lhero__lede,
.moment__desc,
.volet__text,
.lodge__desc,
.pmeta,
.moment__meta {
  text-wrap: pretty;
}

/* Titres et courtes accroches : lignes égalisées. */
h1, h2, h3,
.hero__title,
.faq__q,
.jour__sub,
.lodges__sub,
.moments__sub,
.intro__badge,
.pband__note,
.resa__note,
.breath__text {
  text-wrap: balance;
}

/* Les noms propres du domaine ne se coupent jamais en fin de ligne. */
.pprose, .legal p, .faq__a, .intro__body, .territoire__body,
.moment__desc, .volet__text, .lodge__desc, .pband__body {
  hyphens: none;
}

/* ────────────────────────────────────────────────────────────
   4 · RYTHME VERTICAL
   Une seule échelle : --pas-2 entre paragraphes, --pas-3 du titre
   à son texte, --pas-4 entre blocs. Plus aucune valeur isolée.
   ──────────────────────────────────────────────────────────── */

.pprose,
.legal p,
.territoire__body,
.intro__body {
  line-height: var(--interligne);
  margin-bottom: 0;
}
.pprose + .pprose,
.legal p + p,
.legal p + ul,
.legal ul + p,
.territoire__body + .territoire__body,
.intro__body + .intro__body,
.faq__a + .faq__a {
  margin-top: var(--pas-2);
}

/* Du titre à son premier paragraphe */
.psec h2 + .pprose,
.psec h3 + .pprose,
.legal h2 + p,
.lhero h1 + .lhero__lede,
.faq__q + .faq__a {
  margin-top: var(--pas-3);
}

/* Entre deux blocs de même nature */
.legal__block + .legal__block { margin-top: var(--pas-4); }
.faq__item + .faq__item { margin-top: var(--pas-4); }

/* Surtitre collé à son titre, titre détaché de son texte */
.eyebrow { margin-bottom: var(--pas); }

/* Exception : le surtitre de la barre de presse ne précède pas un titre — il
   ouvre la bande. Le pas serré ci-dessus le collait à la ligne des marques
   (14 px sous, 129 px au-dessus). Il reprend l'air de la bande et se retrouve
   centré entre le haut de la bande et les noms de médias. Vaut pour les douze
   implantations, calcaire comme nuit. */
.presse-bar .presse-bar__titre { margin-bottom: var(--presse-air); }
.pmeta { margin-top: var(--pas-3); }

/* ────────────────────────────────────────────────────────────
   5 · RESPONSIVE
   Le texte ne touche jamais le bord, et la mesure ne s'effondre
   pas sur les petites largeurs.
   ──────────────────────────────────────────────────────────── */

@media (max-width: 620px) {
  /* Sous cette largeur, la mesure est imposée par l'écran : on
     laisse le texte occuper la colonne et on protège les marges. */
  .pprose, .legal p, .legal li, .faq__a, .intro__body,
  .territoire__body, .resa__body, .pband__body, .phero__lede,
  .hero__subtitle, .lhero__lede, .jour__sub, .lodges__sub,
  .moments__sub, .pduo .pprose, .pduo .pmeta {
    max-width: none;
  }
  /* Les titres cassent au plus large : bornés, ils empileraient
     trop de lignes courtes sur un écran étroit. */
  h1, h2, .hero__title, .intro__title, .jour__title, .lodges__title,
  .moments__title, .resa__title, .territoire__title {
    max-width: none;
  }
  /* Plancher de gouttière : sur mobile, aucun texte ne s'approche à moins de
     24 px du bord. Le retrait passe des SECTIONS à leurs CONTENEURS internes :
     les fonds, vidéos et voiles restent ainsi pleine largeur, seul le texte
     rentre. Mesuré auparavant entre 19 et 23 px selon les blocs. */
  .psec, .legal, .lhero, .pband, .faq, .intro, .territoire, .resa,
  .jour, .moments, .hero, .phero, .breath {
    padding-inline: 0;
  }
  .psec__narrow, .psec__inner, .pduo, .legal__inner, .lhero__inner,
  .pband__inner, .faq__group, .faq__toc, .intro__inner, .territoire__wrap,
  .resa__inner, .jour__head, .scene__content, .scene__intro,
  .hero__content, .phero__inner, .breath__text {
    padding-inline: var(--gouttiere);
  }
  /* Les médias de duo, eux, restent au bord : ils font image pleine largeur. */
  .pduo { padding-inline: 0; }
  .pduo > div:not(.pduo__media) { padding-inline: var(--gouttiere); }
}

/* La section des moments déclarait 19 px de défilement horizontal fantôme aux
   largeurs intermédiaires — aucun élément ne dépassait, mais la page se laissait
   pousser latéralement. Défaut antérieur à cette passe. `clip` contient la zone
   sans créer de conteneur de défilement, contrairement à `hidden`, et laisse les
   masques de fondu intacts. */
.moments { overflow-x: clip; }

/* La règle qui rattrapait le retrait des volets aux largeurs intermédiaires
   portait sur `.volet__content`, disparu avec la refonte D2 du 17 août 2026.
   Le retrait vient désormais du panneau lui-même — `.volet__texte` a 18 px de
   marge intérieure à toutes les largeurs — et de la gouttière de la grille. */

/* Très grands écrans : la mesure tient déjà, mais les sections
   pleine largeur ne doivent pas étirer leurs conteneurs. */
@media (min-width: 1800px) {
  .psec__inner, .pduo, .phero__inner { max-width: 82rem; }
}

/* ────────────────────────────────────────────────────────────
   6 · MOUVEMENT RÉDUIT — rien à neutraliser ici, la couche
   typographique ne pose aucune transition.
   ──────────────────────────────────────────────────────────── */

/* Colonnes de duo : les mesures propres par page (55ch, 56ch) qui
   vivaient ici battaient var(--mesure) par leur spécificité (0,2,0) —
   quatrième plafond fantôme retiré le 7 août 2026. La mesure commune
   s'applique aussi dans les colonnes de duo. */


/* ────────────────────────────────────────────────────────────
   6 · BORD DROIT
   Le texte reste en drapeau à gauche — aucune justification, qui
   creuserait des rivières de blanc dans des colonnes de 75 signes.
   Le navigateur se charge seulement de mieux répartir les lignes.
   ──────────────────────────────────────────────────────────── */

/* `pretty` : le moteur essaie plusieurs répartitions et évite la dernière
   ligne réduite à un mot. Coût nul là où il n'est pas implémenté, où il
   retombe simplement sur `wrap`. */
.pprose, .legal p, .faq__a, .intro__body, .territoire__body,
.moment__desc, .volet__text, .lodge__desc, .pband__body,
.resa__body, .scene__text p, .pmeta,
/* Ajoutés le 10 août 2026 : relevés à `auto` alors que .pprose était à
   `pretty`, sur toute la prose des Expériences et les bandes « poursuivre ».
   Depuis la phase 3 de la grille éditoriale ils sont ferrés à gauche comme
   .pprose ; ils doivent recevoir le même traitement de coupe.
   .pband__body figure ci-dessus mais reste à `balance` : la règle de la
   ligne 490 le rattrape, et c'est délibéré — ces chapôs sont courts. */
.xp__ligne, .xp-intro__lead, .suite__ligne {
  text-wrap: pretty;
}

/* `balance` : égalise la longueur des lignes d'un titre court. C'est lui qui
   règle les coupures absurdes et les mots seuls en dernière ligne, sans
   jamais forcer de `nowrap` ni toucher au corps. */
h1, h2, h3,
.hero__title, .hero__subtitle, .breath__text, .intro__title,
.phero__lede, .lhero__lede, .pband__title, .resa__title,
.territoire__title, .eyebrow {
  text-wrap: balance;
}

/* Les chapôs sont assez courts pour profiter de `balance` eux aussi. */
.phero__lede, .lhero__lede, .pband__body { text-wrap: balance; }


/* ────────────────────────────────────────────────────────────
   7 · CHAPÔS DE HERO — l'exemption de mesure est LEVÉE, 7 août 2026
   Un `max-width: none` vivait ici sur .phero__lede, .lhero__lede et
   .hero__subtitle. Il datait de l'époque où --mesure-large (51ch)
   les resserrait en lignes courtes — et, placé en fin de fichier,
   il annulait silencieusement toute mesure posée plus haut : le
   chapô de hero montait à 118 signes par ligne à 1440.
   Les accroches prennent désormais var(--mesure-etroite) et le
   sous-titre du hero var(--mesure), au bloc unique du haut de ce
   fichier. Ne pas rétablir un plafond local ici : c'est le
   troisième plafond fantôme de ce chantier (57ch de pages.css,
   50ch de home.css, celui-ci).
   ──────────────────────────────────────────────────────────── */


/* ────────────────────────────────────────────────────────────
   8 · FERRAGE À GAUCHE DU TEXTE COURANT — 8 août 2026
   La justification du 1ᵉʳ août est ABANDONNÉE avec le changement
   de caractère de labeur : les quatre sélecteurs justifiés passent
   ferrés à gauche, et la césure automatique — qui ne servait qu'à
   combler les lézardes de la justification — tombe avec elle.
   `hyphens: none` PARTOUT sur la prose : aucun cas relevé où la
   césure resterait utile en drapeau à 72 signes de mesure.
   Les sélecteurs préfixés (0,2,0) neutralisent les text-align
   posés plus haut dans les gabarits, comme du temps du justifié.
   ──────────────────────────────────────────────────────────── */
.intro__prose .intro__body,
.psec__narrow .pprose,
.pduo .pprose,
.pprose,
.legal p,
.faq__a,
.intro__body,
.territoire__body,
.lodge__desc,
.resa__body {
  text-align: left;
  hyphens: none;
  -webkit-hyphens: none;
  text-wrap: pretty;
}

/* Noms du domaine — jamais coupés en fin de ligne, quelle que soit la
   césure active autour d'eux. Balisage posé par scripts/proteger-noms.py,
   à relancer si un texte change. */
.nc { hyphens: none; -webkit-hyphens: none; }

/* ────────────────────────────────────────────────────────────
   9 · CARACTÈRE DE LABEUR — MULISH, 8 août 2026
   La prose passe d'Instrument Serif (un caractère d'AFFICHAGE
   employé comme labeur : contrastes forts, formes serrées,
   illisible à 18 px) à Mulish, graisses 300 et 400, italique
   compris. Les 6 accroches restent en Instrument Serif, les
   titres et l'interface ne bougent pas.
   `html body[data-page]` : porte la spécificité à (0,2,2). La liste
   `body[data-page="home"] :is(…)` de home.css contient un sélecteur
   COMPOSÉ (`.avis-home__rating strong`) qui hisse toute sa règle à
   (0,2,2) — un `:is()` pèse le plus lourd de ses membres. À égalité,
   ce fichier arbitre en dernier.
   ──────────────────────────────────────────────────────────── */
html body[data-page] :is(
  .pprose,
  .intro__body,
  .territoire__body,
  .resa__body,
  .lodge__desc,
  .suite__ligne,
  .presse-item__texte,
  .faq__a,
  .xp__ligne,
  .xp-intro__lead,
  /* Ajouté le 20 août 2026 : la description des lieux du pays gardait
     ses propres valeurs dans pages.css — 15,5 px au lieu de 17, interligne
     1,62 au lieu de 1,68, encre à 86 % au lieu de 84. Elle est de la prose
     comme les autres ; elle rejoint donc la source unique. */
  .pays__desc
) {
  font-family: var(--font-labeur);
  font-weight: 400;
  font-size: var(--t-labeur);
  line-height: var(--interligne-labeur);
  /* 84 % d'encre et non 74 : à 74 %, la prose de presse tombait à
     4,06:1 — sous le plancher de 4,5. Mesuré le 8 août 2026. */
  color: color-mix(in srgb, var(--ink) 84%, var(--calcaire));
}
/* `.moment__desc` a quitté cette liste le 17 août 2026, avec la refonte du
   voile des Expériences : c'est une légende sur média, et l'encre de labeur
   — sombre, faite pour le fond calcaire — la rendait invisible sur les films
   (1,5:1 mesuré). Sa composition vit avec sa section, dans home.css. */
/* `.volet__text` a quitté cette liste le 17 août 2026, avec la refonte D2 de
   « Une journée chez Souki ». Ce n'est plus de la prose de labeur : c'est une
   légende sous média, composée dans un corps plus petit et un interligne plus
   serré. Son corps, son interligne et sa couleur sont définis avec la section,
   dans home.css — comme l'est déjà `.volet__title`. Elle reste en revanche
   dans les listes de `--mesure`, de `text-wrap` et de `hyphens` ci-dessus :
   ces réglages-là n'ont pas de raison de changer. */
body[data-page] .legal p,
body[data-page] .legal li {
  font-family: var(--font-labeur);
  font-weight: 400;
  font-size: var(--t-labeur);
  line-height: var(--interligne-labeur);
  color: color-mix(in srgb, var(--ink) 84%, var(--calcaire));
}
/* Prose en grand corps : un cran au-dessus, graisse allégée pour
   que le sans ne s'épaississe pas à cette taille. */
html body[data-page] :is(
  .appel__texte,
  .pband__body,
  .jour__sub,
  .hero__subtitle
) {
  font-family: var(--font-labeur);
  font-weight: 300;
  font-size: var(--t-labeur-grand);
  line-height: 1.7;
}
/* Sous-titre du hero d'accueil — le grossissement à 26 px est ANNULÉ.
   Il avait été posé le 9 août 2026 pour bénéficier du seuil « texte large »
   de WCAG (3:1 au lieu de 4,5:1) : mesuré, il faisait passer le sous-titre
   de 0 à 5 frames sur 11. Fabien l'a REFUSÉ le 10 août — la proportion
   sous le titre primait sur le gain de contraste. Le corps revient au
   groupe --t-labeur-grand ci-dessus, soit 17 → 19 px.
   L'écart de contraste qui en résulte est ASSUMÉ et consigné.
   Ne pas le regrossir sans nouvel arbitrage. */

/* La citation de La Maison suit le labeur (elle était comptée dans
   la prose au relevé) ; l'italique est le Mulish italique. */
body[data-page] .citation p {
  font-family: var(--font-labeur);
  font-weight: 300;
  font-size: var(--t-labeur-grand);
  line-height: 1.7;
}
