.map-page{margin:0}
.map-page-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px}
.map-page-heading p{color:var(--muted);margin:0}
.map-page-heading > button{border:0;border-radius:999px;padding:12px 18px;background:linear-gradient(135deg,#6950e9,#166ff2);color:#fff;font-weight:800;white-space:nowrap;cursor:pointer;box-shadow:0 9px 20px rgba(60,76,199,.22)}
.map-page-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);height:min(75vh,760px);min-height:520px;border:1px solid #dce4f3;border-radius:28px;overflow:hidden;background:#fff;box-shadow:0 25px 65px rgba(31,62,125,.14)}
.map-canvas-wrap{position:relative;min-width:0;background:#eaf1fa}
#exploreMap{width:100%;height:100%;z-index:0}
.map-legend{position:absolute;z-index:400;left:18px;bottom:18px;display:flex;gap:13px;padding:10px 13px;border:1px solid rgba(255,255,255,.9);border-radius:999px;background:rgba(255,255,255,.95);box-shadow:0 8px 22px rgba(27,45,84,.14);font-size:.75rem;font-weight:800;color:#394967}
.map-legend span{display:flex;align-items:center;gap:6px}
.map-dot{display:inline-block;width:10px;height:10px;border-radius:50%}
.map-dot-event{background:#eb5e83}.map-dot-experience{background:#7152eb}
.map-sidebar{display:flex;flex-direction:column;min-height:0;border-left:1px solid #e2e8f4;background:linear-gradient(180deg,#fbfaff,#fff 45%)}
.map-sidebar-head{padding:20px 18px 12px;border-bottom:1px solid #e8ecf4}
.map-sidebar h2{font-size:1.15rem;margin:0 0 12px}
.map-region-select{width:100%;border:1px solid #dfe5f1;border-radius:12px;padding:10px 12px;background:#fff;color:var(--ink);font:inherit;font-size:.88rem;font-weight:750;cursor:pointer}
.map-region-select:focus-visible{outline:3px solid #b8c9ff;outline-offset:2px}
.map-status{padding:0 18px;color:var(--muted);font-size:.82rem}
.map-status:empty{display:none}
.map-results{overflow:auto;min-height:0;padding:8px 12px 18px}
.map-result{display:flex;width:100%;gap:11px;align-items:center;padding:10px;border:1px solid transparent;border-radius:16px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}
.map-result:hover,.map-result:focus-visible{background:#f1f4ff;border-color:#dce4ff;outline:none}
.map-result img,.map-result-media{flex:0 0 56px;width:56px;height:56px;border-radius:11px;object-fit:cover;background:linear-gradient(135deg,#d9eaff,#ede4ff)}
.map-result-copy{min-width:0}.map-result-copy strong,.map-result-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-result-copy strong{font-size:.88rem}.map-result-copy small{color:var(--muted);font-size:.75rem;margin-top:4px}
.map-pin{display:grid;place-items:center;width:30px;height:30px;border:3px solid #fff;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);box-shadow:0 5px 14px rgba(25,41,82,.28);color:#fff;font-weight:900}
.map-pin span{transform:rotate(45deg)}.map-pin-event{background:#eb5e83}.map-pin-experience{background:#7152eb}
.map-popup-button{display:block;margin-top:9px;border:0;border-radius:9px;background:#6950e9;color:#fff;padding:8px 11px;font-weight:800;cursor:pointer}
.map-page{scroll-margin-top:88px}.recreated-route-pin{display:grid;place-items:center;width:32px;height:32px;border:3px solid #fff;border-radius:50%;background:#315cff;color:#fff;font-weight:850;box-shadow:0 4px 12px #203d8a66}.recreated-route-panel{margin:16px 14px 4px;padding:16px;border:1px solid #cbd8ff;border-radius:16px;background:#eef3ff}.recreated-route-heading{display:flex;align-items:start;justify-content:space-between;gap:8px}.recreated-route-heading strong{font-size:1rem}.recreated-route-heading button{border:0;background:transparent;color:var(--muted);font-size:1.4rem;cursor:pointer}.recreated-route-panel ol{list-style:none;margin:13px 0;padding:0;display:grid;gap:11px}.recreated-route-panel li{display:flex;gap:10px;align-items:start}.recreated-route-panel li>span{flex:0 0 24px;height:24px;display:grid;place-items:center;border-radius:50%;background:#315cff;color:#fff;font-size:.75rem;font-weight:800}.recreated-route-panel li strong,.recreated-route-panel li small{display:block}.recreated-route-panel li small{margin-top:3px;color:var(--muted)}.recreated-route-panel>a{display:inline-flex;margin-top:4px;color:#2453dc;font-weight:800;text-decoration:none}
@media(max-width:780px){.map-page-heading{align-items:start}.map-page-heading > button{padding:10px 12px}.map-page-shell{display:flex;flex-direction:column;height:auto;min-height:0;border-radius:22px}.map-canvas-wrap{height:55vh;min-height:360px}.map-sidebar{border-left:0;border-top:1px solid #e2e8f4}.map-results{max-height:280px}.map-legend{left:10px;bottom:10px}}
