/* =========================================================================
   THE TARTAN LEDGER (kiltsdirect.com) : feuille de style, prefixe ldg-.
   Squelette d'origine : grille-annuaire (grille de fiches en accueil, liste
   dense en rubrique, deux colonnes avec rail collant en detail), rhabille
   en entier : palette, caracteres, rythme, composants et vocabulaire.
   Vocabulaire des classes, celui du registre et du metier a tisser :
   folio (largeur utile), masthead (en-tete), mark (enseigne), sett (bande
   tissee), plate (heros), tally (chiffres), shelf (rangee des registres),
   tile (tuile), band (bande de section), entry (fiche), code (cote), flag
   (etiquette), fact (attribut), path (l'ordre du vetement), step (etape),
   swatch (echantillon), note (encart), crumbs (fil), opening (tete de page),
   wide (photo large), spread (deux colonnes), column (corps), rail (colonne
   collante), box (encadre), contents (sommaire), register (liste dense),
   row (ligne), neighbours (entrees voisines), colophon (pied de page).
   Palette : encre charbon, avoine, prune de bruyere, fil de laiton.
   Une seule identite, claire. Aucune police distante, aucun script.
   ========================================================================= */

:root {
  color-scheme: light;

  --ldg-ink: #26262b;            /* texte courant                          */
  --ldg-ink-deep: #1b1b20;       /* bandes sombres : chemin, pied de page  */
  --ldg-ink-soft: #5d5b62;       /* texte secondaire, attributs            */
  --ldg-oat: #ece6d9;            /* fond de page, avoine                   */
  --ldg-oat-light: #f7f3eb;      /* papier des fiches et encadres          */
  --ldg-oat-tint: #e3dbc9;       /* bandes en creux                        */
  --ldg-oat-deep: #d5cab3;       /* ombres portees, aplats                 */
  --ldg-plum: #6d3d5c;           /* accent : liens, boutons, cotes         */
  --ldg-plum-deep: #4f2a43;      /* survol                                 */
  --ldg-plum-veil: #ebdfe6;      /* fond des etiquettes                    */
  --ldg-brass: #a67f33;          /* fil de laiton : numeros, filets, puces */
  --ldg-brass-pale: #d8c48d;     /* laiton sur fond sombre                 */
  --ldg-rule: #cfc5b1;           /* filets et bordures                     */

  /* Tokens des bandes sombres : fixes ici, jamais derives du fond clair. */
  --ldg-on-dark: #f1ece2;
  --ldg-on-dark-soft: #c6bfb1;
  --ldg-on-dark-rule: #3b3a43;
  --ldg-on-dark-brass: #d8c48d;

  --ldg-teinte: var(--ldg-plum); /* teinte de registre, surchargee par bande */

  --ldg-serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", "URW Palladio L", Georgia, serif;
  --ldg-sans: "Avenir Next", Avenir, "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --ldg-mono: "SF Mono", "Cascadia Code", Menlo, Consolas, "Liberation Mono", monospace;

  --ldg-folio: 74rem;
  --ldg-measure: 66ch;
  --ldg-step: 1.5rem;
  --ldg-line: 1px solid var(--ldg-rule);
}

/* -------------------------------------------------------------------------
   SOCLE
   ------------------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--ldg-oat);
  color: var(--ldg-ink);
  font-family: var(--ldg-sans);
  font-size: clamp(1rem, .96rem + .2vw, 1.075rem);
  line-height: 1.6;
  overflow-wrap: break-word;
}
img { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 {
  font-family: var(--ldg-serif);
  font-weight: 500;
  line-height: 1.12;
  margin: 0 0 .55em;
  letter-spacing: -.015em;
}
h1 { font-size: clamp(2.1rem, 1.45rem + 2.2vw, 3.1rem); line-height: 1.05; letter-spacing: -.025em; }
h2 { font-size: clamp(1.55rem, 1.3rem + 1vw, 2.15rem); }
h3 { font-size: 1.2rem; }
p, ul, ol, dl, table, figure { margin: 0 0 var(--ldg-step); }
a { color: var(--ldg-plum); text-decoration-thickness: 1px; text-underline-offset: .16em; }
a:hover { color: var(--ldg-plum-deep); }
:focus-visible { outline: 2px solid var(--ldg-brass); outline-offset: 3px; }
time { white-space: nowrap; }

.ldg-folio { width: min(100% - 2.5rem, var(--ldg-folio)); margin-inline: auto; }

.ldg-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--ldg-ink-deep); color: var(--ldg-on-dark);
  padding: .6rem 1rem; z-index: 30;
}
.ldg-skip:focus { left: .75rem; top: .75rem; }

/* -------------------------------------------------------------------------
   MASTHEAD + BANDE TISSEE
   ------------------------------------------------------------------------- */
.ldg-masthead { background: var(--ldg-oat-light); border-bottom: var(--ldg-line); position: relative; }
.ldg-masthead__row { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 2rem; padding: 1rem 0; }
.ldg-mark { display: flex; align-items: center; gap: .85rem; color: var(--ldg-ink); text-decoration: none; }
.ldg-mark svg { width: 42px; height: 42px; flex: none; }
.ldg-mark__name { display: block; font-family: var(--ldg-serif); font-size: 1.55rem; line-height: 1; letter-spacing: -.02em; }
.ldg-mark__motto { display: block; font-size: .66rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ldg-ink-soft); margin-top: .35rem; }
.ldg-mark:hover .ldg-mark__name { color: var(--ldg-plum); }

.ldg-toggle { position: absolute; opacity: 0; pointer-events: none; }
.ldg-handle { display: none; }
.ldg-nav { margin-left: auto; }
.ldg-nav ul { display: flex; flex-wrap: wrap; gap: .25rem 1.6rem; list-style: none; margin: 0; padding: 0; }
.ldg-nav a {
  display: inline-block; padding: .35rem 0;
  font-size: .78rem; letter-spacing: .11em; text-transform: uppercase;
  color: var(--ldg-ink); text-decoration: none; border-bottom: 2px solid transparent;
}
.ldg-nav a:hover { color: var(--ldg-plum); }
.ldg-nav a[aria-current="page"] { border-bottom-color: var(--ldg-brass); color: var(--ldg-plum); }

@media (max-width: 52rem) {
  .ldg-handle {
    display: inline-flex; align-items: center; margin-left: auto; min-height: 44px;
    padding: 0 .9rem; border: var(--ldg-line); border-radius: 2px; background: var(--ldg-oat);
    font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; cursor: pointer;
  }
  .ldg-mark { flex: 1 1 0; min-width: 0; }
  .ldg-mark__motto { max-width: 26ch; }
  .ldg-handle { flex: none; }
  .ldg-nav { display: none; flex-basis: 100%; margin: 0; }
  .ldg-nav ul { flex-direction: column; gap: 0; border-top: var(--ldg-line); padding-top: .4rem; }
  .ldg-nav a { display: block; padding: .65rem 0; border-bottom: 1px solid var(--ldg-rule); }
  .ldg-nav a[aria-current="page"] { border-bottom-color: var(--ldg-brass); }
  .ldg-toggle:checked ~ .ldg-nav { display: block; }
  .ldg-toggle:focus-visible ~ .ldg-handle { outline: 2px solid var(--ldg-brass); }
}

/* La bande tissee : deux trames croisees, prune, charbon et un fil de laiton. */
.ldg-sett {
  height: 14px;
  background:
    repeating-linear-gradient(90deg,
      rgba(109, 61, 92, .92) 0 26px,
      rgba(38, 38, 43, .88) 26px 34px,
      rgba(236, 230, 217, 0) 34px 40px,
      rgba(166, 127, 51, .95) 40px 43px,
      rgba(236, 230, 217, 0) 43px 64px),
    repeating-linear-gradient(0deg,
      rgba(38, 38, 43, .38) 0 2px,
      rgba(38, 38, 43, 0) 2px 5px),
    var(--ldg-oat-deep);
}

/* -------------------------------------------------------------------------
   HEROS (plate) : texte en regard de la photo, bouton plein, trois chiffres
   ------------------------------------------------------------------------- */
.ldg-plate {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 2.5rem 3.5rem; align-items: center;
  padding: clamp(1.75rem, 3vw, 2.75rem) 0 clamp(1.5rem, 3vw, 2.25rem);
}
.ldg-kicker {
  margin: 0 0 .9rem; font-size: .72rem; letter-spacing: .18em; text-transform: uppercase;
  color: var(--ldg-brass); font-weight: 600;
}
.ldg-kicker a { color: inherit; text-decoration: none; }
.ldg-kicker a:hover { color: var(--ldg-plum); }
.ldg-plate__text { min-width: 0; }
.ldg-plate h1 { max-width: 19ch; margin-bottom: 1rem; }
.ldg-lead { font-size: 1.12rem; line-height: 1.55; color: var(--ldg-ink-soft); max-width: 44ch; margin-bottom: 1.5rem; }
.ldg-buttons { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1.75rem; }
.ldg-button {
  display: inline-flex; align-items: center; min-height: 46px; padding: 0 1.35rem;
  background: var(--ldg-plum); color: var(--ldg-on-dark); text-decoration: none;
  font-size: .85rem; letter-spacing: .06em; border: 1px solid var(--ldg-plum); border-radius: 2px;
}
.ldg-button:hover { background: var(--ldg-plum-deep); color: var(--ldg-on-dark); }
.ldg-button--hollow { background: transparent; color: var(--ldg-plum); }
.ldg-button--hollow:hover { background: var(--ldg-plum-veil); color: var(--ldg-plum-deep); }
.ldg-tally {
  display: flex; flex-wrap: wrap; gap: 1.25rem 2.5rem; list-style: none;
  margin: 0; padding: 1rem 0 0; border-top: var(--ldg-line);
}
.ldg-tally b { display: block; font-family: var(--ldg-mono); font-weight: 500; font-size: 1.35rem; color: var(--ldg-plum); }
.ldg-tally span { font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ldg-ink-soft); }
.ldg-plate__view {
  margin: 0; padding: .55rem; background: var(--ldg-oat-light); border: var(--ldg-line);
  box-shadow: 14px 14px 0 var(--ldg-oat-tint);
}
.ldg-plate__view img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ldg-plate__view figcaption { padding: .6rem .2rem 0; font-size: .76rem; color: var(--ldg-ink-soft); }
@media (max-width: 62rem) {
  .ldg-plate { grid-template-columns: 1fr; }
  .ldg-plate__view { box-shadow: 10px 10px 0 var(--ldg-oat-tint); }
}

/* -------------------------------------------------------------------------
   RANGEE DES REGISTRES (shelf) : tetes de section et tuiles numerotees
   ------------------------------------------------------------------------- */
.ldg-shelf { padding: clamp(1.5rem, 3vw, 2.5rem) 0 clamp(2rem, 4vw, 3rem); }
.ldg-shelf__head {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: .4rem 1.2rem;
  margin-bottom: 1.35rem; padding-bottom: .7rem; border-bottom: 2px solid var(--ldg-ink);
}
.ldg-shelf__head h2 { margin: 0; }
.ldg-shelf__no { font-family: var(--ldg-mono); font-size: .8rem; letter-spacing: .1em; color: var(--ldg-brass); }
.ldg-shelf__note { margin: 0; flex-basis: 100%; max-width: 60ch; font-size: .95rem; color: var(--ldg-ink-soft); }
.ldg-shelf__head .ldg-band__more { margin-left: auto; }
@media (min-width: 62rem) { .ldg-shelf__note { flex-basis: auto; margin-left: auto; text-align: right; } .ldg-shelf__head .ldg-band__more + .ldg-shelf__note { margin-left: 0; flex-basis: 100%; text-align: left; } }

.ldg-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
.ldg-tile {
  position: relative; display: flex; flex-direction: column;
  background: var(--ldg-oat-light); border: var(--ldg-line); border-top: 3px solid var(--ldg-teinte);
}
.ldg-tile__view { margin: 0; position: relative; }
.ldg-tile__view img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.ldg-tile__no {
  position: absolute; top: .75rem; left: .75rem; padding: .3rem .6rem;
  background: var(--ldg-oat-light); color: var(--ldg-plum);
  font-family: var(--ldg-mono); font-size: .72rem; letter-spacing: .1em;
}
.ldg-tile__body { padding: 1rem 1.1rem 1.2rem; display: flex; flex-direction: column; gap: .45rem; flex: 1; }
.ldg-tile__body h3 { margin: 0; font-size: 1.32rem; }
.ldg-tile__body h3 a { color: var(--ldg-ink); text-decoration: none; }
.ldg-tile__body h3 a:hover { color: var(--ldg-plum); text-decoration: underline; }
.ldg-tile__body p { margin: 0; font-size: .93rem; color: var(--ldg-ink-soft); }
.ldg-tile__count { margin-top: auto; padding-top: .6rem; font-family: var(--ldg-mono); font-size: .74rem; color: var(--ldg-brass); }
@media (max-width: 62rem) { .ldg-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 40rem) { .ldg-tiles { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------------
   BANDES DE SECTION (band) + FICHES (entry)
   ------------------------------------------------------------------------- */
.ldg-band { padding: clamp(2rem, 4vw, 3.25rem) 0; border-top: var(--ldg-line); }
.ldg-band--tint { background: var(--ldg-oat-tint); }
.ldg-band__head {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  gap: .4rem 1.25rem; align-items: baseline; margin-bottom: 1.5rem;
}
.ldg-band__no {
  font-family: var(--ldg-serif); font-size: clamp(2.4rem, 2rem + 2vw, 3.6rem);
  line-height: .9; color: var(--ldg-brass); grid-row: 1 / span 2;
}
.ldg-band__head h2 { margin: 0; }
.ldg-band__more {
  font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; text-decoration: none;
  white-space: nowrap; color: var(--ldg-plum); border-bottom: 1px solid currentColor; padding-bottom: .1rem;
}
.ldg-band__more:hover { color: var(--ldg-plum-deep); }
.ldg-band__note { grid-column: 2 / span 2; margin: 0; max-width: 64ch; color: var(--ldg-ink-soft); font-size: .97rem; }
@media (max-width: 40rem) {
  .ldg-band__head { grid-template-columns: auto minmax(0, 1fr); }
  .ldg-band__more, .ldg-band__note { grid-column: 2; }
}

.ldg-entries { display: grid; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
.ldg-entry {
  display: flex; flex-direction: column;
  background: var(--ldg-oat-light); border: var(--ldg-line); border-top: 3px solid var(--ldg-teinte);
}
.ldg-entry:hover { border-color: var(--ldg-teinte); }
.ldg-entry__view { margin: 0; }
.ldg-entry__view a { display: block; }
.ldg-entry__view img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ldg-entry__body { padding: .9rem 1rem 1rem; display: flex; flex-direction: column; flex: 1; }
.ldg-entry__code { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 0 0 .5rem; }
.ldg-code { font-family: var(--ldg-mono); font-size: .74rem; letter-spacing: .06em; color: var(--ldg-ink-soft); }
.ldg-flag {
  font-size: .64rem; letter-spacing: .1em; text-transform: uppercase;
  background: var(--ldg-plum-veil); color: var(--ldg-plum-deep); padding: .18rem .5rem; border-radius: 2px;
}
.ldg-entry__title { margin: 0 0 .45rem; font-size: 1.17rem; line-height: 1.2; }
.ldg-entry__title a { color: var(--ldg-ink); text-decoration: none; }
.ldg-entry__title a:hover { color: var(--ldg-plum); text-decoration: underline; }
.ldg-entry__abstract { margin: 0 0 .9rem; font-size: .9rem; color: var(--ldg-ink-soft); }
.ldg-facts { margin: auto 0 0; padding: .55rem 0 0; border-top: var(--ldg-line); font-size: .8rem; }
.ldg-fact { display: flex; justify-content: space-between; gap: .75rem; padding: .14rem 0; }
.ldg-fact dt { color: var(--ldg-ink-soft); }
.ldg-fact dd { margin: 0; font-family: var(--ldg-mono); font-size: .74rem; text-align: right; }

[data-ledger="tartans"] { --ldg-teinte: var(--ldg-plum); }
[data-ledger="kilts"] { --ldg-teinte: var(--ldg-brass); }
[data-ledger="accessories"] { --ldg-teinte: var(--ldg-ink-soft); }

/* -------------------------------------------------------------------------
   L'ORDRE DU VETEMENT (path) : bande sombre, etapes numerotees
   ------------------------------------------------------------------------- */
.ldg-path { background: var(--ldg-ink-deep); color: var(--ldg-on-dark); padding: clamp(2.5rem, 5vw, 4rem) 0; }
.ldg-path__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 2.5rem 4rem; align-items: start; }
.ldg-path .ldg-kicker { color: var(--ldg-on-dark-brass); }
.ldg-path h2 { color: var(--ldg-on-dark); max-width: 16ch; }
.ldg-path__intro p { color: var(--ldg-on-dark-soft); max-width: 42ch; }
.ldg-path__view { margin: 1.5rem 0 0; border: 1px solid var(--ldg-on-dark-rule); padding: .4rem; }
.ldg-path__view a { display: block; }
.ldg-path__view img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ldg-path__view figcaption { padding: .5rem .1rem 0; font-size: .76rem; color: var(--ldg-on-dark-soft); }
.ldg-path__view figcaption a { color: var(--ldg-on-dark-brass); }
.ldg-steps { list-style: none; margin: 0; padding: 0; }
.ldg-step { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr); gap: 1rem; padding: 1.1rem 0; border-top: 1px solid var(--ldg-on-dark-rule); }
.ldg-step:last-child { border-bottom: 1px solid var(--ldg-on-dark-rule); }
.ldg-step__no { font-family: var(--ldg-serif); font-size: 1.9rem; line-height: 1; color: var(--ldg-on-dark-brass); }
.ldg-step h3 { margin: 0 0 .3rem; font-size: 1.15rem; color: var(--ldg-on-dark); }
.ldg-step p { margin: 0; font-size: .93rem; color: var(--ldg-on-dark-soft); }
.ldg-step a { color: var(--ldg-on-dark); text-decoration-color: var(--ldg-on-dark-brass); }
.ldg-step a:hover { color: var(--ldg-on-dark-brass); }
@media (max-width: 62rem) { .ldg-path__grid { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------------
   ECHANTILLONS (swatches) + ENCART (note)
   ------------------------------------------------------------------------- */
.ldg-swatches { padding: clamp(2rem, 4vw, 3rem) 0 1rem; }
.ldg-swatches__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; list-style: none; margin: 0; padding: 0; }
.ldg-swatch { margin: 0; }
.ldg-swatch > a { display: block; border: var(--ldg-line); padding: .35rem; background: var(--ldg-oat-light); }
.ldg-swatch img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ldg-swatch figcaption { padding: .5rem .1rem 0; font-size: .8rem; color: var(--ldg-ink-soft); }
@media (max-width: 52rem) { .ldg-swatches__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.ldg-note {
  background: var(--ldg-oat-light); border: var(--ldg-line); border-left: 4px solid var(--ldg-brass);
  padding: 1.2rem 1.4rem; margin: 1rem 0 clamp(1.5rem, 3vw, 2.5rem);
}
.ldg-note h2 { font-size: 1.25rem; }
.ldg-note p, .ldg-note li { font-size: .95rem; }
.ldg-note p:last-child, .ldg-note ul:last-child { margin-bottom: 0; }
.ldg-note ul { padding-left: 1.1rem; }
.ldg-note li { margin-bottom: .35rem; }
.ldg-note--split { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 2rem; }
.ldg-note__links { list-style: none; padding: 0; margin: 0; }
.ldg-note__links li { border-top: var(--ldg-line); padding: .45rem 0; }
.ldg-note__links li:first-child { border-top: 0; }
@media (max-width: 52rem) { .ldg-note--split { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------------
   PIED DE PAGE (colophon) : bande sombre a tokens fixes
   ------------------------------------------------------------------------- */
.ldg-colophon {
  background: var(--ldg-ink-deep); color: var(--ldg-on-dark);
  margin-top: clamp(2rem, 4vw, 3rem); padding: clamp(2.5rem, 4vw, 3.5rem) 0 1.5rem;
}
.ldg-colophon__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 2rem 3rem; }
.ldg-colophon h2 {
  font-family: var(--ldg-sans); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase;
  color: var(--ldg-on-dark-soft); margin-bottom: .8rem;
}
.ldg-colophon p { color: var(--ldg-on-dark-soft); font-size: .92rem; max-width: 44ch; }
.ldg-colophon ul { list-style: none; margin: 0; padding: 0; font-size: .92rem; }
.ldg-colophon li { margin-bottom: .45rem; }
.ldg-colophon a { color: var(--ldg-on-dark); text-decoration-color: var(--ldg-on-dark-rule); }
.ldg-colophon a:hover { color: var(--ldg-on-dark-brass); }
.ldg-colophon .ldg-mark { color: var(--ldg-on-dark); margin-bottom: 1rem; }
.ldg-colophon .ldg-mark__motto { color: var(--ldg-on-dark-soft); }
.ldg-colophon .ldg-mark:hover .ldg-mark__name { color: var(--ldg-on-dark-brass); }
.ldg-colophon__sign { font-family: var(--ldg-serif); font-size: 1.02rem; color: var(--ldg-on-dark); }
.ldg-colophon__sign a { color: var(--ldg-on-dark-brass); }
.ldg-colophon__line {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem;
  margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--ldg-on-dark-rule);
  font-size: .78rem; color: var(--ldg-on-dark-soft);
}
@media (max-width: 52rem) { .ldg-colophon__grid { grid-template-columns: 1fr; } }

/* -------------------------------------------------------------------------
   PAGES INTERIEURES : fil, tete de page, photo large, deux colonnes, rail
   ------------------------------------------------------------------------- */
.ldg-crumbs { padding: 1.1rem 0 0; font-size: .78rem; color: var(--ldg-ink-soft); }
.ldg-crumbs ol { display: flex; flex-wrap: wrap; gap: .4rem; list-style: none; margin: 0; padding: 0; }
.ldg-crumbs li::after { content: "/"; margin-left: .4rem; color: var(--ldg-rule); }
.ldg-crumbs li:last-child::after { content: ""; }
.ldg-crumbs a { color: var(--ldg-ink-soft); }
.ldg-crumbs a:hover { color: var(--ldg-plum); }

.ldg-opening { padding: 1.25rem 0 1.4rem; border-bottom: var(--ldg-line); }
.ldg-opening h1 { max-width: 22ch; margin-bottom: .7rem; }
.ldg-standfirst { font-size: 1.15rem; line-height: 1.5; color: var(--ldg-ink-soft); max-width: 62ch; margin-bottom: 1rem; }
.ldg-meta { display: flex; flex-wrap: wrap; gap: .3rem 1.4rem; list-style: none; margin: 0; padding: 0; font-size: .78rem; letter-spacing: .04em; color: var(--ldg-ink-soft); }
.ldg-meta li::before { content: ""; display: inline-block; width: .45rem; height: .45rem; background: var(--ldg-brass); margin-right: .5rem; vertical-align: middle; }

.ldg-wide { margin: 1.75rem 0 2rem; padding: .55rem; background: var(--ldg-oat-light); border: var(--ldg-line); }
.ldg-wide img { width: 100%; aspect-ratio: 21 / 9; object-fit: cover; }
.ldg-wide figcaption { padding: .6rem .2rem 0; font-size: .78rem; color: var(--ldg-ink-soft); }

.ldg-spread { display: grid; gap: 2.5rem; padding-bottom: 1rem; }
@media (min-width: 64rem) {
  .ldg-spread { grid-template-columns: minmax(0, 1fr) 19rem; gap: 3.5rem; align-items: start; }
  .ldg-rail { position: sticky; top: 1rem; }
}

.ldg-column { max-width: var(--ldg-measure); font-size: 1.06rem; line-height: 1.72; }
.ldg-column > * { max-width: var(--ldg-measure); }
.ldg-column h2 { margin-top: 2.2rem; font-size: 1.6rem; }
.ldg-column h3 { margin-top: 1.5rem; font-size: 1.25rem; }
.ldg-column p { margin: 0 0 1.25em; }
.ldg-column ul, .ldg-column ol { padding-left: 1.25rem; }
.ldg-column li { margin-bottom: .4rem; }
.ldg-column table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.ldg-column th, .ldg-column td { text-align: left; padding: .5rem .6rem; border-bottom: var(--ldg-line); vertical-align: top; }
.ldg-column th { color: var(--ldg-ink-soft); font-weight: 600; }
.ldg-column blockquote { margin: 0 0 1.25em; padding-left: 1rem; border-left: 3px solid var(--ldg-brass); color: var(--ldg-ink-soft); }

.ldg-box { background: var(--ldg-oat-light); border: var(--ldg-line); padding: 1rem 1.15rem 1.1rem; margin-bottom: 1rem; }
.ldg-box h2 { font-family: var(--ldg-sans); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ldg-ink-soft); margin-bottom: .6rem; }
.ldg-box ul, .ldg-box ol { list-style: none; margin: 0; padding: 0; font-size: .9rem; }
.ldg-box li { border-top: var(--ldg-line); padding: .45rem 0; }
.ldg-box li:first-child { border-top: 0; }
.ldg-box p { font-size: .9rem; margin: 0 0 .6rem; }
.ldg-box p:last-child { margin-bottom: 0; }
.ldg-box a { color: var(--ldg-ink); text-decoration-color: var(--ldg-rule); }
.ldg-box a:hover { color: var(--ldg-plum); }
.ldg-box--tint { background: var(--ldg-plum-veil); border-color: var(--ldg-plum-veil); }
.ldg-contents ol { counter-reset: entry; }
.ldg-contents li { counter-increment: entry; }
.ldg-contents a { display: block; }
.ldg-contents a::before { content: counter(entry, decimal-leading-zero) "  "; font-family: var(--ldg-mono); font-size: .72rem; color: var(--ldg-brass); white-space: pre; }
.ldg-facts-table { width: 100%; border-collapse: collapse; font-size: .85rem; margin: 0; }
.ldg-facts-table th, .ldg-facts-table td { text-align: left; padding: .42rem 0; border-top: var(--ldg-line); vertical-align: top; }
.ldg-facts-table tr:first-child th, .ldg-facts-table tr:first-child td { border-top: 0; }
.ldg-facts-table th { font-weight: 500; color: var(--ldg-ink-soft); width: 46%; }
.ldg-facts-table td { font-family: var(--ldg-mono); font-size: .78rem; }

/* Liste dense de la page de registre (rubrique) */
.ldg-register { list-style: none; margin: 0 0 1.5rem; padding: 0; border-top: 2px solid var(--ldg-ink); }
.ldg-row { display: grid; gap: .6rem 1.25rem; padding: 1.1rem 0; border-bottom: var(--ldg-line); grid-template-columns: minmax(0, 1fr); }
.ldg-row__code { font-family: var(--ldg-mono); font-size: .74rem; color: var(--ldg-ink-soft); padding-top: .2rem; }
.ldg-row__view { margin: 0; }
.ldg-row__view a { display: block; }
.ldg-row__view img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ldg-row__body h3 { margin: 0 0 .35rem; font-size: 1.25rem; }
.ldg-row__body h3 a { color: var(--ldg-ink); text-decoration: none; }
.ldg-row__body h3 a:hover { color: var(--ldg-plum); text-decoration: underline; }
.ldg-row__body p { margin: 0; font-size: .92rem; color: var(--ldg-ink-soft); max-width: 60ch; }
.ldg-row .ldg-facts { border-top: 0; padding-top: 0; margin: 0; }
.ldg-row .ldg-entry__code { margin-bottom: .35rem; }
@media (min-width: 52rem) { .ldg-row { grid-template-columns: 4.5rem minmax(0, 1.15fr) minmax(0, 2.4fr) 10rem; align-items: start; } }

.ldg-neighbours { border-top: var(--ldg-line); padding: clamp(2rem, 4vw, 3rem) 0 0; }
.ldg-closed { padding: 3rem 0 4rem; max-width: 60ch; }
.ldg-closed h1 { margin-top: .5rem; }
