*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#07090a; --surface:#0d1113; --surface2:#12181b; --ink:#e9f2ef; --muted:#8ba09a;
  --accent:#6fe3b8; --accent2:#2e8fff; --rule:#1d262a; --rule2:#2a363b;
  --sans:'Inter',system-ui,sans-serif; --display:'Space Grotesk','Inter',sans-serif; --mono:'JetBrains Mono',ui-monospace,monospace;
  --a11y-font:var(--sans); --a11y-btn-bg:#6fe3b8; --a11y-btn-fg:#06100c; --a11y-panel-bg:#0d1113; --a11y-panel-fg:#e9f2ef; --a11y-focus:#6fe3b8;
}
.dark-context{--bg:#000;--surface:#060a0b}
html{background:var(--bg);scrollbar-width:none}html::-webkit-scrollbar{display:none}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.6;font-weight:300;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.wrap{max-width:80rem;margin:0 auto;padding:0 2rem}
.mono{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.03em;line-height:1.05}
.grad{background:linear-gradient(100deg,var(--accent),#a9f5d9 60%,var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}

/* header */
header{position:sticky;top:0;z-index:50;background:rgba(7,9,10,.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:2rem;height:4.6rem}
.logo{display:flex;align-items:center;gap:.65rem}
.logo svg{width:1.9rem;height:1.9rem}
.logo b{font-family:var(--display);font-size:1.02rem;letter-spacing:.06em;font-weight:600}
.logo span{font-family:var(--mono);font-size:.56rem;letter-spacing:.18em;color:var(--muted);display:block;margin-top:.1rem}
nav ul{display:flex;gap:1.7rem;list-style:none;font-size:.83rem;color:#c3d2cd}
nav a:hover{color:var(--accent)}
.nav-right{display:flex;align-items:center;gap:1rem}
.lang{display:flex;border:1px solid var(--rule2);border-radius:2px;overflow:hidden;font-family:var(--mono);font-size:.64rem;letter-spacing:.1em}
.lang a{padding:.32rem .55rem;color:var(--muted)}
.lang a[aria-current]{background:var(--accent);color:#06100c;font-weight:500}
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.72rem 1.15rem;border-radius:2px;border:1px solid var(--rule2);font-size:.8rem;font-weight:500;transition:.15s}
.btn:hover{border-color:var(--accent);color:var(--accent)}
.btn-solid{background:var(--accent);color:#06100c;border-color:var(--accent);font-weight:600}
.btn-solid:hover{background:#fff;color:#06100c;border-color:#fff}

/* hero */
.hero{position:relative;padding:5rem 0 4rem;border-bottom:1px solid var(--rule);overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,transparent 0 49.9%,var(--rule) 49.9% 50%,transparent 50%),
  radial-gradient(60rem 30rem at 78% 20%,rgba(111,227,184,.13),transparent 65%);
  pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:1fr 30rem;gap:3.5rem;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:.55rem;border:1px solid var(--rule2);padding:.35rem .65rem;border-radius:2px;margin-bottom:1.6rem}
.dot{width:.42rem;height:.42rem;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(111,227,184,.18);animation:pulse 2.6s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(111,227,184,0)}}
h1{font-size:clamp(2.6rem,4.6vw,4.05rem);line-height:1.02;margin-bottom:1.4rem}
.lead{color:#b7c8c2;font-size:1.02rem;max-width:32rem;margin-bottom:2rem}
.actions{display:flex;gap:.7rem;flex-wrap:wrap;margin-bottom:2.8rem}
.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule);padding-top:1.3rem;gap:1rem}
.hero-stats b{display:block;font-family:var(--display);font-size:1.7rem;font-weight:500;letter-spacing:-.02em}
.hero-stats span{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* carte supervision */
.panel{border:1px solid var(--rule2);background:linear-gradient(180deg,#0b1012,#080b0c);border-radius:4px;overflow:hidden;box-shadow:0 40px 80px -50px rgba(111,227,184,.4)}
.panel-top{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1rem;border-bottom:1px solid var(--rule)}
.panel-top .mono{font-size:.6rem}
.panel-top .live{display:flex;align-items:center;gap:.4rem;color:var(--accent);font-family:var(--mono);font-size:.6rem;letter-spacing:.1em}
.chart{padding:1rem 1rem 0}
.chart svg{width:100%;height:auto;display:block}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--rule)}
.metrics div{padding:.85rem 1rem;border-right:1px solid var(--rule)}
.metrics div:last-child{border-right:0}
.metrics b{display:block;font-family:var(--display);font-size:1.35rem;font-weight:500}
.metrics b small{font-family:var(--mono);font-size:.6rem;color:var(--muted);font-weight:400;margin-left:.15rem}
.metrics span{font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.panel-foot{display:flex;justify-content:space-between;padding:.55rem 1rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.56rem;color:#5f736e;letter-spacing:.06em}

/* bandeau */
.strip{border-bottom:1px solid var(--rule);background:#080b0c}
.strip .wrap{display:flex;align-items:center;gap:2.5rem;padding:1rem 2rem;flex-wrap:wrap}
.strip span:first-child{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:#647974}
.strip .clients{display:flex;gap:2.2rem;flex-wrap:wrap;font-family:var(--display);font-size:.82rem;color:#93a8a2;letter-spacing:.02em}

/* sections */
section{padding:4.5rem 0}
.shead{margin-bottom:2.4rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:end}
.shead .mono{margin-bottom:.7rem;display:block}
.shead h2{font-size:clamp(1.7rem,2.8vw,2.35rem);letter-spacing:-.03em}
.shead p{color:var(--muted);font-size:.9rem;max-width:25rem}
.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.pcard{border:1px solid var(--rule);background:var(--surface);border-radius:4px;padding:1.4rem;display:flex;flex-direction:column;gap:.8rem;position:relative;overflow:hidden;transition:.2s}
.pcard:hover{border-color:#33514a;background:var(--surface2)}
.pcard .top{display:flex;justify-content:space-between;align-items:flex-start}
.pcard h3{font-size:1.25rem}
.pcard .sku{font-family:var(--mono);font-size:.58rem;color:var(--muted);letter-spacing:.08em}
.pcard .draw{height:10.5rem;display:grid;place-items:center;border-block:1px solid var(--rule);margin:.2rem -1.4rem;background:radial-gradient(60% 60% at 50% 40%,rgba(111,227,184,.10),transparent);background-image:linear-gradient(var(--rule) 1px,transparent 1px),linear-gradient(90deg,var(--rule) 1px,transparent 1px);background-size:100% 100%,2.4rem 2.4rem;background-blend-mode:normal,multiply}
.pcard .draw svg{height:10rem;width:auto;filter:drop-shadow(0 0 14px rgba(111,227,184,.25))}
.pcard p{font-size:.83rem;color:#a3b7b1}
.specs{list-style:none;display:grid;gap:.35rem;margin-top:auto;padding-top:.9rem;border-top:1px solid var(--rule)}
.specs li{display:flex;justify-content:space-between;font-family:var(--mono);font-size:.63rem;color:var(--muted);letter-spacing:.03em}
.specs li b{color:#cfe0da;font-weight:400}

/* services */
.srows{border-top:1px solid var(--rule)}
.srow{display:grid;grid-template-columns:3rem 1fr 1.1fr auto;gap:1.5rem;align-items:center;padding:1.5rem .2rem;border-bottom:1px solid var(--rule);transition:.2s}
.srow:hover{background:#0a0f11;padding-left:.8rem}
.srow .n{font-family:var(--mono);font-size:.7rem;color:var(--accent)}
.srow h3{font-size:1.25rem}
.srow p{font-size:.85rem;color:var(--muted)}
.srow .plus{font-family:var(--mono);color:var(--accent);font-size:1rem}

/* secteurs */
.sect{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.sect div{background:var(--bg);padding:1.5rem 1.3rem;min-height:9rem;display:flex;flex-direction:column;justify-content:space-between}
.sect b{font-family:var(--display);font-size:1rem;font-weight:500}
.sect span{font-family:var(--mono);font-size:.6rem;color:var(--muted);letter-spacing:.06em;line-height:1.6}

/* journal */
.jgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.jitem{border-top:1px solid var(--rule2);padding-top:1rem;display:flex;flex-direction:column;gap:.6rem}
.jitem time{font-family:var(--mono);font-size:.6rem;color:var(--accent);letter-spacing:.1em}
.jitem h3{font-size:1.05rem;line-height:1.25;font-weight:500}
.jitem p{font-size:.82rem;color:var(--muted)}
.jitem a{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:#cfe0da;margin-top:auto;padding-top:.6rem}
.jitem a:hover{color:var(--accent)}

/* formation */
.training{border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.tr{display:grid;grid-template-columns:9rem 1fr 10rem 8rem;gap:1rem;align-items:center;padding:1.05rem 1.3rem;border-bottom:1px solid var(--rule);font-size:.87rem}
.tr:last-child{border-bottom:0}
.tr:hover{background:var(--surface)}
.tr .code{font-family:var(--mono);font-size:.63rem;color:var(--accent)}
.tr h4{font-size:.95rem;font-weight:500;font-family:var(--display)}
.tr .dur{font-family:var(--mono);font-size:.64rem;color:var(--muted)}
.badge{font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;text-transform:uppercase;border:1px solid #3a5a52;color:var(--accent);padding:.25rem .45rem;text-align:center;border-radius:2px}
.badge.off{border-color:var(--rule2);color:var(--muted)}

/* contact */
.contact{border:1px solid var(--rule2);border-radius:4px;background:
  radial-gradient(40rem 20rem at 85% 10%,rgba(46,143,255,.16),transparent 70%),
  linear-gradient(180deg,#0b1012,#080b0c);
  padding:3rem;display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center}
.contact h2{font-size:clamp(1.9rem,3.2vw,2.7rem);margin-bottom:1rem}
.contact p{color:var(--muted);font-size:.92rem;max-width:26rem}
.contact .meta{display:flex;gap:2rem;margin-top:1.8rem;font-family:var(--mono);font-size:.62rem;color:var(--muted);letter-spacing:.06em}
form{display:grid;gap:.65rem}
input,select{font:inherit;font-size:.88rem;background:#080b0c;border:1px solid var(--rule2);color:var(--ink);padding:.75rem .85rem;border-radius:2px;width:100%}
input::placeholder{color:#5f736e}
input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:transparent}
label{font-family:var(--mono);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}

footer{border-top:1px solid var(--rule);padding:3rem 0 5rem;background:#060809}
.fgrid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1fr;gap:2rem;font-size:.82rem}
footer h4{font-family:var(--mono);font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:#647974;margin-bottom:.85rem;font-weight:400}
footer ul{list-style:none;display:grid;gap:.45rem;color:#9db1ab}
footer a:hover{color:var(--accent)}
.legal{display:flex;justify-content:space-between;gap:1rem;margin-top:2.4rem;padding-top:1.1rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:.58rem;color:#5f736e;letter-spacing:.05em;flex-wrap:wrap}
.demo{color:var(--accent)}
@media (max-width:1000px){
  .hero .wrap{grid-template-columns:1fr;gap:2.5rem}.pgrid,.jgrid{grid-template-columns:1fr}
  .sect{grid-template-columns:1fr 1fr}.contact{grid-template-columns:1fr;padding:2rem}
  .srow{grid-template-columns:2.4rem 1fr auto}.srow p{display:none}
  .tr{grid-template-columns:6rem 1fr}.tr .dur,.tr .badge{display:none}
  nav ul{display:none}.fgrid{grid-template-columns:1fr 1fr}
}

/* ── Backoffice : jetons sombres de la même famille ─────────────────────── */
:root{
  --side-bg:#0a0e10; --side-ink:#d5e3df; --side-line:#1d262a; --side-muted:#7b918b;
  --accent-ink:#06100c; --soft:#101719; --radius:3px; --bw:1px;
}
html,body{overflow-x:hidden}
body{min-height:100vh}
img{max-width:100%}

.demo-strip{background:var(--accent);color:#06100c;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}
.demo-strip .wrap{display:flex;justify-content:space-between;gap:1rem;padding-block:.35rem;flex-wrap:wrap}
.demo-strip a{color:#06100c;text-decoration:underline}

/* sélecteur de langue */
.langswitch{display:flex;border:1px solid var(--rule2);font-family:var(--mono);font-size:.62rem;letter-spacing:.1em}
.langswitch button{background:transparent;border:0;color:var(--muted);padding:.32rem .55rem;cursor:pointer;font:inherit}
.langswitch button[aria-pressed="true"]{background:var(--accent);color:#06100c;font-weight:500}

.rub{padding-block:3rem 4rem;min-height:60vh}
.rub-inner{max-width:80rem;margin:0 auto;padding:0 2rem}
.rub-head{max-width:46rem;margin-bottom:2rem}
.rub-kicker{font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem}
.rub-head h1{font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.7rem);letter-spacing:-.03em;line-height:1.05}
.rub-lead{color:var(--muted);font-size:.94rem;margin-top:.7rem}
.rub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.rub-card{border:1px solid var(--rule);background:var(--surface);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:.2s}
.rub-card:hover{border-color:#33514a;background:var(--surface2)}
.rub-fig{display:block;overflow:hidden;border-bottom:1px solid var(--rule)}
.rub-fig img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.rub-body{padding:1rem 1.1rem 1.2rem;display:flex;flex-direction:column;gap:.45rem;flex:1}
.rub-meta{display:flex;gap:.7rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.rub-tag{color:var(--accent)}
.rub-body h2{font-family:var(--display);font-size:1.12rem;line-height:1.15;font-weight:500}
.rub-body h2 a:hover{color:var(--accent)}
.rub-sum{font-size:.82rem;color:#a3b7b1}
.rub-foot{margin-top:auto;padding-top:.6rem;border-top:1px solid var(--rule);display:flex;gap:.7rem;flex-wrap:wrap;font-family:var(--mono);font-size:.56rem;color:var(--muted)}
.rub-empty{padding:2rem 0;color:var(--muted);font-family:var(--mono);font-size:.75rem}

.art{max-width:46rem}
.art h1{font-family:var(--display);font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.06;margin:.5rem 0 .9rem}
.art-lead{font-size:1rem;color:#b7c8c2;margin-bottom:1.6rem}
.art-fig{margin:0 0 1.6rem;border:1px solid var(--rule);border-radius:4px;overflow:hidden}
.art-fig img{width:100%;display:block;max-height:26rem;object-fit:cover}
.art-body p{font-size:.96rem;line-height:1.75;color:#c7d7d2}
.art-meta{display:flex;gap:2rem;flex-wrap:wrap;margin:1.8rem 0;padding:1rem 0;border-block:1px solid var(--rule);font-size:.78rem}
.art-meta dt{font-family:var(--mono);font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.art-meta dd{margin:.2rem 0 0}
.rub-back{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}

.sent{border:1px solid var(--accent);background:rgba(111,227,184,.09);color:var(--accent);padding:1rem;border-radius:4px;font-size:.85rem}

@media (max-width:960px){.rub-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.rub-grid{grid-template-columns:1fr}}
