/* Section entrance animations — initial hidden state */

@media (prefers-reduced-motion: reduce) {
  .reveal-up,
  .reveal-left,
  .reveal-right,
  .reveal-scale,
  .reveal-stagger > *,
  .wwd-fade,
  .wwd-stagger-item,
  .about-reveal,
  .about-fade,
  .about-value,
  .hero-animate,
  .svc-catalog__layout > *,
  .svc-catalog__cta > * {
    opacity: 1 !important;
    transform: none !important;
  }
}

.reveal-up,
.wwd-fade,
.about-fade {
  opacity: 0;
  transform: translateY(36px);
}

.reveal-left,
.about-reveal {
  opacity: 0;
  transform: translateX(-36px);
}

.reveal-right {
  opacity: 0;
  transform: translateX(36px);
}

.reveal-scale {
  opacity: 0;
  transform: translateY(28px) scale(0.95);
}

.svc-catalog__layout > *,
.svc-catalog__cta > * {
  opacity: 0;
  transform: translateY(28px);
}

.reveal-stagger > *,
.wwd-stagger-item,
.about-section .about-value {
  opacity: 0;
  transform: translateY(28px);
}

.reveal-stagger > *.is-revealed {
  opacity: 1 !important;
  transform: none !important;
}

@media (max-width: 767px) {
  .wwd-fade,
  .wwd-stagger-item {
    max-width: 100%;
  }
}

.hero-animate {
  opacity: 0;
  transform: translateY(32px);
}

.hero-animate--left {
  transform: translateX(-36px);
}

.hero-animate--scale {
  transform: translateY(36px) scale(0.9);
}

/* Keep visible after GSAP reveal — clearing inline opacity must not re-hide */
.is-revealed,
.is-revealed.reveal-up,
.is-revealed.reveal-left,
.is-revealed.reveal-right,
.is-revealed.reveal-scale,
.is-revealed.wwd-fade,
.is-revealed.wwd-stagger-item,
.is-revealed.about-fade,
.is-revealed.about-reveal,
.is-revealed.about-value,
.is-revealed.hero-animate {
  opacity: 1 !important;
  transform: none !important;
}
