:root{--vert:#5BB328;--vert-fonce:#4A9420;--marine:#0D233A;--marine-2:#132F4C;--blanc:#FFFFFF;--gris-fond:#F4F6F8;--gris-texte:#5A6B7B;--gris-ligne:#E3E8ED;--rouge:#D64545;--radius:14px;--ombre:0 10px 30px rgba(13,35,58,.08)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,sans-serif;color:var(--marine);background:var(--gris-fond);min-height:100vh;display:flex;flex-direction:column;line-height:1.6}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:Poppins,sans-serif;line-height:1.25}.conteneur{max-width:820px;margin:0 auto;padding:0 24px;width:100%}:focus-visible{outline:3px solid var(--vert);outline-offset:3px;border-radius:4px}.header{background:#fff;border-bottom:1px solid var(--gris-ligne)}.header-inner{max-width:1140px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:76px}.logo-img{height:54px;width:auto;display:block}.retour{display:inline-flex;align-items:center;gap:8px;font-size:14.5px;font-weight:600;color:var(--gris-texte);transition:.2s}.retour:hover{color:var(--vert-fonce)}.retour svg{width:16px;height:16px}.bandeau{background:linear-gradient(160deg,var(--marine) 0%,var(--marine-2) 70%);color:#fff;padding:60px 0 110px;position:relative;overflow:hidden}.bandeau .route{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.14;pointer-events:none}.bandeau-contenu{position:relative;z-index:2;text-align:center}.eyebrow{color:var(--vert);font-size:12.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.bandeau h1{font-size:clamp(28px,4.5vw,40px);font-weight:800;margin:12px 0 10px}.bandeau p{color:#b9c7d4;font-size:16.5px;max-width:520px;margin:0 auto}.zone-recherche{margin-top:-56px;position:relative;z-index:3}.boite-recherche{background:#fff;border-radius:18px;box-shadow:0 20px 50px #0d233a29;padding:26px}.champ-groupe{display:flex;gap:12px}.champ-ref{flex:1;position:relative}.champ-ref svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:20px;height:20px;pointer-events:none}.champ-ref input{width:100%;font-family:Inter,sans-serif;font-size:16.5px;font-weight:500;letter-spacing:.04em;padding:16px 16px 16px 48px;border:1.5px solid var(--gris-ligne);border-radius:12px;background:var(--gris-fond);transition:.2s;color:var(--marine);text-transform:uppercase}.champ-ref input::placeholder{text-transform:none;font-weight:400;letter-spacing:0}.champ-ref input:focus{outline:none;border-color:var(--vert);background:#fff;box-shadow:0 0 0 4px #5bb3281f}.btn-suivre{display:inline-flex;align-items:center;gap:10px;font-family:Poppins,sans-serif;font-weight:600;font-size:16px;padding:0 30px;border-radius:12px;background:var(--vert);color:#fff;border:none;cursor:pointer;transition:.2s;white-space:nowrap}.btn-suivre:hover{background:var(--vert-fonce)}.aide{font-size:13px;color:var(--gris-texte);margin-top:14px}.aide button{background:none;border:none;color:var(--vert-fonce);font-weight:600;cursor:pointer;font-size:13px;font-family:inherit;padding:0}.aide button:hover{text-decoration:underline}.resultat{padding:44px 0 80px;flex:1}[hidden]{display:none!important}.carte-resultat{background:#fff;border-radius:18px;box-shadow:var(--ombre);overflow:hidden;animation:apparait .4s ease}@keyframes apparait{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.resultat-entete{padding:26px 30px;border-bottom:1px solid var(--gris-ligne);display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.resultat-entete .ref{font-family:Poppins,sans-serif;font-weight:700;font-size:19px;letter-spacing:.03em}.resultat-entete .ref small{display:block;font-family:Inter,sans-serif;font-weight:500;font-size:13px;color:var(--gris-texte);letter-spacing:0;margin-top:2px}.badge{font-size:12.5px;font-weight:600;padding:7px 15px;border-radius:99px;display:inline-flex;align-items:center;gap:7px}.badge:before{content:"";width:7px;height:7px;border-radius:50%}.badge-transit{background:#eaf6e1;color:var(--vert-fonce)}.badge-transit:before{background:var(--vert);animation:pulse 1.6s infinite}.badge-livre{background:#e8f0fa;color:#2456a6}.badge-livre:before{background:#2456a6}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.trajet-resume{padding:22px 30px;background:var(--gris-fond);display:flex;align-items:center;gap:14px;font-size:14.5px;font-weight:600;flex-wrap:wrap}.trajet-resume .fleche{flex:1;min-width:60px;height:2px;background:repeating-linear-gradient(to right,var(--vert) 0 7px,transparent 7px 13px);position:relative}.trajet-resume .fleche:after{content:"";position:absolute;right:-1px;top:-4px;border:5px solid transparent;border-left-color:var(--vert)}.trajet-resume .ville{display:flex;align-items:center;gap:8px}.trajet-resume .ville svg{width:17px;height:17px}.eta{padding:0 30px 4px;margin-top:18px;font-size:14px;color:var(--gris-texte)}.eta b{color:var(--marine)}.timeline{padding:28px 30px 34px;position:relative}.etape{position:relative;padding:0 0 30px 44px}.etape:last-child{padding-bottom:0}.etape:before{content:"";position:absolute;left:13px;top:26px;bottom:-2px;width:2px;background:repeating-linear-gradient(to bottom,var(--gris-ligne) 0 6px,transparent 6px 12px)}.etape:last-child:before{display:none}.etape.faite:before{background:var(--vert)}.puce{position:absolute;left:0;top:0;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#fff;border:2px solid var(--gris-ligne)}.puce svg{width:14px;height:14px}.etape.faite .puce{background:var(--vert);border-color:var(--vert)}.etape.courante .puce{border-color:var(--vert);box-shadow:0 0 0 5px #5bb3282e;animation:halo 1.8s infinite}@keyframes halo{0%,to{box-shadow:0 0 0 5px #5bb3282e}50%{box-shadow:0 0 0 9px #5bb32814}}.etape.courante .puce:after{content:"";width:10px;height:10px;border-radius:50%;background:var(--vert)}.etape b{font-size:15.5px;display:block;font-weight:600}.etape .desc{font-size:14px;color:var(--gris-texte);margin-top:2px}.etape .quand{font-size:12.5px;color:var(--gris-texte);margin-top:5px;display:inline-flex;align-items:center;gap:6px;background:var(--gris-fond);padding:4px 11px;border-radius:99px;font-weight:500}.etape.attente{opacity:.55}.etape.attente b{font-weight:500}.carte-erreur{background:#fff;border-radius:18px;box-shadow:var(--ombre);padding:44px 34px;text-align:center;animation:apparait .4s ease}.carte-erreur .ic{width:64px;height:64px;border-radius:50%;background:#fbecec;display:grid;place-items:center;margin:0 auto 18px}.carte-erreur .ic svg{width:30px;height:30px}.carte-erreur h2{font-size:20px;margin-bottom:8px}.carte-erreur p{color:var(--gris-texte);font-size:15px;max-width:420px;margin:0 auto}.carte-erreur .ref-saisie{font-weight:700;color:var(--rouge);letter-spacing:.04em}.carte-erreur .aide-erreur{margin-top:18px;font-size:14px}.carte-erreur .aide-erreur a{color:var(--vert-fonce);font-weight:600}.carte-erreur .aide-erreur a:hover{text-decoration:underline}.chargement{display:flex;justify-content:center;padding:50px 0}.spinner{width:42px;height:42px;border:4px solid var(--gris-ligne);border-top-color:var(--vert);border-radius:50%;animation:tourne .8s linear infinite}@keyframes tourne{to{transform:rotate(360deg)}}.bloc-aide{margin-top:26px;background:#fff;border:1px dashed var(--gris-ligne);border-radius:var(--radius);padding:20px 24px;font-size:14px;color:var(--gris-texte);display:flex;gap:14px;align-items:flex-start}.bloc-aide svg{flex-shrink:0;width:20px;height:20px;margin-top:2px}.bloc-aide a{color:var(--vert-fonce);font-weight:600}.bloc-aide a:hover{text-decoration:underline}.footer{background:var(--marine);color:#7e93a6;padding:22px 0;font-size:13.5px;text-align:center}.footer a:hover{color:var(--vert)}@media(max-width:640px){.champ-groupe{flex-direction:column}.btn-suivre{padding:15px 30px;justify-content:center}.resultat-entete,.timeline,.trajet-resume{padding-left:22px;padding-right:22px}.bandeau{padding:44px 0 96px}}@media(prefers-reduced-motion:reduce){*,*:before{animation:none!important;transition:none!important}}.badge-annule{background:#fbecec;color:var(--rouge)}.badge-annule:before{background:var(--rouge)}.selecteur-langue{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;font-weight:600;color:var(--gris-texte);margin-left:auto;margin-right:18px}.selecteur-langue a{padding:4px 2px;transition:color .15s}.selecteur-langue a:hover,.selecteur-langue a.actif{color:var(--vert-fonce)}.etape .quand.prevu{background:transparent;border:1px dashed var(--gris-ligne);color:var(--gris-texte);font-style:italic}
