/* =========================================================
   listing.css (BASE)
   - taxonomy-listing_type + taxonomy-location + single listing
   - Layout, cards, filters, slider, map, pagination
   ========================================================= */

:root{
  --ld-text:#0f172a;
  --ld-muted:#475569;
  --ld-border:rgba(15,23,42,.14);
  --ld-card:#fff;
  --ld-radius:16px;
  --ld-shadow:0 10px 30px rgba(15,23,42,.08);

  --ld-accent:#0ea5e9;      /* PRIMARY (blue) */
  --ld-accent-2:#ec4899;    /* secondary (pink) for tags/featured if needed */
  --ld-link:#0b5bd3;
}

/* Base container */
.ld-container{ max-width:1200px; margin:0 auto; padding:0 18px; }
.ld-results{ position:relative; }
#ld-results.is-loading{ opacity:.55; pointer-events:none; transition:opacity .15s ease; }

/* Breadcrumbs */
.ld-breadcrumbs{ margin:6px 0 16px; }
.ld-bc, .ld-bc a, .ld-bc span{ font-size:14px; line-height:1.35; }
.ld-bc a{ text-decoration:none; }
.ld-bc a:hover{ text-decoration:underline; }

/* =========================================================
   TAXONOMY: HERO (listing_type)
   ========================================================= */
.ld-type-hero{
  margin-bottom:18px;
  border:1px solid var(--ld-border);
  border-radius:18px;
  background:var(--ld-card);
  box-shadow:var(--ld-shadow);
  padding:18px;
}

.ld-type-hero-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:18px;
  align-items:start;
}

@media (max-width:1024px){
  .ld-type-hero-inner{ grid-template-columns:1fr; }
}

.ld-type-kicker{
  color:var(--ld-accent);
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
  font-size:12px;
}

.ld-type-title{
  margin:6px 0 8px;
  font-size:34px;
  line-height:1.1;
  letter-spacing:-.02em;
}

.ld-type-desc{
  color:var(--ld-muted);
  font-size:15px;
  line-height:1.7;
  max-width:60ch;
}

.ld-type-cards{
  display:grid;
  gap:10px;
}

.ld-type-card{
  border:1px solid var(--ld-border);
  border-radius:16px;
  padding:14px;
  background:rgba(15,23,42,.02);
}

.ld-type-card-title{ font-weight:700; }
.ld-type-card-sub{ margin-top:4px; color:var(--ld-muted); font-size:13px; line-height:1.5; }

/* WPBakery top block */
.ld-top-content{ margin: 14px 0 18px; }

/* =========================================================
   TAXONOMY: BROWSE GRID (filters + results)
   ========================================================= */
.ld-browse{
  display:grid;
  grid-template-columns:320px minmax(0,1fr);
  gap:18px;
  align-items:start;
}

@media (max-width:1024px){
  .ld-browse{ grid-template-columns:1fr; }
}

/* Filters */
.ld-filters{ min-width:0; }
.ld-filters-card{
  border:1px solid var(--ld-border);
  border-radius:18px;
  background:var(--ld-card);
  box-shadow:var(--ld-shadow);
  padding:14px;
}

.ld-filters-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.ld-filters-head h2{ margin:0; font-size:16px; }

.ld-clear{
  border:0;
  background:transparent;
  color:var(--ld-accent);
  font-weight:800;
  cursor:pointer;
}

.ld-filter{ margin-top:12px; }
.ld-filter label{
  display:block;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ld-muted);
  margin-bottom:6px;
  font-weight:700;
}

.ld-filter input[type="text"],
.ld-filter input[type="number"],
.ld-filter select{
  width:100%;
  border:1px solid rgba(0,0,0,.16);
  border-radius:12px;
  padding:10px 12px;
  outline:none;
  background:#fff;
}

.ld-filter input::placeholder{ color:rgba(0,0,0,.35); }

.ld-checks{
  display:grid;
  gap:8px;
  max-height:260px;
  overflow:auto;
  padding-right:6px;
}

.ld-check{
  display:flex;
  gap:10px;
  align-items:center;
  font-size:14px;
}

.ld-check input{ transform:translateY(1px); }

.ld-apply{
  width:100%;
  margin-top:12px;
  border:1px solid var(--ld-accent);
  background:var(--ld-accent);
  color:#fff;
  border-radius:14px;
  padding:12px 14px;
  font-weight:900;
  cursor:pointer;
}
.ld-apply:hover{ opacity:.92; }

/* Mobile filters bar + collapse */
.ld-filters-mobilebar{
  display:none;
  gap:10px;
  align-items:center;
  justify-content:space-between;
  margin-bottom:12px;
}

.ld-filters-toggle{
  height:40px;
  padding:0 14px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,.15);
  background:#fff;
  font-weight:800;
  cursor:pointer;
}

@media (max-width:900px){
  .ld-filters-mobilebar{ display:flex; }
  #ld-filters-panel{ display:none; }
  #ld-filters.is-open #ld-filters-panel{ display:block; }
}

@media (min-width:901px){
  /* desktop: hide Apply (auto-apply via JS) */
  .ld-apply{ display:none; }
}

/* Results head */
.ld-results-panel{ min-width:0; }
.ld-results-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.ld-results-head h2{ margin:0; font-size:20px; }
.ld-results-count{ color:var(--ld-muted); font-size:13px; }

.ld-showing{
  margin:8px 0 14px;
  font-size:14px;
  color:var(--ld-muted);
}

/* View toggle */
.ld-view-toggle{ display:flex; gap:10px; margin:8px 0 14px; }
.ld-toggle-btn{
  height:38px;
  padding:0 14px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.14);
  background:#fff;
  font-weight:900;
  cursor:pointer;
}
.ld-toggle-btn.is-active{
  background:var(--ld-accent);
  border-color:var(--ld-accent);
  color:#fff;
}

/* =========================================================
   LIST CARDS (vertical list)
   ========================================================= */
.ld-list-cards{
  display:flex;
  flex-direction:column;
  gap:16px;
}

.ld-list-item{
  display:flex;
  gap:18px;
  background:#fff;
  border-radius:14px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.10);
  box-shadow:0 8px 30px rgba(0,0,0,.06);
}

.ld-is-featured{ border:2px solid rgba(236,72,153,.20); }

.ld-list-thumb{
  position:relative;
  flex:0 0 44%;
  min-height:260px;
  background:rgba(0,0,0,.04);
  overflow:hidden;
}

.ld-list-body{
  flex:1;
  padding:18px 18px 16px;
  display:flex;
  flex-direction:column;
}

.ld-list-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.ld-kicker{
  font-size:12px;
  letter-spacing:.08em;
  font-weight:800;
  color:var(--ld-accent);
  text-transform:uppercase;
}

.ld-list-title{
  margin:6px 0 6px;
  font-size:22px;
  line-height:1.15;
  letter-spacing:-.01em;
}
.ld-list-title a{ color:var(--ld-text); text-decoration:none; }
.ld-list-title a:hover{ opacity:.88; }

.ld-rating-row{
  display:flex;
  align-items:center;
  gap:6px;
  margin-bottom:6px;
  font-size:14px;
  font-weight:800;
}
.ld-rating-star{ color:#f59e0b; }
.ld-rating-count{ font-weight:600; color:rgba(0,0,0,.55); }

.ld-facts-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:2px 0 10px;
}
.ld-fact{
  display:inline-flex;
  align-items:center;
  height:28px;
  padding:0 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:800;
  background:rgba(0,0,0,.07);
  color:var(--ld-text);
}

.ld-list-address{
  font-size:14px;
  color:rgba(0,0,0,.70);
  margin-bottom:10px;
  font-weight:600;
}

.ld-list-desc{
  font-size:14px;
  line-height:1.45;
  color:rgba(0,0,0,.72);
  margin:0 0 10px;
}

.ld-list-phone a{
  display:inline-block;
  font-weight:800;
  color:var(--ld-link);
  text-decoration:none;
  margin-bottom:12px;
}
.ld-list-phone a:hover{ text-decoration:underline; }

.ld-list-actions{
  margin-top:auto;
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}

.ld-btn{
  height:40px;
  padding:0 16px;
  border-radius:10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  font-weight:800;
  font-size:14px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  color:var(--ld-text);
}
.ld-btn:hover{ opacity:.92; }

.ld-btn-primary{
  background:var(--ld-accent);
  border-color:rgba(14,165,233,.35);
  color:#fff;
}

.ld-btn-outline{
  background:#fff;
  color:var(--ld-accent);
  border:2px solid rgba(14,165,233,.28);
}

.ld-details{
  margin-left:auto;
  text-decoration:none;
  font-weight:800;
  font-size:14px;
  color:rgba(0,0,0,.70);
}

.ld-tag{
  position:absolute;
  left:10px;
  top:10px;
  background:rgba(236,72,153,.95);
  color:#fff;
  font-weight:900;
  font-size:12px;
  padding:6px 10px;
  border-radius:999px;
}

/* Responsive list cards */
@media (max-width:900px){
  .ld-list-item{ flex-direction:column; }
  .ld-list-thumb{ flex-basis:auto; min-height:220px; }
  .ld-details{ margin-left:0; }
}

/* =========================================================
   THUMB MINI-SLIDER (card gallery)
   ========================================================= */
.ld-thumb-link{
  position:absolute;
  inset:0;
  z-index:1;
  display:block;
}

.ld-thumb-slider{
  position:absolute;
  inset:0;
  z-index:2; /* slider above link */
  overflow:hidden;
}

.ld-thumb-track{ height:100%; position:relative; }

.ld-thumb-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .25s ease;
  width:100%;
  height:100%;
}
.ld-thumb-slide.is-active{ opacity:1; }

.ld-thumb-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.ld-thumb-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:34px;
  height:34px;
  border-radius:999px;
  border:none;
  background:rgba(0,0,0,.45);
  color:#fff;
  font-size:20px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:3;
  pointer-events:auto;
  opacity:1;
}
.ld-thumb-nav.ld-prev{ left:10px; }
.ld-thumb-nav.ld-next{ right:10px; }

.ld-thumb-dots{
  position:absolute;
  left:12px;
  right:12px;
  bottom:10px;
  display:flex;
  gap:6px;
  justify-content:center;
  pointer-events:none;
  z-index:3;
}
.ld-thumb-dots .ld-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  background:rgba(255,255,255,.45);
}
.ld-thumb-dots .ld-dot.is-active{ background:#fff; }

/* =========================================================
   PRICE RANGE
   ========================================================= */
.ld-price-range{ display:flex; gap:8px; align-items:center; }
.ld-price-range input{ width:100%; }
.ld-price-sep{ opacity:.6; font-weight:800; }

/* Radius controls */
.ld-radius-row{ display:flex; gap:10px; align-items:center; }
#ld-radius-range{ flex:1; }
#ld-radius-number{
  width:90px;
  border:1px solid rgba(0,0,0,.16);
  border-radius:12px;
  padding:10px 12px;
  background:#fff;
  outline:none;
  font-weight:900;
}
.ld-radius-hint{
  margin-top:6px;
  font-size:12px;
  color:var(--ld-muted);
}

/* =========================================================
   MAP VIEW
   ========================================================= */
#ld-map-view{ margin-bottom:18px; position:relative; }
#ld-map{
  width:100%;
  height:520px;
  border-radius:14px;
  overflow:hidden;
  box-shadow:var(--ld-shadow);
  outline:1px solid rgba(0,0,0,.10);
}

@media (min-width:901px){
  #ld-map{ height:72vh; min-height:520px; }
}
@media (max-width:900px){
  #ld-map{ height:60vh; min-height:420px; }
}

/* Map controls (buttons) */
#ld-map-controls button,
#ld-search-area,
#ld-clear-area{
  border:1px solid rgba(0,0,0,.18);
  background:#fff;
  color:var(--ld-text);
  font-weight:900;
  border-radius:12px;
  cursor:pointer;
}

/* Hover highlight for markers (JS adds class on icon) */
.ld-mk-hot{
  transform:scale(1.14);
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.22));
}

/* =========================================================
   PAGINATION
   ========================================================= */
.ld-pagination{ margin-top:16px; }
.ld-pagination .page-numbers{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  height:38px;
  padding:0 10px;
  border:1px solid rgba(0,0,0,.14);
  border-radius:12px;
  margin-right:8px;
  text-decoration:none;
  color:var(--ld-text);
  background:#fff;
  font-weight:800;
}
.ld-pagination .page-numbers.current{
  border-color:var(--ld-accent);
  background:rgba(14,165,233,.10);
}

/* Empty */
.ld-empty{
  border:1px solid var(--ld-border);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--ld-shadow);
  padding:18px;
  color:var(--ld-muted);
}
/* =========================================================
   SINGLE LISTING (CPT: listing) — BASE + RESPONSIVE
   File: assets/css/listing.css
   Paste at END
   Scope: body.single-listing only (safe)
   ========================================================= */

body.single-listing .ld-wrap{ padding: 0 0 28px; }
body.single-listing .ld-container{ max-width:1200px; margin:0 auto; padding:0 18px; }

/* Breadcrumbs */
body.single-listing .ld-breadcrumbs{ margin:10px 0 14px; }

/* 2-col layout (desktop) */
body.single-listing .ld-layout{
  display:grid;
  grid-template-columns: minmax(0,1fr) 360px;
  gap:18px;
  align-items:start;
}

body.single-listing .ld-maincol{ min-width:0; }
body.single-listing .ld-sidecol{ min-width:0; }

/* Cards */
body.single-listing .ld-card{
  background:#fff;
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  box-shadow:0 8px 30px rgba(0,0,0,.06);
}
body.single-listing .ld-section{ padding:16px; }

body.single-listing .ld-h2{
  margin:0 0 10px;
  font-size:18px;
  line-height:1.2;
  letter-spacing:-.01em;
}
body.single-listing .ld-content{
  font-size:15px;
  line-height:1.75;
  color:rgba(0,0,0,.78);
}

/* =========================
   Header / Info card
   ========================= */
body.single-listing .ld-info{ padding:16px; }
body.single-listing .ld-head{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
}

body.single-listing .ld-head-media{ width:72px; }
body.single-listing .ld-head-logo{
  width:72px; height:72px; border-radius:16px;
  object-fit:cover; display:block;
}
body.single-listing .ld-head-avatar{
  width:72px; height:72px; border-radius:16px;
  background:rgba(15,23,42,.06);
  display:flex; align-items:center; justify-content:center;
  color:rgba(15,23,42,.55);
}
body.single-listing .ld-head-avatar svg{ width:38px; height:38px; }

body.single-listing .ld-head-kicker{
  font-size:12px;
  letter-spacing:.10em;
  font-weight:800;
  text-transform:uppercase;
  color:var(--ld-accent);
}

body.single-listing .ld-head-title{
  margin:6px 0 8px;
  font-size:30px;
  line-height:1.12;
  letter-spacing:-.02em;
}

body.single-listing .ld-head-rating{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:center;
  font-weight:800;
  font-size:14px;
}
body.single-listing .ld-rating-num{ font-weight:900; }
body.single-listing .ld-stars{ letter-spacing:.06em; }

body.single-listing .ld-head-address{
  margin-top:8px;
  display:flex;
  gap:10px;
  align-items:flex-start;
  color:rgba(0,0,0,.78);
  font-weight:600;
  line-height:1.45;
}

body.single-listing .ld-ic{
  width:18px; height:18px;
  flex:0 0 18px;
  color:rgba(15,23,42,.55);
  margin-top:2px;
}
body.single-listing .ld-ic svg{ width:18px; height:18px; display:block; }

body.single-listing .ld-head-links{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}

body.single-listing .ld-head-link{
  display:inline-flex;
  align-items:center;
  gap:10px;
  height:40px;
  padding:0 12px;
  border-radius:12px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  text-decoration:none;
  font-weight:800;
  color:var(--ld-text);
}
body.single-listing .ld-head-link:hover{ opacity:.92; }

body.single-listing .ld-badge{
  display:inline-flex;
  align-items:center;
  height:28px;
  padding:0 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  background:rgba(0,0,0,.06);
  color:var(--ld-text);
}
body.single-listing .ld-badge--featured{
  background:rgba(236,72,153,.12);
  color:#b1125f;
}

body.single-listing .ld-head-cta{ display:flex; justify-content:flex-end; }
body.single-listing .ld-cta-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  height:44px;
  padding:0 16px;
  border-radius:14px;
  font-weight:900;
  text-decoration:none;
  border:1px solid var(--ld-accent);
  background:var(--ld-accent);
  color:#fff;
  white-space:nowrap;
}
body.single-listing .ld-cta-btn--outline{
  background:#fff;
  color:var(--ld-accent);
  border:2px solid rgba(14,165,233,.28);
}

/* =========================
   Hero gallery (1 big + 2 small)
   ========================= */
body.single-listing .ld-hero{ margin-top:14px; }
body.single-listing .ld-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:10px;
}
body.single-listing .ld-hero-grid--single{ grid-template-columns:1fr; }

body.single-listing .ld-hero-big,
body.single-listing .ld-hero-small{
  border-radius:18px;
  overflow:hidden;
  background:rgba(0,0,0,.04);
  border:1px solid rgba(0,0,0,.10);
}

body.single-listing .ld-hero-big{ min-height:360px; }
body.single-listing .ld-hero-right{
  display:grid;
  grid-template-rows:1fr 1fr;
  gap:10px;
}
body.single-listing .ld-hero-small{ position:relative; min-height:175px; }

body.single-listing .ld-hero-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

body.single-listing .ld-hero-cta{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  height:44px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(15,23,42,.55);
  color:#fff;
  font-weight:900;
  cursor:pointer;
  backdrop-filter: blur(6px);
}

/* =========================
   Quick facts (restaurant)
   ========================= */
body.single-listing .ld-facts{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
body.single-listing .ld-facts .ld-fact{
  border:1px solid rgba(0,0,0,.10);
  background:rgba(15,23,42,.02);
  border-radius:14px;
  padding:12px;
  height:auto;
}
body.single-listing .ld-facts .ld-fact span{
  display:block;
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(0,0,0,.60);
  font-weight:800;
  margin-bottom:6px;
}
body.single-listing .ld-facts .ld-fact b{
  display:block;
  font-size:14px;
  color:var(--ld-text);
}

/* Amenities chips */
body.single-listing .ld-chips{ display:flex; flex-wrap:wrap; gap:8px; }
body.single-listing .ld-chip{
  display:inline-flex;
  align-items:center;
  height:28px;
  padding:0 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  background:rgba(0,0,0,.06);
}

/* Highlights list */
body.single-listing .ld-highlights{
  margin:0;
  padding-left:18px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 16px;
}
body.single-listing .ld-highlights li{ line-height:1.55; }

/* =========================
   Location block (map + info)
   ========================= */
body.single-listing .ld-location-wrap{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:14px;
  align-items:stretch;
}
body.single-listing .ld-location-map{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(0,0,0,.10);
  min-height:340px;
}
body.single-listing .ld-location-map iframe{
  width:100%;
  height:100%;
  display:block;
}
body.single-listing .ld-location-info{ padding:10px 6px; }

body.single-listing .ld-location-address{
  display:flex;
  gap:10px;
  align-items:flex-start;
  margin-top:10px;
}
body.single-listing .ld-pin{
  width:20px; height:20px;
  flex:0 0 20px;
  color:rgba(15,23,42,.55);
  margin-top:2px;
}
body.single-listing .ld-pin svg{ width:20px; height:20px; display:block; }

body.single-listing .ld-location-btn{
  margin-top:12px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  height:44px;
  padding:0 14px;
  border-radius:14px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  font-weight:900;
  text-decoration:none;
  color:var(--ld-text);
}
body.single-listing .ld-location-btn:hover{ opacity:.92; }

/* =========================
   Related grid
   ========================= */
body.single-listing .ld-section-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:12px;
  margin-bottom:10px;
}
body.single-listing .ld-link{
  font-weight:900;
  text-decoration:none;
  color:var(--ld-link);
}
body.single-listing .ld-link:hover{ text-decoration:underline; }

body.single-listing .ld-related-grid{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:12px;
}
body.single-listing .ld-related-card{
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  overflow:hidden;
  background:#fff;
}
body.single-listing .ld-related-thumb{
  display:block;
  aspect-ratio:16/10;
  background:rgba(0,0,0,.05);
  overflow:hidden;
}
body.single-listing .ld-related-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
body.single-listing .ld-related-body{ padding:12px; }
body.single-listing .ld-related-title{
  margin:0 0 6px;
  font-size:15px;
  line-height:1.25;
}
body.single-listing .ld-related-title a{
  color:var(--ld-text);
  text-decoration:none;
  font-weight:900;
}
body.single-listing .ld-related-title a:hover{ opacity:.9; }

body.single-listing .ld-related-meta{
  color:rgba(0,0,0,.60);
  font-weight:700;
  font-size:13px;
}

/* =========================
   Sidebar: What's Nearby
   ========================= */
body.single-listing .ld-nearby{
  border:1px solid rgba(0,0,0,.10);
  border-radius:16px;
  background:#fff;
  box-shadow:0 8px 30px rgba(0,0,0,.06);
  padding:14px;
}
body.single-listing .ld-nearby-title{
  margin:0 0 10px;
  font-size:16px;
  font-weight:900;
}
body.single-listing .ld-nearby-group + .ld-nearby-group{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(0,0,0,.10);
}
body.single-listing .ld-nearby-group h4{
  margin:0 0 10px;
  font-size:13px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(0,0,0,.60);
  font-weight:900;
}
body.single-listing .ld-nearby-item{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:10px;
  align-items:center;
  padding:10px 0;
}
body.single-listing .ld-nearby-item + .ld-nearby-item{
  border-top:1px solid rgba(0,0,0,.08);
}
body.single-listing .ld-nearby-thumb{
  width:76px;
  height:56px;
  border-radius:12px;
  overflow:hidden;
  background:rgba(0,0,0,.05);
  display:block;
}
body.single-listing .ld-nearby-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
body.single-listing .ld-nearby-name{
  margin:0 0 4px;
  font-size:14px;
  line-height:1.25;
}
body.single-listing .ld-nearby-name a{
  color:var(--ld-text);
  text-decoration:none;
  font-weight:900;
}
body.single-listing .ld-nearby-meta{
  font-size:12.5px;
  color:rgba(0,0,0,.62);
  font-weight:700;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}

/* =========================
   Lightbox
   ========================= */
body.single-listing .ld-lightbox{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  background:rgba(15,23,42,.86);
  z-index:99999;
  padding:14px;
}
body.single-listing .ld-lightbox.is-open{ display:flex; }
body.single-listing .ld-lightbox img{
  max-width:100%;
  max-height:78vh;
  border-radius:14px;
  display:block;
}
body.single-listing .ld-lb-btn,
body.single-listing .ld-lb-nav{
  position:absolute;
  border:none;
  background:rgba(255,255,255,.16);
  color:#fff;
  width:44px;
  height:44px;
  border-radius:999px;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  backdrop-filter: blur(6px);
}
body.single-listing .ld-lb-btn{ top:14px; right:14px; }
body.single-listing .ld-lb-prev{ left:14px; top:50%; transform:translateY(-50%); }
body.single-listing .ld-lb-next{ right:14px; top:50%; transform:translateY(-50%); }
body.single-listing .ld-lb-count{
  position:absolute;
  bottom:14px;
  left:50%;
  transform:translateX(-50%);
  color:rgba(255,255,255,.92);
  font-weight:900;
  font-size:13px;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  backdrop-filter: blur(6px);
}

/* =========================
   Responsive (tablet/mobile)
   ========================= */
@media (max-width:1024px){
  body.single-listing .ld-layout{ grid-template-columns:1fr; }
  body.single-listing .ld-sidecol{ margin-top:16px; }
  body.single-listing .ld-related-grid{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}

@media (max-width:900px){
  body.single-listing .ld-container{ padding-left:14px; padding-right:14px; }

  body.single-listing .ld-head{
    grid-template-columns:64px minmax(0,1fr);
    gap:12px;
  }
  body.single-listing .ld-head-cta{ margin-top:10px; justify-content:flex-start; }
  body.single-listing .ld-cta-btn,
  body.single-listing .ld-cta-btn--outline{ width:100%; }

  body.single-listing .ld-head-links{ display:grid; grid-template-columns:1fr; gap:8px; }

  body.single-listing .ld-head-title{ font-size:24px; }

  body.single-listing .ld-hero-grid{ grid-template-columns:1fr; }
  body.single-listing .ld-hero-big{ min-height:260px; }
  body.single-listing .ld-hero-right{ grid-template-columns:1fr 1fr; grid-template-rows:auto; }
  body.single-listing .ld-hero-small{ min-height:140px; }

  body.single-listing .ld-location-wrap{ grid-template-columns:1fr; }
  body.single-listing .ld-location-map{ min-height:260px; }
  body.single-listing .ld-location-info{ padding:0; }

  body.single-listing .ld-highlights{ grid-template-columns:1fr; }
}

@media (max-width:520px){
  body.single-listing .ld-facts{ grid-template-columns:1fr; }
  body.single-listing .ld-related-grid{ grid-template-columns:1fr; }

  body.single-listing .ld-head-links{
    grid-template-columns:1fr 1fr;
  }
  body.single-listing .ld-head-link .ld-ic{ display:none; }
}
/* =========================================================
   SINGLE LISTING — RESPONSIVE PATCH (SAFE + SCOPED)
   File: assets/css/listing.css
   Scoped to body.single-listing so it won't touch archives/taxonomies.
   ========================================================= */

/* 1) Tablet: 1024 and down — stack columns, keep desktop feel */
@media (max-width: 1024px){
  body.single-listing .ld-layout{
    display: block !important;
  }

  body.single-listing .ld-sidecol{
    margin-top: 16px !important;
  }

  /* sidebar sticky off on smaller screens */
  body.single-listing .ld-nearby{
    position: static !important;
    top: auto !important;
  }
}

/* 2) True mobile: 768 and down — real mobile fixes */
@media (max-width: 768px){

  /* prevent horizontal scroll from anything */
  body.single-listing,
  body.single-listing #page,
  body.single-listing #main,
  body.single-listing .ld-wrap{
    overflow-x: hidden;
  }

  body.single-listing .ld-container{
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  /* ===== Header / info card ===== */
  body.single-listing .ld-head{
    display: block !important;
  }

  body.single-listing .ld-head-title{
    font-size: 26px !important;
    line-height: 1.15 !important;
  }

  /* Make sure the card doesn't allow weird overflow */
  body.single-listing .ld-info{
    overflow: hidden;
  }

  /* ===== Phone / Website / Menu / Email — 2-up grid, not huge ===== */
  body.single-listing .ld-head-links{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 10px !important;
    width: 100% !important;
  }

  body.single-listing .ld-head-link{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;

    height: 42px !important;
    padding: 0 12px !important;

    border-radius: 12px !important;
    border: 1px solid rgba(0,0,0,.12) !important;
    background: #fff !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;

    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;

    text-align: center !important;
  }

  body.single-listing .ld-head-link .ld-ic{
    width: 16px !important;
    height: 16px !important;
    flex: 0 0 16px !important;
    margin: 0 !important;
  }

  /* If odd number of buttons, last spans full width */
  body.single-listing .ld-head-links > :last-child:nth-child(odd){
    grid-column: 1 / -1 !important;
  }

  /* ===== CTA button full width ===== */
  body.single-listing .ld-head-cta{
    margin-top: 12px !important;
  }

  body.single-listing .ld-cta-btn,
  body.single-listing .ld-cta-btn--outline{
    width: 100% !important;
    display: inline-flex !important;
    justify-content: center !important;
    max-width: none !important;
  }

  /* ===== HERO gallery: vertical flow (no tiny right column) ===== */
  body.single-listing .ld-hero-grid{
    display: block !important;
  }

  body.single-listing .ld-hero-big{
    min-height: 220px !important;
    margin-bottom: 10px !important;
  }

  body.single-listing .ld-hero-right{
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: none !important;
    gap: 10px !important;
  }

  body.single-listing .ld-hero-small{
    min-height: 140px !important;
  }

  body.single-listing .ld-hero-img{
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
  }

  /* “View all photos” button: readable + not overflow */
  body.single-listing .ld-hero-cta{
    width: calc(100% - 16px) !important;
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    font-size: 13px !important;
  }

  /* ===== Facts: one column ===== */
  body.single-listing .ld-facts{
    grid-template-columns: 1fr !important;
  }

  /* ===== Chips wrap nicer ===== */
  body.single-listing .ld-chips{
    gap: 8px !important;
  }

  /* ===== Location block: stack map + info ===== */
  body.single-listing .ld-location-wrap{
    grid-template-columns: 1fr !important;
  }

  body.single-listing .ld-location-map{
    min-height: 240px !important;
  }

  body.single-listing .ld-location-btn{
    width: 100% !important;
    justify-content: center !important;
  }

  /* ===== Related grid ===== */
  body.single-listing .ld-related-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }

  /* Sidebar “What’s Nearby” spacing */
  body.single-listing .ld-nearby{
    margin-top: 0 !important;
  }
}

/* 3) Small phones */
@media (max-width: 520px){

  /* KEEP 2 per row for links even on small phones */
  body.single-listing .ld-head-links{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  /* hero small images go 1 per row (previše sitno u 2 kolone) */
  body.single-listing .ld-hero-right{
    grid-template-columns: 1fr !important;
  }

  /* related cards 1 per row */
  body.single-listing .ld-related-grid{
    grid-template-columns: 1fr !important;
  }
}

/* 4) Very small phones: only then go 1 per row */
@media (max-width: 360px){
  body.single-listing .ld-head-links{
    grid-template-columns: 1fr !important;
  }
}
/* =========================================================
   SINGLE LISTING — QUICK FACTS polish (desktop + mobile)
   File: assets/css/listing.css
   ========================================================= */

body.single-listing .ld-facts{
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}

body.single-listing .ld-fact{
  display: grid !important;
  grid-template-columns: 1fr auto !important; /* label left, value right */
  align-items: center !important;
  gap: 12px !important;

  height: auto !important;
  min-height: 48px !important;
  padding: 12px 14px !important;

  border-radius: 14px !important;
  border: 1px solid rgba(0,0,0,.10) !important;
  background: #fff !important;

  /* kill the old "pill" look */
  color: var(--ld-text) !important;
}

body.single-listing .ld-fact span{
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: rgba(0,0,0,.55) !important;
  line-height: 1.2 !important;
}

body.single-listing .ld-fact b{
  font-size: 14px !important;
  font-weight: 900 !important;
  color: var(--ld-text) !important;
  line-height: 1.2 !important;
  text-align: right !important;
}

/* Mobile: one column (clean + readable) */
@media (max-width: 768px){
  body.single-listing .ld-facts{
    grid-template-columns: 1fr !important;
  }

  body.single-listing .ld-fact{
    min-height: 46px !important;
  }
}
/* =========================================================
   SINGLE LISTING — Highlights list styling
   ========================================================= */

body.single-listing .ld-highlights{
  list-style: none !important;
  padding: 0 !important;
  margin: 6px 0 0 !important;

  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px 18px;
}

body.single-listing .ld-highlights li{
  position: relative;
  padding-left: 26px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ld-text);
}

/* check icon */
body.single-listing .ld-highlights li:before{
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  font-weight: 900;
  color: var(--ld-accent);
  font-size: 14px;
}

/* mobile */
@media (max-width: 768px){
  body.single-listing .ld-highlights{
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   SINGLE LISTING — Cards: stronger on desktop, softer on mobile
   ========================================================= */

/* default (desktop) = stronger separation */
body.single-listing .ld-card{
  border-radius: 18px;
  border: 1px solid rgba(15,23,42,.14);
  box-shadow: 0 10px 28px rgba(15,23,42,.10);
}

/* keep spacing */
body.single-listing .ld-section{
  margin-bottom: 18px;
}

/* mobile = softer (as you like it) */
@media (max-width: 768px){
  body.single-listing .ld-card{
    border: 1px solid rgba(15,23,42,.08);
    box-shadow: 0 6px 18px rgba(15,23,42,.06);
  }

  body.single-listing .ld-section{
    margin-bottom: 14px;
  }
}
/* subtle page background only on single listing */
@media (min-width: 769px){
  body.single-listing #main{
    background: rgba(15,23,42,.02);
  }
}
/* =========================================================
   SINGLE LISTING — Mobile: Location button must not overflow
   ========================================================= */

@media (max-width: 768px){

  body.single-listing .ld-location-info{
    overflow: hidden; /* safety */
  }

  body.single-listing .ld-location-btn{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    display: flex !important;
    justify-content: center !important;

    /* keep it inside card padding */
    margin: 10px 0 0 !important;
  }
}
/* =========================================================
   SINGLE LISTING — Location CTA desktop alignment
   ========================================================= */

@media (min-width: 769px){

  body.single-listing .ld-location-info{
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  body.single-listing .ld-location-btn{
    width:auto !important;
    align-self:flex-start;
    margin-top:12px;

    /* nicer CTA look */
    padding:10px 18px;
    border-radius:10px;
    border:1px solid rgba(14,165,233,.35);
    background:rgba(14,165,233,.10);
    font-weight:800;
  }

  body.single-listing .ld-location-btn:hover{
    background:rgba(14,165,233,.18);
  }
}
/* =========================================================
   SINGLE LISTING — Related cards polish
   ========================================================= */

body.single-listing .ld-related-card{
  background:#fff;
  border-radius:16px;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 8px 22px rgba(15,23,42,.08);
  overflow:hidden;
  transition:transform .18s ease, box-shadow .18s ease;
}

/* image */
body.single-listing .ld-related-thumb img{
  width:100%;
  height:140px;
  object-fit:cover;
  display:block;
}

/* spacing inside */
body.single-listing .ld-related-body{
  padding:12px 14px 14px;
}

/* hover lift (desktop only) */
@media (min-width: 769px){
  body.single-listing .ld-related-card:hover{
    transform:translateY(-4px);
    box-shadow:0 16px 34px rgba(15,23,42,.14);
  }
}
