/* ══════════════════════════════════════════════════
   PLACE PAGE — Listing cards + filters
   ══════════════════════════════════════════════════ */

.place-page{margin-top:72px}
.place-header{background:rgba(26,175,176,0.07);border-bottom:1px solid rgba(26,175,176,0.12);padding:clamp(32px,5vh,56px) 0 clamp(20px,3vh,28px)}
.place-header-inner{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.place-header-text{flex:1;min-width:0}
.place-header-text .pill{margin-bottom:6px}
.place-header-title{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,4.5vw,48px);font-weight:700;color:var(--text);line-height:1.0;letter-spacing:-.5px;margin-bottom:6px}
.place-header-title em{font-style:italic;color:var(--muted);font-weight:400}
.place-header-intro{font-size:clamp(14px,1.3vw,15.5px);color:#4B5563;line-height:1.65;max-width:640px;margin-top:12px;margin-bottom:8px}
.place-stats{display:flex;gap:32px;flex-shrink:0}
.ps-item{text-align:center}
.ps-n{font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:600;color:var(--text);line-height:1}
.ps-l{font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);margin-top:4px}

/* ═══ FILTERS ═══ */
.filters-bar{position:sticky;top:72px;z-index:100;background:var(--surface);padding:12px 0;transition:box-shadow .3s}
.filters-bar.stuck{box-shadow:0 4px 24px rgba(0,0,0,.06)}
.filters-inner{display:flex;align-items:center;gap:10px}
.fd-wrap{position:relative}
.fd-trigger{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;font-size:13px;font-weight:500;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:100px;cursor:pointer;transition:all .2s;white-space:nowrap;user-select:none;outline:none}
.fd-trigger:hover{border-color:#CBD5E1;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.fd-trigger.has-value{background:var(--slate);color:#fff;border-color:var(--slate);font-weight:600}
.fd-trigger.has-value:hover{background:var(--slate2);border-color:var(--slate2)}
.fd-trigger.open{border-color:var(--azure);box-shadow:0 0 0 3px rgba(26,175,176,.12)}
.fd-trigger.has-value.open{box-shadow:0 0 0 3px rgba(15,25,35,.15)}
.fd-trigger svg.fd-chevron{transition:transform .2s;color:var(--muted);flex-shrink:0}
.fd-trigger.has-value svg.fd-chevron{color:rgba(255,255,255,.5)}
.fd-trigger.open svg.fd-chevron{transform:rotate(180deg)}
.fd-label{font-size:11px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-right:2px}
.fd-trigger.has-value .fd-label{color:rgba(255,255,255,.5)}
.fd-val{font-weight:600}
.fd-panel{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:0 12px 40px rgba(0,0,0,.1);padding:6px;opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .15s,transform .15s;z-index:110}
.fd-panel.open{opacity:1;pointer-events:auto;transform:translateY(0)}
.fd-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;font-size:13px;font-weight:500;color:var(--text);background:none;border:none;border-radius:8px;cursor:pointer;transition:all .12s;text-align:left;outline:none}
.fd-option:hover{background:var(--bg);color:var(--azure)}
.fd-option.selected{background:rgba(26,175,176,.08);color:var(--azure);font-weight:600}
.fd-option .fd-opt-label{flex:1}
.fd-option .fd-opt-count{font-size:11px;font-weight:600;color:var(--muted);background:var(--bg);padding:2px 8px;border-radius:100px;min-width:28px;text-align:center;flex-shrink:0}
.fd-option.selected .fd-opt-count{background:rgba(26,175,176,.12);color:var(--azure)}
.fd-option .fd-check{width:16px;height:16px;border-radius:50%;border:1.5px solid var(--border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.fd-option.selected .fd-check{background:var(--azure);border-color:var(--azure)}
.fd-option.selected .fd-check svg{opacity:1}
.fd-option .fd-check svg{opacity:0;transition:opacity .15s}
.f-actions{display:flex;align-items:center;gap:12px;margin-left:auto;flex-shrink:0}
.f-reset{display:none;align-items:center;gap:5px;padding:9px 14px;font-size:12px;font-weight:600;color:#EF4444;background:#FEF2F2;border:1.5px solid #FECACA;border-radius:100px;cursor:pointer;transition:all .2s;white-space:nowrap}
.f-reset.visible{display:inline-flex}
.f-reset:hover{background:#FEE2E2;border-color:#FCA5A5}
.f-result{font-size:13px;color:var(--muted);font-weight:500;white-space:nowrap}
.f-result strong{font-weight:700;color:var(--text)}

/* ═══ LISTING CARDS ═══ */
.listings-grid{display:flex;flex-direction:column;gap:16px;margin-top:12px}
.listing-card{position:relative;display:grid;grid-template-columns:340px 1fr;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);text-decoration:none;color:inherit;overflow:hidden;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .3s}
.listing-card:hover{transform:translateY(-4px);box-shadow:0 20px 48px rgba(0,0,0,.07);border-color:transparent}
.listing-card::after{content:'';position:absolute;top:0;left:0;bottom:0;width:3px;background:var(--azure);transform:scaleY(0);transform-origin:top;transition:transform .4s ease;z-index:5;border-radius:var(--r) 0 0 var(--r)}
.listing-card:hover::after{transform:scaleY(1)}
.listing-card[hidden]{display:none}
.lcard-img{position:relative;overflow:hidden;min-height:220px}
.lcard-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.listing-card:hover .lcard-img img{transform:scale(1.06)}
.lcard-featured{position:absolute;top:14px;left:14px;display:inline-flex;align-items:center;gap:5px;background:var(--gold);color:#fff;font-size:10px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:5px 12px;border-radius:6px;z-index:2}
.lcard-body{padding:24px 28px;display:flex;flex-direction:column;justify-content:center;min-width:0}
.lcard-badges{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.lcard-badge{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;padding:4px 10px;border-radius:5px}
.lcard-badge-type{background:rgba(26,175,176,.08);color:var(--azure);border:1px solid rgba(26,175,176,.2)}
.lcard-badge-cap{background:var(--bg);color:var(--muted);border:1px solid var(--border)}
.lcard-badge-beach{background:rgba(201,168,76,.08);color:#A07830;border:1px solid rgba(201,168,76,.25)}
.lcard-title{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:700;color:var(--text);line-height:1.1;margin-bottom:8px;letter-spacing:-.3px}
.lcard-location{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:5px;margin-bottom:14px}
.lcard-amenities{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.lcard-amenity{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500;color:var(--muted);background:var(--bg);padding:4px 10px;border-radius:4px;border:1px solid var(--border)}
.lcard-amenity svg{color:var(--azure);flex-shrink:0}
.lcard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:16px;border-top:1px solid var(--border)}
.lcard-price{font-size:13px;color:var(--muted)}
.lcard-price strong{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:700;color:var(--text);letter-spacing:-.5px}
.lcard-cta{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--azure);transition:gap .2s,color .2s}
.listing-card:hover .lcard-cta{gap:10px;color:var(--azure-h)}
.lcard-cta svg{transition:transform .2s}
.listing-card:hover .lcard-cta svg{transform:translateX(2px)}
.load-more-wrap{text-align:center;margin-top:32px}
.load-more-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 36px;font-size:14px;font-weight:600;color:var(--text);background:var(--surface);border:1.5px solid var(--border);border-radius:100px;cursor:pointer;transition:all .25s}
.load-more-btn:hover{border-color:var(--azure);color:var(--azure);box-shadow:0 8px 24px rgba(26,175,176,.1);transform:translateY(-2px)}
.empty-state{text-align:center;padding:80px 20px;display:none}
.empty-state.visible{display:block}
.empty-ico{width:64px;height:64px;background:var(--bg);border:1px solid var(--border);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--muted)}
.empty-state h3{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:600;color:var(--text);margin-bottom:8px}
.empty-state p{font-size:14px;color:var(--muted);max-width:360px;margin:0 auto 20px;line-height:1.6}

/* ═══ RESPONSIVE ═══ */
@media(max-width:1024px){.listing-card{grid-template-columns:280px 1fr}}
@media(max-width:820px){
  .listing-card{grid-template-columns:240px 1fr}
  .lcard-body{padding:20px 24px}.lcard-title{font-size:23px}
  .place-stats{gap:24px}
}
@media(max-width:768px){
  .place-page{margin-top:64px}
  .filters-bar{top:64px}
  .listing-card{grid-template-columns:1fr}
  .lcard-img{min-height:200px;max-height:220px}
  .lcard-body{padding:20px}
  .place-header{padding:28px 0 16px}
  .place-header-inner{flex-direction:column;align-items:flex-start;gap:0}
  .place-header-intro{max-width:100%;margin-bottom:14px}
  .place-stats{width:100%;gap:28px;padding-top:14px;margin-top:4px;border-top:1px solid rgba(26,175,176,0.15)}
  .ps-n{font-size:28px}.ps-l{font-size:9px;letter-spacing:1.2px}
  .ps-item{text-align:left}
}
@media(max-width:560px){
  .place-header{padding:28px 0 14px}
  .place-header-title{font-size:clamp(28px,8vw,40px);margin-bottom:4px}
  .place-header-text .pill{margin-bottom:4px;font-size:10px}
  .place-header-intro{font-size:13.5px;line-height:1.6;margin-top:8px;margin-bottom:12px}
  .place-stats{gap:24px;padding-top:12px}
  .ps-n{font-size:26px}.ps-l{font-size:8.5px}
  .fd-trigger{padding:9px 14px;font-size:12px;flex:1}
  .fd-label{font-size:10px;letter-spacing:.5px}
  .filters-inner{gap:8px}
  .f-result{display:none}
  .f-actions{margin-left:0}
  .f-reset{flex:none}
  .lcard-img{min-height:180px;max-height:200px}
  .lcard-title{font-size:21px}
  .lcard-amenities{display:none}
}
@media(max-width:430px){
  .place-header-title{font-size:clamp(26px,7.5vw,36px)}
  .place-header-intro{font-size:13.5px;margin-top:8px}
  .lcard-body{padding:16px}
  .lcard-foot{flex-direction:column;align-items:flex-start;gap:12px}
  .ps-n{font-size:24px}
  .fd-trigger{padding:8px 12px;font-size:11px}
}
@media(max-width:390px){
  .place-header-title{font-size:clamp(24px,7vw,32px)}
}
