/* v2.0.15 (pt155u): Gallery page, home "Recent Work" strip and lightbox. */
.gal-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin:0 0 2rem}
.gal-tab{appearance:none;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.06);color:#fff;font:inherit;font-weight:700;font-size:.95rem;padding:.65rem 1.15rem;border-radius:999px;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:background .2s,border-color .2s,color .2s}
.gal-tab span{font-size:.78rem;background:rgba(255,255,255,.14);border-radius:999px;padding:.1rem .5rem;min-width:1.6rem;text-align:center}
.gal-tab:hover{border-color:#5fd4d0}
.gal-tab.is-active{background:#ffd23f;border-color:#ffd23f;color:#0b1525}
.gal-tab.is-active span{background:rgba(11,21,37,.15)}
.gal-tab:focus-visible{outline:3px solid #5fd4d0;outline-offset:2px}

/* 4 x 5 on desktop, 3 on tablet, 2 on phones; partial last rows (filtered views) are centered. */
.gal-grid{--gc:4;--gg:1.1rem;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--gg)}
.gal-item{flex:0 0 calc((100% - (var(--gc) - 1) * var(--gg)) / var(--gc));margin:0;min-width:0}
.gal-item[hidden]{display:none}
.gal-link{display:block;position:relative;aspect-ratio:1/1;border-radius:18px;overflow:hidden;background:#0b1525;border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 26px rgba(0,0,0,.28)}
.gal-link img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s ease}
.gal-link:hover img,.gal-link:focus-visible img{transform:scale(1.05)}
.gal-link:focus-visible{outline:3px solid #ffd23f;outline-offset:3px}
.gal-zoom{position:absolute;right:.7rem;bottom:.7rem;width:2.4rem;height:2.4rem;border-radius:50%;display:grid;place-items:center;background:rgba(11,21,37,.7);color:#ffd23f;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.gal-zoom .ico{width:1.1rem;height:1.1rem}
.gal-link:hover .gal-zoom,.gal-link:focus-visible .gal-zoom{opacity:1;transform:none}
.gal-item figcaption{margin:.6rem .2rem 0;font-size:.93rem;line-height:1.35;color:#e8eef8;font-weight:600}
.gal-cat{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#5fd4d0;font-weight:800;margin-bottom:.15rem}
@media (max-width:1180px){.gal-grid{--gc:3}}
@media (max-width:760px){.gal-grid{--gc:2;--gg:.7rem}.gal-link{border-radius:12px}.gal-item figcaption{font-size:.82rem}.gal-cat{font-size:.66rem}.gal-tab{font-size:.85rem;padding:.55rem .9rem}}
/* Home strip: always 4 across on desktop, 2 x 2 below. */
.gal-strip{--gc:4}
@media (max-width:1180px){.gal-strip{--gc:2}}
.gal-strip-cta{text-align:center;margin:1.75rem 0 0}
.gal-strip-cta .btn{display:inline-flex;align-items:center;gap:.5rem}

/* Lightbox */
html.gal-lb-open{overflow:hidden}
.gal-lb{position:fixed;inset:0;z-index:100000;background:rgba(4,8,18,.94);display:flex;align-items:center;justify-content:center;padding:3.5rem 4.5rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.gal-lb[hidden]{display:none}
.gal-lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:100%;max-height:100%;width:100%;height:100%}
.gal-lb-img{max-width:100%;max-height:calc(100% - 3rem);object-fit:contain;border-radius:10px;box-shadow:0 20px 60px rgba(0,0,0,.5);transition:opacity .2s}
.gal-lb-img.is-loading{opacity:.35}
.gal-lb-cap{color:#fff;font-weight:600;margin-top:.9rem;text-align:center;font-size:1rem}
.gal-lb button{appearance:none;border:0;cursor:pointer;color:#fff;background:rgba(255,255,255,.12);display:grid;place-items:center;border-radius:50%;transition:background .2s}
.gal-lb button:hover{background:rgba(255,210,63,.9);color:#0b1525}
.gal-lb button:focus-visible{outline:3px solid #ffd23f;outline-offset:2px}
.gal-lb-close{position:absolute;top:1rem;right:1rem;width:2.9rem;height:2.9rem}
.gal-lb-close .ico{width:1.3rem;height:1.3rem}
.gal-lb-prev,.gal-lb-next{position:absolute;top:50%;transform:translateY(-50%);width:3.2rem;height:3.2rem;font-size:2.2rem;line-height:1}
.gal-lb-prev{left:1rem}.gal-lb-next{right:1rem}
@media (max-width:760px){.gal-lb{padding:3.75rem .5rem 4.75rem}.gal-lb-prev,.gal-lb-next{top:auto;bottom:.9rem;transform:none;width:2.9rem;height:2.9rem}.gal-lb-prev{left:calc(50% - 3.6rem)}.gal-lb-next{right:calc(50% - 3.6rem)}.gal-lb-cap{font-size:.9rem;padding:0 .5rem}}
