/* =========================================================================
   LANE SIX (corbyac.com) : « municipal track modernism ».
   Squelette d'origine : journal-deux-col (tribune large + marge etroite),
   rhabille en piste municipale anglaise : chalk white (fond), lane red
   (accent), slate (encre et bandes sombres), chiffres de chronometre en
   chasse fixe. Prefixe lsx-, vocabulaire de la piste :
     track (conteneur)        blocks (en-tete, les starting blocks)
     route (sommaire)         handle (bouton du menu mobile)
     straight (heros, la ligne droite d'arrivee)   baton (bouton)
     split (chrono, chiffres cles)   heat (une serie = une section)
     lane (tuile de rubrique)        bib (dossard = carte d'article)
     board (tableau du clubhouse = pages a garder)   clubhouse (methode)
     startline (ornement des departs decales)        trail (fil d'Ariane)
     start (tete de page)     wide (figure large)    infield (grille)
     copy (colonne de lecture)   marshal (marge)     box (cahier)
     finish (pied de page)    closed (404)
   Aucune requete externe, aucune police tierce, aucun script, une seule
   identite claire (color-scheme light), tokens fixes sur les bandes sombres.
   ========================================================================= */

:root {
  color-scheme: light;

  /* ---- couleurs : la piste ------------------------------------------- */
  --lsx-chalk: #f3f2ec;        /* fond de page, blanc craie                */
  --lsx-sheet: #fcfbf8;        /* cartes, feuille                          */
  --lsx-tint: #e9e7de;         /* bande claire alternee                    */
  --lsx-slate: #2a333b;        /* encre                                    */
  --lsx-slate-2: #55616b;      /* texte secondaire, legendes               */
  --lsx-slate-deep: #1c2329;   /* bandes sombres : en-tete, clubhouse      */
  --lsx-on-slate: #eef0ea;     /* texte sur bande sombre (fixe)            */
  --lsx-on-slate-2: #b9c1c7;   /* texte secondaire sur bande sombre (fixe) */
  --lsx-lane: #b7301f;         /* lane red : liens, filets, chiffres       */
  --lsx-lane-deep: #8e2416;    /* survol                                   */
  --lsx-lane-on-slate: #f2a293;/* le rouge lisible sur bande sombre        */
  --lsx-kerb: #d8d5cb;         /* filet fin                                */
  --lsx-rail: #3a454e;         /* filet sur bande sombre                   */

  /* ---- caracteres : piles systeme, rien ne part dehors ---------------- */
  --lsx-display: Futura, "Futura PT", "Century Gothic", "Twentieth Century", "Avenir Next", "Segoe UI", "Trebuchet MS", sans-serif;
  --lsx-text: "Gill Sans", "Gill Sans Nova", "Gill Sans MT", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --lsx-mono: "SF Mono", Menlo, "Cascadia Mono", Consolas, "Liberation Mono", "DejaVu Sans Mono", monospace;

  /* ---- rythme ---------------------------------------------------------- */
  --lsx-width: 79rem;
  --lsx-marshal: 19rem;
  --lsx-measure: 70ch;
  --lsx-gutter: clamp(1rem, 4vw, 2.5rem);
  --lsx-gap: clamp(1rem, 2.4vw, 1.75rem);
  --lsx-breath: clamp(2.2rem, 5vw, 4rem);
  --lsx-corner: 2.75rem;       /* le rayon du virage, sur une seule pointe */
  --lsx-rule: 1px solid var(--lsx-kerb);
}

/* =========================================================================
   BASE
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: var(--lsx-chalk);
  color: var(--lsx-slate);
  font-family: var(--lsx-text);
  font-size: 1.0625rem;
  line-height: 1.6;
  overflow-wrap: break-word;
}
img, svg, picture { max-width: 100%; height: auto; display: block; }
h1, h2, h3, h4 {
  font-family: var(--lsx-display);
  font-weight: 700;
  line-height: 1.05;
  letter-spacing: -0.01em;
  margin: 0;
  text-wrap: balance;
}
p, ul, ol, figure { margin: 0; }
a { color: var(--lsx-lane); text-decoration-thickness: 1px; text-underline-offset: 0.16em; }
a:hover { color: var(--lsx-lane-deep); }
:focus-visible { outline: 3px solid var(--lsx-lane); outline-offset: 3px; }
::selection { background: var(--lsx-lane); color: #fff; }

.lsx-skip {
  position: absolute; left: -9999px; top: 0;
  background: var(--lsx-lane); color: #fff;
  font-family: var(--lsx-display); text-transform: uppercase; letter-spacing: 0.1em;
  padding: 0.7rem 1.1rem; z-index: 60;
}
.lsx-skip:focus { left: 0.6rem; top: 0.6rem; }

.lsx-track {
  width: 100%;
  max-width: var(--lsx-width);
  margin-inline: auto;
  padding-inline: var(--lsx-gutter);
}

/* =========================================================================
   LES BLOCKS : l'en-tete sur bande ardoise, kerb rouge et blanc dessous
   ========================================================================= */
.lsx-blocks { background: var(--lsx-slate-deep); color: var(--lsx-on-slate); }
.lsx-blocks::after {
  content: "";
  display: block;
  height: 7px;
  background: linear-gradient(#fff 0 2px, var(--lsx-lane) 2px);
}
.lsx-blocks__row {
  display: flex; flex-wrap: wrap;
  align-items: center; justify-content: space-between;
  gap: 0.6rem 2rem;
  padding-block: 0.95rem;
}
.lsx-mark { display: flex; align-items: center; gap: 0.85rem; text-decoration: none; color: inherit; }
.lsx-mark svg { width: 2.7rem; height: 2.7rem; flex: none; }
.lsx-mark__name {
  display: block;
  font-family: var(--lsx-display);
  font-size: 1.6rem; font-weight: 700; line-height: 1;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: #fff;
}
.lsx-mark__line {
  display: block;
  font-family: var(--lsx-mono);
  font-size: 0.66rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--lsx-on-slate-2);
  margin-top: 0.32rem;
}
.lsx-mark:hover .lsx-mark__name { color: var(--lsx-lane-on-slate); }

.lsx-toggle { position: absolute; opacity: 0; width: 1px; height: 1px; overflow: hidden; }
.lsx-handle {
  display: none;
  align-items: center; min-height: 44px;
  font-family: var(--lsx-mono); font-size: 0.78rem; letter-spacing: 0.12em; text-transform: uppercase;
  border: 1px solid var(--lsx-on-slate-2); color: var(--lsx-on-slate);
  padding: 0.5rem 0.95rem; cursor: pointer;
}
.lsx-toggle:focus-visible + .lsx-handle { outline: 3px solid var(--lsx-lane-on-slate); outline-offset: 2px; }

.lsx-route ul { display: flex; flex-wrap: wrap; gap: 0.2rem 1.7rem; list-style: none; margin: 0; padding: 0; }
.lsx-route a {
  display: inline-block;
  font-family: var(--lsx-display); font-size: 0.86rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--lsx-on-slate); text-decoration: none;
  padding: 0.55rem 0;
  border-bottom: 3px solid transparent;
}
.lsx-route a:hover { color: #fff; border-bottom-color: var(--lsx-on-slate-2); }
.lsx-route a[aria-current="page"] { color: #fff; border-bottom-color: var(--lsx-lane); }

/* =========================================================================
   LA LIGNE DROITE : le heros de l'accueil, texte en regard de la photo
   ========================================================================= */
.lsx-straight {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 1.4rem var(--lsx-gap);
  align-items: center;
  padding-block: clamp(1.4rem, 3vw, 2.2rem) 1.1rem;
  border-bottom: 3px solid var(--lsx-slate);
}
.lsx-kicker {
  display: flex; align-items: center; gap: 0.65rem;
  font-family: var(--lsx-mono); font-size: 0.74rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--lsx-lane);
  margin: 0 0 1rem;
}
.lsx-kicker::before { content: ""; width: 2.2rem; height: 3px; background: var(--lsx-lane); flex: none; }
.lsx-kicker a { color: inherit; text-decoration: none; }
.lsx-kicker a:hover { text-decoration: underline; }
.lsx-straight h1 { font-size: clamp(2rem, 1.1rem + 2vw, 2.7rem); margin: 0 0 0.9rem; max-width: 30ch; }
.lsx-lead {
  font-size: clamp(1.05rem, 1rem + 0.3vw, 1.2rem); line-height: 1.5;
  color: var(--lsx-slate-2); max-width: 50ch;
  margin: 0 0 1.2rem;
}
.lsx-batons { display: flex; flex-wrap: wrap; gap: 0.8rem 1.4rem; align-items: center; }
.lsx-baton {
  display: inline-flex; align-items: center; gap: 0.55rem; min-height: 44px;
  font-family: var(--lsx-display); font-size: 0.88rem; letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none;
  background: var(--lsx-lane); color: #fff;
  border: 2px solid var(--lsx-lane);
  padding: 0.75rem 1.3rem;
}
.lsx-baton::after { content: "\2192"; }
.lsx-baton:hover { background: var(--lsx-lane-deep); border-color: var(--lsx-lane-deep); color: #fff; }
.lsx-baton--hollow { background: transparent; color: var(--lsx-slate); border-color: var(--lsx-slate); }
.lsx-baton--hollow:hover { background: transparent; color: var(--lsx-lane); border-color: var(--lsx-lane); }

.lsx-straight__copy { min-width: 0; }
.lsx-straight__view { margin: 0; min-width: 0; }
.lsx-straight__view figure { margin: 0; }
.lsx-straight__view img {
  width: 100%; height: auto;
  aspect-ratio: 16 / 9; object-fit: cover;
  border: var(--lsx-rule);
  border-radius: 0 0 0 var(--lsx-corner);
}
.lsx-straight__view figcaption, .lsx-wide figcaption {
  margin-top: 0.55rem;
  font-family: var(--lsx-mono); font-size: 0.7rem; letter-spacing: 0.03em;
  color: var(--lsx-slate-2);
}

/* Le chrono : trois reperes chiffres sous le heros. */
.lsx-split {
  display: flex; flex-wrap: wrap; gap: 0.6rem 2.4rem;
  list-style: none; margin: 0.8rem 0 0; padding: 0.75rem 0 0;
  border-top: 3px solid var(--lsx-slate);
}
.lsx-split li { display: flex; align-items: baseline; gap: 0.6rem; }
.lsx-split b {
  font-family: var(--lsx-mono); font-weight: 700; font-size: 1.5rem; line-height: 1;
  color: var(--lsx-lane);
  font-variant-numeric: tabular-nums; letter-spacing: -0.02em;
}
.lsx-split span {
  font-family: var(--lsx-display); font-size: 0.74rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--lsx-slate-2);
}

/* =========================================================================
   LES SERIES : chaque section de l'accueil, numerotee au chrono
   ========================================================================= */
.lsx-heat { padding-block: var(--lsx-breath); }
.lsx-heat--first { padding-top: 0.9rem; }
.lsx-heat--first .lsx-heat__head { margin-bottom: 1rem; }
.lsx-heat--tint { background: var(--lsx-tint); border-block: var(--lsx-rule); }
.lsx-heat__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: end;
  gap: 0.5rem 1.4rem;
  padding-bottom: 0.8rem;
  margin-bottom: clamp(1.2rem, 2.5vw, 1.8rem);
  border-bottom: 3px solid var(--lsx-slate);
}
.lsx-heat__no {
  font-family: var(--lsx-mono); font-size: clamp(2rem, 4vw, 3rem); line-height: 0.9;
  color: var(--lsx-lane);
  font-variant-numeric: tabular-nums; letter-spacing: -0.04em;
}
.lsx-heat__head h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2.4rem); }
.lsx-heat__note { grid-column: 1 / -1; margin: 0.35rem 0 0; color: var(--lsx-slate-2); max-width: 64ch; }
.lsx-more {
  font-family: var(--lsx-mono); font-size: 0.74rem; letter-spacing: 0.1em; text-transform: uppercase;
  text-decoration: none; color: var(--lsx-slate);
  border-bottom: 2px solid var(--lsx-lane); padding-bottom: 0.15rem;
  white-space: nowrap;
}
.lsx-more::after { content: " \2192"; }
.lsx-more:hover { color: var(--lsx-lane); }

/* Les tuiles de rubrique : photo, numero en cartouche, titre. */
.lsx-lanes {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lsx-gap);
  list-style: none; margin: 0; padding: 0;
}
.lsx-lane { position: relative; min-width: 0; background: var(--lsx-sheet); border: var(--lsx-rule); border-bottom: 4px solid var(--lsx-slate); }
.lsx-lane__view { position: relative; margin: 0; }
.lsx-lane__view img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.lsx-lane__no {
  position: absolute; top: 0; left: 0;
  background: var(--lsx-slate-deep); color: #fff;
  font-family: var(--lsx-mono); font-size: 0.95rem; font-weight: 700; letter-spacing: 0.06em;
  padding: 0.45rem 0.75rem;
  border-right: 3px solid var(--lsx-lane);
}
.lsx-lane__body { padding: 1rem 1.1rem 1.2rem; }
.lsx-lane h3 { font-size: 1.32rem; margin: 0 0 0.4rem; }
.lsx-lane h3 a, .lsx-bib h3 a { color: var(--lsx-slate); text-decoration: none; }
.lsx-lane h3 a:hover, .lsx-bib h3 a:hover { color: var(--lsx-lane); text-decoration: underline; }
.lsx-lane p { margin: 0; color: var(--lsx-slate-2); font-size: 0.95rem; line-height: 1.5; }

/* Les dossards : les cartes d'article, filet rouge en tete de photo. */
.lsx-bibs {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lsx-gap);
  list-style: none; margin: 0; padding: 0;
}
.lsx-bib { display: flex; flex-direction: column; min-width: 0; background: var(--lsx-sheet); border: var(--lsx-rule); }
.lsx-bib__view { margin: 0; border-top: 4px solid var(--lsx-lane); }
.lsx-bib__view img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.lsx-bib__tag {
  font-family: var(--lsx-mono); font-size: 0.68rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--lsx-lane);
  margin: 0.9rem 1rem 0.35rem;
}
.lsx-bib h3 { font-size: 1.16rem; line-height: 1.2; margin: 0 1rem 0.45rem; }
.lsx-bib p { margin: 0 1rem 1.1rem; color: var(--lsx-slate-2); font-size: 0.92rem; line-height: 1.5; }

/* L'ornement des departs decales entre deux series. */
.lsx-startline { display: flex; justify-content: center; color: var(--lsx-kerb); padding-block: 0.2rem; }
.lsx-startline svg { display: block; }
.lsx-startline__tick { stroke: var(--lsx-lane); }

/* Le tableau du clubhouse : une case d'introduction sombre, puis les dossards. */
.lsx-board {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lsx-gap);
  list-style: none; margin: 0; padding: 0;
}
.lsx-board__intro {
  display: flex; flex-direction: column; justify-content: flex-end;
  background: var(--lsx-slate-deep); color: var(--lsx-on-slate);
  border-bottom: 4px solid var(--lsx-lane);
  padding: 1.4rem 1.4rem 1.6rem;
}
.lsx-board__intro .lsx-kicker { color: var(--lsx-lane-on-slate); }
.lsx-board__intro .lsx-kicker::before { background: var(--lsx-lane-on-slate); }
.lsx-board__intro h2 { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 2.1rem); margin: 0 0 0.7rem; color: #fff; }
.lsx-board__intro p { margin: 0; color: var(--lsx-on-slate-2); line-height: 1.5; }

/* La bande clubhouse : la methode de la redaction, sur ardoise. */
.lsx-clubhouse {
  position: relative; overflow: hidden;
  background: var(--lsx-slate-deep); color: var(--lsx-on-slate);
  padding-block: var(--lsx-breath);
}
.lsx-clubhouse__arcs {
  position: absolute; right: -7rem; top: -5rem;
  width: 30rem; height: 30rem;
  color: #fff; opacity: 0.09; pointer-events: none;
}
.lsx-clubhouse__grid {
  position: relative;
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: var(--lsx-breath); align-items: center;
}
.lsx-clubhouse .lsx-kicker { color: var(--lsx-lane-on-slate); }
.lsx-clubhouse .lsx-kicker::before { background: var(--lsx-lane-on-slate); }
.lsx-clubhouse h2 { color: #fff; font-size: clamp(1.7rem, 1.2rem + 1.6vw, 2.6rem); margin: 0 0 0.9rem; }
.lsx-clubhouse p { color: var(--lsx-on-slate-2); font-size: 1.05rem; line-height: 1.55; max-width: 52ch; }
.lsx-clubhouse p + p { margin-top: 0.8rem; }
.lsx-clubhouse ul { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--lsx-rail); }
.lsx-clubhouse li { border-bottom: 1px solid var(--lsx-rail); }
.lsx-clubhouse li a {
  display: flex; justify-content: space-between; gap: 1rem; align-items: baseline;
  padding: 0.95rem 0;
  font-family: var(--lsx-display); font-size: 0.92rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: #fff; text-decoration: none;
}
.lsx-clubhouse li a::after { content: "\2192"; color: var(--lsx-lane-on-slate); }
.lsx-clubhouse li a:hover { color: var(--lsx-lane-on-slate); }

/* =========================================================================
   PAGES INTERIEURES : fil d'Ariane, tete de page, figure large, infield
   ========================================================================= */
.lsx-trail { padding-block: 1rem 0.4rem; }
.lsx-trail ol {
  display: flex; flex-wrap: wrap; gap: 0.3rem 0.6rem;
  list-style: none; margin: 0; padding: 0;
  font-family: var(--lsx-mono); font-size: 0.72rem; letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--lsx-slate-2);
}
.lsx-trail li + li::before { content: "/"; margin-right: 0.6rem; color: var(--lsx-kerb); }
.lsx-trail a { color: var(--lsx-slate-2); text-decoration: none; }
.lsx-trail a:hover { color: var(--lsx-lane); text-decoration: underline; }
.lsx-trail [aria-current="page"] { color: var(--lsx-slate); }

.lsx-start { padding-block: 0.6rem 1.3rem; max-width: 60rem; }
.lsx-start h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); margin: 0 0 0.9rem; max-width: 22ch; }
.lsx-chapo {
  font-size: clamp(1.08rem, 1rem + 0.4vw, 1.28rem); line-height: 1.5;
  color: var(--lsx-slate-2); max-width: 62ch;
  margin: 0 0 1rem;
}
.lsx-meta {
  display: flex; flex-wrap: wrap; gap: 0.3rem 1.4rem;
  list-style: none; margin: 0; padding: 0.7rem 0 0;
  border-top: 3px solid var(--lsx-slate);
  font-family: var(--lsx-mono); font-size: 0.72rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--lsx-slate-2);
}
.lsx-meta a { color: var(--lsx-slate-2); }
.lsx-meta a:hover { color: var(--lsx-lane); }

.lsx-wide { margin: 0.3rem 0 0; }
.lsx-wide img {
  width: 100%; height: auto;
  aspect-ratio: 21 / 9; max-height: 32rem; object-fit: cover;
  border: var(--lsx-rule);
  border-radius: 0 0 0 var(--lsx-corner);
}

.lsx-infield {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: var(--lsx-breath) var(--lsx-gutter);
  padding-block: clamp(1.4rem, 3vw, 2.4rem) 0;
  align-items: start;
}
.lsx-copy { max-width: var(--lsx-measure); min-width: 0; font-size: 1.1rem; line-height: 1.65; }
.lsx-copy > * + * { margin-top: 1em; }
.lsx-copy h2 {
  position: relative;
  font-size: clamp(1.35rem, 1.1rem + 0.9vw, 1.8rem); line-height: 1.15;
  margin-top: 2em; padding-top: 0.9rem;
}
.lsx-copy h2::before { content: ""; position: absolute; top: 0; left: 0; width: 2.6rem; height: 4px; background: var(--lsx-lane); }
.lsx-copy h3 { font-size: 1.2rem; margin-top: 1.6em; }
.lsx-copy ul, .lsx-copy ol { padding-left: 1.3rem; }
.lsx-copy li + li { margin-top: 0.4em; }
.lsx-copy li::marker { color: var(--lsx-lane); }
.lsx-copy strong { font-weight: 700; color: var(--lsx-slate); }
.lsx-copy blockquote { margin: 0; padding: 0.2rem 0 0.2rem 1.1rem; border-left: 4px solid var(--lsx-lane); font-family: var(--lsx-display); font-size: 1.15em; line-height: 1.35; }
.lsx-copy table { border-collapse: collapse; width: 100%; font-size: 0.95em; }
.lsx-copy th, .lsx-copy td { text-align: left; padding: 0.5rem 0.7rem; border-bottom: var(--lsx-rule); vertical-align: top; }
.lsx-copy thead th { font-family: var(--lsx-mono); font-size: 0.74rem; letter-spacing: 0.06em; text-transform: uppercase; border-bottom: 3px solid var(--lsx-slate); }
.lsx-scroll { overflow-x: auto; }

/* La marge : les cahiers du marshal. */
.lsx-marshal { min-width: 0; }
.lsx-box { margin-bottom: 1.7rem; }
.lsx-box h2 {
  font-family: var(--lsx-display); font-size: 0.76rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--lsx-slate);
  margin: 0 0 0.6rem; padding-bottom: 0.4rem;
  border-bottom: 3px solid var(--lsx-slate);
}
.lsx-box ol, .lsx-box ul { list-style: none; margin: 0; padding: 0; font-size: 0.94rem; line-height: 1.45; }
.lsx-box li { display: flex; gap: 0.6rem; padding: 0.45rem 0; border-bottom: var(--lsx-rule); }
.lsx-box li:last-child { border-bottom: 0; }
.lsx-box ol { counter-reset: guide; }
.lsx-box ol li::before {
  counter-increment: guide; content: counter(guide, decimal-leading-zero);
  font-family: var(--lsx-mono); font-size: 0.72rem; color: var(--lsx-lane);
  padding-top: 0.22rem; flex: none;
}
.lsx-box a { color: var(--lsx-slate); text-decoration: none; }
.lsx-box a:hover { color: var(--lsx-lane); text-decoration: underline; }
.lsx-box p { margin: 0; font-size: 0.92rem; color: var(--lsx-slate-2); line-height: 1.5; }
.lsx-box p + p { margin-top: 0.6rem; }
.lsx-box--tint { background: var(--lsx-tint); padding: 1rem 1.1rem 1.1rem; border-top: 4px solid var(--lsx-lane); }
.lsx-box--tint h2 { border-bottom-color: var(--lsx-kerb); }
.lsx-box--tint a { color: var(--lsx-lane); text-decoration: underline; }

/* La serie de fin de page : la suite dans cette ligne. */
.lsx-heat--tail { margin-top: var(--lsx-breath); padding-top: 0; padding-bottom: 0; }

/* La 404 : ligne fermee. */
.lsx-closed { padding-block: var(--lsx-breath); max-width: 50rem; }
.lsx-closed h1 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.4rem); margin: 0 0 1rem; }
.lsx-closed p { margin: 0 0 1rem; font-size: 1.1rem; }

/* =========================================================================
   L'ARRIVEE : le pied de page, trois colonnes signees
   ========================================================================= */
.lsx-finish { margin-top: var(--lsx-breath); border-top: 7px solid var(--lsx-lane); box-shadow: inset 0 2px 0 #fff; background: var(--lsx-chalk); }
.lsx-finish__row {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr;
  gap: 2rem var(--lsx-gap);
  padding-block: clamp(1.8rem, 4vw, 2.8rem) 1.4rem;
}
.lsx-finish h2 {
  font-family: var(--lsx-display); font-size: 0.8rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--lsx-slate); margin: 0 0 0.7rem;
}
.lsx-finish ul { list-style: none; margin: 0; padding: 0; }
.lsx-finish li { padding-block: 0.22rem; }
.lsx-finish a { color: var(--lsx-slate); text-decoration: none; border-bottom: 1px solid var(--lsx-kerb); }
.lsx-finish a:hover { color: var(--lsx-lane); border-bottom-color: var(--lsx-lane); }
.lsx-finish p { margin: 0 0 0.7rem; color: var(--lsx-slate-2); font-size: 0.95rem; max-width: 40ch; }
.lsx-finish .lsx-mark { margin-bottom: 0.9rem; }
.lsx-finish .lsx-mark__name { color: var(--lsx-slate); font-size: 1.3rem; }
.lsx-finish .lsx-mark__line { color: var(--lsx-slate-2); }
.lsx-finish__sign { font-family: var(--lsx-mono); font-size: 0.78rem; color: var(--lsx-slate); }
.lsx-finish__line {
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.4rem 1rem;
  border-top: var(--lsx-rule);
  padding-block: 0.9rem 1.3rem;
  font-family: var(--lsx-mono); font-size: 0.7rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--lsx-slate-2);
}

/* =========================================================================
   ADAPTATION
   ========================================================================= */
@media (min-width: 62rem) {
  .lsx-infield { grid-template-columns: minmax(0, 1fr) var(--lsx-marshal); }
  .lsx-marshal { position: sticky; top: 1.2rem; border-left: var(--lsx-rule); padding-left: calc(var(--lsx-gutter) * 0.8); }
}
@media (max-width: 62rem) {
  .lsx-handle { display: inline-flex; }
  .lsx-route { display: none; flex-basis: 100%; }
  .lsx-toggle:checked ~ .lsx-route { display: block; }
  .lsx-route ul { flex-direction: column; gap: 0; padding-block: 0.3rem 0.9rem; }
  .lsx-route a { display: block; padding: 0.75rem 0; font-size: 1rem; border-bottom: 1px solid var(--lsx-rail); }
  .lsx-route a[aria-current="page"] { border-bottom-color: var(--lsx-lane); }
  .lsx-straight { grid-template-columns: minmax(0, 1fr); gap: 1.4rem; }
  .lsx-bibs, .lsx-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lsx-clubhouse__grid, .lsx-finish__row { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; }
  .lsx-clubhouse__arcs { width: 20rem; height: 20rem; }
}
@media (max-width: 40rem) {
  .lsx-lanes, .lsx-bibs, .lsx-board { grid-template-columns: minmax(0, 1fr); }
  .lsx-heat__head { grid-template-columns: auto minmax(0, 1fr); }
  .lsx-more { grid-column: 1 / -1; justify-self: start; }
  .lsx-split { gap: 0.6rem 1.6rem; }
  .lsx-split b { font-size: 1.4rem; }
  .lsx-mark__name { font-size: 1.25rem; letter-spacing: 0.12em; }
  .lsx-mark svg { width: 2.2rem; height: 2.2rem; }
  .lsx-straight__view img, .lsx-wide img { border-radius: 0 0 0 1.6rem; }
  .lsx-wide img { aspect-ratio: 16 / 9; }
  .lsx-copy { font-size: 1.05rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

@media print {
  .lsx-blocks, .lsx-finish, .lsx-marshal, .lsx-skip, .lsx-clubhouse, .lsx-heat--tail { display: none; }
  body { background: #fff; color: #000; }
  .lsx-copy { max-width: none; }
}
