/* Scroll Animations and Micro-interactions Style Suffix: 665c8cdd */

/* Baseline state for scroll reveals */
.e-con.e-parent,
.e-con-inner,
.elementor-widget {
  --anim-translate-y: 30px;
  --anim-duration: 750ms;
  --anim-stagger-delay: 120ms;
}

/* Base fade up and scale triggers */
.ani-fade-up {
  opacity: 0;
  transform: translateY(var(--anim-translate-y));
  transition: opacity var(--anim-duration) cubic-bezier(0.16, 1, 0.3, 1),
              transform var(--anim-duration) cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
}

.ani-fade-up.ani-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger systems */
.ani-stagger > * {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 700ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 700ms cubic-bezier(0.16, 1, 0.3, 1);
}

.ani-stagger.ani-visible > * {
  opacity: 1;
  transform: translateY(0);
}

/* Dynamic CSS-based transition delays */
.ani-stagger.ani-visible > *:nth-child(1) { transition-delay: calc(var(--anim-stagger-delay) * 1); }
.ani-stagger.ani-visible > *:nth-child(2) { transition-delay: calc(var(--anim-stagger-delay) * 2); }
.ani-stagger.ani-visible > *:nth-child(3) { transition-delay: calc(var(--anim-stagger-delay) * 3); }
.ani-stagger.ani-visible > *:nth-child(4) { transition-delay: calc(var(--anim-stagger-delay) * 4); }
.ani-stagger.ani-visible > *:nth-child(5) { transition-delay: calc(var(--anim-stagger-delay) * 5); }

/* Card scale & fade effect */
.ani-scale-up {
  opacity: 0;
  transform: scale(0.96) translateY(20px);
  transition: opacity 800ms cubic-bezier(0.16, 1, 0.3, 1),
              transform 800ms cubic-bezier(0.16, 1, 0.3, 1);
}

.ani-scale-up.ani-visible {
  opacity: 1;
  transform: scale(1) translateY(0);
}

/* Button & Link Gold Hover Micro-interactions */
.elementor-button-wrapper a.elementor-button,
.elementor-widget-button a,
a.ani-gold-hover,
.e-con a {
  position: relative;
  transition: color 250ms ease !important;
}

/* Underline slide-in */
a.ani-gold-hover::after {
  content: '';
  position: absolute;
  width: 100%;
  transform: scaleX(0);
  height: 2px;
  bottom: -2px;
  left: 0;
  background-color: #8E7051; /* Gold accent color */
  transform-origin: bottom right;
  transition: transform 250ms cubic-bezier(0.16, 1, 0.3, 1);
}

a.ani-gold-hover:hover::after {
  transform: scaleX(1);
  transform-origin: bottom left;
}

a.ani-gold-hover:hover {
  color: #8E7051 !important;
}

/* Image zoom inside collection card */
.elementor-widget-image {
  overflow: hidden;
}
.elementor-widget-image img {
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1) !important;
}
.elementor-widget-image:hover img {
  transform: scale(1.05);
}

/* Hotspot pulsing effect */
.ani-hotspot-pulse {
  animation: hotspotPulse_665c8cdd 2s infinite ease-in-out;
}

@keyframes hotspotPulse_665c8cdd {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(142, 112, 81, 0.7);
  }
  70% {
    transform: scale(1.1);
    box-shadow: 0 0 0 10px rgba(142, 112, 81, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(142, 112, 81, 0);
  }
}

/* Accessibility: respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .ani-fade-up,
  .ani-scale-up,
  .ani-stagger > *,
  .ani-hotspot-pulse,
  .elementor-widget-image img {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
}
