@media (prefers-reduced-motion: no-preference) {
  .reveal {
    opacity: 0;
    transform: translateY(16px) scale(0.98);
    transition:
      opacity var(--duration-enter) var(--ease-out),
      transform var(--duration-enter) var(--ease-out);
    transition-delay: var(--reveal-delay, 0ms);
  }

  .reveal.reveal-instant,
  .reveal.reveal-instant.visible {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .reveal.visible {
    opacity: 1;
    transform: translateY(0) scale(1);
  }

  .hero-entrance {
    opacity: 0;
    transform: translateY(20px);
    animation: heroIn 0.75s var(--ease-out) forwards;
  }

  .hero-entrance.delay-1 { animation-delay: 0.1s; }
  .hero-entrance.delay-2 { animation-delay: 0.2s; }

  @keyframes heroIn {
    to { opacity: 1; transform: translateY(0); }
  }

  .cookie-banner {
    transition: transform 0.35s var(--ease-out);
  }
}

@media (prefers-reduced-motion: reduce) {
  .reveal,
  .reveal.reveal-instant,
  .hero-entrance {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

@media (prefers-reduced-motion: no-preference) {
  @media (hover: hover) and (pointer: fine) {
    .service-card,
    .service-price-item,
    .testimonial,
    .process-step {
      transition:
        transform var(--duration-ui) var(--ease-out),
        border-color var(--duration-ui) var(--ease-out),
        box-shadow var(--duration-ui) var(--ease-out);
    }

    .service-card:hover,
    .service-price-item:hover,
    .testimonial:hover {
      transform: translateY(-3px);
    }

    .service-card-link {
      transition: color var(--duration-fast) var(--ease-out), gap var(--duration-fast) var(--ease-out);
    }
  }
}
