 :root{
      --blue-900:#0b2545;
      --blue-800:#13315c;
      --blue-700:#1d4e89;
      --blue-600:#2563eb;
      --blue-500:#3b82f6;
      --blue-100:#e8f0fe;
      --blue-50:#f4f8ff;
      --white:#ffffff;
      --text:#1f2937;
      --muted:#5b6b7c;
      --border:#dbe6f3;
      --shadow:0 18px 45px rgba(11,37,69,.10);
      --radius:18px;
      --transition:.28s ease;
    }

    *{margin:0;padding:0;box-sizing:border-box;}

    html{scroll-behavior:smooth;}

    body{
      font-family:"Plus Jakarta Sans",system-ui,-apple-system,Segoe UI,sans-serif;
      background:var(--blue-50);
      color:var(--text);
      line-height:1.6;
      min-height:100vh;
      display:flex;
      flex-direction:column;
    }

    img{max-width:100%;display:block;}

    a{text-decoration:none;color:inherit;}

    .container{
      width:min(1180px,92%);
      margin-inline:auto;
    }

    /* ===============================
       HEADER / NAVIGATION
    =============================== */
    .site-header{
      position:sticky;
      top:0;
      z-index:100;
      background:rgba(255,255,255,.92);
      backdrop-filter:blur(14px);
      border-bottom:1px solid var(--border);
    }

    .nav{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      padding:16px 0;
    }

    .brand{
      display:flex;
      align-items:center;
      gap:12px;
      font-weight:800;
      color:var(--blue-900);
      letter-spacing:-.02em;
    }

    .brand-mark{
      width:46px;
      height:46px;
      border-radius:14px;
      display:grid;
      place-items:center;
      background:linear-gradient(135deg,var(--blue-700),var(--blue-500));
      color:var(--white);
      box-shadow:0 10px 24px rgba(237, 238, 240, 0.25);
      flex-shrink:0;
    }

    .brand small{
      display:block;
      font-size:.72rem;
      font-weight:600;
      color:var(--muted);
      letter-spacing:.12em;
      text-transform:uppercase;
    }

    .nav-links{
      display:flex;
      align-items:center;
      gap:6px;
      list-style:none;
    }

    .nav-link{
      position:relative;
      padding:10px 16px;
      border-radius:999px;
      font-weight:600;
      font-size:.95rem;
      color:var(--blue-800);
      transition:var(--transition);
    }

    .nav-link:hover{
      background:var(--blue-100);
      color:var(--blue-700);
    }

    .nav-link.active{
      background:var(--blue-900);
      color:var(--white);
      box-shadow:0 8px 18px rgba(11,37,69,.22);
    }

    .nav-toggle{
      display:none;
      width:46px;
      height:46px;
      border:1px solid var(--border);
      border-radius:14px;
      background:var(--white);
      color:var(--blue-800);
      cursor:pointer;
    }

    /* ===============================
       PAGES / SECTIONS
    =============================== */
    main{flex:1;}

    .page{
      display:none;
      animation:fadeUp .45s ease both;
    }

    .page.active{display:block;}

    @keyframes fadeUp{
      from{opacity:0;transform:translateY(14px);}
      to{opacity:1;transform:translateY(0);}
    }

    .section{
      padding:76px 0;
    }

    .section-head{
      max-width:680px;
      margin-bottom:42px;
    }

    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-size:.78rem;
      font-weight:700;
      letter-spacing:.14em;
      text-transform:uppercase;
      color:var(--blue-700);
      background:var(--blue-100);
      border:1px solid rgba(37,99,235,.18);
      padding:8px 14px;
      border-radius:999px;
      margin-bottom:18px;
    }

    h1,h2,h3{
      color:var(--blue-900);
      line-height:1.15;
      letter-spacing:-.03em;
    }

    h1{font-size:clamp(2.4rem,5vw,4.1rem);font-weight:800;}
    h2{font-size:clamp(1.9rem,3.6vw,2.7rem);font-weight:800;}
    h3{font-size:1.22rem;font-weight:700;}

    .lead{
      color:var(--muted);
      font-size:1.08rem;
      margin-top:16px;
    }

    /* ===============================
       HERO
    =============================== */
    .hero{
      position:relative;
      color:var(--white);
      overflow:hidden;
      background:
        linear-gradient(115deg,rgba(11,37,69,.94) 8%,rgba(29,78,137,.82) 48%,rgba(37,99,235,.58) 100%),
        url("https://images.unsplash.com/photo-1518770660439-4636190af475?w=1200&fit=crop") center/cover no-repeat;
    }

    .hero-inner{
      min-height:min(78vh,720px);
      display:flex;
      align-items:center;
      padding:90px 0;
    }

    .hero-content{
      max-width:720px;
    }

    .hero-badge{
      display:inline-flex;
      align-items:center;
      gap:10px;
      background:rgba(255,255,255,.14);
      border:1px solid rgba(255,255,255,.25);
      padding:9px 16px;
      border-radius:999px;
      font-size:.85rem;
      font-weight:600;
      margin-bottom:24px;
    }

    .hero p{
      color:rgba(255,255,255,.88);
      font-size:1.12rem;
      max-width:590px;
      margin-top:20px;
    }

    .hero-actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
      margin-top:34px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      padding:15px 28px;
      border-radius:999px;
      font-weight:700;
      font-size:.98rem;
      border:0;
      cursor:pointer;
      transition:transform var(--transition),box-shadow var(--transition),background var(--transition),color var(--transition);
    }

    .btn-primary{
      background:var(--white);
      color:var(--blue-900);
      box-shadow:0 14px 30px rgba(0,0,0,.18);
    }

    .btn-primary:hover{
      transform:translateY(-3px);
      box-shadow:0 20px 40px rgba(0,0,0,.24);
    }

    .btn-outline{
      background:transparent;
      color:var(--white);
      border:1.5px solid rgba(255,255,255,.55);
    }

    .btn-outline:hover{
      background:rgba(255,255,255,.14);
      transform:translateY(-3px);
    }

    .btn-blue{
      background:linear-gradient(135deg,var(--blue-700),var(--blue-600));
      color:var(--white);
      box-shadow:0 14px 30px rgba(37,99,235,.28);
    }

    .btn-blue:hover{
      transform:translateY(-3px);
      box-shadow:0 20px 40px rgba(37,99,235,.36);
    }

    .hero-stats{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:14px;
      margin-top:52px;
      max-width:640px;
    }

    .stat{
      background:rgba(255,255,255,.12);
      border:1px solid rgba(255,255,255,.18);
      border-radius:var(--radius);
      padding:18px;
      backdrop-filter:blur(8px);
    }

    .stat strong{
      display:block;
      font-size:1.55rem;
      color:var(--white);
    }

    .stat span{
      font-size:.85rem;
      color:rgba(255,255,255,.78);
    }

    /* ===============================
       CARTES & GRILLES
    =============================== */
    .grid{
      display:grid;
      gap:22px;
    }

    .grid-2{grid-template-columns:repeat(2,minmax(0,1fr));}
    .grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}

    .card{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:var(--radius);
      padding:30px;
      box-shadow:var(--shadow);
      transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);
    }

    .card:hover{
      transform:translateY(-6px);
      border-color:rgba(37,99,235,.35);
      box-shadow:0 26px 55px rgba(11,37,69,.15);
    }

    .icon{
      width:56px;
      height:56px;
      border-radius:16px;
      display:grid;
      place-items:center;
      background:var(--blue-100);
      color:var(--blue-700);
      margin-bottom:20px;
    }

    .card p{
      color:var(--muted);
      margin-top:10px;
    }

    .feature-list{
      list-style:none;
      margin-top:18px;
      display:grid;
      gap:10px;
    }

    .feature-list li{
      display:flex;
      gap:10px;
      align-items:flex-start;
      color:var(--muted);
      font-size:.97rem;
    }

    .feature-list svg{
      flex-shrink:0;
      margin-top:3px;
      color:var(--blue-600);
    }

    /* ===============================
       À PROPOS
    =============================== */
    .about-panel{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:26px;
      padding:clamp(28px,5vw,58px);
      box-shadow:var(--shadow);
      display:grid;
      grid-template-columns:1.15fr .85fr;
      gap:44px;
      align-items:center;
    }

    .values{
      display:grid;
      gap:16px;
      margin-top:30px;
    }

    .value{
      display:flex;
      gap:16px;
      padding:18px;
      border-radius:16px;
      background:var(--blue-50);
      border:1px solid var(--border);
      transition:var(--transition);
    }

    .value:hover{
      background:var(--blue-100);
      transform:translateX(6px);
    }

    .value-icon{
      width:46px;
      height:46px;
      border-radius:13px;
      display:grid;
      place-items:center;
      background:var(--white);
      color:var(--blue-700);
      border:1px solid var(--border);
      flex-shrink:0;
    }

    .value strong{
      display:block;
      color:var(--blue-900);
    }

    .value span{
      color:var(--muted);
      font-size:.95rem;
    }

    .about-side{
      display:grid;
      gap:18px;
    }

    .quote{
      background:linear-gradient(135deg,var(--blue-900),var(--blue-700));
      color:var(--white);
      border-radius:24px;
      padding:32px;
    }

    .quote p{
      color:rgba(255,255,255,.86);
      margin-top:12px;
    }

    .quote strong{
      display:block;
      margin-top:18px;
      color:var(--white);
    }

    /* ===============================
       CONTACT
    =============================== */
    .contact-layout{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:24px;
      align-items:start;
    }

    .contact-card{
      background:var(--white);
      border:1px solid var(--border);
      border-radius:var(--radius);
      padding:32px;
      box-shadow:var(--shadow);
    }

    .contact-item{
      display:flex;
      gap:16px;
      align-items:flex-start;
      padding:18px 0;
      border-bottom:1px solid var(--border);
    }

    .contact-item:last-of-type{border-bottom:0;}

    .contact-item strong{
      display:block;
      color:var(--blue-900);
    }

    .contact-item a{
      color:var(--blue-600);
      font-weight:600;
      word-break:break-word;
      transition:var(--transition);
    }

    .contact-item a:hover{
      color:var(--blue-900);
      text-decoration:underline;
    }

    .contact-cta{
      background:linear-gradient(135deg,var(--blue-900),var(--blue-700));
      color:var(--white);
      border-radius:26px;
      padding:clamp(30px,5vw,50px);
      display:flex;
      flex-direction:column;
      justify-content:center;
      min-height:100%;
    }

    .contact-cta p{
      color:rgba(255,255,255,.85);
      margin:16px 0 28px;
    }

    .contact-cta .btn{
      align-self:flex-start;
    }

    /* ===============================
       FOOTER
    =============================== */
    .site-footer{
      background:var(--blue-900);
      color:rgba(255,255,255,.82);
      padding:52px 0 26px;
      margin-top:auto;
    }

    .footer-grid{
      display:grid;
      grid-template-columns:1.4fr 1fr 1fr;
      gap:34px;
      padding-bottom:32px;
      border-bottom:1px solid rgba(255,255,255,.14);
    }

    .footer-brand{
      display:flex;
      align-items:center;
      gap:12px;
      color:var(--white);
      font-weight:800;
      margin-bottom:14px;
    }

    .footer-brand .brand-mark{
      background:rgba(255,255,255,.14);
      box-shadow:none;
    }

    .site-footer h3{
      color:var(--white);
      font-size:1rem;
      margin-bottom:14px;
    }

    .footer-links{
      list-style:none;
      display:grid;
      gap:10px;
    }

    .footer-links button{
      background:none;
      border:0;
      color:rgba(255,255,255,.78);
      font:inherit;
      cursor:pointer;
      padding:0;
      transition:var(--transition);
    }

    .footer-links button:hover{
      color:var(--white);
      transform:translateX(4px);
    }

    .footer-contact a:hover{
      color:var(--white);
    }

    .footer-bottom{
      display:flex;
      justify-content:space-between;
      gap:14px;
      flex-wrap:wrap;
      padding-top:22px;
      font-size:.88rem;
      color:rgba(255,255,255,.65);
    }

    /* ===============================
       RESPONSIVE
    =============================== */
    @media (max-width:960px){
      .grid-3{grid-template-columns:repeat(2,minmax(0,1fr));}
      .about-panel,
      .contact-layout{grid-template-columns:1fr;}
      .footer-grid{grid-template-columns:1fr 1fr;}
    }

    @media (max-width:760px){
      .nav-toggle{display:grid;place-items:center;}

      .nav-links{
        position:absolute;
        top:100%;
        left:0;
        right:0;
        flex-direction:column;
        align-items:stretch;
        gap:8px;
        background:var(--white);
        border-bottom:1px solid var(--border);
        padding:14px 4vw 20px;
        box-shadow:0 20px 35px rgba(11,37,69,.12);
        display:none;
      }

      .nav-links.open{display:flex;}
      .nav-link{text-align:center;}

      .hero-inner{min-height:auto;padding:70px 0;}
      .hero-stats{grid-template-columns:1fr;}
      .grid-2,
      .grid-3{grid-template-columns:1fr;}
      .section{padding:56px 0;}
      .footer-grid{grid-template-columns:1fr;}
      .footer-bottom{justify-content:center;text-align:center;}
    }

    @media (prefers-reduced-motion:reduce){
      *{animation:none!important;transition:none!important;}
    }