/* PASS-HTB Transitions — chargé sur toutes les pages par passhtb-transitions.php.
   Tout est désactivé quand le visiteur demande moins d'animations (prefers-reduced-motion). */

@media (prefers-reduced-motion: no-preference) {

	/* Changement de page : fondu enchaîné (Chrome, Edge, Safari 18.2+ ; ailleurs, changement normal). */
	@view-transition { navigation: auto; }

	::view-transition-old(root) { animation: passhtb-page-out .16s cubic-bezier(.4, 0, 1, 1) both; }
	::view-transition-new(root) { animation: passhtb-page-in .34s cubic-bezier(.16, 1, .3, 1) .04s both; }

	/* L'en-tête (modèle 28) et la barre mobile du pied de page (modèle 29) restent en place. */
	header.elementor-location-header { view-transition-name: passhtb-entete; }
	.elementor-29 [data-id="37a8bf5"] { view-transition-name: passhtb-barre; }
	::view-transition-group(passhtb-entete),
	::view-transition-group(passhtb-barre) { animation-duration: .2s; }

	/* Sous-menus de l'en-tête : glissement au lieu d'une apparition sèche. */
	.elementor-nav-menu--main .sub-menu { animation: passhtb-menu-in .22s cubic-bezier(.16, 1, .3, 1); }
	.elementor-nav-menu--dropdown .sub-menu { animation: passhtb-fade-in .2s ease; }

	/* Survol des liens et du bouton menu : couleur progressive.
	   « body » passe devant la remise à zéro des widgets atomiques (.e-paragraph-base a { transition: unset }). */
	a,
	body :is(.e-paragraph-base, .e-heading-base) a,
	.elementor-menu-toggle,
	.elementor-menu-toggle svg {
		transition-property: color, background-color, border-color, text-decoration-color, fill, opacity;
		transition-duration: .2s;
		transition-timing-function: ease;
	}
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto !important; }
}

/* Ancres (#sessions, #devis…) : la cible ne passe pas sous l'en-tête collant.
   :where() laisse la main aux décalages déjà réglés page par page. */
:where([id]) { scroll-margin-top: 96px; }

@keyframes passhtb-page-out { to { opacity: 0; } }
@keyframes passhtb-page-in { from { opacity: 0; transform: translateY(12px); } }
@keyframes passhtb-menu-in { from { opacity: 0; transform: translateY(-6px); } }
@keyframes passhtb-fade-in { from { opacity: 0; } }
