/* Corps d'article (2026-09-27) : blocs de la redaction, utilises par article.php et l'apercu de l'admin.
   Reprend la proposition « Blocs de la redaction » v1 (Claude, redaction) : encadres sobres, code pays insecable (.nat), liste d'etapes (.etapes),
   mention « sous reserve » (.reserve), carnet (.groupe + .noms), encadre national en colonnes, vignettes 3:2 avec credit sur l'image,
   renvoi en bouton, liens contrastes (#0e7490 en clair, 4,5:1 minimum ; #22b8d6 en sombre). Theme : <html data-theme="dark|light">. */
.article-body{--ab-line:color-mix(in srgb,currentColor 16%,transparent);--ab-chip:color-mix(in srgb,currentColor 6%,transparent);--ab-muted:var(--muted,#5d6874);
  --ab-link:#0e7490;--ab-btn-bg:#0e7490;--ab-btn-fg:#ffffff;--ab-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;--ab-sans:system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:1.02rem;line-height:1.62}
[data-theme="dark"] .article-body{--ab-link:#22b8d6;--ab-btn-bg:#22b8d6;--ab-btn-fg:#0a0c10}
.article-body img{max-width:100%;height:auto}
.article-body a{color:var(--ab-link)}
.article-body .chapo{font-family:"Source Serif 4",Georgia,serif;font-size:1.12rem;line-height:1.55;margin:0 0 1.2em}
.article-body h2{clear:both;margin:1.6em 0 .5em;font-size:1.35rem;line-height:1.25}
.article-body h3{margin:1.2em 0 .4em;font-size:1.1rem}

/* 1. encadre flottant, sobre */
.article-body aside.encadre{float:right;clear:right;width:38%;min-width:15rem;margin:.35em 0 1.1em 1.6em;padding:14px 16px 12px;
  background:var(--ab-chip);border:1px solid var(--ab-line);border-radius:6px;font:400 .92rem/1.45 var(--ab-sans)}
.article-body aside.encadre:has(table){width:46%;min-width:20rem}
.article-body aside.encadre h3{margin:0 0 .55em;padding-bottom:.45em;border-bottom:1px solid var(--ab-line);font:700 1.18rem/1.1 var(--ab-display);letter-spacing:.01em;text-wrap:pretty}
.article-body aside.encadre p{margin:.5em 0}
.article-body aside.encadre p:last-child{margin-bottom:0}

/* 2. code pays FIS colle au nom : Odermatt<span class="nat">SUI</span> */
.article-body .nat{display:inline;margin-left:.35em;padding:.1em .32em .06em;border:1px solid var(--ab-line);border-radius:3px;
  font:600 .68rem/1 var(--ab-sans);letter-spacing:.05em;color:var(--ab-muted);vertical-align:.12em;white-space:nowrap}

/* 3. tableaux */
.article-body table{width:100%;border-collapse:collapse;font-size:.9rem;font-variant-numeric:tabular-nums}
.article-body th,.article-body td{text-align:left;vertical-align:baseline;padding:.4em .45em;border-bottom:1px solid var(--ab-line)}
.article-body .encadre table{font-size:.88rem}
.article-body .encadre tr:last-child>*{border-bottom:0}
.article-body thead th{font:600 .78rem/1.2 var(--ab-sans);color:var(--ab-muted);padding-top:0}
.article-body .encadre tbody th{font-weight:600;color:var(--ab-muted);white-space:nowrap;padding-left:0}
.article-body .encadre tbody td:first-child{white-space:nowrap;width:7rem}   /* colonne Date des « Prochains rendez-vous » : « 28 sept.–3 oct. » d'un bloc (note de la redaction, 28/09) */

/* 4. liste d'etapes (lieu, code pays, dates, description) */
.article-body .etapes{list-style:none;margin:0;padding:0;display:grid;gap:.75em}
.article-body .etapes li{display:grid;grid-template-columns:1fr auto;gap:.1em .6em;align-items:baseline}
.article-body .etapes .lieu{font-weight:700}
.article-body .etapes time{color:var(--ab-muted);font-size:.86em;white-space:nowrap;font-variant-numeric:tabular-nums}
.article-body .etapes .txt{grid-column:1/-1}
.article-body .etapes+p{margin-top:.9em}

/* 5. « sous reserve » : pointille = statut provisoire */
.article-body .reserve{font-style:normal;font-size:.8em;font-weight:600;color:var(--ab-muted);border:1px dashed currentColor;border-radius:3px;padding:0 .3em;margin-right:.35em;white-space:nowrap}

/* 6. carnet : groupes et noms insecables */
.article-body .encadre .groupe{font:600 .8rem/1.2 var(--ab-sans);color:var(--ab-muted);margin:.85em 0 .3em}
.article-body .encadre .groupe:first-of-type{margin-top:0}
.article-body .noms{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.3em .9em}
.article-body .noms li{white-space:nowrap}

/* 7. encadre national : pleine largeur, deux colonnes sur grand ecran */
.article-body aside.encadre.encadre-national{float:none;clear:both;width:auto;min-width:0;margin:2.2em 0 0;padding:16px 18px;columns:2 16rem;column-gap:2em}
.article-body .encadre-national h3{column-span:all}
.article-body .encadre-national p{break-inside:avoid;margin:0 0 .7em}

/* 8. vignettes 3:2, credit sur l'image (le renderer d'article.php pose <span class="img"> + <span class="cr">) */
.article-body figure{margin:1em 0}
.article-body figure.thumb{float:left;width:42%;margin:.35em 1.6em 1em 0}
.article-body figure.thumb-droite{float:right;margin:.35em 0 1em 1.6em}
.article-body figure .img{position:relative;display:block;border-radius:4px;overflow:hidden}
.article-body figure.thumb img{display:block;width:100%;max-width:100%;aspect-ratio:3/2;object-fit:cover}
.article-body figure .cr{position:absolute;right:6px;bottom:5px;padding:1px 6px;border-radius:3px;background:rgba(0,0,0,.55);color:#fff;font:400 .68rem/1.4 var(--ab-sans)}
.article-body figcaption{margin-top:6px;font:400 .84rem/1.35 var(--ab-sans);color:var(--ab-muted)}

/* 9. renvoi : phrase + bouton */
.article-body p.renvoi{clear:both;display:flex;flex-wrap:wrap;align-items:center;gap:.6em 1.2em;margin:1.8em 0;padding:12px 14px;border:1px solid var(--ab-line);border-radius:6px;
  font:400 .95rem/1.4 var(--ab-sans);color:var(--ab-muted)}
.article-body p.renvoi a{display:inline-block;padding:.5em .9em;border-radius:4px;background:var(--ab-btn-bg);color:var(--ab-btn-fg);font-weight:600;text-decoration:none;white-space:nowrap}
.article-body p.renvoi a:hover{text-decoration:underline}

.article-body::after{content:"";display:block;clear:both}

/* 11. telephone : plus de flottants */
@media (max-width:640px){
  .article-body aside.encadre,.article-body aside.encadre:has(table),.article-body figure.thumb,.article-body figure.thumb-droite{float:none;width:auto;min-width:0;margin:1.2em 0}
  .article-body aside.encadre.encadre-national{columns:1}
}
