.gallery-hero{
  background:linear-gradient(135deg,#f4f7fd 0%,#fff 100%);
  padding:62px 0 48px;
}
.gallery-kicker{
  margin:0 0 8px;
  color:#d6bb00;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.gallery-hero h1{
  margin:0;
  color:#082f6b;
  font-size:clamp(2rem,4vw,3.5rem);
  line-height:1.08;
}
.gallery-intro{
  max-width:780px;
  margin:16px 0 0;
  font-size:1.08rem;
  color:#44516a;
}
.gallery-public-section{
  padding:48px 0 64px;
  background:#f5f7fb;
}
.gallery-album-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
}
.gallery-album-card{
  overflow:hidden;
  background:#fff;
  border-radius:16px;
  box-shadow:0 10px 28px rgba(8,47,107,.10);
  transition:transform .2s ease,box-shadow .2s ease;
}
.gallery-album-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 34px rgba(8,47,107,.15);
}
.gallery-album-image{
  position:relative;
  display:block;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#e9eef7;
}
.gallery-album-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .3s ease;
}
.gallery-album-card:hover .gallery-album-image img{
  transform:scale(1.035);
}
.gallery-no-cover{
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:#082f6b;
}
.gallery-no-cover span{font-size:2.6rem}
.gallery-photo-count{
  position:absolute;
  right:12px;
  bottom:12px;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(8,47,107,.88);
  color:#fff;
  font-size:.82rem;
  font-weight:800;
}
.gallery-album-copy{
  padding:20px;
}
.gallery-album-category{
  margin:0 0 5px;
  color:#2f5fd0;
  font-size:.82rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.gallery-album-copy h2{
  margin:0;
  color:#082f6b;
  font-size:1.35rem;
  line-height:1.2;
}
.gallery-album-copy h2 a{color:inherit}
.gallery-album-date{
  margin:9px 0 0;
  color:#637087;
  font-weight:700;
}
.gallery-album-description{
  margin:10px 0 0;
  color:#4c5870;
}
.gallery-open-album{
  margin-top:18px;
}
.gallery-public-empty{
  padding:40px 24px;
  text-align:center;
  background:#fff;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(8,47,107,.08);
}
.gallery-home-back,
.gallery-album-toolbar{
  margin-top:30px;
}
.gallery-home-btn{
  background:#ffd400 !important;
  color:#082f6b !important;
  border:2px solid #ffd400 !important;
  font-weight:900 !important;
}
.gallery-home-btn:hover,
.gallery-home-btn:focus{
  background:#fff !important;
  color:#082f6b !important;
  border-color:#ffd400 !important;
}
.gallery-album-meta{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:16px;
}
.gallery-album-meta span{
  padding:7px 11px;
  border-radius:999px;
  background:#fff;
  color:#082f6b;
  font-weight:800;
  box-shadow:0 3px 10px rgba(8,47,107,.08);
}
.gallery-photo-public-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
}
.gallery-photo-public-card{
  appearance:none;
  border:0;
  padding:0;
  overflow:hidden;
  cursor:pointer;
  border-radius:12px;
  background:#e9eef7;
  box-shadow:0 6px 18px rgba(8,47,107,.10);
  aspect-ratio:4/3;
}
.gallery-photo-public-card img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .25s ease,filter .25s ease;
}
.gallery-photo-public-card:hover img,
.gallery-photo-public-card:focus img{
  transform:scale(1.04);
}
.gallery-photo-public-card:focus{
  outline:3px solid #ffd400;
  outline-offset:3px;
}
.gallery-lightbox[hidden]{display:none}
.gallery-lightbox{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px 70px;
  background:rgba(0,15,42,.94);
}
.gallery-lightbox figure{
  max-width:min(1200px,92vw);
  max-height:90vh;
  margin:0;
  text-align:center;
}
.gallery-lightbox figure img{
  display:block;
  max-width:100%;
  max-height:82vh;
  margin:auto;
  object-fit:contain;
  border-radius:8px;
}
.gallery-lightbox figcaption{
  margin-top:10px;
  color:#fff;
  font-weight:700;
}
.gallery-lightbox-close,
.gallery-lightbox-prev,
.gallery-lightbox-next{
  position:absolute;
  border:0;
  cursor:pointer;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-weight:700;
}
.gallery-lightbox-close{
  top:18px;
  right:22px;
  width:48px;
  height:48px;
  border-radius:50%;
  font-size:2rem;
}
.gallery-lightbox-prev,
.gallery-lightbox-next{
  top:50%;
  transform:translateY(-50%);
  width:52px;
  height:70px;
  border-radius:10px;
  font-size:2.5rem;
}
.gallery-lightbox-prev{left:14px}
.gallery-lightbox-next{right:14px}
.gallery-lightbox button:hover,
.gallery-lightbox button:focus{
  background:#ffd400;
  color:#082f6b;
  outline:none;
}
.gallery-lightbox-open{
  overflow:hidden;
}

@media(max-width:950px){
  .gallery-album-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .gallery-photo-public-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  .gallery-hero{padding:42px 0 34px}
  .gallery-public-section{padding:32px 0 48px}
  .gallery-album-grid{grid-template-columns:1fr}
  .gallery-photo-public-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .gallery-lightbox{padding:60px 10px 24px}
  .gallery-lightbox-prev,
  .gallery-lightbox-next{
    top:auto;
    bottom:18px;
    transform:none;
    width:48px;
    height:48px;
    border-radius:50%;
  }
  .gallery-lightbox-prev{left:calc(50% - 62px)}
  .gallery-lightbox-next{right:calc(50% - 62px)}
  .gallery-lightbox figure img{max-height:72vh}
}
