.gallery-toolbar{display:flex;gap:8px;margin-bottom:30px;flex-wrap:wrap}
.gallery-toolbar button span{display:inline-grid;place-items:center;min-width:22px;height:22px;margin-left:6px;border-radius:50%;background:rgba(11,41,65,.08);font-size:10px}
.gallery-toolbar button.active span{background:rgba(255,255,255,.14)}
.gallery-grid{display:block;columns:3 260px;column-gap:16px}
.gallery-item{position:relative;break-inside:avoid;margin:0 0 16px;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 12px 34px rgba(5,35,52,.1)}
.gallery-item[hidden]{display:none}
.gallery-item button{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in;overflow:hidden}
.gallery-item img,.gallery-item video{display:block;width:100%;height:auto;min-height:260px;object-fit:cover;border-radius:0;transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.gallery-item.landscape img{aspect-ratio:4/3}
.gallery-item.portrait img{aspect-ratio:3/4}
.gallery-item:hover img{transform:scale(1.035)}
.gallery-item figcaption{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:17px 19px;background:#fff}
.gallery-item figcaption b{font:700 14px 'Manrope',sans-serif}
.gallery-item figcaption span{font-size:12px;color:var(--muted)}
.gallery-zoom{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(6,26,43,.83);color:#fff;backdrop-filter:blur(8px);transition:.3s}
.gallery-item:hover .gallery-zoom{background:var(--cyan);color:var(--navy);transform:rotate(45deg)}
.gallery-no-results{min-height:220px;border:1px dashed rgba(11,41,65,.28);border-radius:var(--radius);place-content:center;text-align:center;color:var(--muted)}
.gallery-no-results:not([hidden]){display:grid}
.gallery-no-results span{font-size:28px;color:#11aab2}
.lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(2,13,23,.96);color:#fff}
.lightbox[open]{display:grid;grid-template-columns:80px 1fr 80px;align-items:center}
.lightbox::backdrop{background:rgba(2,13,23,.94)}
.lightbox figure{min-width:0;margin:0;display:grid;place-items:center;gap:15px;height:100%;padding:56px 10px 28px}
.lightbox figure img{max-width:min(1200px,100%);max-height:calc(100dvh - 120px);width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 25px 80px rgba(0,0,0,.45)}
.lightbox figure figcaption{font-size:14px;color:#c7d6de}
.lightbox button{border:0;background:rgba(255,255,255,.1);color:#fff;cursor:pointer}
.lightbox-close{position:absolute;z-index:2;top:18px;right:22px;width:46px;height:46px;border-radius:50%;font-size:30px}
.lightbox-prev,.lightbox-next{width:50px;height:50px;border-radius:50%;font-size:38px;justify-self:center}
.lightbox-count{position:absolute;left:24px;top:26px;font-size:12px;letter-spacing:.16em}
@media(max-width:640px){
  .gallery-grid{display:block;columns:1}
  .gallery-item img{max-height:none}
  .gallery-item figcaption{align-items:flex-start;flex-direction:column;gap:3px}
  .lightbox[open]{grid-template-columns:52px 1fr 52px}
  .lightbox figure{padding:60px 0 45px}
  .lightbox figure img{max-width:100%;max-height:calc(100dvh - 140px)}
  .lightbox-prev,.lightbox-next{position:absolute;bottom:20px}
  .lightbox-prev{left:calc(50% - 62px)}
  .lightbox-next{right:calc(50% - 62px)}
}
