
        

      :root {
        --primary: #222a35;
        --primary-light: #2d3745;
        --accent: #eb0029;
        --accent-hover: #ca0a22;
        --bg-light: #f8fafc;
        --bg-card: #ffffff;
        --text-dark: #1e293b;
        --text-muted: #64748b;
        --border-color: #e2e8f0;
        --highlight-bg: #eef6fc;
        --highlight-border: #3b82f6;
        
      }

      * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }

      body {
        font-family: "Montserrat", Arial, sans-serif;
        color: --text-dark;
        background-color: #ffffff;
        line-height: 1.6;
        overflow-x: hidden;
      }
      button {
        font-family: "Montserrat", Arial, sans-serif;
      }

      /* Top Bar & Navigation */
      
      h3 {
        font-size: 26px;
        font-weight: 800;
        margin-bottom:  0.6rem;
      }
      ul {
        list-style: none;
      }
      li {
        margin-bottom: 15px;
        padding-left: 25px;
        position: relative;
      }

      .nav-container {
        background-color: #ffffff;
        width: 100%;
        margin: 0 auto;
        display: flex;
        justify-content: space-between;
        align-items: center;
      }

      .logo {
        font-size: 22px;
        font-weight: 800;
        color: var(--primary);
        letter-spacing: -0.5px;
        text-decoration: none;
      }

      .logo span {
        color: var(--accent);
      }

      .nav-menu {
        display: flex;
        list-style: none;
        align-items: center;
        margin-left: auto;
      }

      .nav-item {
        margin-bottom: 0px;
        padding: 13px;
        text-align: center;
      }

      .nav-link {
        text-decoration: none;
        color: var(--primary);
        font-size: 13px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        transition: color 0.2s ease;
        position: relative;
        padding-bottom: 4px;
      }

      .nav-link:hover,
      .nav-link.active {
        color: var(--accent);
      }

      .nav-link.active::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 2px;
        background-color: var(--accent);
      }

      /* Style de base pour le dropdown */
.dropdown {
  position: relative;
  display: inline-block;
}

/* Masquer le sous-menu par défaut */
.dropdown-menu {
  display: none;
  position: absolute;
  background-color:var(--bg-card);
  pointer-events: auto;
  min-width: 200px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
  list-style: none;
  padding: 0;
  margin: 0;
}

.dropdown-item {
  padding-left: 0px;
}


/* Afficher le sous-menu au survol */
.dropdown:hover .dropdown-menu {
  display: block;
  z-index: 200;
  pointer-events: auto;
}

/* Style des liens du dropdown */
.dropdown-link {
        text-decoration: none;
        color: var(--primary);
        font-size: 13px;
        font-weight: 600;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        transition: color 0.2s ease;
        position: relative;
  padding: 12px 16px;
  display: block;
}

/* Effet de survol sur les liens */
.dropdown-link:hover,
      .dropdown-link.active {
        background-color: var(--highlight-bg);
        color: var(--accent);
      }

      .lang-switcher {
        margin-left: 35px;
        font-size: 13px;
        font-weight: 700;
        border-left: 1px solid var(--border-color);
        padding-left: 15px;
      }

      .lang-btn {
        background: none;
        border: none;
        cursor: pointer;
        color: var(--text-muted);
        font-weight: 600;
        padding: 0 4px;
        transition: color 0.2s ease;
      }

      .lang-btn.active {
        color: var(--accent);
      }

      
      /* Main Sections Layout */
      section {
        padding: 90px 20px;
      }

      .section-bg-light {
        padding: 30px 20px;
        background-color: var(--bg-light);
      }

      .section-container {
        max-width: 1200px;
        margin: 0 auto;
      }

      .section-header {
        text-align: center;
        margin-bottom: 20px;
        max-width: 700px;
        margin-left: auto;
        margin-right: auto;
      }

      .section-title-allown {
        font-size: 18px;
        font-weight: 600;
         text-align: center;
        color: var(--primary);
        position: relative;
      }
      .section-title-allown span {
        font-weight: 800;
        color: var(--accent);
      }

      .section-title {
        font-size: 28px;
        font-weight: 800;
        color: var(--primary);
        margin-bottom: 15px;
        position: relative;
        display: inline-block;
        padding-bottom: 12px;
      }

      .section-title span {
        color: var(--accent);
      }

      .section-title::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 60px;
        height: 3px;
        background-color: var(--accent);
      }

      .section-desc {
        text-align: center;
        margin-bottom: 40px;
        margin-top: 30px;        
        font-size: 14.5px;
        color: var(--primary);
        font-weight: 500;
      }

      @media (max-width: 768px) {
        .hero-title {
          font-size: 32px;
        }
        .nav-menu {
          display: none; /* simple for mockup focus */
        }
      }

      /* Hero Section */
      /* AVEC VIDEO */
      .herov {
        /*background: linear-gradient(180deg, rgb(255, 255, 255), transparent);*/
        background: linear-gradient(135deg, var(--primary) 0%, #171d25 100%);
        color: #ffffff;
        padding: 50px 20px;
        position: relative;
        overflow: hidden;
      }

      .herov-container {
        color: #ffffff;
          padding: 0px;
          margin: 0px;
          top: 0px;
          overflow: hidden;
          background: none;
          margin-left: -10px;
          height: 350px;
          width: 100%;
          zoom: 160%;
          position: absolute;
      }

      .herov-video {
        opacity: 20%; 
        object-fit: cover;
        margin-top: -240px;
      }
      
      /* AVEC IMAGE EN FOND */
      .heroi {
        background: linear-gradient(135deg, var(--primary) 0%, #171d25 100%);
        color: #ffffff;
        padding: 60px 20px;
        position: relative;
        overflow: hidden;
        background-repeat: no-repeat;
        background-size: cover;
        background-position: center;
      }
      
      .heroi-container {
        position: relative;
        display: flex;
        align-items:center;
        justify-content: space-between;
        gap: 40px;
        width: 100%;
        max-width: 1200px;
        min-height: 220px;
        margin: 0 auto;
      }



      /* NATURE */
      .hero {
        background: linear-gradient(135deg, var(--primary) 0%, #171d25 100%);
        color: #ffffff;
        padding: 80px 20px;
        position: relative;
        overflow: hidden;
      }

      .hero::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        width: 45%;
        height: 100%;
        background: linear-gradient(90deg, transparent, rgba(235, 0, 41, 0.05));
        border-left: 3px solid rgba(235, 0, 41, 0.3);
      }
      
      .hero-container {
        position: relative;
        align-items:center;
        justify-content: space-between;
        gap: 40px;
        width: 100%;
        max-width: 1200px;
        min-height: 120px;
        margin: 0 auto;
      }

      .hero-tagline {
        color: var(--accent);
        text-transform: uppercase;
        font-size: 14px;
        font-weight: 700;
        letter-spacing: 2px;
        margin-bottom: 15px;
      }

      .hero-title {
        font-size: 42px;
        font-weight: 800;
        line-height: 1.2;
        max-width: 850px;
        margin-bottom: 25px;
        letter-spacing: -0.5px;
      }

      .hero-subtitle {
        font-size: 18px;
        color: white;
        max-width: 700px;
        margin-bottom: 40px;
        font-weight: 400;
        line-height: 1.6;
      }

      .hero-subtitle span {
        font-weight: 700;
      }

      .btn {
        display: inline-block;
        padding: 14px 30px;
        font-size: 13px;
        font-weight: 700;
        text-transform: uppercase;
        text-align: center;
        letter-spacing: 0.5px;
        border-radius: 4px;
        text-decoration: none;
        transition: all 0.2s ease;
        cursor: pointer;
      }
      
      
      
      .btn-submit {
        display: block;
        width: 100%;
        padding: 16px;
        background-color: var(--accent);
        color: white;
        border: none;
        border-radius: 4px;
        font-size: 15px;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.5px;
        cursor: pointer;
        transition: background-color 0.2s;
        margin-top: 30px;
      }

      .btn-submit:hover {
        background-color: #ca0a22;
      }

      .btn-primary {
        background-color: var(--accent);
        color: #ffffff;
        border: 1px solid var(--accent);
        margin-right: 15px;
        box-shadow: 0 4px 15px rgba(235, 0, 41, 0.2);
      }

      .btn-primary:hover {
        background-color: var(--accent-hover);
        border-color: var(--accent-hover);
        transform: translateY(-2px);
      }

      .btn-secondary {
        background-color: var(--primary-light);
        color: #ffffff;
        border: 2px solid #ffffff;
      }

      .btn-secondary:hover {
        background-color: #ffffff;
        color: var(--primary);
        transform: translateY(-2px);
      }
      /* Section certif Banner */
      .certif-banner {
        background-color: var(--bg-light);
        border-bottom: 1px solid var(--border-color);
        padding: 30px 20px;
      }

      .certif-container {
        max-width: 1200px;
        margin: 0 auto;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 30px;
      }

      /* Sector Cards System */
      .market-grid {
        display: grid;
        grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
        gap: 30px;
      }

      @media (max-width: 768px) {
        .market-grid {
          grid-template-columns: 1fr;
        }

        .certif-container {
          flex-direction: column;
          text-align: center;
        }
      }

      .certif-badge {
        background-color: var(--accent);
        color: white;
        font-size: 18px;
        font-weight: 800;
        padding: 15px 30px;
        border-radius: 3px;
        letter-spacing: 1px;
        flex-shrink: 0;
        box-shadow: 0 4px 15px rgba(235, 0, 41, 0.2);
      }

      .certif-text {
        
        font-size: 18px;
        color: #cbd5e1;
        font-weight: 400;
        line-height: 1.6;
        max-width: 600px;
      }

      

      .feature-list {
        display: block; 
  list-style-type: square; /* Ou 'disc' selon les carrés rouges de votre image */
        color: var(--accent);
  padding-left: 20px;
      }

      .feature-list li {
        margin-bottom: 12px;
        font-size: 14.5px;
        color: var(--primary);
        font-weight: 500;
        display: list-item; 
        width: 100%;
        margin-bottom: 12px; /* Optionnel : pour espacer un peu les puces */
        text-align: left;
        align-items: flex-start;
      }

      .feature-list li::marker {
  color: var(--accent);
}
      
      .feature-list strong {
        /* On s'assure que le gras ne force pas un bloc ou un alignement flex */
        display: inline;
        margin-right: 4px; /* Un petit espace après les deux-points */
        }

      .feature-list span {
  color: var(--accent);
        }

      .cta-bar {
        background-color: var(--primary);
        background-position: center;
        color: white;
        text-align: center;
        padding: 60px 20px;
      }

      .cta-bar p {
        color: #cbd5e1;
        margin-bottom: 30px;
        font-size: 15px;
      }

      .cta-bar h3 {
        color: white;
        margin-bottom: 15px;
      }

      /* Footer */
      footer {
        background-color: #171d25;
        color: #64748b;
        padding: 40px 20px;
        text-align: center;
        font-size: 13px;
      }

      footer p {
        max-width: 1200px;
        margin: 0 auto;
      }

      
      .text-block h2 {
        font-size: 26px;
        font-weight: 800;
        color: var(--primary);
        margin-bottom: 20px;
        position: relative;
        padding-bottom: 12px;
      }

      .text-block h2::after {
        content: "";
        position: absolute;
        bottom: 0;
        left: 0;
        width: 50px;
        height: 3px;
        background-color: var(--accent);
      }

      .text-block p {
        font-size: 15px;
        color: #475569;
        margin-bottom: 20px;
        line-height: 1.7;
      }

      .text-block strong {
        color: var(--primary);
      }
      
      /* Image-Text Split Blocks */
      .section {
        padding: 80px 20px;
        max-width: 1200px;
        margin: 0 auto;
      }

      .split-block {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 50px;
        align-items: center;
        margin-bottom: 80px;
      }

      .split-block p {
        padding-top: 16px;
        padding-bottom: 16px;
        line-height: 1.6; 
      }

      
      .split-block.reverse {
        direction: rtl;
      }

      .split-block.reverse > * {
        direction: ltr;
      }

      @media (max-width: 900px) {sss
        .split-block {
          grid-template-columns: 1fr;
          gap: 30px;
          margin-bottom: 50px;
        }
        .split-block.reverse {
          direction: ltr;
        }
      }

      .split-image {
        width: 100%;
        height: 380px;
        border-radius: 8px;
        object-fit: cover;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
      }
      
      .split-image-auto {
        height: 350px;
        width: 350px;
        border-radius: 8px;
        object-fit: cover;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
      }
      
      .split-image-hauto {
        height: auto;
        width: 550px;
        border-radius: 8px;
        object-fit: cover;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
      }


      .split-content h3 {
        font-size: 22px;
        font-weight: 800;
        color: var(--primary);
        margin-bottom: 15px;
      }

      .split-content p {
        font-size: 15px;
        color: #475569;
        margin-bottom: 20px;
        line-height: 1.7;
      }
      
      
      /* Timeline Section */
      .timeline-section {
        padding: 80px 20px;
        background-color: #ffffff;
      }

      .timeline-container {
        max-width: 1000px;
        margin: 0 auto;
        position: relative;
      }

      /* Ligne verticale */
      .timeline-container::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 50px;
        width: 2px;
        background-color: var(--border-color);
      }
      

      .timeline-item {
        position: relative;
        padding-left: 120px;
        margin-bottom: 60px;
      }

      .timeline-item:last-child {
        margin-bottom: 0;
      }

      /* Le point sur la ligne */
      .timeline-dot {
        position: absolute;
        left: 35px;
        top: 0;
        width: 32px;
        height: 32px;
        border-radius: 50%;
        background-color: #ffffff;
        border: 4px solid var(--primary);
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 2;
      }

      .timeline-number {
        position: absolute;
        left: -35px;
        top: 5px;
        font-size: 16px;
        font-weight: 800;
        color: var(--text-muted);
      }

      .timeline-content {
        background-color: #ffffff;
        border: 1px solid var(--border-color);
        border-radius: 8px;
        padding: 35px;
        box-shadow: 0 4px 15px rgba(0, 0, 0, 0.02);
        transition:
          transform 0.3s ease,
          box-shadow 0.3s ease;
      }

      .flip-button {
    background: transparent;
    border: 1px solid var(--border-color);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    color: #333; /* Couleur du texte */
    border-radius: 4px;
    transition: background-color 0.3s;
    width: 190px;
    justify-content: center;
}

.timeline-front .flip-button {
  color: var(--accent);
}

      .timeline-title {
        font-size: 22px;
        font-weight: 800;
        color: var(--primary);
        margin-bottom: 15px;
      }

      .timeline-desc {
        font-size: 15px;
        color: #475569;
        line-height: 1.7;
        margin-bottom: 20px;
      }

      .tech-tags {
        display: flex;
        flex-wrap: wrap;
        gap: 10px;
        margin-top: auto;
      }

      .tech-tag {
        background-color: var(--bg-light);
        color: var(--primary);
        font-size: 12px;
        font-weight: 700;
        padding: 6px 12px;
        border-radius: 4px;
        border: 1px solid var(--border-color);
      }


      .badge-differentiator {
        background-color: var(--accent);
        color: #ffffff;
        text-align: center;
        font-size: 11px;
        font-weight: 700;
        padding: 4px 10px;
        border-radius: 4px;
        text-transform: uppercase;
        letter-spacing: 0.5px;
      }

      @media (max-width: 768px) {
        .timeline-container::before {
          left: 30px;
        }
        .timeline-dot {
          left: 15px;
        }
        .timeline-item {
          padding-left: 70px;
        }
        .timeline-number {
          display: none;
        }
        .timeline-content {
          padding: 20px;
        }
      }
      /* ==========================================================================
   REFONTE FLIP CARD - ALIGNEMENT PARFAIT DES HAUTEURS & RESPONSIVE
   ========================================================================== */

/* 1. Reset du conteneur d'origine pour accueillir l'effet 3D */
.timeline-content {
  background-color: transparent !important;
  border: none !important;
  padding: 0 !important;
  box-shadow: none !important;
  perspective: 1000px;
  transform: none !important; /* Annule l'ancienne translation */
}

.timeline-title-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* 2. Le wrapper magique en CSS Grid (égalise les hauteurs automatiquement) */
.timeline-inner {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: 1fr;
  width: 100%;
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.3s ease;
  transform-style: preserve-3d;
  border-radius: 8px;
}

/* Effet d'élévation léger au survol global de la carte */
.timeline-item:hover .timeline-inner {
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.05);
}

      .timeline-back .timeline-title {
        color: var(--accent);
        display: flex;
        align-items: center;
        gap: 15px;
        justify-content: space-between; /* Pousse le badge tout à fait à droite */
        width: 100%;
      }

/* --- REQUÊTE : FORÇAGE MANUEL DU RECTO OU VERSO ---
   Vous pouvez ajouter ces classes directement en HTML ou via JS sur ".timeline-item" */
.timeline-item.flipped .timeline-inner,
.timeline-item.force-back .timeline-inner {
  transform: rotateY(180deg) !important;
}
.timeline-item.force-front .timeline-inner {
  transform: rotateY(0deg) !important;
}

/* 4. Structure des deux faces (Recto / Verso) */
.timeline-front, 
.timeline-back {
  grid-area: 1 / 1; /* Superposition parfaite dans la même cellule de grille */
  width: 100%;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  box-sizing: border-box;
  padding: 35px;
  border-radius: 8px;
  
  /* Flexbox interne pour pousser les tags vers le bas si nécessaire */
  display: flex;
  flex-direction: column;
}

/* Face Avant (Recto) */
.timeline-front {
  background-color: var(--bg-card);
  border: 1px solid var(--border-color);
  transform: rotateY(0deg);
  z-index: 2;
}
.timeline-front .flip-button:hover {
  background-color: var(--bg-light);
}

/* Face Arrière (Verso) - Prend la hauteur exacte de la face la plus grande */
.timeline-back {
  background-color: var(--bg-light); /* Couleur de fond différente */
  border: 1px solid var(--primary);  /* Bordure différente */
  transform: rotateY(180deg);
}
.timeline-back .flip-button:hover {
  background-color: var(--bg-card);
}

/* 1. On prépare le point pour centrer la coche */
.timeline-dot {
  display: flex !important;
  align-items: center;
  justify-content: center;
  transition: background-color 0.3s ease, border-color 0.3s ease;
}

/* 2. Au survol OU quand la classe .flipped est active (au clic) : le fond devient rouge */
.timeline-item.flipped .timeline-dot,
.timeline-item.force-back .timeline-dot {
  background-color: var(--accent) !important;
  border-color: var(--accent) !important;
}

/* 3. Au survol OU quand la classe .flipped est active (au clic) : on dessine la coche BLANCHE */
.timeline-item.flipped .timeline-dot::after,
.timeline-item.force-back .timeline-dot::after {
  content: "✓" !important;
  color: #ffffff !important; /* Force la coche en blanc pur */
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1;
}

/* Annulation de la coche si le Front est explicitement forcé */
/* .timeline-item.force-front:hover .timeline-dot {
  background-color: #ffffff !important;
  border-color: var(--primary) !important;
}
.timeline-item.force-front:hover .timeline-dot::after {
  content: "" !important;
} */

/* 6. Alignement des Tech-Tags au Verso (À droite + autre couleur) */
.timeline-back .tech-tags {
  justify-content: flex-end;
  margin-top: auto; /* Pousse les tags au bas de la carte */
  padding-top: 15px;
}
.timeline-back .tech-tag {
  background-color: var(--primary);
  color: #ffffff;
  border-color: var(--primary);
}

/* 7. Adaptation responsive pour les petits écrans */
@media (max-width: 768px) {
  .timeline-front, 
  .timeline-back {
    padding: 20px; /* Respecte le padding mobile initial */
  }
}

.timeline-back .tech-tag { background-color: var(--accent); border-color: var(--accent); }