/* Map discovery: quiet markers and a resizable, persistent split view. */
:root { --map-width:55%; }
@media (min-width:761px) {
  body:has(.content-grid.map-open):not(.map-fullscreen-active) .search-band { position:relative;top:auto;box-shadow:none; }
  .content-grid.map-open,.content-grid.map-expanded {--map-min-width:340px;--map-results-min-width:320px;--map-column-gap:24px;grid-template-columns:clamp(var(--map-min-width),var(--map-width),calc(100% - var(--map-column-gap) - var(--map-results-min-width))) minmax(var(--map-results-min-width),1fr);gap:var(--map-column-gap);}
  .content-grid.map-open .filters,.content-grid.map-expanded .filters {position:sticky;top:98px;min-width:0;}
  .content-grid.map-open .map-panel,.content-grid.map-expanded .map-panel {height:calc(100dvh - 122px);min-height:520px;max-height:850px;border:1px solid #dce3ed;border-radius:18px;box-shadow:none;display:flex;flex-direction:column;}
  .content-grid.map-open .map-panel.map-fullscreen {position:fixed;inset:var(--map-filter-offset,192px) 0 0;height:calc(100dvh - var(--map-filter-offset,192px));min-height:0;max-height:none;width:100vw;z-index:1302;border-radius:0;}
  body.map-fullscreen-active .topbar {position:fixed;inset:0 0 auto;z-index:1401;width:100%;transition:none;animation:none;transform:none;}
  body.map-fullscreen-active:has(.content-grid.map-open) .search-band {position:fixed;inset:var(--map-header-offset,84px) 0 auto;z-index:1400;padding:12px var(--page-gutter);background:#fff;border-bottom:1px solid var(--line);box-shadow:none;transition:none;animation:none;transform:none;}
  body.map-fullscreen-active .search-section-head,
  body.map-fullscreen-active #activeSearchFilters,
  body.map-fullscreen-active #searchAssistantHost,
  body.map-fullscreen-active .map-width-control {display:none;}
  /* Keep dialogs above both map modes and their headers. The dialog owns its
     backdrop so the raised search band is dimmed together with the page. */
  body.search-panel-open:has(.content-grid.map-open) .search-band {z-index:1600;}
  body.search-panel-open:has(.content-grid.map-open) .search-band:has(.filter-menu[open]) {visibility:hidden;}
  body.search-panel-open:has(.content-grid.map-open)::after {display:none;}
  body.search-panel-open:has(.content-grid.map-open) .search-form > .filter-menu[open] > .filter-popover {visibility:visible;box-shadow:0 22px 100px #18263840,0 0 0 100vmax #18263835;}
  .content-grid.map-open .map-panel .map-area-controls {top:calc(var(--map-toolbar-height,62px) + 12px);}
  .map-panel .map-canvas {flex:1;min-height:0;height:auto;}
  /* Keep the slider's origin fixed when the map grows or toolbar buttons wrap. */
  .map-width-control {display:flex;align-items:center;justify-content:flex-start;gap:10px;flex:1 1 100%;order:-1;font-size:11px;color:#56657a;}
  .map-width-control span {white-space:nowrap;}
  .map-width-control input {width:160px;flex:0 0 160px;height:20px;min-height:0;accent-color:#2563eb;padding:0;border:0;}
}
.map-panel .map-toolbar {display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px;background:#fff;border-bottom:1px solid #dce3ed;}
.map-panel .map-title {font-size:15px;font-weight:650;}
.map-panel .segmented {display:flex;gap:3px;padding:3px;background:#f5f7fb;border-radius:10px;}
.map-panel .segmented button {border:0;border-radius:7px;font-size:12px;font-weight:500;min-height:30px;padding:6px 10px;background:transparent;color:#56657a;box-shadow:none;}
.map-panel .segmented button.active {background:#fff;color:#182638;box-shadow:0 1px 4px #18263812;}
.map-panel .map-actions {display:flex;gap:5px;margin-left:auto;align-items:center;}
.map-panel .map-actions > button {border:1px solid #dce3ed;min-height:32px;background:white;color:#182638;font-weight:500;font-size:11px;border-radius:9px;padding:6px 9px;box-shadow:none;}
.map-panel .map-actions .map-zoom {display:none;}
.map-panel .map-actions #resetMap {display:none;}
.map-panel .real-map-hint {display:none;}
.map-panel .map-canvas {position:relative;overflow:hidden;background:#edf2f5;}
.map-panel .real-leaflet-map {height:100%;width:100%;}
.map-panel .map-area-controls {position:absolute;z-index:600;left:50%;top:124px;transform:translateX(-50%);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:calc(100% - 24px);pointer-events:none;}
.map-area-controls > * {pointer-events:auto;}
.map-area-controls button {min-height:38px;padding:9px 16px;border:1px solid #dce3ed;border-radius:22px;background:white;color:#182638;box-shadow:0 3px 14px #1826381a;font-size:12px;font-weight:600;}
.map-area-controls [data-search-map-area] {background:#2563eb;border-color:#2563eb;color:white;}
.map-area-controls span {flex:1 1 100%;text-align:center;border-radius:15px;padding:5px 10px;background:#fffffff2;font-size:11px;color:#56657a;}
.map-panel .map-price-pin.real-map-pin {display:flex;justify-content:center;align-items:center;width:max-content;min-width:75px;max-width:135px;height:34px;min-height:34px;padding:7px 12px;background:#fff;border:1px solid #cbd5e1;border-radius:22px;color:#182638;box-shadow:0 2px 5px #18263820;font-size:12px;font-weight:700;line-height:1.2;transform:none;transition:background-color 180ms,color 180ms,box-shadow 180ms;}
.map-panel .map-price-pin.real-map-pin::after,.map-panel .map-price-pin.real-map-pin::before,.map-panel .map-price-pin.real-map-pin > small {display:none;}
.map-panel .map-price-pin.real-map-pin.map-viewed {color:#65758a;background:#f1f4f8;border-color:#d8e0eb;}
.map-panel .map-price-pin.real-map-pin.active,.map-panel .map-price-pin.real-map-pin:hover {background:#2563eb;border-color:#2563eb;color:#fff;box-shadow:0 4px 12px #2563eb33;transform:none;}
/* Only the visible price/dot is clickable; transparent icon boxes must not
   intercept a tap meant for the neighbouring listing. */
#realLeafletMap .leaflet-price-icon,
#realLeafletMap .leaflet-dot-icon,
#realLeafletMap .leaflet-point-cluster-icon {pointer-events:none;}
#realLeafletMap .map-price-pin,
#realLeafletMap .map-listing-dot,
#realLeafletMap .map-point-cluster {pointer-events:auto;}
.map-panel .map-price-pin.real-map-pin {height:36px;min-height:36px;white-space:nowrap;}
.map-point-cluster {display:flex;align-items:center;justify-content:center;gap:5px;height:40px;min-height:40px;padding:0 10px;border:1px solid #bfcddd;border-radius:22px;background:#fff;color:#182638;box-shadow:0 2px 8px #18263824;font-size:14px;line-height:1;font-variant-numeric:tabular-nums;cursor:pointer;}
.map-point-cluster strong {font-weight:750;}
.map-point-cluster > span {font-size:13px;color:#64748b;}
.map-point-cluster:hover,.map-point-cluster.active {color:#fff;background:#2563eb;border-color:#2563eb;}
.map-point-cluster:hover > span,.map-point-cluster.active > span {color:inherit;}
.map-point-cluster:focus-visible,.map-price-pin:focus-visible {outline:3px solid #2563eb;outline-offset:3px;}
.listing-group-popup .leaflet-popup-content {margin:14px;}
.map-group-popup {width:100%;min-width:0;}
.map-group-popup > header {display:flex;flex-direction:column;gap:4px;padding:0 20px 12px 0;color:#182638;border-bottom:1px solid #e4e8ef;}
.map-group-popup > header > strong {font-size:15px;line-height:1.3;font-weight:650;}
.map-group-popup > header > span {font-size:12px;color:#56657a;}
.map-group-list {max-height:min(350px,48dvh);overflow-y:auto;overscroll-behavior:contain;}
.map-group-listing {display:grid;grid-template-columns:70px minmax(0,1fr);gap:11px;padding:12px 0;border-bottom:1px solid #e4e8ef;color:#182638 !important;text-decoration:none;}
.map-group-listing:last-child {border-bottom:0;}
.map-group-listing:hover {background:#f5f7fb;}
.map-group-listing:focus-visible {outline:2px solid #2563eb;outline-offset:-2px;}
.map-group-listing > img {width:70px;height:74px;border-radius:9px;object-fit:cover;background:#edf2f7;}
.map-group-listing-copy {display:flex;flex-direction:column;gap:5px;min-width:0;}
.map-group-listing-copy > strong {font-size:16px;line-height:1.25;overflow-wrap:anywhere;}
.map-group-listing-copy > strong > small {display:block;font-size:11px;font-weight:450;color:#56657a;margin-top:3px;}
.map-group-listing-copy > span {font-size:12px;line-height:1.35;}
.map-group-listing-copy > small {font-size:11px;line-height:1.4;color:#56657a;}
@media(max-width:760px) {
 .map-point-cluster {min-height:44px;height:44px;}
 .map-panel .map-price-pin.real-map-pin {min-height:44px;height:44px;}
}
.map-panel .map-area-dot {background:#fff;border:1px solid #cbd5e1;color:#182638;box-shadow:0 2px 6px #1826381a;border-radius:24px;}
.map-panel .map-area-dot:hover {background:#2563eb;color:#fff;border-color:#2563eb;}
.map-panel .leaflet-control-zoom {border:1px solid #dce3ed;border-radius:12px;overflow:hidden;box-shadow:0 3px 12px #18263814;}
.map-panel .leaflet-control-zoom a {width:36px;height:36px;line-height:36px;font-size:20px;color:#182638;}
.map-panel .leaflet-popup-content-wrapper {border-radius:15px;box-shadow:0 7px 28px #18263826;}
.map-panel .leaflet-listing-popup {overflow:hidden;border-radius:10px;}
@media(max-width:1000px) and (min-width:761px) {
 .content-grid.map-open,.content-grid.map-expanded {--map-column-gap:18px;}
 .map-panel .map-title {display:none;}
 .map-panel .map-actions {margin-left:0;}
}
@media(max-width:760px) {
 .map-width-control {display:none;}
 .map-panel .map-toolbar {padding:12px 14px;gap:8px;}
 .map-panel .segmented {flex:1;justify-content:center;}
 .map-panel .map-actions {display:flex;}
 .map-panel .map-actions #closeMap {display:block;font-size:12px;}
 .map-panel .map-actions #mapBackLevel {font-size:12px;}
 body.map-fullscreen-active .map-panel.map-fullscreen {inset:0;min-height:0;height:100dvh;padding-bottom:env(safe-area-inset-bottom);border:0;z-index:1302;display:flex;flex-direction:column;}
 body.map-fullscreen-active .map-panel.map-fullscreen .map-canvas {flex:1;min-height:0;height:auto;}
 body.map-fullscreen-active .map-panel .map-area-controls {top:90px;}
 body.map-fullscreen-active .search-band {display:none !important;}
 body:where([data-view=home]).map-fullscreen-active.mobile-map-filters-open .search-band:where(:not([hidden])) {display:block !important;z-index:1400;}
 body.map-fullscreen-active .map-toolbar .map-mobile-brand {display:none;}
}
.map-area-summary {display:block;margin-top:8px;border:1px solid #dce3ed;border-radius:16px;padding:6px 10px;background:#f5f7fb;color:#56657a;font-size:11px;max-width:100%;text-align:left;}
@media (min-width:761px) and (max-height:600px) {
 body.map-fullscreen-active .topbar {display:none;}
 body.map-fullscreen-active:has(.content-grid.map-open) .search-band {padding-block:6px;}
 body.map-fullscreen-active #searchForm.search-controls {--search-control-height:56px;padding:6px;}
 body.map-fullscreen-active #searchForm.search-controls > .filter-menu > summary {padding:8px 14px;}
}
@media(max-width:760px) {
 body.map-fullscreen-active .map-panel.map-fullscreen {height:calc(100dvh - 64px - env(safe-area-inset-bottom));bottom:calc(64px + env(safe-area-inset-bottom));}
 body.map-fullscreen-active .map-panel .map-toolbar {min-height:66px;padding:12px 10px;}
 body.map-fullscreen-active .map-panel .map-actions #closeMap,
 body.map-fullscreen-active .map-panel .map-actions #mapBackLevel {width:34px;height:34px;padding:0;font-size:0 !important;display:grid;place-items:center;}
 body.map-fullscreen-active .map-panel #closeMap::before {content:"×";display:block;font-size:23px;line-height:1;}
 body.map-fullscreen-active .map-panel #mapBackLevel::before {content:"←";display:block;font-size:20px;line-height:1;}
 body.map-fullscreen-active .map-panel .map-area-controls {top:78px;}
 body.map-fullscreen-active.mobile-map-filters-open .search-band {position:fixed !important;inset:10px 10px 76px !important;width:calc(100% - 20px);height:auto;max-height:none;padding:16px;overflow:auto;border:1px solid #dce3ed;border-radius:18px;background:#fff;box-shadow:0 20px 80px #18263850;}
 body.map-fullscreen-active.mobile-map-filters-open .search-band .mobile-filter-close {display:block;width:32px;height:32px;border:0;background:#f5f7fb;border-radius:50%;font-size:22px;}
 body.map-fullscreen-active.mobile-map-filters-open #searchAssistantHost {display:none;}
}
