/* Deep Beauty — Entrées marquées des pages de machines. */
/* ---------- Entrées marquées des textes et des blocs (pages machines) ----------
 * Chaque famille d'éléments arrive à sa façon : titres révélés au rideau, cartes depuis les côtés,
 * visuels en zoom, boutons qui rebondissent. Départ et durée viennent de la règle .apparition ; ici, seule la forme change. */
@keyframes entree-rideau { from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-40px); } to { opacity: 1; clip-path: inset(0 0 0 0); transform: none; } }
@keyframes entree-gauche { from { opacity: 0; transform: translateX(-70px); } to { opacity: 1; transform: none; } }
@keyframes entree-droite { from { opacity: 0; transform: translateX(70px); } to { opacity: 1; transform: none; } }
@keyframes entree-haut { from { opacity: 0; transform: translateY(60px); } to { opacity: 1; transform: none; } }
@keyframes entree-zoom { from { opacity: 0; transform: scale(0.82); } to { opacity: 1; transform: none; } }
@keyframes entree-rebond { 0% { opacity: 0; transform: scale(0.5); } 60% { opacity: 1; transform: scale(1.08); } 100% { transform: scale(1); } }
@keyframes entree-cercle { from { opacity: 0; clip-path: circle(0% at 50% 50%); transform: scale(0.9); } to { opacity: 1; clip-path: circle(75% at 50% 50%); transform: none; } }
@keyframes pose-image { from { transform: scale(1.3); } to { transform: scale(1); } }

.js .titre-section.apparition.est-visible { animation-name: entree-rideau; animation-duration: 1.1s; }
.js .chapo.apparition.est-visible, .js .conteneur-texte.apparition.est-visible, .js .surtitre.apparition.est-visible { animation-name: entree-haut; animation-duration: 1.1s; }
.js .accessoire.apparition.est-visible, .js .domaine.apparition.est-visible { animation-name: entree-haut; animation-duration: 1s; animation-delay: calc(var(--i, 0) * 140ms); }
.js .accessoire.apparition.est-visible img { animation: pose-image 1.6s var(--ease-sortie) calc(var(--i, 0) * 140ms) backwards; }
.js .avantages-colonne:first-child .domaine.apparition.est-visible { animation-name: entree-gauche; }
.js .machine-ona.apparition.est-visible { animation-name: entree-cercle; animation-duration: 1.4s; }
.js .avantages-colonne:last-child .domaine.apparition.est-visible { animation-name: entree-droite; }
.js .etapes-ona li.apparition.est-visible { animation-name: entree-gauche; animation-delay: calc(var(--i, 0) * 220ms); }
.js .etapes-ona li.apparition.est-visible .pastille-numero { animation: entree-rebond 0.8s var(--ease-sortie) calc(0.2s + var(--i, 0) * 220ms) backwards; }
.js .appareil-ona.apparition.est-visible, .js .catalogue-card-ona.apparition.est-visible { animation-name: entree-droite; animation-duration: 1.2s; }
.js .comparatif-ona.apparition.est-visible { animation-name: entree-zoom; animation-duration: 1.1s; animation-delay: calc(var(--i, 0) * 180ms); }
.js .mode.apparition.est-visible, .js .resultat.apparition.est-visible { animation-name: entree-zoom; animation-delay: calc(var(--i, 0) * 160ms); }
.js .faq-liste.apparition.est-visible { animation-name: entree-gauche; animation-duration: 1.1s; }
.js p.centre.apparition.est-visible, .js .contact .conteneur.apparition.est-visible { animation-name: entree-haut; }
.js .puces li { animation: entree-rebond 0.7s var(--ease-sortie) backwards; animation-play-state: paused; }
.js .apparition.est-visible .puces li, .js .puces.est-visible li { animation-play-state: running; }
.js .puces li:nth-child(2) { animation-delay: 0.06s; }
.js .puces li:nth-child(3) { animation-delay: 0.12s; }
.js .puces li:nth-child(4) { animation-delay: 0.18s; }
.js .puces li:nth-child(5) { animation-delay: 0.24s; }
.js .puces li:nth-child(6) { animation-delay: 0.3s; }
.js .puces li:nth-child(n+7) { animation-delay: 0.36s; }
@media (max-width: 767px) {
	@keyframes entree-gauche { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: none; } }
	@keyframes entree-droite { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: none; } }
}

.js .acc-carte.apparition.est-visible { animation-name: entree-gauche; animation-duration: 1.1s; animation-delay: calc(var(--i, 0) * 120ms); }
.js .acc-carte.apparition.est-visible:nth-child(even) { animation-name: entree-droite; }
.js .acc-carte.apparition.est-visible:last-child:nth-child(odd) { animation-name: entree-haut; }
.js .acc-carte.apparition.est-visible > img { animation: pose-image 1.6s var(--ease-sortie) backwards; }
.js .catalogues-acc .catalogue-card-ona.apparition.est-visible { animation-name: entree-haut; animation-duration: 0.9s; }

.js .tr-carte.apparition.est-visible, .js .tr-machine.apparition.est-visible { animation-name: entree-haut; animation-duration: 1s; animation-delay: calc(var(--i, 0) * 130ms); }
.js .tr-machine.apparition.est-visible img { animation: pose-image 1.6s var(--ease-sortie) backwards; }

.js .pr-carte.apparition.est-visible, .js .gal-vignette.apparition.est-visible, .js .vid-carte.apparition.est-visible { animation-name: entree-haut; animation-duration: 1s; animation-delay: calc(var(--i, 0) * 120ms); }
.js .vid-carte.apparition.est-visible:nth-child(odd) { animation-name: entree-gauche; }
.js .vid-carte.apparition.est-visible:nth-child(even) { animation-name: entree-droite; }
.js .pr-carte.apparition.est-visible > img { animation: pose-image 1.6s var(--ease-sortie) backwards; }
.js .fo-formulaire.apparition.est-visible, .js .carte-google.apparition.est-visible { animation-name: entree-haut; animation-duration: 1.1s; }
@media (prefers-reduced-motion: reduce) { .logos-piste { animation: none; width: auto; flex-wrap: wrap; justify-content: center; } .logos-piste li[aria-hidden="true"] { display: none; } }
