/* Animations de défilement — V7.1
   Plus visibles, mais conservant un rendu institutionnel et fluide. */

.reveal {
  --reveal-x: 0px;
  --reveal-y: 54px;
  --reveal-scale: .965;
  opacity: 0;
  filter: blur(8px);
  transform: translate3d(var(--reveal-x), var(--reveal-y), 0) scale(var(--reveal-scale));
  transition:
    opacity .95s cubic-bezier(.2,.7,.2,1),
    transform 1.05s cubic-bezier(.16,1,.3,1),
    filter .85s ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform, filter;
}

.reveal-left {
  --reveal-x: -64px;
  --reveal-y: 12px;
  --reveal-scale: .98;
}

.reveal-right {
  --reveal-x: 64px;
  --reveal-y: 12px;
  --reveal-scale: .98;
}

.reveal-scale {
  --reveal-x: 0px;
  --reveal-y: 28px;
  --reveal-scale: .90;
}

.reveal.is-visible {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0,0,0) scale(1);
}

/* Accent visuel au passage des cartes et étapes. */
.expertise-card-v2.reveal,
.process-step.reveal,
.approach-v5__engagement-grid article.reveal,
.territory-v5__strengths article.reveal,
.territory-v5__numbers article.reveal {
  transform-origin: center;
}

.process-step.is-visible .process-step__badge {
  animation: badge-emphasis .72s cubic-bezier(.16,1,.3,1) both;
  animation-delay: calc(var(--reveal-delay, 0ms) + 300ms);
}

@keyframes badge-emphasis {
  0% { transform: scale(.72) rotate(-8deg); box-shadow: 0 0 0 rgba(127,146,54,0); }
  68% { transform: scale(1.10) rotate(2deg); box-shadow: 0 0 0 12px rgba(127,146,54,.10); }
  100% { transform: scale(1) rotate(0); box-shadow: 0 8px 22px rgba(40,45,26,.13); }
}

/* Léger mouvement des boutons : perceptible sans être agressif. */
.button {
  transition: transform .28s ease, box-shadow .28s ease, background-color .28s ease, border-color .28s ease;
}
.button:hover,
.button:focus-visible {
  transform: translateY(-3px);
  box-shadow: 0 12px 24px rgba(32,38,21,.18);
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal,
  .reveal-left,
  .reveal-right,
  .reveal-scale {
    opacity: 1;
    filter: none;
    transform: none;
    transition: none;
  }
  .process-step.is-visible .process-step__badge { animation: none; }
  .button { transition: none; }
}
