.gallery{padding:88px 0 70px}
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}
.gallery-filter{appearance:none;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink-soft);font:inherit;font-size:14px;font-weight:750;padding:10px 18px;cursor:pointer;transition:border-color .2s,background .2s,color .2s,box-shadow .2s}
.gallery-filter:hover{border-color:var(--blue);color:var(--blue)}
.gallery-filter:focus-visible{outline:3px solid rgba(11,71,161,.2);outline-offset:2px}
.gallery-filter.is-active{background:var(--blue);border-color:var(--blue);color:#fff;}
.g-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.g-card{min-width:0;border:1px solid var(--line);border-radius:var(--r-card);overflow:hidden;background:#fff;transition:transform .25s,box-shadow .25s,border-color .25s}
.g-card:hover{border-color:#c8d6eb;}
.g-card.wide{grid-column:auto}
.g-card[hidden]{display:none}
.g-media{position:relative;display:block;width:100%;border:0;padding:0;overflow:hidden;cursor:zoom-in;aspect-ratio:16/10;background:var(--bg-soft)}
.g-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.g-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,24,48,.58),transparent 54%);opacity:.72;transition:opacity .25s}
.g-media:hover img,.g-media:focus-visible img{transform:scale(1.045)}
.g-media:hover::after,.g-media:focus-visible::after{opacity:1}
.g-media:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.g-zoom{position:absolute;left:18px;bottom:15px;z-index:2;color:#fff;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.g-copy{padding:20px 20px 22px}
.g-copy>span{display:block;color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.g-copy h3{font-size:18px;font-weight:var(--fw-head);line-height:1.35;margin-bottom:7px}
.g-copy p{color:var(--ink-soft);font-size:14px;line-height:1.65}
.gallery-empty{border:1px dashed #b9cae2;border-radius:var(--r-card);background:var(--bg-soft);padding:48px 26px;text-align:center}
.gallery-empty h3{font-size:21px;margin-bottom:8px}
.gallery-empty p{color:var(--ink-soft)}
.lb{position:fixed;inset:0;background:rgba(7,18,36,.94);z-index:200;padding:56px;display:grid;place-items:center}
.lb[hidden]{display:none}
.lb figure{max-width:min(1120px,100%);max-height:100%;margin:0;display:grid;gap:12px}
.lb img{display:block;max-width:100%;max-height:calc(100vh - 140px);border-radius:var(--r-card);object-fit:contain}
.lb figcaption{color:#d7e2f3;text-align:center;font-size:14px}
.lb-close{position:absolute;right:22px;top:18px;width:44px;height:44px;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.lb-close:focus-visible{outline:3px solid #8ab8ff;outline-offset:3px}
.lightbox-open{overflow:hidden}
.cta{padding:8px 0 0}
.cta-box p{max-width:620px;margin:0 auto 34px;color:#cfe0fb;font-size:16.5px;position:relative}
.footer{margin-top:96px}
@media(max-width:960px){
  .g-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .g-card.wide{grid-column:auto}
}
@media(max-width:560px){
  .gallery{padding:64px 0 52px}
  .gallery-filters{gap:8px}
  .gallery-filter{padding:9px 14px;font-size:13px}
  .g-grid{grid-template-columns:1fr}
  .g-card.wide{grid-column:span 1}
  .lb{padding:52px 16px 24px}
  .cta-box{padding:56px 28px}
}
