.detail-wrapper{
  max-width:1300px;
  margin:35px auto 60px;
  padding:0 25px;
}

.detail-layout{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:28px;
  align-items:start;
}

.detail-gallery,
.detail-info{
  background:var(--card);
  border:1px solid var(--border);
  border-radius:34px;
  box-shadow:var(--shadow);
}

.detail-gallery{
  padding:20px;
}

.main-detail-image{
  width:100%;
  height:530px;
  object-fit:cover;
  border-radius:26px;
  background:var(--card2);
}

.thumbs{
  margin-top:18px;
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(90px,1fr));
  gap:12px;
}

.thumbs img{
  width:100%;
  height:88px;
  object-fit:cover;
  border-radius:16px;
  cursor:pointer;
  border:2px solid transparent;
  transition:.25s;
  background:var(--card2);
}

.thumbs img:hover{
  border-color:var(--gold2);
  transform:scale(1.04);
}

.detail-info{
  padding:28px;
}

.detail-info h1{
  margin:18px 0 10px;
  font-size:36px;
  line-height:1.2;
}

.detail-ref{
  color:var(--muted);
  margin-bottom:18px;
}

.detail-price{
  font-size:34px;
  font-weight:900;
  color:var(--gold2);
  margin-bottom:20px;
}

.detail-description{
  color:var(--muted);
  line-height:1.8;
  margin-bottom:24px;
}

.detail-specs{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}

.detail-specs div{
  background:var(--card2);
  border:1px solid var(--border);
  border-radius:20px;
  padding:15px;
}

.detail-specs strong{
  display:block;
  color:var(--gold2);
  font-size:13px;
  margin-bottom:7px;
}

.detail-specs span{
  font-weight:800;
}

.detail-actions{
  margin-top:28px;
  display:grid;
  gap:12px;
}

.detail-actions a{
  padding:16px;
  text-align:center;
  border-radius:18px;
  font-weight:900;
  transition:.25s;
}

.detail-actions a:hover{
  transform:translateY(-3px);
}

@media(max-width:950px){
  .detail-layout{
    grid-template-columns:1fr;
  }

  .main-detail-image{
    height:420px;
  }
}

@media(max-width:600px){
  .detail-wrapper{
    padding:0 16px;
    margin-top:22px;
  }

  .detail-gallery,
  .detail-info{
    border-radius:26px;
  }

  .main-detail-image{
    height:300px;
    border-radius:20px;
  }

  .detail-info{
    padding:20px;
  }

  .detail-info h1{
    font-size:27px;
  }

  .detail-price{
    font-size:28px;
  }

  .detail-specs{
    grid-template-columns:1fr;
  }

  .thumbs{
    grid-template-columns:repeat(3,1fr);
  }
}


.reserve-box{
  margin-top:28px;
  background:var(--card2);
  border:1px solid var(--border);
  border-radius:24px;
  padding:20px;
}

.reserve-box h2{
  margin-bottom:18px;
  color:var(--gold2);
}

.reserve-box label{
  display:block;
  margin:14px 0 8px;
  color:var(--muted);
  font-weight:800;
}

.reserve-box input{
  width:100%;
  padding:15px;
  border-radius:16px;
  border:1px solid var(--border);
  background:var(--card);
  color:var(--text);
  outline:none;
}

.reservation-result{
  margin-top:18px;
  padding:16px;
  border-radius:18px;
  background:rgba(200,155,60,.12);
  line-height:1.7;
}

.blocked-dates{
  margin-top:16px;
  color:var(--muted);
  line-height:1.6;
}

.reservation-btn{
  display:block;
  margin-top:18px;
  padding:15px;
  border-radius:18px;
  text-align:center;
  font-weight:900;
  background:linear-gradient(135deg,var(--gold),var(--gold2));
  color:#111;
}

.reservation-btn.disabled{
  opacity:.45;
  pointer-events:none;
}