/* ============================================================
   DETAIL PAGE — PREMIUM UPGRADE
   ============================================================ */
.detail-page{
  background: var(--warm-bg);
  min-height: 100vh;
  padding: 3.25rem 0 5rem;
}

.detail-breadcrumb{
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .84rem;
  color: var(--warm-muted);
  margin-bottom: 1.5rem;
}

.detail-breadcrumb a {
  color: var(--accent);
  text-decoration: none;
  font-weight: 500;
}

.detail-breadcrumb a:hover {
  text-decoration: underline;
}

/* LEFT SIDE CARDS */
.detail-gallery-card,
.detail-features-card,
.detail-description-card,
.detail-map-card {
  background: var(--warm-surface);
  border: 1px solid var(--warm-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-card);
}

.detail-gallery-card {
  overflow: hidden;
  margin-bottom: 1.5rem;
}

.detail-gallery-wrap {
  border-radius: 0;
  overflow: hidden;
  background: #ede8df;
  aspect-ratio: 16 / 10;
}

.detail-gallery-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.detail-gallery-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: var(--warm-muted);
  gap: 0.6rem;
  font-size: 0.9rem;
}

.detail-gallery-placeholder-icon {
  font-size: 2.4rem;
  opacity: 0.3;
}

.detail-thumb-row {
  display: flex;
  gap: 0.65rem;
  flex-wrap: wrap;
  padding: 1rem 1rem 1.1rem;
  border-top: 1px solid var(--warm-border);
  background: var(--warm-surface);
}

.detail-thumb {
  width: 88px;
  height: 66px;
  object-fit: cover;
  border-radius: var(--radius-sm);
  cursor: pointer;
  border: 2px solid transparent;
  transition: border-color var(--transition), opacity var(--transition), transform var(--transition);
  opacity: 0.75;
}

.detail-thumb:hover,
.detail-thumb.active {
  border-color: var(--accent);
  opacity: 1;
  transform: translateY(-1px);
}

.detail-features-card,
.detail-description-card,
.detail-map-card{
  padding: 1.6rem;
  margin-bottom: 1.5rem;
  background: linear-gradient(180deg, #fff, #fcfaf6);
  border: 1px solid var(--warm-border);
  border-radius: 20px;
  box-shadow: var(--shadow-card);
}

.detail-section-head {
  margin-bottom: 1.1rem;
}

.detail-section-head h2{
  font-family: 'Playfair Display', serif;
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: .25rem;
  color: var(--text-primary);
  letter-spacing: -.02em;
}

.detail-section-head p{
  font-size: .88rem;
  color: var(--text-secondary);
  margin: 0;
}

.detail-feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.detail-feature-item{
  background: #fbf8f2;
  border: 1px solid var(--warm-border);
  border-radius: 16px;
  padding: 1rem 1rem .95rem;
  transition: transform .2s ease, box-shadow .2s ease;
}

.detail-feature-item:hover{
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(31,41,55,.08);
}

.detail-feature-label {
  display: block;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--warm-muted);
  font-weight: 700;
  margin-bottom: 0.4rem;
  font-family: 'DM Sans', sans-serif;
}

.detail-feature-value {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.3;
}

.detail-description-content p {
  line-height: 1.85;
  color: var(--text-secondary);
  font-size: 0.95rem;
  margin: 0;
}

.detail-map-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}

.detail-map-eyebrow{
  display:inline-flex;
  align-items:center;
  padding:.38rem .78rem;
  border-radius:999px;
  background:var(--accent-light);
  color:var(--accent);
  font-size:.76rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:.7rem;
}

.detail-map-head h2{
  margin:0 0 .45rem;
  font-family:'Playfair Display', serif;
  font-size:1.55rem;
  font-weight:700;
  color:var(--text-primary);
  line-height:1.12;
}

.detail-map-head p{
  margin:0;
  color:var(--text-secondary);
  font-size:.9rem;
  line-height:1.72;
  max-width:44rem;
}

.detail-map-pin{
  width:48px;
  height:48px;
  flex-shrink:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#f3ebe1;
  border:1px solid var(--warm-border);
}

.detail-map-pin svg{
  width:24px;
  height:24px;
  stroke:var(--accent);
  stroke-width:2;
}

.detail-map-canvas{
  width: 100%;
  min-height: 420px;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid var(--warm-border);
  background:
    radial-gradient(circle at top right, rgba(43,107,90,.08), transparent 24%),
    linear-gradient(180deg, #f4ede4 0%, #efe7db 100%);
}

.detail-map-footer{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.05rem;
}

.detail-map-status{
  color: var(--text-secondary);
  font-size: .86rem;
  line-height: 1.6;
}

.detail-map-actions{
  display:flex;
  align-items:center;
  gap:.8rem;
  flex-wrap:wrap;
}

.detail-map-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:50px;
  padding:0 22px;
  border-radius:999px;
  font-size:.92rem;
  font-weight:700;
  text-decoration:none;
  transition:transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.detail-map-btn:hover{
  transform:translateY(-1px);
}

.detail-map-btn--primary{
  background:linear-gradient(135deg, #7c9583, #6f8a76);
  color:#fff;
  border:1px solid transparent;
}

.detail-map-btn--primary:hover{
  color:#fff;
  background:linear-gradient(135deg, #6e876f, #607861);
}

.detail-map-btn--ghost{
  background:#f7f2eb;
  color:var(--text-primary);
  border:1px solid var(--warm-border);
}

.detail-map-btn--ghost:hover{
  color:var(--text-primary);
  background:#f1e9de;
}

.detail-map-canvas .leaflet-control-attribution{
  background:rgba(255,255,255,.9);
  border-top-left-radius:12px;
  padding:4px 8px;
  font-size:.72rem;
}

.detail-map-canvas .leaflet-popup-content-wrapper{
  border-radius:16px;
  box-shadow:0 14px 30px rgba(0,0,0,.14);
}

.detail-map-canvas .leaflet-popup-content{
  margin:12px 14px;
  color:var(--text-primary);
  font-size:.85rem;
  line-height:1.55;
}

/* RIGHT SIDEBAR */
.detail-sidebar-card{
  background: linear-gradient(180deg, #ffffff, #fcfaf6);
  border: 1px solid var(--warm-border);
  border-radius: 22px;
  padding: 1.75rem;
  box-shadow: 0 18px 40px rgba(0,0,0,.08);
  position: sticky;
  top: 1.5rem;
}

.detail-price {
  font-size: 2.1rem;
  font-weight: 800;
  color: var(--accent);
  letter-spacing: -0.03em;
  line-height: 1;
  font-family: 'DM Sans', sans-serif;
  margin-bottom: 0.7rem;
}

.detail-title {
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.7rem, 3.5vw, 2.15rem);
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.14;
  letter-spacing: -0.02em;
  margin-bottom: 0.4rem;
}

.detail-location-wrap {
  margin-top: 0.2rem;
  margin-bottom: 1rem;
}

.detail-location-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  background: var(--amber-light);
  color: var(--amber);
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
}

.detail-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  margin-top: 1.1rem;
  margin-bottom: 1.35rem;
}

.detail-meta-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: var(--warm-bg);
  border: 1px solid var(--warm-border);
  color: var(--text-secondary);
  font-size: 0.82rem;
  font-weight: 500;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
}

.detail-meta-pill--live {
  background: var(--accent-light);
  color: var(--accent);
  border-color: transparent;
  font-weight: 700;
}

.detail-owner-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 1rem 0;
  border-top: 1px solid var(--warm-border);
  border-bottom: 1px solid var(--warm-border);
  margin: 1.1rem 0 1.35rem;
}

.detail-owner-avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 0.92rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  flex-shrink: 0;
}

.detail-owner-info small {
  display: block;
  font-size: 0.76rem;
  color: var(--warm-muted);
}

.detail-owner-info span {
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--text-primary);
}

.detail-cta-block{
  margin-bottom: 1.25rem;
  padding: 1rem;
  background: var(--accent-light);
  border-radius: 16px;
  border: 1px solid rgba(43,107,90,.12);
}

.detail-quick-card {
  background: var(--warm-bg);
  border: 1px solid var(--warm-border);
  border-radius: var(--radius-md);
  padding: 1.1rem 1rem;
}

.detail-quick-card h3 {
  font-family: 'Playfair Display', serif;
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 0.95rem;
  color: var(--text-primary);
}

.detail-quick-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid var(--warm-border);
  font-size: 0.89rem;
}

.detail-quick-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.detail-quick-row .label {
  color: var(--warm-muted);
  font-weight: 500;
}

.detail-quick-row .value {
  color: var(--text-primary);
  font-weight: 700;
  text-align: right;
}

/* RESPONSIVE */
@media (max-width: 991.98px) {
  .detail-sidebar-card {
    position: static;
  }
}

@media (max-width: 767.98px) {
  .detail-page {
    padding: 1.75rem 0 3.5rem;
  }

  .detail-feature-grid {
    grid-template-columns: 1fr;
  }

  .detail-features-card,
  .detail-description-card,
  .detail-map-card,
  .detail-sidebar-card {
    padding: 1.2rem;
  }

  .detail-price {
    font-size: 1.8rem;
  }

  .detail-title {
    font-size: 1.7rem;
  }

  .detail-thumb {
    width: 74px;
    height: 56px;
  }

  .detail-map-head{
    flex-direction:column;
  }

  .detail-map-canvas{
    min-height: 320px;
  }
}

.detail-gallery-wrap{
  position: relative;
  border-radius: 22px;
  overflow: hidden;
  background: #ede8df;
  aspect-ratio: 16 / 10;
  box-shadow: 0 18px 40px rgba(0,0,0,.10);
}

.detail-gallery-wrap img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.detail-gallery-overlay{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  background: linear-gradient(
    to top,
    rgba(8,22,18,.78) 0%,
    rgba(8,22,18,.38) 35%,
    rgba(8,22,18,.08) 65%,
    rgba(8,22,18,0) 100%
  );
}

.detail-gallery-overlay-inner{
  padding: 1.4rem 1.4rem 1.35rem;
  color: #fff;
}

.detail-gallery-kicker{
  display: inline-flex;
  align-items: center;
  background: rgba(201,122,42,.18);
  border: 1px solid rgba(201,122,42,.35);
  color: #f5c87a;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .35rem .7rem;
  border-radius: 999px;
  margin-bottom: .75rem;
}

.detail-gallery-overlay-inner h2{
  font-family: 'Playfair Display', serif;
  font-size: clamp(1.4rem, 2.5vw, 2rem);
  margin: 0 0 .35rem;
  line-height: 1.1;
}

.detail-gallery-price{
  font-size: 1.15rem;
  font-weight: 700;
  color: #dff3ec;
}

.form-card .form-select{
  display:block;
  width:100%;
  min-height:54px;
  border-radius:16px;
  border:1px solid var(--warm-border);
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  padding:14px 52px 14px 16px;
  line-height:1.35;
  background-color:#fff;
  color:var(--text-primary);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath d='M1.25 1.5L7 7.25L12.75 1.5' stroke='%232b6b5a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 18px center;
  background-size:14px 9px;
}

.form-card .form-select:focus{
  border-color:rgba(43,107,90,.42);
  box-shadow:0 0 0 .22rem rgba(43,107,90,.08) !important;
}

.form-card .form-select option{
  color:var(--text-primary);
}

.park-search-shell{
  position:relative;
}

.park-search-results{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  right:0;
  z-index:12;
  display:grid;
  gap:8px;
  max-height:280px;
  overflow:auto;
  padding:10px;
  border-radius:18px;
  border:1px solid var(--warm-border);
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 40px rgba(44,39,32,.12);
}

.park-search-result{
  width:100%;
  border:none;
  border-radius:14px;
  padding:12px 14px;
  background:#f8f3eb;
  color:var(--text-primary);
  text-align:left;
  font-size:.87rem;
  line-height:1.55;
  transition:background .2s ease, transform .2s ease;
}

.park-search-result:hover{
  background:#efe5d8;
  transform:translateY(-1px);
}

.park-search-empty{
  padding:12px 14px;
  border-radius:14px;
  background:#fbf7f1;
  color:var(--text-secondary);
  font-size:.84rem;
  line-height:1.6;
}

.title-suggest-shell{
  position:relative;
}

.title-suggest-results{
  position:absolute;
  top:calc(100% + 10px);
  left:0;
  right:0;
  z-index:12;
  display:grid;
  gap:8px;
  padding:10px;
  border-radius:18px;
  border:1px solid rgba(43,107,90,.14);
  background:rgba(255,253,250,.98);
  box-shadow:0 18px 38px rgba(44,39,32,.14);
  backdrop-filter:blur(12px);
}

.title-suggest-result{
  width:100%;
  border:none;
  border-radius:14px;
  padding:12px 14px;
  background:#f8f3eb;
  color:var(--text-primary);
  text-align:left;
  font-size:.92rem;
  font-weight:600;
  transition:background .18s ease, transform .18s ease;
}

.title-suggest-result:hover{
  background:#efe5d8;
  transform:translateY(-1px);
}

.description-ai-shell{
  border-radius:20px;
  border:1px solid rgba(43,107,90,.12);
  background:linear-gradient(180deg, rgba(248,245,240,.92), rgba(255,255,255,.96));
  padding:14px;
}

.description-ai-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}

.description-ai-button{
  display:inline-flex;
  align-items:center;
  gap:10px;
  border:none;
  border-radius:999px;
  padding:10px 14px;
  background:linear-gradient(135deg, #234d42, #2b6b5a);
  color:#fff;
  font-size:.84rem;
  font-weight:700;
  letter-spacing:.01em;
  box-shadow:0 12px 24px rgba(35,77,66,.16);
  transition:transform .18s ease, box-shadow .18s ease, opacity .18s ease;
}

.description-ai-button:hover{
  transform:translateY(-1px);
  box-shadow:0 16px 28px rgba(35,77,66,.2);
}

.description-ai-button:disabled{
  opacity:.72;
  cursor:wait;
}

.description-ai-button.is-loading{
  pointer-events:none;
}

.description-ai-icon{
  width:18px;
  height:18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.description-ai-icon svg{
  width:18px;
  height:18px;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.description-ai-status{
  color:var(--text-secondary);
  font-size:.8rem;
  line-height:1.5;
  text-align:right;
  flex:1;
}

.description-ai-shell textarea.form-control{
  background:#fffdfa;
  margin:0;
}

@media (max-width: 767.98px) {
  .description-ai-toolbar{
    flex-direction:column;
    align-items:flex-start;
  }

  .description-ai-status{
    text-align:left;
  }
}
