/* Sections Yoovi insérées dans la page Framer : bento « Ce que fait Yoovi »,
   CTA parents et sélecteur de publics. Animations : js/yoovi-sections.js (GSAP). */
.yv-src{display:none}
.yv-bento,.yv-aud,.yv-price,.yv-tools,.yv-cmp,.yv-faq,.yv-final,.yv-steps3{
 --yv-violet:#5046e5;--yv-violet-2:#7a6ff0;--yv-ink:#171717;--yv-muted:#55515b;--yv-lav:#f2ebff;--yv-lav-2:#f7f4ff;--yv-line:#e9e1fb;
 --yv-ease:cubic-bezier(.2,0,0,1);
 box-sizing:border-box;width:100%;max-width:1240px;margin:0 auto;padding:24px 20px 8px;color:var(--yv-ink);
 font:400 16px/1.55 Inter,ui-sans-serif,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-align:left
}
.yv-bento *,.yv-aud *,.yv-price *,.yv-tools *,.yv-cmp *,.yv-faq *,.yv-final *,.yv-steps3 *{box-sizing:border-box}
/* Au-dessus des bulles décoratives Framer qui débordent des sections voisines */
.yv-bento,.yv-aud,.yv-price,.yv-cmp,.yv-faq,.yv-final,.yv-steps3{position:relative;z-index:10}
.yv-bento h2,.yv-aud h2,.yv-price h2,.yv-bento h3,.yv-aud h3,.yv-price h3,.yv-bento p,.yv-aud p,.yv-price p,.yv-bento ul,.yv-aud ul,.yv-price ul,.yv-aud figure{margin:0}
.yv-bento ul,.yv-aud ul,.yv-price ul{padding:0;list-style:none}

/* En-têtes. Taille unique des titres de section (H2), y compris le titre Framer
   « Toutes les matières… » (sinon 110 px en tablette) : même échelle partout. */
:root{--yv-h2:clamp(40px,5.4vw,70px)}
#main [data-framer-name="Title/Body Text"]>[data-framer-name="Title"] h2.framer-text{--framer-font-size:var(--yv-h2)!important;--framer-line-height:1em!important;--framer-letter-spacing:-.043em!important}
/* En-têtes */
.yv-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:18px;margin:0 auto 48px;max-width:820px}
/* Pastille : copie de la pastille Framer (« Une interaction pensée pour l'apprentissage ») */
.yv-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:5px 12px 5px 5px;border-radius:21px;background:#fff;
 box-shadow:#b1abde42 0 .79px .79px -.47px,#b1abde42 0 1.87px 1.87px -.94px,#b1abde40 0 3.41px 3.41px -1.41px,#b1abde3d 0 5.67px 5.67px -1.88px,#b1abde3b 0 9.16px 9.16px -2.34px,#b1abde36 0 15px 15px -2.81px,#b1abde2b 0 25.8px 25.8px -3.28px,#b1abde17 0 47px 47px -3.75px;
 font:500 18px/1.2 Inter,sans-serif;letter-spacing:-.06em;color:#595269fa}
.yv-pill-ic{display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:30px;background:linear-gradient(#4f1ad6,#8059e3);box-shadow:inset 0 0 0 2px #ffffff26}
.yv-pill-ic svg{fill:#fff}
/* Titres et sous-titres : mêmes polices que « Chaque matière, sa salle » (Inter Display) */
.yv-head h2{font:600 var(--yv-h2)/1 "Inter Display",Inter,sans-serif;letter-spacing:-.043em;color:#1e1e1e;text-wrap:balance}
.yv-head h2 em{font-style:normal;color:var(--yv-violet)}
.yv-lead{max-width:720px;font:500 clamp(18px,1.6vw,22px)/1.15 "Inter Display",Inter,sans-serif;letter-spacing:-.005em;color:#7f7f80;text-wrap:pretty}

/* Grille bento : chaque carte = une scène produit (visuel en tête) + son texte.
   État par défaut = état final de chaque scène (sans JS ou en mouvement réduit) ;
   js/yoovi-sections.js pose l'état de départ puis anime. */
.yv-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.yv-card{--mx:50%;--my:0%;position:relative;overflow:hidden;display:flex;flex-direction:column;border-radius:28px;background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line),0 1px 2px #20183008;transform-style:preserve-3d}
.yv-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s var(--yv-ease);background:radial-gradient(420px circle at var(--mx) var(--my),#5046e512,transparent 60%)}
.yv-card:hover::after{opacity:1}
.yv-copy{display:flex;flex-direction:column;gap:8px;margin-top:auto;padding:20px 26px 26px}
.yv-card h3{font:600 22px/1.2 "Inter Display",Inter,sans-serif;letter-spacing:-.02em}
.yv-copy>p:not(.yv-kicker):not(.yv-note),.yv-rooms-copy>p:not(.yv-kicker){font-size:15px;color:var(--yv-muted)}
.yv-kicker{font:600 13px/1.3 Inter,sans-serif;letter-spacing:.02em;color:var(--yv-violet)}
.yv-note{font-size:12px!important;opacity:.7}
.yv-card--guide{grid-column:span 7;background:#201a30;box-shadow:0 30px 60px -34px #201a30}
.yv-card--adapt{grid-column:span 5}
.yv-card--rooms{grid-column:span 12}
.yv-card--modes,.yv-card--notion,.yv-card--exam{grid-column:span 4}

/* 1 · Guidage : fenêtre de salle, copie de l'élève + fil d'échange */
.yv-card--guide::before{content:"";position:absolute;width:520px;height:520px;right:-180px;top:-260px;border-radius:50%;background:radial-gradient(closest-side,#5046e5aa,#5046e500);pointer-events:none;transform:translate(calc(var(--halo,0) * -160px),calc(var(--halo,0) * 90px))}
.yv-card--guide .yv-kicker{color:#ffd95a}
.yv-card--guide h3{color:#fff;font-size:26px}
.yv-card--guide .yv-copy>p:not(.yv-kicker){color:#cfc9e8}
.yv-win{position:relative;margin:22px 22px 0;border-radius:20px;background:#2a2340;box-shadow:inset 0 0 0 1px #ffffff17,0 30px 50px -30px #000}
.yv-win-bar{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid #ffffff12;font:500 12px/1 Inter,sans-serif;color:#bdb6d6}
.yv-win-dots{display:flex;gap:5px}
.yv-win-dots i{width:8px;height:8px;border-radius:50%;background:#ffffff24}
.yv-win-tag{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:5px 9px;border-radius:999px;background:#5046e540;color:#d4d0ff}
.yv-win-tag i{width:6px;height:6px;border-radius:50%;background:#ffd95a;box-shadow:0 0 0 3px #ffd95a33}
.yv-win-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:14px;padding:14px}
.yv-board{padding:10px 14px 12px 26px;border-radius:14px;background:#fff repeating-linear-gradient(#fff 0 29px,#dfe8f7 29px 30px);background-position:0 30px;box-shadow:inset 18px 0 0 -16px #f3a6a6;color:var(--yv-ink)}
.yv-board-label{margin-bottom:4px!important;font:600 10px/16px Inter,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#8b85a0}
.yv-eq-l{position:relative;width:max-content;font:600 19px/30px "Inter Display",Inter,sans-serif;font-variant-numeric:tabular-nums;letter-spacing:-.01em;white-space:nowrap}
.yv-sign{display:inline-grid;width:.62em;text-align:center}
.yv-sign>span{grid-area:1/1}
.yv-sign-a{opacity:0}
.yv-ring{position:absolute;right:-11px;top:50%;width:52px;height:34px;margin-top:-18px;overflow:visible;fill:none;stroke:#f5a524;stroke-width:2.6;stroke-linecap:round}
.yv-roll{display:inline-block;height:30px;overflow:hidden;vertical-align:top}
.yv-roll span{display:block;transform:translateY(-100%)}
.yv-eq-l--ok{display:flex;align-items:center;gap:6px;color:#23824a}
.yv-ok{width:20px;height:20px;fill:none;stroke:#23824a;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.yv-thread{display:flex;flex-direction:column;justify-content:flex-end;gap:8px;min-height:176px}
.yv-bub{max-width:94%;padding:9px 12px;border-radius:14px;font:500 13.5px/1.4 Inter,sans-serif}
.yv-bub--yv{align-self:flex-start;background:#ffffff14;color:#eeeaff;border-bottom-left-radius:5px}
.yv-bub--yv b{margin-right:6px;color:#ffd95a;font-weight:600}
.yv-bub--me{align-self:flex-end;background:#fff;color:var(--yv-ink);border-bottom-right-radius:5px}
.yv-dots{display:none;align-self:flex-start;gap:4px;padding:10px 12px;border-radius:14px;background:#ffffff14}
.yv-dots i{width:6px;height:6px;border-radius:50%;background:#fff}
.yv-input{display:flex;align-items:center;gap:2px;margin:0 14px 14px;padding:6px 6px 6px 16px;border-radius:999px;background:#ffffff0d;box-shadow:inset 0 0 0 1px #ffffff14;font:500 13.5px/1 Inter,sans-serif;color:#8f88ad}
.yv-input-text{white-space:nowrap;overflow:hidden}
.yv-input.is-typing .yv-input-text{color:#fff}
.yv-caret{width:1.5px;height:16px;background:#ffd95a;opacity:0}
.yv-send{display:grid;place-items:center;width:30px;height:30px;margin-left:auto;border-radius:50%;background:var(--yv-violet)}
.yv-send svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}

/* 2 · Parcours adapté */
.yv-path{padding:22px 22px 0}
.yv-route{display:block;width:100%;height:auto;overflow:visible}
.yv-route-bg{fill:none;stroke:#ece6fb;stroke-width:6;stroke-linecap:round}
.yv-route-line{fill:none;stroke:var(--yv-violet);stroke-width:6;stroke-linecap:round}
.yv-node circle{fill:#fff;stroke:var(--yv-violet);stroke-width:4}
.yv-node--goal circle{fill:#ffd95a}
.yv-node--goal .yv-pulse{fill:#5046e533;stroke:none}
.yv-puck{fill:var(--yv-violet);stroke:#fff;stroke-width:3;opacity:0}
.yv-steps{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:14px 0 0!important;padding:0!important;list-style:none}
.yv-steps li{display:flex;flex-direction:column;gap:3px;padding:9px 12px;border-radius:14px;background:var(--yv-lav-2);box-shadow:inset 0 0 0 1px var(--yv-line);transition:background .3s var(--yv-ease),box-shadow .3s var(--yv-ease)}
.yv-steps span{font:500 11px/1.2 Inter,sans-serif;color:var(--yv-muted);transition:color .3s}
.yv-steps b{font:600 13.5px/1.25 Inter,sans-serif;color:var(--yv-ink);transition:color .3s}
.yv-steps .is-goal{background:#fff8dc;box-shadow:inset 0 0 0 1px #f3dc8c}
.yv-steps .is-on{background:var(--yv-violet);box-shadow:none}
.yv-steps .is-on span{color:#d9d5ff}
.yv-steps .is-on b{color:#fff}

/* 3 · Modes d'échange : mini-fenêtre d'app sur le fond lavande des cartes. Commutateur à
   icônes (encre qui glisse), une micro-scène par mode rejouée à chaque affichage (js). */
.yv-shot--modes{display:flex;align-items:flex-start;justify-content:center}
.yv-mx{position:relative;z-index:1;display:flex;flex-direction:column;gap:12px;width:min(340px,88%);margin-top:22px;padding:10px;border-radius:24px;background:#fffffff0;box-shadow:0 0 0 1px #5046e514,0 30px 50px -30px #38204c66,inset 0 1px 0 #fff}
.yv-seg{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:4px;border-radius:999px;background:#f3f0fb}
.yv-seg-ink{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / 4);border-radius:999px;background:linear-gradient(135deg,#5046e5,#8059e3);box-shadow:0 8px 16px -8px #5046e5,inset 0 1px 0 #ffffff40;transition:transform .5s var(--yv-ease)}
.yv-seg-b{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:5px;padding:8px 0;border:0;background:none;font:600 12.5px/1 "Inter Display",Inter,sans-serif;color:#6f6a7a;cursor:pointer;transition:color .3s}
.yv-seg-b svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.yv-seg-b[aria-pressed=true]{color:#fff}
.yv-seg-b:focus-visible{outline:2px solid var(--yv-violet);outline-offset:2px;border-radius:999px}
.yv-scenes{position:relative;height:210px;border-radius:18px;overflow:hidden;background:#f7f4ff radial-gradient(#ddd4f7 1px,transparent 1.3px) 0 0/16px 16px;box-shadow:inset 0 0 0 1px #ece6fb}
.yv-scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden}
.yv-scene.is-on{opacity:1;visibility:visible}
.yv-mx-sp{margin-right:6px;font-weight:400;color:#ffd95a}
/* Chat */
.yv-scene--chat{flex-direction:column;align-items:stretch;justify-content:flex-end;gap:8px;padding:16px}
.yv-mb{max-width:84%;padding:9px 13px;border-radius:16px;font:500 13px/1.35 "Inter Display",Inter,sans-serif}
.yv-mb--me{align-self:flex-end;min-height:35px;background:linear-gradient(135deg,#5046e5,#6d5ff0);color:#fff;border-bottom-right-radius:6px;box-shadow:0 10px 18px -12px #5046e5}
.yv-type::after{content:"";display:inline-block;width:1.5px;height:13px;margin-left:2px;vertical-align:-2px;background:#ffd95a;animation:yv-blink .9s steps(1) infinite}
@keyframes yv-blink{50%{opacity:0}}
.yv-mb--typing{align-self:flex-start;display:flex;gap:4px;padding:12px 14px;background:#fff;box-shadow:0 6px 14px -10px #20183059}
.yv-mb--typing i{width:6px;height:6px;border-radius:50%;background:#b3aac9;animation:yv-dot 1s infinite}
.yv-mb--typing i:nth-child(2){animation-delay:.15s}.yv-mb--typing i:nth-child(3){animation-delay:.3s}
@keyframes yv-dot{0%,60%,100%{transform:none;opacity:.5}30%{transform:translateY(-4px);opacity:1}}
.yv-mb--yv{align-self:flex-start;background:#201a30;color:#fff;border-bottom-left-radius:6px;box-shadow:0 10px 20px -12px #201a30}
/* Vocal */
.yv-scene--voice{flex-direction:column;gap:12px}
.yv-orb{position:relative;display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#8b6cf0,#4f1ad6 70%);box-shadow:0 14px 30px -10px #4f1ad6,inset 0 2px 0 #ffffff40}
.yv-orb svg{position:relative;width:26px;height:26px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.yv-orb i{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 2px #8059e3;opacity:0}
.yv-live{display:flex;align-items:center;gap:10px;padding:6px 12px 6px 8px;border-radius:99px;background:#fff;box-shadow:0 8px 18px -12px #20183059}
.yv-rec{display:flex;align-items:center;gap:5px;font:600 11.5px/1 Inter,sans-serif;font-variant-numeric:tabular-nums;color:#55515b}
.yv-rec i{width:7px;height:7px;border-radius:50%;background:#ef4b5f;animation:yv-blink 1.2s steps(1) infinite}
.yv-rec b{font-weight:600}
.yv-wave{display:flex;align-items:center;gap:3px;height:24px}
.yv-wave i{width:3px;height:100%;border-radius:3px;background:linear-gradient(#8059e3,#5046e5);transform:scaleY(.25)}
.yv-transcript{font:500 12.5px/1.3 "Inter Display",Inter,sans-serif;font-style:italic;color:#6f6a7a}
/* Photo */
.yv-paper{position:relative;display:flex;flex-direction:column;gap:7px;width:142px;padding:12px 14px 14px;border-radius:8px;background:#fff;box-shadow:0 16px 28px -16px #20183080;transform:rotate(-3deg)}
.yv-paper b{font:600 12px/1 "Inter Display",Inter,sans-serif;color:#201a30}
.yv-paper i{height:5px;border-radius:3px;background:#e9e3f7}
.yv-paper i:nth-of-type(2){width:82%}.yv-paper i:nth-of-type(3){width:58%}
.yv-tri{width:62px;height:40px;fill:none;stroke:#5046e5;stroke-width:1.6;stroke-linejoin:round}
.yv-corners{position:absolute;left:50%;top:50%;width:184px;height:150px;margin:-82px 0 0 -92px;--c:#5046e5;background:linear-gradient(var(--c),var(--c)) 0 0/20px 2.5px,linear-gradient(var(--c),var(--c)) 0 0/2.5px 20px,linear-gradient(var(--c),var(--c)) 100% 0/20px 2.5px,linear-gradient(var(--c),var(--c)) 100% 0/2.5px 20px,linear-gradient(var(--c),var(--c)) 0 100%/20px 2.5px,linear-gradient(var(--c),var(--c)) 0 100%/2.5px 20px,linear-gradient(var(--c),var(--c)) 100% 100%/20px 2.5px,linear-gradient(var(--c),var(--c)) 100% 100%/2.5px 20px;background-repeat:no-repeat}
.yv-scan{position:absolute;left:50%;top:22px;width:184px;height:2px;margin-left:-92px;background:linear-gradient(90deg,transparent,#5046e5,transparent);box-shadow:0 0 14px 3px #5046e559;opacity:0}
.yv-flash{position:absolute;inset:0;background:#fff;opacity:0}
.yv-mx-chip{position:absolute;left:50%;bottom:12px;display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:99px;white-space:nowrap;background:#fff;color:#0f7a43;font:600 12.5px/1 "Inter Display",Inter,sans-serif;box-shadow:0 0 0 1px #5046e51a,0 12px 24px -12px #38204c66;translate:-50% 0;opacity:0}
.yv-mx-chip--violet{background:linear-gradient(135deg,#5046e5,#8059e3);color:#fff}
/* Écran */
.yv-screen{position:relative;width:190px;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 0 0 5px #201a30,0 18px 30px -16px #201a30aa;margin-bottom:22px}
.yv-screen-bar{display:flex;gap:4px;padding:7px 8px;background:#f3f0fb}
.yv-screen-bar i{width:6px;height:6px;border-radius:50%;background:#d9d2ec}
.yv-screen-body{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:9px}
.yv-screen-body i{height:24px;border-radius:5px;background:#f0ebfb}
.yv-screen-body i:first-child{grid-column:span 2;height:10px}
.yv-screen-body .yv-target{transition:background-color .3s,box-shadow .3s}
.yv-screen-body .yv-target.is-hit{background:#e4e0ff;box-shadow:inset 0 0 0 1.5px #5046e5}
.yv-pointer{position:absolute;left:calc(50% + 36px);top:calc(50% + 6px);width:20px;height:20px;fill:#201a30;stroke:#fff;stroke-width:1.4;stroke-linejoin:round;filter:drop-shadow(0 3px 4px #0003)}
.yv-click{position:absolute;left:calc(50% + 28px);top:calc(50% - 14px);width:26px;height:26px;border-radius:50%;box-shadow:0 0 0 2px #5046e5;opacity:0}

/* 4 · Notion réexpliquée */
.yv-notion{padding:22px 22px 0}
.yv-map{display:block;width:100%;height:auto;overflow:visible}
.yv-map-line{fill:none;stroke:#d6cbf6;stroke-width:2}
.yv-map-node rect{fill:#fff;stroke:#dccffb;transition:fill .3s,stroke .3s}
.yv-map-node text{font:600 11.5px Inter,sans-serif;fill:var(--yv-ink);text-anchor:middle;transition:fill .3s}
.yv-map-node.is-on rect{fill:var(--yv-violet);stroke:var(--yv-violet)}
.yv-map-node.is-on text{fill:#fff}
.yv-map-node--main rect{fill:#201a30;stroke:none}
.yv-map-node--main text{fill:#fff;font-size:12.5px}
.yv-spark{fill:#ffd95a;stroke:#201a30;stroke-width:2;opacity:0}
.yv-explain{position:relative;min-height:60px;margin-top:12px;border-radius:14px;background:var(--yv-lav-2);box-shadow:inset 0 0 0 1px var(--yv-line)}
.yv-explain p{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:3px;padding:8px 14px;font:500 13.5px/1.35 Inter,sans-serif;color:var(--yv-ink);opacity:0;visibility:hidden}
.yv-explain p.is-on{opacity:1;visibility:visible}
.yv-explain b{font:600 11px/1 Inter,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--yv-violet)}

/* 5 · Contrôle : paquet de flashcards */
.yv-exam{padding:22px 22px 0}
.yv-exam-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font:500 12.5px/1 Inter,sans-serif;color:var(--yv-muted)}
.yv-pill{padding:6px 10px;border-radius:999px;background:#fff4d6;color:#7a5600;font-weight:600}
.yv-score b{font:600 15px/1 "Inter Display",Inter,sans-serif;color:var(--yv-ink)}
.yv-deck{position:relative;height:128px;margin-top:12px;perspective:800px}
.yv-fc{position:absolute;left:50%;top:6px;width:200px;height:104px;margin-left:-100px;transform-style:preserve-3d}
.yv-fc:nth-child(1){z-index:3}
.yv-fc:nth-child(2){z-index:2;transform:translateY(9px) scale(.94)}
.yv-fc:nth-child(3){z-index:1;transform:translateY(18px) scale(.88)}
.yv-fc-in{position:absolute;inset:0;transform-style:preserve-3d}
.yv-fc-f,.yv-fc-b{position:absolute;inset:0;display:grid;place-items:center;padding:12px;border-radius:16px;text-align:center;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.yv-fc-f{background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line),0 12px 24px -16px #20183055;font:600 14px/1.3 Inter,sans-serif}
.yv-fc-b{background:var(--yv-violet);color:#fff;transform:rotateY(180deg);font:600 17px/1.25 "Inter Display",Inter,sans-serif}
.yv-stamp{position:absolute;right:-8px;top:-10px;padding:5px 9px;border-radius:8px;background:#e6f6ec;color:#1d7040;font:600 11px/1 Inter,sans-serif;font-style:normal;letter-spacing:.04em;text-transform:uppercase;box-shadow:inset 0 0 0 1.5px #2e9a5a;transform:rotate(8deg) translateZ(1px);opacity:0}
.yv-stamp--todo{background:#fff4d6;color:#7a5600;box-shadow:inset 0 0 0 1.5px #c99200}
.yv-meter{height:6px;margin-top:8px;border-radius:6px;background:#efe9fb;overflow:hidden}
.yv-meter i{display:block;width:66.6%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5046e5,#7a6ff0);transform-origin:0 50%}

.yv-chips{display:flex;flex-wrap:wrap;gap:6px}
.yv-chips li{padding:5px 11px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line);font:500 13px/1.3 Inter,sans-serif}

/* Salles éducatives : texte à gauche, captures réelles qui défilent à droite */
.yv-card--rooms{display:flex;flex-direction:column;align-items:stretch;gap:20px;padding:26px 0;background:linear-gradient(120deg,#fff 0%,var(--yv-lav-2) 55%)}
.yv-card--rooms>*{flex-shrink:0}
.yv-rooms-copy{display:flex;flex-direction:column;gap:10px;padding:0 26px}
.yv-rooms-copy h3{font-size:26px}
.yv-rooms-copy .yv-chips{margin-top:6px}
.yv-rooms-note{padding:0 26px;margin-top:0!important}
.yv-marquee{margin-top:auto;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12.5%,#000 87.5%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12.5%,#000 87.5%,transparent)}
.yv-marquee-track{display:flex;gap:14px;width:max-content;animation:yv-marquee 36s linear infinite}
.yv-marquee.is-js .yv-marquee-track{animation:none}
.yv-rooms li{flex:none;width:460px}
.yv-rooms img{display:block;width:100%;height:auto;aspect-ratio:1024/639;object-fit:cover;border-radius:14px}
.yv-marquee:not(.is-js):hover .yv-marquee-track,.yv-marquee.is-paused .yv-marquee-track{animation-play-state:paused}
@keyframes yv-marquee{to{transform:translateX(calc(-50% - 7px))}}

/* Listes à coches */
.yv-list{display:grid;gap:6px}
.yv-list li{position:relative;padding-left:22px;font-size:15px;color:var(--yv-muted)}
.yv-list li::before{content:"";position:absolute;left:2px;top:.5em;width:10px;height:6px;border-left:2px solid var(--yv-violet);border-bottom:2px solid var(--yv-violet);transform:rotate(-45deg)}

/* CTA parents */
.yv-cta-parent{display:flex;align-items:center;justify-content:space-between;gap:28px;margin-top:16px;padding:32px 36px;border-radius:28px;background:var(--yv-ink);color:#fff}
.yv-cta-parent .yv-kicker{color:#ffd95a}
.yv-cta-parent h3{margin-top:6px;font:600 clamp(24px,2.6vw,32px)/1.15 "Inter Display",Inter,sans-serif;letter-spacing:-.03em}
.yv-cta-parent p:not(.yv-kicker){margin-top:8px;max-width:560px;color:#cfcbe0}
.yv-cta-actions{display:flex;flex-direction:column;align-items:center;gap:10px;flex:none}
.yv-cta-note{font-size:13px!important;color:#9e98b8!important}
.yv-bento a:focus-visible,.yv-aud a:focus-visible,.yv-aud [role=tab]:focus-visible,.yv-aud [role=tabpanel]:focus-visible{outline:3px solid #ffd95a;outline-offset:3px;border-radius:12px}

/* Publics */
/* Fond blanc pleine largeur (la section elle-même reste centrée à 1240 px) */
.yv-aud{padding-top:72px;padding-bottom:72px;background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}
.yv-tabs{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;max-width:560px;margin:0 auto 36px;padding:6px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line),0 8px 24px -16px #5046e544}
.yv-tab-ink{position:absolute;top:6px;bottom:6px;left:6px;width:0;border-radius:999px;background:var(--yv-violet);transition:transform .45s var(--yv-ease),width .45s var(--yv-ease)}
.yv-tab{position:relative;z-index:1;padding:14px 10px;border:0;border-radius:999px;background:none;color:var(--yv-muted);font:600 16px/1.2 Inter,sans-serif;cursor:pointer;transition:color .25s}
.yv-tab[aria-selected=true]{color:#fff}
.yv-tab:not([aria-selected=true]):hover{color:var(--yv-violet)}
.yv-tab-ink{background:linear-gradient(135deg,var(--acc-a,#5449e4),var(--acc-b,#9b5cff));box-shadow:0 8px 18px -8px var(--acc-a,#5449e4)}
/* Couleur par public : onglet, item actif, puces, halo de la scène */
.yv-aud[data-aud=parent]{--acc-a:#1f8ef1;--acc-b:#62b6ff}
.yv-aud[data-aud=eleve]{--acc-a:#5449e4;--acc-b:#a35cff}
.yv-aud[data-aud=prof]{--acc-a:#b521d6;--acc-b:#e27bff}
.yv-aud[data-aud=org]{--acc-a:#159a4a;--acc-b:#4fd27c}
.yv-panel{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}
.yv-panel[hidden]{display:none}
.yv-panel-copy{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.yv-panel-copy h3{font:600 clamp(26px,2.6vw,34px)/1.15 "Inter Display",Inter,sans-serif;letter-spacing:-.03em}
.yv-panel-copy h3 em{font-style:normal;background:linear-gradient(135deg,var(--acc-a),var(--acc-b));-webkit-background-clip:text;background-clip:text;color:transparent}
.yv-blurb{max-width:560px;color:var(--yv-muted)}
.yv-panel .yv-cta-note{color:var(--yv-muted)!important}
.yv-feats{display:grid;gap:6px;width:100%;margin:4px 0 6px!important}
.yv-feat-b{display:grid;gap:4px;width:100%;padding:12px 18px 12px 20px;border:0;border-radius:18px;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer;position:relative;transition:opacity .45s var(--yv-ease),filter .45s var(--yv-ease),transform .45s var(--yv-ease),background-color .3s,box-shadow .3s}
.yv-feat-b::before{content:"";position:absolute;left:6px;top:14px;bottom:14px;width:3px;border-radius:3px;background:linear-gradient(var(--acc-a),var(--acc-b));transform:scaleY(0);transition:transform .45s var(--yv-ease)}
.yv-feat-t{font:600 18px/1.25 "Inter Display",Inter,sans-serif;letter-spacing:-.02em;transition:color .3s}
.yv-feat-p{font-size:15px;line-height:1.45;color:var(--yv-muted)}
.yv-feat-shot{display:none}
.yv-feat-shot img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;border-radius:18px}
.yv-stage{display:none}
.yv-feat-b:focus-visible{outline:3px solid #ffd95a;outline-offset:2px}

/* Grand écran : panneau « double bezel » (coque + cœur). À gauche les fonctionnalités en
   accordéon (seule l'active déroule son texte), à droite la capture correspondante sur un
   fond teinté du public. Les items défilent seuls (barre de progression) tant que la section
   est visible et que le visiteur n'a rien choisi ; survol = pause (js : is-auto). */
.yv-feats{counter-reset:yvf;padding:0!important;list-style:none}
.yv-feat{counter-increment:yvf}
.yv-aud.is-stage .yv-panels{max-width:1180px;margin:0 auto;padding:8px;border-radius:40px;background:#2018300a;box-shadow:inset 0 0 0 1px #2018300d}
.yv-aud.is-stage .yv-panel{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:0;align-items:stretch;overflow:hidden;border-radius:32px;background:#fff;box-shadow:inset 0 1px 0 #fff,0 1px 2px #2018300a,0 40px 80px -60px #38204c59}
.yv-aud.is-stage .yv-panel-copy{justify-content:center;gap:18px;padding:48px 40px 44px 48px}
.yv-aud.is-stage .yv-feats{gap:4px;margin:6px 0 10px!important}
.yv-aud.is-stage .yv-feat-b{grid-template-columns:34px minmax(0,1fr);grid-template-rows:auto 0fr;column-gap:10px;row-gap:0;padding:15px 18px 15px 14px;overflow:hidden;transition:background-color .5s var(--yv-ease),grid-template-rows .55s var(--yv-ease),row-gap .55s var(--yv-ease)}
.yv-aud.is-stage .yv-feat-b::before{content:counter(yvf,decimal-leading-zero);position:static;grid-row:1;width:auto;height:auto;border-radius:0;background:none;transform:none;font:600 13px/1.9 Inter,sans-serif;letter-spacing:.04em;color:#b3aec0;transition:color .4s}
.yv-aud.is-stage .yv-feat-t{grid-column:2;color:#55515b}
.yv-aud.is-stage .yv-feat-p{grid-column:2;min-height:0;overflow:hidden;opacity:0;transition:opacity .35s var(--yv-ease)}
.yv-aud.is-stage .yv-feat:not(.is-on) .yv-feat-b:hover{background:#faf9fc}
.yv-aud.is-stage .yv-feat:not(.is-on) .yv-feat-b:hover .yv-feat-t{color:#1e1e1e}
.yv-aud.is-stage .yv-feat.is-on .yv-feat-b{grid-template-rows:auto 1fr;row-gap:6px;background:color-mix(in srgb,var(--acc-a) 7%,#fff)}
.yv-aud.is-stage .yv-feat.is-on .yv-feat-b::before,.yv-aud.is-stage .yv-feat.is-on .yv-feat-t{color:var(--acc-a)}
.yv-aud.is-stage .yv-feat.is-on .yv-feat-p{opacity:1;transition-delay:.12s}
/* Barre de progression de l'item actif (lecture automatique) */
.yv-aud.is-stage .yv-feat-b::after{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--acc-a),var(--acc-b));transform:scaleX(0);transform-origin:left;opacity:0}
.yv-aud.is-stage.is-auto .yv-feat.is-on .yv-feat-b::after{opacity:1;animation:yv-fill var(--yv-auto,6s) linear forwards}
.yv-aud.is-stage.is-auto .yv-panels:hover .yv-feat.is-on .yv-feat-b::after{animation-play-state:paused}
@keyframes yv-fill{to{transform:scaleX(1)}}
.yv-aud.is-stage .yv-stage{display:block;position:relative;min-height:680px;overflow:hidden;
 background:radial-gradient(70% 60% at 72% 28%,color-mix(in srgb,var(--acc-b) 34%,transparent),transparent 70%),radial-gradient(60% 50% at 10% 100%,color-mix(in srgb,var(--acc-a) 18%,transparent),transparent 70%),linear-gradient(160deg,color-mix(in srgb,var(--acc-a) 6%,#fff),color-mix(in srgb,var(--acc-b) 14%,#f7f4ff));transition:background .6s var(--yv-ease)}
/* Trame de points très légère : donne de la matière au fond sans image */
.yv-aud.is-stage .yv-stage::before{content:"";position:absolute;inset:0;background:radial-gradient(circle,#20183014 1px,transparent 1.2px) 0 0/22px 22px;-webkit-mask:linear-gradient(160deg,#000,transparent 75%);mask:linear-gradient(160deg,#000,transparent 75%)}
.yv-aud.is-stage .yv-frames{position:absolute;inset:40px 36px}
.yv-frames::before{display:none}
.yv-frame{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;margin:0;opacity:0;transform:translateY(22px) scale(.96);transition:opacity .5s var(--yv-ease),transform .7s var(--yv-ease);pointer-events:none}
.yv-frame.is-on{opacity:1;transform:none}
.yv-frame img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:20px;box-shadow:0 0 0 1px #2018300f,0 40px 70px -36px #38204c80}
.yv-dots{display:flex;flex-direction:column;gap:10px}
.yv-dots i{display:block;width:8px;height:8px;border-radius:99px;background:#e0dce6;transition:height .4s var(--yv-ease),background .3s}
.yv-dots i.is-on{height:24px;background:linear-gradient(var(--acc-a),var(--acc-b))}

/* Tablette et mobile : les fonctionnalités, chacune avec sa capture, en rail horizontal aimanté */
.yv-aud:not(.is-stage) .yv-feat-b{cursor:default;padding:16px 18px;background:#fff;box-shadow:0 10px 28px -20px #38204c55,inset 0 0 0 1px var(--yv-line)}
.yv-aud:not(.is-stage) .yv-feat-b::before{display:none}
.yv-aud:not(.is-stage) .yv-feat-t{color:var(--acc-a)}
.yv-aud:not(.is-stage) .yv-feat-shot{display:block;margin:12px 0 18px}
.yv-aud:not(.is-stage) .yv-feats{gap:8px}
@media (max-width:1023.98px){
 .yv-panel{grid-template-columns:minmax(0,1fr)}
 .yv-panel-copy{min-width:0}
 .yv-aud:not(.is-stage) .yv-feats{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -8px;padding:4px 8px 14px;scroll-padding-inline:8px;scrollbar-width:none;overscroll-behavior-x:contain}
 .yv-aud:not(.is-stage) .yv-feats::-webkit-scrollbar{display:none}
 .yv-aud:not(.is-stage) .yv-feat{flex:0 0 84%;scroll-snap-align:start;display:flex;flex-direction:column;align-self:flex-start}
 .yv-aud:not(.is-stage) .yv-feat-b{flex:none;align-content:start}
 .yv-aud:not(.is-stage) .yv-feat-shot{margin:10px 0 0!important}
 .yv-aud:not(.is-stage) .yv-feat{flex-basis:min(46%,380px)}
}
@media (max-width:699.98px){.yv-aud:not(.is-stage) .yv-feat{flex-basis:84%}}

@media (prefers-reduced-motion:reduce){.yv-feat-b,.yv-feat-b::before,.yv-feat-p,.yv-frame,.yv-dots i{transition:none}}

/* Tarifs : contenu repris de app.yoovi.fr/register, design de la section tarifs Framer d'origine
   (fond #f7f7f7, Inter Display, titre avec partie en Source Serif 4, interrupteur, carte Plus en dégradé). */
.yv-price{max-width:none;padding:75px 60px 96px;background:#f7f7f7;font-family:"Inter Display",Inter,sans-serif;color:#1a1a1a}
.yv-phead{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:900px;margin:0 auto 40px;text-align:center}
.yv-pkicker{display:inline-flex;align-items:center;gap:10px;padding:5px 12px 5px 5px;border-radius:21px;background:#fff;box-shadow:#b1abde42 0 1.87px 1.87px -.94px,#b1abde3b 0 9.16px 9.16px -2.34px,#b1abde17 0 47px 47px -3.75px;font:500 18px/1.2 Inter,sans-serif;letter-spacing:-.06em;color:#595269fa}
.yv-phead h2{font:600 var(--yv-h2)/1 "Inter Display",Inter,sans-serif;letter-spacing:-.043em;color:#1e1e1e;text-wrap:balance}
.yv-phead h2 em{font-style:normal;color:var(--yv-violet)}
.yv-plead{max-width:640px;font-size:20px;line-height:1.4;color:#888}
.yv-grad{background:linear-gradient(90deg,#51ade5 0%,#0452ff 50%,#be04ff 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.yv-bill{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:40px;font-size:18px}
.yv-switch{position:relative;width:60px;height:33px;padding:3px;border:0;border-radius:100px;background:#1a1a1a1a;cursor:pointer;transition:background .3s}
.yv-switch span{display:block;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0000002e;transition:transform .35s var(--yv-ease)}
.yv-switch[aria-checked=true]{background:linear-gradient(90deg,#51ade5,#0452ff 50%,#be04ff)}
.yv-switch[aria-checked=true] span{transform:translateX(27px)}
.yv-switch:focus-visible{outline:3px solid #0452ff;outline-offset:3px}
.yv-price[data-billing=month] .yv-y,.yv-price[data-billing=year] .yv-m{display:none}
.yv-plans{display:grid;grid-template-columns:repeat(3,minmax(0,380px));justify-content:center;gap:30px;align-items:start}
.yv-pcard{display:flex;flex-direction:column;gap:28px;padding-bottom:40px;border-radius:30px 30px 40px 40px;background:#fff}
.yv-pcard--pop{border:6px solid transparent;border-radius:35px 35px 45px 45px;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(160deg,#9fd3f5,#7b8cff 55%,#c27bff) border-box}
.yv-ptop{display:flex;flex-direction:column;gap:16px;padding:16px;border-radius:30px;background:#fff;box-shadow:0 2px 5px #0000000a,0 9px 9px #0000000a,0 20px 12px #00000005,0 36px 14px #00000003}
.yv-ppanel{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;min-height:180px;padding:18px 16px;border-radius:20px;overflow:hidden;background:#f7f7f7}
.yv-ppanel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.yv-ppanel>*:not(img){position:relative}
.yv-pcard--pop .yv-ppanel{color:#fff}
.yv-pname{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:auto!important;font-size:20px}
.yv-pbadge{padding:5px 10px;border-radius:999px;background:#ffffffe6;color:#1a1a1a;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase}
.yv-pp{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.yv-pp>span:not(.yv-per){display:inline-flex;align-items:baseline;gap:10px}
.yv-pp b{font-size:46px;font-weight:400;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.yv-pp s{font-size:23px;opacity:.75;text-decoration-color:#ff3b3b;text-decoration-thickness:2px}
.yv-per{font-size:18px;opacity:.85}
.yv-psub{font-size:13.5px;opacity:.8}
.yv-pbtn{display:flex;align-items:center;justify-content:space-between;gap:12px;height:56px;padding:0 12px 0 20px;border-radius:13px;background:#1a1a1a;color:#fff;font-size:16px;font-weight:500;text-decoration:none;box-shadow:inset 0 1px 1px #ffffff33;transition:transform .2s var(--yv-ease),background .2s}
.yv-pbtn:hover{transform:translateY(-2px);background:#000}
.yv-pbtn-ico{display:grid;place-items:center;width:32px;height:32px;border-radius:100px;background:#fff}
.yv-pbtn-ico svg{width:16px;height:16px;fill:none;stroke:#1a1a1a;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--yv-ease)}
.yv-pbtn:hover .yv-pbtn-ico svg{transform:translateX(2px)}
.yv-pbtn:focus-visible{outline:3px solid #0452ff;outline-offset:3px}
.yv-pdesc{padding:0 24px;font-size:16px;line-height:1.45;color:#1a1a1a}
.yv-pfeats{display:grid;gap:14px;padding:0 24px!important}
.yv-pfeats li{position:relative;padding-left:30px;font-size:16px;line-height:1.45;color:#1a1a1acc}
.yv-pfeats li::before{content:"";position:absolute;left:0;top:2px;width:18px;height:18px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='1'%3E%3Cstop stop-color='%2351ade5'/%3E%3Cstop offset='.5' stop-color='%230452ff'/%3E%3Cstop offset='1' stop-color='%23be04ff'/%3E%3C/linearGradient%3E%3C/defs%3E%3Crect width='18' height='18' rx='5' fill='url(%23g)'/%3E%3Cpath d='m5 9.3 2.6 2.6L13 6.5' fill='none' stroke='%23fff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/18px no-repeat}
.yv-pfeats li.is-off{color:#1a1a1a73}
.yv-pfeats li.is-off::before{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Crect width='18' height='18' rx='5' fill='%23e9e9e9'/%3E%3Cpath d='m6.2 6.2 5.6 5.6m0-5.6-5.6 5.6' fill='none' stroke='%23999' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/18px no-repeat}
.yv-pfoot{margin-top:48px!important;text-align:center;font-size:18px;color:#888}
.yv-pfoot .yv-grad{font-size:22px}
@media (max-width:1199px){.yv-price{padding:64px 32px 80px}.yv-plans{grid-template-columns:repeat(auto-fit,minmax(300px,380px))}}
@media (max-width:699px){.yv-price{padding:56px 16px 64px}.yv-plead{font-size:17px}.yv-bill{font-size:16px;flex-wrap:wrap}.yv-pp b{font-size:40px}}
@media (prefers-reduced-motion:reduce){.yv-switch,.yv-switch span,.yv-pbtn,.yv-pbtn-ico svg{transition:none}}

/* Footer révélé (js/yoovi-sections.js) : la dernière section recouvre le footer qui remonte de derrière elle */

/* Responsive */
@media (max-width:1099px){.yv-win-body{grid-template-columns:1fr}.yv-thread{min-height:0}.yv-seg-b{font-size:12px}}
@media (max-width:899px){
 .yv-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
 .yv-card--guide,.yv-card--adapt,.yv-card--rooms,.yv-card--modes{grid-column:span 6}
 .yv-card--notion,.yv-card--exam{grid-column:span 3}
 .yv-win-body{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr)}
 .yv-panel{grid-template-columns:1fr;gap:24px}
}
@media (max-width:699px){
 .yv-bento,.yv-aud{padding-left:4px;padding-right:4px}
 .yv-grid{grid-template-columns:1fr;gap:12px}
 .yv-grid>.yv-card{grid-column:auto}
 .yv-card{border-radius:24px}
 .yv-copy{padding:18px 22px 22px}
 .yv-win{margin:14px 14px 0}
 .yv-win-body{grid-template-columns:1fr;padding:12px}
 .yv-card--guide h3{font-size:23px}
 .yv-path,.yv-notion,.yv-exam{padding:18px 18px 0}
 .yv-head{margin-bottom:32px}
 .yv-lead{font-size:16px}
 .yv-card--rooms{padding:22px 0}
 .yv-rooms-copy,.yv-rooms-note{padding:0 22px}
 .yv-rooms li{width:300px}
 .yv-cta-parent{flex-direction:column;align-items:flex-start;padding:26px 22px}
 .yv-cta-actions{align-items:flex-start}
 .yv-tabs{grid-template-columns:repeat(3,minmax(0,1fr));border-radius:24px}
 .yv-tab{padding:13px 4px;font-size:14.5px}
 .yv-eyebrow{font-size:16px}
 .yv-tab-ink{display:none}
 .yv-tab[aria-selected=true]{background:linear-gradient(135deg,var(--acc-a),var(--acc-b))}
 .yv-panel{padding:0 4px}
}
@media (prefers-reduced-motion:reduce){
 .yv-marquee-track{animation:none}
 .yv-card::after,.yv-tab-ink,.yv-seg-ink,.yv-steps li{transition:none}
}

/* Boîte à outils (remplace les cartes empilées Framer de « Tout est là, pour réussir ») :
   une grille de six tuiles. Entrée en cascade et survol en GSAP / CSS, transform + opacity seulement. */
#main [data-framer-name="Project Cards"]{display:none!important}
.yv-tools{position:relative;z-index:10;padding:8px 20px 24px}
.yv-tools ul,.yv-tools ol,.yv-tools h3,.yv-tools p:not(.yv-eyebrow){margin:0;padding:0;list-style:none}
.yv-tools .yv-eyebrow{margin:0}
/* Blocs sans image. En tête, deux fonctionnalités phares (séance guidée, parcours de
   révision) ; puis les six outils en blocs typographiques numérotés, chacun avec sa teinte. */
.yv-tfeat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px!important}
.yv-feature{--ez:cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden;display:flex;flex-direction:column;gap:12px;min-height:330px;padding:34px 34px 30px;border-radius:32px;transition:transform .6s var(--ez),box-shadow .6s var(--ez)}
.yv-feature--guided{color:#fff;background:radial-gradient(80% 70% at 100% 0%,#5046e5b3,transparent 70%),radial-gradient(60% 60% at 0% 100%,#be04ff2e,transparent 70%),linear-gradient(160deg,#2c2577,#1b1636 75%);box-shadow:inset 0 1px 0 #ffffff26,0 40px 70px -46px #2c2577}
.yv-feature--path{color:#1e1e1e;background:radial-gradient(80% 70% at 100% 0%,#ffd95a59,transparent 65%),linear-gradient(160deg,#f7f4ff,#ebe4ff);box-shadow:inset 0 0 0 1px #e4dcfb,0 40px 70px -50px #38204c59}
.yv-feature::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle,#ffffff1f 1px,transparent 1.3px) 0 0/20px 20px;-webkit-mask:linear-gradient(200deg,#000,transparent 55%);mask:linear-gradient(200deg,#000,transparent 55%)}
.yv-feature--path::after{background-image:radial-gradient(circle,#5046e51a 1px,transparent 1.3px)}
.yv-feature>*{position:relative;z-index:1}
.yv-feature-k{align-self:flex-start;padding:6px 12px;border-radius:99px;font:600 12px/1 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.yv-feature--guided .yv-feature-k{background:#ffffff17;box-shadow:inset 0 0 0 1px #ffffff2e;color:#ffd95a}
.yv-feature--path .yv-feature-k{background:#fff;box-shadow:inset 0 0 0 1px #e4dcfb;color:var(--yv-violet)}
.yv-feature h3{margin-top:6px!important;max-width:420px;font:600 clamp(26px,2.6vw,34px)/1.08 "Inter Display",Inter,sans-serif;letter-spacing:-.035em}
.yv-feature>p:not(.yv-feature-k){max-width:480px;font:500 16px/1.5 "Inter Display",Inter,sans-serif}
.yv-feature--guided>p:not(.yv-feature-k){color:#ffffffb3}
.yv-feature--path>p:not(.yv-feature-k){color:#55515b}
.yv-feature-steps{display:flex;flex-wrap:wrap;gap:8px;margin:auto 0 0!important;padding:14px 0 0!important;list-style:none;counter-reset:fs}
.yv-feature-steps li{counter-increment:fs;display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 7px;border-radius:99px;font:600 13.5px/1 "Inter Display",Inter,sans-serif}
.yv-feature-steps li::before{content:counter(fs);display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:11.5px}
.yv-feature--guided .yv-feature-steps li{background:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff26}
.yv-feature--guided .yv-feature-steps li::before{background:#ffd95a;color:#1b1636}
.yv-feature--path .yv-feature-steps li{background:#fff;box-shadow:0 6px 14px -10px #38204c66;color:#1e1e1e}
.yv-feature--path .yv-feature-steps li::before{background:var(--yv-violet);color:#fff}
.yv-tool-ix{position:absolute;top:26px;right:28px;font:600 13px/1 Inter,sans-serif;letter-spacing:.06em;color:#b3aec0}
.yv-feature .yv-tool-ix{top:34px;right:34px;font-size:14px}
.yv-feature--guided .yv-tool-ix{color:#ffffff66}
.yv-tgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.yv-tool{--ez:cubic-bezier(.22,1,.36,1);position:relative;display:flex;flex-direction:column;gap:10px;min-height:230px;padding:28px 28px 26px;border-radius:28px;overflow:hidden;background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line),0 1px 2px #2018300a;transition:transform .6s var(--ez),box-shadow .6s var(--ez)}
/* Teinte propre à chaque outil : liseré haut + halo d'angle */
.yv-tool::before{content:"";position:absolute;left:28px;right:28px;top:0;height:3px;border-radius:0 0 3px 3px;background:linear-gradient(90deg,var(--t-c),var(--t-b))}
.yv-tool::after{content:"";position:absolute;right:-60px;top:-60px;width:180px;height:180px;border-radius:50%;background:radial-gradient(var(--t-b),transparent 70%);opacity:.55;transition:transform .8s var(--ez)}
.yv-tool>*{position:relative;z-index:1}
.yv-tool>.yv-tool-ix,.yv-feature>.yv-tool-ix{position:absolute}
.yv-tool h3{display:flex;flex-direction:column;gap:6px;margin-top:4px!important;font:600 21px/1.18 "Inter Display",Inter,sans-serif;letter-spacing:-.025em;color:var(--yv-ink)}
.yv-tool h3 span{font:600 12px/1 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--t-c)}
.yv-tool p{font-size:15px;line-height:1.5;color:var(--yv-muted)}
.yv-tool-tag{align-self:flex-start;margin-top:auto;padding:6px 12px;border-radius:999px;background:var(--t-a);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--t-c) 18%,transparent);font:600 12.5px/1.2 Inter,sans-serif;color:var(--t-c)}
.yv-tool:nth-child(1){--t-a:#f4f1ff;--t-b:#d9d2ff;--t-c:#5046e5}
.yv-tool:nth-child(2){--t-a:#fff8e0;--t-b:#ffe596;--t-c:#a87400}
.yv-tool:nth-child(3){--t-a:#eefaf3;--t-b:#c4ecd5;--t-c:#16834a}
.yv-tool:nth-child(4){--t-a:#fff1f4;--t-b:#ffd0db;--t-c:#c2385a}
.yv-tool:nth-child(5){--t-a:#eef6ff;--t-b:#c9e0ff;--t-c:#1f6fd1}
.yv-tool:nth-child(6){--t-a:#f6f0ff;--t-b:#e0ccff;--t-c:#7b3fd6}
@media (hover:hover){
 .yv-tool:hover{transform:translateY(-6px);box-shadow:inset 0 0 0 1px #d9cdfa,0 28px 50px -30px #38204c66}
 .yv-tool:hover::after{transform:scale(1.25)}
 .yv-feature:hover{transform:translateY(-6px)}
}
@media (max-width:1023px){.yv-tgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.yv-feature{min-height:300px;padding:30px 28px 26px}}
@media (max-width:767px){.yv-tfeat{grid-template-columns:1fr;gap:12px;margin-bottom:12px!important}.yv-feature{min-height:0}}
@media (max-width:640px){
 .yv-tools{padding:8px 0 24px}
 .yv-tfeat{padding:0 20px!important}
 .yv-tgrid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 20px 12px;scroll-padding-inline:20px;scrollbar-width:none;overscroll-behavior-x:contain}
 .yv-tgrid::-webkit-scrollbar{display:none}
 .yv-tool{flex:0 0 78%;scroll-snap-align:start;min-height:250px}
 .yv-feature{padding:26px 22px 22px;border-radius:26px}
 .yv-feature .yv-tool-ix{top:28px;right:24px}
}
@media (prefers-reduced-motion:reduce){.yv-tool,.yv-tool::after,.yv-feature{transition:none}}

/* Sections Framer remplacées : comparatif (chiffres non sourcés), inscription newsletter */
#main section:has([data-framer-name="Comparison"]),#main section[data-framer-name="Comparison"],#main div[data-framer-name="Hero"]:has(> section[data-framer-name="Comparison"]),
#main section:has([data-framer-name="Email"]),#main div[data-framer-name="Hero"]:has(> section [data-framer-name="Email"]){display:none!important}
.yv-cmp h2,.yv-faq h2,.yv-final h2,.yv-cmp p,.yv-faq p,.yv-final p{margin:0}
.yv-cmp,.yv-faq{padding-top:72px;padding-bottom:40px}
.yv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Comparatif : deux cartes « double bezel » (coque + cœur), Yoovi d'abord et mis en avant.
   Les lignes des deux cartes partagent la même grille (subgrid) : chaque critère est aligné
   d'une carte à l'autre, et survoler un critère l'éclaire dans les deux. Mobile : rail aimanté. */
.yv-vs{--ez:cubic-bezier(.32,.72,0,1);display:grid;grid-template-columns:1.06fr 1fr;grid-template-rows:auto repeat(5,auto) auto;column-gap:22px;max-width:1040px;margin:8px auto 0;align-items:stretch}
.yv-vcard{grid-row:1/-1;display:grid;grid-template-rows:subgrid;padding:7px;border-radius:36px;background:#2018300a;box-shadow:inset 0 0 0 1px #2018300d;transition:transform .7s var(--ez),box-shadow .7s var(--ez)}
.yv-vcore{grid-row:1/-1;display:grid;grid-template-rows:subgrid;position:relative;overflow:hidden;border-radius:29px;background:#fff;box-shadow:inset 0 1px 0 #fff,0 1px 2px #2018300a,0 24px 48px -36px #38204c40}
.yv-vcard--y{background:linear-gradient(160deg,#5046e540,#be04ff14 60%,#5046e51f);box-shadow:inset 0 0 0 1px #5046e526,0 50px 90px -50px #3a2fd08c;transform:translateY(-14px)}
.yv-vcard--y .yv-vcore{color:#fff;background:radial-gradient(90% 60% at 100% 0%,#7a6ff0a6 0,#7a6ff000 70%),radial-gradient(70% 50% at 0% 100%,#be04ff2e 0,#be04ff00 70%),linear-gradient(165deg,#2c2577,#1b1636 70%);box-shadow:inset 0 1px 0 #ffffff2e,inset 0 0 0 1px #ffffff0f}
/* Grain très léger sur la carte Yoovi (matière, pas d'image chargée) */
.yv-vcard--y .yv-vcore::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.yv-vhead{position:relative;display:flex;align-items:center;gap:14px;padding:26px 28px 22px}
.yv-vhead h3{margin:0;font:600 26px/1.05 "Inter Display",Inter,sans-serif;letter-spacing:-.035em}
.yv-vhead p{margin:4px 0 0;font:500 15px/1.3 "Inter Display",Inter,sans-serif;color:#7f7f80}
.yv-vcard--y .yv-vhead p{color:#ffffffa6}
.yv-vic{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:15px;background:#f2ebff;box-shadow:inset 0 0 0 1px #5046e51a}
.yv-vic svg{width:22px;height:22px;fill:var(--yv-violet)}
.yv-vcard--y .yv-vic{background:linear-gradient(#4f1ad6,#8059e3);box-shadow:inset 0 1px 0 #ffffff40,0 10px 24px -10px #8059e3}
.yv-vcard--y .yv-vic svg{fill:#fff}
.yv-vtag{margin-left:auto;align-self:flex-start;padding:6px 11px;border-radius:99px;background:#ffffff14;box-shadow:inset 0 0 0 1px #ffffff24;font:600 11px/1 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#ffd95a;white-space:nowrap}
.yv-vlist{display:contents;margin:0}
.yv-vrow{position:relative;display:flex;flex-direction:column;gap:6px;margin:0 14px;padding:16px 14px;border-top:1px solid var(--yv-line);border-radius:0;transition:background-color .5s var(--ez),border-color .5s var(--ez)}
.yv-vcard--y .yv-vrow{border-color:#ffffff17}
.yv-vrow dt{font:600 11.5px/1.2 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#8b8794}
.yv-vcard--y .yv-vrow dt{color:#ffffff80}
.yv-vrow dd{display:flex;align-items:flex-start;gap:11px;margin:0;font:500 16.5px/1.4 "Inter Display",Inter,sans-serif;letter-spacing:-.01em;color:#55515b}
.yv-vcard--y .yv-vrow dd{color:#fff}
.yv-vck{display:grid;place-items:center;flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;background:#ffd95a;box-shadow:0 0 0 4px #ffd95a1f}
.yv-vck svg{width:12px;height:12px;fill:#1b1636}
.yv-vmk{flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;box-shadow:inset 0 0 0 1.5px #d9d3e6;background:radial-gradient(circle,#b7b0c6 0 2.5px,transparent 3px)}
/* Un critère survolé s'éclaire dans les deux cartes */
.yv-vs:has([data-k="0"]:hover) [data-k="0"],.yv-vs:has([data-k="1"]:hover) [data-k="1"],.yv-vs:has([data-k="2"]:hover) [data-k="2"],.yv-vs:has([data-k="3"]:hover) [data-k="3"],.yv-vs:has([data-k="4"]:hover) [data-k="4"]{background:#f7f4ff;border-radius:16px;border-top-color:transparent}
.yv-vs:has([data-k="0"]:hover) .yv-vcard--y [data-k="0"],.yv-vs:has([data-k="1"]:hover) .yv-vcard--y [data-k="1"],.yv-vs:has([data-k="2"]:hover) .yv-vcard--y [data-k="2"],.yv-vs:has([data-k="3"]:hover) .yv-vcard--y [data-k="3"],.yv-vs:has([data-k="4"]:hover) .yv-vcard--y [data-k="4"]{background:#ffffff12}
.yv-vs:has([data-k]:hover) [data-k]:hover+[data-k],.yv-vs [data-k]:has(+[data-k]:hover){border-top-color:transparent}
.yv-vfoot{display:flex;align-items:flex-end;padding:20px 28px 28px}
.yv-vfoot .yv-btn{box-shadow:0 0 0 1px #ffffff1f,0 18px 40px -16px #5046e5,inset 0 -8px 14px #1c0f0fa8}
.yv-vbest{margin:0;padding:14px 16px;border-radius:18px;background:#faf9fc;box-shadow:inset 0 0 0 1px var(--yv-line);font:500 15px/1.45 "Inter Display",Inter,sans-serif;color:#55515b}
.yv-vbest b{display:block;margin-bottom:2px;font:600 11.5px/1.2 Inter,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--yv-violet)}
@media (hover:hover){.yv-vcard--p:hover{transform:translateY(-4px)}.yv-vcard--y:hover{transform:translateY(-18px)}}
/* Bandeau « les deux se complètent » */
.yv-cduo{display:flex;align-items:center;gap:16px;max-width:760px;margin:36px auto 0;padding:8px 22px 8px 8px;border-radius:99px;background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line),0 20px 40px -32px #38204c55}
.yv-cduo-ic{display:grid;place-items:center;flex:none;width:44px;height:44px;border-radius:50%;background:#f2ebff;font:500 24px/1 "Inter Display",Inter,sans-serif;color:var(--yv-violet)}
.yv-cduo p{font:500 15.5px/1.4 "Inter Display",Inter,sans-serif;color:#55515b}
.yv-cduo b{color:#1e1e1e;font-weight:600}
@media (max-width:1199.98px){.yv-vs{column-gap:16px}.yv-vhead{padding:22px 22px 18px}.yv-vrow{margin:0 10px;padding:14px 12px}.yv-vfoot{padding:16px 22px 22px}.yv-vtag{display:none}}
/* Mobile : rail horizontal aimanté, Yoovi en premier, la carte suivante dépasse pour inviter au geste */
@media (max-width:699.98px){
 .yv-vs{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:4px calc(-1*var(--yv-gut,16px)) 0;padding:18px var(--yv-gut,16px) 22px;scroll-padding-inline:var(--yv-gut,16px);scrollbar-width:none;overscroll-behavior-x:contain}
 .yv-vs::-webkit-scrollbar{display:none}
 .yv-vcard{flex:0 0 86%;display:block;scroll-snap-align:start;transform:none!important;padding:6px;border-radius:30px}
 .yv-vcore{display:flex;flex-direction:column;height:100%;border-radius:24px}
 .yv-vhead{padding:20px 18px 16px}.yv-vhead h3{font-size:23px}
 .yv-vic{width:42px;height:42px;border-radius:13px}
 .yv-vrow{margin:0 8px;padding:13px 10px}
 .yv-vrow dd{font-size:15.5px}
 .yv-vfoot{margin-top:auto;padding:14px 16px 18px}
 .yv-cduo{margin-top:14px;border-radius:24px;padding:12px 16px 12px 12px;align-items:flex-start}
 .yv-cduo-ic{width:38px;height:38px;font-size:21px}
 .yv-cduo p{font-size:14.5px}
}
@media (prefers-reduced-motion:reduce){.yv-vcard,.yv-vrow{transition:none}}

/* FAQ : accordéon natif <details> ; ouverture fluide là où ::details-content est animable */
.yv-qs{display:flex;flex-direction:column;gap:10px;max-width:820px;margin:0 auto}
.yv-q{border-radius:20px;background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line);transition:box-shadow .3s var(--yv-ease)}
.yv-q[open]{box-shadow:inset 0 0 0 1px #d9cdfa,0 18px 40px -30px #38204c55}
.yv-q summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:60px;padding:16px 22px;cursor:pointer;list-style:none;font:600 16.5px/1.35 Inter,sans-serif;color:var(--yv-ink);-webkit-tap-highlight-color:transparent}
.yv-q summary::-webkit-details-marker{display:none}
.yv-q summary:focus-visible{outline:3px solid var(--yv-violet);outline-offset:2px;border-radius:20px}
.yv-q summary i{position:relative;flex:none;width:28px;height:28px;border-radius:50%;background:var(--yv-lav-2);box-shadow:inset 0 0 0 1px var(--yv-line)}
.yv-q summary i::before,.yv-q summary i::after{content:"";position:absolute;left:50%;top:50%;width:11px;height:2px;margin:-1px 0 0 -5.5px;border-radius:2px;background:var(--yv-violet);transition:transform .3s var(--yv-ease)}
.yv-q summary i::after{transform:rotate(90deg)}
.yv-q[open] summary i::after{transform:rotate(0)}
.yv-a{padding:0 22px 20px;font-size:15.5px;line-height:1.6;color:var(--yv-muted)}
@supports (interpolate-size:allow-keywords){
 .yv-faq{interpolate-size:allow-keywords}
 .yv-q::details-content{block-size:0;overflow:hidden;transition:block-size .35s cubic-bezier(.22,1,.36,1),content-visibility .35s allow-discrete}
 .yv-q[open]::details-content{block-size:auto}
}
.yv-faq-more{margin-top:22px!important;text-align:center;font-size:15px;color:var(--yv-muted)}
.yv-faq-more a{color:var(--yv-violet);font-weight:600}

/* CTA final */
.yv-final{padding-top:56px;padding-bottom:72px}
.yv-final-in{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;gap:18px;max-width:1080px;margin:0 auto;padding:64px 28px;border-radius:36px;text-align:center;background:radial-gradient(80% 120% at 50% 0%,#3b2f7a,#201a30 70%);box-shadow:0 40px 80px -50px #201a30}
.yv-final-in::before{content:"";position:absolute;width:520px;height:520px;left:50%;top:-320px;margin-left:-260px;border-radius:50%;background:radial-gradient(closest-side,#5046e5aa,#5046e500);pointer-events:none}
.yv-final-in>*{position:relative}

.yv-final h2{max-width:820px;font:600 var(--yv-h2)/1 "Inter Display",Inter,sans-serif;letter-spacing:-.043em;color:#fff}
.yv-final h2 em{font-style:normal;color:#b9b2ff}
.yv-final .yv-lead{max-width:560px;color:#cfc9e8}
.yv-final-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 22px;margin-top:8px}
.yv-final-link{min-height:44px;display:inline-flex;align-items:center;color:#e7e3ff;font-weight:500;text-decoration:underline;text-underline-offset:4px;text-decoration-color:#ffffff55}

/* Rails horizontaux à aimantation (mobile) : tarifs et fonctionnalités de « Pour qui ».
   La carte suivante dépasse pour montrer qu'on peut glisser. */
@media (max-width:699px){
 .yv-plans{display:flex;justify-content:flex-start;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--yv-gut,16px));padding:6px var(--yv-gut,16px) 18px;scroll-padding-inline:var(--yv-gut,16px);scrollbar-width:none;overscroll-behavior-x:contain;align-items:stretch}
 .yv-plans::-webkit-scrollbar{display:none}
 .yv-pcard{flex:0 0 84%;scroll-snap-align:start}
 .yv-panel{grid-template-columns:minmax(0,1fr)}
 .yv-panel-copy{min-width:0}
 .yv-cmp,.yv-faq{padding-top:48px}
 .yv-q summary{padding:14px 16px;font-size:15.5px}
 .yv-a{padding:0 16px 16px}
 .yv-final{padding-left:12px;padding-right:12px}
 .yv-final-in{padding:44px 20px;border-radius:28px}
 .yv-final-cta{flex-direction:column;width:100%}
 .yv-final .yv-btn{width:100%;justify-content:center}
}
@media (prefers-reduced-motion:reduce){.yv-q,.yv-q summary i::after,.yv-q::details-content{transition:none}}

/* CTA de section (copie du séparateur Framer : bouton + mention) */
.yv-sec-cta{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:40px}
.yv-sec-cta .yv-cta-note{font-size:13px;color:#7f7f80}

/* « Tout est là, pour réussir » : section complète (Framer ne l'a qu'en desktop et mobile) */
.yv-tools{padding-top:72px!important;padding-bottom:48px!important;max-width:1240px;margin:0 auto;overflow:visible}
.yv-tools h2,.yv-tools .yv-lead{margin:0}
.yv-tfloat{position:absolute;z-index:0;pointer-events:none;height:auto;filter:drop-shadow(0 18px 24px #4f1ad622);animation:yv-bob 6s ease-in-out infinite}
.yv-tfloat--a{left:2%;top:120px;width:clamp(70px,10vw,142px)}
.yv-tfloat--b{right:2%;top:24px;width:clamp(64px,9vw,130px);animation-delay:-3s}
.yv-tools>*:not(.yv-tfloat){position:relative;z-index:1}
@keyframes yv-bob{50%{transform:translateY(-12px) rotate(-3deg)}}
@media (max-width:699px){.yv-tfloat--a{top:auto;bottom:120px;left:-6px}.yv-tfloat--b{top:8px;right:-6px}}

/* Premiers pas : trois étapes (reconstruit : Framer ne l'a qu'en desktop et mobile) */
#main [data-framer-name="Hero"]:has([data-framer-name="Cards"] [data-framer-name="Card Item"]){display:none!important}
.yv-steps3{padding-top:64px;padding-bottom:24px}
.yv-steps3 h2,.yv-steps3 h3,.yv-steps3 p{margin:0}
.yv-sgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:0;padding:0;list-style:none;counter-reset:s}
.yv-step{position:relative;display:flex;flex-direction:column;gap:10px;padding:28px 26px 30px;border-radius:28px;background:#fff;box-shadow:inset 0 0 0 1px var(--yv-line),0 24px 50px -40px #38204c55}
.yv-step-n{display:grid;place-items:center;width:44px;height:44px;margin-bottom:8px;border-radius:14px;background:linear-gradient(#4f1ad6,#8059e3);color:#fff;font:600 20px/1 "Inter Display",Inter,sans-serif}
.yv-step h3{font:600 22px/1.15 "Inter Display",Inter,sans-serif;letter-spacing:-.03em;color:#1e1e1e}
.yv-step p{font-size:15.5px;line-height:1.5;color:var(--yv-muted)}
@media (max-width:899px){.yv-sgrid{grid-template-columns:1fr}}
@media (max-width:699px){
 .yv-sgrid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -4px;padding:4px 4px 14px;scrollbar-width:none;overscroll-behavior-x:contain}
 .yv-sgrid::-webkit-scrollbar{display:none}
 .yv-step{flex:0 0 82%;scroll-snap-align:start}
 .yv-eyebrow,.yv-pkicker{font-size:15px}
}
@media (prefers-reduced-motion:reduce){.yv-tfloat{animation:none}}
@media (max-width:400px){.yv-eyebrow{font-size:14px;white-space:nowrap}}

/* Tablette : avis + bouton séparateur recréés (Framer ne les rend pas entre 768 et 1199 px) */
.yv-tavis,.yv-tsep{display:none}
@media (min-width:768px) and (max-width:1199.98px){
 .yv-tsep{display:flex;justify-content:center;padding:40px 0 16px}
 .yv-tavis{position:relative;z-index:10;display:flex;flex-direction:column;align-items:center;gap:22px;padding:88px 40px;text-align:center;background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}
 .yv-tavis-stars{margin:0;font-size:24px;letter-spacing:4px;color:#6b5be6}
 .yv-tavis blockquote{margin:0;max-width:720px}
 .yv-tavis blockquote p{margin:0;font:500 clamp(34px,4.8vw,46px)/1.12 Inter,sans-serif;letter-spacing:-.03em;color:#171717;text-wrap:balance}
 .yv-tavis em{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400}
 .yv-tavis-who{display:inline-flex;align-items:center;gap:10px;margin:0;padding:6px 14px 6px 6px;border-radius:10px;background:#fff;box-shadow:#b1abde42 0 1.87px 1.87px -.94px,#b1abde3b 0 9.16px 9.16px -2.34px,#b1abde2b 0 25.8px 25.8px -3.28px;font:500 16px/1.3 Inter,sans-serif;color:#595269}
 .yv-tavis-who img{width:28px;height:28px;border-radius:6px;object-fit:cover}
 .yv-tavis .yv-btn{margin-top:18px}
}

/* Captures animées de l'app (rushs iPhone recadrés, 360×738). Le cadre du téléphone fait
   partie de la vidéo : on rogne les coins du fond blanc à la forme du téléphone. */
.yv-clip{display:block;width:100%;height:auto;aspect-ratio:360/738;background:transparent;clip-path:inset(.7% 2% .8% 1.6% round 12.5% / 6.1%)}
/* Bento : le téléphone sort d'un fond lavande, coupé en bas, et se soulève au survol */
.yv-shot{position:relative;overflow:hidden;height:clamp(300px,27vw,360px);margin:10px 10px 0;border-radius:20px;
 background:radial-gradient(70% 70% at 50% 100%,#c9bfff8c,transparent 70%),radial-gradient(50% 60% at 85% 10%,#ffd95a33,transparent 70%),linear-gradient(180deg,#f7f4ff,#efe9ff)}
.yv-shot::before{content:"";position:absolute;inset:0;background:radial-gradient(circle,#5046e514 1px,transparent 1.3px) 0 0/20px 20px;-webkit-mask:linear-gradient(#000,transparent 80%);mask:linear-gradient(#000,transparent 80%)}
.yv-shot .yv-clip{position:absolute;left:50%;top:26px;width:min(230px,64%);translate:-50% 0;transition:translate .7s cubic-bezier(.22,1,.36,1)}
@media (hover:hover){.yv-card:hover .yv-shot .yv-clip{translate:-50% -8px}}
.yv-card--guide .yv-shot{height:clamp(340px,30vw,420px)}
.yv-card--guide .yv-shot .yv-clip{width:min(260px,52%)}
/* Pour qui : téléphone entier dans la scène (grand écran) et sous chaque item (rail) */
.yv-frame video{height:100%;width:auto;max-width:100%;object-fit:contain}
.yv-feat-shot video{width:auto;max-width:100%;max-height:420px;margin:0 auto}
@media (max-width:699.98px){.yv-shot{height:330px}.yv-shot .yv-clip{width:min(220px,62%)}}
@media (prefers-reduced-motion:reduce){.yv-shot .yv-clip{transition:none}}

/* Calque motion design posé sur les captures (positions en % de la vidéo, synchronisées sur
   son temps par js : chaque élément s'allume entre ses deux repères data-t). */
.yv-mo{position:relative;isolation:isolate;aspect-ratio:360/738}
/* Ombre du téléphone en box-shadow statique : un filter sur une vidéo se recalcule à chaque image */
.yv-mo:not(.yv-mo--wide)::before{content:"";position:absolute;z-index:-1;inset:.7% 2% .8% 1.6%;border-radius:12.5%/6.1%;box-shadow:0 30px 44px -14px #38204c59}
.yv-mo>.yv-clip{width:100%;height:100%}
.yv-mo--wide{aspect-ratio:540/590}
.yv-clip--wide{clip-path:none;border-radius:22px;object-fit:cover}
.yv-mo-l{position:absolute;inset:0;pointer-events:none;--ez:cubic-bezier(.22,1,.36,1)}
.yv-mo-l>*{position:absolute;left:var(--x);top:var(--y)}
/* Étiquette */
.yv-mo-chip{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:99px;white-space:nowrap;
 background:#fffffff2;color:#1e1e1e;font:600 13px/1 "Inter Display",Inter,sans-serif;letter-spacing:-.01em;
 box-shadow:0 0 0 1px #5046e51f,0 14px 30px -12px #38204c66,0 2px 6px #38204c1a;
 opacity:0;translate:-50% -50%;transform:translateY(10px) scale(.9);
 transition:opacity .22s,transform .25s var(--ez)}
.yv-mo-chip.is-on{opacity:1;transform:none;transition:opacity .45s var(--ez),transform .6s var(--ez)}
.yv-mo-chip.is-violet{background:linear-gradient(135deg,#5046e5,#8059e3);color:#fff;box-shadow:0 14px 30px -12px #5046e5,inset 0 1px 0 #ffffff40}
.yv-mo-chip.is-sm{padding:6px 10px;font-size:12px}
.yv-mo-chip.is-step b{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#5046e5;color:#fff;font-size:11px}
.yv-mo-chip.is-ok{color:#0f7a43}
.yv-mo-ic{font-style:normal;color:#ffd95a}
.yv-mo-ok{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#19a35b;font-style:normal}
.yv-mo-ok svg{width:14px;height:14px;fill:none;stroke:#fff;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
/* Surlignage d'une zone de l'écran : cadre violet qui se pose, reflet qui passe */
.yv-mo-hl{width:var(--w);height:var(--h);border-radius:12px;overflow:hidden;background:#5046e50f;
 box-shadow:inset 0 0 0 2px #5046e5,0 0 0 5px #5046e51f;opacity:0;transform:scale(1.06);transition:opacity .2s,transform .25s var(--ez)}
.yv-mo-hl.is-on{opacity:1;transform:none;transition:opacity .35s var(--ez),transform .55s var(--ez)}
.yv-mo-hl::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,#ffffff8c 50%,transparent 70%);translate:-100% 0}
.yv-mo-hl.is-on::after{animation:yv-sheen 1.1s .25s var(--ez) both}
@keyframes yv-sheen{to{translate:100% 0}}
/* Tap du doigt : onde qui part du point touché */
.yv-mo-tap{width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;background:#5046e540;box-shadow:0 0 0 2px #5046e5;opacity:0;transform:scale(.4)}
.yv-mo-tap.is-on{animation:yv-tap .75s var(--ez) both}
@keyframes yv-tap{0%{opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(.8)}100%{opacity:0;transform:scale(1.9)}}
/* Check « Maîtrisé » : le disque grandit, le trait se dessine, une onde s'échappe */
.yv-mo-check{display:grid;place-items:center;width:34%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
 background:radial-gradient(circle at 30% 25%,#3fd38a,#159a4a 70%);box-shadow:0 22px 44px -14px #159a4acc,inset 0 2px 0 #ffffff59;opacity:0;transform:scale(.2)}
.yv-mo-check svg{width:62%;fill:none;stroke:#fff;stroke-width:5.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:36;stroke-dashoffset:36}
.yv-mo-check i{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 3px #3fd38a;opacity:0}
.yv-mo-check.is-on{animation:yv-check-in .55s var(--ez) both}
.yv-mo-check.is-on svg{animation:yv-draw .45s .22s var(--ez) both}
.yv-mo-check.is-on i{animation:yv-ring .9s .2s var(--ez) both}
.yv-mo-check:not(.is-on){transition:opacity .3s,transform .35s var(--ez)}
@keyframes yv-check-in{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.06)}100%{opacity:1;transform:scale(1)}}
@keyframes yv-draw{to{stroke-dashoffset:0}}
@keyframes yv-ring{0%{opacity:.9;transform:scale(1)}100%{opacity:0;transform:scale(1.7)}}
/* Bento : le calque suit le téléphone (même position que la vidéo) */
.yv-shot .yv-mo{position:absolute;left:50%;top:26px;width:min(230px,64%);translate:-50% 0;transition:translate .7s cubic-bezier(.22,1,.36,1)}
.yv-shot .yv-mo>.yv-clip{position:static;width:100%;translate:none}
.yv-card--guide .yv-shot .yv-mo{width:min(260px,52%)}
@media (hover:hover){.yv-card:hover .yv-shot .yv-mo{translate:-50% -8px}.yv-card:hover .yv-shot .yv-clip{translate:none}}
@media (max-width:699.98px){.yv-shot .yv-mo{width:min(220px,62%)}}
/* Pour qui : scène (grand écran) et rail */
.yv-frame .yv-mo{height:100%;max-width:100%}
.yv-frame .yv-mo--wide{height:auto;width:100%;max-height:100%}
.yv-feat-shot .yv-mo{width:205px;margin:0 auto}
.yv-feat-shot .yv-mo--wide{width:100%;max-width:380px}
.yv-frame .yv-mo>video,.yv-feat-shot .yv-mo>video{height:100%;width:100%;max-height:none}
@media (prefers-reduced-motion:reduce){.yv-mo-l{display:none}}

/* Disposition bento (ordinateur et tablette) : grande carte à gauche et à droite sur deux
   rangées, deux cartes empilées au centre, puis deux cartes larges en bas. */
@media (min-width:900px){
 .yv-grid{grid-template-columns:repeat(6,minmax(0,1fr));grid-auto-rows:auto}
 .yv-grid>.yv-card{grid-column:auto;grid-row:auto}
 .yv-grid>.yv-card--guide{grid-column:1 / 3;grid-row:1 / 3}
 .yv-grid>.yv-card--adapt{grid-column:3 / 5;grid-row:1}
 .yv-grid>.yv-card--notion{grid-column:3 / 5;grid-row:2}
 .yv-grid>.yv-card--exam{grid-column:5 / 7;grid-row:1 / 3}
 .yv-grid>.yv-card--rooms{grid-column:1 / 4;grid-row:3}
 .yv-grid>.yv-card--modes{grid-column:4 / 7;grid-row:3}
 /* Grandes cartes : la scène occupe toute la hauteur libre ; petites cartes : scène plus courte */
 .yv-card--guide .yv-shot,.yv-card--exam .yv-shot{flex:1 1 auto;height:auto;min-height:420px}
 .yv-card--adapt .yv-shot,.yv-card--notion .yv-shot{height:230px}
 .yv-card--adapt .yv-copy,.yv-card--notion .yv-copy{padding:16px 22px 22px}
 .yv-card--adapt h3,.yv-card--notion h3{font-size:20px}
 .yv-card--guide .yv-shot .yv-mo,.yv-card--exam .yv-shot .yv-mo{width:min(250px,74%)}
 .yv-card--adapt .yv-shot .yv-mo,.yv-card--notion .yv-shot .yv-mo{top:20px;width:min(190px,62%)}
 .yv-card--modes .yv-shot{height:300px}
}

/* Fond blanc pour tout ce qui suit le hero : le conteneur Framer de la page est lavande
   (js : dégradé à arrêt net posé sous le hero) ; séparateurs Framer et tarifs passés en blanc. */
#main [data-framer-name="separateur v/b"],#main [data-framer-name="Séparateur V/B"]{background:#fff!important}
.yv-price{background:#fff!important}

/* Logo Yoovi centré en tête du footer */
.yv-foot-logo{display:flex;justify-content:center;width:100%;padding:40px 0 0}
.yv-foot-logo img{display:block;width:96px;height:96px;object-fit:contain}
.yv-foot-logo-replaced{display:none!important}
@media (max-width:767.98px){.yv-foot-logo{padding-top:24px}.yv-foot-logo img{width:80px;height:80px}}

/* Dégradé du footer Framer (sprite SVG) recoloré dans la palette de marque : violet Yoovi,
   violet clair des pastilles, violet profond des cartes sombres (au lieu de bleus électriques). */
path[fill="#0D00FF"]{fill:#5046e5}
path[fill="#4800FF"]{fill:#8059e3}
path[fill="#1D0090"]{fill:#2c2577}

/* Menu « Pour qui » de la barre en verre (landing) : panneau sous l'entrée, au survol / focus */
.yv-qui{position:fixed;z-index:60;left:0;top:0;padding-top:10px;opacity:0;transform:translateY(6px);transition:opacity .22s,transform .35s cubic-bezier(.22,1,.36,1);pointer-events:none}
.yv-qui.is-open{opacity:1;transform:none;pointer-events:auto}
.yv-qui ul{display:flex;flex-direction:column;gap:2px;width:270px;margin:0;padding:6px;list-style:none;border-radius:20px;background:#fffffff5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 0 0 1px #5046e51a,0 26px 50px -24px #38204c73}
.yv-qui a{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:14px;text-decoration:none;transition:background-color .2s}
.yv-qui a:hover,.yv-qui a:focus-visible{background:#f2ebff;outline:none}
.yv-qui b{font:600 15px/1.2 "Inter Display",Inter,sans-serif;color:#1e1e1e}
.yv-qui span{font:500 13px/1.3 Inter,sans-serif;color:#6b6676}
.yv-cta-note a{color:inherit;text-decoration:underline;text-underline-offset:3px}
@media (prefers-reduced-motion:reduce){.yv-qui{transition:none}}

/* Header : le lien actif a le même contour que sur les autres pages (SiteHeader.astro), sans eau */
#yv-liquid-host .nimbus-water,#yv-liquid-host .nimbus-drop{display:none!important}
#yv-liquid-host .nimbus-item{transition:color .25s,background-color .25s,box-shadow .25s}
#yv-liquid-host .nimbus-item[aria-current="page"]{color:#171717;background:rgba(255,255,255,.38) radial-gradient(120% 140% at 30% 0%,rgba(255,255,255,.75),rgba(255,255,255,0) 55%);box-shadow:inset 0 0 0 1.5px #c9b7ff,0 6px 16px -8px rgba(80,70,229,.45)}

/* Doublon Framer du téléphone (« Un accompagnement fiable et structuré », « Les salles éducatives ») : retiré */
#main div[data-framer-name="Hero"]:has(> [data-framer-name^="Services Bento"]){display:none!important}

/* Pour qui, Parent : les cartes de tarifs (copiées depuis #tarifs) en rail, compactées */
.yv-prail{display:flex;flex-direction:column;gap:10px;width:100%;min-width:0;container-type:inline-size}
.yv-frame.is-on .yv-prail{pointer-events:auto}
.yv-prail-track{position:relative;display:flex;align-items:stretch;gap:14px;overflow-x:auto;padding:6px calc(50cqw - min(160px,44cqw)) 14px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.yv-prail-track::-webkit-scrollbar{display:none}
.yv-prail .yv-pcard{flex:0 0 min(320px,88cqw);gap:12px;padding-bottom:18px;scroll-snap-align:center;box-shadow:inset 0 0 0 1px var(--yv-line),0 20px 40px -30px #38204c66}
.yv-prail .yv-pcard--pop{box-shadow:0 20px 40px -30px #38204c66}
.yv-prail .yv-y{display:none}
.yv-prail .yv-ptop{gap:10px;padding:10px;box-shadow:none}
.yv-prail .yv-ppanel{min-height:128px;padding:14px;gap:2px}
.yv-prail .yv-ppanel img{max-width:none;max-height:none;width:100%;height:100%;object-fit:cover;border-radius:0;box-shadow:none}
.yv-prail .yv-pname{font-size:17px}
.yv-prail .yv-pbadge{padding:4px 8px;font-size:9.5px}
.yv-prail .yv-pp b{font-size:32px}
.yv-prail .yv-pp s{font-size:16px}
.yv-prail .yv-per{font-size:14px}
.yv-prail .yv-psub{font-size:12px}
.yv-prail .yv-pbtn{height:44px;font-size:14.5px}
.yv-prail .yv-pbtn-ico{width:26px;height:26px}
.yv-prail .yv-pdesc{display:none}
.yv-prail .yv-pfeats{gap:6px;padding:0 16px!important}
.yv-prail .yv-pfeats li{padding-left:22px;font-size:12.5px;line-height:1.3}
.yv-prail .yv-pfeats li::before{top:1px;width:14px;height:14px;background-size:14px}
.yv-prail-dots{display:flex;justify-content:center}
.yv-prail-dots button{display:grid;place-items:center;width:30px;height:24px;padding:0;border:0;background:none;cursor:pointer}
.yv-prail-dots i{display:block;width:8px;height:8px;border-radius:99px;background:#d9d3e6;transition:width .3s var(--yv-ease),background .3s}
.yv-prail-dots .is-on i{width:22px;background:var(--acc-a,#5046e5)}

/* Pour qui, Établissement : titre, paragraphe puis formulaire de contact */
.yv-oform{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:100%;max-width:640px;text-align:left}
.yv-ofield{display:flex;flex-direction:column;gap:6px;min-width:0}
.yv-ofield--full,.yv-ofoot,.yv-ostatus{grid-column:1 / -1}
.yv-ofield label{font:500 14px/1.2 Inter,sans-serif;color:var(--yv-ink)}
.yv-ofield input,.yv-ofield select,.yv-ofield textarea{width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--yv-line);border-radius:12px;background:#fff;font:400 16px/1.35 Inter,sans-serif;color:var(--yv-ink);transition:border-color .2s,box-shadow .2s}
.yv-ofield textarea{resize:vertical;min-height:112px}
.yv-ofield input:focus,.yv-ofield select:focus,.yv-ofield textarea:focus{outline:none;border-color:#5046e5;box-shadow:0 0 0 3px #5046e526}
.yv-ofield ::placeholder{color:#8d8896}
.yv-ofoot{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:4px}
.yv-ofoot .yv-cta-note{margin:0}
.yv-ostatus{margin:0;font:500 14px/1.4 Inter,sans-serif;color:#5046e5}
.yv-ostatus[hidden]{display:none}
.yv-aud.is-stage .yv-panel--form{grid-template-columns:minmax(0,1fr);min-height:680px}
.yv-aud.is-stage .yv-panel--form .yv-panel-copy{align-items:center;padding:48px 40px;text-align:center}
.yv-aud.is-stage .yv-panel--form .yv-blurb{max-width:640px}
@media (max-width:560px){.yv-oform{grid-template-columns:minmax(0,1fr)}}
.yv-aud:not(.is-stage) .yv-prail .yv-pcard{flex-basis:min(320px,92cqw)}
.yv-aud:not(.is-stage) .yv-prail-track{padding-inline:calc(50cqw - min(160px,46cqw))}
.yv-aud:not(.is-stage) .yv-prail .yv-ppanel{min-height:104px}

/* Salles du carrousel « Chaque matière, sa salle » : même cadrage partout */
#main [data-framer-name^="Arm "] img{object-fit:cover!important}
