  :root{
    --ink:#141310;
    --ink-2:#1c1b17;
    --blue:#132F4F;
    --blue-light:#2E72B8;
    --blue-pale:#E9EEF5;
    --gold:#a3814f;
    --gold-light:#cbae7c;
    --cream:#f4f2ee;
    --cream-2:#eae7e0;
    --paper:#fbfaf8;
    --text:#242320;
    --muted:#6b6862;
    --line:#dedad2;
    --line-dark:#33342f;
    --on-dark-muted:#a9a89f;
    --shadow-sm:0 1px 3px rgba(20,19,16,.08);
    --shadow-md:0 14px 34px -14px rgba(20,19,16,.22);
    --shadow-lg:0 30px 70px -22px rgba(20,19,16,.38);
    --ease:cubic-bezier(.19,1,.22,1);
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;scroll-padding-top:92px;}
  body{
    font-family:'Hanken Grotesk',sans-serif;
    color:var(--text);
    background:var(--paper);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    position:relative;
  }
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  img{display:block;width:100%;height:100%;object-fit:cover;}
  ::selection{background:var(--blue);color:#fff;}
  a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:2px;}
  .skip-link{
    position:absolute;left:16px;top:-80px;background:var(--blue);color:#fff;padding:12px 22px;
    font-size:13px;font-weight:600;z-index:1000;transition:top .25s var(--ease);border-radius:2px;
  }
  .skip-link:focus{top:16px;}
  .eyebrow{
    font-size:12px;letter-spacing:.14em;font-weight:600;color:var(--blue-light);text-transform:uppercase;
  }
  .serif{font-family:'Hanken Grotesk',sans-serif;}
  .btn{
    display:inline-flex;align-items:center;gap:10px;
    padding:14px 26px;font-size:13px;letter-spacing:.08em;font-weight:600;text-transform:uppercase;
    border:1px solid transparent;cursor:pointer;white-space:nowrap;
    transition:all .25s var(--ease);
  }
  .btn-fill{background:var(--blue);color:#fff;box-shadow:var(--shadow-sm);}
  .btn-fill:hover{background:#0D2137;box-shadow:var(--shadow-md);transform:translateY(-2px);}
  .btn-outline{border-color:#c9c5bb;color:var(--text);background:transparent;}
  .btn-outline:hover{border-color:var(--text);background:var(--text);color:#fff;transform:translateY(-2px);}
  .btn svg{width:14px;height:14px;flex-shrink:0;transition:transform .25s var(--ease);}
  .btn:hover svg{transform:translateX(3px);}

  /* ===== SCROLL REVEAL ===== */
  html.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--d,0) * 90ms);}
  html.js [data-reveal="left"]{transform:translateX(-36px);}
  html.js [data-reveal="right"]{transform:translateX(36px);}
  html.js [data-reveal].is-visible{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){
    html.js [data-reveal]{opacity:1;transform:none;transition:none;}
    *{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
  }

  /* ===== HEADER ===== */
  header{
    background:var(--ink);
    display:flex;align-items:center;justify-content:space-between;
    padding:0 40px;height:82px;
    position:sticky;top:0;z-index:100;
    transition:height .3s var(--ease),box-shadow .3s ease;
  }
  header.scrolled{height:66px;box-shadow:var(--shadow-lg);}
  .brand{display:flex;align-items:center;gap:16px;}
  .brand .mark{
    width:44px;height:44px;border:1px solid #4a4a44;display:flex;align-items:center;justify-content:center;
    color:#fff;transition:border-color .3s ease,transform .4s var(--ease);
  }
  .brand .mark svg{width:22px;height:22px;}
  .brand:hover .mark{border-color:var(--gold-light);transform:rotate(-4deg);}
  .brand .name{font-family:'Hanken Grotesk',sans-serif;color:#fff;font-size:20px;letter-spacing:.06em;line-height:1.15;}
  .brand .sub{font-size:9.5px;letter-spacing:.24em;color:var(--blue-light);font-weight:600;}
  nav.mainnav{display:flex;align-items:center;gap:28px;}
  nav.mainnav a{
    font-size:12px;letter-spacing:.04em;font-weight:600;color:#d8d6cf;text-transform:uppercase;
    display:flex;align-items:center;gap:5px;padding-bottom:4px;position:relative;white-space:nowrap;transition:color .2s ease;
  }
  nav.mainnav a:hover{color:#fff;}
  nav.mainnav a::after{
    content:'';position:absolute;bottom:-14px;left:0;width:0;height:2px;background:var(--blue-light);
    transition:width .3s var(--ease);
  }
  nav.mainnav a.active{color:#fff;}
  nav.mainnav a.active::after,nav.mainnav a:hover::after{width:22px;}
  nav.mainnav a svg{width:9px;height:9px;}
  header .btn-fill{padding:15px 22px;font-size:12px;}
  .header-right>.lang{margin-left:-12px;}

  /* language switcher */
  .lang{position:relative;flex-shrink:0;}
  .lang>summary{
    list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;
    padding:9px 12px;border:1px solid #4a4a44;color:#d8d6cf;
    font-size:12px;font-weight:600;letter-spacing:.06em;
    transition:border-color .2s ease,color .2s ease;
  }
  .lang>summary::-webkit-details-marker{display:none;}
  .lang>summary:hover{border-color:var(--gold-light);color:#fff;}
  .lang .flag{width:20px;height:14px;flex-shrink:0;display:block;box-shadow:0 0 0 1px rgba(0,0,0,.18);}
  .lang .caret{width:9px;height:9px;transition:transform .25s var(--ease);}
  .lang[open] .caret{transform:rotate(180deg);}
  .lang-menu{
    position:absolute;top:calc(100% + 8px);right:0;min-width:158px;
    background:var(--ink-2);border:1px solid var(--line-dark);
    box-shadow:var(--shadow-lg);padding:6px;z-index:120;animation:fadeIn .2s ease;
  }
  html[dir="rtl"] .lang-menu{right:auto;left:0;}
  .lang-menu a{
    display:flex;align-items:center;gap:10px;padding:9px 10px;
    font-size:12.5px;font-weight:600;letter-spacing:.04em;color:#d8d6cf;
    transition:background .2s ease,color .2s ease;
  }
  .lang-menu a:hover{background:var(--ink);color:#fff;}
  .lang-menu a[aria-current="true"]{color:var(--gold-light);}
  .header-right{display:flex;align-items:center;gap:26px;}

  /* mobile nav (progressive-enhancement: native <details>, no JS required) */
  .mobile-nav{display:none;}
  .mobile-nav summary{list-style:none;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;}
  .mobile-nav summary::-webkit-details-marker{display:none;}
  .burger{width:22px;height:16px;position:relative;flex-shrink:0;}
  .burger span{position:absolute;left:0;width:100%;height:2px;background:#fff;transition:transform .3s ease,opacity .3s ease,top .3s ease;}
  .burger span:nth-child(1){top:0;}
  .burger span:nth-child(2){top:7px;}
  .burger span:nth-child(3){top:14px;}
  .mobile-nav[open] .burger span:nth-child(1){top:7px;transform:rotate(45deg);}
  .mobile-nav[open] .burger span:nth-child(2){opacity:0;}
  .mobile-nav[open] .burger span:nth-child(3){top:7px;transform:rotate(-45deg);}
  .mobile-nav-panel{
    position:fixed;top:0;left:0;right:0;bottom:0;background:var(--ink);z-index:95;
    padding:110px 32px 40px;overflow-y:auto;animation:fadeIn .3s ease;
  }
  .mobile-nav-panel nav{display:flex;flex-direction:column;gap:4px;}
  .mobile-nav-panel nav a{
    font-family:'Hanken Grotesk',sans-serif;font-size:24px;color:#fff;padding:14px 2px;border-bottom:1px solid var(--line-dark);
    display:flex;align-items:center;gap:10px;
  }
  .mobile-nav-panel .btn-fill{margin-top:26px;width:100%;justify-content:center;}
  @keyframes fadeIn{from{opacity:0;}to{opacity:1;}}

  /* ===== HERO ===== */
  .hero{
    position:relative;overflow:hidden;
    min-height:640px;display:flex;align-items:center;
    background:var(--cream);
  }
  .hero-bg-wrap{position:absolute;inset:0;z-index:0;}
  .hero-bg-wrap img{width:100%;height:100%;object-fit:cover;transform:scale(1.09);animation:kenburns 18s var(--ease) forwards;}
  @keyframes kenburns{to{transform:scale(1);}}
  .hero-bg-wrap::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(90deg,var(--cream) 0px,var(--cream) 320px,rgba(244,242,238,.82) 460px,rgba(244,242,238,.32) 600px,rgba(244,242,238,0) 760px);
  }
  html.js .hero-bg-wrap{animation:heroFade 1.1s var(--ease) both;}
  html.js .hero-text{animation:heroUp .8s var(--ease) both;}
  @keyframes heroUp{from{opacity:0;transform:translateY(22px);}to{opacity:1;transform:none;}}
  @keyframes heroFade{from{opacity:0;}to{opacity:1;}}
  .hero-text{
    position:relative;z-index:1;
    padding:80px 30px 80px 60px;display:flex;flex-direction:column;justify-content:center;gap:22px;max-width:560px;
  }
  .hero-text h1{
    font-family:'Hanken Grotesk',sans-serif;font-weight:500;font-size:clamp(32px,4vw,46px);line-height:1.16;color:var(--ink);
  }
  .hero-text h1 em{color:var(--blue);font-style:italic;}
  .hero-rule{width:46px;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold-light));margin:2px 0 4px;}
  .hero-text p{font-size:15px;line-height:1.7;color:var(--muted);max-width:460px;}
  .hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:10px;}
  .hero-badge{
    position:absolute;right:40px;bottom:40px;z-index:2;background:#fff;box-shadow:var(--shadow-lg);
    display:flex;align-items:center;gap:14px;padding:18px 22px;max-width:250px;border-left:3px solid var(--gold);
  }
  .hero-badge .icon{width:34px;height:34px;flex-shrink:0;color:var(--blue);}
  .hero-badge .icon svg{width:26px;height:26px;}
  .hero-badge .cap{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:3px;}
  .hero-badge .val{font-size:14px;font-weight:700;color:var(--ink);line-height:1.3;}
  .hero-scrollcue{
    position:absolute;left:60px;bottom:26px;z-index:1;display:flex;align-items:center;gap:10px;
    font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;
  }
  .hero-scrollcue svg{width:13px;height:13px;animation:bob 1.8s ease-in-out infinite;}
  @keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}

  /* ===== FEATURE STRIP ===== */
  .feature-strip{
    background:var(--ink-2);
    display:grid;grid-template-columns:repeat(4,1fr);
  }
  .feature{
    padding:38px 36px;display:flex;gap:16px;align-items:flex-start;
    border-left:1px solid var(--line-dark);transition:background .3s ease;
  }
  .feature:hover{background:rgba(255,255,255,.03);}
  .feature:first-child{border-left:none;}
  .feature .icon{
    width:50px;height:50px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
    color:var(--blue-light);border-radius:50%;background:rgba(46,114,184,.14);border:1px solid rgba(46,114,184,.4);
    transition:all .35s var(--ease);
  }
  .feature:hover .icon{background:var(--blue-light);border-color:var(--blue-light);color:#fff;transform:scale(1.07) rotate(-4deg);}
  .feature .icon svg{width:24px;height:24px;}
  .feature h4{color:#fff;font-size:12.5px;letter-spacing:.09em;font-weight:700;margin-bottom:8px;text-transform:uppercase;}
  .feature p{color:var(--on-dark-muted);font-size:13px;line-height:1.55;}

  /* ===== CABINET SECTION ===== */
  .cabinet{
    padding:90px 60px;display:grid;grid-template-columns:1fr 1fr;gap:70px;
    background:var(--paper);
  }
  .cabinet-left h2{font-family:'Hanken Grotesk',sans-serif;font-size:32px;font-weight:500;color:var(--ink);margin:10px 0 20px;}
  .cabinet-left .rule{width:46px;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold-light));margin-bottom:22px;}
  .cabinet-left p{font-size:14.5px;line-height:1.85;color:var(--muted);margin-bottom:18px;max-width:520px;}
  .cabinet-left .more{
    display:inline-flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;font-weight:700;
    letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;
    transition:gap .25s ease,color .25s ease;
  }
  .cabinet-left .more:hover{gap:13px;color:var(--blue);}
  .cabinet-left .more svg{width:12px;height:12px;}

  .cabinet-card{background:var(--ink);padding:0 44px;display:flex;flex-direction:column;justify-content:space-evenly;box-shadow:var(--shadow-md);border-top:3px solid var(--gold);}
  .cabinet-item{display:flex;gap:22px;padding:20px 0;border-bottom:1px solid var(--line-dark);transition:transform .35s var(--ease);}
  .cabinet-item:hover{transform:translateX(6px);}
  .cabinet-item:last-child{border-bottom:none;}
  .cabinet-item .icon{
    width:46px;height:46px;flex-shrink:0;color:var(--blue-light);border-radius:50%;background:rgba(46,114,184,.16);
    display:flex;align-items:center;justify-content:center;transition:background .3s ease,transform .3s ease;
  }
  .cabinet-item:hover .icon{background:var(--blue-light);color:#fff;transform:scale(1.06);}
  .cabinet-item .icon svg{width:24px;height:24px;}
  .cabinet-item h4{color:var(--blue-light);font-size:13px;letter-spacing:.08em;font-weight:700;text-transform:uppercase;margin-bottom:9px;}
  .cabinet-item p{color:#fff;font-size:13.5px;line-height:1.6;}

  /* ===== SECTEURS D'ACTIVITE ===== */
  .secteurs{padding:0 60px 90px;background:var(--paper);}
  .secteurs-head{max-width:620px;margin-bottom:44px;}
  .secteurs-head h2{font-family:'Hanken Grotesk',sans-serif;font-size:32px;font-weight:500;color:var(--ink);margin:10px 0 16px;}
  .secteurs-head .rule{width:46px;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold-light));margin-bottom:20px;}
  .secteurs-head p{font-size:14.5px;line-height:1.75;color:var(--muted);}
  .secteur-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .secteur-card{
    background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:28px 24px;
    display:flex;flex-direction:column;gap:16px;transition:box-shadow .35s var(--ease),transform .35s var(--ease),background .3s ease;
  }
  .secteur-card:hover{box-shadow:var(--shadow-md);transform:translateY(-5px);background:#fff;}
  .secteur-card .icon{
    width:44px;height:44px;border-radius:50%;background:rgba(46,114,184,.14);border:1px solid rgba(46,114,184,.35);
    display:flex;align-items:center;justify-content:center;color:var(--blue);transition:all .35s var(--ease);
  }
  .secteur-card:hover .icon{background:var(--blue);border-color:var(--blue);color:#fff;transform:scale(1.06) rotate(-4deg);}
  .secteur-card .icon svg{width:22px;height:22px;}
  .secteur-card h4{font-size:14px;font-weight:700;color:var(--ink);letter-spacing:.02em;}

  /* ===== METHODE ===== */
  .methode{padding:90px 60px;background:var(--ink-2);}
  .methode-head{max-width:620px;margin-bottom:56px;}
  .methode-head h2{font-family:'Hanken Grotesk',sans-serif;font-size:32px;font-weight:500;color:#fff;margin:10px 0 16px;}
  .methode-head .rule{width:46px;height:2px;background:linear-gradient(90deg,var(--blue-light),var(--gold-light));margin-bottom:20px;}
  .methode-head p{font-size:14.5px;line-height:1.75;color:var(--on-dark-muted);}
  .methode-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;position:relative;}
  .methode-steps::before{content:'';position:absolute;top:23px;left:0;right:0;height:1px;background:var(--line-dark);z-index:0;}
  .methode-step{position:relative;}
  .methode-step .num{
    width:46px;height:46px;border-radius:50%;background:rgba(46,114,184,.16);border:1px solid rgba(46,114,184,.4);color:var(--blue-light);
    display:flex;align-items:center;justify-content:center;font-family:'Hanken Grotesk',sans-serif;font-size:15px;font-weight:700;
    position:relative;z-index:1;margin-bottom:22px;transition:all .35s var(--ease);
  }
  .methode-step:hover .num{background:var(--blue-light);color:#fff;transform:scale(1.08);}
  .methode-step h4{color:var(--blue-light);font-size:13px;letter-spacing:.08em;font-weight:700;text-transform:uppercase;margin-bottom:9px;}
  .methode-step p{color:#fff;font-size:13.5px;line-height:1.6;}

  /* ===== EXPERTISE COLUMNS ===== */
  .expertise-row{
    display:grid;grid-template-columns:1fr 1fr 1fr;gap:26px;
    padding:0 60px 90px;
  }
  .exp-col{background:var(--cream);border:1px solid var(--line);border-radius:6px;overflow:hidden;display:flex;align-items:stretch;transition:box-shadow .35s var(--ease),transform .35s var(--ease);}
  .exp-col:hover{box-shadow:var(--shadow-md);transform:translateY(-5px);}
  .exp-col-inner{flex:1;min-width:0;padding:34px 30px 26px;}
  .exp-col h3{font-size:13px;letter-spacing:.08em;font-weight:700;color:var(--ink);text-transform:uppercase;margin-bottom:20px;}
  .exp-list li a{
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 4px;margin:0 -4px;font-size:14px;color:var(--text);border-bottom:1px solid var(--line);
    transition:color .25s ease,padding-left .25s ease,background .25s ease;border-radius:3px;
  }
  .exp-list li a:hover{color:var(--blue);padding-left:10px;background:var(--blue-pale);}
  .exp-list li:first-child a{padding-top:0;}
  .exp-list li a svg{width:13px;height:13px;color:var(--muted);flex-shrink:0;transition:transform .25s ease,color .25s ease;}
  .exp-list li a:hover svg{transform:translateX(3px);color:var(--blue);}
  .exp-photo{position:relative;width:clamp(96px,30%,150px);flex-shrink:0;overflow:hidden;}
  .exp-photo::before{
    content:'';position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(90deg,var(--cream) 0%,var(--cream) 18%,rgba(244,242,238,.55) 45%,rgba(244,242,238,0) 78%);
  }
  .exp-photo img{transition:transform .7s var(--ease);}
  .exp-col:hover .exp-photo img{transform:scale(1.08);}
  .exp-voir{
    display:inline-flex;align-items:center;gap:8px;margin:22px 0 0;font-size:12px;font-weight:700;
    letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;
    transition:gap .25s ease,color .25s ease;
  }
  .exp-voir:hover{gap:12px;color:var(--blue);}
  .exp-voir svg{width:11px;height:11px;}
  .innov-list{padding:0;}
  .innov-list li{display:flex;align-items:center;gap:14px;padding:12px 4px;margin:0 -4px;font-size:14px;color:var(--text);border-radius:3px;transition:background .25s ease,padding-left .25s ease;}
  .innov-list li:hover{background:var(--blue-pale);padding-left:8px;}
  .innov-list li .icon{width:20px;height:20px;color:var(--blue);flex-shrink:0;}
  .innov-list li .icon svg{width:20px;height:20px;}

  /* ===== ACTUALITE ===== */
  .actu-section{padding:90px 60px;}
  .actu-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:30px;}
  .actu-head h2{font-family:'Hanken Grotesk',sans-serif;font-size:30px;font-weight:500;color:var(--ink);}
  .actu-head .rule{display:none;}
  .actu-head .toutes{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;transition:gap .25s ease,color .25s ease;}
  .actu-head .toutes:hover{gap:12px;color:var(--blue);}
  .actu-head .toutes svg{width:11px;height:11px;}
  .actu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .actu-card{
    display:flex;background:var(--paper);border:1px solid var(--line);border-radius:6px;overflow:hidden;
    box-shadow:var(--shadow-sm);transition:background .3s ease,box-shadow .35s var(--ease),transform .35s var(--ease);
  }
  .actu-card:hover{background:var(--cream);box-shadow:var(--shadow-md);transform:translateY(-5px);}
  .actu-card .txt{padding:28px 26px;flex:1;display:flex;flex-direction:column;justify-content:center;gap:10px;}
  .actu-card .date{
    font-size:11px;letter-spacing:.05em;color:var(--blue);font-weight:700;width:fit-content;
    background:var(--blue-pale);padding:4px 10px;border-radius:20px;
  }
  .actu-card h4{font-size:15.5px;line-height:1.4;color:var(--ink);font-weight:600;}
  .actu-card .lire{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);margin-top:4px;transition:gap .25s ease,color .25s ease;}
  .actu-card:hover .lire{gap:11px;color:var(--blue);}
  .actu-card .lire svg{width:10px;height:10px;}
  .actu-card .photo{width:130px;flex-shrink:0;overflow:hidden;}
  .actu-card .photo img{transition:transform .7s var(--ease);}
  .actu-card:hover .photo img{transform:scale(1.1);}

  /* ===== FOOTER ===== */
  footer{background:var(--ink);color:#fff;position:relative;}
  footer::before{content:'';display:block;height:3px;background:linear-gradient(90deg,var(--blue-light),var(--gold-light));}
  .footer-top{
    display:grid;grid-template-columns:repeat(4,1fr);
    padding:60px;gap:30px;
  }
  .fcol{display:flex;gap:16px;}
  .fcol .icon{
    width:44px;height:44px;flex-shrink:0;color:var(--blue-light);border-radius:50%;background:rgba(46,114,184,.16);
    display:flex;align-items:center;justify-content:center;transition:background .3s ease,transform .3s ease;
  }
  .fcol:hover .icon{background:var(--blue-light);color:#fff;transform:scale(1.06);}
  .fcol .icon svg{width:24px;height:24px;}
  .fcol h5{font-size:11.5px;letter-spacing:.09em;font-weight:700;text-transform:uppercase;color:#fff;margin-bottom:10px;}
  .fcol p, .fcol a{font-size:13.5px;line-height:1.6;color:var(--on-dark-muted);display:block;transition:color .2s ease;}
  .fcol a:hover{color:var(--gold-light);}
  .footer-bottom{
    border-top:1px solid var(--line-dark);padding:22px 60px;
    display:flex;align-items:center;justify-content:space-between;
    font-size:12px;color:var(--on-dark-muted);
  }
  .footer-bottom .links{display:flex;gap:26px;}
  .footer-bottom .links a{transition:color .2s ease;}
  .footer-bottom .links a:hover{color:#fff;}

  /* ===== BACK TO TOP ===== */
  .back-to-top{
    position:fixed;right:24px;bottom:24px;width:48px;height:48px;border-radius:50%;
    background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;
    box-shadow:var(--shadow-lg);border:none;cursor:pointer;z-index:90;
    opacity:0;visibility:hidden;transform:translateY(14px);transition:all .3s var(--ease);
  }
  .back-to-top.visible{opacity:1;visibility:visible;transform:none;}
  .back-to-top:hover{background:var(--blue);}
  .back-to-top svg{width:18px;height:18px;}

  @media (max-width:1200px){
    nav.mainnav{display:none;}
    .mobile-nav{display:block;}
  }
  @media (max-width:1080px){
    nav.mainnav{display:none;}
    .mobile-nav{display:block;}
    .hero-badge{display:none;}
    .feature-strip{grid-template-columns:repeat(2,1fr);}
    .feature:nth-child(3){border-left:none;}
    .cabinet{grid-template-columns:1fr;}
    .secteur-grid{grid-template-columns:repeat(2,1fr);}
    .expertise-row{grid-template-columns:1fr;}
    .methode-steps{grid-template-columns:1fr;gap:36px;}
    .methode-steps::before{display:none;}
    .actu-grid{grid-template-columns:1fr;}
    .footer-top{grid-template-columns:repeat(2,1fr);}
  }
  @media (max-width:640px){
    header{padding:0 24px;}
    .hero-text{padding:50px 24px 40px;}
    .hero-scrollcue{left:24px;}
    .cabinet{padding:60px 24px;}
    .secteurs{padding:0 24px 60px;}
    .secteur-grid{grid-template-columns:1fr;}
    .expertise-row{padding:0 24px 60px;gap:20px;}
    .methode{padding:60px 24px;}
    .actu-section{padding:60px 24px;}
    .footer-top{padding:44px 24px;grid-template-columns:1fr;}
    .footer-bottom{padding:20px 24px;flex-direction:column;gap:12px;align-items:flex-start;}
    .actu-card{flex-direction:column;}
    .actu-card .photo{width:100%;height:170px;}
  }
  @media (max-width:560px){
    header .header-right>a.btn-fill{display:none;}
    .brand .name{font-size:17px;}
  }
  @media (max-width:480px){
    .feature-strip{grid-template-columns:1fr;}
    .feature{border-left:none;border-top:1px solid var(--line-dark);}
    .feature:first-child{border-top:none;}
  }

  /* ===== INNER PAGE HERO ===== */
  .page-hero{background:var(--ink);color:#fff;padding:66px 40px 58px;}
  .page-hero .crumb{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--on-dark-muted);margin-bottom:16px;display:flex;gap:9px;align-items:center;}
  .page-hero .crumb a{color:var(--blue-light);}
  .page-hero .crumb a:hover{color:#fff;}
  .page-hero .crumb span{opacity:.5;}
  .page-hero h1{font-size:clamp(30px,4vw,46px);font-weight:600;line-height:1.14;margin-bottom:16px;}
  .page-hero .rule{width:54px;height:3px;background:var(--gold);margin-bottom:20px;}
  .page-hero p{color:var(--on-dark-muted);max-width:640px;font-size:15.5px;line-height:1.75;}

  /* ===== CONTACT PAGE ===== */
  .contact-wrap{max-width:1200px;margin:0 auto;padding:72px 40px;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;}
  .contact-info h2,.contact-form-box h2{font-size:26px;font-weight:600;color:var(--ink);margin-bottom:8px;}
  .contact-info>p,.contact-form-box>p{color:var(--muted);font-size:14.5px;line-height:1.7;margin-bottom:26px;max-width:440px;}
  .contact-list{display:flex;flex-direction:column;gap:22px;}
  .contact-list .item{display:flex;gap:16px;align-items:flex-start;}
  .contact-list .item .icon{width:44px;height:44px;flex-shrink:0;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:var(--blue);}
  .contact-list .item .icon svg{width:20px;height:20px;}
  .contact-list .item h5{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;}
  .contact-list .item p{font-size:15px;color:var(--text);line-height:1.5;}
  .contact-list .item a{color:var(--text);}
  .contact-list .item a:hover{color:var(--blue);}
  .cform{display:flex;flex-direction:column;gap:16px;}
  .cform .row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .cform .field{display:flex;flex-direction:column;gap:7px;}
  .cform label{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);}
  .cform input,.cform textarea{width:100%;padding:13px 14px;border:1px solid var(--line);background:var(--paper);font:inherit;font-size:14px;color:var(--text);transition:border-color .2s ease;}
  .cform input:focus,.cform textarea:focus{outline:none;border-color:var(--blue);}
  .cform textarea{resize:vertical;min-height:150px;}
  .cform .btn-fill{justify-content:center;margin-top:4px;border:1px solid transparent;}
  @media (max-width:860px){
    .contact-wrap{grid-template-columns:1fr;gap:44px;padding:56px 24px;}
  }
  @media (max-width:560px){
    .page-hero{padding:46px 24px 40px;}
    .cform .row{grid-template-columns:1fr;}
  }
  /* ===== HERO ZOOM-OUT =====
     the original kenburns travelled only 1.09 -> 1.0 and, on var(--ease)
     (cubic-bezier(.19,1,.22,1)), was 80% done inside the first 4s — a 9% move that
     mostly happened before the page settled, so it read as no animation at all.
     Wider range and a curve that keeps moving, so the zoom-out is actually visible. */
  .hero-bg-wrap img{
    transform:scale(1.16);
    animation:heroZoomOut 16s cubic-bezier(.16,.52,.28,1) forwards;
  }
  @keyframes heroZoomOut{from{transform:scale(1.16);}to{transform:scale(1);}}
  @media (prefers-reduced-motion:reduce){
    .hero-bg-wrap img{transform:none;animation:none;}
  }

  /* ===== SECTION RHYTHM =====
     .expertise-row and .secteurs both shipped with padding-top:0, so their cards
     butted straight against the dark band above them. */
  .expertise-row{padding:72px 60px 0;}
  .secteurs{padding:82px 60px 90px;}

  /* ===== SECTOR CARD CTA ===== */
  .secteur-card{justify-content:flex-start;}
  .secteur-cta{
    display:inline-flex;align-items:center;gap:7px;margin-top:auto;padding-top:16px;
    font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;
    color:var(--blue);transition:gap .25s ease;
  }
  .secteur-cta svg{width:11px;height:11px;flex-shrink:0;transition:transform .25s ease;}
  .secteur-card:hover .secteur-cta{gap:11px;}
  .secteur-card:hover .secteur-cta svg{transform:translateX(3px);}

  @media (max-width:640px){
    .expertise-row{padding:48px 24px 0;}
    .secteurs{padding:58px 24px 60px;}
  }

  /* ===== CONTACT PAGE ===== */
  .contact-wrap{
    max-width:1180px;padding:74px 40px 82px;
    grid-template-columns:1fr 1.02fr;gap:56px;align-items:start;
  }
  .contact-info h2{font-size:27px;font-weight:600;color:var(--ink);margin:8px 0 0;}
  .contact-info .rule{width:46px;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold-light));margin:15px 0 20px;}
  .contact-info>p{font-size:15px;line-height:1.8;color:var(--muted);margin-bottom:28px;max-width:460px;}

  .contact-list{gap:12px;}
  .contact-list .item{
    display:flex;align-items:center;gap:16px;padding:17px 19px;
    background:var(--cream);border:1px solid var(--line);border-radius:6px;
    transition:background .3s ease,border-color .3s ease,box-shadow .35s var(--ease),transform .35s var(--ease);
  }
  .contact-list a.item:hover{
    background:#fff;border-color:#cfcabf;box-shadow:var(--shadow-md);transform:translateY(-3px);
  }
  .contact-list .item .icon{
    width:44px;height:44px;flex-shrink:0;border-radius:50%;border:1px solid rgba(46,114,184,.34);
    background:rgba(46,114,184,.12);color:var(--blue);
    display:flex;align-items:center;justify-content:center;transition:all .35s var(--ease);
  }
  .contact-list a.item:hover .icon{background:var(--blue);border-color:var(--blue);color:#fff;transform:scale(1.05);}
  .contact-list .item .icon svg{width:20px;height:20px;}
  .contact-list .item .txt{flex:1;min-width:0;display:block;}
  .contact-list .item .lbl{
    display:block;font-size:10.5px;letter-spacing:.13em;text-transform:uppercase;
    font-weight:700;color:var(--muted);margin-bottom:5px;
  }
  .contact-list .item .val{
    display:block;font-size:15.5px;font-weight:500;color:var(--ink);line-height:1.4;
    word-break:break-word;transition:color .25s ease;
  }
  .contact-list a.item:hover .val{color:var(--blue);}
  .contact-list .item .sub{display:block;font-size:12.5px;color:var(--muted);margin-top:4px;}
  .contact-list .item .go{
    width:14px;height:14px;flex-shrink:0;color:#b9b4a9;
    transition:transform .25s ease,color .25s ease;
  }
  .contact-list a.item:hover .go{transform:translateX(4px);color:var(--blue);}

  .contact-note{
    display:flex;gap:16px;align-items:flex-start;margin-top:20px;
    background:var(--ink);color:#fff;padding:24px 22px;border-top:3px solid var(--gold);
  }
  .contact-note .icon{
    width:42px;height:42px;flex-shrink:0;border-radius:50%;background:rgba(46,114,184,.18);
    color:var(--blue-light);display:flex;align-items:center;justify-content:center;
  }
  .contact-note .icon svg{width:21px;height:21px;}
  .contact-note h5{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:8px;}
  .contact-note p{font-size:13.5px;line-height:1.65;color:var(--on-dark-muted);}

  /* form card */
  .contact-form-box{
    background:#fff;border:1px solid var(--line);border-top:3px solid var(--gold);
    box-shadow:var(--shadow-md);padding:34px 32px 30px;
  }
  .contact-form-box .form-head{margin-bottom:24px;}
  .contact-form-box h2{font-size:22px;font-weight:600;color:var(--ink);margin-bottom:8px;}
  .contact-form-box .form-head p{font-size:14px;line-height:1.7;color:var(--muted);margin:0;max-width:none;}
  .cform label{display:flex;align-items:center;gap:4px;}
  .cform .req{color:var(--gold);font-weight:700;}
  .cform input,.cform textarea{
    padding:13px 15px;border-radius:4px;background:var(--paper);
    transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
  }
  .cform input:hover,.cform textarea:hover{border-color:#c9c5bb;}
  .cform input:focus,.cform textarea:focus{
    outline:none;background:#fff;border-color:var(--blue);
    box-shadow:0 0 0 3px rgba(31,61,44,.11);
  }
  .cform textarea{min-height:140px;}
  .cform .btn-fill{margin-top:8px;}
  .cform-note{
    display:flex;align-items:flex-start;gap:9px;margin-top:16px;
    font-size:12px;line-height:1.6;color:var(--muted);
  }
  .cform-note svg{width:15px;height:15px;flex-shrink:0;color:var(--blue);margin-top:1px;}

  /* map */
  .contact-map{height:400px;border-top:1px solid var(--line);background:var(--cream-2);}
  .contact-map iframe{
    display:block;width:100%;height:100%;border:0;
    filter:grayscale(1) contrast(1.04);transition:filter .5s var(--ease);
  }
  .contact-map:hover iframe{filter:none;}

  @media (max-width:860px){
    .contact-wrap{grid-template-columns:1fr;gap:40px;padding:56px 24px 64px;}
    .contact-form-box{padding:28px 22px 26px;}
    .contact-map{height:320px;}
  }
  @media (max-width:560px){
    .contact-list .item{padding:15px 16px;gap:13px;}
    .contact-list .item .icon{width:40px;height:40px;}
    .contact-list .item .val{font-size:14.5px;}
  }

  /* ===== BRAND LOGO =====
     overrides the global img{width:100%;height:100%;object-fit:cover} reset */
  .brand{flex-shrink:0;gap:0;}
  .brand img{
    display:block;width:auto;height:46px;object-fit:contain;
    transition:height .3s var(--ease),opacity .25s ease;
  }
  header.scrolled .brand img{height:38px;}
  .brand:hover img{opacity:.8;}
  @media (max-width:560px){
    .brand img{height:38px;}
    header.scrolled .brand img{height:33px;}
  }
  @media (max-width:380px){.brand img{height:33px;}}

  /* ===== NAV DROPDOWN (desktop) ===== */
  nav.mainnav .nav-drop{position:relative;display:flex;align-items:center;}
  nav.mainnav .nav-drop>a .caret{width:9px;height:9px;transition:transform .25s var(--ease);}
  nav.mainnav .nav-drop:hover>a .caret,
  nav.mainnav .nav-drop:focus-within>a .caret{transform:rotate(180deg);}
  .nav-panel{
    position:absolute;top:100%;left:50%;z-index:120;
    padding-top:28px;width:max-content;max-width:min(640px,calc(100vw - 48px));
    opacity:0;visibility:hidden;pointer-events:none;
    transform:translateX(-50%) translateY(8px);
    transition:opacity .22s var(--ease),transform .22s var(--ease),visibility .22s;
  }
  .nav-drop:hover .nav-panel,.nav-drop:focus-within .nav-panel{
    opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0);
  }
  .nav-panel-inner{
    background:var(--ink-2);border:1px solid var(--line-dark);box-shadow:var(--shadow-lg);
    border-top:2px solid var(--gold);padding:24px 26px 18px;
    display:grid;grid-template-columns:1fr 1fr;gap:0 34px;
  }
  .nav-col-title{
    font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
    color:var(--gold-light);padding-bottom:10px;margin-bottom:8px;border-bottom:1px solid var(--line-dark);
  }
  nav.mainnav .nav-panel a{
    display:block;padding:8px 10px;margin:0 -10px;font-size:12.5px;font-weight:500;
    letter-spacing:.01em;text-transform:none;color:#d8d6cf;white-space:normal;line-height:1.4;
    border-radius:3px;transition:background .2s ease,color .2s ease;
  }
  nav.mainnav .nav-panel a::after{display:none;}
  nav.mainnav .nav-panel a:hover{background:var(--ink);color:#fff;}
  .nav-panel-all{
    grid-column:1 / -1;margin-top:14px;padding-top:14px;border-top:1px solid var(--line-dark);
  }
  nav.mainnav .nav-panel a.nav-panel-all{
    display:flex;align-items:center;gap:8px;color:var(--blue-light);font-weight:700;
    font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;border-radius:0;margin:14px 0 0;
  }
  nav.mainnav .nav-panel a.nav-panel-all:hover{background:transparent;color:var(--gold-light);gap:12px;}
  .nav-panel-all svg{width:12px;height:12px;flex-shrink:0;}

  /* ===== MOBILE SUB-MENU ===== */
  /* The open panel is fixed and painted above the header's other children, so the
     burger sat underneath it and the menu could not be closed once opened.
     The panel's 110px top padding shows it was meant to open *below* the header. */
  .brand,.header-right>.lang,.mobile-nav>summary{position:relative;z-index:96;}

  .m-sub{border-bottom:1px solid var(--line-dark);}
  .m-sub>summary{
    list-style:none;cursor:pointer;font-family:'Hanken Grotesk',sans-serif;font-size:24px;color:#fff;
    padding:14px 2px;display:flex;align-items:center;justify-content:space-between;gap:12px;
  }
  .m-sub>summary::-webkit-details-marker{display:none;}
  .m-sub>summary .caret{width:16px;height:16px;flex-shrink:0;transition:transform .25s var(--ease);}
  .m-sub[open]>summary .caret{transform:rotate(180deg);}
  .m-sub-panel{padding:2px 0 18px;}
  .m-sub-title{
    font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;font-weight:700;
    color:var(--gold-light);margin:16px 0 4px;
  }
  .mobile-nav-panel .m-sub-panel a{
    font-family:'Hanken Grotesk',sans-serif;font-size:15px;color:var(--on-dark-muted);
    padding:9px 0 9px 14px;border-bottom:none;border-left:1px solid var(--line-dark);
    transition:color .2s ease,border-color .2s ease;
  }
  .mobile-nav-panel .m-sub-panel a:hover{color:#fff;border-left-color:var(--blue-light);}
  .mobile-nav-panel .m-sub-panel a.m-sub-all{
    border-left:none;padding-left:0;font-size:11.5px;font-weight:700;letter-spacing:.07em;
    text-transform:uppercase;color:var(--blue-light);
  }

  /* ===== EXPERTISE DETAIL PAGE ===== */
  .exp-page{
    max-width:1180px;margin:0 auto;padding:66px 40px 76px;
    display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:58px;align-items:start;
  }
  .exp-body>section+section{margin-top:52px;}
  .exp-body h2{font-size:23px;font-weight:600;color:var(--ink);margin-bottom:12px;}
  .exp-body .rule{width:46px;height:2px;background:linear-gradient(90deg,var(--blue),var(--gold-light));margin-bottom:22px;}
  .exp-body p{font-size:15px;line-height:1.85;color:var(--muted);}
  .exp-body p+p{margin-top:15px;}
  .exp-points{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .exp-points li{
    display:flex;gap:12px;align-items:flex-start;
    font-size:14.5px;line-height:1.55;color:var(--text);
    background:var(--cream);border:1px solid var(--line);border-radius:6px;padding:16px 18px;
    transition:box-shadow .35s var(--ease),transform .35s var(--ease),background .3s ease;
  }
  .exp-points li:hover{background:#fff;box-shadow:var(--shadow-md);transform:translateY(-3px);}
  .exp-points .tick{width:19px;height:19px;flex-shrink:0;color:var(--blue);margin-top:1px;}

  .faq details{border-bottom:1px solid var(--line);}
  .faq details:first-of-type{border-top:1px solid var(--line);}
  .faq summary{
    list-style:none;cursor:pointer;position:relative;
    padding:18px 38px 18px 0;font-size:15px;font-weight:600;color:var(--ink);line-height:1.5;
    transition:color .2s ease;
  }
  .faq summary::-webkit-details-marker{display:none;}
  .faq summary:hover{color:var(--blue);}
  .faq summary::after{
    content:'';position:absolute;right:8px;top:26px;width:8px;height:8px;
    border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);
    transform:translateY(-4px) rotate(45deg);transition:transform .25s var(--ease);
  }
  .faq details[open] summary::after{transform:translateY(0) rotate(225deg);}
  .faq .faq-a{padding:0 26px 22px 0;font-size:14.5px;line-height:1.8;color:var(--muted);}

  .exp-aside{position:sticky;top:100px;display:flex;flex-direction:column;gap:20px;}
  .aside-cta{background:var(--ink);color:#fff;padding:28px 26px;border-top:3px solid var(--gold);}
  .aside-cta h4{font-size:16.5px;font-weight:600;margin-bottom:9px;}
  .aside-cta p{font-size:13.5px;line-height:1.65;color:var(--on-dark-muted);margin-bottom:20px;}
  .aside-cta .btn-fill{width:100%;justify-content:center;}
  .aside-box{background:var(--cream);border:1px solid var(--line);padding:24px 22px;}
  .aside-box h4{
    font-size:11px;letter-spacing:.11em;text-transform:uppercase;font-weight:700;
    color:var(--muted);margin-bottom:8px;
  }
  .aside-links a{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:12px 0;font-size:14px;line-height:1.4;color:var(--text);
    border-bottom:1px solid var(--line);transition:color .25s ease,padding-left .25s ease;
  }
  .aside-links a:hover{color:var(--blue);padding-left:5px;}
  .aside-links a svg{width:12px;height:12px;flex-shrink:0;color:var(--muted);transition:transform .25s ease,color .25s ease;}
  .aside-links a:hover svg{transform:translateX(3px);color:var(--blue);}
  .aside-all{
    display:inline-flex;align-items:center;gap:8px;margin-top:18px;
    font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);
    border-bottom:1px solid var(--ink);padding-bottom:3px;transition:gap .25s ease,color .25s ease;
  }
  .aside-all:hover{gap:12px;color:var(--blue);}
  .aside-all svg{width:11px;height:11px;}

  .exp-band{background:var(--ink-2);padding:64px 40px;text-align:center;}
  .exp-band h2{font-size:28px;font-weight:600;color:#fff;margin:10px 0 0;}
  .exp-band .rule{width:46px;height:2px;background:linear-gradient(90deg,var(--blue-light),var(--gold-light));margin:16px auto 18px;}
  .exp-band p{font-size:14.5px;line-height:1.75;color:var(--on-dark-muted);max-width:520px;margin:0 auto;}
  .exp-band-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:28px;}
  .btn-ghost{border-color:#4a4a44;color:#fff;background:transparent;}
  .btn-ghost:hover{background:#fff;border-color:#fff;color:var(--ink);transform:translateY(-2px);}

  @media (max-width:960px){
    .exp-page{grid-template-columns:1fr;gap:44px;padding:54px 24px 64px;}
    .exp-aside{position:static;}
    .exp-points{grid-template-columns:1fr;}
  }
  @media (max-width:560px){
    .exp-band{padding:52px 24px;}
    .exp-band h2{font-size:24px;}
    .exp-band-actions .btn{width:100%;justify-content:center;}
  }
