/* =========================================================
   LocaVisio – Motion
   Keep transitions subtle; respect prefers-reduced-motion.
   ========================================================= */

/* --- Reveal-on-scroll baseline (toggled to .is-revealed by JS) --- */
[data-reveal] {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition:
    opacity 1s var(--ease, cubic-bezier(.2,.7,.2,1)),
    transform 1s var(--ease, cubic-bezier(.2,.7,.2,1));
  will-change: opacity, transform;
}
[data-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* Stagger children inside a section that itself reveals */
.section [data-reveal]:nth-child(2)  { transition-delay: .06s; }
.section [data-reveal]:nth-child(3)  { transition-delay: .12s; }
.section [data-reveal]:nth-child(4)  { transition-delay: .18s; }
.section [data-reveal]:nth-child(5)  { transition-delay: .24s; }

.hero [data-reveal]:nth-child(1) { transition-delay: .10s; }
.hero [data-reveal]:nth-child(2) { transition-delay: .20s; }
.hero [data-reveal]:nth-child(3) { transition-delay: .32s; }
.hero [data-reveal]:nth-child(4) { transition-delay: .44s; }
.hero [data-reveal]:nth-child(5) { transition-delay: .56s; }

/* --- Hero text settles in from below on load --- */
@keyframes heroSettle {
  from { opacity: 0; transform: translate3d(0, 40px, 0); }
  to   { opacity: 1; transform: translate3d(0, 0, 0); }
}

/* --- Scroll-indicator dot --- */
@keyframes scrollDot {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 0; }
  40%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
  60%  { transform: scaleY(1); transform-origin: bottom; opacity: 1; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

/* --- Service-card hover lift (already in main, but a soft float baseline) --- */
@keyframes float {
  0%, 100% { transform: translate3d(0, 0, 0); }
  50%      { transform: translate3d(0, -4px, 0); }
}

/* --- Reduced motion: kill reveal offsets, just fade in instantly --- */
@media (prefers-reduced-motion: reduce) {
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .scroll-indicator { display: none; }
}
