:root{
  --nuit:#132A4A; --nuit-2:#0D1E36; --nuit-3:#1C3A62;
  --or:#B07814; --or-clair:#D4952A;
  --orange:#E1451C; --orange-2:#C4381A;
  --blanc:#FFFFFF; --gris:#F5F7F9; --gris-2:#ECEFF3;
  --texte:#132A4A; --texte-doux:#5B6B80; --texte-tres-doux:#8494A6;
  --bord:#E2E7ED; --bord-fort:#CBD3DC; --bleu-pale:#EBF0F6;
  --ombre:0 1px 2px rgba(19,42,74,.06),0 8px 24px -12px rgba(19,42,74,.18);
  --ombre-fort:0 2px 4px rgba(19,42,74,.08),0 20px 44px -20px rgba(19,42,74,.28);
  --display:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--blanc);color:var(--texte);font-family:var(--display);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{line-height:1.18;letter-spacing:-.021em;font-weight:600}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.wrap{max-width:1140px;margin:0 auto;padding:0 24px}
.surtitre{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-2)}
section[id]{scroll-margin-top:86px}

/* barre légale */
.legale{background:var(--nuit-2);color:#AEBDCE;font-size:13px}
.legale .wrap{display:flex;justify-content:space-between;gap:20px;padding:9px 24px;flex-wrap:wrap}
.legale a:hover{color:var(--or-clair)}
.legale span{display:inline-flex;align-items:center;gap:7px}
.legale svg{width:13px;height:13px}

/* en-tête */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--bord)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:74px}
.marque{display:flex;align-items:center;gap:12px;flex:none}
.marque .sceau{width:auto;height:44px;flex:none}
footer .marque .sceau{height:52px}
.marque .logotype{width:auto;height:30px;flex:none}
@media(max-width:480px){.marque .sceau{height:38px}.marque .logotype{height:25px}}
.liens{display:flex;gap:26px;font-size:14.5px;color:var(--texte-doux)}
.liens a{padding:4px 0;border-bottom:2px solid transparent}
.liens a:hover{color:var(--texte);border-color:var(--orange)}
.burger{display:none;background:none;border:1px solid var(--bord-fort);border-radius:8px;width:40px;height:40px;cursor:pointer;place-items:center;color:var(--texte)}
.burger svg{width:20px;height:20px}

.btn{display:inline-flex;align-items:center;gap:8px;border-radius:6px;font-size:14.5px;font-weight:600;padding:12px 22px;border:1.5px solid transparent;cursor:pointer;transition:background .18s,color .18s,border-color .18s}
.btn svg{width:16px;height:16px}
.btn-p{background:var(--orange);color:#fff}
.btn-p:hover{background:var(--orange-2)}
.btn-s{border-color:var(--bord-fort);color:var(--texte)}
.btn-s:hover{border-color:var(--nuit);background:var(--gris)}
.btn-c{border-color:var(--bord-fort);color:var(--texte);background:var(--blanc)}
.btn-c:hover{border-color:var(--nuit);background:var(--nuit);color:#fff}
.btn-lg{padding:15px 28px;font-size:15.5px}

/* héros */
.heros{background:var(--bleu-pale);color:var(--texte);padding:72px 0 0;position:relative;overflow:hidden;border-bottom:1px solid var(--bord)}
.heros::after{content:"";position:absolute;right:-8%;top:-30%;width:44rem;height:44rem;border-radius:50%;background:radial-gradient(circle,rgba(176,120,20,.10),transparent 68%)}
.heros .wrap{position:relative;z-index:1}
.heros-grille{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:start;padding-bottom:64px}
.tag{display:inline-block;font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--or);border:1px solid rgba(176,120,20,.38);background:rgba(176,120,20,.06);padding:6px 14px;border-radius:4px}
.heros h1{font-size:clamp(32px,4.6vw,54px);margin-top:24px;font-weight:600;color:var(--texte);letter-spacing:-.028em}
.heros h1 .accent{color:var(--orange-2)}
.heros .resume{margin-top:22px;max-width:40rem;font-size:18px;color:var(--texte-doux);line-height:1.6}
.heros .domaines{margin-top:26px;display:flex;flex-wrap:wrap;gap:10px}
.heros .domaines span{font-size:13.5px;color:var(--texte);background:var(--blanc);border:1px solid var(--bord-fort);padding:7px 14px;border-radius:4px}
.heros-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
/* le bloc de référence reste en bleu nuit, il tranche sur le fond clair */
.encart{border:1px solid var(--nuit);border-radius:10px;padding:26px;background:var(--nuit);color:#fff;box-shadow:var(--ombre-fort)}
.bloc.fonce .encart{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.18);box-shadow:none}
.encart h3{font-size:15px;color:var(--or-clair);text-transform:uppercase;letter-spacing:.1em;font-weight:600}
.encart p{margin-top:14px;font-size:15px;color:#C2D0DF;line-height:1.6}
.encart .sep{height:1px;background:rgba(255,255,255,.14);margin:20px 0}
.encart dl{display:grid;gap:12px;font-size:14px}
.encart dt{color:#8FA3B8;font-size:12.5px}
.encart dd{color:#fff;font-weight:600}

/* preuves */
.preuves{background:var(--nuit-3);color:#fff;border-top:1px solid rgba(255,255,255,.1)}
.preuves .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding:30px 24px}
.preuves strong{display:block;font-size:30px;font-weight:600;letter-spacing:-.02em}
.preuves span{font-size:13px;color:#A8BACD;display:block;margin-top:4px}

/* sections */
.bloc{padding:84px 0}
.bloc.gris{background:var(--gris)}
.bloc.fonce{background:var(--nuit);color:#fff}
.tete{max-width:44rem;margin-bottom:44px}
.tete h2{font-size:clamp(26px,3.2vw,36px);margin-top:12px}
.tete p{margin-top:16px;color:var(--texte-doux);font-size:17px}
.bloc.fonce .tete p{color:#B7C6D6}

/* expertises */
.exp{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--bord);border:1px solid var(--bord)}
.exp article{background:var(--blanc);padding:34px 32px}
.exp .rang{font-size:13px;font-weight:600;color:var(--or);letter-spacing:.1em}
.exp h3{font-size:21px;margin-top:12px}
.exp .quoi{margin-top:12px;color:var(--texte-doux);font-size:15.5px}
.exp ul{margin-top:18px;list-style:none;font-size:14.5px;color:var(--texte-doux)}
.exp li{padding:6px 0 6px 18px;position:relative}
.exp li::before{content:"";position:absolute;left:0;top:14px;width:6px;height:6px;background:var(--or);border-radius:50%}

/* études de cas */
.cas{border:1px solid var(--bord);border-radius:10px;background:var(--blanc);overflow:hidden;margin-bottom:20px;box-shadow:var(--ombre)}
.cas-tete{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:26px 30px;border-bottom:1px solid var(--bord);background:var(--gris)}
.cas-tete h3{font-size:20px}
.cas-tete .meta{font-size:13.5px;color:var(--texte-doux);margin-top:6px}
.role{flex:none;font-size:12.5px;font-weight:600;color:var(--nuit);background:var(--gris-2);border:1px solid var(--bord-fort);padding:6px 12px;border-radius:4px;white-space:nowrap}
.cas-corps{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.cas-corps > div{padding:26px 30px;border-right:1px solid var(--bord)}
.cas-corps > div:last-child{border-right:none}
.cas-corps h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--orange-2);margin-bottom:10px}
.cas-corps p{font-size:15px;color:var(--texte-doux)}
.cas-chiffres{display:flex;flex-wrap:wrap;gap:28px;padding:22px 30px;border-top:1px solid var(--bord);background:var(--gris)}
.cas-chiffres div strong{display:block;font-size:22px;font-weight:600}
.cas-chiffres div span{font-size:12.5px;color:var(--texte-doux)}

/* méthode */
.methode{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.methode article{border:1px solid var(--bord);border-radius:10px;padding:30px 28px;background:var(--blanc)}
.methode .n{font-size:13px;font-weight:600;color:var(--or);letter-spacing:.1em}
.methode h3{font-size:19px;margin-top:10px}
.methode p{margin-top:12px;color:var(--texte-doux);font-size:15px}

/* équipe */
.equipe{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.equipe article{border:1px solid var(--bord);border-radius:10px;padding:26px;background:var(--blanc)}
.equipe .photo{width:64px;height:64px;border-radius:50%;background:var(--nuit);color:#fff;display:grid;place-items:center;font-size:20px;font-weight:600;letter-spacing:.02em}
.equipe h3{font-size:17px;margin-top:18px}
.equipe .fonction{font-size:13.5px;color:var(--orange-2);font-weight:600;margin-top:4px}
.equipe p{margin-top:12px;font-size:14.5px;color:var(--texte-doux)}

/* références */
.logos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bord);border:1px solid var(--bord)}
.logos div{background:var(--blanc);padding:30px 20px;text-align:center;font-size:14.5px;font-weight:600;color:var(--texte-doux);display:grid;place-items:center;min-height:96px}

/* principe */
.principe{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.principe blockquote{font-size:clamp(20px,2.4vw,26px);line-height:1.4;font-weight:500;border-left:3px solid var(--or);padding-left:24px}
.principe p{margin-top:18px;color:#B7C6D6;font-size:16px}

/* contact */
.contact{display:grid;grid-template-columns:1.3fr .7fr;gap:48px;align-items:start}
.champ{margin-bottom:16px}
.champ label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px}
.champ input,.champ select,.champ textarea{
  width:100%;border:1px solid var(--bord-fort);border-radius:6px;padding:12px 14px;
  font-family:inherit;font-size:15px;color:var(--texte);background:var(--blanc);
}
.champ input:focus,.champ select:focus,.champ textarea:focus{outline:none;border-color:var(--orange);box-shadow:0 0 0 3px rgba(225,69,28,.12)}
.champ textarea{min-height:130px;resize:vertical}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.mention{font-size:13px;color:var(--texte-tres-doux);margin-top:14px}
.coord{border:1px solid var(--bord);border-radius:10px;padding:26px;background:var(--gris)}
.coord h3{font-size:16px;margin-bottom:16px}
.coord dl{font-size:14.5px;color:var(--texte-doux);display:grid;gap:14px}
.coord dt{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--texte-tres-doux)}
.coord dd{color:var(--texte);margin-top:2px}
.coord a:hover{color:var(--orange-2)}

/* pied */
footer{background:var(--nuit-2);color:#A9B9CB;padding:56px 0 28px;font-size:14.5px}
.pied{display:grid;grid-template-columns:auto 1.5fr 1fr 1fr 1.05fr;gap:40px;align-items:start}
.col-masquotte{display:flex;align-items:center;justify-content:center}
.col-masquotte img{width:280px;height:280px;max-width:100%;display:block}
.col-marque .logotype-empile{width:auto;height:90px;margin-bottom:18px}
.pied h4{font-size:12px;letter-spacing:.13em;text-transform:uppercase;color:var(--or-clair);margin-bottom:16px}
.pied ul{list-style:none}
.pied li{margin-bottom:9px}
.pied a:hover{color:#fff}
.pied p{margin-top:0;line-height:1.6;max-width:26rem}
.bas{margin-top:40px;padding-top:22px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:#8FA3B8}

.rev{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s ease}
.rev.vu{opacity:1;transform:none}
:focus-visible{outline:2px solid var(--orange);outline-offset:2px}

@media(max-width:940px){
  .heros-grille,.principe,.contact{grid-template-columns:1fr;gap:36px}
  .exp,.methode,.equipe,.cas-corps{grid-template-columns:1fr}
  .cas-corps > div{border-right:none;border-bottom:1px solid var(--bord)}
  .preuves .wrap{grid-template-columns:repeat(2,1fr)}
  .logos{grid-template-columns:repeat(2,1fr)}
  .pied{grid-template-columns:1fr 1fr;gap:32px}
  .col-masquotte{grid-column:1/-1;justify-content:flex-start}
  .col-masquotte img{width:200px;height:200px}
  .col-marque{grid-column:1/-1}
  .liens{display:none}
  .burger{display:grid}
  .liens.ouvert{display:flex;flex-direction:column;gap:0;position:absolute;top:74px;left:0;right:0;background:#fff;border-bottom:1px solid var(--bord);padding:12px 24px 18px}
  .liens.ouvert a{padding:12px 0;border-bottom:1px solid var(--bord);width:100%}
}
@media(max-width:620px){
  .bloc{padding:56px 0}
  .duo{grid-template-columns:1fr}
  .pied{grid-template-columns:1fr}
  .col-masquotte img{width:150px;height:150px}
  .col-marque .logotype-empile{height:72px}
  .heros{padding-top:48px}
  .cas-tete{flex-direction:column}
}
@media(prefers-reduced-motion:reduce){.rev{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* visuels de projet */
.visuel{background:var(--gris-2);border-bottom:1px solid var(--bord);aspect-ratio:16/8;display:grid;place-items:center;overflow:hidden}
.visuel img{width:100%;height:100%;object-fit:cover}
.visuel .vide{text-align:center;color:var(--texte-tres-doux);font-size:13.5px;padding:20px}
.visuel .vide svg{width:26px;height:26px;margin:0 auto 8px}
.lien-ext{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--orange-2);margin-top:12px}
.lien-ext:hover{text-decoration:underline}
.lien-ext svg{width:14px;height:14px}
.note{font-size:13.5px;color:var(--texte-tres-doux);margin-top:26px;max-width:52rem;line-height:1.6}
