/* ============================================================
   LE CLASSEUR ANNOTÉ — The License Binder (tlb-)
   Un classeur de lecture de licences : onglets d'intercalaires,
   tampons de statut, clauses en §, ligne de signature.
   ============================================================ */

@font-face { font-family: 'tlb-titre'; src: url('/tlb-gloock-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'tlb-doc'; src: url('/tlb-spectral-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'tlb-doc'; src: url('/tlb-spectral-600.woff2') format('woff2'); font-weight: 600; font-display: swap; }
@font-face { font-family: 'tlb-doc'; src: url('/tlb-spectral-400i.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: 'tlb-mono'; src: url('/tlb-courier-prime-400.woff2') format('woff2'); font-weight: 400; font-display: swap; }
@font-face { font-family: 'tlb-mono'; src: url('/tlb-courier-prime-700.woff2') format('woff2'); font-weight: 700; font-display: swap; }

:root {
  /* matières : papier parlementaire, feuille, encres, ronéo, encreur, drap */
  --papier: #F5F1E2;
  --papier-fonce: #EBE3CC;
  --feuille: #FBF8EC;
  --encre: #232038;
  --encre-douce: #5E5878;
  --roneo: #4630A8;          /* l'encre violette des polycopiés — LA signature */
  --roneo-fonce: #32217F;
  --encreur: #B03A28;        /* tampon et redline */
  --ocre: #9A6414;
  --drap: #231E3D;           /* la toile du classeur */
  --drap2: #1B1730;
  --drap-encre: #EDE8F6;
  --or-tranche: #C9A96E;
  --filet: #D9CFB2;
  --filet-fort: #B8AC88;
  --rayon: 14px;
  --ombre: 0 18px 34px -14px rgba(70, 48, 168, .30), 0 2px 0 0 rgba(35, 32, 56, .06);
  --ombre-feuille: 0 10px 24px -12px rgba(70, 48, 168, .26), 0 1px 0 0 rgba(35, 32, 56, .08);
  --mesure: 68ch;
  --pas: 1.5rem;
  /* encres de parti, posées par [data-part] */
  --part: var(--roneo);
}
[data-part="the-definitions"] { --part: #4630A8; }
[data-part="the-models"]      { --part: #23614E; }
[data-part="the-community"]   { --part: #9A6414; }
[data-part="the-record"]      { --part: #4C5A74; }

/* Règle négative : jamais de texte courant en roneo — le violet reste aux
   aplats, aux filets d'appui et aux onglets ; l'encre porte la lecture. */

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'tlb-doc', Georgia, serif;
  font-size: clamp(15.5px, .55vw + 14px, 16.5px);
  line-height: 1.66;
  color: var(--encre);
  background:
    radial-gradient(circle at 12% 8%, rgba(70,48,168,.05), transparent 34rem),
    linear-gradient(var(--papier), var(--papier));
}
::selection { background: rgba(70,48,168,.22); }
img { display: block; max-width: 100%; height: auto;}
a { color: var(--roneo-fonce); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--encreur); }

.tlb-acces-direct {
  position: absolute; left: -9999px; top: 0;
  background: var(--roneo); color: #fff; padding: .6rem 1rem; z-index: 40;
  font-family: 'tlb-mono', monospace; font-size: .8rem; border-radius: 0 0 10px 0;
}
.tlb-acces-direct:focus { left: 0; }

.tlb-rangee { max-width: 72rem; margin-inline: auto; padding-inline: clamp(1rem, 4vw, 2.4rem); }
.tlb-picto { width: 1.15em; height: 1.15em; vertical-align: -.22em; }

/* ---------- la manchette : la page de titre du classeur ---------- */
.tlb-manchette { border-bottom: 2px solid var(--encre); }
.tlb-edition {
  display: flex; justify-content: space-between; gap: 1rem;
  font-family: 'tlb-mono', monospace; font-size: .72rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--encre-douce);
  padding-top: .25rem; padding-bottom: .25rem;
  border-bottom: 1px solid var(--filet);
}
.tlb-plaque {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem;
  padding-top: .45rem; padding-bottom: .35rem;
}
.tlb-oreille {
  font-family: 'tlb-mono', monospace; font-size: .68rem; letter-spacing: .16em;
  text-transform: uppercase; color: var(--encre-douce); margin: 0; text-align: center;
}
.tlb-plaque__centre { text-align: center; }
.tlb-enseigne { margin: 0; font-family: 'tlb-titre', Georgia, serif; font-weight: 400; }
.tlb-enseigne a {
  display: inline-flex; align-items: center; gap: .7rem;
  color: var(--encre); text-decoration: none;
}
.tlb-enseigne__mot { font-size: clamp(1.7rem, 4vw, 2.5rem); letter-spacing: -.015em; line-height: 1; }
.tlb-marque-onglet { width: 2rem; height: auto; flex: none; filter: drop-shadow(0 4px 6px rgba(35,32,56,.25)); }
.tlb-devise {
  margin: .15rem 0 0; font-style: italic; color: var(--encre-douce);
  font-size: clamp(.88rem, 1.5vw, .98rem);
}
/* la rangée d'onglets : les onglets d'intercalaires sous la plaque */
.tlb-onglets { padding-inline: clamp(1rem, 4vw, 2.4rem); }
.tlb-onglets ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center;
}
.tlb-onglets a {
  display: inline-block; padding: .38rem .95rem .3rem;
  font-family: 'tlb-mono', monospace; font-size: .78rem; letter-spacing: .05em;
  color: var(--encre); text-decoration: none;
  background: var(--papier-fonce);
  border: 1.5px solid var(--filet-fort); border-bottom: none;
  border-radius: 10px 10px 0 0;
  transform: translateY(1.5px);
}
.tlb-onglets a[data-part] { border-top: 3.5px solid var(--part); }
.tlb-onglets a[aria-current] {
  background: var(--feuille); font-weight: 700;
  box-shadow: 0 -6px 12px -8px rgba(70,48,168,.5);
}

/* ---------- le héros : la couverture du classeur ---------- */
.tlb-heros {
  margin-top: clamp(.7rem, 1.4vw, 1.1rem);
  padding-top: clamp(1.8rem, 4vw, 3rem); padding-bottom: clamp(1.8rem, 4vw, 3rem);
  background:
    linear-gradient(160deg, var(--roneo) 0%, var(--roneo-fonce) 78%);
  border-radius: var(--rayon);
  box-shadow: var(--ombre);
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: clamp(1.4rem, 3.5vw, 2.8rem); align-items: center;
  color: var(--drap-encre);
  position: relative; overflow: visible;
}
.tlb-heros__visuel {
  position: relative;
  margin: 0; margin-left: clamp(-2.6rem, -2vw, -1rem);
  transform: rotate(-1.1deg);
  background: var(--feuille); padding: .7rem .7rem 0;
  border-radius: var(--rayon); box-shadow: 0 24px 44px -16px rgba(15, 10, 40, .55);
}
.tlb-heros__visuel picture { border-radius: 8px; overflow: hidden; display: block; }
.tlb-heros__visuel img { width: 100%; height: auto; aspect-ratio: 7 / 4.4; object-fit: cover; }
.tlb-heros__visuel figcaption {
  font-size: .82rem; color: var(--encre-douce); padding: .55rem .2rem .7rem; line-height: 1.4;
}
.tlb-credit { font-family: 'tlb-mono', monospace; font-size: .72rem; display: block; opacity: .8; }
.tlb-heros__texte { padding-right: clamp(.4rem, 2vw, 1.6rem); }
.tlb-heros__tampon .tlb-tampon { margin-bottom: .8rem; }
.tlb-heros__titre {
  margin: .2rem 0 .6rem; font-family: 'tlb-titre', Georgia, serif; font-weight: 400;
  font-size: clamp(1.7rem, 3.4vw, 2.6rem); line-height: 1.08; letter-spacing: -.01em;
}
.tlb-heros__titre a { color: #fff; text-decoration: none; }
.tlb-heros__titre a:hover { color: var(--or-tranche); }
.tlb-heros__chapo { font-size: 1.06rem; line-height: 1.5; color: #DCD5F2; margin: 0 0 .7rem; }
.tlb-heros__intro {
  font-size: .98rem; line-height: 1.62; color: #C6BDE4; margin: 0 0 1.2rem;
  border-left: 3px solid var(--or-tranche); padding-left: .9rem;
}
.tlb-heros__intro b { color: #fff; font-weight: 600; }
.tlb-heros__actions { display: flex; gap: .8rem; flex-wrap: wrap; margin: 0; }
.tlb-bouton {
  display: inline-block; padding: .68rem 1.3rem;
  font-family: 'tlb-mono', monospace; font-weight: 700; font-size: .82rem; letter-spacing: .06em;
  color: var(--roneo); background: var(--feuille);
  border-radius: 999px; text-decoration: none;
  box-shadow: 0 8px 18px -8px rgba(15,10,40,.5);
}
.tlb-bouton:hover { background: #fff; color: var(--roneo-fonce); transform: translateY(-1px); }
.tlb-bouton--clair { background: transparent; color: var(--drap-encre); box-shadow: inset 0 0 0 1.6px rgba(237,232,246,.55); }
.tlb-bouton--clair:hover { color: #fff; box-shadow: inset 0 0 0 1.6px #fff; background: transparent; }

/* ---------- les têtes de bande ---------- */
.tlb-tetebande {
  display: flex; align-items: baseline; justify-content: space-between; gap: 1rem;
  border-bottom: 2px solid var(--encre); margin-bottom: 1.2rem; padding-bottom: .4rem;
}
.tlb-tetebande h2 {
  margin: 0; font-family: 'tlb-titre', Georgia, serif; font-weight: 400;
  font-size: clamp(1.3rem, 2.4vw, 1.7rem); letter-spacing: -.01em;
}
.tlb-tetebande h2 a { color: inherit; text-decoration: none; }
.tlb-tetebande__decompte {
  font-family: 'tlb-mono', monospace; font-weight: 700; font-size: .8rem;
  color: var(--roneo); border: 1.6px solid var(--roneo); border-radius: 999px;
  padding: .1rem .6rem;
}
.tlb-tetebande__note { margin: 0; font-size: .88rem; color: var(--encre-douce); max-width: 34ch; text-align: right; }

/* ---------- le tampon encreur ---------- */
.tlb-tampon {
  display: inline-block;
  font-family: 'tlb-mono', monospace; font-weight: 700; font-size: .62rem;
  letter-spacing: .15em; text-transform: uppercase; color: #FDFBF4;
  background: var(--part);
  padding: .34rem .8rem .3rem 1.05rem;
  clip-path: polygon(.62em 0, 100% 0, 100% 100%, 0 100%);
  text-shadow: 0 -1px 0 rgba(0,0,0,.28);
}
.tlb-piece .tlb-tampon {
  position: absolute; top: -1.45rem; right: .9rem; z-index: 3;
  filter: drop-shadow(0 3px 3px rgba(35,32,56,.24));
}

/* ---------- l'onglet adhésif ---------- */
.tlb-signet {
  position: absolute; top: 2.2rem; right: -.65rem; z-index: 3;
  transform: rotate(4deg);
  filter: drop-shadow(0 3px 5px rgba(35,32,56,.3));
}
.tlb-signet svg { display: block; }
.tlb-signet path { fill: var(--or-tranche); }

/* ---------- les pièces (cartes) ---------- */
.tlb-pieces {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem 1.3rem; margin-bottom: 2.4rem;
}
.tlb-piece {
  position: relative;
  background: var(--feuille);
  border: 1px solid var(--filet);
  border-radius: var(--rayon);
  box-shadow: var(--ombre-feuille);
  padding: .9rem .9rem 1.05rem;
  display: flex; flex-direction: column; gap: .55rem;
}
.tlb-piece:nth-child(3n+2) { transform: rotate(.8deg); }
.tlb-piece:nth-child(3n)   { transform: rotate(-.7deg); }
.tlb-piece:hover { transform: translateY(-3px) rotate(0deg); transition: transform .18s ease; }
.tlb-piece--large { grid-column: span 2; }
.tlb-piece--large .tlb-piece__vignette img { aspect-ratio: 21 / 9; }

.tlb-plomb {
  display: flex; align-items: center; gap: .7rem; margin: 0;
  font-family: 'tlb-mono', monospace; font-size: .72rem; letter-spacing: .05em;
}
.tlb-plomb__part {
  display: inline-flex; align-items: center; gap: .35rem;
  color: var(--part); font-weight: 700; text-decoration: none; text-transform: uppercase;
  letter-spacing: .08em; font-size: .7rem;
}
.tlb-plomb__part:hover { color: var(--encreur); }
.tlb-plomb__date { margin-left: auto; color: var(--encre-douce); }

.tlb-piece__vignette { margin: 0; }
.tlb-piece__vignette picture { display: block; border-radius: 10px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(35,32,56,.15); }
.tlb-piece__vignette img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.tlb-piece__intitule {
  margin: 0; font-family: 'tlb-titre', Georgia, serif; font-weight: 400;
  font-size: 1.16rem; line-height: 1.18; letter-spacing: -.008em;
}
.tlb-piece__intitule a { color: var(--encre); text-decoration: none; }
.tlb-piece__intitule a:hover { color: var(--roneo); }
.tlb-piece__abrege { margin: 0; font-size: .9rem; line-height: 1.55; color: var(--encre-douce); }
.tlb-piece__lecture {
  margin: auto 0 0; padding-top: .4rem;
  font-family: 'tlb-mono', monospace; font-size: .7rem; letter-spacing: .1em;
  text-transform: uppercase; color: var(--encreur);
  border-top: 1px dashed var(--filet-fort);
}

/* ---------- l'index des clauses ---------- */
.tlb-indexation {
  background: var(--papier-fonce);
  border: 1px solid var(--filet-fort); border-radius: var(--rayon);
  padding: 1.4rem 1.6rem 1.6rem; margin-bottom: 2.6rem;
  box-shadow: var(--ombre-feuille);
}
.tlb-indexation__parts {
  list-style: none; margin: 0; padding: 0;
  columns: 2; column-gap: 2.6rem; column-rule: 1px solid var(--filet-fort);
}
.tlb-indexation__part { break-inside: avoid; margin-bottom: 1.1rem; }
.tlb-indexation__part > h3 {
  margin: 0 0 .35rem; font-family: 'tlb-mono', monospace; font-weight: 700;
  font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--part);
}
.tlb-indexation__part > h3 a { color: inherit; text-decoration: none; }
.tlb-clauses { list-style: none; margin: 0; padding: 0; }
.tlb-clauses a {
  display: flex; gap: .55rem; padding: .3rem 0; align-items: baseline;
  color: var(--encre); text-decoration: none; font-size: .94rem; line-height: 1.35;
  border-bottom: 1px dotted var(--filet-fort);
}
.tlb-clauses a::before {
  content: "§";
  font-family: 'tlb-mono', monospace; font-size: .8rem; font-weight: 700;
  color: var(--part); flex: none;
}
.tlb-clauses a:hover { color: var(--roneo-fonce); }

/* ---------- les brèves ---------- */
.tlb-brins { list-style: none; margin: 0 0 2.6rem; padding: 0; columns: 2; column-gap: 2.4rem; }
.tlb-brin { break-inside: avoid; }
.tlb-brin a {
  display: flex; gap: .6rem; align-items: baseline; padding: .5rem 0;
  border-bottom: 1px solid var(--filet); color: var(--encre); text-decoration: none;
}
.tlb-brin__ref { font-family: 'tlb-mono', monospace; font-weight: 700; color: var(--part); }
.tlb-brin__intitule { font-size: .95rem; line-height: 1.4; }
.tlb-brin__date { margin-left: auto; font-family: 'tlb-mono', monospace; font-size: .72rem; color: var(--encre-douce); flex: none; }
.tlb-brin a:hover .tlb-brin__intitule { color: var(--roneo); }

/* ---------- la carte sommaire : la fiche lignée collée en garde du classeur ---------- */
.tlb-carte-sommaire {
  display: grid; grid-template-columns: 3.4rem minmax(0,1fr);
  margin-top: 2.8rem; margin-bottom: .4rem;
  background: var(--feuille);
  border: 1px solid var(--filet-fort); border-radius: var(--rayon);
  box-shadow: var(--ombre);
}
.tlb-carte__perfo {
  display: flex; flex-direction: column; justify-content: space-evenly; align-items: center;
  border-right: 2px dashed var(--filet-fort);
}
.tlb-carte__perfo span {
  width: 1.15rem; height: 1.15rem; border-radius: 50%;
  background: var(--papier);
  box-shadow: inset 0 2px 4px rgba(35,32,56,.28), 0 1px 0 rgba(255,255,255,.6);
}
.tlb-carte__corps { padding: 1.5rem 1.8rem 1.2rem; }
.tlb-carte__tete { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; border-bottom: 2px solid var(--encre); padding-bottom: .45rem; margin-bottom: .4rem; }
.tlb-carte__tete h2 { margin: 0; font-family: 'tlb-titre', Georgia, serif; font-weight: 400; font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
.tlb-carte__note { margin: 0; font-size: .88rem; color: var(--encre-douce); max-width: 40ch; text-align: right; }
.tlb-carte__lignes { list-style: none; margin: 0; padding: 0; }
.tlb-carte__ligne {
  display: flex; align-items: center; gap: 1rem;
  border-bottom: 1px solid var(--filet);
  padding: .7rem 0;
}
.tlb-carte__ligne > a {
  display: grid; grid-template-columns: 2.2rem minmax(9rem, 14rem) minmax(0, 1fr) auto;
  align-items: center; gap: 1rem; flex: 1;
  color: var(--encre); text-decoration: none;
}
.tlb-carte__marque {
  display: inline-flex; align-items: center; justify-content: center;
  width: 1.9rem; height: 1.9rem; border-radius: 8px;
  color: var(--part); background: color-mix(in srgb, var(--part) 12%, var(--feuille));
  border: 1px solid color-mix(in srgb, var(--part) 30%, var(--feuille));
}
.tlb-carte__label { font-family: 'tlb-titre', Georgia, serif; font-weight: 400; font-size: 1.15rem; color: var(--encre); }
.tlb-carte__ligne a:hover .tlb-carte__label { color: var(--part); }
.tlb-carte__intro { font-size: .86rem; line-height: 1.45; color: var(--encre-douce); }
.tlb-carte__decompte {
  font-family: 'tlb-mono', monospace; font-size: .7rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--encreur); flex: none;
}
.tlb-carte__ligne .tlb-tampon { font-size: .58rem; }

/* ---------- la section réseau ---------- */
.tlb-voisines-reliure { margin: 2.8rem 0 1.6rem; }
.tlb-voisines__liste { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; }
.tlb-voisines__item {
  background: var(--feuille); border: 1px solid var(--filet); border-radius: 10px;
  padding: .9rem 1rem; box-shadow: var(--ombre-feuille);
  border-left: 5px solid var(--roneo);
}
.tlb-voisines__item p { margin: 0; font-size: .92rem; line-height: 1.55; color: var(--encre-douce); }
.tlb-voisines__item a { font-weight: 600; }

/* ---------- la ligne de signature ---------- */
.tlb-parafe {
  display: flex; align-items: baseline; gap: 1rem;
  max-width: 72rem; margin: 2.6rem auto 1.6rem; padding-inline: clamp(1rem, 4vw, 2.4rem);
  font-family: 'tlb-mono', monospace; font-size: .78rem; color: var(--encre-douce);
}
.tlb-parafe__mot { flex: none; letter-spacing: .1em; text-transform: uppercase; }
.tlb-parafe__ligne { flex: 1; border-bottom: 1.6px dotted var(--encreur); transform: translateY(-.3em); }
.tlb-parafe__date { flex: none; }

/* ---------- la page de rubrique ---------- */
.tlb-tetepage { padding-top: 1.6rem; padding-bottom: .6rem; }
.tlb-tetepage__statut {
  display: flex; align-items: center; gap: .8rem; margin: 0 0 .5rem;
  color: var(--part); font-family: 'tlb-mono', monospace; font-size: .8rem;
}
.tlb-tetepage h1 {
  margin: 0 0 .4rem; font-family: 'tlb-titre', Georgia, serif; font-weight: 400;
  font-size: clamp(1.9rem, 4vw, 2.7rem); letter-spacing: -.012em; line-height: 1.05;
}
.tlb-tetepage__intro { margin: 0; max-width: var(--mesure); font-size: 1.02rem; color: var(--encre-douce); line-height: 1.6; }
.tlb-onglets-partis {
  display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.1rem 0 1.6rem;
}
.tlb-onglet {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .5rem .95rem .42rem;
  font-family: 'tlb-mono', monospace; font-size: .76rem; letter-spacing: .04em;
  color: var(--encre); text-decoration: none;
  background: var(--papier-fonce);
  border: 1.5px solid var(--filet-fort); border-bottom: none;
  border-radius: 10px 10px 0 0; border-top: 3.5px solid var(--part);
}
.tlb-onglet--courant { background: var(--feuille); font-weight: 700; box-shadow: 0 -6px 12px -8px rgba(70,48,168,.5); }

/* le fil de pièces : une fiche par ligne */
.tlb-pieces--fil { grid-template-columns: 1fr; gap: 1.1rem; }
.tlb-pieces--fil .tlb-piece { display: grid; grid-template-columns: minmax(0, 26rem) minmax(0, 1fr); align-items: start; gap: 1.1rem; }
.tlb-pieces--fil .tlb-piece .tlb-plomb { grid-column: 1 / -1; }
.tlb-pieces--fil .tlb-piece__vignette { grid-row: 2; }
.tlb-pieces--fil .tlb-piece__texte { grid-row: 2; display: flex; flex-direction: column; gap: .5rem; height: 100%; }

/* ---------- la page article : la pièce lue ---------- */
.tlb-dossier__entete { padding-top: 1.4rem; }
.tlb-dossier__entete h1 {
  margin: .4rem 0 .5rem; font-family: 'tlb-titre', Georgia, serif; font-weight: 400;
  font-size: clamp(1.85rem, 3.8vw, 2.75rem); letter-spacing: -.012em; line-height: 1.07;
  max-width: 26ch;
}
.tlb-dossier__chapo {
  margin: 0 0 .8rem; font-size: clamp(1.05rem, 1.8vw, 1.22rem); line-height: 1.5;
  color: var(--roneo-fonce); max-width: 58ch; font-weight: 400;
}
.tlb-dossier__signature {
  margin: 0; font-family: 'tlb-mono', monospace; font-size: .76rem; letter-spacing: .03em;
  color: var(--encre-douce); padding-bottom: 1rem; border-bottom: 1px solid var(--filet);
}
.tlb-dossier__signature b { color: var(--encre); }
.tlb-dossier__visuel {
  position: relative; margin: 1.6rem auto; max-width: 72rem;
  padding-inline: clamp(1rem, 4vw, 2.4rem);
}
.tlb-dossier__visuel picture { display: block; border-radius: var(--rayon); overflow: hidden; box-shadow: var(--ombre); }
.tlb-dossier__visuel img { width: 100%; height: auto; aspect-ratio: 21 / 10; object-fit: cover; }
.tlb-dossier__visuel figcaption {
  font-size: .84rem; color: var(--encre-douce); padding-top: .55rem; line-height: 1.45;
}
.tlb-dossier__visuel .tlb-signet { top: 1.6rem; right: .4rem; }

/* le pupitre : corps à gauche, onglets collants à droite */
.tlb-dossier__duo {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 16.5rem);
  gap: clamp(1.6rem, 4vw, 3rem); align-items: start;
}
.tlb-corps { max-width: var(--mesure); font-size: 1.02rem; }
.tlb-corps > p:first-of-type::first-letter {
  font-family: 'tlb-titre', Georgia, serif; font-weight: 400; font-size: 3.4em;
  float: left; line-height: .86; padding: .06em .12em 0 0; color: var(--roneo);
}
.tlb-corps h2 {
  counter-increment: clause;
  font-family: 'tlb-titre', Georgia, serif; font-weight: 400; font-size: 1.42rem; line-height: 1.2;
  margin: 2.2rem 0 .7rem; padding-bottom: .3rem;
  border-bottom: 2px solid var(--encre);
  display: flex; align-items: baseline; gap: .7rem;
}
.tlb-corps h2::before {
  content: "§" counter(clause, decimal-leading-zero);
  font-family: 'tlb-mono', monospace; font-weight: 700; font-size: .82rem;
  color: var(--roneo); letter-spacing: .05em; flex: none;
}
.tlb-corps { counter-reset: clause 0; }
.tlb-corps h2 + h3 { margin-top: 1rem; }
.tlb-corps h3 { font-family: 'tlb-titre', Georgia, serif; font-weight: 400; font-size: 1.1rem; margin: 1.5rem 0 .4rem; color: var(--roneo-fonce); }
.tlb-corps p { margin: 0 0 1.05rem; }
.tlb-corps a { color: var(--roneo-fonce); font-weight: 600; }
.tlb-corps blockquote {
  margin: 1.4rem 0; padding: .9rem 1.2rem;
  border-left: 4px solid var(--roneo); background: var(--papier-fonce);
  border-radius: 0 10px 10px 0; font-style: italic; color: var(--encre-douce);
}
.tlb-corps ul, .tlb-corps ol { padding-left: 1.4rem; margin: 0 0 1.05rem; }
.tlb-corps li { margin-bottom: .3rem; }
.tlb-corps strong { color: var(--encre); }
.tlb-corps table { width: 100%; border-collapse: collapse; font-size: .92rem; margin: 1.2rem 0; }
.tlb-corps th, .tlb-corps td { border: 1px solid var(--filet-fort); padding: .45rem .6rem; text-align: left; }
.tlb-corps th { background: var(--papier-fonce); font-family: 'tlb-mono', monospace; font-size: .78rem; letter-spacing: .04em; }

/* le dl du lecteur : ce que le texte accorde / à vérifier / la limite */
.tlb-glose {
  margin: 2.4rem 0; padding: 1.1rem 1.3rem;
  background: var(--papier-fonce); border: 1.5px solid var(--filet-fort);
  border-radius: var(--rayon); box-shadow: var(--ombre-feuille);
  display: grid; gap: .8rem;
}
.tlb-glose dt {
  font-family: 'tlb-mono', monospace; font-weight: 700; font-size: .72rem;
  letter-spacing: .16em; text-transform: uppercase; color: var(--roneo);
}
.tlb-glose dd { margin: -.6rem 0 0; font-size: .92rem; line-height: 1.5; color: var(--encre-douce); }

/* la marge : les onglets du classeur */
.tlb-marge {
  position: sticky; top: 1.2rem;
  display: flex; flex-direction: column; gap: 1.1rem;
  font-size: .88rem;
}
.tlb-marge__part {
  background: var(--feuille); border: 1px solid var(--filet);
  border-top: 6px solid var(--part);
  border-radius: 10px; padding: .85rem 1rem; box-shadow: var(--ombre-feuille);
}
.tlb-marge__statut {
  display: flex; align-items: center; gap: .5rem;
  font-family: 'tlb-mono', monospace; font-size: .68rem; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: var(--part);
}
.tlb-marge__label {
  display: block; margin-top: .3rem;
  font-family: 'tlb-titre', Georgia, serif; font-weight: 400; font-size: 1.02rem;
  color: var(--encre); text-decoration: none;
}
.tlb-marge__label:hover { color: var(--roneo); }
.tlb-marge__titre {
  margin: 0 0 .3rem; font-family: 'tlb-mono', monospace; font-weight: 700;
  font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--encre-douce);
  border-bottom: 1px solid var(--filet); padding-bottom: .3rem;
}
.tlb-marge__sommaire, .tlb-marge__sources { margin: 0; padding: 0; list-style: none; counter-reset: tab; }
.tlb-marge__sommaire li { counter-increment: tab; }
.tlb-marge__sommaire a {
  display: block; padding: .34rem 0 .34rem 2.2rem; position: relative;
  color: var(--encre); text-decoration: none; font-size: .88rem; line-height: 1.35;
  border-bottom: 1px dotted var(--filet);
}
.tlb-marge__sommaire a::before {
  content: counter(tab, decimal-leading-zero);
  position: absolute; left: .4rem; top: .34rem;
  font-family: 'tlb-mono', monospace; font-size: .68rem; font-weight: 700;
  color: var(--feuille); background: var(--roneo);
  padding: .02rem .34rem; border-radius: 4px 8px 8px 4px;
}
.tlb-marge__sommaire a:hover { color: var(--roneo-fonce); }
.tlb-marge__sources a {
  display: block; padding: .3rem 0; color: var(--encre-douce); text-decoration: none;
  font-family: 'tlb-mono', monospace; font-size: .74rem; word-break: break-all;
  border-bottom: 1px dotted var(--filet);
}
.tlb-marge__sources a:hover { color: var(--roneo); }

/* le diptyque de fin de pièce */
.tlb-dipt { margin: 2rem auto 0; }
.tlb-dipt__deux { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 1.1rem; align-items: start; }
.tlb-dipt__cadre { margin: 0; }
.tlb-dipt__cadre picture { display: block; border-radius: 12px; overflow: hidden; box-shadow: var(--ombre-feuille); }
.tlb-dipt__cadre img { width: 100%; height: auto; object-fit: cover; }
.tlb-dipt__cadre--lieu img { aspect-ratio: 3 / 2; }
.tlb-dipt__cadre--proche { transform: rotate(.9deg); margin-top: 1.8rem; }
.tlb-dipt__cadre--proche img { aspect-ratio: 4 / 5; }
.tlb-dipt__cadre figcaption { font-size: .82rem; color: var(--encre-douce); padding-top: .5rem; line-height: 1.4; }

/* ---------- la remontée ---------- */
.tlb-remontee { padding-top: 1rem; }
.tlb-remontee ol {
  list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem;
  font-family: 'tlb-mono', monospace; font-size: .74rem; letter-spacing: .04em;
}
.tlb-remontee li::after { content: "·"; margin-left: .5rem; color: var(--filet-fort); }
.tlb-remontee li:last-child::after { content: ""; }
.tlb-remontee a { color: var(--encre-douce); text-decoration: none; }
.tlb-remontee a:hover { color: var(--roneo); }
.tlb-remontee [aria-current] { color: var(--roneo-fonce); font-weight: 700; }

/* ---------- le pied : le colophon ---------- */
.tlb-pied {
  margin-top: 2.4rem; background: var(--drap2); color: var(--drap-encre);
  padding-bottom: 1.4rem;
}
.tlb-pied__colonnes {
  display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: 2rem; padding-top: 2rem; padding-bottom: 1rem;
}
.tlb-pied__colonne h2 {
  margin: 0 0 .6rem; font-family: 'tlb-mono', monospace; font-weight: 700;
  font-size: .74rem; letter-spacing: .16em; text-transform: uppercase; color: var(--or-tranche);
}
.tlb-pied__colonne p { margin: 0 0 .6rem; font-size: .9rem; line-height: 1.6; color: #C2BAD9; }
.tlb-pied__note { font-style: italic; color: #9B91BC !important; }
.tlb-pied__colonne ul { list-style: none; margin: 0; padding: 0; }
.tlb-pied__colonne li { padding: .22rem 0; }
.tlb-pied__colonne a { color: var(--drap-encre); text-decoration: none; font-size: .92rem; }
.tlb-pied__colonne a:hover { color: var(--or-tranche); }
.tlb-pied .tlb-parafe { color: #9B91BC; }
.tlb-pied .tlb-parafe__ligne { border-bottom-color: var(--or-tranche); }
.tlb-pied__ligne {
  border-top: 1px solid rgba(237,232,246,.18); padding-top: .9rem;
  font-family: 'tlb-mono', monospace; font-size: .72rem; letter-spacing: .1em;
  text-transform: uppercase; color: #8E84B0; text-align: center;
}

/* ---------- responsive ---------- */
@media (max-width: 64rem) {
  .tlb-heros { grid-template-columns: 1fr; }
  .tlb-heros__visuel { margin-left: 0; transform: rotate(-.6deg); }
  .tlb-pieces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tlb-piece--large { grid-column: span 2; }
  .tlb-carte-sommaire { grid-template-columns: 2.2rem minmax(0,1fr); }
  .tlb-carte__corps { padding: 1.2rem 1.1rem 1rem; }
  .tlb-carte__ligne > a { grid-template-columns: 2rem minmax(0,1fr) auto; }
  .tlb-carte__intro { display: none; }
  .tlb-dossier__duo { grid-template-columns: 1fr; }
  .tlb-marge { position: static; border-top: 2px solid var(--filet); padding-top: 1rem; }
  .tlb-plaque { grid-template-columns: 1fr; }
  .tlb-oreille { display: none; }
}
@media (max-width: 46rem) {
  .tlb-pieces, .tlb-voisines__liste { grid-template-columns: 1fr; }
  .tlb-carte__ligne { flex-wrap: wrap; }
  .tlb-piece--large { grid-column: span 1; }
  .tlb-pieces--fil .tlb-piece { grid-template-columns: 1fr; }
  .tlb-indexation__parts, .tlb-brins { columns: 1; }
  .tlb-pied__colonnes { grid-template-columns: 1fr; }
  .tlb-dipt__deux { grid-template-columns: 1fr; }
  .tlb-dipt__cadre--proche { transform: none; margin-top: 0; }
  .tlb-onglets ul { justify-content: flex-start; }
}

/* le drapeau adhésif « § » : la flèche jaune du parapheur, posée où l'on entre dans la pièce */
.tlb-drapeau {
  position: absolute; top: 1rem; left: -.55rem; z-index: 4;
  font-family: 'tlb-mono', monospace; font-weight: 700; font-size: .72rem;
  color: #4A3A00;
  background: linear-gradient(180deg, #F3D24C, #E2B636);
  padding: .32rem .95rem .28rem .8rem;
  clip-path: polygon(0 0, calc(100% - .62em) 0, 100% 50%, calc(100% - .62em) 100%, 0 100%);
  box-shadow: 0 2px 5px rgba(35,32,56,.28);
}
.tlb-dipt__cadre--proche { position: relative; }
