/* =====================================================================
   L'UNION LATINE : feuille de la revue (préfixe unl-, métaphore du
   cabinet de numismatique : poinçon, tranche, écrin, flan, atelier,
   coin, frappe, planche, abaque, colophon).
   Zéro requête externe : piles système uniquement.
   ===================================================================== */

:root {

  /* ---------- 1. PALETTE : papier, encre, sceau, patine, or ---------- */
  --fond:          #f3eee3;   /* papier de catalogue, chaud */
  --fond-creux:    #eae2d0;   /* encarts, têtes de tableau, colophon */
  --fond-relief:   #faf7ee;   /* survol, lignes paires */
  --nuit:          #211909;   /* bande de héros, envers du catalogue */
  --encre:         #262014;   /* texte courant, sépia profond */
  --encre-pale:    #5d5342;   /* mentions, cotes, métadonnées */
  --accent:        #7a2e22;   /* rouge sceau : vedettes, numéros, filets forts */
  --accent-vif:    #96412f;   /* survol du rouge sceau */
  --signal:        #1f4e45;   /* vert patine : liens et renvois */
  --signal-vif:    #2c6a5e;   /* survol du vert patine */
  --or:            #a98629;   /* or vieilli : filets décoratifs, héros */
  --or-clair:      #c9a24a;   /* or clair sur fond nuit */
  --filet:         #d5cbb2;   /* filets fins */
  --filet-fort:    #b3a486;   /* filets structurants */
  --selection:     #e9dcbb;   /* fond de sélection */

  /* ---------- 2. POLICES (piles système, jamais de fichier) ---------- */
  --texte-police:  Charter, "Bitstream Charter", "Sitka Text", "Iowan Old Style", Cambria, Georgia, "Times New Roman", serif;
  --titre-police:  "Didot", "Bodoni 72", "Bodoni MT", "Bell MT", Georgia, "Times New Roman", serif;
  --cote-police:   "Avenir Next Condensed", "Roboto Condensed", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;

  /* ---------- 3. RYTHME ---------- */
  --mesure:        35rem;
  --tiroir-largeur: 13rem;
  --cadre:         76rem;
  --gouttiere:     2.6rem;
  --interligne:    1.55;
  --pas:           1.2rem;
  --rayon:         0;

  /* ---------- 4. TAILLES ---------- */
  --t-base:   1.02rem;
  --t-petit:  0.86rem;
  --t-menu:   0.78rem;
  --t-h1:     clamp(1.85rem, 1.2rem + 2.4vw, 2.9rem);
  --t-h2:     clamp(1.25rem, 1.05rem + 0.8vw, 1.55rem);
  --t-h3:     1.06rem;
}

/* =====================================================================
   BASE
   ===================================================================== */

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

html { font-size: 100%; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-beavior: auto; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
}

body {
  margin: 0;
  background: var(--fond);
  color: var(--encre);
  font-family: var(--texte-police);
  font-size: var(--t-base);
  line-height: var(--interligne);
  font-kerning: normal;
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
}

::selection { background: var(--selection); color: var(--encre); }

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

a { color: var(--signal); text-underline-offset: 0.15em; }
a:hover { color: var(--accent-vif); }

:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

h1, h2, h3, h4 {
  font-family: var(--titre-police);
  font-weight: 600;
  line-height: 1.15;
  margin: 0;
  color: var(--encre);
  letter-spacing: 0.002em;
}

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

.unl-flux > * + * { margin-top: var(--pas); }

.unl-atelier {
  width: 100%;
  max-width: var(--cadre);
  margin: 0 auto;
  padding: 0 1.2rem;
}

.unl-evitement {
  position: absolute; left: -9999px; top: 0;
  background: var(--encre); color: var(--fond);
  padding: 0.6rem 1rem; font-family: var(--titre-police); z-index: 50;
}
.unl-evitement:focus { left: 0.5rem; top: 0.5rem; position: fixed; }

/* =====================================================================
   PATRICE (bandeau d'en-tête)
   ===================================================================== */

.unl-patrice { border-bottom: 3px double var(--encre); background: var(--fond); }

.unl-patrice__haut {
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: 0.4rem 1.6rem;
  padding: 0.85rem 0 0.6rem;
}

.unl-poincon { display: block; text-decoration: none; color: inherit; }
.unl-poincon:hover { color: var(--accent); }

.unl-poincon__nom {
  font-family: var(--titre-police);
  font-size: clamp(1.3rem, 1rem + 1.1vw, 1.85rem);
  font-weight: 700; letter-spacing: 0.015em; display: block;
}
.unl-poincon__nom .unl-poincon__la { color: var(--accent); font-style: italic; }

.unl-poincon__sous {
  display: block; font-family: var(--cote-police);
  font-size: var(--t-menu); letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--encre-pale); margin-top: 0.15rem;
}

.unl-datario {
  font-family: var(--cote-police); font-size: var(--t-menu);
  color: var(--encre-pale); letter-spacing: 0.05em; text-align: right;
}
.unl-datario span { display: block; }
@media (max-width: 47.99em) { .unl-datario { text-align: left; } }

.unl-navigation { border-top: 1px solid var(--filet); padding: 0.35rem 0 0.55rem; }
.unl-navigation ul {
  list-style: none; margin: 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 0.12rem 1.5rem;
}
.unl-navigation a {
  font-family: var(--titre-police); font-size: 0.92rem;
  letter-spacing: 0.02em; color: var(--encre); text-decoration: none;
  padding: 0.22rem 0; display: inline-block; border-bottom: 2px solid transparent;
}
.unl-navigation a:hover,
.unl-navigation a[aria-current="page"] { border-bottom-color: var(--accent); color: var(--accent); }

/* =====================================================================
   FIL D'ARIANE
   ===================================================================== */

.unl-fil-dariane {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.06em; color: var(--encre-pale); padding: 0.8rem 0 0;
}
.unl-fil-dariane ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.35rem; }
.unl-fil-dariane li + li::before { content: "› "; color: var(--filet-fort); }
.unl-fil-dariane a { color: var(--encre-pale); }

/* =====================================================================
   TRANCHE : bande de héros pleine largeur, voile EN DUR (pas de var())
   ===================================================================== */

.unl-tranche { position: relative; background: var(--nuit); overflow: hidden; }

.unl-tranche__photo {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center;
}

/* Voile de couleur EN DUR : rgba() littéral, jamais une variable. */
.unl-tranche__voile {
  position: absolute; inset: 0;
  background: linear-gradient(100deg, rgba(26, 19, 9, 0.94) 0%, rgba(26, 19, 9, 0.86) 55%, rgba(38, 28, 12, 0.74) 100%);
}

.unl-tranche__corps { position: relative; padding: 1.7rem 0 1.55rem; max-width: 46rem; }

.unl-gravier {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--or-clair); margin-bottom: 0.45rem;
}
.unl-gravier::after {
  content: ""; display: block; width: 3.2rem; height: 2px;
  background: var(--or-clair); margin-top: 0.55rem;
}

.unl-tranche__titre {
  color: #f6f1e4; font-size: clamp(1.65rem, 1.15rem + 1.9vw, 2.45rem);
  text-shadow: 0 1px 3px rgba(15, 10, 4, 0.5);
}

.unl-tranche__chapeau {
  color: #e8dfc9; font-size: 1.02rem; max-width: 33rem;
  margin-top: 0.55rem;
}

.unl-alois {
  display: flex; flex-wrap: wrap; gap: 0.5rem 2.4rem;
  margin-top: 0.9rem; padding-top: 0.8rem;
  border-top: 1px solid rgba(201, 162, 74, 0.45);
}
.unl-aloi { min-width: 6.5rem; }
.unl-aloi__chiffre {
  font-family: var(--titre-police); font-weight: 700;
  font-size: 1.45rem; color: var(--or-clair); display: block; line-height: 1.1;
}
.unl-aloi__libelle {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.1em; text-transform: uppercase; color: #cfc4a6;
}

.unl-tranche__filet { height: 3px; background: var(--or); }

/* Variante compacte pour les pages intérieures */
.unl-tranche--page .unl-tranche__corps { padding: 1.9rem 0 1.7rem; }
.unl-tranche--page .unl-tranche__titre { font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.3rem); }

/* =====================================================================
   ÉCRINS : grille des rubriques sur l'accueil
   ===================================================================== */

.unl-ecrins { padding: 1.5rem 0 0.8rem; }

.unl-chapitre {
  display: flex; flex-wrap: wrap; align-items: baseline;
  justify-content: space-between; gap: 0.3rem 1rem;
  margin-bottom: 0.95rem;
}
.unl-chapitre__titre {
  font-size: var(--t-h2);
}
.unl-chapitre__titre .unl-numero {
  font-family: var(--cote-police); color: var(--accent);
  margin-right: 0.5rem; font-weight: 400; letter-spacing: 0.08em;
}
.unl-chapitre__mention {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--encre-pale);
}

.unl-ecrins__grille {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr));
  gap: 1.1rem;
}

.unl-ecrin {
  background: var(--fond-relief); border: 1px solid var(--filet);
  border-top: 3px solid var(--or);
  display: flex; flex-direction: column;
  transition: border-color 0.15s ease, transform 0.15s ease;
}
.unl-ecrin:hover { border-top-color: var(--accent); transform: translateY(-2px); }

.unl-ecrin__photo { aspect-ratio: 16 / 9; width: 100%; object-fit: cover; border-bottom: 1px solid var(--filet); }

.unl-ecrin__corps { padding: 0.8rem 0.9rem 0.95rem; display: flex; flex-direction: column; gap: 0.35rem; flex: 1; }

.unl-ecrin__titre {
  font-family: var(--titre-police); font-size: 1.12rem; line-height: 1.2;
}
.unl-ecrin__titre a { color: var(--encre); text-decoration: none; }
.unl-ecrin__titre a:hover { color: var(--accent); text-decoration: underline; }

.unl-ecrin__glose { font-size: var(--t-petit); color: var(--encre-pale); flex: 1; }

.unl-ecrin__cote {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent);
  border-top: 1px dotted var(--filet-fort); padding-top: 0.4rem; margin-top: 0.3rem;
}

/* =====================================================================
   GAZETTE : flux d'articles daté
   ===================================================================== */

.unl-gazette { padding: 1.6rem 0 0.8rem; }

.unl-gazette__liste { list-style: none; margin: 0; padding: 0; }

.unl-feuillet {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: 0.5rem 1.2rem; padding: 0.9rem 0;
  border-top: 1px solid var(--filet);
}
.unl-feuillet:first-child { border-top: 2px solid var(--encre); }

@media (min-width: 40em) {
  .unl-feuillet { grid-template-columns: 8.5rem minmax(0, 1fr); align-items: start; }
}

.unl-feuillet__photo {
  aspect-ratio: 4 / 3; width: 100%; object-fit: cover;
  border: 1px solid var(--filet-fort);
}

.unl-feuillet__date {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
}
.unl-feuillet__titre {
  font-family: var(--titre-police); font-size: 1.14rem; line-height: 1.25;
}
.unl-feuillet__titre a { color: var(--encre); text-decoration: none; }
.unl-feuillet__titre a:hover { color: var(--accent); text-decoration: underline; }
.unl-feuillet__extrait { font-size: 0.92rem; color: var(--encre-pale); margin-top: 0.2rem; max-width: var(--mesure); }
.unl-feuillet__rubrique {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--signal);
  margin-top: 0.3rem;
}
.unl-feuillet__rubrique a { color: var(--signal); text-decoration: none; }
.unl-feuillet__rubrique a:hover { text-decoration: underline; }

/* =====================================================================
   CABINET : plan deux colonnes (tiroir de repères + lecture)
   ===================================================================== */

.unl-cabinet {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: 1.6rem var(--gouttiere);
  padding: 1.3rem 0 2.4rem; align-items: start;
}

.unl-tiroir { order: 2; }
.unl-lecture { order: 1; }

@media (min-width: 62em) {
  .unl-cabinet { grid-template-columns: var(--tiroir-largeur) minmax(0, 1fr); }
  .unl-cabinet > .unl-tiroir { grid-column: 1; grid-row: 1; order: 0; }
  .unl-cabinet > .unl-lecture { grid-column: 2; grid-row: 1; order: 0; }
  .unl-cabinet--inverse { grid-template-columns: minmax(0, 1fr) var(--tiroir-largeur); }
  .unl-cabinet--inverse > .unl-tiroir { grid-column: 2; }
  .unl-cabinet--inverse > .unl-lecture { grid-column: 1; }
}

.unl-tiroir {
  font-size: var(--t-petit); color: var(--encre-pale);
  border-top: 2px solid var(--encre); padding-top: 0.6rem;
}
@media (min-width: 62em) {
  .unl-tiroir { position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
}

.unl-tiroir__titre {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.13em; text-transform: uppercase;
  color: var(--encre); margin-bottom: 0.45rem;
}
.unl-tiroir ul { list-style: none; margin: 0 0 1.2rem; padding: 0; }
.unl-tiroir li { border-bottom: 1px dotted var(--filet); }
.unl-tiroir li a {
  display: block; padding: 0.28rem 0; color: var(--encre); text-decoration: none;
}
.unl-tiroir li a:hover { color: var(--accent); }

.unl-lecture { max-width: 100%; }
.unl-lecture--mesure { max-width: var(--mesure); }

/* =====================================================================
   OUVERTURE DE PAGE DANS LA LECTURE
   ===================================================================== */

.unl-ouverture { padding: 0 0 1.3rem; }
.unl-ouverture > * + * { margin-top: 0.65rem; }
.unl-titre-page {
  font-size: var(--t-h1); line-height: 1.1; letter-spacing: -0.004em;
}
.unl-chapeau { font-size: 1.06rem; max-width: var(--mesure); }
.unl-mention { font-size: var(--t-petit); color: var(--encre-pale); font-family: var(--cote-police); letter-spacing: 0.05em; }

.unl-exergue {
  font-size: 1.1rem; line-height: 1.5; max-width: var(--mesure);
  border-top: 2px solid var(--encre); border-bottom: 1px solid var(--filet-fort);
  padding: 0.85rem 0; margin: 0 0 1.3rem;
}
.unl-exergue strong { font-family: var(--titre-police); }

/* =====================================================================
   FRAPPE : section d'article à coin (manchette de marge)
   ===================================================================== */

.unl-frappe {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: 0.7rem; padding: 1.15rem 0; border-top: 1px solid var(--filet);
}
.unl-frappe p { max-width: var(--mesure); }
.unl-frappe p + p { margin-top: 0.65rem; }
.unl-frappe ul, .unl-frappe ol { padding-left: 1.2rem; max-width: var(--mesure); }
.unl-frappe li { padding: 0.08rem 0; }

.unl-coin {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--accent);
  padding-top: 0.2rem;
}
.unl-coin::before { content: "◆ "; color: var(--or); font-size: 0.7em; }

@media (min-width: 60em) {
  .unl-frappe { grid-template-columns: 10.5rem minmax(0, 1fr); gap: 0.7rem var(--gouttiere); }
  .unl-frappe > *:not(.unl-coin) { grid-column: 2; }
  .unl-coin { grid-column: 1; grid-row: 1; text-align: right; }
}

/* =====================================================================
   NOTICE : carte d'identité de l'article
   ===================================================================== */

.unl-notice {
  background: var(--fond-creux); border-left: 3px solid var(--or);
  padding: 0.75rem 0.95rem; font-size: var(--t-petit);
  margin-bottom: 1.2rem;
}
.unl-notice dl { display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 0.9rem; }
.unl-notice dt {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--encre-pale);
}
.unl-notice dd { margin: 0; }

/* =====================================================================
   NOTULE : encart à filet
   ===================================================================== */

.unl-notule {
  background: var(--fond-creux); border-left: 3px solid var(--accent);
  padding: 0.8rem 1rem; font-size: var(--t-petit);
  max-width: var(--mesure); margin: 1rem 0;
}
.unl-notule__titre {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 0.3rem;
  color: var(--accent);
}

/* =====================================================================
   PLANCHE : image éditoriale et sa légende
   ===================================================================== */

.unl-planche { margin: 1.1rem 0; }
.unl-planche img {
  width: 100%; aspect-ratio: 16 / 9; object-fit: cover;
  border: 1px solid var(--filet-fort); background: var(--fond-creux);
}
.unl-planche__legende {
  font-size: var(--t-petit); color: var(--encre-pale);
  padding-top: 0.4rem; border-bottom: 1px solid var(--filet); padding-bottom: 0.5rem;
}
@media (min-width: 60em) { .unl-planche { max-width: min(100%, 48rem); } }

/* Planche compacte pour les fiches du glossaire */
.unl-planche--fiche { margin: 0; }
.unl-planche--fiche img { aspect-ratio: 1 / 1; border-width: 0; }

/* =====================================================================
   ABAQUE : tableau comparatif défilant proprement
   ===================================================================== */

.unl-abaque {
  overflow-x: auto; border: 1px solid var(--filet-fort);
  background: var(--fond); max-width: 100%; margin: 1rem 0;
}
.unl-abaque:focus-visible { outline: 2px solid var(--accent); outline-offset: 0; }

.unl-tableau {
  border-collapse: collapse; width: 100%; min-width: 36rem;
  font-size: var(--t-petit); font-variant-numeric: tabular-nums;
}
.unl-tableau caption {
  caption-side: top; text-align: left;
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.1em; text-transform: uppercase; color: var(--encre-pale);
  padding: 0.5rem 0.7rem; border-bottom: 1px solid var(--filet);
}
.unl-tableau th, .unl-tableau td {
  padding: 0.45rem 0.7rem; text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--filet);
}
.unl-tableau thead th {
  background: var(--fond-creux); font-family: var(--titre-police);
  font-size: var(--t-menu); letter-spacing: 0.05em; text-transform: uppercase;
  border-bottom: 1px solid var(--filet-fort); white-space: nowrap;
}
.unl-tableau tbody th { font-family: var(--titre-police); font-weight: 600; white-space: nowrap; }
.unl-tableau tbody tr:nth-child(even) { background: var(--fond-relief); }
.unl-tableau tbody tr:last-child th, .unl-tableau tbody tr:last-child td { border-bottom: 0; }

.unl-defilement-note {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.06em; color: var(--encre-pale); margin-top: 0.3rem;
}
@media (min-width: 46em) { .unl-defilement-note { display: none; } }

/* =====================================================================
   FICHES : nomenclature du glossaire (dl > div > dt + dd)
   ===================================================================== */

.unl-abecedaire {
  border-top: 1px solid var(--filet-fort); border-bottom: 1px solid var(--filet-fort);
  padding: 0.5rem 0; margin: 0 0 1.3rem;
  background: var(--fond-creux);
}
.unl-abecedaire ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.15rem; }
.unl-abecedaire a, .unl-abecedaire span {
  display: inline-block; min-width: 1.75rem; padding: 0.18rem 0.28rem;
  text-align: center; font-family: var(--cote-police); font-size: var(--t-petit);
  letter-spacing: 0.06em; text-decoration: none; color: var(--encre);
  border: 1px solid transparent;
}
.unl-abecedaire a:hover { border-color: var(--accent); color: var(--accent); }
.unl-abecedaire span { color: var(--filet-fort); }

.unl-fiches { margin: 0; }

.unl-lettrage {
  display: flex; align-items: baseline; gap: 0.7rem;
  font-family: var(--titre-police); font-size: 1.6rem; font-weight: 700;
  color: var(--accent); border-bottom: 2px solid var(--encre);
  padding: 1.6rem 0 0.3rem; scroll-margin-top: 1rem;
}
.unl-lettrage__compte {
  font-family: var(--cote-police); font-size: var(--t-menu); font-weight: 400;
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--encre-pale);
}

.unl-fiche {
  border-top: 1px solid var(--filet); padding: 0.75rem 0 0.8rem;
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.5rem 1.1rem;
}
@media (min-width: 46em) {
  .unl-fiche { grid-template-columns: minmax(9.5rem, 15rem) minmax(0, 1fr); }
}
.unl-fiche--planche {
  grid-template-columns: minmax(0, 1fr); gap: 0.5rem 1.1rem;
}
@media (min-width: 46em) {
  .unl-fiche--planche { grid-template-columns: 5.6rem minmax(9.5rem, 13rem) minmax(0, 1fr); align-items: start; }
}

.unl-fiche:hover { background: var(--fond-relief); }
.unl-fiche:first-of-type { border-top: 2px solid var(--encre); }
.unl-lettrage + .unl-fiches .unl-fiche:first-of-type { border-top: 0; }

.unl-vedette {
  font-family: var(--titre-police); font-weight: 700; font-size: var(--t-h3);
  margin: 0; line-height: 1.25;
}
.unl-vedette a { color: var(--encre); text-decoration: none; }
.unl-vedette a:hover { color: var(--accent); text-decoration: underline; }

.unl-vedette__variante {
  display: block; font-family: var(--texte-police); font-style: italic;
  font-weight: 400; font-size: var(--t-petit); color: var(--encre-pale);
}

.unl-cote {
  display: block; font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--encre-pale);
}

.unl-glose { margin: 0; font-size: 0.97rem; }
.unl-glose p + p { margin-top: 0.4rem; }

.unl-liste-serree {
  list-style: none; margin: 0; padding: 0;
  columns: 2; column-gap: var(--gouttiere);
}
@media (min-width: 46em) { .unl-liste-serree { columns: 3; } }
.unl-liste-serree li {
  break-inside: avoid; border-bottom: 1px dotted var(--filet);
  padding: 0.22rem 0; font-size: var(--t-petit);
}
.unl-liste-serree a { color: var(--encre); text-decoration: none; }
.unl-liste-serree a:hover { color: var(--accent); text-decoration: underline; }

/* =====================================================================
   RENVOIS croisés
   ===================================================================== */

.unl-renvoi { color: var(--signal); font-style: italic; }
.unl-renvoi::before { content: "→ "; font-style: normal; }

.unl-renvois {
  list-style: none; margin: 1.2rem 0 0; padding: 0.7rem 0 0;
  display: flex; flex-wrap: wrap; gap: 0.3rem 1.2rem;
  border-top: 1px solid var(--filet); font-size: var(--t-petit);
}
.unl-renvois li::before { content: "→ "; color: var(--filet-fort); }
.unl-renvois a { color: var(--signal); text-decoration: none; }
.unl-renvois a:hover { text-decoration: underline; }

/* =====================================================================
   JALONS : entrée précédente / suivante
   ===================================================================== */

.unl-jalons {
  display: grid; grid-template-columns: minmax(0, 1fr); gap: 0.6rem;
  border-top: 2px solid var(--encre); margin-top: 1.6rem; padding-top: 0.9rem;
}
@media (min-width: 46em) { .unl-jalons { grid-template-columns: 1fr 1fr; } }

.unl-jalon { text-decoration: none; color: var(--encre); display: block; padding: 0.4rem 0; }
.unl-jalon:hover .unl-jalon__nom { color: var(--accent); text-decoration: underline; }
.unl-jalon__sens {
  display: block; font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.12em; text-transform: uppercase; color: var(--encre-pale);
}
.unl-jalon__nom { font-family: var(--titre-police); font-weight: 600; }
@media (min-width: 46em) { .unl-jalon--suivant { text-align: right; } }

/* =====================================================================
   CHRONOLOGIE : frise 1865-1927
   ===================================================================== */

.unl-chronologie { margin: 1.2rem 0; border-left: 2px solid var(--or); padding-left: 1.2rem; }
.unl-etape { position: relative; padding: 0 0 1.05rem; }
.unl-etape:last-child { padding-bottom: 0; }
.unl-etape::before {
  content: ""; position: absolute; left: calc(-1.2rem - 7px); top: 0.42rem;
  width: 12px; height: 12px; border-radius: 50%;
  background: var(--accent); border: 2px solid var(--fond);
}
.unl-etape__annee {
  font-family: var(--titre-police); font-weight: 700; font-size: 1.2rem;
  color: var(--accent); display: block;
}
.unl-etape__texte { max-width: var(--mesure); }
@media (max-width: 40em) { .unl-chronologie { border-left-width: 6px; padding-left: 0.9rem; } }

/* =====================================================================
   PAGE 404
   ===================================================================== */

.unl-quarante-quatre { text-align: center; padding: 4rem 0 5rem; }
.unl-quarante-quatre__chiffre {
  font-family: var(--titre-police); font-size: clamp(4rem, 10vw, 7rem);
  color: var(--accent); line-height: 1; letter-spacing: 0.02em;
}
.unl-quarante-quatre p { max-width: 26rem; margin: 0.8rem auto 0; }

/* =====================================================================
   COLOPHON (pied de page)
   ===================================================================== */

.unl-colophon {
  border-top: 3px double var(--encre); background: var(--fond-creux);
  padding: 1.6rem 0 2rem; font-size: var(--t-petit);
  margin-top: 2rem;
}
.unl-colophon__grille {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: 1.2rem var(--gouttiere);
}
@media (min-width: 46em) { .unl-colophon__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.unl-colophon h2 {
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.13em; text-transform: uppercase; margin-bottom: 0.45rem;
}
.unl-colophon ul { list-style: none; margin: 0; padding: 0; }
.unl-colophon li { padding: 0.16rem 0; }
.unl-colophon a { color: var(--encre); }
.unl-colophon a:hover { color: var(--accent); }

.unl-colophon__pied {
  border-top: 1px solid var(--filet-fort); margin-top: 1.3rem;
  padding-top: 0.8rem; color: var(--encre-pale);
  font-family: var(--cote-police); font-size: var(--t-menu);
  letter-spacing: 0.06em;
  display: flex; flex-wrap: wrap; gap: 0.3rem 1.2rem; justify-content: space-between;
}

/* =====================================================================
   IMPRESSION
   ===================================================================== */

@media print {
  :root { --fond: #ffffff; --fond-creux: #ffffff; --fond-relief: #ffffff; }
  .unl-navigation, .unl-tiroir, .unl-abecedaire, .unl-jalons, .unl-evitement, .unl-tranche__photo, .unl-tranche__voile { display: none; }
  .unl-cabinet { grid-template-columns: minmax(0, 1fr); }
  a { color: inherit; text-decoration: none; }
  .unl-abaque { overflow: visible; }
  .unl-tableau { min-width: 0; }
}
