/**
 * Sunugafa — couche d'animations (états gérés par animations.js).
 * GPU-only (opacity/transform). Désactivé si prefers-reduced-motion.
 */

/* ---------- Scroll-reveal ---------- */
.snf-reveal {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .6s ease, transform .6s cubic-bezier(.2, .7, .2, 1);
}
.snf-reveal.snf-in {
	opacity: 1;
	transform: none;
}

/* ---------- Header intelligent ---------- */
.snf-nav {
	transition: height .28s ease, box-shadow .28s ease, background .28s ease;
}
.snf-nav.is-scrolled {
	height: 56px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .38);
}

/* ---------- Bouton « Retour en haut » ---------- */
.snf-top {
	position: fixed;
	right: 22px;
	bottom: 22px;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	border: none;
	background: var(--snf-green, #00A8E8);
	color: #fff;
	cursor: pointer;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .22);
	opacity: 0;
	visibility: hidden;
	transform: translateY(12px);
	transition: opacity .25s ease, transform .25s ease, background .2s ease;
	z-index: 400;
}
.snf-top.is-visible {
	opacity: 1;
	visibility: visible;
	transform: none;
}
.snf-top:hover {
	background: var(--snf-green2, #00D9FF);
}
.snf-top span {
	display: block;
	width: 10px;
	height: 10px;
	margin: 2px auto 0;
	border-top: 2px solid #fff;
	border-left: 2px solid #fff;
	transform: rotate(45deg);
}
.snf-top:focus-visible {
	outline: 2px solid var(--snf-green2, #00D9FF);
	outline-offset: 3px;
}

/* ---------- Accessibilité : neutralise tout mouvement ---------- */
@media (prefers-reduced-motion: reduce) {
	.snf-reveal {
		opacity: 1 !important;
		transform: none !important;
		transition: none !important;
	}
	.snf-nav {
		transition: none !important;
	}
	.snf-top {
		transition: opacity .25s ease;
		transform: none;
	}
}
