/* =========================================
   VILLA OMBRA STUDIO — ANIMATIONS
   ========================================= */

/* ---- Scroll-triggered Fade-in-up ---- */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* Staggered children */
.stagger-children .reveal:nth-child(1)  { transition-delay: 0s; }
.stagger-children .reveal:nth-child(2)  { transition-delay: 0.15s; }
.stagger-children .reveal:nth-child(3)  { transition-delay: 0.30s; }
.stagger-children .reveal:nth-child(4)  { transition-delay: 0.45s; }
.stagger-children .reveal:nth-child(5)  { transition-delay: 0.60s; }
.stagger-children .reveal:nth-child(6)  { transition-delay: 0.75s; }

/* ---- Gold Divider Animate ---- */
.gold-divider-animate {
  width: 0 !important;
  transition: width 1s ease-in-out !important;
}
.gold-divider-animate.visible {
  width: 80px !important;
}
.gold-divider-animate.full-width.visible {
  width: 100% !important;
}

/* ---- Hero Page Load ---- */
.hero-content {
  opacity: 0;
  animation: heroFadeIn 1s ease-out 0.3s forwards;
}
@keyframes heroFadeIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ---- Process step reveal ---- */
.process-step.reveal {
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}

/* ---- Focus visible outline ---- */
:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

/* ---- Smooth image zoom on hover ---- */
.img-zoom-container { overflow: hidden; }
.img-zoom-container img {
  transition: transform 0.6s ease;
}
.img-zoom-container:hover img {
  transform: scale(1.03);
}

/* ---- Section gold top line animation ---- */
.section-line {
  display: block;
  height: 1px;
  background: var(--color-accent);
  width: 0;
  transition: width 1s ease-in-out;
  margin-bottom: 64px;
}
.section-line.visible { width: 100%; }
