/* Styles généraux pour le corps */
body {
    font-family: Arial, sans-serif; /* Police principale */
    margin: 0; /* Supprime les marges par défaut */
    padding: 0; /* Supprime les espacements internes par défaut */
    display: flex; /* Active la disposition en flexbox */
    flex-direction: column; /* Colonne pour structurer les sections */
    height: 100%; /* Prend toute la hauteur disponible */
}

/* Styles pour l'élément HTML principal */
html {
    height: 100%; /* Assure une hauteur complète */
}

/* En-tête central avec des logos */
.central-header {
    background-color: #f4f4f4; /* Couleur de fond claire */
    padding: 20px 0; /* Espacement interne vertical */
    display: flex; /* Flexbox pour l'alignement des éléments */
    justify-content: space-between; /* Espace entre les logos gauche et droite */
    align-items: center; /* Centrage vertical des logos */
    position: relative; /* Nécessaire pour d'autres éléments positionnés */
}

/* Logo à gauche */
.central-header .left-logo {
    margin-left: 120px; /* Espacement à gauche */
    width: 15%; /* Largeur proportionnelle */
}

/* Logo à droite */
.central-header .right-logo {
    margin-right: 150px; /* Espacement à droite */
    width: 18%; /* Largeur proportionnelle */
}

/* Logo principal */
.large-logo {
    height: auto; /* Hauteur automatique pour respecter les proportions */
    width: 15%; /* Largeur proportionnelle */
}

/* Navigation principale */
.main-nav {
    background-color: #333; /* Couleur de fond sombre */
    text-align: center; /* Texte centré */
    padding: 10px 0; /* Espacement interne vertical */
}

/* Liste des éléments de navigation */
.main-nav ul {
    list-style-type: none; /* Supprime les puces des listes */
    margin: 0; /* Supprime les marges */
    padding: 0; /* Supprime les espacements internes */
    display: inline-block; /* Permet un centrage horizontal */
}

/* Élément individuel dans la navigation */
.main-nav ul li {
    display: inline; /* Affichage en ligne */
    margin: 0 15px; /* Espacement horizontal entre les éléments */
}

/* Liens de navigation */
.main-nav ul li a {
    text-decoration: none; /* Supprime le soulignement */
    color: white; /* Couleur blanche pour les liens */
    font-weight: bold; /* Texte en gras */
}

/* Styles pour les sous-menus */
.main-nav .submenu {
    display: none; /* Les sous-menus sont masqués par défaut */
    position: absolute; /* Positionnement relatif au parent */
    background-color: #444; /* Couleur de fond des sous-menus */
    list-style-type: none; /* Supprime les puces des listes */
    margin: 0; /* Supprime les marges */
    padding: 0; /* Supprime les espacements internes */
    z-index: 1000; /* Priorité d'affichage */
    border-radius: 5px; /* Coins arrondis */
    overflow: hidden; /* Cache tout débordement */
}

/* Liens des sous-menus */
.main-nav .submenu li a {
    text-decoration: none; /* Supprime le soulignement */
    color: white; /* Texte blanc */
    padding: 10px 20px; /* Espacement interne pour chaque lien */
    display: block; /* Les liens occupent toute la largeur */
    white-space: nowrap; /* Empêche le retour à la ligne */
}

/* Effet au survol des liens des sous-menus */
.main-nav .submenu li a:hover {
    background-color: #555; /* Change de couleur au survol */
}

/* Affichage des sous-menus au survol */
.main-nav .has-submenu:hover .submenu {
    display: block; /* Affiche les sous-menus */
}

/* Positionnement des sous-menus */
.main-nav .has-submenu {
    position: relative; /* Nécessaire pour positionner les sous-menus */
}

.main-nav .submenu {
    top: 100%; /* Positionne les sous-menus sous le parent */
    left: 0; /* Aligne les sous-menus à gauche */
}

/* Section principale */
main {
    padding: 20px; /* Espacement interne */
    text-align: left; /* Centre le contenu */
    flex: 1; /* Permet à la section principale de remplir l'espace restant */
}

/* Conteneur pour les titres */
.titles-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 20px;
}

/* Styles pour le h1 */
.titles-container h1 {
    text-align: left;
	font-size: 30px; /* Taille de la police */
	margin-left: 220px;
    flex: 1;
}

/* Styles pour le h2 */
.titles-container h2 {
    text-align: right;
	margin-right: 200px;
	font-size: 30px; /* Taille de la police */
    flex: 1;
}

/* Paragraphe dans la section principale */
main p {
    margin-bottom: 10px; /* Espacement inférieur */
    font-size: 18px; /* Taille de la police */
    color: #555; /* Couleur du texte */
}

.contact-map-wrapper {
    display: flex;
    justify-content: space-between; /* Espace uniforme entre le formulaire et la carte */
    align-items: flex-start; /* Aligne les deux éléments en haut */
    gap: 20px; /* Espacement horizontal entre le formulaire et la carte */
    margin-top: 20px; /* Espacement au-dessus */
}

.contact-form, #map-container {
    flex: 1; /* Les deux prennent une largeur égale */
    max-width: 48%; /* Limite à 48% chacun pour rester aligné */
    display: flex;
    flex-direction: column; /* Alignement vertical des contenus internes */
}


#map {
    width: 100%;
    height: 300px;
    border: 2px solid #ddd;
    border-radius: 8px;
}

/* Formulaire dans le conteneur */
.contact-form form {
    display: flex; /* Disposition en flexbox */
    flex-direction: column; /* Aligne les champs en colonne */
}

/* Groupe de champs du formulaire */
.contact-form .form-group {
    margin-bottom: 15px; /* Espacement entre les champs */
    display: flex; /* Disposition en flexbox */
    flex-direction: column; /* Aligne les éléments en colonne */
}

/* Étiquette pour les champs */
.contact-form label {
    font-weight: bold; /* Texte en gras */
    margin-bottom: 5px; /* Espacement inférieur */
    display: block; /* Affichage en bloc */
    text-align: left; /* Aligne le texte à gauche */
}

/* Champs de saisie et zones de texte */
.contact-form input,
.contact-form textarea {
    width: 100%; /* Prend toute la largeur disponible */
    padding: 10px; /* Espacement interne */
    border: 1px solid #ccc; /* Bordure grise */
    border-radius: 4px; /* Coins arrondis */
    font-size: 14px; /* Taille de la police */
    box-sizing: border-box; /* Inclut les bordures et le padding dans les dimensions */
}

/* Zones de texte */
.contact-form textarea {
    resize: vertical; /* Permet de redimensionner verticalement uniquement */
}

/* Bouton d'envoi */
.contact-form button {
    background-color: #333; /* Fond sombre */
    color: white; /* Texte blanc */
    border: none; /* Supprime les bordures */
    padding: 10px 15px; /* Espacement interne */
    border-radius: 4px; /* Coins arrondis */
    cursor: pointer; /* Curseur en mode clic */
    font-size: 16px; /* Taille de la police */
}

/* Effet au survol du bouton */
.contact-form button:hover {
    background-color: #555; /* Couleur légèrement plus claire */
}

/* Pied de page */
footer {
    background-color: #f4f4f4;
    padding: 10px 20px;
    text-align: left;
    margin-top: auto;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

footer .footer-text {
    font-size: 14px;
    color: #333;
}

footer .footer-links {
    font-size: 14px;
}

footer .footer-links a {
    text-decoration: none;
    color: #333;
    margin-left: 10px;
}

footer .footer-links a:hover {
    text-decoration: underline;
}

/* Styles pour les écrans de petite taille */
@media (max-width: 768px) {
    .banner-container {
        height: 250px;
    }

    .banner-overlay {
        font-size: 18px;
        padding: 8px 15px;
    }
}