.gallery-page { background: #fff; color: #111; }
.gallery-intro { padding-top: clamp(125px, 10vw, 165px); padding-bottom: clamp(45px, 5vw, 75px); }
.gallery-eyebrow { display: flex; justify-content: space-between; margin: 0 0 clamp(45px, 6vw, 85px); padding-bottom: 18px; border-bottom: 1px solid #d5d8d2; font-size: 10px; font-weight: 700; letter-spacing: .16em; }
.gallery-heading { text-align: center; }
.gallery-heading h1 { margin: 0; font: 500 clamp(52px, 6.2vw, 96px)/.96 var(--sans); letter-spacing: -.06em; }
.gallery-heading h1 em { color: #68745a; font: inherit; }
.gallery-heading p { max-width: 430px; margin: 0 0 7px; color: #5b625c; font-size: clamp(15px, 1.15vw, 19px); line-height: 1.75; }
.gallery-grid { columns: 3; column-gap: clamp(16px, 2vw, 30px); padding-bottom: clamp(90px, 12vw, 180px); }
.gallery-item { display: inline-block; width: 100%; margin: 0 0 clamp(24px, 3vw, 42px); break-inside: avoid; }
.gallery-item button { display: block; width: 100%; padding: 0; overflow: hidden; border: 0; background: #eceee8; cursor: zoom-in; }
.gallery-item img { width: 100%; height: auto; transition: transform .65s cubic-bezier(.2,.75,.25,1), filter .35s ease; }
.gallery-item button:hover img { transform: scale(1.025); filter: brightness(.94); }
.gallery-item figcaption { margin-top: 10px; color: #777d77; font-size: 10px; letter-spacing: .13em; }
.gallery-item button:focus-visible { outline: 3px solid #68745a; outline-offset: 5px; }
.gallery-lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: clamp(55px, 6vw, 90px); border: 0; background: #111; color: #fff; overflow: hidden; }
.gallery-lightbox::backdrop { background: #111; }
.gallery-lightbox[open] { display: grid; place-items: center; }
.gallery-lightbox img { max-width: 100%; max-height: calc(100dvh - 110px); object-fit: contain; }
.gallery-lightbox-close { position: fixed; z-index: 2; top: 20px; right: 24px; display: flex; align-items: center; gap: 12px; padding: 8px 0; border: 0; background: transparent; color: #fff; font-size: 12px; }
.gallery-lightbox-close span { font-size: 28px; line-height: 1; }
@media (max-width: 900px) {
  .gallery-intro { padding-top: 112px; }
  .gallery-grid { columns: 2; }
}
@media (max-width: 560px) {
  .gallery-intro { padding-top: 105px; padding-bottom: 42px; }
  .gallery-eyebrow { margin-bottom: 38px; }
  .gallery-heading h1 { font-size: clamp(49px, 14vw, 68px); }
  .gallery-grid { columns: 1; }
  .gallery-lightbox { padding: 55px 14px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .gallery-item img { transition: none; }
}
@media (max-width: 560px) {
  .gallery-eyebrow { align-items: flex-start; flex-direction: column; gap: 8px; }
}
