/* common_style.css - Version Cyber-Souveraine */

/* Variables de couleurs */
:root {
    --color-dark-blue: #0A1128; /* Bleu très foncé pour le fond */
    --color-medium-blue: #122240; /* Bleu foncé pour les sections */
    --color-blue-grey: #4A608A; /* Bleu gris pour les textes secondaires ou bordures */
    --color-light-blue: #6B8EAD; /* Bleu plus clair pour les accents ou titres */
    --color-text-light: #E0E7FF; /* Texte clair */
    --color-text-muted: #A0B0D0; /* Texte légèrement estompé */
}

/* Styles Généraux */
body {
    font-family: 'Arial', sans-serif;
    margin: 0;
    padding: 0;
    background-color: var(--color-dark-blue); /* Fond principal */
    color: var(--color-text-light);
    line-height: 1.6;
    /* La bordure de test rouge a été supprimée. */
}

.container {
    width: 90%;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px 0;
}

/* Styles pour le Header */
header {
    background-color: var(--color-medium-blue); /* Couleur de fond de l'en-tête */
    padding: 15px 0; /* Ajustement du padding */
    border-bottom: 2px solid var(--color-blue-grey); /* Ligne de séparation */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

/* Conteneur principal du header pour alignement (Flexbox) */
.header-container {
    display: flex;
    justify-content: space-between; /* Pousse le logo/titre à gauche, la nav à droite */
    align-items: center; /* Centre verticalement les éléments */
    flex-wrap: wrap; /* Permet aux éléments de passer à la ligne sur petits écrans */
    padding: 0 20px; /* Ajout de padding horizontal */
}

/* Groupe logo et titre/slogan */
.header-brand {
    display: flex;
    align-items: center; /* Aligne verticalement le logo et le texte */
    gap: 15px; /* Espace entre le logo et le texte */
}

/* Style du lien du logo */
.logo-link {
    display: flex;
    align-items: center;
}

/* Style de l'image du logo */
.logo-link img {
    height: 60px; /* Hauteur fixe pour le logo, comme spécifié */
    width: auto; /* Maintient le ratio d'aspect */
    vertical-align: middle;
}

/* Ajustement des titres et paragraphes dans le header pour éviter les marges par défaut */
header h1 {
    margin: 0;
    font-size: 2.2em; /* Ajustement de la taille de police */
    color: var(--color-text-light);
}

header p {
    margin: 0;
    font-size: 1.1em; /* Ajustement de la taille de police */
    color: var(--color-text-muted);
}

/* Styles de navigation */
header nav {
    display: flex;
    gap: 20px; /* Espace entre les liens de navigation */
    flex-wrap: wrap; /* Permet aux liens de passer à la ligne */
    justify-content: center; /* Centre les liens sur petits écrans */
    margin-top: 0; /* Supprime la marge par défaut */
}

header nav a {
    color: var(--color-text-light);
    text-decoration: none;
    font-weight: bold;
    padding: 8px 15px;
    border-radius: 5px;
    transition: background-color 0.3s ease, color 0.3s ease;
}

header nav a:hover {
    background-color: var(--color-light-blue); /* Bleu plus clair au survol */
    color: var(--color-dark-blue); /* Texte plus foncé au survol */
}

/* Styles des Sections de Contenu */
main section {
    padding: 60px 0;
    border-bottom: 1px solid var(--color-blue-grey);
}

main section:last-of-type {
    border-bottom: none;
}

h2 {
    color: var(--color-light-blue);
    text-align: center;
    margin-bottom: 40px;
    font-size: 2.2em;
}

p {
    font-size: 1.1em;
    margin-bottom: 20px;
    color: var(--color-text-light);
}

ul {
    list-style: none;
    padding: 0;
    text-align: center;
}

ul li {
    background-color: var(--color-medium-blue);
    margin: 15px auto;
    padding: 20px;
    border-radius: 8px;
    max-width: 700px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    color: var(--color-text-light);
    font-size: 1.1em;
}

ul li strong {
    color: var(--color-light-blue);
}

/* Styles pour les images dans les sections */
.image-display {
    text-align: center;
    margin: 40px auto;
    max-width: 800px;
}

.image-display img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
}

.image-display figcaption {
    margin-top: 15px;
    font-size: 0.95em;
    color: var(--color-text-muted);
}

/* Styles pour les vidéos dans les sections */
.video-display {
    text-align: center;
    margin: 40px auto;
    max-width: 900px;
}

.video-display video {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.3);
    background-color: black;
}

.video-display figcaption {
    margin-top: 15px;
    font-size: 0.95em;
    color: var(--color-text-muted);
}

/* Pied de page */
footer {
    background-color: var(--color-medium-blue);
    text-align: center;
    padding: 30px 0;
    border-top: 2px solid var(--color-blue-grey);
    color: var(--color-text-muted);
    font-size: 0.9em;
}

/* Responsive design */
@media (max-width: 768px) {
    .header-container {
        flex-direction: column; /* Empile les éléments verticalement */
        text-align: center;
        gap: 15px; /* Espace entre les éléments empilés */
    }

    .header-brand {
        flex-direction: column;
        gap: 10px;
    }

    header h1 {
        font-size: 1.8em; /* Ajustement pour mobile */
    }

    header p {
        font-size: 0.9em; /* Ajustement pour mobile */
    }

    header nav {
        margin-top: 15px;
        flex-direction: column; /* Empile les liens de navigation */
        gap: 10px;
    }

    h2 {
        font-size: 1.8em;
    }
    p, ul li {
        font-size: 1em;
    }
    .image-display, .video-display {
        margin: 30px auto;
    }
}
