/* Réinitialisation des marges, des paddings et suppression des styles par défaut */
* {
    padding: 0;
    margin: 0;
    text-decoration: none;
    font-family: "Roboto", sans-serif;
    list-style: none;
    user-select: none; /* Empêche la sélection de texte */
}

/* Variables CSS pour une personnalisation rapide des couleurs et tailles */
:root {
    --bg-color: #0c0c0c; /* Couleur de fond principale */
    --text-color: #fff; /* Couleur de texte par défaut */
    --main-color: #ffd000; /* Couleur principale pour les accents */

    --big-font: 6.6rem; /* Taille des grands titres */
    --p-font: 1rem; /* Taille du texte des paragraphes */

    --c-voiture: #c3d5e2;
}

/* Style de base pour le corps de la page */
body {
    background: var(--bg-color);
    color: var(--text-color);
}

/* En-tête du site */
header {
    position: fixed;
    width: 100%;
    top: 0;
    right: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all .50s ease; /* Animation de transition fluide */
}

/* Classe pour masquer les éléments */
.invisible {
    display: none;
    width: 42px;
}

/* Style du logo */
.logo img {
    width: 100px;
    height: auto;
}

/* Liste de navigation */
.navlist {
    display: flex;
}

.navlist a {
    flex-direction: row;
    margin: 0 35px;
    color: var(--text-color);
    font-size: 1rem;
    transition: all .6s ease; /* Transition pour l'effet hover */
}

.navlist a:hover {
    color: var(--main-color); /* Changement de couleur au survol */
}

/* Indicateur de la page active */
#pageactuelle {
    color: var(--main-color);
}

/* Section de contenu à droite de l'en-tête */
.right-content {
    display: flex;
    align-items: center;
}

/* Icône de menu pour les petits écrans */
#menu-icon {
    color: var(--text-color);
    font-size: 42px;
    z-index: 10001;
    cursor: pointer;
    display: none; /* Masqué par défaut */
}

/* Section générale */
section {
    padding-left: 14%;
}

/* Section principale "hero" */
.hero {
    position: relative;
    height: 100vh; /* Pleine hauteur de la fenêtre */
    background-size: cover;
    background-position: center;
    display: grid;
    grid-template-columns: repeat(2, 1fr); /* Deux colonnes */
    align-items: center;
    gap: 2rem; /* Espace entre les colonnes */
}

.hero-img img {
    z-index: 1000;
    width: 100%;
    height: 100%;
}

/* Styles pour le texte dans la section "hero" */
.hero-text h1 {
    font-size: var(--big-font);
    font-weight: 900;
    margin: 15px 0;
    color: var(--text-color);
}

.hero-text h5 {
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 1px;
    color: var(--text-color);
}

.hero-text p {
    width: 100%;
    max-width: 620px;
    font-size: var(--p-font);
    font-weight: 400;
    line-height: 32px;
    color: var(--text-color);
    margin-bottom: 40px;
}

/* Bouton pour faire défiler la page */
.scroll {
    position: absolute;
    top: 92%;
    left: 7%;
    transform: translateY(-50px);
}

.scroll a {
    font-size: 16px;
    color: var(--text-color);
}

/* Deuxième section "hero2" (similaire à "hero") */
.hero2 {
    position: relative;
    height: 100vh;
    background-size: cover;
    background-position: center;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    align-items: center;
    gap: 2rem;
}

.hero-img2 img {
    z-index: 1000;
    width: 100%;
    height: 100%;
}

.hero-text2 h1 {
    font-size: var(--big-font);
    font-weight: 900;
    margin: 15px 0;
    color: var(--text-color);
}

.hero-text2 h5 {
    font-size: 18px;
    font-weight: 400;
    letter-spacing: 1px;
    color: var(--text-color);
}

.hero-text2 p {
    width: 100%;
    max-width: 620px;
    font-size: var(--p-font);
    font-weight: 400;
    line-height: 32px;
    color: var(--text-color);
    margin-bottom: 40px;
}

/* Catalogue d'éléments */
.catalog {
    position: absolute;
    left: 50%;
    bottom: 20px;
    transform: translateX(-50%);
    display: flex;
}

.catalog li {
    list-style: none;
    display: inline-block;
    margin: 0 2;
    cursor: pointer;
    transform: 0.5s; /* Transition fluide */
}

.catalog li:hover {
    transform: translateY(-20px); /* Animation de déplacement */
}

.catalog li img {
    max-width: 130px;
}

/* Cercle décoratif dans le design */
.circle {
    z-index: -1; /* Placé derrière le contenu */
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--c-voiture);
    clip-path: circle(600px at right 500px); /* Forme du cercle */
}

/* Styles responsives pour différentes tailles d'écran */

@media(max-width: 1770px) {
    .scroll {
        left: 4%;
    }
}

@media(max-width: 1670px) {
    :root {
        --big-font: 5.5rem;
        --p-font: 15px;
    }
}

@media(max-width: 1370px) {
    section {
        padding: 4%;
    }

    .scroll {
        top: 98%;
    }

    .circle {
        width: 100vw;
        height: 100%;
        clip-path: circle(550px at right 500px);
    }
}

@media(max-width: 1150px) {
    :root {
        --big-font: 4.6rem;
    }

    .circle {
        clip-path: circle(500px at right 500px);
    }
}

@media(max-width: 950px) {
    #menu-icon {
        display: block; /* Affiche l'icône du menu */
    }

    .invisible{
        display: block;
    }

    .hero-img {
        width: 109%
    }

    .hero-img2 {
        width: 113%
    }

    .navlist {
        position: absolute;
        width: 100%;
        height: 100vh;
        padding: 100px 100px;
        top: 0;
        right: 0;
        bottom: 0;
        left: 100%;
        display: flex;
        flex-direction: column;
        backdrop-filter: blur(32px); /* Flou d'arrière-plan */
        transition: all .6s ease-in-out;
    }

    .navlist a {
        display: block;
        padding: 0;
        margin: 0px 0px 25px 0px;
        font-size: 1.7rem;
    }

    .navlist.open {
        left: 0; /* Ouvre le menu */
    }

    .scroll {
        display: none;
    }

    .circle {
        clip-path: circle(450px at right 500px);
    }
}

@media(max-width: 920px) {
    .hero {
        grid-template-columns: 1fr; /* Une seule colonne */
        height: auto;
    }

    .hero-text {
        padding-top: 130px;
    }

    .hero-img {
        width: 100%;
    }

    .hero2 {
        grid-template-columns: 1fr;
        height: auto;
    }

    .hero-text2 {
        padding-top: 0px;
    }

    .hero-img2 {
        width: 100%;
    }

    .circle {
        clip-path: circle(700px at right 900px);
    }
}

@media(max-width: 570px) {
    section{
        margin-right: 0;
    }

    .hero p {
        margin-bottom: 0;
    }

    .hero2 {
        top: 15vh;
    }

    :root {
        --big-font: 4rem;
    }

    .catalog {
        top: 100%;
    }

    .catalog li img {
        max-width: 110px;
    }

    .circle {
        height: 250%;
        clip-path: circle(500px at right 700px);
    }
}

@media(max-width: 440px) {
    :root {
        --big-font: 3.4rem;
    }

    .hero-text h5 {
        font-size: 15px;
    }

    .hero-img {
        width: 100%;
    }

    .hero2 p {
        margin-bottom: 30px;
    }

    .hero-text2 h5 {
        font-size: 15px;
    }

    .hero-img2 {
        width: 100%;
    }

    .catalog li img {
        max-width: 100px;
    }

    .circle {
        height: 260%;
        clip-path: circle(400px at right 650px);
    }
}
