/* IDX Bloom -- map & advanced search. White + mint, scoped under .idxb-sx (inside .idxb).
   Mobile-first (375px, no horizontal scroll). Uses the tokens from idx-bloom.css (--k, --mi, --fd, ...). */
.idxb-sx{container:idxbsx/inline-size;position:relative;width:100%;max-width:1240px;margin:1.2em auto;padding:0 0 28px;color:var(--k);background:#fff}
.idxb-sx *,.idxb-sx *::before,.idxb-sx *::after{box-sizing:border-box}
.idxb-sx-head{margin:0 0 6px}
.idxb-sx .idxb-sx-title{margin:0 0 10px;font-size:clamp(1.3rem,6vw,2rem)}
.idxb-sx .idxb-search-field{min-width:0}
.idxb-sx .idxb-search-input{min-width:0;flex:1 1 auto;font-size:16px}
.idxb-sx .idxb-search-submit{flex:none;border-radius:0;box-shadow:none;border-width:0 0 0 var(--bw)}
.idxb-sx .idxb-examples{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.idxb-sx .idxb-example{min-height:44px;max-width:100%}

/* Type-ahead under the plain-words box */
.idxb-sx-qwrap{position:relative}
.idxb-sx-suggest{position:absolute;left:0;right:0;top:100%;z-index:1150;margin:6px 0 0;padding:4px;list-style:none;background:#fff;border:2px solid var(--k);border-radius:10px;box-shadow:4px 4px 0 var(--mi);max-height:min(50vh,340px);overflow-y:auto}
.idxb-sx-sug-item{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:8px 12px;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer}
.idxb-sx-sug-item small{flex:none;font-family:var(--fm);font-size:var(--mfs);letter-spacing:var(--mls);text-transform:uppercase;font-weight:400;color:var(--so)}
.idxb-sx-sug-item.is-on,.idxb-sx-sug-item:hover{background:var(--mi)}

/* Filters */
.idxb-sx-filters{margin:12px 0 0;background:#fff;border:var(--b2) solid var(--bc2);border-radius:var(--rad)}
.idxb-sx-filters>summary{display:flex;align-items:center;justify-content:space-between;min-height:48px;padding:10px 16px;cursor:pointer;list-style:none;font-family:var(--fm);font-size:var(--mfs);letter-spacing:var(--mls);text-transform:uppercase;font-weight:600}
.idxb-sx-filters>summary::-webkit-details-marker{display:none}
.idxb-sx-filters>summary::after{content:"+";display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:2px solid var(--k);border-radius:50%;font-size:16px;line-height:1}
.idxb-sx-filters[open]>summary::after{content:"\2212";background:var(--mi)}
.idxb-sx-filters>summary:focus-visible,.idxb-sx .idxb-sx-tool:focus-visible,.idxb-sx .idxb-sx-view:focus-visible,.idxb-sx .idxb-sx-info:focus-visible{outline:3px solid var(--bl);outline-offset:2px}
.idxb-sx-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:4px 16px 14px}
.idxb-sx-field{min-width:0}
.idxb-sx-field:nth-child(-n+2){grid-column:1 / -1}
.idxb-sx-field label,.idxb-sx-sort label,.idxb-sx-radius label{display:block;margin:0 0 4px;font-family:var(--fm);font-size:var(--mfs);letter-spacing:var(--mls);text-transform:uppercase;color:var(--so)}
.idxb-sx select,.idxb-sx input[type=number]{width:100%;min-height:44px;padding:8px 10px;border:1px solid var(--k);border-radius:6px;background:#fff;color:var(--k);font:500 16px/1.2 var(--fb)}
.idxb-sx select:focus-visible,.idxb-sx input:focus-visible{outline:2px solid var(--bl);outline-offset:1px}
.idxb-sx-feats{margin:0;padding:0 16px 8px;border:0;display:flex;flex-wrap:wrap;gap:4px 18px}
.idxb-sx-feats legend{padding:0;margin:0 0 4px;font-family:var(--fm);font-size:var(--mfs);letter-spacing:var(--mls);text-transform:uppercase;color:var(--so)}
.idxb-sx-check{display:inline-flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;font-size:15px}
.idxb-sx-check input{width:20px;height:20px;accent-color:var(--mi);flex:none}
.idxb-sx-apply{margin:4px 16px 16px}

/* Chips */
.idxb-sx-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:12px 0 0;padding:0}
.idxb-sx-chip{display:inline-flex;align-items:center;max-width:100%;padding:2px 3px 2px 12px;border:2px solid var(--k);border-radius:999px;background:#fff;font-size:14px;font-weight:600;box-shadow:2px 2px 0 var(--mi)}
.idxb-sx-chip>span{overflow-wrap:anywhere}
/* Status toggles (For sale / Pending / Sold / Coming soon) */
.idxb-sx-status{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 0}
.idxb-sx .idxb-sx-status button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:2px solid var(--k);border-radius:999px;background:#fff;color:var(--k);font-family:var(--fm);font-size:var(--mfs);letter-spacing:var(--mls);text-transform:uppercase;font-weight:600;line-height:1.2;cursor:pointer;box-shadow:none}
.idxb-sx .idxb-sx-status button[aria-pressed="true"]{background:var(--mi);color:#0B0B0B}
.idxb-sx .idxb-sx-status button:focus-visible{outline:3px solid var(--bl);outline-offset:2px}
.idxb-style-blend .idxb-sx-status button{border-width:1px;border-color:var(--bd)}
.idxb-sx-chip-1{box-shadow:2px 2px 0 var(--ye)}.idxb-sx-chip-2{box-shadow:2px 2px 0 var(--co)}.idxb-sx-chip-3{box-shadow:2px 2px 0 var(--bl)}
.idxb-sx .idxb-sx-chip-x{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-4px -2px -4px 2px;border-radius:50%;font-size:20px;line-height:1;font-weight:700}
.idxb-sx .idxb-sx-chip-x:hover{background:var(--mi)}
.idxb-sx .idxb-sx-chip-x:focus-visible{outline:3px solid var(--bl);outline-offset:1px}
.idxb-sx .idxb-sx-chip-all a:focus-visible{outline:3px solid var(--bl);outline-offset:2px}
.idxb-sx-chip-all{display:inline-flex;align-items:center}
.idxb-sx .idxb-sx-chip-all a{display:inline-flex;align-items:center;min-height:44px}

/* Bar: count, sort, save/share, view toggle */
.idxb-sx-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:16px 0 0;padding:12px 0 0;border-top:var(--b2) solid var(--bc2)}
.idxb-sx-count{margin:0;flex:1 1 100%;font-family:var(--fd);font-weight:var(--fw);font-size:clamp(1.15rem,5vw,1.5rem);letter-spacing:var(--ls);text-transform:var(--tt);line-height:1.1}
.idxb-sx-sort{display:flex;align-items:flex-end;gap:8px;flex:1 1 100%;min-width:0}
.idxb-sx-sort>label{flex:none;align-self:center;margin:0}
.idxb-sx-sort select{flex:1 1 auto;min-width:0;width:auto}
.idxb-sx-info{flex:none;width:44px;height:44px;border:2px solid var(--k);border-radius:50%;background:#fff;font:700 16px var(--fb);cursor:pointer}
.idxb-sx-info[aria-expanded=true]{background:var(--mi)}
.idxb-sx-help{margin:10px 0 0;padding:10px 14px;border:2px dashed var(--k);border-radius:8px;font-size:14px;line-height:1.45;max-width:70ch}
.idxb-sx-help[hidden],.idxb-sx [hidden]{display:none!important}
.idxb-sx-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;flex:1 1 auto}
.idxb-sx .idxb-sx-save{min-height:44px;padding:10px 18px}
.idxb-sx-views{display:inline-flex;border:2px solid var(--k);border-radius:9px;overflow:hidden;background:#fff}
.idxb-sx .idxb-sx-view{min-width:64px;min-height:44px;padding:8px 14px;border:0;border-right:2px solid var(--k);background:#fff;color:var(--k);font:700 14px var(--fb);cursor:pointer}
.idxb-sx .idxb-sx-view:last-child{border-right:0}
.idxb-sx .idxb-sx-view[aria-pressed=true]{background:var(--mi)}

/* Layout: list + map */
.idxb-sx-main{display:flex;flex-direction:column;gap:18px;margin:16px 0 0}
.idxb-sx-listcol{min-width:0;outline:0;container:idxbsxlist/inline-size}
.idxb-sx-mapcol{display:none;min-width:0;order:-1}
.idxb-sx-js .idxb-sx-mapcol{display:block}
.idxb-sx-js[data-view=list] .idxb-sx-mapcol{display:none}
.idxb-sx-js[data-view=map] .idxb-sx-listcol{display:none}
.idxb-sx-js.idxb-sx-nomap .idxb-sx-tools,.idxb-sx-js.idxb-sx-nomap .idxb-sx-views{display:none}
.idxb-sx-items{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;list-style:none;margin:0;padding:0}
.idxb-sx-item{min-width:0}
.idxb-sx-item .idxb-card{height:auto}
.idxb-sx-item.is-hover .idxb-card,.idxb-sx-item.is-active .idxb-card{transform:translate(-3px,-3px);box-shadow:var(--sh-h)}
.idxb-sx-item.is-active .idxb-card{border-color:var(--k);outline:3px solid var(--mi);outline-offset:2px}
.idxb-sx-note{margin:8px 2px 0;font-family:var(--fm);font-size:var(--mfs);letter-spacing:.06em;color:var(--so)}
.idxb-sx-note.is-good{color:var(--k)}
.idxb-sx-why{margin:4px 2px 0;font-size:13px;line-height:1.35;color:var(--so)}
.idxb-sx-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:24px 0 0}
.idxb-sx-pageinfo{font-family:var(--fm);font-size:var(--mfs);letter-spacing:var(--mls);text-transform:uppercase}
.idxb-sx-empty{padding:12px 0}
.idxb-sx-empty-sub{margin:10px 0 0;font-size:15px}
.idxb-sx.is-loading .idxb-sx-list{opacity:.55;transition:opacity .15s}

/* Map column */
.idxb-sx-skip{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.idxb-sx-skip:focus{position:static;width:auto;height:auto;margin:0 0 8px;overflow:visible;clip:auto;display:inline-block;padding:8px 12px;background:#fff;border:2px solid var(--k);border-radius:8px;font-weight:700}
.idxb-sx-tools{position:relative;display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.idxb-sx .idxb-sx-tool{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 14px;border:2px solid var(--k);border-radius:9px;background:#fff;color:var(--k);font:700 14px/1.1 var(--fb);cursor:pointer;list-style:none;box-shadow:2px 2px 0 var(--mi)}
.idxb-sx .idxb-sx-tool::-webkit-details-marker{display:none}
.idxb-sx .idxb-sx-tool[aria-pressed=true]{background:var(--mi)}
.idxb-sx .idxb-sx-tool[disabled]{opacity:.6;cursor:wait}
.idxb-sx-layers{position:static}
.idxb-sx-layerlist{position:absolute;left:0;right:0;top:100%;z-index:1100;margin-top:6px;padding:8px 14px;background:#fff;border:2px solid var(--k);border-radius:10px;box-shadow:4px 4px 0 var(--mi)}
.idxb-sx-layerlist label{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;cursor:pointer}
.idxb-sx-layerlist label.is-disabled{color:var(--so);cursor:not-allowed}
.idxb-sx-layerlist input{width:20px;height:20px;accent-color:var(--mi);flex:none}
.idxb-sx-radius{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 14px;margin:0 0 10px}
.idxb-sx-radius>select{width:auto;min-width:120px}
.idxb-sx-hint{margin:0 0 8px;min-height:0;font-size:14px;color:var(--so)}
.idxb-sx-hint:empty{display:none}
.idxb-sx-map{position:relative;width:100%;height:min(56vh,420px);min-height:280px;background:#E6FBF3;border:var(--bw) solid var(--bd);border-radius:var(--rad);box-shadow:var(--sh-s);overflow:hidden;z-index:0}
.idxb-sx-js[data-view=map] .idxb-sx-map{height:calc(100vh - 200px);min-height:360px}
.idxb-sx-map:focus-visible{outline:3px solid var(--bl);outline-offset:2px}
.idxb-sx-map-msg{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;font-family:var(--fm);font-size:13px;color:var(--so)}
.idxb-sx .leaflet-container{font-family:var(--fb);background:#E6FBF3}
.idxb-sx .leaflet-container a{color:inherit}
.idxb-sx .leaflet-container a.idxb-btn{color:var(--btn-fg)}
.idxb-sx .leaflet-control-zoom a{color:var(--k);border-color:var(--k)}
.idxb-sx .leaflet-control-attribution{font-size:11px;max-width:100%}
.idxb-sx-map.is-soft .leaflet-tile-pane{filter:grayscale(.55) brightness(1.06) contrast(.94)}

/* Phone map lock: tap to use the map (above Leaflet panes 400, below controls 1000) */
.idxb-sx-maplock{position:absolute;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;margin:0;padding:0;background:rgba(255,255,255,.55);border:0;cursor:pointer;-webkit-appearance:none;appearance:none}
.idxb-sx-maplock[hidden]{display:none}
.idxb-sx-maplock span{display:inline-block;padding:12px 18px;background:#fff;color:#0B0B0B;border:2px solid #0B0B0B;border-radius:999px;box-shadow:4px 4px 0 var(--mi);font-family:var(--fm);font-size:var(--mfs);letter-spacing:var(--mls);text-transform:uppercase;font-weight:600;line-height:1.2}
.idxb-sx-maplock:focus-visible{outline:3px solid var(--bl);outline-offset:-6px}

/* Drawing overlay */
.idxb-sx-overlay{position:absolute;inset:0;z-index:900;touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;background:rgba(0,212,138,.08);outline:3px dashed #0B0B0B;outline-offset:-6px}

/* Pins */
.idxb-sx-pinicon{background:none;border:0;overflow:visible}
.idxb-sx-pin{position:absolute;left:0;top:0;display:inline-block;transform:translate(-50%,-100%);margin-top:-9px;padding:4px 9px;border:2px solid #0B0B0B;border-radius:999px;background:#fff;color:#0B0B0B;font:700 12px/1.2 var(--fb);white-space:nowrap;box-shadow:2px 2px 0 var(--mi);cursor:pointer;transition:transform .12s,background .12s}
.idxb-sx-pin::after{content:"";position:absolute;left:50%;bottom:-7px;width:8px;height:8px;background:inherit;border-right:2px solid #0B0B0B;border-bottom:2px solid #0B0B0B;transform:translateX(-50%) rotate(45deg)}
.idxb-sx-pin.is-pending{background:#FFD426}
.idxb-sx-pin.is-hover,.idxb-sx-pin.is-active{background:var(--mi);transform:translate(-50%,-100%) scale(1.15);z-index:5}
.idxb-sx-pin.is-dot{width:16px;height:16px;padding:0;border-radius:50%;margin-top:0;transform:translate(-50%,-50%);background:var(--mi)}
.idxb-sx-pin.is-dot::after{display:none}
.idxb-sx-pin.is-dot.is-hover,.idxb-sx-pin.is-dot.is-active{transform:translate(-50%,-50%) scale(1.4)}
.idxb-sx-cluster{position:absolute;left:0;top:0;display:flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 8px;transform:translate(-50%,-50%);border:3px solid #0B0B0B;border-radius:999px;background:var(--mi);color:#0B0B0B;font:700 14px/1 var(--fb);box-shadow:3px 3px 0 #0B0B0B;cursor:pointer;transition:transform .12s}
.idxb-sx-cluster.is-hover{transform:translate(-50%,-50%) scale(1.18);background:#fff}
.idxb-sx-you{position:absolute;left:-9px;top:-9px;width:18px;height:18px;border-radius:50%;background:#2B3AFF;border:3px solid #fff;box-shadow:0 0 0 2px #0B0B0B}

/* Popup card */
.idxb-sx-popup .leaflet-popup-content-wrapper{padding:0;border:3px solid #0B0B0B;border-radius:12px;box-shadow:5px 5px 0 var(--mi);background:#fff;color:#0B0B0B}
.idxb-sx-popup .leaflet-popup-content{margin:0;width:230px!important;max-width:100%}
.idxb-sx-popup .leaflet-popup-tip{border:2px solid #0B0B0B;box-shadow:none}
.idxb-sx-popup a.leaflet-popup-close-button{top:2px;right:2px;width:44px;height:44px;padding:0;font:700 24px/44px var(--fb);color:#0B0B0B}
.idxb-sx-popcard{padding:12px 14px 14px;display:flex;flex-direction:column;gap:6px}
.idxb-sx-popcard+.idxb-sx-popcard{border-top:1px solid var(--ru)}
.idxb-sx-pop-top{display:flex;gap:6px;flex-wrap:wrap;padding-right:42px}
.idxb-sx-pop-price{font-family:var(--fd);font-weight:var(--fw);font-size:1.5rem;line-height:1;letter-spacing:var(--ls)}
.idxb-sx-pop-meta{display:flex;flex-wrap:wrap;gap:2px 12px;font-size:13px}
.idxb-sx .idxb-sx-pop-addr{font-size:14px;font-weight:500;line-height:1.3;text-decoration:underline;text-decoration-color:var(--mi);text-decoration-thickness:2px}
.idxb-sx-popcard .idxb-card-office{margin:0;font-size:10.5px}
.idxb-sx .idxb-sx-pop-btn{min-height:44px;padding:8px 14px;font-size:14px;align-self:flex-start}
.idxb-sx-stack{max-height:280px;overflow-y:auto}

/* Toast */
.idxb-sx-toast{position:fixed;left:50%;bottom:18px;z-index:99999;max-width:calc(100vw - 32px);padding:12px 18px;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:#fff;color:#0B0B0B;border:2px solid #0B0B0B;border-radius:9px;box-shadow:4px 4px 0 var(--mi);font:600 15px/1.3 var(--fb);transition:opacity .2s,transform .2s}
.idxb-sx-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* Preview section wrapper */
.idxb-preview-search{margin:2.4em 0 0;padding-top:1.4em;border-top:2px solid #0B0B0B}

@media (min-width:600px){
	.idxb-sx-items{grid-template-columns:repeat(2,minmax(0,1fr))}
	.idxb-sx-fields{grid-template-columns:repeat(3,minmax(0,1fr))}
	.idxb-sx-field:nth-child(-n+2){grid-column:auto}
	.idxb-sx-count{flex:1 1 auto}
	.idxb-sx-sort{flex:0 1 420px}
	.idxb-sx-layerlist{right:auto;min-width:260px}
}
@media (min-width:900px){
	.idxb-sx-fields{grid-template-columns:repeat(4,minmax(0,1fr))}
	.idxb-sx-js .idxb-sx-main{flex-direction:row;align-items:flex-start;gap:24px}
	.idxb-sx-js .idxb-sx-listcol{flex:0 0 46%;max-width:46%}
	.idxb-sx-js .idxb-sx-mapcol{order:0;flex:1 1 0;position:sticky;top:16px}
	.idxb-sx-js .idxb-sx-map{height:calc(100vh - 150px);min-height:460px;max-height:860px}
	.idxb-sx-js[data-view=list] .idxb-sx-listcol{flex-basis:100%;max-width:100%}
	.idxb-sx-js[data-view=list] .idxb-sx-items{grid-template-columns:repeat(3,minmax(0,1fr))}
	.idxb-sx-js[data-view=map] .idxb-sx-mapcol{flex-basis:100%}
	.idxb-sx:not(.idxb-sx-js) .idxb-sx-items{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (prefers-reduced-motion:reduce){
	.idxb-sx-pin,.idxb-sx-cluster,.idxb-sx-toast,.idxb-sx .idxb-card{transition:none}
}
/* 1.5.3: themes with a narrow content column (about 700px) squeezed split view into 150px cards.
   Split only when the search block itself is wide enough; one card per row when the list column is narrow. */
@container idxbsx (max-width:879px){
	.idxb-sx-js .idxb-sx-main{flex-direction:column;align-items:stretch}
	.idxb-sx-js .idxb-sx-listcol,.idxb-sx-js[data-view=list] .idxb-sx-listcol{flex:1 1 auto;max-width:100%}
	.idxb-sx-js .idxb-sx-mapcol{order:-1;position:static;width:100%}
	.idxb-sx-js .idxb-sx-map{height:420px;min-height:0;max-height:none}
}
@container idxbsxlist (max-width:539px){
	.idxb-sx-items,.idxb-sx-js[data-view=list] .idxb-sx-items{grid-template-columns:minmax(0,1fr)}
}
