.property-map-shell{position:fixed;z-index:900;inset:var(--map-shell-top,0) 0 0;margin:0;border:0;background:#fff;overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.property-map-shell[hidden]{display:none}
body.map-experience-open{overflow:hidden}
.map-toolbar{min-height:54px;padding:.5rem .75rem;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;border-bottom:1px solid #dbe4e9;background:rgba(255,255,255,.98);box-shadow:0 2px 16px rgba(15,42,59,.08)}
.map-toolbar button{width:auto;margin:0;padding:.5rem .65rem;border-radius:8px}
.map-icon-button{display:inline-flex!important;align-items:center;gap:.38rem;min-height:36px}
.map-icon-button svg,.map-filter-submit svg,.map-filter-keyword svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.map-icon-button.is-active{background:#fff1d8!important;color:#70470b!important;box-shadow:inset 0 0 0 2px #e6a23c}
.map-icon-button.needs-attention{background:#fff1d8!important;color:#70470b!important;box-shadow:0 0 0 3px rgba(230,162,60,.3),inset 0 0 0 2px #e6a23c;animation:map-attention 1.4s ease-in-out 2}
.map-mobile-filters{display:none!important}
.map-list-return{border:0;background:transparent!important;color:var(--brand)!important;font-weight:800;padding-inline:.3rem .55rem!important}
.map-view-switcher{display:inline-flex;padding:3px;border:1px solid #cad7df;border-radius:10px;background:#eef3f5}
.map-view-switcher button{border:0;background:transparent;color:#18364c;box-shadow:none;border-radius:7px;padding:.43rem .75rem}
.map-view-switcher button:last-child{border-right:0}.map-view-switcher button.is-active{background:var(--brand);color:#fff;box-shadow:0 2px 7px rgba(16,47,68,.2)}
.map-toolbar label{display:inline-flex;align-items:center;gap:.45rem;margin:0;font-size: calc(.9rem * var(--rs-text-scale, 1))}
.map-toolbar input[type=checkbox]{width:1rem;height:1rem;margin:0;flex:0 0 auto}
.map-toolbar [data-map-status]{margin-left:auto;color:#506676;font-size: calc(.85rem * var(--rs-text-scale, 1))}
.property-map-shell.is-loading [data-map-status]::before{content:"";display:inline-block;width:.75rem;height:.75rem;margin-right:.4rem;border:2px solid #b8c6cf;border-top-color:var(--brand);border-radius:50%;animation:map-spin .7s linear infinite}
.map-filter-bar{display:grid;grid-template-columns:minmax(250px,2fr) repeat(6,minmax(96px,.55fr)) 42px auto auto;gap:.4rem;padding:.48rem .75rem;border-bottom:1px solid #dbe4e9;background:#f7fafb;align-items:center}
.map-filter-bar label{margin:0;min-width:0}
.map-filter-bar input,.map-filter-bar select{width:100%;height:38px;margin:0;border:1px solid #c9d6de;border-radius:8px;background:#fff;color:#17354a;font:inherit;font-size: calc(.82rem * var(--rs-text-scale, 1));padding:.35rem .55rem}
.map-filter-bar input:focus,.map-filter-bar select:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent)}
.map-filter-keyword{position:relative;display:block}.map-filter-keyword svg{position:absolute;left:.7rem;top:10px;color:#647887;pointer-events:none}.map-filter-keyword input{padding-left:2.15rem}
.map-filter-sort{position:relative;display:block!important;width:42px;height:38px}.map-filter-sort svg{position:absolute;z-index:1;left:11px;top:9px;width:20px;height:20px;fill:none;stroke:var(--brand);stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.map-filter-sort select{position:absolute;inset:0;width:42px!important;padding:0!important;color:transparent!important;cursor:pointer}.map-filter-sort select option{color:#17354a}
.map-filter-submit{height:38px;padding:.45rem .7rem;border-radius:8px;gap:.35rem;transition:box-shadow .15s,transform .15s,background .15s}.map-filter-submit.has-changes{background:#db7b16!important;color:#fff!important;box-shadow:0 0 0 3px rgba(219,123,22,.2);transform:translateY(-1px)}.map-filter-clear{height:38px;padding:.35rem .5rem!important;background:transparent!important;color:var(--brand)!important}
.map-workspace{display:grid;grid-template-columns:minmax(0,62%) minmax(360px,38%);min-height:0;height:100%}
.property-map-shell.view-map .map-workspace{grid-template-columns:1fr}.property-map-shell.view-map .map-results{display:none}
.property-map-shell.view-list .map-workspace{position:relative;grid-template-columns:1fr}
.property-map-shell.view-list .property-map{position:absolute;inset:0;visibility:hidden;pointer-events:none}
.property-map-shell.view-list .map-results{position:relative;z-index:1;border-left:0}
.property-map-shell.view-list:not(.list-property-open) .map-results>div{grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}
.property-map{height:100%;min-height:0;background:#e8eff2}
.map-results{height:100%;min-height:0;overflow:auto;border-left:1px solid #d4dee5;padding:1rem;background:#f5f8f9;scrollbar-gutter:stable}
.map-results h2{font-size: calc(1rem * var(--rs-heading-scale, 1));margin:.1rem 0 .85rem;color:#1a3649}
.map-results>div{display:grid;grid-template-columns:1fr;gap:.75rem}
.map-results-range{grid-column:1/-1;padding:.45rem .6rem;border-radius:8px;background:#eaf0f3;color:#496170;font-size: calc(.78rem * var(--rs-text-scale, 1));font-weight:700}
.map-results-pagination{grid-column:1/-1;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.35rem;padding:.35rem 0 .15rem}
.map-results-pagination button{display:grid;place-items:center;min-width:34px;height:34px;margin:0;padding:.25rem .45rem;border:1px solid #c9d6de;border-radius:7px;background:#fff;color:#17354a;font-weight:800;box-shadow:none}
.map-results-pagination button:hover:not(:disabled),.map-results-pagination button:focus-visible{border-color:var(--brand);color:var(--brand)}
.map-results-pagination button.is-current{border-color:var(--brand);background:var(--brand);color:#fff}
.map-results-pagination button:disabled{cursor:not-allowed;opacity:.42}
.map-page-gap{padding-inline:.1rem;color:#71838f}
.map-result-card{background:#fff;border:1px solid #d7e0e6;border-radius:12px;margin:0;min-width:0;overflow:hidden;transition:border-color .15s,box-shadow .15s,transform .15s}
.map-result-card a{display:grid;grid-template-columns:136px minmax(0,1fr);gap:.85rem;color:inherit;text-decoration:none;padding:.55rem}
.map-result-card img,.map-card-placeholder{width:136px;height:102px;border-radius:8px;object-fit:cover;background:#e6ecef;display:flex;align-items:center;justify-content:center;text-align:center;font-size: calc(.7rem * var(--rs-text-scale, 1));color:#687a85;margin:0}
.map-result-copy{min-width:0;display:flex;flex-direction:column;justify-content:center;gap:.28rem}.map-result-price{color:var(--brand);font-size: calc(1rem * var(--rs-text-scale, 1));line-height:1.2}.map-result-address{min-width:0;margin:0;color:#102f43;font-size:inherit;line-height:1.25}.map-result-street{display:block;font-size: calc(.98rem * var(--rs-text-scale, 1));font-weight:800;overflow-wrap:anywhere}.map-result-locality{display:block;margin-top:.2rem;color:#344f60;font-size: calc(.82rem * var(--rs-text-scale, 1));font-weight:500;line-height:1.35;overflow-wrap:anywhere}.map-result-facts{font-size: calc(.76rem * var(--rs-text-scale, 1));font-style:normal;line-height:1.35;color:#526775;white-space:normal}.map-result-date{color:#627784;font-size: calc(.7rem * var(--rs-text-scale, 1));font-weight:700;line-height:1.3}
/* The media wrapper deliberately carries no size of its own. Every breakpoint
   already sizes .map-result-card img, so shrink-wrapping keeps the badge
   anchored to the photo at 136/104/96/84px without duplicating those rules. */
.map-result-media{position:relative;display:block;align-self:start;line-height:0}
.map-result-status{position:absolute;top:6px;left:6px;z-index:1;max-width:calc(100% - 12px);padding:.17rem .45rem;border-radius:999px;background:#52616b;color:#fff;font-size: calc(.62rem * var(--rs-text-scale, 1));font-weight:800;letter-spacing:.03em;line-height:1.5;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 3px rgba(9,30,44,.4)}
.map-result-type{position:absolute;bottom:5px;left:5px;z-index:1;max-width:calc(100% - 10px);padding:.08rem .32rem;border-radius:4px;background:rgba(255,255,255,.92);border:1px solid rgba(16,47,67,.16);color:#1d3a4a;font-size: calc(.52rem * var(--rs-text-scale, 1));font-weight:800;letter-spacing:.03em;line-height:1.45;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 2px rgba(9,30,44,.22)}
.map-result-card:hover,.map-result-card:focus-within{border-color:var(--brand);box-shadow:0 7px 22px rgba(18,51,72,.13);transform:translateY(-1px)}
.map-result-card.is-active{border-color:#167d68;box-shadow:0 0 0 2px rgba(22,125,104,.2)}
.map-property-overlay{position:fixed;inset:0;z-index:2000;display:grid;place-items:center;padding:24px}
.map-property-overlay[hidden]{display:none}
.map-property-backdrop{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:rgba(10,28,40,.68);cursor:default}
.map-property-panel{position:relative;width:min(1440px,calc(100vw - 48px));height:calc(100vh - 40px);border-radius:14px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.35);display:grid;grid-template-rows:60px 1fr;overflow:hidden}
.map-property-panel>header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1rem;border-bottom:1px solid #d4dee5;background:#fff}
.map-property-panel>header button,.map-property-panel>header a{width:auto;margin:0;padding:.65rem .9rem}
.map-property-panel>header button{border:0;background:transparent;color:var(--brand);font-weight:700}.map-property-panel>header a{font-size: calc(.85rem * var(--rs-text-scale, 1))}
.map-property-panel iframe{width:100%;height:100%;border:0;background:#fff}
body.map-property-open{overflow:hidden}
body.map-overlay-document{background:#fff}
body.map-overlay-document main{min-height:0}
body.map-overlay-document .property-detail{padding-top:1rem}
body.map-overlay-document .property-detail>.wrap{max-width:1160px}
.map-draw-hint{cursor:crosshair!important;touch-action:none}
.map-draw-hint canvas{cursor:crosshair!important}
.property-hover-popup{pointer-events:none}.property-hover-popup .maplibregl-popup-content{overflow:hidden;padding:0;border:1px solid rgba(16,48,69,.14);border-radius:12px;background:#fff;box-shadow:0 12px 34px rgba(12,38,55,.24)}.property-hover-popup .maplibregl-popup-tip{border-top-color:#fff}
.map-listing-popup{display:grid;grid-template-columns:86px minmax(0,1fr);width:238px;min-width:0;color:#172f40;text-decoration:none}.map-listing-popup img,.map-popup-photo-placeholder{width:86px;height:92px;object-fit:cover;background:#e7edf0;display:grid;place-items:center;text-align:center;padding:.3rem;font-size: calc(.65rem * var(--rs-text-scale, 1));color:#657985}.map-listing-popup>div{display:flex;min-width:0;flex-direction:column;justify-content:center;gap:.08rem;padding:.55rem .65rem}.map-listing-popup strong{color:var(--accent-ink);font-size: calc(.98rem * var(--rs-text-scale, 1));line-height:1.15}.map-listing-popup b,.map-listing-popup span,.map-listing-popup small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.map-listing-popup b{font-size: calc(.78rem * var(--rs-text-scale, 1))}.map-listing-popup span,.map-listing-popup small{color:#5a6f7d;font-size: calc(.69rem * var(--rs-text-scale, 1))}.map-listing-popup small{margin-top:.15rem}
.map-fallback{margin:0;padding:1rem;background:#fff7e7;color:#6f4a0c}.map-empty{display:grid;justify-items:start;gap:.5rem;padding:1.1rem;border:1px solid #e2c17d;border-radius:12px;background:#fff9ed;color:#506676;font-size: calc(.9rem * var(--rs-text-scale, 1))}.map-empty strong{color:#17354a;font-size: calc(1rem * var(--rs-text-scale, 1))}.map-empty span{line-height:1.45}.map-empty button{width:auto;margin:.2rem 0 0;padding:.65rem .85rem;border:0;border-radius:8px;background:var(--accent-fill);color:#fff;font-weight:800;box-shadow:0 4px 12px rgba(15,73,62,.2)}
.maplibregl-ctrl-attrib{font-size: calc(10px * var(--rs-text-scale, 1))}.maplibregl-popup-content{padding:.65rem}
.property-location-map [data-listing-location-map]{position:relative;height:340px;border:1px solid #d4dee5;background:#e8eff2}
.map-basemap-control button{display:grid!important;place-items:center;width:32px!important;height:32px!important;padding:6px!important;background:#fff!important;color:#17364c!important}.map-basemap-control button.is-active{background:#17364c!important;color:#fff!important}.map-basemap-control button:disabled{cursor:not-allowed!important;color:#83939e!important;opacity:.72}.map-basemap-control svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.map-widget>.wrap{display:grid;grid-template-columns:minmax(0,.8fr) minmax(360px,1.2fr);align-items:center;gap:2rem}.map-widget-preview{min-height:290px;position:relative;overflow:hidden;background-color:#e6eee8;background-image:linear-gradient(24deg,transparent 46%,#b9c8c0 47%,#b9c8c0 49%,transparent 50%),linear-gradient(155deg,transparent 46%,#c5d2cc 47%,#c5d2cc 49%,transparent 50%)}.map-widget-preview:before,.map-widget-preview:after,.map-widget-preview span,.map-widget-preview i{content:"";position:absolute;width:24px;height:24px;border:3px solid #fff;border-radius:50%;background:var(--brand);box-shadow:0 3px 10px rgba(0,0,0,.2)}.map-widget-preview:before{left:23%;top:31%}.map-widget-preview:after{left:68%;top:62%}.map-widget-preview span{left:51%;top:20%}.map-widget-preview i{left:37%;top:70%}
@keyframes map-spin{to{transform:rotate(360deg)}}
@keyframes map-attention{50%{transform:scale(1.04)}}
@media(min-width:851px){
 .property-map-shell.view-list.list-property-open .map-workspace{grid-template-columns:minmax(0,62%) minmax(360px,38%)}
 .property-map-shell.view-list.list-property-open .map-property-overlay{position:relative;inset:auto;z-index:1;display:block;min-width:0;min-height:0;padding:0;grid-column:1;grid-row:1}
 .property-map-shell.view-list.list-property-open .map-property-backdrop{display:none}
 .property-map-shell.view-list.list-property-open .map-property-panel{width:100%;height:100%;border-radius:0;box-shadow:none;grid-template-rows:54px minmax(0,1fr)}
 .property-map-shell.view-list.list-property-open .map-property-panel>header{padding-inline:1rem}
 .property-map-shell.view-list.list-property-open .map-results{grid-column:2;grid-row:1;border-left:1px solid #d4dee5}
 .property-map-shell.view-list.list-property-open .map-results>div{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
 .property-map-shell.view-list.list-property-open .map-result-card a{display:block;padding:.5rem}
 .property-map-shell.view-list.list-property-open .map-result-card img,
 .property-map-shell.view-list.list-property-open .map-card-placeholder{width:100%;height:clamp(118px,15vh,172px);margin-bottom:.5rem}
 .property-map-shell.view-list.list-property-open .map-result-copy{gap:.22rem;padding:.1rem .2rem .3rem}
}

@media(max-width:760px){
 .property-map-shell.filters-open .map-filter-bar.idx-search-widget{display:block}
 .map-filter-bar.idx-search-widget .idx-search-location{grid-template-columns:1fr}
 .map-filter-bar.idx-search-widget .idx-filter-row{display:grid;grid-template-columns:1fr 1fr;flex-wrap:initial}
 .map-filter-bar.idx-search-widget .idx-filter-group{position:relative}
 .map-filter-bar.idx-search-widget .idx-reset{grid-column:1/-1;text-align:center}
}
@media(max-width:1180px){.map-filter-bar{grid-template-columns:minmax(220px,2fr) repeat(6,minmax(84px,.55fr)) 42px auto auto}.map-workspace{grid-template-columns:minmax(0,58%) minmax(330px,42%)}.map-result-card a{grid-template-columns:104px minmax(0,1fr)}.map-result-card img,.map-card-placeholder{width:104px;height:82px}}

/* The full-screen map uses the same grouped search experience as every page section. */
.map-filter-bar.idx-search-widget{display:block;margin:0;padding:.55rem .75rem;border-width:0 0 1px;border-radius:0;box-shadow:none}
.map-filter-bar.idx-search-widget .idx-search-location{margin-bottom:.45rem}
.map-filter-bar.idx-search-widget .idx-search-location input{height:40px}
.map-filter-bar.idx-search-widget .idx-filter-row{display:flex;gap:.4rem;flex-wrap:nowrap}
.map-filter-bar.idx-search-widget .idx-filter-group{flex:1 1 0}
.map-filter-bar.idx-search-widget .idx-filter-group>summary{justify-content:space-between;min-width:0;height:38px;min-height:38px;padding-inline:.7rem;font-size: calc(.82rem * var(--rs-text-scale, 1))}
.map-filter-bar.idx-search-widget .idx-sort-filter{flex:0 0 auto}
.map-filter-bar.idx-search-widget .idx-sort-filter>summary{width:42px;padding:0;justify-content:center}
.map-filter-bar.idx-search-widget .idx-sort-filter>summary::after{display:none}
.map-filter-bar.idx-search-widget .idx-reset{flex:0 0 auto}
.map-filter-bar.idx-search-widget .idx-filter-panel{z-index:1400}
.map-filter-bar.idx-search-widget:has(.idx-filter-group[open]){z-index:1350}
@media(max-width:850px){
 .property-map-shell{grid-template-rows:56px minmax(0,1fr);padding-bottom:env(safe-area-inset-bottom)}
 .map-toolbar{min-width:0;min-height:56px;padding:6px max(6px,env(safe-area-inset-right)) 6px max(6px,env(safe-area-inset-left));gap:4px;flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}
 .map-toolbar::-webkit-scrollbar{display:none}
 .map-toolbar>*{flex:0 0 auto}
 .map-toolbar button,.map-icon-button,.map-view-switcher button{min-width:44px;min-height:44px;padding:8px 10px}
 .map-icon-button span{display:none}
 .map-mobile-filters{display:inline-flex!important}
 .map-mobile-filters span{display:inline}
 .map-toolbar [data-map-status]{display:none}
 .map-toolbar [data-map-status].is-alert{display:block;position:fixed;z-index:2600;right:12px;bottom:max(12px,env(safe-area-inset-bottom));left:12px;width:auto;margin:0;padding:12px 14px;border:1px solid #e9c477;border-radius:10px;background:#fff7e7;color:#6f4a0c;box-shadow:0 12px 34px rgba(25,39,48,.22);white-space:normal}
 .map-filter-bar{display:none;position:absolute;z-index:1200;top:62px;left:8px;right:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:calc(100dvh - var(--map-shell-top,0px) - 78px);padding:12px;overflow:auto;border:1px solid #cbd8df;border-radius:12px;background:#fff;box-shadow:0 16px 42px rgba(11,35,51,.24)}
 .property-map-shell.filters-open .map-filter-bar{display:grid}
 .map-filter-bar.idx-search-widget{display:none;position:absolute;padding:12px;border:1px solid #cbd8df;border-radius:12px;box-shadow:0 16px 42px rgba(11,35,51,.24)}
 .property-map-shell.filters-open .map-filter-bar.idx-search-widget{display:block}
 .map-filter-bar.idx-search-widget .idx-search-location{grid-template-columns:1fr}
 .map-filter-bar.idx-search-widget .idx-filter-row{display:grid;grid-template-columns:1fr 1fr;flex-wrap:initial}
 .map-filter-bar.idx-search-widget .idx-filter-group{position:relative}
 .map-filter-bar.idx-search-widget .idx-reset{grid-column:1/-1;text-align:center}
 .map-filter-keyword{grid-column:1/-1}
 .map-filter-bar input,.map-filter-bar select,.map-filter-submit,.map-filter-clear{height:44px;min-height:44px;font-size: calc(16px * var(--rs-text-scale, 1))}
 .map-filter-keyword svg{top:13px}
 .map-filter-submit,.map-filter-clear{width:100%;padding:.55rem .7rem!important}
 .map-filter-submit span{display:inline}
 .map-workspace{grid-row:2;grid-template-columns:1fr;min-height:0}
 .view-split .map-workspace{grid-template-rows:minmax(220px,52%) minmax(180px,48%)}
 .view-list .map-workspace{grid-template-rows:1fr}
 .property-map{height:100%;min-height:0}
 .map-results{height:100%;min-height:0;max-height:none;padding:.65rem;border-left:0;border-top:1px solid #d4dee5;overscroll-behavior:contain}
 .map-results h2{position:sticky;z-index:2;top:-.65rem;margin:-.65rem -.65rem .65rem;padding:.7rem;background:rgba(245,248,249,.96);backdrop-filter:blur(8px)}
 .map-results>div{gap:.55rem}
 .map-result-card a{grid-template-columns:96px minmax(0,1fr);gap:.65rem;padding:.45rem}
 .map-result-card img,.map-card-placeholder{width:96px;height:76px}
 .map-result-card:hover{transform:none}
 .map-widget>.wrap{grid-template-columns:1fr}
 .map-widget-preview{min-height:230px}
 .map-property-overlay{padding:0}
 .map-property-panel{width:100vw;height:100dvh;border-radius:0;grid-template-rows:56px 1fr}
 .map-property-panel>header{padding:0 max(.5rem,env(safe-area-inset-right)) 0 max(.5rem,env(safe-area-inset-left))}
 .map-property-panel>header button,.map-property-panel>header a{min-height:44px;padding:.5rem}
 .maplibregl-ctrl-group button{width:40px!important;height:40px!important}
}
@media(max-width:480px){
 .map-view-switcher button{padding-inline:9px}
 .map-list-return{padding-inline:6px!important}
 .map-filter-bar{grid-template-columns:1fr}
 .map-filter-bar.idx-search-widget .idx-filter-row{grid-template-columns:1fr}
 .map-filter-keyword{grid-column:auto}
 .view-split .map-workspace{grid-template-rows:minmax(210px,48%) minmax(190px,52%)}
 .map-result-card a{grid-template-columns:84px minmax(0,1fr)}
 .map-result-card img,.map-card-placeholder{width:84px;height:70px}
 .map-property-panel>header a{font-size: calc(.78rem * var(--rs-text-scale, 1))}
}

/* Keep the full-screen search bar slim while sharing the richer IDX controls. */
.map-filter-bar.map-filter-rich{position:relative;z-index:1300;grid-template-columns:minmax(250px,2fr) repeat(5,minmax(92px,.62fr)) 42px auto auto;overflow:visible}
.map-filter-rich .idx-filter-group{min-width:0;position:relative}
.map-filter-rich .idx-filter-group>summary{justify-content:space-between;width:100%;height:38px;min-height:38px;padding:0 .65rem;border-color:#c9d6de;border-radius:8px;font-size: calc(.82rem * var(--rs-text-scale, 1));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.map-filter-rich .idx-filter-group>summary::after{flex:0 0 auto}
.map-filter-rich .idx-filter-panel{z-index:1450}
.map-filter-rich .map-price-filter .idx-filter-panel{width:min(430px,calc(100vw - 38px))}
.map-filter-rich .map-type-filter .idx-filter-panel,.map-filter-rich .map-status-filter .idx-filter-panel{width:min(360px,calc(100vw - 38px))}
.map-filter-rich .map-sort-filter{width:42px}
.map-filter-rich .map-sort-filter>summary{width:42px;padding:0;justify-content:center}
.map-filter-rich:has(.idx-filter-group[open]){z-index:1400}
@media(max-width:1180px){.map-filter-bar.map-filter-rich{grid-template-columns:minmax(210px,1.7fr) repeat(5,minmax(82px,.6fr)) 42px auto auto}}
@media(max-width:850px){
 .property-map-shell.filters-open .map-filter-bar.map-filter-rich{display:grid}
 .map-filter-bar.map-filter-rich{position:absolute;z-index:2200;grid-template-columns:repeat(2,minmax(0,1fr));overflow:auto}
 .map-filter-rich .idx-filter-group{position:static}
 .map-filter-rich .idx-filter-panel{left:12px;right:12px;width:auto!important}
 .map-filter-rich .map-sort-filter{width:auto}
 .map-filter-rich .map-sort-filter>summary{width:100%;justify-content:space-between}
 .map-filter-rich .map-sort-filter>summary::after{display:block}
}
@media(max-width:480px){.map-filter-bar.map-filter-rich{grid-template-columns:1fr}.map-filter-rich .idx-choice-list{grid-template-columns:1fr}}
/* Icon-only trigger, matching the sort control. A text label here made the
   filter bar wider than the viewport on the split view. */
.map-more-filter{justify-self:stretch}
.map-more-filter>summary{width:42px;padding:0;justify-content:center}
.map-more-filter>summary::after{display:none}
.map-more-filter>summary svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.map-more-filter>summary svg circle{fill:#fff}
.map-more-filter .idx-filter-panel{min-width:min(320px,84vw)}
/* The bar is a grid, so the icon needs its own narrow track rather than sitting
   in a 96px filter column -- that width is what pushed the bar off screen. Five
   filter columns, then the More icon, then sort, Apply and Clear. */
.map-filter-bar{grid-template-columns:minmax(220px,2fr) repeat(5,minmax(92px,.55fr)) 42px 42px auto auto}
@media(max-width:1180px){.map-filter-bar{grid-template-columns:minmax(180px,2fr) repeat(5,minmax(80px,.55fr)) 42px 42px auto auto}}
/* Flex, not grid. Track counting kept putting Clear on a second row even with
   the children and columns matching, so the layout is no longer allowed to
   create a second row at all: nowrap guarantees one line, the keyword field
   absorbs the slack, and the two buttons keep their intrinsic width at the end.
   Grid was the wrong tool here -- the bar is a single row of unequal controls,
   not a table. */
/* Desktop only. This block carries display:flex!important, and !important wins
   over the max-width:850px rule that hides the bar behind the Filters button no
   matter where either sits in the file -- so on a phone the bar was permanently
   visible, absolutely positioned over the map, with about 950px of controls
   crushed into a 357px box. Scoping it to the width it was written for gives
   the mobile panel its behaviour back; nothing about the desktop row changes. */
@media(min-width:851px){
 .map-filter-bar{display:flex!important;flex-wrap:nowrap!important;align-items:center;gap:.4rem;overflow:visible}
 .map-filter-bar>.map-filter-keyword{flex:1 1 200px;min-width:120px}
 .map-filter-bar>.idx-filter-group{flex:0 1 auto;min-width:0}
 .map-filter-bar>.idx-filter-group>summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .map-filter-bar>.map-more-filter,.map-filter-bar>.idx-sort-filter{flex:0 0 42px}
 .map-filter-bar>.map-filter-submit,.map-filter-bar>.map-filter-clear{flex:0 0 auto}
}
/* On a phone the bar is the dropdown panel opened by Filters: two columns that
   fit, each control full width in its cell, and no horizontal scrolling. */
@media(max-width:850px){
 .map-filter-bar>.map-filter-keyword{grid-column:1/-1}
 .map-filter-bar>.idx-filter-group,
 .map-filter-bar>.map-filter-submit,
 .map-filter-bar>.map-filter-clear{min-width:0;width:100%}
 .map-filter-bar>.idx-filter-group>summary{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 .map-filter-bar>.map-filter-submit,.map-filter-bar>.map-filter-clear{grid-column:span 1}
}
/* Panels open from the left edge of their trigger, which runs off screen for
   the controls sitting at the right end of the bar. Anchor those to their right
   edge instead, cap the width so the two-column rows do not force it wider than
   the viewport, and let it scroll rather than grow taller than the window. */
.map-filter-bar>.idx-filter-group{position:relative}
.map-more-filter>.idx-filter-panel,.map-filter-bar>.idx-sort-filter>.idx-filter-panel,.map-status-filter>.idx-filter-panel,.map-type-filter>.idx-filter-panel{left:auto;right:0}
.map-more-filter>.idx-filter-panel{width:min(340px,92vw);max-height:min(70vh,520px);overflow-y:auto}
.map-more-filter .idx-pair{grid-template-columns:1fr}
.map-more-filter .idx-check-grid{grid-template-columns:1fr}
