/* Scroll-triggered reveals — cubic-bezier for a smooth, modern feel */
.sr-fade-up,
.sr-fade-left,
.sr-fade-right,
.sr-zoom {
  opacity: 0;
  will-change: opacity, transform;
  transition:
    opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1),
    transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}

.sr-fade-up {
  transform: translate3d(0, 2rem, 0);
}

.sr-fade-left {
  transform: translate3d(-2rem, 0, 0);
}

.sr-fade-right {
  transform: translate3d(2rem, 0, 0);
}

.sr-zoom {
  transform: translate3d(0, 1.25rem, 0) scale(0.96);
}

.sr-fade-up.sr-in,
.sr-fade-left.sr-in,
.sr-fade-right.sr-in,
.sr-zoom.sr-in {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

/* Staggered children (grids / card rows) */
.sr-stagger > .sr-fade-up:nth-child(1),
.sr-stagger > .sr-fade-left:nth-child(1),
.sr-stagger > .sr-fade-right:nth-child(1),
.sr-stagger > .sr-zoom:nth-child(1) {
  transition-delay: 0ms;
}

.sr-stagger > .sr-fade-up:nth-child(2),
.sr-stagger > .sr-fade-left:nth-child(2),
.sr-stagger > .sr-fade-right:nth-child(2),
.sr-stagger > .sr-zoom:nth-child(2) {
  transition-delay: 70ms;
}

.sr-stagger > .sr-fade-up:nth-child(3),
.sr-stagger > .sr-fade-left:nth-child(3),
.sr-stagger > .sr-fade-right:nth-child(3),
.sr-stagger > .sr-zoom:nth-child(3) {
  transition-delay: 140ms;
}

.sr-stagger > .sr-fade-up:nth-child(4),
.sr-stagger > .sr-fade-left:nth-child(4),
.sr-stagger > .sr-fade-right:nth-child(4),
.sr-stagger > .sr-zoom:nth-child(4) {
  transition-delay: 210ms;
}

.sr-stagger > .sr-fade-up:nth-child(5),
.sr-stagger > .sr-fade-left:nth-child(5),
.sr-stagger > .sr-fade-right:nth-child(5),
.sr-stagger > .sr-zoom:nth-child(5) {
  transition-delay: 280ms;
}

.sr-stagger > .sr-fade-up:nth-child(6),
.sr-stagger > .sr-fade-left:nth-child(6),
.sr-stagger > .sr-fade-right:nth-child(6),
.sr-stagger > .sr-zoom:nth-child(6) {
  transition-delay: 350ms;
}

/* Hero: subtle zoom on load (no scroll required for first paint story) */
.hero-title-in {
  opacity: 0;
  transform: translate3d(0, 1.5rem, 0);
  animation: heroLineIn 0.9s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.hero-title-in.delay-1 {
  animation-delay: 0.12s;
}

.hero-title-in.delay-2 {
  animation-delay: 0.24s;
}

.hero-title-in.delay-3 {
  animation-delay: 0.36s;
}

@keyframes heroLineIn {
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* Hero: solid wash overlay (no gradients) */
.hero-parallax::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-color: rgba(255, 255, 255, 0.04);
}

/* Hero image container moves with the card (no independent parallax shift) */
.hero-parallax-bg {
  transform: none;
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  .sr-fade-up,
  .sr-fade-left,
  .sr-fade-right,
  .sr-zoom {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .hero-title-in {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .hero-parallax-bg {
    transform: none !important;
  }

  .hero-slide {
    transition: none !important;
  }
}
