:root{--color-violet:#8C52FF;--color-bleu:#2254C5;--color-jaune:#FFED00;--color-marine:#003F69;--color-rose:#E5397C;--color-blanc:#FFFFFF;--color-texte:#1A1A1A;--color-fond-clair:#F8F8F8;--color-gris:#555555;--color-gris-clair:#999999;--color-bordure:#EEEEF5;--font-titre:'Mulish', sans-serif;--font-corps:'Poppins', sans-serif;--section-py:80px;--container-max:1200px;--container-px:24px;--radius:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:50px;--shadow-sm:0 2px 8px rgba(0,0,0,.06);--shadow-md:0 4px 24px rgba(0,0,0,.08);--shadow-vio:0 8px 32px rgba(140,82,255,.18);--ease:all .3s ease}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-corps);color:var(--color-texte);background:var(--color-blanc);line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:var(--color-violet);text-decoration:none;transition:var(--ease)}a:hover{color:var(--color-bleu)}h1,h2,h3,h4,h5,h6{font-family:var(--font-titre);color:var(--color-texte);line-height:1.15}h1{font-size:clamp(2rem,   5vw, 3.5rem);font-weight:800}h2{font-size:clamp(1.6rem, 3.5vw, 2.5rem);font-weight:700}h3{font-size:clamp(1.15rem, 2vw, 1.4rem);font-weight:700}p{font-family:var(--font-corps);color:var(--color-gris);margin-bottom:1rem;font-size:1rem;line-height:1.8}p:last-child{margin-bottom:0}.sm-container{max-width:var(--container-max);margin:0 auto;padding:0 var(--container-px)}.sm-section{padding:var(--section-py) 0}.sm-section--light{background:var(--color-blanc)}.sm-section--grey{background:var(--color-fond-clair)}.sm-section--violet{background:var(--color-violet)}.sm-section--dark{background:var(--color-texte)}.sm-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:32px}.sm-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.sm-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 28px;font-family:var(--font-corps);font-weight:600;font-size:.95rem;border-radius:6px;border:2px solid #fff0;cursor:pointer;transition:var(--ease);text-decoration:none;white-space:nowrap;line-height:1}.btn--violet{background:var(--color-violet);color:var(--color-blanc);border-color:var(--color-violet)}.btn--violet:hover{background:#7340e0;border-color:#7340e0;color:var(--color-blanc);box-shadow:var(--shadow-vio);transform:translateY(-2px)}.btn--outline{background:#fff0;color:var(--color-violet);border-color:var(--color-violet)}.btn--outline:hover{background:var(--color-violet);color:var(--color-blanc);transform:translateY(-2px)}.btn--jaune{background:var(--color-jaune);color:var(--color-texte);border-color:var(--color-jaune)}.btn--jaune:hover{background:#e6d400;border-color:#e6d400;color:var(--color-texte);transform:translateY(-2px);box-shadow:0 8px 24px rgb(255 237 0 / .4)}.btn--ghost-white{background:#fff0;color:var(--color-blanc);border-color:rgb(255 255 255 / .6)}.btn--ghost-white:hover{background:rgb(255 255 255 / .15);border-color:var(--color-blanc);color:var(--color-blanc)}.sm-badge{display:inline-block;padding:5px 14px;border-radius:var(--radius-pill);font-family:var(--font-corps);font-size:.78rem;font-weight:600;letter-spacing:.4px}.sm-badge--violet{background:rgb(140 82 255 / .1);color:var(--color-violet)}.sm-badge--jaune{background:var(--color-jaune);color:var(--color-texte)}.sm-badge--white{background:rgb(255 255 255 / .2);color:var(--color-blanc)}.sm-section-hd{text-align:center;margin-bottom:56px}.sm-section-hd__eyebrow{font-family:var(--font-corps);font-size:.8rem;font-weight:600;letter-spacing:2.5px;text-transform:uppercase;color:var(--color-gris-clair);margin-bottom:12px}.sm-section-hd h2{margin-bottom:14px}.sm-section-hd p{max-width:580px;margin:0 auto;font-size:1.05rem}.sm-card{background:var(--color-blanc);border:1px solid var(--color-bordure);border-radius:var(--radius);transition:var(--ease)}.sm-card:hover{box-shadow:var(--shadow-vio);transform:translateY(-4px)}@media (max-width:1024px){.sm-grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){:root{--section-py:60px}.sm-grid-2,.sm-grid-3,.sm-grid-4{grid-template-columns:1fr}}@media (max-width:480px){:root{--container-px:16px}}