:root{--gallery-green:#0b302a;--gallery-lime:#c6d936;--gallery-paper:#f5f6f2}.gallery-page{background:var(--gallery-paper);font-family:Inter,sans-serif}.gallery-page main{background:var(--gallery-paper)}.gallery-hero{min-height:690px;margin:0 12px;border-radius:34px;position:relative;overflow:hidden;background:var(--gallery-green);color:#fff;padding:80px max(35px,calc((100% - 1240px)/2));display:flex;align-items:center}.gallery-hero:before{content:"";position:absolute;width:540px;height:540px;border:1px solid #ffffff18;border-radius:50%;left:-260px;bottom:-250px;box-shadow:0 0 0 95px #ffffff08}.gallery-hero__copy{position:relative;z-index:2;width:52%}.gallery-hero__copy>span,.gallery-toolbar>div>span{color:var(--gallery-lime);font-size:10px;font-weight:700;letter-spacing:3px}.gallery-hero h1{font-size:70px;line-height:1.03;letter-spacing:-4px;margin:24px 0 30px}.gallery-hero h1 em{font-style:normal;font-weight:300;color:#d3ddd8}.gallery-hero p{max-width:520px;font-size:15px;line-height:1.8;color:#b9c8c2}.gallery-hero__collage{position:absolute;right:6%;top:50%;transform:translateY(-50%);width:43%;height:520px}.gallery-hero__collage figure{position:absolute;margin:0;border-radius:20px;overflow:hidden;box-shadow:0 28px 70px #0005}.gallery-hero__collage figure:nth-child(1){width:54%;height:66%;left:0;top:15%;transform:rotate(-5deg)}.gallery-hero__collage figure:nth-child(2){width:52%;height:73%;right:0;top:0;transform:rotate(4deg)}.gallery-hero__collage figure:nth-child(3){width:43%;height:48%;right:25%;bottom:0;transform:rotate(-1deg)}.gallery-hero__collage img{width:100%;height:100%;object-fit:cover}.gallery-scroll{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);font-size:9px;letter-spacing:2px}.gallery-scroll i{margin-left:12px}
.gallery-toolbar{width:min(1240px,calc(100% - 48px));margin:auto;padding:120px 0 60px;display:flex;align-items:end;justify-content:space-between}.gallery-toolbar h2{font-size:48px;letter-spacing:-2px;margin:18px 0 0}.gallery-filters{display:flex;padding:5px;border:1px solid #d9ded9;border-radius:30px;background:#fff}.gallery-filters button{border:0;background:transparent;padding:11px 18px;border-radius:23px;font:600 10px Inter,sans-serif;cursor:pointer}.gallery-filters button.active{background:var(--gallery-green);color:#fff}
.gallery-grid{width:min(1420px,calc(100% - 32px));margin:0 auto 140px;display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;grid-auto-flow:dense;gap:16px}.gallery-item{border:0;padding:0;border-radius:17px;overflow:hidden;position:relative;background:#ddd;cursor:pointer;text-align:left;color:#fff}.gallery-item.wide{grid-column:span 2}.gallery-item.tall{grid-row:span 2}.gallery-item>img{width:100%;height:100%;object-fit:cover;transition:.7s}.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,#071d19c9 0,transparent 50%);opacity:.65;transition:.35s}.gallery-item:hover>img{transform:scale(1.055)}.gallery-item:hover:after{opacity:1}.gallery-item>span{position:absolute;z-index:2;left:22px;bottom:19px}.gallery-item small{display:block;color:var(--gallery-lime);font-size:8px;font-weight:700;letter-spacing:1.5px;margin-bottom:5px}.gallery-item b{font-size:14px}.gallery-item>i{position:absolute;z-index:2;right:18px;top:18px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#ffffffdc;color:var(--gallery-green);font-size:12px;opacity:0;transform:translateY(-6px);transition:.3s}.gallery-item:hover>i{opacity:1;transform:none}.gallery-item.is-hidden{display:none}
.gallery-lightbox{position:fixed;z-index:100000;inset:0;background:#07110ff5;color:#fff;display:grid;place-items:center}.gallery-lightbox[hidden]{display:none}.lightbox-stage{width:min(1200px,calc(100% - 170px));height:min(80vh,820px);display:grid;place-items:center}.lightbox-stage img,.lightbox-stage video{max-width:100%;max-height:100%;object-fit:contain;border-radius:10px}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;border:1px solid #ffffff38;background:#ffffff12;color:#fff;border-radius:50%;width:50px;height:50px;cursor:pointer}.lightbox-close{right:25px;top:25px}.lightbox-prev{left:28px;top:50%}.lightbox-next{right:28px;top:50%}.lightbox-count{position:absolute;bottom:25px;font-size:10px;letter-spacing:2px;color:#aebbb6}
@media(max-width:900px){.gallery-hero__copy{width:60%}.gallery-hero h1{font-size:52px}.gallery-hero__collage{right:-4%;width:50%;opacity:.7}.gallery-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.gallery-hero{margin:0;border-radius:0 0 24px 24px;min-height:570px;padding:55px 22px}.gallery-hero__copy{width:100%}.gallery-hero h1{font-size:43px;letter-spacing:-2px}.gallery-hero__collage{inset:auto -80px 20px auto;width:280px;height:240px;opacity:.3}.gallery-toolbar{padding:80px 0 40px;display:block}.gallery-toolbar h2{font-size:36px}.gallery-filters{width:max-content;margin-top:30px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:280px}.gallery-item.wide{grid-column:auto}.gallery-item.tall{grid-row:span 1}.lightbox-stage{width:calc(100% - 28px);height:75vh}.lightbox-prev,.lightbox-next{top:auto;bottom:25px}.lightbox-prev{left:22px}.lightbox-next{right:22px}}

/* 2026 gallery refresh — controlled editorial mosaic on every viewport. */
.gallery-page .gallery-toolbar{
  width:min(1180px,calc(100% - 48px));
  padding:88px 0 38px;
  gap:36px;
}
.gallery-page .gallery-toolbar h2{
  margin-top:14px;
  font-size:42px;
  line-height:1.08;
}
.gallery-page .gallery-controls{
  min-width:350px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
}
.gallery-page .gallery-filters{
  margin:0;
  padding:4px;
  border-radius:14px;
  box-shadow:0 10px 28px rgba(10,48,41,.06);
}
.gallery-page .gallery-filters button{
  min-height:42px;
  padding:0 17px;
  border-radius:10px;
  font-size:14px;
}
.gallery-page .gallery-results{
  margin:0 5px 0 0;
  color:#78847e;
  font-size:13px;
}
.gallery-page .gallery-grid{
  width:min(1180px,calc(100% - 48px));
  margin:0 auto 110px;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  grid-auto-rows:220px;
  grid-auto-flow:dense;
  gap:16px;
}
.gallery-page .gallery-item{
  min-width:0;
  border:1px solid rgba(10,48,41,.09);
  border-radius:18px;
  box-shadow:0 12px 30px rgba(10,48,41,.09);
  isolation:isolate;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.gallery-page .gallery-item:hover{
  transform:translateY(-4px);
  border-color:rgba(10,48,41,.2);
  box-shadow:0 20px 42px rgba(10,48,41,.16);
}
.gallery-page .gallery-item.wide{grid-column:span 2}
.gallery-page .gallery-item.tall{grid-row:span 2}
.gallery-page .gallery-item:after{
  background:linear-gradient(to top,rgba(5,25,21,.94) 0,rgba(5,25,21,.45) 35%,transparent 70%);
  opacity:.78;
}
.gallery-page .gallery-item>span{
  left:18px;
  right:58px;
  bottom:17px;
}
.gallery-page .gallery-item small{
  margin-bottom:6px;
  font-size:11px;
  line-height:1.2;
  letter-spacing:1.2px;
}
.gallery-page .gallery-item b{
  display:block;
  font-size:16px;
  line-height:1.25;
}
.gallery-page .gallery-item>i{
  top:16px;
  right:16px;
  width:40px;
  height:40px;
  border:1px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.88);
  font-size:13px;
  opacity:1;
  transform:none;
  backdrop-filter:blur(8px);
}
.gallery-page .gallery-item[data-type="video"]>i{
  background:var(--gallery-lime);
  border-color:var(--gallery-lime);
}
.gallery-page .gallery-lightbox{padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))}
.gallery-page .lightbox-stage{
  width:min(1160px,calc(100% - 170px));
  height:min(calc(100dvh - 120px),760px);
  min-width:0;
  min-height:0;
}
.gallery-page .lightbox-stage img,
.gallery-page .lightbox-stage video{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:min(calc(100dvh - 120px),760px);
  border-radius:14px;
  box-shadow:0 28px 80px rgba(0,0,0,.34);
}

@media(max-width:900px){
  .gallery-page .gallery-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:205px;
  }
  .gallery-page .gallery-item.wide{grid-column:span 2}
}

@media(max-width:600px){
  .gallery-page .gallery-hero{
    height:480px;
    min-height:480px;
    padding:42px 20px 48px;
  }
  .gallery-page .gallery-hero__copy{width:100%}
  .gallery-page .gallery-hero h1{
    margin:18px 0 21px;
    font-size:37px;
    line-height:1.04;
    letter-spacing:-1.8px;
  }
  .gallery-page .gallery-hero p{font-size:14px;line-height:1.62}
  .gallery-page .gallery-scroll{display:none}
  .gallery-page .gallery-toolbar{
    width:calc(100% - 30px);
    padding:60px 0 28px;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:24px;
  }
  .gallery-page .gallery-toolbar h2{
    margin-top:12px;
    font-size:31px;
    letter-spacing:-1.2px;
  }
  .gallery-page .gallery-controls{
    width:100%;
    min-width:0;
    align-items:stretch;
    gap:9px;
  }
  .gallery-page .gallery-filters{
    width:100%;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:3px;
    overflow:visible;
  }
  .gallery-page .gallery-filters button{
    min-width:0;
    padding:0 7px;
    font-size:12px;
  }
  .gallery-page .gallery-results{
    margin:0;
    text-align:right;
    font-size:12px;
  }
  .gallery-page .gallery-grid{
    width:calc(100% - 30px);
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:155px;
    gap:10px;
    margin-bottom:72px;
  }
  .gallery-page .gallery-item{
    border-radius:14px;
    box-shadow:0 8px 22px rgba(10,48,41,.1);
  }
  .gallery-page .gallery-item.wide{grid-column:span 2}
  .gallery-page .gallery-item.tall{grid-row:span 2}
  .gallery-page .gallery-item>span{
    left:12px;
    right:42px;
    bottom:11px;
  }
  .gallery-page .gallery-item small{font-size:9px;letter-spacing:.8px}
  .gallery-page .gallery-item b{font-size:13px;line-height:1.18}
  .gallery-page .gallery-item>i{
    top:10px;
    right:10px;
    width:34px;
    height:34px;
    font-size:11px;
  }
  .gallery-page .lightbox-stage{
    width:calc(100% - 16px);
    height:calc(100dvh - 155px);
  }
  .gallery-page .lightbox-stage img,
  .gallery-page .lightbox-stage video{
    max-height:calc(100dvh - 155px);
  }
  .gallery-page .lightbox-close{
    top:max(14px,env(safe-area-inset-top));
    right:14px;
    width:44px;
    height:44px;
  }
  .gallery-page .lightbox-prev,
  .gallery-page .lightbox-next{
    top:auto;
    bottom:max(18px,env(safe-area-inset-bottom));
    width:46px;
    height:46px;
  }
  .gallery-page .lightbox-prev{left:18px}
  .gallery-page .lightbox-next{right:18px}
  .gallery-page .lightbox-count{bottom:max(33px,calc(env(safe-area-inset-bottom) + 15px));font-size:12px}
}

@media(max-width:380px){
  .gallery-page .gallery-grid{grid-auto-rows:140px}
  .gallery-page .gallery-item b{font-size:12px}
}

@media(hover:none){
  .gallery-page .gallery-item:hover{transform:none}
}
