/* Bandeau compact, photo sur toute la largeur. */
header.village-hero,.has-results header.village-hero{position:relative;isolation:isolate;display:flex;align-items:center;max-width:none;min-height:240px;margin:12px 0 18px;padding:20px 24px;text-align:left;overflow:hidden;border-radius:18px;gap:0}
header.village-hero:before{content:none}
header.village-hero .hero-copy{position:relative;z-index:1;width:62%;min-width:0;padding:0}
header.village-hero .hero-copy h1,header.village-hero .hero-copy p{max-width:none;margin-left:0;margin-right:0;text-shadow:none}
header.village-hero .hero-copy h1:not(.seo-subtitle){font-size:clamp(28px,3vw,38px);line-height:1.12;margin-bottom:12px}
header.village-hero .village-panorama{position:absolute;inset:0;z-index:0;width:100%;max-width:none;height:100%;aspect-ratio:auto;background-image:linear-gradient(90deg,#f0f8fff5 0%,#f0f8ffcc 32%,#f0f8ff55 51%,transparent 68%),var(--village-art);background-position:center,center 38%;background-size:100% 100%,cover;background-repeat:no-repeat;pointer-events:none;opacity:1;-webkit-mask-image:none;mask-image:none}
@media(max-width:700px){
 header.village-hero,.has-results header.village-hero{min-height:180px;margin:8px 0 12px;padding:16px;border-radius:14px}
 header.village-hero .hero-copy{width:100%}
 header.village-hero .hero-copy h1:not(.seo-subtitle),header.village-hero .hero-copy .brand-headline{font-size:26px;line-height:1.12;letter-spacing:-.7px;margin-bottom:8px}
 header.village-hero .hero-copy p:not(.brand-headline),header.village-hero .hero-copy h1.seo-subtitle{font-size:14px;line-height:1.4}
 header.village-hero .hero-copy .eyebrow,header.village-hero .hero-copy .tag{font-size:9px;letter-spacing:1px;margin-bottom:9px}
 header.village-hero .village-panorama{background-image:linear-gradient(90deg,#f0f8fff2 0%,#f0f8ffcf 48%,#f0f8ff66 100%),var(--village-art);background-position:center,center 38%}
}

/* Micro-interactions courtes ; aucune donnée n'attend une animation. */
@keyframes gmc-enter{from{opacity:.78;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes gmc-price-enter{from{transform:translateY(5px)}to{transform:none}}
@keyframes gmc-curve-enter{from{opacity:.45}to{opacity:1}}
header.village-hero .hero-copy{animation:gmc-enter .32s ease-out both}
header.village-hero .village-panorama{animation:none}
.btn,.button,.route,.load-more,.periods button,.actions button,.menu-toggle{transition:background-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
@media(hover:hover) and (pointer:fine){
 .btn:not(:disabled):hover,.button:hover,.load-more:hover,.actions button:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 5px 14px #102f531a}
 .route:hover,.periods button:not(:disabled):hover{transform:translateY(-1px)}
}
.btn:not(:disabled):active,.button:active,.route:active,.load-more:active,.periods button:not(:disabled):active,.actions button:not(:disabled):active,.menu-toggle:active{transform:scale(.98)}
.best-pick{animation:gmc-price-enter .25s ease-out both}
.station-list{animation:none}
.station.compact-station{animation:gmc-price-enter .26s ease-out both}
.station.compact-station:nth-child(2){animation-delay:30ms}
.station.compact-station:nth-child(3){animation-delay:60ms}
.station.compact-station:nth-child(4){animation-delay:90ms}
.station.compact-station:nth-child(n+5){animation-delay:120ms}
.dept{transition:fill .2s ease,stroke .18s ease,stroke-width .18s ease,opacity .18s ease}
#detail>h2,#detail>.metrics{animation:gmc-enter .24s ease-out both}
#historyPlot .curve{animation:gmc-curve-enter .3s ease-out both}
@media(prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .btn:hover,.button:hover,.route:hover,.load-more:hover,.periods button:hover,.actions button:hover,.btn:active,.button:active,.route:active,.load-more:active,.periods button:active,.actions button:active,.menu-toggle:active{transform:none!important}
}
/* Photos de station : fondu indépendant du titre et des commandes. */
header.village-hero .hero-slideshow{background:none}
.hero-slideshow .hero-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 50%;opacity:0;transition:opacity .6s ease;pointer-events:none}
.hero-slideshow .hero-slide.is-active{opacity:1}
.hero-slideshow::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#f0f8ffb3 0%,#f0f8ff66 34%,transparent 62%);pointer-events:none}
header.village-hero .hero-motion-toggle{position:absolute;right:12px;bottom:10px;z-index:2;border:1px solid #ffffffb3;background:#fffffff0;color:#102f53;border-radius:20px;padding:6px 12px;min-height:32px;font-size:11px;cursor:pointer}
header.village-hero .hero-motion-toggle[hidden]{display:none}
@media(max-width:700px){
 .hero-slideshow .hero-slide{object-position:72% center}
 .hero-slideshow::after{background:linear-gradient(90deg,#f0f8fff2 0%,#f0f8ffcf 48%,#f0f8ff66 100%)}
 header.village-hero .hero-copy{padding-bottom:22px}
 header.village-hero .hero-motion-toggle{bottom:6px;right:8px}
}
@media(prefers-reduced-motion:reduce){.hero-slideshow .hero-slide{transition:none!important}header.village-hero .hero-motion-toggle{display:none}}
