.gallery-page { padding: clamp(2rem, 6vw, 6rem) clamp(1rem, 4vw, 3rem); background: #e8e6df; }
.gallery-shell { width: min(100%, 88rem); margin: auto; padding: clamp(1.5rem, 5vw, 4.5rem); background: #fbfaf7; box-shadow: 0 1.25rem 3rem rgb(31 31 27 / 16%); }
.gallery-page__header { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 1rem; }
.gallery-page__eyebrow { grid-column: 1 / -1; margin: 0; font-size: .75rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.gallery-page__header h1 { margin: 0; font-size: clamp(2.5rem, 7vw, 6rem); font-weight: 400; letter-spacing: -.055em; line-height: .9; }
.gallery-page__header > p:last-child { max-width: 34rem; margin: 0; color: #65645f; }
.gallery-categories { display: flex; margin: 2.5rem 0; padding-top: 1rem; overflow-x: auto; border-top: 1px solid #c9c6bd; gap: .55rem; }
.gallery-categories a { padding: .55rem .9rem; border: 1px solid #b9b6ae; border-radius: 999px; color: #252521; font-size: .78rem; font-weight: 800; text-decoration: none; white-space: nowrap; }
.gallery-categories a[aria-current="page"], .gallery-categories a:hover { color: #fff; border-color: #0452ff; background: #0452ff; }
.gallery-set + .gallery-set { margin-top: clamp(4rem, 8vw, 7rem); }
.gallery-set__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, .7fr); margin-bottom: 1.25rem; align-items: end; gap: .5rem 2rem; }
.gallery-set__heading > p:first-child { grid-column: 1 / -1; margin: 0; color: #0452ff; font-size: .72rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.gallery-set__heading h2 { margin: 0; font-size: clamp(1.8rem, 4vw, 3.4rem); line-height: 1; letter-spacing: -.04em; }
.gallery-set__heading > p:last-child { margin: 0; color: #65645f; }
.gallery-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: 1rem; }
.gallery-photo { position: relative; grid-column: span 4; margin: 0; overflow: hidden; min-height: 18rem; background: #d8d6cf; box-shadow: 0 .8rem 1.5rem rgb(30 30 25 / 12%); }
.gallery-photo--2, .gallery-photo--4 { grid-column: span 5; }
.gallery-photo--3, .gallery-photo--6 { grid-column: span 3; }
.gallery-photo button { display: block; width: 100%; height: 100%; min-height: inherit; padding: 0; border: 0; cursor: zoom-in; background: transparent; }
.gallery-photo img { display: block; width: 100%; height: 100%; min-height: inherit; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .35s ease; }
.gallery-photo:hover img { transform: scale(1.025); }
.gallery-photo figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 3rem 1rem 1rem; color: #fff; background: linear-gradient(transparent, rgb(0 0 0 / 72%)); font-size: .92rem; pointer-events: none; }
.gallery-status { min-height: 14rem; display: grid; place-items: center; color: #65645f; border: 1px dashed #c9c6bd; }
.gallery-status[data-type="error"] { color: #b42318; }
.gallery-lightbox { width: min(94vw, 76rem); max-height: 92vh; padding: 0; border: 0; background: #111; color: #fff; }
.gallery-lightbox::backdrop { background: rgb(0 0 0 / 86%); }
.gallery-lightbox form { position: absolute; z-index: 1; top: .75rem; right: .75rem; }
.gallery-lightbox button { width: 2.75rem; height: 2.75rem; border: 1px solid rgb(255 255 255 / 55%); border-radius: 50%; color: #fff; background: rgb(0 0 0 / 55%); font-size: 1.5rem; cursor: pointer; }
.gallery-lightbox img { display: block; width: 100%; max-height: 80vh; object-fit: contain; }
.gallery-lightbox p { margin: 0; padding: 1rem 1.25rem; }
@media (max-width: 48rem) {
  .gallery-shell { padding: 1.25rem; }
  .gallery-page__header, .gallery-set__heading { grid-template-columns: 1fr; }
  .gallery-grid { display: block; }
  .gallery-photo { min-height: 0; margin-bottom: .8rem; }
  .gallery-photo img { min-height: 0; }
}
