/* Fixed-size frames preserve the entire photo or classroom screenshot. */
.gallery-carousel{--card-width:min(70vw,680px);position:relative}
.gallery-carousel .gallery{position:relative;display:flex;gap:32px;overflow-x:auto;overflow-y:hidden;padding:34px max(20px,calc((100% - var(--card-width))/2)) 24px;scroll-snap-type:none;scrollbar-width:none;perspective:1200px;overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.gallery-carousel .gallery::-webkit-scrollbar{display:none}
.gallery-carousel .gallery figure{flex:0 0 var(--card-width);width:var(--card-width);margin:0;padding:0;scroll-snap-align:center;transform-origin:center;transform:rotateY(var(--turn,0deg)) rotateZ(var(--lean,0deg)) translateY(var(--drop,0px)) scale(var(--scale,1));backface-visibility:hidden}
.gallery-open{display:block;aspect-ratio:16/10;padding:0;background:#e5eff0;border:1px solid #d4e4e5;border-radius:16px;overflow:hidden;box-shadow:0 16px 32px #08263215;cursor:zoom-in}
.gallery-carousel .gallery img{display:block;width:100%;height:100%;object-fit:contain}
.gallery-carousel .gallery figcaption{text-align:center;font-size:12px;line-height:1.5;margin:15px 8px 0;min-height:36px;color:#38565d}
.gallery-controls{display:none;align-items:center;justify-content:center;gap:10px;margin-top:10px}
.gallery-carousel.is-enhanced .gallery-controls{display:flex}
.gallery-controls button,.gallery-lightbox button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;min-width:44px;border:1px solid #abcac7;background:#fff;color:#184d53;border-radius:30px;padding:9px 13px;font:600 12px/1.4 Inter,Arial,sans-serif;cursor:pointer}
.gallery-controls button:hover,.gallery-lightbox button:hover{background:#e4f3ee}
.gallery-controls button:disabled,.gallery-lightbox button:disabled{opacity:.4;cursor:default}
.gallery-count{font-size:12px;font-variant-numeric:tabular-nums;min-width:38px;text-align:center;color:#47646a}
.gallery-hint{font-size:11px;text-align:center;margin:14px 0 0;color:#587178}
.gallery-lightbox{width:min(1440px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);padding:14px 18px 16px;border:1px solid #d8e5e7;border-radius:18px;background:#f4f9fa;color:#082632;overflow:auto}
.gallery-lightbox::backdrop{background:#03151ce8}
.lightbox-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.lightbox-toolbar p{margin:0;font-size:12px;color:#47646a}
.lightbox-image{display:block;width:100%;height:min(74dvh,850px);object-fit:contain;background:#e5eff0;border-radius:8px}
.lightbox-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:13px}
.lightbox-footer p{font-size:13px;margin:0;color:#234d56;text-align:center}
.lightbox-footer button{flex-shrink:0}
body.gallery-modal-open{overflow:hidden}
@media(max-width:800px){.gallery-carousel{--card-width:min(76vw,580px)}.gallery-carousel .gallery{gap:16px;padding-block:24px 16px}.gallery-controls{gap:8px}.gallery-lightbox{padding:11px;width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:13px}.lightbox-image{height:66dvh}.lightbox-footer p{font-size:11px}.lightbox-footer button{padding:9px}.gallery-controls button{font-size:11px}.gallery-carousel .gallery figcaption{font-size:11px}}
@media(prefers-reduced-motion:reduce){.gallery-carousel .gallery figure{transform:none!important}.gallery-carousel .gallery{scroll-behavior:auto;perspective:none}}

.gallery-clone .gallery-open{cursor:zoom-in}
@media(prefers-reduced-motion:reduce){.gallery-clone{display:none!important}.gallery-carousel .gallery{scroll-snap-type:x mandatory}}
