/* Carte — layout autonome. Ce fichier remplace les anciennes surcouches map-explorer*.css. */
body.map-page-v3{height:100dvh;overflow:hidden;background:#f4f3ed}
.map-page-v3 .map-app-main{height:calc(100dvh - 82px);min-height:0;overflow:hidden}
.map-page-v3 .map-app-shell{height:100%;padding:0!important;background:#eef2eb}
.map-page-v3 .map-app-intro,.map-page-v3 .map-app-footer{display:none!important}
.map-page-v3 .map-app-stage{width:100%!important;max-width:none!important;height:100%!important;margin:0!important;padding:0!important}
.map-page-v3 .map-explorer{position:relative!important;width:100%!important;max-width:none!important;height:100%!important;min-height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;border:0!important;border-radius:0!important;background:#e8ede7!important;box-shadow:none!important;isolation:isolate}

/* Reset dur de l'ancien layout : aucune colonne ni largeur héritée ne doit survivre. */
.map-page-v3 .map-explorer-layout,
.map-page-v3 .map-panel-large,
.map-page-v3 .map-panel-large .map-canvas,
.map-page-v3 .map-canvas,
.map-page-v3 .real-map,
.map-page-v3 .maplibregl-map,
.map-page-v3 .maplibregl-canvas-container{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  max-width:none!important;
  height:100%!important;
  max-height:none!important;
  min-width:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  transform:none!important;
  box-shadow:none!important;
}
.map-page-v3 .map-explorer-layout{z-index:1!important;display:block!important;overflow:hidden!important}
.map-page-v3 .map-panel-large{background:#e8ede7!important;overflow:hidden!important}
.map-page-v3 .map-canvas{background:#e8ede7!important;isolation:isolate}
.map-page-v3 .real-map{display:block!important;z-index:1!important}
.map-page-v3 .maplibregl-canvas{width:100%!important;height:100%!important;filter:saturate(.88) contrast(.99) brightness(1.01)}
.map-page-v3 .map-canvas.real-mode>:not(.real-map):not(.map-map-actions):not(.map-mobile-results-button){display:none!important}

/* Commande principale : une seule barre compacte. */
.map-page-v3 .map-command-bar{position:absolute!important;z-index:40!important;top:14px!important;left:14px!important;right:auto!important;display:flex!important;align-items:center!important;gap:7px!important;width:auto!important;max-width:calc(100% - 190px)!important;padding:7px!important;border:1px solid rgba(210,220,211,.96)!important;border-radius:15px!important;background:rgba(255,255,255,.95)!important;box-shadow:0 8px 26px rgba(21,55,43,.13)!important;backdrop-filter:blur(16px)}
.map-page-v3 .map-search{display:flex!important;align-items:center!important;gap:9px!important;width:360px!important;min-width:260px!important;height:42px!important;padding:0 12px!important;border:1px solid #dce4da!important;border-radius:10px!important;background:#fff!important;color:#174536!important}
.map-page-v3 .map-search:focus-within{border-color:#86a493!important;box-shadow:0 0 0 3px rgba(23,69,54,.08)!important}
.map-page-v3 .map-search input{width:100%!important;min-width:0!important;border:0!important;outline:0!important;background:transparent!important;color:#173f32!important;font:600 12px var(--sans)!important}
.map-page-v3 .map-search input::placeholder{color:#9aa49e!important;font-weight:500!important}
.map-page-v3 .map-search .site-svg-icon{width:17px!important;height:17px!important}
.map-page-v3 .map-search kbd{display:none!important}
.map-page-v3 .map-layer-switcher{display:flex!important;gap:5px!important;min-width:0!important;overflow-x:auto!important;scrollbar-width:none}
.map-page-v3 .map-layer-switcher::-webkit-scrollbar{display:none}
.map-page-v3 .map-layer-button{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;min-width:max-content!important;height:40px!important;min-height:40px!important;padding:0 12px!important;border:1px solid #d9e2d8!important;border-radius:999px!important;background:#fff!important;color:#456256!important;box-shadow:none!important;font:700 9px var(--mono)!important;white-space:nowrap!important}
.map-page-v3 .map-layer-button b{display:none!important}
.map-page-v3 .map-layer-button .site-svg-icon{width:13px!important;height:13px!important}
.map-page-v3 .map-layer-button:hover,.map-page-v3 .map-layer-button:focus-visible{outline:none!important;border-color:#9db2a4!important;background:#f4f7f2!important}
.map-page-v3 .map-layer-button[aria-pressed="true"]{border-color:#174536!important;background:#174536!important;color:#fff!important}
.map-page-v3 .map-layer-button[data-map-layer="activity"][aria-pressed="true"]{border-color:#bd674a!important;background:#bd674a!important}
.map-page-v3 .map-layer-button[data-map-layer="hotel"][aria-pressed="true"]{border-color:#517ca2!important;background:#517ca2!important}
.map-page-v3 .map-layer-button.map-layer-trip[aria-pressed="true"]{border-color:#e0b44c!important;background:#f0ca69!important;color:#163f31!important}
.map-page-v3 .map-filter-toggle,.map-page-v3 .map-filter-bar{display:none!important}

/* Actions de carte séparées de la recherche. */
.map-page-v3 .map-map-actions{position:absolute!important;z-index:35!important;top:14px!important;right:14px!important;display:flex!important;gap:6px!important}
.map-page-v3 .map-map-actions .map-mode{display:grid!important;place-items:center!important;width:40px!important;height:40px!important;min-height:40px!important;padding:0!important;border:1px solid rgba(210,220,211,.96)!important;border-radius:11px!important;background:rgba(255,255,255,.95)!important;color:#315448!important;box-shadow:0 7px 20px rgba(21,55,43,.11)!important;backdrop-filter:blur(14px)}
.map-page-v3 .map-map-actions .map-mode span:last-child{display:none!important}
.map-page-v3 .map-map-actions .site-svg-icon{width:15px!important;height:15px!important}
.map-page-v3 .map-map-actions .map-mode:hover,.map-page-v3 .map-map-actions .map-mode:focus-visible{outline:none!important;border-color:#8ea899!important;background:#fff!important}

/* Résultats : overlay, jamais une colonne de layout. */
.map-page-v3 .map-results-panel{position:absolute!important;z-index:32!important;top:70px!important;left:14px!important;bottom:auto!important;width:316px!important;max-width:calc(100% - 28px)!important;max-height:calc(100% - 88px)!important;display:grid!important;grid-template-rows:auto minmax(0,1fr)!important;overflow:hidden!important;margin:0!important;border:1px solid rgba(211,221,212,.96)!important;border-radius:15px!important;background:rgba(252,253,250,.96)!important;box-shadow:0 12px 34px rgba(17,51,40,.14)!important;backdrop-filter:blur(14px);transition:width .18s ease,height .18s ease,opacity .18s ease!important}
.map-page-v3 .map-results-panel.is-collapsed{width:44px!important;height:44px!important;max-height:44px!important;border-radius:12px!important}
.map-page-v3 .map-results-panel.is-collapsed .map-results-head{width:44px!important;height:44px!important;min-height:44px!important;padding:4px!important;border:0!important;background:rgba(255,255,255,.96)!important}
.map-page-v3 .map-results-panel.is-collapsed .map-results-head>div,.map-page-v3 .map-results-panel.is-collapsed .map-result-list{display:none!important}
.map-page-v3 .map-results-panel.is-collapsed .map-results-collapse{margin:auto!important}
.map-page-v3 .map-results-grabber{display:none!important}
.map-page-v3 .map-results-head{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:12px!important;border-bottom:1px solid #e4e9e2!important;background:#fafbf8!important}
.map-page-v3 .map-results-head>div>span{display:none!important}
.map-page-v3 .map-results-head strong{display:block!important;color:#153f32!important;font:800 16px var(--sans)!important;letter-spacing:-.03em!important}
.map-page-v3 .map-results-head small{display:block!important;max-width:235px!important;margin-top:2px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:#87928b!important;font:8px var(--mono)!important}
.map-page-v3 .map-results-collapse{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;flex:0 0 auto!important;padding:0!important;border:1px solid #d7e0d5!important;border-radius:9px!important;background:#fff!important;color:#315448!important}
.map-page-v3 .map-results-collapse .site-svg-icon{width:14px!important;height:14px!important}
.map-page-v3 .map-result-list{overflow:auto!important;overscroll-behavior:contain!important;padding:6px!important;scrollbar-width:thin!important}
.map-page-v3 .map-result-card{display:grid!important;grid-template-columns:48px minmax(0,1fr) 30px!important;gap:9px!important;align-items:center!important;width:100%!important;min-height:62px!important;margin:0 0 3px!important;padding:5px!important;border:1px solid transparent!important;border-radius:10px!important;background:transparent!important;color:#173f32!important}
.map-page-v3 .map-result-card:hover,.map-page-v3 .map-result-card:focus-visible{outline:none!important;border-color:#dae3d8!important;background:#fff!important}
.map-page-v3 .map-result-card.is-selected{border-color:#aec5b2!important;background:#edf3e9!important}
.map-page-v3 .map-result-thumb{display:grid!important;place-items:center!important;width:48px!important;height:48px!important;overflow:hidden!important;border-radius:8px!important;background:#e7eee4!important;color:#315448!important}
.map-page-v3 .map-result-thumb img{width:100%!important;height:100%!important;object-fit:cover!important}
.map-page-v3 .map-result-thumb.is-trip{background:#f0ca69!important;color:#173f32!important}
.map-page-v3 .map-result-thumb .site-svg-icon{width:18px!important;height:18px!important}
.map-page-v3 .map-result-index{display:none!important}
.map-page-v3 .map-result-kind{display:inline-flex!important;margin-bottom:2px!important;padding:2px 5px!important;border-radius:999px!important;background:#e7efe3!important;color:#49665a!important;font:700 6px var(--mono)!important;text-transform:uppercase!important}
.map-page-v3 .map-result-copy{min-width:0!important}
.map-page-v3 .map-result-copy strong{display:block!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;font:750 11.5px var(--sans)!important}
.map-page-v3 .map-result-copy small{display:-webkit-box!important;overflow:hidden!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;margin-top:2px!important;color:#7b8881!important;font:7.5px/1.35 var(--mono)!important}
.map-page-v3 .map-result-open{display:grid!important;place-items:center!important;width:30px!important;height:30px!important;padding:0!important;border:1px solid #d5dfd3!important;border-radius:9px!important;background:#fff!important;color:#315448!important}
.map-page-v3 .map-result-open .site-svg-icon{width:12px!important;height:12px!important}
.map-page-v3 .map-results-empty{padding:24px 14px!important;color:#7b8881!important;font:9px/1.5 var(--mono)!important;text-align:center!important}

/* Repères : petits, nets, sans double pin. */
.map-page-v3 .maplibre-marker{display:grid!important;place-items:center!important;width:24px!important;min-width:24px!important;height:24px!important;min-height:24px!important;padding:0!important;border:2px solid #174536!important;border-radius:50%!important;background:#fff!important;color:#174536!important;box-shadow:0 2px 7px rgba(11,42,32,.2)!important}
.map-page-v3 .maplibre-marker .map-marker-pin{display:grid!important;place-items:center!important;width:100%!important;height:100%!important}
.map-page-v3 .maplibre-marker .map-marker-pin .site-svg-icon{display:none!important}
.map-page-v3 .maplibre-marker .map-marker-pin:after{content:"";display:block;width:6px;height:6px;border-radius:50%;background:currentColor}
.map-page-v3 .maplibre-marker[data-explorer-trip]{border-color:#c86b4c!important;color:#c86b4c!important}
.map-page-v3 .maplibre-marker:hover,.map-page-v3 .maplibre-marker:focus-visible{outline:3px solid rgba(23,69,54,.13)!important;transform:none!important}
.map-page-v3 .map-explorer-marker{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:3px!important;min-width:44px!important;height:28px!important;padding:0 7px!important;border:1.5px solid #c86b4c!important;border-radius:999px!important;background:#fff!important;color:#ad563a!important;box-shadow:0 2px 7px rgba(11,42,32,.16)!important;font:700 7px var(--mono)!important;white-space:nowrap!important}
.map-page-v3 .map-explorer-marker[data-kind="hotel"]{border-color:#557da2!important;color:#456c91!important}
.map-page-v3 .map-point-marker{width:28px!important;min-width:28px!important;padding:0!important;border-radius:50%!important}
.map-page-v3 .map-point-marker .map-point-label{display:grid;place-items:center;width:100%;height:100%;font:800 9px var(--mono);line-height:1}
.map-page-v3 .map-point-marker[hidden]{display:none!important}
.map-page-v3 .map-explorer-marker .site-svg-icon{width:10px!important;height:10px!important}

/* MapLibre natif. */
.map-page-v3 .maplibregl-ctrl-bottom-right{right:14px!important;bottom:14px!important}
.map-page-v3 .maplibregl-ctrl-group{overflow:hidden!important;border:1px solid rgba(210,220,211,.92)!important;border-radius:10px!important;background:#fff!important;box-shadow:0 4px 14px rgba(17,51,40,.12)!important}
.map-page-v3 .maplibregl-ctrl button{width:36px!important;height:36px!important}
.map-page-v3 .maplibregl-ctrl-attrib{opacity:.55!important;font-size:7px!important}
.map-page-v3 .map-legend,.map-page-v3 .map-foot-status,.map-page-v3 .map-mobile-results-button{display:none!important}
.map-page-v3 #floating-trip-access{display:none!important}

/* Secours cartographique 2D : la page reste une vraie carte même sans WebGL. */
.map-page-v3 .leaflet-container{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;background:#dfe8e0!important;color:#173f32!important;font:12px var(--sans)!important;z-index:2!important;isolation:isolate}
.map-page-v3 .leaflet-tile-pane{filter:saturate(.78) contrast(.98) brightness(1.04)!important}
.map-page-v3 .leaflet-control-container{z-index:30!important;pointer-events:none!important}
.map-page-v3 .leaflet-control{pointer-events:auto!important}
 .map-page-v3 .leaflet-control-zoom{overflow:hidden!important;margin:0 14px 14px 0!important;border:1px solid rgba(210,220,211,.96)!important;border-radius:10px!important;background:#fff!important;box-shadow:0 4px 14px rgba(17,51,40,.12)!important}
.map-page-v3 .leaflet-control-zoom a{width:36px!important;height:36px!important;line-height:34px!important;border:0!important;background:#fff!important;color:#315448!important;font-size:18px!important}
.map-page-v3 .leaflet-control-zoom a+a{border-top:1px solid #e4e9e2!important}
.map-page-v3 .leaflet-control-attribution{margin:0 14px 8px 0!important;border-radius:5px!important;background:rgba(255,255,255,.82)!important;color:#61756a!important;font-size:8px!important}
.map-page-v3 .leaflet-control-attribution a{color:#315448!important}
.map-page-v3 .pura-leaflet-marker{width:0!important;height:0!important;border:0!important;background:transparent!important;pointer-events:none!important;overflow:visible!important}
.map-page-v3 .pura-leaflet-marker[hidden]{display:none!important}
.map-page-v3 .pura-leaflet-marker>.maplibre-marker,.map-page-v3 .pura-leaflet-marker>.map-explorer-marker{pointer-events:auto!important;transform:translate(-50%,-100%)!important}
.map-page-v3 .pura-leaflet-marker>.maplibre-marker:hover,.map-page-v3 .pura-leaflet-marker>.maplibre-marker:focus-visible,.map-page-v3 .pura-leaflet-marker>.map-explorer-marker:hover,.map-page-v3 .pura-leaflet-marker>.map-explorer-marker:focus-visible{transform:translate(-50%,-100%)!important}

@media(max-width:1050px){
  .map-page-v3 .map-command-bar{max-width:calc(100% - 126px)!important}
  .map-page-v3 .map-search{width:300px!important;min-width:220px!important}
  .map-page-v3 .map-layer-button{padding:0 10px!important}
}

@media(max-width:900px){
  body.map-page-v3{overflow:hidden}
  .map-page-v3 .site-header{height:70px}
  .map-page-v3 .map-app-main{height:calc(100dvh - 70px)}
  .map-page-v3 .map-command-bar{top:8px!important;left:8px!important;right:8px!important;display:grid!important;grid-template-columns:1fr!important;gap:6px!important;width:auto!important;max-width:none!important;padding:6px!important;border-radius:13px!important}
  .map-page-v3 .map-search{width:100%!important;min-width:0!important;height:40px!important}
  .map-page-v3 .map-layer-switcher{width:100%!important}
  .map-page-v3 .map-layer-button{height:36px!important;min-height:36px!important;padding:0 10px!important}
  .map-page-v3 .map-map-actions{top:100px!important;right:8px!important;display:grid!important}
  .map-page-v3 .map-map-actions .map-mode{width:37px!important;height:37px!important;min-height:37px!important}
  /* Le dock mobile du socle occupe les 61 derniers pixels : le panneau et les
     contrôles doivent rester au-dessus, sinon toute la carte devient
     pratiquement inutilisable sur téléphone. */
  .map-page-v3 .map-results-panel{top:auto!important;left:8px!important;right:8px!important;bottom:69px!important;width:auto!important;max-width:none!important;height:68px!important;max-height:none!important;border-radius:15px!important;grid-template-rows:auto minmax(0,1fr)!important}
  .map-page-v3 .map-results-panel.is-collapsed{width:auto!important;height:68px!important;max-height:68px!important;border-radius:15px!important}
  .map-page-v3 .map-results-panel.is-collapsed .map-results-head{display:flex!important;width:auto!important;height:68px!important;min-height:68px!important;padding:10px 12px!important}
  .map-page-v3 .map-results-panel.is-collapsed .map-results-head>div{display:block!important}
  .map-page-v3 .map-results-panel.is-collapsed .map-results-collapse{display:none!important}
  .map-page-v3 .map-results-panel.is-expanded{height:min(56dvh,520px)!important;max-height:min(56dvh,520px)!important}
  .map-page-v3 .map-results-grabber{display:block!important;position:absolute!important;top:5px!important;left:50%!important;z-index:2!important;width:42px!important;height:8px!important;padding:0!important;transform:translateX(-50%)!important;background:transparent!important}
  .map-page-v3 .map-results-grabber span{display:block!important;width:32px!important;height:3px!important;margin:auto!important;border-radius:999px!important;background:#cbd4ca!important}
  .map-page-v3 .map-results-head{padding-top:14px!important}
  .map-page-v3 .maplibregl-ctrl-bottom-right{right:8px!important;bottom:82px!important}
  .map-page-v3 .leaflet-control-zoom{margin-right:8px!important;margin-bottom:75px!important}
  .map-page-v3 .leaflet-control-attribution{margin-right:8px!important;margin-bottom:69px!important;transform:translateY(-76px)!important}
  .map-page-v3 .maplibregl-ctrl-attrib{display:none!important}
}

@media(max-width:520px){
  .map-page-v3 .map-layer-button span:nth-child(2){display:none!important}
  .map-page-v3 .map-layer-button{width:38px!important;min-width:38px!important;padding:0!important}
  .map-page-v3 .map-search input{font-size:11px!important}
}

@media(prefers-reduced-motion:reduce){
  .map-page-v3 .map-results-panel,.map-page-v3 .maplibre-marker,.map-page-v3 .map-explorer-marker{transition:none!important}
}
