[data-animate] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
  transition-delay: var(--delay, 0ms);
}

[data-animate="fade"] {
  transform: none;
}

[data-animate="slide-left"] {
  transform: translateX(28px);
}

[data-animate="slide-right"] {
  transform: translateX(-28px);
}

[data-animate="zoom"] {
  transform: scale(0.96);
}

[data-animate].is-visible {
  opacity: 1;
  transform: translate(0, 0) scale(1);
}

[data-parallax] {
  transform: translateY(var(--parallax-y, 0));
  will-change: transform;
}

.lux-card,
.service-card,
.price-card,
.review-card,
.offer-card,
.team-card,
.gallery-item {
  transition: transform 0.28s var(--ease), box-shadow 0.28s ease, border-color 0.28s ease;
}

.lux-card:hover,
.service-card:hover,
.price-card:hover,
.review-card:hover,
.offer-card:hover,
.team-card:hover,
.gallery-item:hover {
  border-color: rgba(201, 169, 110, 0.42);
  box-shadow: 0 24px 64px rgba(90, 70, 52, 0.16);
  transform: translateY(-5px);
}

.nav-shell {
  transition: background 0.25s ease, box-shadow 0.25s ease;
}

.site-header.is-scrolled .nav-shell {
  background: rgba(248, 244, 239, 0.94);
  box-shadow: 0 14px 36px rgba(42, 42, 42, 0.08);
}

.counter {
  font-variant-numeric: tabular-nums;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }

  [data-animate] {
    opacity: 1;
    transform: none;
  }
}
