
  @font-face{font-family:'Fraunces';font-weight:600;font-style:normal;font-display:swap;src:url(fonts/fraunces-latin-600-normal.woff2) format('woff2');}
  @font-face{font-family:'Fraunces';font-weight:500;font-style:italic;font-display:swap;src:url(fonts/fraunces-latin-500-italic.woff2) format('woff2');}
  @font-face{font-family:'Inter';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/inter-latin-400-normal.woff2) format('woff2');}
  @font-face{font-family:'Inter';font-weight:500;font-style:normal;font-display:swap;src:url(fonts/inter-latin-500-normal.woff2) format('woff2');}
  @font-face{font-family:'Space Mono';font-weight:400;font-style:normal;font-display:swap;src:url(fonts/space-mono-latin-400-normal.woff2) format('woff2');}
  @font-face{font-family:'Space Mono';font-weight:700;font-style:normal;font-display:swap;src:url(fonts/space-mono-latin-700-normal.woff2) format('woff2');}
  :root{
    --ivory:#FFFFFF;
    --paper:#EAF4FB;
    --ink:#14283C;
    --rust:#1B76AD;
    --rust-dark:#16608E;
    --sky:#8FCBEE;
    --sky-soft:#DCEEFA;
    --cord:#7FB9DC;
    --cord-light:#A9D4EE;
    --line: rgba(20,40,60,0.14);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--ivory);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  @media (prefers-reduced-motion: reduce){
    *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
  }
  h1,h2,h3{
    font-family:'Fraunces',serif;
    font-weight:600;
    margin:0;
    color:var(--ink);
  }
  .eyebrow{
    font-family:'Space Mono',monospace;
    font-size:0.72rem;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--rust);
  }
  a{color:inherit;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1100px;margin:0 auto;padding:0 28px;}
  section{padding:110px 0;}
  :focus-visible{outline:2px solid var(--rust); outline-offset:3px;}

  /* ---------- header ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(6px);
    border-bottom:1px solid var(--line);
  }
  .nav{
    max-width:1100px;margin:0 auto;padding:16px 28px;
    display:flex;align-items:center;justify-content:space-between;gap:24px;
  }
  .brand{display:flex;align-items:center;gap:12px;text-decoration:none;}
  .brand img{height:46px;width:auto;}
  .brand-name{font-family:'Fraunces',serif;font-size:1.15rem;font-weight:600;letter-spacing:0.01em;}
  .links{display:flex;flex-direction:row;align-items:center;gap:32px;list-style:none;margin:0;padding:0;}
  .links a{
    text-decoration:none;font-size:0.94rem;font-weight:500;color:var(--rust);
    position:relative;padding-bottom:4px;transition:color 0.2s ease;
  }
  .links a:hover{color:var(--rust-dark);}
  .links a::after{
    content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--rust);
    transition:width 0.25s ease;
  }
  .links a:hover::after{width:100%;}
  .call-pill{
    display:flex;align-items:center;gap:9px;
    background:var(--sky-soft);color:var(--ink);
    padding:9px 16px;border-radius:100px;
    font-family:'Space Mono',monospace;font-size:0.86rem;
    text-decoration:none; white-space:nowrap;
  }
  .dot{
    width:7px;height:7px;border-radius:50%;background:#2E9E6B;
    animation:pulse 1.8s ease-in-out infinite;
    flex-shrink:0;
  }
  @keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(124,191,154,0.5);}50%{opacity:0.6;}}
  .burger{display:none;background:none;border:none;cursor:pointer;padding:6px;}
  .burger span{display:block;width:22px;height:2px;background:var(--ink);margin:4px 0;}

  /* ---------- hero ---------- */
  .hero{
    padding:100px 0 90px;position:relative;overflow:hidden;
    background-color:#fff;
    background-image:
      linear-gradient(90deg, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0.86) 42%, rgba(234,244,251,0.45) 75%, rgba(234,244,251,0.25) 100%),
      url(hero.jpg);
    background-size:cover;background-position:center 82%;background-repeat:no-repeat;
  }
  .hero-grid{display:block;}
  .hero h1{font-size:clamp(2.4rem,4.6vw,3.6rem);line-height:1.08;margin:14px 0 22px;}
  .hero h1 em{font-style:italic;color:var(--rust);}
  .hero p.lead{font-size:1.1rem;max-width:600px;color:#3A4A5A;}
  .hero-ctas{display:flex;gap:16px;margin-top:34px;flex-wrap:wrap;}
  .btn{
    font-family:'Space Mono',monospace;font-size:0.88rem;
    padding:14px 26px;border-radius:100px;text-decoration:none;
    display:inline-flex;align-items:center;gap:8px;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .btn-primary{background:var(--sky);color:var(--ink);}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(31,127,184,0.28);}
  .btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);}
  .btn-ghost:hover{border-color:var(--ink);}

  .stat-row{display:flex;gap:44px;margin-top:48px;flex-wrap:wrap;}
  .stat b{font-family:'Fraunces',serif;font-size:2.1rem;font-weight:600;display:block;color:var(--ink);}
  .stat span{font-family:'Space Mono',monospace;font-size:0.74rem;letter-spacing:0.06em;text-transform:uppercase;color:#5A6C7F;}

  
  /* ---------- sectors bar ---------- */
  .sectors{
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);
    padding:34px 0;
  }
  .sectors-inner{display:flex;align-items:center;gap:28px;flex-wrap:wrap;}
  .sectors .eyebrow{white-space:nowrap;}
  .chip-row{display:flex;flex-wrap:wrap;gap:10px;}
  .chip{
    font-family:'Space Mono',monospace;font-size:0.78rem;
    border:1px solid var(--line);border-radius:100px;padding:6px 14px;
    color:#44566A;
  }

  /* ---------- process / services ---------- */
  .section-head{max-width:640px;margin-bottom:56px;}
  .section-head h2{font-size:clamp(1.8rem,3vw,2.4rem);margin-top:10px;}
  .section-head p{color:#44566A;margin-top:14px;}

  .process{position:relative;}
  .process-list{
    display:flex;flex-direction:column;gap:0;position:relative;
  }
  .process-item{
    display:grid;grid-template-columns:90px 1fr;gap:28px;
    padding:34px 0;border-top:1px solid var(--line);
    position:relative;
  }
  .process-item:last-child{border-bottom:1px solid var(--line);}
  .step-num{
    font-family:'Space Mono',monospace;font-size:0.85rem;color:var(--rust);
    display:flex;align-items:flex-start;padding-top:4px;
  }
  .process-item h3{font-size:1.28rem;margin-bottom:8px;}
  .process-item p{color:#44566A;max-width:600px;margin:0;}
  .cord-connector{
    position:absolute;left:44px;top:0;bottom:0;width:2px;
    background-image:repeating-linear-gradient(to bottom, var(--cord-light) 0 6px, transparent 6px 12px);
    opacity:0.55;
  }

  .extras{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px;}
  .extra{background:var(--paper);border-radius:18px;padding:34px 36px;}
  .extra h3{font-size:1.28rem;margin:8px 0 10px;}
  .extra p:last-child{color:#44566A;margin:0;}
  .results{background:var(--paper);}
  .result-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
  .result-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:36px;}
  .result-num{font-family:'Fraunces',serif;font-size:3.2rem;font-weight:600;line-height:1;color:var(--rust);}
  .result-label{font-family:'Space Mono',monospace;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.06em;color:#5A6C7F;margin:8px 0 18px !important;}
  .result-card p:last-child{color:#44566A;margin:0;}

  /* ---------- about ---------- */
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
  .about p{color:#3A4A5A;margin:0 0 16px;}
  .traits{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;}
  .traits span{
    font-family:'Space Mono',monospace;font-size:0.78rem;
    background:var(--ivory);border:1px solid var(--line);border-radius:100px;
    padding:7px 14px;
  }
  .team-card{
    background:var(--paper);border:1px solid var(--line);border-radius:18px;
    padding:36px;
  }
  .team-card .big-num{font-family:'Fraunces',serif;font-size:3.4rem;font-weight:600;line-height:1;}
  .team-card .cap{font-family:'Space Mono',monospace;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.08em;color:#5A6C7F;margin-top:8px;}
  .team-card hr{border:none;border-top:1px solid var(--line);margin:28px 0;}

  /* ---------- contact ---------- */
  .contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:60px;align-items:start;}
  .phone-cta{
    background:var(--sky-soft);color:var(--ink);border-radius:20px;padding:40px;
  }
  .phone-cta .eyebrow{color:var(--rust-dark);}
  .phone-cta a.tel{
    font-family:'Fraunces',serif;font-size:2rem;color:var(--ink);
    text-decoration:none;display:block;margin:14px 0 18px;
  }
  .phone-cta p{color:#44566A;margin:0;font-size:0.95rem;}

  form{display:flex;flex-direction:column;gap:16px;}
  label{font-family:'Space Mono',monospace;font-size:0.76rem;text-transform:uppercase;letter-spacing:0.06em;color:#5A6C7F;margin-bottom:6px;display:block;}
  input,textarea{
    width:100%;border:1px solid var(--line);background:transparent;
    border-radius:10px;padding:13px 14px;font-family:'Inter',sans-serif;font-size:0.96rem;color:var(--ink);
  }
  textarea{min-height:120px;resize:vertical;}
  input:focus,textarea:focus{border-color:var(--rust);}

  .hp{position:absolute;left:-9999px;height:0;overflow:hidden;}
  .consent{font-size:0.82rem;color:#5A6C7F;margin:0;}
  .consent a{color:var(--rust);}
  #form-status{margin:0;font-size:0.94rem;min-height:1.2em;}
  #form-status.ok{color:#1E7A52;}
  #form-status.err{color:#A63A2E;}
  footer{border-top:1px solid var(--line);padding:32px 0;}
  .footer-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
  .footer-row .eyebrow{color:#5A6C7F;}


  /* ---------- refonte : nouvelles sections ---------- */
  .intro-text{max-width:720px;}
  .intro-text p{color:#44566A;margin:0 0 14px;}
  .cards-4{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:48px 0 70px;}
  .card{background:var(--paper);border-radius:18px;padding:32px 34px;}
  .card h3{font-size:1.2rem;margin:0 0 10px;}
  .card p{color:#44566A;margin:0;}
  .sub-head{font-family:'Fraunces',serif;font-size:1.5rem;margin:0 0 8px;}
  .tools{max-width:720px;color:#44566A;margin:34px 0 0;}
  .avantages{background:var(--paper);}
  .adv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .adv{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px 28px 30px;}
  .adv .big{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:600;line-height:1.25;margin:10px 0 8px;}
  .adv p{color:#44566A;margin:0;font-size:0.95rem;}
  .adv p.eyebrow{color:var(--rust);font-size:0.72rem;margin:0;}
  h2{line-height:1.2;}
  .section-head h2{line-height:1.2;}
  .result-card{background:var(--paper);border:none;}
  .testi-title{margin:70px 0 28px;}
  .testi-grid{columns:2;column-gap:24px;}
  .testi{break-inside:avoid;margin:0 0 24px;border:1px solid var(--line);border-radius:18px;padding:30px;background:#fff;}
  .testi p{margin:0 0 18px;color:#3A4A5A;font-size:0.97rem;}
  .testi cite{font-style:normal;font-family:'Space Mono',monospace;font-size:0.78rem;letter-spacing:0.04em;color:var(--rust);}
  .about{background:var(--paper);}
  .team-card{background:#fff;}
  .mission{background:#fff;border-left:3px solid var(--sky);border-radius:0 12px 12px 0;padding:16px 20px;margin:22px 0;}
  .mission strong{display:block;font-family:'Space Mono',monospace;font-size:0.74rem;letter-spacing:0.12em;text-transform:uppercase;color:var(--rust);margin-bottom:4px;font-weight:400;}
  .mission p{margin:0;font-weight:500;color:var(--ink);}
  .cta-band{padding:30px 0 110px;}
  .cta-box{background:var(--sky-soft);border-radius:24px;padding:64px 40px;text-align:center;}
  .cta-box h2{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:14px;}
  .cta-box p{max-width:560px;margin:0 auto 28px;color:#44566A;}
  .row2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .phone-cta hr{border:none;border-top:1px solid rgba(20,40,60,0.15);margin:22px 0 18px;}
  .info-line{margin:0 0 8px !important;}
  .info-line b{font-family:'Space Mono',monospace;font-size:0.74rem;letter-spacing:0.08em;text-transform:uppercase;color:var(--rust-dark);display:block;font-weight:400;}

  /* ---------- logos clients ---------- */
  .clients{padding:80px 0 20px;}
  .client-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;}
  .client-logo{width:168px;height:104px;background:#fff;border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;justify-content:center;padding:12px;overflow:hidden;}
  .client-logo img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;}


  /* ---------- multi-pages ---------- */
  .links > li{position:relative;}
  .links a[aria-current="page"]{color:var(--rust-dark);font-weight:600;}
  .links a[aria-current="page"]::after{width:100%;}
  .has-sub > a .chev{display:inline-block;margin-left:5px;font-size:0.7em;}
  .sub{display:none;position:absolute;top:100%;left:-16px;min-width:270px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;box-shadow:0 14px 30px rgba(20,40,60,0.10);list-style:none;margin:0;z-index:60;}
  .has-sub:hover .sub,.has-sub:focus-within .sub{display:block;}
  .sub a{display:block;padding:9px 12px;border-radius:8px;white-space:nowrap;}
  .sub a::after{display:none;}
  .sub a:hover{background:var(--paper);}
  .page-head{padding:72px 0 54px;background:linear-gradient(180deg,#EAF4FB 0%,#FFFFFF 100%);border-bottom:1px solid var(--line);}
  .page-head h1{font-size:clamp(2rem,4vw,3rem);line-height:1.12;margin:12px 0 16px;}
  .page-head .lead{max-width:680px;font-size:1.08rem;color:#3A4A5A;margin:0;}
  .crumbs{font-family:'Space Mono',monospace;font-size:0.74rem;letter-spacing:0.04em;color:#5A6C7F;margin:0 0 22px;}
  .crumbs a{color:#5A6C7F;text-decoration:none;}
  .crumbs a:hover{color:var(--rust);text-decoration:underline;}
  .block{padding:76px 0 0;}
  .block:last-of-type{padding-bottom:20px;}
  .prose{max-width:760px;}
  .prose h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:0 0 16px;line-height:1.2;}
  .prose h3{font-size:1.2rem;margin:26px 0 8px;}
  .prose p{color:#44566A;margin:0 0 14px;}
  .ticks{list-style:none;margin:6px 0 18px;padding:0;}
  .ticks li{position:relative;padding:5px 0 5px 28px;color:#44566A;}
  .ticks li::before{content:"";position:absolute;left:4px;top:13px;width:9px;height:9px;border-radius:50%;background:var(--sky);}
  .ticks li strong{color:var(--ink);}
  .card a.more,.more{display:inline-block;margin-top:14px;font-family:'Space Mono',monospace;font-size:0.8rem;color:var(--rust-dark);text-decoration:none;border-bottom:1px solid var(--sky);padding-bottom:2px;}
  .card a.more:hover{border-bottom-color:var(--rust-dark);}
  .results .result-card{background:#fff;border:1px solid var(--line);}

  .brand-name{color:#1B597D;}
  .footer-brand{margin-bottom:18px;}
  .footer-brand img{height:84px;width:auto;}
  .adv-grid.four{grid-template-columns:repeat(4,1fr);}
  .grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:26px;}
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:26px;}
  .more-row{margin-top:30px;}
  .sitemap-list{list-style:none;padding:0;margin:0;max-width:640px;}
  .sitemap-list li{border-top:1px solid var(--line);padding:14px 0;}
  .sitemap-list li:last-child{border-bottom:1px solid var(--line);}
  .sitemap-list a{font-family:'Fraunces',serif;font-size:1.15rem;color:var(--ink);text-decoration:none;}
  .sitemap-list a:hover{color:var(--rust);}
  .sitemap-list ul{list-style:none;padding:8px 0 0 20px;margin:0;}
  .sitemap-list ul li{border:none;padding:4px 0;}
  .sitemap-list ul a{font-family:'Inter',sans-serif;font-size:0.96rem;color:var(--rust-dark);}
  .legal .prose h2{font-size:1.3rem;margin:36px 0 10px;}
  .foot-links a{text-decoration:none;color:inherit;}
  .foot-links a:hover{color:var(--rust-dark);text-decoration:underline;}
  .call-fab{display:none;position:fixed;right:16px;bottom:16px;z-index:70;align-items:center;gap:8px;background:var(--sky);color:var(--ink);font-family:'Space Mono',monospace;font-weight:700;font-size:0.95rem;padding:14px 22px;border-radius:100px;text-decoration:none;box-shadow:0 8px 22px rgba(20,40,60,0.22);}
  .call-fab:active{transform:scale(0.98);}

  @media (max-width:860px){
    .links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;gap:18px;background:#fff;padding:20px 28px;border-bottom:1px solid var(--line);}
    header.open .links{display:flex;}
    .brand-name{display:none;}
    .nav{gap:12px;}
    .call-pill{font-size:0.8rem;padding:8px 12px;}
    .burger{display:block;}
    .hero-grid, .about-grid, .contact-grid, .extras, .result-grid, .cards-4, .adv-grid, .row2{grid-template-columns:1fr;}
    .testi-grid{columns:1;}
    .client-logo{width:calc(50% - 8px);height:92px;}
    .clients{padding:60px 0 10px;}
    .cta-box{padding:48px 24px;}
    .stat-row{gap:32px;}
    section{padding:74px 0;}
  }

  @media (max-width:860px){
    .sub{display:block;position:static;border:none;box-shadow:none;padding:6px 0 0 14px;min-width:0;background:transparent;}
    .sub a{padding:7px 0;white-space:normal;}
    .sub a:hover{background:transparent;}
    .has-sub > a .chev{display:none;}
    .grid-2,.grid-3,.adv-grid.four{grid-template-columns:1fr;}
    .page-head{padding:48px 0 38px;}
    .block{padding:52px 0 0;}
    .call-fab{display:inline-flex;}
    body{padding-bottom:84px;}
  }
