
    :root{
      --navy:#002147;
      --navy-dark:#001832;
      --navy-mid:#004080;
      --light-bg:#e6f0ff;
      --muted:#6b7280;
      --accent:#ffd166;
      --white:#ffffff;
      --max-width:1200px;
      --radius:12px;
    }
    /* Animation bulles */
.background-animation {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: -1; /* derrière tout le contenu */
  background: #001832; /* bleu marine foncé */
  color: #ffffff;
}

.background-animation span {
  position: absolute;
  display: block;
  width: 20px;
  height: 20px;
  background: rgba(255, 255, 255, 0.15); /* bulles transparentes */
  border-radius: 50%;
  animation: moveBubbles 25s linear infinite;
  bottom: -150px;
}

/* Taille et position aléatoire des bulles */
.background-animation span:nth-child(1) {
  left: 25%;
  width: 80px; height: 80px;
  animation-duration: 20s;
}
.background-animation span:nth-child(2) {
  left: 10%;
  width: 20px; height: 20px;
  animation-duration: 10s;
  animation-delay: 2s;
}
.background-animation span:nth-child(3) {
  left: 70%;
  width: 30px; height: 30px;
  animation-duration: 15s;
  animation-delay: 4s;
}
.background-animation span:nth-child(4) {
  left: 40%;
  width: 60px; height: 60px;
  animation-duration: 18s;
  animation-delay: 1s;
}
.background-animation span:nth-child(5) {
  left: 65%;
  width: 40px; height: 40px;
  animation-duration: 12s;
  animation-delay: 3s;
}
.background-animation span:nth-child(6) {
  left: 85%;
  width: 25px; height: 25px;
  animation-duration: 16s;
  animation-delay: 5s;
}
.background-animation span:nth-child(7) {
  left: 55%;
  width: 50px; height: 50px;
  animation-duration: 14s;
  animation-delay: 7s;
}
.background-animation span:nth-child(8) {
  left: 90%;
  width: 20px; height: 20px;
  animation-duration: 11s;
  animation-delay: 6s;
}
.background-animation span:nth-child(9) {
  left: 15%;
  width: 35px; height: 35px;
  animation-duration: 17s;
  animation-delay: 8s;
}
.background-animation span:nth-child(10) {
  left: 50%;
  width: 70px; height: 70px;
  animation-duration: 22s;
  animation-delay: 10s;
}

/* Animation des bulles */
@keyframes moveBubbles {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { opacity: 0.3; }
  100% { transform: translateY(-1000px) scale(0); opacity: 0; }
}

    /* Reset minimal */
    *{box-sizing:border-box}
    html,body{height:100%}
    body{
      margin:0;
      font-family:Inter,system-ui,Segoe UI,Roboto,"Helvetica Neue",Arial;
      background:#f7f9fc;
      color: #111827;
      -webkit-font-smoothing:antialiased;
      -moz-osx-font-smoothing:grayscale;
      line-height:1.45;
    }
    a{color:inherit;text-decoration:none}
    
    .white {
        color: white;
    }
    
    /* Container */
    .container{max-width:var(--max-width);margin:0 auto;padding:0 16px;}

    /* NAVBAR */
    nav{
      position:sticky;top:0;z-index:1200;
      background:var(--navy);
      color:var(--white);
      box-shadow:0 2px 8px rgba(0,0,0,0.12);
      transition:background .25s ease, padding .25s ease;
    }
    .nav-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;max-width:var(--max-width);margin:0 auto}
    .brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:1.05rem}
    .brand .logo-mark{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,var(--navy-mid),var(--navy));display:flex;align-items:center;justify-content:center;color:white;font-weight:800}
    .nav-links{display:flex;gap:20px;align-items:center}
    .nav-links a{color:var(--white);padding:8px 10px;border-radius:8px;font-weight:600}
    .nav-links a:hover{background:rgba(255,255,255,0.06)}

    /* lang switch & mobile menu */
    .lang-switch{display:flex;gap:8px;align-items:center}
    .lang-switch img{width:24px;height:auto;border-radius:3px;cursor:pointer;transform:scale(1);transition:transform .18s}
    .lang-switch img:hover{transform:scale(1.12)}
    .hamburger{display:none;background:transparent;border:0;color:var(--white);cursor:pointer;padding:8px;border-radius:8px}
    .hamburger svg{width:26px;height:26px}

    nav.scrolled{background:var(--navy-dark)}

    /* HERO / CAROUSEL */
    .hero{
      margin:18px auto 30px;
      position:relative;
      max-width:var(--max-width);
      height:480px;
      border-radius:14px;
      overflow:hidden;
    }
    .slides{display:flex;height:100%;transition:transform .9s cubic-bezier(.22,.9,.36,1);touch-action:pan-y}
    .slide{flex:0 0 100%;height:100%;position:relative}
    .slide img{width:100%;height:100%;object-fit:cover;display:block}

    /* overlay content */
    .hero-overlay{
      position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
      background:linear-gradient(180deg, rgba(0,0,0,0.30), rgba(0,0,0,0.45));
      color:var(--white);text-align:center;padding:24px;
    }
    .hero-title{font-size:clamp(1.6rem,3.6vw,2.6rem);font-weight:800;margin-bottom:10px}
    .hero-sub{font-size:clamp(.95rem,2vw,1.15rem);color:rgba(255,255,255,0.92);margin-bottom:18px;max-width:900px}
    .cta-btn{display:inline-block;background:var(--navy);color:var(--white);padding:12px 18px;border-radius:10px;font-weight:700;border:2px solid rgba(255,255,255,0.06);transition:transform .18s,background .18s}
    .cta-btn:hover{transform:translateY(-3px);background:var(--navy-mid)}

    /* carousel controls */
    .carousel-controls{position:absolute;left:12px;right:12px;top:50%;transform:translateY(-50%);display:flex;justify-content:space-between;pointer-events:none}
    .carousel-btn{background:rgba(0,0,0,0.35);border:0;color:white;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;pointer-events:auto;cursor:pointer}
    .carousel-dots{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:8px}
    .dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,0.4);cursor:pointer}
    .dot.active{background:var(--accent)}

    /* SECTIONS */
    section{padding:40px 0}
    .section-title{color:var(--navy);font-size:1.3rem;margin-bottom:18px;font-weight:700;text-align:center}

    /* SERVICES */
    .service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;align-items:stretch}
    .service-card{background:linear-gradient(180deg,#fff,#fbfdff);border-radius:12px;padding:16px;box-shadow:0 6px 18px rgba(2,6,23,0.06);display:flex;flex-direction:column;gap:12px}
    .service-card img{width:100%;height:140px;object-fit:cover;border-radius:10px}
    .service-card h3{color:var(--navy);margin:0;font-size:1.05rem}
    .service-card p{color:var(--muted);font-size:.95rem;margin:0;flex:1}

    /* STAFF */
    .staff-grid{display:flex;flex-wrap:wrap;gap:18px;justify-content:center}
    .staff-member{width:200px;background:white;padding:14px;border-radius:12px;text-align:center;box-shadow:0 6px 18px rgba(2,6,23,0.06)}
    .staff-member img{width:110px;height:110px;border-radius:50%;object-fit:cover;margin:0 auto 10px;display:block}
    .staff-member h4{margin:0;color:var(--navy)}
    .staff-member p{margin:6px 0 0;color:var(--muted);font-size:.92rem}

    /* GALLERY MOSAIC */
    .gallery-grid{
      display:grid;
      grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
      grid-auto-rows:140px;
      gap:8px;
    }
    .gallery-item{position:relative;overflow:hidden;border-radius:10px;cursor:pointer}
    .gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}
    .gallery-item:hover img{transform:scale(1.08)}
    .gallery-item.wide{grid-column:span 2}
    .gallery-item.tall{grid-row:span 2}

    /* TESTIMONIALS */
    .testimonials-container{display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
    .testimonial-card{width:320px;background:white;padding:18px;border-radius:12px;box-shadow:0 6px 18px rgba(2,6,23,0.06)}
    .testimonial-card p{font-style:italic;color:#1f2937}
    .testimonial-card h4{margin-top:12px;color:var(--navy);font-weight:700}

    /* PARTNERS */
    .partners-container{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;align-items:center}
    .partners-container img{max-width:140px;filter:grayscale(100%);transition:all .25s;cursor:pointer}
    .partners-container img:hover{filter:none;transform:scale(1.06)}

    /* CONTACT FORM */
    .contact .form-wrap{max-width:680px;margin:0 auto;background:white;padding:18px;border-radius:12px;box-shadow:0 8px 24px rgba(2,6,23,0.06)}
    .contact form{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
    .contact input,.contact textarea,.contact select{padding:12px;border-radius:8px;border:1px solid #e6eef8;font-size:1rem}
    .contact textarea{grid-column:1/-1;min-height:120px;resize:vertical}
    .contact .full{grid-column:1/-1}
    .contact button{grid-column:1/-1;background:var(--navy);color:white;padding:12px;border-radius:10px;border:0;font-weight:700;cursor:pointer}
    .contact .two-col{display:flex;gap:12px}

    /* LIGHTBOX */
    .lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.92);align-items:center;justify-content:center;z-index:1400;padding:20px}
    .lightbox img{max-width:95%;max-height:85%}
    .lightbox .close{position:absolute;top:20px;right:30px;font-size:34px;color:white;cursor:pointer}
    .lightbox .nav{position:absolute;top:50%;transform:translateY(-50%);width:100%;display:flex;justify-content:space-between;padding:0 18px;pointer-events:none}
    .lightbox .nav button{background:transparent;border:0;color:white;font-size:42px;pointer-events:auto;cursor:pointer}

    /* FOOTER */
    footer{background:var(--navy);color:white;padding:22px 0;text-align:center}
    footer a{color:rgba(255,255,255,0.9);margin:0 8px;font-weight:600}

    /* RESPONSIVE - breakpoints */
    @media (max-width:1024px){
      .hero{height:420px}
      .gallery-item.wide{grid-column:span 2}
      .gallery-item.tall{grid-row:span 2}
    }
    @media (max-width:820px){
      .nav-links{display:none}
      .hamburger{display:inline-flex}
      .nav-inner{padding:12px}
      .hero{height:360px}
      .service-card img{height:120px}
      .contact form{grid-template-columns:1fr}
      .contact textarea{grid-column:1/-1}
    }
    @media (max-width:600px){
      .hero{height:300px;border-radius:10px;margin:12px 16px}
      .hero-title{font-size:1.4rem}
      .hero-sub{font-size:.95rem}
      .gallery-grid{grid-auto-rows:110px}
      .gallery-item.wide{grid-column:span 1}
      .gallery-item.tall{grid-row:span 1}
      .staff-member{width:160px}
      .testimonial-card{width:100%}
      .partners-container img{max-width:110px}
    }

    /* mobile nav drawer */
    .mobile-drawer{position:fixed;top:0;right:-100%;height:100%;width:80%;max-width:320px;background:var(--white);box-shadow:-10px 0 30px rgba(2,6,23,0.12);z-index:1600;padding:20px;transition:right .28s}
    .mobile-drawer.open{right:0}
    .mobile-drawer .close-drawer{display:flex;justify-content:flex-end}
    .mobile-drawer nav a{display:block;padding:12px 8px;color:#0f172a;border-radius:8px}
    .mobile-drawer .lang-row{display:flex;gap:8px;margin-top:12px}
