.gallery-section { max-width:1600px; margin:0 auto }
.gallery-section .s-title { font:400 36px/1.3 var(--F-display); letter-spacing:inherit; margin-left:12px }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 24px }
.gallery-photo { position:relative; min-width:0; aspect-ratio:3/2; overflow:hidden; border-radius:16px; background:var(--bg-alt) }
.gallery-photo-pair { grid-column:span 2; aspect-ratio:3/1 }
.gallery-images { display:flex; width:100%; height:100% }
.gallery-photo-pair .gallery-images { gap:5px }
.gallery-photo img { flex:1; min-width:0; width:100%; height:100%; object-fit:cover }
.gallery-photo-pair img { width:50% }
.gallery-date { display:block; margin-bottom:4px; font-size:14px; line-height:1.4 }
.gallery-photo figcaption { position:absolute; inset:auto 0 0; padding:48px 20px 18px; color:#fff; background:linear-gradient(transparent,rgba(0,0,0,.78)); font-family:var(--F-display); font-size:20px; line-height:1.4; text-shadow:0 1px 3px rgba(0,0,0,.4); pointer-events:none }
@media(max-width:1000px) {
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)) }
}
@media(max-width:600px) {
  .gallery-grid { grid-template-columns:1fr; gap:28px }
  .gallery-photo-pair { grid-column:auto; aspect-ratio:3/4 }
  .gallery-photo-pair .gallery-images { flex-direction:column }
  .gallery-photo-pair img { width:100%; height:50%; min-height:0 }
}

.gallery-images img[hidden] { display:none }
.image-preview-nav { position:fixed; top:50%; z-index:1; width:44px; height:44px; border:0; border-radius:0; background:transparent; color:#fff; font:48px/1 Arial,sans-serif; cursor:pointer; transform:translateY(-50%) }
.image-preview-prev { left:16px }
.image-preview-next { right:16px }
.image-preview-nav:focus-visible { outline:2px solid #fff; outline-offset:3px }
.image-preview-counter { position:fixed; bottom:16px; left:50%; transform:translateX(-50%); padding:5px 12px; border-radius:20px; background:rgba(15,23,42,.6); color:#fff; font-size:14px }
