/* Animations éditoriales : visibles seulement lorsque l’utilisateur les autorise. */
@media (prefers-reduced-motion: no-preference) {
  .hero-image,
  .sanctuary-image {
    transform: translateY(var(--scene-shift, 0));
    inset: -24px 0;
    will-change: transform;
    transition: transform .15s linear;
  }

  .section-intro,
  .pricing-inner,
  .callout-inner {
    transition-delay: .05s;
  }

  .section-in-view .value:nth-child(1),
  .section-in-view .service:nth-child(1) { transition-delay: .10s; }
  .section-in-view .value:nth-child(2),
  .section-in-view .service:nth-child(2) { transition-delay: .20s; }
  .section-in-view .value:nth-child(3),
  .section-in-view .service:nth-child(3) { transition-delay: .30s; }

  .service {
    overflow: hidden;
  }
  .service img {
    transform: scale(1.08);
    transition: transform 1s cubic-bezier(.2,.7,.2,1), filter .7s ease;
  }
  .service.is-visible img {
    transform: scale(1);
  }
  .service:hover img {
    transform: scale(1.04);
    filter: saturate(.95);
  }

  .portrait-placeholder {
    opacity: .98;
    transform: translateY(0);
    transition: opacity .7s ease, transform .7s cubic-bezier(.16,1,.3,1);
  }
  .portrait-placeholder.is-visible {
    opacity: 1;
    transform: translateY(0);
  }

  .callout::before {
    content: '';
    position: absolute;
    width: 50vw;
    height: 50vw;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 50%;
    top: 50%;
    right: -18vw;
    transform: translateY(-50%) scale(.75);
    opacity: 0;
    transition: transform 1.2s cubic-bezier(.16,1,.3,1), opacity .8s ease;
  }
  .callout { position: relative; overflow: hidden; }
  .callout-inner { position: relative; z-index: 1; }
  .callout.section-in-view::before {
    transform: translateY(-50%) scale(1);
    opacity: 1;
  }
}

@media (max-width: 760px) {
  @media (prefers-reduced-motion: no-preference) {
    .hero-image,
    .sanctuary-image { inset: -12px 0; }
    .callout::before { width: 90vw; height: 90vw; right: -45vw; }
  }
}
