.page-hero { padding:4rem 0 2rem; max-width:760px; }
.page-hero p:last-child { margin-top:1rem; font-size:1.02rem; }
.rooms-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; padding-bottom:5rem; }
.room-card { background:var(--surface); border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); cursor:pointer; transition:transform .3s ease; }
.room-card:hover { transform:translateY(-8px); }
.room-media img { height:300px; }
.room-content { padding:1.35rem; }
.room-content p { color:var(--accent-dark); font-size:.82rem; text-transform:uppercase; letter-spacing:.18em; margin-bottom:.6rem; }
.room-content h3 { margin-bottom:.75rem; }
.room-content span { color:var(--muted); font-size:.95rem; }
.villa-modal, .gallery-modal { display:none; position:fixed; inset:0; background:rgba(18,14,11,0.78); z-index:999; justify-content:center; align-items:center; padding:1rem; }
.modal-content { width:min(920px,100%); max-height:90vh; overflow-y:auto; background:var(--surface); border-radius:28px; padding:1.5rem; position:relative; }
.modal-content > img { height:420px; border-radius:20px; margin-bottom:1.5rem; cursor:pointer; }
.modal-meta { display:flex; justify-content:space-between; gap:1rem; align-items:center; margin-bottom:1rem; }
.close-btn { position:absolute; top:1rem; right:1rem; width:42px; height:42px; border-radius:50%; border:none; background:rgba(255,255,255,0.92); font-size:1.5rem; cursor:pointer; }
#galleryMain { width:min(900px,100%); max-height:72vh; border-radius:20px; }
.gallery-thumbs { display:flex; gap:.75rem; margin-top:1rem; flex-wrap:wrap; justify-content:center; }
.gallery-thumbs img { width:90px; height:70px; border-radius:10px; cursor:pointer; }
.gallery-close { position:static; margin-bottom:1rem; }
@media (max-width:980px) { .rooms-gallery { grid-template-columns:1fr; } .modal-meta { flex-direction:column; align-items:flex-start; } }