/* =====================================================================
   La Trame : chronologie des applications en reseau.
   Frise verticale datee, periode > annee > repere, lue dans le sens du temps.
   Vocabulaire de classes : prefixe trm- + champ lexical du tissage
   (trame, brin, noeud, chaine, navette, ourdi, ourlet, lisiere, etoffe,
   maille, echeveau, reprise, empan, metrage, piece).
   Aucune requete externe : polices systeme, aucune image distante, aucun script.
   ===================================================================== */

:root {
  /* ---------- COULEURS : bleu de plan, encre froide, signal vermillon ---------- */
  --fond:            #dbe5ec;   /* papier bleu de plan */
  --fond-bloc:       #eef3f7;   /* blocs poses sur le fond general */
  --fond-appui:      #cbd8e2;   /* aplats secondaires : pied de page (contraste 4,7:1 avec l'encre attenuee) */
  --encre:           #15222c;   /* texte principal */
  --encre-attenuee:  #4b5c6b;   /* texte secondaire, legendes, mentions */
  --accent:          #a5350f;   /* dates, liens, reperes de la frise */
  --accent-appui:    #7d2708;   /* survol et etats actifs */
  --accent-voile:    #f2ddd3;   /* fond tres pale derive de l'accent */
  --filet:           #b3c3d1;   /* traits et bordures */
  --filet-fort:      #8698a8;   /* traits marques, axe de la frise */

  /* ---------- TYPOGRAPHIE : condense en titre, Georgia en lecture, mono pour les dates ---------- */
  --titre-police:   "Avenir Next Condensed", "Roboto Condensed", "Arial Narrow", "Helvetica Neue Condensed", "Helvetica Neue", Arial, sans-serif;
  --texte-police:   Georgia, "Noto Serif", "Droid Serif", "Liberation Serif", "Times New Roman", serif;
  --chiffre-police: "SF Mono", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", ui-monospace, monospace;

  --corps-taille:   clamp(1.02rem, 0.96rem + 0.32vw, 1.16rem);
  --interligne:     1.62;

  /* ---------- MESURES ET RYTHME ---------- */
  --mesure:         63ch;
  --emprise:        68rem;
  --rail:           11.5rem;
  --pas:            clamp(1rem, 0.65rem + 1.5vw, 1.8rem);
  --gouttiere:      clamp(0.95rem, 0.5rem + 1.9vw, 2.4rem);
  --rayon:          2px;
  --trait:          1px;
  --trait-fort:     2px;

  /* ---------- GEOMETRIE DE LA FRISE (les trois se reglent ensemble) ---------- */
  --axe-retrait:    2.6rem;
  --axe-position:   0.7rem;
  --point-taille:   0.72rem;
  --hauteur-collee: 0.5rem;
}

/* ---------------------------------------------------------------------
   REINITIALISATION MINIMALE
   --------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  /* « clip » et non « hidden » : hidden creerait un conteneur de defilement
     et casserait la plaque de periode collee et le rail lateral. */
  overflow-x: clip;
}

@media (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
}

body.trm-canevas {
  margin: 0;
  background: var(--fond);
  color: var(--encre);
  font-family: var(--texte-police);
  font-size: var(--corps-taille);
  line-height: var(--interligne);
  overflow-x: clip;
}

img, svg, table { max-width: 100%; }
img { height: auto; display: block; }

h1, h2, h3, h4 {
  font-family: var(--titre-police);
  font-weight: 600;
  line-height: 1.2;
  margin: 0;
  text-wrap: balance;
}

p, ul, ol, dl, figure, blockquote, table { margin: 0; }

a { color: var(--accent); text-underline-offset: 0.18em; }
a:hover { color: var(--accent-appui); }

:focus-visible {
  outline: var(--trait-fort) solid var(--accent);
  outline-offset: 3px;
}

/* ---------------------------------------------------------------------
   STRUCTURE GENERALE
   --------------------------------------------------------------------- */
.trm-raccourci {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 20;
  background: var(--encre);
  color: var(--fond-bloc);
  padding: 0.6rem 1rem;
  font-family: var(--chiffre-police);
  font-size: 0.85rem;
}
.trm-raccourci:focus { left: 0.5rem; top: 0.5rem; }

.trm-lisiere {
  width: 100%;
  max-width: var(--emprise);
  margin-inline: auto;
  padding-inline: var(--gouttiere);
}

/* Grille du corps : rail des periodes + frise. */
.trm-metier {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--pas);
  align-items: start;
  padding-bottom: calc(var(--pas) * 2.6);
}

@media (min-width: 58rem) {
  .trm-metier {
    grid-template-columns: var(--rail) minmax(0, 1fr);
    gap: clamp(1.8rem, 3.5vw, 3.4rem);
  }
}

/* ---------------------------------------------------------------------
   EN-TETE DE SITE (ourdi)
   --------------------------------------------------------------------- */
.trm-ourdi {
  background: var(--fond-bloc);
  border-bottom: var(--trait) solid var(--filet-fort);
}

.trm-ourdi__inter {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.7rem var(--pas);
  padding-block: calc(var(--pas) * 0.85);
}

.trm-ourdi__marque {
  font-family: var(--titre-police);
  font-size: clamp(1.3rem, 1rem + 1.3vw, 1.8rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--encre);
  text-decoration: none;
}
.trm-ourdi__marque:hover { color: var(--accent); }

.trm-ourdi__mention {
  margin-top: 0.25rem;
  font-family: var(--chiffre-police);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: var(--encre-attenuee);
}

.trm-ourdi__liste {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1.15rem;
  list-style: none;
  padding: 0;
  font-family: var(--chiffre-police);
  font-size: 0.86rem;
  letter-spacing: 0.02em;
}
.trm-ourdi__liste a {
  color: var(--encre);
  text-decoration: none;
  padding-bottom: 0.2rem;
  border-bottom: var(--trait-fort) solid transparent;
}
.trm-ourdi__liste a:hover,
.trm-ourdi__liste a[aria-current="page"] {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* ---------------------------------------------------------------------
   AMORCE D'ACCUEIL
   --------------------------------------------------------------------- */
.trm-amorce {
  padding-block: calc(var(--pas) * 1.7) var(--pas);
  max-width: var(--mesure);
}

.trm-amorce__titre {
  font-size: clamp(2rem, 1.25rem + 3.3vw, 3.4rem);
  letter-spacing: 0.005em;
}

.trm-amorce__texte {
  margin-top: 0.95rem;
  color: var(--encre-attenuee);
  font-size: 1.04em;
}
.trm-amorce__texte + .trm-amorce__texte { margin-top: 0.7rem; }

/* Bandeau de mesures */
.trm-metrage {
  display: flex;
  flex-wrap: wrap;
  gap: 0 clamp(1.4rem, 3.5vw, 2.8rem);
  margin-top: calc(var(--pas) * 1.15);
  padding-top: 0.85rem;
  border-top: var(--trait) solid var(--filet-fort);
}
.trm-metrage__mesure { padding-block: 0.3rem; }
.trm-metrage__intitule {
  font-family: var(--chiffre-police);
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}
.trm-metrage__valeur {
  margin: 0.15rem 0 0;
  font-family: var(--chiffre-police);
  font-size: clamp(1.2rem, 0.95rem + 0.9vw, 1.6rem);
  font-weight: 700;
  color: var(--encre);
}

/* ---------------------------------------------------------------------
   NAVETTE : rail de navigation par periode
   Mobile : bande horizontale a defilement. Bureau : colonne collee, numerotee.
   --------------------------------------------------------------------- */
.trm-navette {
  border-top: var(--trait) solid var(--filet-fort);
  padding-top: 0.65rem;
}

.trm-navette__titre {
  font-family: var(--chiffre-police);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
  margin-bottom: 0.5rem;
}

.trm-navette__liste {
  list-style: none;
  padding: 0 0 0.3rem;
  margin: 0;
  counter-reset: empan;
  display: flex;
  gap: 0.35rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
}

.trm-navette__ligne { counter-increment: empan; }

.trm-navette__periode {
  display: inline-flex;
  flex-direction: column;
  white-space: nowrap;
  text-decoration: none;
  color: var(--encre);
  font-family: var(--chiffre-police);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.4rem 0.65rem;
  border: var(--trait) solid var(--filet);
  border-radius: var(--rayon);
  background: var(--fond-bloc);
}
.trm-navette__periode:hover { border-color: var(--accent); color: var(--accent); }
.trm-navette__periode--courante {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--fond-bloc);
}
.trm-navette__periode--courante:hover { background: var(--accent-appui); color: var(--fond-bloc); }

.trm-navette__compte {
  font-family: var(--texte-police);
  font-size: 0.76rem;
  font-weight: 400;
  letter-spacing: 0;
  color: var(--encre-attenuee);
}
.trm-navette__periode--courante .trm-navette__compte { color: var(--accent-voile); }

@media (min-width: 58rem) {
  .trm-navette {
    position: sticky;
    top: var(--hauteur-collee);
    padding-top: 1rem;
  }
  .trm-navette__liste {
    flex-direction: column;
    gap: 0;
    overflow: visible;
  }
  .trm-navette__periode {
    border: 0;
    border-bottom: var(--trait) dotted var(--filet-fort);
    border-radius: 0;
    background: none;
    padding: 0.55rem 0.2rem 0.5rem 1.75rem;
    font-size: 1rem;
    position: relative;
  }
  .trm-navette__periode::before {
    content: counter(empan, decimal-leading-zero);
    position: absolute;
    left: 0;
    top: 0.62rem;
    font-size: 0.7rem;
    font-weight: 400;
    color: var(--filet-fort);
  }
  .trm-navette__periode:hover { background: none; }
  .trm-navette__periode--courante {
    background: var(--accent-voile);
    color: var(--accent-appui);
    padding-left: 1.75rem;
  }
  .trm-navette__periode--courante::before { color: var(--accent); }
  .trm-navette__periode--courante .trm-navette__compte { color: var(--encre-attenuee); }
}

/* ---------------------------------------------------------------------
   FRISE : PERIODE (trame) > ANNEE (brin) > REPERE (noeud)
   La lecture va du plus ancien au plus recent.
   --------------------------------------------------------------------- */
.trm-tissu { min-width: 0; }

.trm-trame {
  margin-top: calc(var(--pas) * 1.5);
  scroll-margin-top: 1rem;
}
.trm-trame:first-child { margin-top: 0; }

/* Plaque de periode, collee en haut pendant le defilement. */
.trm-trame__barre {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.15rem 0.9rem;
  padding: 0.5rem 0 0.45rem;
  background: var(--fond);
  border-bottom: var(--trait-fort) solid var(--encre);
}

.trm-trame__millesime {
  font-family: var(--chiffre-police);
  font-size: clamp(1.6rem, 1rem + 2.6vw, 2.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1;
}

.trm-trame__portee {
  font-family: var(--chiffre-police);
  font-size: 0.76rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}

.trm-trame__suite {
  margin-top: var(--pas);
  padding-left: var(--axe-retrait);
}

.trm-trame--nue > .trm-brin:first-child { margin-top: 0; }

/* Annee */
.trm-brin {
  margin-top: calc(var(--pas) * 1.1);
  scroll-margin-top: 4.2rem;
}

.trm-brin__tete {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.8rem;
  font-family: var(--chiffre-police);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--encre);
  padding-bottom: 0.4rem;
  border-bottom: var(--trait) solid var(--filet);
}

.trm-brin__compte {
  font-family: var(--texte-police);
  font-size: 0.82rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
  color: var(--encre-attenuee);
}

/* Colonne des reperes, portee par un axe vertical en pointilles. */
.trm-noeuds {
  list-style: none;
  margin: 0;
  padding: 0.85rem 0 0 var(--axe-retrait);
  position: relative;
}

.trm-noeuds::before {
  content: "";
  position: absolute;
  left: var(--axe-position);
  top: 0;
  bottom: 0;
  width: var(--trait-fort);
  transform: translateX(-50%);
  background-image: linear-gradient(var(--filet-fort) 55%, transparent 55%);
  background-size: 100% 9px;
}

.trm-noeud {
  position: relative;
  padding-bottom: calc(var(--pas) * 1.05);
}
.trm-noeud:last-child { padding-bottom: 0.35rem; }

/* Repere pose sur l'axe : disque plein pour le plus ancien du groupe. */
.trm-noeud::before {
  content: "";
  position: absolute;
  left: calc(var(--axe-position) - var(--axe-retrait));
  top: 0.5rem;
  width: var(--point-taille);
  height: var(--point-taille);
  transform: translateX(-50%);
  border-radius: 50%;
  background: var(--fond);
  border: var(--trait-fort) solid var(--accent);
}
.trm-noeud:first-child::before { background: var(--accent); }

.trm-noeud__datation {
  display: block;
  font-family: var(--chiffre-police);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--accent);
}

.trm-noeud__intitule {
  margin-top: 0.25rem;
  font-size: clamp(1.1rem, 1rem + 0.6vw, 1.32rem);
  max-width: var(--mesure);
}
.trm-noeud__intitule a {
  color: var(--encre);
  text-decoration: none;
  border-bottom: var(--trait) solid var(--filet-fort);
}
.trm-noeud__intitule a:hover {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

.trm-noeud__abrege {
  margin-top: 0.4rem;
  max-width: var(--mesure);
  color: var(--encre-attenuee);
}

.trm-noeud__pied {
  margin-top: 0.55rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.8rem;
}

.trm-noeud__minutes {
  font-family: var(--chiffre-police);
  font-size: 0.74rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}

/* Etiquette de nature de repere. */
.trm-maille {
  display: inline-block;
  font-family: var(--chiffre-police);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--accent-appui);
  background: var(--accent-voile);
  padding: 0.18rem 0.5rem;
  border-radius: var(--rayon);
}

/* Variante compacte : listes de renvois. */
.trm-noeuds--serre .trm-noeud { padding-bottom: calc(var(--pas) * 0.6); }
.trm-noeuds--serre .trm-noeud__intitule { font-size: 1.05rem; }

.trm-passe {
  font-family: var(--chiffre-police);
  font-size: 0.9rem;
  font-weight: 700;
  text-decoration: none;
  border-bottom: var(--trait-fort) solid var(--accent-voile);
}
.trm-passe:hover { border-bottom-color: var(--accent); }

/* ---------------------------------------------------------------------
   PAGE DE PERIODE
   --------------------------------------------------------------------- */
.trm-empan {
  padding-bottom: var(--pas);
  border-bottom: var(--trait-fort) solid var(--encre);
}

.trm-empan__situation {
  font-family: var(--chiffre-police);
  font-size: 0.76rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}

.trm-empan__millesime {
  margin-top: 0.35rem;
  font-family: var(--chiffre-police);
  font-size: clamp(2.2rem, 1.1rem + 5.4vw, 4.2rem);
  font-weight: 700;
  line-height: 0.98;
  letter-spacing: -0.03em;
}

.trm-empan__resume {
  margin-top: 0.85rem;
  max-width: var(--mesure);
  color: var(--encre-attenuee);
}
.trm-empan__resume + .trm-empan__resume { margin-top: 0.7rem; }

.trm-crans { margin-top: var(--pas); }
.trm-crans__liste {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.trm-crans__liste a {
  display: inline-block;
  font-family: var(--chiffre-police);
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  text-decoration: none;
  color: var(--encre);
  background: var(--fond-bloc);
  border: var(--trait) solid var(--filet);
  border-radius: var(--rayon);
  padding: 0.28rem 0.6rem;
}
.trm-crans__liste a:hover { color: var(--accent); border-color: var(--accent); }

.trm-bilan { margin-top: calc(var(--pas) * 1.6); }
.trm-bilan__titre {
  font-size: 1.15rem;
  padding-bottom: 0.4rem;
  border-bottom: var(--trait) solid var(--filet);
  margin-bottom: 0.9rem;
}

/* ---------------------------------------------------------------------
   PAGE DE FOND
   --------------------------------------------------------------------- */
.trm-metier--piece { padding-top: var(--pas); }

.trm-colonne { min-width: 0; }

/* Page hors frise : une seule colonne, sans rail de périodes. */
.trm-page-seule { padding-block: var(--pas) calc(var(--pas) * 2.6); }

.trm-chaine { margin-bottom: var(--pas); }
.trm-chaine__liste {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.2rem 0.45rem;
  font-family: var(--chiffre-police);
  font-size: 0.76rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}
.trm-chaine__liste li + li::before {
  content: "\203A";
  margin-right: 0.45rem;
  color: var(--filet-fort);
}
.trm-chaine__liste a { color: var(--encre-attenuee); text-decoration: none; }
.trm-chaine__liste a:hover { color: var(--accent); }

.trm-entame {
  padding-bottom: var(--pas);
  border-bottom: var(--trait-fort) solid var(--encre);
  max-width: var(--mesure);
}

.trm-entame__datation {
  font-family: var(--chiffre-police);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.trm-entame__titre {
  margin-top: 0.5rem;
  font-size: clamp(1.85rem, 1.2rem + 3vw, 3.1rem);
  letter-spacing: 0.005em;
}

.trm-entame__accroche {
  margin-top: 0.75rem;
  font-size: 1.07em;
  color: var(--encre-attenuee);
}

.trm-entame__mailles {
  margin-top: 0.95rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.8rem;
}

/* Corps redactionnel */
.trm-etoffe {
  max-width: var(--mesure);
  padding-top: var(--pas);
}
.trm-etoffe > * + * { margin-top: 1.05em; }

.trm-etoffe h2 {
  margin-top: calc(var(--pas) * 1.35);
  font-size: clamp(1.3rem, 1.08rem + 0.9vw, 1.68rem);
  padding-bottom: 0.3rem;
  border-bottom: var(--trait-fort) solid var(--filet);
}
.trm-etoffe h3 {
  margin-top: calc(var(--pas) * 0.95);
  font-family: var(--chiffre-police);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}

code {
  font-family: var(--chiffre-police);
  font-size: 0.88em;
  background: var(--fond-bloc);
  border: var(--trait) solid var(--filet);
  border-radius: var(--rayon);
  padding: 0.05em 0.3em;
}

.trm-file { padding-left: 1.15rem; }
.trm-file li { margin-top: 0.35rem; }
.trm-file li::marker { color: var(--accent); }

/* Liste de definitions : format court et extractable */
.trm-glose { margin-top: calc(var(--pas) * 0.9); }
.trm-glose dt {
  font-family: var(--chiffre-police);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--encre);
  margin-top: 0.9rem;
  padding-top: 0.55rem;
  border-top: var(--trait) solid var(--filet);
}
.trm-glose dt:first-child { margin-top: 0; }
.trm-glose dd { margin: 0.3rem 0 0; color: var(--encre-attenuee); }

.trm-vue { margin-top: calc(var(--pas) * 1.1); }
.trm-vue img {
  width: 100%;
  border: var(--trait) solid var(--filet-fort);
  border-radius: var(--rayon);
}
.trm-vue__legende {
  margin-top: 0.45rem;
  font-size: 0.88rem;
  color: var(--encre-attenuee);
  border-left: var(--trait-fort) solid var(--accent);
  padding-left: 0.65rem;
}

.trm-relief {
  margin-top: calc(var(--pas) * 1.1);
  padding: 0.15rem 0 0.15rem 1rem;
  border-left: 4px solid var(--accent);
  font-size: 1.1em;
  font-style: italic;
}

.trm-medaillon {
  margin-top: calc(var(--pas) * 1.3);
  background: var(--fond-bloc);
  border: var(--trait) solid var(--filet);
  border-left: 4px solid var(--accent);
  border-radius: var(--rayon);
  padding: calc(var(--pas) * 0.85);
}
.trm-medaillon__titre {
  font-size: 1rem;
  letter-spacing: 0.01em;
  margin-bottom: 0.45rem;
}

/* Tableau : toujours dans un conteneur a defilement propre. */
.trm-table-defilante {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  border: var(--trait) solid var(--filet);
  border-radius: var(--rayon);
  background: var(--fond-bloc);
  max-width: 100%;
}
.trm-table {
  border-collapse: collapse;
  width: 100%;
  min-width: 32rem;
  font-size: 0.92rem;
}
.trm-table__legende {
  caption-side: top;
  text-align: left;
  padding: 0.55rem 0.75rem;
  font-family: var(--chiffre-police);
  font-size: 0.74rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
  border-bottom: var(--trait) solid var(--filet);
}
.trm-table th,
.trm-table td {
  padding: 0.5rem 0.75rem;
  text-align: left;
  border-bottom: var(--trait) solid var(--filet);
}
.trm-table thead th {
  font-family: var(--chiffre-police);
  font-size: 0.76rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}
.trm-table tbody th { font-family: var(--chiffre-police); font-weight: 700; white-space: nowrap; }
.trm-table tbody tr:last-child th,
.trm-table tbody tr:last-child td { border-bottom: 0; }

/* Precisions de lecture (reprise = raccommodage) */
.trm-reprise {
  margin-top: calc(var(--pas) * 1.6);
  max-width: var(--mesure);
  border-top: var(--trait) solid var(--filet-fort);
  padding-top: 0.85rem;
}
.trm-reprise__titre {
  font-family: var(--chiffre-police);
  font-size: 0.76rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}
.trm-reprise__liste {
  list-style: none;
  padding: 0;
  margin-top: 0.55rem;
  font-size: 0.92rem;
  color: var(--encre-attenuee);
}
.trm-reprise__liste li { margin-top: 0.3rem; }
.trm-reprise__liste time,
.trm-reprise__liste b {
  font-family: var(--chiffre-police);
  font-weight: 700;
  color: var(--encre);
}

/* Reperes voisins dans l'ordre des dates */
.trm-voisins {
  display: grid;
  gap: var(--trait);
  margin-top: calc(var(--pas) * 1.8);
  background: var(--filet-fort);
  border-block: var(--trait) solid var(--filet-fort);
}
@media (min-width: 44rem) {
  .trm-voisins { grid-template-columns: 1fr 1fr; }
}
.trm-voisins__lien {
  display: block;
  background: var(--fond-bloc);
  padding: calc(var(--pas) * 0.8);
  text-decoration: none;
  color: var(--encre);
}
.trm-voisins__lien:hover { background: var(--accent-voile); }
.trm-voisins__aval { text-align: left; }
@media (min-width: 44rem) {
  .trm-voisins__aval { text-align: right; }
}
.trm-voisins__sens {
  display: block;
  font-family: var(--chiffre-police);
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
}
.trm-voisins__datation {
  display: block;
  margin-top: 0.2rem;
  font-family: var(--chiffre-police);
  font-size: 1rem;
  font-weight: 700;
  color: var(--accent);
}
.trm-voisins__titre {
  display: block;
  margin-top: 0.3rem;
  font-family: var(--titre-police);
  font-size: 1.02rem;
  font-weight: 600;
}

.trm-echeveau { margin-top: calc(var(--pas) * 1.8); }
.trm-echeveau__titre {
  font-size: 1.15rem;
  padding-bottom: 0.35rem;
  border-bottom: var(--trait-fort) solid var(--encre);
}
.trm-echeveau__note {
  margin-top: 0.7rem;
  font-size: 0.94rem;
  color: var(--encre-attenuee);
  max-width: var(--mesure);
}

/* ---------------------------------------------------------------------
   REMONTEE : pagination temporelle
   --------------------------------------------------------------------- */
.trm-remontee {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 0.55rem 1rem;
  margin-top: calc(var(--pas) * 2);
  padding-top: 0.85rem;
  border-top: var(--trait-fort) solid var(--encre);
  font-family: var(--chiffre-police);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}
.trm-remontee__amont { color: var(--encre-attenuee); }
.trm-remontee a { text-decoration: none; border-bottom: var(--trait-fort) solid var(--accent-voile); }
.trm-remontee a:hover { border-bottom-color: var(--accent); }

/* ---------------------------------------------------------------------
   OURLET : pied de page
   --------------------------------------------------------------------- */
.trm-ourlet {
  background: var(--fond-appui);
  border-top: var(--trait-fort) solid var(--encre);
  padding-block: calc(var(--pas) * 1.4) var(--pas);
}

.trm-ourlet__inter {
  display: grid;
  gap: var(--pas);
}
@media (min-width: 44rem) {
  .trm-ourlet__inter { grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr); gap: clamp(1.8rem, 4.5vw, 3.5rem); }
}

.trm-ourlet__titre {
  font-family: var(--chiffre-police);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--encre-attenuee);
  padding-bottom: 0.4rem;
  border-bottom: var(--trait) solid var(--filet-fort);
  margin-bottom: 0.75rem;
}

.trm-empans {
  list-style: none;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1rem;
  font-family: var(--chiffre-police);
  font-size: 0.95rem;
  font-weight: 700;
}
.trm-empans a { color: var(--encre); text-decoration: none; border-bottom: var(--trait-fort) solid transparent; }
.trm-empans a:hover { color: var(--accent); border-bottom-color: var(--accent); }

.trm-ourlet__texte { max-width: var(--mesure); color: var(--encre-attenuee); font-size: 0.95rem; }

.trm-ourlet__liens {
  list-style: none;
  padding: 0;
  margin-top: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem 1.1rem;
  font-family: var(--chiffre-police);
  font-size: 0.88rem;
}

.trm-ourlet__mention {
  margin-top: calc(var(--pas) * 1.2);
  padding-top: 0.65rem;
  border-top: var(--trait) solid var(--filet-fort);
  font-family: var(--chiffre-police);
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  color: var(--encre-attenuee);
}
