/* Gallery extends the site's shell, spacing, colors and corner radius. */
.gallery-grid { overflow: hidden; border-radius: var(--radius); background: var(--white); }
.gallery-photo { position: relative; display: block; min-width: 0; min-height: 0; overflow: hidden; background: var(--deep); text-decoration: none; cursor: zoom-in; }
.gallery-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gallery-photo:hover img { transform: scale(1.025); }
.gallery-photo__caption { position: absolute; inset: auto 0 0; padding: 1.5rem .75rem .65rem; background: linear-gradient(transparent, rgba(5,47,59,.92)); color: #fff; font-size: calc(.9rem + 2px); font-weight: 700; overflow-wrap: anywhere; }
.gallery-grid .rental-gallery > .gallery-photo { min-height: 36rem; }
.gallery-grid .rental-photo-strip .gallery-photo { aspect-ratio: 16 / 9; }
@media (max-width: 62rem) { .gallery-grid .rental-gallery > .gallery-photo { min-height: 30rem; } }
@media (max-width: 48rem) {
  .gallery-grid .rental-gallery > .gallery-photo { min-height: 18rem; aspect-ratio: 16 / 10; }
  .gallery-grid .rental-gallery__side .gallery-photo { aspect-ratio: 16 / 10; }
}
.gallery-lightbox { position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: max(4.5rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(5rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left)); border: 0; background: rgba(5,47,59,.96); color: var(--white); overflow: hidden; }
.gallery-lightbox::backdrop { background: rgba(5,47,59,.9); }
.gallery-lightbox:not([open]) { display: none; }
.gallery-lightbox__frame { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.gallery-lightbox__image { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; touch-action: pinch-zoom; }
.gallery-lightbox__image[hidden] { display: none; }
.gallery-lightbox button { display: grid; place-items: center; flex: 0 0 auto; width: 3rem; height: 3rem; padding: 0; border: 1px solid rgba(255,255,255,.65); border-radius: var(--radius); background: var(--deep); color: var(--white); font: 700 1.6rem/1 var(--font); cursor: pointer; touch-action: manipulation; }
.gallery-lightbox button:hover { background: var(--dark-turquoise); }
.gallery-lightbox__close { position: absolute; top: max(.75rem,env(safe-area-inset-top)); right: max(1rem,env(safe-area-inset-right)); }
.gallery-lightbox__controls { position: absolute; bottom: max(1rem,env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); display: flex; align-items: center; gap: var(--space-2); }
.gallery-lightbox__counter { min-width: 4.5rem; text-align: center; font-variant-numeric: tabular-nums; }
.gallery-lightbox__error { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: min(80%,30rem); text-align: center; }

.gallery-empty { grid-column: 1 / -1; color: var(--muted); }

/* Type sizes increased by 2px; root sizing and layout spacing are unchanged. */
