*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{--g:#1EBE60;--d:#0C0C0C;--w:#fff;--gr:#F4F4F2;--mu:#888;--b:rgba(0,0,0,.1)}
html{scroll-behavior:smooth;overflow-x:hidden}
body{font-family:'DM Sans',sans-serif;background:var(--w);color:var(--d);overflow-x:hidden;cursor:none}

/* CURSOR */
#cur{position:fixed;width:10px;height:10px;background:var(--g);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%)}
#ring{position:fixed;width:40px;height:40px;border:1.5px solid var(--g);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);opacity:.4;transition:width .18s,height .18s,opacity .18s}
#ring.hov{width:58px;height:58px;opacity:.22}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 3.5rem;transition:background .4s,border-color .4s}
nav.lit{background:rgba(255,255,255,.85);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);border-bottom:1px solid rgba(0,0,0,.07)}
nav.drk{background:transparent;border-bottom:1px solid transparent}
.nlogo{display:flex;align-items:center;text-decoration:none}
.nlogo-img{height:30px;width:auto;display:block}
nav.drk .nlogo{color:#fff}
nav.lit .nlogo{color:var(--d)}
.nlinks{display:flex;gap:2.5rem;list-style:none}
.nlinks a{font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:color .3s}
nav.drk .nlinks a{color:rgba(255,255,255,.5)}
nav.drk .nlinks a:hover{color:#fff}
nav.lit .nlinks a{color:var(--mu)}
nav.lit .nlinks a:hover{color:var(--d)}
.ncta{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.6rem 1.4rem;border-radius:100px;cursor:none;border:none;font-family:'DM Sans',sans-serif;transition:transform .2s,background .3s,color .3s}
nav.drk .ncta{background:var(--g);color:var(--d)}
nav.lit .ncta{background:var(--d);color:#fff}
.ncta:hover{transform:scale(1.05)}

/* HERO */
.hero{height:100vh;min-height:700px;background:var(--d);display:flex;flex-direction:column;justify-content:flex-end;padding:0 3.5rem 3.5rem;position:relative;overflow:hidden}
.hero-wm{position:absolute;font-family:'Bebas Neue',sans-serif;font-size:33vw;line-height:1;color:rgba(255,255,255,.027);right:-1vw;top:50%;transform:translateY(-53%);pointer-events:none;user-select:none;white-space:nowrap;z-index:0}
.hero-in{position:relative;z-index:2}
.htag{display:inline-flex;align-items:center;gap:8px;font-size:.7rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--g);margin-bottom:1.2rem}
.htag::before{content:'';width:6px;height:6px;background:var(--g);border-radius:50%}
.htitle{font-family:'Bebas Neue',sans-serif;font-size:clamp(5.5rem,13.5vw,16rem);line-height:.87;letter-spacing:-.01em;color:#fff}
.htitle .g{color:var(--g)}
.tl{display:block;overflow:hidden}
.tli{display:block}
.hbot{display:flex;justify-content:space-between;align-items:flex-end;margin-top:2.5rem;border-top:1px solid rgba(255,255,255,.07);padding-top:1.8rem;gap:2rem}
.hdesc{max-width:360px;font-size:.9rem;line-height:1.78;color:rgba(255,255,255,.42);font-weight:300}
.hcl{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.22);margin-bottom:7px}
.hcn{display:flex;gap:1.6rem}
.hcn span{font-family:'Syne',sans-serif;font-size:.88rem;font-weight:700;color:rgba(255,255,255,.32)}
.hsi{display:flex;align-items:center;gap:10px;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.28)}
.sbar{width:32px;height:1px;background:var(--g)}

/* TICKER */
.tw{background:var(--g);padding:.85rem 0;overflow:hidden;white-space:nowrap}
.tt{display:inline-flex;will-change:transform}
.tick{display:inline-flex;align-items:center;gap:1.2rem;padding:0 1.8rem;font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:.05em;color:var(--d)}
.ts{width:5px;height:5px;background:rgba(0,0,0,.3);border-radius:50%;flex-shrink:0}

/* SECTION */
.sec{padding:8rem 3.5rem}
.slbl{display:inline-flex;align-items:center;gap:10px;font-size:.66rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--mu);margin-bottom:3.5rem}
.slbl::before{content:'';width:18px;height:1.5px;background:var(--g)}

/* REFS */
.rbg{background:var(--gr)}
.rhead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4.5rem;gap:3rem;flex-wrap:wrap}
.stitle{font-family:'Syne',sans-serif;font-size:clamp(2.8rem,5.5vw,5.5rem);font-weight:800;line-height:.93;letter-spacing:-.038em}
.stitle em{font-style:normal;color:var(--g)}
.snote{max-width:260px;font-size:.84rem;color:var(--mu);line-height:1.75;font-weight:300}

/* CLIENT CARDS */
.cgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(0,0,0,.08)}
.cc{background:var(--gr);padding:3.2rem 2.8rem 2.8rem;position:relative;overflow:hidden;transition:background .3s;display:flex;flex-direction:column;min-height:270px}
.cc:hover{background:#eaeae8}
.cc::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--g);transform:scaleX(0);transform-origin:left;transition:transform .45s ease}
.cc:hover::after{transform:scaleX(1)}
.cc-sector{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(0,0,0,.28);font-weight:500;margin-bottom:auto}
.cc-logo{margin:1.8rem 0 .9rem;display:flex;align-items:center}
.cc-logo img{max-height:52px;max-width:200px;width:auto;display:block;mix-blend-mode:multiply}
.cc-name-fallback{display:none;font-family:'Syne',sans-serif;font-size:clamp(2.8rem,4.2vw,4.5rem);font-weight:800;letter-spacing:-.04em;color:var(--d);line-height:1}
.cc-tag{font-size:.75rem;color:var(--mu);font-weight:300}
.rc-more{margin-top:2rem;display:flex;justify-content:flex-end}
.sec-link{display:inline-flex;align-items:center;gap:9px;font-family:'Syne',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--d);text-decoration:none;border-bottom:1.5px solid var(--g);padding-bottom:3px;transition:color .2s}
.sec-link:hover{color:var(--g)}
.sec-arr{width:7px;height:7px;border-right:1.5px solid currentColor;border-top:1.5px solid currentColor;transform:rotate(45deg);flex-shrink:0;transition:transform .2s}
.sec-link:hover .sec-arr{transform:rotate(45deg) translate(2px,-2px)}

/* SERVICES */
.shead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:4rem;gap:2rem;flex-wrap:wrap}
.sgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sc{border:1.5px solid var(--b);border-radius:20px;padding:2.4rem 2.2rem;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:border-color .3s,transform .25s,box-shadow .3s;background:var(--w)}
.sc:hover{border-color:var(--g);transform:translateY(-5px);box-shadow:0 20px 50px rgba(30,190,96,.1)}
.sc.dk{background:var(--d);border-color:var(--d)}
.sc.dk:hover{border-color:var(--g);box-shadow:0 20px 50px rgba(30,190,96,.15)}
.sctop{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.8rem}
.scnum{font-family:'Bebas Neue',sans-serif;font-size:.95rem;color:var(--g);letter-spacing:.1em}
.scpop{font-size:.58rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--g);color:var(--d);padding:4px 12px;border-radius:100px}
.scname{font-family:'Syne',sans-serif;font-size:1.3rem;font-weight:800;letter-spacing:-.025em;margin-bottom:.75rem;line-height:1.1}
.sc.dk .scname{color:#fff}
.scdesc{font-size:.82rem;line-height:1.78;color:var(--mu);font-weight:300;flex:1;margin-bottom:1.8rem}
.sc.dk .scdesc{color:rgba(255,255,255,.42)}
.sctags{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:0}
.sctag{font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid rgba(0,0,0,.12);padding:3px 9px;border-radius:100px;color:var(--mu)}
.sc.dk .sctag{border-color:rgba(255,255,255,.12);color:rgba(255,255,255,.38)}
.sc.wide{grid-column:span 2}

/* STATS */
.stsec{background:var(--d);padding:6rem 3.5rem}
.stgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:4rem}
.stat{border-left:3px solid var(--g);padding-left:2rem}
.stv{font-family:'Bebas Neue',sans-serif;font-size:6.5rem;color:#fff;line-height:1;display:flex;align-items:flex-start;gap:2px}
.stv sup{font-family:'Syne',sans-serif;font-size:1.7rem;font-weight:700;color:var(--g);margin-top:.55rem}
.stl{font-size:.82rem;color:rgba(255,255,255,.32);margin-top:.4rem;font-weight:300;line-height:1.6}

/* APPROACH */
.aphead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:5rem;gap:3rem;flex-wrap:wrap}
.aptitle{font-family:'Syne',sans-serif;font-size:clamp(2.8rem,5.5vw,5.5rem);font-weight:800;line-height:.93;letter-spacing:-.038em}
.tline{position:relative;padding-top:1.5rem}
.tline-bg{position:absolute;top:0;left:0;right:0;height:1.5px;background:rgba(0,0,0,.08)}
.tline-fill{height:100%;width:0;background:var(--g)}
.tsteps{display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem}
.tsi{padding-top:2rem;position:relative}
.tsi::before{content:'';position:absolute;top:-.75rem;left:0;width:10px;height:10px;background:var(--w);border:2px solid rgba(0,0,0,.15);border-radius:50%;transform:translateY(-50%);transition:border-color .4s,background .4s}
.tsi.on::before{border-color:var(--g);background:var(--g)}
.tsi-num{font-family:'Bebas Neue',sans-serif;font-size:2.8rem;color:var(--g);line-height:1;margin-bottom:.8rem}
.tsi-title{font-family:'Syne',sans-serif;font-size:1.02rem;font-weight:700;letter-spacing:-.015em;margin-bottom:.6rem}
.tsi-desc{font-size:.8rem;line-height:1.75;color:var(--mu);font-weight:300}

/* CTA */
.cta{background:var(--g);padding:8rem 3.5rem;text-align:center;position:relative;overflow:hidden}
.ctawm{position:absolute;font-family:'Bebas Neue',sans-serif;font-size:30vw;color:rgba(0,0,0,.055);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;white-space:nowrap}
.ctatitle{font-family:'Bebas Neue',sans-serif;font-size:clamp(4.5rem,13vw,15rem);line-height:.87;letter-spacing:-.02em;color:var(--d);position:relative;z-index:1}
.ctasub{font-size:1rem;color:rgba(0,0,0,.5);margin:1.8rem 0 2.8rem;font-weight:300;position:relative;z-index:1}
.ctabtn{display:inline-flex;align-items:center;gap:14px;background:var(--d);color:#fff;font-family:'Syne',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:1.15rem 2.6rem;border-radius:100px;position:relative;z-index:1;cursor:none;transition:transform .3s,box-shadow .3s;border:none}
.ctabtn:hover{transform:scale(1.05);box-shadow:0 20px 50px rgba(0,0,0,.22)}
.arr{width:8px;height:8px;border-right:2px solid #fff;border-top:2px solid #fff;transform:rotate(45deg);flex-shrink:0}

/* FOOTER */
footer{background:var(--d);padding:3.5rem;display:flex;justify-content:space-between;align-items:center;border-top:1px solid rgba(255,255,255,.05);gap:2rem;flex-wrap:wrap}
.fl{display:flex;align-items:center}
.fl-img{height:27px;width:auto;display:block}
.flinks{display:flex;gap:2rem;list-style:none;flex-wrap:wrap}
.flinks a{font-size:.72rem;color:rgba(255,255,255,.28);text-decoration:none;transition:color .2s}
.flinks a:hover{color:var(--g)}
.fmail{font-size:.82rem;font-weight:500;color:var(--g);text-decoration:none;letter-spacing:.01em;transition:opacity .2s}
.fmail:hover{opacity:.7}
.fcopy{font-size:.7rem;color:rgba(255,255,255,.16)}

/* MODAL */
.moverlay{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s}
.moverlay.open{opacity:1;pointer-events:all}
.modal{background:var(--w);border-radius:24px;padding:3rem;width:100%;max-width:520px;margin:1rem;position:relative;transform:translateY(32px) scale(.96);transition:transform .45s cubic-bezier(.16,1,.3,1)}
.moverlay.open .modal{transform:none}
.mclose{position:absolute;top:1.3rem;right:1.3rem;width:34px;height:34px;border-radius:50%;background:var(--gr);border:none;cursor:none;display:flex;align-items:center;justify-content:center;font-size:1rem;color:var(--mu);transition:background .2s}
.mclose:hover{background:#e2e2e0}
.mtitle{font-family:'Syne',sans-serif;font-size:1.75rem;font-weight:800;letter-spacing:-.03em;margin-bottom:.35rem}
.msub{font-size:.84rem;color:var(--mu);margin-bottom:2rem;font-weight:300}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.fg{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.flbl{font-size:.66rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--mu)}
.finput,.fsel,.ftextarea{font-family:'DM Sans',sans-serif;font-size:.9rem;color:var(--d);background:var(--gr);border:1.5px solid transparent;border-radius:12px;padding:.8rem 1rem;outline:none;transition:border-color .2s;width:100%;cursor:none}
.ftextarea{resize:vertical;min-height:96px}
.finput:focus,.fsel:focus,.ftextarea:focus{border-color:var(--g)}
.fsel{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='7' viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23888' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center}
.fsub{width:100%;padding:1.1rem;border-radius:12px;background:var(--d);color:#fff;font-family:'Syne',sans-serif;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border:none;cursor:none;margin-top:.4rem;transition:background .2s,transform .2s}
.fsub:hover{background:#1a1a1a;transform:scale(1.01)}
.fsub:disabled{opacity:.5;transform:none;cursor:not-allowed}
.ferror{display:none;font-size:.78rem;color:#e05252;background:#fff0f0;border:1px solid #fcd;border-radius:10px;padding:.75rem 1rem;margin-bottom:.75rem;line-height:1.6}
.form-success{display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem 0 1rem}
.fscheck{width:56px;height:56px;border-radius:50%;background:var(--g);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;margin-bottom:1.4rem}
.fstitle{font-family:'Syne',sans-serif;font-size:1.55rem;font-weight:800;letter-spacing:-.025em;margin-bottom:.5rem}
.fssub{font-size:.88rem;color:var(--mu);font-weight:300}

/* ─── RESPONSIVE ─────────────────────────────────────────── */

/* Curseur désactivé sur touch */
@media (pointer:coarse){
  body{cursor:auto}
  #cur,#ring{display:none}
  a,button{cursor:pointer}
  .finput,.fsel,.ftextarea{cursor:text}
}

/* Burger — caché par défaut */
.nburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;cursor:pointer;z-index:201}
.nburger span{display:block;width:22px;height:2px;border-radius:2px;transition:transform .3s,opacity .3s}
nav.drk .nburger span{background:#fff}
nav.lit .nburger span{background:var(--d)}
.nburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Menu mobile overlay */
.nmobile{position:fixed;inset:0;background:var(--d);z-index:199;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;opacity:0;pointer-events:none;transition:opacity .35s}
.nmobile.open{opacity:1;pointer-events:all}
.nm-link{font-family:'Bebas Neue',sans-serif;font-size:3.2rem;color:rgba(255,255,255,.55);text-decoration:none;letter-spacing:.05em;transition:color .2s}
.nm-link:hover{color:#fff}
.nm-logo{height:33px;width:auto;display:block;margin-bottom:1rem;opacity:.9}
.nm-cta{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.85rem 2.2rem;border-radius:100px;border:none;background:var(--g);color:var(--d);font-family:'DM Sans',sans-serif;cursor:pointer;margin-top:1rem}

/* ── Tablette ≤ 900px ── */
@media(max-width:900px){
  nav{padding:1.2rem 2rem}
  .sec{padding:6rem 2rem}
  .stsec{padding:5rem 2rem}
  .cta{padding:6rem 2rem}
  footer{padding:2.5rem 2rem}
  .hero{padding:0 2rem 2.5rem}
  .tsteps{grid-template-columns:1fr 1fr;gap:2rem}
  .sgrid{grid-template-columns:1fr 1fr}
  .sc.wide{grid-column:span 2}
  .cgrid{grid-template-columns:1fr}
}

/* ── Mobile ≤ 680px ── */
@media(max-width:680px){
  /* Nav */
  nav{padding:1.1rem 1.4rem}
  .nlinks,.ncta{display:none}
  .nburger{display:flex}

  /* Hero */
  .hero{padding:0 1.4rem 2.5rem;min-height:100svh}
  .hero-wm{font-size:55vw;right:-2vw}
  .hbot{flex-direction:column;align-items:flex-start;gap:1.4rem}
  .hdesc{max-width:100%}
  .hsi{display:none}

  /* Ticker */
  .tick{font-size:1.1rem;padding:0 1.2rem}

  /* Sections */
  .sec{padding:4.5rem 1.4rem}
  .stsec{padding:4rem 1.4rem}
  .cta{padding:4.5rem 1.4rem}
  footer{padding:2rem 1.4rem;flex-direction:column;align-items:flex-start;gap:1.4rem}

  /* Refs */
  .rhead{flex-direction:column;gap:1.2rem;margin-bottom:3rem}
  .snote{max-width:100%}
  .cgrid{grid-template-columns:1fr;gap:1px}
  .cc{min-height:auto;padding:2.2rem 1.8rem 2rem}

  /* Services */
  .shead{flex-direction:column;gap:1.2rem;margin-bottom:2.5rem}
  .sgrid{grid-template-columns:1fr;gap:12px}
  .sc.wide{grid-column:span 1}

  /* Stats */
  .stgrid{grid-template-columns:1fr;gap:2.5rem}
  .stv{font-size:5.5rem}

  /* Titres de section */
  .stitle,.aptitle{font-size:clamp(1.9rem,7.5vw,2.8rem);width:100%}

  /* Approach */
  .aphead{flex-direction:column;gap:1.2rem;margin-bottom:3.5rem}
  .tline-bg{display:none}
  .tsi::before{display:none}
  .tsteps{grid-template-columns:1fr;gap:2.5rem}
  .tsi{padding-top:0;border-left:3px solid rgba(0,0,0,.07);padding-left:1.4rem}
  .tsi.on{border-left-color:var(--g)}

  /* CTA */
  .ctawm{font-size:45vw}
  .ctabtn{padding:1rem 2rem;font-size:.75rem}

  /* Footer */
  .flinks{gap:1rem;flex-wrap:wrap}

  /* Modal */
  .modal{padding:2rem 1.4rem;border-radius:16px}
  .frow{grid-template-columns:1fr}
}
