/* public/css/app.css */

/* Styles généraux */
body {
    margin: 0;
    font-family: 'Open Sans', Arial, sans-serif; /* MODIFIÉ: Ajout de Arial comme fallback */
    color: #333;
    line-height: 1.6;
    /* Gère la hauteur pour éviter le scrollbar indésirable */
    display: flex;
    flex-direction: column; /* Organise les enfants (header, main, footer) en colonne */
    min-height: 100vh; /* S'assure que le body prend au moins toute la hauteur de la fenêtre */
}

a {
    text-decoration: none;
    color: inherit;
}

/* Styles pour le conteneur centralisé qui limite la largeur du contenu (utilisé dans header, main, footer) */
.container {
    max-width: 1200px; /* Largeur maximale pour le contenu */
    margin-left: auto; /* Centre le bloc horizontalement */
    margin-right: auto; /* Centre le bloc horizontalement */
    padding: 0 20px; /* Ajoute un peu de padding horizontal pour les petits écrans */
    box-sizing: border-box; /* Inclut padding dans la largeur */
    /* width: 100%; <-- CETTE LIGNE A ÉTÉ SUPPRIMÉE PRÉCÉDEMMENT */
}

/* Styles du HEADER */
header {
    background-color: #8A6B8B; /* MODIFIÉ : Nouvelle couleur pour un meilleur contraste */
    color: white;
    padding: 15px 0; /* Padding vertical appliqué au header entier. Horizontal sera géré par .container */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%; /* S'assure que le header prend toute la largeur de l'écran */
}

header .container {
    display: flex; /* Ceci rend les enfants (logo et nav) flex */
    justify-content: space-between; /* Ceci pousse le logo à gauche et la nav à droite */
    align-items: center; /* Aligne verticalement les éléments au centre */
}

header .logo img {
    height: 60px; /* Taille du logo dans le header */
    vertical-align: middle;
}

/* Styles pour le bouton du menu burger (avec animation) */
.menu-toggle {
    display: none; /* Caché par default sur desktop, affiché sur mobile par media query */
    flex-direction: column;
    justify-content: space-around;
    width: 30px; /* Largeur du bouton */
    height: 25px; /* Hauteur du bouton */
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 0;
    box-sizing: border-box;
    z-index: 1001; /* S'assure qu'il est au-dessus de tout */
    position: relative; /* Important pour le positionnement absolu des barres */
}

.menu-toggle .bar {
    width: 100%;
    height: 3px;
    background-color: white; /* Couleur des barres du burger */
    -webkit-transition: all 0.3s ease-in-out; /* AJOUTÉ POUR COMPATIBILITÉ */
    transition: all 0.3s ease-in-out; /* Pour l'animation d'ouverture/fermeture */
    border-radius: 5px; /* Pour des barres légèrement arrondies */
    position: absolute; /* Positionnement absolu pour les animations */
    left: 0;
}

/* Positionnement initial des barres */
.menu-toggle .bar:nth-child(1) {
    top: 0;
}

.menu-toggle .bar:nth-child(2) {
    top: 50%;
    transform: translateY(-50%); /* Centre la barre du milieu */
}

.menu-toggle .bar:nth-child(3) {
    bottom: 0;
}

/* Animation de l'icône burger en croix */
.menu-toggle.is-active .bar:nth-child(1) {
    transform: translateY(11px) rotate(45deg); /* Barre du haut se déplace et tourne */
}

.menu-toggle.is-active .bar:nth-child(2) {
    opacity: 0; /* Barre du milieu disparaît */
}

.menu-toggle.is-active .bar:nth-child(3) {
    transform: translateY(-11px) rotate(-45deg); /* Barre du bas se déplace et tourne */
}


/* Styles pour le menu de navigation principal (desktop) */
.main-nav ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex; /* Affiche les éléments de menu côte à côte */
}

.main-nav li {
    margin-left: 25px;
}

.main-nav a {
    color: white;
    text-decoration: none;
    font-weight: normal; /* MODIFIÉ : Mettre la police en normal (non-gras) */
    font-size: 1.1em;
    transition: color 0.3s ease;
}

.main-nav a:hover {
    color: #e0b0ff;
}

/* Styles pour le menu de navigation mobile */
.mobile-nav {
    display: none; /* Caché par default, sera affiché par JavaScript via .is-open sur mobile */
    position: fixed; /* Fixé pour couvrir l'écran */
    top: 0;
    right: 0; /* Positionne le menu sur le côté droit */
    width: 250px; /* Largeur fixe pour le panneau latéral (ajuste si besoin) */
    max-width: 80%; /* Pour s'assurer qu'il ne dépasse pas 80% sur de très petits écrans */
    max-height: 100vh; /* La hauteur maximale est la hauteur de la fenêtre */
    height: auto; /* La hauteur s'adapte au contenu */

    background-color: #825d83; /* Fond du menu (couleur du footer) */
    box-shadow: -5px 0 15px rgba(0, 0, 0, 0.3); /* Ombre pour donner de la profondeur */
    z-index: 998;
    padding-top: 20px; /* Réduit le padding en haut pour rapprocher le menu du haut */
    padding-bottom: 20px; /* Ajoute un padding en bas */
    box-sizing: border-box;
    overflow-y: auto; /* Permet le scroll si le contenu du menu dépasse max-height */
    -webkit-overflow-scrolling: touch; /* AJOUTÉ : Améliore le défilement sur iOS */

    transform: translateX(100%); /* Commence hors écran (à droite) */
    /* Fonction de transition avec un effet "rebondissant" */
    transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

.mobile-nav.is-open {
    transform: translateX(0); /* Glisse sur l'écran */
    display: block; /* Rendre le menu visible */
}

/* NOUVEAU : Styles pour l'overlay (fond semi-transparent) */
body.menu-open::before { /* Utilisation d'une classe sur le body pour l'overlay */
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5); /* Couleur noire avec 50% d'opacité */
    z-index: 997; /* Juste en dessous du menu mobile (z-index: 998) */
    opacity: 0; /* Commence invisible */
    transition: opacity 0.3s ease-in-out; /* Animation de l'opacité */
}

body.menu-open {
    overflow: hidden; /* Empêche le défilement du contenu derrière le menu */
}

body.menu-open::before {
    opacity: 1; /* Devient visible lorsque le menu est ouvert */
}

.mobile-nav ul {
    list-style: none;
    padding: 0; /* Assure pas de padding par default */
    margin: 0;
    text-align: left; /* Aligner le texte à gauche */
}

.mobile-nav li {
    margin-bottom: 0; /* Plus de marge en bas, gérée par le padding des liens */
    border-bottom: 1px solid rgba(255, 255, 255, 0.1); /* Liseré blanc très léger */
}

.mobile-nav li:last-child {
    border-bottom: none; /* Pas de liseré après le dernier élément */
}

.mobile-nav a {
    color: white;
    text-decoration: none;
    font-size: 1.1em; /* Taille de police réduite */
    font-weight: normal; /* Poids de police normal (plus fin) */
    display: block;
    padding: 15px 20px; /* Ajoute du padding pour les liserets et l'espace cliquable */
    transition: background-color 0.3s ease; /* Transition sur le fond plutôt que la couleur du texte */
}

.mobile-nav a:hover {
    background-color: rgba(255, 255, 255, 0.1); /* Léger fond au survol */
    color: white; /* Garde le texte blanc au survol */
}

/* NOUVELLE MEDIA QUERY pour les TABLETTES et PETITS ORDINATEURS PORTABLES */
@media (max-width: 1024px) {
    /* Ajustements pour les écrans entre 769px et 1024px */
    /* Ces styles s'appliqueront aux tablettes en mode paysage et certains petits laptops */

    /* Exemple : Ajuster la taille des polices pour être un compromis entre desktop et mobile */
    h1 {
        font-size: 2.5em; /* Un peu plus petit que desktop, plus grand que mobile */
    }

    h2 {
        font-size: 1.8em;
    }

    p {
        font-size: 1.05em; /* Légèrement plus petit que desktop */
    }

    /* Vous pouvez ajouter d'autres ajustements ici */
    /* Par exemple, des marges ou padding pour le .container si vous le souhaitez */
    .container {
        padding: 0 15px; /* Un peu moins de padding latéral que sur desktop */
    }
}


/* Media Queries pour le responsive (EXISTANTE pour MOBILE) */
@media (max-width: 768px) {
    /* Sur les écrans plus petits que 768px */

    .main-nav {
        display: none; /* Cache le menu desktop sur les petites tailles d'écran */
    }

    .menu-toggle {
        display: flex; /* Affiche le bouton burger sur les petites tailles d'écran */
    }

    /* Ajustement de la taille du logo sur mobile */
    header .logo img {
        height: 50px;
    }

    /* Ajustement de la taille du texte pour les mobiles */
    h1 {
        font-size: 1.8em; /* Plus petit pour les titres principaux */
    }

    h2 {
        font-size: 1.4em; /* Plus petit pour les sous-titres */
    }

    p {
        font-size: 1em; /* Légèrement plus petit ou inchangé pour le texte courant */
    }

    .homepage-content {
        padding: 30px 15px; /* Réduit le padding sur mobile */
    }
}


/* Styles pour le contenu principal (<main>) */
main {
    padding: 20px;
    box-sizing: border-box;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    flex-grow: 1; /* Permet au main de prendre l'espace disponible */
}

/* Styles généraux du contenu principal de la homepage */
.homepage-content {
    padding: 50px 20px;
    text-align: center;
}

/* Styles des titres h1, h2, etc. */
h1, h2, h3, h4, h5, h6 {
    font-family: 'Montserrat', Helvetica, sans-serif; /* MODIFIÉ: Ajout de Helvetica comme fallback */
    color: #212121;
    margin-bottom: 20px;
}

p {
    font-size: 1.1em;
}

/* Styles pour la section des voyants (vide pour l'instant) */
.voyant-cards-section {
    margin-top: 40px;
    display: grid; /* Active le mode grille */
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* Crée des colonnes auto-ajustables */
    gap: 20px; /* Ajoute un espacement de 20px entre les éléments de la grille */
}

/* Styles du FOOTER */
footer {
    background-color: #825d83; /* Une nuance plus foncée pour le footer */
    color: white;
    padding: 20px 0;
    text-align: center;
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.05);
    width: 100%;
}

footer .container {
    /* Le .container hérite déjà de max-width, margin: auto, et padding: 0 20px; */
}

footer a {
    color: white;
    text-decoration: none;
    margin: 0 10px;
}

footer a:hover {
    text-decoration: underline;
}
/* Ajoutez ceci à la fin de votre fichier public/css/app.css */

.homepage-hero {
    padding: 50px 20px;
    text-align: center;
}

.voyant-cards-section .placeholder-text {
    margin-top: 20px; /* Ajoute un peu d'espace au-dessus du texte temporaire */
    color: #888; /* Rend le texte un peu plus discret */
    font-style: italic; /* Met le texte en italique */
}