/* montrealmetroaaa.com — « Le plan des lignes de jeu » : sport = ligne colorée, arrondissement = station */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/BarlowCondensed-700.woff2) format('woff2')}
@font-face{font-family:'Albert Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/AlbertSans-normal-e0e107.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Albert Sans';font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/AlbertSans-normal-949fc9.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{--neige:#F3F7FA;--nuit:#10223A;--rouge:#C4122F;--glace:#2C7FB8;--lien:#1F6FA3;--vert:#1F7A4D;--ambre:#E0A100;--doux:#4A5B70;--filet:#D5E0EA;--blanc:#fff;--r:6px;--tete:68px;--tit:'Barlow Condensed','Arial Narrow',sans-serif;--txt:'Albert Sans',system-ui,-apple-system,'Segoe UI',sans-serif}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--neige);color:var(--nuit);font:400 17px/1.6 var(--txt);display:flex;flex-direction:column;min-height:100svh;overflow-x:clip}
main{flex:1 0 auto;width:100%}
img,svg{max-width:100%}
a{color:var(--lien);text-underline-offset:3px}
a:hover{color:var(--nuit)}
h1,h2,h3{font-family:var(--tit);font-weight:700;line-height:1.08;letter-spacing:.005em;margin:0 0 .5em;color:var(--nuit)}
h1{font-size:clamp(2.2rem,4.4vw,3.6rem)}h2{font-size:clamp(1.65rem,2.6vw,2.2rem)}h3{font-size:1.4rem}
p{margin:0 0 1em}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.evite{position:absolute;left:-999px;top:8px;z-index:200;background:var(--nuit);color:#fff;padding:8px 14px;border-radius:var(--r)}.evite:focus{left:8px}
:focus-visible{outline:3px solid var(--glace);outline-offset:2px}

/* ---- en-tête ---- */
.tete{position:sticky;top:0;z-index:100;background:#fff;border-bottom:1px solid var(--filet);height:var(--tete)}
.tete-in{max-width:1280px;height:100%;margin:0 auto;padding:0 20px;display:flex;align-items:center;gap:28px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--nuit);flex:none}
.logo-mot{font:700 1.5rem/1 var(--tit);letter-spacing:.01em;white-space:nowrap}.logo-mot b{color:var(--rouge);font-weight:700}
.menu{display:flex;gap:22px;margin-left:auto;align-items:center}
.menu a{position:relative;text-decoration:none;color:var(--nuit);font-weight:600;font-size:.97rem;padding:6px 0;white-space:nowrap}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:4px;border-radius:2px;background:var(--c,var(--glace));transform:scaleX(0);transform-origin:left;transition:transform .22s}
.menu a:hover::after,.menu a[aria-current]::after{transform:scaleX(1)}
.cta{display:inline-flex;align-items:center;justify-content:center;background:var(--rouge);color:#fff;font-weight:700;font-size:.97rem;text-decoration:none;padding:10px 18px;border-radius:var(--r);white-space:nowrap;flex:none}
.cta:hover{background:var(--nuit);color:#fff}
.burger{display:none;margin-left:auto;background:none;border:0;width:44px;height:44px;padding:10px;cursor:pointer}
.burger span{display:block;height:3px;background:var(--nuit);border-radius:2px;margin:6px 0;transition:transform .2s}
.tiroir{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--filet);padding:10px 20px 20px;display:flex;flex-direction:column;gap:2px;box-shadow:0 14px 24px rgba(16,34,58,.12)}
.tiroir[hidden]{display:none}
.tiroir a{padding:12px 4px;text-decoration:none;color:var(--nuit);font-weight:600;border-bottom:1px solid var(--filet)}
.tiroir .cta{margin-top:12px;border:0;color:#fff;justify-content:center}
@media(max-width:1040px){.menu{gap:16px}.menu a{font-size:.9rem}.cta{padding:9px 14px}}
@media(max-width:900px){.menu,.tete-in>.cta{display:none}.burger{display:block}}

/* ---- pied (compact) ---- */
.pied{background:var(--nuit);color:#D8E3EE;margin-top:56px;flex:none}
.pied-in{max-width:1280px;margin:0 auto;padding:28px 20px;display:grid;grid-template-columns:1fr 1.6fr;gap:28px;align-items:start}
.logo-clair{color:#fff}.logo-clair .logo-mot b{color:#FF8A9A}
.pied p{margin:10px 0 0;font-size:.92rem;line-height:1.5;color:#C3D2E2}
.pied-liens{display:flex;flex-wrap:wrap;gap:8px 20px}
.pied-liens a{color:#fff;font-size:.93rem;text-decoration:none}.pied-liens a:hover{text-decoration:underline}
@media(max-width:800px){.pied-in{grid-template-columns:1fr}}

/* ---- gabarits ---- */
.page{max-width:1280px;margin:0 auto;padding:36px 20px 8px}
.page-etroite{max-width:860px}
.chapo{font-size:1.18rem;line-height:1.55;max-width:70ch;color:#26384F}
.sous{color:var(--doux);max-width:70ch}
.surtitre{font:700 .95rem/1 var(--tit);letter-spacing:.08em;text-transform:none;color:#A00E27;margin:0 0 10px;font-size:1.15rem}
.petit{font-size:.9rem;color:var(--doux)}
.prose{max-width:74ch;margin-top:36px}
.prose h2{margin-top:1.6em}.prose h3{margin-top:1.3em}
.prose ul,.prose ol{padding-left:1.3em}
.conseils{padding-left:1.1em}.conseils li{margin-bottom:.5em}
.titre-bloc{margin-top:40px}
.fil{max-width:1280px;margin:0 auto;padding:14px 20px 0;font-size:.9rem}
.fil ol{list-style:none;display:flex;flex-wrap:wrap;gap:4px 10px;margin:0;padding:0;color:var(--doux)}
.fil li+li::before{content:"›";margin-right:10px;color:var(--doux)}
.fil a{color:var(--lien)}
.bouton,.bouton-s{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r);font-weight:700;text-decoration:none;cursor:pointer;border:2px solid var(--nuit);font-family:var(--txt)}
.bouton{background:var(--nuit);color:#fff;padding:12px 22px;font-size:1rem}.bouton:hover{background:var(--rouge);border-color:var(--rouge);color:#fff}
.bouton-s{background:#fff;color:var(--nuit);padding:9px 18px;font-size:.95rem}.bouton-s:hover{background:var(--nuit);color:#fff}
.bouton-large{padding:16px 30px;font-size:1.1rem;min-width:260px}
.plus{margin-top:24px}

/* ---- pastilles, puces ---- */
.pastille{display:inline-block;background:var(--c,#52657A);color:var(--ct,#fff);font-size:.82rem;font-weight:700;line-height:1;padding:6px 10px;border-radius:4px;text-decoration:none}
a.pastille:hover{filter:brightness(.92);color:var(--ct,#fff)}
.puces{display:flex;flex-wrap:wrap;gap:8px 8px;margin:14px 0}
.puce{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--filet);color:var(--nuit);text-decoration:none;font-weight:600;font-size:.95rem;padding:7px 12px;border-radius:999px}
.puce b{background:var(--nuit);color:#fff;border-radius:999px;font-size:.78rem;padding:2px 8px;font-weight:700}
.puce:hover{border-color:var(--nuit);color:var(--nuit)}

/* ---- plan du réseau ---- */
.plan-reseau{width:100%;height:auto;display:block;overflow:visible}
.pl-ile{fill:#fff;stroke:var(--nuit);stroke-width:2.4;stroke-linejoin:round}
.pl-arr{fill:none;stroke:#C5D3E1;stroke-width:1}
.pl-hl{fill:rgba(44,127,184,.18);stroke:var(--glace)}
.pl-st{fill:#fff;stroke:var(--nuit);stroke-width:4;transition:fill .15s}
.pl-st.pl-hl{fill:var(--nuit)}
.pl-vide{stroke-dasharray:3 3;fill:var(--neige);stroke:#7B8CA0}
.pl-off{opacity:.25}
.pl-a:hover .pl-st,.pl-a:focus .pl-st{fill:var(--rouge);stroke:var(--nuit)}
.pl-nom{font:700 21px var(--tit);fill:var(--nuit);paint-order:stroke;stroke:#fff;stroke-width:6px;stroke-linejoin:round;pointer-events:none}
.rame{filter:drop-shadow(0 1px 2px rgba(16,34,58,.35))}
@media(prefers-reduced-motion:reduce){.rame{display:none}}
@media(max-width:700px){.pl-nom{display:none}}
.plan-cadre{background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:14px}
.legende{list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;margin:14px 0 0;padding:0}
.legende a{display:inline-flex;align-items:center;gap:8px;color:var(--nuit);text-decoration:none;font-weight:600;font-size:.88rem}
.legende i{width:26px;height:6px;border-radius:3px;background:var(--c)}
.legende b{color:var(--doux);font-weight:600}
.legende a:hover{text-decoration:underline}

/* ---- accueil ---- */
.heros{background:linear-gradient(180deg,#fff 0,var(--neige) 100%);border-bottom:1px solid var(--filet)}
.heros-in{max-width:1280px;margin:0 auto;padding:30px 20px 34px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:36px;align-items:center;min-height:calc(100svh - var(--tete))}
.heros-texte{max-width:600px}
.heros h1{font-size:clamp(2.4rem,5.2vw,4.4rem);margin-bottom:.3em;animation:entree .7s both}
.heros .chapo{animation:entree .7s .12s both}.heros .recherche{animation:entree .7s .24s both}
@keyframes entree{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.heros h1,.heros .chapo,.heros .recherche{animation:none}}
.note-source{font-size:.9rem;color:var(--doux);margin:16px 0 0}
.heros-plan{background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:16px 16px 12px;box-shadow:0 18px 40px -26px rgba(16,34,58,.5)}
.heros-plan .plan-reseau{max-height:calc(100svh - var(--tete) - 150px)}
@media(max-width:980px){.heros-in{grid-template-columns:1fr;min-height:0;gap:26px;padding:22px 16px 26px}.heros-texte{max-width:none;min-height:calc(100svh - var(--tete) - 48px);display:flex;flex-direction:column;justify-content:center}.heros-plan .plan-reseau{max-height:none}}
.chiffres{background:var(--nuit);color:#fff}
.chiffres-in{max-width:1280px;margin:0 auto;padding:26px 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.chiffres p{margin:0}.chiffres b{display:block;font:700 clamp(2.2rem,4vw,3.2rem)/1 var(--tit);color:#fff}.chiffres span{color:#C3D2E2;font-size:.95rem}
@media(max-width:700px){.chiffres-in{grid-template-columns:1fr 1fr}}
.bloc{padding:52px 0 0}
.bloc-in{max-width:1280px;margin:0 auto;padding:0 20px}
.bloc-texte{padding-bottom:12px}
.bloc-glace{margin-top:52px;padding:44px 0;background:#E7F0F7;border-block:1px solid var(--filet)}
.glace-deux{display:grid;grid-template-columns:1.4fr 1fr;gap:36px;align-items:start}
.glace-liste{background:#fff;border-radius:var(--r);padding:18px 22px;border-left:6px solid var(--glace)}
.glace-liste h3{margin-bottom:.4em}.glace-liste ul{margin:0;padding-left:1.1em}
@media(max-width:800px){.glace-deux{grid-template-columns:1fr}}
.lignes-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px;margin-top:20px}
.lignes-grille-large{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin:0}
.ligne-carte{position:relative;display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:18px 16px 14px 22px;text-decoration:none;color:var(--nuit);overflow:hidden;transition:transform .15s,box-shadow .15s}
.lc-ruban{position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--c)}
.ligne-carte b{font:700 1.45rem/1.1 var(--tit)}.ligne-carte em{font-style:normal;color:var(--doux);font-size:.92rem}
.ligne-carte:hover{transform:translateY(-3px);box-shadow:0 12px 24px -16px rgba(16,34,58,.5);color:var(--nuit)}
@media(prefers-reduced-motion:reduce){.ligne-carte:hover{transform:none}}
.deux-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;align-items:start;margin-top:22px}
@media(max-width:980px){.deux-col{grid-template-columns:1fr}}
.stations-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.station-carte{display:flex;flex-direction:column;gap:2px;background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:14px 16px 12px 44px;position:relative;text-decoration:none;color:var(--nuit)}
.sc-pastille{position:absolute;left:14px;top:17px;width:16px;height:16px;border-radius:50%;border:4px solid var(--nuit);background:#fff}
.station-carte b{font:700 1.2rem/1.15 var(--tit)}.station-carte em{font-style:normal;color:var(--doux);font-size:.9rem}.station-carte small{color:var(--doux);font-size:.82rem;line-height:1.3}
a.station-carte:hover{border-color:var(--nuit);color:var(--nuit)}a.station-carte:hover .sc-pastille{background:var(--rouge)}
.station-vide{background:transparent;border-style:dashed}.station-vide .sc-pastille{border-style:dashed;border-color:#7B8CA0}

/* ---- cartes-fiches ---- */
.cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.cartes-etroites{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.cartes-3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.carte-fiche{position:relative;background:#fff;border:1px solid var(--filet);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.cf-ruban{height:8px;background:var(--c)}
.cf-in{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.cf-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.cf-type{font-size:.82rem;color:var(--doux);font-weight:600}
.carte-fiche h3{font:700 1.3rem/1.15 var(--tit);margin:2px 0 0}.carte-fiche h3 a{color:var(--nuit);text-decoration:none}.carte-fiche h3 a:hover{text-decoration:underline}
.cf-st{margin:0;font-size:.9rem;color:#26384F}
.cf-sa{margin:0;display:flex;flex-wrap:wrap;gap:6px}
.sa{background:#E7F0F7;color:#12304F;font-size:.78rem;font-weight:700;padding:3px 9px;border-radius:999px}
.cf-lien{margin-top:auto;padding-top:6px;font-weight:700;font-size:.92rem;color:var(--lien)}

/* ---- ligne / croisement / station / fiche ---- */
.ligne-tete,.station-tete,.fiche-tete{display:flex;gap:22px;align-items:stretch;margin-bottom:26px}
.lt-ruban,.ft-ruban{flex:none;width:14px;border-radius:7px;background:var(--c,var(--nuit))}
.st-rond{flex:none;width:30px;height:30px;border-radius:50%;border:8px solid var(--nuit);background:#fff;margin-top:4px}
.ligne-grille{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start}
.croisement-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
.ligne-liste h2,.croisement-liste h2{margin-top:0}
.cote-carte{position:sticky;top:calc(var(--tete) + 16px)}
.leaflet-box{width:100%;height:520px;border:1px solid var(--filet);border-radius:var(--r);background:#E7F0F7}
.carte-haute{height:min(620px,calc(100svh - var(--tete) - 90px));min-height:360px}
.legende-carte{font-size:.84rem;color:var(--doux);margin:8px 0 0}
@media(max-width:980px){.ligne-grille,.croisement-grille{grid-template-columns:1fr}.cote-carte{position:static}.leaflet-box{height:360px}.carte-haute{height:380px}}
.fiche-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
@media(max-width:980px){.fiche-grille{grid-template-columns:1fr}}
.carte-fiche-bloc,.fiche-carte .leaflet-box{height:420px}
.donnees{display:grid;grid-template-columns:170px 1fr;gap:0;margin:0;background:#fff;border:1px solid var(--filet);border-radius:var(--r)}
.donnees dt,.donnees dd{margin:0;padding:12px 16px;border-bottom:1px solid var(--filet)}
.donnees dt{font-weight:700;color:var(--doux);font-size:.92rem}
.donnees dt:last-of-type,.donnees dd:last-of-type{border-bottom:0}
.donnees dd{overflow-wrap:anywhere}
.cite{display:block;font-size:.84rem;color:var(--doux);margin-top:4px}
@media(max-width:560px){.donnees{grid-template-columns:1fr}.donnees dt{border-bottom:0;padding-bottom:0}}
.actions{margin:18px 0 0}
.leaflet-container{font-family:var(--txt)}
.mmx-pin{display:block;width:18px;height:18px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 1px 4px rgba(16,34,58,.55)}
.mmx-pin.secteur{background:#fff;border:3px solid var(--c)}
.mmx-pin::after{content:"";display:none}
.leaflet-popup-content a{font-weight:700}

/* ---- saisons ---- */
.saisons-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:22px 0}
.saison-carte{display:flex;flex-direction:column;border-radius:var(--r);padding:20px 20px 16px;text-decoration:none;color:#fff;background:var(--nuit);min-height:120px;justify-content:flex-end}
.saison-carte b{font:700 2rem/1 var(--tit)}.saison-carte em{font-style:normal;opacity:.92}
.saison-hiver{background:#1B4F7C}.saison-ete{background:#8A5A00}.saison-printemps{background:#1B6B45}.saison-automne{background:#8E3512}
.saison-carte:hover{color:#fff;filter:brightness(1.12)}

/* ---- guide patinoires ---- */
.glace-tete{margin-bottom:12px}
.glace-q{margin:26px 0 6px;font-size:1.35rem}.glace-q a{color:var(--nuit);text-decoration:none}
.glace-ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.glace-ul li{display:flex;flex-wrap:wrap;gap:2px 12px;align-items:baseline;background:#fff;border:1px solid var(--filet);border-left:5px solid var(--glace);border-radius:var(--r);padding:10px 14px}
.glace-ul li>a:first-child{font-weight:700;text-decoration:none}
.glace-ul span{color:var(--doux);font-size:.9rem;flex:1 1 100%}.glace-off{font-size:.88rem}
.slot-pub{margin:22px 0;min-height:96px;border:2px dashed #B9C8D8;border-radius:var(--r);display:flex;align-items:center;justify-content:center;color:var(--doux);font-size:.85rem;background:repeating-linear-gradient(135deg,#fff 0 12px,#F3F7FA 12px 24px)}

/* ---- recherche ---- */
.recherche{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:14px;box-shadow:inset 0 0 0 3px #fff,inset 0 0 0 4px var(--filet)}
.rc-champ{display:flex;flex-direction:column;gap:4px;min-width:0}
.rc-champ label{font-weight:700;font-size:.85rem}
.recherche input{width:100%;font:inherit;padding:11px 12px;border:1.5px solid #B7C5D4;border-radius:var(--r);background:var(--neige);color:var(--nuit)}
.recherche input:focus{outline:3px solid var(--glace);border-color:var(--glace);background:#fff}
.recherche .bouton{height:46px}
@media(max-width:700px){.recherche{grid-template-columns:1fr}}
.vide{background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:26px;margin-top:20px}

/* ---- FAQ, encadrés ---- */
.faq{margin:36px 0 0}
.faq details{background:#fff;border:1px solid var(--filet);border-radius:var(--r);margin:0 0 8px;padding:0 16px}
.faq summary{cursor:pointer;font-weight:700;padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::after{content:"+";font-size:1.4rem;line-height:1;color:var(--rouge)}
.faq details[open] summary::after{content:"–"}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:0 0 14px;color:#26384F}
.etapes ol,.trois-etapes{counter-reset:e;list-style:none;padding:0;margin:26px 0;display:grid;gap:12px}
.etapes li,.trois-etapes li{counter-increment:e;background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:14px 16px 14px 62px;position:relative}
.etapes li::before,.trois-etapes li::before{content:counter(e);position:absolute;left:14px;top:12px;width:34px;height:34px;border-radius:50%;background:var(--nuit);color:#fff;font:700 1.2rem/34px var(--tit);text-align:center}

/* ---- contact ---- */
.contact-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;align-items:start;margin-top:24px}
@media(max-width:900px){.contact-grille{grid-template-columns:1fr}}
.formulaire-carte{background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:22px;display:flex;flex-direction:column;gap:8px}
.champ{font-weight:700;font-size:.9rem;margin-top:6px}
.formulaire-carte input[type=email],.formulaire-carte select,.formulaire-carte textarea,.etape input[type=email],.etape textarea{width:100%;font:inherit;padding:11px 12px;border:1.5px solid #B7C5D4;border-radius:var(--r);background:var(--neige);color:var(--nuit)}
.case{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;margin-top:8px}.case input{margin-top:4px;width:18px;height:18px;flex:none}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.erreur{color:#A00E27;font-weight:600;margin:6px 0}
.merci-ligne{background:#E5F4EC;border-radius:var(--r);padding:12px 14px}

/* ---- tunnel (4 étapes, tout dans l'écran) ---- */
body.page-tunnel{height:100svh;overflow:hidden}
.page-tunnel main{display:flex;min-height:0}
.tunnel{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;max-width:1280px;width:100%;margin:0 auto;padding:18px 20px 22px;min-height:0}
.tunnel-carte{background:#fff;border:1px solid var(--filet);border-radius:12px;padding:18px 22px 20px;display:flex;flex-direction:column;min-height:0;max-height:calc(88svh - var(--tete) + 40px);align-self:stretch;box-shadow:0 18px 40px -28px rgba(16,34,58,.55)}
.etapes-pastilles{list-style:none;display:flex;gap:8px;margin:0 0 10px;padding:0;flex-wrap:wrap}
.etapes-pastilles li{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:.85rem;color:#4A5B70;padding:4px 10px 4px 4px;border-radius:999px;background:#EEF3F8}
.etapes-pastilles span{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#C9D6E3;color:var(--nuit);font-size:.8rem}
.etapes-pastilles li.on{background:var(--nuit);color:#fff}.etapes-pastilles li.on span{background:var(--rouge);color:#fff}
.etapes-pastilles li.fait span{background:var(--vert);color:#fff}
.tunnel-barre{height:5px;background:#E3EBF3;border-radius:3px;margin-bottom:14px;overflow:hidden}.tunnel-barre i{display:block;height:100%;width:25%;background:linear-gradient(90deg,var(--rouge),var(--ambre));transition:width .3s}
#tunnel{flex:1;display:flex;flex-direction:column;min-height:0}
.etape{display:none;border:0;padding:0;margin:0;min-width:0;flex:1;min-height:0;flex-direction:column}
.etape.on{display:flex}
.etape legend{font:700 clamp(1.6rem,3.2vw,2.4rem)/1.1 var(--tit);padding:0;margin-bottom:12px;float:left;width:100%}
.etape legend+*{clear:both}
.tuiles{flex:1;display:grid;gap:10px;min-height:0;grid-auto-rows:minmax(54px,1fr)}
.tuiles-sports{grid-template-columns:repeat(4,1fr)}.tuiles-q{grid-template-columns:repeat(4,1fr)}.tuiles-3{grid-template-columns:repeat(2,1fr)}
.tuile{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:3px;padding:10px 12px 10px 20px;background:var(--neige);border:2px solid #CBD8E5;border-radius:var(--r);cursor:pointer;font:inherit;color:var(--nuit);text-align:left;overflow:hidden;min-width:0}
.tuile>i{position:absolute;left:0;top:0;bottom:0;width:8px;background:var(--c,var(--nuit))}
.tuile b{font:700 clamp(1.05rem,1.7vw,1.35rem)/1.1 var(--tit)}
.tuile em{font-style:normal;font-size:.85rem;color:var(--doux)}
.tuile input{position:absolute;opacity:0;pointer-events:none}
.tuile:hover,.tuile:has(input:checked){border-color:var(--nuit);background:#fff}
.tuile:has(input:checked)::after{content:"✓";position:absolute;right:10px;top:8px;color:var(--vert);font-weight:800}
.tuile-q{padding-left:14px}
.tuile-gros b{font-size:clamp(1.4rem,2.6vw,2rem)}
.etape-pied{margin-top:auto;padding-top:10px}
.etape .champ{margin-top:8px}
.etape textarea{resize:none}
.retour{align-self:flex-start;margin-top:8px;background:none;border:0;color:var(--lien);font:inherit;font-weight:700;cursor:pointer;text-decoration:underline;padding:4px 0}
.merci{margin:auto 0}.merci h2{font-size:2.2rem}
.tunnel-cote{background:var(--nuit);color:#DCE6F0;border-radius:12px;padding:22px;display:flex;flex-direction:column;gap:10px;min-height:0;overflow:hidden}
.tunnel-cote h2{color:#fff;font-size:1.6rem;margin:6px 0 0}.tunnel-cote ul{margin:0;padding-left:1.1em;font-size:.95rem}.tunnel-cote li{margin-bottom:8px}
.tc-plan{background:#fff;border-radius:var(--r);padding:8px;max-height:230px;overflow:hidden}.tc-plan svg{max-height:210px}
@media(max-width:900px){.tunnel{grid-template-columns:1fr;padding:10px 12px 12px}.tunnel-cote{display:none}.tunnel-carte{padding:14px 14px 14px;max-height:none}.tuiles-sports,.tuiles-q{grid-template-columns:repeat(3,1fr)}.tuiles-3{grid-template-columns:repeat(2,1fr)}.etape legend{font-size:1.5rem}.tuile{padding:6px 8px 6px 14px}.tuile b{font-size:1rem}.tuile-q{padding-left:8px}.etapes-pastilles{gap:5px}.etapes-pastilles li{font-size:.72rem;padding-right:8px}.etapes-pastilles span{width:20px;height:20px;font-size:.7rem}}
@media(max-width:900px) and (max-height:760px){.etapes-pastilles li:not(.on){display:none}.tunnel-barre{margin-bottom:8px}}

/* ---- carnet / articles ---- */
.page-carnet{padding-top:20px}
.defile{overflow:hidden;border-block:1px solid var(--filet);background:#fff;margin:6px 0 24px;white-space:nowrap}
.defile-in{display:inline-flex;gap:34px;padding:10px 0;animation:defile 70s linear infinite}
.defile a{color:var(--nuit);font-weight:700;text-decoration:none;font-size:.95rem}.defile a::before{content:"●";color:var(--rouge);margin-right:10px}
@keyframes defile{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.defile-in{animation:none}.defile{overflow-x:auto}}
.rubriques{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 26px;padding:0}
.rubriques a{display:inline-flex;gap:8px;align-items:center;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--filet);color:var(--nuit);text-decoration:none;font-weight:700;font-size:.93rem}
.rubriques a[aria-current],.rubriques a:hover{background:var(--nuit);color:#fff}
.rubriques b{font-weight:700;opacity:.8;font-size:.82rem}
.art-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}
.art-grille-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.art-carte{background:#fff;border:1px solid var(--filet);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.ac-img{display:block;aspect-ratio:3/2;background:#DCE6F0;overflow:hidden}.ac-img img{width:100%;height:100%;object-fit:cover;display:block}
.ac-texte{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.ac-rubrique{align-self:flex-start;font:700 .8rem/1 var(--txt);background:#E7F0F7;color:#12304F;padding:5px 10px;border-radius:999px;text-decoration:none}
.art-carte h3{font-size:1.3rem;margin:0}.art-carte h3 a{color:var(--nuit);text-decoration:none}.art-carte h3 a:hover{text-decoration:underline}
.art-carte p{margin:0;font-size:.95rem;color:#26384F}.ac-meta{font-size:.84rem!important;color:var(--doux)!important;margin-top:auto!important;padding-top:6px!important}
.une{margin-bottom:22px}
.art-carte-grande{flex-direction:row}.art-carte-grande .ac-img{flex:1.25;aspect-ratio:auto;min-height:300px}.art-carte-grande .ac-texte{flex:1;justify-content:center;padding:26px}.art-carte-grande h3{font-size:2.1rem}
@media(max-width:800px){.art-carte-grande{flex-direction:column}.art-carte-grande .ac-img{min-height:0;aspect-ratio:3/2}}
.pagination{display:flex;gap:6px;margin:30px 0 0;flex-wrap:wrap}.pagination a,.pagination span{min-width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r);border:1px solid var(--filet);background:#fff;color:var(--nuit);text-decoration:none;font-weight:700}.pagination span{background:var(--nuit);color:#fff}
.article{max-width:1280px;margin:0 auto;padding:0 20px}
.art-tete{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;align-items:center;padding:26px 0 30px;min-height:300px}
.art-tete-texte h1{font-size:clamp(2rem,3.8vw,3.2rem)}
.art-tete-img{margin:0;border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;background:#DCE6F0}.art-tete-img img{width:100%;height:100%;object-fit:cover;display:block}
.art-tete-plan{padding:16px;background:#fff;border:1px solid var(--filet)}
.art-meta{font-size:.92rem;color:var(--doux)}.auteur-ligne{display:inline-flex;align-items:center;gap:8px;color:var(--nuit);font-weight:700;text-decoration:none;vertical-align:middle}
.portrait{width:48px;height:48px;border-radius:50%;object-fit:cover;aspect-ratio:1/1;flex:none;background:#DCE6F0;display:block}
.portrait-s{width:34px;height:34px}.portrait-l{width:112px;height:112px}.portrait-xl{width:132px;height:132px}
@media(max-width:860px){.art-tete{grid-template-columns:1fr;gap:18px;padding-top:14px}}
.art-grille-page,.article .art-grille:first-of-type{}
.article>.art-grille{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:44px;align-items:start}
.art-texte{min-width:0;margin-top:0;max-width:none;font-size:1.06rem;line-height:1.72}
.art-texte p,.art-texte li{max-width:none}
.art-texte h2{margin-top:1.7em;scroll-margin-top:90px}
.art-texte figure{margin:1.6em 0}.art-texte figure img{width:100%;height:auto;border-radius:var(--r);display:block}
.art-texte figcaption{font-size:.84rem;color:var(--doux);margin-top:6px}
.art-texte a{overflow-wrap:anywhere}
.art-cote{min-width:0;display:flex;flex-direction:column;gap:18px;align-self:stretch}
.parcours{background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:16px 16px 12px}
.parcours-titre{font:700 1.15rem/1 var(--tit);margin:0 0 12px}
.parcours ol{list-style:none;margin:0;padding:0 0 0 22px;position:relative}
.parcours ol::before{content:"";position:absolute;left:8px;top:8px;bottom:8px;width:5px;border-radius:3px;background:var(--rouge)}
.parcours li{position:relative;padding:5px 0}.parcours li::before{content:"";position:absolute;left:-19px;top:11px;width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid var(--nuit)}
.parcours a{display:block;color:var(--nuit);text-decoration:none;font-size:.9rem;font-weight:600;line-height:1.3}.parcours a span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.parcours a:hover{color:var(--rouge)}
.cote-boite{background:var(--nuit);color:#DCE6F0;border-radius:var(--r);padding:18px;position:sticky;top:96px}
.cote-boite b{display:block;font:700 1.4rem/1.1 var(--tit);color:#fff;margin-bottom:6px}.cote-boite p{font-size:.92rem}
.cote-boite .recherche{grid-template-columns:1fr;padding:10px;gap:8px;box-shadow:none}.cote-boite .rc-champ label{color:var(--nuit)}
.art-cote.colle-tout{position:sticky;top:96px;align-self:start}.art-cote.colle-tout .cote-boite{position:static}
@media(max-width:980px){.article>.art-grille{grid-template-columns:minmax(0,1fr);gap:24px}.parcours{display:none}.cote-boite{position:static}.art-cote{align-self:auto}}
.saviez{background:#FFF6D8;border-left:6px solid var(--ambre);border-radius:var(--r);padding:16px 20px;margin:1.6em 0}
.saviez b{font:700 1.3rem/1 var(--tit);display:block;margin-bottom:6px;color:var(--nuit)}.saviez p{margin:0}
.art-texte ul.sb-sources,.art-texte .sbsrc-de7ecce7__liste,ul.src-liste{list-style:none;padding:0;margin:14px 0;display:grid;gap:10px}
.src-carte,.art-texte .sbsrc-de7ecce7__item{display:block;background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:0;margin:0}
.src-carte a,.art-texte .sbsrc-de7ecce7__lien{display:flex;flex-direction:column;gap:3px;padding:12px 16px;text-decoration:none;color:var(--nuit);font-weight:700}
.src-dom{font-size:.82rem;color:var(--lien);font-weight:600}
.src-carte a:hover{background:#F0F6FB}
.sbsrc-de7ecce7{margin:1.4em 0}.sbsrc-de7ecce7__date{display:none}
.art-texte table{border-collapse:collapse;display:block;overflow-x:auto;max-width:100%}.art-texte td,.art-texte th{border:1px solid var(--filet);padding:8px 10px}
.auteur-fin{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:18px;margin-top:40px}
.auteur-fin b a{color:var(--nuit)}.auteur-fin span{display:block;color:var(--doux);font-size:.9rem}.auteur-fin p{margin:6px 0 0;font-size:.94rem}
.faq-art{margin-top:40px}
.equipe{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;margin:24px 0}
.equipe-carte{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;background:#fff;border:1px solid var(--filet);border-radius:var(--r);padding:24px 16px;text-decoration:none;color:var(--nuit)}
.equipe-carte b{font:700 1.5rem/1.1 var(--tit);margin-top:8px}.equipe-carte em{font-style:normal;font-weight:600}.equipe-carte small,.equipe-carte span{color:var(--doux)}
.auteur-tete{display:flex;gap:26px;align-items:center;margin-bottom:28px}
@media(max-width:600px){.auteur-tete{flex-direction:column;text-align:center}}
.page-legale{padding-bottom:30px}
.page-404{text-align:left}

.heros .recherche{grid-template-columns:1fr 1fr}.heros .recherche .bouton{grid-column:1/-1;height:48px}
@media(max-width:700px){.heros .recherche{grid-template-columns:1fr}}
.tunnel-cote{justify-content:space-between}.tc-plan{max-height:none;padding:12px}.tc-plan svg{max-height:none}
