#gallery .gallery-intro{padding:70px 5vw 30px;max-width:1150px}
#gallery .gallery-intro .label{color:#003e78;letter-spacing:2px;text-transform:uppercase;font-size:16px}
#gallery .gallery-intro :is(h2,h1.seo-page-heading){font:300 clamp(32px,4vw,57px)/1.2 Poppins,sans-serif;margin:18px 0}
#gallery .gallery-intro p{font-size:20px;line-height:1.6;max-width:700px}
#gallery .photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:10px 5vw 70px}
#gallery .photo-grid button{border:0;background:none;padding:0;text-align:left;cursor:pointer;overflow:hidden;position:relative}
#gallery .photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transform:scale(1.04);transition:transform .7s}
#gallery .photo-grid button:hover img{transform:scale(1)}
#gallery .photo-grid span{display:block;padding:12px 0;font-size:18px}
#gallery .photo-grid button:focus-visible{outline:3px solid #003e78;outline-offset:4px}
.viewer[hidden]{display:none}
.viewer{position:fixed;inset:0;z-index:100;background:#050a13f5;display:flex;align-items:center;justify-content:center;color:#fff}
.viewer figure{margin:65px 70px 70px;display:flex;flex-direction:column;align-items:center;max-width:calc(100vw - 140px)}
.viewer img{display:block;max-height:calc(100dvh - 170px);max-width:100%;object-fit:contain}
.viewer figcaption{margin-top:16px;font-size:19px;text-align:center}
.viewer button{position:absolute;background:#ffffff12;border:1px solid #ffffff50;color:#fff;width:48px;height:48px;cursor:pointer;font-size:27px}
.viewer button:focus-visible{outline:3px solid #003e78}
.viewer .close{top:16px;right:20px}
.viewer .previous{left:12px;top:calc(50% - 24px)}
.viewer .next{right:12px;top:calc(50% - 24px)}
.viewer .count{position:absolute;top:28px;left:24px;font:400 14px Mulish,sans-serif}
.viewer .zoom{top:16px;right:80px;font:400 13px Mulish,sans-serif;width:75px}
.viewer .fullscreen{top:16px;right:165px;font:400 13px Mulish,sans-serif;width:95px}
.viewer.zoomed figure{overflow:auto;max-height:calc(100dvh - 140px)}
.viewer.zoomed img{max-height:none;max-width:none;width:140vw}
.viewer.zoomed figcaption{display:none}
@media (max-width:700px){#gallery .gallery-intro{padding-top:42px}
#gallery .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
#gallery .photo-grid img{aspect-ratio:1}
#gallery .photo-grid span{font-size:16px;line-height:1.3}
.viewer figure{margin:90px 50px 70px;max-width:calc(100vw - 100px)}
.viewer button{width:40px;height:48px}
.viewer .previous{left:5px}
.viewer .next{right:5px}
.viewer .zoom{right:68px;width:66px}
.viewer .fullscreen{right:144px;width:84px}
.viewer .count{top:76px;left:20px}
.viewer .close{right:18px}}
@media (prefers-reduced-motion:reduce){}
.viewer{background:#080d14}
#gallery .photo-grid button span{transition:color .25s}
#gallery .photo-grid button:hover span{color:#003e78}
#gallery .films-preview{padding:60px 5vw 80px;background:#003e78;color:#fff}
#gallery .films-preview .label{font-size:16px;letter-spacing:2px;text-transform:uppercase}
#gallery .films-preview :is(h2,h1.seo-page-heading){font:300 clamp(30px,3.5vw,50px)/1.2 Poppins,sans-serif;margin:18px 0}
#gallery .films-preview p{font-size:20px;line-height:1.6}
#gallery .films-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}
#gallery .films-grid figure{margin:0}
#gallery .films-grid video{display:block;width:100%;aspect-ratio:16/9;background:#080d14}
#gallery .films-grid figcaption{font-size:17px;margin-top:12px}
#gallery .photo-grid img{aspect-ratio:3/2}
#gallery .photo-grid{gap:28px 20px}
@media (max-width:700px){#gallery .films-grid{grid-template-columns:1fr}
#gallery .photo-grid{gap:20px 12px}
#gallery .photo-grid img{aspect-ratio:4/3}
#gallery .films-preview{padding:45px 5vw 55px}}
body.color-west #gallery{padding:0;background:#fff;color:#333}#gallery .gallery-intro{padding-top:70px}#gallery .gallery-intro :is(h2,h1.seo-page-heading){color:#333}#gallery .photo-grid button{color:#333;font-family:Economica,sans-serif}#gallery .films-preview{color:#fff}#viewer{z-index:2000}#viewer button{font-family:Mulish,sans-serif}#gallery .photo-grid img{border-radius:0}@media(max-width:700px){#gallery .gallery-intro{padding-top:42px}}
/* Intrinsic size attributes reserve space without stretching gallery thumbnails. */
#gallery .photo-grid img,.project-story img,.reel img{height:auto}
