/* Boutons : reflet doux, petite élévation, ripple et micro-animation d'icônes. */
button,.btn,.fab,.fab-rdv{isolation:isolate;transition:transform .24s cubic-bezier(.22,1,.36,1),box-shadow .28s ease,filter .28s ease;}
button:not(:disabled):hover,.btn:not(:disabled):hover,.fab:hover,.fab-rdv:hover{filter:brightness(1.025);}
button:not(:disabled):hover .ic,a:hover .ic{animation:sn-icon-wiggle .48s ease both;}
.btn:not(:disabled):hover,.fab-rdv:hover{box-shadow:0 13px 28px rgba(180,29,89,.16),0 0 0 1px rgba(201,163,90,.15);}
button:focus-visible,.btn:focus-visible,.fab:focus-visible,.fab-rdv:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
.sn-ripple{position:absolute;z-index:4;width:12px;height:12px;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,255,255,.68),rgba(247,199,211,.45) 45%,rgba(201,163,90,.2));transform:translate(-50%,-50%) scale(0);animation:sn-ripple .62s ease-out forwards;}
.sn-tap{animation:sn-tap .38s cubic-bezier(.22,1,.36,1);}
.sn-loading{position:relative;}
@keyframes sn-ripple{to{transform:translate(-50%,-50%) scale(15);opacity:0}}
@keyframes sn-tap{0%{transform:scale(1)}35%{transform:scale(.975)}72%{transform:scale(1.012)}100%{transform:scale(1)}}
@keyframes sn-icon-wiggle{0%,100%{transform:rotate(0)}35%{transform:rotate(-7deg)}70%{transform:rotate(5deg)}}
@media(prefers-reduced-motion:reduce){button,.btn,.fab,.fab-rdv{transition:none!important}.sn-ripple,.sn-tap,button:not(:disabled):hover .ic,a:hover .ic{animation:none!important}}
