/* Signature visuelle : héros cinématographique, trajet doré, flotte interactive et filigranes. */
main{position:relative}

/* Héros cinématographique */
.hero{isolation:isolate;background:var(--black)!important}
.hero-cinematic{position:absolute;z-index:0;inset:0;overflow:hidden;pointer-events:none}
.hero-cinematic-image{position:absolute;inset:-3%;background:url("../images/header-bg-cinematic.webp") center center/cover no-repeat;transform:scale(1.03);animation:hero-drift 18s ease-in-out infinite alternate;will-change:transform}
.hero-cinematic-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,7,7,.94),rgba(7,7,7,.77) 46%,rgba(7,7,7,.22)),linear-gradient(0deg,rgba(7,7,7,.16),transparent 48%)}
.hero-cinematic-light{position:absolute;top:8%;right:3%;width:min(48vw,680px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(239,207,105,.11),rgba(212,175,55,.025) 42%,transparent 70%);filter:blur(8px);animation:hero-light 8s ease-in-out infinite alternate}
.hero h1 em{position:relative;text-shadow:0 0 30px rgba(239,207,105,.08)}
.hero h1 em::after{content:"";position:absolute;z-index:-1;left:4%;right:-3%;bottom:.04em;height:.24em;background:radial-gradient(ellipse,rgba(212,175,55,.22),transparent 72%);filter:blur(10px);transform:scaleX(.65);transform-origin:left;animation:hero-title-glow 5s ease-in-out infinite alternate}
.hero-content.visible .eyebrow,.hero-content.visible h1,.hero-content.visible .lead,.hero-content.visible .button-row,.hero-content.visible .hero-points{animation:hero-element-in .75s both cubic-bezier(.22,.61,.36,1)}
.hero-content.visible h1{animation-delay:.08s}.hero-content.visible .lead{animation-delay:.18s}.hero-content.visible .button-row{animation-delay:.28s}.hero-content.visible .hero-points{animation-delay:.38s}
@keyframes hero-drift{from{transform:scale(1.03) translate3d(0,0,0)}to{transform:scale(1.095) translate3d(-1.2%,.7%,0)}}
@keyframes hero-light{from{opacity:.55;transform:translate3d(0,0,0) scale(.94)}to{opacity:1;transform:translate3d(-2%,2%,0) scale(1.05)}}
@keyframes hero-title-glow{from{opacity:.45;transform:scaleX(.62)}to{opacity:1;transform:scaleX(1)}}
@keyframes hero-element-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* Fil d’itinéraire doré calculé selon les sections. */
.journey-line{position:absolute;z-index:6;inset:0;width:100%;height:100%;display:block;overflow:hidden;pointer-events:none}
.journey-end-marker{display:block;width:1px;height:1px;pointer-events:none}
.journey-line-track,.journey-line-progress{fill:none;stroke-linecap:round;stroke-linejoin:round}
.journey-line-track{stroke:transparent;stroke-width:1.05}
.journey-line-track,.journey-line-progress,.journey-stop{vector-effect:non-scaling-stroke}
.journey-line-progress{stroke:url(#journey-gradient);stroke-width:1.8;filter:drop-shadow(0 0 5px rgba(212,175,55,.32))}
.journey-stop{fill:var(--black);stroke:rgba(212,175,55,.42);stroke-width:1.2;transition:fill .35s,stroke .35s,filter .35s}
.journey-stop.is-active{fill:var(--gold);stroke:var(--gold-hi);filter:drop-shadow(0 0 5px rgba(212,175,55,.7))}
.journey-label{opacity:.72;transition:opacity .35s}
.journey-label-background{fill:rgba(14,14,14,.88);stroke:rgba(212,175,55,.34);stroke-width:1;vector-effect:non-scaling-stroke}
.journey-label-connector{stroke:rgba(212,175,55,.44);stroke-width:1;vector-effect:non-scaling-stroke}
.journey-label-text{fill:#e5dcc5;font:700 9.5px var(--mono);letter-spacing:.055em;dominant-baseline:middle;text-transform:uppercase}
.journey-label.is-active{opacity:1}
.journey-label.is-active .journey-label-background{fill:rgba(14,14,14,.94);stroke:rgba(239,207,105,.72)}
.journey-label.is-active .journey-label-connector{stroke:var(--gold)}
.journey-label.is-active .journey-label-text{fill:var(--gold-hi)}
.journey-taxi{filter:drop-shadow(0 2px 5px rgba(0,0,0,.72));will-change:transform}
.journey-taxi-halo{fill:rgba(14,14,14,.85);stroke:rgba(212,175,55,.38);stroke-width:1;vector-effect:non-scaling-stroke}
.journey-taxi-body{fill:url(#journey-car-gold);stroke:var(--gold-hi);stroke-width:1.1;vector-effect:non-scaling-stroke}
.journey-taxi-body-accent{fill:rgba(247,247,247,.13)}
.journey-taxi-mirror{fill:var(--gold);stroke:var(--gold-hi);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.journey-taxi-window,.journey-taxi-side-window{fill:#1c1c1c;stroke:#e5dcc5;stroke-width:.65;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.journey-taxi-side-window{fill:#282828}
.journey-taxi-detail{fill:none;stroke:#795e10;stroke-width:.8;stroke-linecap:round;vector-effect:non-scaling-stroke}
.journey-taxi-headlight{fill:var(--ivory);stroke:var(--gold-hi);stroke-width:.45;vector-effect:non-scaling-stroke}
.journey-taxi-taillight{fill:#8c6f12;stroke:var(--gold-hi);stroke-width:.45;vector-effect:non-scaling-stroke}
.journey-taxi-sign{fill:#111;stroke:var(--gold-hi);stroke-width:.7;vector-effect:non-scaling-stroke}
.journey-taxi.is-travelling .journey-taxi-halo{animation:journey-taxi-pulse 1.9s ease-in-out infinite}
@keyframes journey-taxi-pulse{50%{fill:rgba(212,175,55,.16);stroke:rgba(239,207,105,.72)}}

/* Sélecteur de flotte */
.fleet-overview{display:grid;grid-template-columns:1fr .8fr;gap:7%;align-items:end;margin-bottom:20px}
.fleet-overview .kicker{margin-bottom:7px}
.fleet-overview h2{font-size:clamp(1.7rem,2.5vw,2.25rem);letter-spacing:-.035em}
.fleet-overview>p{max-width:520px;margin:0;color:#625c52;font-size:.84rem;line-height:1.5}
.fleet-selector{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:24px;padding:6px;border:1px solid rgba(14,14,14,.11);border-radius:10px;background:rgba(247,247,247,.25)}
.fleet-tab{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;min-height:66px;padding:11px 15px;border:1px solid transparent;border-radius:7px;background:transparent;color:#5e584e;text-align:left;cursor:pointer;transition:background .3s,color .3s,border-color .3s,box-shadow .3s,transform .3s}
.fleet-tab:hover{border-color:rgba(180,139,20,.34);transform:translateY(-1px)}
.fleet-tab.is-active{border-color:rgba(212,175,55,.45);background:var(--black);color:var(--ivory);box-shadow:0 13px 30px rgba(14,14,14,.13)}
.fleet-tab-number{display:grid;width:31px;height:31px;place-items:center;border:1px solid currentColor;border-radius:50%;color:#9b7b17;font:700 .58rem var(--mono)}
.fleet-tab.is-active .fleet-tab-number{color:var(--gold-hi)}
.fleet-tab-vehicle-icon{display:grid;width:49px;height:34px;place-items:center;border:1px solid currentColor;border-radius:99px;color:#9b7b17;transition:color .3s,border-color .3s,background .3s}
.fleet-tab-vehicle-icon svg{width:40px;height:22px;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.fleet-tab.is-active .fleet-tab-vehicle-icon{border-color:rgba(239,207,105,.7);background:rgba(212,175,55,.07);color:var(--gold-hi)}
.fleet-tab>span:nth-child(2){display:grid;gap:2px}
.fleet-tab strong{font:600 1rem var(--serif)}
.fleet-tab small{color:#777064;font-size:.66rem;letter-spacing:.02em}
.fleet-tab.is-active small{color:#aaa59c}
.fleet-tab i{color:var(--gold);font-style:normal;transition:transform .3s}
.fleet-tab.is-active i{transform:translateX(3px)}
.fleet-panel[hidden]{display:none!important}
.fleet-panel.is-entering{animation:fleet-panel-in .48s cubic-bezier(.22,.61,.36,1)}
.fleet-panel+.fleet-panel{margin:0;padding:0;border:0}
.fleet-panel+.fleet-panel::before,.fleet-panel+.fleet-panel::after{display:none}
@keyframes fleet-panel-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* Lion en filigrane dans les zones sombres. */
.trust-section::before,.footer::before{content:"";position:absolute;z-index:0;background:url("../images/logo-taxi-du-lion.png") center/contain no-repeat;pointer-events:none;filter:grayscale(1) sepia(.6)}
.trust-section::before{right:-70px;bottom:-95px;width:360px;height:360px;opacity:.035;transform:rotate(-7deg)}
.footer{position:relative;overflow:hidden}
.footer::before{right:3%;bottom:-85px;width:270px;height:270px;opacity:.045}
.footer>.wrap{position:relative;z-index:1}
.form-status:empty{display:none}
html,body{min-height:100%;background:#080808}
main{background:var(--ivory)}

/* Même rythme d'entrée pour les grandes sections. */
.services,.vehicle-showcase,.trust-section,.contact{padding-top:44px}
.contact{padding-bottom:64px}

@media(max-width:800px){
  body{padding-bottom:0}.footer{padding-bottom:84px}
  .services,.vehicle-showcase,.trust-section,.contact{padding-top:38px}
  .contact{padding-bottom:48px}
  .hero-cinematic-image{inset:-2%;background-image:url("../images/header-bg-mobile.webp?v=20260813-noplate");background-position:center center;animation-duration:22s}
  .hero-cinematic-overlay{background:linear-gradient(90deg,rgba(7,7,7,.40),rgba(7,7,7,.4)),linear-gradient(0deg,rgba(7,7,7,.40),rgba(7,7,7,.08) 55%,rgba(7,7,7,.3))}
  .hero-cinematic-light{right:-30%;width:90vw}
  .journey-line{display:none}
  .fleet-overview{grid-template-columns:1fr;gap:9px;margin-bottom:17px}.fleet-overview>p{max-width:650px}
  .fleet-selector{gap:6px;margin-bottom:19px;padding:5px}.fleet-tab{gap:9px;min-height:62px;padding:9px 10px}.fleet-tab-number{width:27px;height:27px}.fleet-tab-vehicle-icon{width:44px;height:31px}.fleet-tab-vehicle-icon svg{width:36px;height:20px}.fleet-tab strong{font-size:.9rem}.fleet-tab small{font-size:.58rem}.fleet-tab i{display:none}
  .trust-section::before{right:-120px;bottom:-50px;width:270px;height:270px}.footer::before{right:-70px;width:220px;height:220px}
}
@media(max-width:1100px),(hover:none) and (pointer:coarse){.journey-line{display:none!important}}
@media(max-width:540px){
  .fleet-overview h2{font-size:1.55rem}.fleet-overview>p{font-size:.76rem}
  .fleet-selector{grid-template-columns:1fr 1fr}.fleet-tab{grid-template-columns:auto 1fr}.fleet-tab-number{display:none}.fleet-tab-vehicle-icon{width:39px;height:29px}.fleet-tab-vehicle-icon svg{width:32px;height:18px}.fleet-tab strong{font-size:.82rem}.fleet-tab small{line-height:1.3}
}
@media(prefers-reduced-motion:reduce){.hero-cinematic-image,.hero-cinematic-light,.hero h1 em::after,.hero-content.visible>*,.journey-taxi-halo{animation:none!important}.journey-line-progress,.journey-label{transition:none}.fleet-panel.is-entering{animation:none}}
