/* Project gallery: one large selectable image, one ordered thumbnail rail, one full-screen viewer. */
body.vg-gallery-open{overflow:hidden}
.vg-project-gallery{display:block;width:100%;padding:clamp(4rem,7vw,7rem) max(1rem,calc((100% - 1280px)/2));background:#000;color:#fff}
.vg-project-gallery__inner{width:100%;max-width:1280px;margin:0 auto}
.vg-project-gallery__header{display:flex;align-items:baseline;justify-content:space-between;gap:2rem;margin:0 0 1.5rem;padding:0 0 1rem;border-bottom:1px solid #fff}
.vg-project-gallery__header h2{margin:0;color:#fff!important;font-size:clamp(1.75rem,3vw,2.75rem);font-weight:600;line-height:1.1}
.vg-project-gallery__header p{margin:0;color:#fff!important;font-family:"Montserrat","Open Sans",sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.12em;white-space:nowrap}
.vg-project-gallery__stage{position:relative;width:100%;background:#000}
.vg-project-gallery__feature{position:relative;display:block;width:100%;padding:0;overflow:hidden;aspect-ratio:16/10;background:#000;border:1px solid #fff;cursor:zoom-in;touch-action:pan-y}
.vg-project-gallery__feature img{display:block;width:100%;height:100%;object-fit:contain}
.vg-project-gallery__feature:focus-visible{outline:3px solid #fff;outline-offset:4px}
.vg-project-gallery__view-label{position:absolute;bottom:1rem;left:50%;transform:translateX(-50%);padding:.55rem .75rem;background:#000;color:#fff!important;border:1px solid #fff;font-family:"Montserrat","Open Sans",sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.vg-project-gallery__control,.vg-project-lightbox__close,.vg-project-lightbox__control{display:grid;place-items:center;width:3rem;height:3rem;padding:0;background:#fff;color:#000!important;border:1px solid #000;font-size:1.4rem;line-height:1;cursor:pointer}
.vg-project-gallery__control{position:absolute;z-index:2;top:50%;transform:translateY(-50%)}
.vg-project-gallery__control--previous{left:1rem}
.vg-project-gallery__control--next{right:1rem}
.vg-project-gallery__control:hover,.vg-project-gallery__control:focus-visible,.vg-project-lightbox__close:hover,.vg-project-lightbox__close:focus-visible,.vg-project-lightbox__control:hover,.vg-project-lightbox__control:focus-visible{background:#000;color:#fff!important;border-color:#fff;outline:2px solid #fff;outline-offset:2px}
.vg-project-gallery__thumbs{display:flex;gap:.75rem;width:100%;margin-top:.9rem;padding:.2rem .2rem .8rem;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;scrollbar-color:#fff #000;scrollbar-width:thin}
.vg-project-gallery__thumbnail{flex:0 0 clamp(105px,13vw,165px);padding:0;overflow:hidden;aspect-ratio:4/3;background:#000;border:1px solid #fff;opacity:.72;cursor:pointer;scroll-snap-align:start}
.vg-project-gallery__thumbnail img{display:block;width:100%;height:100%;object-fit:cover}
.vg-project-gallery__thumbnail:hover,.vg-project-gallery__thumbnail:focus-visible{opacity:1}
.vg-project-gallery__thumbnail:focus-visible{outline:3px solid #fff;outline-offset:2px}
.vg-project-gallery__thumbnail[aria-current="true"]{border-color:#fff;box-shadow:0 0 0 3px #fff;opacity:1}
dialog.vg-project-lightbox:not([open]){display:none!important}
dialog.vg-project-lightbox[open]{position:fixed!important;inset:0!important;z-index:2147483647!important;display:block!important;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0!important;padding:0;overflow:hidden;background:#000!important;color:#fff;border:0;isolation:isolate}
.vg-project-lightbox::backdrop{background:#000}
.vg-project-lightbox__frame{position:relative;display:grid;place-items:center;width:100%;height:100dvh;min-height:100dvh;padding:4rem 5.5rem 3.5rem;background:#000}
.vg-project-lightbox__frame>img{display:block;width:auto;height:auto;max-width:calc(100vw - 11rem);max-height:calc(100dvh - 8rem);object-fit:contain;touch-action:pan-y}
.vg-project-lightbox__close,.vg-project-lightbox__control{position:absolute;z-index:2}
.vg-project-lightbox__close{top:.75rem;right:.75rem}
.vg-project-lightbox__control{top:50%;transform:translateY(-50%)}
.vg-project-lightbox__control--previous{left:.75rem}
.vg-project-lightbox__control--next{right:.75rem}
.vg-project-lightbox__counter{position:absolute;bottom:1rem;left:50%;margin:0;transform:translateX(-50%);color:#fff!important;font-family:"Montserrat","Open Sans",sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.1em}

@media(max-width:767px){
  .vg-project-gallery{padding:4rem 1rem}
  .vg-project-gallery__header{margin-bottom:1rem}
  .vg-project-gallery__feature{aspect-ratio:4/3}
  .vg-project-gallery__view-label{bottom:.65rem;padding:.45rem .6rem;font-size:.62rem}
  .vg-project-gallery__control{top:auto;bottom:.65rem;transform:none;width:2.75rem;height:2.75rem}
  .vg-project-gallery__control--previous{left:.65rem}
  .vg-project-gallery__control--next{right:calc(.65rem + 3.35rem)}
  .vg-project-gallery__thumbs{gap:.55rem;margin-top:.65rem}
  .vg-project-gallery__thumbnail{flex-basis:105px}
  .vg-project-lightbox__frame{min-height:100dvh;padding:4.25rem .75rem 5rem}
  .vg-project-lightbox__frame>img{max-width:100%;max-height:calc(100dvh - 10rem)}
  .vg-project-lightbox__control{top:auto;bottom:.75rem;transform:none}
  .vg-project-lightbox__control--previous{left:1rem}
  .vg-project-lightbox__control--next{right:1rem}
  .vg-project-lightbox__counter{bottom:1.65rem}
}

@media(prefers-reduced-motion:reduce){
  .vg-project-gallery__thumbs{scroll-behavior:auto}
}

