.gallery-wrap{
  margin-top:14px;
}

.month-group{
  margin-top:16px;
}

.month-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}

.month-title{
  font-size:1.05rem;
}

.month-count{
  font-size:.9rem;
}

.photo-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
  margin-top:12px;
}

.gallery-pager{
  display:flex;
  justify-content:space-between;
  margin-top:16px;
}

/* Lightbox */
.lb.hidden{
  display:none !important;
}

body.lb-open{
  overflow:hidden;
}

.lb{
  position:fixed;
  inset:0;
  z-index:9999;
}

.lb-backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.75);
}

.lb-panel{
  position:relative;
  width:min(1100px, 94vw);
  height:min(86vh, 900px);
  margin:6vh auto 0;
  background:rgba(10,12,18,.92);
  border:1px solid rgba(56,189,248,.28);
  border-radius:18px;
  box-shadow:0 20px 70px rgba(0,0,0,.55);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:16px;
}

.lb-figure{
  margin:0;
  width:100%;
  height:100%;
  display:flex;
  flex-direction:column;
}

.lb-img{
  width:100%;
  height:100%;
  object-fit:contain;
  border-radius:14px;
  background:rgba(0,0,0,.25);
}

.lb-cap{
  margin-top:10px;
  display:flex;
  flex-direction:column;
  gap:4px;
}

.lb-title{
  font-weight:700;
}

.lb-meta{
  font-size:.9rem;
}

.lb-close{
  position:absolute;
  top:10px;
  right:12px;
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid rgba(56,189,248,.35);
  background:rgba(56,189,248,.10);
  color:var(--ink);
  font-size:22px;
  line-height:1;
}

.lb-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:44px;
  height:44px;
  border-radius:999px;
  border:1px solid rgba(56,189,248,.35);
  background:rgba(56,189,248,.10);
  color:var(--ink);
  font-size:28px;
  line-height:1;
}

.lb-prev{
  left:10px;
}

.lb-next{
  right:10px;
}

@media (max-width:980px){
  .photo-grid{
    grid-template-columns:repeat(3, 1fr);
  }
}

@media (max-width:740px){
  .photo-grid{
    grid-template-columns:repeat(2, 1fr);
  }

  .lb-panel{
    height:88vh;
    margin-top:4vh;
    padding:12px;
  }
}

@media (max-width:460px){
  .photo-grid{
    grid-template-columns:1fr;
  }
}
.gallery-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}

.gallery-filters{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.gallery-search{
  max-width:360px;
  flex:1 1 240px;
}

.gallery-sort{
  max-width:180px;
  flex:0 0 180px;
}

.photo-tile{
  padding:10px;
  text-decoration:none;
  text-align:left;
  width:100%;
}

.photo-thumb{
  width:100%;
  height:170px;
  object-fit:cover;
  border-radius:12px;
  display:block;
}

.photo-title{
  font-weight:600;
  line-height:1.25;
}

.photo-meta{
  font-size:.8rem;
}