
/* ============================================================
   Search results page (/search) — SERP: filter rail + results + map
   Header/.wrap/.hbar/.hr/.lnk/.glb are shared (defined above).
   Result cards use .scard (the home destination card owns .card).
   ============================================================ */
.search{background:var(--sand);border-bottom:1px solid var(--line-2);padding:14px 0;}
.fields{display:flex;gap:10px;max-width:1240px;margin:0 auto;padding:0 var(--gutter);flex-wrap:wrap;}
.fields .f{background:#fff;border:1px solid #DCE4E3;border-radius:10px;padding:7px 13px;flex:1;min-width:140px;}
.fields .f.dest{flex:2;}
.fields .f label{display:block;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin-bottom:2px;}
.fields .f .v{display:flex;align-items:center;gap:8px;font-size:14.5px;font-weight:500;}
.fields .f .v i{color:var(--teal);font-size:17px;}
.go{background:var(--teal-d);color:#fff;border:none;font-family:inherit;font-size:15px;font-weight:700;padding:0 26px;border-radius:10px;display:flex;align-items:center;gap:9px;cursor:pointer;}
.go:hover{background:#085a6f;}

.layout{display:grid;grid-template-columns:236px minmax(0,1fr);gap:22px;max-width:1240px;margin:0 auto;padding:18px var(--gutter) 40px;}
.rail{background:#fff;border:1px solid var(--line-2);border-radius:13px;padding:16px;height:fit-content;position:sticky;top:74px;}
.rail h3{font-size:14px;font-weight:700;margin-bottom:14px;display:flex;align-items:center;gap:7px;}
.fg{margin-bottom:18px;}
.fg .lab{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:9px;text-transform:uppercase;letter-spacing:.04em;}
.opt{display:flex;align-items:center;gap:9px;font-size:13.5px;padding:4px 0;cursor:pointer;}
.opt .box{width:16px;height:16px;border:1.5px solid #C3CFCE;border-radius:4px;flex:0 0 auto;}
.opt .box.on{background:var(--teal);border-color:var(--teal);}
.opt .ct{margin-left:auto;color:var(--faint);font-size:12px;}
.hist{display:flex;align-items:flex-end;gap:2px;height:36px;margin-bottom:8px;}
.hist span{flex:1;background:var(--teal-50);border-radius:2px 2px 0 0;}
.hist span.hi{background:var(--teal);}
.stars{color:var(--amber-d);}
/* Price dual-range slider (two overlaid range inputs over a shared track + fill). */
.prange{padding:2px 4px 2px;}
.prange-out{font-size:13.5px;font-weight:700;color:var(--ink);margin-bottom:14px;}
.prange-track{position:relative;height:22px;}
.prange-track::before{content:"";position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);height:4px;border-radius:999px;background:var(--line-2);}
.prange-fill{position:absolute;top:50%;transform:translateY(-50%);height:4px;border-radius:999px;background:var(--teal);}
.prange-h{position:absolute;left:0;top:0;width:100%;height:22px;margin:0;background:none;-webkit-appearance:none;appearance:none;pointer-events:none;}
.prange-h::-webkit-slider-runnable-track{background:none;border:none;}
.prange-h::-moz-range-track{background:none;border:none;}
.prange-h::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;pointer-events:auto;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--teal-d);box-shadow:0 1px 4px rgba(0,0,0,.28);cursor:pointer;}
.prange-h::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;background:#fff;border:2px solid var(--teal-d);box-shadow:0 1px 4px rgba(0,0,0,.28);cursor:pointer;}
.prange-h:focus-visible::-webkit-slider-thumb{outline:2px solid var(--teal);outline-offset:2px;}
.prange-h:focus-visible::-moz-range-thumb{outline:2px solid var(--teal);outline-offset:2px;}

.results{min-width:0;}
.rbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:12px;flex-wrap:wrap;}
.count{font-size:14px;color:var(--muted);}
.count b{color:var(--ink);font-weight:700;}
.seg{display:flex;border:1px solid #DCE4E3;border-radius:9px;overflow:hidden;font-size:13px;background:#fff;}
.seg span,.seg a{padding:7px 13px;color:var(--muted);cursor:pointer;}
.seg span.on,.seg a.on{background:var(--teal);color:#fff;font-weight:600;}
.seg.seg-v{flex-direction:column;}
.seg.seg-v span,.seg.seg-v a{border-bottom:1px solid #DCE4E3;}
.seg.seg-v span:last-child,.seg.seg-v a:last-child{border-bottom:none;}

.search-error{background:#fff;border:1px solid var(--line-2);border-radius:13px;padding:28px 16px;text-align:center;}
.search-error p{color:var(--faint);margin:0 0 12px;}
.scard{background:#fff;border:1px solid var(--line-2);border-radius:13px;padding:12px;margin-bottom:14px;display:flex;gap:14px;cursor:pointer;transition:box-shadow .15s;}
.scard:hover{box-shadow:0 6px 22px rgba(20,40,46,.1);}
.scard .thumb{flex:0 0 150px;height:130px;border-radius:10px;overflow:hidden;position:relative;}
.scard .thumb .b{position:absolute;left:9px;top:9px;background:rgba(255,255,255,.93);color:var(--amber-d);font-size:12px;padding:3px 8px;border-radius:6px;font-weight:700;}
.scard .mid{flex:1;min-width:0;display:flex;flex-direction:column;}
.scard .name{font-size:17px;font-weight:800;}
.scard .zone{font-size:13px;color:var(--faint);margin:3px 0 8px;display:flex;align-items:center;gap:6px;}
.scard .foot{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;}
.scard .see{font-size:13px;font-weight:700;color:var(--teal-d);}
.scard .price{text-align:right;}
.scard .price .l{font-size:11.5px;color:var(--faint);}
.scard .price b{font-size:20px;font-weight:800;}

/* Map strip sits ABOVE the results (no second sidebar). Hidden for services (list-only). A real Leaflet map
   (free CARTO tiles) fills .mapcanvas; z-index:0 keeps Leaflet's panes/controls under the sticky header. */
.mapstrip{position:relative;z-index:0;height:360px;border-radius:14px;overflow:hidden;border:1px solid var(--line-2);margin-bottom:18px;}
.mapstrip[hidden]{display:none;}
.mapcanvas{width:100%;height:100%;background:var(--teal-50);position:relative;}

.agencybar{max-width:1240px;margin:0 auto;padding:0 var(--gutter) 30px;}
.agencybar .in{background:var(--sand);border-radius:12px;padding:14px 18px;font-size:13.5px;display:flex;align-items:center;gap:10px;}
.agencybar a{color:var(--teal-d);font-weight:800;}

@media(max-width:1000px){
  .layout{grid-template-columns:1fr;}
  .rail{position:static;}
}
/* Search bar — mobile: stack the fields and make the search button full-width with even side margins
   (the .fields horizontal padding becomes the button's symmetric gutter). Popovers go full-width too. */
@media(max-width:680px){
  .search{padding:12px 0;}
  .fields{flex-direction:column;align-items:stretch;gap:8px;padding:0 var(--gutter);}
  .fields .f,.fields .f.dest{flex:1 1 auto;width:100%;min-width:0;}
  .go{width:100%;justify-content:center;padding:14px;margin:2px 0 0;}
  .fields .f[data-control] .popover{left:0;right:0;min-width:0;}
}

/* ---------- Explore / suggested-results page ---------- */
.explore{padding:24px var(--gutter) 56px;}
.explore-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap;}
.explore-head h1{font-size:clamp(22px,3vw,30px);font-weight:800;letter-spacing:-.02em;}
.explore-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.explore-grid .scard{margin-bottom:0;}
@media(max-width:760px){.explore-grid{grid-template-columns:1fr;}}
@media(max-width:680px){.explore{padding:18px var(--gutter) 40px;}}

/* Load-more (B2C search pagination) */
.loadmore-wrap{display:flex;justify-content:center;margin:18px 0 4px;}
.loadmore-wrap [hidden]{display:none;}
