.gallery-page{padding:44px 0 72px;background:#fff}
.gallery-intro{text-align:center;max-width:780px;margin:0 auto 34px}
.gallery-intro .eyebrow{justify-content:center}
.gallery-intro h1{margin-bottom:12px}
.gallery-intro p{margin:0 auto;color:var(--gray-text);font-size:17px;max-width:700px}
.photo-grid{columns:4 220px;column-gap:12px}
.photo-grid__item{display:block;break-inside:avoid;margin:0 0 12px;border-radius:8px;overflow:hidden;background:#ececec;position:relative;box-shadow:0 2px 9px rgba(20,24,24,.08);cursor:zoom-in}
.photo-grid__item::after{content:"";position:absolute;inset:0;background:rgba(20,20,20,0);transition:background .18s ease;pointer-events:none}
.photo-grid__item:hover::after{background:rgba(20,20,20,.08)}
.photo-grid__item img{width:100%;height:auto;display:block;transition:transform .22s ease}
.photo-grid__item:hover img{transform:scale(1.018)}
.lightbox[hidden]{display:none}
.lightbox{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px}
.lightbox__backdrop{position:absolute;inset:0;border:0;background:rgba(8,9,10,.94);cursor:zoom-out}
.lightbox__panel{position:relative;z-index:1;width:min(96vw,1500px);height:min(92vh,1000px);display:grid;grid-template-columns:58px minmax(0,1fr) 58px;grid-template-rows:minmax(0,1fr) auto;align-items:center}
.lightbox__stage{grid-column:2;grid-row:1;display:grid;place-items:center;min-width:0;min-height:0;width:100%;height:100%}
.lightbox__stage img{display:block;max-width:100%;max-height:calc(92vh - 50px);width:auto;height:auto;object-fit:contain;box-shadow:0 16px 50px rgba(0,0,0,.38)}
.lightbox__close,.lightbox__nav{border:0;background:rgba(255,255,255,.12);color:#fff;cursor:pointer;display:grid;place-items:center;transition:background .16s ease}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.22)}
.lightbox__close{position:absolute;right:8px;top:4px;width:44px;height:44px;border-radius:999px;font-size:30px;line-height:1;z-index:3}
.lightbox__nav{width:46px;height:64px;border-radius:8px;font-size:42px;line-height:1}
.lightbox__nav--prev{grid-column:1;grid-row:1;justify-self:start}.lightbox__nav--next{grid-column:3;grid-row:1;justify-self:end}
.lightbox__counter{grid-column:2;grid-row:2;text-align:center;color:#d7dada;font-size:13px;padding-top:12px}
body.lightbox-open{overflow:hidden}
@media(max-width:900px){.photo-grid{columns:3 190px}.gallery-page{padding-top:34px}.lightbox__panel{grid-template-columns:46px minmax(0,1fr) 46px}.lightbox__nav{width:40px;height:58px;font-size:36px}}
@media(max-width:620px){.gallery-page{padding:28px 0 54px}.gallery-intro{margin-bottom:24px}.gallery-intro h1{font-size:38px}.gallery-intro p{font-size:15px}.photo-grid{columns:2 145px;column-gap:8px}.photo-grid__item{margin-bottom:8px;border-radius:6px}.lightbox{padding:10px}.lightbox__panel{width:100%;height:96vh;grid-template-columns:40px minmax(0,1fr) 40px}.lightbox__stage img{max-height:calc(96vh - 48px)}.lightbox__close{right:3px;top:3px;width:40px;height:40px}.lightbox__nav{width:36px;height:54px;font-size:34px}}
@media(prefers-reduced-motion:reduce){.photo-grid__item img{transition:none}}

.gallery-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:1120px;margin:0 auto 12px}
.gallery-filter{appearance:none;border:1px solid #d8dada;background:#fff;color:var(--charcoal);font:700 12px/1.2 var(--font-body);padding:9px 12px;border-radius:999px;cursor:pointer;transition:.16s ease}
.gallery-filter span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:5px;padding:0 6px;border-radius:999px;background:#f1f2f2;color:#666;font-size:11px}
.gallery-filter:hover{border-color:var(--orange);color:var(--orange-deep)}
.gallery-filter.is-active{background:var(--charcoal);border-color:var(--charcoal);color:#fff}
.gallery-filter.is-active span{background:var(--orange);color:#fff}
.gallery-filter:focus-visible{outline:3px solid rgba(214,94,45,.28);outline-offset:2px}
.gallery-filter-status{text-align:center;color:var(--gray-text);font-size:13px;margin:0 auto 24px}
.photo-grid__item[hidden]{display:none!important}
.photo-grid__item::after{z-index:1}
.photo-grid__tags{position:absolute;left:9px;right:9px;bottom:9px;z-index:2;display:flex;flex-wrap:wrap;gap:5px;pointer-events:none}
.photo-grid__tag{display:inline-flex;align-items:center;max-width:100%;padding:5px 8px;border-radius:999px;background:rgba(20,24,24,.88);color:#fff;font-size:10px;font-weight:800;line-height:1.15;letter-spacing:.01em;box-shadow:0 2px 8px rgba(0,0,0,.2);backdrop-filter:blur(4px)}
.lightbox__tags{grid-column:2;grid-row:2;text-align:center;color:#fff;font-size:12px;font-weight:700;padding-top:3px;transform:translateY(22px)}
.lightbox__counter{transform:translateY(-7px)}
@media(max-width:620px){
  .gallery-filters{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:-2px;margin-right:-2px;padding:0 2px 5px}
  .gallery-filters::-webkit-scrollbar{display:none}
  .gallery-filter{flex:0 0 auto;padding:8px 10px}
  .gallery-filter-status{text-align:left;margin-bottom:18px}
  .photo-grid__tags{left:6px;right:6px;bottom:6px;gap:4px}
  .photo-grid__tag{font-size:9px;padding:4px 6px}
}
