/* ---------- Listing detail page ---------- */

.listing-hero{
  position: relative;
  min-height: 78vh;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  color:#fff;
}
.listing-hero-slides{ position:absolute; inset:0; }
.listing-hero-slides img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  opacity:0;
  animation: heroFade 15s infinite;
  background: var(--color-secondary);
}
.listing-hero::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(13,13,13,0.15) 0%, rgba(13,13,13,0.8) 100%);
}
.listing-hero-captions{ position:absolute; inset:0; z-index:2; pointer-events:none; }
.listing-hero-caption{
  position:absolute;
  top:28px; right:32px;
  color:#fff;
  font-family: var(--font-sans);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-shadow: 0 1px 6px rgba(0,0,0,0.55);
  opacity:0;
}
@media (max-width:700px){
  .listing-hero-caption{ top:18px; right:18px; font-size:0.62rem; }
}
.listing-hero-content{ position:relative; z-index:2; padding: 0 24px 44px; width:100%; }
.listing-hero-content .eyebrow{ color: var(--color-primary); }
.listing-hero-content h1{
  color:#fff;
  font-size: clamp(2rem, 5vw, 3.6rem);
  margin-top: 12px;
  max-width: 900px;
}

.listing-stat-bar{ display:flex; gap:40px; margin-top:32px; flex-wrap:wrap; }
.listing-stat-bar .stat-num{ font-family: var(--font-heading); font-size: 1.7rem; color:#fff; }
.listing-stat-bar .stat-label{ font-size: 0.56rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.65); margin-top:4px; }

.listing-subnav{
  position: sticky;
  top: 84px;
  z-index: 90;
  background: rgba(255,255,255,0.96);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--color-border);
}
.listing-subnav-inner{ display:flex; gap:40px; height:60px; align-items:center; }
.listing-subnav a{
  font-size: 0.62rem;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--color-muted-foreground);
  transition: color .16s;
}
.listing-subnav a:hover{ color: var(--color-primary); }

.listing-overview-grid{ display:grid; grid-template-columns: 1.6fr 1fr; gap:64px; align-items:start; }
.listing-description{ margin-top:20px; color: var(--color-muted-foreground); font-size:0.9rem; line-height:1.95; white-space:pre-line; }

.listing-agent-card{
  border: 1px solid var(--color-border);
  padding: 36px 32px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:6px;
}
.listing-agent-label{ font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase; color: var(--color-primary); }
.listing-agent-name{ font-family: var(--font-heading); font-size:1.6rem; margin-top:6px; }
.listing-agent-title{ font-size:0.78rem; color: var(--color-muted-foreground); }
.listing-agent-contact{ display:flex; flex-direction:column; gap:4px; margin: 14px 0 6px; }
.listing-agent-contact a{ font-size:0.85rem; color: var(--color-foreground); }
.listing-agent-contact a:hover{ color: var(--color-primary); }
.listing-agent-contact:empty{ margin:0; }
.listing-agent-card .btn{ width:100%; border:none; margin-top:14px; }

@media (max-width: 860px){
  .listing-overview-grid{ grid-template-columns:1fr; }
}

.listing-gallery-grid{
  margin-top:44px;
  display:grid;
  grid-template-columns: repeat(4, 1fr);
  gap:16px;
}
.listing-gallery-grid .gallery-tile{
  position:relative;
  aspect-ratio: 4/3;
  overflow:hidden;
  cursor:pointer;
  background: var(--color-muted);
}
.listing-gallery-grid .gallery-tile img{
  width:100%; height:100%; object-fit:cover;
  transition: transform .4s;
}
.listing-gallery-grid .gallery-tile:hover img{ transform: scale(1.05); }
.listing-gallery-grid .gallery-more{
  position:absolute; inset:0;
  background: rgba(13,13,13,0.55);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-heading);
  font-size:1.3rem;
}
@media (max-width: 860px){
  .listing-gallery-grid{ grid-template-columns: repeat(2, 1fr); }
}

.listing-features-box{
  margin-top:44px;
  background: var(--color-muted);
  padding: 44px;
  display:grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 28px 32px;
}
.listing-features-box .feature{ border-bottom:1px solid var(--color-border); padding-bottom:16px; }
.listing-features-box .feature-label{ font-size:0.58rem; letter-spacing:0.2em; text-transform:uppercase; color: var(--color-muted-foreground); }
.listing-features-box .feature-value{ font-family: var(--font-heading); font-size:1.5rem; margin-top:8px; }
@media (max-width: 900px){
  .listing-features-box{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px){
  .listing-features-box{ grid-template-columns: repeat(2, 1fr); }
}

/* Repeated rich listing blocks (Current Listings / Past Listings pages) */
.listing-full-block .listing-hero{ min-height: 62vh; }
.listing-full-block + .listing-full-block{
  margin-top: 100px;
  padding-top: 100px;
  border-top: 1px solid var(--color-border);
}

.listing-map-card{
  position: relative;
  display:block;
  aspect-ratio: 21/9;
  overflow:hidden;
  background: var(--color-muted);
  border: 1px solid var(--color-border);
}
.listing-map-card iframe{
  position:absolute; inset:0;
  width:100%; height:100%;
  border:none;
  pointer-events: none;
}
.listing-map-overlay{
  position:absolute; inset:0;
  display:flex; align-items:center; justify-content:center;
  background: rgba(13,13,13,0.35);
  color:#fff;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity:0;
  transition: opacity .2s;
}
.listing-map-card:hover .listing-map-overlay,
.listing-map-card:focus-visible .listing-map-overlay{ opacity:1; }
@media (max-width: 700px){
  .listing-map-card{ aspect-ratio: 4/3; }
}

.listing-not-found{ text-align:center; padding: 140px 24px; }
.listing-not-found h1{ font-size:2rem; }
.listing-not-found p{ margin-top:14px; color: var(--color-muted-foreground); }

/* Lightbox */
.lightbox{
  position: fixed; inset:0; z-index: 9999;
  background: rgba(13,13,13,0.94);
  display:flex; align-items:center; justify-content:center;
}
.lightbox[hidden]{ display:none; }
.lightbox-img{ max-width:88vw; max-height:82vh; object-fit:contain; }
.lightbox-close, .lightbox-prev, .lightbox-next{
  position:absolute;
  background:none; border:none; color:#fff;
  cursor:pointer;
  display:flex; align-items:center; justify-content:center;
}
.lightbox-close{ top:24px; right:28px; font-size:2rem; line-height:1; }
.lightbox-prev, .lightbox-next{ top:50%; transform:translateY(-50%); font-size:2.6rem; padding:12px; }
.lightbox-prev{ left:16px; }
.lightbox-next{ right:16px; }
.lightbox-close:hover, .lightbox-prev:hover, .lightbox-next:hover{ color: var(--color-primary); }
.lightbox-counter{
  position:absolute; bottom:24px; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,0.7);
  font-size:0.72rem; letter-spacing:0.1em;
}
