.hero-unique { position: relative; min-height: min(86vh, 860px); }
.hero-bg { position: absolute; inset: 0; }
.hero-img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.92); }
.hero-placeholder { width: 100%; height: 100%; background: linear-gradient(135deg,#f3f4f6,#e5e7eb); }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.35) 0%, rgba(0,0,0,.45) 40%, rgba(0,0,0,.2) 100%); }
.hero-content { position: relative; z-index: 1; padding-top: clamp(80px, 14vh, 160px); padding-bottom: clamp(24px, 6vh, 64px); color: #fff; }
.hero-title { font-size: clamp(28px, 4.8vw, 52px); font-weight: 800; margin-bottom: .35rem; }
.hero-price .price { font-size: clamp(22px, 3.2vw, 36px); font-weight: 700; }
.hero-price .per { font-size: clamp(14px, 1.6vw, 16px); margin-left: .25rem; opacity: .9; }
.hero-desc { max-width: 820px; font-size: clamp(14px, 1.6vw, 16px); opacity: .95; margin: .6rem 0 1rem; }

/* ======= SEÇÕES ======= */
.section-details { padding: clamp(28px, 4vw, 56px) 0; }
.section-gallery { padding: clamp(16px, 3vw, 40px) 0 60px; }

/* especificações em colunas */
.spec-list { columns: 2; column-gap: 2rem; padding-left: 1rem; }
.spec-list li { break-inside: avoid; margin-bottom: .45rem; }
@media (max-width: 768px){ .spec-list { columns: 1; } }

/* indicadores da galeria */
#galeriaQuarto .carousel-indicators [data-bs-target]{
  width: 10px; height: 10px; border-radius: 50%;
}


/* ===== Área de detalhes melhorada ===== */
.improved-details { padding: clamp(20px, 3vw, 48px) 0; }

.details-grid {
  display: gride;
  grid-template-columns: 1fr;
  gap: clamp(16px, 2.4vw, 28px);
}
@media (min-width: 992px) {
  .details-grid { grid-template-columns: 1.5fr 1fr; }
}

.details-card {
  background: #fff;
  border: 1px solid #eceff3;
  border-radius: 16px;
  padding: clamp(16px, 2.2vw, 28px);
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}

.details-title {
  font-size: clamp(20px, 2.8vw, 28px);
  font-weight: 800;
  margin: 0 0 .65rem 0;
}
.details-subtitle {
  font-size: clamp(16px, 2.1vw, 20px);
  font-weight: 700;
  margin: 0 0 .75rem 0;
}

/* Tipografia do texto longo */
.prose {
  font-size: clamp(14px, 1.7vw, 16px);
  line-height: 1.7;
  color: #374151;
  max-width: 72ch;           /* linha confortável */
  word-wrap: break-word;
}
.prose p { margin: 0 0 .85rem 0; }

/* Estado colapsado para mobile (ativado via JS) */
.prose.is-collapsed {
  max-height: 12.5rem;       /* ~200px */
  overflow: hidden;
  position: relative;
}
.prose.is-collapsed::after { /* fade no rodapé */
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 3rem;
  background: linear-gradient(transparent, #fff);
}

/* Lista de especificações com bullets custom */
.clean-list { list-style: none; margin: 0; padding: 0; }
.spec-list li {
  display: flex; align-items: flex-start;
  gap: .6rem;
  padding: .4rem 0;
  border-bottom: 1px dashed #eef2f6;
}
.spec-list li:last-child { border-bottom: 0; }
.spec-list li::before {
  content: "";
  flex: 0 0 10px;
  height: 10px;
  margin-top: .45rem;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #2c7be5, #1e5bb8);
  box-shadow: 0 0 0 3px rgba(44,123,229,.12);
}

/* Botão ver mais */
#btnToggleDesc {
  border-radius: 999px;
  padding: .35rem .9rem;
}

/* Ajustes finos */
.text-muted { color: #6b7280 !important; }







/* ===== Galeria (grade) ===== */
.btn {
  display:inline-block;
  margin-bottom:0;
  font-weight:normal;
  text-align:center;
  vertical-align:middle;
  -ms-touch-action:manipulation;
  touch-action:manipulation;
  cursor:pointer;
  background-image:none;
  border:1px solid transparent;
  white-space:nowrap;
  padding:6px 12px;
  font-size:14px;
  line-height:1.42857143;
  border-radius:4px;
  -webkit-user-select:none;
  -moz-user-select:none;
  -ms-user-select:none;
  user-select:none
}

.description{
  margin-left: 9px;
}
fieldset {
  padding:0;
  margin:0;
  border:0;
  min-width:0
}
legend {
  display:block;
  width:100%;
  padding:0;
  margin-bottom:20px;
  font-size:21px;
  line-height:inherit;
  color:#333333;
  border:0;
  border-bottom:1px solid #e5e5e5
}

.m-l-xxs{
 
  background: red;
  height:100%;
}
.gallery-gride{
      box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  padding-bottom: 10px;
  margin-bottom: 20px;
   border: 1px solid #ccc;
  display:gride;
  gap: clamp(10px, 1.6vw, 16px);
  grid-template-columns: 1fr;
}
@media (min-width: 576px){ .gallery-gride{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 992px){ .gallery-gride{ grid-template-columns: repeat(3, 1fr); } }

.gallery-item1{
 
  border:0; padding:0; margin:0; background:none; cursor:pointer;
 overflow:hidden;
  box-shadow: 0 8px 20px rgba(0,0,0,.06);
  transition: transform .2s ease, box-shadow .2s ease;
}
.gallery-item1:focus-visible{ outline: 3px solid #2c7be5; outline-offset: 2px; }
.gallery-item1:hover{ transform: translateY(-2px); box-shadow:0 10px 24px rgba(0,0,0,.10); }

.gallery-thumbe{
  width:100%; height:100%;
  display:block; object-fit: cover;
  aspect-ratio: 16/10; /* recorte elegante */
}

/* ===== Lightbox ===== */
.lightbox-img-wrap{
  position:relative; width:100%; height:100%;
  display:flex; align-items:center; justify-content:center;
  background: #000;
}
.lightbox-img{
  max-width: 96vw; max-height: 86vh;
  object-fit: contain; /* não corta no lightbox */
  filter: drop-shadow(0 10px 30px rgba(0,0,0,.45));
}

/* indicadores menores */
#lightboxCarousel .carousel-indicators [data-bs-target]{
  width:10px; height:10px; border-radius:50%;
}


/* === Lightbox em tela cheia e sem margens === */
#lightboxModal .modal-dialog{
  max-width: 100vw !important;
  width: 100vw !important;
  height: 100vh !important;
  margin: 0 !important;           /* remove as margens laterais */
}

#lightboxModal .modal-content{
  height: 100vh !important;
  border: 0;
  border-radius: 0;
  background: rgba(0,0,0,.95);    /* fundo escuro contínuo */
}

#lightboxModal .modal-body{
  padding: 0 !important;
}

/* Área da imagem ocupa toda a altura e centraliza */
#lightboxModal .lightbox-img-wrap{
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
}

/* A imagem se ajusta (retrato ou paisagem) sem cortar */
#lightboxModal .lightbox-img{
  max-width: 96vw;
  max-height: 92vh;
  width: auto;
  height: auto;
  object-fit: contain;             /* garante que nada seja cortado */
}

/* Controles mais visíveis sobre fundo escuro */
#lightboxCarousel .carousel-control-prev,
#lightboxCarousel .carousel-control-next{
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.6));
  opacity: .9;
}

#lightboxCarousel .carousel-indicators [data-bs-target]{
  width: 10px; height: 10px; border-radius: 50%;
}

