.banniere-accueil {
  min-height: 88vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 80px var(--espace-horizontal) 40px;
}

.banniere-accueil .badge {
  margin-bottom: 24px;
}

.titre-principal {
  font-size: clamp(56px, 9vw, 110px);
  line-height: 0.95;
  letter-spacing: -3px;
  margin-bottom: 22px;
}

.texte-banniere {
  max-width: 820px;
  margin-bottom: 38px;
  color: var(--couleur-texte-secondaire);
  font-size: 18px;
}

.zone-boutons-banniere {
  display: flex;
  justify-content: center;
  align-items: center;
}

.section-statistiques {
  display: flex;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
  padding: 140px var(--espace-horizontal) 0;
}

.section-statistiques .carte {
  width: 260px;
}

.section-statistiques h3 {
  margin-bottom: 10px;
}

.section-fonctionnalites,
.section-contact {
  padding: 100px var(--espace-horizontal);
}

.section-fonctionnalites h2,
.section-contact h2 {
  font-size: 42px;
  margin-bottom: 50px;
}

.grille-fonctionnalites {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
}

.bloc-contact {
  display: flex;
  gap: 20px;
  max-width: 1000px;
  margin: auto;
  text-align: left;
}

.contact-gauche,
.contact-droite {
  flex: 1;
}

.contact-gauche p {
  color: var(--couleur-texte-secondaire);
  margin: 20px 0;
}

.infos-contact {
  line-height: 1.8;
  color: #333;
}

.formulaire-contact {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.formulaire-contact input,
.formulaire-contact textarea {
  padding: 12px;
  border-radius: 10px;
  border: 1px solid var(--couleur-bordure-forte);
  outline: none;
  background: var(--couleur-blanc);
}

.formulaire-contact textarea {
  min-height: 120px;
  resize: vertical;
}