.hero-gallery {
  position: relative;
}

.hero-gallery-grid {
  align-items: center;
}

.hero-gallery-copy {
  max-width: 40rem;
}

.hero-gallery-visual {
  max-width: 520px;
}

.hero-gallery-visual-frame {
  aspect-ratio: 4 / 5;
}

.hero-gallery-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-gallery .hero-floating-chip {
  animation: gallery-chip-pulse 2.8s ease-in-out infinite;
}

.hero-gallery .hero-floating-card {
  animation: gallery-card-float 6s ease-in-out infinite;
}

.section-gallery {
  position: relative;
}

.gallery-intro {
  text-align: left;
}

.gallery-layout {
  display: grid;
  gap: var(--space-xl);
}

.gallery-filter-panel {
  order: -1;
}

.gallery-filter-card {
  padding: var(--space-md);
}

.gallery-filter-chips {
  flex-wrap: wrap;
}

.gallery-filter-chip {
  background: rgba(11, 13, 22, 0.9);
  cursor: pointer;
}

.gallery-filter-chip.is-active {
  border-color: rgba(255, 51, 102, 0.8);
  background: radial-gradient(circle at 0 0, rgba(255, 51, 102, 0.4) 0, transparent 55%);
  color: var(--color-text);
  box-shadow: var(--shadow-glow-primary);
}

.gallery-columns {
  display: grid;
  gap: var(--space-2xl);
}

.gallery-block-header p {
  max-width: 38rem;
}

.gallery-block + .gallery-block {
  border-top: 1px solid var(--color-border-subtle);
  padding-top: var(--space-xl);
}

.gallery-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gallery-cta {
  margin-top: var(--space-xl);
}

.gallery-cta-grid {
  gap: var(--space-xl);
}

.gallery-cta-actions {
  align-self: center;
}

@media (min-width: 768px) {
  .gallery-layout {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr);
    align-items: flex-start;
  }

  .gallery-filter-panel {
    position: sticky;
    top: 5.5rem;
  }

  .gallery-filter-card {
    padding: var(--space-lg);
  }

  .gallery-cta-grid {
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    align-items: center;
  }
}

@media (max-width: 767.98px) {
  .hero-gallery {
    padding-top: var(--space-2xl);
  }

  .hero-gallery-copy {
    text-align: left;
  }
}

@keyframes gallery-chip-pulse {
  0%, 100% {
    transform: translateY(0) scale(1);
    box-shadow: 0 0 40px rgba(255, 51, 102, 0.9);
  }
  50% {
    transform: translateY(-4px) scale(1.04);
    box-shadow: 0 0 60px rgba(255, 51, 102, 1);
  }
}

@keyframes gallery-card-float {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}
