@font-face {
	font-family: 'Motley Forces';
    src: url('fonts/MotleyForces.woff2') format('woff2');
    src: url('fonts/MotleyForces.woff') format('woff');
	src: url('fonts/MotleyForces.ttf') format('ttf');
    src: url('fonts/MotleyForces.otf') format('opentype');
    font-weight: 100;
    font-style: normal;
}

@font-face {
    font-family: 'Montserrat-SemiBold';
    src: url(fonts/montserrat/Montserrat-SemiBold.otf) format('opentype');
}

@font-face {
    font-family: 'Montserrat-Regular';
    src: url(fonts/montserrat/Montserrat-Regular.otf) format('opentype');
}

@font-face {
    font-family: 'Montserrat-Black';
    src: url(fonts/montserrat/Montserrat-Black.otf) format('opentype');
}

/* reglages initiaux de la page */

body { 
    margin: 0;
    padding: 0;
    width: 100vw;
    font-family: "poppins", sans-serif;
    font-weight: 400;
    font-style: normal;
    overflow-x: hidden;
}

.page-actuelle {
    color: #FFDF6F;
    text-decoration: underline;
}

/* STYLE DU MENU */
nav {
    position: sticky;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Motley Forces';
    font-size: 2vw;
    letter-spacing: 0.07vw;
    background-color: #0E1422;
    height: 15vh;
    color: white;
}
nav a {
    text-decoration: none;
    color: #FBFBFB;
}

.menu a:hover {
    color: #FFDF6F;
}

/* le menu + le burger */
.liens {
    display: flex;
    width: 75%;
    gap: 5.3vw;
    align-items: center;
    justify-content: center;
}
/* menu qui contient simplement les liens */
.menu {
    order: 1;
    display: flex;
    gap: 3.1vw;
}

/* lorsque le menu burger est ouvert, la page doit pas pouvoir se scroll */
.stopscroll {
    overflow: hidden;
}

/* creer un separateur qui evitera une superposition de contenu 
lorsque le menu burger sera ouvert (faire baisser le hero) */
.separateur {
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    display: none; /* Initialement masquée */
}
.separateur.visible {
    display: block; /* Affichage lorsque la classe visible est présente */
}
/* FIN DU STYLE DU MENU */


/* RESPONSIVE < 900px */

/* MENU EN RESPONSIVE */
/* duplication du menu burger/container liens menu 
mais initialement placés en display none et s'affichent 
quand l'écran est inferieur a 900px*/
.hamburger-resp {
    width: 5.4vw;
    height: 5.4vw; 
    cursor: pointer;
    border: none;
    display: flex;
    background: #0E1422;
    align-items: center;
    position: relative;
    justify-content: center;
    display: none;
    padding: 0;
}
.hamburger-resp span{
    display: block;
    width: 100%;
    height: 0.5vw;
    background: #FBFBFB;
    position: absolute;
    pointer-events: none;
    transition: opacity 0.3s 0.15s ease-out;
}
/* Les 3 traits (span) se décollent en remontant le 1 et baissant le 3 */
.hamburger-resp span:nth-child(1){
    transform: translateY(1.8vw);
}
.hamburger-resp span:nth-child(3){
    transform: translateY(-1.8vw);
}
.hamburger-resp span:nth-child(1), .hamburger span:nth-child(3){
    transition: transform 0.3s ease-out;
}
/* Quand on déclenche la classe open, animation des barres du menu burger pour devenir une croix */
.hamburger-resp.open span:nth-child(1) {
    transform: translate(0) rotate(135deg);
}
.hamburger-resp.open span:nth-child(2) {
    opacity: 0;
    transition: opacity 0s ease-out;
}
.hamburger-resp.open span:nth-child(3) {
    transform: translate(0) rotate(-135deg);
}
.containerliensmenu-resp {
    flex-direction: column;
    align-items: center;
    position: absolute;
    background-color: #0E1422;
    top: 15vh;
    right: 0px;
    margin: 0;
    padding: 0;
    height: calc(100vh - 15vh);
    width: 100vw;
    justify-content: center;
    border-right: 0.06vw solid #c5c5c6;
    display: none; 
}

/* menu */
.conteneur-txt {
    height: 80%;
    display: flex;
    align-items: center;   
}

.open {
    display: flex;
}

/* faire disparaitre le hero lorsque le menu burger est ouvert */
 .cachee {
    display: none;
 }

 .hamburger {
    display: none;
 }

 .nomportfolio {
    display: none;
    font-size: 3vw;
    font-family: 'Motley Forces';
    color: white;
 }


 .containerliensmenu-resp a {
    margin: 3vw 0vw;
    text-decoration: none;
    color: white;
    display: inline-block;
    position: relative;
    font-family: 'Motley Forces';
    font-size: 26px;
    display: none;
}

.hero {
    height: 70vh;
    background-color: #0E1422;
    display: flex;
    padding: 0vw 5vw;
    justify-content: space-evenly;
    align-items: center;
}

.hero a {
    all: unset;
}

.partiegauche {
    width: 35vw;
    height: 35vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    font-family: 'Montserrat-Regular', sans-serif;
    color: #FBFBFB;
    font-size: 2.5vw;
}

.partiedroite {
    width: 35vw;
    height: 35vw;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}

.photonolanhero {
    position: relative;
    height: 35vw;
}

.logosreseauxhero {
    position: absolute;
    top: 30.5vw;
    left: 7.3vw;
    width: 19.2vw;
    height: 4vw;
    display: flex;
    gap: 3vw;
    justify-content: center;
}

.vaguehero {
    width: 102vw;
    padding: 0;
    margin: 0;
    position: relative;
    top: -1vw;
    left: -1vw;
    overflow: hidden;
}

.logo-social {
    width: 2.5vw;  
}

.logotwitter {
    width: 2.8vw;
}

.logo-social path {
    fill: #0E1422; 
    transition: fill 0.2s ease; 
}

.logo-social path:hover {
    fill: #F9A473; 
}

/* Conteneur des boutons */
.boutons {
    margin-bottom: 1.3vw;
    width: 40vw;
    display: flex;
    gap: 1vw;
}

/* Styles communs pour les boutons */
.boutonhero {
    all: unset;
    border: none;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    position: relative; /* Assure que les pseudo-éléments sont correctement positionnés */
    overflow: hidden; /* Masque l'élément qui dépasse */
    transition: border 0.4s ease; /* Transition pour la bordure */
}

/* Style pour le texte à l'intérieur des boutons */
.boutonhero p {
    all: unset;
    font-family: 'Montserrat-Regular', sans-serif;
    font-size: 1.6vw;
    color: black; /* Couleur du texte initiale */
    position: relative; /* Assure que le texte est au-dessus du pseudo-élément */
    z-index: 1; /* Texte au-dessus du pseudo-élément */
}

/* Pseudo-élément pour l'effet de propagation */
.boutonhero::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.5vw;
    height: 0.5vw;
    background-color: #0E1422; /* Utilise la couleur actuelle du texte */
    border-radius: 1vw; /* Bords arrondis */
    transform: translate(-50%, -50%);
    transition: width 0.4s ease, height 0.4s ease; /* Transition plus lente */
    z-index: 0; /* Pseudo-élément derrière le texte */
    opacity: 0; /* Invisible au départ */
}

/* Changement de couleur du texte et de la bordure au survol */
button:hover::before {
    width: 300%;
    height: 300%;
    opacity: 1; /* Rendre le pseudo-élément visible */
}

/* Styles spécifiques pour chaque bouton */
.btn1 {
    width: 15vw;
    height: 4vw;
    border-radius: 2vw;
    background-color: #B8CEDE;
}

.btn2 {
    width: 17vw;
    height: 4vw;
    border-radius: 2vw;
    background-color: #F9A473;
}

.btn3 {
    width: 25vw;
    height: 4vw;
    border-radius: 2vw;
    background-color: #FFDF6F;
}

.btn1:hover {
    border: 0.2vw solid #B8CEDE; /* Bordure correspondant à la couleur du bouton */
    width: 14.6vw;
    height: 3.6vw;
}
.btn2:hover {
    border: 0.2vw solid #F9A473; /* Bordure correspondant à la couleur du bouton */
    width: 16.6vw;
    height: 3.6vw;
}
.btn3:hover {
    border: 0.2vw solid #FFDF6F; /* Bordure correspondant à la couleur du bouton */
    width: 24.6vw;
    height: 3.6vw;
}

/* Changement de couleur du texte et de la bordure au survol pour chaque bouton */
.btn1:hover p {
    color: #B8CEDE; /* Couleur du texte pendant le survol */
}

.btn2:hover p {
    color: #F9A473; /* Couleur du texte pendant le survol */
}

.btn3:hover p {
    color: #FFDF6F; /* Couleur du texte pendant le survol */
}


.container {
    width : 75vw;
    height: 50vw;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
}

.separateurbento {
    height: 12vw;
}

.containerbento {
    width: 100vw;
    height: 50vw;
    display: flex;
    justify-content: center;
}

.texte-vertical {
    transform: rotateZ(-90deg);
    font-family: 'Montserrat-Black', sans-serif;
    color: #0E1422;
    opacity: 0.05;
    font-size: 7vw;
    left: -9vw;
    padding: 0;
    position: relative;
}

.bento {
    width: 50vw;
    height: 50vw;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    grid-column-gap: 1.5vw;
    grid-row-gap: 1.5vw;
    position: relative;
    right: 23vw;
}

.mentionslegales {
    text-decoration: none;
    cursor: pointer;
    color: white;
}

.div1 { grid-area: 1 / 1 / 2 / 3; }
.div2 { grid-area: 1 / 3 / 3 / 4; }
.div3 { grid-area: 2 / 1 / 3 / 2; }
.div4 { grid-area: 2 / 2 / 3 / 3; }
.div5 { grid-area: 3 / 1 / 4 / 2; }
.div6 { grid-area: 3 / 2 / 4 / 4; }

.div1, .div2, .div3, .div4, .div5, .div6 {
    font-family: 'Motley Forces';
    font-size: 2vw;
}

.div1, .div6 {
    background-image: url(medias/pattern-orange.png);
    background-position: center;
    background-size: cover;
    border-radius: 2vw;
}

.div2, .div3 {
    background-image: url(medias/pattern-jaune.png);
    background-position: center;
    background-size: cover;
    border-radius: 2vw;
}

.div4, .div5 {
    background-image: url(medias/pattern-bleu.png);
    background-position: center;
    background-size: cover;
    border-radius: 2vw;
}

.div1 img, .div2 img, .div3 img, .div4 img, .div5 img, .div6 img {
    position: absolute;
}

.txt1, .txt2, .txt3, .txt4, .txt5, .txt6 {
    position: absolute;
}

.div1 img {
    width: 19vw;
    top: -8vw;
    left: 0.3vw;
    transform: scaleX(-1);
}

.txt1 {
    top: 13vw;
    left: 16.3vw;
    top: 10.2vw;
    left: 10.3vw;
}

.div2 img {
    width: 21vw;
    left: 34vw;
    top: -1vw;
}

.txt2 {
    top: 25.2vw;
    left: 35.7vw;
}

.div3 img {
    width: 15vw;
    top: 15.2vw;
    left: 0.3vw;
}

.txt3 {
    top: 28vw;
    left: 1.6vw;
}

.div4 img {
    width: 12vw;
    top: 22vw;
    left: 21.4vw;
    transform: scaleX(-1);
}

.txt4 {
    top: 16.5vw;
    left: 18.5vw;
}

.div5 img {
    width: 18vw;
    top: 30vw;
    left: -2.1vw;
    transform: scaleX(-1); /* miroir de l'image */
}

.txt5 {
    top: 44.6vw;
    left: 2vw;
}

.div6 img {
    width: 14vw;
    top: 37.5vw;
    left: 34.6vw;
}

.txt6 {
    top: 34vw;
    left: 19vw;
}

.div1:hover, .div2:hover, .div3:hover, .div4:hover, .div5:hover, .div6:hover {
    box-shadow: 0 0 5px rgba(0, 0, 0, 0.2); 
    cursor: pointer;
}

/* Désactiver les événements de souris pour les images débordantes */
.div1 img, .div2 img, .div3 img, .div4 img, .div5 img, .div6 img {
    pointer-events: none;
}

.div1:hover img, 
.div2:hover img, 
.div3:hover img, 
.div4:hover img, 
.div5:hover img, 
.div6:hover img {
    filter: drop-shadow(0 0 5px rgba(0, 0, 0, 0.2)); 
}


.realisations {
    height: 39vw;
    background-color: #0E1422;
    padding: 0vw 10.5vw;
    position: relative;
}

.realisations p {
    margin: 0;
}

.wave-wrapper {
    position: relative;
    height: 9vw;
}

.wave-inversee {
    position: absolute;
    width: 100%;
    height: 100%;
    bottom: -1vw;
    background-repeat: no-repeat;
    background-image: url("medias/vague1.svg"); /* Chemin vers l'image */
    transform: scaleX(-1) scaleY(-1);
}


.entete {
    width: 79vw;
    height: 5vw;
    margin-bottom: 5vw;
}

.dernieres-real {
    width: 60.4vw;
    height: 27vw;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-column-gap: 2vw;
}

.bouton-real {
    width: 79vw;
    height: 5vw;
    background-color: orange;
}

.t1 {
    color: #FFDF6F;
    font-family: 'Montserrat-Black', sans-serif;
    font-size: 2vw;
    position: absolute;
    top: 1vw;
    left: 10.5vw;
    z-index: 1;
}

.t2 {
    color: #272c37;
    opacity: 0.6;
    font-family: 'Montserrat-Black', sans-serif;
    font-size: 6vw;
    position: absolute;
    top: -1.4vw;
    left: 9vw;
    z-index: 0;
}

.carteaccueil {
    border-radius: 1vw;
    background-color: #0E1422;
}

.photonolan {
    position: absolute;
    right: 0vw;
    bottom: -6.7vw;
    width: 29vw;
    height: 41vw;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
}

.photonolan img {
    width: 35vw;
    transform: scaleX(-1);
}

.real1 {
    grid-area: 1 / 1 / 2 / 2;
    border: solid 0.2vw #FFDF6F;
    position: relative;
}

.real2 {
    grid-area: 1 / 2 / 2 / 3;
    border: solid 0.2vw #F9A473;
    position: relative;
}

.real3 {
    grid-area: 1 / 3 / 2 / 4;
    border: solid 0.2vw #B8CEDE;
    position: relative;
}


.photocarte {
    width: 100%;
    height: 48.4%;
    display: flex;
    justify-content: center;
    align-items: center;
}

.imgallin {
    height: 12vw;
}

.imggujarat {
    height: 11vw;
}

.imgavbfs {
    height: 14vw;
}

.titrecarte {
    padding: 0% 5%;
    width: 90%;
    height: 13.5%;
    display: flex;
    align-items: flex-start;
}

.titrecarte p {
    font-family: 'Montserrat-SemiBold';
    font-size: 1.35vw;
    color: #FBFBFB;
}

.competencescarte {
    padding: 0% 5%;
    width: 90%;
    height: 8.6%;
    display: flex;
    align-items: flex-start;
}

.competenceallin, .competencegujarat, .competenceavbfs {
    font-family: 'Montserrat-SemiBold';
    font-size: 1.1vw;
}

.competenceallin {
    color: #FFDF6F;
}

.competencegujarat {
    color: #F9A473;
}

.competenceavbfs {
    color: #B8CEDE;
}



.descriptioncarte {
    padding: 0% 5%;
    width: 90%;
    height: 14%;
    display: flex;
    align-items: flex-start;
}

.descriptioncarte {
    color: #E9E9E9;
    font-family: 'Montserrat-Regular';
    font-size: 0.8vw;
}

.boutoncarte {
    padding: 0% 5%;
    width: 90%;
    height: 14.9%;
    display: flex;
    align-items: flex-start;
    padding-top: 0.6vw;
}

.btnallin {
    all: unset;
    width: 8vw;
    height: 2vw;
    background-color: #182239;
    border-radius: 1vw;
    border: 0.06vw solid #FFDF6F;
    color: #FFDF6F;
    font-family: 'Montserrat-Regular';
    font-size: 0.6vw;
    text-align: center;
    cursor: pointer;
}

.btngujarat {
    all: unset;
    width: 8vw;
    height: 2vw;
    background-color: #182239;
    border-radius: 1vw;
    border: 0.06vw solid #F9A473;
    color: #F9A473;
    font-family: 'Montserrat-Regular';
    font-size: 0.6vw;
    text-align: center;
    cursor: pointer;
}


.btnavbfs {
    all: unset;
    width: 8vw;
    height: 2vw;
    background-color: #182239;
    border-radius: 1vw;
    border: 0.06vw solid #B8CEDE;
    color: #B8CEDE;
    font-family: 'Montserrat-Regular';
    font-size: 0.6vw;
    text-align: center;
    cursor: pointer;
}


/* Styles généraux */
.carteaccueil {
    position: relative;
    overflow: hidden;
    transition: background-color 0.4s ease-out;
}

/* Pseudo-élément pour l'effet de propagation */
.carteaccueil::before {
    content: '';
    position: absolute;
    top: 88.7%;
    left: 7%;
    width: 4vw;
    height: 1vw;
    background-color: transparent;
    border-radius: 50%;
    transition: width 0.5s ease-out, height 0.5s ease-out, top 0.5s ease-out, left 0.5s ease-out;
    z-index: 0;
}

/* Classe appliquée au survol du bouton */
.carteaccueil.hovered::before {
    width: 300%;
    height: 300%;
    top: -100%;
    left: -100%;
}

/* Pour .real1 : couleur jaune */
.real1.hovered::before {
    background-color: #FFDF6F;
}

/* Pour .real2 : couleur orange */
.real2.hovered::before {
    background-color: #F9A473;
}

/* Pour .real3 : couleur bleu clair */
.real3.hovered::before {
    background-color: #B8CEDE;
}

/* Boutons et contenu toujours au-dessus de l'effet */
.carteaccueil * {
    position: relative;
    z-index: 1;
}

/* Lorsque la classe 'hovered' est appliquée, changer la couleur des textes en noir */
.carteaccueil.hovered .titrecarte p,
.carteaccueil.hovered .descriptioncarte p {
    color: #0E1422; /* Couleur noire pour les textes */
}


.carteaccueil.hovered .competencescarte p{
    color: #182239; /* Couleur noire pour les textes */
}




/* Styles pour le bouton */
.btnplusprojets {
    all: unset;
    width: 15vw;
    height: 3vw;
    background-color: #FFDF6F;
    border-radius: 1.5vw;
    text-align: center;
    cursor: pointer;
    position: absolute;
    bottom: 5vw;
    overflow: hidden; 
    display: flex;
    justify-content: center;
    align-items: center;
    transition: color 0.8s ease-out, border 0.8s ease-out; 
    border: 0.2vw solid transparent; 
}

/* Styles pour le texte à l'intérieur du bouton */
.btnplusprojets p {
    color: #0E1422; 
    font-family: 'Montserrat-Regular';
    font-size: 1vw;
    position: relative;
    z-index: 1; 
}

/* Pseudo-élément pour l'effet de propagation */
.btnplusprojets::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.5vw;
    height: 0.5vw;
    background-color: #0E1422; /* Couleur de remplissage */
    border-radius: 1vw; /* Bords arrondis */
    transform: translate(-50%, -50%);
    transition: width 0.8s ease-out, height 0.8s ease-out; /* Augmenter la durée de la transition */
    z-index: 0; /* Pseudo-élément derrière le texte */
    opacity: 0; /* Invisible au départ */
}

/* Appliquer l'effet de propagation au survol */
.btnplusprojets:hover::before {
    width: 300%;
    height: 300%;
    opacity: 1; /* Rendre le pseudo-élément visible */
}

/* Changement de couleur du texte et de la bordure au survol */
.btnplusprojets:hover p {
    color: #FFDF6F; /* Couleur du texte pendant le survol */
}

.btnplusprojets:hover {
    border: 0.2vw solid #FFDF6F; /* Bordure jaune pendant le survol */
}




.dernieres-real a {
    all: unset;
}





/* SECTION CONTACT*/

.titrecontact {
    font-family: 'Montserrat-Black';
    font-size: 3vw;
    margin: 0;
    margin-top: 7vw;
    margin-bottom: 5vw;
    padding: 0;
    padding-left: 5%;
}

.contact {
    position: relative;
    display: flex;
    flex-direction: row;

}


.entetecontact {
    width: 25%;
    height: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 1.5vw;
    padding: 0% 5%;
}

.formulaire-infos {
    width: 60%;
    height: 65%;
    margin: 0;
    position: relative;
}




.textecontact {
    font-family: 'Montserrat-Regular';
    font-size: 1.2vw;
    line-height: 1.7vw;
    margin: 0;
    padding: 0;
}

.boutoncontact {
    all: unset;
    display: flex;
    width: 15vw;
    height: 2.5vw;
    font-family: 'Montserrat-SemiBold';
    font-size: 1vw;
    background-color: #FFDF6F;
    border: 0.1vw solid #0E1422;
    border-radius: 2vw;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.boutoncontact button {
    all: unset;
}

.textecontact strong {
    font-family: 'Montserrat-SemiBold';
    color: #F9A473;
}

.envoimail a {
    all: unset;
    cursor: pointer;
}

.textereseaux {
    font-family: 'Montserrat-SemiBold';
    font-size: 1.7vw;
    line-height: 2vw;
    margin: 0;
    margin-top: 2vw;
    padding: 0;
}


.logosreseaux {
    width: 15vw;
    height: 4vw;
    display: flex;
    gap: 2vw;
}




.nom-prenom {
    display: flex;
    justify-content: space-between;
}

#name {
    display: flex;
    width: 43%;
    height: 4vw;
    padding: 0% 2.5%;
    align-items: center;
    border: double 2px transparent;
    border-radius: 0.7vw;
    background-image: linear-gradient(#fbfbfb, #fbfbfb), linear-gradient(to right, #FFDF6F, #F9A473);
    background-origin: border-box;
    background-clip: padding-box, border-box;
}


#firstname {
    display: flex;
    width: 43%;
    height: 4vw;
    padding: 0% 2.5%;
    align-items: center;
    border: double 2px transparent;
    border-radius: 0.7vw;
    background-image: linear-gradient(#fbfbfb, #fbfbfb), linear-gradient(to right, #F9A473, #B8CEDE);
    background-origin: border-box;
    background-clip: padding-box, border-box;
}


.mail-telephone {
    margin-top: 1.5vw;
    display: flex;
    justify-content: space-between;
}

#email {
    display: flex;
    width: 58%;
    height: 4vw;
    padding: 0% 2.5%;
    align-items: center;
    border: double 2px transparent;
    border-radius: 0.7vw;
    background-image: linear-gradient(#fbfbfb, #fbfbfb), linear-gradient(to right, #FFDF6F, #F9A473);
    background-origin: border-box;
    background-clip: padding-box, border-box;
}


#phone {
    display: flex;
    width: 28%;
    height: 4vw;
    padding: 0% 2.5%;
    align-items: center;
    border: double 2px transparent;
    border-radius: 0.7vw;
    background-image: linear-gradient(#fbfbfb, #fbfbfb), linear-gradient(to right, #F9A473, #B8CEDE);
    background-origin: border-box;
    background-clip: padding-box, border-box;
}

#message {
    margin-top: 1.5vw;
    display: flex;
    width: 94.2%;
    height: 8vw;
    padding: 1vw 2.5%;
    align-items: center;
    border: double 2px transparent;
    border-radius: 0.7vw;
    background-image: linear-gradient(#fbfbfb, #fbfbfb), linear-gradient(to right, #FFDF6F, #F9A473, #B8CEDE);
    background-origin: border-box;
    background-clip: padding-box, border-box;
    resize: none;
}

.bouton-envoi {
    width: 100%;
    height: 3vw;
    position: relative;
}

.bouton-envoi button {
    height: 100%;
    width: 32%;
    background-color: #F9A473;
    color: #fbfbfb;
    border: none;
    border-radius: 0.4vw;
    font-family: 'Montserrat-SemiBold';
    font-size: 1vw;
}



#name:focus,
#firstname:focus,
#email:focus,
#phone:focus,
#message:focus {
    outline: none;
    background-image: linear-gradient(#fbfbfb, #fbfbfb), linear-gradient(to right, #B8CEDE, #B8CEDE);
}

#name::placeholder,
#firstname::placeholder,
#email::placeholder,
#phone::placeholder,
#message::placeholder {
    font-family: 'Montserrat-Regular';
    font-size: 1vw;
}




@media screen and (max-width: 1000px) {
    .entetecontact {
        gap: 2vw;
    }

    .titrecontact {
        font-size: 2.7vw;
    }
    
    .textecontact {
        font-size: 1.3vw;
        line-height: 1.8vw;
    }
    
    .boutoncontact {
        width: 15vw;
        height: 2.5vw;
        font-size: 1vw;
        border: 0.2vw solid #0E1422;
        border-radius: 2vw;
    }
}
















body {
    position: relative;
}
footer {
    position: absolute;
    width: 100vw;
    height: 25vw;
    margin: 0;
    padding: 0;
    bottom: 0;
}

.separateurfooter {
    height: 30vw;
    width: 100vw;
    margin: 0;
    padding: 0;
}
.contenufooter {
    padding: 0;
    margin: 0;
    width: 100vw;
    height: 20vw;
    position: relative;
    background-color: #0E1422;
}

.mentions {
    position: absolute;
    width: 50vw;
    height: 7vw;
    top: 0vw;
    left: 25vw;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.mentions p {
    font-family: 'Montserrat-SemiBold';
    font-size: 1.5vw;
    margin: 0.5vw;
    color: #fbfbfb;
}

.nomfooter {
    position: absolute;
    bottom: 0;
    width: 100vw;
    height: 9vw;
    overflow: hidden;
}

.nomfooter p {
    position: absolute;
    left: -1vw;
    bottom: -3vw;
    font-size: 11.2vw;
    background: linear-gradient(to right, #FFDF6F, #F9A473, #B8CEDE);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-family: 'Montserrat-Black';
    width: 101vw;
    margin: 0;
    padding: 0;
    white-space: nowrap;
}
.cacherlanavigation {
    display: none;
}
@media screen and (min-width: 1150px) {
    .dernieres-real {
        position: absolute;
        top: 6vw;
    }
    .btnplusprojets {
        bottom: -2vw;
    }
    .t1 {
        top: -1vw;
    }

    .t2 {
        top: -3.4vw;
    }
}

@media screen and (max-width: 900px) {
    .liens {
        display: flex;
        width: 75%;
        gap: 5.3vw;
        align-items: center;
        justify-content: space-between;
    }

    body {
        overflow-x: hidden;
    }
    .menu, .hamburger {
        display: none;
    }
    .hamburger-resp {
        display: flex; 
    }

    .containerliensmenu-resp {
        display: none;
        gap: 0.6rem
    }

    .containerliensmenu-resp a {
        display: block;
    }
    
    .open {
        display: flex;
    }
   

}

@media screen and (min-width: 700px) and (max-width: 1150px) {
    .hero {
        height: 70vh;
    }
    
    .partiegauche {
        width: 42vw;
        height: 42vw;
        font-size: 3vw;
    }
    
    .partiedroite {
        width: 42vw;
        height: 42vw;
    }
    
    .photonolanhero{
        height: 42vw;
    }
    
    .logosreseauxhero {
        position: absolute;
        top: 36.5vw;
        left: 10.8vw;
        width: 19.2vw;
        height: 4vw;
        display: flex;
        gap: 3vw;
        justify-content: center;
    }

    .logo-social {
        width: 3vw;
    }

    .logotwitter {
        width: 3.3vw;
    }

    .boutons {
        margin-bottom: 1.3vw;
    }
    
    .btn1 {
        width: 18vw;
        height: 4.5vw;
        border-radius: 2.25vw;
        font-size: 1.8vw;
    }
    
    .btn2 {
        width: 20.4vw;
        height: 4.5vw;
        border-radius: 2.25vw;
        font-size: 1.8vw;
    }
    
    .btn3 {
        width: 30vw;
        height: 4.5vw;
        border-radius: 2.25vw;
        font-size: 1.8vw;
    }

    .btn1:hover {
        border: 0.2vw solid #B8CEDE; /* Bordure correspondant à la couleur du bouton */
        width: 18vw;
        height: 4.5vw;
    }
    .btn2:hover {
        border: 0.2vw solid #F9A473; /* Bordure correspondant à la couleur du bouton */
        width: 20.4vw;
        height: 4.5vw;
    }
    .btn3:hover {
        border: 0.2vw solid #FFDF6F; /* Bordure correspondant à la couleur du bouton */
        width: 30vw;
        height: 4.5vw;
    }
    
    .boutonhero p {
        font-size: 1.8vw;
    }

    .container {
        width : 85vw;
        height: 50vw;
    }
    


    .containerbento {
        width: 120vw;
        height: 60vw;
    }
    
    .bento {
        width: 60vw;
        height: 60vw;
        grid-column-gap: 1.8vw;
        grid-row-gap: 1.8vw;
        right: 31.6vw;
    }
    
    .div1 img, .div2 img, .div3 img, .div4 img, .div5 img, .div6 img {
        width: 24vw;
    }
    
    .div1 img {
        width: 23vw;
        top: -7.2vw;
        left: -0.24vw;
    }
    .txt1 {
        top: 13vw;
        left: 16.3vw;
    }
    
    .div2 img {
        width: 22.8vw;
        left: 40vw;
        top: -1vw;
    }
    .txt2 {
        top: 31.4vw;
        left: 42.6vw;
    }
    
    .div3 img {
        width: 16.2vw;
        top: 21.64vw;
        left: 0.84vw;
    }
    .txt3 {
        top: 34.1vw;
        left: 1.6vw;
    }
    
    .div4 img {
        width: 15vw;
        top: 26.8vw;
        left: 25.3vw;
    }
    .txt4 {
        top: 20.1vw;
        left: 22vw;
    }
    
    .div5 img {
        width: 19.6vw;
        top: 37vw;
        left: -1.52vw;
    }
    .txt5 {
        top: 54.1vw;
        left: 4.5vw;
    }
    
    .div6 img {
        width: 15vw;
        top: 47.16vw;
        left: 40.52vw;
    }
    .txt6 {
        top: 41.5vw;
        left: 22.5vw;
    }


    .realisations {
        height: 50vw;
    }
}


@media screen and (max-width: 700px) {
    .hero {
        height: 150vw;
    }

    .liens {
        display: flex;
        width: 75%;
        gap: 5.3vw;
        align-items: center;
        justify-content: space-between;
    }

    .container {
        flex-direction: column;
    }
    .partiedroite {
        order: -1;
    }
    .partiegauche {
        width: 70vw;
        height: 70vw;
        font-size: 5vw;
    }
    
    .partiedroite {
        width: 70vw;
        height: 70vw;
    }
    
    .photonolanhero {
        height: 70vw;
    }
    
    .logosreseauxhero {
        position: absolute;
        top: 60.5vw;
        left: 18vw;
        width: 32.2vw;
        height: 12vw;
        display: flex;
        gap: 7vw;
        justify-content: center;
    }

    .logo-link {
        all: unset;
        cursor: pointer;
    }

    .logo-social {
        width: 6vw;
    }

    .logotwitter {
        width: 6.5vw;
    }

    .boutons {
        margin-bottom: 2.6vw;
    }
    
    .btn1 {
        width: 30vw;
        height: 8vw;
        border-radius: 4vw;
    }
    
    .btn2 {
        width: 34vw;
        height: 8vw;
        border-radius: 4vw;
    }
    
    .btn3 {
        width: 50vw;
        height: 8vw;
        border-radius: 4vw;
    }

    .btn1:hover {
        border: 0.4vw solid #B8CEDE; /* Bordure correspondant à la couleur du bouton */
        width: 29.2vw;
        height: 7.2vw;
    }
    .btn2:hover {
        border: 0.4vw solid #F9A473; /* Bordure correspondant à la couleur du bouton */
        width: 33.2vw;
        height: 7.2vw;
    }
    .btn3:hover {
        border: 0.4vw solid #FFDF6F; /* Bordure correspondant à la couleur du bouton */
        width: 49.2vw;
        height: 7.2vw;
    }

    .boutonhero p {
        font-size: 3.2vw;
    }
    
    .container {
        width : 100vw;
        height: 145vw;
    }





    .texte-vertical {
        display: none;
    }

    .containerbento {
        height: 350vw;
    }

    .bento {
        width: auto;
        right: 0;
        padding: 15vw;
        height: 326vw;
        gap: 5vw;
        display: flex;
        flex-direction: column;
    }

    .div1, .div2, .div3, .div4, .div5, .div6 {
        width: 60vw; /* Largeur automatique pour s'adapter au contenu */
        grid-area: unset; /* Réinitialiser les propriétés de la grille */
        height: 50vw;
        border-radius: 6vw;
        font-size: 24px;
    }
    
    .div1 img, .div2 img, .div3 img, .div4 img, .div5 img, .div6 img {
        position: static; 
        transform: none; 
    }

    .div3, .div6 {
        background-image: url(medias/pattern-orange.png);
        background-position: center;
        background-size: cover;
    }
    
    .div1, .div4 {
        background-image: url(medias/pattern-jaune.png);
        background-position: center;
        background-size: cover;
    }
    
    .div2, .div5 {
        background-image: url(medias/pattern-bleu.png);
        background-position: center;
        background-size: cover;
    }


    .div1 img, .div2 img, .div3 img, .div4 img, .div5 img, .div6 img {
        position: absolute;
        width: 20vw;
    }

    .txt1, .txt2, .txt3, .txt4, .txt5, .txt6 {
        font-size: 4.5vw;
    }

    .div1 img {
        width: 52vw;
        top: -1vw;
        left: 20.3vw;
    }
    .txt1 {
        top: 45vw;
        left: 22.3vw;
    }
    
    .div2 img {
        width: 36vw;
        left: 36vw;
        top: 68vw;
    }
    .txt2 {
        top: 99vw;
        left: 22.3vw;
    }
    
    .div3 img {
        width: 43vw;
        top: 127.2vw;
        left: 20.2vw;      
    }
    .txt3 {
        top: 160vw;
        left: 39.6vw;
    }
    
    .div4 img {
        width: 45vw;
        top: 191.9vw;
        left: 31.5vw;
        transform: scaleX(-1);
    }

    .txt4 {
        top: 181vw;
        left: 20.6vw;
    }
    
    .div5 img {
        width: 54vw;
        top: 223vw;
        left: 7.9vw;
        transform: scaleX(-1);
    }
    
    .txt5 {
        top: 271vw;
        left: 40.6vw;
    }

    .div6 img {
        width: 40vw;
        top: 306.3vw;
        left: 24.6vw;
    }

    .txt6 {
        top: 291vw;
        left: 20.6vw;
    }

    .realisations {
        height: 310vw;
        padding: 0vw 17.5vw;
        padding-top: 10vw;
    }

    .photonolan img {
        display: none;
    }

    .dernieres-real {
        all: unset;
        width: 65vw;
        height: 280vw;
        display: grid;
        grid-template-rows: repeat(3, 1fr);
        grid-row-gap: 7vw;
        margin-top: 10vw;
    }

    .real1 { grid-area: 1 / 1 / 2 / 2; }
    .real2 { grid-area: 2 / 1 / 3 / 2; }
    .real3 { grid-area: 3 / 1 / 4 / 2; }

    .t1 {
        font-size: 4vw;
        top: 5vw;
    }

    .t2 {
        font-size: 12vw;
        top: -0.4vw;
        left: 9vw;
    }

    .carteaccueil.hovered {
        border: solid 0.9vw #0E1422; /* Couleur noire pour les textes */
    }

    .carteaccueil {
        border-radius: 3vw;
    }

    .titrecarte p {
        font-family: 'Montserrat-SemiBold';
        font-size: 4vw;
        color: #FBFBFB;
    }
    
    .competencescarte p {
        font-family: 'Montserrat-SemiBold';
        font-size: 2.8vw;
    }

    .descriptioncarte p {
        font-family: 'Montserrat-SemiBold';
        font-size: 2.6vw;
    }

    .imgallin {
        height: 40vw;
    }

    .imggujarat {
        height: 36vw;
    }

    .imgavbfs {
        height: 33vw;
    }

    .boutoncarte button {
        width: 24vw;
        height: 6vw;
        border-radius: 3vw;
        font-size: 1.8vw;
    }

    .btnallin {
        border: 0.3vw solid #FFDF6F;
    }
    .btngujarat {
        border: 0.3vw solid #F9A473;
    }
    .btnavbfs {
        border: 0.3vw solid #B8CEDE;
    }

    .btnplusprojets {
        width: 31vw;
        height: 7vw;
        border-radius: 3.5vw;
        bottom: 0vw;
    }

    .btnplusprojets p {
        font-size: 2vw;
    }

    .contact {
        position: relative;
        display: flex;
        flex-direction: column;
    }

    .entetecontact {
        width: 90%;
        height: 100%;
        margin: 0;
        display: flex;
        flex-direction: column;
        justify-content: center;
        gap: 1.5vw;
        padding: 0% 5%;
    }

    #name {
        height: 13vw;
        border: double 1px transparent;
        border-radius: 2vw;
    }

    #firstname {
        height: 13vw;
        border: double 1px transparent;
        border-radius: 2vw;
    }

    #email {
        height: 13vw;
        border: double 1px transparent;
        border-radius: 2vw;
    }

    #phone {
        height: 13vw;
        border: double 1px transparent;
        border-radius: 2vw;
    }

    #message {
        height: 35vw;
        border: double 1px transparent;
        border-radius: 2vw;
    }

    .boutoncontact {
        width: 42vw;
        height: 8vw;
        font-size: 3vw;
        border: 0.4vw solid #0E1422;
        border-radius: 5vw;
        margin-top: 4vw;
    }

    .titrecontact {
        font-size: 4.7vw;
        margin-bottom: 4vw;
    }

    .textecontact {
        font-size: 3.5vw;
        line-height: 4vw;
    }

    .contact input, .contact textarea {
        font-size: 16px;
        padding-left: 1vw;
        padding-top: 2vw;
    }

    #name::placeholder,
    #firstname::placeholder,
    #email::placeholder,
    #phone::placeholder,
    #message::placeholder {
        padding-left: 1vw;
        font-family: 'Montserrat-Regular';
        font-size: 16px;
    }

    #message {
        padding-top: 4vw;
    }
    .bouton-envoi {
        width: 100%;
        height: 6vw;
        position: relative;
    }

    .bouton-envoi button {
        height: 207%;
        width: 100%;
        background-color: #F9A473;
        color: #fbfbfb;
        border: none;
        border-radius: 1.4vw;
        font-family: 'Montserrat-SemiBold';
        font-size: 3.5vw;
    }
    .formulaire-infos {
        width: 90%;
        height: 65%;
        margin: 0;
        position: relative;
        padding: 10vw 5vw;
    }

    .textereseaux {
        font-family: 'Montserrat-SemiBold';
        font-size: 2.7vw;
        line-height: 2vw;
        margin: 0;
        margin-top: 5vw;
        padding: 0;
        margin-bottom: 2vw;
    }

    .logosreseaux {
        width: 15vw;
        height: 4vw;
        display: flex;
        gap: 5vw;
    }

    .bouton-envoi button {
        height: 170% !important;
        width: 100% !important;
        background-color: #F9A473 !important;
        color: #fbfbfb !important;
        border: none !important;
        border-radius: 1.4vw !important;
        font-family: 'Montserrat-SemiBold' !important;
        font-size: 3vw !important;
    }

    .mentions {
        position: absolute;
        width: 50vw;
        height: 15vw;
    }

    .contenufooter {
        height: 35vw;
    }

    .mentions p {
        font-family: 'Montserrat-SemiBold';
        font-size: 3vw;
        margin: 2.5vw;
        color: #fbfbfb;
    }

    .nomportfolio {
        display: flex;
    }

    nav {
        font-size: 3vw;
    }

}