/* MkFunded – couche d'animation partagée (v1). Tout est désactivé si l'utilisateur demande moins de mouvement. */
html.mk-js [data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1);transition-delay:var(--d,0ms);will-change:opacity,transform}
html.mk-js [data-reveal="left"]{transform:translateX(-26px)}html.mk-js [data-reveal="right"]{transform:translateX(26px)}html.mk-js [data-reveal="zoom"]{transform:scale(.94)}
html.mk-js [data-reveal].mk-in{opacity:1;transform:none}
/* barre de progression de lecture */
.mk-prog{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,#0a55ff,#5fa0ff);z-index:200;pointer-events:none}
/* survol : cartes qui se soulèvent, boutons vivants */
.mk-lift{transition:transform .35s cubic-bezier(.22,1,.36,1),box-shadow .35s,border-color .35s}
.mk-lift:hover{transform:translateY(-5px);box-shadow:0 26px 44px -26px rgba(10,34,114,.55);border-color:#b9ccff}
.btn.p,.btn.w,.btn.o{position:relative;overflow:hidden;transition:transform .2s,box-shadow .25s,background .2s}
.btn.p::after,.btn.w::after{content:'';position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(110deg,transparent,rgba(255,255,255,.38),transparent);transform:skewX(-20deg);transition:left .65s}
.btn.p:hover::after,.btn.w:hover::after{left:140%}
.btn:active{transform:scale(.97)}
.btn i.fa-arrow-right{transition:transform .25s}.btn:hover i.fa-arrow-right{transform:translateX(4px)}
.mk-ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:mkrip .6s ease-out forwards;pointer-events:none}
@keyframes mkrip{to{transform:scale(3.2);opacity:0}}
/* logo qui respire, lueurs flottantes */
@keyframes mkfloat{50%{transform:translateY(-6px)}}.mk-float{animation:mkfloat 5s ease-in-out infinite}
@keyframes mkdrift{to{transform:translate3d(30px,24px,0) scale(1.12)}}
.mk-glow{position:absolute;border-radius:50%;filter:blur(70px);opacity:.45;pointer-events:none;animation:mkdrift 14s ease-in-out infinite alternate}
.mk-glow.a{width:380px;height:380px;background:#8fb4ff;top:-120px;right:-80px}.mk-glow.b{width:300px;height:300px;background:#c3d6ff;bottom:-100px;left:-60px;animation-duration:19s}
/* pulsation (statut actif) */
@keyframes mkpulse{0%{box-shadow:0 0 0 0 rgba(18,163,107,.55)}100%{box-shadow:0 0 0 12px rgba(18,163,107,0)}}
.mk-live{position:relative}.mk-live::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#5fe3a8;margin-right:.45rem;animation:mkpulse 1.8s infinite}
/* tracé du graphique */
.mk-draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:mkdraw 1.6s .2s cubic-bezier(.4,0,.2,1) forwards}@keyframes mkdraw{to{stroke-dashoffset:0}}
.mk-fadein{opacity:0;animation:mkfi .8s .9s ease forwards}@keyframes mkfi{to{opacity:1}}
/* bougies du hero */
.mk-candle{transform-box:fill-box;transform-origin:50% 100%;animation:mkgrow .55s cubic-bezier(.22,1,.36,1) both}@keyframes mkgrow{from{transform:scaleY(0);opacity:0}}
/* menu : indicateur au survol */
.nav a,.side .nav a{transition:background .2s,color .2s,transform .2s}.side .nav a:hover{transform:translateX(3px)}
/* champs : focus vivant */
.in input,.in select{transition:border-color .2s,box-shadow .25s,transform .2s}.in input:focus{transform:translateY(-1px)}
/* entrée de page orchestrée */
@keyframes mkpage{from{opacity:0;transform:translateY(10px)}}html.mk-js body{animation:mkpage .5s ease both}
@media(prefers-reduced-motion:reduce){html.mk-js [data-reveal]{opacity:1;transform:none;transition:none}.mk-float,.mk-glow,.mk-live::before,.mk-candle,.mk-draw,.mk-fadein,html.mk-js body{animation:none!important}.mk-draw{stroke-dashoffset:0}.mk-fadein{opacity:1}.mk-prog{display:none}.btn::after{display:none}}

/* a11y & finition (audit web-design-guidelines) */
.skip{position:absolute;left:-9999px;top:0;z-index:300;background:#0a55ff;color:#fff;padding:.7rem 1.1rem;border-radius:0 0 12px 0;font-weight:700}.skip:focus{left:0}
h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}
[data-count],.st b,.bal b,.kv b,.of .sz,.of .pr,td.n,.rl b,.ring b{font-variant-numeric:tabular-nums}
a,button,.btn,summary,input,select{touch-action:manipulation;-webkit-tap-highlight-color:rgba(10,85,255,.15)}
.tag{background:#0b7d50!important}.tag.w{background:#a15f00!important}.tag.b{background:#c92a41!important}.tag.g{background:#5d6b95!important}
.in input::placeholder{color:#6b7798!important;-webkit-text-fill-color:#6b7798!important}
:focus-visible{outline:3px solid rgba(10,85,255,.5);outline-offset:3px}

/* barre d'annonces + bannière promo (flux réel : annonces admin, promos, offres, articles, événements, certificats) */
.annbar{position:relative;z-index:60;background:linear-gradient(90deg,#071a52,#0a2f9c 55%,#0a55ff);background-size:200% 100%;animation:abmove 12s ease-in-out infinite alternate;color:#fff;font-size:.86rem;display:flex;gap:.7rem;justify-content:center;align-items:center;padding:.5rem 3rem;min-height:40px;text-align:center;transition:opacity .4s,transform .4s}
@keyframes abmove{to{background-position:100% 0}}
.annbar.out{opacity:0;transform:translateY(-6px)}.annbar.pre{opacity:0;transform:translateY(6px);transition:none}
.ab-g{background:#fff;color:#0a2272;font-weight:800;font-size:.68rem;padding:.2rem .55rem;border-radius:6px;white-space:nowrap}.ab-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ab-a{color:#fff;font-weight:700;border-bottom:2px solid #7fb0ff;white-space:nowrap}.ab-a::after{content:' →'}
@media(max-width:600px){.annbar{padding:.5rem 1rem;font-size:.8rem}.ab-a{display:none}}
.promo{position:relative;overflow:hidden;border-radius:20px;color:#fff;padding:1.5rem 1.7rem 1.7rem;background:radial-gradient(500px 220px at 90% 0,rgba(95,160,255,.55),transparent 70%),linear-gradient(120deg,#071a52,#0a2f9c);display:grid;gap:.4rem;transition:opacity .45s,transform .45s;min-height:150px}
.promo.out{opacity:0;transform:translateY(-10px)}.promo.pre{opacity:0;transform:translateY(12px);transition:none}
.promo::before{content:'';position:absolute;inset:-40% -10%;background:conic-gradient(from 0deg,transparent 0 60%,rgba(255,255,255,.12) 75%,transparent 90%);animation:pmspin 14s linear infinite;pointer-events:none}@keyframes pmspin{to{transform:rotate(360deg)}}
.promo>*{position:relative}.pm-g{justify-self:start;background:#ffd95e;color:#3a2a00;font-weight:800;font-size:.72rem;padding:.25rem .65rem;border-radius:7px}
.pm-t{font-size:clamp(1.3rem,2.6vw,1.8rem);letter-spacing:-.03em;line-height:1.15;max-width:34rem}.pm-b{color:#cdd9ff;max-width:34rem}.pm-a{justify-self:start;margin-top:.5rem}
.pm-bar{position:absolute!important;left:0;bottom:0;height:3px;width:100%;background:#ffd95e;transform-origin:0 50%;transform:scaleX(0)}.pm-bar.run{animation:fbar var(--dur,7000ms) linear forwards}@keyframes fbar{to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.annbar,.promo::before,.pm-bar.run{animation:none!important}}
