/* ==============================
   css/gallery.css
   ============================== */
.gallery-section { background: var(--color-bg-primary); }
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.gallery-item {
  border-radius: var(--radius-lg);
  overflow: hidden;
  position: relative;
  aspect-ratio: 4/3;
  cursor: pointer;
  background: var(--color-bg-card);
  border: 1px solid var(--color-border-card);
}
.gallery-item.large { grid-row: span 2; aspect-ratio: auto; }
.gallery-item img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.gallery-item:hover img { transform: scale(1.07); }
.gallery-overlay {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(0,0,0,0.75));
  padding: 30px 16px 14px;
  transform: translateY(100%);
  transition: var(--transition);
}
.gallery-item:hover .gallery-overlay { transform: translateY(0); }
.gallery-overlay span {
  font-size: 13px;
  font-weight: 600;
  color: #fff;
}

@media (max-width: 768px) {
  .gallery-grid { grid-template-columns: 1fr 1fr; }
  .gallery-item.large { grid-row: span 1; }
}