/* =====================================================================
   The Landlady ,  skin “Ledger and Bench” ,  prefix thl-
   Fonts: Playfair Display (display), Lato (text + subheadings).
   Two families, three files: playfair-display-v22-latin-700.woff2 (29928 B),
   lato-v17-latin-regular.woff2 (23484 B), lato-v17-latin-700.woff2 (22992 B).
   ===================================================================== */
@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/playfair-display-v22-latin-700.woff2") format("woff2");
}
@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/lato-v17-latin-regular.woff2") format("woff2");
}
@font-face {
  font-family: "Lato";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/lato-v17-latin-700.woff2") format("woff2");
}

:root {
  /* Palette ,  saturated signature + contrasting accent, several surfaces */
  --thl-sceau: hsl(354, 49%, 32%);         /* sealing-wax bordeaux, saturated */
  --thl-sceau-appuye: hsl(354, 52%, 22%);
  --thl-cuir: hsl(348, 42%, 15%);          /* leather banded background */
  --thl-sceau-tendre: hsl(354, 44%, 92%);  /* pale wax surface for accents */
  --thl-sauge: hsl(78, 22%, 68%);
  --thl-sauge-fonce: hsl(78, 30%, 22%);

  --thl-papier: hsl(36, 28%, 95%);
  --thl-papier-creux: hsl(36, 24%, 89%);
  --thl-carte: #ffffff;
  --thl-carte-creux: hsl(30, 20%, 97%);

  --thl-encre: hsl(40, 6%, 11%);
  --thl-encre-douce: hsl(40, 6%, 32%);
  --thl-encre-filet: hsl(35, 12%, 62%);

  --thl-ombre-1: 0 6px 20px hsla(354, 49%, 18%, 0.18);
  --thl-ombre-2: 0 10px 30px hsla(78, 30%, 18%, 0.22);
  --thl-ombre-3: 0 14px 40px hsla(348, 42%, 12%, 0.28);
  --thl-ombre-4: 0 4px 14px hsla(35, 20%, 30%, 0.16);

  --thl-r-sm: 12px;
  --thl-r-md: 16px;
  --thl-r-lg: 20px;

  --thl-ratio-une: 16 / 9;
  --thl-ratio-paysage: 3 / 2;
  --thl-ratio-vignette: 4 / 3;
  --thl-ratio-detail: 1 / 1;

  --thl-titre-police: "Playfair Display", Georgia, "Times New Roman", serif;
  --thl-texte-police: "Lato", "Helvetica Neue", Arial, sans-serif;
  --thl-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --thl-mesure: 68ch;
  --thl-marge: clamp(1rem, 3.5vw, 2.5rem);
  --thl-gouttiere: clamp(1rem, 2.4vw, 1.75rem);
  --thl-souffle: clamp(2rem, 5vw, 4rem);
  --thl-max: 84rem;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--thl-papier);
  color: var(--thl-encre);
  font-family: var(--thl-texte-police);
  font-size: clamp(1rem, 0.95rem + 0.25vw, 1.125rem);
  line-height: 1.62;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; height: auto; }
a { color: var(--thl-sceau); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--thl-sceau-appuye); }
h1, h2, h3, h4 {
  font-family: var(--thl-titre-police);
  letter-spacing: -0.02em;
  line-height: 1.06;
  color: var(--thl-encre);
  margin: 0 0 0.6em;
  font-weight: 700;
  min-width: 0;
}
p { margin: 0 0 1em; min-width: 0; }
ul, ol { min-width: 0; }
figure { margin: 0; }
:focus-visible {
  outline: 3px solid var(--thl-sceau-appuye);
  outline-offset: 3px;
  border-radius: 4px;
}

/* Skip link */
.thl-evite {
  position: absolute; left: -999px; top: 0;
  background: var(--thl-encre); color: var(--thl-papier);
  padding: .6rem 1rem; border-radius: 0 0 var(--thl-r-sm) 0; z-index: 100;
}
.thl-evite:focus { left: 0; color: var(--thl-papier); }

/* Layout wrappers */
.thl-wrap {
  max-width: var(--thl-max);
  margin-inline: auto;
  padding-inline: var(--thl-marge);
  min-width: 0;
}
.thl-wrap > * { min-width: 0; }

/* ================= Mast ================= */
.thl-mast { background: var(--thl-sceau); color: var(--thl-papier); }
.thl-mast__ligne-haut {
  height: 6px;
  background: linear-gradient(90deg,
    var(--thl-sceau) 0 33%, var(--thl-sauge) 33% 66%, var(--thl-cuir) 66% 100%);
}
.thl-mast__inner {
  max-width: var(--thl-max); margin-inline: auto;
  padding: .9rem var(--thl-marge);
  display: grid; grid-template-columns: auto 1fr auto; gap: 1rem;
  align-items: center; min-width: 0;
}
.thl-mast__inner > * { min-width: 0; }
.thl-enseigne {
  display: inline-flex; align-items: center; gap: .6rem;
  color: var(--thl-papier); text-decoration: none; min-width: 0;
}
.thl-enseigne__emblem { color: var(--thl-sauge); display: inline-flex; }
.thl-enseigne__nom {
  font-family: var(--thl-titre-police);
  font-size: clamp(1.2rem, 1.1rem + 0.6vw, 1.6rem);
  letter-spacing: -0.03em;
}
.thl-devise {
  margin: 0; font-style: italic; font-size: .95rem;
  color: hsl(36, 30%, 88%); min-width: 0;
}
.thl-parcours ul {
  list-style: none; display: flex; flex-wrap: wrap; gap: .35rem 1rem;
  margin: 0; padding: 0; justify-content: flex-end;
}
.thl-parcours__lien {
  color: var(--thl-papier); text-decoration: none;
  font-size: .9rem; padding: .2rem .35rem;
  border-radius: 8px;
}
.thl-parcours__lien:hover { background: var(--thl-sceau-appuye); color: #fff; }
.thl-parcours__lien[aria-current="page"] {
  box-shadow: inset 0 -2px 0 var(--thl-sauge);
}

/* ================= Une (opening) ================= */
.thl-une {
  background: var(--thl-cuir);
  color: var(--thl-papier);
  padding-block: var(--thl-souffle);
  border-radius: 0 0 var(--thl-r-lg) var(--thl-r-lg);
  min-width: 0;
}
.thl-une__grille {
  max-width: var(--thl-max); margin-inline: auto;
  padding-inline: var(--thl-marge);
  display: grid; gap: clamp(1.25rem, 3vw, 2.5rem);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}
.thl-une__grille > * { min-width: 0; }
.thl-une__texte { min-width: 0; }
.thl-une__kick {
  font-family: var(--thl-mono);
  text-transform: uppercase; letter-spacing: .16em;
  font-size: .78rem;
  color: var(--thl-sauge); margin: 0 0 .6rem;
}
.thl-une__titre {
  font-size: clamp(2.2rem, 1.6rem + 4.4vw, 4.4rem);
  letter-spacing: -0.04em; line-height: 1.02;
  color: var(--thl-papier);
  text-shadow: 0 3px 14px hsla(348, 42%, 8%, 0.55);
  margin-bottom: .5rem;
}
.thl-une__intro {
  max-width: var(--thl-mesure);
  color: hsl(36, 30%, 90%);
}
.thl-une__compte {
  font-family: var(--thl-mono); font-size: .8rem;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--thl-sauge);
}
.thl-une__compte span { color: var(--thl-papier); font-weight: 700; }
.thl-une__image {
  display: block; text-decoration: none; color: inherit;
  background: var(--thl-carte); border-radius: var(--thl-r-lg);
  overflow: hidden; box-shadow: var(--thl-ombre-3);
  position: relative; min-width: 0;
}
.thl-une__image:hover .thl-une__titre-vedette { color: var(--thl-sceau); }
.thl-une__cadre {
  position: relative; border-radius: var(--thl-r-lg) var(--thl-r-lg) 0 0;
  overflow: hidden; background: var(--thl-scrim, hsl(35, 20%, 80%));
}
.thl-une__cadre img {
  width: 100%; max-width: 100%;
  aspect-ratio: var(--thl-ratio-une);
  object-fit: cover;
}
.thl-une__legende {
  position: absolute; inset: auto 0 0 0;
  padding: 1rem clamp(1rem, 3vw, 1.5rem) 1rem;
  background: linear-gradient(180deg, hsla(348, 42%, 12%, 0) 0%, hsla(348, 42%, 12%, .78) 100%);
  color: #fff;
  font-family: var(--thl-mono); font-size: .78rem;
  text-transform: uppercase; letter-spacing: .1em;
  text-shadow: 0 2px 8px hsla(348, 42%, 8%, .65);
  display: flex; gap: .6rem; align-items: center; flex-wrap: wrap;
}
.thl-une__cote {
  background: var(--thl-sauge-fonce); color: #fff;
  padding: .18rem .5rem; border-radius: 999px;
  font-weight: 700; font-family: var(--thl-mono);
}
.thl-une__chapeau {
  padding: clamp(1rem, 2.4vw, 1.5rem) clamp(1rem, 3vw, 1.75rem) clamp(1.25rem, 3vw, 1.75rem);
  background: var(--thl-carte); color: var(--thl-encre);
}
.thl-une__kicker {
  font-family: var(--thl-mono); text-transform: uppercase; letter-spacing: .14em;
  font-size: .78rem; color: var(--thl-sceau);
  margin: 0 0 .35rem;
}
.thl-une__titre-vedette {
  font-size: clamp(1.5rem, 1.2rem + 1.8vw, 2.3rem);
  letter-spacing: -0.03em;
  margin: 0 0 .45rem;
  color: var(--thl-encre);
}
.thl-une__abrege { margin: 0; color: var(--thl-encre-douce); }

/* ================= Rayons ================= */
.thl-rayon {
  padding-block: var(--thl-souffle) 0;
  min-width: 0;
}
.thl-rayon__tete {
  display: flex; flex-wrap: wrap; gap: .5rem 1rem;
  align-items: baseline; justify-content: space-between;
  border-bottom: 1px solid var(--thl-encre-filet);
  padding-bottom: .6rem; margin-bottom: clamp(1.25rem, 3vw, 2rem);
  min-width: 0;
}
.thl-rayon__tete > * { min-width: 0; }
.thl-rayon__tete h2 {
  font-size: clamp(1.4rem, 1.15rem + 1.2vw, 2rem);
  margin: 0; letter-spacing: -0.03em;
  border-left: 4px solid var(--thl-sceau);
  padding-left: .7rem;
}
.thl-rayon__phrase {
  margin: .35rem 0 0; max-width: var(--thl-mesure);
  color: var(--thl-encre-douce);
}
.thl-rayon__decompte {
  font-family: var(--thl-mono); font-size: .8rem;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--thl-encre-douce);
}

/* ================= Cartes (entrées) ================= */
.thl-casier {
  display: grid; gap: var(--thl-gouttiere);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}
.thl-casier > * { min-width: 0; }
.thl-casier--secondaires { grid-template-columns: minmax(0, 1fr); }

.thl-entree {
  display: grid; gap: .9rem;
  background: var(--thl-carte, #fff);
  border-radius: var(--thl-r-md);
  overflow: hidden;
  border: 1px solid var(--thl-encre-filet);
  box-shadow: var(--thl-ombre-4);
  position: relative;
  min-width: 0;
  transition: translate .18s ease, box-shadow .18s ease;
}
.thl-entree:hover {
  translate: 0 -3px;
  box-shadow: var(--thl-ombre-1);
}
.thl-entree__vignette {
  width: 100%; max-width: 100%; overflow: hidden;
  border-radius: 0;
  background: var(--thl-papier-creux);
}
.thl-entree__vignette a { display: block; }
.thl-entree__vignette img {
  width: 100%; max-width: 100%;
  aspect-ratio: var(--thl-ratio-paysage);
  object-fit: cover;
  filter: saturate(0.95) contrast(1.02);
}
.thl-entree__vignette--une img { aspect-ratio: var(--thl-ratio-une); }
.thl-entree__vignette--vignette img { aspect-ratio: var(--thl-ratio-vignette); }
.thl-entree__vignette--detail img { aspect-ratio: var(--thl-ratio-detail); }
.thl-entree__texte {
  padding: 0 clamp(1rem, 2.4vw, 1.25rem) clamp(1rem, 2.4vw, 1.25rem);
  min-width: 0;
}
.thl-entree__meta {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: .5rem .6rem; margin: 0 0 .5rem;
}
.thl-entree__titre {
  font-size: clamp(1.15rem, 1.05rem + 0.6vw, 1.45rem);
  letter-spacing: -0.02em;
  margin: 0 0 .45rem; line-height: 1.14;
}
.thl-entree__titre a { color: var(--thl-encre); text-decoration: none; }
.thl-entree__titre a:hover { color: var(--thl-sceau); text-decoration: underline; }
.thl-entree__abrege {
  margin: 0; color: var(--thl-encre-douce); font-size: .98rem;
  max-width: 44ch;
}

/* Cachet de cote */
.thl-cachet {
  display: inline-flex; align-items: center; gap: .35rem;
  border: 2px solid var(--thl-sceau);
  border-radius: 999px;
  padding: .18rem .55rem .18rem .45rem;
  background: var(--thl-sceau-tendre);
  color: var(--thl-sceau-appuye);
  font-family: var(--thl-mono); font-size: .74rem;
  letter-spacing: .1em; text-transform: uppercase;
  box-shadow: 2px 2px 0 hsla(354, 49%, 22%, .35);
  min-width: 0;
}
.thl-cachet--large { font-size: .82rem; padding: .3rem .75rem; }
.thl-cachet__cote { font-weight: 700; }
.thl-cachet__rub { color: var(--thl-encre); }
a.thl-cachet__rub { text-decoration: none; }

/* Registre (compact liste avec vignettes) */
.thl-registre {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: .5rem;
  background: var(--thl-carte, #fff);
  border-radius: var(--thl-r-md);
  border: 1px solid var(--thl-encre-filet);
  box-shadow: var(--thl-ombre-4);
  overflow: hidden;
}
.thl-registre__row {
  display: grid;
  grid-template-columns: 2.4rem clamp(3.5rem, 10vw, 5rem) minmax(0, 1fr);
  gap: .75rem; align-items: center;
  padding: .7rem clamp(.9rem, 2.4vw, 1.1rem);
  border-top: 1px dashed var(--thl-encre-filet);
  min-width: 0;
}
.thl-registre__row:first-child { border-top: 0; }
.thl-registre__row > * { min-width: 0; }
.thl-registre__row:hover { background: var(--thl-carte-creux); }
.thl-registre__num {
  font-family: var(--thl-mono); font-size: .82rem;
  color: var(--thl-encre-douce);
}
.thl-registre__vignette {
  width: 100%; max-width: 100%; overflow: hidden;
  border-radius: var(--thl-r-sm);
  background: var(--thl-papier-creux);
}
.thl-registre__vignette img {
  width: 100%; max-width: 100%;
  aspect-ratio: var(--thl-ratio-detail);
  object-fit: cover;
}
.thl-registre__meta {
  display: flex; flex-wrap: wrap; align-items: center;
  gap: .35rem .5rem; margin: 0 0 .2rem;
}
.thl-registre__titre {
  font-size: clamp(1.02rem, .98rem + 0.35vw, 1.18rem);
  margin: 0 0 .2rem; letter-spacing: -0.015em;
}
.thl-registre__titre a { color: var(--thl-encre); text-decoration: none; }
.thl-registre__titre a:hover { color: var(--thl-sceau); }
.thl-registre__abrege {
  margin: 0; color: var(--thl-encre-douce); font-size: .92rem;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Notes de marge */
.thl-notes {
  display: grid; gap: var(--thl-gouttiere);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}
.thl-notes > * { min-width: 0; }
.thl-note {
  background: var(--thl-carte, #fff);
  border-radius: var(--thl-r-md);
  padding: 1.1rem clamp(1rem, 2.4vw, 1.4rem) 1.25rem;
  box-shadow: var(--thl-ombre-2);
  border: 1px solid var(--thl-encre-filet);
  min-width: 0;
}
.thl-note__filet {
  height: 8px; margin: 0 0 .8rem;
  background-image: linear-gradient(transparent 0 2px,
    var(--thl-encre-filet) 2px 3px, transparent 3px 100%);
  background-size: 100% 8px;
}
.thl-note h3 {
  font-size: 1.15rem; margin: 0 0 .4rem;
  color: var(--thl-sceau-appuye);
}
.thl-note p:last-child { margin-bottom: 0; }
.thl-note code {
  font-family: var(--thl-mono); font-size: .85em;
  background: var(--thl-sceau-tendre); color: var(--thl-sceau-appuye);
  padding: .05rem .35rem; border-radius: 6px;
}

/* Rubriques (three registers) */
.thl-rubriques {
  display: grid; gap: var(--thl-gouttiere);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}
.thl-rubriques > * { min-width: 0; }
.thl-rubrique {
  background: var(--thl-carte, #fff);
  border-radius: var(--thl-r-md);
  padding: clamp(1.1rem, 2.4vw, 1.6rem);
  border: 1px solid var(--thl-encre-filet);
  box-shadow: var(--thl-ombre-4);
  min-width: 0;
}
.thl-rubrique__cote {
  display: inline-block;
  font-family: var(--thl-mono); font-size: .8rem;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--thl-sceau-appuye);
  background: var(--thl-sceau-tendre);
  border: 1px solid var(--thl-sceau);
  border-radius: 8px; padding: .2rem .5rem;
  margin-bottom: .5rem;
}
.thl-rubrique__titre {
  font-size: 1.5rem; margin: 0 0 .4rem;
  letter-spacing: -0.03em;
}
.thl-rubrique__titre a { color: var(--thl-encre); text-decoration: none; }
.thl-rubrique__titre a:hover { color: var(--thl-sceau); }
.thl-rubrique__intro {
  margin: 0 0 .9rem; color: var(--thl-encre-douce);
}
.thl-rubrique__vignette {
  width: 100%; max-width: 100%; overflow: hidden;
  border-radius: var(--thl-r-md);
  box-shadow: var(--thl-ombre-1);
  margin-bottom: .9rem;
}
.thl-rubrique__vignette a { display: block; }
.thl-rubrique__vignette img {
  width: 100%; max-width: 100%;
  aspect-ratio: var(--thl-ratio-paysage);
  object-fit: cover;
}
.thl-rubrique__liste {
  list-style: none; margin: 0 0 .8rem; padding: 0;
  display: grid; gap: .5rem;
}
.thl-rubrique__lien {
  display: grid; grid-template-columns: 3.6rem minmax(0, 1fr);
  gap: .7rem; align-items: center;
  padding: .45rem 0; min-width: 0;
  border-top: 1px dashed var(--thl-encre-filet);
}
.thl-rubrique__lien:first-child { border-top: 0; }
.thl-rubrique__lien > * { min-width: 0; }
.thl-rubrique__puce-vignette {
  width: 100%; max-width: 100%; overflow: hidden;
  border-radius: var(--thl-r-sm);
  background: var(--thl-papier-creux);
}
.thl-rubrique__puce-vignette img {
  width: 100%; max-width: 100%;
  aspect-ratio: var(--thl-ratio-detail);
  object-fit: cover;
}
.thl-rubrique__puce-texte { display: grid; gap: .2rem; min-width: 0; }
.thl-rubrique__puce-texte a {
  color: var(--thl-encre); text-decoration: none;
  font-weight: 700; line-height: 1.2;
  font-family: var(--thl-texte-police);
}
.thl-rubrique__puce-texte a:hover { color: var(--thl-sceau); text-decoration: underline; }
.thl-rubrique__puce-date { font-family: var(--thl-mono); font-size: .74rem; color: var(--thl-encre-douce); }
.thl-rubrique__tout { margin: 0; }
.thl-renvoi {
  display: inline-flex; align-items: center; gap: .3rem;
  font-family: var(--thl-mono); font-size: .8rem;
  text-transform: uppercase; letter-spacing: .12em;
  color: var(--thl-sceau); text-decoration: none;
}
.thl-renvoi:hover { color: var(--thl-sceau-appuye); text-decoration: underline; }

/* ================= Plan (salle) ================= */
.thl-plan {
  margin-top: var(--thl-souffle);
  background: var(--thl-sceau);
  color: var(--thl-papier);
  border-radius: var(--thl-r-lg);
  margin-inline: var(--thl-marge);
  padding: 0;
  min-width: 0;
}
.thl-plan__inner {
  padding-block: var(--thl-souffle);
  min-width: 0;
}
.thl-plan__inner > * { min-width: 0; }
.thl-plan__tete {
  display: grid; gap: .4rem;
  max-width: var(--thl-mesure);
  margin-bottom: 1.5rem;
  min-width: 0;
}
.thl-plan__cote {
  font-family: var(--thl-mono); font-size: .78rem;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--thl-sauge);
}
.thl-plan__titre {
  color: var(--thl-papier);
  font-size: clamp(1.6rem, 1.2rem + 1.8vw, 2.5rem);
  text-shadow: 0 3px 14px hsla(348, 42%, 8%, 0.5);
  margin: 0;
  letter-spacing: -0.03em;
}
.thl-plan__p { color: hsl(36, 28%, 90%); margin: 0; }
.thl-plan__pieces {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: .75rem; min-width: 0;
}
.thl-plan__pieces > * { min-width: 0; }
.thl-plan__piece {
  display: grid;
  grid-template-columns: 2.6rem minmax(0, 1fr) auto;
  gap: .6rem; align-items: center;
  padding: .85rem 1rem;
  border: 1px solid hsla(36, 30%, 88%, .35);
  border-radius: var(--thl-r-sm);
  background: hsla(348, 42%, 12%, .35);
  min-width: 0;
}
.thl-plan__piece > * { min-width: 0; }
.thl-plan__num { font-family: var(--thl-mono); font-size: .8rem; color: var(--thl-sauge); }
.thl-plan__label { color: var(--thl-papier); }
.thl-plan__code {
  font-family: var(--thl-mono); font-size: .78rem;
  border: 2px solid var(--thl-sauge); color: var(--thl-sauge);
  padding: .15rem .45rem; border-radius: 8px;
}

/* ================= Rubrique page ================= */
.thl-rub-head {
  padding-block: var(--thl-souffle) 1.25rem;
  min-width: 0;
}
.thl-rub-head__cote {
  display: inline-block;
  font-family: var(--thl-mono); font-size: .8rem;
  letter-spacing: .16em; text-transform: uppercase;
  color: var(--thl-sceau-appuye);
  background: var(--thl-sceau-tendre); border: 1px solid var(--thl-sceau);
  padding: .25rem .55rem; border-radius: 8px; margin-bottom: .6rem;
}
.thl-rub-head__titre {
  font-size: clamp(2rem, 1.5rem + 3vw, 3.4rem);
  letter-spacing: -0.04em;
  margin: 0 0 .5rem;
}
.thl-rub-head__intro { max-width: var(--thl-mesure); color: var(--thl-encre-douce); margin: 0; }

.thl-onglets {
  display: flex; flex-wrap: wrap; gap: .5rem;
  padding: .5rem; border-radius: var(--thl-r-md);
  background: var(--thl-carte, #fff);
  border: 1px solid var(--thl-encre-filet);
  box-shadow: var(--thl-ombre-4);
  min-width: 0;
}
.thl-onglet {
  font-family: var(--thl-mono); font-size: .82rem;
  text-transform: uppercase; letter-spacing: .12em;
  padding: .4rem .8rem; border-radius: 999px;
  color: var(--thl-encre); text-decoration: none;
  border: 1px solid transparent;
}
.thl-onglet:hover { background: var(--thl-sceau-tendre); color: var(--thl-sceau-appuye); }
.thl-onglet--courant {
  background: var(--thl-sceau); color: var(--thl-papier);
  border-color: var(--thl-sceau-appuye);
}

.thl-casier--rubrique {
  grid-template-columns: minmax(0, 1fr);
}

/* ================= Article ================= */
.thl-remontee { padding-block: 1rem; }
.thl-remontee ol {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .35rem .6rem;
  font-family: var(--thl-mono); font-size: .78rem;
  text-transform: uppercase; letter-spacing: .1em;
  color: var(--thl-encre-douce);
}
.thl-remontee ol li:not(:last-child)::after { content: "/"; margin-left: .6rem; color: var(--thl-encre-filet); }
.thl-remontee a { color: var(--thl-encre-douce); text-decoration: none; }
.thl-remontee a:hover { color: var(--thl-sceau); }

.thl-fiche { min-width: 0; }
.thl-entete-fiche {
  padding-block: clamp(1.5rem, 4vw, 3rem) clamp(1rem, 2.5vw, 1.6rem);
  min-width: 0;
}
.thl-entete-fiche__titre {
  font-size: clamp(2rem, 1.5rem + 3.4vw, 3.8rem);
  letter-spacing: -0.04em; line-height: 1.03;
  color: var(--thl-encre);
  text-shadow: 0 2px 12px hsla(35, 20%, 70%, 0.5);
  margin: .6rem 0 .55rem;
}
.thl-chapeau {
  font-size: clamp(1.08rem, 1rem + 0.5vw, 1.28rem);
  color: var(--thl-encre-douce);
  max-width: var(--thl-mesure);
  border-left: 4px solid var(--thl-sceau);
  padding-left: .9rem;
  margin: 0 0 .5rem;
}
.thl-datation {
  font-family: var(--thl-mono); font-size: .8rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--thl-encre-douce);
  margin: 0;
}

.thl-planche-image {
  margin: 0; width: 100%; max-width: 100%;
  border-radius: var(--thl-r-lg);
  overflow: hidden;
  box-shadow: var(--thl-ombre-3);
  background: var(--thl-papier-creux);
  position: relative;
}
.thl-planche-image img {
  width: 100%; max-width: 100%;
  aspect-ratio: var(--thl-ratio-une);
  object-fit: cover;
}
.thl-planche-image__cap {
  padding: .8rem clamp(1rem, 3vw, 1.5rem);
  background: var(--thl-carte, #fff);
  font-size: .92rem; color: var(--thl-encre-douce);
  border-top: 1px solid var(--thl-encre-filet);
}

.thl-duo {
  display: grid; gap: clamp(1.5rem, 4vw, 3rem);
  grid-template-columns: minmax(0, 1fr);
  padding-block: clamp(1.5rem, 4vw, 2.5rem);
  min-width: 0;
}
.thl-duo > * { min-width: 0; }

.thl-corps {
  max-width: var(--thl-mesure);
  min-width: 0;
}
.thl-corps > * { min-width: 0; }
.thl-corps h2 {
  margin-top: 2rem; padding-left: .7rem;
  border-left: 4px solid var(--thl-sceau);
  font-size: clamp(1.35rem, 1.2rem + 1vw, 1.85rem);
}
.thl-corps h3 { margin-top: 1.5rem; font-size: 1.2rem; }
.thl-corps p, .thl-corps li { font-size: 1.02rem; }
.thl-corps a { color: var(--thl-sceau); }
.thl-corps a:hover { color: var(--thl-sceau-appuye); }
.thl-corps blockquote {
  margin: 1.5rem 0; padding: .75rem 1rem .75rem 1.25rem;
  border-left: 4px solid var(--thl-sauge-fonce);
  background: var(--thl-carte-creux);
  border-radius: 0 var(--thl-r-sm) var(--thl-r-sm) 0;
  color: var(--thl-encre);
}
.thl-corps dl {
  display: grid; gap: .75rem;
  margin: 1.5rem 0 0;
  padding: 1rem 1.25rem;
  background: var(--thl-carte, #fff);
  border: 1px solid var(--thl-encre-filet);
  border-radius: var(--thl-r-md);
  box-shadow: var(--thl-ombre-4);
}
.thl-corps dl dt {
  font-family: var(--thl-mono); font-size: .78rem;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--thl-sceau-appuye);
}
.thl-corps dl dd { margin: .15rem 0 0; }
.thl-corps > .thl-defile { overflow-x: auto; max-width: 100%; border-radius: var(--thl-r-sm); }
.thl-corps table { border-collapse: collapse; width: 100%; min-width: 34rem; }
.thl-corps th, .thl-corps td {
  padding: .55rem .7rem; text-align: left;
  border-bottom: 1px solid var(--thl-encre-filet);
}
.thl-corps th { font-family: var(--thl-titre-police); }

.thl-marges { display: grid; gap: var(--thl-gouttiere); min-width: 0; }
.thl-marges > * { min-width: 0; }
.thl-marge-bloc {
  background: var(--thl-carte, #fff);
  border-radius: var(--thl-r-md);
  padding: 1rem clamp(1rem, 2.2vw, 1.25rem) 1.15rem;
  border: 1px solid var(--thl-encre-filet);
  box-shadow: var(--thl-ombre-2);
  min-width: 0;
}
.thl-marge-bloc h2 {
  font-size: .82rem; letter-spacing: .16em; text-transform: uppercase;
  font-family: var(--thl-mono); font-weight: 700;
  color: var(--thl-sceau-appuye);
  margin: 0 0 .6rem;
  border-left: 4px solid var(--thl-sceau);
  padding-left: .55rem;
}
.thl-marge-bloc__rail, .thl-marge-bloc__sommaire, .thl-marge-bloc__sources {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: .55rem;
}
.thl-marge-bloc__rail li {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: .3rem .6rem; align-items: center;
  padding-bottom: .55rem;
  border-bottom: 1px dashed var(--thl-encre-filet);
  min-width: 0;
}
.thl-marge-bloc__rail li:last-child { border-bottom: 0; padding-bottom: 0; }
.thl-marge-bloc__rail li > * { min-width: 0; }
.thl-marge-bloc__puce {
  grid-row: span 2;
  width: 100%; max-width: 100%; border-radius: var(--thl-r-sm);
  overflow: hidden; background: var(--thl-papier-creux);
}
.thl-marge-bloc__puce img {
  width: 100%; max-width: 100%;
  aspect-ratio: var(--thl-ratio-detail);
  object-fit: cover;
}
.thl-marge-bloc__rail a {
  color: var(--thl-encre); text-decoration: none;
  font-weight: 700; line-height: 1.2;
  font-family: var(--thl-texte-police);
}
.thl-marge-bloc__rail a:hover { color: var(--thl-sceau); text-decoration: underline; }
.thl-marge-bloc__date {
  font-family: var(--thl-mono); font-size: .74rem;
  color: var(--thl-encre-douce);
}
.thl-marge-bloc__sommaire a,
.thl-marge-bloc__sources a {
  color: var(--thl-sceau); text-decoration: none;
}
.thl-marge-bloc__sommaire a:hover,
.thl-marge-bloc__sources a:hover { text-decoration: underline; }

/* ================= Service / 404 / préambule ================= */
.thl-preambule {
  padding-block: var(--thl-souffle);
  max-width: var(--thl-mesure);
  min-width: 0;
}
.thl-fiche--service { padding-block: clamp(1rem, 3vw, 2rem) var(--thl-souffle); }

/* ================= Réseau ================= */
.thl-ailleurs { padding-bottom: var(--thl-souffle); }
.thl-ailleurs__liste {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: .7rem;
  grid-template-columns: minmax(0, 1fr);
}
.thl-ailleurs__item {
  background: var(--thl-carte, #fff);
  border: 1px solid var(--thl-encre-filet);
  border-radius: var(--thl-r-sm);
  padding: .8rem 1rem;
  box-shadow: var(--thl-ombre-4);
  color: var(--thl-encre-douce);
  min-width: 0;
}
.thl-ailleurs__item p { margin: 0; }

/* ================= Socle (pied) ================= */
.thl-socle {
  margin-top: var(--thl-souffle);
  background: var(--thl-papier-creux);
  border-top: 4px solid var(--thl-sceau);
  min-width: 0;
}
.thl-socle__inner {
  max-width: var(--thl-max); margin-inline: auto;
  padding: var(--thl-souffle) var(--thl-marge) 1.25rem;
  display: grid; gap: var(--thl-gouttiere);
  grid-template-columns: minmax(0, 1fr);
  min-width: 0;
}
.thl-socle__inner > * { min-width: 0; }
.thl-socle__colonne h2 {
  font-size: 1rem; letter-spacing: -0.02em;
  border-left: 4px solid var(--thl-sceau);
  padding-left: .6rem;
  margin-bottom: .5rem;
}
.thl-socle__colonne p { color: var(--thl-encre-douce); font-size: .95rem; }
.thl-socle__colonne ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
.thl-socle__colonne a { color: var(--thl-sceau); text-decoration: none; font-size: .95rem; }
.thl-socle__colonne a:hover { text-decoration: underline; color: var(--thl-sceau-appuye); }
.thl-socle__note {
  font-style: italic;
  border-left: 3px solid var(--thl-encre-filet);
  padding-left: .8rem;
  color: var(--thl-encre);
}
.thl-socle__ligne {
  max-width: var(--thl-max); margin-inline: auto;
  padding: .9rem var(--thl-marge);
  border-top: 1px solid var(--thl-encre-filet);
  font-family: var(--thl-mono); font-size: .78rem;
  letter-spacing: .12em; text-transform: uppercase;
  color: var(--thl-encre-douce);
}

/* ================= Responsive ================= */
@media (min-width: 40rem) {
  .thl-casier--secondaires { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thl-notes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thl-ailleurs__liste { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thl-plan__pieces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 56rem) {
  .thl-mast__inner { grid-template-columns: auto 1fr auto; }
  .thl-une__grille {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    align-items: center;
  }
  .thl-casier--secondaires { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thl-notes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .thl-rubriques { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thl-duo {
    grid-template-columns: minmax(0, 1fr) minmax(0, 20rem);
    align-items: start;
  }
  .thl-marges { position: sticky; top: 1rem; }
  .thl-socle__inner { grid-template-columns: 2fr 1fr 1fr; }
  .thl-casier--rubrique { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .thl-plan__pieces { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 76rem) {
  .thl-casier--secondaires { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .thl-rubriques { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .thl-plan__pieces { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .thl-casier--rubrique { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 40rem) {
  .thl-une__legende { position: static; background: none; color: var(--thl-encre-douce); text-shadow: none; }
  .thl-une__cote { background: var(--thl-sceau-tendre); color: var(--thl-sceau-appuye); }
  .thl-registre__row { grid-template-columns: 2rem 3.4rem minmax(0, 1fr); gap: .55rem; padding: .6rem .7rem; }
  .thl-une__titre { text-shadow: 0 2px 10px hsla(348, 42%, 8%, 0.5); }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  .thl-entree:hover { translate: 0; }
}
