.gallery-page .about-banner{background-image:linear-gradient(100deg,#032542fa,#044b7be6 42%,#007eaa66 75%,#003a6133),url('assets/hero-exact.png');background-position:center,72% center;background-size:cover;padding-bottom:64px}
.gallery-section{padding-block:64px 76px}
.gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:32px}
.gallery-heading h2{margin-bottom:0}.gallery-heading>p{max-width:310px;font-size:16px;line-height:1.7;color:#526c80;margin:0}
.gallery-filters{display:flex;flex-wrap:wrap;gap:10px}.gallery-filters button{background:#f0f7fc;color:#214966;border:1px solid #d9e9f5;border-radius:999px;padding:12px 24px;min-height:46px;font-size:16px;font-weight:600;transition:background .2s,color .2s,box-shadow .2s}
.gallery-filters button[aria-pressed="true"]{background:linear-gradient(115deg,#039de1,#086cc0);border-color:#0788d0;color:#fff;box-shadow:0 6px 16px #0079bd22}
.gallery-count{font-size:14px;color:#587084;margin:22px 0}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.gallery-card{padding:0;display:block;min-width:0;text-align:left;overflow:hidden;background:#fff;border:1px solid #dce9f3;border-radius:20px;color:#123c5c;box-shadow:0 8px 28px #07385908;transition:transform .25s,box-shadow .25s}
.gallery-card[hidden]{display:none}.gallery-image{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#f0f7fc}
.gallery-image>img,.gallery-image>.source-crop{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s}.gallery-image>img:not(.gallery-diagram){object-position:right center}
.gallery-image>.gallery-diagram{object-fit:contain;background:#fff;padding:12px}
.gallery-zoom{position:absolute;right:18px;bottom:18px;display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff90;border-radius:50%;background:#053d68d9;color:white}
.gallery-zoom svg{width:23px;height:23px}.gallery-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px}
.gallery-category{display:block;color:#087dc0;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}
.gallery-caption strong{display:block;font-size:21px;line-height:1.35}.gallery-caption>span:last-child{font-size:27px;color:#008ad1}
.gallery-note{font-size:14px;line-height:1.7;color:#64798b;margin-top:28px}.gallery-note a{color:#0575b5;text-decoration:underline}
.gallery-lightbox{padding:0;width:min(1100px,calc(100% - 32px));max-width:1100px;max-height:calc(100dvh - 32px);background:#061f34;color:#fff;border:1px solid #42647d;border-radius:20px;overflow:auto}
.gallery-lightbox::backdrop{background:#001020ed}
.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 24px}
.lightbox-top h2{font-size:20px;line-height:1.4;color:#fff;padding:0;margin:0}
.lightbox-close,.lightbox-prev,.lightbox-next{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid #ffffff35;border-radius:50%;background:#ffffff12;color:#fff;font-size:26px}
.lightbox-stage{display:grid;place-items:center;background:#fff;min-height:120px;padding:8px}
.lightbox-stage img{display:block;max-width:100%;max-height:65dvh;width:auto;height:auto;object-fit:contain}
.lightbox-stage .source-crop{width:min(100%,850px);max-height:65dvh}
.lightbox-bottom{display:flex;justify-content:center;align-items:center;gap:24px;padding:16px 24px}
.lightbox-status{font-size:15px;line-height:1.5;text-align:center}.gallery-lightbox button:disabled{opacity:.4;cursor:default}
body.lightbox-open{overflow:hidden}
@media(hover:hover){.gallery-card:hover{filter:none;transform:translateY(-5px);box-shadow:0 18px 36px #0738591a}.gallery-card:hover .gallery-image>img,.gallery-card:hover .gallery-image>.source-crop{transform:scale(1.035)}.gallery-filters button:hover{box-shadow:0 5px 15px #0079bd22}}
@media(max-width:700px){.gallery-heading{display:block}.gallery-heading>p{max-width:none;margin-top:20px}.gallery-section{padding-block:44px}.gallery-grid{grid-template-columns:1fr;gap:22px}.gallery-filters button{padding:11px 18px}.gallery-caption{padding:20px}.gallery-caption strong{font-size:19px}.lightbox-top{padding:14px 16px}.lightbox-top h2{font-size:18px}.gallery-page .about-banner{background-position:center,65% center}}
@media(prefers-reduced-motion:reduce){.gallery-card,.gallery-image>img,.gallery-image>.source-crop,.gallery-filters button{transition:none}.gallery-card:hover,.gallery-card:hover .gallery-image>img,.gallery-card:hover .gallery-image>.source-crop{transform:none}}
