/* =====================================================================
   EURO RIDE BIKERS LEGENDS — feuille de style unique (v2)
   CHARTE : noir, blanc, rouge. Vert en accent mineur. Aucun beige,
   aucun ocre, aucun jaune.
   Toutes les couleurs sont regroupees dans le bloc :root ci-dessous :
   modifier une valeur ici la change sur l'ensemble du site.
   ===================================================================== */

/* ---------- POLICES AUTO-HEBERGEES (aucun appel exterieur) ---------- */
@font-face{font-family:'Alfa Slab One';src:url('polices/alfa-slab-one-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Barlow';src:url('polices/barlow-latin-400-normal.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'Barlow';src:url('polices/barlow-latin-600-normal.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap;}
@font-face{font-family:'Barlow';src:url('polices/barlow-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:'Oswald';src:url('polices/oswald-latin-500-normal.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:'Oswald';src:url('polices/oswald-latin-700-normal.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap;}

:root{
  /* --- NOIR --- */
  --noir:#0B0B0C;        /* fond principal                      */
  --nuit:#15151A;        /* fond des cartes sur noir            */
  --acier:#2B2B33;       /* filets, bordures, separateurs       */

  /* --- BLANC --- */
  --blanc:#FFFFFF;       /* texte sur noir, fond des sections claires */
  --gris:#B6B6BC;        /* texte secondaire sur noir  (9,7:1)  */
  --encre:#101014;       /* texte sur blanc                     */
  --encre-2:#4B4B55;     /* texte secondaire sur blanc (8,6:1)  */
  --nacre:#F4F4F5;       /* cartes sur fond blanc               */
  --nacre-b:#D8D8DC;     /* bordures sur fond blanc             */

  /* --- ROUGE (couleur d'identite) --- */
  --rouge:#E11B22;       /* aplats, filets, boutons, grands titres */
  --rouge-p:#B3121B;     /* rouge profond : survol, texte sur blanc */
  --rouge-c:#FF6B5E;     /* rouge clair : liens en petit corps sur noir */

  /* --- VERT (accent mineur, statuts uniquement) --- */
  --vert:#35C48F;        /* sur fond noir  (8,8:1)              */
  --vert-p:#0E7A56;      /* sur fond blanc (5,3:1)              */

  --ct:1180px;           /* largeur du conteneur                */
  --r:2px;               /* rayon des angles                    */
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--noir);color:var(--blanc);
  font-family:'Barlow',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:var(--rouge-c);}
a:hover{color:var(--blanc);}
:focus-visible{outline:3px solid var(--rouge);outline-offset:3px;}

h1,h2,h3,h4{font-family:'Alfa Slab One',Georgia,serif;font-weight:400;line-height:1.05;
  letter-spacing:.01em;text-transform:uppercase;margin:0 0 .5em;color:var(--blanc);}
h1{font-size:clamp(2.1rem,6.2vw,4.2rem);}
h2{font-size:clamp(1.6rem,3.6vw,2.5rem);}
h3{font-size:clamp(1.15rem,2.1vw,1.5rem);}
h4{font-size:1.05rem;}
p{margin:0 0 1.1em;}
.lead{font-size:1.2rem;color:var(--gris);max-width:62ch;}
strong{font-weight:700;color:var(--blanc);}

/* Sur-titre : filet rouge + libelle blanc */
.eyebrow{
  font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.22em;font-size:.8rem;color:var(--blanc);margin:0 0 .9rem;
  display:flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:34px;height:4px;background:var(--rouge);flex:none;}

.ct{max-width:var(--ct);margin:0 auto;padding:0 22px;}
section{padding:76px 0;}

/* ---------- SECTIONS CLAIRES : BLANC, jamais de creme ---------- */
section.clair{background:var(--blanc);color:var(--encre);}
section.clair h1,section.clair h2,section.clair h3,section.clair h4{color:var(--encre);}
section.clair .lead,section.clair p{color:var(--encre-2);}
section.clair strong{color:var(--encre);}
section.clair a{color:var(--rouge-p);}
section.clair a:hover{color:var(--encre);}
section.clair .eyebrow{color:var(--encre);}

/* ---------- EN-TETE ---------- */
.bandeau{
  background:var(--rouge);color:var(--blanc);font-family:'Oswald',sans-serif;
  font-weight:500;letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;
  text-align:center;padding:7px 14px;margin:0;
}
header.site{
  position:sticky;top:0;z-index:60;background:var(--noir);
  border-bottom:3px solid var(--rouge);
}
.barre{display:flex;align-items:center;justify-content:space-between;gap:16px;
  max-width:var(--ct);margin:0 auto;padding:10px 22px;}
.marque{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--blanc);}
.marque img{width:46px;height:46px;}
.marque b{font-family:'Alfa Slab One',serif;font-size:1.02rem;line-height:1.1;display:block;
  text-transform:uppercase;letter-spacing:.01em;color:var(--blanc);}
.marque em{font-family:'Oswald',sans-serif;font-size:.66rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--rouge-c);font-style:normal;display:block;}
nav.principal ul{list-style:none;display:flex;margin:0;padding:0;flex-wrap:wrap;}
nav.principal li{margin:0 0 0 24px;}
nav.principal a{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.11em;font-size:.84rem;color:var(--blanc);text-decoration:none;
  padding:6px 0;border-bottom:2px solid transparent;display:inline-block;}
nav.principal a:hover{color:var(--rouge-c);border-bottom-color:var(--rouge);}
nav.principal a[aria-current="page"]{color:var(--rouge-c);border-bottom-color:var(--rouge);}
.burger{display:none;background:var(--noir);border:2px solid var(--blanc);color:var(--blanc);
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.12em;
  font-size:.82rem;padding:9px 14px;border-radius:var(--r);cursor:pointer;}
.burger:hover{border-color:var(--rouge);color:var(--rouge-c);}

@media(max-width:980px){
  .burger{display:block;}
  nav.principal{display:none;width:100%;}
  nav.principal.ouvert{display:block;}
  .barre{flex-wrap:wrap;}
  nav.principal ul{flex-direction:column;padding:8px 0 14px;}
  nav.principal li{margin:0;border-bottom:1px solid var(--acier);}
  nav.principal a{display:block;padding:12px 2px;border-bottom:none;width:100%;}
}

/* ---------- HERO ---------- */
.hero{position:relative;overflow:hidden;padding:96px 0 0;}
.hero .ct{position:relative;z-index:2;}
.hero-filigrane{
  position:absolute;right:-80px;top:-30px;width:min(520px,58vw);opacity:.10;z-index:1;
  pointer-events:none;
}
.hero h1{max-width:16ch;}
.hero h1 .creuse{color:var(--rouge);display:block;}
.hero .lead{margin-bottom:28px;}

/* ---------- LA BANDE D'ASPHALTE (element signature) ---------- */
.asphalte{
  position:relative;margin-top:54px;background:#000;
  border-top:3px solid var(--rouge);border-bottom:3px solid var(--rouge);
  padding:34px 0 28px;overflow:hidden;
}
.asphalte::before{ /* ligne mediane discontinue */
  content:"";position:absolute;left:0;right:0;top:50%;height:6px;transform:translateY(-50%);
  background:repeating-linear-gradient(90deg,var(--blanc) 0 46px,transparent 46px 92px);
  opacity:.20;animation:defile 9s linear infinite;
}
@keyframes defile{from{background-position:0 0;}to{background-position:92px 0;}}
.bornes{display:flex;position:relative;z-index:2;list-style:none;margin:0;padding:0;}
.bornes li{flex:1 1 0;text-align:center;padding:0 8px;}
.bornes a{display:block;text-decoration:none;color:var(--blanc);padding:14px 6px;
  border-radius:var(--r);transition:background .18s ease,transform .18s ease;}
.bornes a:hover{background:var(--rouge);transform:translateY(-4px);color:var(--blanc);}
.bornes .an{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.85rem;line-height:1;
  color:var(--blanc);display:block;}
.bornes .lieu{font-family:'Oswald',sans-serif;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;font-size:.72rem;color:var(--rouge-c);display:block;margin-top:6px;}
.bornes a:hover .lieu,.bornes a:hover .km{color:var(--blanc);}
.bornes .km{font-size:.82rem;color:var(--gris);display:block;}
.bornes .pastille{width:16px;height:16px;border-radius:50%;background:var(--rouge);
  border:3px solid var(--rouge);margin:0 auto 12px;}
.bornes .projet .pastille{background:#000;border-color:var(--blanc);}
.bornes .projet .lieu{color:var(--gris);}
.bornes .termine .pastille{background:var(--acier);border-color:var(--gris);}
.bornes .termine .lieu,.bornes .termine .km{color:var(--gris);}
.bornes .termine a{opacity:.82;}
.bornes .termine a:hover{opacity:1;}
@media(max-width:820px){
  .asphalte::before{left:50%;right:auto;top:0;bottom:0;height:auto;width:6px;
    transform:translateX(-50%);
    background:repeating-linear-gradient(180deg,var(--blanc) 0 40px,transparent 40px 80px);
    animation:none;}
  .bornes{flex-direction:column;}
  .bornes li{text-align:left;padding:0;}
  .bornes a{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:center;
    background:var(--nuit);margin:6px 12px;padding:12px 14px;}
  .bornes .pastille{margin:0;}
}

/* ---------- BOUTONS ---------- */
.boutons{display:flex;flex-wrap:wrap;margin:26px 0 0;}
.boutons > *{margin:0 14px 12px 0;}
.btn{
  display:inline-block;font-family:'Oswald',sans-serif;font-weight:500;
  text-transform:uppercase;letter-spacing:.13em;font-size:.88rem;
  padding:14px 26px;border-radius:var(--r);text-decoration:none;border:2px solid transparent;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.btn-p{background:var(--rouge);color:var(--blanc);border-color:var(--rouge);}
.btn-p:hover{background:var(--rouge-p);border-color:var(--rouge-p);color:var(--blanc);}
.btn-s{border-color:var(--blanc);color:var(--blanc);background:transparent;}
.btn-s:hover{border-color:var(--rouge);color:var(--rouge-c);}
section.clair .btn-s{border-color:var(--encre);color:var(--encre);}
section.clair .btn-s:hover{border-color:var(--rouge-p);color:var(--rouge-p);}

/* ---------- GRILLES ET CARTES ---------- */
.grille{display:grid;gap:22px;}
.g2{grid-template-columns:repeat(2,1fr);}
.g3{grid-template-columns:repeat(3,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.g3,.g4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr;}}

.carte{background:var(--nuit);border:1px solid var(--acier);border-left:4px solid var(--rouge);
  border-radius:var(--r);padding:26px 24px;}
.carte h3{margin-bottom:.4em;}
.carte p{color:var(--gris);}
.carte p:last-child{margin-bottom:0;}
section.clair .carte{background:var(--nacre);border-color:var(--nacre-b);
  border-left-color:var(--rouge);}
section.clair .carte p{color:var(--encre-2);}

/* Fiche de run */
.fiche{background:var(--nuit);border:1px solid var(--acier);border-top:4px solid var(--rouge);
  border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;}
.fiche-tete{padding:20px 22px 16px;border-bottom:1px solid var(--acier);}
.fiche-tete .an{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.1rem;
  letter-spacing:.16em;color:var(--rouge-c);}
.fiche h3{margin:.2em 0 .1em;}
.fiche-tete .sous{font-family:'Oswald',sans-serif;font-weight:500;font-size:.78rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gris);}
.fiche-corps{padding:18px 22px 22px;flex:1;display:flex;flex-direction:column;}
.fiche-corps p{color:var(--gris);}
.donnees{list-style:none;margin:0 0 18px;padding:0;}
.donnees li{display:flex;justify-content:space-between;gap:14px;padding:8px 0;
  border-bottom:1px dashed var(--acier);font-size:.94rem;}
.donnees .k{font-family:'Oswald',sans-serif;font-weight:500;font-size:.76rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--gris);}
.donnees .v{font-weight:600;color:var(--blanc);text-align:right;}
.fiche .btn{margin-top:auto;align-self:flex-start;}
.etat{display:inline-block;font-family:'Oswald',sans-serif;font-size:.7rem;font-weight:500;
  letter-spacing:.16em;text-transform:uppercase;padding:3px 10px;border-radius:99px;
  border:1px solid currentColor;}
.etat-ouvert{color:var(--vert);}
.etat-projet{color:var(--gris);}
.etat-termine{color:var(--gris);}
.etat-termine::before{content:"";display:inline-block;width:9px;height:9px;margin-right:7px;
  border-radius:50%;background:transparent;border:2px solid var(--gris);vertical-align:middle;}
section.clair .etat-ouvert{color:var(--vert-p);}

/* Compteur de chiffres */
.compteur{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--acier);
  border:1px solid var(--acier);border-radius:var(--r);overflow:hidden;margin:0 0 8px;}
.compteur div{background:var(--nuit);padding:22px 18px;text-align:center;}
.compteur b{font-family:'Oswald',sans-serif;font-weight:700;font-size:2rem;line-height:1;
  display:block;color:var(--blanc);}
.compteur span{font-family:'Oswald',sans-serif;font-size:.72rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--rouge-c);display:block;margin-top:8px;}
@media(max-width:700px){.compteur{grid-template-columns:repeat(2,1fr);}}

/* Road-book : la liste d'etapes verticale */
.roadbook{list-style:none;margin:0;padding:0 0 0 34px;position:relative;}
.roadbook::before{content:"";position:absolute;left:9px;top:8px;bottom:8px;width:3px;
  background:repeating-linear-gradient(180deg,var(--rouge) 0 14px,transparent 14px 26px);}
.roadbook li{position:relative;padding:0 0 26px;}
.roadbook li::before{content:"";position:absolute;left:-31px;top:7px;width:13px;height:13px;
  border-radius:50%;background:var(--noir);border:3px solid var(--rouge);}
.roadbook h4{font-family:'Oswald',sans-serif;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;font-size:1.02rem;margin:0 0 .25em;color:var(--blanc);}
.roadbook p{margin:0;color:var(--gris);}
section.clair .roadbook li::before{background:var(--blanc);}
section.clair .roadbook h4{color:var(--encre);}
section.clair .roadbook p{color:var(--encre-2);}

/* Encadre / note */
.note{border:1px solid var(--acier);border-left:4px solid var(--blanc);background:var(--nuit);
  padding:18px 22px;border-radius:var(--r);margin:26px 0;}
.note p{color:var(--gris);}
.note p:last-child{margin-bottom:0;}
.note .titre{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.14em;font-size:.78rem;color:var(--blanc);margin-bottom:.5em;display:block;}
section.clair .note{background:var(--nacre);border-color:var(--nacre-b);
  border-left-color:var(--encre);}
section.clair .note p{color:var(--encre-2);}
section.clair .note .titre{color:var(--encre);}

/* Citation / manifeste */
.manifeste{font-family:'Alfa Slab One',serif;text-transform:uppercase;line-height:1.12;
  font-size:clamp(1.4rem,3.4vw,2.3rem);border-left:5px solid var(--rouge);
  padding:6px 0 6px 26px;margin:34px 0;max-width:22ch;color:var(--blanc);}
section.clair .manifeste{color:var(--encre);}

/* Affiches */
.affiches{display:grid;gap:22px;grid-template-columns:repeat(2,1fr);}
@media(max-width:760px){.affiches{grid-template-columns:1fr;}}
.affiche{background:#000;border:1px solid var(--acier);border-radius:var(--r);padding:14px;
  margin:0;}
.affiche img{border-radius:0;width:100%;}
.affiche figcaption{font-family:'Oswald',sans-serif;font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--blanc);margin-top:12px;}
section.clair .affiche{background:#000;border-color:#000;}
section.clair .affiche figcaption{color:var(--blanc);}

/* Listes de contenu */
.puces{list-style:none;margin:0 0 1.2em;padding:0;}
.puces li{position:relative;padding:0 0 10px 26px;}
.puces li::before{content:"";position:absolute;left:0;top:11px;width:14px;height:4px;
  background:var(--rouge);}

table.tab{width:100%;border-collapse:collapse;margin:0 0 1.4em;font-size:.95rem;}
table.tab th,table.tab td{text-align:left;padding:11px 12px;border-bottom:1px solid var(--acier);
  vertical-align:top;}
table.tab th{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.12em;font-size:.75rem;color:var(--blanc);}
table.tab td{color:var(--gris);}
section.clair table.tab th,section.clair table.tab td{border-color:var(--nacre-b);}
section.clair table.tab th{color:var(--encre);}
section.clair table.tab td{color:var(--encre-2);}
.tab-scroll{overflow-x:auto;}

/* ---------- PIED DE PAGE ---------- */
footer.site{background:#000;border-top:3px solid var(--rouge);padding:54px 0 26px;
  font-size:.95rem;}
footer.site .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;}
@media(max-width:860px){footer.site .cols{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){footer.site .cols{grid-template-columns:1fr;}}
footer.site h4{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.16em;font-size:.78rem;color:var(--blanc);margin-bottom:1em;
  padding-bottom:8px;border-bottom:2px solid var(--rouge);}
footer.site ul{list-style:none;margin:0;padding:0;}
footer.site li{margin-bottom:8px;}
footer.site a{color:var(--gris);text-decoration:none;}
footer.site a:hover{color:var(--blanc);text-decoration:underline;}
footer.site p{color:var(--gris);}
footer.site strong{color:var(--blanc);}
.bas{border-top:1px solid var(--acier);margin-top:34px;padding-top:18px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-size:.84rem;color:var(--gris);}
.sceau{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.sceau img{width:56px;height:56px;}
.sceau .devise{color:var(--rouge-c);}

/* ---------- DIVERS ---------- */
.saut{position:absolute;left:-9999px;top:0;background:var(--rouge);color:var(--blanc);
  padding:12px 18px;z-index:200;font-family:'Oswald',sans-serif;text-transform:uppercase;}
.saut:focus{left:0;}
.fil{font-family:'Oswald',sans-serif;font-size:.76rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gris);padding:16px 0 0;}
.fil a{color:var(--gris);text-decoration:none;}
.fil a:hover{color:var(--rouge-c);}
.centre{text-align:center;}
.centre .eyebrow{justify-content:center;}
.centre .lead{margin-left:auto;margin-right:auto;}
.centre .boutons{justify-content:center;}
.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);
  white-space:nowrap;}

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

/* Mode contraste eleve du systeme : on laisse le navigateur imposer ses
   couleurs, mais on conserve les separations visuelles. */
@media(forced-colors:active){
  .carte,.fiche,.note,.compteur div,.affiche{border:1px solid CanvasText;}
  .btn{border:2px solid CanvasText;}
  header.site,footer.site,.asphalte{border-color:CanvasText;}
  .hero-filigrane{display:none;}
}

@media print{
  header.site,footer.site,.boutons,.asphalte,.hero-filigrane,.burger,.bandeau{display:none!important;}
  body{background:#fff;color:#000;font-size:12pt;}
  section{padding:12px 0;background:#fff!important;color:#000!important;}
  h1,h2,h3,h4,p,li,td,th,.lead{color:#000!important;}
  a{color:#000!important;text-decoration:underline;}
  .carte,.fiche,.note{border:1px solid #999;background:#fff;}
}

/* ---------- PARTAGER CETTE PAGE (miniature + resume, v7) ---------- */
.partager{background:#000;border-top:1px solid var(--acier);padding:56px 0;}
.partager-grille{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:36px;align-items:center;}
@media(max-width:820px){.partager-grille{grid-template-columns:1fr;}}
.partager-vignette{margin:0;border:1px solid var(--acier);border-radius:var(--r);overflow:hidden;}
.partager-h{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.16em;font-size:.8rem;color:var(--rouge-c);margin:0 0 .8em;}
.partager-titre{font-weight:700;font-size:1.15rem;color:var(--blanc);margin-bottom:.4em;line-height:1.35;}
.partager-resume{color:var(--gris);max-width:62ch;}
.partager .boutons{margin-top:14px;}
button.btn{cursor:pointer;font-size:.88rem;}
.partager-etat{min-height:1.4em;font-size:.92rem;color:var(--vert);margin:4px 0 0;}

/* ---------- FICHE ECOSSE 2027 : traversees, etapes, suivre ---------- */
.traversees{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
@media(max-width:760px){.traversees{grid-template-columns:1fr;}}
.traversee{background:var(--nuit);border:1px solid var(--acier);border-top:4px solid var(--rouge);
  border-radius:var(--r);padding:24px;}
.traversee .sens{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;
  letter-spacing:.14em;font-size:.78rem;color:var(--rouge-c);}
.traversee h3{margin:.3em 0 .6em;}
.horaire{display:grid;grid-template-columns:auto 1fr;gap:6px 18px;margin:0 0 16px;
  padding:14px 0;border-top:1px dashed var(--acier);border-bottom:1px dashed var(--acier);}
.horaire b{font-family:'Oswald',sans-serif;font-weight:700;font-size:1.6rem;line-height:1.1;color:var(--blanc);}
.horaire span{align-self:center;color:var(--gris);}
.traversee p{color:var(--gris);font-size:.96rem;}
.traversee p:last-child{margin-bottom:0;}
section.clair .traversee{background:var(--nacre);border-color:var(--nacre-b);border-top-color:var(--rouge);}
section.clair .traversee p,section.clair .horaire span{color:var(--encre-2);}
section.clair .horaire b{color:var(--encre);}
section.clair .traversee .sens{color:var(--rouge-p);}
section.clair .horaire{border-color:var(--nacre-b);}

.etapes{list-style:none;margin:0;padding:0;display:grid;gap:18px;}
.etape{background:var(--nuit);border:1px solid var(--acier);border-radius:var(--r);
  display:grid;grid-template-columns:96px 1fr;overflow:hidden;}
.etape .num{background:#000;border-right:4px solid var(--rouge);display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;padding:20px 8px;text-align:center;}
.etape .num b{font-family:'Alfa Slab One',serif;font-size:2.3rem;line-height:1;color:var(--blanc);}
.etape .num span{font-family:'Oswald',sans-serif;font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gris);margin-top:8px;}
.etape.ecosse .num{border-right-color:var(--rouge);background:#1A0A0B;}
.etape.mer .num{border-right-color:var(--blanc);}
.etape .corps{padding:20px 24px;}
.etape h3{margin:0 0 .35em;font-size:clamp(1.05rem,1.9vw,1.35rem);}
.etape .chiffres{display:flex;flex-wrap:wrap;gap:6px 20px;margin:0 0 12px;padding:0;list-style:none;
  font-family:'Oswald',sans-serif;font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);}
.etape .chiffres b{color:var(--blanc);font-weight:700;}
.etape p{color:var(--gris);margin-bottom:.7em;}
.etape .deux{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:760px){.etape{grid-template-columns:1fr;}.etape .num{flex-direction:row;gap:12px;
  border-right:none;border-bottom:4px solid var(--rouge);padding:12px 18px;justify-content:flex-start;}
  .etape .num span{margin-top:0;}.etape .deux{grid-template-columns:1fr;}}
.etape h4{font-family:'Oswald',sans-serif;font-weight:500;text-transform:uppercase;letter-spacing:.12em;
  font-size:.76rem;margin:0 0 .5em;color:var(--blanc);}
.etape .vigilance h4{color:var(--rouge-c);}
.etape ul{margin:0;padding:0 0 0 18px;color:var(--gris);font-size:.95rem;}
.etape li{margin-bottom:4px;}
.etape .nuit{margin:14px 0 0;padding-top:12px;border-top:1px dashed var(--acier);font-size:.95rem;}
.etape .nuit b{font-family:'Oswald',sans-serif;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
  font-size:.76rem;color:var(--blanc);margin-right:8px;}

table.tab td b{color:var(--blanc);}
section.clair table.tab td b{color:var(--encre);}
.tab-total td{border-top:2px solid var(--rouge);font-weight:700;}
.etapes-ancre{scroll-margin-top:90px;}
.sommaire{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:18px 0 0;padding:0;}
.sommaire a{display:inline-block;font-family:'Oswald',sans-serif;font-size:.78rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--blanc);text-decoration:none;border:1px solid var(--acier);
  padding:7px 12px;border-radius:var(--r);}
.sommaire a:hover{border-color:var(--rouge);color:var(--rouge-c);}
@media print{.partager,.sommaire{display:none!important;}}
.etape{scroll-margin-top:96px;}

/* Affiche paysage du run 2027 (v7.2) : toujours en pleine largeur */
.affiche-large{max-width:100%;}
.affiche-large img{width:100%;height:auto;}
