/* Gouverne · animations des sections (31/10/2026) — voir motion.js */
.mx-pre{opacity:0}
@media (prefers-reduced-motion:reduce){.mx-pre{opacity:1!important}}

/* cartes de fonctions : inclinaison 3D + reflet de lumière qui suit la souris */
.mx-tilt{position:relative;transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s;transform-style:preserve-3d;will-change:transform}
.mx-tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .4s;
background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.55),rgba(255,255,255,0) 45%)}
.mx-tilt:hover{box-shadow:0 30px 60px -30px rgba(16,21,19,.35)}
.mx-tilt:hover::after{opacity:1}

/* tableau de bord qui se redresse */
.mx-tiltin{transform-origin:50% 100%;will-change:transform,opacity}

/* tarifs : les offres se soulèvent au survol */
.mx-lift{transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s}
@media (hover:hover){.mx-lift:hover{transform:translateY(-6px);box-shadow:0 34px 60px -34px rgba(16,21,19,.4)}}
#f-solo-p,#f-solo-u,#f-pp,#f-pu{display:inline-block}

/* dernier appel : bouton aimanté */
.f-final .btn{transition:transform .35s cubic-bezier(.16,1,.3,1),background .3s}
