/* Room cards (rendered by js/sections/rooms.js) */
.rooms { position: relative; background: var(--ivory); }
.rooms-header { display: flex; align-items: end; justify-content: space-between; gap: 50px; }
.rooms-summary { max-width: 330px; margin: 0 0 8px; color: var(--muted); text-align: right; }
.room-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px 28px; margin-top: 68px; }
.room-feature { display: flex; min-width: 0; flex-direction: column; border-bottom: 1px solid var(--line); }
.room-visual { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 16px; }
.room-visual img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.room-feature:hover .room-visual img { transform: scale(1.025); }
.room-visual > span { position: absolute; z-index: 1; top: 14px; left: 14px; min-width: 38px; padding: 4px 10px; border-radius: 999px; background: rgba(244,241,225,.92); color: var(--wine); font-family: var(--sans); font-size: 1rem; text-align: center; }
.room-copy { display: flex; flex: 1; flex-direction: column; padding: 26px 2px 28px; }
.room-copy h3 { margin: 0 0 10px; font-size: 1.6rem; font-weight: var(--fw-title); line-height: 1.2; letter-spacing: -.015em; }
.room-copy > p:not(.card-kicker) { min-height: 50px; margin-bottom: 16px; color: var(--muted); font-size: .82rem; }
.amenities { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 23px; }
.amenities span { padding: 5px 9px; border: 1px solid var(--line); border-radius: 4px; color: var(--muted); font-size: .62rem; }
.room-actions { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; margin-top: auto; }
.room-actions a { color: var(--wine); font-size: .7rem; font-weight: var(--fw-label); letter-spacing: .14em; text-transform: uppercase; }
.rooms-empty { margin: 48px 0 0; padding: 34px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: .95rem; text-align: center; }
.rooms-empty a { color: var(--wine); font-weight: var(--fw-label); white-space: nowrap; }

@media (max-width: 1100px) {
  .room-list { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 800px) {
  .rooms-header { align-items: flex-start; flex-direction: column; }
  .rooms-summary { text-align: left; }
  .room-list { margin-top: 42px; }
}

@media (max-width: 560px) {
  .room-list { grid-template-columns: 1fr; }
  .room-visual { aspect-ratio: 4 / 4.4; }
}
