/* Réinitialisation de base */
* {
    margin: 0; /* Réinitialise la marge par défaut de tous les éléments */
    padding: 0; /* Réinitialise le padding par défaut de tous les éléments */
    box-sizing: border-box; /* Inclut les bordures et le padding dans la largeur/hauteur totale de l'élément */
}

body {
    font-family: 'Arial', sans-serif; /* Police principale */
    line-height: 1.6; /* Hauteur de ligne pour améliorer la lisibilité */
    background-color: #f4f4f4; /* Couleur de fond générale */
    color: #333; /* Couleur du texte principale */
    display: flex; /* Utilisation de flexbox pour structurer le contenu */
    flex-direction: column; /* Aligne les éléments du body en colonne */
    min-height: 100vh; /* S'assure que le body couvre toute la hauteur de la fenêtre */
}

/* Structure de base */
.container {
    width: 90%; /* Largeur du conteneur à 90% de l'écran */
    max-width: 1200px; /* Largeur maximale de 1200px */
    margin: 0 auto; /* Centrage horizontal du conteneur */
}

/* header */
header {
    background-color: #5acb96; /* Couleur de fond de l'en-tête */
    color: #fff; /* Couleur du texte de l'en-tête */
    padding: 16px 0; /* Espacement vertical de l'en-tête */
    text-align: center; /* Centrage du texte dans l'en-tête */
}

header h1 {
    font-size: 32px; /* Taille de la police du titre */
}

/* Barre de navigation */
nav ul {
    padding: 0; /* Réinitialise le padding par défaut des listes */
}

nav ul li {
    display: inline; /* Affichage en ligne des éléments de la liste */
    margin-right: 20px; /* Espace entre chaque lien de la navigation */
}

nav ul li a {
    color: #fff; /* Couleur du texte des liens */
    text-decoration: none; /* Enlève la décoration par défaut des liens */
    font-size: 19.2px; /* Taille de la police des liens */
}

nav ul li a:hover {
    text-decoration: underline; /* Souligné au survol des liens */
}

/* Section principale */
main {
    padding: 32px 0; /* Espacement vertical pour la section principale */
    flex-grow: 1; /* Permet à cette section de prendre tout l'espace disponible */
}

.projet h3 {
    font-size: 28.8px; /* Taille de la police pour les titres de projets */
    margin-bottom: 16px; /* Espace sous le titre */
}

.projet p {
    font-size: 17.6px; /* Taille de la police pour le texte des projets */
    margin-bottom: 16px; /* Espace sous le paragraphe */
}

/* Footer - Pied de page */
footer {
    background-color: #5acb96; /* Couleur de fond du pied de page */
    color: #fff; /* Couleur du texte du pied de page */
    padding: 16px; /* Espacement autour du texte du pied de page */
    text-align: center; /* Centrage du texte dans le pied de page */
}

/* Bouton avec encadrement */
.btn {
    display: inline-block; /* Affichage en ligne du bouton */
    background-color: #5acb96; /* Couleur de fond du bouton */
    color: #fff; /* Couleur du texte du bouton */
    padding: 8px 24px; /* Espacement autour du texte du bouton */
    text-decoration: none; /* Enlève la décoration des liens sur le bouton */
    border-radius: 5px; /* Bordures arrondies */
    margin-top: 16px; /* Espace au-dessus du bouton */
    border: 2px solid #5acb96; /* Bordure du bouton */
    outline: none; /* Retire le contour par défaut au focus */
}

.btn:hover {
    background-color: #555555; /* Changement de couleur du fond au survol */
    border-color: #555555; /* Changement de couleur de la bordure au survol */
}

iframe {
    width: 100%; /* Largeur à 100% de son conteneur */
    height: 400px; /* Hauteur de 400px pour les iframes */
    border: 0; /* Supprime la bordure autour des iframes */
}

.espacement {
    width: 80%; /* Largeur à 80% de l'écran */
    margin: 0 auto; /* Centrage horizontal */
    padding: 20px 0; /* Espacement vertical dans la section */
}

/* Ligne noire sous la section "Qui suis-je ?" */
.ligne-noire {
    display: inline-block; /* Affiche la ligne en ligne avec le texte */
    width: 100%; /* Prend toute la largeur disponible */
    border-top: 2px solid black; /* Bordure noire en haut */
    margin-top: 20px; /* Espace au-dessus de la ligne */
    margin-bottom: 30px; /* Espace en dessous de la ligne */
}

/* Style pour la section "Qui suis-je ?" */
.col-4 {
    width: 100%; /* Prend toute la largeur disponible */
    padding: 10px; /* Espacement autour des éléments */
}

/* Section row pour mettre les éléments sur une ligne */
.row {
    display: flex; /* Utilisation de flexbox pour l'agencement des éléments */
    justify-content: space-between; /* Espace égal entre les éléments */
    gap: 650px; /* Espace de 650px entre les colonnes */
    margin-top: 5px; /* Espace au-dessus de la section */
    padding-left: 20px; /* Espacement à gauche */
    padding-right: 20px; /* Espacement à droite */
}

/* Largeur des sections */
.col-6 {
    width: 48%; /* Chaque section prend 48% de la largeur de la ligne */
    box-sizing: border-box; /* Assure que le padding et les bordures ne comptent pas dans la largeur */
}

/* Empêche "Mes Compétences" de se casser en deux lignes */
.col-6 h2 {
    white-space: nowrap; /* Empêche le texte de se couper sur plusieurs lignes */
    overflow: hidden; /* Cache le texte qui déborde */
    text-overflow: ellipsis; /* Affiche des points de suspension si le texte déborde */
}

/* Grille de base - 12 colonnes pour les écrans de bureau */
.container {
    display: grid; /* Utilisation du système de grille */
    grid-template-columns: repeat(12, 1fr); /* Définition de 12 colonnes égales */
    gap: 16px; /* Espacement entre les éléments de la grille */
    width: 100%; /* Prend toute la largeur de l'écran */
}

body, html {
    margin: 0; /* Réinitialise les marges */
    padding: 0; /* Réinitialise les paddings */
    height: 100%; /* Assure que le body et html prennent toute la hauteur de la fenêtre */
}

.container {
    display: flex; /* Utilisation de flexbox */
    justify-content: center; /* Centrage des éléments */
    align-items: center; /* Alignement vertical des éléments */
    min-height: 100vh; /* Hauteur minimale de la fenêtre */
}

/* Mise en page des projets */
.project-layout {
    display: grid; /* Grille pour organiser les projets */
    grid-template-columns: repeat(2, 1fr); /* 2 colonnes */
    grid-template-areas:
        "projet1 projet2"
        "projet3 ."; /* Définition des zones des projets */
    gap: 40px; /* Espacement entre les projets */
    justify-items: center; /* Centrage des éléments dans les cellules */
    align-items: center; /* Alignement vertical des éléments dans les cellules */
}

#projet1 { grid-area: projet1; } /* Affecte la zone projet1 */
#projet2 { grid-area: projet2; } /* Affecte la zone projet2 */
#projet3 { grid-area: projet3; } /* Affecte la zone projet3 */

/* Style des éléments de projet */
.project {
    background-color: #f0f0f0; /* Couleur de fond des projets */
    padding: 20px 30px; /* Espacement autour du contenu des projets */
    border-radius: 8px; /* Bordures arrondies */
    box-shadow: 0 0 10px rgba(0,0,0,0.1); /* Ombre légère autour des projets */
    width: 320px; /* Largeur fixe des projets */
    text-align: center; /* Centrage du texte dans les projets */
}

/* Définir les colonnes pour les éléments */
.col-1 { grid-column: span 1; }
.col-2 { grid-column: span 2; }
.col-3 { grid-column: span 3; }
.col-4 { grid-column: span 4; }
.col-5 { grid-column: span 5; }
.col-6 { grid-column: span 6; }
.col-7 { grid-column: span 7; }
.col-8 { grid-column: span 8; }
.col-9 { grid-column: span 9; }
.col-10 { grid-column: span 10; }
.col-11 { grid-column: span 11; }
.col-12 { grid-column: span 12; }

/* Pour les écrans ≤ 576px (smartphones) */
@media (max-width: 575.98px) {
    .col-1 { grid-column: span 12; }
    .col-2 { grid-column: span 12; }
    .col-3 { grid-column: span 12; }
    .col-4 { grid-column: span 12; }
    .col-5 { grid-column: span 12; }
    .col-6 { grid-column: span 12; }
    .col-7 { grid-column: span 12; }
    .col-8 { grid-column: span 12; }
    .col-9 { grid-column: span 12; }
    .col-10 { grid-column: span 12; }
    .col-11 { grid-column: span 12; }
    .col-12 { grid-column: span 12; }
}

/* Pour les écrans ≥576px */
@media (min-width: 576px) {
    .col-1 { grid-column: span 12; }
    .col-2 { grid-column: span 6; } 
    .col-3 { grid-column: span 6; }
    .col-4 { grid-column: span 12; }
}

/* Pour les écrans ≥768px (tablettes) */
@media (min-width: 768px) {
    .col-1 { grid-column: span 12; }
    .col-2 { grid-column: span 6; }
    .col-3 { grid-column: span 6; }
    .col-4 { grid-column: span 12; }
}

/* Pour les écrans ≥992px (petits écrans de bureau) */
@media (min-width: 992px) {
    .col-1 { grid-column: span 4; }
    .col-2 { grid-column: span 4; }
    .col-3 { grid-column: span 4; }
}

/* Pour les écrans ≥1200px (grands écrans de bureau) */
@media (min-width: 1200px) {
    .col-1 { grid-column: span 4; }
    .col-2 { grid-column: span 4; }
    .col-3 { grid-column: span 4; }
}
