
  @font-face{ font-family:'Outfit'; src:url('/assets/fonts/Outfit.ttf'); font-weight:100 900; font-display:swap; }
  @font-face{ font-family:'Nunito'; src:url('/assets/fonts/Nunito.ttf'); font-weight:300 800; font-display:swap; }
  @font-face{ font-family:'Nunito'; src:url('/assets/fonts/Nunito-Italic.ttf'); font-style:italic; font-weight:400 700; font-display:swap; }

  :root{
    --navy:#0A1330; --navy2:#15265E; --navy3:#2D3F9E; --azur:#4B64D4; --azur-soft:#8094E0;
    --gold:#E89B1C; --gold-bright:#F2B544; --gold-pale:#E89B1C;
    --ink:#0B1220; --slate:#51607A; --slate-light:#7E8AA3; --line:#E7E9F0;
    --paper:#FBFAF7; --cream:#F7F1E7;
    --w-strong:#FFFFFF; --w-soft:rgba(255,255,255,.72); --w-faint:rgba(255,255,255,.5);
    --maxw:1240px;
  }
  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{ font-family:'Nunito',system-ui,sans-serif; color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased; line-height:1.6; }
  h1,h2,h3,h4,.dsp{ font-family:'Outfit',system-ui,sans-serif; }
  a{ color:inherit; text-decoration:none; }
  img{ display:block; max-width:100%; }
  .wrap{ max-width:var(--maxw); margin:0 auto; padding:0 40px; }
  .eyebrow{ font-family:'Outfit'; font-weight:600; font-size:12px; letter-spacing:.28em; text-transform:uppercase;
    display:inline-flex; align-items:center; gap:14px; color:var(--gold); }
  .eyebrow::before{ content:""; width:34px; height:1px; background:linear-gradient(90deg,var(--gold),transparent); display:inline-block; }
  .eyebrow.center{ justify-content:center; }
  .num{ font-family:'Outfit'; font-weight:600; color:var(--gold); }

  /* ---- buttons ---- */
  .btn{ display:inline-flex; align-items:center; gap:10px; font-family:'Outfit'; font-weight:600; font-size:15px;
    padding:14px 26px; border-radius:2px; transition:.25s; letter-spacing:.01em; }
  .btn svg{ width:17px; height:17px; }
  .btn-gold{ background:var(--gold); color:#1A1206; }
  .btn-gold:hover{ background:var(--gold-bright); transform:translateY(-1px); }
  .btn-ghost{ border:1px solid rgba(255,255,255,.32); color:#fff; }
  .btn-ghost:hover{ border-color:var(--gold); color:var(--gold-pale); }
  .btn-dark{ background:var(--navy2); color:#fff; }
  .btn-dark:hover{ background:var(--navy3); }
  .btn-outline{ border:1px solid var(--line); color:var(--ink); }
  .btn-outline:hover{ border-color:var(--gold); color:#9a6a10; }

  /* ===================== TOPBAR ===================== */
  .topbar{ background:var(--navy); color:var(--w-soft); font-size:12.5px; font-family:'Outfit'; font-weight:500; border-bottom:1px solid rgba(255,255,255,.06); }
  .topbar .wrap{ display:flex; align-items:center; justify-content:space-between; height:42px; }
  .topbar .l{ display:flex; align-items:center; gap:10px; letter-spacing:.02em; }
  .topbar .tile{ width:20px; height:20px; border-radius:3px; background:#FF2B44; display:inline-flex; align-items:center; justify-content:center; }
  .topbar .tile img{ width:14px; }
  .topbar .r{ display:flex; gap:26px; }
  .topbar .r a{ color:var(--w-soft); transition:.2s; } .topbar .r a:hover{ color:var(--gold-pale); }

  /* ===================== NAV ===================== */
  nav.main{ position:absolute; top:0; left:0; right:0; z-index:40; }
  nav.main .wrap{ display:flex; align-items:center; justify-content:space-between; height:92px; }
  nav.main .logo{ height:68px; filter:brightness(0) invert(1); }
  nav.main .links{ display:flex; gap:38px; }
  nav.main .links a{ font-family:'Outfit'; font-weight:500; font-size:14.5px; color:rgba(255,255,255,.82); letter-spacing:.01em; position:relative; padding:6px 0; transition:.2s; }
  nav.main .links a:hover{ color:#fff; }
  nav.main .links a::after{ content:""; position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--gold); transition:.25s; }
  nav.main .links a:hover::after{ width:100%; }

  /* ===================== HERO ===================== */
  .hero{ position:relative; min-height:92vh; background:
      radial-gradient(120% 95% at 2% 0%, #314CB0 0%, transparent 56%),
      linear-gradient(118deg, var(--navy) 0%, var(--navy2) 58%, #0E1A44 100%);
    color:#fff; overflow:hidden; }
  .hero > .wrap{ position:relative; z-index:5; min-height:92vh; display:flex; align-items:center; }
  .hero .copy{ max-width:600px; padding:150px 0 96px; }
  .hero h1{ font-weight:700; font-size:56px; line-height:1.07; letter-spacing:-.022em; margin:26px 0 0; }
  .hero h1 .accent{ color:var(--gold-pale); font-weight:600; font-style:italic; font-family:'Nunito'; }
  .hero h1 .thin{ font-weight:300; }
  .hero .lede{ color:var(--w-soft); font-size:18px; line-height:1.62; max-width:500px; margin:28px 0 0; }
  .hero .cta{ display:flex; gap:16px; margin-top:40px; }
  .hero .trust{ display:flex; gap:26px; margin-top:54px; padding-top:26px; border-top:1px solid rgba(255,255,255,.12); }
  .hero .trust .t{ display:flex; align-items:flex-start; gap:9px; }
  .hero .trust svg{ width:16px; height:16px; color:var(--gold); flex:none; margin-top:3px; }
  .hero .trust .tx b{ display:block; font-family:'Outfit'; font-weight:600; font-size:13.5px; color:#fff; letter-spacing:.01em; }
  .hero .trust .tx span{ font-size:12px; color:var(--w-faint); }

  /* portrait */
  .hero .visual{ position:absolute; top:0; right:0; bottom:0; width:47%; z-index:1; }
  .hero .visual::before{ /* gold hairline */ content:""; position:absolute; left:0; top:18%; bottom:18%; width:1px;
    background:linear-gradient(180deg,transparent,rgba(232,155,28,.7),transparent); z-index:3; }
  .hero .visual .photo{ position:absolute; inset:0; }
  .hero .visual .photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 22%; filter:contrast(1.02) saturate(.96); }
  .hero .visual .photo::after{ content:""; position:absolute; inset:0; z-index:2;
    background:linear-gradient(105deg, var(--navy2) 0%, rgba(11,20,48,.55) 22%, rgba(11,20,48,.04) 55%, rgba(7,13,30,.5) 100%); }
  .hero .visual .photo::before{ content:""; position:absolute; left:0; right:0; bottom:0; height:42%; z-index:2;
    background:linear-gradient(180deg,transparent,rgba(7,13,30,.85)); }
  .hero .cap{ position:absolute; left:34px; bottom:42px; z-index:4; }
  .hero .cap .role{ font-family:'Outfit'; font-weight:600; font-size:14px; color:#fff; letter-spacing:.02em; }
  .hero .cap .sub{ font-size:12px; color:var(--gold-pale); margin-top:3px; letter-spacing:.04em; text-transform:uppercase; font-family:'Outfit'; font-weight:500; }
  .hero .cap .ph{ display:inline-block; margin-bottom:8px; font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--w-faint); border:1px solid rgba(255,255,255,.2); padding:3px 9px; border-radius:2px; }

  /* ===================== AUTHORITY STRIP ===================== */
  .authority{ background:var(--paper); border-bottom:1px solid var(--line); }
  .authority .wrap{ display:flex; align-items:center; justify-content:space-between; gap:30px; padding-top:26px; padding-bottom:26px; }
  .authority .item{ display:flex; align-items:center; gap:13px; }
  .authority .item img{ height:40px; width:auto; }
  .authority .item .tx b{ display:block; font-family:'Outfit'; font-weight:600; font-size:13.5px; color:var(--ink); }
  .authority .item .tx span{ font-size:12px; color:var(--slate-light); }
  .authority .sep{ width:1px; height:38px; background:var(--line); }
  .authority .item .mk{ font-family:'Outfit'; font-weight:700; font-size:22px; color:var(--azur); }
  .authority .item .mk em{ font-style:normal; color:var(--gold); font-size:14px; }

  /* ===================== SECTIONS ===================== */
  section.blk{ padding:120px 0; }
  .sec-head{ max-width:680px; }
  .sec-head h2{ font-weight:700; font-size:40px; line-height:1.12; letter-spacing:-.02em; color:var(--ink); margin:18px 0 0; }
  .sec-head h2 .g{ color:var(--azur); }
  .sec-head .sub{ color:var(--slate); font-size:17px; margin-top:18px; max-width:600px; }

  /* le cabinet */
  .cabinet{ background:#fff; }
  .cabinet .grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:80px; align-items:center; margin-top:0; }
  .cabinet .statement{ font-family:'Nunito'; }
  .cabinet .statement p{ color:var(--slate); font-size:16.5px; margin-top:18px; }
  .cabinet .statement p strong{ color:var(--ink); font-weight:700; }
  .cabinet .pillars{ display:grid; gap:0; margin-top:38px; border-top:1px solid var(--line); }
  .cabinet .pillar{ display:flex; gap:18px; padding:22px 0; border-bottom:1px solid var(--line); }
  .cabinet .pillar .n{ font-family:'Outfit'; font-weight:700; font-size:14px; color:var(--gold); width:34px; flex:none; padding-top:2px; }
  .cabinet .pillar h4{ font-family:'Outfit'; font-weight:600; font-size:17px; color:var(--ink); }
  .cabinet .pillar p{ font-size:14.5px; color:var(--slate-light); margin-top:3px; }
  .cabinet .figure{ position:relative; }
  .cabinet .figure img{ width:100%; height:540px; object-fit:cover; border-radius:2px; }
  .cabinet .figure .frame{ position:absolute; inset:-14px -14px auto auto; width:56%; height:56%; border:1px solid var(--gold); border-radius:2px; z-index:-1; }
  .cabinet .figure .badge{ position:absolute; left:-26px; bottom:34px; background:var(--navy2); color:#fff; padding:20px 24px; border-radius:2px; max-width:230px; box-shadow:0 30px 60px -30px rgba(7,13,30,.6); }
  .cabinet .figure .badge .k{ font-family:'Outfit'; font-weight:700; font-size:30px; color:var(--gold); line-height:1; }
  .cabinet .figure .badge .l{ font-size:13px; color:var(--w-soft); margin-top:8px; }

  /* expertises */
  .expertises{ background:var(--paper); }
  .exp-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); margin-top:56px; border:1px solid var(--line); }
  .exp{ background:var(--paper); padding:38px 32px 34px; position:relative; transition:.3s; }
  .exp:hover{ background:#fff; }
  .exp .n{ font-family:'Outfit'; font-weight:600; font-size:13px; color:var(--gold); letter-spacing:.1em; }
  .exp h3{ font-family:'Outfit'; font-weight:600; font-size:20px; color:var(--ink); margin:20px 0 10px; }
  .exp p{ font-size:14.5px; color:var(--slate); }
  .exp .ar{ margin-top:18px; display:inline-flex; align-items:center; gap:8px; font-family:'Outfit'; font-weight:600; font-size:13px; color:var(--azur); opacity:0; transform:translateX(-6px); transition:.3s; }
  .exp:hover .ar{ opacity:1; transform:none; }
  .exp::after{ content:""; position:absolute; left:0; top:0; width:0; height:2px; background:var(--gold); transition:.3s; }
  .exp:hover::after{ width:100%; }

  /* plateforme (dark) */
  .platform{ background:
      radial-gradient(100% 120% at 100% 0%, #2D3F9E 0%, transparent 55%),
      linear-gradient(120deg, var(--navy) 0%, var(--navy2) 100%); color:#fff; }
  .platform .grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:80px; align-items:center; }
  .platform .sec-head h2{ color:#fff; }
  .platform .sec-head .sub{ color:var(--w-soft); }
  .platform .feats{ display:grid; grid-template-columns:1fr 1fr; gap:1px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.1); }
  .platform .feat{ background:linear-gradient(160deg,rgba(255,255,255,.04),transparent); padding:30px 28px; }
  .platform .feat .ic{ width:42px; height:42px; border:1px solid rgba(232,155,28,.5); border-radius:2px; display:flex; align-items:center; justify-content:center; color:var(--gold); margin-bottom:18px; }
  .platform .feat .ic svg{ width:20px; height:20px; }
  .platform .feat h4{ font-family:'Outfit'; font-weight:600; font-size:16.5px; color:#fff; }
  .platform .feat p{ font-size:13.5px; color:var(--w-soft); margin-top:7px; }
  .platform .pennylane{ margin-top:30px; display:inline-flex; align-items:center; gap:11px; font-family:'Outfit'; font-weight:500; font-size:13.5px; color:var(--w-soft); border:1px solid rgba(255,255,255,.16); padding:10px 16px; border-radius:2px; }
  .platform .pennylane b{ color:var(--gold-pale); }

  /* secteurs */
  .secteurs{ background:#fff; }
  .sect-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:52px; }
  .sect{ border:1px solid var(--line); border-radius:2px; padding:26px 26px; display:flex; align-items:center; gap:16px; transition:.25s; }
  .sect:hover{ border-color:var(--gold); }
  .sect .ic{ width:44px; height:44px; flex:none; color:var(--azur); display:flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:2px; }
  .sect:hover .ic{ color:var(--gold); border-color:rgba(232,155,28,.4); }
  .sect .ic svg{ width:22px; height:22px; }
  .sect h4{ font-family:'Outfit'; font-weight:600; font-size:16px; color:var(--ink); }
  .sect p{ font-size:13px; color:var(--slate-light); margin-top:2px; }

  /* CTA */
  .cta-band{ position:relative; color:#fff; overflow:hidden; }
  .cta-band img.bg{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .cta-band .ov{ position:absolute; inset:0; background:linear-gradient(110deg, rgba(7,13,30,.95) 0%, rgba(11,20,48,.86) 45%, rgba(16,32,74,.6) 100%); }
  .cta-band .wrap{ position:relative; padding:104px 40px; }
  .cta-band .eyebrow{ color:var(--gold-pale); }
  .cta-band h2{ font-weight:700; font-size:46px; line-height:1.08; letter-spacing:-.02em; margin:22px 0 0; max-width:680px; }
  .cta-band .sub{ color:var(--w-soft); font-size:18px; margin-top:20px; max-width:520px; }
  .cta-band .row{ display:flex; align-items:center; gap:22px; margin-top:40px; }
  .cta-band .phone{ font-family:'Outfit'; font-weight:600; font-size:17px; color:#fff; display:flex; align-items:center; gap:10px; }
  .cta-band .phone svg{ width:18px; height:18px; color:var(--gold); }

  /* footer */
  footer{ background:var(--navy); color:var(--w-soft); padding:72px 0 34px; }
  footer .grid{ display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:48px; }
  footer .logo{ height:77px; margin-bottom:22px; filter:brightness(0) invert(1); }
  footer .blurb{ font-size:14px; color:var(--w-faint); max-width:280px; line-height:1.65; }
  footer h5{ font-family:'Outfit'; font-weight:600; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
  footer ul{ list-style:none; } footer li{ margin-bottom:11px; }
  footer li a{ font-size:14px; color:var(--w-soft); transition:.2s; } footer li a:hover{ color:#fff; }
  footer .contact-li{ display:flex; gap:10px; font-size:14px; color:var(--w-soft); margin-bottom:14px; }
  footer .contact-li svg{ width:16px; height:16px; color:var(--gold); flex:none; margin-top:3px; }
  footer .ordre{ margin-top:22px; }
  footer .ordre img{ height:54px; opacity:.92; }
  footer .ordre p{ font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--w-faint); margin-bottom:9px; font-family:'Outfit'; }
  footer .base{ border-top:1px solid rgba(255,255,255,.08); margin-top:54px; padding-top:26px; display:flex; justify-content:space-between; font-size:12.5px; color:var(--w-faint); }
  footer .base a{ color:var(--w-faint); margin-left:24px; } footer .base a:hover{ color:#fff; }
