/* ===== VARIABLES ET STYLES GLOBAUX ===== */
:root {
  --primary-green: #2c6b2f;
  --secondary-green: #5a8c5a;
  --light-bg: #f4f7f4;
  --dark-text: #333333;
  --light-text: #ffffff;
  --font-family: "Poppins", sans-serif;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
html,
body {
  width: 100%;
  margin: 0;
  padding: 0;
  overflow-x: hidden; /* On garde cette sécurité */
}

body {
  font-family: var(--font-family);
  color: var(--dark-text);
  line-height: 1.6;
  overflow-x: hidden;
}

.container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 20px;
}

h1,
h2,
h3 {
  line-height: 1.2;
  font-weight: 600;
}
h1 {
  font-size: 3rem;
}
h2 {
  font-size: 2.2rem;
  margin-bottom: 1rem;
}
h3 {
  font-size: 1.4rem;
  margin-bottom: 0.5rem;
}

p {
  margin-bottom: 1rem;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.section-bg {
  background-color: var(--light-bg);
  padding: 60px 0;
}

section {
  padding: 60px 0;
}

.section-title {
  text-align: center;
  margin-bottom: 40px;
}
.section-title p {
  max-width: 600px;
  margin: 0 auto;
  color: #666;
}

/* ===== BOUTONS ===== */
.btn {
  display: inline-block;
  padding: 12px 28px;
  border-radius: 50px;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.3s ease;
  text-align: center;
}
.btn-primary {
  background-color: var(--primary-green);
  color: var(--light-text);
  border: 2px solid var(--primary-green);
}
.btn-primary:hover {
  background-color: var(--secondary-green);
  border-color: var(--secondary-green);
}
.btn-secondary {
  background-color: transparent;
  color: var(--primary-green);
  border: 2px solid var(--primary-green);
}
.btn-secondary:hover {
  background-color: var(--primary-green);
  color: var(--light-text);
}
.btn-lg {
  padding: 15px 35px;
  font-size: 1.1rem;
}

/* ===== EN-TÊTE ET NAVIGATION ===== */
.navbar {
  background: #fff;
  padding: 6px 0;
  position: sticky;
  top: 0;
  z-index: 1000;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}
.navbar .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.nav-logo {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--primary-green);
  text-decoration: none;
}
/* ======================================================= */
/* RÈGLES POUR UNE NAVIGATION INTERACTIVE (CORRIGÉES)      */
/* ======================================================= */

/* --- Style de base pour les liens du menu (sauf le bouton) --- */
.nav-links a:not(.btn) {
  position: relative; /* Indispensable pour positionner la ligne en dessous */
  color: var(--dark-text);
  text-decoration: none;
  margin-left: 25px;
  font-weight: 600;
  padding-bottom: 8px;
  transition: color 0.3s ease, transform 0.3s ease;
}

/* --- Effet au survol de la souris --- */
.nav-links a:not(.btn):hover {
  color: var(--primary-green);
  transform: translateY(-3px); /* Le lien se soulève légèrement */
}

/* --- Création de la ligne en dessous --- */
.nav-links a:not(.btn)::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0; /* La ligne part de la gauche */
  width: 100%;
  height: 2px;
  background-color: var(--primary-green);

  /* C'est la partie corrigée : la ligne est invisible par défaut */
  transform: scaleX(0);

  /* L'animation partira de la gauche vers la droite */
  transform-origin: left;

  transition: transform 0.3s ease-in-out;
}

/* --- Animation de la ligne au survol --- */
.nav-links a:not(.btn):hover::after {
  transform: scaleX(1); /* La ligne prend 100% de la largeur */
}

/* --- Style pour le lien de la page active --- */
.nav-links a.active:not(.btn) {
  color: var(--primary-green);
}
.nav-links a.active:not(.btn)::after {
  transform: scaleX(
    1
  ); /* La ligne est visible en permanence pour le lien actif */
}
.nav-links .btn {
  margin-left: 25px;
}

/* ===== SECTION HÉROS ===== */
/* ===== SECTION HÉROS : NOUVELLE VERSION AVEC IMAGE HTML ===== */
#hero {
  position: relative; /* Indispensable pour positionner les enfants */
  color: var(--light-text);
  min-height: 90vh; /* On garde le min-height, c'est la bonne pratique */
  
  /* On centre le contenu avec Flexbox */
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  
  /* LA LIGNE QUI CHANGE TOUT : on supprime le fond conflictuel */
  background: none; /* OU supprimez simplement la ligne 'background' */
}
/* Style de l'image insérée en HTML */
.hero-background-img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: -1; /* L'image est placée tout à l'arrière */
}

/* Le dégradé du fond doit être appliqué au conteneur du texte pour assombrir */
.container {
    position: relative; /* Pour s'assurer qu'il soit au-dessus de l'image */
    z-index: 2;
}

/* L'image de fond n'a plus de dégradé, on le remet sur le conteneur du texte */
.hero-content {
    max-width: 700px;
    margin: 0 auto;
  /* NOUVEAU : Centre le texte et les éléments en ligne */
    text-align: center;
    position: relative; /* Pour forcer le contenu à rester en Z-index 2 */
    z-index: 2;
}
/* NOUVELLE RÈGLE : COUCHE D'OMBRE */
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    
    /* Couleur et opacité de l'ombre (50% de noir) */
    background-color: rgba(0, 0, 0, 0.5); 
    /* Positionnement entre l'image (-1) et le contenu (1) */
    z-index: 0; 
}

/* ===== SECTION SERVICES ===== */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px;
}
.service-card {
  background: #fff;
  padding: 30px;
  text-align: center;
  border-radius: 8px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
  transition: transform 0.3s ease;
}
.service-card:hover {
  transform: translateY(-10px);
}

/* ===== SECTION À PROPOS ===== */
.about-flex {
  display: flex;
  align-items: center;
  gap: 50px;
}
.about-text {
  flex: 1;
}
.about-image {
  flex: 1;
}
.about-image img {
  border-radius: 8px;
}
.about-text ul {
  list-style: none;
  padding-left: 0;
  margin: 20px 0;
}
.about-text li {
  margin-bottom: 10px;
  font-weight: 600;
}

/* ===== SECTION PORTFOLIO ===== */
.portfolio-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.portfolio-grid figure img {
  border-radius: 8px;
  width: 100%;
  height: 250px;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.portfolio-grid figure:hover img {
  transform: scale(1.05);
}

/* ===== SECTION CTA FINAL (NOUVELLE VERSION ORIGINALE) ===== */
/* ===== SECTION CTA FINAL (VERSION CENTRÉE) ===== */
#cta {
  background-color: var(--light-bg);
}

.cta-wrapper {
  display: flex;
  justify-content: center;
  text-align: center;
  background-color: #ffffff;
  padding: 40px;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.cta-content {
  max-width: 700px; /* limite la largeur pour que ça reste lisible */
}

.cta-content .section-title {
  text-align: center;
  margin-bottom: 20px;
}

.cta-content p {
  margin-bottom: 30px;
}

#cta .btn-primary {
  background-color: var(--primary-green);
  color: var(--light-text);
  border-color: var(--primary-green);
}

#cta .btn-primary:hover {
  background-color: var(--secondary-green);
  border-color: var(--secondary-green);
}

/* On modifie la mise en page pour les mobiles */
@media (max-width: 768px) {
  .cta-wrapper {
    flex-direction: column; /* On passe les éléments les uns sous les autres */
    padding: 30px;
    gap: 30px;
  }
  .cta-content {
    text-align: center; /* On recentre le texte sur mobile */
  }
  .cta-content .section-title {
    text-align: center; /* On recentre aussi le titre */
  }
}
/* ===== PIED DE PAGE ===== */
/* ===== PIED DE PAGE (NOUVELLE VERSION AMÉLIORÉE) ===== */
footer {
  background: #252525; /* Un noir un peu plus doux */
  color: #a9a9a9; /* Un gris plus clair pour le texte */
  padding: 60px 0 20px 0; /* Plus d'espace */
}

.footer-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 40px;
  margin-bottom: 40px;
}

.footer-column h3 {
  color: #ffffff;
  font-size: 1.2rem;
  margin-bottom: 20px;
}

.footer-column p {
  margin-bottom: 20px;
  line-height: 1.7;
}

/* Style pour la liste des liens de navigation */
.footer-column ul {
  list-style: none;
  padding: 0;
}

.footer-column ul li {
  margin-bottom: 10px;
}

/* Style général pour les liens dans le footer */
footer a {
  color: #a9a9a9;
  text-decoration: none;
  transition: color 0.3s ease;
}

footer a:hover {
  color: var(--primary-green); /* On réutilise la couleur verte du site */
}

/* Style pour les infos de contact avec icônes */
.contact-info {
  display: flex;
  align-items: center;
  gap: 12px; /* Espace entre l'icône et le texte */
}

.contact-info svg {
  flex-shrink: 0; /* Empêche les icônes de se déformer */
}

/* Style pour les icônes de réseaux sociaux */
.social-links a {
  display: inline-block;
  background-color: #3b3b3b;
  color: #ffffff;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  text-align: center;
  line-height: 40px; /* Aligne l'icône verticalement */
  transition: background-color 0.3s ease;
}

.social-links a:hover {
  background-color: var(--primary-green);
  color: #ffffff;
}

.social-links svg {
  vertical-align: middle; /* Aligne mieux l'icône Facebook */
}

/* Barre de copyright en bas */
.footer-bottom {
  text-align: center;
  padding-top: 20px;
  border-top: 1px solid #3b3b3b;
  font-size: 0.9rem;
}

/* ===== RESPONSIVE (POUR MOBILES) ===== */
@media (max-width: 768px) {
  h1 {
    font-size: 2.2rem;
  }
  h2 {
    font-size: 1.8rem;
  }
  .nav-links {
    display: none; /* Simplification pour l'exemple, nécessite du JS pour un menu hamburger */
  }
  .services-grid {
    grid-template-columns: 1fr;
  }
  .about-flex {
    flex-direction: column;
  }
  .portfolio-grid {
    grid-template-columns: 1fr;
  }
  footer .container {
    flex-direction: column;
    text-align: center;
  }
  footer p {
    margin-bottom: 10px;
  }
}
/* ===== LISTE À POUCES PERSONNALISÉE (CHECKMARK) ===== */
.checkmark-list {
  list-style: none; /* On retire les puces par défaut */
  padding-left: 0;
  margin: 20px 0;
}

.checkmark-list li {
  position: relative; /* Nécessaire pour positionner l'icône */
  padding-left: 30px; /* On crée de l'espace pour l'icône */
  margin-bottom: 12px;
  font-weight: 600;
}

.checkmark-list li::before {
  content: "✔"; /* C'est notre icône de validation */
  position: absolute;
  left: 0;
  top: 0;
  color: var(
    --primary-green
  ); /* On utilise la couleur verte principale du site */
  font-weight: bold;
  font-size: 1.2rem;
}
.navbar .nav-links .btn-primary {
  color: var(--light-text); /* On force la couleur blanche sur le texte */
}

/* On s'assure que le texte reste blanc même au survol de la souris */
.navbar .nav-links .btn-primary:hover {
  color: var(--light-text);
}
/* ===== BANNIÈRE DE LA PAGE SERVICES ===== */
/* ======================================================= */
/* STYLES POUR LA PAGE SERVICES (VERSION FINALE)   */
/* ======================================================= */

/* ===== BANNIÈRE DE LA PAGE (DESIGN ÉPURÉ) ===== */
.page-header {
  background-color: var(--primary-green); /* Fond vert primaire comme demandé */
  color: var(--light-text); /* Texte blanc pour contraster */
  padding: 60px 0;
  text-align: center;
  border-bottom: none; /* Plus besoin de la bordure, le fond vert est suffisant */
}

.page-header h1 {
  font-size: 3.2rem;
  color: var(--light-text); /* Titre en blanc */
  margin-bottom: 0.5rem;
}

/* ===== GRILLE DES SERVICES (DESIGN ARTISTIQUE) ===== */
#services-page {
  background-color: var(
    --light-bg
  ); /* Fond gris clair pour faire ressortir les cartes */
  padding: 80px 0;
  /*counter-reset: service-counter; /* On initialise notre compteur de services */
  overflow: hidden; /* Empêche les numéros de déborder */
}

.services-page-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 80px; /* Plus d'espace entre les services */
}

.service-detail-card {
  display: grid;
  grid-template-columns: repeat(
    12,
    1fr
  ); /* Grille à 12 colonnes pour la superposition */
  align-items: center;
  position: relative; /* Pour positionner le numéro en filigrane */
}

/* Le numéro en filigrane */
.service-detail-card::before {
 display: none !important;
}

.service-detail-card img {
  grid-row: 1 / -1;
  grid-column: 1 / 8; /* L'image occupe les 7 premières colonnes */
  width: 100%;
  height: 400px;
  object-fit: cover;
  border-radius: 8px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

.card-content {
  grid-row: 1 / -1;
  grid-column: 7 / 13; /* Le contenu commence à la 7ème colonne et chevauche l'image */
  background-color: #ffffff;
  padding: 40px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
  border-radius: 8px;
  z-index: 1; /* Le contenu passe au-dessus de l'image */
}

.card-content h2 {
  /* La police 'Lora' a été retirée, 'Poppins' sera utilisée par défaut */
  color: var(--primary-green);
  font-size: 2rem;
}

/* On alterne la mise en page pour un service sur deux */
.service-detail-card:nth-child(even) img {
  grid-column: 6 / 13; /* L'image passe à droite */
}

.service-detail-card:nth-child(even) .card-content {
  grid-column: 1 / 7; /* Le contenu passe à gauche */
}

.service-detail-card:nth-child(even)::before {
  left: auto;
  right: 0;
}

/* ===== RESPONSIVE POUR LA PAGE SERVICES ===== */
@media (max-width: 992px) {
  /* Sur mobile, on revient à un design simple et efficace */
  .service-detail-card,
  .service-detail-card:nth-child(even) {
    display: flex;
    flex-direction: column;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
    border-radius: 8px;
  }

  .service-detail-card::before {
    display: none; /* On cache le numéro en filigrane, trop gros pour mobile */
  }

  .service-detail-card img,
  .service-detail-card:nth-child(even) img {
    width: 100%;
    height: 250px;
    box-shadow: none;
  }

  .card-content,
  .service-detail-card:nth-child(even) .card-content {
    width: 100%;
    box-shadow: none;
  }
}
/* ===== STYLE GÉNÉRAL DE LA PAGE PORTFOLIO ===== */
#portfolio-page {
  background-color: var(--light-bg);
  padding: 80px 0;
}

/* ===== STYLE POUR CHAQUE PROJET INDIVIDUEL ===== */
.project-item {
  display: grid;
  grid-template-columns: 1fr 1fr; /* 2 colonnes de taille égale */
  gap: 50px;
  align-items: center;
  background-color: #ffffff;
  padding: 40px;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  margin-bottom: 60px;
}

/* Mise en page inversée pour un projet sur deux */
.project-item-reverse {
  direction: rtl; /* Inverse l'ordre des colonnes */
}
.project-item-reverse > * {
  direction: ltr; /* Rétablit la direction de lecture normale pour le contenu */
}

/* Description du projet */
.project-description h2 {
  color: var(--primary-green);
  margin-bottom: 15px;
}
.project-description h3 {
  font-size: 1.1rem;
  margin-top: 25px;
  margin-bottom: 10px;
}
.project-description ul {
  list-style: none;
  padding-left: 0;
}
.project-description ul li {
  position: relative;
  padding-left: 25px;
  margin-bottom: 5px;
}
.project-description ul li::before {
  content: "✔";
  position: absolute;
  left: 0;
  color: var(--primary-green);
}

/* Conteneur des images avant/après */
.project-images {
  display: flex;
  gap: 20px;
}
.project-images figure {
  flex: 1; /* Chaque image prend 50% de l'espace */
  margin: 0;
}
.project-images img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.project-images figcaption {
  text-align: center;
  margin-top: 10px;
  font-weight: 600;
  font-size: 1.1rem;
}
figure:first-child figcaption {
  color: #c0392b; /* Rouge pour "Avant" */
}
figure:last-child figcaption {
  color: var(--primary-green); /* Vert pour "Après" */
}

/* ===== RESPONSIVE POUR LA PAGE RÉALISATIONS ===== */
@media (max-width: 992px) {
  .project-item,
  .project-item-reverse {
    grid-template-columns: 1fr; /* Une seule colonne sur mobile */
    direction: ltr !important; /* On annule l'inversion */
    padding: 30px;
  }

  .project-images {
    flex-direction: column; /* Images l'une au-dessus de l'autre */
  }
}
/* ===== SECTION PROCESSUS EN 4 ÉTAPES ===== */
#process {
  padding: 80px 0;
}

.process-steps {
  display: grid;
  grid-template-columns: repeat(
    4,
    1fr
  ); /* On définit explicitement 4 colonnes */
  gap: 30px;
  margin-top: 50px;
}

.step-card {
  background-color: #ffffff;
  padding: 30px;
  border-radius: 8px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
  border-top: 4px solid var(--primary-green);
  text-align: center;
}

.step-card h3 {
  margin-bottom: 15px;
  color: var(--primary-green);
}

/* ===== SECTION ÉQUIPEMENT / OUTILS ===== */
#equipment {
  padding: 80px 0;
}

.equipment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
}

.equipment-card {
  background-color: #ffffff;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s ease;
}

.equipment-card:hover {
  transform: translateY(-5px);
}

.equipment-card img {
  width: 100%;
  height: 220px;
  object-fit: cover;
}

.equipment-content {
  padding: 25px;
}

.equipment-content h3 {
  margin-bottom: 10px;
}
/* ===== BANNIÈRE DE LA PAGE CONTACT ===== */
.page-header {
  background-color: var(--primary-green);
  color: var(--light-text);
  padding: 60px 0;
  text-align: center;
  border-bottom: none;
}

.page-header h1 {
  font-size: 3.2rem;
  color: var(--light-text);
  margin-bottom: 0.5rem;
}

/* ===== CONTENU PRINCIPAL DE LA PAGE CONTACT ===== */
#contact-content {
  padding: 80px 0;
}

.contact-wrapper {
  display: grid;
  grid-template-columns: 1fr 1.5fr; /* Les infos à gauche, le formulaire un peu plus large à droite */
  gap: 60px;
  background-color: #ffffff;
  padding: 50px;
  border-radius: 8px;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.1);
}

/* Bloc des informations de contact */
.contact-info-block {
  padding-right: 20px;
}

.contact-info-block h2 {
  color: var(--primary-green);
  margin-bottom: 25px;
}

.contact-info-block p {
  margin-bottom: 30px;
}

.info-item {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 20px;
  font-size: 1.1rem;
  color: var(--dark-text);
}

.info-item a {
  color: var(--dark-text);
  text-decoration: none;
  transition: color 0.3s ease;
}

.info-item a:hover {
  color: var(--primary-green);
}

.info-item svg {
  color: var(--primary-green); /* Icônes en vert */
  flex-shrink: 0;
}

.map-container {
  margin-top: 40px;
  border-radius: 8px;
  overflow: hidden; /* Pour que la carte ait des bords arrondis */
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
}

/* Bloc du formulaire de contact */
.contact-form-block h2 {
  color: var(--primary-green);
  margin-bottom: 25px;
}

.contact-form .form-group {
  margin-bottom: 25px;
}

.contact-form label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #555;
}

.contact-form input[type="text"],
.contact-form input[type="email"],
.contact-form input[type="tel"],
.contact-form textarea {
  width: 100%;
  padding: 12px 15px;
  border: 1px solid #ccc;
  border-radius: 5px;
  font-family: var(--font-family);
  font-size: 1rem;
  color: var(--dark-text);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.contact-form input:focus,
.contact-form textarea:focus {
  border-color: var(--primary-green);
  outline: none;
  box-shadow: 0 0 0 3px rgba(44, 107, 47, 0.2); /* Ombre légère au focus */
}

.contact-form textarea {
  resize: vertical; /* Permet de redimensionner verticalement */
}

.contact-form .btn-primary {
  width: auto; /* Le bouton ne prendra pas toute la largeur */
  display: inline-block; /* Pour appliquer les marges et paddings du bouton */
}

/* ===== RESPONSIVE POUR LA PAGE CONTACT ===== */
@media (max-width: 992px) {
  .contact-wrapper {
    grid-template-columns: 1fr; /* Une seule colonne sur mobile */
    gap: 40px;
    padding: 30px;
  }

  .contact-info-block {
    padding-right: 0; /* On retire le padding droit */
    text-align: center; /* On centre les infos sur mobile */
  }

  .info-item {
    justify-content: center; /* Centre les icônes et le texte */
  }

  .contact-form-block h2 {
    text-align: center;
  }
}
.navbar .nav-links .btn-primary {
  margin-left: 40px; /* Espace à gauche du bouton, valeur par défaut 25px */
}
@media (max-width: 576px) {
  .footer-grid {
    /* Sur les petits écrans, on centre le texte de toutes les colonnes */
    text-align: center;
  }

  .footer-column ul {
    /* On s'assure que la liste des liens de navigation n'a pas de décalage */
    padding-left: 0;
  }

  .contact-info {
    /* C'est la règle clé : on centre le groupe icône + texte (téléphone, email) */
    justify-content: center;
  }

  .social-links {
    /* On centre aussi les icônes des réseaux sociaux pour la cohérence */
    margin-top: 20px;
  }
}
@media (max-width: 992px) {
  .process-steps {
    /* On passe les 4 étapes sur 2 colonnes */
    grid-template-columns: repeat(2, 1fr);
  }
}

/* --- Pour les mobiles (écrans jusqu'à 768px) --- */
@media (max-width: 768px) {
  #process,
  #equipment {
    padding: 60px 0; /* On réduit un peu l'espacement vertical */
  }

  .equipment-grid {
    /* On force les cartes d'équipement sur 1 seule colonne */
    grid-template-columns: 1fr;
  }
}

/* --- Pour les très petits mobiles (écrans jusqu'à 576px) --- */
@media (max-width: 576px) {
  .process-steps {
    /* On passe les 4 étapes sur 1 seule colonne */
    grid-template-columns: 1fr;
  }
}
/* ======================================================= */
/* SYSTÈME DE NAVIGATION FINAL (CORRECTIF DÉFINITIF)      */
/* ======================================================= */

/* --- Style de base pour la navigation Desktop --- */
.navbar nav {
  display: flex;
  align-items: center;
}
.nav-links {
  list-style: none;
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
}
.nav-links li {
  margin-left: 10px;
}
.nav-links a {
  text-decoration: none;
  color: var(--dark-text);
  font-weight: 600;
  transition: color 0.3s ease;
}
.nav-links a:hover {
  color: var(--primary-green);
}
.nav-links .btn-primary {
  color: var(--light-text);
}
.nav-links .btn-primary:hover {
  color: var(--light-text);
}

/* --- Style du bouton burger (caché sur Desktop) --- */
.hamburger-menu {
  display: none;
  cursor: pointer;
  background: none;
  border: none;
}
.hamburger-menu .bar {
  display: block;
  width: 25px;
  height: 3px;
  margin: 5px auto;
  background-color: var(--dark-text);
  transition: all 0.3s ease-in-out;
}

/* --- Styles pour les écrans de 992px et moins (Tablettes & Mobiles) --- */
@media (max-width: 992px) {
  /* On affiche le burger */
  .hamburger-menu {
    display: block;
    z-index: 1001; /* Pour qu'il soit au-dessus du menu ouvert */
  }

  /* CORRECTION : On ne touche plus à 'nav', on cache la liste des liens directement */
  .nav-links {
    display: none;
  }

  /* Le menu apparaît en plein écran quand il est actif */
  .nav-links.active {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #ffffff;
    z-index: 1000;
    display: flex; /* Cette règle va maintenant fonctionner */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center; /* Ajout pour bien centrer le texte */
  }

  .nav-links.active li {
    margin: 20px 0;
  }
  .nav-links.active a {
    font-size: 1.5rem;
  }

  /* Animation du burger en croix quand il est actif */
  .hamburger-menu.active .bar:nth-child(2) {
    opacity: 0;
  }
  .hamburger-menu.active .bar:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
  }
  .hamburger-menu.active .bar:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
  }
}
@media (max-width: 992px) {
  /* Cible les items de la liste quand le menu est actif */
  .nav-links.active li {
    /* Décale chaque item vers la gauche pour un centrage parfait */
    transform: translateX(-8%);
  }
}
/* --- Style pour la notification du formulaire --- */
.notification-banner {
    position: fixed;
    top: -100px; /* Commence caché en dehors de l'écran */
    left: 50%;
    transform: translateX(-50%);
    padding: 15px 25px;
    border-radius: 8px;
    color: white;
    font-weight: 600;
    z-index: 1000;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    transition: top 0.5s ease-in-out;
}

.notification-banner.show {
    top: 20px; /* Le fait descendre à 20px du haut */
}

/* Couleur pour le succès (vert) */
.notification-banner.succes {
    background-color: #28a745; 
}

/* Couleur pour l'erreur (rouge) */
.notification-banner.erreur {
    background-color: #dc3545;
}
/* ---------- Groupe logo (image + texte) ---------- */
.nav-brand {
  display: inline-flex;
  align-items: center;            /* espace entre l’image et le texte */
  text-decoration: none;  /* le lien ne sera pas souligné */
}

/* ---------- Image du logo ---------- */
.nav-logo-img {
  height: 70px !important;  /* cohérent avec la hauteur visuelle de la navbar */
  width: auto;   /* conserve les proportions */
  display: block;
}
/* Même style et même grille que l'image pour la vidéo */
.service-detail-card :is(img, video) {
  grid-row: 1 / -1;
  grid-column: 1 / 8;        /* identique à l'image */
  width: 100%;
  height: 400px;
  object-fit: cover;         /* recadrage comme une image */
  object-position: center;
  display: block;
  border-radius: 8px;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.15);
}

/* Variante “pair” : image/vidéo à droite, contenu à gauche */
.service-detail-card:nth-child(even) :is(img, video) {
  grid-column: 6 / 13;       /* identique à la règle pour img */
}

/* Responsive identique à l'image */
@media (max-width: 992px) {
  .service-detail-card :is(img, video),
  .service-detail-card:nth-child(even) :is(img, video) {
    width: 100%;
    height: 250px;
    box-shadow: none;
  }
}
.g-recaptcha {
  margin-bottom: 20px; /* Espace de 20 pixels en dessous du CAPTCHA */
}
