/* ===========================================================
   Fullhouse — "גילוי וילות" (category / search results)
   Loads AFTER fullhouse.css — shares all tokens & components.
   Warm · rounded · young · RTL · mobile-first.
   =========================================================== */

:root{
  /* soft accents (peach for urgency, mint for "new") — match warm palette */
  --peach:#E89B6C;
  --peach-deep:#C9743F;
  --peach-bg:#FBEADD;
  --peach-line:#F3D2BC;
  --mint:#6FAE92;
  --mint-deep:#4E8C72;
  --mint-bg:#E3F0E9;
  --mint-line:#CDE6DA;
}

/* ---------- sticky search bar (thin) ---------- */
.dsearch{
  position:sticky; top:74px; z-index:50;
  background:rgba(251,246,236,.9);
  backdrop-filter:saturate(140%) blur(12px);
  border-bottom:1px solid var(--line-soft);
}
.dsearch-inner{display:flex; align-items:center; gap:12px; padding:12px 0;}
.dsbar{
  flex:1; display:flex; align-items:stretch; background:var(--cream);
  border:1px solid var(--line-soft); border-radius:999px;
  box-shadow:var(--shadow-sm); padding:5px;
}
.dsf{flex:1; position:relative; display:flex; flex-direction:column; justify-content:center; padding:7px 15px; border-radius:999px; cursor:pointer; min-width:0; transition:background .15s var(--ease);}
.dsf:hover,.dsf.active{background:var(--sand-100);}
.dsf + .dsf::before{content:""; position:absolute; right:0; top:50%; transform:translateY(-50%); height:30px; width:1px; background:var(--line);}
.dsf .lab{font-size:11px; font-weight:700; color:var(--ink-900); letter-spacing:.01em;}
.dsf.celebrate .lab{color:var(--amber-800);}
.dsf .val{font-size:13.5px; font-weight:600; color:var(--ink-900); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.dsf .val.empty{color:var(--ink-500); font-weight:500;}
.ds-go{flex:none; width:50px; border-radius:999px; background:var(--amber-600); color:#3a2a08; border:none; display:grid; place-items:center; margin-inline-start:3px;}
.ds-go:hover{background:var(--amber-700);}
.ds-go svg{width:21px; height:21px; stroke:currentColor; fill:none; stroke-width:2.4; stroke-linecap:round; stroke-linejoin:round;}

.dsearch .dropdown{top:calc(100% + 10px);}
.dsf.where .dropdown{inset-inline-start:0;}
.dsf.when .dropdown{inset-inline-end:0; inset-inline-start:auto; width:min(620px,94vw);}
.dsf.guests .dropdown{inset-inline-end:0; inset-inline-start:auto;}

/* ---------- goal chips row ---------- */
.goalbar-wrap{border-bottom:1px solid var(--line-soft); background:var(--sand-50);}
.goalbar{display:flex; gap:10px; overflow-x:auto; padding:14px 0; scrollbar-width:none; -webkit-overflow-scrolling:touch;}
.goalbar::-webkit-scrollbar{display:none;}
.gchip{flex:none; display:inline-flex; align-items:center; gap:9px; background:var(--cream); border:1.5px solid var(--line); border-radius:999px; padding:10px 18px; font-family:var(--sans); font-weight:600; font-size:15px; color:var(--ink-700); cursor:pointer; transition:transform .2s var(--ease), border-color .2s var(--ease), background .2s var(--ease), color .2s var(--ease); white-space:nowrap;}
.gchip .dot{width:11px; height:11px; border-radius:50%; background:var(--c, var(--amber-600)); flex:none; transition:transform .3s var(--ease);}
.gchip:hover{transform:translateY(-2px); border-color:var(--c, var(--amber-300));}
.gchip:hover .dot{transform:scale(1.4);}
.gchip.on{background:var(--amber-600); border-color:var(--amber-600); color:#3a2a08;}
.gchip.on .dot{background:#3a2a08; transform:scale(1.25);}

/* ---------- page-level urgency banner (thin, non-blocking) ---------- */
.ubanner{display:flex; align-items:center; gap:11px; background:var(--peach-bg); border:1px solid var(--peach-line); border-radius:999px; padding:10px 18px; margin:18px 0 0; font-size:14.5px; color:var(--ink-700); font-weight:500;}
.ubanner .pulse{flex:none; width:30px; height:30px; border-radius:50%; background:#fff; display:grid; place-items:center; box-shadow:var(--shadow-xs);}
.ubanner .pulse svg{width:16px; height:16px; stroke:var(--peach-deep); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.ubanner b{color:var(--ink-900); font-weight:700;}
.ubanner .ub-close{margin-inline-start:auto; flex:none; width:26px; height:26px; border-radius:50%; border:none; background:transparent; color:var(--ink-500); display:grid; place-items:center; cursor:pointer;}
.ubanner .ub-close:hover{background:rgba(0,0,0,.05); color:var(--ink-900);}
.ubanner .ub-close svg{width:15px; height:15px; stroke:currentColor; stroke-width:2.2; fill:none; stroke-linecap:round;}

/* ---------- body two-column layout ---------- */
.dbody{display:grid; grid-template-columns:300px 1fr; gap:34px; align-items:start; padding:26px 0 80px;}
@media(max-width:980px){ .dbody{grid-template-columns:1fr; gap:0; padding-top:18px;} }

/* ---------- filter panel ---------- */
.filters{position:sticky; top:206px; background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-lg); box-shadow:var(--shadow-xs); overflow:hidden;}
.filters-head{display:flex; align-items:center; justify-content:space-between; padding:18px 20px; border-bottom:1px solid var(--line-soft);}
.filters-head h3{font-size:19px; font-weight:700;}
.filters-head .reset{background:none; border:none; color:var(--amber-800); font-weight:600; font-size:13.5px; cursor:pointer; padding:4px;}
.filters-head .reset:hover{text-decoration:underline;}
.filters-scroll{max-height:calc(100vh - 280px); overflow-y:auto; scrollbar-width:thin;}
.fgroup{border-bottom:1px solid var(--line-soft);}
.fgroup:last-child{border-bottom:none;}
.fgroup-head{width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 20px; background:none; border:none; cursor:pointer; text-align:start; font-family:var(--sans);}
.fgroup-head .ft{font-weight:700; font-size:15.5px; color:var(--ink-900); display:flex; align-items:center; gap:9px;}
.fgroup-head .ft svg{width:18px; height:18px; stroke:var(--amber-700); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; flex:none;}
.fgroup-head .chev{width:20px; height:20px; stroke:var(--ink-300); fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s var(--ease); flex:none;}
.fgroup.open .chev{transform:rotate(-180deg);}
.fgroup-body{display:none; padding:2px 20px 20px;}
.fgroup.open .fgroup-body{display:block;}
.fsublabel{font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-300); margin:12px 0 8px;}
.fsublabel:first-child{margin-top:2px;}
.fopts{display:flex; flex-wrap:wrap; gap:8px;}
.fopt{display:inline-flex; align-items:center; gap:7px; background:var(--sand-50); border:1.5px solid var(--line); border-radius:999px; padding:8px 13px; font-size:13.5px; font-weight:600; color:var(--ink-700); cursor:pointer; transition:all .15s var(--ease);}
.fopt .cnt{font-size:11.5px; font-weight:600; color:var(--ink-300); direction:ltr;}
.fopt:hover{border-color:var(--amber-300); background:var(--amber-50);}
.fopt.on{background:var(--ink-900); border-color:var(--ink-900); color:var(--sand-50);}
.fopt.on .cnt{color:rgba(255,253,248,.6);}

/* guests / bedrooms stepper */
.stepper{display:flex; align-items:center; justify-content:space-between; padding:9px 0;}
.stepper .sl{font-size:14.5px; font-weight:600; color:var(--ink-900);}
.stepper .sl span{display:block; font-size:12px; font-weight:500; color:var(--ink-500);}
.stepper .ctrl{display:flex; align-items:center; gap:13px;}
.stepper button{width:34px; height:34px; border-radius:50%; border:1.5px solid var(--line); background:var(--cream); color:var(--ink-900); font-size:20px; line-height:1; display:grid; place-items:center; cursor:pointer; transition:all .15s var(--ease);}
.stepper button:hover:not(:disabled){border-color:var(--amber-600); color:var(--amber-800);}
.stepper button:disabled{opacity:.4; cursor:default;}
.stepper .num{min-width:24px; text-align:center; font-weight:700; font-size:16px;}

/* price range */
.range{padding:8px 4px 4px;}
.range-vals{display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; font-size:14px; font-weight:700; color:var(--ink-900);}
.range-vals .rv{background:var(--sand-100); border-radius:10px; padding:6px 12px;}
.range-track{position:relative; height:34px; direction:ltr;}
.range-track .rail{position:absolute; top:50%; transform:translateY(-50%); inset-inline:6px; height:5px; border-radius:999px; background:var(--sand-200);}
.range-track .fill{position:absolute; top:50%; transform:translateY(-50%); height:5px; border-radius:999px; background:var(--amber-600);}
.range-track input[type=range]{position:absolute; inset-inline:0; top:0; width:100%; height:34px; margin:0; background:none; pointer-events:none; -webkit-appearance:none; appearance:none;}
.range-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none; appearance:none; pointer-events:auto; width:22px; height:22px; border-radius:50%; background:var(--cream); border:2.5px solid var(--amber-600); box-shadow:var(--shadow-sm); cursor:grab;}
.range-track input[type=range]::-moz-range-thumb{pointer-events:auto; width:22px; height:22px; border-radius:50%; background:var(--cream); border:2.5px solid var(--amber-600); box-shadow:var(--shadow-sm); cursor:grab;}

/* ---------- results header ---------- */
.results-head{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px;}
.results-head .count{font-family:var(--serif); font-size:clamp(20px,3vw,26px); font-weight:700; color:var(--ink-900);}
.results-head .count b{color:var(--amber-800);}
.rh-controls{display:flex; align-items:center; gap:10px;}

/* sort menu */
.sort{position:relative;}
.sort-btn{display:inline-flex; align-items:center; gap:8px; background:var(--cream); border:1.5px solid var(--line); border-radius:999px; padding:9px 16px; font-family:var(--sans); font-weight:600; font-size:14px; color:var(--ink-900); cursor:pointer; transition:border-color .15s var(--ease);}
.sort-btn:hover{border-color:var(--amber-300);}
.sort-btn svg{width:16px; height:16px; stroke:var(--ink-500); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.sort-menu{position:absolute; top:calc(100% + 8px); inset-inline-end:0; z-index:30; width:210px; background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-md); box-shadow:var(--shadow-lg); padding:7px; opacity:0; transform:translateY(-8px) scale(.98); pointer-events:none; transition:opacity .18s var(--ease), transform .18s var(--ease);}
.sort-menu.open{opacity:1; transform:none; pointer-events:auto;}
.sort-opt{display:flex; align-items:center; gap:10px; padding:10px 12px; border-radius:12px; font-size:14.5px; font-weight:600; color:var(--ink-700); cursor:pointer;}
.sort-opt:hover{background:var(--sand-100);}
.sort-opt.sel{color:var(--ink-900);}
.sort-opt .tick{width:16px; height:16px; stroke:var(--amber-700); fill:none; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; opacity:0;}
.sort-opt.sel .tick{opacity:1;}

/* grid/map toggle */
.viewtoggle{display:inline-flex; background:var(--sand-100); border-radius:999px; padding:4px; gap:2px;}
.viewtoggle button{display:inline-flex; align-items:center; gap:7px; background:none; border:none; border-radius:999px; padding:8px 15px; font-family:var(--sans); font-weight:600; font-size:14px; color:var(--ink-500); cursor:pointer; transition:all .18s var(--ease);}
.viewtoggle button svg{width:16px; height:16px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.viewtoggle button.on{background:var(--cream); color:var(--ink-900); box-shadow:var(--shadow-xs);}

/* mobile filter trigger */
.mobile-filter-bar{display:none;}

/* ---------- active filter chips ---------- */
.active-filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px;}
.active-filters:empty{display:none;}
.afchip{display:inline-flex; align-items:center; gap:7px; background:var(--amber-100); border:1px solid var(--amber-300); color:var(--amber-800); border-radius:999px; padding:7px 9px 7px 14px; font-size:13.5px; font-weight:600; animation:afpop .25s var(--ease);}
.afchip.goal{background:var(--ink-900); border-color:var(--ink-900); color:var(--sand-50);}
.afchip .x{width:20px; height:20px; border-radius:50%; background:rgba(0,0,0,.08); border:none; display:grid; place-items:center; cursor:pointer; color:inherit;}
.afchip.goal .x{background:rgba(255,255,255,.16);}
.afchip .x:hover{background:rgba(0,0,0,.18);}
.afchip.goal .x:hover{background:rgba(255,255,255,.3);}
.afchip .x svg{width:11px; height:11px; stroke:currentColor; stroke-width:2.6; fill:none; stroke-linecap:round;}
@keyframes afpop{from{transform:scale(.8);}to{transform:none;}}

/* ---------- villa grid ---------- */
.villa-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
@media(max-width:1180px){ .villa-grid{grid-template-columns:repeat(2,1fr);} }
@media(max-width:640px){ .villa-grid{grid-template-columns:1fr;} }

/* card built to match home .vcard; add urgency tag + highlight state */
.villa-card{background:var(--cream); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-sm); transition:transform .25s var(--ease), box-shadow .25s var(--ease), outline-color .2s var(--ease); outline:2px solid transparent; outline-offset:2px; animation:cardin .4s var(--ease);}
.villa-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md);}
.villa-card.map-hl{outline-color:var(--amber-600); box-shadow:var(--shadow-md);}
@keyframes cardin{from{transform:translateY(14px);}to{transform:none;}}
.villa-card .pic{position:relative; overflow:hidden;}
.villa-card .pic image-slot{width:100%; height:230px; display:block; border-radius:0; transition:transform .5s var(--ease);}
.villa-card:hover .pic image-slot{transform:scale(1.05);}
.villa-card .rate{position:absolute; top:13px; inset-inline-end:13px; z-index:3; background:rgba(255,253,248,.95); border-radius:999px; padding:6px 12px; font-weight:700; font-size:14px; display:flex; align-items:center; gap:5px; box-shadow:var(--shadow-xs); white-space:nowrap;}
.villa-card .rate .star{color:var(--mustard);}
.villa-card .rate .c{color:var(--ink-500); font-weight:500; font-size:12.5px;}
.villa-card .fav{position:absolute; top:13px; inset-inline-start:13px; z-index:3; width:38px; height:38px; border-radius:50%; background:rgba(255,253,248,.9); display:grid; place-items:center; transition:transform .18s var(--ease); border:none; cursor:pointer;}
.villa-card .fav:hover{transform:scale(1.1);}
.villa-card .fav svg{width:19px; height:19px; stroke:var(--ink-700); fill:none; stroke-width:2;}
.villa-card .fav.on svg{fill:var(--t-romance); stroke:var(--t-romance);}
/* urgency tag on photo */
.villa-card .urg{position:absolute; left:13px; right:13px; bottom:13px; z-index:3; display:inline-flex; align-items:center; gap:7px; width:fit-content; max-width:calc(100% - 26px); background:var(--peach-bg); color:var(--peach-deep); border:1px solid rgba(255,255,255,.5); font-size:12.5px; font-weight:700; padding:6px 12px; border-radius:999px; box-shadow:var(--shadow-sm); backdrop-filter:blur(2px);}
.villa-card .urg.new{background:var(--mint-bg); color:var(--mint-deep);}
.villa-card .urg svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; flex:none;}
.villa-card .body{padding:16px 18px 20px;}
.villa-card .perfect{display:inline-flex; align-items:center; gap:6px; background:var(--amber-100); color:var(--amber-800); font-size:12.5px; font-weight:700; padding:5px 11px; border-radius:999px; margin-bottom:9px;}
.villa-card .perfect svg{width:14px; height:14px; stroke:currentColor; fill:none; stroke-width:2;}
.villa-card h4{font-size:20px; font-weight:700; margin-bottom:3px;}
.villa-card .loc{font-size:13.5px; color:var(--ink-500); display:flex; align-items:center; gap:5px;}
.villa-card .loc svg{width:15px; height:15px; stroke:var(--ink-300); fill:none; stroke-width:2; flex:none;}
.villa-card .ftr{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px;}
.villa-card .price b{font-family:var(--serif); font-weight:700; font-size:21px; color:var(--ink-900);}
.villa-card .price span{font-size:12.5px; color:var(--ink-500);}
.villa-card .book{background:var(--amber-600); color:#3a2a08; border:none; border-radius:999px; padding:10px 16px; font-weight:700; font-size:14.5px; transition:all .18s var(--ease); display:inline-flex; align-items:center; gap:7px; white-space:nowrap; cursor:pointer;}
.villa-card .book .wa{width:16px; height:16px; flex:none; fill:currentColor; stroke:none;}
.villa-card .book:hover{background:var(--amber-700);}

/* ---------- skeleton ---------- */
.skel{background:var(--cream); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-xs);}
.skel .sk-pic{height:230px; background:var(--sand-100);}
.skel .sk-body{padding:18px;}
.sk-line{height:13px; border-radius:999px; background:var(--sand-100); margin-bottom:11px;}
.sk-line.w40{width:40%;} .sk-line.w70{width:70%;} .sk-line.w55{width:55%;}
.skel .sk-pic,.sk-line{position:relative; overflow:hidden;}
.skel .sk-pic::after,.sk-line::after{content:""; position:absolute; inset:0; transform:translateX(-100%); background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent); animation:shimmer 1.25s infinite;}
[dir=rtl] .skel .sk-pic::after,[dir=rtl] .sk-line::after{animation-name:shimmer-rtl;}
@keyframes shimmer{to{transform:translateX(100%);}}
@keyframes shimmer-rtl{to{transform:translateX(100%);}}

/* ---------- empty state ---------- */
.empty{display:none; text-align:center; padding:30px 20px 10px;}
.empty.show{display:block; animation:cardin .4s var(--ease);}
.empty .face{width:88px; height:88px; margin:0 auto 18px; border-radius:50%; background:var(--amber-50); border:2px solid var(--amber-300); display:grid; place-items:center;}
.empty .face svg{width:42px; height:42px; stroke:var(--amber-700); fill:none; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round;}
.empty h3{font-size:24px; font-weight:700; margin-bottom:8px;}
.empty p{font-size:16px; color:var(--ink-500); max-width:44ch; margin:0 auto 22px;}
.empty .btn-amber{display:inline-block;}
.near-label{display:flex; align-items:center; gap:12px; margin:36px 0 18px; font-family:var(--serif); font-weight:700; font-size:19px; color:var(--ink-900);}
.near-label::before,.near-label::after{content:""; flex:1; height:1px; background:var(--line);}

/* ---------- map view (split) ---------- */
.results-area{min-width:0;}
.split{display:grid; grid-template-columns:1fr; gap:0;}
.map-mode .split{grid-template-columns:minmax(0,1fr) minmax(360px,440px); gap:24px; align-items:start;}
@media(max-width:980px){ .map-mode .split{grid-template-columns:1fr;} }
.maplist{min-width:0;}
.map-mode .villa-grid{grid-template-columns:repeat(2,1fr); gap:18px;}
@media(max-width:1240px){ .map-mode .villa-grid{grid-template-columns:1fr;} }
@media(min-width:981px){ .dbody.map-mode{grid-template-columns:1fr;} .dbody.map-mode .filters-col{display:none;} }
.mapwrap{display:none;}
.map-mode .mapwrap{display:block; position:sticky; top:206px;}
.map{position:relative; height:calc(100vh - 240px); min-height:480px; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow-sm);
  background:
    radial-gradient(120% 90% at 80% 0%, #DDEAD6, transparent 55%),
    radial-gradient(90% 80% at 10% 100%, #CFE0EC, transparent 55%),
    linear-gradient(160deg,#EAF0E2,#E6EEF2);}
@media(max-width:980px){ .map-mode .mapwrap{position:relative;} .map{height:60vh; min-height:380px; margin-bottom:20px;} }
/* faint coastline + region wash */
.map .coast{position:absolute; inset:0; pointer-events:none; opacity:.5;
  background:linear-gradient(105deg, transparent 0 30%, rgba(132,170,200,.28) 30% 34%, transparent 34%);}
.map .region{position:absolute; border-radius:50%; filter:blur(26px); opacity:.32; pointer-events:none;}
.mk{position:absolute; transform:translate(50%,-50%); z-index:2; cursor:pointer;}
.mk .pin{background:var(--cream); color:var(--ink-900); border:1.5px solid var(--line); border-radius:999px; padding:6px 12px; font-weight:700; font-size:13.5px; box-shadow:var(--shadow-sm); white-space:nowrap; transition:all .18s var(--ease);}
.mk:hover .pin,.mk.hl .pin{background:var(--ink-900); color:var(--sand-50); border-color:var(--ink-900); transform:scale(1.08); z-index:5;}
.mk.active .pin{background:var(--amber-600); color:#3a2a08; border-color:var(--amber-600);}
.mk .tip{position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%) translateY(4px); background:var(--ink-900); color:var(--sand-50); font-size:12px; font-weight:600; padding:5px 10px; border-radius:8px; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .15s var(--ease), transform .15s var(--ease);}
.mk:hover .tip,.mk.hl .tip{opacity:1; transform:translateX(-50%) translateY(0);}
.map-legend{position:absolute; bottom:14px; inset-inline-start:14px; z-index:4; background:rgba(255,253,248,.92); border:1px solid var(--line-soft); border-radius:999px; padding:7px 14px; font-size:12.5px; font-weight:600; color:var(--ink-500); box-shadow:var(--shadow-xs);}

/* ---------- helper popup (friendly assistant) ---------- */
.helper{position:fixed; bottom:24px; inset-inline-start:24px; z-index:120; width:340px; max-width:calc(100vw - 36px); background:var(--cream); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-lg); padding:16px 16px 16px 16px; display:flex; gap:13px; opacity:0; transform:translateY(20px) scale(.96); pointer-events:none; transition:opacity .32s var(--ease), transform .32s var(--ease);}
.helper.show{opacity:1; transform:none; pointer-events:auto;}
.helper .hic{flex:none; width:44px; height:44px; border-radius:14px; background:var(--amber-100); display:grid; place-items:center;}
.helper .hic svg{width:24px; height:24px; stroke:var(--amber-800); fill:none; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round;}
.helper .htext{flex:1; min-width:0;}
.helper .htext p{font-size:14px; color:var(--ink-700); line-height:1.5;}
.helper .htext .hact{margin-top:11px; background:var(--ink-900); color:var(--sand-50); border:none; border-radius:999px; padding:9px 16px; font-family:var(--sans); font-weight:700; font-size:13.5px; cursor:pointer; transition:background .15s var(--ease);}
.helper .htext .hact:hover{background:var(--amber-600); color:#3a2a08;}
.helper .hclose{position:absolute; top:10px; inset-inline-end:10px; width:24px; height:24px; border-radius:50%; border:none; background:transparent; color:var(--ink-300); display:grid; place-items:center; cursor:pointer;}
.helper .hclose:hover{background:var(--sand-100); color:var(--ink-700);}
.helper .hclose svg{width:13px; height:13px; stroke:currentColor; stroke-width:2.4; fill:none; stroke-linecap:round;}

/* ---------- mobile filter drawer ---------- */
@media(max-width:980px){
  .filters-col{position:fixed; inset:0; z-index:110; visibility:hidden;}
  .filters-col .scrim{position:absolute; inset:0; background:rgba(28,20,12,.42); opacity:0; transition:opacity .3s var(--ease);}
  .filters{position:absolute; left:0; right:0; bottom:0; top:auto; max-height:86vh; border-radius:var(--r-xl) var(--r-xl) 0 0; transform:translateY(100%); transition:transform .34s var(--ease); box-shadow:var(--shadow-lg);}
  .filters-col.open{visibility:visible;}
  .filters-col.open .scrim{opacity:1;}
  .filters-col.open .filters{transform:none;}
  .filters-scroll{max-height:60vh;}
  .filters-head .grab{position:absolute; top:8px; left:50%; transform:translateX(-50%); width:40px; height:4px; border-radius:999px; background:var(--line);}
  .drawer-apply{padding:14px 20px; border-top:1px solid var(--line-soft);}
  .drawer-apply .btn-amber{width:100%; text-align:center;}
  .mobile-filter-bar{display:flex; align-items:center; gap:10px; margin-bottom:16px;}
  .mfilter-btn{display:inline-flex; align-items:center; gap:8px; background:var(--cream); border:1.5px solid var(--line); border-radius:999px; padding:11px 18px; font-family:var(--sans); font-weight:700; font-size:14.5px; color:var(--ink-900); cursor:pointer;}
  .mfilter-btn svg{width:17px; height:17px; stroke:var(--ink-700); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
  .mfilter-btn .badge{background:var(--amber-600); color:#3a2a08; border-radius:999px; min-width:20px; height:20px; padding:0 5px; font-size:12px; display:inline-grid; place-items:center;}
}
@media(min-width:981px){ .drawer-apply,.filters-head .grab{display:none;} }

/* sticky offsets when no main header scroll — search sits under hdr (74) */
@media(max-width:980px){
  .dsearch{top:74px;}
  .filters{top:auto;}
  .map-mode .mapwrap{top:auto;}
}

/* hide desktop dsf dividers nicely on small */
@media(max-width:640px){
  .dsf{padding:6px 10px;}
  .dsf .lab{font-size:10px;}
  .dsf .val{font-size:11.5px;}
  .dsearch-inner{padding:10px 0;}
  .helper{inset-inline:12px; width:auto; bottom:16px;}
}

/* ===========================================================
   v2 additions — expanded filter panel, trust, load-more
   =========================================================== */

/* panel internal breathing room */
.filters-head{padding:20px 24px;}
.fgroup-head{padding:16px 24px;}
.fgroup-body{padding:2px 24px 22px;}
.filters-scroll{padding-bottom:4px;}

/* filter quick-search */
.filter-search{position:relative; margin:16px 22px 6px;}
.filter-search .fs-ic{position:absolute; inset-inline-start:14px; top:50%; transform:translateY(-50%); width:17px; height:17px; stroke:var(--ink-300); fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; pointer-events:none;}
.filter-search input{width:100%; font-family:var(--sans); font-size:14px; font-weight:500; color:var(--ink-900); background:var(--sand-50); border:1.5px solid var(--line); border-radius:999px; padding:11px 40px 11px 38px;}
.filter-search input:focus{outline:none; border-color:var(--amber-300); background:var(--cream);}
.filter-search input::placeholder{color:var(--ink-300);}
.fs-clear{position:absolute; inset-inline-end:10px; top:50%; transform:translateY(-50%); width:24px; height:24px; border-radius:50%; border:none; background:var(--sand-200); color:var(--ink-700); display:grid; place-items:center; cursor:pointer;}
.fs-clear svg{width:12px; height:12px; stroke:currentColor; stroke-width:2.4; fill:none; stroke-linecap:round;}
.fs-noresults{padding:8px 24px 16px; font-size:13.5px; color:var(--ink-500);}

/* popular filters shortcut */
.popular{margin:8px 22px 14px; padding:16px; background:var(--amber-50); border:1px solid var(--amber-100); border-radius:var(--r-md);}
.poplabel{display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; color:var(--amber-800); margin-bottom:11px;}
.poplabel svg{width:16px; height:16px; fill:var(--mustard); stroke:none;}
.popular .fopts{gap:8px;}
.popular .fopt{background:var(--cream); color:#000;}

/* prominent group (reviews) */
.fgroup.prominent .fgroup-head .ft{color:var(--amber-800);}
.fgroup.prominent{background:linear-gradient(180deg,var(--amber-50),transparent 60%);}

/* sublabel with review source marks */
.fsublabel.src{display:flex; align-items:center; gap:7px; text-transform:none; letter-spacing:0; font-size:12.5px; color:var(--ink-500);}

/* google / booking letter marks (generic, not the real logos) */
.g-mark{display:inline-grid; place-items:center; width:17px; height:17px; border-radius:5px; background:#fff; color:#4285F4; font-family:var(--sans); font-weight:800; font-size:11px; line-height:1; border:1px solid #e6e6e6; flex:none;}
.b-mark{display:inline-grid; place-items:center; min-width:17px; height:17px; padding:0 3px; border-radius:5px; background:#003580; color:#fff; font-family:var(--sans); font-weight:800; font-size:10.5px; line-height:1; flex:none;}
.fopt.revopt{gap:6px;}
.fopt.revopt.on .g-mark{border-color:transparent;}

/* when group */
.fhint{font-size:13.5px; color:var(--ink-500); line-height:1.55; margin-bottom:12px;}
.fdates-btn{width:100%; display:flex; align-items:center; justify-content:center; gap:9px; background:var(--amber-600); color:#3a2a08; border:none; border-radius:999px; padding:11px; font-family:var(--sans); font-weight:700; font-size:15px; cursor:pointer; transition:background .18s var(--ease);}
.fdates-btn:hover{background:var(--amber-700);}
.fdates-btn svg{width:17px; height:17px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
.fdates-summary{font-size:13.5px; font-weight:600; color:var(--ink-900); margin-top:10px; text-align:center;}

/* ---------- card trust row ---------- */
.villa-card{display:flex; flex-direction:column;}
.villa-card .body{flex:1; display:flex; flex-direction:column;}
.villa-card .trust{display:flex; flex-wrap:wrap; gap:7px; margin-top:11px;}
.villa-card .ftr{margin-top:auto; padding-top:16px;}
.tb{display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:700; color:var(--ink-700); background:var(--sand-50); border:1px solid var(--line); border-radius:999px; padding:4px 9px 4px 7px;}
.tb .star{color:var(--mustard);}
.tb.verified{gap:4px; color:var(--mint-deep); background:var(--mint-bg); border-color:var(--mint-line); padding:4px 10px 4px 8px;}
.tb.verified svg{width:13px; height:13px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}

/* ---------- load more ---------- */
.loadmore-wrap{display:none; justify-content:center; margin-top:26px;}
.loadmore{display:inline-flex; align-items:center; gap:9px; background:var(--cream); border:1.5px solid var(--line); border-radius:999px; padding:13px 26px; font-family:var(--sans); font-weight:700; font-size:15.5px; color:var(--ink-900); cursor:pointer; box-shadow:var(--shadow-xs); transition:all .18s var(--ease);}
.loadmore:hover{border-color:var(--amber-600); color:var(--amber-800); transform:translateY(-2px); box-shadow:var(--shadow-sm);}
.loadmore svg{width:18px; height:18px; stroke:currentColor; fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round;}

/* ---------- try-another strip ---------- */
.tryanother{display:none; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-top:34px; padding:22px 26px; background:var(--cream); border:1px solid var(--line-soft); border-radius:var(--r-lg); box-shadow:var(--shadow-xs);}
.tryanother .ta-text h4{font-size:19px; font-weight:700;}
.tryanother .ta-text p{font-size:14px; color:var(--ink-500); margin-top:3px;}
.ta-chips{display:flex; gap:9px; flex-wrap:wrap;}
.ta-chip{display:inline-flex; align-items:center; gap:8px; background:var(--sand-50); border:1.5px solid var(--line); border-radius:999px; padding:9px 16px; font-family:var(--sans); font-weight:600; font-size:14px; color:var(--ink-700); cursor:pointer; transition:all .18s var(--ease);}
.ta-chip .dot{width:10px; height:10px; border-radius:50%; background:var(--c,var(--amber-600)); transition:transform .3s var(--ease);}
.ta-chip:hover{transform:translateY(-2px); border-color:var(--c,var(--amber-300)); box-shadow:var(--shadow-xs);}
.ta-chip:hover .dot{transform:scale(1.4);}

@media(max-width:640px){
  .tryanother{flex-direction:column; align-items:flex-start;}
  .filter-search,.popular{margin-inline:18px;}
  .filters-head{padding:18px 20px;}
  .fgroup-head{padding:15px 20px;}
  .fgroup-body{padding:2px 20px 20px;}
}
