/* MTO gallery page: grid + lightbox. Loaded only on /gallery. */
.gal-sec{padding:40px 0 56px}
.gal-sec+.gal-sec{padding-top:0}
.gal-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.gal-head h2{margin:0}
.gal-count{color:#6B7480;font-size:.95rem}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;list-style:none;margin:0;padding:0}
.gal-grid li{margin:0}
.gal-item{display:block;position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:14px;background:#E6E9EE;border:0;padding:0;cursor:zoom-in;box-shadow:0 1px 2px rgba(15,42,92,.08)}
.gal-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
.gal-item:hover img,.gal-item:focus-visible img{transform:scale(1.04)}
.gal-item:focus-visible{outline:3px solid #1D4FA3;outline-offset:3px}
.gal-grid li:nth-child(6n+1){grid-column:span 2;grid-row:span 2}
.gal-grid li:nth-child(6n+1) .gal-item{aspect-ratio:auto;height:100%;min-height:100%}
@media (max-width:640px){.gal-grid{grid-template-columns:repeat(2,1fr);gap:8px}.gal-grid li:nth-child(6n+1){grid-column:span 2;grid-row:span 1}.gal-grid li:nth-child(6n+1) .gal-item{aspect-ratio:16/10;height:auto}.gal-item{border-radius:10px}}
/* lightbox */
.lb{position:fixed;inset:0;z-index:1000;background:rgba(10,31,69,.94);display:none;align-items:center;justify-content:center;padding:0}
.lb[aria-hidden="false"]{display:flex}
.lb img{max-width:min(96vw,1600px);max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);background:#0F2A5C}
.lb-btn{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:30px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-btn:hover{background:rgba(255,255,255,.28)}
.lb-prev{left:14px}.lb-next{right:14px}
.lb-close{position:absolute;top:14px;right:14px;width:46px;height:46px;border-radius:50%;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:26px;cursor:pointer}
.lb-close:hover{background:rgba(255,255,255,.28)}
.lb-cap{position:absolute;bottom:16px;left:0;right:0;text-align:center;color:#DDEEFB;font-size:.9rem;opacity:.85}
@media (max-width:640px){.lb-btn{width:42px;height:42px;font-size:24px}.lb-prev{left:6px}.lb-next{right:6px}.lb img{max-height:78vh;border-radius:6px}}
body.lb-open{overflow:hidden}
