/* CARTE INTERACTIVE WHEELACCESS */
.map-page { min-height: 100vh; }
.logo-link { color: inherit; text-decoration: none; }
.active-page { color: var(--green) !important; }
.map-main { padding: 34px 5% 72px; }
.map-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:28px; margin-bottom:25px; }
.map-kicker { color:var(--green); font-weight:800; margin-bottom:10px; }
.map-heading h2 { font-size:clamp(38px,5vw,66px); line-height:1.02; letter-spacing:-2px; }
.map-heading h2 span { color:var(--green); }
.map-heading p:not(.map-kicker) { max-width: 1480px; margin-top:15px; color:#b8b8b8; line-height:1.6; }
.locate-button { min-height:50px; padding:0 22px; border:1px solid rgba(189,255,0,.5); border-radius:14px; color:var(--green); background:rgba(189,255,0,.06); white-space:nowrap; }
.locate-button:hover { background:var(--green); color:#050505; }
.map-tools { display:grid; grid-template-columns:minmax(260px,1fr) 230px auto auto; gap:12px; padding:16px; border:1px solid #2d2d2d; border-radius:20px 20px 0 0; background:#0d0d0d; }
.map-search-box { display:flex; align-items:center; gap:12px; min-height:50px; padding:0 16px; border:1px solid #383838; border-radius:13px; background:#151515; }
.map-search-box:focus-within { border-color:var(--green); box-shadow:0 0 0 3px rgba(189,255,0,.08); }
.map-search-box input { width:100%; border:0; outline:0; color:#fff; background:transparent; font-size:15px; }
.map-tools select { min-height:50px; padding:0 14px; border:1px solid #383838; border-radius:13px; color:#fff; background:#151515; outline:none; }
.map-tools button { min-height:50px; padding:0 24px; border-radius:13px; background:var(--green); color:#050505; }
.map-tools .secondary-button { border:1px solid #404040; color:#eee; background:#181818; }
.map-layout { display:grid; grid-template-columns:360px minmax(0,1fr); height:680px; border:1px solid #2d2d2d; border-top:0; border-radius:0 0 24px 24px; overflow:hidden; background:#090909; }
.map-sidebar { min-width:0; border-right:1px solid #2b2b2b; background:#0c0c0c; overflow:hidden; display:flex; flex-direction:column; }
.map-results-header { padding:24px; border-bottom:1px solid #292929; }
.map-results-header p { color:#969696; font-size:13px; text-transform:uppercase; letter-spacing:1px; }
.map-results-header h3 { margin-top:5px; font-size:24px; color:var(--green); }
.map-places-list { padding:14px; overflow-y:auto; display:grid; align-content:start; gap:12px; }
.map-place-card { width:100%; display:grid; grid-template-columns:88px minmax(0,1fr); gap:14px; padding:10px; border:1px solid #292929; border-radius:16px; text-align:left; color:#fff; background:#141414; cursor:pointer; }
.map-place-card:hover,.map-place-card.is-active { border-color:var(--green); background:#191d10; transform:translateY(-1px); }
.map-place-card img { width:88px; height:88px; object-fit:cover; border-radius:11px; }
.map-place-card h4 { margin:2px 0 6px; font-size:17px; }
.map-place-card .place-meta { color:#a8a8a8; font-size:12px; }
.map-place-card .place-rating { margin-top:8px; color:var(--green); font-size:13px; font-weight:800; }
.map-empty { padding:38px 25px; text-align:center; color:#aaa; }
.map-empty span { font-size:34px; }
.map-empty h3 { margin:12px 0 7px; color:#fff; }
.map-shell { position:relative; min-width:0; min-height:0; height:100%; }
#wheelaccessMap { width:100%; height:100%; min-height:520px; background:#171717; isolation:isolate; }
.map-legend { position:absolute; z-index:500; left:18px; bottom:18px; display:flex; align-items:center; gap:10px; padding:10px 13px; border:1px solid #333; border-radius:13px; background:rgba(8,8,8,.9); color:#ddd; font-size:12px; box-shadow:0 10px 35px rgba(0,0,0,.35); }
.legend-marker,.wa-marker span { display:flex; align-items:center; justify-content:center; width:36px; height:36px; border:3px solid #080808; border-radius:50% 50% 50% 8px; transform:rotate(-45deg); background:var(--green); color:#050505; font-size:10px; font-weight:1000; box-shadow:0 3px 12px rgba(0,0,0,.45); }
.legend-marker { width:25px; height:25px; border-width:2px; }
.legend-marker::first-line,.wa-marker span b { transform:rotate(45deg); }
.wa-marker { background:transparent; border:0; }
.wa-marker span b { display:block; }
.leaflet-container { font-family:inherit; }
.leaflet-control-zoom a { color:#fff !important; background:#111 !important; border-color:#333 !important; }
.leaflet-control-zoom a:hover { color:#050505 !important; background:var(--green) !important; }
.leaflet-popup-content-wrapper,.leaflet-popup-tip { color:#fff; background:#101010; }
.leaflet-popup-content-wrapper { border:1px solid #3a3a3a; border-radius:18px; box-shadow:0 20px 50px rgba(0,0,0,.55); }
.leaflet-popup-content { margin:0; width:260px !important; }
.wa-popup img { width:100%; height:135px; object-fit:cover; border-radius:16px 16px 0 0; }
.wa-popup-body { padding:15px; }
.wa-popup-body small { color:var(--green); font-weight:800; }
.wa-popup-body h3 { margin:5px 0 8px; font-size:20px; }
.wa-popup-body p { color:#bdbdbd; font-size:13px; line-height:1.45; }
.wa-popup-rating { margin:10px 0; color:var(--green) !important; font-weight:800; }
.wa-popup-link { display:block; padding:11px 14px; border-radius:11px; text-align:center; text-decoration:none; color:#050505; background:var(--green); font-weight:900; }
.user-location-marker { width:18px; height:18px; border:4px solid #fff; border-radius:50%; background:#2979ff; box-shadow:0 0 0 8px rgba(41,121,255,.22); }
@media (max-width: 1480px) {
 .map-tools { grid-template-columns:1fr 1fr; }
 .map-layout { grid-template-columns:300px minmax(0,1fr); height:650px; }
}
@media (max-width: 1480px) {
 .map-main { padding:24px 16px 50px; }
 .map-heading { align-items:flex-start; flex-direction:column; }
 .map-heading h2 { letter-spacing:-1px; }
 .locate-button { width:100%; }
 .map-tools { grid-template-columns:1fr; border-radius:18px 18px 0 0; }
 .map-tools button,.map-tools select { width:100%; }
 .map-layout { display:flex; flex-direction:column-reverse; height:auto; border-radius:0 0 18px 18px; }
 .map-shell { height:500px; }
 .map-sidebar { max-height:460px; border-top:1px solid #2b2b2b; border-right:0; }
 .map-place-card { grid-template-columns:76px minmax(0,1fr); }
 .map-place-card img { width:76px; height:76px; }
}

/* Regroupement des marqueurs Wheelaccess */
.wa-cluster {
    background: transparent;
    border: 0;
}

.wa-cluster div {
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid #080808;
    border-radius: 50%;
    background: var(--green);
    color: #050505;
    font-weight: 1000;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .48), 0 0 0 5px rgba(189, 255, 0, .17);
}

.wa-cluster span {
    font-size: 14px;
    line-height: 1;
}

.leaflet-zoom-animated {
    will-change: transform;
}

.map-main{margin-left:6%;margin-right:6%;max-width:none;}

.rating-text{color:#fff;font-size:.9rem;margin-left:6px}.community-card{max-width:220px;width:220px}