* {
    padding: 0;
    margin: 0;
    box-sizing: border-box;
}

/*police par défault du document*/
body {
    font-family: "Outfit", sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
    font-weight: 400;
    font-size: 1em;
    background-color: #f8f2d4;
}
h2{
    text-align: center;
    padding-bottom: 50px;
    padding-top: 40px;
}

/*enlever le souligné pour tout les liens*/
a,
a:hover,
a:visited,
a:link,
a:focus,
a:active {
    text-decoration: none;
    color: #276369;
}

/*grille de base du site commence ici*/
.wrapper {
    display: grid;
    grid-template-columns: repeat(9, 1fr);
    width: 100vw;
    height: 100vh;
}

header {
    grid-row-start: 1;
    grid-row-end: 2;
    grid-column-start: 1;
    grid-column-end: 10;
    border: none;
    /* Supprime la bordure */
    margin: 0px;
    padding: 20px 20px;
    background-color:white;
}

main {
    grid-row-start: 2;
    grid-row-end: 9;
    grid-column-start: 2;
    grid-column-end: 9;
    padding:100px 0px;
}

footer {
    grid-row-start: 9;
    grid-row-end: 10;
    grid-column-start: 1;
    grid-column-end: 10;
    min-height: 200px;
    background-color: white;
}

/*grille de base du site fini ici*/

/*couleur du menu de la navigation principale*/
nav a {
    color: #53d4df;
}

/*couleur au survol du menu de la navigation principale*/
nav a:hover {
    text-decoration: none;
    color: lightgray;
}

.actif {
    font-weight: bold;
    color: #035d65 !important;
}

.entete {
    display: flex;
    justify-content: space-between;
    max-width: 1400px;
    position: relative;
    /* Trois colonnes: logo, espace, éléments de menu */
    align-items: center;
    /* aligné au bas des cellules */
    width: 100%;
    margin: 0px auto;
}
.menu{
    padding: 5% 0%;
}

.menu1 {
    display: flex;
    justify-content: center;
    /* Alignement à droite des éléments de menu */
    gap: 50px;
    /* Espace entre les éléments de menu, ajustez selon vos besoins */
    font-size: 1.5em;
    margin-left: 18%;
    padding-bottom: 20px;
}

.menu1 a {
    text-decoration: none;
    /* Enlève le soulignement */
    color: #035d65;
    /* Définit la couleur des liens */
    text-align: center;
    /* Assure que le texte est centré si la largeur est spécifiée */
    padding: 20px;
    font-weight: 700;
}

a {
    text-decoration: none;
    color: #153639;
}

a:hover {
    color: lightgray;
    /* couleur au survol */
}

.actif {
    font-weight: bold;
    color: #53d4df !important;
}


/*styles de l'entete*/

/*logo*/
.logo{
    white-space: nowrap;
    width: 10%;
}

h1 {
    text-align: center;
    font-size: 3em;
    margin-bottom: 50px;
}

/*style pour les recettes*/

.images_recettes img {
    margin-top: 50px;
    width: 100%;
}

.entete {
    display: flex;
    /* Active Flexbox */
    justify-content: space-between;
    /* Sépare le contenu entre les deux extrémités */
    align-items: flex-end;
    /* Alignement vertical au bas */
}

.grille_recettes {

    display: grid;
    grid-template-columns: repeat(4, 1fr);
    text-align: left;
    grid-gap: 50px;
    margin-bottom: 100px;
    margin-top: 50px;
    font-size: 0.8em;
}

.ingredients {
    grid-column-start: 1;
    grid-column-end: 2;

}

.preparation {
    grid-column-start: 2;
    grid-column-end: 4;

}

.cuisson {
    grid-column-start: 4;
    grid-column-end: 5;
    background-color: #e7c597;
    padding: 50px;
}

.ingredients h2 {
    font-size: 3em;
    margin-bottom: 50px;
}

.close-menu {
    display: none;
    outline: none;
    border: none;
    background: none;
    font-size: 1.5em;
    color:#035d65;
}


/*style de la grille d'images*/
/* Configuration du conteneur de la grille */
.grille_images {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    /* Définit une grille de 12 colonnes */
    gap: 10px;
    /* Espacement uniforme entre les éléments de la grille */
    padding: 10px;
    /* Espace uniforme autour des bords de la grille */
    overflow: hidden;
}

.grille_projets {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    /* Définit une grille de 12 colonnes */
    gap: 60px;
    /* Espacement uniforme entre les éléments de la grille */
    padding: 10px;
    /* Espace uniforme autour des bords de la grille */
    overflow: hidden;
}

.grille_projets p {
    margin-bottom: 20px;
    font-weight: 100;
    text-align: justify;
}

.grille_projets h2 {
    margin-bottom: 20px;
    text-align: right;

}

.grille_projets h3 {
    margin-bottom: 20px;

}

.grille_projets small {
    display: block;
    text-align: right;
    margin-top: 30px;
    color: lightgray;

}

/* Styles communs pour les images */
.im {
    width: 100%;
    height: 100%;
    /* Maintient un ratio carré pour toutes les images */
    object-fit: cover;
    /* Assure que les images couvrent l'espace sans déformation */
    box-sizing: border-box;
    /* Pour inclure les marges et les paddings dans la largeur/hauteur */
    display: block;
    /* Élimine l'espace supplémentaire sous l'image */
    align-items: center;
}

/* Positionnement individuel des images */
/* Première ligne : deux carrés et un rectangle */
.im1 {
    grid-column: 1 / 8;
    /* Le premier carré occupe 3 colonnes */
    grid-row: 1 / 2;
    /* S'étend sur 2 rangées pour former un carré */
}

.im2 {
    grid-column: 8 / 13;
    /* Le deuxième carré, à côté du premier */
    grid-row: 1 / 3;
}

.im3 {
    grid-column: 1 / 5;
    /* Un grand rectangle occupant le reste de la ligne */
    grid-row: 2 / 3;
}

/* Deuxième ligne : deux carrés sous les premiers */
.im4 {
    grid-column: 5 / 8;
    /* Continue avec un autre carré sous le .im1 */
    grid-row: 2 / 3;
}

.im5 {
    grid-column: 1 / 5;
    /* Carré sous le .im2 */
    grid-row: 3 / 4;
}

/* Troisième ligne : commence par un rectangle, suivi de deux carrés */
.im6 {
    grid-column: 4 / 8;
    /* Grand rectangle occupant la moitié gauche */
    grid-row: 4 / 6;
}

.im7 {
    grid-column: 1 / 4;
    /* Carré à droite du rectangle */
    grid-row: 4 / 6;
}

.im8 {
    grid-column: 5 / 13;
    /* Un autre carré à côté du .im7 */
    grid-row: 3/ 4;
}

/* Quatrième ligne : deux carrés sous ceux de la troisième ligne */
.im9 {
    grid-column: 8 / 13;
    /* Carré sous le .im7 */
    grid-row: 4 / 9;
}

.im10 {
    grid-column: 1 / 8;
    /* Carré sous le .im8 */
    grid-row: 7 / 9;
}

/* Remplissage de la dernière ligne avec quatre carrés */
.im11,
.im13 {
    grid-column: 1 / 13;
    /* .im11 et .im13 sont placés à gauche, .im13 est ajouté */
    grid-row: 9 / 11;
    /* Ils s'étendent tous les deux sur 2 rangées */
}

.im12,
.im14 {
    grid-column: 4 / 7;
    /* .im12 et .im14 sont placés à droite */
    grid-row: 9 / 11;
}

.im13 {
    grid-column: 7 / 10;
    /* Positionnement corrigé pour .im13 */
}

.im14 {
    grid-column: 10 / 13;
    /* Positionnement corrigé pour .im14 */
}
p {
    padding-bottom: 5%;
}

.pages>div {
    background-color: #e7c597;
    border: none;
    color: white;
    padding: 20px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 1em;
    margin-left: 20px;
    cursor: pointer;
    border-radius: 50%;
    width: 20px;
}

.pages>div:hover {
    background-color: #3783A3;
}

.pied {
    padding-left: 5%;
    padding-right: 5%;
}

.sociaux a {
    color: #153639;
    font-size: 30px;
}

.sociaux a:hover {
    color: #53d4df;
    font-size: 30px;
}

.sociaux p {
    margin-top: 10px;
    margin-bottom: 30px;
    color: #276369;
    text-align: center;
    color: #276369;
    font-size: 0.8em;
}

.sociaux {
    display: flex;
    flex-direction: column;
    /* Organise les éléments verticalement */
    align-items: center;
    /* Centre les éléments verticalement */
    text-align: center;
    /* Centre le texte pour les sous-éléments */
    padding: 20px 0;
}

.icons-wrapper {
    display: flex;
    justify-content: center;
    /* Centre les icônes horizontalement */
    flex-wrap: wrap;
    /* Permet aux icônes de passer à la ligne si nécessaire */
    gap: 10px;
    /* Espacement entre les icônes */
    width: 100%;
    /* Assure que le wrapper prend toute la largeur */
}

.fa {
    font-size: 2em;
    /* Ajuste la taille des icônes */
    padding: 8px;
    /* Ajuste l'espacement autour des icônes */
    color: #47bcc6;
    /* Couleur des icônes */
}

.fa:hover {
    color: lightgray;
    /* Couleur des icônes au survol */
}

/* Styles spécifiques pour les crédits */
.credits {
    margin-top: 10px;
    /* Ajoute un espace entre les icônes et les crédits */
    font-size: 1em;
    /* Ajuste la taille de la police pour les crédits */
    width: 100%;
    /* Assure que les crédits prennent toute la largeur et restent centrés */
}

/* Styles pour le bouton menu hamburger */
.hamburger-menu {
    display: none;
    /* Caché par défaut, sera affiché sur mobile */
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.hamburger-menu button {
    background: none;
    border: none;
    font-size: 2em;
    /* Taille de l'icône du menu hamburger */
    color: #000000;
}

.hamburger-menu button .fa-bars {
    cursor: pointer;
}

/* Micro-interaction au survol des images: flou léger, changement d'opacité et légère mise à l'échelle */
.im:hover {
    opacity: 0.9;
    /* Légère réduction de l'opacité */
    transform: scale(1.05);
    /* Légère mise à l'échelle pour donner un effet de zoom discret */
    transition: all 0.3s ease-in-out;
    /* Transition douce pour l'effet */
}

/* mes scripts*/
.cursor-dot { 
    position: absolute;
    width: 10px; 
    height: 10px; 
    background-color:#47bcc6; 
    border-radius: 50%; 
    opacity: 0.5; 
    transition: opacity 0.3s ease-out; 
    pointer-events: none; 
}
/* Pour les texte en hover */
.grille_images figure {
    position: relative;
    display: inline-block;
    /* Ou flex, selon votre mise en page actuelle */
    cursor: pointer;
}

.grille_images img {
    width: 100%;
    /* Ou votre taille spécifique */
}

.hover-text {
    display: none;
    position: absolute;
    bottom: 10px;
    /* Ajustez selon le besoin */
    left: 10px;
    /* Ajustez selon le besoin */
    background-color: #276369;
    color: white;
    padding: 8px;
    border-radius: 4px;
    white-space: nowrap;
}

.grille_images figure:hover .hover-text {
    display: block;
}

.grid-container {
    display: grid;
    grid-template-columns: repeat(12,1fr);
    gap: 16px;
    padding: 20px 0px 20px 0px;
  }

  .grid-container img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 8px;
  }
.im-p1{
width: 100%;
}
.im-p2{
    grid-column: 1/13;
    grid-row: 1 / 1;
}
.im-p3{
    grid-column: 1/13;
    grid-row: 2 / 2;
}
.im-p4{
    grid-column: 1/13;
    grid-row: 3 / 3;
}
.p1{
    grid-column:5/9;
    grid-row: 1/ 1;
}
.p2{
    grid-column:1/9;
    grid-row: 2/ 2;
}
.p3{
    grid-column:9/13;
    grid-row: 2/ 2;
}
.p4{
    grid-column:1/7;
    grid-row: 3/ 3;
}
.p5{
    grid-column:7/13;
    grid-row: 3/3;
}
.p6{
    grid-column:1/7;
    grid-row: 4/4;
}
.p7{
    grid-column:7/13;
    grid-row: 4/4;
}
.p8{
    grid-column:1/5;
    grid-row: 5/ 5;
}
.p9{
    grid-column:5/9;
    grid-row: 5/5;
}
.p10{
    grid-column:9/13;
    grid-row: 5/5;
}
.description{
    padding: 50px;;
    font-size: 1,5em;
}

.soumission-form {
    max-width: 800px;
    margin: auto;
    padding: 1rem;
    border-radius: 20px;
  }
  .soumission-form h3 {
    margin-top: 25%;
   font-size: 2em;
   padding-bottom: 20px;
   color: #035d65;
  }
  .soumission-form label {
    display: block;
    margin-top: 2rem;
  }
  .soumission-form input,
  .soumission-form textarea {
    width: 100%;
    padding: 0.5rem;
    margin-top: 0.3rem;
    color: #02737d;
    font-size: 1em;
    border-radius: 30px;
  }
  .soumission-form button {
    margin-top: 1rem;
    padding: 0.7rem 1.2rem;
    background-color: gold;
    color: #153639;
    border: none;
    cursor: pointer;
    border-radius: 20px;
    font-size: 1em;
    font-weight: 800;
  }
  .pres{
    background-color: #f8f2d4;
  }
  .im-pres{
    width: 100%;
    align-items: top;
  }
  .text{
    padding-top: 10%;
  }
  .service-grille {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); /* Grille flexible qui s’adapte à la taille de l'écran */
    gap: 20px; /* Espacement entre les éléments */
    padding: 6rem;
    
}
.service {
    aspect-ratio: 1/1;
    border-radius: 50%;
    background-color: #53d4df;

    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;

    text-align: center;
    padding: 1rem;
    overflow: hidden;
    word-break: break-word;
}
.service h2{
    font-size: 1.1rem;
    margin: 0.5rem 0 0.2rem 0;
    padding-bottom: 20px !important;
}
.service p {
    font-size: 0.95rem;
    margin: 0.5rem;
}
small{
    display: block;
    margin-bottom: 20px;
}

/* Media Query pour les écrans mobiles */

@media (max-width: 1200px) {

    body {
        padding: 0px;
        /* Marge autour du contenu */
    }

    header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
        background-color: #fff;
        display: flex;
        justify-content: space-between;
        align-items: flex-end;
        /* Alignement des éléments à la base */
        z-index: 1000 !important; 

    }

    .entete img {
        width: auto;
        height: 50px;
        /* Hauteur fixe pour le logo pour contrôler sa taille */
    }

    .hamburger-menu {
        display: flex;
        /* Assure que le menu hamburger est visible et aligné */
        align-items: center;
        /* Centre verticalement le bouton dans l'en-tête */
        z-index: 1000;
    }

    main {
        padding-top: 300px;
        /* Espace supérieur pour s'assurer que le contenu principal ne soit pas caché par l'en-tête */
        padding-bottom: 50px;
        /* Augmente l'espace en bas avant le pied de page */
    }

    h1 {
        margin-top: 150px;
        /* Augmente l'espace au-dessus du h1 pour plus de clarté */
        text-align: center;
        margin-bottom: 40px;
        font-size: 1.8em;
    }

    main {
        grid-row-start: 1;
        grid-row-end: 9;
        grid-column-start: 1;
        grid-column-end: 10;
        padding: 10px;

    }

    .menu1 a,
    .menu1 a:hover {
        text-decoration: none;
        /* Enlève le soulignement pour l'état normal et au survol */
        color: #47bcc6;
        /* Couleur des liens inchangée */
        background-color: transparent;
        /* Aucun changement de fond au survol */
    }


    .menu1 {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: white;
        flex-direction: row;
        justify-content: center;
        align-items: center;
        z-index: 1000;
        /* S'assure que le menu est au-dessus des autres éléments */
    }

    .menu1 a {
        padding: 20px;
        /* Augmente le padding pour espacer les éléments */
    }
.close-menu {
    display: flex;
    justify-content: flex-end;
  }
    .close-menu .menu-deployed{
        display: block;
        /* S'assure que le bouton est visible */
        position: absolute;
        /* Position absolue pour placer précisément le bouton */
        top: 20px;
        /* Espace du haut */
        right: 20px;
        /* Espace du côté droit */
        font-size: 3em;
        /* Taille de l'icône */
        color: #000000;
        /* Couleur de l'icône */
        z-index: 1500;
    }
.hamburger-menu {
    z-index: 2000; /* visible par-dessus le contenu */
    position: relative;
}

body.menu-opened .hamburger-menu {
    display: none;
}
    .hamburger-menu {
        display: block;
    }

    /* Affiche le menu en plein écran en mobile */
    .menu-deployed {
        display: flex;
        /* Utilise flexbox pour le layout */
        flex-direction: column;
        /* Empile les éléments verticalement */
        justify-content: center;
        /* Centre les éléments verticalement */
        align-items: left;
        /* Centre les éléments horizontalement */
        width: 100%;
        /* Prend toute la largeur */
        height: 100vh;
        /* Prend toute la hauteur de la vue */
        position: fixed;
        /* Position fixe pour couvrir tout l'écran */
        top: 0;
        /* À partir du haut de la page */
        left: 0;
        /* À partir du côté gauche de la page */
        background-color: white;
        /* Fond blanc pour le menu */
        z-index: 1000;
        /* S'assure que le menu est au-dessus de tout le contenu */
        padding-top: 50px;
        /* Ajoute un peu d'espace en haut */
    }

    .menu1 .actif {
        color: #47bcc6;
        /* Si vous voulez que .actif reste noir aussi en mobile */
    }


    /* Rend le conteneur de l'en-tête responsive */
    header .entete {
        grid-template-columns: 1fr 1fr;
        justify-content: space-between;
        padding: 10px;
    }

    /* Affiche le logo et le bouton menu hamburger */
   

    .grille_images {
        margin: 0 auto;
        /* Centre la grille dans le viewport */
        padding: 0 20px;
        /* Assure une marge intérieure pour ne pas toucher les bords */
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        /* Deux colonnes */
        gap: 10px;
        /* Espacement entre les images */
    }

    .grille_projets {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        /* Deux colonnes */
        gap: 10px;
        /* Espacement entre les images */
    }

    .grille_projets h2 {
        margin-top: 30px;
        text-align: right;
    }

    .grille_projets small {
        display: block;
        margin-top: 40px;
        text-align: right;
    }

    .grille_images img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .sociaux {
        margin-top: 60px;
    }

    /* Assignation des images aux cellules de la grille */
    /* Configuration initiale pour toutes les images */
    .im {
        grid-row: span 2;
        /* La plupart des images s'étendent sur deux lignes pour maintenir la forme carrée */
    }

    /* Configuration spécifique pour les rectangles longs */
    .im2,
    .im5,
    .im10 {
        grid-row: span 3;
        /* Les rectangles longs s'étendent sur trois lignes */
    }

    /* Ajustements pour éviter les chevauchements tout en maintenant un flux visuel dynamique */
    /* Carrés */
    .im1 {
        grid-column: 1;
        grid-row: 1 / 2;
    }

    .im4 {
        grid-column: 2;
        grid-row: 3 / 5;
    }

    /* Déplacé pour éviter le chevauchement avec .im2 */
    .im5 {
        grid-column: 1;
        grid-row: 2 / 4;
    }

    .im6 {
        grid-column: 1;
        grid-row: 5 / 6;
    }

    .im8 {
        grid-column: 1/3;
        grid-row: 5 / 6;
    }

    .im9 {
        grid-column: 2;
        grid-row: 6 / 9;
    }

    .im11 {
        grid-column: 1;
        grid-row: 7 / 9;
    }

    .im12 {
        grid-column: 2;
        grid-row: 10 / 12;
    }

    /* Ajusté pour continuer le motif sans chevauchement */

    /* Rectangles longs */
    .im2 {
        grid-column: 2;
        grid-row: 1 / 3;
    }

    .im3 {
        grid-column: 1;
        grid-row: 4 / 5;
    }

    .im7 {
        grid-column: 1;
        grid-row: 6 / 7;
    }

    .im10 {
        grid-column: 1;
        grid-row: 7/9;
    }

    /* Ajustements pour les dernières images pour remplir les espaces restants */
    .im13,
    .im14 {
        display: none;
        /* Cachez ces éléments si vous n'utilisez que 12 images */
    }
    .service-grille{
        display: grid;
         grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); /* Grille flexible qui s’adapte à la taille de l'écran */
    gap: 20px; /* Espacement entre les éléments */
        padding: 20px;

    }

    .service {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center; /* pour centrer le texte dans le bloc */
    aspect-ratio: 1/1;
    flex-wrap: nowrap;
}
.form{
    margin-top: 20%;
    padding: 30%;
    align-items: center;
    background-color: #53d4df;
    border-radius: 100%;
    text-align: center;
}
}


/*
iiiiiii  sss   rrrr    aaa  eee l
   ii   s    r   r  a   a e     l    
   ii    sss  rrrr  aaaaa eeee  l    
   ii       s r  r  a   a e     l    
iiiiiii  sss   r   r a   a  e   lll  

ddddd  u  u pppp  u   u iii sss  
d   d  u  u p   p u   u  i  s     
d   d  u  u pppp  u   u  i   sss  
d   d  u  u p     u   u  i      s 
ddddd   uuu p      uuu  iii sss   

Codé par Israël Dupuis en 2024 pour le plus grand bien de tous.
*/