.room-detail .detail-photo img, .venue-photo img { width: 100%; height: auto; max-height: none; aspect-ratio: auto; object-fit: contain; }
.photo-gallery { padding-top: 35px; }
.room-grid .room-image { aspect-ratio: 16 / 9; }
.room-grid .room-image > a { display: block; width: 100%; height: 100%; }
.room-grid .room-image img { width: 100%; height: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center; }
.photo-gallery h2 { margin-bottom: 32px; }
.photo-grid { columns: 3; column-gap: 24px; }
.photo-grid figure { margin: 0 0 24px; break-inside: avoid; }
.photo-grid img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.photo-grid figcaption { font-size: 13px; color: #655f60; padding-top: 9px; }
.cotto-slideshow { min-width: 0; background: #191617; padding: 28px; align-self: stretch; display: flex; flex-direction: column; justify-content: center; }
.cotto-frame { position: relative; width: 100%; aspect-ratio: 4/5; max-height: 720px; }
.cotto-slide { margin: 0; height: 100%; width: 100%; }
.cotto-slide[hidden] { display: none !important; }
.cotto-slide img { width: 100%; height: 100%; min-height: 0; object-fit: contain; }
.slideshow-controls { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding-top: 20px; }
.slideshow-controls button { color: #fff; background: transparent; border: 1px solid #ffffff70; min-height: 48px; padding: 10px 16px; cursor: pointer; font-size: 14px; }
.slideshow-controls button:hover { background: #ffffff18; }
.slide-status { font-size: 14px; color: #e1d9da; }
.cotto-slideshow:focus-visible { outline: 3px solid #da1f27; outline-offset: -3px; }
@media(max-width:1100px) { .photo-grid { columns: 2; } }
@media(max-width:600px) { .photo-grid { columns: 1; } .photo-gallery { padding-top: 10px; } .cotto-slideshow { padding: 20px; } .slideshow-controls button { padding-inline: 12px; } }
