/* od-pages.css — pages annuaire (liste, ville x spécialité, département, fiche, villes, recherche, contact, sources, tunnel). Agent 2, 23/10/2026.
   Chargé APRÈS od-tokens, od-base, od-home. Remplace l'ancien od.css (sombre) sur les pages annuaire. Préfixes : odp- (pages), odt- (tunnel). */
:root{--odh:76px}
@media (max-width:1100px){:root{--odh:60px}}

/* ── communs ── */
.od-site main{display:block}
.od-site h1,.od-site h2,.od-site h3{text-wrap:balance}
.odp-section{padding:clamp(44px,6vw,80px) 0}
.odp-fond-eau{background:var(--od-eau)}
.od-site .od-fil{font-size:14px;line-height:1.4;color:var(--od-lichen)}
.od-fil ol{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:14px 0 6px}
.od-fil li+li::before{content:"/";margin:0 9px;color:var(--od-celadon)}
.od-fil a{color:var(--od-sarcelle)!important;text-decoration:none}.od-fil a:hover{text-decoration:underline}
.odp-tete{padding:24px 0 clamp(36px,4vw,56px)}
.odp-tete-eau{background:var(--od-eau)}
.odp-tete-in{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:end}
.odp-tete-t{max-width:860px}
.odp-tete h1,.odp-h1{font:400 56px/60px var(--od-titre);margin:18px 0 18px;color:var(--od-encre)}
.odp-chapo{font-size:20px;line-height:1.55;color:var(--od-lichen);margin:0 0 4px;max-width:760px}
.odp-tete .od-rech{margin-top:28px;max-width:860px}
.odp-section h2,.odp-bande h2,.odp-appel p{font:400 40px/46px var(--od-titre)}
.odp-section h2{margin:14px 0 28px}
.odp-note{font-size:14px;line-height:1.55;color:var(--od-lichen);margin:14px 0 0;max-width:880px}
.odp-indep{font-size:14px;line-height:1.55;color:var(--od-lichen);margin:28px 0 0;padding-top:14px;border-top:1px solid var(--od-celadon);max-width:880px}
.odp-indep a,.odp-note a{color:var(--od-sarcelle)}
.odp-plus{margin:24px 0 0;font-weight:600}
.odp-plus a,.odp-lien{color:var(--od-bleu);text-decoration:none;font-weight:600}.odp-plus a:hover,.odp-lien:hover{text-decoration:underline}
.odp-etroit{max-width:880px}
.odp-alerte{background:#FDF1F0;border-left:3px solid var(--od-urgence);color:var(--od-encre);padding:12px 16px;margin:0 0 18px;border-radius:0 var(--od-r) var(--od-r) 0;font-size:15px;line-height:1.5}
.odp-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}
.odp-ok{background:var(--od-eau);padding:16px 20px;border-radius:var(--od-r)}
.odp-piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ── légende de planche numérotée ── */
.odp-leg-liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:64px;border-bottom:1px solid var(--od-celadon)}
.odp-leg-une{grid-template-columns:1fr}
.odp-item{display:grid;grid-template-columns:60px minmax(0,1fr);gap:8px;padding:20px 0;border-top:1px solid var(--od-celadon);transition:background .2s}
.odp-item .od-num{line-height:1.1;padding-top:2px}
.odp-item-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.odp-nom{font:600 18px/1.35 var(--od-texte);color:var(--od-encre)!important;text-decoration:none}.odp-nom:hover{color:var(--od-bleu)!important;text-decoration:underline}
.odp-meta{font-size:14px;line-height:1.4;color:var(--od-lichen)}
.odp-voir{font-size:14px;font-weight:600;text-decoration:none;margin-top:4px}.odp-voir:hover{text-decoration:underline}
.odp-item.est-choisi{background:var(--od-eau);box-shadow:-14px 0 0 var(--od-eau),14px 0 0 var(--od-eau)}
.odp-pagi{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:28px;font:600 16px/1 var(--od-texte)}
.odp-pagi a,.odp-pagi span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 10px;text-decoration:none}
.odp-pagi-n{font:22px/1 var(--od-titre)!important;color:var(--od-sarcelle);border-bottom:2px solid transparent}
.odp-pagi a.odp-pagi-n:hover{border-bottom-color:var(--od-celadon)}
.odp-pagi-n.est-cur{color:var(--od-bleu);border-bottom-color:var(--od-bleu)}
.odp-pagi-pm{color:var(--od-bleu)}
.odp-pagi-sep{color:var(--od-lichen)}

/* ── mini-planche de l'en-tête ── */
.odp-mp{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;min-width:150px}
.odp-mp-trace{height:116px;width:auto}
.odp-mp-n{margin:4px 0 0;font-size:15px;color:var(--od-lichen);display:flex;align-items:baseline;gap:8px}
.odp-mp-n .od-num{font-size:36px}
.odp-mp-lien{font-size:14px;font-weight:600;text-decoration:none}

/* ── carte Leaflet ── */
.odp-carte-sec{background:#fff;padding-top:clamp(32px,4vw,56px)}
.odp-liste-sec{padding-top:8px}
.odp-carte-cadre{background:var(--od-eau);border-radius:var(--od-rc);padding:12px}
#odp-carte{height:460px;border-radius:8px;background:var(--od-eau);z-index:1;font-family:var(--od-texte)}
.odp-carte-ns{padding:24px;margin:0;color:var(--od-lichen)}
.leaflet-tile-pane{filter:grayscale(.55) sepia(.12) brightness(1.04) contrast(.95)}
.leaflet-container a{color:var(--od-bleu)}
.leaflet-control-attribution{font-size:11px}
.odp-pin{background:none;border:0}
.odp-pin span{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--od-bleu);color:#fff;font:16px/1 var(--od-titre);border:2px solid #fff;box-shadow:0 1px 5px rgba(14,42,44,.4);transition:transform .15s}
.odp-pin:hover span,.odp-pin.est-allume span{transform:scale(1.25);background:var(--od-bleu-h)}
.odp-pin.est-allume::after{content:"";position:absolute;left:-2px;top:-2px;width:34px;height:34px;border-radius:50%;border:2px solid var(--od-bleu);animation:odp-pulse .9s ease-out}
.odp-pin-seul span{width:22px;height:22px;margin:4px}.odp-pin-point{width:8px;height:8px;border-radius:50%;background:#fff;display:block}
@keyframes odp-pulse{from{transform:scale(.8);opacity:1}to{transform:scale(1.8);opacity:0}}
.leaflet-popup-content-wrapper{border-radius:var(--od-rc);box-shadow:0 8px 24px rgba(14,42,44,.18)}
.leaflet-popup-content{margin:14px 16px;font-family:var(--od-texte)}
.odp-pop-n{margin:0;font:22px/1 var(--od-titre);color:var(--od-bleu)}.odp-pop-n:empty{display:none}
.odp-pop-t{margin:2px 0 0!important;font-weight:600;font-size:16px;color:var(--od-encre)}
.odp-pop-c{margin:0!important;font-size:14px;color:var(--od-lichen)}
.odp-pop-l{display:inline-block;margin-top:8px;font-weight:600;font-size:14px;text-decoration:none}

/* ── communes voisines ── */
.odp-voisines{background:var(--od-eau)}
.odp-voisines-in{display:block}
.odp-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.odp-tag{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 16px;background:#fff;border:1px solid var(--od-celadon);border-radius:var(--od-r);color:var(--od-encre)!important;text-decoration:none;font-weight:500;font-size:16px}
.odp-tag small{font:16px/1 var(--od-titre);color:var(--od-bleu)}
.odp-tag:hover{border-color:var(--od-bleu)}
.odp-voisines-carte .od-cd{max-height:380px;margin:0 auto}
.od-pt.est-allume .od-pt-dot{transform:scale(1.7)}
.odp-vil{background:none;border:0}
.odp-vil span{display:block;width:16px;height:16px;margin:1px;box-sizing:border-box;border-radius:50%;background:#fff;border:2.5px solid var(--od-sarcelle);box-shadow:0 1px 3px rgba(14,42,44,.35);transition:transform .15s}
.odp-vil:hover span,.odp-vil.est-allume span{transform:scale(1.5);background:var(--od-eau);border-color:var(--od-bleu)}
.odp-elargir{font:600 14px/1 var(--od-texte);color:var(--od-bleu);background:#fff;border:1px solid var(--od-celadon);border-radius:var(--od-r);min-height:44px;padding:0 14px;cursor:pointer;box-shadow:0 2px 8px rgba(14,42,44,.15)}
.odp-elargir:hover{border-color:var(--od-bleu)}
.odp-voisines .odp-note{margin-top:18px}

/* ── dossiers + appel ── */
.odp-dossiers{padding:clamp(44px,6vw,80px) 0}
.odp-dossiers h2{margin:14px 0 28px}
.odp-dossiers-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px}
.odp-appel{background:var(--od-bleu);color:#fff;padding:36px 0}
.odp-appel-in{display:flex;align-items:center;justify-content:space-between;gap:24px}
.odp-appel p{margin:0;color:#fff;max-width:720px;font-size:32px;line-height:38px}
.odp-appel .od-btn{background:#fff;color:var(--od-bleu)!important;flex:none}
.odp-appel .od-btn:hover{background:var(--od-eau)}
.odp-appel .odh-pt{background:var(--od-bleu);box-shadow:0 0 0 2px rgba(30,71,200,.25)}

/* ── département ── */
.odp-terr-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:start}
.odp-cd-grand{max-height:560px;margin:8px auto 0}
.odp-chiffres-g{display:flex;flex-wrap:wrap;gap:24px;align-items:center;margin-bottom:28px}
.odp-anneau{width:200px;height:200px;flex:none}
.odp-arc{fill:none;stroke-width:26}.odp-arc-fond{fill:none;stroke:var(--od-eau);stroke-width:26}
.odp-arc.odp-c-lib{stroke:var(--od-bleu)}.odp-arc.odp-c-sal{stroke:var(--od-sarcelle)}.odp-arc.odp-c-mix{stroke:var(--od-celadon)}
.odp-an-n{font:400 44px var(--od-titre);fill:var(--od-encre)}.odp-an-l{font:600 10px var(--od-texte);letter-spacing:.14em;text-transform:uppercase;fill:var(--od-lichen)}
.odp-anneau-leg{list-style:none;margin:0;padding:0;display:grid;gap:10px;flex:1;min-width:210px}
.odp-leg-carte{display:flex;align-items:center;gap:14px;padding:12px 16px;border:1px solid var(--od-celadon);border-radius:var(--od-rc);background:#fff}
.odp-leg-carte b{display:block;font-weight:600;font-size:16px;line-height:1.3}.odp-leg-carte span:not(.odp-leg-pastille){font-size:14px;color:var(--od-lichen)}
.odp-leg-pastille{width:14px;height:34px;border-radius:3px;flex:none;box-shadow:inset 0 0 0 1px var(--od-sarcelle)}
.odp-leg-carte.odp-c-lib .odp-leg-pastille{background:var(--od-bleu);box-shadow:none}
.odp-leg-carte.odp-c-sal .odp-leg-pastille{background:var(--od-sarcelle);box-shadow:none}
.odp-leg-carte.odp-c-mix .odp-leg-pastille{background:var(--od-celadon)}
.odp-chiffres-leg{list-style:none;margin:0;padding:0}
.odp-chiffres-leg li{display:grid;grid-template-columns:56px 1fr;align-items:center;padding:14px 0;border-top:1px solid var(--od-celadon)}
.odp-chiffres-leg li:last-child{border-bottom:1px solid var(--od-celadon)}
.odp-chiffres-leg b{font:400 26px/1 var(--od-titre)}
.odp-cartes-villes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.odp-cv{display:flex;align-items:center;justify-content:space-between;gap:16px;height:100%;box-sizing:border-box;padding:22px 22px 22px 26px;border:1px solid var(--od-celadon);border-radius:var(--od-rc);text-decoration:none;color:var(--od-encre)!important;transition:background .2s,border-color .2s}
.odp-cv:hover{background:var(--od-eau);border-color:var(--od-sarcelle)}
.odp-cv-t{display:flex;flex-direction:column;gap:2px}
.odp-cv-nom{font:400 26px/32px var(--od-titre)}.odp-cv-n{font-size:15px;color:var(--od-lichen)}
.odp-cv-voir{margin-top:10px;font-size:14px;font-weight:600;color:var(--od-bleu)}
.odp-cv .od-mini{width:76px;height:76px;flex:none}
.odp-petites{margin-top:28px;font-size:16px;color:var(--od-lichen)}.odp-petites p{margin:0}
.odp-dep-voisins,.odp-cartes-dep{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.odp-cartes-dep-tous{grid-template-columns:repeat(4,minmax(0,1fr))}
.odp-dep-voisins a,.odp-cartes-dep a{display:flex;align-items:center;gap:16px;padding:14px 18px;border:1px solid var(--od-celadon);border-radius:var(--od-rc);background:#fff;text-decoration:none;color:var(--od-encre)!important;transition:border-color .2s}
.odp-dep-voisins a:hover,.odp-cartes-dep a:hover{border-color:var(--od-bleu)}
.odp-dep-voisins .od-mini,.odp-cartes-dep .od-mini{width:52px;height:52px;flex:none}
.odp-dep-voisins b,.odp-cartes-dep b{display:block;font:400 22px/26px var(--od-titre)}.odp-dep-voisins small,.odp-cartes-dep small{font-size:14px;color:var(--od-lichen)}

/* ── hub liste / villes ── */
.odp-france-in{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px;align-items:start}
.odp-cf{max-width:760px}
.odp-top{list-style:none;margin:16px 0 0;padding:0}
.odp-top li{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:6px;padding:12px 0;border-top:1px solid var(--od-celadon)}
.odp-top li:last-child{border-bottom:1px solid var(--od-celadon)}
.odp-top a{font:400 24px/1.2 var(--od-titre);color:var(--od-encre)!important;text-decoration:none}.odp-top a:hover{color:var(--od-bleu)!important}
.odp-top small{font-size:14px;color:var(--od-lichen)}
.odp-nom-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-top:40px;padding-top:28px;border-top:1px solid var(--od-celadon)}
.odp-nom-form label{flex:1 0 100%;font:600 12px/1.2 var(--od-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--od-lichen)}
.odp-nom-form input{flex:1;min-width:220px;height:48px;padding:0 14px;border:1px solid var(--od-celadon);border-radius:var(--od-r);font:400 16px var(--od-texte);color:var(--od-encre)}

/* ── fiche ── */
.odp-fiche-fond{background:var(--od-eau);padding:28px 0 clamp(40px,5vw,72px)}
.odp-fiche{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);background:#fff;border:1px solid var(--od-celadon);border-radius:16px;overflow:hidden}
.odp-fiche-t{padding:clamp(28px,4vw,52px)}
.odp-fiche h1{font:400 44px/50px var(--od-titre);margin:14px 0 22px}
.odp-fiche-sym{height:56px;margin-bottom:18px}.odp-fiche-trace{height:56px;width:auto}
.odp-def{margin:0 0 20px;display:grid;gap:0}
.odp-def>div{display:grid;grid-template-columns:170px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--od-celadon)}
.odp-def>div:last-child{border-bottom:1px solid var(--od-celadon)}
.odp-def dt{font:600 12px/1.6 var(--od-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--od-sarcelle)}
.odp-def dd{margin:0;font-size:17px;line-height:1.5}
.odp-avert{font-size:14px;line-height:1.55;color:var(--od-lichen);margin:0 0 22px}
.odp-fiche-act{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px}
.odp-fiche-c{position:relative;border-left:1px solid var(--od-celadon);display:flex;flex-direction:column;background:var(--od-eau);padding:12px}
.odp-fiche-c .odp-carte-cadre{padding:0;flex:1;background:none}
.odp-carte-fiche #odp-carte{height:100%;min-height:420px}
.odp-fiche-c .odp-note{margin:10px 4px 0}

/* ── formulaires (contact) ── */
.odp-contact{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:72px;align-items:start}
.odp-legendes{list-style:none;margin:18px 0 0;padding:0}
.odp-legendes li{display:grid;grid-template-columns:56px 1fr;gap:6px;padding:16px 0;border-top:1px solid var(--od-celadon)}
.odp-legendes li:last-child{border-bottom:1px solid var(--od-celadon)}
.odp-legendes p{margin:0;font-size:16px;line-height:1.55}
.odp-legendes .odp-leg-urg .od-num{color:var(--od-urgence)}.odp-legendes .odp-leg-urg p{color:var(--od-urgence)}
.odp-contact-form{border:1px solid var(--od-celadon);border-radius:16px;padding:clamp(24px,3.5vw,44px);box-shadow:0 12px 32px rgba(14,42,44,.06)}
.odp-contact-form h2{margin:0 0 22px}
.odp-form{display:grid;gap:18px}
.odp-duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.odp-champ{display:flex;flex-direction:column;gap:6px;min-width:0}
.odp-champ label{font:600 12px/1.2 var(--od-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--od-lichen)}
.odp-champ input,.odp-champ select,.odp-champ textarea{width:100%;box-sizing:border-box;min-height:52px;padding:12px 14px;border:1px solid var(--od-celadon);border-radius:var(--od-r);background:#fff;color:var(--od-encre);font:400 17px/1.4 var(--od-texte)}
.odp-champ textarea{resize:vertical;min-height:96px}
.odp-champ input:focus,.odp-champ select:focus,.odp-champ textarea:focus{outline:3px solid var(--od-bleu);outline-offset:1px;border-color:var(--od-bleu)}
.odp-champ input::placeholder,.odp-champ textarea::placeholder{color:var(--od-lichen);opacity:1}
.odp-aide{margin:0;font-size:13px;color:var(--od-lichen)}
.odp-coche{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.55;color:var(--od-encre)}
.odp-coche input{flex:none;width:22px;height:22px;margin:1px 0 0;accent-color:var(--od-bleu)}
.odp-coche small{color:var(--od-lichen)}
.odp-envoyer{justify-self:start;min-height:52px;padding:0 28px;font-size:17px}

/* ── sources et méthodes ── */
.odp-guide{max-width:900px}
.odp-guide-b{display:grid;grid-template-columns:72px 1fr;gap:8px;padding:26px 0;border-top:1px solid var(--od-celadon)}
.odp-guide-b:last-of-type{border-bottom:1px solid var(--od-celadon)}
.odp-guide-b h2{font:400 30px/36px var(--od-titre)!important;margin:0 0 10px!important}
.odp-guide-b p{margin:0 0 12px;font-size:18px;line-height:1.65}.odp-guide-b p:last-child{margin:0}

/* ── TUNNEL ── */
.odt{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:calc(100vh - var(--odh) - 41px)}
.odt-js .odt{height:calc(100vh - var(--odh) - 41px);height:calc(100dvh - var(--odh) - 41px);min-height:0;overflow:hidden}
.odt-g{background:var(--od-eau);display:flex;flex-direction:column;padding:28px 48px 26px;min-height:0;min-width:0}
.odt-g-trace{flex:1;min-height:0;display:flex;justify-content:center;align-items:center;padding:4px 0}
.odt-trace{height:100%;width:auto;max-width:100%;display:block;overflow:visible}
.odt-trace .od-trace-fond{stroke:#fff;stroke-width:5}
.odt-prog{fill:none;stroke:var(--od-bleu);stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1000;stroke-dashoffset:1000;transition:stroke-dashoffset .7s cubic-bezier(.4,0,.2,1)}
.odt-trace .od-station{outline:none}
.odt-trace .od-station:hover .od-station-halo,.odt-trace .od-station:focus-visible .od-station-halo{opacity:.35;r:15}
.odt-trace .odt-choisie .od-station-halo{opacity:.4;r:16}
.odt-trace .od-station-pt{r:6.5}
.odt-trace .odt-choisie .od-station-pt{r:8}
.odt-g-leg{margin:6px 0 14px;font:400 24px/1.2 var(--od-titre);color:var(--od-encre);text-align:center}
.odt-bar{display:none}
.odt-rassur{list-style:none;margin:0;padding:16px 0 0;border-top:1px solid var(--od-celadon);display:grid;gap:8px;font-size:15px;line-height:1.4}
.odt-rassur li{display:flex;gap:12px;align-items:flex-start}
.odt-rassur i{flex:none;width:8px;height:8px;margin-top:7px;border-radius:50%;background:var(--od-bleu)}
.odt-rassur .odt-urgence{color:var(--od-urgence);font-weight:600}.odt-rassur .odt-urgence i{background:var(--od-urgence)}
.odt-d{display:flex;align-items:center;justify-content:center;padding:28px clamp(28px,5vw,72px);min-height:0;min-width:0;background:#fff}
.odt-form{display:flex;flex-direction:column;justify-content:center;width:100%;max-width:680px;max-height:100%;min-height:0}
.odt-sur{margin:0 0 12px;font:600 12px/1.2 var(--od-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--od-sarcelle);display:flex;align-items:center;gap:12px}
.odt-sur::before{content:"";width:32px;height:1px;background:var(--od-sarcelle)}
.odt-et{border:0;margin:0;padding:0;min-width:0}
.odt-js .odt-et{display:none}
.odt-js .odt-et.est-actif{display:flex;flex-direction:column;flex:none;min-height:0}
.odt-q{display:block;width:100%;padding:0;margin:0 0 22px;font:400 42px/48px var(--od-titre);color:var(--od-encre);text-wrap:balance}
.odt-q:focus{outline:none}
.odt-tuiles{display:grid;grid-template-columns:1fr;gap:12px;grid-auto-rows:clamp(72px,12.5vh,108px)}
.odt-tuiles-zone{grid-template-columns:1fr 1fr}
.odt-t{position:relative;display:flex;align-items:center;gap:16px;padding:0 20px;border:1px solid var(--od-celadon);border-radius:var(--od-r);background:#fff;cursor:pointer;transition:border-color .15s,background .15s;min-width:0}
.odt-t:hover{border-color:var(--od-sarcelle);background:#F7FBFA}
.odt-t input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.odt-t-n{font:400 28px/1 var(--od-titre);color:var(--od-bleu);min-width:34px;flex:none}
.odt-t-n:empty{height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='34' height='14' viewBox='0 0 22 8'%3E%3Cpath d='M1 6.2C5 6.2 6 1.6 11 4C15.5 6.2 17 2.2 19.2 2.2' fill='none' stroke='%231E47C8' stroke-width='1.4' stroke-linecap='round'/%3E%3Ccircle cx='20.2' cy='2.2' r='1.7' fill='%231E47C8'/%3E%3C/svg%3E") no-repeat left center}
.odt-t-l{font:500 18px/1.3 var(--od-texte);color:var(--od-encre)}
.odt-t:has(input:checked){border-color:var(--od-bleu);box-shadow:inset 0 0 0 1px var(--od-bleu);background:#F3F6FD}
.odt-t:has(input:checked)::after{content:"";position:absolute;right:18px;top:50%;width:11px;height:6px;margin-top:-5px;border-left:2.5px solid var(--od-bleu);border-bottom:2.5px solid var(--od-bleu);transform:rotate(-45deg)}
.odt-t:has(input:focus-visible){outline:3px solid var(--od-bleu);outline-offset:2px}
.odt-champ-lieu,.odt-champs{display:flex;flex-direction:column;gap:14px}
.odt-champ-lieu label{font:600 12px/1.2 var(--od-texte);letter-spacing:.12em;text-transform:uppercase;color:var(--od-lichen)}
.odt-champ-lieu input{width:100%;box-sizing:border-box;height:68px;padding:0 20px;border:1px solid var(--od-celadon);border-radius:var(--od-r);font:400 22px var(--od-texte);color:var(--od-encre)}
.odt-champ-lieu input:focus,.odt-champs input:focus{outline:3px solid var(--od-bleu);outline-offset:1px;border-color:var(--od-bleu)}
.odt-aide{margin:0;font-size:14px;color:var(--od-lichen)}
.odt-rapides{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.odt-chip{width:100%;min-height:clamp(64px,10vh,84px);border:1px solid var(--od-celadon);border-radius:var(--od-r);background:#fff;font:400 24px/1 var(--od-titre);color:var(--od-encre);cursor:pointer;transition:border-color .15s,background .15s}
.odt-chip:hover{border-color:var(--od-bleu);background:#F3F6FD}
.odt-champs .odp-champ input{min-height:56px;font-size:18px}
.odt-champs .odp-coche{margin-top:2px}
.odt-js-err{margin:10px 0 0}
.odt-nav{display:flex;align-items:center;justify-content:flex-end;gap:20px;margin-top:30px}
.odt-retour{margin-right:auto;border:0;background:none;color:var(--od-sarcelle);font:600 16px var(--od-texte);min-height:44px;padding:0 4px;cursor:pointer}.odt-retour:hover{color:var(--od-bleu);text-decoration:underline}
.odt-nav .od-btn{min-height:56px;padding:0 32px;font-size:17px}
.odt-nav [hidden]{display:none!important}
.odt-mobile-rassur{display:none;margin:12px 0 0;text-align:center;font-size:13px;color:var(--od-lichen)}
.odt-mobile-rassur b{color:var(--od-urgence)}
html:not(.odt-js) .odt-suite,html:not(.odt-js) .odt-retour{display:none}
html:not(.odt-js) .odt-et{margin-bottom:28px}
.odt-pied{height:40px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:#fff;border-top:1px solid var(--od-celadon);font-size:13px;color:var(--od-lichen)}
.odt-pied p{margin:0;white-space:nowrap}.odt-pied a{color:var(--od-sarcelle)}
.odt-p-court{display:none}
/* confirmation */
.odt-conf .odt-prog{stroke-dashoffset:0}
.odt-conf .odt-trace .od-trace-ligne{stroke:var(--od-bleu)}
.odt-fini .od-trace-onde{stroke:#fff;stroke-width:5;animation:odt-onde 2.6s cubic-bezier(.5,0,.3,1) .4s 1 both}
@keyframes odt-onde{0%{stroke-dashoffset:40;opacity:1}100%{stroke-dashoffset:-1000;opacity:1}}
.odt-ok{width:100%;max-width:640px}
.odt-ok .odt-q{font-size:52px;line-height:58px;margin:0 0 22px}
.odt-code{margin:0 0 22px;padding:18px 24px;border:1px solid var(--od-celadon);border-radius:var(--od-rc);background:var(--od-eau);display:flex;flex-direction:column;gap:4px}
.odt-code span{font:600 12px/1.2 var(--od-texte);letter-spacing:.14em;text-transform:uppercase;color:var(--od-sarcelle)}
.odt-code b{font:400 56px/1.1 var(--od-titre);letter-spacing:.1em;color:var(--od-bleu)}
.odt-ok-t{margin:0 0 14px;font-size:18px;line-height:1.6}
.odt-ok-a{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0 0}

/* ── mobile ── */
@media (max-width:1100px){
  .odp-tete h1,.odp-h1{font-size:46px;line-height:50px}
  .odp-cartes-dep-tous{grid-template-columns:repeat(3,minmax(0,1fr))}
  .odp-terr-in,.odp-france-in{gap:40px}
}
@media (max-width:900px){
  .odp-tete-in,.odp-voisines-in,.odp-terr-in,.odp-france-in,.odp-contact,.odp-fiche{grid-template-columns:1fr;gap:28px}
  .odp-tete-d{order:-1}.odp-mp{flex-direction:row;gap:16px;justify-content:flex-start;text-align:left}.odp-mp-trace{height:64px}
  .odp-leg-liste{grid-template-columns:1fr}
  .odp-dossiers-g,.odp-cartes-villes,.odp-dep-voisins,.odp-cartes-dep{grid-template-columns:repeat(2,minmax(0,1fr))}
  .odp-cartes-dep-tous{grid-template-columns:repeat(2,minmax(0,1fr))}
  .odp-fiche-c{border-left:0;border-top:1px solid var(--od-celadon)}
  .odp-appel-in{flex-direction:column;align-items:flex-start}
  /* tunnel : le Tracé devient une ligne de 5 stations */
  .odt{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .odt-g{padding:12px 18px 10px}
  .odt-g-trace,.odt-rassur{display:none}
  .odt-conf .odt-g-trace{display:flex;max-height:150px}.odt-conf .odt-rassur{display:none}
  .odt-g-leg{margin:6px 0 0;font-size:18px;text-align:left}
  .odt-bar{display:flex;list-style:none;margin:0;padding:0;position:relative}
  .odt-conf .odt-bar{display:none}
  .odt-bar::before{content:"";position:absolute;left:10%;right:10%;top:7px;height:3px;background:#fff}
  .odt-bar li{flex:1;position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;line-height:1.1;color:var(--od-lichen);text-align:center}
  .odt-bar i{width:17px;height:17px;border-radius:50%;background:#fff;border:3px solid var(--od-celadon);box-sizing:border-box;position:relative;z-index:1}
  .odt-bar li.est-fait i{background:var(--od-bleu);border-color:var(--od-bleu)}
  .odt-bar li.est-cour i{border-color:var(--od-bleu);background:#fff;box-shadow:0 0 0 4px rgba(30,71,200,.18)}
  .odt-bar li.est-cour{color:var(--od-encre);font-weight:600}
  .odt-d{padding:16px 18px 10px;align-items:stretch}
  .odt-form{max-height:none;height:100%;justify-content:flex-start}
  .odt-js .odt-et.est-actif{flex:1}
  .odt-champ-lieu,.odt-champs{flex:1}
  .odt-q{font-size:30px;line-height:34px;margin-bottom:14px}
  .odt-tuiles{grid-auto-rows:minmax(56px,1fr);gap:10px;flex:1;min-height:0;max-height:none}
  .odt-tuiles-zone .odt-t{padding:0 12px;gap:10px}.odt-tuiles-zone .odt-t-l{font-size:15px}.odt-t-n{font-size:22px;min-width:26px}
  .odt-t-l{font-size:17px}
  .odt-champ-lieu input{height:56px;font-size:19px}
  .odt-rapides{grid-template-columns:repeat(2,1fr);gap:10px;flex:1;grid-auto-rows:minmax(52px,1fr)}.odt-chip{min-height:52px;font-size:21px}
  .odt-nav{margin-top:12px;gap:12px}.odt-nav .od-btn{flex:1;justify-content:center;min-height:52px;padding:0 14px;white-space:nowrap}
  .odt-mobile-rassur{display:block}
  .odt-sur{margin-bottom:6px}
  .odt-champs{gap:10px}.odt-champs .odp-champ input{min-height:48px}
  .odt-champs .odp-coche{font-size:12.5px;line-height:1.45}
  .odt-ok .odt-q{font-size:34px;line-height:38px}.odt-code b{font-size:40px}.odt-ok-t{font-size:16px}
  .odt-p-long{display:none}.odt-p-court{display:inline}.odt-pied{font-size:12px}
}
@media (max-width:640px){
  .odp-tete h1,.odp-h1{font-size:36px;line-height:40px}
  .odp-chapo{font-size:18px}
  .odp-section h2,.odp-dossiers h2{font-size:30px;line-height:34px}
  #odp-carte{height:360px}
  .odp-dossiers-g,.odp-cartes-villes,.odp-dep-voisins{grid-template-columns:1fr}
  .odp-appel p{font-size:26px;line-height:32px}
  .odp-duo{grid-template-columns:1fr}
  .odp-def>div{grid-template-columns:1fr;gap:2px}
  .odp-fiche h1{font-size:36px;line-height:40px}
  .odp-guide-b{grid-template-columns:48px 1fr}
  .odp-top li{grid-template-columns:44px 1fr auto}
  .odp-tete-d{display:none}
}
@media (prefers-reduced-motion:reduce){
  .odt-prog,.odp-item,.odt-t{transition:none}
  .odt-fini .od-trace-onde{animation:none;display:none}
  .odp-pin.est-allume::after{animation:none}
}

/* passe retours 24/10 : pied du tunnel lisible à 360 px (texte non coupé) */
@media (max-width:420px){.odt-pied{height:auto;min-height:40px;padding:4px 10px}.odt-pied p{white-space:normal;text-align:center;line-height:1.35;font-size:11.5px}}

/* recherche sans résultat : jamais une impasse */
.odp-vide{margin:32px 0;padding:32px;background:var(--od-eau);border:1px solid var(--od-celadon);border-radius:var(--od-rc);display:grid;gap:12px;justify-items:start}
.odp-vide h3{font:400 30px/1.2 var(--od-titre);margin:0}.odp-vide p{margin:0;font-size:17px;line-height:1.55}
.odp-vide .od-btn{min-height:52px;font-size:18px;padding:0 30px}
