 
.gal-zoom { padding: clamp(64px,8vw,110px) 0 0; --gz-gap: 16px; }
.gz-head { max-width: 640px; margin: 0 0 clamp(28px,4vw,48px); }
.gz-head h2 { font-size: clamp(28px,3.4vw,46px); line-height: 1.05; color:#fff; margin: 6px 0 0; }
.gz-head h2 .accent { color: var(--tsa-orange,#FA9418); }
.gz-head p { margin-top: 14px; color: rgba(255,255,255,.72); font-size: 16px; line-height: 1.6; max-width: 54ch; }
 
.gz-stage { position: relative; }
.gz-cluster { display: none; }
.gz-strip { display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: var(--gz-gap); }
.gz-shot { position: relative; border-radius: 10px; overflow: hidden; background:#000; }
.gz-shot img { width: 100%; height: clamp(220px,30vh,340px); object-fit: cover; display: block; }
.gz-shot .cap { position: absolute; left: 16px; bottom: 14px; right:16px; color:#fff; font-weight: 600;
  font-size: .95rem; z-index: 2; text-shadow: 0 2px 12px rgba(0,0,0,.6); }
 
.gal-zoom.is-zoom .gz-stage { height: 100vh; overflow: hidden; }
.gal-zoom.is-zoom .gz-cluster { display: block; position: absolute; inset: 0; z-index: 2; will-change: transform; }
.gal-zoom.is-zoom .gz-cell { position: absolute; top: 50%; left: 50%; overflow: hidden; border-radius: 8px;
  transform: translate(-50%,-50%); will-change: transform; box-shadow: 0 30px 70px -34px rgba(0,0,0,.7); }
.gal-zoom.is-zoom .gz-cell img { width: 100%; height: 100%; object-fit: cover; }
.gal-zoom.is-zoom .gz-hero { width: min(38vw,440px); aspect-ratio: 16/10; z-index: 3; }
.gal-zoom.is-zoom .gz-sat { width: var(--w,20vw); height: var(--h,25vh);
  transform: translate(-50%,-50%) translate(var(--l,0),var(--t,0)); }
.gal-zoom.is-zoom .gz-strip { display: flex; gap: clamp(40px,6vw,90px); position: absolute; inset: 0; z-index: 1;
  height: 100vh; align-items: center; will-change: transform; opacity: 0; visibility: hidden;
  padding: 0 calc(50vw - 57.6vh); }
.gal-zoom.is-zoom .gz-frame { flex: 0 0 auto; height: 100vh; display: flex; align-items: center; }
.gal-zoom.is-zoom .gz-shot { height: 72vh; aspect-ratio: 16/10; width: auto;
  box-shadow: 0 40px 80px -40px rgba(0,0,0,.75); }
.gal-zoom.is-zoom .gz-shot img { width: 100%; height: 100%; }
@media (max-width: 760px) {
  .gal-zoom.is-zoom .gz-stage { height: auto; overflow: visible; }
  .gal-zoom.is-zoom .gz-cluster { display: none; }
  .gal-zoom.is-zoom .gz-strip { position: static; display: grid; grid-template-columns: 1fr; gap: var(--gz-gap);
    height: auto; opacity: 1; visibility: visible; padding: 0; transform: none !important; }
  .gal-zoom.is-zoom .gz-frame { flex: none; height: auto; display: block; }
  .gal-zoom.is-zoom .gz-shot { height: auto; aspect-ratio: auto; width: auto; max-width: none; }
  .gal-zoom.is-zoom .gz-shot img { height: clamp(240px,46vh,400px); }
}
@media (prefers-reduced-motion: reduce) {
  .gal-zoom.is-zoom .gz-stage { height: auto; overflow: visible; }
  .gal-zoom.is-zoom .gz-cluster { display: none; }
  .gal-zoom.is-zoom .gz-strip { position: static; display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr));
    gap: var(--gz-gap); height: auto; opacity: 1; visibility: visible; transform: none !important; }
  .gal-zoom.is-zoom .gz-frame { flex: none; height: auto; display: block; }
  .gal-zoom.is-zoom .gz-shot { height: auto; aspect-ratio: auto; width: auto; max-width: none; }
  .gal-zoom.is-zoom .gz-shot img { height: clamp(220px,30vh,340px); }
}
