/* Gallery page — editorial portfolio layout */

.gallery-intro {
  padding: var(--space-lg) 0 var(--space-md);
  text-align: center;
  background: var(--color-ivory);
}

.gallery-intro .lead {
  margin-inline: auto;
}

.gallery-section {
  padding: 0 0 var(--space-xl);
  background: linear-gradient(180deg, var(--color-ivory) 0%, var(--color-cream) 55%, var(--color-ivory) 100%);
}

.gallery-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.25rem;
  margin-bottom: var(--space-md);
}

.gallery-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.gallery-filters button {
  padding: 0.55rem 1.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--color-charcoal-soft);
  border: 1px solid rgba(139, 125, 107, 0.35);
  border-radius: 999px;
  background: var(--color-white);
  transition: all var(--transition-fast);
}

.gallery-filters button:hover,
.gallery-filters button.is-active {
  color: var(--color-ivory);
  background: var(--color-taupe-deep);
  border-color: var(--color-taupe-deep);
  box-shadow: 0 6px 20px rgba(111, 99, 86, 0.2);
}

.gallery-count {
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--color-gold-dark);
}

.page-gallery .gallery-grid {
  gap: 1.15rem;
}

.page-gallery .gallery-item {
  border-radius: 2px;
  box-shadow: 0 8px 32px rgba(139, 125, 107, 0.12);
  transition: opacity 0.45s ease, transform 0.45s ease, box-shadow var(--transition-medium);
}

.page-gallery .gallery-item.is-hidden {
  display: none;
}

.page-gallery .gallery-item:hover {
  box-shadow: 0 16px 48px rgba(139, 125, 107, 0.22);
  z-index: 2;
}

.page-gallery .gallery-item img {
  filter: saturate(0.96) contrast(1.02);
}

.page-gallery .gallery-item__overlay {
  background: linear-gradient(
    180deg,
    transparent 35%,
    rgba(36, 33, 30, 0.55) 100%
  );
  padding: 1.75rem;
}

.page-gallery .gallery-item__overlay span {
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  opacity: 0;
}

.page-gallery .gallery-item__category {
  display: block;
  font-size: 0.55rem;
  letter-spacing: 0.32em;
  color: var(--color-gold-light);
  margin-bottom: 0.35rem;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--transition-medium), transform var(--transition-medium);
}

.page-gallery .gallery-item:hover .gallery-item__category,
.page-gallery .gallery-item:hover .gallery-item__title {
  opacity: 1;
  transform: translateY(0);
}

.page-gallery .gallery-item__title {
  display: block;
  color: var(--color-ivory);
  font-size: 0.65rem;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity var(--transition-medium), transform var(--transition-medium);
}

.page-gallery .gallery-item__zoom {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  transform: translate(-50%, -50%) scale(0.85);
  width: 3.25rem;
  height: 3.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(250, 248, 244, 0.65);
  border-radius: 50%;
  color: var(--color-ivory);
  font-size: 0.55rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  opacity: 0;
  transition: opacity var(--transition-medium), transform var(--transition-medium);
  backdrop-filter: blur(4px);
  background: rgba(36, 33, 30, 0.25);
}

.page-gallery .gallery-item:hover .gallery-item__zoom {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}

.page-gallery .gallery-item--featured {
  grid-column: span 8;
  aspect-ratio: 21/10;
}

.page-gallery .gallery-item--wide {
  grid-column: span 7;
  aspect-ratio: 16/10;
}

.page-gallery .gallery-item--tall {
  grid-column: span 5;
  aspect-ratio: 4/5;
}

.page-gallery .gallery-item--square {
  grid-column: span 4;
  aspect-ratio: 1;
}

/* Enhanced lightbox on gallery page */
.page-gallery .lightbox__inner {
  max-width: min(92vw, 1100px);
  text-align: center;
}

.page-gallery .lightbox img {
  border: 1px solid rgba(201, 173, 122, 0.35);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
}

.page-gallery .lightbox__caption {
  margin-top: 1.25rem;
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 300;
  color: var(--color-ivory);
  letter-spacing: 0.04em;
}

.page-gallery .lightbox__category {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.62rem;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--color-gold-light);
}

@media (max-width: 1024px) {
  .page-gallery .gallery-item--featured,
  .page-gallery .gallery-item--wide {
    grid-column: span 12;
  }

  .page-gallery .gallery-item--tall,
  .page-gallery .gallery-item--square {
    grid-column: span 6;
  }
}

@media (max-width: 768px) {
  .gallery-toolbar {
    flex-direction: column;
    align-items: stretch;
  }

  .gallery-filters {
    justify-content: center;
  }

  .gallery-count {
    text-align: center;
  }

  .page-gallery .gallery-item--featured,
  .page-gallery .gallery-item--wide,
  .page-gallery .gallery-item--tall,
  .page-gallery .gallery-item--square {
    grid-column: span 12;
    aspect-ratio: 4/3;
  }
}
