/* ===== MaCoBioS — animations & finitions (2026) ===== */
:root{--navy:#142D57;--ease:cubic-bezier(.2,.7,.2,1)}
body{animation:pagein .5s var(--ease) both}
@keyframes pagein{from{opacity:0}to{opacity:1}}
/* barre de progression de lecture */
#readbar{position:fixed;top:0;left:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--green),var(--blue));z-index:100;pointer-events:none}
/* en-tête qui se compacte au défilement */
.topbar{transition:box-shadow .3s,background .3s}
.topbar .wrap{transition:padding .3s var(--ease)}
.topbar.scrolled{box-shadow:0 6px 24px rgba(6,16,24,.08);background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(8px)}
.topbar.scrolled .wrap{padding-top:6px;padding-bottom:6px}
.brand img{transition:width .3s var(--ease)}
.topbar.scrolled .brand img{width:170px}
#nav a{position:relative;border-bottom:0!important}
#nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
#nav a:hover::after,#nav a.on::after{transform:scaleX(1)}
/* apparition au défilement */
.js .rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease);transition-delay:var(--d,0s)}
.js .rv.rv-l{transform:translateX(-34px)}
.js .rv.rv-r{transform:translateX(34px)}
.js .rv.rv-z{transform:scale(.94)}
.js .rv.in{opacity:1;transform:none}
/* bandeaux titre bleu nuit */
.sec[style*="#142D57"],.sec[style*="#142d57"]{position:relative;overflow:hidden;background:linear-gradient(120deg,#0f2447,#142D57 45%,#1b3d73)!important;background-size:200% 200%!important;animation:heroflow 14s ease-in-out infinite alternate}
.sec[style*="#142D57"]::after,.sec[style*="#142d57"]::after{content:"";position:absolute;inset:auto -10% -60% -10%;height:120%;background:radial-gradient(closest-side,rgba(150,191,26,.18),transparent);animation:glow 9s ease-in-out infinite alternate;pointer-events:none}
@keyframes heroflow{from{background-position:0% 50%}to{background-position:100% 50%}}
@keyframes glow{from{transform:translateX(-18%)}to{transform:translateX(18%)}}
.sec[style*="#142D57"] .wrap,.sec[style*="#142d57"] .wrap{position:relative;z-index:1}
.sec[style*="#142D57"] h1,.sec[style*="#142D57"] .w-heading,.sec[style*="#142D57"] .w-text{animation:rise .9s var(--ease) both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* images */
.w-image{overflow:hidden;border-radius:6px}
.w-image img{transition:transform .8s var(--ease),filter .4s}
.w-image a:hover img{transform:scale(1.04)}
.w-image a{display:block;position:relative}
.w-image a::after{content:"↗";position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--navy);display:grid;place-items:center;font-weight:700;opacity:0;transform:scale(.7);transition:.3s var(--ease)}
.w-image a:hover::after{opacity:1;transform:none}
.w-gallery img{transition:transform .5s var(--ease),box-shadow .3s}
.w-gallery img:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 28px rgba(0,0,0,.18)}
/* logos partenaires */
a.w-logo{text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
a.w-logo:hover{transform:translateY(-6px);box-shadow:0 14px 34px rgba(20,45,87,.14);border-color:var(--green)}
.w-logo img{transition:transform .35s var(--ease)}
a.w-logo:hover img{transform:scale(1.06)}
a.strip-item{transition:transform .3s var(--ease)}a.strip-item:hover{transform:translateY(-4px)}
/* titres liés */
a.h-link{color:inherit;text-decoration:none;background:linear-gradient(var(--green),var(--green)) 0 100%/0 2px no-repeat;transition:background-size .35s var(--ease),color .2s}
a.h-link:hover{background-size:100% 2px;color:var(--blue)}
a.h-link::after{content:" →";opacity:0;margin-left:-.3em;transition:.3s}
a.h-link:hover::after{opacity:1;margin-left:0}
/* liens dans le texte */
.w-text a,.prose a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;transition:background-size .3s,color .2s}
.w-text a:hover,.prose a:hover{color:var(--green);background-size:100% 2px}
/* boutons */
.w-btn{position:relative;overflow:hidden;transition:transform .25s var(--ease),box-shadow .25s,background .25s;box-shadow:0 4px 14px rgba(150,191,26,.28)}
.w-btn::after{content:" →";display:inline-block;transition:transform .25s var(--ease)}
.w-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(150,191,26,.38);filter:none;background:#86ad12}
.w-btn:hover::after{transform:translateX(4px)}
.w-cta{transition:transform .35s var(--ease),box-shadow .35s}.w-cta:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(0,0,0,.12)}
.w-posts .pc{transition:transform .35s var(--ease),box-shadow .35s}
.w-posts .pc:hover{transform:translateY(-6px);box-shadow:0 16px 34px rgba(20,45,87,.14)}
.w-posts .pc img{transition:transform .8s var(--ease)}.w-posts .pc:hover img{transform:scale(1.05)}
.w-posts .pc{overflow:hidden}
.w-anim b{background:linear-gradient(var(--green),var(--green)) 0 100%/0 3px no-repeat;border:0;animation:underline 1.2s .6s var(--ease) forwards}
@keyframes underline{to{background-size:100% 3px}}
/* ===== Toolbox : tuiles écosystèmes ===== */
.eco-intro{text-align:center;font-style:italic;opacity:.75;margin:0 0 14px}
.eco-grid{display:flex;gap:8px;height:430px}
.eco{flex:1;position:relative;border-radius:8px;overflow:hidden;background-size:cover;background-position:center;color:#fff;text-decoration:none;display:flex;flex-direction:column;justify-content:flex-end;padding:18px;transition:flex .6s var(--ease),filter .4s}
.eco::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,16,24,0) 35%,rgba(6,16,24,.78));transition:opacity .4s}
.eco>*{position:relative}
.eco-t{font:700 15px/1.2 "Open Sans",sans-serif;letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;transform:rotate(180deg);align-self:flex-start;transition:.4s var(--ease)}
.eco-more{font-size:13px;opacity:0;max-height:0;transition:.4s var(--ease);white-space:nowrap}
.eco:hover,.eco:focus-visible{flex:3.2}
.eco:hover .eco-t,.eco:focus-visible .eco-t{writing-mode:horizontal-tb;transform:none;font-size:22px}
.eco:hover .eco-more,.eco:focus-visible .eco-more{opacity:1;max-height:30px;margin-top:6px}
.eco-grid:hover .eco:not(:hover){filter:saturate(.6) brightness(.85)}
@media(max-width:760px){.eco-grid{flex-direction:column;height:auto}.eco{min-height:120px;flex:none}.eco-t{writing-mode:horizontal-tb;transform:none;font-size:19px}.eco-more{opacity:1;max-height:30px}.eco:hover{flex:none}}
/* ===== Toolbox : schéma interactif ===== */
.hotspots{position:relative;max-width:929px;margin:0 auto 10px}
.hotspots img{width:100%;border-radius:6px}
.hs{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;display:grid;place-items:center;text-decoration:none;z-index:2}
.hs-dot{width:22px;height:22px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 rgba(150,191,26,.6);animation:pulse 2.2s infinite;position:relative}
.hs-dot::before,.hs-dot::after{content:"";position:absolute;left:50%;top:50%;background:#fff;transform:translate(-50%,-50%);border-radius:1px}
.hs-dot::before{width:10px;height:2px}.hs-dot::after{width:2px;height:10px}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(150,191,26,.6)}70%{box-shadow:0 0 0 14px rgba(150,191,26,0)}100%{box-shadow:0 0 0 0 rgba(150,191,26,0)}}
.hs-tip{position:absolute;top:50%;width:250px;background:#fff;color:var(--ink);border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.45;box-shadow:0 14px 34px rgba(6,16,24,.22);opacity:0;pointer-events:none;transition:.3s var(--ease)}
.hs-tip b{display:block;color:var(--navy);font-size:14px;margin-bottom:4px}
.hs-tip i{display:block;margin-top:6px;color:var(--green);font-style:normal;font-weight:700}
.hs-right{left:40px;transform:translate(-8px,-50%)}.hs-left{right:40px;transform:translate(8px,-50%)}
.hs:hover,.hs:focus-visible{z-index:5}
.hs:hover .hs-tip,.hs:focus-visible .hs-tip{opacity:1;transform:translate(0,-50%);pointer-events:auto}
.hs:hover .hs-dot{animation:none;transform:scale(1.15);background:var(--blue)}
.tool-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;max-width:1000px;margin:0 auto}
.tool-chip{display:block;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:6px;padding:12px 14px;text-decoration:none;color:var(--ink);background:#fff;transition:.3s var(--ease)}
.tool-chip b{display:block;color:var(--navy)}.tool-chip span{font-size:13px;opacity:.8}
.tool-chip:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(20,45,87,.12);border-left-color:var(--blue)}
@media(max-width:640px){.hs-tip{display:none}.hs{width:28px;height:28px}.hs-dot{width:18px;height:18px}}
/* retour en haut */
#totop{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border-radius:50%;border:0;background:var(--navy);color:#fff;font-size:20px;cursor:pointer;box-shadow:0 8px 22px rgba(6,16,24,.25);opacity:0;transform:translateY(16px);transition:.35s var(--ease);z-index:60}
#totop.show{opacity:1;transform:none}#totop:hover{background:var(--green)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.js .rv{opacity:1;transform:none}}
/* ===== Outputs ===== */
.out-page .sec[style*="142D57"]{padding:64px 0 54px;color:#fff}
.out-h1{color:#fff;font-size:clamp(32px,5vw,54px);margin:0 0 10px;text-align:center}
.out-lead{max-width:720px;margin:0 auto 28px;text-align:center;color:#d7e2ee;font-size:17px}
.out-jump{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.out-jump a{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.28);border-radius:40px;padding:9px 18px 9px 10px;transition:.3s var(--ease)}
.out-jump a b{background:var(--green);color:var(--navy);border-radius:20px;min-width:30px;height:30px;display:grid;place-items:center;font-size:14px}
.out-jump a:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);border-color:var(--green)}
.out-h2{font-size:clamp(24px,3vw,34px);color:var(--navy);margin:10px 0 22px;display:flex;align-items:center;gap:14px}
.out-h2::after{content:"";flex:1;height:2px;background:linear-gradient(90deg,var(--green),transparent)}
.out-year{font-size:15px;letter-spacing:.14em;color:var(--green);margin:26px 0 12px}
.out-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
.out-card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px 20px 18px;display:flex;flex-direction:column;gap:8px;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s;position:relative}
.out-card::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:3px;background:var(--green);opacity:.0;transition:.3s}
.out-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(20,45,87,.12);border-color:#cfe39a}
.out-card:hover::before{opacity:1}
.out-card h3{font-size:17px;line-height:1.35;margin:0;color:var(--navy)}
.out-meta{font-size:13px;color:#6b7c85;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.out-tag{background:#eef6d9;color:#4d6a00;font-weight:700;border-radius:4px;padding:2px 8px;font-size:12px}
.out-auth{font-size:13.5px;color:#5d6f78;margin:0;flex:1}
.out-card details{font-size:13px;color:#5d6f78}.out-card summary{cursor:pointer;color:var(--blue)}
.out-btns{display:flex;flex-wrap:wrap;gap:8px}
.out-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;background:var(--navy);color:#fff!important;text-decoration:none;font-weight:600;font-size:14px;padding:9px 16px;border-radius:30px;transition:.25s var(--ease);box-shadow:0 4px 12px rgba(20,45,87,.2)}
.out-btn::after{content:"→";transition:transform .25s var(--ease)}
.out-btn[href$=".pdf"]::before{content:"PDF";font-size:10px;font-weight:800;background:var(--green);color:var(--navy);border-radius:3px;padding:1px 4px}
.out-btn:hover{background:var(--green);color:var(--navy)!important;transform:translateY(-2px)}
.out-btn:hover::after{transform:translateX(4px)}
.out-alt{background:#f6f9f1}
.out-more{text-align:center;font-size:16px}
/* ===== Story map ===== */
.sm{counter-reset:ch}
.sm-hero{position:relative;min-height:78vh;display:flex;align-items:center;color:#fff;overflow:hidden;background:var(--navy)}
.sm-hero-bg{position:absolute;inset:-4%;background-size:cover;background-position:center;filter:blur(2px) saturate(1.1);opacity:.42;transform:scale(1.06);animation:kenburns 24s ease-in-out infinite alternate}
.sm-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,45,87,.35),rgba(20,45,87,.92))}
@keyframes kenburns{to{transform:scale(1.16) translate(-2%,-2%)}}
.sm-hero .wrap{position:relative;z-index:1;text-align:center}
.sm-kicker{letter-spacing:.3em;text-transform:uppercase;font-size:13px;color:var(--green);margin:0 0 10px;animation:rise .8s .1s var(--ease) both}
.sm-hero h1{font:700 clamp(46px,9vw,110px)/1 "Open Sans",sans-serif;margin:0 0 18px;animation:rise .9s .25s var(--ease) both}
.sm-sub{max-width:640px;margin:0 auto 30px;font-size:clamp(16px,2vw,20px);color:#dbe6f2;animation:rise .9s .4s var(--ease) both}
.sm-start{display:inline-block;color:#fff;text-decoration:none;border:1px solid rgba(255,255,255,.5);border-radius:40px;padding:12px 26px;animation:rise .9s .55s var(--ease) both;transition:.3s}
.sm-start span{display:inline-block;animation:bob 1.6s ease-in-out infinite}
.sm-start:hover{background:var(--green);border-color:var(--green);color:var(--navy)}
@keyframes bob{50%{transform:translateY(5px)}}
.sm-chapter{padding:90px 0;position:relative}
.sm-chapter:nth-of-type(even){background:#f6f9f1}
.sm-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;align-items:center}
.sm-chapter.flip .sm-text{order:2}
.sm-num{display:block;font:800 64px/1 "Open Sans",sans-serif;color:transparent;-webkit-text-stroke:1.5px var(--green);margin-bottom:6px}
.sm-chapter h2{font-size:clamp(28px,3.6vw,42px);line-height:1.15;color:var(--navy);margin:0 0 20px}
.sm-lead{font-size:clamp(18px,1.8vw,21px);line-height:1.55;color:var(--navy)}
.sm-text p{margin:0 0 1em}
.sm-fig{margin:0 0 16px;border-radius:10px;overflow:hidden;background:#fff;box-shadow:0 20px 44px rgba(6,16,24,.14)}
.sm-fig img{width:100%;transition:transform 1.2s var(--ease)}
.sm-fig:hover img{transform:scale(1.035)}
.sm-fig figcaption{font-size:13px;color:#6b7c85;padding:10px 14px;background:#fff}
.sm-mosaic{display:grid;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:14px;margin-top:60px}
.sm-mosaic .big{grid-row:1/3}
.sm-mosaic .sm-fig{margin:0;height:100%}.sm-mosaic img{height:100%;object-fit:cover}
.sm-quote{margin:50px auto 0;max-width:820px;text-align:center;font:italic 500 clamp(20px,2.6vw,28px)/1.45 "Open Sans",sans-serif;color:var(--navy);position:relative;padding:0 20px}
.sm-quote::before{content:"“";display:block;font-size:90px;line-height:.6;color:var(--green)}
.sm-gallery{display:grid;gap:14px;margin-top:40px}
.sm-gallery.two{grid-template-columns:1fr 1fr}.sm-gallery.three{grid-template-columns:repeat(3,1fr)}
.sm-gallery .sm-fig{margin:0}.sm-gallery img{aspect-ratio:4/3;object-fit:cover}
.sm-gallery.three img{aspect-ratio:3/4}
.sm-aside{text-align:center;font-style:italic;font-size:17px;max-width:760px;margin:26px auto 0;color:#5d6f78}
.sm-sites{list-style:none;padding:0;margin:18px 0 0;display:grid;gap:10px}
.sm-sites li{background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.sm-sites b{display:block;color:var(--navy)}
.sm-end{background:var(--navy)!important;color:#dbe6f2}
.sm-end h2{color:#fff}.sm-end .sm-lead{color:#fff;margin-top:40px}
.sm-key{list-style:none;padding:0;counter-reset:k;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;margin:30px 0 0}
.sm-key li{counter-increment:k;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:22px;line-height:1.6}
.sm-key li::before{content:counter(k);display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--green);color:var(--navy);font-weight:800;margin-bottom:12px}
.sm-cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.sm-ghost{background:transparent!important;border:1px solid rgba(255,255,255,.5);box-shadow:none!important}
.sm-ghost:hover{background:rgba(255,255,255,.12)!important}
.sm-toc{position:fixed;left:18px;top:50%;transform:translateY(-50%);z-index:40;display:flex;flex-direction:column;gap:12px;opacity:0;pointer-events:none;transition:opacity .4s}
.sm-toc.show{opacity:1;pointer-events:auto}
.sm-toc a{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy)}
.sm-toc a::before{content:"";width:10px;height:10px;border-radius:50%;border:2px solid var(--green);background:#fff;transition:.3s}
.sm-toc a span{font-size:12px;background:#fff;padding:3px 8px;border-radius:4px;box-shadow:0 4px 12px rgba(0,0,0,.1);opacity:0;transform:translateX(-6px);transition:.25s;white-space:nowrap}
.sm-toc a:hover span,.sm-toc a.on span{opacity:1;transform:none}
.sm-toc a.on::before{background:var(--green);transform:scale(1.35)}
@media(max-width:1250px){.sm-toc{display:none}}
@media(max-width:860px){.sm-grid{grid-template-columns:1fr;gap:26px}.sm-chapter.flip .sm-text{order:0}.sm-chapter{padding:56px 0}.sm-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto}.sm-mosaic .big{grid-column:1/3;grid-row:auto}.sm-gallery.three{grid-template-columns:1fr 1fr 1fr}.sm-num{font-size:48px}}
@media(max-width:560px){.sm-gallery.two,.sm-gallery.three{grid-template-columns:1fr}.sm-gallery.three img{aspect-ratio:4/3}}

.sm+footer,main.sm+footer{margin-top:0}
/* ===== Accueil ===== */
.home .kicker{letter-spacing:.22em;text-transform:uppercase;font-size:12.5px;font-weight:700;color:var(--green);margin:0 0 6px;text-align:center}
.home-h2{font-size:clamp(28px,3.6vw,42px);color:var(--navy);margin:0 0 34px;text-align:center;line-height:1.15}
.home-sec{padding:84px 0}
.home-sec.alt{background:#f6f9f1}
.home-sec.navy{background:linear-gradient(120deg,#0f2447,#142D57 55%,#1b3d73);color:#dbe6f2}
.home-sec.navy .home-h2{color:#fff}
.home .center{text-align:center;margin-top:30px}
.home-title{padding:46px 0 26px;text-align:center}
.home-title h1{font:700 clamp(26px,4vw,44px)/1.2 "Open Sans",sans-serif;color:var(--navy);margin:0 0 12px;animation:rise .9s var(--ease) both}
.home-title .ini{color:var(--green);display:inline-block;animation:pop .7s var(--ease) both}
.home-title .ini:nth-of-type(2){animation-delay:.15s}.home-title .ini:nth-of-type(3){animation-delay:.3s}.home-title .ini:nth-of-type(4){animation-delay:.45s}
@keyframes pop{0%{transform:translateY(12px) scale(.7);opacity:0}70%{transform:translateY(-3px) scale(1.08)}100%{transform:none;opacity:1}}
.home-title p{color:#5d6f78;margin:0;font-size:17px;animation:rise .9s .3s var(--ease) both}
/* carrousel */
.hs-track{position:relative;height:clamp(420px,56vh,540px);border-radius:14px;overflow:hidden;background:var(--navy);box-shadow:0 30px 60px rgba(6,16,24,.22);outline:none}
.hs-slide{position:absolute;inset:0;display:grid;grid-template-columns:42% 58%;opacity:0;visibility:hidden;transition:opacity .9s var(--ease),visibility .9s}
.hs-slide.on{opacity:1;visibility:visible}
.hs-copy{padding:48px 44px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;color:#dbe6f2;background:linear-gradient(120deg,#0f2447,#142D57);position:relative;z-index:1}
.hs-copy h2{color:#fff;font-size:clamp(24px,2.8vw,36px);line-height:1.15;margin:12px 0 14px}
.hs-copy p{margin:0 0 24px;font-size:16.5px}
.hs-tag{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);background:var(--green);padding:4px 10px;border-radius:20px}
.hs-slide .hs-copy>*{opacity:0;transform:translateY(16px);transition:.7s var(--ease)}
.hs-slide.on .hs-copy>*{opacity:1;transform:none}
.hs-slide.on .hs-copy>*:nth-child(2){transition-delay:.12s}.hs-slide.on .hs-copy>*:nth-child(3){transition-delay:.24s}.hs-slide.on .hs-copy>*:nth-child(4){transition-delay:.36s}
.hs-pic{display:block;overflow:hidden;background:#0b1b33}
.hs-pic img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 7s linear}
.hs-slide.on .hs-pic img{transform:scale(1)}
.hs-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.9);color:var(--navy);font-size:28px;line-height:1;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.2);transition:.25s}
.hs-arrow:hover{background:var(--green)}
.hs-arrow.prev{left:14px}.hs-arrow.next{right:14px}
.car-dots{position:absolute;left:44px;bottom:26px;z-index:3;display:flex;gap:8px}
.car-dot{width:10px;height:10px;border-radius:10px;border:0;background:rgba(255,255,255,.4);cursor:pointer;padding:0;transition:.35s var(--ease)}
.car-dot.on{width:30px;background:var(--green)}
.hs-progress{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:3;background:rgba(255,255,255,.12)}
.hs-progress i{display:block;height:100%;width:0;background:var(--green)}
.hs-progress i.run{animation:prog var(--dur,6.5s) linear forwards}
@keyframes prog{to{width:100%}}
/* chiffres clés */
.home-figs{background:var(--navy);color:#dbe6f2;padding:40px 0;margin-top:56px}
.figs{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.figs b{display:block;font:800 clamp(40px,5vw,60px)/1 "Open Sans",sans-serif;color:var(--green);margin-bottom:8px}
.figs span{font-size:14.5px;line-height:1.4;display:block;max-width:220px;margin:0 auto}
/* objectifs */
.obj-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.obj{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 22px;text-align:center;transition:transform .35s var(--ease),box-shadow .35s,border-color .35s}
.obj img{width:84px;height:84px;margin:0 auto 14px;border-radius:50%;background:#f1f6e6;padding:8px;transition:transform .5s var(--ease)}
.obj h3{font-size:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--navy);margin:0 0 10px;line-height:1.3}
.obj p{font-size:14.5px;margin:0}
.obj:hover{transform:translateY(-8px);box-shadow:0 20px 40px rgba(20,45,87,.12);border-color:#cfe39a}
.obj:hover img{transform:rotate(-8deg) scale(1.08)}
/* à propos */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
.about .kicker,.about .home-h2{text-align:left}
.fade-car{position:relative;aspect-ratio:4/5;border-radius:14px;overflow:hidden;box-shadow:0 26px 50px rgba(6,16,24,.2)}
.fade-car img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1.4s var(--ease),transform 6s linear}
.fade-car img.on{opacity:1;transform:scale(1)}
/* accès rapides */
.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.qk{display:flex;flex-direction:column;border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--line);text-decoration:none;color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s}
.qk-img{display:block;aspect-ratio:4/3;background-size:cover;background-position:center;transition:transform .8s var(--ease)}
.qk{position:relative}.qk-img{overflow:hidden}
.qk-body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.qk-body b{color:var(--navy);font-size:17px}.qk-body span{font-size:14px}
.qk-body i{font-style:normal;font-weight:700;color:var(--green);margin-top:auto;padding-top:8px;transition:transform .3s var(--ease)}
.qk:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(20,45,87,.15)}
.qk:hover .qk-img{transform:scale(1.06)}
.qk:hover i{transform:translateX(6px)}
/* vidéo */
.w-video.big{max-width:960px;margin:0 auto;padding-top:min(56.25%,540px);border-radius:12px;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35)}
/* actus */
.home-news{grid-template-columns:repeat(3,1fr)}
.home-news .pc img{height:190px}
.nl{margin:44px auto 0;max-width:860px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 22px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--green);border-radius:10px;padding:18px 22px}
.nl div{flex:1;min-width:220px}.nl b{display:block;color:var(--navy);font-size:17px}.nl span{font-size:14px}
.nl-more{font-weight:700;text-decoration:none}
/* partenaires défilants */
.marquee{overflow:hidden;padding:10px 0 6px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-track{display:flex;gap:26px;width:max-content;animation:mq 55s linear infinite}
.marquee:hover .mq-track{animation-play-state:paused}
.mq-track a{flex:0 0 auto;width:170px;height:96px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px;transition:.3s var(--ease)}
.mq-track img{max-height:66px;width:auto;max-width:140px;object-fit:contain;filter:grayscale(1) opacity(.75);transition:.3s}
.mq-track a:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(20,45,87,.12);border-color:var(--green)}
.mq-track a:hover img{filter:none}
@keyframes mq{to{transform:translateX(calc(-50% - 13px))}}
@media(max-width:980px){.obj-grid,.quick{grid-template-columns:repeat(2,1fr)}.home-news{grid-template-columns:repeat(2,1fr)}.figs{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.hs-track{height:auto;min-height:600px}.hs-slide{grid-template-columns:1fr;grid-template-rows:230px 1fr}.hs-pic{order:-1}.hs-copy{padding:26px 24px 60px}.car-dots{left:24px;bottom:20px}.hs-arrow{top:115px}
 .about{grid-template-columns:1fr;gap:30px}.fade-car{aspect-ratio:4/3}.home-sec{padding:60px 0}}
@media(max-width:560px){.obj-grid,.quick,.home-news{grid-template-columns:1fr}.home-figs{margin-top:36px}}
@media(min-width:761px){.hs-arrow{top:auto;bottom:18px;transform:none;width:40px;height:40px;font-size:24px}.hs-arrow.prev{left:auto;right:66px}.hs-arrow.next{right:18px}}
