.bloc-parcours{margin:32px 0}
.parcours-entete h2{margin:0 0 6px}
.parcours-resume{margin:0 0 12px;color:var(--encre-2)}.parcours-resume b{color:var(--encre)}
.parcours-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 10px}.parcours-actions .bouton{margin:0}
.parcours-diapos{display:grid;grid-auto-flow:column;grid-auto-columns:min(86%,520px);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;list-style:none;margin:16px 0;padding:0 0 14px;overscroll-behavior-x:contain}
.parcours-diapo{scroll-snap-align:start;display:flex;flex-direction:column;border:1px solid var(--ligne);border-top:4px solid var(--u,var(--stout));background:var(--papier)}
.parcours-photo{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;background:var(--malt)}
.parcours-texte{padding:16px 18px 18px}
.parcours-texte h3{margin:6px 0 2px;font-size:22px;line-height:1.2}
.parcours-km{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;font-family:var(--titre);font-size:14px;font-weight:700}
.parcours-km small{font-weight:400;color:var(--encre-2)}
.parcours-numero{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 6px;border-radius:15px;background:var(--c,var(--stout));color:#fff;font-family:var(--titre);font-weight:700;font-size:15px}
.parcours-type{margin:0 0 10px;color:var(--encre-2);font-size:15px}
.parcours-adresse{font-size:15px;color:var(--encre-2)}
.parcours-partenaire{font-size:15px;padding:8px 10px;background:var(--malt)}
.parcours-lies{margin:8px 0;padding-left:18px;font-size:15px}
.parcours-carte .carte-geo-canevas{height:0}.parcours-carte.carte-geo-chargee .carte-geo-canevas{height:380px}
.parcours-description p{margin:0 0 10px}.parcours-description :last-child{margin-bottom:0}
.parcours-contenus{margin:18px 0}.parcours-lie{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:6px 0;font-weight:400}.parcours-lie input{width:auto;margin:0}.parcours-lie small{color:var(--encre-2)}
.parcours-offre{max-width:680px;margin:40px auto;padding:0 16px}

.route{min-height:calc(100vh - 120px);padding:16px;background:#111;color:#fff;font-size:18px}
.route a{color:#fff}
.route h1{font-size:clamp(24px,6vw,34px);line-height:1.15;margin:8px 0 14px}
.route-avis{max-width:640px;color:#d8d4cc}
.route-voix{display:flex;align-items:center;gap:10px;margin:16px 0;font-size:20px}.route-voix input{width:28px;height:28px}
.route-gestes{display:flex;flex-wrap:wrap;gap:12px;margin:16px 0}.route-gestes .bouton{margin:0}
.route .bouton-ligne{color:#fff;border-color:#fff;background:transparent}
.route-grand{font-size:22px;padding:18px 28px;min-width:220px}
.route-etat{margin:0 0 18px;color:#d8d4cc}
.route-prochaine{display:flex;flex-direction:column;gap:4px;margin:0 0 20px}
.route-prochaine small{text-transform:uppercase;letter-spacing:.08em;font-size:14px;color:#d8d4cc}
.route-prochaine b{font-size:clamp(30px,8vw,48px);line-height:1.1}
.route-prochaine span{font-size:clamp(22px,5vw,30px);color:var(--or)}
.route-etapes{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid #444}
.route-etapes li{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid #333}
.route-etapes li small{margin-left:auto;color:#aaa;font-size:15px}
.route-etapes li.route-atteinte{opacity:.5}.route-etapes li.route-atteinte .route-etape-nom{text-decoration:line-through}
.route-etapes li.route-annoncee .route-etape-nom{color:var(--or);font-weight:700}
.route-etapes li.route-courante{outline:2px solid var(--or);outline-offset:4px}

.route-aide-passager{color:#aaa}
.route-video{margin-left:auto;background:none;border:1px solid #555;color:#fff;padding:6px 12px;font-size:15px;cursor:pointer}
.route-passager{background:#111;color:#fff;border:1px solid #444;max-width:min(720px,94vw);width:100%;padding:20px}.route-passager::backdrop{background:rgba(0,0,0,.8)}
.route-video-cadre iframe{width:100%;aspect-ratio:16/9;border:0;display:block;margin-top:12px}
.route-choix-voix{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:20px 0}.route-choix-voix legend{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:#aaa;margin:0 0 8px}
.route-choix-voix label{display:flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid #444;font-size:18px;cursor:pointer;margin:0}.route-choix-voix label:has(input:checked){border-color:var(--or);color:var(--or)}.route-choix-voix small{color:#aaa;font-size:14px}
.route-fin h2{font-size:32px;margin:8px 0}
.route-barre{display:flex;align-items:center;gap:16px;padding:10px 16px;background:#111;border-bottom:1px solid #333}
.route-fermer{color:#fff;font-size:26px;text-decoration:none;line-height:1}
.route-pied{padding:12px 16px;background:#111;color:#aaa;font-size:14px;text-align:center}.route-pied p{margin:0}
@media (max-width:600px){.route-grand{width:100%}}
.parcours-maison{display:grid;gap:8px;margin:12px 0 0;padding:12px 0 0;border-top:1px solid var(--ligne)}.parcours-maison form{margin:0}.parcours-maison-etat{margin:0;flex:1 1 100%;font-size:var(--taille-2)}

.parcours-creer{display:flex;flex-wrap:wrap;gap:8px;margin:0}
.parcours-etat{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:12px;margin:0 0 28px}
.parcours-tuile{background:var(--blanc);border:1px solid var(--ligne);border-top:3px solid var(--ligne-forte);padding:12px 16px;margin:0}
.parcours-tuile-active{border-top-color:var(--or)}
.parcours-tuile h2{font-size:var(--taille-1);letter-spacing:.06em;text-transform:uppercase;color:var(--encre-2);margin:0 0 4px}
.parcours-tuile-valeur{font-size:var(--taille-5);font-weight:700;margin:0 0 8px}
.parcours-tuile .aide{margin:8px 0 0}
.parcours-code-champ{display:flex;gap:8px;margin:0}
.parcours-code-champ input{width:7ch;text-align:center;font-size:var(--taille-4);letter-spacing:.3em;font-variant-numeric:tabular-nums}
.parcours-section{margin:0 0 32px}
.parcours-section > h2{display:flex;align-items:baseline;gap:8px;margin:0 0 12px}
.parcours-section > h2 small{font-size:var(--taille-2);color:var(--encre-2);font-weight:400}
.parcours-carte-admin{background:var(--blanc);border:1px solid var(--ligne);border-left:3px solid var(--or);padding:14px 16px;margin:0 0 12px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 24px;align-items:center}
.parcours-carte-tete{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.parcours-carte-tete h3{font-size:var(--taille-5);margin:0}
.parcours-carte-tete h3 a{color:inherit;text-decoration:none}
.parcours-carte-tete h3 a:hover{text-decoration:underline}
.parcours-bilan{grid-column:1;display:flex;flex-wrap:wrap;gap:4px 18px;list-style:none;margin:0;padding:0;font-size:var(--taille-2);color:var(--encre-2)}
.parcours-bilan b{color:var(--encre);font-variant-numeric:tabular-nums}
.parcours-a-faire,.parcours-a-faire b{color:var(--danger-fonce)}
.parcours-gestes{grid-column:2;grid-row:1 / span 2;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;margin:0}
.parcours-gestes .bouton{padding:8px 14px;font-size:var(--taille-2)}
.parcours-vide{background:var(--blanc);border:1px dashed var(--ligne-forte);padding:18px 16px;margin:0}
.parcours-points td{vertical-align:top}
.parcours-filtre{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.parcours-filtre input[type=search]{flex:1 1 220px;min-width:0}.parcours-filtre select{width:auto}
.parcours-point-type{display:inline-flex;align-items:center;gap:6px;color:var(--encre-2)}
.parcours-point-type i{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}
.parcours-place{color:var(--encre-2)}
@media (max-width:899px){.parcours-etat{grid-template-columns:1fr}.parcours-carte-admin{grid-template-columns:1fr}.parcours-gestes{grid-column:1;grid-row:auto;justify-content:flex-start}}

.route-en-cours{padding-bottom:calc(118px + env(safe-area-inset-bottom))}
.route-etat{display:inline-flex;align-items:center;gap:8px;margin:0 0 14px;font-size:15px;color:#bdb8ae}.route-etat::before{content:"";width:9px;height:9px;border-radius:50%;background:#3fbf6f;box-shadow:0 0 0 4px rgba(63,191,111,.18)}
.route-destination{background:linear-gradient(160deg,#1f1f1f,#161616);border:1px solid #2a2a2a;border-left:6px solid var(--c,var(--or));padding:18px 18px 16px;margin:0 0 16px}
.route-rang{display:flex;align-items:center;gap:10px;margin:0 0 8px}
.route-numero{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--c,var(--or));color:#111;font-family:var(--titre);font-weight:800;font-size:17px;flex:none}
.route-rang small{font-family:var(--titre);text-transform:uppercase;letter-spacing:.08em;font-size:13px;color:#bdb8ae}
.route-destination h2{font-size:clamp(26px,7vw,40px);line-height:1.1;margin:2px 0 6px}
.route-detail{margin:0 0 14px;color:#bdb8ae;font-size:16px}
.route-distance{display:flex;align-items:baseline;gap:8px;margin:0 0 16px}.route-distance b{font-family:var(--titre);font-size:clamp(36px,11vw,56px);line-height:1;color:var(--or)}.route-distance small{color:#bdb8ae;font-size:14px}
.route-progression{display:flex;gap:4px;list-style:none;margin:0;padding:0}.route-progression li{flex:1;height:5px;background:#333}.route-progression li.fait{background:var(--or)}.route-progression li.ici{background:#fff}
.route-lecture{background:#191919;border:1px solid #2a2a2a;padding:16px 18px;margin:0 0 16px}.route-lecture h3{font-family:var(--titre);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--or);margin:0 0 8px}
.route-lecture p{font-size:19px;line-height:1.6;margin:0;color:#ece9e2;white-space:pre-line}
.route-aide-passager{color:#8f8a80;font-size:15px}
.route-menu{position:fixed;left:0;right:0;bottom:0;z-index:48;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;background:var(--stout,#111);border-top:1px solid #2a2a2a;color:#fff;padding:0 4px env(safe-area-inset-bottom)}
.route-menu button,.route-menu a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 2px 9px;margin:0;font-family:var(--titre);font-size:11px;font-weight:600;letter-spacing:.03em;color:#fff;background:none;border:0;text-decoration:none;cursor:pointer;opacity:.85}
.route-menu button:disabled{opacity:.3;cursor:default}.route-menu svg{width:26px;height:26px}
.route-menu .route-menu-centre{position:relative;opacity:1;justify-self:center;padding:0 0 9px;gap:6px}
.route-menu .route-menu-centre svg{box-sizing:content-box;width:28px;height:28px;padding:16px;margin-top:-26px;border-radius:50%;background:var(--or);color:#111;box-shadow:0 6px 18px rgba(0,0,0,.55)}
.route-menu .route-menu-centre:disabled svg{background:#555}
@media (min-width:900px){.route-menu{left:50%;right:auto;width:720px;transform:translateX(-50%)}}
body:has(.route) .raccourcis-flottant{display:none}

.route-kicker{font-family:var(--titre);text-transform:uppercase;letter-spacing:.1em;font-size:13px;color:var(--or);margin:4px 0 0}
.route-depart h1{margin:6px 0 8px}
.route-resume{margin:0 0 18px;color:#d8d4cc;font-size:17px}.route-resume b{color:#fff}
.route-carte-info{background:#191919;border:1px solid #2a2a2a;padding:16px 18px;margin:0 0 14px}
.route-carte-info h2{font-family:var(--titre);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--or);margin:0 0 12px}
.route-conseils{list-style:none;margin:0;padding:0;display:grid;gap:14px}.route-conseils li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:start;font-size:16px;line-height:1.5;color:#d8d4cc}
.route-conseils svg{width:24px;height:24px;color:var(--or);margin-top:1px}.route-conseils b{color:#fff}
.route-carte-info .route-voix{margin:0 0 4px;font-size:18px}.route-carte-info .route-choix-voix{margin:12px 0 0}.route-carte-info .route-choix-voix legend{margin-bottom:10px}
.route-gestes-depart{display:grid;gap:10px;margin:18px 0 8px}.route-gestes-depart .bouton{width:100%;min-width:0;text-align:center}
.route-entete{position:sticky;top:0;z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:4px 10px;margin:-16px -16px 14px;padding:12px 16px 10px;background:rgba(17,17,17,.96);border-bottom:1px solid #2a2a2a}
.route-entete p,.route-entete button{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;background:none;border:0;color:#fff;text-align:left;font:inherit;cursor:default}
.route-entete button{cursor:pointer;align-items:flex-start}.route-entete button b{color:var(--or)}
.route-entete small{font-family:var(--titre);text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:#9a958b}
.route-entete b{font-family:var(--titre);font-size:20px;line-height:1.1}
.route-entete .route-progression{grid-column:1 / -1;margin-top:8px}
.route-destination .route-video{margin:14px 0 0;width:100%;padding:12px;border:1px solid #444;background:#111;color:#fff;font-family:var(--titre);font-size:15px;cursor:pointer}
.route-passager.route-video-ouverte{position:fixed;left:0;right:0;width:100%;max-width:none;height:auto;margin:0;padding:0;border:0;background:#000;z-index:47}
.route-passager.route-video-ouverte .route-passager-avis{display:none}
.route-video-fermer{display:none}.route-video-ouverte .route-video-fermer{display:block;position:absolute;top:8px;right:8px;z-index:2;width:40px;height:40px;border:0;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:20px;cursor:pointer}
.route-video-ouverte .route-video-cadre,.route-video-ouverte .route-video-cadre iframe{width:100%;height:100%;margin:0;aspect-ratio:auto}

.route-menu .route-video{margin:0;width:auto;padding:10px 2px 9px;border:0;background:none;font-size:11px}

body:has(.route-en-cours:not([hidden])) .route-barre{display:none}
.route-entete{grid-template-columns:auto repeat(3,1fr);align-items:center;padding-top:calc(12px + env(safe-area-inset-top))}
.route-entete-quitter{display:grid;place-items:center;width:38px;height:38px;margin-right:4px;border:1px solid #3a3a3a;border-radius:50%;color:#fff;text-decoration:none;font-size:18px;line-height:1}
.route .route-entete-quitter{color:#fff}
.route-entete b{white-space:nowrap}

.route-menu-centre .route-son-pause,.route-menu-centre .route-son-reprendre{display:none}.route-menu-centre .route-son-rejouer{display:contents}
.route-menu-centre.joue .route-son-rejouer,.route-menu-centre.pause .route-son-rejouer{display:none}.route-menu-centre.joue .route-son-pause,.route-menu-centre.pause .route-son-reprendre{display:contents}
.route-menu-centre{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}

.route-coups{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}.route-coups .bouton{margin:0;font-size:15px;padding:10px 12px}.route-coups small{opacity:.7}
.route-preuve{display:grid;gap:8px;margin:14px 0 0;padding:14px;background:#111;border:1px solid var(--or)}.route-preuve input{font-size:20px;padding:10px;background:#000;color:#fff;border:1px solid #444}
.route-preuve-refus{color:#ff8a8a;margin:0;min-height:1em}.route-penalite{margin:10px 0 0;color:#ffb36b;font-size:15px}
.route-regle{color:#d8d4cc;font-size:16px;line-height:1.5;margin:0 0 10px}.route-carte-info input[data-route-equipe]{width:100%;font-size:18px;padding:10px;background:#000;color:#fff;border:1px solid #444}

.route [hidden]{display:none!important}
.route-coups small{margin-left:6px}
.route-coups .bouton:disabled{opacity:.4;cursor:default}
.route-fenetre{color:#ffb36b;font-size:16px;margin:0 0 10px}.parcours-classement .route-classement-vous td{color:var(--or);font-weight:700}
.route-destination{position:relative;overflow:hidden}
.route-radar{display:flex;align-items:center;gap:16px;margin:0 0 16px;--rc:#4da3ff;--rd:2.6s}.route-radar[data-palier=tiede]{--rc:#e8c547;--rd:1.6s}.route-radar[data-palier=chaud]{--rc:#ff9a2e;--rd:.95s}.route-radar[data-palier=brulant]{--rc:#ff4d2e;--rd:.5s}
.route-radar svg{width:104px;height:104px;flex:none;overflow:visible}.route-radar p{margin:0}
@keyframes route-onde{from{transform:scale(.18);opacity:.95}to{transform:scale(1);opacity:0}}@keyframes route-coeur{0%,100%{transform:scale(1)}15%{transform:scale(1.3)}}
.route-onde{fill:none;stroke:var(--rc);stroke-width:3;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:route-onde var(--rd) ease-out infinite}.route-onde:nth-child(2){animation-delay:calc(var(--rd) / -3)}.route-onde:nth-child(3){animation-delay:calc(var(--rd) / -1.5)}
.route-coeur{fill:var(--rc);transform-box:fill-box;transform-origin:center;animation:route-coeur var(--rd) ease-in-out infinite;transition:fill .6s}
.route-radar strong{display:block;font-family:var(--titre);font-size:clamp(36px,11vw,56px);line-height:1;color:var(--rc);transition:color .6s}.route-radar span{display:block;min-height:1.3em;color:#bbb;font-size:18px;margin-top:6px}.route-radar span[data-sens=monte]{color:#ffb36b}.route-radar span[data-sens=baisse]{color:#8ec5ff}
.route-fete{position:absolute;inset:0;z-index:3;background:#0b0b0b;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:16px}
.route-fete strong{font-family:var(--titre);font-size:clamp(44px,13vw,68px);color:var(--or);line-height:1}.route-fete b{font-size:24px;color:#fff}.route-fete small{color:#ddd;font-size:17px}
.route-eclat{position:absolute;left:50%;top:50%;width:150px;height:150px;margin:-75px 0 0 -75px;border:3px solid var(--or);border-radius:50%;opacity:0;pointer-events:none}
@keyframes route-eclat{from{transform:scale(.2);opacity:1}to{transform:scale(2.6);opacity:0}}@keyframes route-trouve{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
.route-fete.joue .route-eclat{animation:route-eclat 1.3s ease-out forwards}.route-fete.joue .route-eclat:nth-child(2){animation-delay:.2s}.route-fete.joue .route-eclat:nth-child(3){animation-delay:.4s}.route-fete.joue strong{animation:route-trouve .5s cubic-bezier(.2,1.6,.4,1) both}
@media (prefers-reduced-motion:reduce){.route-onde,.route-coeur,.route-fete.joue .route-eclat,.route-fete.joue strong{animation:none}.route-onde{opacity:.35}}
.route-lies{background:#191919;border:1px solid #2a2a2a;padding:14px 18px;margin:0 0 16px}.route-lies h3{font-family:var(--titre);font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--or);margin:0 0 10px}.route-lies ul{margin:0;padding:0;list-style:none}.route-lies li{border-top:1px solid #2a2a2a}.route-lies li:first-child{border-top:0}.route-lies a{display:block;padding:10px 0;color:#fff;font-size:18px;line-height:1.35;text-decoration:none}.route-lies a::after{content:" ↗";color:var(--or)}
