/* Variables globales pour des couleurs consistantes */
:root {
    --couleur-fond-header: #ffffff; /* Header blanc pour faire ressortir le logo vert */
    --couleur-texte-header: #00822D; /* Texte vert dans le header */
    --couleur-texte-boutton: #ffffff;
    --couleur-fond-body: #FAFAFA; /* Fond beige très clair */
    --couleur-texte-body: #00822D; /* Texte vert */
    --couleur-lien: #00822D;
    --couleur-lien-survol: #A9A9A9;
    --couleur-bouton: #00822D;
    --couleur-bouton-survol: #3E7A2C;
    --couleur-fond-menu-deroulant: #ffffff;
    --couleur-texte-menu-deroulant: #00822D;
    --couleur-survol-menu-deroulant: #f5f5f5;
    --couleur-text-survol-menu-deroulant: #00822D;
    --couleur-fond-footer: #00822D; /* Footer vert */
    --couleur-texte-footer: #ffffff;
    --couleur-lien-footer: #ffffff;
    --couleur-lien-survol-footer: #e0e0e0;

    --facebook: #1877f2;
    --instagram: #e4405f;
    --leboncoin: #FF6E14;
    --bg: #ffffff;

    --police-header: 'Nunito', 'Quicksand', 'Montserrat Alternates', 'Manrope', 'Jost', 'Rubik', 'Lexend', sans-serif;

    /* Dimensions structurelles en % pour s'adapter à la largeur de l'écran */
    --header-height: clamp(75px, 12vh, 110px);
    --logo-width: clamp(100px, 15%, 200px);
    --container-width: 90%;
    
    /* Espacements adaptables */
    --spacing-small: clamp(4px, 1vw, 8px);
    --spacing-medium: clamp(8px, 2vw, 16px);
    --spacing-large: clamp(12px, 3vw, 24px);
}

html {
    overflow-y: scroll;
    overflow-x: hidden;

}

/* Header fixe avec alignement des éléments */
header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background-color: var(--couleur-fond-header);
    z-index: 1000;
    box-shadow: var(--ombre-subtile);
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 10px;
    border-bottom: 1px solid rgba(46, 90, 28, 0.1);
    box-shadow: 0 0.125rem 0.5rem rgba(0, 0, 0, 0.1);
    height: var(--header-height);
    min-height: var(--header-height);
    z-index: 9999; /* S'assurer que le header est toujours au-dessus */
    overflow: visible;
}

.header-content {
    display: flex;
    justify-content: space-between; /* Spreads items to opposite sides */
    align-items: center;
    color: var(--couleur-texte-header);
    font-family: var(--police-header);
    width: var(--container-width);
    min-width: 280px;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 15px;    
}

.header-content .right-nav a#about-btn {
    color: var(--couleur-texte-header);
    font-family: var(--police-header);
    margin-left: 0;
    margin-right: 0.5%;
    white-space: nowrap;
}

#logo {
    display: block;
    margin-left: -2%;
}

#logo img {
    width: auto;
    min-width: 0;
    max-width: none;
    height: 8rem;
    border: none;
    vertical-align: middle;
    margin-right: 10px;
}

nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 0 2%;
    box-sizing: border-box;
}

nav ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 20px; /* Add - Replace margin-left */
}

.left-nav {
    display: flex;
    align-items: center;
    gap: 5%; /* Espace entre logo et nom d'entreprise */
    width: 30%;
}

.right-nav {
    display: flex;
    align-items: center;
    gap: 2%; /* Espace entre les éléments */
    margin-left: auto; /* Pousse le menu de droite à droite */
    width: 70%;
    justify-content: flex-end;
}

/* A propos */

/* Animation de l'équipe dans la bannière */
/* Styles de base déjà présents - je conserve ces animations */
/* Styles généraux */
.section-container {
  width: 100%;
  max-width: 100%;
  padding: 60px 0;
  margin: 0;
  background-color: #f9f9f9;
}

/* En-tête de section */
.section-header {
  text-align: center;
  max-width: 1200px;
  margin: 0 auto 40px;
  padding: 0 20px;
}

.section-header h2 {
  color: #00822D;
  font-size: 2em;
  position: relative;
  margin-bottom: 15px;
  font-weight: 700;
}

.section-header h2::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 3px;
  background-color: #00822D;
}

.section-subtitle {
  font-size: 1.2em;
  color: #555;
  max-width: 800px;
  margin: 15px auto 0;
}

/* Grille de contenu */
.content-grid {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Image à propos */
.about-image-container {
  display: flex;
  justify-content: center;
  align-items: center;
}

.about-hero-image {
  width: 100%;
  max-width: 400px;
  height: auto;
  border-radius: 15px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

/* Texte à propos */
.about-text {
  background-color: white;
  padding: 30px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.about-text h3 {
  color: #00822D;
  font-size: 1.6em;
  margin-bottom: 20px;
}

.highlight-text {
  font-weight: 500;
  color: #333;
  font-size: 1.2rem;
  border-left: 3px solid #00822D;
  padding-left: 15px;
  margin-bottom: 20px;
}

.about-text p {
  margin-bottom: 20px;
  line-height: 1.6;
  font-size: 1.05rem;
  color: #444;
}

/* Grille des services/approche */
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}



.service-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}



.service-card h3 {
  color: #00822D;
  font-size: 1.4em;
  margin-bottom: 15px;
}

.service-card p {
  color: #444;
  line-height: 1.5;
}


.primary-button {
  background-color: #00822D;
  color: white;
}

.primary-button:hover {
  background-color: #006e24;
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(0, 130, 45, 0.3);
}

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

.satisfaction {
  font-size: 1.6em;
  margin-bottom: 5px;
}

.badge-text {
  font-size: 1.4em;
}

/* Notre approche */
.my-approach {
  padding: 80px 20px;
  background-color: #f9f9f9;
}

.my-approach h2 {
  text-align: center;
  font-size: 2.2rem;
  margin-bottom: 40px;
  color: #333;
  position: relative;
}

.my-approach h2::after {
  content: '';
  position: absolute;
  width: 60px;
  height: 4px;
  background-color: #00cc66;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 2px;
}

.approach-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
}

.approach-point {
  flex: 1;
  min-width: 280px;
  max-width: 350px;
  background-color: white;
  padding: 35px;
  border-radius: 15px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
  text-align: center;
  transition: transform 0.3s ease;
}

.approach-point:hover {
  transform: translateY(-5px);
}

.approach-icon {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  margin: 0 auto 25px;
  position: relative;
}

.expertise {
  background-color: rgba(0, 204, 102, 0.1);
}

.expertise::before {
  content: '';
  position: absolute;
  width: 40px;
  height: 40px;
  border: 4px solid #00cc66;
  border-radius: 5px;
  top: 25px;
  left: 28px;
}

.expertise::after {
  content: '⚡';
  position: absolute;
  color: #00cc66;
  font-size: 24px;
  top: 32px;
  left: 40px;
}

.reliability {
  background-color: rgba(26, 92, 122, 0.1);
}

.reliability::before {
  content: '';
  position: absolute;
  width: 40px;
  height: 40px;
  border: 4px solid #1a5c7a;
  border-radius: 50%;
  top: 28px;
  left: 28px;
}

.reliability::after {
  content: '✓';
  position: absolute;
  color: #1a5c7a;
  font-size: 28px;
  top: 30px;
  left: 38px;
}

.affordability {
  background-color: rgba(10, 46, 54, 0.1);
}

.affordability::before {
  content: '€';
  position: absolute;
  color: #0a2e36;
  font-size: 48px;
  font-weight: bold;
  top: 20px;
  left: 40px;
}

.approach-point h3 {
  font-size: 1.4rem;
  margin-bottom: 20px;
  color: #333;
}

.approach-point p {
  color: #555;
  line-height: 1.7;
}

/* Media Queries */
@media (max-width: 768px) {
  .hero-content, .hero-image {
    flex: 100%;
    padding: 20px;
  }
  
  .about-container {
    flex-direction: column;
  }
  
  .about-image {
    margin-bottom: 30px;
  }
  
  .approach-point {
    flex: 100%;
  }
  
  .cta-badge {
    margin-top: 30px;
  }
}

/* HEADER */
.dropdown .dropbtn,
.header-content .right-nav #about-btn,
.dropdown-content a:hover,
nav a:hover,
nav a,
button,
#company-name {
    font-weight: 800;
    font-size: 18px;
}

/* Nouveau style pour le dropdown */
.dropdown {
    position: relative;
}

.dropbtn {
    background-color: transparent;
    border: none;
    color: #00822D  !important;
    font-family: var(--police-header);  
    padding: 10px;
    cursor: pointer;
    position: relative;
    display: flex;
    align-items: center;
    gap: 5px;
}

.dropbtn .text {
    position: relative;
    display: inline-block;
}

.dropbtn .arrow {
    content: '▼';
    font-size: 0.8em; /* Plus grande taille */
    color: #00822D; /* Couleur plus claire avec transparence */
    margin-left: 8px; /* Plus d'espace entre le texte et la flèche */
    transition: all 0.3s ease;
    display: inline-block;
    transform-origin: center;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
}

/* Rotation de la flèche au survol */
.dropdown:hover .dropbtn .arrow {
    transform: rotate(180deg);
}

/* Style de base du menu déroulant */
.dropdown-content {
    display: flex; 
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    scroll-padding-top: 20px;
    scroll-behavior: smooth;
    gap: 1rem;
    position: fixed;
    width: 100%;
    margin: 0;
    max-height: 85vh;
    top: calc(var(--header-height) + 20px); 
    max-height: calc(90vh - var(--header-height));
    left: 0;
    background-color: rgba(250, 250, 250, 0.98);
    box-shadow: 
        0 8px 24px rgba(46, 90, 28, 0.1),
        0 2px 8px rgba(0, 0, 0, 0.05);
    border-top: none;
    margin-top: 0;
    padding: 2rem;
    visibility: hidden; 
    opacity: 0;
    transform: translateY(-5px);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    perspective: 1000px;
    will-change: transform, opacity;
    padding-left: 0 !important;
    margin-left: 0 !important;
    z-index: 999;

    padding-bottom: 3rem; /* Augmentez l'espace en bas */
    overflow-y: auto; /* Permettre le défilement si nécessaire */
}



/* Lorsque le menu est visible */
.dropdown:hover .dropdown-content {
    opacity: 1;
    transform: translateY(0);
    visibility: visible; /* Rendu visible */
    transition: opacity 0.3s ease, transform 0.3s ease, visibility 0s;
}

.dropdown-item {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    max-width: 250px;
    position: relative; /* Ajout */
    transform-origin: center top; /* Ajout */
    transition: transform 0.3s ease;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
    backface-visibility: hidden;
    width: 100%;
    height: auto;
    object-fit: contain;
    margin: 0;
    margin-left: 0 !important;
    padding-left: 0 !important;
    flex-shrink: 1; /* Permet aux éléments de se réduire plutôt que de sauter une ligne */
}


.dropdown-item:hover {
    transform: translateY(-10px);
    background-color: rgba(46, 90, 28, 0.05); /* Vert très léger au survol */    
}

.dropdown-item:hover .service-info h3 {
    color: #386F23; /* Vert plus vif au survol */
}

.dropdown::after {
    content: '';
    position: absolute;
    bottom: -20px; /* Ajustez cette valeur selon l'espace entre le bouton et le menu */
    left: 0;
    width: 100%;
    height: 20px;
    background-color: transparent;
    display: none;
}

.dropbtn .text::after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #00822D;
    transition: width 0.3s ease;
}

.dropdown:hover .dropbtn .text::after {
    width: 100%;
}

.dropdown-content::before {
  content: '';
  position: absolute;
  top: 0; /* Collé en haut du menu */
  left: 0;
  width: 100%;
  height: 2px; /* Épaisseur du trait */
  background-color: #00822D; /* Couleur du trait */
}

/* Mobile header */
/* Ajout des media queries pour le responsive */
@media screen and (max-width: 768px) {

  body{
    padding-top: 130px!important;
  }
  
  /* Ajustements pour le logo */
  #logo img {
    width: 75px; /* Logo encore plus grand */
    height: auto;
    margin-top: 0; /* Ajusté pour le centrage vertical */
    margin-left: 10px; 
    padding: 0;
}

/* Ajustement pour la navigation gauche */
.left-nav {
    display: flex;
    align-items: center;
    margin-left: 5px;
}

  /* Correction de la hauteur du header */
  header {
    padding: 8px 0;
}

.header-content {
  top: calc(var(--header-height) + 15px); /* Légèrement plus bas sur mobile */
  max-height: calc(90vh - var(--header-height)); /* Réduit la hauteur du menu */
}
  /* Ajustements pour le menu déroulant */
  .dropdown-content {
      flex-direction: row;
      flex-wrap: nowrap;
      overflow-x: auto;
      overflow-y: auto;
      justify-content: flex-start;
      padding: 1rem;
      max-height: 70vh; /* Réduit la hauteur du menu sur les petits écrans */
    }

  .dropdown-item {
      flex: 0 0 250px;
      margin-right: 1rem;
      min-width: 250px;
      scroll-snap-align: start;
  }

  /* Rendre le titre entier cliquable sur mobile */
  .dropbtn {
      cursor: pointer;
      width: 100%;
      display: flex;
      justify-content: space-between;
      font-size: 16px; /* Texte plus petit sur mobile */
      padding: 8px;
  }

  /* Cacher le contenu du dropdown par défaut sur mobile */
  .dropdown-content {
      opacity: 0;
      visibility: hidden;
      -webkit-overflow-scrolling: touch;
      scroll-snap-type: x mandatory;
  }

  /* Afficher le dropdown quand la classe .mobile-active est ajoutée via JavaScript */
  .dropdown-content.mobile-active {
      display: flex;
      opacity: 1;
      visibility: visible;
  }

  /* Indiquer que le dropdown est ouvert en tournant la flèche */
  .dropdown.mobile-active .dropbtn .arrow {
      transform: rotate(180deg);
  }

  /* Empêcher le comportement hover sur mobile */
  .dropdown:hover .dropdown-content {
      opacity: 0;
      transform: translateY(-5px);
      visibility: hidden;
  }

  /* Mais conserver le comportement hover sur la flèche quand active */
  .dropdown.mobile-active:hover .dropbtn .arrow {
      transform: rotate(180deg);
  }

  /* Ajustements pour la navigation */
  .right-nav {
      margin-top: 0;
      align-items: center;
  }

  nav {
      padding: 5px 10px;
  }

  /* Ajustements pour le bouton de contact */
  #contact-btn {
      padding: 6px 12px;
      font-size: 14px;
  }

  /* Ajustements pour les liens "About" */
  #about-btn {
      font-size: 16px;
  }
  #contact {
    width: 90%;
    max-width: 100%;
    margin: 0;
    padding: 25px 20px !important;
    min-height: calc(100vh - var(--header-height)); /* Prend toute la hauteur disponible */
    border-radius: 0;
    box-sizing: border-box;
}

#contact form {
    gap: 15px;
    max-width: none ;
    width: 100% ;
}

#contact h2 {
    font-size: 1.8em;
    margin-bottom: 15px;
}

#contact input:not([type="checkbox"]),
#contact textarea {
    padding: 8px;
    font-size: 16px; /* Évite le zoom sur iOS */
}

#contact textarea {
    min-height: 80px;
}

.checkbox-container {
    margin: 5px 0;
}

#submit-btn {
    width: 100%;
    margin-top: 15px;
    padding: 12px;
}

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

.cta-container {
  grid-template-columns: 1fr;
  text-align: center;
}

.cta-badge {
  margin-top: 20px;
}

.service-card {
  padding: 20px;
}

.section-container {
  padding: 40px 0;
}

.about-hero-image {
  max-width: 250px;
}

.about-text {
  padding: 20px;
}

.section-header h2 {
  font-size: 1.8em;
}

.section-subtitle {
  font-size: 1.1em;
}

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

.cta-text h2 {
  font-size: 1.6em;
}




.satisfaction {
  font-size: 1.4em;
}

.badge-text {
  font-size: 1.2em;
}

}


/* Ajustements supplémentaires pour les très petits écrans */
@media screen and (max-width: 480px) {
  #logo img {
    width: 54px; /* Logo 20% plus gros que précédemment */
    margin-top: 3px;
}

  .dropdown-content {
      top: 55px; /* Position légèrement plus basse */
  }

  .dropdown-item {
      min-width: 220px; /* Items un peu moins larges */
  }

  /* Ajustement du texte dans le menu pour petits écrans */
  .dropbtn, #about-btn {
      font-size: 15px;
  }

  #contact-btn {
      padding: 5px 10px;
      font-size: 13px;
  }
  #contact {
    padding: 15px;
}

#contact h2 {
    font-size: 1.5em;
}


}
@media (min-width: 768px) and (max-width: 1024px) {
  .dropdown-content {
      max-height: 75vh; /* Réduit la hauteur pour mieux gérer l'espace sur les tablettes */
      padding: 1.5rem; /* Un peu plus d'espace autour */
      gap: 0.8rem; /* Réduit l'espacement entre les éléments */
  }

  .dropdown-item {
      flex: 0 0 200px; /* Réduit la taille des éléments pour mieux s'adapter à la tablette */
      margin-right: 0.8rem;
      min-width: 200px;
  }

  /* Réduire la taille des images dans le menu déroulant sur tablette */
  .dropdown-item img {
      max-width: 150px; /* Limite la largeur des images */
      height: auto;
  }


}

/* Ajustements pour les écrans plus larges (ex: iPad Pro ou autres grandes tablettes) */
/* Ajustements pour tablettes */
/* Réglages pour les tablettes (768px à 1024px) */
@media (min-width: 768px) and (max-width: 1024px) {
  #logo img {
    width: 200px; /* Plus grand que sur mobile (75px) */
    height: auto;
    margin-top: 0;
    margin-left: 10px;
    padding: 0;
}
  .dropdown-content {
      display: flex !important;
      flex-wrap: nowrap !important;
      overflow-x: auto !important;
      justify-content: flex-start !important;
      padding: 1rem !important;
      padding-right: 2rem !important; /* Ajoute plus d'espace à droite */
      gap: 1rem !important;
      max-height: 40vh !important;
      width: 100% !important;
      scroll-padding-right: 20px !important; /* Assure un espace pour le dernier élément */
  }

  .dropdown-item {
      flex: 0 0 200px !important;
      min-width: 200px !important;
      margin: 0 !important;
  }

  .dropdown-item:last-child {
      padding-right: 20px !important; /* Ajoute un padding au dernier élément */
      margin-right: 20px !important; /* Assure que le dernier élément a de l'espace */
  }

  .dropdown-item img {
      width: 100% !important;
      max-width: 160px !important;
      height: auto !important;
      object-fit: contain !important;
  }
}

/* Ajout des styles pour les très petits écrans */
@media screen and (max-width: 380px) {
  /* Réduire la taille du header */
  header {
      padding: 5px 0;
  }

  .header-content {
      padding: 2px;
  }

  /* Ajuster la taille du texte */
  .dropdown .dropbtn,
  .header-content .right-nav #about-btn,
  #company-name {
      font-size: 12px !important; /* Force la taille plus petite */
      margin: 0 3px;
      white-space: normal;
  }

  /* Réduire la taille du logo */
  #logo img {
      width: 45px;
      height: auto;
  }

  /* Ajuster les espacements */
  .right-nav {
      gap: 5px;
  }

  /* Réduire la taille du bouton contact */
  #contact-btn {
      padding: 4px 8px;
      font-size: 12px;
  }

  /* Ajuster le padding du body */
  body {
      padding-top: 100px;
  }
}

/* Très grands écrans (1400px et plus) */
@media screen and (min-width: 1400px) {
  .dropdown-content {
      top: calc(var(--header-height) + 15px)!important;
  }
}

/* Grands écrans (1200px à 1399px) */
@media screen and (min-width: 1200px) and (max-width: 1399px) {
  .dropdown-content {
      top: calc(var(--header-height) + 5px)!important;
  }
}

/* Écrans moyens (992px à 1199px) */
@media screen and (min-width: 992px) and (max-width: 1199px) {
  .dropdown-content {
      top: calc(var(--header-height) + 15px)!important;
  }
}

/* Tablettes (768px à 991px) */
@media screen and (min-width: 768px) and (max-width: 991px) {
  .dropdown-content {
      top: calc(var(--header-height) + 15px)!important;
  }
}

/* Grands mobiles (576px à 767px) */
@media screen and (min-width: 576px) and (max-width: 767px) {
  .dropdown-content {
      top: calc(var(--header-height) + 15px)!important;
  }
}

/* Petits mobiles (430px à 575px) */
@media screen and (min-width: 430px) and (max-width: 575px) {
  .dropdown-content {
      top: calc(var(--header-height) + 25px)!important;
  }
}

/* Très petits mobiles SE et Z-Fold (375px à 429px) */
@media screen and (min-width: 375px) and (max-width: 429px) {
  .dropdown-content {
      top: calc(var(--header-height) + 45px)!important;
  }
}

/* Ultra petits mobiles (jusqu'à 374px) */
@media screen and (max-width: 374px) {
  .dropdown-content {
      top: calc(var(--header-height) + 65px)!important;
  }
}

/* Animation de l'image */
.service-img {
    width: 200px;
    max-width: 200px;
    height: 200px;
    object-fit: contain;
    margin-bottom: 15px;
}


.service-info {
    text-align: center;
    color: var(--couleur-texte-menu-deroulant);
    position: relative; /* Changer absolute en relative */
    width: 100%; /* Largeur complète */
    transform: none !important;
    background-color: transparent;
    padding: 10px 5px;
    margin-top: 10px; /* Espace entre l'image et le texte */
}


.service-info h3 {
    margin: 0 0 5px 0; /* Ajuster les marges */
    color: #00822D; /* Vert de base */
    font-size: 1em !important;
    transform: none !important;
    line-height: 1.2;
}

.service-info p {
    margin: 0;
    color: #4A4A4A; /* Gris foncé pour le texte */
    font-size: 0.9em !important;
    line-height: 1.2;
    transform: none !important;
    max-width: 100%; /* Empêcher le débordement */
}


.right-nav li {
    margin-left: 20px;
}




/* Effet uniquement sur le texte "Nom de l'entreprise", "Services" et "À propos" */
#company-name::after, 
/*.dropbtn::after,*/ 
#about-btn::after {
    content: '';
    position: absolute;
    bottom: -5px; /* Ajustez selon vos préférences */
    left: 0;
    width: 0;
    height: 2px;
    background-color: #00822D; /* Couleur blanche pour le trait */
    transition: width 0.3s ease;
    display: block; /* S'assure que le ::after est considéré comme un élément bloc */
}


/* Lorsque l'utilisateur survole uniquement ces éléments */
#company-name:hover::after, 
/*.dropbtn:hover::after,*/ 
#about-btn:hover::after {
    width: 100%; /* Le trait s'étend sous le texte */
}

#company-name, 
.dropbtn, 
#about-btn {
    line-height: 1.2; /* Hauteur de ligne uniforme */
    margin: 0;
    padding: 0;
    position: relative; /* Nécessaire pour positionner `::after` */
}

/* Positionnement du parent pour permettre l'effet */
#company-name {
    position: relative; /* Nécessaire pour que ::after soit positionné correctement */
    color: var(--couleur-texte-header);
    font-family: var(--police-header);
    white-space: nowrap; 
}

body {
    background-color: var(--couleur-fond-body);
    font-family: Arial, sans-serif;
    color: var(--couleur-texte-body);
    margin: 0;
    padding: 0px;
    padding-top: 6%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

a {
    color: var(--couleur-lien);
    text-decoration: none;
}

a:hover {
    color: var(--couleur-lien-survol);
}

a:visited {
    color: var(--couleur-texte-body);
}

#contact-btn {
    position: relative;
    display: inline-block;
    font: inherit;
    background-color: #00822D; /* Vert de base */
    border: 0;
    color: #ffffff;
    border-radius: 2em;
    font-size: 1.2rem;
    padding: 0.275em 1em;
    margin: 0%;
    transform: translateY(0);
    font-weight: 800;
    text-shadow: 0 0.0625em 0 rgba(0, 0, 0, 0.1); /* Ombre subtile */
    box-shadow: 
        inset 0 0.0625em 0 0 rgba(255, 255, 255, 0.2),
        0 0.125em 0 0 #275218, /* Vert plus foncé pour la profondeur */
        0 0.25em 0.5em rgba(46, 90, 28, 0.2); /* Ombre portée verte */
    transition: all 0.25s ease;
    touch-action: manipulation;
    cursor: pointer;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}


.click-effect {
    position: absolute;
    border-radius: 50%;
    transform: scale(0);
    background-color: rgba(255, 255, 255, 0.5);
    animation: click-ripple 0.5s linear;
    pointer-events: none;
}

@keyframes click-ripple {
    to {
        transform: scale(4);
        opacity: 0;
    }
}

#contact-btn:active, #contact-btn:hover {
    transform: translateY(1px);
    background-color: #275218; /* Vert plus foncé quand pressé */
    box-shadow: 
        inset 0 0.0625em 0 0 rgba(255, 255, 255, 0.1),
        0 0.0625em 0 0 #1F4013,
        0 0.125em 0.25em rgba(46, 90, 28, 0.15);
}

#contact-btn:hover {
    background-color: #386F23; /* Vert légèrement plus clair au survol */
    transform: translateY(-2px);
    box-shadow: 
        inset 0 0.0625em 0 0 rgba(255, 255, 255, 0.3),
        0 0.125em 0 0 #275218,
        0 0.35em 0.7em rgba(46, 90, 28, 0.25);
}




#contact-btn:after {
    position: absolute;
    content: "";
    display: block;
    width: 100%;
    height: calc(100% + 0.375em);
    top: 0;
    left: 0;
    background-color: transparent;
    transition: height 0.25s ease;
}

#contact-btn:hover:after {
    height: calc(100% + 0.225em);
}


#branding {
    display: flex;
    align-items: center;
    gap: 10px;
}

footer {
    background-color: var(--couleur-fond-footer);
    text-align: center;
    padding: 10px 0;
    width: 100%;
    box-sizing: border-box;
}

footer .footer-links {
    color: var(--couleur-texte-footer);
}

footer a {
    color: inherit;
    font-weight: bold;
    text-decoration: none;
}

footer a:hover {
    color: var(--couleur-lien-survol-footer);
}

footer a:visited {
    color: inherit;
}

/* formulaire*/ 

/* Contact Form Container */
#contact {
  width: 90%;
  max-width: 1200px;
  height: auto;
  margin: 30px auto;
  padding: 25px 30px;
  min-height: 70vh; /* Hauteur minimale augmentée */
  max-height: auto;
  margin-top: 1.9%;
  display: flex;
  flex-direction: column;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 0 20px rgba(0,0,0,0.1);
}

#contact h2 {
  text-align: center;
  margin-bottom: 25px;
  color: var(--couleur-texte-body);
  font-size: clamp(1.5em, 4vw, 2em); /* Taille de police adaptative */
}

/* Form Layout */
#contact form {
  display: flex;
  flex-direction: column;
  gap: 25px; /* Plus d'espace entre les éléments */
  flex: 1;
  max-width: 900px;
  margin: 0 auto;
  width: 100%;
  /* Ajustement pour les petits écrans */
  padding-bottom: 30px; /* Espace en bas du formulaire augmenté */
}

/* Form Group */
#contact form > div {
  position: relative;
  margin-bottom: 10px; /* Augmenté légèrement */
}

/* Labels */
#contact label {
  display: block;
  margin-bottom: 8px;
  color: var(--couleur-texte-body);
  font-weight: 500;
}

/* Required Mark */
#contact .required-mark {
    color: red;
    transition: color 0.3s ease;
}

/* Inputs and Textarea */
#contact input:not([type="checkbox"]),
#contact textarea {
  width: 100%;
  padding: 15px; /* Augmenté de 10px à 15px pour agrandir les champs */
  border: 2px solid #e0e0e0;
  border-radius: 6px;
  font-size: 16px; /* Vous pouvez aussi augmenter cette valeur, par exemple à 18px */
  transition: all 0.3s ease;
  box-sizing: border-box;
  margin-bottom: 5px; /* Ajoute un peu d'espace sous les champs */
}

/* Add error state styling */
#contact input:not([type="checkbox"]).invalid,
#contact textarea.invalid {
    border-color: #ff0000;
    background-color: #fff5f5;
}

#contact input:focus,
#contact textarea:focus {
    border-color: var(--couleur-bouton);
    outline: none;
    box-shadow: 0 0 8px rgba(49, 79, 47, 0.1);
}

/* Input placeholder styles */
#contact input::placeholder,
#contact textarea::placeholder {
    color: #999;
    font-style: italic;
    font-size: 14px;
}

/* Textarea */
#contact textarea {
  min-height: 180px; /* Augmenté de 100px à 180px */
  max-height: 300px; /* Augmenté de 150px à 300px */
  resize: vertical;
}

/* Checkbox Container */
#contact .checkbox-container {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 10px 0;
}

#contact .checkbox-container .error-message {
    position: absolute;
    left: 0;
    bottom: -20px;
}

#contact input[type="checkbox"] {
    width: 20px;
    height: 20px;
    margin-top: 3px;
}

/* Error Messages */
.error-message {
    position: absolute;
    top: 100%;
    left: 0;
    color: red;
    font-size: 12px;
    margin-top: 5px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.error-message.visible {
    opacity: 1;
    visibility: visible;
}

/* Submit Button */
#submit-btn {
    align-self: center;
    min-width: 200px;
    background-color: var(--couleur-bouton);
    color: white;
    padding: 15px 40px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 16px;
    font-weight: 500;
    transition: all 0.3s ease;
    margin-top: 10px;
}

#submit-btn:hover {
    background-color: var(--couleur-bouton-survol);
    transform: translateY(-2px);
}


.modal {
    display: none;
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal.show {
    opacity: 1;
}

.modal-content {
    position: relative;
    background: #fff;
    width: 90%;
    max-width: 400px;
    margin: 15% auto;
    padding: 30px;
    border-radius: 8px;
    text-align: center;
    transform: translateY(-20px);
    transition: transform 0.3s ease;
}

.modal.show .modal-content {
    transform: translateY(0);
}

.success-icon {
    color: #4CAF50;
    font-size: 48px;
    margin-bottom: 20px;
}

.close-modal {
    margin-top: 20px;
    padding: 10px 20px;
    border: none;
    background: var(--couleur-bouton);
    color: white;
    border-radius: 4px;
    cursor: pointer;
    font-family: var(--police-header);
}

.close-modal:hover {
    background: var(--couleur-bouton-survol);
}

.checkbox-container {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 20px 0;
    position: relative;
    min-height: 30px;
}

.checkbox-container input[type="checkbox"] {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

.checkbox-container label {
    display: inline-flex;
    align-items: center;
    padding-left: 35px;
    cursor: pointer;
    user-select: none;
    position: relative;
    min-height: 24px;
    line-height: 24px;
}

.checkbox-container label:before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 24px;
    height: 24px;
    border: 2px solid var(--couleur-bouton);
    border-radius: 4px;
    transition: all 0.3s ease;
}

.checkbox-container label:after {
    content: '';
    position: absolute;
    left: 8px;
    top: 50%;
    width: 8px;
    height: 14px;
    border: solid white;
    border-width: 0 3px 3px 0;
    transform: translateY(-65%) rotate(45deg) scale(0);
    transition: all 0.3s ease;
}

.checkbox-container .required-mark {
    display: inline-flex;
    align-items: center;
    margin-left: 4px;
}

.checkbox-container input[type="checkbox"]:checked + label:before {
    background: var(--couleur-bouton);
    border-color: var(--couleur-bouton);
}

.checkbox-container input[type="checkbox"]:checked + label:after {
    transform: translateY(-65%) rotate(45deg) scale(1);
}

.checkbox-container input[type="checkbox"]:focus + label:before {
    box-shadow: 0 0 0 3px rgba(var(--couleur-bouton-rgb), 0.2);
}

.checkbox-container:hover label:before {
    border-color: var(--couleur-bouton-survol);
}

/* Styles généraux pour la hero-section */
.hero-section {
  position: relative;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  margin: 0 !important;
  padding: 0 !important;
}

.hero-section::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* Ajout d'un fond semi-transparent pour améliorer la lisibilité */
  backdrop-filter: blur(3px); /* Crée un effet de flou */
  background-color: rgba(0, 0, 0, 0.2); /* Léger assombrissement */
}

.hero-content {
  text-align: center;
  max-width: 800px;
  margin: 0 auto;
  padding: 40px 20px;
  position: relative;
  z-index: 2;
}

.hero-section.hero-index {
  background-image: url('../images/baniere.jpeg');
  background-size: cover;
  background-position: center;
  width: 100vw;
  height: 50vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 40px 20px;
  position: relative;
  
}


.hero-section.hero-index .hero-content h1 {
  font-size: 2.8em;
  font-weight: 700;
  margin-bottom: 25px;
  color: white; /* Texte blanc pour contraster avec le fond assombri /
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); / Ombre légère */
  letter-spacing: 0.5px;
}

.hero-section.hero-index .hero-content p {
  font-size: 1.3em;
  line-height: 1.6;
  color: white; /* Texte blanc pour contraster avec le fond assombri /
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); / Ombre légère */
  margin: 0 auto;
  max-width: 90%;
  font-weight: 500;
}
/* Bouton d'appel à l'action */
.hero-section.hero-index .cta-button {
  display: inline-block;
  background-color: white;
  color: #00822D;
  font-weight: bold;
  padding: 14px 32px;
  border-radius: 30px;
  text-decoration: none;
  font-size: 16px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.hero-section.hero-index .cta-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

/* Styles pour la section services */
.page-content {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

.services-overview {
  margin-bottom: 40px;
}

.services-overview h2 {
  text-align: center;
  font-size: clamp(24px, 4vw, 36px);
  margin-bottom: 2rem;
  position: relative;
  padding-bottom: 15px;
}

.services-overview h2::after {
  content: '';
  position: absolute;
  width: 80px;
  height: 3px;
  background-color: #00cc66;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
}

.service-card {
  background-color: white;
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: all 0.3s ease;
  position: relative;
}

.service-card::before {
  content: '';
  position: absolute;
  width: 100%;
  height: 5px;
  background-color: #00cc66;
  top: 0;
  left: 0;
}

.service-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.12);
}

.service-card a {
  text-decoration: none;
  color: inherit;
}

.service-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}

.service-card:hover img {
  transform: scale(1.05);
}

.service-card h3 {
  padding: 1.2rem 1.5rem 0.5rem;
  margin: 0;
  font-size: 20px;
  color: #00822D;
}

.service-card p {
  padding: 0 1.5rem 1.5rem;
  margin: 0;
  color: #444;
  line-height: 1.6;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .hero-section.hero-index {
    padding: 2.5rem 1.5rem;
  }
  
  .services-grid {
    grid-template-columns: 1fr;
  }

  .hero-section.hero-index {
    height: 60vh;
    
}
}



/* Solution de secours pour les navigateurs qui ne supportent pas backdrop-filter */
@supports not (backdrop-filter: blur(3px)) {
  .hero-section::before {
    background-color: rgba(0, 0, 0, 0.4); /* Assombrissement plus prononcé si le flou n'est pas supporté */
  }
}

#services {
    background-color: #FAFAFA;
    padding: 40px 20px;
    margin: 20px 0;
}

#services h2 {
    text-align: center;
    color: #00822D;
    position: relative;
    margin-bottom: 40px;
    font-size: 2em;
}

#services h2::after {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background-color: #00822D;
}

.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    max-width: 1200px;
    margin: 0 auto;
}

.service {
    background-color: #ffffff;
    color: white;
    border: 1px solid rgba(46, 90, 28, 0.1);
    border-radius: 8px;
    padding: 20px;
    text-align: center;
    transition: all 0.3s ease;
    box-shadow: 0 2px 10px rgba(46, 90, 28, 0.05);
}

.service:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(46, 90, 28, 0.1);
    border-color: #00822D;
    background-color: #ffffff;
}

.service img {
    width: 150px;
    height: 150px;
    object-fit: contain;
    border-radius: 8px;
    margin-bottom: 15px;
}

.service h3 {
    color: #00822D;
    margin: 10px 0;
}

.service p {
    color: #00822D;
    line-height: 1.5;
}

.service:hover h3,
.service:hover p {
    color: #00822D; /* Le texte reste vert au survol */
}

footer {
    background-color: var(--couleur-fond-footer);
    padding: 20px;
    width: 100%;
    box-sizing: border-box;
}

.footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    max-width: 1200px;
    margin: 0 auto;
}

/* Social Icons Wrapper */
.wrapper {
    display: flex;
    gap: 1rem;
    list-style: none;
    padding: 0;
    margin: 0;
    justify-content: center;
}

/* Icon Base Styles */
.wrapper .icon {
    position: relative;
    background: #ffffff;
    border-radius: 50%;
    padding: 8px;
    width: 25px;
    height: 25px;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    transform-style: preserve-3d;
    perspective: 1000px;
}

.wrapper .icon::after {
    content: '';
    position: absolute;
    top: -10px;  /* Extend clickable area */
    left: 0;
    right: 0;
    bottom: -10px;
    z-index: 1;
}

.wrapper .icon img {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.wrapper .icon a {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}


.wrapper .icon a span {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 1.2em;
}

.tooltip::before {
    content: '';
    position: absolute;
    height: 8px;
    width: 8px;
    background: #ffffff;
    bottom: -3px;
    left: 50%;
    transform: translateX(-50%) rotate(45deg);
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Hover Effects */
.wrapper .icon:hover .tooltip {
    top: -45px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.wrapper .icon:hover a {
    color: #fff;
}

/* Facebook Hover Effects */
.wrapper .icon:nth-child(1):hover,
.wrapper .icon:nth-child(1):hover .tooltip,
.wrapper .icon:nth-child(1):hover .tooltip::before {
    background: var(--facebook);
}

/* Instagram Hover Effects */
.wrapper .icon:nth-child(2):hover,
.wrapper .icon:nth-child(2):hover .tooltip,
.wrapper .icon:nth-child(2):hover .tooltip::before {
    background: var(--instagram);
}

/* Leboncoin Hover Effects */
.wrapper .icon:nth-child(3):hover,
.wrapper .icon:nth-child(3):hover .tooltip,
.wrapper .icon:nth-child(3):hover .tooltip::before {
    background: var(--leboncoin);
}

.wrapper .icon:nth-child(3) img {
    width: 1rem;
    height: 1rem;
    object-fit: contain;
    content: url('../images/leboncoin-icon-vert.png');
}

.wrapper .icon:nth-child(3):hover img {
    width: 1.8rem;
    height: 1.8rem;
    object-fit: contain;
    content: url('../images/icon-leboncoin.png');
}

.wrapper .icon:hover {
    color: #fff;
    transform: translateY(-10px);
}

/* Footer Links */
.footer-links {
    text-align: left;
    color: var(--couleur-texte-footer);
    padding: 10px 0;
}
.footer-links small {
    font-size: 0.9em;
}

.tooltip,
.wrapper .icon .tooltip {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    font-size: 12px; /* Reduced size */
    background: #ffffff;
    color: #ffffff;
    padding: 5px 10px;
    border-radius: 5px;
    box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
    opacity: 0;
    pointer-events: none;
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    will-change: transform, opacity;
}

/* Apply to LeBonCoin tooltip specifically */
.wrapper .icon:nth-child(3) .tooltip {
    font-size: 12px;
}

.footer-links a {
    color: var(--couleur-texte-footer);
    text-decoration: none;
}

.footer-links a:hover {
    color: var(--couleur-lien-survol);
}


/* Installation */
/* Styles pour la page Installation & Mise en Service */

/* Conteneur principal */
.page-content {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
  }
  
  /* Hero Banner */
  .hero-banner {
    display: flex;
    background: linear-gradient(135deg, #00621F 0%, #00822D 100%);
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 40px;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
  }
  
  .hero-content {
    flex: 1;
    color: white;
    padding: 4rem 3rem;
  }
  
  .hero-content h1 {
    font-size: clamp(28px, 5vw, 48px);
    margin-bottom: 0.5rem;
    font-weight: 700;
  }
  
  .hero-content h2 {
    font-size: clamp(18px, 3vw, 28px);
    margin-bottom: 1.5rem;
    font-weight: 400;
    opacity: 0.9;
  }
  
  .hero-content p {
    font-size: clamp(16px, 2vw, 18px);
    margin-bottom: 2rem;
    max-width: 600px;
    line-height: 1.6;
    opacity: 0.9;
  }
  
  .hero-image {
    flex: 1;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: rgba(0, 0, 0, 0.2);
  }
  
  /* Bouton d'appel à l'action */
  .cta-button {
    display: inline-block;
    background-color: white;
    color: #00822D;
    font-weight: bold;
    padding: 14px 32px;
    border-radius: 30px;
    text-decoration: none;
    font-size: 16px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }
  
  .cta-button:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
  }
  
  /* Animation du Server Rack */
  .server-rack {
    width: 200px;
    height: 300px;
    background-color: #1a1a1a;
    border-radius: 5px;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 15px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
    transform: perspective(800px) rotateY(-15deg);
  }
  
  .server {
    height: 40px;
    background-color: #333;
    margin: 5px 0;
    border-radius: 3px;
    position: relative;
    overflow: hidden;
  }
  
  .server::before {
    content: '';
    position: absolute;
    width: 20px;
    height: 6px;
    background-color: #555;
    left: 10px;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 3px;
  }
  
  .server::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 8px;
    background-color: #444;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    border-radius: 50%;
  }
  
  .server.active::after {
    background-color: #00cc66;
    box-shadow: 0 0 10px rgba(0, 204, 102, 0.7);
    animation: blink 2s infinite;
  }
  
  @keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
  }
  
  .lights {
    position: absolute;
    top: 10px;
    right: 10px;
    display: flex;
    flex-direction: column;
    gap: 6px;
  }
  
  .light {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background-color: #f00;
    animation: lightBlink 1.5s infinite;
  }
  
  .light:nth-child(2) {
    background-color: #0f0;
    animation-delay: 0.5s;
  }
  
  .light:nth-child(3) {
    background-color: #00f;
    animation-delay: 1s;
  }
  
  @keyframes lightBlink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
  }
  
  /* Services Overview */
  .services-overview {
    margin-bottom: 40px;
  }
  
  .services-overview h2 {
    text-align: center;
    font-size: clamp(24px, 4vw, 36px);
    margin-bottom: 2rem;
    position: relative;
    padding-bottom: 15px;
  }
  
  .services-overview h2::after {
    content: '';
    position: absolute;
    width: 80px;
    height: 3px;
    background-color: #00cc66;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  
  .services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
  }
  
  .service-card {
    background-color: white;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
    padding: 30px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
  }
  
  .service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.12);
  }
  
  .service-card::before {
    content: '';
    position: absolute;
    width: 100%;
    height: 5px;
    background-color: #00cc66;
    top: 0;
    left: 0;
  }
  
  .service-icon {
    height: 120px;
    margin-bottom: 25px;
    font-size: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  
  /* Styles pour l'icône logicielle */
  .software-icon .window {
    width: 120px;
    height: 100px;
    background-color: #f5f5f5;
    border-radius: 6px;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    overflow: hidden;
  }
  
  .window-header {
    height: 25px;
    background-color: #e0e0e0;
    display: flex;
    align-items: center;
    padding: 0 8px;
  }
  
  .dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 5px;
    background-color: #ff5f57;
  }
  
  .dot:nth-child(2) {
    background-color: #ffbd2e;
  }
  
  .dot:nth-child(3) {
    background-color: #28ca41;
  }
  
  .window-content {
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: calc(100% - 25px);
  }
  
  .progress-bar {
    width: 100%;
    height: 15px;
    background-color: #ddd;
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 10px;
  }
  
  .progress {
    height: 100%;
    background-color: #00cc66;
    animation: progressAnimation 3s infinite;
    width: 0;
  }
  
  @keyframes progressAnimation {
    0% { width: 0; }
    50% { width: 70%; }
    100% { width: 100%; }
  }
  
  /* Animation Imprimante */
  .printer-animation {
    position: relative;
    width: 100%;
    height: 120px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: -60px;
    overflow: visible;
  }
  
  .printer {
    position: relative;
    transform: scale(0.5);
  }
  
  input#button {
    display: none;
  }
  
  .top {
    position: absolute;
    background-color: #282c30;
    width: 120px;
    height: 50px;
    border-radius: 15px 15px 0 0;
    border: 4px solid black;
    transform: translate(-50%, -50%);
    left: 50%;
    top: 50%;
    box-shadow: inset 15px 0 #1e2124;
    z-index: -1;
  }
  
  .middle {
    position: absolute;
    background-color: #4a4f55;
    border: 4px solid black;
    width: 200px;
    height: 80px;
    border-radius: 15px;
    top: 25px;
    left: -100px;
    box-shadow: inset 15px 0 #373b3d;
    z-index: 5;
  }
  
  .trace, .trace:before {
    position: absolute;
    background-color: #282c30;
  }
  
  .trace {
    border: 4px solid black;
    width: 130px;
    height: 60px;
    border-radius: 8px;
    left: -65px;
    top: 90px;
    box-shadow: inset 0 25px #1e2124;
    z-index: 2;

  }
  
  .trace:before {
    content: "";
    width: 50px;
    height: 15px;
    border-radius: 0 0 8px 8px;
    top: 60px;
    left: 40px;
    border-bottom: 4px solid black;
    border-right: 4px solid black;
    border-left: 4px solid black;
  }
  
  .trace:after {
    position: absolute;
    content: "";
    width: 4px;
    height: 40px;
    background-color: black;
    left: 15px;
    top: 10px;
    box-shadow: 50px 0 black, 95px 0 black;
  }
  
  .paper {
    position: absolute;
    border: 4px solid black;
    background-color: white;
    width: 100px;
    height: 110px;
    top: -10px;
    left: -50px;
    z-index: 3;
    transform: translateY(0);
    transition: none;
  }
  
  .button {
    position: absolute;
    z-index: 30;
    border-radius: 50%;
    border: 4px solid black;
    background-color: #fd6e49;
    width: 12px;
    height: 12px;
    left: 70px;
    cursor: pointer;
    top: 35px;
    animation: pulse 1.5s infinite;
  }
  
  .button:active {
    background-color: #52dc97;
  }
  
  .button:hover {
    animation: none;
  }
  
  .paper:before {
    content: "Contactez-nous pour un devis";
    position: absolute;
    font-family: arial;
    text-align: center;
    width: 100%;
    top: 40px;
    font-size: 20px;
    transform: scaleY(-1);
    opacity: 0;
  }
  
  input#button:checked ~ .paper {
    animation: print 2s linear forwards;
  }

  input#button:not(:checked) ~ .paper {
    animation: none;
    transform: translateY(0);
    z-index: 3;
  }
  
  input#button:checked ~ .paper:before {
    animation: display 2s linear forwards;
}
  
@keyframes print {
    0% {
      transform: translateY(0);
      z-index: 3;
    }
    10% {
      z-index: 3; /* Bien au-dessus de tous les éléments de l'imprimante */
    }
    60% {
      transform: translateY(80px); /* Descendre moins bas */
      z-index: 3;
    }
    100% {
      transform: translateY(80px); /* Rester à cette hauteur */
      z-index: 3;
    }
  }
  
  @keyframes display {
    0% {opacity: 0; transform: scaleY(-1);}
    40% {opacity: 0; transform: scaleY(-1);}
    60% {opacity: 1; transform: scaleY(-1);}
    80% {opacity: 1; transform: scaleY(-1);}
    100% {opacity: 1; transform: scaleY(1);}
  }
  
  @keyframes pulse {
    0% {transform: scale(.9);}
    70% {transform: scale(1); box-shadow: 0 0 0 3px rgba(253, 110, 73, .3);}
    100% {transform: scale(.9); box-shadow: 0 0 0 0 rgba(253, 110, 73, .3);}
  }
  
  /* Titres et listes de service */
  .service-card h3 {
    font-size: 20px;
    margin-bottom: 15px;
    color: #00cc66;
  }
  
  .service-card ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
  }
  
  .service-card ul li {
    padding: 12px 0;
    position: relative;
    padding-left: 25px;
    line-height: 1.5;
    border-bottom: 1px solid #f0f0f0;
  }
  
  .service-card ul li:last-child {
    border-bottom: none;
  }
  
  .service-card ul li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: #00cc66;
    font-weight: bold;
  }
  
  .service-card ul li strong {
    display: block;
    margin-bottom: 5px;
    color: #444;
  }
  
 /* Workflow Section - Base existante */
.workflow {
  margin: 4rem 0;
  padding: 3rem 2rem;
  background-color: #f8f9fa;
  border-radius: 12px;
}

.workflow h2 {
  text-align: center;
  font-size: clamp(24px, 4vw, 36px);
  margin-bottom: 3rem;
  position: relative;
  padding-bottom: 15px;
}

.workflow h2::after {
  content: '';
  position: absolute;
  width: 80px;
  height: 3px;
  background-color: #00cc66;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
}

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

.workflow-step {
  display: flex;
  margin-bottom: 3rem;
  position: relative;
  align-items: flex-start; /* Aligne les éléments au début */
}

.workflow-step:last-child {
  margin-bottom: 0;
}

/* Améliorations pour l'alignement */
.step-number {
  width: 40px;
  height: 40px;
  background-color: #00cc66;
  color: white;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 20px;
  font-weight: bold;
  flex-shrink: 0;
  margin-top: 5px; /* Ajuste verticalement pour aligner avec le titre */
}

.step-content {
  margin-left: 20px;
  flex-grow: 1;
}

.step-content h3 {
  margin-top: 0;
  margin-bottom: 10px;
  color: #333;
  font-size: 20px;
}

.step-content p {
  margin: 0;
  color: #666;
  line-height: 1.6;
}

/* Style pour les connecteurs */
.connector {
  position: absolute;
  left: 20px; /* Centre du cercle */
  top: 45px; /* Bas du cercle */
  width: 2px;
  height: calc(100% + 15px); /* Hauteur ajustée */
  background-color: #00cc66;
  z-index: 1;
}

.workflow-step:last-child .connector {
  display: none;
}

/* Styles responsifs */
@media (max-width: 768px) {
  .workflow {
    padding: 2rem 1rem;
  }
  
  .workflow-step {
    flex-direction: column;
  }
  
  .step-content {
    margin-left: 0;
    margin-top: 15px;
  }
  
  .step-number {
    margin-left: 0;
  }
  
  .connector {
    left: 20px;
    top: 45px;
    height: calc(100% - 25px);
  }
}
  
  .step-number {
    width: 50px;
    height: 50px;
    background-color: #00cc66;
    color: white;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: bold;
    position: relative;
    z-index: 2;
    box-shadow: 0 0 0 5px rgba(0, 204, 102, 0.15);
    flex-shrink: 0;
  }
  
  .step-content {
    margin-left: 30px;
    padding: 0 20px;
  }
  
  .step-content h3 {
    font-size: 20px;
    margin-bottom: 10px;
    color: #00cc66;
  }
  
  .step-content p {
    line-height: 1.6;
  }
  
  .connector {
    position: absolute;
    left: 25px;
    top: 50px;
    width: 2px;
    height: calc(100% + 2rem);
    background-color: rgba(0, 204, 102, 0.15);
    z-index: 1;
  }
  
  .workflow-step:last-child .connector {
    display: none;
  }
  
  /* Call to Action Section */
  .call-to-action {
    display: flex;
    background: linear-gradient(135deg, #004d1a 0%, #00cc66 100%);
    border-radius: 12px;
    overflow: hidden;
    margin: 4rem 0;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.15);
    position: relative;
  }
  
  .cta-content {
    flex: 3;
    color: white;
    padding: 3rem;
  }
  
  .cta-content h2 {
    font-size: clamp(24px, 4vw, 36px);
    margin-bottom: 1rem;
  }
  
  .cta-content p {
    font-size: 18px;
    margin-bottom: 2rem;
    max-width: 600px;
    line-height: 1.6;
    opacity: 0.9;
  }
  
  .cta-badge {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .logo-badge {
    max-width: 100%; /* Assure que le logo ne dépasse pas son conteneur */
    width: 190px; /* Taille de base pour les écrans standards */
    height: auto; /* Maintient le rapport hauteur/largeur */
}

/* Adaptation pour différentes tailles d'écran */
@media screen and (max-width: 768px) {
    .logo-badge {
        width: 150px; /* Plus petit sur tablette */
    }
}

@media screen and (max-width: 480px) {
    .logo-badge {
        width: 150px; /* Encore plus petit sur mobile */
    }
}
  
  .badge-content {
    background-color: white;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
  }
  
  .satisfaction {
    font-size: 36px;
    font-weight: bold;
    color: #00cc66;
  }
  
  .badge-text {
    font-size: 14px;
    text-align: center;
    color: #444;
    font-family: var(--police-header);
  }
  
  /* Responsive */
  @media (max-width: 768px) {
    .hero-banner,
    .call-to-action {
      flex-direction: column;
    }
    
    .hero-content,
    .cta-content {
      padding: 2rem;
    }
    
    .hero-image,
    .cta-badge {
      padding: 2rem;
    }
    
    .services-grid {
      grid-template-columns: 1fr;
    }
    
    .workflow {
      padding: 2rem 1rem;
    }
  }


  /* Optimisation */

/* Animation du compteur de vitesse */
.speedometer {
    width: 220px;
    height: 220px;
    background-color: #222;
    border-radius: 50%;
    position: relative;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
    margin: 40px auto;
  }
  
  .speedometer-dial {
    position: absolute;
    width: 200px;
    height: 200px;
    background: radial-gradient(#333, #111);
    border-radius: 50%;
    top: 10px;
    left: 10px;
  }
  
  .speedometer-center {
    position: absolute;
    width: 20px;
    height: 20px;
    background-color: #00cc66;
    border-radius: 50%;
    top: 100px;
    left: 100px;
    z-index: 2;
    box-shadow: 0 0 10px rgba(0, 204, 102, 0.7);
  }
  
  .speedometer-needle {
    position: absolute;
    width: 100px;
    height: 4px;
    background-color: #ff3333;
    top: 108px;
    left: 110px;
    transform-origin: 0 50%;
    z-index: 1;
    transform: rotate(-90deg);
    animation: speedNeedle 3s ease-in-out infinite;
  }
  
  .speedometer-marks {
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 0;
  }
  
  .mark {
    position: absolute;
    width: 6px;
    height: 15px;
    background-color: #fff;
    top: 10px;
    left: 107px;
    transform-origin: 50% 100px;
  }
  
  .mark:nth-child(1) { transform: rotate(-60deg); }
  .mark:nth-child(2) { transform: rotate(-30deg); }
  .mark:nth-child(3) { transform: rotate(0deg); }
  .mark:nth-child(4) { transform: rotate(30deg); }
  .mark:nth-child(5) { transform: rotate(60deg); }
  
  @keyframes speedNeedle {
    0% { transform: rotate(-90deg); }
    50% { transform: rotate(90deg); }
    100% { transform: rotate(-90deg); }
  }
  
  /* Animation de l'ordinateur nettoyage */
  .computer {
    width: 120px;
    height: 100px;
    position: relative;
    margin: 0 auto;
  }
  
  .computer-screen {
    width: 100px;
    height: 70px;
    background-color: #333;
    border-radius: 5px 5px 0 0;
    position: relative;
    overflow: hidden;
    border: 3px solid #222;
  }
  
  .computer-base {
    width: 120px;
    height: 15px;
    background-color: #444;
    border-radius: 3px;
    position: absolute;
    bottom: 0;
    left: -10px;
    box-shadow: 0 3px 0 rgba(0, 0, 0, 0.2);
  }
  
  .scan-line {
    position: absolute;
    width: 100%;
    height: 5px;
    background-color: rgba(0, 204, 102, 0.5);
    top: 0;
    left: 0;
    animation: scanMove 2s linear infinite;
    box-shadow: 0 0 10px rgba(0, 204, 102, 0.7);
  }
  
  @keyframes scanMove {
    0% { top: 0; }
    100% { top: 65px; }
  }
  
  /* Animation des composants matériels */
  .hardware-components {
    position: relative;
    width: 140px;
    height: 120px;
    margin: 0 auto;
  }
  
  .ram-stick {
    position: absolute;
    width: 80px;
    height: 20px;
    background: linear-gradient(90deg, #777, #999, #777);
    border-radius: 3px;
    top: 20px;
    left: 30px;
    transform: rotate(-10deg);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  }
  
  .ram-stick::before {
    content: '';
    position: absolute;
    width: 70px;
    height: 5px;
    background-color: #555;
    top: 8px;
    left: 5px;
    border-radius: 2px;
  }
  
  .ssd-drive {
    position: absolute;
    width: 60px;
    height: 40px;
    background-color: #333;
    border-radius: 5px;
    bottom: 10px;
    left: 15px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  }
  
  .ssd-drive::after {
    content: 'SSD';
    position: absolute;
    font-size: 14px;
    font-weight: bold;
    color: #00cc66;
    top: 12px;
    left: 15px;
  }
  
  .cpu-chip {
    position: absolute;
    width: 40px;
    height: 40px;
    background-color: #444;
    border-radius: 5px;
    bottom: 20px;
    right: 15px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  }
  
  .cpu-chip::before, .cpu-chip::after {
    content: '';
    position: absolute;
    background-color: #666;
  }
  
  .cpu-chip::before {
    width: 30px;
    height: 2px;
    top: 10px;
    left: 5px;
    box-shadow: 0 8px 0 #666, 0 16px 0 #666;
  }
  
  .cpu-chip::after {
    width: 2px;
    height: 30px;
    top: 5px;
    left: 10px;
    box-shadow: 8px 0 0 #666, 16px 0 0 #666;
  }

    
  .service-card ul li strong {
    color: #333;
  }
  
  .call-to-action {
    background: linear-gradient(135deg, #00621F 0%, #00cc66 100%);
  }
  
  /* Styles responsifs spécifiques */
  @media (max-width: 768px) {
    .speedometer {
      width: 180px;
      height: 180px;
    }
    
    .speedometer-dial {
      width: 160px;
      height: 160px;
    }
    
    .speedometer-center {
      top: 80px;
      left: 80px;
    }
    
    .speedometer-needle {
      width: 80px;
      top: 88px;
      left: 90px;
    }
    
    .mark {
      top: 8px;
      left: 87px;
      transform-origin: 50% 80px;
    }
    
     
    .hardware-components, 
    .computer {
      transform: scale(0.9);
    }
  }

/* Sécurité Protection */
/* Animation du bouclier de sécurité */
.shield-animation {
    width: 220px;
    height: 220px;
    position: relative;
    margin: 40px auto;
  }
  
  .shield {
    position: relative;
    width: 180px;
    height: 200px;
    margin: 0 auto;
  }
  
  .shield-front {
    position: absolute;
    width: 180px;
    height: 200px;
    background: linear-gradient(135deg, #2c3e50 0%, #4a6278 100%);
    border-radius: 90px 90px 20px 20px;
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
    overflow: hidden;
  }
  
  .shield-emblem {
    position: absolute;
    width: 100px;
    height: 100px;
    background-color: #00cc66;
    top: 50px;
    left: 40px;
    clip-path: polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%);
    box-shadow: 0 0 15px rgba(0, 204, 102, 0.7);
    z-index: 2;
  }
  
  .shield-emblem::before {
    content: '✓';
    position: absolute;
    font-size: 60px;
    color: white;
    top: 15px;
    left: 30px;
  }
  
  .shield-scan-line {
    position: absolute;
    width: 180px;
    height: 10px;
    background-color: rgba(0, 204, 102, 0.5);
    top: 0;
    left: 0;
    animation: shieldScan 3s ease-in-out infinite;
    box-shadow: 0 0 10px rgba(0, 204, 102, 0.7);
    z-index: 1;
  }
  
  @keyframes shieldScan {
    0% { top: 0; }
    50% { top: 190px; }
    100% { top: 0; }
  }
  
  /* Nouvel icône d'antivirus simplifié */
  .antivirus-simple {
    width: 120px;
    height: 120px;
    position: relative;
    margin: 0 auto;
  }
  
  .computer-icon {
    position: absolute;
    width: 70px;
    height: 50px;
    background-color: #444;
    bottom: 20px;
    left: 25px;
    border-radius: 5px;
  }
  
  .computer-icon::before {
    content: '';
    position: absolute;
    width: 40px;
    height: 30px;
    background-color: #00cc66;
    top: 5px;
    left: 15px;
    border-radius: 2px;
  }
  
  .computer-icon::after {
    content: '';
    position: absolute;
    width: 30px;
    height: 10px;
    background-color: #444;
    bottom: -10px;
    left: 20px;
  }
  
  .shield-icon {
    position: absolute;
    width: 40px;
    height: 50px;
    background-color: #00cc66;
    top: 20px;
    left: 65px;
    border-radius: 20px 20px 5px 5px;
    box-shadow: 0 0 10px rgba(0, 204, 102, 0.5);
    z-index: 2;
  }
  
  .shield-icon::before {
    content: '✓';
    position: absolute;
    font-size: 24px;
    color: white;
    top: 10px;
    left: 12px;
  }
  
  /* Nouveau cadenas simplifié */
  .simple-lock {
    width: 120px;
    height: 120px;
    position: relative;
    margin: 0 auto;
  }
  
  .lock-body {
    position: absolute;
    width: 60px;
    height: 40px;
    background-color: #444;
    bottom: 35px;
    left: 33px;
    border-radius: 5px;
  }
  
  .lock-shackle {
    position: absolute;
    width: 40px;
    height: 40px;
    border: 8px solid #444;
    border-bottom: none;
    border-radius: 20px 20px 0 0;
    bottom: 70px;
    left: 36px;
  }
  
  .lock-body::after {
    content: '';
    position: absolute;
    width: 10px;
    height: 15px;
    background-color: #222;
    border-radius: 50% 50% 0 0;
    bottom: 15px;
    left: 25px;
  }
  
  /* Styles spécifiques à la page de sécurité */
  .service-card .antivirus-icon, 
  .service-card .data-security-icon {
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 15px;
  }
  
  .service-card ul li strong {
    color: #333;
  }
  

  
  /* Styles responsifs spécifiques */
  @media (max-width: 768px) {
    .shield-animation {
      width: 180px;
      height: 180px;
    }
    
    .shield {
      transform: scale(0.8);
    }
    
    .antivirus-simple, 
    .simple-lock {
      transform: scale(0.9);
    }
    
    .services-grid {
      grid-template-columns: 1fr;
    }
  }  
  
  /* Styles responsifs spécifiques */
  @media (max-width: 768px) {
    .shield-animation {
      width: 180px;
      height: 180px;
    }
    
    .shield {
      transform: scale(0.8);
    }
    
    .virus-scanner, 
    .data-lock, 
    .firewall-animation {
      transform: scale(0.9);
    }
  } 
/* Responsive adjustments */
@media (max-width: 768px) {
    .hero-banner {
        flex-direction: column;
    }
    
    .hero-content {
        padding: 3rem 2rem;
    }
    
    .hero-image {
        height: 250px;
    }
    
    .call-to-action {
        flex-direction: column;
    }
    
    .cta-badge {
        margin-bottom: 2rem;
    }
}

/* Dépannage */
/* CSS spécifique pour la page Dépannage & Réparation */
/* Utilise des noms de classes uniques pour éviter les conflits avec le header */

/* Outil de diagnostic dans le hero */
/* Styles généraux pour la page de dépannage */
.depannage-tool {
  width: 220px;
  height: 180px;
  position: relative;
  margin: 40px auto;
}

.screen-diagnostic {
  width: 180px;
  height: 140px;
  background-color: #222;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  border: 3px solid #222;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.5);
}

.scan-progress-bar {
  position: absolute;
  width: 160px;
  height: 8px;
  background-color: #333;
  bottom: 15px;
  left: 10px;
  border-radius: 4px;
  overflow: hidden;
}

.scan-progress-bar::after {
  content: '';
  position: absolute;
  height: 100%;
  width: 40%;
  background-color: #00cc66;
  border-radius: 4px;
  animation: scanProgress 3s ease-in-out infinite;
}

@keyframes scanProgress {
  0% { left: -50%; }
  100% { left: 100%; }
}

.pulse-dot {
  position: absolute;
  width: 30px;
  height: 30px;
  background-color: rgba(0, 204, 102, 0.2);
  border-radius: 50%;
  top: 40px;
  left: 75px;
  animation: pulseDot 2s ease-in-out infinite;
}

@keyframes pulseDot {
  0% { transform: scale(0.8); opacity: 0.7; }
  50% { transform: scale(1.2); opacity: 0.3; }
  100% { transform: scale(0.8); opacity: 0.7; }
}

.base-support {
  width: 220px;
  height: 20px;
  background-color: #444;
  border-radius: 5px;
  position: absolute;
  bottom: 0;
  left: 0;
  box-shadow: 0 3px 0 rgba(0, 0, 0, 0.2);
}

/* Icône de diagnostic modifiée - animation croix vers coche */
.diagnostic-wrapper {
  width: 120px;
  height: 90px;
  position: relative;
  margin: 10px auto;
}

.pc-screen {
  width: 90px;
  height: 65px;
  background-color: #333;
  border-radius: 5px 5px 0 0;
  position: relative;
  overflow: hidden;
  border: 3px solid #222;
  left: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.pc-base {
  width: 110px;
  height: 12px;
  background-color: #444;
  border-radius: 3px;
  position: absolute;
  bottom: 0;
  left: 5px;
  box-shadow: 0 3px 0 rgba(0, 0, 0, 0.2);
}

/* Animation de statut améliorée (croix à coche) */
.status-symbol {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  animation: statusChange 4s ease-in-out infinite;
  display: flex;
  align-items: center;
  justify-content: center;
}

@keyframes statusChange {
  0%, 45% { background-color: #ff3333; }
  55%, 100% { background-color: #00cc66; }
}

/* Conteneur pour la croix et la coche pour améliorer l'alignement */
.status-symbol::before {
  content: '✕';
  position: absolute;
  color: white;
  font-size: 24px;
  font-weight: bold;
  top: 5px;
  animation: showCross 4s ease-in-out infinite;
}

.status-symbol::after {
  content: '✓';
  position: absolute;
  color: white;
  font-size: 24px;
  font-weight: bold;
  top: 5px;
  opacity: 0;
  animation: showCheck 4s ease-in-out infinite;
}

@keyframes showCross {
  0%, 45% { opacity: 1; }
  50%, 100% { opacity: 0; }
}

@keyframes showCheck {
  0%, 45% { opacity: 0; }
  55%, 100% { opacity: 1; }
}

/* Nouvelle icône de dépannage matériel avec engrenages améliorés */
.hardware-wrapper {
  position: relative;
  width: 120px;
  height: 90px;
  margin: 10px auto;
}

.device-parts {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hardware-image {
  width: 150px!important;  /* ou la taille souhaitée */
  height: auto!important; /* maintient le ratio d'aspect */
}

/* Enlever les anciens éléments */
.monitor, .keyboard, .cable, .repair-tools {
  display: none;
}

/* Premier engrenage principal */
.gear-large {
  position: absolute;
  width: 40px;
  height: 40px;
  background-color: #555;
  border-radius: 50%;
  left: 30px;
  top: 25px;
  z-index: 2;
}

.gear-large::before {
  content: '';
  position: absolute;
  width: 16px;
  height: 16px;
  background-color: #333;
  border-radius: 50%;
  top: 12px;
  left: 12px;
}

/* Dents de l'engrenage principal */
.gear-large::after {
  content: '';
  position: absolute;
  width: 60px;
  height: 60px;
  top: -10px;
  left: -10px;
  background-color: #555;
  border-radius: 5px;
  animation: rotateGearLarge 8s linear infinite;
  clip-path: polygon(
    50% 0%, 45% 10%, 40% 0%, 35% 10%, 30% 0%, 25% 10%, 20% 0%,
    10% 25%, 0% 20%, 10% 35%, 0% 40%, 10% 45%, 0% 50%,
    10% 55%, 0% 60%, 10% 65%, 0% 70%, 10% 75%, 0% 80%,
    20% 100%, 25% 90%, 30% 100%, 35% 90%, 40% 100%, 45% 90%, 50% 100%,
    55% 90%, 60% 100%, 65% 90%, 70% 100%, 75% 90%, 80% 100%,
    90% 75%, 100% 80%, 90% 65%, 100% 60%, 90% 55%, 100% 50%,
    90% 45%, 100% 40%, 90% 35%, 100% 30%, 90% 25%, 100% 20%,
    80% 0%, 75% 10%, 70% 0%, 65% 10%, 60% 0%, 55% 10%
  );
}

/* Deuxième engrenage */
.gear-small {
  position: absolute;
  width: 25px;
  height: 25px;
  background-color: #777;
  border-radius: 50%;
  top: 25px;
  right: 30px;
  z-index: 1;
}

.gear-small::before {
  content: '';
  position: absolute;
  width: 10px;
  height: 10px;
  background-color: #333;
  border-radius: 50%;
  top: 7.5px;
  left: 7.5px;
}

/* Dents du second engrenage */
.gear-small::after {
  content: '';
  position: absolute;
  width: 38px;
  height: 38px;
  top: -6.5px;
  left: -6.5px;
  background-color: #777;
  border-radius: 3px;
  animation: rotateGearSmall 5s linear infinite reverse;
  clip-path: polygon(
    50% 0%, 42% 10%, 34% 0%, 26% 10%, 18% 0%,
    10% 18%, 0% 26%, 10% 34%, 0% 42%, 10% 50%,
    0% 58%, 10% 66%, 0% 74%, 10% 82%, 0% 90%,
    18% 100%, 26% 90%, 34% 100%, 42% 90%, 50% 100%,
    58% 90%, 66% 100%, 74% 90%, 82% 100%, 90% 82%,
    100% 74%, 90% 66%, 100% 58%, 90% 50%, 100% 42%,
    90% 34%, 100% 26%, 90% 18%, 100% 10%, 90% 0%,
    82% 10%, 74% 0%, 66% 10%, 58% 0%
  );
}

/* Ajouter un troisième petit engrenage */
.gear-tiny {
  position: absolute;
  width: 18px;
  height: 18px;
  background-color: #999;
  border-radius: 50%;
  bottom: 20px;
  left: 50px;
  z-index: 1;
}

.gear-tiny::before {
  content: '';
  position: absolute;
  width: 7px;
  height: 7px;
  background-color: #333;
  border-radius: 50%;
  top: 5.5px;
  left: 5.5px;
}

.gear-tiny::after {
  content: '';
  position: absolute;
  width: 28px;
  height: 28px;
  top: -5px;
  left: -5px;
  background-color: #999;
  border-radius: 2px;
  animation: rotateGearTiny 3s linear infinite;
  clip-path: polygon(
    50% 0%, 40% 10%, 30% 0%,
    10% 30%, 0% 40%, 10% 50%,
    0% 60%, 10% 70%, 0% 80%,
    30% 100%, 40% 90%, 50% 100%,
    60% 90%, 70% 100%, 90% 70%,
    100% 60%, 90% 50%, 100% 40%,
    90% 30%, 100% 20%, 90% 10%,
    70% 0%, 60% 10%
  );
}

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

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

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


.service-card ul li strong {
  color: #333;
}

.call-to-action {
  background: linear-gradient(135deg, #00621F 0%, #00cc66 100%);
}

/* Simplification du texte de devis */
.devis-text {
  font-size: 1.1em;
  color: #fff;
  margin: 15px 0;
}

/* Modifications à la disposition pour 2 services au lieu de 3 */
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

/* Styles responsifs spécifiques */
@media (max-width: 768px) {
  .depannage-tool {
    transform: scale(0.9);
  }
  
  .screen-diagnostic {
    width: 160px;
    height: 120px;
  }
  
  .scan-progress-bar {
    width: 140px;
  }
  
  .diagnostic-wrapper, 
  .hardware-wrapper {
    transform: scale(0.9);
  }
}

/* Sauvegarde et récupération */

/* Animation du disque de sauvegarde */
/* Styles généraux */
.hard-drive-logo {
  width: 220px;
  height: 220px;
  position: relative;
  background-color: #005C1E;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  box-shadow: 0 4px 12px rgba(0, 92, 30, 0.3);
}

.hard-drive-hero {
  width: 140px;
  height: 100px;
  background-color: #ffffff;
  border-radius: 6px;
  position: relative;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.hard-drive-hero::before {
  content: '';
  position: absolute;
  width: 120px;
  height: 80px;
  background-color: #e0e0e0;
  border-radius: 4px;
  top: 10px;
  left: 10px;
}

.disk {
  position: absolute;
  width: 60px;
  height: 60px;
  background-color: #333;
  border-radius: 50%;
  top: 20px;
  left: 20px;
}

.disk::after {
  content: '';
  position: absolute;
  width: 20px;
  height: 20px;
  background-color: #ffffff;
  border-radius: 50%;
  top: 20px;
  left: 20px;
}

.arm {
  position: absolute;
  width: 50px;
  height: 4px;
  background-color: #888;
  top: 48px;
  left: 65px;
  transform-origin: 0 50%;
  transform: rotate(-30deg);
}

.led {
  position: absolute;
  width: 8px;
  height: 8px;
  background-color: #ff3333;
  border-radius: 50%;
  top: 10px;
  right: 15px;
  animation: blink 2s infinite;
}

@keyframes blink {
  0%, 100% { opacity: 0.3; }
  50% { opacity: 1; }
}

/* Services Overview */
/* Cloud Storage Icon */
.cloud-storage {
  width: 120px;
  height: 100px;
  position: relative;
  margin: 0 auto;
}

.cloud-shape {
  position: absolute;
  width: 80px;
  height: 40px;
  background-color: #4a90e2;
  border-radius: 20px;
  bottom: 20px;
  left: 20px;
}

.cloud-shape::before {
  content: '';
  position: absolute;
  width: 30px;
  height: 30px;
  background-color: #4a90e2;
  border-radius: 50%;
  top: -15px;
  left: 15px;
}

.cloud-shape::after {
  content: '';
  position: absolute;
  width: 25px;
  height: 25px;
  background-color: #4a90e2;
  border-radius: 50%;
  top: -10px;
  left: 45px;
}

/* Recovery Icon */
.recuperation-image {
  width: 110px!important;
  height: 110px!important;
}



/* Styles responsifs */
@media (max-width: 768px) {
  .hero-banner {
    flex-direction: column;
    text-align: center;
  }

  .hero-content {
    padding-right: 0;
    margin-bottom: 30px;
  }

  .hard-drive-logo {
    width: 180px;
    height: 180px;
  }

  .hard-drive {
    width: 120px;
    height: 85px;
  }

  .hard-drive::before {
    width: 100px;
    height: 65px;
  }

  .disk {
    width: 50px;
    height: 50px;
    top: 18px;
    left: 18px;
  }

  .disk::after {
    width: 16px;
    height: 16px;
    top: 17px;
    left: 17px;
  }

  .arm {
    width: 40px;
    top: 42px;
    left: 55px;
  }

  .connector {
    width: 25px;
    height: 12px;
  }

  .workflow-step {
    flex-direction: column;
  }

  .step-number {
    margin-bottom: 15px;
    margin-right: 0;
  }

  .connector {
    display: none;
  }

  .call-to-action {
    flex-direction: column;
    text-align: center;
  }

  .cta-badge {
    margin: 20px auto 0;
  }
}
/* Formation */

/* Animations pour la partie formation */
.laptop-animation {
  width: 220px;
  height: 220px;
  position: relative;
  margin: 40px auto;
}

.laptop {
  position: relative;
  width: 180px;
  height: 110px;
  background-color: #333;
  border-radius: 5px 5px 0 0;
  transform: perspective(500px) rotateX(10deg);
  margin: 0 auto;
}

.laptop-screen {
  position: absolute;
  width: 160px;
  height: 100px;
  background-color: #111;
  border-radius: 3px;
  top: 5px;
  left: 10px;
  overflow: hidden;
}

.code-lines {
  position: absolute;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to bottom,
    transparent 0%,
    transparent 10%,
    #00cc66 10%,
    #00cc66 11%,
    transparent 11%,
    transparent 20%,
    #00cc66 20%,
    #00cc66 21%,
    transparent 21%,
    transparent 30%,
    #00cc66 30%,
    #00cc66 31%,
    transparent 31%,
    transparent 40%,
    #00cc66 40%,
    #00cc66 41%,
    transparent 41%,
    transparent 50%,
    #00cc66 50%,
    #00cc66 51%,
    transparent 51%,
    transparent 60%,
    #00cc66 60%,
    #00cc66 61%,
    transparent 61%,
    transparent 70%,
    #00cc66 70%,
    #00cc66 71%,
    transparent 71%,
    transparent 80%,
    #00cc66 80%,
    #00cc66 81%,
    transparent 81%,
    transparent 90%,
    #00cc66 90%,
    #00cc66 91%,
    transparent 91%
  );
  animation: typingCode 2s infinite;
}

.laptop-keyboard {
  position: absolute;
  width: 200px;
  height: 15px;
  background-color: #444;
  border-radius: 0 0 5px 5px;
  bottom: -15px;
  left: -10px;
  transform: perspective(500px) rotateX(30deg);
}

@keyframes typingCode {
  0% {
    opacity: 0.5;
    background-position: 0 0;
  }
  50% {
    opacity: 1;
    background-position: 10px 0;
  }
  100% {
    opacity: 0.5;
    background-position: 0 0;
  }
}

/* Animation des documents bureautiques */
.office-animation {
  position: relative;
  width: 140px;
  height: 120px;
  margin: 0 auto;
}

.document {
  position: absolute;
  width: 70px;
  height: 90px;
  background-color: #f5f5f5;
  border-radius: 3px;
  top: 10px;
  left: 10px;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
  transform: rotate(-5deg);
}

.document-content {
  position: absolute;
  width: 50px;
  height: 70px;
  top: 10px;
  left: 10px;
}

.doc-line {
  height: 4px;
  background-color: #999;
  margin-bottom: 8px;
  border-radius: 2px;
}

.doc-line:nth-child(1) {
  width: 100%;
}

.doc-line:nth-child(2) {
  width: 80%;
}

.doc-line:nth-child(3) {
  width: 60%;
}

.spreadsheet {
  position: absolute;
  width: 70px;
  height: 80px;
  background-color: #e6f7ee;
  border-radius: 3px;
  top: 20px;
  right: 10px;
  box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.2);
  transform: rotate(5deg);
  overflow: hidden;
}

.cells {
  position: absolute;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to right,
    transparent 0%,
    transparent 24%,
    #ccc 24%,
    #ccc 25%,
    transparent 25%,
    transparent 49%,
    #ccc 49%,
    #ccc 50%,
    transparent 50%,
    transparent 74%,
    #ccc 74%,
    #ccc 75%,
    transparent 75%
  ),
  linear-gradient(
    to bottom,
    transparent 0%,
    transparent 24%,
    #ccc 24%,
    #ccc 25%,
    transparent 25%,
    transparent 49%,
    #ccc 49%,
    #ccc 50%,
    transparent 50%,
    transparent 74%,
    #ccc 74%,
    #ccc 75%,
    transparent 75%
  );
}

/* Animation de sécurité Internet */
.security-animation {
  position: relative;
  width: 140px;
  height: 120px;
  margin: 0 auto;
}

.shield {
  position: absolute;
  width: 60px;
  height: 70px;
  background-color: #00cc66;
  border-radius: 30px 30px 5px 5px;
  top: 20px;
  left: 40px;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.3);
  animation: pulseShield 2s ease-in-out infinite;
}

.lock {
  position: absolute;
  width: 20px;
  height: 30px;
  background-color: #333;
  border-radius: 3px;
  top: 25px;
  left: 20px;
}

.lock::before {
  content: '';
  position: absolute;
  width: 16px;
  height: 10px;
  border: 3px solid #333;
  border-bottom: none;
  border-radius: 8px 8px 0 0;
  top: -10px;
  left: -1px;
}

.wifi-waves {
  position: absolute;
  width: 100px;
  height: 50px;
  bottom: 10px;
  left: 20px;
}

.wave {
  position: absolute;
  width: 80px;
  height: 80px;
  border: 4px solid transparent;
  border-top-color: #00cc66;
  border-radius: 50%;
  left: 10px;
  opacity: 0;
  animation: waveAnimation 2s infinite ease-out;
}

.wave:nth-child(2) {
  animation-delay: 0.5s;
}

.wave:nth-child(3) {
  animation-delay: 1s;
}

@keyframes pulseShield {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(0, 204, 102, 0.7);
  }
  70% {
    transform: scale(1.05);
    box-shadow: 0 0 0 10px rgba(0, 204, 102, 0);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(0, 204, 102, 0);
  }
}

@keyframes waveAnimation {
  0% {
    transform: scale(0);
    opacity: 0.8;
  }
  100% {
    transform: scale(1);
    opacity: 0;
  }
}

/* Animation de terminal pour systèmes */
.terminal-animation {
  position: relative;
  width: 140px;
  height: 120px;
  margin: 0 auto;
}

.terminal-window {
  position: absolute;
  width: 120px;
  height: 90px;
  background-color: #1a1a1a;
  border-radius: 5px;
  top: 15px;
  left: 10px;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.3);
  overflow: hidden;
}

.terminal-header {
  position: absolute;
  width: 100%;
  height: 15px;
  background-color: #333;
  top: 0;
  left: 0;
  display: flex;
  padding: 3px;
}

.terminal-button {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 5px;
}

.terminal-button:nth-child(1) {
  background-color: #ff5f57;
}

.terminal-button:nth-child(2) {
  background-color: #ffbd2e;
}

.terminal-button:nth-child(3) {
  background-color: #28ca41;
}

.terminal-body {
  position: absolute;
  width: 100%;
  height: calc(100% - 15px);
  top: 15px;
  left: 0;
  padding: 5px;
}

.command-line {
  position: relative;
  width: 90%;
  height: 20px;
  margin-top: 5px;
}

.command-line::before {
  content: '>';
  position: absolute;
  color: #00cc66;
  left: 5px;
}

.command-line::after {
  content: '';
  position: absolute;
  width: 8px;
  height: 15px;
  background-color: #00cc66;
  left: 15px;
  top: 0;
  animation: blink 1s infinite;
}

@keyframes blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0;
  }
}


.service-card ul li strong {
  color: #333;
}

.call-to-action {
  background: linear-gradient(135deg, #00621F 0%, #00cc66 100%);
}

/* Styles responsifs spécifiques */
@media (max-width: 768px) {
  .laptop-animation {
    transform: scale(0.9);
  }
  
  .laptop-screen {
    width: 140px;
  }
  
  .laptop-keyboard {
    width: 180px;
  }
  
  .office-animation, 
  .security-animation, 
  .terminal-animation {
    transform: scale(0.9);
  }
}

/* Mentions légales */

/* Style pour la page des mentions légales */
.mentions-legales {
  padding: 60px 20px;
  background-color: var(--couleur-fond-body);
}

.legal-container {
  max-width: 900px;
  margin: 0 auto;
  background-color: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.mentions-legales h1 {
  text-align: center;
  font-size: 2.2rem;
  margin-bottom: 40px;
  color: var(--couleur-texte-body);
  position: relative;
}

.mentions-legales h1::after {
  content: '';
  position: absolute;
  width: 60px;
  height: 4px;
  background-color: var(--couleur-texte-body);
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 2px;
}

.legal-section {
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f0f0f0;
}

.legal-section:last-child {
  border-bottom: none;
}

.mentions-legales h2 {
  font-size: 1.4rem;
  margin-bottom: 15px;
  color: var(--couleur-texte-body);
}

.mentions-legales p {
  margin-bottom: 12px;
  line-height: 1.6;
  font-size: 1rem;
  color: #444;
}

.mentions-legales strong {
  color: #333;
}

.mentions-legales a {
  color: var(--couleur-lien);
  text-decoration: none;
  transition: color 0.3s ease;
}

.mentions-legales a:hover {
  color: var(--couleur-lien-survol);
}

.update-date {
  margin-top: 20px;
  font-style: italic;
  color: #777;
  text-align: right;
}

/* Media Queries */
@media (max-width: 768px) {
  .legal-container {
    padding: 25px;
  }
  
  .mentions-legales {
    padding: 40px 15px;
  }
  
  .mentions-legales h1 {
    font-size: 1.8rem;
  }
  
  .mentions-legales h2 {
    font-size: 1.2rem;
  }
}

/* Politique de confidentialité */
/* Style pour la page de politique de confidentialité */
.politique-confidentialite {
  padding: 60px 20px;
  background-color: var(--couleur-fond-body);
}

.privacy-container {
  max-width: 900px;
  margin: 0 auto;
  background-color: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.politique-confidentialite h1 {
  text-align: center;
  font-size: 2.2rem;
  margin-bottom: 40px;
  color: var(--couleur-texte-body);
  position: relative;
}

.politique-confidentialite h1::after {
  content: '';
  position: absolute;
  width: 60px;
  height: 4px;
  background-color: var(--couleur-texte-body);
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 2px;
}

.privacy-section {
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f0f0f0;
}

.privacy-section:last-child {
  border-bottom: none;
}

.intro-text {
  font-size: 1.1rem;
  line-height: 1.7;
  color: #333;
  margin-bottom: 20px;
  border-left: 3px solid var(--couleur-texte-body);
  padding-left: 15px;
}

.politique-confidentialite h2 {
  font-size: 1.4rem;
  margin-bottom: 15px;
  color: var(--couleur-texte-body);
}

.politique-confidentialite p {
  margin-bottom: 12px;
  line-height: 1.6;
  font-size: 1rem;
  color: #444;
}

.politique-confidentialite ul {
  margin-bottom: 15px;
  margin-left: 20px;
  color: #444;
}

.politique-confidentialite li {
  margin-bottom: 8px;
  line-height: 1.5;
}

.politique-confidentialite strong {
  color: #333;
}

.politique-confidentialite a {
  color: var(--couleur-lien);
  text-decoration: none;
  transition: color 0.3s ease;
}

.politique-confidentialite a:hover {
  color: var(--couleur-lien-survol);
}

.update-date {
  margin-top: 20px;
  font-style: italic;
  color: #777;
  text-align: right;
}

/* Media Queries */
@media (max-width: 768px) {
  .privacy-container {
    padding: 25px;
  }
  
  .politique-confidentialite {
    padding: 40px 15px;
  }
  
  .politique-confidentialite h1 {
    font-size: 1.8rem;
  }
  
  .politique-confidentialite h2 {
    font-size: 1.2rem;
  }
  
  .intro-text {
    font-size: 1rem;
  }
}

/* Conditions d'utilisation */
/* Style pour la page des conditions d'utilisation */
.conditions-utilisation {
  padding: 60px 20px;
  background-color: var(--couleur-fond-body);
}

.terms-container {
  max-width: 900px;
  margin: 0 auto;
  background-color: white;
  padding: 40px;
  border-radius: 15px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.conditions-utilisation h1 {
  text-align: center;
  font-size: 2.2rem;
  margin-bottom: 40px;
  color: var(--couleur-texte-body);
  position: relative;
}

.conditions-utilisation h1::after {
  content: '';
  position: absolute;
  width: 60px;
  height: 4px;
  background-color: var(--couleur-texte-body);
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 2px;
}

.terms-section {
  margin-bottom: 30px;
  padding-bottom: 20px;
  border-bottom: 1px solid #f0f0f0;
}

.terms-section:last-child {
  border-bottom: none;
}

.intro-text {
  font-size: 1.1rem;
  line-height: 1.7;
  color: #333;
  margin-bottom: 20px;
  border-left: 3px solid var(--couleur-texte-body);
  padding-left: 15px;
}

.conditions-utilisation h2 {
  font-size: 1.4rem;
  margin-bottom: 15px;
  color: var(--couleur-texte-body);
}

.conditions-utilisation p {
  margin-bottom: 12px;
  line-height: 1.6;
  font-size: 1rem;
  color: #444;
}

.conditions-utilisation ul {
  margin-bottom: 15px;
  margin-left: 20px;
  color: #444;
}

.conditions-utilisation li {
  margin-bottom: 8px;
  line-height: 1.5;
}

.conditions-utilisation strong {
  color: #333;
}

.conditions-utilisation a {
  color: var(--couleur-lien);
  text-decoration: none;
  transition: color 0.3s ease;
}

.conditions-utilisation a:hover {
  color: var(--couleur-lien-survol);
}

.update-date {
  margin-top: 20px;
  font-style: italic;
  color: #777;
  text-align: right;
}

/* Media Queries */
@media (max-width: 768px) {
  .terms-container {
    padding: 25px;
  }
  
  .conditions-utilisation {
    padding: 40px 15px;
  }
  
  .conditions-utilisation h1 {
    font-size: 1.8rem;
  }
  
  .conditions-utilisation h2 {
    font-size: 1.2rem;
  }
  
  .intro-text {
    font-size: 1rem;
  }
}

@media screen and (max-width: 1200px) {
    :root{
        --logo-width: 15%;
    }
    .right-nav{
        gap: 1.5rem;
    }
    .header-content {
        max-width: 95%;
    }
    
    .dropdown-content {
        padding: 15px;
    }
    
    .dropdown-item {
        width: 48%; /* 2 items par ligne */
    }

    #contact {
        max-width: 75%;
    }
    .service-img {
        width: 150px;
        height: 150px;
    }
}

@media screen and (max-width: 992px) {
    :root {
        --logo-width: 18%;
    }
    .services-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .header-content {
        padding: 5px;
        width:95%
    }
    
    #contact {
        max-width: 85%;
        padding: 15px 25px;
    }
}



@media screen and (max-width: 576px) {
    /* Header pour mobile */
    header {
        padding: 5px;
        position: fixed;
        height: auto;
    }

    .header-content {
        flex-direction: column;
        align-items: center;
        padding: 0.25rem;
        width: 98%;
        padding: 0 1%;
    }

    nav {
        flex-direction: column;
        align-items: flex-start;
        padding: 0.5rem;
    }

    .left-nav {
        width: 100%;
        justify-content: space-between;
        margin-bottom: 0.5rem;
    }
    
    .right-nav {
        width: 100%;
        flex-direction: wrap;
        justify-content: center;
        gap: 0.5rem;
    }
    
    #logo {
        margin-left: 0;
        margin-bottom: 5px;
    }

    /* Logo */
    #logo img {
        width: 6rem;
    }
    
    /* Menu déroulant mobile */
    .dropdown-content {
        top: calc(var(--header-height) + 1rem);
        margin-top: 0;
        scroll-padding-top: var(--header-height);
        /* Force le premier élément à être visible */
        scroll-snap-type: y mandatory;
    }
    
    .dropdown-item {
        padding: 5px;
        width: 100%;
        margin: 0.5rem 0;
    }
    
    .service-img {
        width: 100px;
        height: 100px;
    }
    
    /* Bouton contact */
    #contact-btn {
        font-size: 0.9rem;
        padding: 0.5em 1em;
        width: auto;
    }

    #contact {
        width: 95%;
        padding: 15%;
        margin: 10px auto;
    }
    
    /* Section services */
    .services-grid {
        grid-template-columns: 1fr;
    }
    
    /* Footer */
    .footer-content {
        flex-direction: column;
        gap: 20px;
    }
    
    .wrapper {
        justify-content: center;
    }
    .service-info {
        padding: 0 10px;
    }
}

/* Gestion des très petits écrans */
@media screen and (max-width: 360px) {
    :root {
        --header-height: 4rem;
    }

    .header-content {
        padding: 5px;
    }
    
    #logo img {
        width: 5rem;
    }

    .right-nav {
        flex-wrap: wrap;
        justify-content: center;
        gap: 0.25rem;
    }

    #contact-btn {
        font-size: 0.8rem;
    }
    
    .service-img {
        width: 100px;
        height: 100px;
    }
    
    #contact {
        padding: 10px;
    }
    
    .dropdown-content {
        padding: 5px;
    }
}

/* Pour les grands écrans */
@media screen and (min-width: 1400px) {
    .header-content {
        max-width: 1320px;
    }
    
    #contact {
        max-width: 50%;
    }
    .container {
        max-width: 1320px;
        margin: 0 auto;
    }

}

/* Support orientation */
@media screen and (orientation: landscape) and (max-height: 500px) {
    .header-content {
        padding: 5px;
    }
    
    .dropdown-content {
        max-height: 80vh;
        overflow-y: auto;
    }
}

@media (max-width: 1280px) and (min-width: 720px) {
    .dropdown-content {
        display: flex;
        flex-wrap: nowrap; /* Toujours en une seule ligne */
        justify-content: center;
        gap: 1rem;
    }

    .dropdown-item {
        max-width: 200px !important; /* Force une taille spécifique */
    }

    .service-img {
        max-height: 100px !important;
        width: auto !important;
    }
}

/* Cookie consent */
/* Global styling for the cookie banner */
#cookie-banner {
  position: fixed;
  bottom: 0; /* Change to "top: 0" for en haut */
  left: 0;
  width: 100%; /* Occuper toute la largeur de l'écran */
  background-color: rgba(0, 0, 0, 0.9); /* Fond semi-transparent, couleur sombre */
  color: #fff;
  padding: 20px;
  font-size: 16px;
  text-align: center;
  z-index: 9999; /* Priorité d'affichage */
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.3); /* Ajout d'une ombre subtile */
  display: none; /* Masqué par défaut */
}

#cookie-banner.center { /* Pour centrer au milieu de l'écran */
  top: 50%;
  bottom: auto;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90%; /* Largeur réduite au milieu */
  border-radius: 8px; /* Coins arrondis */
}

#cookie-content {
  max-width: 800px;
  margin: 0 auto;
  line-height: 1.6;
}

#cookie-content a {
  color: #00A8E8; /* Couleur de liens (bleu) */
  text-decoration: underline;
}

#cookie-buttons {
  margin-top: 15px;
}

#cookie-buttons button {
  padding: 10px 20px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-weight: bold;
  margin: 0 5px;
  transition: all ease 0.3s;
}

/* Bouton 'Accepter' */
#accept-cookies {
  background-color: #28a745;
  color: white;
}

#accept-cookies:hover {
  background-color: #218838;
}

/* Bouton 'Refuser' */
#decline-cookies {
  background-color: #dc3545;
  color: white;
}

#decline-cookies:hover {
  background-color: #c82333;
}
