
:root{--hero:#2A4C88;--deep:#1B3566;--ink:#0E1E45;--mut:#56617E;--sky:#AAD2FF;--brand:#2563C4;--bg:#F4F7FC;--line:#E2E8F3}
*{box-sizing:border-box}
body{margin:0;width:1440px;font-family:'Poppins',sans-serif;color:var(--ink);background:var(--bg)}
a{text-decoration:none;color:inherit}
.wrap{padding:0 120px}
.eb{font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--brand)}
h2{margin:8px 0 0;font-size:40px;line-height:1.15;font-weight:700;letter-spacing:-.02em}
.btn{white-space:nowrap;display:inline-flex;align-items:center;gap:12px;height:56px;padding:0 28px;border-radius:10px;font-weight:500;font-size:16px}
.card{background:#fff;border-radius:16px;box-shadow:0 10px 30px rgba(14,30,69,.07)}
.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* HERO */
.hero{position:relative;height:800px;background:var(--hero);color:#fff;overflow:hidden}
.hero .photo{position:absolute;right:0;top:90px;width:860px;height:600px;object-fit:cover;
 -webkit-mask-image:linear-gradient(to right,transparent 0,#000 38%),linear-gradient(to bottom,transparent 0,#000 16%,#000 78%,transparent 100%);
 -webkit-mask-composite:source-in;mask-composite:intersect}
header{position:relative;z-index:2;height:110px;display:flex;align-items:center;gap:30px}
header nav{display:flex;gap:22px;font-weight:700;color:#fff;font-size:19px;white-space:nowrap}
header nav a.on{border-bottom:2px solid var(--sky);padding-bottom:4px}
.hc{position:relative;z-index:2;width:620px}
.hc h1{margin:18px 0 0;font-size:76px;line-height:1.04;font-weight:700;letter-spacing:-.03em}
.hc p{margin:22px 0 0;font-size:19px;line-height:1.6;color:#DCE6F7;max-width:520px}
.chips{display:flex;gap:26px;margin-top:40px;font-size:14px;color:#DCE6F7}
.chips span{display:flex;align-items:center;gap:8px}
.chips i{width:22px;height:22px;border-radius:11px;background:rgba(170,210,255,.22);display:flex;align-items:center;justify-content:center;color:var(--sky)}
.dots{position:absolute;left:120px;bottom:120px;display:flex;gap:10px;z-index:2}


/* FIXED HEADER */
#topbar{position:fixed;top:0;left:0;width:1440px;z-index:50;color:#fff;height:110px;padding:0 120px;background:var(--hero);transition:height .3s,box-shadow .3s}
#topbar.scrolled{height:84px;box-shadow:0 8px 24px rgba(10,25,60,.25)}
#topbar.scrolled img{height:54px!important}
/* SLIDER */
.hero{padding-top:0}
.track{display:flex;height:100%;transition:transform .9s cubic-bezier(.65,0,.25,1)}
.slide{position:relative;width:1440px;height:800px;flex-shrink:0;overflow:hidden}
.slide .hc{margin-top:194px}
.h1s{font-size:60px!important;line-height:1.08!important}
.glow{position:absolute;right:120px;top:170px;width:700px;height:500px;border-radius:50%;background:radial-gradient(closest-side,rgba(170,210,255,.30),rgba(170,210,255,0))}
.mach-img{position:absolute;left:1045px;bottom:190px;transform:translateX(-50%);max-height:420px;object-fit:contain;z-index:1}
.shadow{position:absolute;left:1045px;bottom:172px;transform:translateX(-50%);height:34px;border-radius:50%;background:radial-gradient(closest-side,rgba(8,18,45,.5),rgba(8,18,45,0))}
.model{position:absolute;right:120px;bottom:130px;font-size:13px;font-weight:500;letter-spacing:.1em;color:rgba(220,230,247,.75)}
.arr{position:absolute;top:430px;z-index:5;width:50px;height:50px;border-radius:25px;border:1.5px solid rgba(255,255,255,.6);background:rgba(20,40,80,.25);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer}
.arr.l{left:30px}.arr.r{right:30px}
.tabs{position:absolute;left:120px;bottom:112px;z-index:5;display:flex;gap:16px}
.tabs button{width:130px;background:none;border:0;padding:0;text-align:left;color:rgba(220,230,247,.65);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer}
.tabs button.on{color:#fff}
.tabs i{display:block;margin-top:8px;height:3px;background:rgba(255,255,255,.28);border-radius:2px;overflow:hidden}
.tabs b{display:block;height:3px;width:0;background:#fff}
.tabs button.on b{animation:fill 6s linear forwards}
.tabs button.done b{width:100%}
@keyframes fill{to{width:100%}}
/* STATS */
.stats{position:relative;margin-top:-72px;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.stat{display:flex;gap:18px;align-items:center;padding:28px 26px}
.stat .c{width:62px;height:62px;border-radius:31px;background:#E8F0FB;color:var(--hero);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stat b{display:block;font-size:30px;line-height:1.1}
.stat span{display:block;font-size:14px;font-weight:500}
.stat small{display:block;font-size:13px;color:var(--mut)}

/* SERVICES */
.sec{padding:96px 0 0}
.head{display:flex;justify-content:space-between;align-items:flex-end}
.more{font-weight:500;color:var(--brand);font-size:15px;white-space:nowrap}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.g6{grid-template-columns:repeat(6,1fr);gap:16px}
.g6.svc,.g6 .svc img{height:150px}
.g6 .svc .b{padding:30px 16px 18px}
.g6 .svc .bd{width:44px;height:44px;top:-22px;left:14px;border-radius:12px}
.g6 .svc h3{font-size:16px}
.g6 .svc p{font-size:13px;line-height:1.5;margin:6px 0 10px}
.g6 .svc .more{font-size:13px}
.real .g6 img{height:160px;border-radius:12px}
.real .g6 figcaption{flex-direction:column;gap:2px;font-size:14px}
.svc{overflow:hidden}
.svc img{display:block;width:100%;height:230px;object-fit:cover}
.svc .b{position:relative;padding:34px 28px 28px}
.svc .bd{position:absolute;top:-28px;left:26px;width:56px;height:56px;border-radius:14px;background:var(--hero);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(42,76,136,.35)}
.svc h3{margin:0;font-size:20px}
.svc p{margin:8px 0 14px;color:var(--mut);font-size:15px;line-height:1.55}

/* MACHINES */
.mach{margin-top:96px;background:#E7EFFA;padding:88px 0}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px}
.m{padding:26px;display:flex;flex-direction:column;gap:6px}
.m .pic{height:190px;display:flex;align-items:flex-end;justify-content:center;margin-bottom:14px;background:radial-gradient(closest-side,#E8F0FB,rgba(255,255,255,0));border-radius:12px}
.m .pic img{max-width:100%;max-height:180px}
.m em{font-style:normal;font-size:12px;font-weight:700;letter-spacing:.12em;color:var(--brand)}
.m h3{margin:0;font-size:19px}
.m p{margin:0;font-size:14px;color:var(--mut);line-height:1.5}
.ph{height:180px;width:100%;border:2px dashed #B9CBE6;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#6C7EA3;font-size:14px;font-weight:500}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:40px}
.step{padding:30px 28px}
.step b{font-size:44px;color:var(--sky);-webkit-text-stroke:0;display:block;line-height:1;color:#9DBCE8}
.step h3{margin:14px 0 6px;font-size:18px}
.step p{margin:0;color:var(--mut);font-size:15px;line-height:1.55}

/* REAL */
.real{margin-top:96px;background:var(--deep);color:#fff;padding:88px 0}
.real .eb{color:var(--sky)}
.real .grid3 img{display:block;width:100%;height:260px;object-fit:cover;border-radius:14px}
.real figure{margin:0}
.real figcaption{display:flex;justify-content:space-between;margin-top:12px;font-size:15px;font-weight:500}
.real figcaption span{color:var(--sky);font-size:13px}
.ghost{display:inline-flex;align-items:center;gap:14px;height:54px;padding:0 28px;border:1.5px solid rgba(255,255,255,.6);border-radius:10px;font-weight:500}

/* TESTI */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:40px}
.t{padding:32px}
.stars{color:#3F8CF0;letter-spacing:4px;font-size:18px}
.t p{font-size:16px;line-height:1.65;margin:14px 0 24px}
.who{display:flex;align-items:center;gap:14px}
.who img{width:52px;height:52px;border-radius:26px;object-fit:cover}
.who b{display:block;font-size:15px}.who small{color:var(--mut);font-size:13px}

/* CTA */
.cta{margin-top:96px;background:var(--hero);border-radius:22px;color:#fff;display:flex;align-items:center;gap:32px;padding:44px 56px}
.cta h3{margin:0;font-size:32px}.cta p{margin:6px 0 0;color:#DCE6F7;font-size:17px}

/* FOOTER */
footer{margin-top:96px;background:var(--deep);color:#C9D6EE;padding:64px 0 28px;font-size:15px}
.fg{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr 1fr;gap:40px}
.fg h4{margin:0 0 16px;color:#fff;font-size:14px;letter-spacing:.1em}
.fg a,.fg span{display:block;margin-bottom:10px}
.soc{display:flex;gap:10px;margin-top:18px}
.soc a{width:40px;height:40px;border-radius:20px;border:1px solid #3B5A93;display:flex;align-items:center;justify-content:center;color:#fff;margin:0}
.legal{display:flex;justify-content:space-between;border-top:1px solid #2E4A80;margin-top:40px;padding-top:22px;font-size:13px;color:#90A3C8}

/* ===== GRANDIOSE ===== */
body{background:#F3F6FC}
.eb{display:inline-flex;align-items:center;gap:14px;font-size:13px;letter-spacing:.22em}
.eb:before{content:"";width:34px;height:2px;background:currentColor;opacity:.7}
h2{font-size:52px;line-height:1.08;letter-spacing:-.03em;margin-top:14px}
.sec{padding-top:130px}
/* header */
#topbar.scrolled{background:rgba(34,64,118,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
/* hero */
.hero{height:940px;background:radial-gradient(1200px 700px at 78% 40%,#3563A8 0%,rgba(53,99,168,0) 70%),linear-gradient(160deg,#2F5596 0%,#23457F 55%,#1B3868 100%)}
.slide{height:940px}
.slide .hc{margin-top:236px;width:660px}
.hc h1{font-size:100px;line-height:.98;letter-spacing:-.045em}
.h1s{font-size:62px!important;line-height:1.04!important;letter-spacing:-.035em;max-width:560px}
.hc p{font-size:20px;max-width:540px}
.hero .photo{top:110px;width:840px;height:660px;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 42%),linear-gradient(to bottom,transparent 0,#000 16%,#000 78%,transparent 100%)}
.wm{position:absolute;left:-30px;bottom:150px;font-size:340px;font-weight:700;letter-spacing:-.06em;line-height:.8;color:transparent;-webkit-text-stroke:1.5px rgba(170,210,255,.10);z-index:0;pointer-events:none;white-space:nowrap}
.beam{position:absolute;border-radius:50%;filter:blur(40px);pointer-events:none;z-index:0}
.beam.a{width:520px;height:520px;right:180px;top:120px;background:rgba(120,180,255,.22);animation:drift 12s ease-in-out infinite alternate}
.beam.b{width:420px;height:420px;left:-120px;top:-80px;background:rgba(170,210,255,.14);animation:drift 15s ease-in-out infinite alternate-reverse}
@keyframes drift{to{transform:translate(60px,40px) scale(1.12)}}
.glow{top:210px;width:760px;height:540px}
.mach-img{left:1070px;bottom:230px;max-height:460px;animation:float 6s ease-in-out infinite}
.shadow{left:1070px;bottom:206px}
@keyframes float{50%{transform:translateX(-50%) translateY(-12px)}}
.model{bottom:180px}
.tabs{bottom:150px}
.arr{top:470px}
.slide .hc>*{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}
.slide.active .hc>*{opacity:1;transform:none}
.slide.active .hc>*:nth-child(2){transition-delay:.1s}.slide.active .hc>*:nth-child(3){transition-delay:.2s}.slide.active .hc>*:nth-child(4){transition-delay:.3s}.slide.active .hc>*:nth-child(5){transition-delay:.4s}
.btn{height:60px;padding:0 32px;font-size:16px;transition:transform .25s,box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(8,20,50,.25)}
.scroll{position:absolute;right:120px;bottom:40px;z-index:5;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:11px;letter-spacing:.3em;color:rgba(220,230,247,.7)}
.scroll i{width:1.5px;height:44px;background:linear-gradient(#fff,rgba(255,255,255,0))}
/* stats band */
.stats{margin-top:-100px;grid-template-columns:repeat(4,1fr);gap:0;background:#fff;border-radius:22px;box-shadow:0 30px 70px rgba(14,30,69,.14);position:relative;z-index:6}
.stats .card{box-shadow:none;border-radius:0;background:none}
.stats .stat+.stat{border-left:1px solid var(--line)}
.stat{padding:36px 26px;gap:18px}
.stat b{font-size:38px;letter-spacing:-.03em;background:linear-gradient(120deg,#2A4C88,#3F8CF0);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .c{width:58px;height:58px}
/* manifesto */
.mani{padding:140px 0 0;text-align:center}
.mani p{margin:26px auto 0;max-width:1080px;font-size:50px;line-height:1.22;font-weight:700;letter-spacing:-.03em;color:var(--ink)}
.mani p span{color:#9FB2D1}
.mani p em{font-style:normal;background:linear-gradient(120deg,#2A4C88,#3F8CF0);-webkit-background-clip:text;background-clip:text;color:transparent}
.mani .sig{margin-top:34px;display:flex;justify-content:center;gap:48px;font-size:14px;font-weight:500;color:var(--mut)}
.mani .sig b{display:block;font-size:30px;color:var(--ink);letter-spacing:-.02em}

/* manifesto visual — équilibre de la section */
.manifesto-pro .manifesto-top{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:54px;align-items:center;text-align:left;min-height:470px}
.manifesto-pro .manifesto-copy{padding-top:8px}
.manifesto-pro .manifesto-copy h2{margin:14px 0 0;font-size:52px;line-height:1.04;letter-spacing:-.045em;color:var(--ink)}
.manifesto-pro .manifesto-copy h2 em{font-style:normal;color:#3F8CF0}
.manifesto-pro .manifesto-copy .manifesto-intro{margin:28px 0 0;max-width:650px;font-size:27px;line-height:1.35;font-weight:650;letter-spacing:-.025em;color:#526481}
.manifesto-pro .manifesto-copy .manifesto-intro strong{color:var(--ink)}
.manifesto-visual{position:relative;min-height:500px;border-radius:30px;overflow:visible}
.manifesto-main-image{position:absolute;inset:0 18px 24px 0;border-radius:30px;overflow:hidden;background:#dce8f7;box-shadow:0 26px 60px rgba(14,30,69,.16)}
.manifesto-main-image img{width:100%;height:100%;display:block;object-fit:cover}
.manifesto-main-image:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,30,68,0) 45%,rgba(5,30,68,.34) 100%)}
.manifesto-mini{position:absolute;width:190px;height:140px;border:8px solid #fff;border-radius:20px;overflow:hidden;box-shadow:0 18px 40px rgba(14,30,69,.18);background:#fff}
.manifesto-mini img{width:100%;height:100%;object-fit:cover;display:block}
.manifesto-mini.mini-one{right:0;top:34px;transform:rotate(3deg)}
.manifesto-mini.mini-two{right:20px;bottom:0;transform:rotate(-4deg)}
.manifesto-badge{position:absolute;left:28px;bottom:12px;padding:11px 16px;border-radius:999px;background:#fff;color:#16477f;font-size:11px;font-weight:850;letter-spacing:.13em;box-shadow:0 12px 30px rgba(14,30,69,.16)}
@media(max-width:900px){.manifesto-pro .manifesto-top{grid-template-columns:1fr;gap:40px;min-height:0}.manifesto-visual{min-height:400px}.manifesto-pro .manifesto-copy .manifesto-intro{font-size:24px}.manifesto-pro .manifesto-copy h2{font-size:44px}}
@media(max-width:520px){.manifesto-visual{min-height:330px}.manifesto-main-image{inset:0 38px 28px 0;border-radius:24px}.manifesto-mini{width:125px;height:95px;border-width:5px;border-radius:14px}.manifesto-mini.mini-one{top:20px}.manifesto-mini.mini-two{right:8px}.manifesto-badge{left:16px;bottom:6px;font-size:8px;padding:9px 11px}.manifesto-pro .manifesto-copy h2{font-size:36px}.manifesto-pro .manifesto-copy .manifesto-intro{font-size:20px}}

/* services */
.svc{transition:transform .35s,box-shadow .35s}
.svc:hover{transform:translateY(-8px);box-shadow:0 26px 50px rgba(14,30,69,.16)}
.g6 .svc img{height:190px!important;transition:transform .6s}
.svc:hover img{transform:scale(1.07)}
.svc .bd{background:linear-gradient(135deg,#2A4C88,#3F8CF0)}
/* machines dark */
.mach{margin-top:130px;padding:130px 0;color:#fff;position:relative;overflow:hidden;background:radial-gradient(900px 500px at 85% 10%,rgba(63,140,240,.35),rgba(63,140,240,0) 70%),radial-gradient(700px 500px at 5% 100%,rgba(170,210,255,.16),rgba(170,210,255,0) 70%),#10254F}
.mach .eb{color:var(--sky)}
.mach .more{color:var(--sky)}
.mach .card{background:rgba(255,255,255,.06);border:1px solid rgba(170,210,255,.16);box-shadow:none;backdrop-filter:blur(6px)}
.mach .m{padding:30px;transition:transform .35s,background .35s}
.mach .m:hover{transform:translateY(-8px);background:rgba(255,255,255,.1)}
.mach .m .pic{height:220px;background:radial-gradient(closest-side,rgba(170,210,255,.28),rgba(170,210,255,0))}
.mach .m .pic img{max-height:205px}
.mach .m em{color:var(--sky)}
.mach .m h3{font-size:21px;color:#fff}
.mach .m p{color:#B9C8E4}
.mach .ph{border-color:rgba(170,210,255,.35);color:#9FB9E3;height:205px}
.mach .wm2{position:absolute;right:-40px;bottom:-60px;font-size:260px;font-weight:700;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(170,210,255,.08);white-space:nowrap}
/* steps */
.steps{position:relative;margin-top:56px}
.steps:before{content:"";position:absolute;left:8%;right:8%;top:58px;border-top:2px dashed #C6D5EC;z-index:0}
.step{position:relative;z-index:1;padding:36px 30px;transition:transform .35s}
.step:hover{transform:translateY(-6px)}
.step b{font-size:76px;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:2px #3F8CF0}
.step h3{font-size:20px;margin-top:18px}
/* realisations */
.real{margin-top:130px;padding:130px 0;background:radial-gradient(900px 500px at 15% 0%,rgba(63,140,240,.28),rgba(63,140,240,0) 70%),#132C5C}
.real .g6 figure{position:relative;border-radius:16px;overflow:hidden}
.real .g6 img{height:280px!important;border-radius:0!important;transition:transform .7s}
.real figure:hover img{transform:scale(1.08)}
.real .g6 figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:60px 16px 16px;background:linear-gradient(to top,rgba(10,22,50,.92),rgba(10,22,50,0));font-size:15px}
/* testimonials */
.t{position:relative;padding:40px 36px;border-top:4px solid #3F8CF0}
.t:before{content:"\201C";position:absolute;right:28px;top:6px;font-size:120px;line-height:1;font-weight:700;color:#E3ECF9}
.t p{font-size:18px;position:relative}
/* cta */
.cta{margin-top:130px;padding:80px 90px;border-radius:30px;position:relative;overflow:hidden;background:radial-gradient(700px 400px at 90% 0%,rgba(120,180,255,.45),rgba(120,180,255,0) 70%),linear-gradient(135deg,#2F5596,#1B3868)}
.cta h3{font-size:58px;letter-spacing:-.035em;line-height:1.05}
.cta p{font-size:19px;margin-top:14px}
.cta .wm3{position:absolute;right:-20px;bottom:-70px;font-size:220px;font-weight:700;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.08);white-space:nowrap}
footer{margin-top:130px;background:#0F2248}
/* reveal */
.rv{opacity:0;transform:translateY(40px);transition:opacity .9s,transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}


/* V24 — identité d'en-tête harmonisée sur toutes les pages */
#topbar{height:96px!important;min-height:96px;display:flex;align-items:center;padding:0 34px!important;gap:28px;background:#04295E!important;box-sizing:border-box}
#topbar>img{width:205px!important;height:auto!important;max-height:64px;object-fit:contain;object-position:left center;display:block;flex:0 0 auto}
#topbar nav{display:flex;align-items:center;gap:24px!important;margin-left:auto!important;margin-right:12px!important}
#topbar nav a{font-size:15px!important;font-weight:600!important;line-height:1;white-space:nowrap;color:#fff;text-decoration:none;opacity:.92;transition:color .2s,opacity .2s}
#topbar nav a:hover,#topbar nav a.on{color:#69B7FF;opacity:1}
#topbar>.btn{height:46px!important;padding:0 20px!important;display:inline-flex;align-items:center;justify-content:center;margin-left:0!important;border-radius:10px!important;font-size:14px!important;font-weight:700!important;white-space:nowrap}
#topbar.scrolled{height:82px!important;min-height:82px;background:rgba(4,41,94,.94)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
#topbar.scrolled>img{width:185px!important}
@media(max-width:980px){#topbar{padding:0 20px!important;gap:16px}#topbar>img{width:175px!important}#topbar nav{gap:15px!important;margin-right:0!important}#topbar nav a{font-size:13px!important}#topbar>.btn{padding:0 14px!important;font-size:13px!important}}
@media(max-width:760px){#topbar{height:78px!important;min-height:78px}#topbar>img{width:160px!important}#topbar nav{display:none}#topbar>.btn{margin-left:auto!important}}

/* V29 — correction responsive technique, sans modifier le design desktop */
html{overflow-x:hidden}
body{width:100%;min-width:0;overflow-x:hidden}
#topbar{width:100%;box-sizing:border-box}
.slide{width:100vw}
.hero-full{width:100%;max-width:100%;}
@media (max-width:1100px){
  .wrap{padding-left:48px;padding-right:48px}
  .grid3{grid-template-columns:repeat(2,1fr)}
  .g6{grid-template-columns:repeat(3,1fr)}
  .grid4{grid-template-columns:repeat(2,1fr)}
  .steps{grid-template-columns:repeat(2,1fr)}
  .tgrid{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stats .stat+.stat{border-left:0}
  .stats .stat:nth-child(even){border-left:1px solid var(--line)}
  .mani p{font-size:40px}
  .hc h1{font-size:76px}
  .slide .hc{width:58%}
  .mach-img,.shadow{left:auto;right:8%;transform:translateX(0)}
  .model{right:8%}
  .glow{right:4%;width:58%}
}
@media (max-width:760px){
  #topbar{height:78px!important;min-height:78px;padding:0 16px!important;gap:12px}
  #topbar>img{width:145px!important}
  #topbar>.btn{height:42px!important;padding:0 12px!important;font-size:12px!important}
  .wrap{padding-left:18px;padding-right:18px}
  .hero,.slide{height:760px}
  .slide .hc{margin-top:150px;width:auto;max-width:100%;padding-right:18px}
  .hc h1{font-size:50px;line-height:1.02}
  .h1s{font-size:43px!important}
  .hc p{font-size:16px;max-width:90%}
  .chips{gap:12px;flex-wrap:wrap;margin-top:24px;font-size:12px}
  .tabs{left:18px;bottom:70px;gap:8px;max-width:calc(100% - 36px);overflow:hidden}
  .tabs button{width:auto;min-width:74px;font-size:10px}
  .arr{top:auto;bottom:76px;width:40px;height:40px}
  .arr.l{left:auto;right:66px}.arr.r{right:18px}
  .scroll{display:none}
  .hero .photo{top:120px;right:-30%;width:78%;height:430px;opacity:.48}
  .glow{right:-15%;top:180px;width:80%;height:420px}
  .mach-img{right:2%;bottom:175px;max-width:48%;max-height:260px}
  .shadow{right:3%;bottom:160px;max-width:48%;height:22px}
  .model{right:18px;bottom:130px;font-size:10px}
  .stats{margin-top:-45px;grid-template-columns:1fr;border-radius:16px}
  .stats .stat{padding:24px 20px}
  .stats .stat:nth-child(even){border-left:0}
  .sec{padding-top:80px}
  h2{font-size:34px}
  .head{display:block}
  .grid3,.g6,.grid4,.steps,.tgrid{grid-template-columns:1fr}
  .mani{padding-top:90px}
  .mani p{font-size:31px}
  .mani .sig{gap:20px;flex-wrap:wrap}
  .mach,.real{margin-top:80px;padding:80px 0}
  .cta{margin-top:80px;padding:44px 28px;display:block}
  .cta h3{font-size:38px}
  .fg{grid-template-columns:1fr 1fr;gap:28px}
  .legal{display:block}
  .legal>*{margin-bottom:8px}
}
@media (max-width:480px){
  .fg{grid-template-columns:1fr}
  .svc img{height:210px}
  .g6 .svc img{height:190px!important}
  .btn{height:52px;padding:0 20px;font-size:14px}
}

/* V35 — logo d'en-tête strictement identique sur toutes les pages et après défilement */
#topbar > img{
  width:205px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  flex:0 0 205px !important;
}
#topbar.scrolled > img{
  width:205px !important;
  height:auto !important;
  max-height:none !important;
  flex-basis:205px !important;
}
@media(max-width:980px){
  #topbar > img,
  #topbar.scrolled > img{
    width:175px !important;
    height:auto !important;
    max-height:none !important;
    flex-basis:175px !important;
  }
}
@media(max-width:760px){
  #topbar > img,
  #topbar.scrolled > img{
    width:160px !important;
    height:auto !important;
    max-height:none !important;
    flex-basis:160px !important;
  }
}

/* V36 — logo haut de page : ratio strictement identique sur toutes les pages */
#topbar > img,
#topbar.scrolled > img {
  width: 205px !important;
  height: auto !important;
  max-width: 205px !important;
  max-height: none !important;
  aspect-ratio: 838 / 321 !important;
  object-fit: contain !important;
  flex: 0 0 205px !important;
  display: block !important;
}
@media (max-width: 980px){
  #topbar > img,
  #topbar.scrolled > img {
    width: 175px !important;
    max-width: 175px !important;
    flex-basis: 175px !important;
  }
}
@media (max-width: 760px){
  #topbar > img,
  #topbar.scrolled > img {
    width: 160px !important;
    max-width: 160px !important;
    flex-basis: 160px !important;
  }
}

/* ===== V37 — MENU FIXE UNIFIÉ SUR TOUTES LES PAGES ===== */
#topbar{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  height:96px !important;
  min-height:96px !important;
  padding:0 34px !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  gap:28px !important;
  z-index:1000 !important;
  box-sizing:border-box !important;
  background:#04295E !important;
  box-shadow:0 6px 22px rgba(10,25,60,.16);
  transition:background .25s, box-shadow .25s !important;
}
#topbar > a:first-child{
  display:flex !important;
  align-items:center !important;
  width:205px !important;
  min-width:205px !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
  flex:0 0 205px !important;
}
#topbar > a:first-child > img,
#topbar > img{
  display:block !important;
  width:205px !important;
  min-width:205px !important;
  height:auto !important;
  max-height:none !important;
  object-fit:contain !important;
  margin:0 !important;
}
#topbar nav{
  display:flex !important;
  align-items:center !important;
  gap:24px !important;
  margin-left:auto !important;
  margin-right:12px !important;
}
#topbar nav a{
  font-size:15px !important;
  line-height:1 !important;
  font-weight:600 !important;
  white-space:nowrap !important;
  color:#fff !important;
  text-decoration:none !important;
  opacity:.92 !important;
  border:0 !important;
  padding:0 !important;
}
#topbar nav a:hover,#topbar nav a.on{color:#69B7FF !important;opacity:1 !important}
#topbar > .btn{
  height:46px !important;
  min-height:46px !important;
  padding:0 20px !important;
  margin:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:10px !important;
  font-size:14px !important;
  font-weight:700 !important;
  white-space:nowrap !important;
  flex:0 0 auto !important;
}
#topbar.scrolled{
  height:96px !important;
  min-height:96px !important;
  background:rgba(4,41,94,.96) !important;
  box-shadow:0 8px 26px rgba(10,25,60,.22) !important;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
#topbar.scrolled > a:first-child > img,
#topbar.scrolled > img{width:205px !important;min-width:205px !important;height:auto !important}
@media(max-width:980px){
  #topbar{padding:0 20px !important;gap:16px !important}
  #topbar > a:first-child{width:175px !important;min-width:175px !important;flex-basis:175px !important}
  #topbar > a:first-child > img,#topbar > img{width:175px !important;min-width:175px !important}
  #topbar nav{gap:15px !important;margin-right:0 !important}
  #topbar nav a{font-size:13px !important}
  #topbar > .btn{padding:0 14px !important;font-size:13px !important}
  #topbar.scrolled{height:96px !important;min-height:96px !important}
  #topbar.scrolled > a:first-child > img,#topbar.scrolled > img{width:175px !important;min-width:175px !important}
}
@media(max-width:760px){
  #topbar{height:78px !important;min-height:78px !important;padding:0 16px !important;gap:12px !important}
  #topbar > a:first-child{width:160px !important;min-width:160px !important;flex-basis:160px !important}
  #topbar > a:first-child > img,#topbar > img{width:160px !important;min-width:160px !important}
  #topbar nav{display:none !important}
  #topbar > .btn{margin-left:auto !important;height:42px !important;min-height:42px !important;padding:0 12px !important;font-size:12px !important}
  #topbar.scrolled{height:78px !important;min-height:78px !important}
  #topbar.scrolled > a:first-child > img,#topbar.scrolled > img{width:160px !important;min-width:160px !important}
}


/* ===== V38 — IDENTITÉ DU LOGO STRICTEMENT UNIFORME SUR TOUTES LES PAGES ===== */
#topbar{
  height:96px !important;
  min-height:96px !important;
  max-height:96px !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  overflow:hidden !important;
}
#topbar > a:first-child,
#topbar > .site-logo{
  width:205px !important;
  min-width:205px !important;
  max-width:205px !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  flex:0 0 205px !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
#topbar > a:first-child > .site-logo,
#topbar > .site-logo{
  display:block !important;
  width:205px !important;
  min-width:205px !important;
  max-width:205px !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  aspect-ratio:838 / 321 !important;
  object-fit:contain !important;
  object-position:left center !important;
  margin:0 !important;
  padding:0 !important;
}
#topbar.scrolled{
  height:96px !important;
  min-height:96px !important;
  max-height:96px !important;
}
#topbar.scrolled > a:first-child > .site-logo,
#topbar.scrolled > .site-logo{
  width:205px !important;
  min-width:205px !important;
  max-width:205px !important;
  height:auto !important;
}
@media(max-width:980px){
  #topbar, #topbar.scrolled{height:96px !important;min-height:96px !important;max-height:96px !important}
  #topbar > a:first-child, #topbar > .site-logo{width:175px !important;min-width:175px !important;max-width:175px !important;flex-basis:175px !important}
  #topbar > a:first-child > .site-logo, #topbar > .site-logo,
  #topbar.scrolled > a:first-child > .site-logo, #topbar.scrolled > .site-logo{width:175px !important;min-width:175px !important;max-width:175px !important;height:auto !important}
}
@media(max-width:760px){
  #topbar, #topbar.scrolled{height:78px !important;min-height:78px !important;max-height:78px !important}
  #topbar > a:first-child, #topbar > .site-logo{width:160px !important;min-width:160px !important;max-width:160px !important;flex-basis:160px !important}
  #topbar > a:first-child > .site-logo, #topbar > .site-logo,
  #topbar.scrolled > a:first-child > .site-logo, #topbar.scrolled > .site-logo{width:160px !important;min-width:160px !important;max-width:160px !important;height:auto !important}
}


/* ===== V39 — EN-TÊTE UNIQUE ET STABLE SUR TOUTES LES PAGES ===== */
#topbar, #topbar.scrolled {
  position: fixed !important; top: 0 !important; left: 0 !important; right: 0 !important;
  width: 100% !important; height: 96px !important; min-height: 96px !important; max-height: 96px !important;
  padding: 0 34px !important; margin: 0 !important; box-sizing: border-box !important;
  display: flex !important; align-items: center !important; gap: 28px !important;
  background: #04295E !important; z-index: 9999 !important;
  overflow: visible !important;
}
#topbar .brand-logo {
  width: 205px !important; min-width: 205px !important; max-width: 205px !important;
  height: auto !important; min-height: 0 !important; max-height: none !important;
  flex: 0 0 205px !important; display: flex !important; align-items: center !important;
  margin: 0 !important; padding: 0 !important;
}
#topbar .brand-logo .site-logo {
  display: block !important; width: 205px !important; min-width: 205px !important; max-width: 205px !important;
  height: auto !important; min-height: 0 !important; max-height: none !important;
  aspect-ratio: 838 / 321 !important; object-fit: contain !important; object-position: left center !important;
  margin: 0 !important; padding: 0 !important;
}
#topbar nav {
  display: flex !important; align-items: center !important; gap: 24px !important;
  margin: 0 auto 0 0 !important; padding: 0 !important;
}
#topbar nav a {
  font-size: 15px !important; font-weight: 600 !important; line-height: 1 !important;
  white-space: nowrap !important; color: #fff !important; text-decoration: none !important; opacity: .92 !important;
}
#topbar nav a:hover, #topbar nav a.on { color: #69B7FF !important; opacity: 1 !important; }
#topbar .header-cta {
  margin: 0 0 0 auto !important; height: 46px !important; min-height: 46px !important;
  padding: 0 20px !important; display: inline-flex !important; align-items: center !important; justify-content: center !important;
  border-radius: 10px !important; background: #fff !important; color: #04295E !important;
  font-size: 14px !important; font-weight: 700 !important; white-space: nowrap !important;
  text-decoration: none !important;
}
@media (max-width: 980px) {
  #topbar, #topbar.scrolled { padding: 0 20px !important; gap: 16px !important; }
  #topbar .brand-logo { width: 175px !important; min-width: 175px !important; max-width: 175px !important; flex-basis: 175px !important; }
  #topbar .brand-logo .site-logo { width: 175px !important; min-width: 175px !important; max-width: 175px !important; }
  #topbar nav { gap: 15px !important; }
  #topbar nav a { font-size: 13px !important; }
  #topbar .header-cta { padding: 0 14px !important; font-size: 13px !important; }
}
@media (max-width: 760px) {
  #topbar, #topbar.scrolled { height: 78px !important; min-height: 78px !important; max-height: 78px !important; padding: 0 16px !important; gap: 12px !important; }
  #topbar .brand-logo { width: 160px !important; min-width: 160px !important; max-width: 160px !important; flex-basis: 160px !important; }
  #topbar .brand-logo .site-logo { width: 160px !important; min-width: 160px !important; max-width: 160px !important; }
  #topbar nav { display: none !important; }
  #topbar .header-cta { margin-left: auto !important; height: 42px !important; min-height: 42px !important; padding: 0 12px !important; font-size: 12px !important; }
}


/* ===== V39 — pages légales ===== */
.legal-page{max-width:980px;margin:140px auto 90px;padding:0 24px}.legal-card{background:#fff;border:1px solid #dfe7f1;border-radius:28px;padding:48px;box-shadow:0 16px 38px rgba(4,41,94,.07)}.legal-card h1{font-size:46px;color:#082956;margin:12px 0 28px}.legal-card h2{font-size:22px;color:#0b4e98;margin:30px 0 10px}.legal-card p{color:#53657b;line-height:1.75}.legal-card a{color:#0b67ad;text-decoration:none;font-weight:600}@media(max-width:760px){.legal-page{margin-top:105px;padding:0 15px}.legal-card{padding:30px 22px}.legal-card h1{font-size:36px}}

/* ===== V39 — suppression des largeurs fixes héritées de 1440 px ===== */
html, body { width:100% !important; min-width:0 !important; max-width:none !important; overflow-x:hidden; }
.slide { width:100vw !important; }
.hero-full { width:100vw !important; max-width:100vw !important; }

/* ===== V40 — LOGO PLUS COMPACT + EN-TÊTE DÉCALÉ VERS LA DROITE ===== */
#topbar, #topbar.scrolled{
  padding-left:70px !important;
  padding-right:50px !important;
}
#topbar .brand-logo{
  width:175px !important;
  min-width:175px !important;
  max-width:175px !important;
  flex:0 0 175px !important;
}
#topbar .brand-logo .site-logo{
  width:175px !important;
  min-width:175px !important;
  max-width:175px !important;
  height:auto !important;
}
@media (max-width:980px){
  #topbar, #topbar.scrolled{padding-left:45px !important;padding-right:30px !important}
  #topbar .brand-logo{width:155px !important;min-width:155px !important;max-width:155px !important;flex-basis:155px !important}
  #topbar .brand-logo .site-logo{width:155px !important;min-width:155px !important;max-width:155px !important}
}
@media (max-width:760px){
  #topbar, #topbar.scrolled{padding-left:28px !important;padding-right:16px !important}
  #topbar .brand-logo{width:140px !important;min-width:140px !important;max-width:140px !important;flex-basis:140px !important}
  #topbar .brand-logo .site-logo{width:140px !important;min-width:140px !important;max-width:140px !important}
}

/* ===== V41 — logo réduit de 40 % + navigation décalée vers la droite ===== */
#topbar .brand-logo,
#topbar .brand-logo .site-logo{
  width:105px !important;
  min-width:105px !important;
  max-width:105px !important;
  flex-basis:105px !important;
  height:auto !important;
  max-height:none !important;
  aspect-ratio:838 / 321 !important;
  object-fit:contain !important;
}
#topbar.scrolled .brand-logo,
#topbar.scrolled .brand-logo .site-logo{
  width:105px !important;
  min-width:105px !important;
  max-width:105px !important;
  flex-basis:105px !important;
  height:auto !important;
}
#topbar nav{
  margin-left:60px !important;
  margin-right:0 !important;
}
@media (max-width:980px){
  #topbar .brand-logo,
  #topbar .brand-logo .site-logo,
  #topbar.scrolled .brand-logo,
  #topbar.scrolled .brand-logo .site-logo{
    width:105px !important;
    min-width:105px !important;
    max-width:105px !important;
    flex-basis:105px !important;
  }
  #topbar nav{margin-left:40px !important;gap:15px !important}
}
@media (max-width:760px){
  #topbar .brand-logo,
  #topbar .brand-logo .site-logo,
  #topbar.scrolled .brand-logo,
  #topbar.scrolled .brand-logo .site-logo{
    width:105px !important;
    min-width:105px !important;
    max-width:105px !important;
    flex-basis:105px !important;
  }
  #topbar nav{display:none !important}
}


/* V42 — logo global compact */
#topbar .brand-logo, #topbar .brand-logo .site-logo, #topbar.scrolled .brand-logo, #topbar.scrolled .brand-logo .site-logo { width:84px !important; min-width:84px !important; max-width:84px !important; flex-basis:84px !important; height:auto !important; max-height:none !important; aspect-ratio:838 / 321 !important; object-fit:contain !important; }
@media(max-width:980px){ #topbar .brand-logo, #topbar .brand-logo .site-logo, #topbar.scrolled .brand-logo, #topbar.scrolled .brand-logo .site-logo { width:84px !important; min-width:84px !important; max-width:84px !important; flex-basis:84px !important; } }
@media(max-width:760px){ #topbar .brand-logo, #topbar .brand-logo .site-logo, #topbar.scrolled .brand-logo, #topbar.scrolled .brand-logo .site-logo { width:84px !important; min-width:84px !important; max-width:84px !important; flex-basis:84px !important; } }

/* V43 — navigation poussée au maximum vers la droite */
@media (min-width:981px){
  #topbar{padding-right:0 !important;}
  #topbar nav{margin-right:0 !important;}
  body.devis-page #topbar{padding-right:0 !important;}
  body.devis-page #topbar nav{margin-right:0 !important;}
}

/* ===== V44 — NAVIGATION REPOUSSÉE À DROITE SANS CHEVAUCHEMENT DU LOGO ===== */
@media (min-width: 981px){
  #topbar, #topbar.scrolled{
    padding-left:34px !important;
    padding-right:24px !important;
    gap:16px !important;
  }
  #topbar nav{
    margin-left:auto !important;
    margin-right:0 !important;
    flex:0 0 auto !important;
    gap:20px !important;
  }
  #topbar .header-cta{
    margin-left:0 !important;
    margin-right:0 !important;
    flex:0 0 auto !important;
  }
}

/* V46 — Logo global : plus petit et taille fixe sur toutes les pages */
#topbar .brand-logo,
#topbar .brand-logo .site-logo,
#topbar.scrolled .brand-logo,
#topbar.scrolled .brand-logo .site-logo{
  width:70px !important;
  min-width:70px !important;
  max-width:70px !important;
  flex:0 0 70px !important;
  height:auto !important;
  max-height:none !important;
  aspect-ratio:838 / 321 !important;
  object-fit:contain !important;
}

/* Le logo ne change pas de dimension au défilement */
#topbar.scrolled .brand-logo .site-logo{
  width:70px !important;
  min-width:70px !important;
  max-width:70px !important;
  height:auto !important;
}

@media (max-width:980px){
  #topbar .brand-logo,
  #topbar .brand-logo .site-logo,
  #topbar.scrolled .brand-logo,
  #topbar.scrolled .brand-logo .site-logo{
    width:70px !important;
    min-width:70px !important;
    max-width:70px !important;
    flex:0 0 70px !important;
  }
}

@media (max-width:760px){
  #topbar .brand-logo,
  #topbar .brand-logo .site-logo,
  #topbar.scrolled .brand-logo,
  #topbar.scrolled .brand-logo .site-logo{
    width:70px !important;
    min-width:70px !important;
    max-width:70px !important;
    flex:0 0 70px !important;
  }
}


/* V47 — logo contenu dans la barre fixe + contenu décalé sous le header */
#topbar, #topbar.scrolled{
  position:fixed !important;
  top:0 !important; left:0 !important; right:0 !important;
  height:96px !important;
  min-height:96px !important;
  max-height:96px !important;
  overflow:hidden !important;
  z-index:99999 !important;
  align-items:center !important;
}
#topbar .brand-logo, #topbar .brand-logo .site-logo,
#topbar.scrolled .brand-logo, #topbar.scrolled .brand-logo .site-logo{
  width:70px !important; min-width:70px !important; max-width:70px !important;
  flex:0 0 70px !important; height:auto !important; max-height:70px !important;
  object-fit:contain !important; object-position:center !important;
  margin:0 !important;
}
@media(max-width:760px){
  #topbar, #topbar.scrolled{height:78px !important;min-height:78px !important;max-height:78px !important;}
}

/* V48 — logo toujours entièrement visible dans la barre, même pendant le scroll */
#topbar, #topbar.scrolled{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  height:96px !important;
  min-height:96px !important;
  max-height:96px !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  display:flex !important;
  align-items:center !important;
  z-index:99999 !important;
  transition:background .3s, box-shadow .3s !important;
}
#topbar .brand-logo,
#topbar.scrolled .brand-logo{
  position:relative !important;
  z-index:100000 !important;
  width:70px !important;
  min-width:70px !important;
  max-width:70px !important;
  height:40px !important;
  min-height:40px !important;
  max-height:40px !important;
  flex:0 0 70px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  overflow:visible !important;
  margin:0 !important;
  padding:0 !important;
}
#topbar .brand-logo .site-logo,
#topbar.scrolled .brand-logo .site-logo{
  position:relative !important;
  z-index:100001 !important;
  display:block !important;
  width:70px !important;
  min-width:70px !important;
  max-width:70px !important;
  height:auto !important;
  min-height:0 !important;
  max-height:40px !important;
  flex:none !important;
  object-fit:contain !important;
  object-position:left center !important;
  margin:0 !important;
  padding:0 !important;
}
@media(max-width:760px){
  #topbar, #topbar.scrolled{height:78px !important;min-height:78px !important;max-height:78px !important;}
  #topbar .brand-logo,
  #topbar.scrolled .brand-logo{width:70px !important;min-width:70px !important;max-width:70px !important;height:40px !important;}
  #topbar .brand-logo .site-logo,
  #topbar.scrolled .brand-logo .site-logo{width:70px !important;min-width:70px !important;max-width:70px !important;max-height:40px !important;}
}
