/* ==========================================================================
   Vila Galé Eco Resort do Cabo — página de acomodações
   ========================================================================== */

.filter-empty { text-align: center; color: var(--muted); }

/* ---------- Card de acomodação detalhado ---------- */
.room-card--detail { animation: room-in 0.45s var(--ease); }
.room-card--detail[hidden] { display: none; }
@keyframes room-in { from { opacity: 0; transform: translateY(12px); } }

.room-card__media { position: relative; overflow: hidden; }
.room-card__tag:empty { display: none; }

/* Resumo curto ocupando sempre a altura de 2 linhas: todos os cards ficam com a mesma estrutura */
.room-card--detail .room-card__body p { flex: 1; min-height: 3.2em; line-height: 1.6; }

.room-specs {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 16px;
  padding: 14px; background: var(--sand-50); border-radius: var(--radius-sm); border: 1px solid var(--sand-200);
}
.room-specs div { display: flex; flex-direction: column; min-width: 0; }
.room-specs__wide { grid-column: 1 / -1; }
.room-specs dt { font-size: 0.7rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--teal-text); }
.room-specs dd {
  margin: 0; font-size: 0.88rem; font-weight: 600; color: var(--brand-900); line-height: 1.4;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; /* cada dado em uma única linha */
}


.source-note { margin-top: 28px; font-size: var(--fs-small); color: var(--muted); max-width: 900px; }

/* ---------- Comodidades ---------- */
.amenity-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 28px; }
.amenity {
  display: flex; align-items: center; gap: 12px; padding: 16px; background: var(--white);
  border-radius: var(--radius); border: 1px solid var(--sand-200); font-weight: 500; font-size: 0.92rem; line-height: 1.3;
}
.amenity small { display: block; font-weight: 400; font-size: 0.75rem; color: var(--muted); }
.amenity__icon {
  flex-shrink: 0; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center;
  background: var(--mint-100); color: var(--brand-600);
}
.amenity__icon svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- Responsivo ---------- */
@media (max-width: 1024px) {
  .amenity-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 760px) {
  .amenity-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 480px) {
  /* Comodidades em 2 colunas compactas (ícone em cima do texto) */
  .amenity-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
  .amenity { flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; font-size: 0.86rem; }
  .amenity__icon { width: 36px; height: 36px; border-radius: 10px; }
}
