/* Map-led homepage; scoped so shared cards and other routes keep their layout. */
html[data-appearance="modern"] .home-page {max-width: min(92rem,100%);}
html[data-appearance="modern"] #main .home-map-shell {grid-column:2 / -2;min-width:0;margin:0 0 24px;padding:0;border:0;background:transparent;}
#main .home-map-shell .sr-only {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
#main .home-map-shell .map-search {display:flex;gap:8px;margin:0 0 10px;align-items:center;}
#main .home-map-shell .map-search input {flex:1;min-width:0;font-size:16px;min-height:44px;border-radius:12px;}
#main .home-map-shell button {min-height:44px;cursor:pointer;}
#main .home-map-shell .map-categories {display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;}
#main .home-map-shell .map-categories button {display:inline-flex;align-items:center;gap:6px;white-space:nowrap;flex-shrink:0;padding:6px 12px;border:1px solid #ddd;border-radius:12px;background:#fff;color:#252525;}
#main .home-map-shell .map-categories button[aria-pressed="true"] {background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink);}
.pin-key {display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:700;color:var(--accent-contrast);flex-shrink:0;}
.pin-free,.pin-food,.pin-drink,.pin-event,.pin-sale,.pin-service {--pin:var(--accent);background:var(--accent);}
#main .home-map-shell .map-status {font-size:13px;margin:3px 0 8px;min-height:18px;color:#505050;}
.home-map-stage {position:relative;border:1px solid #d8d8d8;border-radius:24px;overflow:hidden;background:#e9e9e9;isolation:isolate;}
#home-map {height:clamp(340px,calc(100svh - 290px),760px);position:relative;overflow:hidden;touch-action:pan-y;cursor:grab;outline-offset:-4px;}
#home-map:active {cursor:grabbing;}
.home-map-layer {position:absolute;inset:0;overflow:hidden;}
.home-map-pins {position:absolute;inset:0;transform-origin:0 0;}
.home-map-radius {position:absolute;border:2px dashed var(--accent);border-radius:50%;background:color-mix(in srgb,var(--accent-soft) 20%,transparent);transform:translate(-50%,-50%);pointer-events:none;}
.home-map-layer img {position:absolute;max-width:none!important;width:var(--map-tile-size,256px)!important;height:var(--map-tile-size,256px)!important;user-select:none;pointer-events:none;border-radius:0!important;margin:0!important;}
#main .home-map-shell .home-map-pin {position:absolute;transform:translate(-50%,-50%);width:44px;min-height:44px;height:44px;padding:0;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px #0003;background:var(--pin,var(--accent));color:var(--accent-contrast);font-size:16px;font-weight:750;z-index:2;}
#main .home-map-shell .home-map-pin:focus-visible {outline:3px solid #111;outline-offset:3px;z-index:4;}
.home-map-origin {position:absolute;width:16px;height:16px;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:50%;background:var(--accent);box-shadow:0 0 0 8px #68686833;pointer-events:none;z-index:3;}
.home-map-controls {position:absolute;top:12px;right:12px;display:grid;gap:5px;z-index:5;}
.home-map-controls button {background:#fff;color:#222;border:1px solid #ccc;border-radius:12px;min-width:44px;box-shadow:0 2px 8px #0001;}
.home-map-credit {position:absolute;bottom:0;right:0;z-index:5;background:#fffffff2;font-size:11px!important;margin:0!important;padding:3px 7px!important;color:#333;}
.home-map-credit a {color:var(--accent-ink);}
.home-map-error {position:absolute;bottom:25px;left:8px;right:8px;z-index:4;background:#fff;padding:8px;font-size:13px;pointer-events:none;}
#map-details {position:absolute;top:12px;bottom:32px;left:12px;width:min(380px,calc(100% - 90px));z-index:6;background:#fff;border:1px solid #ddd;border-radius:16px;overflow:auto;padding:12px;box-shadow:0 8px 28px #0002;}
#map-details[hidden] {display:none;}
#map-details .explore-card {border:0;box-shadow:none;margin:0;padding:12px 0;display:block;}
#map-details #map-close {position:sticky;top:0;background:#fff;z-index:2;}
#main .home-map-shell .map-list {margin-top:10px;border:1px solid #e0e0e0;border-radius:16px;padding:0 12px;}
#main .home-map-shell summary {min-height:44px;display:flex;align-items:center;gap:8px;cursor:pointer;}
#main .home-map-shell .map-list-place {display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #eee;padding:10px 4px;color:#222;}
#main .home-map-shell .fine-print,#main .home-map-shell .map-privacy {font-size:12px;margin:8px 0;}
@media(max-width:600px){
 #main .home-map-shell .map-search {display:grid;grid-template-columns:minmax(0,1fr) auto;}
 #main .home-map-shell #map-locate {grid-column:1 / -1;justify-self:start;padding:0 12px;}
 #home-map {height:max(340px,calc(100svh - 345px));}
 .home-map-stage {border-radius:16px;}
 #map-details {top:auto;bottom:26px;left:8px;right:8px;width:auto;max-height:75%;}
}

#main .home-map-shell .pin-cluster {text-shadow:none;font-weight:900;}

/* The list keeps the same prices, conditions, access evidence and saves as details. */
#main .home-map-shell .map-list-result {min-width:0;border-bottom:1px solid #e0e0e0;padding:12px 0;}
#main .home-map-shell .map-list-result .explore-card {display:block;min-width:0;margin:0;padding:12px;border:1px solid transparent;box-shadow:none;border-radius:12px;}
#main .home-map-shell .map-list-result.is-selected .explore-card {border-color:var(--accent);background:var(--accent-soft);}
#main .home-map-shell .home-map-pin.is-selected {outline:3px solid var(--accent-ink);outline-offset:3px;z-index:4;}
#main .home-map-shell .map-list-result .map-list-place {width:auto;border:1px solid #dcdcdc;border-radius:12px;padding:8px 12px;margin-top:12px;}
#main .home-map-shell .map-list-result .catch {border-left:3px solid var(--accent);padding-left:10px;}
#main .home-map-shell .map-list-result .row-actions {flex-wrap:wrap;}
@media(min-width:1000px){
 #main .home-map-shell {display:grid;grid-template-columns:minmax(300px,360px) minmax(0,1fr);column-gap:16px;align-items:start;}
 #main .home-map-shell > * {grid-column:1 / -1;}
 #main .home-map-shell .home-map-stage {grid-column:2;grid-row:5;}
 #main .home-map-shell .map-list {grid-column:1;grid-row:5;margin-top:0;max-height:clamp(340px,calc(100svh - 290px),760px);overflow:auto;}
}

/* A map control stays above pins and place details in both map sizes. */
#main .home-map-shell #map-fullscreen-toggle {position:absolute;top:12px;left:12px;z-index:7;display:grid;place-items:center;width:48px;height:48px;min-width:48px;padding:10px;border:1px solid #ccc;border-radius:12px;background:#fff;color:#222;box-shadow:0 2px 8px #0002;}
#main .home-map-shell #map-fullscreen-toggle[hidden] {display:none;}
#map-fullscreen-toggle svg {width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
#map-fullscreen-toggle svg[hidden] {display:none;}
#main .home-map-shell #map-current-location {position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:7;display:flex;align-items:center;gap:6px;min-height:48px;padding:8px 10px;border:1px solid #ccc;border-radius:12px;background:#fff;color:#222;font-size:13px;box-shadow:0 2px 8px #0002;}
#map-current-location svg {width:22px;height:22px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;}
#main .home-map-shell #map-location-status {position:absolute;z-index:7;top:72px;left:max(12px,env(safe-area-inset-left));right:calc(84px + env(safe-area-inset-right));max-width:480px;margin:0;padding:8px 12px;border:1px solid #ddd;border-radius:12px;background:#fff;color:#333;font-size:13px;pointer-events:none;}
#main .home-map-shell #map-current-location[hidden],#main .home-map-shell #map-location-status[hidden] {display:none;}
#main .home-map-shell #map-details {top:72px;}
body.map-fullscreen-open {overflow:hidden;}
html.street-page[data-appearance=modern] body.grid-site.street-site #main dialog#map-fullscreen {position:fixed;inset:0;top:var(--map-screen-top,0);width:100%;max-width:none;height:var(--map-screen-height,100dvh);max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#fff;box-shadow:none;overflow:hidden;}
html.street-page[data-appearance=modern] body.grid-site.street-site #main dialog#map-fullscreen:not([open]) {display:none;}
/* The interactive canvas fills the screen; controls float above it. */
html.street-page[data-appearance=modern] body.grid-site.street-site #main #map-fullscreen .home-map-shell {
 position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;margin:0;padding:0;overflow:hidden;background:#e9e9e9;
}
html.street-page[data-appearance=modern] body.grid-site.street-site #main #map-fullscreen .home-map-stage {
 position:absolute;inset:0;width:100%;height:100%;min-height:0;margin:0;border:0;border-radius:0;
}
html.street-page[data-appearance=modern] body.grid-site.street-site #main #map-fullscreen #home-map {height:100%;min-height:0;touch-action:none;}
#main #map-fullscreen #map-fullscreen-toggle {top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));}
#main #map-fullscreen .home-map-controls {top:auto;bottom:calc(36px + env(safe-area-inset-bottom));right:max(12px,env(safe-area-inset-right));display:grid;}
#main #map-fullscreen .home-map-credit {padding-bottom:max(3px,env(safe-area-inset-bottom))!important;}
#main #map-fullscreen #map-fullscreen-search {
 position:absolute;z-index:8;top:max(12px,env(safe-area-inset-top));left:calc(72px + env(safe-area-inset-left));right:calc(176px + env(safe-area-inset-right));
 margin:0;padding:0;border:0;background:transparent;
}
#main #map-fullscreen #map-fullscreen-search > summary {min-height:48px;padding:8px 12px;width:fit-content;max-width:100%;border:1px solid #ccc;border-radius:12px;background:#fff;font-size:.875rem;box-shadow:0 2px 8px #0002;}
#main #map-fullscreen .map-fullscreen-search-panel {
 position:absolute;top:calc(100% + 8px);left:calc(-60px - env(safe-area-inset-left));width:calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right));max-width:480px;
 max-height:calc(var(--map-screen-height,100dvh) - 272px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;
 padding:12px;border:1px solid #ccc;border-radius:16px;background:#fff;box-shadow:0 8px 28px #0002;
}
#main #map-fullscreen .map-search {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;}
#main #map-fullscreen #map-locate {grid-column:1/-1;justify-self:start;}
#main #map-fullscreen .map-categories {flex-wrap:wrap;overflow:visible;}
#main #map-fullscreen .map-route-links {flex-wrap:wrap;gap:12px;margin-top:12px;}
#main #map-fullscreen .map-route-links h1 {font-size:1rem;}
#main #map-fullscreen .map-list {
 position:absolute;z-index:7;bottom:calc(36px + env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:calc(84px + env(safe-area-inset-right));
 width:auto;max-width:480px;max-height:calc(100% - 112px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;
 margin:0;padding:0 12px;background:#fff;box-shadow:0 2px 8px #0002;
}
#main #map-fullscreen .map-list[open] {height:min(52%,560px);}
#main #map-fullscreen .map-list > summary {position:sticky;top:0;min-height:48px;background:#fff;z-index:2;}
#main #map-fullscreen #map-details {
 top:auto;bottom:calc(92px + env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:calc(84px + env(safe-area-inset-right));
 width:auto;max-width:480px;max-height:calc(100% - 164px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
}
#main #map-fullscreen .home-map-error {bottom:calc(96px + env(safe-area-inset-bottom));right:calc(84px + env(safe-area-inset-right));max-width:480px;}
#main #map-fullscreen #save-status:not(:empty) {position:absolute;z-index:9;bottom:calc(96px + env(safe-area-inset-bottom));left:12px;right:84px;width:auto;max-width:480px;transform:none;}
#main #map-fullscreen .home-map-shell > .fine-print {display:none;}
#main #map-fullscreen[data-compact=true] .home-map-controls {display:flex;}
#main #map-fullscreen[data-compact=true] .map-fullscreen-search-panel {max-height:calc(var(--map-screen-height,100dvh) - 148px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}
#main #map-fullscreen[data-compact=true] .map-list,#main #map-fullscreen[data-compact=true] #map-details {right:calc(204px + env(safe-area-inset-right));}
@media(max-width:600px){
 #main .home-map-shell #map-details {top:auto;max-height:min(75%,calc(100% - 104px));}
}
@media(max-width:480px){
 #main #map-fullscreen #map-fullscreen-search {top:calc(72px + env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));right:calc(84px + env(safe-area-inset-right));}
 #main #map-fullscreen .map-fullscreen-search-panel {left:0;max-height:calc(var(--map-screen-height,100dvh) - 208px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}
 #main #map-fullscreen #map-location-status {top:calc(132px + env(safe-area-inset-top));}
 #main #map-fullscreen #map-details {max-height:calc(100% - 224px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}
 #main #map-fullscreen .map-list {max-height:calc(100% - 172px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}
}
@media(max-height:480px){
 #main #map-fullscreen .home-map-controls {display:flex;}
 #main #map-fullscreen .map-fullscreen-search-panel {max-height:calc(var(--map-screen-height,100dvh) - 148px - env(safe-area-inset-top) - env(safe-area-inset-bottom));}
 #main #map-fullscreen .map-list,#main #map-fullscreen #map-details {right:calc(204px + env(safe-area-inset-right));}
}
