/* TriMetric — identité de marque v2 (bleu nuit, ivoire, SWIM / BIKE / RUN).
   Couleurs exactes : pack logo v2 du 6 novembre 2026.
   Typographies : Anton (titres, chiffres) et Montserrat (texte, libellés), SIL OFL 1.1, hébergées localement.
   Cette feuille est chargée après les styles d’origine et les remplace. */

@font-face{font-family:"Anton";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/anton-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/montserrat-latin-wght-normal.woff2) format("woff2-variations"),url(fonts/montserrat-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
 /* ===== RÉGLAGES DE COULEUR — tout le site se règle ici =====
    Les valeurs « -rgb » (trois nombres) servent aux transparences : les modifier avec la couleur voisine.
    Palette exacte du logo (inchangée dans les fichiers du logo) : bleu nuit #011A26, ivoire #F5F2E9,
    SWIM #35B6E8, BIKE #43B95C, RUN #FE4528, T1/T2 #A8B6BD.
    Interface v3 (13/11/2026) : mêmes teintes, un peu plus claires et moins saturées, alignées sur le fond. */
 --tm-navy:#011A26;  --tm-navy-rgb:1 26 38;      /* ambiance générale, identique au fond d'image */
 --tm-deep:#00141E;  --tm-deep-rgb:0 20 30;      /* pied de page, champs */
 --tm-ivory:#F2F1EB; --tm-ivory-rgb:242 241 235; /* textes principaux */
 --tm-swim:#6CC6E8;  --tm-swim-rgb:108 198 232;   /* SWIM, liens, dates, prix */
 --tm-bike:#6DC987;  --tm-bike-rgb:109 201 135;   /* BIKE, inscriptions ouvertes */
 --tm-run:#F27E62;   --tm-run-rgb:242 126 98;    /* RUN, action principale */
 --tm-trans:#B2BFC5; --tm-trans-rgb:178 191 197; /* T1/T2, éléments neutres */
 --tm-swim-light:#AADEF2;--tm-bike-light:#A9E3B9;--tm-run-light:#FBAF9B;
 --tm-swim-hover:#86D1EE;--tm-run-hover:#F78F76;
 --tm-text-2:#C3CED3;--tm-text-3:#93A5AD;
 /* surfaces : translucides pour laisser deviner le fond */
 --tm-surface:#0B2A37;--tm-surface-rgb:11 42 55;--tm-surface-2:#0F3141;--tm-raise:#123646;
 --tm-card-bg:linear-gradient(180deg,rgb(16 52 68 / .74) 0%,rgb(8 36 50 / .82) 100%);
 --tm-panel-bg:linear-gradient(180deg,rgb(18 58 76 / .86) 0%,rgb(8 38 52 / .9) 100%);
 --tm-thead:rgb(12 44 58 / .92);--tm-thead-first:rgb(9 38 51 / .92);--tm-selbar-bg:rgb(8 36 50 / .92);
 --tm-glass-blur:blur(8px) saturate(1.15);
 --tm-line:rgb(var(--tm-swim-rgb) / .26);--tm-line-soft:rgb(var(--tm-ivory-rgb) / .1);--tm-grid:rgb(var(--tm-ivory-rgb) / .035);
 /* fond d'image : intensité du voile (0 = image pure, 1 = bleu nuit uni) */
 --tm-bg-veil-top:.38;--tm-bg-veil-mid:.52;--tm-bg-veil-bottom:.72;
 --tm-display:"Anton","Arial Narrow","Helvetica Neue Condensed",Impact,sans-serif;
 --tm-sans:"Montserrat",ui-sans-serif,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
 --tm-ease:cubic-bezier(.2,.7,.2,1);
 --tm-tri:linear-gradient(90deg,var(--tm-swim) 0 33.34%,var(--tm-bike) 33.34% 66.67%,var(--tm-run) 66.67% 100%);

 /* anciens jetons réaffectés pour les composants non surchargés */
 --ink:var(--tm-ivory);--ink-soft:var(--tm-text-2);--navy:var(--tm-navy);--paper:var(--tm-navy);--white:var(--tm-surface);
 --line:var(--tm-line);--soft:var(--tm-line-soft);--mist:rgb(var(--tm-ivory-rgb) / .08);--lime:var(--tm-swim);--green:var(--tm-bike);
 --coral:var(--tm-run);--teal:var(--tm-swim);--sky:rgb(var(--tm-swim-rgb) / .1);--radius:18px;--radius-lg:22px;--shadow:0 18px 40px rgba(0,8,14,.45);
 --navy2:var(--tm-surface-2);--navyline:var(--tm-line);--navytext:var(--tm-text-2);
 --ok-bg:rgb(var(--tm-bike-rgb) / .14);--ok:var(--tm-bike-light);--wip-bg:rgb(var(--tm-run-rgb) / .12);--wip:var(--tm-run-light);
 --mod-bg:rgb(var(--tm-run-rgb) / .14);--mod:var(--tm-run-light);--fav:var(--tm-run);--muted:var(--tm-text-3);
 --serif:var(--tm-display);--sans:var(--tm-sans);
 color-scheme:dark;
}

/* ---------- base ---------- */
html{background:var(--tm-navy)}
body{background:transparent;color:var(--tm-ivory);font-family:var(--tm-sans);font-size:16px;line-height:1.55;font-feature-settings:"lnum","tnum" 0}
/* Fond triathlon : un calque fixe (pas de background-attachment), une seule image chargée selon la fenêtre,
   proportions conservées (cover), voile bleu nuit réglable plus haut. */
body::before{--tm-bg-image:url(fonds/desktop-16x10.webp);--tm-bg-pos:50% 55%;
 content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background-color:var(--tm-navy);
 background-image:
  linear-gradient(180deg,rgb(var(--tm-navy-rgb) / var(--tm-bg-veil-top)) 0%,rgb(var(--tm-navy-rgb) / var(--tm-bg-veil-mid)) 55%,rgb(var(--tm-navy-rgb) / var(--tm-bg-veil-bottom)) 100%),
  var(--tm-bg-image);
 background-size:cover,cover;background-position:center,var(--tm-bg-pos);background-repeat:no-repeat}
@media(min-width:1400px) and (min-aspect-ratio:2/1){body::before{--tm-bg-image:url(fonds/desktop-ultrawide-21x9.webp)}}
@media(min-width:768px) and (max-width:1366px) and (orientation:landscape) and (max-aspect-ratio:3/2){body::before{--tm-bg-image:url(fonds/tablette-paysage-4x3.webp)}}
@media(min-width:768px) and (orientation:portrait){body::before{--tm-bg-image:url(fonds/tablette-portrait-3x4.webp);--tm-bg-pos:50% 60%}}
@media(max-width:767px) and (orientation:portrait){body::before{--tm-bg-image:url(fonds/smartphone-portrait-9x20.webp);--tm-bg-pos:50% 62%}}
@media(max-width:1199px) and (max-height:599px) and (orientation:landscape){body::before{--tm-bg-image:url(fonds/smartphone-paysage-20x9.webp)}}
::selection{background:var(--tm-swim);color:var(--tm-navy)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--tm-swim);outline-offset:3px}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--tm-swim)}
select option{background:var(--tm-navy);color:var(--tm-ivory)}
.serif,h1.serif,h2.serif{font-family:var(--tm-display);font-weight:400;letter-spacing:.005em;text-transform:uppercase}
.eyebrow{color:var(--tm-swim);font-size:.72rem;font-weight:700;letter-spacing:.12em}
.muted,.small.muted{color:var(--tm-text-2)}
.skip-link{background:var(--tm-swim);color:var(--tm-navy);font-weight:700}
.shell{width:min(1280px,calc(100% - 64px))}

/* filet tricolore : signature reprise des visuels Instagram */
.tm-tri,.site-header::before,.site-footer::before,.selbar::before,.aside::before{background:var(--tm-tri)}
.site-header::before,.site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:3px}

/* ---------- en-tête ---------- */
.site-header{background:rgb(var(--tm-navy-rgb) / .8);border-bottom:1px solid var(--tm-line-soft);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.header-inner{height:72px;gap:20px}
.brand{align-items:center}.brand img{width:176px;height:auto}
.nav{gap:26px}
.nav a{color:var(--tm-text-2);font-size:.76rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:26px 0}
.nav a:hover{color:var(--tm-ivory)}
.nav a[aria-current=page]{color:var(--tm-ivory);box-shadow:inset 0 -3px var(--tm-swim)}
.count{background:rgb(var(--tm-ivory-rgb) / .1);color:var(--tm-ivory);font-weight:800}
.count.on{background:var(--tm-swim);color:var(--tm-navy)}
.icon-btn{background:transparent;border:1px solid rgb(var(--tm-ivory-rgb) / .18);color:var(--tm-ivory);font-weight:700;border-radius:999px}
.icon-btn:hover{border-color:var(--tm-swim);background:rgb(var(--tm-swim-rgb) / .08)}
.icon-btn>span[aria-hidden]{color:var(--tm-run)}
.avatar-dot{background:var(--tm-navy);box-shadow:inset 0 0 0 2px var(--tm-swim),inset 0 -7px 0 var(--tm-swim)}
.space-btn[aria-current=page]{border-color:var(--tm-swim)}
.lang{border-left-color:var(--tm-line-soft)}
.current-language{font-size:.7rem;font-weight:800;letter-spacing:.1em;color:var(--tm-text-2);padding:6px 4px}
.mnav{border-top-color:var(--tm-line-soft);background:rgb(var(--tm-navy-rgb) / .98)}
.mnav a,.mnav button{color:var(--tm-ivory);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.82rem;padding:14px 6px}
.mnav a:hover{background:rgb(var(--tm-swim-rgb) / .08)}

/* ---------- boutons, liens ---------- */
.button{border:1px solid rgb(var(--tm-ivory-rgb) / .35);border-radius:10px;color:var(--tm-ivory);font-weight:700;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;background:transparent;transition:background-color .18s,border-color .18s,color .18s}
.button:hover{border-color:var(--tm-swim);background:rgb(var(--tm-swim-rgb) / .08)}
.button.primary{background:var(--tm-swim);border-color:var(--tm-swim);color:var(--tm-navy)}
.button.primary:hover{background:var(--tm-swim-hover);border-color:var(--tm-swim-hover)}
.button.secondary{border-color:rgb(var(--tm-swim-rgb) / .6);color:var(--tm-ivory)}
.button.secondary:hover{background:rgb(var(--tm-swim-rgb) / .12)}
/* action décisive : rouge RUN, lettrage Anton (« FOLLOW TRIMETRIC ») */
.button.lime{background:var(--tm-run);border-color:var(--tm-run);color:var(--tm-navy);font-family:var(--tm-display);font-weight:400;font-size:1rem;letter-spacing:.04em}
.button.lime:hover{background:var(--tm-run-hover);border-color:var(--tm-run-hover)}
.button.lime:disabled{background:rgb(var(--tm-ivory-rgb) / .12);border-color:transparent;color:var(--tm-text-3);opacity:1}
.button.small{min-height:38px;font-size:.7rem}
.button.lime.small{font-size:.92rem}
.link{color:var(--tm-swim);font-weight:700}
.link:hover{color:var(--tm-swim-light)}

/* étiquette inclinée (« FRANCE 2027 ») */
.tm-flag,.chd .fmt,.fiche-head .eyebrow{display:inline-block;background:var(--tm-swim);color:var(--tm-navy);font-family:var(--tm-sans);font-weight:800;font-style:italic;font-size:.74rem;letter-spacing:.05em;text-transform:uppercase;padding:5px 14px 4px;clip-path:polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%);line-height:1.25}

/* ---------- accueil : en-tête du calendrier ---------- */
.calendar-intro.hero{padding:44px 0 26px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px 48px}
.hero .tm-flag{grid-column:1/-1;justify-self:start;margin-bottom:2px}
.calendar-intro h1,.hero h1{font-size:clamp(2.6rem,5.2vw,4.8rem);line-height:.92;margin:0;max-width:15ch;color:var(--tm-ivory)}
.calendar-journey{margin:16px 0 0;font-size:.74rem;font-weight:800;letter-spacing:.16em;color:var(--tm-text-3)}
.calendar-journey span{color:var(--tm-ivory)}
.calendar-journey span:nth-child(1){color:var(--tm-swim)}.calendar-journey span:nth-child(2){color:var(--tm-bike)}.calendar-journey span:nth-child(3){color:var(--tm-run)}
.hstats{display:flex;gap:0;margin:0;padding:0;border:1px solid var(--tm-line);border-radius:16px;background:var(--tm-card-bg);overflow:hidden}
.hstats>div{padding:14px 22px 12px;display:flex;flex-direction:column-reverse;min-width:0}
.hstats>div+div{border-left:1px solid var(--tm-line-soft)}
.hstats dd{margin:0;font-family:var(--tm-display);font-size:2.6rem;line-height:1;color:var(--tm-ivory)}
.hstats dt{margin-top:6px;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tm-text-2)}
.hstats>div:nth-child(1) dd{color:var(--tm-ivory)}
.hstats>div:nth-child(2) dd{color:var(--tm-swim)}

/* ---------- explorateur ---------- */
.explorer{gap:32px}
.fside{padding-top:18px}
.fside .fhead h2{font-family:var(--tm-display);font-weight:400;font-size:1.6rem;text-transform:uppercase;letter-spacing:.01em}
.fhead .link{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}
.fgroup{border-top:1px solid var(--tm-line-soft)}
.fgroup>summary{font-size:.74rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--tm-ivory);padding:15px 0}
.fgroup.main>summary{font-size:.76rem}
.fgroup>summary::after{color:var(--tm-swim)}
.fgroup .count{background:rgb(var(--tm-ivory-rgb) / .1)}
.fgroup .count.on{background:var(--tm-swim);color:var(--tm-navy);opacity:1}
.fset legend,.ffield{color:var(--tm-text-2)}
.fset legend{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.fcheck{color:var(--tm-ivory);font-size:.84rem}
.fcheck small{color:var(--tm-text-3);font-variant-numeric:tabular-nums}
.fcheck.zero{color:var(--tm-text-3)}
.ffield{font-size:.72rem;font-weight:700;letter-spacing:.04em}
.ffield input,.ffield select,.rnum input,.sort,.cform textarea,.member-form input:not([type=checkbox]),.member-form select,.member-form textarea{background:rgb(var(--tm-deep-rgb) / .55);border:1px solid rgb(var(--tm-ivory-rgb) / .16);color:var(--tm-ivory);border-radius:10px;font-weight:500}
.ffield input::placeholder,.cform textarea::placeholder,.member-form input::placeholder,.searchbar input::placeholder{color:#6F818A}
.ffield input:hover,.ffield select:hover,.sort:hover{border-color:rgb(var(--tm-swim-rgb) / .5)}
.seg2{border-color:rgb(var(--tm-swim-rgb) / .55);border-radius:10px}
.seg2 button{background:transparent;color:var(--tm-text-2);font-weight:700}
.seg2 button+button{border-left-color:rgb(var(--tm-swim-rgb) / .55)}
.seg2 button[aria-checked=true]{background:var(--tm-swim);color:var(--tm-navy)}
.hint,.ctl-intro,.rout,.cover{color:var(--tm-text-3)}
.rout b{color:var(--tm-ivory)}
.ctl-status{color:var(--tm-swim)}
.cover{background:rgb(var(--tm-ivory-rgb) / .05)}
.morehead{background:linear-gradient(90deg,rgb(var(--tm-swim-rgb) / .16),rgb(var(--tm-swim-rgb) / .04));border-left:3px solid var(--tm-swim);border-radius:10px}
.morehead h3{font-family:var(--tm-display);font-weight:400;font-size:1.05rem;text-transform:uppercase;letter-spacing:.02em}
.morehead p{color:var(--tm-text-2)}

.searchbar{background:rgb(var(--tm-deep-rgb) / .55);border:1px solid rgb(var(--tm-swim-rgb) / .35);border-radius:14px;box-shadow:none}
.searchbar:focus-within{outline:3px solid var(--tm-swim);border-color:transparent}
.searchbar span{color:var(--tm-swim)}
.searchbar input{color:var(--tm-ivory);font-weight:500}
.toolbar .total,.mtotal{color:var(--tm-text-2)}
.toolbar .total strong,.mtotal strong{color:var(--tm-ivory);font-family:var(--tm-display);font-weight:400;font-size:1.35rem;letter-spacing:.02em;margin-right:2px}
.favtoggle,.seg,.sort{background:transparent;border:1px solid rgb(var(--tm-ivory-rgb) / .18);color:var(--tm-ivory)}
.favtoggle{font-weight:700}
.favtoggle>span[aria-hidden]{color:var(--tm-run)}
.favtoggle[aria-pressed=true]{border-color:var(--tm-run);color:var(--tm-ivory);background:rgb(var(--tm-run-rgb) / .12)}
.sort{font-weight:600;color-scheme:dark}
.seg button{color:var(--tm-text-2);font-weight:700;letter-spacing:.05em;text-transform:uppercase;font-size:.68rem}
.seg button[aria-pressed=true]{background:var(--tm-swim);color:var(--tm-navy)}
.chips button{background:rgb(var(--tm-swim-rgb) / .12);border:1px solid rgb(var(--tm-swim-rgb) / .35);color:var(--tm-ivory);font-weight:600}
.chips button:hover{background:rgb(var(--tm-swim-rgb) / .22)}
.chips .clear{border:0;background:none;color:var(--tm-swim)}
.mbar{background:transparent}
@media(max-width:1099px){
 .mbar{background:rgb(var(--tm-navy-rgb) / .78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:10px 0;margin-inline:-2px}
 .mbar .mfilt .count:not(.on){background:rgb(var(--tm-navy-rgb) / .25);color:var(--tm-navy)}
 .mbar .mfilt .count.on{background:var(--tm-navy);color:var(--tm-swim)}
}

/* titres de mois */
.mhead{border-bottom:1px solid var(--tm-line-soft);margin:30px 0 12px;padding-bottom:8px;position:relative;gap:12px}
.mhead::after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:2px;background:var(--tm-swim)}
.mhead h3{font-family:var(--tm-display);font-weight:400;font-size:2rem;line-height:1;text-transform:uppercase;letter-spacing:.01em;color:var(--tm-ivory)}
.mhead span{color:var(--tm-text-3);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}

/* ---------- carte de course (pancarte Instagram) ---------- */
.card{grid-template-columns:78px minmax(0,1fr) 210px;grid-template-areas:"day main side" "day disc side";gap:14px 22px;
 background:var(--tm-card-bg);border:1px solid var(--tm-line);border-left:4px solid var(--tm-trans);
 border-radius:18px;padding:18px 20px 18px 16px;margin-bottom:12px;box-shadow:inset 0 1px 0 rgb(var(--tm-ivory-rgb) / .05);transition:border-color .2s var(--tm-ease),box-shadow .2s var(--tm-ease)}
.card.reg-open{border-left-color:var(--tm-bike)}
.card.reg-opening_soon{border-left-color:var(--tm-swim)}
.card.reg-sold_out{border-left-color:var(--tm-run)}
.card:hover{border-color:rgb(var(--tm-swim-rgb) / .45)}
.card.reg-open:hover{border-left-color:var(--tm-bike)}
.card.sel{border-color:var(--tm-swim);box-shadow:0 0 0 1px var(--tm-swim),0 0 28px rgb(var(--tm-swim-rgb) / .18)}
.cday{grid-area:day;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:2px 14px 0 0;border-right:1px solid var(--tm-line-soft);min-height:100%;text-align:center}
.cday b{font-family:var(--tm-display);font-weight:400;font-size:2.7rem;line-height:.95;color:var(--tm-ivory);letter-spacing:.01em}
.cday span{margin-top:6px;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--tm-swim)}
.cday i{display:block;width:30px;height:3px;border-radius:2px;background:var(--tm-bike);margin-top:12px}
.card:not(.reg-open) .cday i{background:var(--tm-trans);opacity:.6}
.cday.tbd b{font-size:2rem;color:var(--tm-text-3)}
.cmain h3{font-family:var(--tm-display);font-weight:400;font-size:1.6rem;line-height:1.02;text-transform:uppercase;letter-spacing:.01em;margin:4px 0 6px}
.cmain h3 a:hover{color:var(--tm-swim-light);text-decoration:none}
.place{order:-1;font-size:.72rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--tm-text-2)}
.cmain{display:flex;flex-direction:column}
.cmain>h3{order:0}.cmain>.place{order:-1}
.cc{color:var(--tm-swim);font-size:.66rem;margin-right:6px;letter-spacing:.06em}
.cmeta{font-size:.78rem;color:var(--tm-text-2);margin-top:4px}
.cmeta b{color:var(--tm-ivory);font-weight:700}
.cmeta>span+span::before{color:var(--tm-text-3)}
.cfmt{color:var(--tm-ivory)}
.creg{font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}
.creg.open{color:var(--tm-bike-light)}
.creg.opening_soon{color:var(--tm-swim-light)}
.creg.closed{color:var(--tm-text-3)}
.creg.sold_out{color:var(--tm-run-light)}
.cmeta .muted{color:var(--tm-text-3)}

/* disciplines : SWIM bleu, BIKE vert, RUN rouge */
.dslot{background:rgb(var(--tm-deep-rgb) / .4);border:1px solid var(--tm-line-soft);border-radius:12px;border-top:2px solid var(--tm-trans)}
.dslot.sw{border-top-color:var(--tm-swim)}.dslot.bk{border-top-color:var(--tm-bike)}.dslot.rn{border-top-color:var(--tm-run)}
.dslot .dk{font-size:.62rem;font-weight:800;letter-spacing:.1em}
.dslot.sw .dk{color:var(--tm-swim)}.dslot.bk .dk{color:var(--tm-bike)}.dslot.rn .dk{color:var(--tm-run)}
.dslot b{color:var(--tm-ivory);font-weight:700}
.dslot small{color:var(--tm-text-2)}
.dslot.none{background:transparent;border-style:dashed;border-top-style:solid;opacity:.85}
.dslot.none b{color:var(--tm-text-3);font-weight:500}
.dslot:not(.none) b{line-height:1.3}
.card .dslot b{font-size:.76rem}
.dnum{display:block;font-family:var(--tm-display);font-weight:400;font-size:2rem;line-height:1;letter-spacing:.01em;color:var(--tm-ivory);margin:4px 0 4px}
.disc.big .dslot{padding:14px 14px 12px;align-items:flex-start}
.disc.big .dslot .dk{font-family:var(--tm-display);font-weight:400;font-size:1.05rem;letter-spacing:.03em}
.disc.big b{font-size:.84rem}

/* colonne prix et actions */
.cside{border-left:1px solid var(--tm-line-soft);padding-left:20px;gap:14px}
.cprice{align-items:flex-start}
.cprice .dk,.dslot .dk{text-transform:uppercase}
.cprice .dk{color:var(--tm-text-3);font-size:.62rem;font-weight:800;letter-spacing:.1em;margin-bottom:6px}
.cprice b{display:inline-block;font-family:var(--tm-sans);font-weight:800;font-size:1.25rem;color:var(--tm-swim-light);background:rgb(var(--tm-swim-rgb) / .12);border:1px solid rgb(var(--tm-swim-rgb) / .55);border-radius:999px;padding:3px 16px;line-height:1.35;font-variant-numeric:tabular-nums}
.cprice small{color:var(--tm-text-3);margin-top:6px;font-size:.68rem}
.cprice.none b,.cprice b.warn{background:transparent;border:1px dashed rgb(var(--tm-ivory-rgb) / .2);color:var(--tm-text-3);font-size:.76rem;font-weight:600;font-style:normal;padding:5px 12px}
.cprice b.warn{color:var(--tm-run-light);border-color:rgb(var(--tm-run-rgb) / .5)}
.fav{color:var(--tm-text-2);font-size:1.4rem}
.fav:hover{border-color:rgb(var(--tm-ivory-rgb) / .2)}
.fav[aria-pressed=true]{color:var(--tm-run)}
.cmp{background:transparent;border:1px solid rgb(var(--tm-ivory-rgb) / .22);color:var(--tm-ivory);font-weight:700;font-size:.7rem;letter-spacing:.07em;text-transform:uppercase}
.cmp:hover{border-color:var(--tm-swim)}
.cmp:has(input:checked){border-color:var(--tm-swim);background:rgb(var(--tm-swim-rgb) / .16);color:var(--tm-ivory)}
.cact .link{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em}

/* badges */
.bdg{border-radius:999px;font-weight:700;font-size:.66rem;letter-spacing:.04em;background:transparent}
.bdg i{color:var(--tm-navy);font-weight:900}
.dc-standard{color:var(--tm-bike-light);border-color:rgb(var(--tm-bike-rgb) / .55);background:rgb(var(--tm-bike-rgb) / .1)}.dc-standard i{background:var(--tm-bike)}
.dc-close{color:var(--tm-ivory);border-color:rgb(var(--tm-trans-rgb) / .5);background:rgb(var(--tm-trans-rgb) / .1)}.dc-close i{background:var(--tm-trans)}
.dc-modified{color:var(--tm-run-light);border-color:rgb(var(--tm-run-rgb) / .55);background:rgb(var(--tm-run-rgb) / .1)}.dc-modified i{background:var(--tm-run)}
.bdg.verif{color:var(--tm-swim-light);border-color:rgb(var(--tm-swim-rgb) / .55);background:rgb(var(--tm-swim-rgb) / .1)}
.bdg.verif:hover{background:rgb(var(--tm-swim-rgb) / .2)}
.tag{background:rgb(var(--tm-ivory-rgb) / .08);color:var(--tm-ivory)}
.state.ok{background:var(--ok-bg);color:var(--ok)}.state.wip{background:var(--wip-bg);color:var(--wip)}.state.study{background:var(--sky);color:var(--tm-swim-light)}

/* états vides, pagination, note */
.empty,.pager{border:1px dashed rgb(var(--tm-swim-rgb) / .35);background:rgb(var(--tm-surface-rgb) / .55);color:var(--tm-text-2)}
.empty h3{font-family:var(--tm-display);font-weight:400;text-transform:uppercase;letter-spacing:.01em;font-size:1.8rem;color:var(--tm-ivory)}
.pager p{color:var(--tm-text-2)}
.datanote{background:rgb(var(--tm-swim-rgb) / .08);color:var(--tm-text-2)}

/* ---------- carte géographique (univers de la vidéo TM08) ---------- */
.race-map{background:radial-gradient(90% 70% at 50% 40%,#063247 0%,#02202E 70%);border:1px solid var(--tm-line)}
.mland{fill:rgb(var(--tm-swim-rgb) / .07);stroke:var(--tm-swim);stroke-width:2.2;filter:drop-shadow(0 0 6px rgb(var(--tm-swim-rgb) / .55))}
.mbord{stroke:rgb(var(--tm-swim-rgb) / .45)}
.mlab{fill:rgb(var(--tm-ivory-rgb) / .32);font-family:var(--tm-sans)}
.mlab.ref{fill:var(--tm-swim)}
.minset{fill:rgb(var(--tm-deep-rgb) / .45);stroke:rgb(var(--tm-swim-rgb) / .35)}
.mrad{fill:rgb(var(--tm-swim-rgb) / .1);stroke:var(--tm-swim)}
.mref{fill:var(--tm-swim);stroke:var(--tm-navy)}
.mk{background:var(--tm-bike);color:var(--tm-navy);border:2px solid var(--tm-navy);font-weight:800;box-shadow:0 0 0 5px rgb(var(--tm-bike-rgb) / .22),0 4px 14px rgba(0,0,0,.45)}
.mk:hover{box-shadow:0 0 0 7px rgb(var(--tm-bike-rgb) / .3),0 4px 14px rgba(0,0,0,.45)}
.mk[aria-expanded=true]{background:var(--tm-swim);box-shadow:0 0 0 7px rgb(var(--tm-swim-rgb) / .3)}
.mk-pop,.map-empty{background:var(--tm-surface);border:1px solid var(--tm-line);color:var(--tm-ivory)}
.mk-pop>div{border-bottom-color:var(--tm-line-soft)}
.mk-pop span,.mk-pop small,.mapnote,.map-empty p{color:var(--tm-text-2)}
.mk-pop a{color:var(--tm-swim)}
.mk-pop em{background:rgb(var(--tm-swim-rgb) / .15);color:var(--tm-swim-light)}
.map-empty h3{font-family:var(--tm-display);font-weight:400;text-transform:uppercase}

/* ---------- barre de sélection ---------- */
.selbar{background:var(--tm-selbar-bg);border:1px solid rgb(var(--tm-swim-rgb) / .4);border-radius:16px;padding:14px 16px 12px;box-shadow:0 18px 50px rgba(0,8,14,.6);overflow:hidden;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.selbar:not([hidden]){animation:tm-rise .32s var(--tm-ease) both}
.selbar::before{content:"";position:absolute;left:0;right:0;top:0;height:3px}
.sbt{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:0}
.sbt strong{font-family:var(--tm-display);font-weight:400;font-size:1.15rem;letter-spacing:.03em;text-transform:uppercase}
.sbn{font-family:var(--tm-display);font-size:1.15rem;color:var(--tm-swim)}
.sbseg{display:inline-flex;gap:4px}
.sbseg i{width:18px;height:4px;border-radius:2px;background:rgb(var(--tm-ivory-rgb) / .22)}
.sbseg i.on{background:var(--tm-swim)}
.sbh{font-size:.72rem;color:var(--tm-text-2)}
.selbar .names span{border-color:rgb(var(--tm-swim-rgb) / .35);background:rgb(var(--tm-swim-rgb) / .08);font-size:.68rem;font-weight:600}
.selbar .names button{color:var(--tm-text-2)}
.selbar .names button:hover{background:rgb(var(--tm-run-rgb) / .2);color:var(--tm-ivory)}
.selbar .clr{color:var(--tm-text-2);font-weight:700;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.selbar .clr:hover{color:var(--tm-ivory)}
.selbar .button{white-space:nowrap}

/* ---------- pages : fil d’Ariane, titres ---------- */
.page{padding:34px 0 96px}
.crumb{color:var(--tm-text-3);font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.crumb a{color:var(--tm-text-2);text-decoration-color:rgb(var(--tm-swim-rgb) / .6)}
.crumb a:hover{color:var(--tm-ivory)}
.phead{margin-bottom:28px}
.phead h1,.stub h1,.contact h1,.ahero h1,.notes h1,.member-copy h1,.member-top h1{font-family:var(--tm-display);font-weight:400;text-transform:uppercase;letter-spacing:.005em;line-height:.95;font-size:clamp(2.4rem,5vw,4.4rem)}
.phead p,.stub .lead{color:var(--tm-text-2)}
.phead .eyebrow{margin-bottom:12px}

/* ---------- comparateur ---------- */
.ctable{background:var(--tm-card-bg);border:1px solid var(--tm-line);border-radius:18px;font-size:.84rem;color:var(--tm-ivory)}
.ctable th,.ctable td{border-bottom:1px solid var(--tm-line-soft);border-right:1px solid var(--tm-line-soft);padding:15px 16px}
.ctable thead th{background:var(--tm-thead);top:72px;border-bottom:1px solid var(--tm-line)}
.ctable thead th:first-child{background:var(--tm-thead-first);color:var(--tm-swim);font-size:.66rem;font-weight:800;letter-spacing:.12em}
.ctable thead th:nth-child(2){box-shadow:inset 0 3px var(--tm-swim)}
.ctable thead th:nth-child(3){box-shadow:inset 0 3px var(--tm-bike)}
.ctable thead th:nth-child(4){box-shadow:inset 0 3px var(--tm-run)}
.ctable thead th:last-child{border-top-right-radius:18px}
.ctable tbody th{background:rgb(var(--tm-deep-rgb) / .35);color:var(--tm-text-2);font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.ctable td.none{color:var(--tm-text-3)}
.ctable td .low,.cvals .low{color:var(--tm-navy);background:var(--tm-bike);font-weight:800;letter-spacing:.04em}
.chd strong{font-family:var(--tm-display);font-weight:400;font-size:1.45rem;line-height:1.02;text-transform:uppercase;letter-spacing:.01em}
.chd small{color:var(--tm-text-2);text-transform:uppercase;letter-spacing:.08em;font-size:.66rem;font-weight:600}
.chd .top button,.cmob-heads button{background:transparent;border:1px solid rgb(var(--tm-ivory-rgb) / .2);color:var(--tm-text-2)}
.chd .top button:hover,.cmob-heads button:hover{border-color:var(--tm-run);color:var(--tm-ivory)}
.chd .fmt{font-size:.66rem;white-space:nowrap}
@media(max-width:1099px){.ctable thead th{position:static}}
.emptyrows{background:rgb(var(--tm-surface-rgb) / .6);border:1px solid var(--tm-line);color:var(--tm-ivory)}
.emptyrows summary{color:var(--tm-text-2)}
.cfoot{border-top-color:var(--tm-line-soft)}
.cfoot>div strong{color:var(--tm-text-3);text-transform:uppercase;letter-spacing:.08em;font-size:.66rem}
/* identification des courses comparées (1, 2, 3) */
.cxk{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;font-family:var(--tm-display);font-size:.8rem;line-height:1;color:var(--tm-navy);background:var(--tm-swim);flex-shrink:0}
.cxk.k2{background:var(--tm-bike)}.cxk.k3{background:var(--tm-run)}
.cxn{display:none}

/* ---------- fiche course ---------- */
.fiche-head h1{max-width:20ch}
.fiche-head .eyebrow{margin-bottom:14px}
.sec{background:var(--tm-card-bg);border:1px solid var(--tm-line);border-radius:18px;padding:22px 24px}
.sec h2{font-family:var(--tm-display);font-weight:400;font-size:1.7rem;text-transform:uppercase;letter-spacing:.01em}
.sec.thin{background:transparent}
.dl>div{border-top-color:var(--tm-line-soft)}
.dl dt{color:var(--tm-text-3);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding-top:2px}
.dl dd{color:var(--tm-ivory);font-weight:600}
.dl dd small,.missing,.srow small,.srow strong{color:var(--tm-text-3)}
.aside{position:sticky;background:var(--tm-panel-bg);border:1px solid rgb(var(--tm-swim-rgb) / .4);border-radius:18px;padding:26px 22px 22px;overflow:hidden}
.aside::before{content:"";position:absolute;left:0;right:0;top:0;height:3px}
.aside .eyebrow{color:var(--tm-swim)}
.aside h2{font-family:var(--tm-display);font-weight:400;font-size:2.2rem;text-transform:uppercase;letter-spacing:.01em;line-height:1}
.aside p{color:var(--tm-text-2)}
.aside p strong{color:var(--tm-bike-light)!important;text-transform:uppercase;letter-spacing:.05em;font-size:.78rem}
.aside p.price{font-family:var(--tm-sans);font-weight:800;color:var(--tm-swim-light);font-size:1.15rem;margin:12px 0 4px}
.aside .row2{border-top-color:var(--tm-line-soft)}
.aside .afav,.aside .acmp{background:rgb(var(--tm-deep-rgb) / .45);border:1px solid rgb(var(--tm-ivory-rgb) / .2);border-radius:10px;font-weight:700;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.aside .afav[aria-pressed=true]{border-color:var(--tm-run)}
.aside .afav[aria-pressed=true] span:first-child{color:var(--tm-run)}
.aside .acmp:has(input:checked){border-color:var(--tm-swim);background:rgb(var(--tm-swim-rgb) / .16)}
.aside .alink{color:var(--tm-swim-light)}
.aside .report{color:var(--tm-text-2)}
.aside .indep{color:var(--tm-text-3)}
.sources{border-color:var(--tm-line-soft)}
.sources summary{text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;color:var(--tm-ivory)}
.srow a{color:var(--tm-swim)}
.fiche-grid h2.serif{font-size:1.6rem!important}
.sec-top .link{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}
.related .button{text-transform:none;letter-spacing:.01em;font-size:.76rem}

/* ---------- pages secondaires, espace membre ---------- */
.box,.afgrid article,.actagrid article,.adetail,.tolcard,.thcard,.cguide,.member-form,.member-card,.member-reference,.member-result,.favorite-race,.mtable,.pcard{background:var(--tm-card-bg);border:1px solid var(--tm-line);color:var(--tm-ivory)}
.box.dark,.actagrid article.dark,.member-profile-summary{background:var(--tm-panel-bg);border:1px solid rgb(var(--tm-swim-rgb) / .4)}
.box h2,.member-form h2,.member-card h2,.ihead h2,.dhead h2,.afgrid h3,.actagrid h3,.favorite-race h2{font-family:var(--tm-display);font-weight:400;text-transform:uppercase;letter-spacing:.01em;color:var(--tm-ivory)}
.box p,.box li,.afgrid p,.actagrid p,.member-card p,.member-copy>p,.member-top p,.favorite-race-head p,.reminder-note,.member-form .form-foot,.alead,.aorigin,.amhead p,.aequal p{color:var(--tm-text-2)}
.averif{background:rgb(var(--tm-swim-rgb) / .08);border:1px solid var(--tm-line)}
.averif small,.averif p{color:var(--tm-text-2)}
.aequal{border-left-color:var(--tm-bike)}
.ahero h1 span,.member-copy h1 span{color:var(--tm-swim)}
.aspec{color:var(--tm-swim)}
.vision{font-family:var(--tm-display);text-transform:uppercase;letter-spacing:.01em}
.note,.member-note,.ccontext{background:rgb(var(--tm-swim-rgb) / .08);color:var(--tm-text-2);border-color:var(--tm-swim)}
.form-notice,.inline-note,.notes-band{background:rgb(var(--tm-run-rgb) / .1);color:var(--tm-run-light)}
.mtable th,.mtable td{border-bottom-color:var(--tm-line-soft)}
.mtable tbody th,.mtable thead th{background:rgb(var(--tm-deep-rgb) / .35)}
.member-tabs{border-bottom-color:var(--tm-line-soft)}
.member-tabs a{text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;color:var(--tm-text-2)}
.member-tabs a[aria-current=page]{border-color:var(--tm-swim);color:var(--tm-ivory)}
.member-avatar{background:var(--tm-navy);color:var(--tm-swim);border:2px solid var(--tm-swim)}
.member-benefits li,.member-mini li,.reminder-options,.reminder-note,.member-form .auth-alt,.mini li{border-color:var(--tm-line-soft)}
.member-benefits b,.reminder-options legend{color:var(--tm-swim)}
.reminder-choice{border-color:rgb(var(--tm-ivory-rgb) / .18)}
.reminder-choice:has(input:checked){border-color:var(--tm-swim);background:rgb(var(--tm-swim-rgb) / .12)}
.member-mini small,.mini small,.member-reference p{color:var(--tm-text-3)}
.count-big b,.member-reference strong,.member-result .result-total{font-family:var(--tm-display);font-weight:400;color:var(--tm-ivory)}
.result-splits strong,.member-card .count-big{color:var(--tm-ivory)}
.member-danger{border-color:rgb(var(--tm-run-rgb) / .45)}
.tolrow,.thcard dl>div{border-top-color:var(--tm-line-soft)}
.journey{color:var(--tm-text-3)}
.journey span{color:var(--tm-swim)}
.catalog-overview{background:var(--tm-surface);border-color:var(--tm-line)}

/* dialogues, tiroir de filtres, message */
dialog{background:var(--tm-navy);color:var(--tm-ivory)}
dialog::backdrop{background:rgba(0,8,14,.72);backdrop-filter:blur(2px)}
dialog.info{background:var(--tm-surface);border:1px solid var(--tm-line)}
.ihead h2{color:var(--tm-ivory)}
#ibody p{color:var(--tm-text-2)}
.drawer{border-left:1px solid var(--tm-line)}
.dhead,.dfoot{border-color:var(--tm-line-soft)}
.toast{background:var(--tm-surface);border:1px solid var(--tm-line);border-left:4px solid var(--tm-bike);color:var(--tm-ivory);box-shadow:var(--shadow)}

/* ---------- pied de page ---------- */
.site-footer{position:relative;background:rgb(var(--tm-deep-rgb) / .86);backdrop-filter:var(--tm-glass-blur);-webkit-backdrop-filter:var(--tm-glass-blur);border-top:0;margin-top:40px}
.fgrid img{width:220px}
.fgrid p{color:var(--tm-text-2)}
.fgrid h2{color:var(--tm-swim);font-size:.68rem;font-weight:800;letter-spacing:.14em}
.fgrid ul a{color:var(--tm-ivory)}
.fgrid a:hover{color:var(--tm-swim-light)}
.fbottom{border-top-color:var(--tm-line-soft);color:var(--tm-text-3)}
.fbottom a:hover{color:var(--tm-ivory)}

/* ---------- mouvement : un seul fondu à l’arrivée sur une page (transition des vidéos) ---------- */
@keyframes tm-enter{from{transform:translateY(10px) scale(.992)}to{transform:none}}
@keyframes tm-rise{from{transform:translate(-50%,16px)}to{transform:translate(-50%,0)}}
@keyframes tm-draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}
#app>*{animation:tm-enter .34s var(--tm-ease) both}
.site-header::before{transform-origin:left;animation:tm-draw .9s var(--tm-ease) .1s both}
@media(prefers-reduced-motion:reduce){#app>*,.selbar:not([hidden]),.site-header::before{animation:none!important}}

/* ---------- adaptations ---------- */
@media(max-width:1099px){
 .card{grid-template-columns:72px minmax(0,1fr) 200px;grid-template-areas:"day main side" "disc disc disc"}
 .cday{min-height:0;padding-bottom:6px}
}
@media(max-width:980px){.calendar-intro.hero{grid-template-columns:minmax(0,1fr)}.hstats{justify-self:start}}
@media(max-width:760px){
 .shell{width:calc(100% - 32px)}
 .card{grid-template-columns:58px minmax(0,1fr);grid-template-areas:"day main" "disc disc" "side side";padding:14px 14px 14px 12px;gap:12px 14px}
 .cday{padding-right:10px}.cday b{font-size:2.2rem}.cday span{font-size:.66rem}.cday i{margin-top:8px;width:24px}
 .cmain h3{font-size:1.35rem}
 .cmeta .creg{flex-basis:100%;margin-top:3px}
 .cmeta .creg::before{content:none!important}
 .card .dslot b{font-size:.7rem}
 .cside{border-left:0;padding-left:0;border-top:1px solid var(--tm-line-soft);padding-top:12px;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between}
 .cprice{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 10px}
 .cprice .dk{margin:0}
 .cprice small{width:100%;margin-top:0}
 .cside .cact{width:100%;justify-content:space-between}
 /* comparateur mobile : une valeur par ligne, chaque course identifiée */
 .cmob-heads{position:static;display:grid;grid-template-columns:minmax(0,1fr);gap:6px;background:transparent;border:0;padding:0 0 10px}
 .cmob-heads>div{display:flex;align-items:center;gap:10px;background:var(--tm-card-bg);border:1px solid var(--tm-line);border-radius:12px;padding:10px 46px 10px 10px}
 .cmob-heads>div>div{min-width:0}
 .cmob-heads strong{font-family:var(--tm-display);font-weight:400;font-size:1.05rem;line-height:1.05;text-transform:uppercase;letter-spacing:.01em;overflow-wrap:normal}
 .cmob-heads small{color:var(--tm-text-3);font-size:.62rem;text-transform:uppercase;letter-spacing:.08em}
 .cmob-heads button{top:50%;right:8px;transform:translateY(-50%);width:32px;height:32px;border-radius:50%}
 .crow{border-bottom:1px solid var(--tm-line-soft);padding:16px 0}
 .crow h3{color:var(--tm-swim);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}
 .cvals{grid-template-columns:minmax(0,1fr);gap:6px}
 .cvals>div{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:10px;align-items:start;background:rgb(var(--tm-deep-rgb) / .4);border:1px solid var(--tm-line-soft);border-radius:10px;padding:10px 12px;font-size:.82rem;color:var(--tm-ivory);overflow-wrap:break-word}
 .cvals>div>.cxk{grid-row:1/span 20;margin-top:1px}
 .cvals>div>span{grid-column:2}
 .cvals>div.none{color:var(--tm-text-3)}
 .cvals .bdg,.cvals .ci{display:inline-flex}
 .cvals .low{display:inline-block;justify-self:start;margin-top:6px;border-radius:999px;padding:2px 8px;font-size:.62rem}
}
@media(max-width:600px){
 .header-inner{height:64px}.brand img{width:148px}
 .calendar-intro.hero{padding:28px 0 18px;gap:14px}
 .calendar-intro h1,.hero h1{font-size:2.65rem;max-width:none}
 .calendar-journey{font-size:.6rem;letter-spacing:.12em;margin-top:12px}
 .hstats{width:100%}.hstats>div{flex:1;padding:10px 12px 9px}.hstats dd{font-size:1.9rem}.hstats dt{font-size:.56rem;letter-spacing:.08em}
 .mhead h3{font-size:1.7rem}
 .dslot{border-top-width:2px}
 .phead h1,.stub h1,.contact h1,.ahero h1{font-size:2.4rem}
 .aside h2{font-size:1.9rem}
 .dnum{font-size:1.7rem}
 .disc.big{grid-template-columns:minmax(0,1fr);gap:8px}
 .disc.big .dslot{flex-direction:row;align-items:center;gap:14px;padding:12px 14px}
 .disc.big .ico{width:52px;height:30px}
 /* barre de sélection : une ligne lisible */
 .selbar{left:12px;right:12px;width:auto;transform:none;bottom:10px;padding:12px;gap:10px;flex-wrap:nowrap;align-items:center;border-radius:14px}
 .selbar:not([hidden]){animation-name:tm-rise-sm}
 .selbar .sb{flex:1 1 auto}
 .sbt{flex-wrap:nowrap;gap:8px}
 .sbt strong{font-size:1rem}.sbn{font-size:1rem}.sbseg i{width:12px}
 .sbh,.selbar .names{display:none}
 .selbar .clr{padding:8px 4px}
 .selbar .button{flex:0 0 auto;padding:7px 12px}
 .sbx{display:none}
 body.has-sel .site-footer{padding-bottom:96px}
}
@keyframes tm-rise-sm{from{transform:translateY(16px)}to{transform:none}}
@media(max-width:440px){.sbseg,.selbar .clr .sbx{display:none}.selbar{gap:8px}.selbar .sb{flex:0 1 auto;min-width:auto}.selbar .clr{margin-left:auto;font-size:.66rem;letter-spacing:.05em}}
@media(max-width:360px){.brand img{width:124px}.header-inner{gap:6px}.icon-btn{padding:7px 10px}.sbt strong{font-size:.9rem}.selbar .button{padding:7px 10px}}

/* ---------- v3 : fond d'image et surfaces translucides ---------- */
.card,.sec,.ctable,.aside,.hstats,.emptyrows,.box,.afgrid article,.actagrid article,.adetail,.cguide,.member-form,.member-card,.member-reference,.favorite-race,.cmob-heads>div,.mk-pop,.map-empty,.empty,.pager,.morehead{backdrop-filter:var(--tm-glass-blur);-webkit-backdrop-filter:var(--tm-glass-blur)}
/* La colonne de filtres repose directement sur le fond : léger panneau pour la lisibilité. */
.fside{background:rgb(var(--tm-navy-rgb) / .55);border:1px solid var(--tm-line-soft);border-radius:18px;padding:16px 14px 18px 16px;backdrop-filter:var(--tm-glass-blur);-webkit-backdrop-filter:var(--tm-glass-blur)}
/* Pictogrammes générés par le script : couleurs des disciplines reprises des variables. */
.ico [stroke="#35B6E8"]{stroke:var(--tm-swim)}
.ico [stroke="#43B95C"]{stroke:var(--tm-bike)}
.ico [fill="rgba(67,185,92,.22)"]{fill:rgb(var(--tm-bike-rgb) / .22)}
.ico [stroke="#FE4528"]{stroke:var(--tm-run)}
.ico [fill="rgba(254,69,40,.2)"]{fill:rgb(var(--tm-run-rgb) / .2)}
/* Textes posés sur le fond : halo bleu nuit discret, sans effet visible sur les cartes sombres. */
#app,.site-footer{text-shadow:0 1px 2px rgb(var(--tm-navy-rgb) / .55),0 0 18px rgb(var(--tm-navy-rgb) / .5)}
input,select,textarea,.button,.cprice b,.tm-flag{text-shadow:none}
/* Téléphone et tablette portrait : la composition verticale place les sportifs derrière le texte. */
@media(orientation:portrait) and (max-width:1023px){:root{--tm-bg-veil-top:.42;--tm-bg-veil-mid:.6;--tm-bg-veil-bottom:.76}}
/* ---------- sélecteur de langue ENG · FR · ES, toujours visible en haut à droite ----------
   Seul le français existe aujourd'hui : ENG et ES sont affichés atténués, non cliquables,
   jusqu'à la mise en ligne des traductions. */
.lang{display:flex;align-items:center;gap:2px;padding:4px 6px;border:1px solid var(--tm-line);border-radius:999px;background:rgb(var(--tm-navy-rgb) / .5)}
.header-inner>.lang{margin-left:4px}
.lang-opt{font-size:.68rem;font-weight:800;letter-spacing:.1em;padding:5px 7px;border-radius:999px;color:var(--tm-text-3);line-height:1;cursor:default}
.lang-opt.current-language{background:var(--tm-swim);color:var(--tm-navy)}
.lang-opt[aria-disabled=true]{opacity:.75}
.lang-sep{color:var(--tm-text-3);font-size:.7rem;opacity:.6}
.mnav .lang{display:inline-flex;margin:8px 6px 0}
@media(max-width:980px){.header-inner>.lang{display:flex}.mnav li:has(.lang){display:none}}
@media(max-width:600px){
 .header-inner{gap:6px}
 .brand img{width:120px}
 .header-inner>.lang{padding:3px 4px;gap:0;margin-left:0}
 .lang-opt{font-size:.6rem;padding:5px 5px;letter-spacing:.06em}
 .lang-sep{font-size:.6rem}
 .icon-btn{padding:7px 9px;min-height:38px}
}
@media(max-width:374px){.header-inner>[data-favlist]{display:none}.brand img{width:108px}}
/* sélecteur de langue actif (v9) */
button.lang-opt{border:0;background:transparent;font-family:inherit;cursor:pointer}
button.lang-opt:hover{color:var(--tm-ivory)}
button.lang-opt.current-language{cursor:default;color:var(--tm-navy)}
.lang-opt[aria-disabled]{opacity:1}
.sbm{display:none}
@media(max-width:600px){.sbm{display:inline}}
.lang button.lang-opt{padding:5px 7px;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.1em;color:var(--tm-text-3);line-height:1}
.lang button.lang-opt:hover{color:var(--tm-ivory)}
.lang button.lang-opt.current-language,.lang button.lang-opt[aria-current=true]{background:var(--tm-swim);color:var(--tm-navy)}
@media(max-width:600px){.lang button.lang-opt{font-size:.6rem;padding:5px 5px;letter-spacing:.06em}}
/* Champ vide = champ non affiché : disciplines et bloc date selon les données réellement connues */
.disc.n1{grid-template-columns:minmax(0,1fr)}
.disc.n2{grid-template-columns:repeat(2,minmax(0,1fr))}
.cday.tbd span{margin-top:14px}
@media(min-width:601px){.card .disc.n1{max-width:340px}}

/* Fiche course : favori et comparaison accessibles dès l'en-tête, à côté des badges (en plus des boutons du bas). */
.fiche-tags{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:10px}
.fiche-tags .bdgs{margin-top:0}
.fquick{display:flex;align-items:center;gap:8px}
.fquick .fav{min-width:40px;min-height:40px;border:1px solid rgb(var(--tm-ivory-rgb) / .22);border-radius:50%;display:inline-flex;align-items:center;justify-content:center}
.fquick .fav[aria-pressed="true"]{color:var(--tm-run);border-color:rgb(var(--tm-run-rgb) / .55)}
.fquick .cmp{min-height:40px;padding:6px 14px}
