.gallery-section{ padding: 90px 0 100px; background: var(--ivory); }
.gallery-head{ text-align:center; max-width:620px; margin: 0 auto 56px; }
.gallery-head h2{ font-size: clamp(28px,3.6vw,40px); margin-top:14px; }
.gallery-head p{ color: var(--ink-soft); margin-top:14px; font-size:15.5px; }

.gallery-masonry{
  columns: 3 220px; column-gap: 18px;
}
.gallery-item{
  break-inside: avoid; margin-bottom: 18px; border-radius: var(--radius-md);
  overflow:hidden; box-shadow: var(--shadow-card); position:relative; cursor:zoom-in;
}
.gallery-item img{ width:100%; height: 260px; object-fit: cover; object-position: center; display:block; transition: transform .5s ease; }
.gallery-item:hover img{ transform: scale(1.06); }
.gallery-item::after{
  content:"";
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(22,33,62,0.35), transparent 55%);
  opacity:0; transition: opacity .3s ease;
}
.gallery-item:hover::after{ opacity:1; }

@media (max-width: 700px){ .gallery-masonry{ columns: 2 160px; } }

.lightbox{
  position: fixed; inset:0; background: rgba(15,20,36,0.92);
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transition: opacity .3s ease;
  z-index: 999; padding: 40px; cursor: zoom-out;
}
.lightbox.is-open{ opacity:1; visibility:visible; }
.lightbox img{ max-width: min(88vw, 900px); max-height:86vh; border-radius:12px; box-shadow: 0 30px 70px rgba(0,0,0,0.5); }
