:root{
  --navy:#0B1E3F;--navy-2:#13294F;--navy-3:#1B3563;--blue:#1F6FEB;--blue-ink:#1A56C4;--amber:#F4A300;
  --bg:#FFFFFF;--bg-alt:#F3F5F8;--surface:#FFFFFF;--ink:#14213D;--muted:#56627A;--line:#E1E6EE;
  --head:'Montserrat',Arial,Helvetica,sans-serif;--body:'Source Sans 3','Segoe UI',Arial,sans-serif;
  --wrap:1200px;--nav-h:76px;
  box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0E1A33;--bg-alt:#0A1428;--surface:#13294F;--ink:#E8EDF6;--muted:#A9B6CC;--line:#243556;--blue-ink:#7FB0FF}}
:root[data-theme="dark"]{--bg:#0E1A33;--bg-alt:#0A1428;--surface:#13294F;--ink:#E8EDF6;--muted:#A9B6CC;--line:#243556;--blue-ink:#7FB0FF}
*,*::before,*::after{box-sizing:inherit}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + env(safe-area-inset-top,0px))}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:var(--head);line-height:1.15;margin:0;letter-spacing:-.01em}
p{margin:0}
.wrap{width:min(var(--wrap),100% - 48px);margin-inline:auto}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px;border-radius:4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- Header ---------- */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;padding-top:env(safe-area-inset-top,0px);transition:background .3s,box-shadow .3s}
.site-header .bar{height:var(--nav-h);display:flex;align-items:center;gap:32px}
.brand{display:flex;flex-direction:column;text-decoration:none;color:#fff;line-height:1}
.brand b{font-family:var(--head);font-weight:800;font-size:26px;letter-spacing:.32em}
.brand small{font-size:11px;letter-spacing:.08em;opacity:.8;margin-top:5px;font-style:italic}
.menu{display:flex;align-items:center;gap:6px;margin-left:auto;list-style:none;padding:0;margin-block:0}
.menu>li{position:relative}
.menu a,.menu button{font:600 15px var(--head);color:#fff;text-decoration:none;background:none;border:0;padding:10px 12px;cursor:pointer;border-radius:6px;display:flex;align-items:center;gap:6px}
.menu a:hover,.menu button:hover{background:rgba(255,255,255,.1)}
.menu .caret{width:10px;height:10px;transition:transform .2s}
.drop{position:absolute;top:100%;left:0;min-width:300px;background:#fff;border-radius:10px;box-shadow:0 18px 40px rgba(11,30,63,.18);padding:10px;list-style:none;margin:6px 0 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s}
.drop a{color:var(--navy);font-weight:600;font-size:14px;padding:10px 12px}
.drop a:hover{background:#F3F5F8}
.has-drop:hover .drop,.has-drop:focus-within .drop,.has-drop.open .drop{opacity:1;visibility:visible;transform:none}
.has-drop:hover .caret,.has-drop.open .caret{transform:rotate(180deg)}
.cta-nav{margin-left:8px;background:var(--amber)!important;color:var(--navy)!important;padding:11px 20px!important;border-radius:999px!important}
.cta-nav:hover{filter:brightness(1.05)}
.site-header.solid{background:#fff;box-shadow:0 2px 20px rgba(11,30,63,.08)}
.site-header.solid .brand{color:var(--navy)}
.site-header.solid .menu>li>a,.site-header.solid .menu>li>button{color:var(--navy)}
.site-header.solid .menu>li>a:hover,.site-header.solid .menu>li>button:hover{background:#F3F5F8}
.burger{display:none;margin-left:auto;width:46px;height:46px;border:0;border-radius:8px;background:rgba(255,255,255,.12);color:#fff;cursor:pointer}
.site-header.solid .burger{background:#F3F5F8;color:var(--navy)}
.burger span,.burger span::before,.burger span::after{display:block;width:22px;height:2px;background:currentColor;margin:auto;position:relative;transition:.25s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0}
.burger span::before{top:-7px}.burger span::after{top:7px}
.nav-open .burger span{background:transparent}.nav-open .burger span::before{top:0;transform:rotate(45deg)}.nav-open .burger span::after{top:0;transform:rotate(-45deg)}
@media (max-width:1040px){
  .burger{display:block}
  .menu{position:fixed;top:calc(var(--nav-h) + env(safe-area-inset-top,0px));left:0;right:0;bottom:0;flex-direction:column;align-items:stretch;gap:0;background:var(--navy);padding:16px 24px calc(24px + env(safe-area-inset-bottom,0px));overflow-y:auto;transform:translateX(100%);transition:transform .3s;margin:0}
  .nav-open .menu{transform:none}
  .menu a,.menu button,.site-header.solid .menu>li>a,.site-header.solid .menu>li>button{color:#fff;font-size:18px;padding:14px 4px;width:100%;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);border-radius:0}
  .drop{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;background:transparent;display:none;padding:0 0 8px 12px;margin:0;min-width:0}
  .has-drop.open .drop{display:block}
  .drop a{color:#C9D5EA!important;font-size:16px;border:0!important}
  .cta-nav{margin:18px 0 0;justify-content:center!important}
}

/* ---------- Hero carousel ---------- */
.hero{position:relative;background:var(--navy);color:#fff;min-height:min(100svh,880px);display:flex;flex-direction:column;overflow:hidden}
.slides{position:relative;flex:1;min-height:600px}
.slide{position:absolute;inset:0;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:40px;padding:calc(var(--nav-h) + 40px) max(24px,calc((100% - var(--wrap))/2)) 150px;opacity:0;visibility:hidden;transition:opacity .8s ease,visibility .8s}
.slide.on{opacity:1;visibility:visible}
.slide::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 70% at 75% 45%,var(--glow,rgba(31,111,235,.35)),transparent 70%);pointer-events:none}
.slide .txt{position:relative;max-width:600px}
.kicker{display:inline-flex;align-items:center;gap:10px;font:600 15px var(--head);color:var(--amber);margin-bottom:22px}
.kicker i{width:34px;height:2px;background:var(--amber)}
.slide h2,.slide h1{font-size:clamp(34px,5vw,62px);font-weight:800;margin-bottom:22px}
.slide p{font-size:clamp(17px,1.6vw,20px);color:#C9D5EA;max-width:52ch;margin-bottom:34px}
.btns{display:flex;flex-wrap:wrap;gap:14px}
.btn{display:inline-flex;align-items:center;gap:10px;font:700 15px var(--head);text-decoration:none;padding:15px 26px;border-radius:999px;border:2px solid transparent;cursor:pointer;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-2px)}
.btn-amber{background:var(--amber);color:var(--navy)}
.btn-ghost{border-color:rgba(255,255,255,.5);color:#fff}
.btn-ghost:hover{background:rgba(255,255,255,.1)}
.btn-navy{background:var(--navy);color:#fff}
.art{position:relative;justify-self:center;width:min(100%,540px)}
.slide .art{transform:translateX(30px) scale(.97);transition:transform 1s cubic-bezier(.2,.7,.2,1)}
.slide.on .art{transform:none}
.slide .txt>*{transform:translateY(14px);opacity:0;transition:transform .7s,opacity .7s}
.slide.on .txt>*{transform:none;opacity:1}
.slide.on .txt>*:nth-child(2){transition-delay:.08s}.slide.on .txt>*:nth-child(3){transition-delay:.16s}.slide.on .txt>*:nth-child(4){transition-delay:.24s}
.hero-nav{position:absolute;left:0;right:0;bottom:0;border-top:1px solid rgba(255,255,255,.12);background:rgba(8,20,45,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hero-nav .wrap{display:flex;align-items:stretch}
.tabs{display:grid;grid-template-columns:repeat(8,1fr);flex:1;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{position:relative;background:none;border:0;color:#9FB2CF;font:600 13px var(--head);text-align:left;padding:20px 14px 22px;cursor:pointer;min-width:120px;line-height:1.3}
.tab:hover{color:#fff}
.tab.on{color:#fff}
.tab::before{content:"";position:absolute;left:14px;right:14px;top:0;height:3px;background:rgba(255,255,255,.12)}
.tab .fill{position:absolute;left:14px;top:0;height:3px;width:0;background:var(--amber)}
.ctrl{display:flex;gap:8px;align-items:center;padding-left:16px}
.ctrl button{width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:none;color:#fff;cursor:pointer;display:grid;place-items:center}
.ctrl button:hover{background:rgba(255,255,255,.1)}
@media (max-width:900px){
  .slide{grid-template-columns:1fr;padding-top:calc(var(--nav-h) + 24px);padding-bottom:130px;gap:10px;align-content:center}
  .art{order:-1;width:min(70%,320px)}
  .slides{min-height:760px}
  .ctrl{display:none}
  .tab{min-width:140px}
}

/* ---------- Sections ---------- */
section{padding:110px 0}
.alt{background:var(--bg-alt)}
.sec-head{max-width:760px;margin-bottom:56px}
.label{display:inline-flex;align-items:center;gap:10px;font:700 14px var(--head);color:var(--blue-ink);margin-bottom:16px}
.label i{width:28px;height:2px;background:currentColor}
.sec-head h2{font-size:clamp(30px,3.6vw,46px);font-weight:800;margin-bottom:18px}
.sec-head p{color:var(--muted);font-size:19px;max-width:62ch}

/* stats */
.stats{background:var(--bg);padding:0;border-bottom:1px solid var(--line)}
.stats .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:44px 24px 40px;border-left:1px solid var(--line)}
.stat:first-child{border-left:0;padding-left:0}
.stat b{display:block;font:800 clamp(34px,4vw,50px)/1 var(--head);color:var(--navy);margin-bottom:10px}
:root[data-theme="dark"] .stat b{color:#fff}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .stat b{color:#fff}}
.stat span{color:var(--muted);font-size:16px}
@media (max-width:760px){.stats .wrap{grid-template-columns:1fr 1fr}.stat{padding:28px 16px}.stat:nth-child(3){border-left:0;padding-left:0}.stat:nth-child(n+3){border-top:1px solid var(--line)}}

/* about */
.about{display:grid;grid-template-columns:1.25fr .9fr;gap:64px;align-items:start}
.about .lead{font-size:22px;line-height:1.55;margin-bottom:36px}
.points{display:grid;grid-template-columns:1fr 1fr;gap:28px 36px}
.point h3{font-size:18px;margin:14px 0 6px}
.point p{color:var(--muted);font-size:16.5px}
.ico{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#E8F0FE;color:var(--blue)}
.ico.am{background:#FEF3DC;color:#C77F00}
.ico svg{width:24px;height:24px}
.ico{flex:none}
.idcard{background:var(--navy);color:#fff;border-radius:18px;padding:40px;position:relative;overflow:hidden}
.idcard::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;border:2px solid rgba(244,163,0,.25)}
.idcard h3{color:var(--amber);font-size:20px;margin-bottom:24px}
.idcard dl{margin:0;display:grid;gap:18px}
.idcard dt{font-size:14px;color:#9FB2CF}
.idcard dd{margin:2px 0 0;font:700 17px var(--head);letter-spacing:.01em}
.idcard dd.addr{font:400 16px var(--body)}
@media (max-width:900px){.about{grid-template-columns:1fr;gap:48px}.points{grid-template-columns:1fr}}

/* mission */
.mission{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.mission article{padding:40px 36px 10px 0}
.mission article+article{padding-left:36px;border-left:1px solid var(--line)}
.mission h3{font-size:22px;margin:20px 0 12px}
.mission p{color:var(--muted)}
@media (max-width:900px){.mission{grid-template-columns:1fr}.mission article+article{padding-left:0;border-left:0;border-top:1px solid var(--line)}}

/* métiers (pillars) */
.pillars{display:grid;grid-template-columns:340px 1fr;gap:56px;align-items:start}
.plist{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pbtn{width:100%;display:flex;align-items:center;gap:16px;background:none;border:0;border-bottom:1px solid var(--line);padding:18px 6px;text-align:left;cursor:pointer;font:600 17px var(--head);color:var(--muted);position:relative}
.pbtn svg{width:22px;height:22px;flex:none}
.pbtn:hover{color:var(--ink)}
.pbtn[aria-selected="true"]{color:var(--ink)}
.pbtn[aria-selected="true"]::after{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:100%;background:var(--amber)}
.pbtn[aria-selected="true"] svg{color:var(--blue)}
.ppanel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:48px;min-height:520px}
.ppanel[hidden]{display:none}
.ppanel .phead{display:flex;gap:20px;align-items:center;margin-bottom:22px}
.ppanel .phead .ico{width:64px;height:64px}
.ppanel .phead .ico svg{width:30px;height:30px}
.ppanel h3{font-size:clamp(24px,2.6vw,32px);font-weight:800}
.ppanel .plead{font-size:20px;color:var(--muted);margin-bottom:30px;max-width:60ch}
.checks{list-style:none;margin:0 0 34px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 32px}
.checks li{display:flex;gap:12px;font-size:16.5px}
.checks li::before{content:"";flex:none;width:20px;height:20px;margin-top:3px;border-radius:50%;background:var(--blue) url("../images/icons/check.svg") center/13px no-repeat}
.checks.wide{grid-template-columns:1fr}
.checks li b{font-family:var(--head);font-size:16px}
.link{font:700 15px var(--head);color:var(--blue-ink);text-decoration:none;border-bottom:2px solid currentColor;padding-bottom:3px}
@media (max-width:1000px){.pillars{grid-template-columns:1fr;gap:28px}.plist{display:flex;overflow-x:auto;border:0;gap:6px;scrollbar-width:none}.plist::-webkit-scrollbar{display:none}.pbtn{white-space:nowrap;border:1px solid var(--line);border-radius:999px;padding:10px 18px;font-size:15px}.pbtn[aria-selected="true"]{background:var(--navy);color:#fff;border-color:var(--navy)}.pbtn[aria-selected="true"]::after{display:none}.pbtn[aria-selected="true"] svg{color:var(--amber)}.ppanel{padding:30px 24px;min-height:0}.checks{grid-template-columns:1fr}}

/* expertise */
.xgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.xcard{background:var(--surface);border-radius:16px;padding:34px;border:1px solid var(--line)}
.xcard h3{font-size:19px;margin:20px 0 10px}
.xcard p{color:var(--muted);font-size:16.5px}
@media (max-width:900px){.xgrid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.xgrid{grid-template-columns:1fr}}

/* why */
.why{display:grid;grid-template-columns:.9fr 1.1fr;gap:0;border-radius:24px;overflow:hidden;background:var(--surface);border:1px solid var(--line)}
.why-left{background:var(--navy);color:#fff;padding:56px 48px;position:relative;overflow:hidden}
.why-left h2{font-size:clamp(28px,3vw,40px);font-weight:800;margin:10px 0 20px}
.why-left p{color:#C9D5EA}
.why-left .label{color:var(--amber)}
.why-left .deco{position:absolute;right:-40px;bottom:-40px;width:260px;opacity:.9}
.why-right{padding:36px 48px}
.adv{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}
.adv:last-child{border-bottom:0}
.adv h3{font-size:18px;margin-bottom:4px}
.adv p{color:var(--muted);font-size:16.5px}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:72px}
.values h3{font-size:20px;margin:0 0 10px;padding-top:22px;border-top:3px solid var(--blue)}
.values div:nth-child(2) h3{border-color:var(--amber)}
.values div:nth-child(3) h3{border-color:var(--navy)}
:root[data-theme="dark"] .values div:nth-child(3) h3{border-color:#7FB0FF}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .values div:nth-child(3) h3{border-color:#7FB0FF}}
.values p{color:var(--muted)}
@media (max-width:900px){.why-left .deco{width:150px;right:-50px;bottom:-50px;opacity:.5}.why{grid-template-columns:1fr}.why-left,.why-right{padding:36px 26px}.values{grid-template-columns:1fr;gap:28px}}

/* references marquee */
.marquee{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.track{display:flex;gap:22px;width:max-content;animation:scroll 60s linear infinite}
.marquee:hover .track,.marquee:focus-within .track{animation-play-state:paused}
.track.rev{animation-direction:reverse;animation-duration:70s;margin-top:22px}
@keyframes scroll{to{transform:translateX(-50%)}}
.logo-tile{flex:none;width:210px;height:110px;background:#fff;border-radius:14px;border:1px solid #E1E6EE;display:grid;place-items:center;padding:16px}
.logo-tile img{max-width:100%;max-height:74px;object-fit:contain}
@media (prefers-reduced-motion:reduce){.track{flex-wrap:wrap;width:auto;justify-content:center}.track [aria-hidden="true"]{display:none}}

/* contact */
.contact{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.cinfo{display:grid;gap:26px;margin-top:10px}
.crow{display:flex;gap:18px;align-items:flex-start}
.crow h3{font-size:16px;margin-bottom:2px}
.crow a,.crow p{color:var(--muted);text-decoration:none;font-size:17px}
.crow a:hover{color:var(--blue-ink)}
form{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:40px;display:grid;gap:18px}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{display:grid;gap:6px;font:600 14px var(--head)}
input,select,textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:13px 14px;width:100%}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--blue);border-color:transparent}
.fnote{font-size:14px;color:var(--muted)}
.ferr{color:#C0392B;font-size:14px;min-height:1em}
@media (max-width:900px){.contact{grid-template-columns:1fr;gap:40px}.frow{grid-template-columns:1fr}form{padding:26px}}

/* footer */
footer{background:var(--navy);color:#C9D5EA;padding:80px 0 calc(28px + env(safe-area-inset-bottom,0px));font-size:16px}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.1)}
footer h4{color:#fff;font-size:15px;margin-bottom:18px}
footer ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
footer a{text-decoration:none}
footer a:hover{color:#fff}
.fbrand b{font:800 30px var(--head);letter-spacing:.32em;color:#fff;display:block}
.fbrand em{display:block;color:var(--amber);margin:8px 0 18px}
.legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:26px;font-size:14px;color:#8FA3C2}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.fgrid{grid-template-columns:1fr}}
