/* ============================================================
    TABLE DES MATIERES - R-SOFT
   ============================================================
   
   1. GLOBAL
      1.1 Personnalisation header
      1.2 Fond du site
      1.3 Header transparent
      1.4 Pages autres que l'accueil
      1.5 Footer
   
   2. PAGE D'ACCUEIL - SECTIONS
      2.1  Hero
      2.2  Avantages (6 cartes)
      2.3  Mot du president
      2.4  Devenir revendeur
      2.5  Cybersecurite
   
   3. RESPONSIVE
      3.1  Tablette (max-width: 1024px)
      3.2  Mobile (max-width: 576px)
   
   4. ANIMATIONS
   
   5. FOOTER
   
   6. PAGES PRODUITS
      6.1  Hero produit
      6.2  Statistiques
      6.3  Video
      6.4  Fonctionnalites
      6.5  Galerie
      6.6  Pour qui
      6.7  CTA final
      6.8  Responsive tablette
      6.9  Responsive mobile
   
   ============================================================ */

/* ============================================================
   1. MENU NAVIGATION
   ============================================================ */

/* Cacher TOUT l'ancien menu PrestaShop */
#_desktop_top_menu,
.js-top-menu,
#top-menu,
.top-menu,
._desktop_top_menu {
  display: none !important;
}

/* Cacher l'ancien burger PrestaShop */
#menu-icon,
.menu-icon,
._mobile_top_menu,
#_mobile_top_menu {
  display: none !important;
}

a.logout.hidden-sm-down {
  display: none !important;
}

/* ===== STYLE BOUTON ESPACE CLIENT ===== */

/* Style du bouton (toujours appliqué) */
.header-nav .user-info a {
  color: #1a1a1a !important;
  text-decoration: none;
  font-weight: 700;
  transition: all 0.3s ease;
}

.header-nav .user-info a:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(250, 221, 2, 0.5);
  background: linear-gradient(135deg, #e8ca00, #fadd02);
}

/* SUR DESKTOP : Juste l'icône dans le menu */
@media (min-width: 769px) {
  /* Cacher le bouton jaune */
  .header-nav .user-info {
    display: none !important;
  }
}

/* SUR MOBILE/TABLETTE : Garder le bouton jaune */
@media (max-width: 768px) {
  .header-nav .user-info a::before {
    content: "";
  }
}
/* ===== CUSTOMISATION HEADER NAV ===== */

/* Cacher uniquement le contenu de "Contactez-nous", pas la colonne */
.header-nav #_desktop_contact_link {
  visibility: hidden !important;
}

.header-nav .col-md-5 {
  display: block !important; /* Garde la colonne */
}

/* ===== MENU PRINCIPAL ===== */

.custom-menu-wrapper {
  width: 100%;
  background: transparent;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  position: relative;
  z-index: 1000;
  border-radius: 20px;
}

.custom-main-menu {
  width: 100%;
  padding: 0;
}

.menu-container {
  max-width: 1400px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center; /* Au lieu de space-between */
  height: 80px;
}

/* ===== LIENS MENU ===== */
.menu-links {
  display: flex !important;
  align-items: center;
  gap: 25px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu-item {
  position: relative;
  display: block !important;
}

.menu-link {
  display: flex !important;
  align-items: center;
  gap: 5px;
  color: #01523e !important;
  text-decoration: none;
  font-size: 0.91rem;
  font-weight: 600;
  padding: 10px 0;
  transition: color 0.3s ease;
  position: relative;
}

.menu-link::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 3px;
  background: #fadd02;
  transition: width 0.3s ease;
}

.menu-link:hover {
  color: #fadd02;
}

.menu-link:hover::after {
  width: 100%;
}

.menu-link-special {
  color: #fadd02;
  font-weight: 700;
}

.dropdown-arrow {
  transition: transform 0.3s ease;
}

.has-dropdown:hover .dropdown-arrow {
  transform: rotate(180deg);
}

/* Différencier visuellement les deux liens */

/* Espace Revendeur - Fond jaune subtil */
.menu-link-special {
  background: rgba(250, 221, 2, 0.1);
  padding: 5px 5px !important;
  border-radius: 8px;
  transition: all 0.3s ease;
}

.menu-link-special:hover {
  background: rgba(250, 221, 2, 0.2);
}

/* Espace Client - Fond vert subtil */
.menu-link-client {
  background: rgba(1, 82, 62, 0.08);
  padding: 5px 10px !important;
  border-radius: 8px;
  transition: all 0.3s ease;
}

.menu-link-client:hover {
  background: rgba(1, 82, 62, 0.15);
}

/* ===== DROPDOWN PRODUITS ===== */
.dropdown-menu-products {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 10px;
  background: white;
  border-radius: 15px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
  padding: 15px;
  min-width: 250px;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  z-index: 1001;
}

.has-dropdown:hover .dropdown-menu-products {
  opacity: 1;
  visibility: visible;
  margin-top: 0;
}

.dropdown-item-product {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 12px 15px;
  border-radius: 10px;
  text-decoration: none;
  color: #333;
  font-weight: 600;
  transition: all 0.3s ease;
}

.dropdown-item-product:hover {
  background: rgba(250, 221, 2, 0.1);
  color: #01523e;
  transform: translateX(5px);
}

.product-icon {
  width: 30px;
  height: 30px;
  object-fit: contain;
  flex-shrink: 0;
}

/* ===== BURGER MENU ===== */
.menu-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px; /* Réduit le padding */
  width: auto; /* Pas de largeur fixe */
}

.menu-burger span {
  display: block;
  width: 25px; /* Largeur des barres */
  height: 3px;
  background: #01523e;
  border-radius: 3px;
  transition: all 0.3s ease;
}

/* ===== MENU MOBILE ===== */
.mobile-menu {
  position: fixed;
  top: 0;
  right: -100%;
  width: 80%;
  max-width: 350px;
  height: 100vh;
  background: white;
  z-index: 10001;
  transition: right 0.3s ease;
  overflow-y: auto;
}

.mobile-menu.active {
  right: 0;
}

.mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: flex-end; /* Au lieu de space-between */
  padding: 20px;
  border-bottom: 2px solid #f0f0f0;
}

.mobile-menu-header img {
  height: 40px;
}

.mobile-menu-close {
  background: none;
  border: none;
  font-size: 2rem;
  color: #01523e;
  cursor: pointer;
  padding: 0;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mobile-menu-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.mobile-menu-item {
  border-bottom: 1px solid #f0f0f0;
}

.mobile-menu-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px;
  color: #01523e;
  text-decoration: none;
  font-weight: 600;
  font-size: 1rem;
  transition: background 0.3s ease;
}

.mobile-menu-link:hover {
  background: rgba(250, 221, 2, 0.1);
}

.mobile-menu-link svg {
  transition: transform 0.3s ease;
}

.mobile-menu-link.active svg {
  transform: rotate(180deg);
}

.mobile-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
  background: #f9f9f9;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease;
}

.mobile-submenu.active {
  max-height: 500px;
}

.mobile-submenu li {
  border-bottom: 1px solid #e0e0e0;
}

.mobile-submenu li:last-child {
  border-bottom: none;
}

.mobile-submenu a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px 20px 15px 40px;
  color: #333;
  text-decoration: none;
  font-weight: 500;
  transition: background 0.3s ease;
}

.mobile-submenu a:hover {
  background: rgba(250, 221, 2, 0.15);
}

.mobile-submenu img {
  width: 25px;
  height: 25px;
  object-fit: contain;
}

.mobile-menu-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: rgba(0, 0, 0, 0.5);
  z-index: 10000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

/* ===== RESPONSIVE TABLETTE (iPad) ===== */
@media (max-width: 1024px) {
  .menu-container {
    padding: 0 20px;
    height: 70px;
    justify-content: center;
  }

  .menu-links {
    display: none !important;
  }

  .menu-burger {
    display: flex !important;
    padding: 8px !important; /* Force un petit padding */
    width: auto !important; /* Pas de largeur excessive */
  }

  /* Cacher "Espace client" desktop sur tablette */
  .desktop-only {
    display: none !important;
  }

  /* Logo PrestaShop header - Taille normale sur tablette */
  #header .logo img,
  #_desktop_logo img {
    max-height: 70px !important;
    width: auto !important;
  }

  /* Logo centré sur tablette */
  #header .logo {
    padding-left: 60px;
  }

  /* Force l'affichage des logos dans le menu mobile */
  .mobile-submenu img {
    display: block !important;
    width: 25px !important;
    height: 25px !important;
    object-fit: contain !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  .mobile-submenu a {
    display: flex !important;
    align-items: center !important;
  }
}

/* ===== RESPONSIVE MOBILE ===== */
@media (max-width: 576px) {
  /* Logo PrestaShop plus petit sur mobile */
  #header .logo img,
  #_desktop_logo img {
    max-height: 50px !important;
    width: auto !important;
  }

  .menu-burger {
    display: flex !important;
    padding: 8px !important;
    width: auto !important;
  }
}

/* ============================================================
   1.1 GLOBAL - PERSONNALISATION HEADER
   ============================================================ */
.user-info a::after {
  content: "Espace client";
}

.user-info {
  margin-right: 30px;
}

.user-info a span {
  display: none;
}

.contact-link {
  display: none;
}

/* ============================================================
   1.2 GLOBAL - FOND DU SITE
   ============================================================ */
body,
html,
#wrapper,
.wrapper,
#page {
  background: #e4efeb !important;
  background-color: #e4efeb !important;
  background-attachment: fixed !important;
  min-height: 100vh;
  margin: 0;
  padding: 0;
}

/* Transparence totale page d'accueil */
body.index #wrapper,
body.index #main,
body.index .container,
body.index #content,
body.index .page-home,
body.index .page-content,
body.index section#content {
  background: transparent !important;
  background-color: transparent !important;
  padding: 0 !important;
  box-shadow: none !important;
  margin: 0 !important;
  min-height: 0 !important;
}

/* Cache le rectangle blanc */
body.index section#content.page-home {
  display: none !important;
}

/* ============================================================
   1.3 GLOBAL - HEADER TRANSPARENT
   ============================================================ */
#header {
  background-color: transparent !important;
  box-shadow: none !important;
}

#header .header-top {
  background-color: transparent !important;
}

#header,
#header a,
#header .menu a {
  color: #333 !important;
}

/* ============================================================
   1.4 GLOBAL - PAGES AUTRES QUE L'ACCUEIL
   ============================================================ */
body:not(.index) .page-content,
body:not(.index) #content {
  background-color: transparent !important;
  border-radius: 10px;
  padding: 30px;
  margin: 20px auto;
  max-width: 1200px;
}

/* ============================================================
   1.5 GLOBAL - FOOTER
   ============================================================ */
#footer {
  background-color: rgba(0, 0, 0, 0.7) !important;
  color: white !important;
  margin-top: 10px;
}

#footer a {
  color: white !important;
}

/* ============================================================
   2.1 SECTION HERO
   ============================================================ */

.hero-modern {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  min-height: 90vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 50px 60px;
  background: transparent !important;
  position: relative;
}

.hero-content {
  max-width: 1400px;
  width: 100%;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 40px;
  align-items: center;
  position: relative;
}

/* Texte a gauche */
.hero-left {
  position: relative;
  z-index: 10;
}

.hero-left h1 {
  font-size: 5rem;
  font-weight: 900;
  color: #01523e;
  line-height: 1.1;
  margin-bottom: 30px;
  letter-spacing: -2px;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  position: relative;
}

/* Effet de debordement du titre */
.hero-left h1::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 0;
  width: 150px;
  height: 6px;
  background: linear-gradient(90deg, #fadd02, transparent);
  border-radius: 3px;
}

.hero-left p {
  font-size: 1.35rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 40px;
  max-width: 550px;
  font-weight: 400;
}

/* Bouton CTA */
.btn-discover {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 45px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white !important;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(1, 82, 62, 0.3);
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.btn-discover::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.2),
    transparent
  );
  transition: left 0.5s ease;
}

.btn-discover:hover::before {
  left: 100%;
}

.btn-discover:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(1, 82, 62, 0.4);
  color: white !important;
}

/* Image a droite */
.hero-right {
  position: relative;
  z-index: 5;
}

.hero-right img {
  width: 100%;
  max-width: 650px;
  border-radius: 25px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.2);
  transform: translateX(-40px);
  transition: transform 0.5s ease;
}

.hero-right:hover img {
  transform: translateX(-40px) scale(1.02);
}

/* Badge flottant optionnel */
.hero-badge {
  display: inline-block;
  padding: 8px 20px;
  background: rgba(250, 221, 2, 0.15);
  color: #01523e;
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 50px;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 2px solid rgba(250, 221, 2, 0.3);
}

/* ============================================================
   2.2 SECTION AVANTAGES (6 CARTES)
   ============================================================ */
.features-section {
  width: 100%;
  padding: 80px 20px;
  background: transparent;
}

.features-container {
  max-width: 1400px;
  margin: 0 auto;
}

/* Header de la section */
.features-header {
  text-align: center;
  margin-bottom: 60px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

.features-header h2 {
  font-size: 2.5rem;
  font-weight: 800;
  color: #1a1a1a;
  margin-bottom: 30px;
  line-height: 1.3;
}

.features-intro {
  font-size: 1.2rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 20px;
}

.features-cta {
  font-size: 1.1rem;
  font-weight: 600;
  margin-top: 20px;
}

/* Grille des cartes */
.features-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}

/* Carte individuelle */
.feature-card {
  background: white;
  padding: 40px 30px;
  border-radius: 15px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  text-align: center;
}

.feature-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.12);
}

/* Icone */
.feature-icon {
  font-size: 3rem;
  margin-bottom: 20px;
  line-height: 1;
}

/* Titre de la carte */
.feature-card h3 {
  font-size: 1.4rem;
  font-weight: 700;
  color: #01523e;
  margin-bottom: 15px;
  line-height: 1.3;
}

/* Description */
.feature-card p {
  font-size: 1rem;
  color: #666;
  line-height: 1.7;
  margin: 0;
}

/* ============================================================
   2.3 SECTION MOT DU PRESIDENT
   ============================================================ */
.president-section {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
  position: relative;
  overflow: hidden;
}

/* Effet de fond decoratif */
.president-section::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  z-index: 0;
}

.president-container {
  max-width: 1100px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* Contenu */
.president-content {
  background: white;
  padding: 60px 70px;
  border-radius: 20px;
  position: relative;
}

/* Guillemet decoratif */
.quote-icon {
  font-size: 8rem;
  font-weight: 900;
  color: rgba(76, 175, 80, 0.15);
  line-height: 1;
  position: absolute;
  top: 20px;
  left: 30px;
  font-family: Georgia, serif;
}

/* Citation */
.president-quote {
  font-size: 1.5rem;
  color: #2c2c2c;
  line-height: 1.8;
  font-weight: 400;
  font-style: italic;
  margin: 0 0 40px 0;
  padding-left: 60px;
  position: relative;
  z-index: 1;
}

/* Info president */
.president-info {
  display: flex;
  align-items: center;
  gap: 25px;
  padding-left: 60px;
}

/* Image president */
.president-image {
  flex-shrink: 0;
}

.president-image img {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid #e18973;
  box-shadow: 0 5px 15px rgba(76, 175, 80, 0.3);
}

/* Details president */
.president-details {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.president-name {
  font-size: 1.3rem;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0;
}

.president-title {
  font-size: 1rem;
  color: #e18973;
  font-weight: 600;
  margin: 0;
}

/* ============================================================
   2.4 SECTION DEVENIR REVENDEUR
   ============================================================ */
.reseller-section {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.reseller-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* Image a gauche */
.reseller-image {
  position: relative;
}

.reseller-image img {
  width: 100%;
  max-width: 600px;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(1, 82, 62, 0.15);
  transition: transform 0.3s ease;
}

.reseller-image img:hover {
  transform: scale(1.02);
}

/* Contenu a droite */
.reseller-content {
  padding: 20px;
}

/* Badge */
.reseller-badge {
  display: inline-block;
  padding: 8px 20px;
  background: linear-gradient(135deg, #e18973, #d17860);
  color: white;
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: 50px;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Titres */
.reseller-title {
  font-size: 2.8rem;
  font-weight: 800;
  color: #01523e;
  line-height: 1.2;
  margin-bottom: 15px;
}

.reseller-subtitle {
  font-size: 1.5rem;
  font-weight: 600;
  color: #01523e;
  margin-bottom: 40px;
  line-height: 1.3;
}

/* Liste des avantages */
.reseller-benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 40px 0;
}

.reseller-benefits li {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  margin-bottom: 20px;
  font-size: 1.1rem;
  color: #333;
  line-height: 1.6;
}

/* Icone check */
.benefit-icon {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.1rem;
}

.benefit-text {
  flex: 1;
}

/* Bouton CTA */
.reseller-cta {
  display: inline-block;
  padding: 20px 45px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white !important;
  text-decoration: none;
  font-size: 1.2rem;
  font-weight: 700;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(1, 82, 62, 0.3);
  transition: all 0.3s ease;
  text-transform: none;
}

.reseller-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(1, 82, 62, 0.4);
  background: linear-gradient(135deg, #01674d, #01523e);
  color: white !important;
}

/* ============================================================
   2.5 SECTION CYBERSECURITE
   ============================================================ */
.cybersecurity-section {
  width: 100%;
  padding: 100px 20px;
  overflow: hidden;
}

.cybersecurity-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* Contenu a gauche */
.cybersecurity-content {
  padding: 20px;
}

/* Badge */
.cyber-badge {
  display: inline-block;
  padding: 8px 20px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: 50px;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* Titre */
.cyber-title {
  font-size: 2.8rem;
  font-weight: 800;
  color: #01523e;
  line-height: 1.2;
  margin-bottom: 30px;
}

/* Description */
.cyber-description {
  font-size: 1.2rem;
  color: #333;
  line-height: 1.8;
  margin-bottom: 40px;
}

/* Bouton CTA */
.cyber-cta {
  display: inline-block;
  padding: 18px 40px;
  background: linear-gradient(135deg, #e18973, #d17860);
  color: white !important;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(225, 137, 115, 0.3);
  transition: all 0.3s ease;
}

.cyber-cta:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(225, 137, 115, 0.4);
  background: linear-gradient(135deg, #d17860, #e18973);
  color: white !important;
}

/* Image a droite */
.cybersecurity-image {
  position: relative;
}

.cybersecurity-image img {
  width: 100%;
  max-width: 600px;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(1, 82, 62, 0.2);
}

/* ============================================================
   3.1 RESPONSIVE – TABLETTE UNIQUEMENT
   ============================================================ */
@media (max-width: 1024px) and (min-width: 577px) {
  /* HERO */
  .hero-modern {
    padding: 60px 40px;
    min-height: auto;
  }

  .hero-content {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 60px;
  }

  .hero-left h1 {
    font-size: 2.8rem;
    letter-spacing: -1px;
  }

  .hero-left p {
    max-width: 100%;
    font-size: 1.25rem;
  }

  .hero-left h1::after {
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
  }

  .hero-right img {
    max-width: 420px;
    transform: none;
    margin: 0 auto;
  }

  /* FEATURES */
  .features-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 30px;
  }

  .features-header h2 {
    font-size: 2.2rem;
  }

  /* PRESIDENT */
  .president-section {
    padding: 80px 30px;
  }

  .president-content {
    padding: 50px;
  }

  .president-quote {
    padding-left: 0;
    font-size: 1.35rem;
  }

  .president-info {
    padding-left: 0;
  }

  .quote-icon {
    font-size: 6rem;
    left: 20px;
  }

  /* REVENDEUR */
  .reseller-container {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .reseller-content {
    text-align: center;
  }

  .reseller-image img {
    max-width: 420px;
    margin: 0 auto;
    display: block;
  }

  .reseller-title {
    font-size: 2.3rem;
  }

  .reseller-subtitle {
    font-size: 1.3rem;
  }

  /* CYBER */
  .cybersecurity-container {
    grid-template-columns: 1fr;
    gap: 60px;
    text-align: center;
  }

  .cybersecurity-image img {
    max-width: 450px;
    margin: 0 auto;
    display: block;
  }

  .cyber-title {
    font-size: 2.3rem;
  }
}

/* ============================================================
   3.3 RESPONSIVE - MOBILE UNIQUEMENT (max-width: 576px)
   ============================================================ */
@media (max-width: 576px) {
  /* ================= HERO ================= */
  .hero-modern {
    padding: 40px 20px;
    min-height: auto;
  }

  .hero-content {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 40px;
  }

  .hero-left h1 {
    font-size: 2.2rem;
  }

  .hero-left p {
    font-size: 1rem;
    max-width: 100%;
  }

  .hero-left h1::after {
    left: 50%;
    transform: translateX(-50%);
    width: 100px;
    height: 4px;
  }

  .btn-discover {
    width: 100%;
    justify-content: center;
    padding: 16px 35px;
    font-size: 1rem;
  }

  .hero-right img {
    transform: none;
    max-width: 100%;
  }

  .hero-badge {
    font-size: 0.75rem;
    padding: 6px 16px;
  }

  /* ================= FEATURES (CAROUSEL MOBILE) ================= */
  .features-section {
    padding: 60px 0;
  }

  .features-header {
    padding: 0 20px;
    margin-bottom: 40px;
  }

  .features-header h2 {
    font-size: 1.8rem;
  }

  .features-intro,
  .features-cta {
    font-size: 1rem;
  }

  .features-grid {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding: 0 20px 20px;
    -webkit-overflow-scrolling: touch;
  }

  .features-grid::-webkit-scrollbar {
    display: none;
  }

  .feature-card {
    flex: 0 0 85%;
    min-width: 85%;
    scroll-snap-align: center;
    padding: 30px 20px;
  }

  /* ================= PRESIDENT ================= */
  .president-section {
    padding: 60px 20px;
  }

  .president-content {
    padding: 40px 30px;
  }

  .quote-icon {
    font-size: 4rem;
    top: 10px;
    left: 15px;
  }

  .president-quote {
    font-size: 1.1rem;
    padding-left: 0;
    margin-bottom: 30px;
  }

  .president-info {
    padding-left: 0;
    flex-direction: column;
    text-align: center;
    gap: 15px;
  }

  .president-image img {
    width: 70px;
    height: 70px;
  }

  .president-name {
    font-size: 1.1rem;
  }

  .president-title {
    font-size: 0.9rem;
  }

  /* ================= REVENDEUR ================= */
  .reseller-section {
    padding: 60px 20px;
  }

  .reseller-container {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .reseller-image {
    display: none;
  }

  .reseller-content {
    text-align: center;
  }

  .reseller-title {
    font-size: 1.8rem;
  }

  .reseller-subtitle {
    font-size: 1.1rem;
  }

  .reseller-benefits li {
    font-size: 1rem;
  }

  .benefit-icon {
    width: 24px;
    height: 24px;
    font-size: 0.9rem;
  }

  .reseller-cta {
    width: 100%;
    text-align: center;
    padding: 16px 35px;
    font-size: 1rem;
  }

  /* ================= CYBER ================= */
  .cybersecurity-section {
    padding: 60px 20px;
  }

  .cybersecurity-container {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
  }

  .cyber-title {
    font-size: 1.8rem;
  }

  .cyber-description {
    font-size: 1rem;
  }

  .cyber-cta {
    width: 100%;
    padding: 16px 35px;
    font-size: 1rem;
    text-align: center;
  }
}

/* ============================================================
   4. ANIMATIONS
   ============================================================ */

/* Animation depuis la gauche */
@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Animation depuis la droite */
@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* Animation depuis le bas (pour les sections completes) */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(60px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Application des animations existantes */
.fade-in-left {
  opacity: 0;
  animation: fadeInLeft 1s ease-out forwards;
  animation-delay: 0.2s;
}

.fade-in-right {
  opacity: 0;
  animation: fadeInRight 1s ease-out forwards;
  animation-delay: 0.4s;
}

/* Animation au scroll pour toutes les sections */

/* Etat initial : sections invisibles */
.scroll-fade {
  opacity: 0;
  transform: translateY(60px);
  transition:
    opacity 0.8s ease-out,
    transform 0.8s ease-out;
}

/* Etat visible : sections apparaissent */
.scroll-fade.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Variantes de delai pour un effet en cascade */
.scroll-fade:nth-of-type(1) {
  transition-delay: 0s;
}

.scroll-fade:nth-of-type(2) {
  transition-delay: 0.1s;
}

.scroll-fade:nth-of-type(3) {
  transition-delay: 0.2s;
}

.scroll-fade:nth-of-type(4) {
  transition-delay: 0.3s;
}

.scroll-fade:nth-of-type(5) {
  transition-delay: 0.4s;
}

/* ============================================================
   5. FOOTER
   ============================================================ */

.footer-modern {
  background: #01523e;
  color: white;
  margin-top: 100px;
}

/* Section principale */
.footer-main {
  padding: 80px 20px 40px;
}

.footer-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 60px;
}

/* Colonne About */
.footer-about {
  max-width: 350px;
}

.footer-logo {
  max-width: 180px;
  height: auto;
  margin-bottom: 20px;
}

.footer-description {
  font-size: 0.95rem;
  line-height: 1.7;
  color: rgba(255, 255, 255, 0.8);
  margin-bottom: 25px;
}

/* Reseaux sociaux */
.footer-social {
  display: flex;
  gap: 15px;
}

.social-link {
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  transition: all 0.3s ease;
}

.social-link:hover {
  background: #e18973;
  transform: translateY(-3px);
  color: white;
}

.social-link svg {
  width: 20px;
  height: 20px;
}

/* Titres colonnes */
.footer-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: white;
  margin-bottom: 25px;
  position: relative;
  padding-bottom: 10px;
}

.footer-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 3px;
  background: #e18973;
  border-radius: 2px;
}

/* Liens footer */
.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  margin-bottom: 12px;
}

.footer-links a {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  font-size: 0.95rem;
  transition: all 0.3s ease;
  display: inline-block;
}

.footer-links a:hover {
  color: white;
  padding-left: 5px;
}

/* Contact */
.footer-contact {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-contact li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 15px;
  color: rgba(255, 255, 255, 0.8);
  font-size: 0.95rem;
  line-height: 1.6;
}

.footer-contact svg {
  flex-shrink: 0;
  margin-top: 2px;
  opacity: 0.7;
}

/* Barre du bas */
.footer-bottom {
  background: rgba(0, 0, 0, 0.2);
  padding: 25px 20px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-bottom-content {
  max-width: 1400px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}

.footer-copyright {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.9rem;
}

.footer-legal {
  display: flex;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
}

.footer-legal a {
  color: rgba(255, 255, 255, 0.7);
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.3s ease;
}

.footer-legal a:hover {
  color: white;
}

.footer-legal .separator {
  color: rgba(255, 255, 255, 0.3);
}

/* Responsive tablette */
@media (max-width: 1024px) {
  .footer-container {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }

  .footer-about {
    max-width: 100%;
  }
}

/* Responsive mobile */
@media (max-width: 576px) {
  .footer-main {
    padding: 60px 20px 30px;
  }

  .footer-container {
    grid-template-columns: 1fr;
    gap: 40px;
    text-align: center;
  }

  .footer-about {
    max-width: 100%;
  }

  .footer-logo {
    margin: 0 auto 20px;
  }

  .footer-social {
    justify-content: center;
  }

  .footer-title::after {
    left: 50%;
    transform: translateX(-50%);
  }

  .footer-contact li {
    justify-content: center;
    text-align: left;
  }

  .footer-bottom-content {
    flex-direction: column;
    text-align: center;
  }

  .footer-legal {
    justify-content: center;
  }
}

/* ============================================================
   7. PAGE CONTACT
   ============================================================ */

.contact-page-wrapper {
  background: transparent;
}

/* ===== HERO CONTACT ===== */
.contact-hero {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 30px 20px;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.03),
    rgba(228, 239, 235, 0.5)
  );
  text-align: center;
}

.contact-hero-container {
  max-width: 800px;
  margin: 0 auto;
}

.contact-main-title {
  font-size: 3rem;
  font-weight: 900;
  color: #01523e;
  margin-bottom: 20px;
  line-height: 1.2;
}

.contact-subtitle {
  font-size: 1.3rem;
  color: #555;
  line-height: 1.7;
}

/* ===== CONTENU (FORMULAIRE + INFOS) ===== */
.contact-content {
  width: 100%;
  padding: 80px 20px;
  background: white;
}

.contact-content-container {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 60px;
}

.contact-section-title {
  font-size: 1.8rem;
  font-weight: 700;
  color: #01523e;
  margin-bottom: 30px;
}

/* Alertes succes/erreur */
.alert {
  padding: 15px 20px;
  border-radius: 8px;
  margin-bottom: 25px;
  font-size: 1rem;
  font-weight: 600;
}

.alert-success {
  background: #d4edda;
  color: #155724;
  border: 2px solid #c3e6cb;
}

.alert-danger {
  background: #f8d7da;
  color: #721c24;
  border: 2px solid #f5c6cb;
}

/* ===== FORMULAIRE ===== */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.form-group label {
  font-size: 0.95rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 8px;
}

.form-group input,
.form-group select,
.form-group textarea {
  padding: 12px 15px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 1rem;
  font-family: inherit;
  transition: all 0.3s ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: #01523e;
  box-shadow: 0 0 0 3px rgba(1, 82, 62, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 120px;
}

/* Checkbox RGPD */
.form-group-checkbox {
  margin-top: 10px;
}

.checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 0.9rem;
  color: #666;
  cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
  margin-top: 3px;
  cursor: pointer;
}

.checkbox-label a {
  color: #01523e;
  text-decoration: underline;
}

/* Bouton submit */
.btn-contact-submit {
  padding: 16px 40px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  border: none;
  border-radius: 50px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 30px rgba(1, 82, 62, 0.3);
  align-self: flex-start;
}

.btn-contact-submit:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(1, 82, 62, 0.4);
}

/* ===== INFORMATIONS ===== */
.contact-info-wrapper {
  background: #f9f9f9;
  padding: 40px 30px;
  border-radius: 15px;
}

.info-block {
  margin-bottom: 30px;
}

.info-block:last-child {
  margin-bottom: 0;
}

.info-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.2rem;
  font-weight: 700;
  color: #01523e;
  margin-bottom: 10px;
}

.info-title svg {
  color: #e18973;
}

.info-text {
  font-size: 1rem;
  color: #555;
  line-height: 1.7;
  margin: 0;
}

.info-text a {
  color: #01523e;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s ease;
}

.info-text a:hover {
  color: #e18973;
}

/* ===== AGENCES (GOOGLE MAPS) ===== */
.contact-agencies {
  width: 100%;
  padding: 80px 20px;
  background: transparent;
}

.contact-agencies-container {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.agencies-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  margin-top: 50px;
}

.agency-card {
  background: white;
  padding: 30px;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.agency-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
}

.agency-name {
  font-size: 1.5rem;
  font-weight: 700;
  color: #01523e;
  margin-bottom: 15px;
}

.agency-address {
  font-size: 1rem;
  color: #666;
  line-height: 1.7;
  margin-bottom: 20px;
}

.agency-map {
  border-radius: 10px;
  overflow: hidden;
}

.agency-map iframe {
  display: block;
}

/* ===== RESPONSIVE TABLETTE ===== */
@media (max-width: 1024px) {
  .contact-content-container {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .agencies-grid {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* ===== RESPONSIVE MOBILE ===== */
@media (max-width: 576px) {
  .contact-hero {
    padding: 50px 20px;
  }

  .contact-main-title {
    font-size: 2rem;
  }

  .contact-subtitle {
    font-size: 1.1rem;
  }

  .contact-content {
    padding: 50px 20px;
  }

  .contact-section-title {
    font-size: 1.5rem;
  }

  .form-row {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .btn-contact-submit {
    width: 100%;
  }

  .contact-info-wrapper {
    padding: 30px 20px;
  }

  .contact-agencies {
    padding: 50px 20px;
  }
}

/* ===== INTRODUCTION CONTACT ===== */
.contact-intro {
  width: 100%;
  padding: 60px 20px;
}

.contact-intro-container {
  max-width: 900px;
  margin: 0 auto;
  text-align: center;
}

.intro-text {
  font-size: 1.1rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 20px;
}

.intro-text strong {
  color: #01523e;
  font-weight: 700;
}

.intro-cta {
  font-size: 1.2rem;
  font-weight: 700;
  color: #01523e;
  margin-top: 30px;
  margin-bottom: 0;
}

/* Responsive mobile */
@media (max-width: 576px) {
  .contact-intro {
    padding: 40px 20px;
  }

  .intro-text {
    font-size: 1rem;
  }

  .intro-cta {
    font-size: 1.1rem;
  }
}

/* ============================================================
   8. PAGE DEMO EN LIGNE
   ============================================================ */

.demo-page-wrapper {
  background: transparent;
}

/* ===== HERO DEMO ===== */
.demo-hero {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 120px 20px 80px;
  background: linear-gradient(135deg, #01523e 0%, #01674d 100%);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.demo-hero::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -20%;
  width: 800px;
  height: 800px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.1) 0%,
    transparent 70%
  );
  border-radius: 50%;
}

.demo-hero-container {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.demo-hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 25px;
  background: rgba(250, 221, 2, 0.2);
  color: #fadd02;
  font-size: 0.9rem;
  font-weight: 700;
  border-radius: 50px;
  margin-bottom: 30px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.demo-hero-badge svg {
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%,
  100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
  }
}

.demo-main-title {
  font-size: 3.5rem;
  font-weight: 900;
  color: white;
  line-height: 1.2;
  margin-bottom: 25px;
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.demo-subtitle {
  font-size: 1.4rem;
  color: rgba(255, 255, 255, 0.9);
  line-height: 1.7;
  margin: 0;
}

/* ===== WEBINAIRE + IMAGE ===== */
.demo-webinar {
  width: 100%;
  padding: 100px 20px;
  background: white;
}

.demo-webinar-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

/* Contenu gauche */
.webinar-content {
  padding: 20px;
}

.webinar-title {
  font-size: 2.8rem;
  font-weight: 800;
  color: #01523e;
  line-height: 1.2;
  margin-bottom: 30px;
}

.webinar-text p {
  font-size: 1.1rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 20px;
}

.webinar-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 40px;
}

.webinar-feature {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1rem;
  color: #333;
  font-weight: 600;
}

.webinar-feature svg {
  flex-shrink: 0;
  color: #01523e;
}

/* Image droite */
.webinar-image {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.webinar-image img {
  width: 100%;
  height: auto;
  display: block;
}

.webinar-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.3),
    rgba(1, 103, 77, 0.3)
  );
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.webinar-image:hover .webinar-image-overlay {
  opacity: 1;
}

.overlay-icon {
  transform: scale(0.8);
  transition: transform 0.3s ease;
}

.webinar-image:hover .overlay-icon {
  transform: scale(1);
}

/* ===== FORMULAIRE ===== */
.demo-form-section {
  width: 100%;
  padding: 100px 20px;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.02),
    rgba(228, 239, 235, 0.3)
  );
}

.demo-form-container {
  max-width: 900px;
  margin: 0 auto;
  background: white;
  padding: 60px;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
}

.form-header {
  text-align: center;
  margin-bottom: 50px;
}

.form-title {
  font-size: 2.5rem;
  font-weight: 800;
  color: #01523e;
  margin-bottom: 15px;
}

.form-description {
  font-size: 1.1rem;
  color: #666;
  line-height: 1.7;
  margin: 0;
}

/* Alertes */
.alert {
  padding: 15px 20px;
  border-radius: 10px;
  margin-bottom: 30px;
  font-size: 1rem;
  font-weight: 600;
}

.alert-success {
  background: #d4edda;
  color: #155724;
  border: 2px solid #c3e6cb;
}

.alert-danger {
  background: #f8d7da;
  color: #721c24;
  border: 2px solid #f5c6cb;
}

/* Grille formulaire */
.demo-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.form-group label {
  font-size: 0.95rem;
  font-weight: 600;
  color: #333;
  margin-bottom: 8px;
}

.form-group input,
.form-group select {
  padding: 14px 18px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  font-size: 1rem;
  font-family: inherit;
  transition: all 0.3s ease;
}

.form-group input:focus,
.form-group select:focus {
  outline: none;
  border-color: #01523e;
  box-shadow: 0 0 0 4px rgba(1, 82, 62, 0.1);
}

/* Checkbox */
.form-group-checkbox {
  margin-top: 10px;
}

.checkbox-label {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 0.95rem;
  color: #666;
  cursor: pointer;
}

.checkbox-label input[type="checkbox"] {
  margin-top: 3px;
  cursor: pointer;
  width: 18px;
  height: 18px;
}

.checkbox-label a {
  color: #01523e;
  text-decoration: underline;
}

/* Bouton submit */
.btn-demo-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 18px 50px;
  background: linear-gradient(135deg, #fadd02, #e8ca00);
  color: #1a1a1a;
  border: none;
  border-radius: 50px;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 10px 30px rgba(250, 221, 2, 0.3);
  margin-top: 20px;
}

.btn-demo-submit:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(250, 221, 2, 0.5);
  background: linear-gradient(135deg, #e8ca00, #fadd02);
}

.btn-demo-submit svg {
  transition: transform 0.3s ease;
}

.btn-demo-submit:hover svg {
  transform: translateX(5px);
}

/* ===== CTA FINAL ===== */
.demo-cta-final {
  width: 100%;
  padding: 80px 20px;
  background: white;
  text-align: center;
}

.demo-cta-container {
  max-width: 700px;
  margin: 0 auto;
}

.cta-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 30px;
  background: rgba(1, 82, 62, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cta-icon svg {
  color: #01523e;
}

.cta-title {
  font-size: 2.2rem;
  font-weight: 800;
  color: #01523e;
  margin-bottom: 15px;
}

.cta-text {
  font-size: 1.1rem;
  color: #666;
  margin-bottom: 30px;
}

.cta-contact {
  display: flex;
  justify-content: center;
  gap: 30px;
  flex-wrap: wrap;
}

.cta-phone,
.cta-email {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 30px;
  background: rgba(1, 82, 62, 0.05);
  color: #01523e;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: 50px;
  transition: all 0.3s ease;
}

.cta-phone:hover,
.cta-email:hover {
  background: #01523e;
  color: white;
  transform: translateY(-3px);
  box-shadow: 0 10px 30px rgba(1, 82, 62, 0.2);
}

.cta-phone svg,
.cta-email svg {
  flex-shrink: 0;
}

/* ===== RESPONSIVE TABLETTE ===== */
@media (max-width: 1024px) {
  .demo-main-title {
    font-size: 2.8rem;
  }

  .demo-webinar-container {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .webinar-title {
    font-size: 2.2rem;
  }

  .webinar-features {
    grid-template-columns: 1fr;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== RESPONSIVE MOBILE ===== */
@media (max-width: 576px) {
  .demo-hero {
    padding: 80px 20px 60px;
  }

  .demo-main-title {
    font-size: 2rem;
  }

  .demo-subtitle {
    font-size: 1.1rem;
  }

  .demo-webinar {
    padding: 60px 20px;
  }

  .webinar-title {
    font-size: 1.8rem;
  }

  .webinar-text p {
    font-size: 1rem;
  }

  .webinar-features {
    margin-top: 30px;
  }

  .demo-form-section {
    padding: 60px 20px;
  }

  .demo-form-container {
    padding: 40px 25px;
  }

  .form-title {
    font-size: 1.8rem;
  }

  .form-description {
    font-size: 1rem;
  }

  .btn-demo-submit {
    width: 100%;
    padding: 16px 30px;
    font-size: 1.1rem;
  }

  .demo-cta-final {
    padding: 60px 20px;
  }

  .cta-title {
    font-size: 1.8rem;
  }

  .cta-text {
    font-size: 1rem;
  }

  .cta-contact {
    flex-direction: column;
    gap: 15px;
  }

  .cta-phone,
  .cta-email {
    width: 100%;
    justify-content: center;
  }
}

/* ============================================================
   9. PAGE QUI SOMMES-NOUS
   ============================================================ */

.about-page-wrapper {
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.03),
    rgba(228, 239, 235, 0.5)
  );
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 0;
}

/* Cercle flottant 1 */
.about-page-wrapper::before {
  content: "";
  position: absolute;
  top: 100px;
  left: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.15) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float-1 8s ease-in-out infinite;
  z-index: 0;
}

/* Cercle flottant 2 */
.about-page-wrapper::after {
  content: "";
  position: absolute;
  top: 800px;
  right: -150px;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    rgba(1, 82, 62, 0.08) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float-2 10s ease-in-out infinite;
  z-index: 0;
}

@keyframes float-1 {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(30px, -30px) scale(1.1);
  }
}

@keyframes float-2 {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(-40px, 40px) scale(1.08);
  }
}

/* Cercle flottant 3 (milieu de page) */
.about-page-wrapper > section:nth-child(3)::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 400px;
  height: 400px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.1) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float-3 12s ease-in-out infinite;
  z-index: 0;
  pointer-events: none;
}

@keyframes float-3 {
  0%,
  100% {
    transform: translate(-50%, -50%) scale(1);
  }
  50% {
    transform: translate(-45%, -55%) scale(1.15);
  }
}

/* ===== HERO ===== */
.about-hero {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 120px 20px 80px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.about-hero::before {
  content: "";
  position: absolute;
  top: -100px;
  left: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.1) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float 6s ease-in-out infinite;
}

.about-hero::after {
  content: "";
  position: absolute;
  bottom: -150px;
  right: -150px;
  width: 500px;
  height: 500px;
  background: radial-gradient(
    circle,
    rgba(1, 82, 62, 0.05) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float 8s ease-in-out infinite;
}

@keyframes float {
  0%,
  100% {
    transform: translateY(0) scale(1);
  }
  50% {
    transform: translateY(-20px) scale(1.05);
  }
}

.about-hero-container {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.hero-badge-about {
  display: inline-block;
  padding: 8px 20px;
  background: rgba(250, 221, 2, 0.15);
  color: #01523e;
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 50px;
  margin-bottom: 25px;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 2px solid rgba(250, 221, 2, 0.3);
}

.about-main-title {
  font-size: 6rem;
  font-weight: 900;
  color: #01523e;
  line-height: 1;
  margin-bottom: 20px;
  letter-spacing: -3px;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

.title-underline {
  width: 120px;
  height: 6px;
  background: linear-gradient(90deg, #fadd02, #e8ca00);
  margin: 0 auto 35px;
  border-radius: 3px;
  animation: pulse-width 2s ease-in-out infinite;
}

@keyframes pulse-width {
  0%,
  100% {
    width: 120px;
  }
  50% {
    width: 160px;
  }
}

.about-hero-text {
  font-size: 1.4rem;
  color: #555;
  line-height: 1.8;
  max-width: 700px;
  margin: 0 auto;
}

/* ===== IMAGE PRESENTATION ===== */
.about-presentation {
  width: 100%;
  padding: 80px 20px;
}

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

.presentation-image-wrapper {
  position: relative;
  border-radius: 25px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.15);
}

.presentation-image {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.5s ease;
}

.presentation-image-wrapper:hover .presentation-image {
  transform: scale(1.05);
}

.image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.1),
    rgba(1, 103, 77, 0.05)
  );
  pointer-events: none;
}

.overlay-shape {
  position: absolute;
  bottom: -50px;
  right: -50px;
  width: 300px;
  height: 300px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.2) 0%,
    transparent 70%
  );
  border-radius: 50%;
}

/* ===== MOT DU PRESIDENT ===== */
.about-president {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.about-president-container {
  max-width: 1000px;
  margin: 0 auto;
}

.president-card {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 60px;
  border-radius: 25px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  position: relative;
  border: 1px solid rgba(255, 255, 255, 0.3);
}

.quote-mark {
  position: absolute;
  top: 30px;
  left: 40px;
  font-size: 10rem;
  font-weight: 900;
  color: rgba(250, 221, 2, 0.15);
  line-height: 1;
  font-family: Georgia, serif;
  z-index: 0;
}

.president-content-wrapper {
  position: relative;
  z-index: 1;
}

.president-quote-text {
  font-size: 1.5rem;
  color: #333;
  line-height: 1.8;
  font-style: italic;
  margin-bottom: 40px;
  padding-left: 40px;
}

.president-signature {
  display: flex;
  align-items: center;
  gap: 25px;
  padding-left: 40px;
}

.president-photo {
  position: relative;
  flex-shrink: 0;
}

.president-photo img {
  width: 90px;
  height: 90px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid #fadd02;
  position: relative;
  z-index: 1;
}

.photo-border {
  position: absolute;
  top: -5px;
  left: -5px;
  right: -5px;
  bottom: -5px;
  border: 2px solid rgba(1, 82, 62, 0.2);
  border-radius: 50%;
  animation: rotate-border 10s linear infinite;
}

@keyframes rotate-border {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.president-info {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.president-name {
  font-size: 1.4rem;
  font-weight: 700;
  color: #01523e;
}

.president-role {
  font-size: 1rem;
  color: #666;
  font-weight: 500;
}

/* ===== VALEURS ===== */
.about-values {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.about-values-container {
  max-width: 1400px;
  margin: 0 auto;
}

.values-header {
  text-align: center;
  margin-bottom: 60px;
}

.section-title-about {
  font-size: 3rem;
  font-weight: 800;
  color: #01523e;
  line-height: 1.2;
  position: relative;
  display: inline-block;
}

.section-title-about::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 5px;
  background: linear-gradient(90deg, #fadd02, transparent);
  border-radius: 3px;
}

.values-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.value-card {
  background: rgba(255, 255, 255, 0.6);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 50px 35px;
  border-radius: 20px;
  text-align: center;
  transition: all 0.3s ease;
  border: 1px solid rgba(255, 255, 255, 0.4);
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
}

.value-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(250, 221, 2, 0.05),
    transparent
  );
  transition: left 0.5s ease;
}

.value-card:hover::before {
  left: 100%;
}

.value-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
  background: rgba(255, 255, 255, 0.8);
  border-color: rgba(250, 221, 2, 0.5);
}

.value-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 25px;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.1),
    rgba(250, 221, 2, 0.1)
  );
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
}

.value-card:hover .value-icon {
  transform: rotateY(360deg);
}

.value-icon svg {
  color: #01523e;
}

.value-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #01523e;
  margin-bottom: 15px;
}

.value-description {
  font-size: 1rem;
  color: #666;
  line-height: 1.7;
  margin: 0;
}

/* ===== ENGAGEMENT CLIENT ===== */
.about-commitment {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.about-commitment-container {
  max-width: 900px;
  margin: 0 auto;
}

.commitment-content {
  background: rgba(255, 255, 255, 0.5);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  padding: 60px 50px;
  border-radius: 25px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.3);
  text-align: center;
}

.commitment-icon {
  width: 100px;
  height: 100px;
  margin: 0 auto 30px;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.1),
    rgba(250, 221, 2, 0.1)
  );
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.commitment-icon svg {
  color: #01523e;
}

.commitment-title {
  font-size: 2.5rem;
  font-weight: 800;
  color: #01523e;
  margin-bottom: 25px;
}

.commitment-text {
  font-size: 1.2rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 40px;
}

.commitment-features {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
}

.commitment-feature {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1rem;
  color: #333;
  font-weight: 600;
}

.commitment-feature svg {
  color: #01523e;
  flex-shrink: 0;
}

/* ===== CTA FINAL ===== */
.about-cta {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 100px 20px;
  background: linear-gradient(135deg, #01523e, #01674d);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.about-cta::before {
  content: "";
  position: absolute;
  top: -200px;
  right: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.1) 0%,
    transparent 70%
  );
  border-radius: 50%;
}

.about-cta-container {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.cta-title-about {
  font-size: 3rem;
  font-weight: 900;
  color: white;
  margin-bottom: 20px;
  line-height: 1.2;
}

.cta-subtitle-about {
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 40px;
  line-height: 1.7;
}

.cta-buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.btn-cta-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 45px;
  background: #fadd02;
  color: #1a1a1a !important;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(250, 221, 2, 0.3);
  transition: all 0.3s ease;
}

.btn-cta-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(250, 221, 2, 0.5);
  background: #e8ca00;
  color: #1a1a1a !important;
}

.btn-cta-secondary {
  display: inline-block;
  padding: 20px 45px;
  background: transparent;
  color: white !important;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 50px;
  border: 2px solid white;
  transition: all 0.3s ease;
}

.btn-cta-secondary:hover {
  background: white;
  color: #01523e !important;
}

/* ===== RESPONSIVE TABLETTE + MOBILE (max-width: 1024px) ===== */
@media (max-width: 1024px) {
  .about-hero {
    padding: 80px 20px 60px;
  }

  .about-main-title {
    font-size: 3.5rem;
    letter-spacing: -2px;
  }

  .title-underline {
    width: 100px;
    height: 5px;
  }

  .about-hero-text {
    font-size: 1.2rem;
  }

  .about-presentation {
    padding: 60px 20px;
  }

  .about-president {
    padding: 60px 20px;
  }

  .president-card {
    padding: 40px 30px;
  }

  .quote-mark {
    font-size: 7rem;
    top: 20px;
    left: 20px;
  }

  .president-quote-text {
    font-size: 1.3rem;
    padding-left: 25px;
  }

  .president-signature {
    padding-left: 25px;
    flex-direction: column;
    text-align: center;
  }

  .president-photo img {
    width: 90px;
    height: 90px;
  }

  .about-values {
    padding: 60px 20px;
  }

  .section-title-about {
    font-size: 2.2rem;
  }

  .value-card {
    padding: 40px 30px;
  }

  .about-commitment {
    padding: 60px 20px;
  }

  .commitment-content {
    padding: 40px 30px;
  }

  .commitment-title {
    font-size: 2rem;
  }

  .commitment-text {
    font-size: 1.1rem;
  }

  .about-cta {
    padding: 60px 20px;
  }

  .cta-title-about {
    font-size: 2.2rem;
  }

  .cta-subtitle-about {
    font-size: 1.2rem;
  }

  .cta-buttons {
    flex-direction: column;
  }

  .btn-cta-primary,
  .btn-cta-secondary {
    width: 100%;
    justify-content: center;
  }
}

/* ===== RESPONSIVE MOBILE UNIQUEMENT (max-width: 576px) ===== */
@media (max-width: 576px) {
  .about-hero {
    padding: 70px 20px 50px;
  }

  .about-main-title {
    font-size: 3rem;
  }

  .title-underline {
    width: 80px;
    height: 4px;
  }

  .about-hero-text {
    font-size: 1.1rem;
  }

  .about-presentation,
  .about-president,
  .about-values,
  .about-commitment,
  .about-cta {
    padding: 50px 20px;
  }

  .president-card {
    padding: 35px 25px;
  }

  .quote-mark {
    font-size: 6rem;
  }

  .president-quote-text {
    font-size: 1.2rem;
    padding-left: 20px;
  }

  .president-signature {
    padding-left: 20px;
  }

  .president-photo img {
    width: 80px;
    height: 80px;
  }

  .section-title-about {
    font-size: 2rem;
  }

  .value-card {
    padding: 35px 25px;
  }

  .commitment-content {
    padding: 35px 25px;
  }

  .commitment-title {
    font-size: 1.8rem;
  }

  .commitment-text {
    font-size: 1rem;
  }

  .cta-title-about {
    font-size: 2rem;
  }

  .cta-subtitle-about {
    font-size: 1.1rem;
  }
}

/* ============================================================
   10. PAGE NOS PRODUITS (HUB)
   ============================================================ */

.products-hub-wrapper {
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.03),
    rgba(228, 239, 235, 0.5)
  );
  min-height: 100vh;
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 0;
  position: relative;
  overflow: hidden;
}

/* Cercles flottants sur toute la page */
.products-hub-wrapper::before {
  content: "";
  position: absolute;
  top: 150px;
  left: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.15) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float-hub-1 8s ease-in-out infinite;
  z-index: 0;
}

.products-hub-wrapper::after {
  content: "";
  position: absolute;
  top: 700px;
  right: -150px;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    rgba(1, 82, 62, 0.08) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float-hub-2 10s ease-in-out infinite;
  z-index: 0;
}

@keyframes float-hub-1 {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(30px, -30px) scale(1.1);
  }
}

@keyframes float-hub-2 {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(-40px, 40px) scale(1.08);
  }
}

/* Assurer que les sections sont au-dessus */
.products-hub-wrapper > section {
  position: relative;
  z-index: 1;
}

/* ===== HERO ===== */
.products-hub-hero {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 100px 20px 50px;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.products-hub-hero::before {
  content: "";
  position: absolute;
  top: -100px;
  right: -100px;
  width: 400px;
  height: 400px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.12) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float 6s ease-in-out infinite;
}

.products-hub-hero-container {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.hero-badge-products {
  display: inline-block;
  padding: 8px 20px;
  background: rgba(250, 221, 2, 0.15);
  color: #01523e;
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 50px;
  margin-bottom: 25px;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 2px solid rgba(250, 221, 2, 0.3);
}

.products-hub-title {
  font-size: 4.5rem;
  font-weight: 900;
  color: #01523e;
  line-height: 1.1;
  margin-bottom: 20px;
  letter-spacing: -2px;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

.title-underline-products {
  width: 120px;
  height: 6px;
  background: linear-gradient(90deg, #fadd02, #e8ca00);
  margin: 0 auto 35px;
  border-radius: 3px;
}

.products-hub-subtitle {
  font-size: 1.3rem;
  color: #555;
  line-height: 1.8;
  max-width: 700px;
  margin: 0 auto;
}

/* ===== GRILLE DES PRODUITS ===== */
.products-grid-section {
  width: 100%;
  padding: 80px 20px;
}

.products-grid-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
  gap: 40px;
}

/* ===== CARTE PRODUIT ===== */
.product-card {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border-radius: 20px;
  overflow: hidden;
  transition: all 0.4s ease;
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  display: flex;
  flex-direction: column;
  position: relative;
}

.product-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(250, 221, 2, 0.08),
    transparent
  );
  transition: left 0.6s ease;
  z-index: 1;
}

.product-card:hover::before {
  left: 100%;
}

.product-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
  border-color: rgba(250, 221, 2, 0.5);
  background: rgba(255, 255, 255, 0.85);
}

/* Image */
.product-card-image {
  position: relative;
  width: 100%;
  height: 250px;
  overflow: hidden;
}

.product-card-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: transform 0.5s ease;
}

.product-card:hover .product-card-image img {
  transform: scale(1.1);
}

.card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.7),
    rgba(1, 103, 77, 0.5)
  );
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.product-card:hover .card-overlay {
  opacity: 1;
}

.overlay-text {
  color: white;
  font-size: 1.3rem;
  font-weight: 700;
  transform: translateY(20px);
  transition: transform 0.3s ease;
}

.product-card:hover .overlay-text {
  transform: translateY(0);
}

/* Contenu */
.product-card-content {
  padding: 30px;
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  position: relative;
  z-index: 2;
}

.product-badge-card {
  display: inline-block;
  padding: 6px 16px;
  background: rgba(250, 221, 2, 0.15);
  color: #01523e;
  font-size: 0.8rem;
  font-weight: 700;
  border-radius: 50px;
  margin-bottom: 15px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  align-self: flex-start;
  border: 1px solid rgba(250, 221, 2, 0.3);
}

.product-card-title {
  font-size: 2rem;
  font-weight: 900;
  color: #01523e;
  margin-bottom: 15px;
  line-height: 1.2;
  letter-spacing: -1px;
}

.product-card-description {
  font-size: 1rem;
  color: #666;
  line-height: 1.7;
  margin-bottom: 25px;
  flex-grow: 1;
}

.product-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 20px;
  border-top: 2px solid rgba(1, 82, 62, 0.1);
}

.card-link {
  font-size: 1rem;
  font-weight: 700;
  color: #01523e;
  transition: color 0.3s ease;
}

.product-card:hover .card-link {
  color: #fadd02;
}

.product-card-footer svg {
  color: #01523e;
  transition: all 0.3s ease;
}

.product-card:hover .product-card-footer svg {
  color: #fadd02;
  transform: translateX(5px);
}

/* ===== CTA FINAL ===== */
.products-hub-cta {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 100px 20px;
  background: linear-gradient(135deg, #01523e, #01674d);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.products-hub-cta::before {
  content: "";
  position: absolute;
  top: -200px;
  left: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.1) 0%,
    transparent 70%
  );
  border-radius: 50%;
}

.products-hub-cta-container {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.cta-icon-hub {
  width: 100px;
  height: 100px;
  margin: 0 auto 30px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgba(255, 255, 255, 0.2);
}

.cta-icon-hub svg {
  color: white;
}

.cta-title-hub {
  font-size: 3rem;
  font-weight: 900;
  color: white;
  margin-bottom: 20px;
  line-height: 1.2;
}

.cta-text-hub {
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 40px;
  line-height: 1.7;
}

.cta-buttons-hub {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.btn-hub-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 20px 45px;
  background: #fadd02;
  color: #1a1a1a !important;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(250, 221, 2, 0.3);
  transition: all 0.3s ease;
}

.btn-hub-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(250, 221, 2, 0.5);
  background: #e8ca00;
  color: #1a1a1a !important;
}

.btn-hub-secondary {
  display: inline-block;
  padding: 20px 45px;
  background: transparent;
  color: white !important;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 50px;
  border: 2px solid white;
  transition: all 0.3s ease;
}

.btn-hub-secondary:hover {
  background: white;
  color: #01523e !important;
}

/* ===== RESPONSIVE TABLETTE + MOBILE (max-width: 1024px) ===== */
@media (max-width: 1024px) {
  .products-hub-hero {
    padding: 70px 20px 60px;
  }

  .products-hub-title {
    font-size: 3.5rem;
    letter-spacing: -2px;
  }

  .title-underline-products {
    width: 100px;
    height: 5px;
  }

  .products-hub-subtitle {
    font-size: 1.2rem;
  }

  .products-grid-section {
    padding: 60px 20px;
  }

  .products-grid-container {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .product-card-image {
    height: 220px;
  }

  .product-card-content {
    padding: 30px 25px;
  }

  .product-card-title {
    font-size: 1.8rem;
  }

  .product-card-description {
    font-size: 1rem;
  }

  .products-hub-cta {
    padding: 60px 20px;
  }

  .cta-title-hub {
    font-size: 2.2rem;
  }

  .cta-text-hub {
    font-size: 1.2rem;
  }

  .cta-buttons-hub {
    flex-direction: column;
  }

  .btn-hub-primary,
  .btn-hub-secondary {
    width: 100%;
    justify-content: center;
  }
}

/* ===== RESPONSIVE MOBILE UNIQUEMENT (max-width: 576px) ===== */
@media (max-width: 576px) {
  .products-hub-hero {
    padding: 60px 20px 50px;
  }

  .products-hub-title {
    font-size: 2.5rem;
    letter-spacing: -1px;
  }

  .title-underline-products {
    width: 80px;
    height: 4px;
  }

  .products-hub-subtitle {
    font-size: 1.1rem;
  }

  .products-grid-section {
    padding: 50px 20px;
  }

  .products-grid-container {
    gap: 25px;
  }

  .product-card-image {
    height: 200px;
  }

  .product-card-content {
    padding: 25px 20px;
  }

  .product-card-title {
    font-size: 1.6rem;
  }

  .product-card-description {
    font-size: 0.95rem;
  }

  .products-hub-cta {
    padding: 50px 20px;
  }

  .cta-title-hub {
    font-size: 2rem;
  }

  .cta-text-hub {
    font-size: 1.1rem;
  }
}

/* ============================================================
   11. PAGES PRODUITS (NEWCOMPTA, NEWFACT, NEWXPERT, NEWCAISSE, NEWGED)
   ============================================================ */

/* ===== WRAPPER ===== */
.newcompta-page-wrapper,
.newfact-page-wrapper,
.newxpert-page-wrapper,
.newcaisse-page-wrapper,
.newged-page-wrapper {
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.03),
    rgba(228, 239, 235, 0.5)
  );
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 0;
  position: relative;
  overflow: hidden;
  min-height: 100vh;
}

/* Cercles flottants */
.newcompta-page-wrapper::before,
.newfact-page-wrapper::before,
.newxpert-page-wrapper::before,
.newcaisse-page-wrapper::before,
.newged-page-wrapper::before {
  content: "";
  position: absolute;
  top: 200px;
  left: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.12) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float-product 8s ease-in-out infinite;
  z-index: 0;
}

.newcompta-page-wrapper::after,
.newfact-page-wrapper::after,
.newxpert-page-wrapper::after,
.newcaisse-page-wrapper::after,
.newged-page-wrapper::after {
  content: "";
  position: absolute;
  top: 900px;
  right: -150px;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    rgba(1, 82, 62, 0.06) 0%,
    transparent 70%
  );
  border-radius: 50%;
  animation: float-product-2 10s ease-in-out infinite;
  z-index: 0;
}

@keyframes float-product {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(30px, -30px) scale(1.08);
  }
}

@keyframes float-product-2 {
  0%,
  100% {
    transform: translate(0, 0) scale(1);
  }
  50% {
    transform: translate(-40px, 40px) scale(1.05);
  }
}

/* Sections au-dessus du fond */
.newcompta-page-wrapper > section,
.newfact-page-wrapper > section,
.newxpert-page-wrapper > section,
.newcaisse-page-wrapper > section,
.newged-page-wrapper > section {
  position: relative;
  z-index: 1;
}

/* ===== HERO ===== */
.product-hero {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 20px;
  position: relative;
  overflow: hidden;
  text-align: center;
}

.newcompta-hero {
  background:
    linear-gradient(135deg, rgba(1, 82, 62, 0.95), rgba(1, 103, 77, 0.9)),
    url("/img/newcompta-hero-bg.jpg") center/cover no-repeat;
}

.newfact-hero {
  background:
    linear-gradient(135deg, rgba(1, 82, 62, 0.95), rgba(1, 103, 77, 0.9)),
    url("/img/newfact-hero-bg.jpg") center/cover no-repeat;
}

.product-hero-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: radial-gradient(
    circle at 30% 50%,
    rgba(250, 221, 2, 0.15) 0%,
    transparent 50%
  );
  z-index: 0;
}

.product-hero-container {
  max-width: 900px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.hero-badge-product {
  display: inline-block;
  padding: 8px 20px;
  background: rgba(250, 221, 2, 0.2);
  color: #fadd02;
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 50px;
  margin-bottom: 25px;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 2px solid rgba(250, 221, 2, 0.4);
}

.product-hero-title {
  font-size: 5rem;
  font-weight: 900;
  color: white;
  line-height: 1;
  margin-bottom: 25px;
  letter-spacing: -3px;
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

.highlight-yellow {
  color: #fadd02;
}

.product-hero-subtitle {
  font-size: 1.5rem;
  color: rgba(255, 255, 255, 0.95);
  line-height: 1.6;
  margin-bottom: 40px;
}

.hero-cta-buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.btn-hero-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 18px 40px;
  background: linear-gradient(135deg, #fadd02, #e8ca00);
  color: #1a1a1a !important;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(250, 221, 2, 0.4);
  transition: all 0.3s ease;
}

.btn-hero-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(250, 221, 2, 0.6);
  background: linear-gradient(135deg, #e8ca00, #fadd02);
  color: #1a1a1a !important;
}

.btn-hero-secondary {
  display: inline-block;
  padding: 18px 40px;
  background: transparent;
  color: white !important;
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: 50px;
  border: 2px solid white;
  transition: all 0.3s ease;
}

.btn-hero-secondary:hover {
  background: white;
  color: #01523e !important;
}

/* ===== PRESENTATION ===== */
.product-presentation {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

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

.presentation-content {
  text-align: center;
}

.section-title-product {
  font-size: 3rem;
  font-weight: 800;
  color: #01523e;
  margin-bottom: 30px;
  line-height: 1.2;
  position: relative;
  display: inline-block;
}

.section-title-product::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 5px;
  background: linear-gradient(90deg, #fadd02, transparent);
  border-radius: 3px;
}

.presentation-text p {
  font-size: 1.2rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 20px;
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}

/* ===== FEATURE SPLIT (IMAGE + TEXTE) ===== */
.product-feature-split {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.product-feature-container {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}

.feature-image {
  position: relative;
}

.feature-image img {
  width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.15);
  transition: transform 0.5s ease;
}

.feature-image:hover img {
  transform: scale(1.03);
}

.image-decoration {
  position: absolute;
  bottom: -30px;
  right: -30px;
  width: 200px;
  height: 200px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.2) 0%,
    transparent 70%
  );
  border-radius: 50%;
  z-index: -1;
}

.feature-content {
  padding: 20px;
}

.feature-title {
  font-size: 2.5rem;
  font-weight: 800;
  color: #01523e;
  margin-bottom: 30px;
  line-height: 1.2;
}

.feature-text p {
  font-size: 1.1rem;
  color: #555;
  line-height: 1.8;
  margin-bottom: 20px;
}

.feature-highlight {
  font-weight: 600;
  color: #01523e;
  font-size: 1.15rem;
}

/* ===== WHY CHOOSE (6 CARDS) ===== */
.product-why-choose {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.product-why-container {
  max-width: 1400px;
  margin: 0 auto;
}

.why-header {
  text-align: center;
  margin-bottom: 60px;
}

.section-title-center {
  font-size: 3rem;
  font-weight: 800;
  color: #01523e;
  margin-bottom: 20px;
  line-height: 1.2;
  position: relative;
  display: inline-block;
}

.section-title-center::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 5px;
  background: linear-gradient(90deg, #fadd02, transparent);
  border-radius: 3px;
}

.section-subtitle-center {
  font-size: 1.2rem;
  color: #666;
  line-height: 1.7;
  max-width: 800px;
  margin: 0 auto;
}

.why-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.why-card {
  background: rgba(255, 255, 255, 0.7);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  padding: 40px 30px;
  border-radius: 20px;
  text-align: center;
  transition: all 0.3s ease;
  border: 1px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
}

.why-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(250, 221, 2, 0.5);
}

.why-icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 25px;
  background: linear-gradient(
    135deg,
    rgba(1, 82, 62, 0.1),
    rgba(250, 221, 2, 0.1)
  );
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.3s ease;
}

.why-card:hover .why-icon {
  transform: rotateY(360deg);
}

.why-icon svg {
  color: #01523e;
}

.why-card-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #01523e;
  margin-bottom: 15px;
}

.why-card-text {
  font-size: 1rem;
  color: #666;
  line-height: 1.7;
  margin: 0;
}

/* ===== VIDEO ===== */
.product-video-section {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.product-video-container {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
}

.video-wrapper {
  margin-top: 40px;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0, 0, 0, 0.2);
}

.video-wrapper iframe {
  display: block;
}

/* ===== GALERIE ===== */
.product-gallery {
  width: 100%;
  padding: 100px 20px;
}

.product-gallery-container {
  max-width: 1400px;
  margin: 0 auto;
  text-align: center;
}

.gallery-grid-product {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px;
  margin-top: 50px;
}

.gallery-item-product {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  transition: transform 0.3s ease;
}

.gallery-item-product:hover {
  transform: translateY(-10px);
}

.gallery-item-product img {
  width: 100%;
  height: auto;
  display: block;
}

/* ===== VERSIONS (4 CARDS COLORÉES) ===== */
.product-versions {
  width: 100%;
  padding: 100px 20px;
  background: transparent;
}

.product-versions-container {
  max-width: 1400px;
  margin: 0 auto;
}

.versions-header {
  text-align: center;
  margin-bottom: 60px;
}

.versions-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
}

/* CARDS COLORÉES */
.version-card {
  background: white;
  padding: 0;
  border-radius: 25px;
  text-align: center;
  transition: all 0.4s ease;
  box-shadow: 0 15px 50px rgba(0, 0, 0, 0.12);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  position: relative;
  border: 3px solid transparent;
}

/* Header coloré pour chaque version */
.version-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 150px;
  background: linear-gradient(135deg, #01523e, #01674d);
  z-index: 0;
}

.version-card:nth-child(1)::before {
  background: linear-gradient(135deg, #4a90e2, #357abd); /* Bleu - Pro */
}

.version-card:nth-child(2)::before {
  background: linear-gradient(135deg, #c0c0c0, #a8a8a8); /* Argent - Silver */
}

.version-card:nth-child(3)::before {
  background: linear-gradient(135deg, #ffd700, #ffc107); /* Or - Gold */
}

.version-card:nth-child(4)::before {
  background: linear-gradient(
    135deg,
    #e5e4e2,
    #bcc6cc
  ); /* Platine - Platinum */
}

.version-card:hover {
  transform: translateY(-15px) scale(1.02);
  box-shadow: 0 25px 70px rgba(0, 0, 0, 0.2);
}

/* Badge */
.version-badge {
  position: relative;
  z-index: 1;
  display: inline-block;
  padding: 12px 30px;
  background: rgba(255, 255, 255, 0.95);
  color: #01523e;
  font-size: 0.9rem;
  font-weight: 900;
  border-radius: 50px;
  margin: 30px auto 20px;
  text-transform: uppercase;
  letter-spacing: 2px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.15);
}

.version-card:nth-child(1) .version-badge {
  background: rgba(74, 144, 226, 0.15);
  color: #357abd;
}

.version-card:nth-child(2) .version-badge {
  background: rgba(192, 192, 192, 0.2);
  color: #808080;
}

.version-card:nth-child(3) .version-badge {
  background: rgba(255, 215, 0, 0.2);
  color: #b8860b;
}

.version-card:nth-child(4) .version-badge {
  background: rgba(229, 228, 226, 0.3);
  color: #71797e;
}

/* Icône décorative */
.version-card::after {
  content: "★";
  position: absolute;
  top: 15px;
  right: 20px;
  font-size: 2rem;
  color: rgb(255, 255, 255);
  z-index: 1;
  transition: all 0.3s ease;
}

.version-card:hover::after {
  color: rgba(255, 255, 255, 0.6);
  transform: rotate(360deg) scale(1.2);
}

.version-featured::after {
  color: #fadd02;
}

/* Titre */
.version-title {
  position: relative;
  z-index: 1;
  font-size: 1.8rem;
  font-weight: 900;
  color: white;
  margin-bottom: 40px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}

/* Contenu */
.version-description {
  position: relative;
  z-index: 1;
  font-size: 1rem;
  font-weight: 600;
  color: #666;
  line-height: 1.8;
  margin-bottom: 30px;
  padding: 0 30px;
  flex-grow: 1;
}

/* Bouton */
.btn-version {
  position: relative;
  z-index: 1;
  display: inline-block;
  padding: 16px 40px;
  background: #01523e;
  color: white !important;
  text-decoration: none;
  font-size: 1.05rem;
  font-weight: 700;
  border-radius: 50px;
  transition: all 0.3s ease;
  margin: 0 30px 30px 30px;
  box-shadow: 0 8px 25px rgba(1, 82, 62, 0.3);
}

.version-card:nth-child(1) .btn-version {
  background: linear-gradient(135deg, #4a90e2, #357abd);
}

.version-card:nth-child(2) .btn-version {
  background: linear-gradient(135deg, #909090, #707070);
}

.version-card:nth-child(3) .btn-version {
  background: linear-gradient(135deg, #ffd700, #daa520);
}

.version-card:nth-child(4) .btn-version {
  background: linear-gradient(135deg, #a8a8a8, #808080);
}

.btn-version:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 35px rgba(0, 0, 0, 0.25);
}

/* ===== CTA FINAL ===== */
.product-final-cta {
  width: 100vw;
  margin-left: calc(-50vw + 50%);
  padding: 100px 20px;
  background: linear-gradient(135deg, #01523e, #01674d);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.product-final-cta::before {
  content: "";
  position: absolute;
  top: -200px;
  right: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    circle,
    rgba(250, 221, 2, 0.1) 0%,
    transparent 70%
  );
  border-radius: 50%;
}

.product-final-cta-container {
  max-width: 800px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.final-cta-title {
  font-size: 3rem;
  font-weight: 900;
  color: white;
  margin-bottom: 20px;
  line-height: 1.2;
}

.final-cta-text {
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 40px;
  line-height: 1.7;
}

.final-cta-buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
  flex-wrap: wrap;
}

.btn-final-primary {
  display: inline-block;
  padding: 20px 45px;
  background: #fadd02;
  color: #1a1a1a !important;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 50px;
  box-shadow: 0 10px 30px rgba(250, 221, 2, 0.3);
  transition: all 0.3s ease;
}

.btn-final-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 15px 40px rgba(250, 221, 2, 0.5);
  background: #e8ca00;
  color: #1a1a1a !important;
}

.btn-final-secondary {
  display: inline-block;
  padding: 20px 45px;
  background: transparent;
  color: white !important;
  text-decoration: none;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 50px;
  border: 2px solid white;
  transition: all 0.3s ease;
}

.btn-final-secondary:hover {
  background: white;
  color: #01523e !important;
}

/* ============================================================
   INSCRIPTION REVENDEUR
   ============================================================ */

.reseller-registration-page {
  width: 100%;
}

/* ===== HERO REVENDEUR ===== */
.reseller-hero {
  background: linear-gradient(135deg, #01523e 0%, #01674d 100%);
  padding: 100px 20px 80px;
  text-align: center;
  color: white;
  position: relative;
  overflow: hidden;
}

.reseller-hero::before {
  content: "";
  position: absolute;
  top: -50%;
  right: -10%;
  width: 500px;
  height: 500px;
  background: rgba(250, 221, 2, 0.1);
  border-radius: 50%;
  z-index: 0;
}

.reseller-hero .container-custom {
  position: relative;
  z-index: 1;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(10px);
  padding: 12px 30px;
  border-radius: 50px;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 1px;
  margin-bottom: 30px;
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.badge-icon {
  font-size: 1.3rem;
}

.reseller-hero-title {
  font-size: 4rem;
  font-weight: 800;
  margin-bottom: 25px;
  letter-spacing: -2px;
  line-height: 1.1;
}

.reseller-hero-subtitle {
  font-size: 1.3rem;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.6;
  opacity: 0.95;
}

/* ===== SECTION FORMULAIRE ===== */
.reseller-form-section {
  padding: 80px 20px;
  background: #f8f9fa;
}

.form-intro {
  text-align: center;
  margin-bottom: 60px;
}

.form-intro h2 {
  font-size: 2.5rem;
  color: #01523e;
  margin-bottom: 15px;
  font-weight: 700;
}

.form-intro p {
  font-size: 1.1rem;
  color: #666;
}

/* ===== FORMULAIRE ===== */
.reseller-form {
  max-width: 900px;
  margin: 0 auto;
  background: white;
  padding: 50px;
  border-radius: 20px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
}

.form-section {
  margin-bottom: 50px;
}

.form-section-title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.5rem;
  color: #01523e;
  margin-bottom: 30px;
  padding-bottom: 15px;
  border-bottom: 3px solid #fadd02;
  font-weight: 700;
}

.section-icon {
  font-size: 1.8rem;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 25px;
}

.form-group {
  display: flex;
  flex-direction: column;
}

.form-group.full-width {
  grid-column: 1 / -1;
}

.form-group label {
  font-weight: 600;
  margin-bottom: 8px;
  color: #333;
  font-size: 0.95rem;
}

.required {
  color: #e74c3c;
}

.form-group input,
.form-group textarea {
  padding: 14px 18px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  font-size: 1rem;
  transition: all 0.3s ease;
  font-family: inherit;
}

.form-group input:focus,
.form-group textarea:focus {
  outline: none;
  border-color: #01523e;
  box-shadow: 0 0 0 3px rgba(1, 82, 62, 0.1);
}

.form-group textarea {
  resize: vertical;
  min-height: 120px;
}

.form-group-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 30px 0;
  padding: 20px;
  background: #f8f9fa;
  border-radius: 10px;
}

.form-group-checkbox input[type="checkbox"] {
  width: 20px;
  height: 20px;
  margin-top: 2px;
  cursor: pointer;
  flex-shrink: 0;
}

.form-group-checkbox label {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.5;
  cursor: pointer;
}

/* ===== BOUTON SUBMIT ===== */
.form-actions {
  margin-top: 40px;
  text-align: center;
}

.btn-submit-reseller {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 50px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  border: none;
  border-radius: 50px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 8px 25px rgba(1, 82, 62, 0.3);
}

.btn-submit-reseller:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 35px rgba(1, 82, 62, 0.4);
}

.btn-submit-reseller:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.btn-submit-reseller svg {
  transition: transform 0.3s ease;
}

.btn-submit-reseller:hover svg {
  transform: translateX(5px);
}

/* ===== MESSAGE FORMULAIRE ===== */
.form-message {
  margin-top: 30px;
  padding: 20px;
  border-radius: 10px;
  text-align: center;
  font-weight: 600;
  display: none;
}

.form-message.success {
  background: #d4edda;
  color: #155724;
  border: 2px solid #c3e6cb;
  display: block;
}

.form-message.error {
  background: #f8d7da;
  color: #721c24;
  border: 2px solid #f5c6cb;
  display: block;
}

/* ===== AVANTAGES REVENDEUR ===== */
.reseller-benefits {
  padding: 80px 20px;
  background: white;
}

.benefits-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-top: 50px;
}

.benefit-card {
  text-align: center;
  padding: 40px 30px;
  background: #f8f9fa;
  border-radius: 15px;
  transition: all 0.3s ease;
}

.benefit-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
  background: white;
}

.benefit-icon {
  font-size: 3.5rem;
  margin-bottom: 20px;
}

.benefit-card h3 {
  font-size: 1.3rem;
  color: #01523e;
  margin-bottom: 15px;
  font-weight: 700;
}

.benefit-card p {
  font-size: 1rem;
  color: #666;
  line-height: 1.6;
}

/* ===== RESPONSIVE TABLETTE + MOBILE ===== */
@media (max-width: 1024px) {
  .reseller-hero-title {
    font-size: 3rem;
  }

  .reseller-hero-subtitle {
    font-size: 1.1rem;
  }

  .reseller-form {
    padding: 40px 30px;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .benefits-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }
}

@media (max-width: 576px) {
  .reseller-hero {
    padding: 70px 20px 60px;
  }

  .reseller-hero-title {
    font-size: 2.2rem;
  }

  .reseller-hero-subtitle {
    font-size: 1rem;
  }

  .reseller-form-section {
    padding: 60px 20px;
  }

  .form-intro h2 {
    font-size: 2rem;
  }

  .reseller-form {
    padding: 30px 20px;
  }

  .form-section-title {
    font-size: 1.3rem;
  }

  .btn-submit-reseller {
    width: 100%;
    justify-content: center;
  }

  .benefits-grid {
    grid-template-columns: 1fr;
  }

  .reseller-benefits {
    padding: 60px 20px;
  }
}

/* ============================================================
   ESPACE REVENDEUR
   ============================================================ */

/* ===== PAGE LOGIN / ACCÈS REFUSÉ ===== */
.reseller-space-login,
.reseller-space-denied {
  min-height: 70vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 20px;
  background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
}

.login-prompt,
.access-denied {
  text-align: center;
  max-width: 500px;
  background: white;
  padding: 60px 40px;
  border-radius: 20px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
}

.lock-icon,
.warning-icon {
  font-size: 5rem;
  margin-bottom: 30px;
}

.login-prompt h1,
.access-denied h1 {
  font-size: 2rem;
  color: #01523e;
  margin-bottom: 20px;
  font-weight: 700;
}

.login-prompt p,
.access-denied p {
  font-size: 1.1rem;
  color: #666;
  margin-bottom: 15px;
  line-height: 1.6;
}

.btn-login-reseller,
.btn-home {
  display: inline-block;
  margin-top: 30px;
  padding: 16px 40px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  text-decoration: none;
  border-radius: 50px;
  font-weight: 700;
  transition: all 0.3s ease;
  box-shadow: 0 8px 25px rgba(1, 82, 62, 0.3);
}

.btn-login-reseller:hover,
.btn-home:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 35px rgba(1, 82, 62, 0.4);
  color: white;
}

/* ===== HEADER ESPACE REVENDEUR ===== */
.reseller-space-header {
  background: linear-gradient(135deg, #01523e 0%, #01674d 100%);
  padding: 50px 20px;
  color: white;
}

.header-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 30px;
}

.header-left h1 {
  font-size: 2.5rem;
  margin-bottom: 10px;
  font-weight: 700;
}

.header-subtitle {
  font-size: 1.1rem;
  opacity: 0.9;
}

.btn-new-order {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 35px;
  background: #fadd02;
  color: #1a1a1a;
  border: none;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 8px 25px rgba(250, 221, 2, 0.3);
}

.btn-new-order:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 35px rgba(250, 221, 2, 0.5);
}

.btn-new-order span {
  font-size: 1.3rem;
}

/* ===== SECTION LICENCES ===== */
.reseller-licenses {
  padding: 60px 20px;
  background: white;
}

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 40px;
  flex-wrap: wrap;
  gap: 20px;
}

.section-header h2 {
  font-size: 2rem;
  color: #01523e;
  font-weight: 700;
}

.filters {
  display: flex;
  gap: 15px;
}

.search-input,
.filter-select {
  padding: 12px 20px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  font-size: 0.95rem;
  transition: all 0.3s ease;
}

.search-input {
  min-width: 250px;
}

.search-input:focus,
.filter-select:focus {
  outline: none;
  border-color: #01523e;
  box-shadow: 0 0 0 3px rgba(1, 82, 62, 0.1);
}

/* Boutons header */
.header-right {
  display: flex;
  gap: 15px;
  align-items: center;
}

.btn-logout {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 25px;
  background: white;
  color: #01523e;
  border: 2px solid #01523e;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 700;
  font-size: 0.95rem;
  cursor: pointer;
  transition: all 0.3s ease;
}

.btn-logout:hover {
  background: #01523e;
  color: white;
  transform: translateY(-2px);
}

.btn-logout span {
  font-size: 1.2rem;
}

/* ===== TABLEAU ===== */
.table-wrapper {
  overflow-x: auto;
  border-radius: 15px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
}

.licenses-table {
  width: 100%;
  background: white;
  border-collapse: collapse;
}

.licenses-table thead {
  background: #01523e;
  color: white;
}

.licenses-table th {
  padding: 18px 20px;
  text-align: left;
  font-weight: 700;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.licenses-table td {
  padding: 18px 20px;
  border-bottom: 1px solid #f0f0f0;
  font-size: 0.95rem;
}

.licenses-table tbody tr {
  transition: background 0.2s ease;
}

.licenses-table tbody tr:hover {
  background: #f8f9fa;
}

.no-data {
  padding: 80px 20px !important;
  text-align: center;
}

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}

.empty-icon {
  font-size: 4rem;
  opacity: 0.5;
}

.empty-state p {
  font-size: 1.1rem;
  color: #999;
  margin: 0;
}

.btn-add-first {
  padding: 14px 30px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  border: none;
  border-radius: 50px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 10px;
}

.btn-add-first:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(1, 82, 62, 0.3);
}

/* ===== PROFIL REVENDEUR ===== */
.reseller-profile {
  padding: 60px 20px 80px;
  background: #f8f9fa;
}

.reseller-profile h2 {
  font-size: 2rem;
  color: #01523e;
  margin-bottom: 40px;
  font-weight: 700;
}

.profile-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
}

.profile-card {
  background: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
}

.profile-card h3 {
  font-size: 1.5rem;
  color: #01523e;
  margin-bottom: 25px;
  font-weight: 700;
}

.profile-info {
  margin-bottom: 25px;
}

.info-row {
  display: flex;
  justify-content: space-between;
  padding: 15px 0;
  border-bottom: 1px solid #f0f0f0;
}

.info-row:last-child {
  border-bottom: none;
}

.info-row .label {
  font-weight: 600;
  color: #666;
}

.info-row .value {
  color: #333;
}

.btn-edit-profile {
  padding: 12px 25px;
  background: white;
  color: #01523e;
  border: 2px solid #01523e;
  border-radius: 50px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
}

.btn-edit-profile:hover {
  background: #01523e;
  color: white;
}

.documents-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.documents-list li {
  padding: 15px 0;
  border-bottom: 1px solid #f0f0f0;
}

.documents-list li:last-child {
  border-bottom: none;
}

.documents-list a {
  color: #01523e;
  text-decoration: none;
  font-weight: 600;
  transition: color 0.3s ease;
}

.documents-list a:hover {
  color: #fadd02;
}

/* ============================================================
   MODAL NOUVELLE COMMANDE
   ============================================================ */

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.7);
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  overflow-y: auto;
  padding: 20px;
}

.modal-overlay.active {
  opacity: 1;
  visibility: visible;
}

.modal-container {
  background: white;
  border-radius: 20px;
  max-width: 900px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  transform: translateY(-30px);
  transition: transform 0.3s ease;
}

.modal-overlay.active .modal-container {
  transform: translateY(0);
}

/* ===== HEADER MODAL ===== */
.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 30px 40px;
  border-bottom: 2px solid #f0f0f0;
  position: sticky;
  top: 0;
  background: white;
  z-index: 10;
  border-radius: 20px 20px 0 0;
}

.modal-header h2 {
  font-size: 2rem;
  color: #01523e;
  margin: 0;
  font-weight: 700;
}

.modal-close {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: none;
  background: #f0f0f0;
  color: #333;
  font-size: 1.5rem;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.modal-close:hover {
  background: #e74c3c;
  color: white;
}

/* ===== FORMULAIRE ===== */
.order-form {
  padding: 40px;
}

.form-section-order {
  margin-bottom: 40px;
}

.section-title-order {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 1.5rem;
  color: #01523e;
  margin-bottom: 25px;
  padding-bottom: 15px;
  border-bottom: 2px solid #fadd02;
  font-weight: 700;
}

.section-icon-order {
  font-size: 1.8rem;
}

.form-grid-order {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.form-group-order {
  display: flex;
  flex-direction: column;
}

.form-group-order.full-width {
  grid-column: 1 / -1;
}

.form-group-order label {
  font-weight: 600;
  margin-bottom: 8px;
  color: #333;
  font-size: 0.95rem;
}

.form-group-order input,
.form-group-order select,
.form-group-order textarea {
  padding: 14px 16px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  font-size: 1rem;
  transition: all 0.3s ease;
  font-family: inherit;
}

.form-group-order input:focus,
.form-group-order select:focus,
.form-group-order textarea:focus {
  outline: none;
  border-color: #01523e;
  box-shadow: 0 0 0 3px rgba(1, 82, 62, 0.1);
}

.form-group-order textarea {
  resize: vertical;
  min-height: 100px;
}

/* ===== PRODUITS ===== */
#productsContainer {
  margin-bottom: 20px;
}

.product-item {
  background: #f8f9fa;
  padding: 25px;
  border-radius: 15px;
  margin-bottom: 20px;
  border: 2px solid #e0e0e0;
}

.product-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.product-header span {
  font-weight: 700;
  font-size: 1.1rem;
  color: #01523e;
}

.btn-remove-product {
  background: #e74c3c;
  color: white;
  border: none;
  padding: 8px 12px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.btn-remove-product:hover {
  background: #c0392b;
  transform: scale(1.05);
}

.product-fields {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 15px;
}

.btn-add-product {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 25px;
  background: white;
  color: #01523e;
  border: 2px dashed #01523e;
  border-radius: 10px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  width: 100%;
  justify-content: center;
  font-size: 1rem;
}

.btn-add-product:hover {
  background: #01523e;
  color: white;
  border-style: solid;
}

/* ===== BOUTONS ACTIONS ===== */
.form-actions-order {
  display: flex;
  gap: 15px;
  justify-content: flex-end;
  padding-top: 30px;
  border-top: 2px solid #f0f0f0;
  margin-top: 30px;
}

.btn-cancel-order,
.btn-submit-order {
  padding: 16px 35px;
  border-radius: 50px;
  font-weight: 700;
  font-size: 1rem;
  cursor: pointer;
  transition: all 0.3s ease;
  border: none;
}

.btn-cancel-order {
  background: #f0f0f0;
  color: #333;
}

.btn-cancel-order:hover {
  background: #e0e0e0;
}

.btn-submit-order {
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  box-shadow: 0 8px 25px rgba(1, 82, 62, 0.3);
}

.btn-submit-order:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 35px rgba(1, 82, 62, 0.4);
}

/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
  .modal-container {
    max-height: 95vh;
  }

  .modal-header {
    padding: 20px 25px;
  }

  .modal-header h2 {
    font-size: 1.5rem;
  }

  .order-form {
    padding: 25px;
  }

  .form-grid-order,
  .product-fields {
    grid-template-columns: 1fr;
  }

  .form-actions-order {
    flex-direction: column;
  }

  .btn-cancel-order,
  .btn-submit-order {
    width: 100%;
  }
}
/* ===== RESPONSIVE TABLETTE ===== */
/* ===== RESPONSIVE TABLETTE ===== */
/* ===== RESPONSIVE TABLETTE + MOBILE (max-width: 1024px) ===== */
@media (max-width: 1024px) {
  .product-hero {
    min-height: auto;
    padding: 70px 20px 60px;
  }

  .product-hero-title {
    font-size: 4rem;
    letter-spacing: -2px;
  }

  .product-hero-subtitle {
    font-size: 1.3rem;
  }

  .hero-cta-buttons {
    flex-direction: column;
    gap: 15px;
  }

  .btn-hero-primary,
  .btn-hero-secondary {
    width: 100%;
    justify-content: center;
  }

  .product-feature-container {
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .product-presentation,
  .product-feature-split,
  .product-why-choose,
  .product-video-section,
  .product-gallery,
  .product-audience,
  .product-versions {
    padding: 60px 20px;
  }

  .section-title-product,
  .section-title-center,
  .feature-title,
  .final-cta-title {
    font-size: 2.5rem;
  }

  /* Why Choose - Carousel */
  .why-grid {
    display: flex !important;
    grid-template-columns: unset !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    gap: 25px;
    padding: 20px 0;
    margin: 0 -20px;
  }

  .why-card {
    min-width: 300px;
    max-width: 300px;
    margin: 0 10px;
    scroll-snap-align: center;
    flex-shrink: 0;
  }

  .why-grid::-webkit-scrollbar {
    display: none;
  }

  /* Gallery - Carousel */
  .gallery-grid-product {
    display: flex !important;
    grid-template-columns: unset !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    gap: 25px;
    padding: 20px 0;
    margin: 0 -20px;
  }

  .gallery-item-product {
    min-width: 450px;
    max-width: 450px;
    margin: 0 10px;
    scroll-snap-align: center;
    flex-shrink: 0;
  }

  .gallery-grid-product::-webkit-scrollbar {
    display: none;
  }

  /* Audience - Carousel */
  .audience-grid-product {
    display: flex !important;
    grid-template-columns: unset !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    gap: 25px;
    padding: 20px 0;
    margin: 0 -20px;
  }

  .audience-card-product {
    min-width: 300px;
    max-width: 300px;
    margin: 0 10px;
    scroll-snap-align: center;
    flex-shrink: 0;
  }

  .audience-grid-product::-webkit-scrollbar {
    display: none;
  }

  /* Versions - Carousel */
  .versions-grid {
    display: flex !important;
    grid-template-columns: unset !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
    gap: 25px;
    padding: 20px 0;
    margin: 0 -20px;
  }

  .version-card {
    min-width: 300px;
    max-width: 300px;
    margin: 0 10px;
    scroll-snap-align: center;
    flex-shrink: 0;
  }

  .versions-grid::-webkit-scrollbar {
    display: none;
  }

  .version-card::before {
    height: 130px;
  }

  .version-badge {
    margin: 25px auto 20px;
    padding: 10px 25px;
    font-size: 0.85rem;
  }

  .version-title {
    font-size: 1.6rem;
    margin-bottom: 35px;
  }

  .version-description {
    padding: 0 25px;
    font-size: 1rem;
  }

  .btn-version {
    margin: 0 25px 30px 25px;
    width: calc(100% - 50px);
  }

  .product-final-cta {
    padding: 60px 20px;
  }

  .final-cta-buttons {
    flex-direction: column;
    gap: 15px;
  }

  .btn-final-primary,
  .btn-final-secondary {
    width: 100%;
  }

  .reseller-hero-title {
    font-size: 3rem;
  }

  .reseller-hero-subtitle {
    font-size: 1.1rem;
  }

  .reseller-form {
    padding: 40px 30px;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .benefits-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 25px;
  }

  .header-content {
    flex-direction: column;
    align-items: flex-start;
  }

  .btn-new-order {
    width: 100%;
    justify-content: center;
  }

  .stats-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .section-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .filters {
    width: 100%;
    flex-direction: column;
  }

  .search-input {
    min-width: 100%;
  }

  .filter-select {
    width: 100%;
  }

  .profile-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== RESPONSIVE MOBILE UNIQUEMENT (max-width: 576px) ===== */
@media (max-width: 576px) {
  .product-hero {
    padding: 60px 20px;
  }

  .product-hero-title {
    font-size: 2.5rem;
    letter-spacing: -1px;
  }

  .product-hero-subtitle {
    font-size: 1.2rem;
  }

  .product-presentation,
  .product-feature-split,
  .product-why-choose,
  .product-video-section,
  .product-gallery,
  .product-audience,
  .product-versions {
    padding: 50px 20px;
  }

  .section-title-product,
  .section-title-center,
  .feature-title,
  .final-cta-title {
    font-size: 2rem;
  }

  /* Réduction taille cards mobile */
  .why-card {
    min-width: 280px;
    max-width: 280px;
  }

  .gallery-item-product {
    min-width: 300px;
    max-width: 300px;
  }

  .audience-card-product {
    min-width: 280px;
    max-width: 280px;
  }

  .version-card {
    min-width: 280px;
    max-width: 280px;
  }

  .version-card::before {
    height: 120px;
  }

  .version-badge {
    margin: 20px auto 15px;
    padding: 10px 25px;
    font-size: 0.8rem;
  }

  .version-title {
    font-size: 1.5rem;
    margin-bottom: 30px;
  }

  .version-description {
    padding: 0 20px;
    font-size: 0.95rem;
  }

  .btn-version {
    margin: 0 20px 25px 20px;
    width: calc(100% - 40px);
  }

  .product-final-cta {
    padding: 50px 20px;
  }

  .reseller-hero {
    padding: 70px 20px 60px;
  }

  .reseller-hero-title {
    font-size: 2.2rem;
  }

  .reseller-hero-subtitle {
    font-size: 1rem;
  }

  .reseller-form-section {
    padding: 60px 20px;
  }

  .form-intro h2 {
    font-size: 2rem;
  }

  .reseller-form {
    padding: 30px 20px;
  }

  .form-section-title {
    font-size: 1.3rem;
  }

  .btn-submit-reseller {
    width: 100%;
    justify-content: center;
  }

  .benefits-grid {
    grid-template-columns: 1fr;
  }

  .reseller-benefits {
    padding: 60px 20px;
  }

  reseller-space-header {
    padding: 40px 20px;
  }

  .header-left h1 {
    font-size: 1.8rem;
  }

  .stats-grid {
    grid-template-columns: 1fr;
  }

  .table-wrapper {
    overflow-x: scroll;
  }

  .licenses-table {
    min-width: 800px;
  }
}

/* ===== INDICATEURS SWIPE ===== */
.swipe-hint {
  display: none;
  text-align: center;
  color: #999;
  font-size: 0.9rem;
  margin-top: 15px;
  font-style: italic;
  animation: pulse-swipe 2s ease-in-out infinite;
}

@keyframes pulse-swipe {
  0%,
  100% {
    opacity: 0.6;
  }
  50% {
    opacity: 1;
  }
}

@media (max-width: 1024px) {
  .swipe-hint {
    display: block;
  }
}

/* ============================================================
   PAGE CONNEXION UNIFIÉE - 2 SECTIONS
   ============================================================ */

.unified-login-page {
  min-height: 80vh;
  padding: 20px 20px;
}

.login-container {
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}

/* ===== SECTIONS ===== */
.login-section {
  background: white;
  padding: 50px 40px;
  border-radius: 20px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
  text-align: center;
}

.section-badge {
  font-size: 4rem;
  margin-bottom: 20px;
}

.login-section h2 {
  font-size: 2rem;
  color: #01523e;
  margin-bottom: 10px;
  font-weight: 700;
}

.section-subtitle {
  font-size: 1rem;
  color: #666;
  margin-bottom: 40px;
}

/* ===== FORMULAIRES ===== */
.login-form {
  text-align: left;
}

.alert {
  padding: 15px;
  border-radius: 10px;
  margin-bottom: 25px;
  text-align: left;
}

.alert-danger {
  background: #f8d7da;
  color: #721c24;
  border: 2px solid #f5c6cb;
}

.form-group {
  margin-bottom: 25px;
}

.form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 10px;
  color: #333;
  font-size: 0.95rem;
}

.form-group input {
  width: 100%;
  padding: 16px 18px;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.form-group input:focus {
  outline: none;
  border-color: #01523e;
  box-shadow: 0 0 0 4px rgba(1, 82, 62, 0.1);
}

.btn-submit {
  width: 100%;
  padding: 18px;
  background: linear-gradient(135deg, #01523e, #01674d);
  color: white;
  border: none;
  border-radius: 12px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 8px 25px rgba(1, 82, 62, 0.3);
  margin-bottom: 25px;
}

.btn-submit:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 35px rgba(1, 82, 62, 0.4);
}

.btn-reseller {
  background: linear-gradient(135deg, #fadd02, #e8ca00);
  color: #1a1a1a;
  box-shadow: 0 8px 25px rgba(250, 221, 2, 0.3);
}

.btn-reseller:hover {
  box-shadow: 0 12px 35px rgba(250, 221, 2, 0.5);
}

.section-footer {
  display: flex;
  flex-direction: column;
  gap: 12px;
  text-align: center;
}

.link-forgot,
.link-signup {
  color: #01523e;
  text-decoration: none;
  font-size: 0.95rem;
  font-weight: 600;
  transition: color 0.3s ease;
}

.link-forgot:hover,
.link-signup:hover {
  color: #fadd02;
}

.link-signup {
  font-weight: 700;
}

/* ===== RESPONSIVE ===== */
@media (max-width: 1024px) {
  .login-container {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

@media (max-width: 576px) {
  .unified-login-page {
    padding: 40px 20px;
  }

  .login-section {
    padding: 40px 25px;
  }

  .login-section h2 {
    font-size: 1.6rem;
  }
}
