.fade-up {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 1s var(--ease), transform 1s var(--ease);
}
.fade-up.in-view {
  opacity: 1;
  transform: translateY(0);
}
.fade-up.delay-1 { transition-delay: .15s; }
.fade-up.delay-2 { transition-delay: .3s; }
.fade-up.delay-3 { transition-delay: .45s; }
.fade-up.delay-4 { transition-delay: .6s; }

.reveal {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger children inside reveal */
.services-grid .service-card,
.approach-grid .approach-card,
.testimonial-grid blockquote,
.values-grid > div,
.why-list li,
.legal-content article {
  transition-delay: 0s;
}
.services-grid .service-card:nth-child(2),
.approach-grid .approach-card:nth-child(2),
.testimonial-grid blockquote:nth-child(2),
.values-grid > div:nth-child(2),
.why-list li:nth-child(2) { transition-delay: .12s; }

.services-grid .service-card:nth-child(3),
.approach-grid .approach-card:nth-child(3),
.testimonial-grid blockquote:nth-child(3),
.values-grid > div:nth-child(3),
.why-list li:nth-child(3) { transition-delay: .24s; }

.services-grid .service-card:nth-child(4) { transition-delay: .36s; }

/* Subtle ambient leaf sway for logo mark */
.logo-mark {
  display: inline-block;
  animation: sway 6s ease-in-out infinite;
  transform-origin: center bottom;
}
@keyframes sway {
  0%, 100% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg); }
}

/* Hero parallax-style subtle zoom */
.hero-bg img {
  animation: heroZoom 18s ease-in-out infinite alternate;
}
@keyframes heroZoom {
  0% { transform: scale(1); }
  100% { transform: scale(1.08); }
}

/* Image hover gentle lift inherits from base */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}