  :root{
    --gray-15: #e6e6e6;
} 

body{
    background: #ffffff;
    background: linear-gradient(180deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 75%, rgba(171, 219, 244, 1) 100%);  font-family: Raleway;
    font-size: 16px;
    font-color: #121129;
     line-height: 18px;
}



a{
  text-decoration: inherit;
  color: #121129;
}

a:hover{
  font-weight: 600;
}

#body2{
  margin: 3vw;
}

@media screen and (max-width: 60rem) {
    #body2{
        margin: 5vw;
    }
}
/*TITRES*/
#titres{
    font-size: 32px;
    font-weight: 500;
    color: #121129;
}


#espace{
  height: 50px;
}
  


/*//////////////////////////////////////////////////////////////////
////////////////////////////////HEADER//////////////////////////////
//////////////////////////////////////////////////////////////////*/

#header {
    display: flex;
    justify-content: space-between;
}

.logo-header {
    height: 40px;
    width: auto;
}


/* BURGER */

.burger {
    position: fixed;
    top: 3vw;
    right: 3vw;

    width: 25px;
    height: 25px;

    padding: 0;
    border: 0;
    background: none;

    cursor: pointer;
    z-index: 1001;
}

.burger img {
    position: absolute;
    inset: 0;

    width: 100%;
    height: 100%;

    object-fit: contain;
}

.icon-close {
    display: none;
}

.burger.active .icon-burger {
    display: none;
}

.burger.active .icon-close {
    display: block;
}

/* MENU BURGER */

.menu-burger {
    position: fixed;
    inset: 0;

    z-index: 1000;

    display: none;
    align-items: flex-start;
    justify-content: flex-end;

    padding: 2vw calc(3vw + 25px + 15px) 3vw 3vw;

    background: transparent;
}

.menu-burger.active {
    display: flex;
}


/* IMAGES */

.menu-images {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;

    width: 210px;
}

.menu-images a {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    aspect-ratio: 1;
}

.menu-images img:not(.icon-select) {
    display: block;

    width: 80%;
    height: 80%;

    object-fit: cover;
}

/* le SVG de sélection est dimensionné par rapport à toute la case (.menu-images a),
   alors que l'icône ne fait que 80% de cette case : on réduit donc sa taille ici
   pour qu'il entoure l'icône au lieu d'entourer toute la case */
.menu-images a .icon-select{
  width: 112%;
  height: 112%;
}

/* MOBILE */

@media screen and (max-width: 60rem) {


    .burger {
        top: 5vw;
        right: 5vw;
    }

    .menu-burger {
        padding: 4vw calc(5vw + 25px + 15px) 5vw 5vw;
    }

    .menu-images {
        width: 230px;
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }
}


/*//////////////////////////////////////////////////////////////////
////////////////////////////////PROJETS/////////////////////////////
//////////////////////////////////////////////////////////////////*/



#list{
    position: relative;
    margin: 30px 0vw 0vw 0vw;
}


  .project{
    position: relative;
    display: flex;
    align-items: center;
    gap: 50px;
    padding: 30px 0;
    border-bottom: 1px solid var(--gray-15);
    cursor: pointer;
  }


  .icon{
    position: relative;
    z-index: 3;
    width: 50px;
    height: 50px;
    display: flex;
  }



  .titles{
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto; /* occupe tout l'espace horizontal restant de la ligne : l'espace blanc autour du texte fait donc partie de la zone cliquable */
    align-self: stretch; /* occupe toute la hauteur de la ligne (padding compris), même logique en vertical */
  }


  .title{
    font-weight: 500;
    display: flex;
    align-items: center; /* le texte reste centré verticalement dans toute la zone désormais cliquable */
    width: 100%;
    height: 100%;
  }


  /* ---- overlay preview boxes ---- */
  .overlay{
    position: absolute;
    inset: 0;
    pointer-events: none;
  }

  .box{
    position: absolute;
    display: none;
  }

  .overlay.active .box{ display: block; }

  .box-main{
    z-index: 2;
    width: 600px;
    height: auto;
    background-color: var(--gray-70);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
  }

  .box-second{
    z-index: 2;
    width: 600px;
    height: auto;
    background-color: var(--gray-30);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
  }

  .box-text{
    z-index: 4;
    width: 18vw;
    padding: 12px 14px;
    overflow: hidden;
  }

  /* mobile : la position de chaque cadre est gérée par mobileLayout (JS).
     seul l'encadré texte reste masqué en mobile. */
  @media (max-width: 60rem){
    .box-text{
      display: none !important;
    }

    .box-main{
      width: 315px;
      height: auto;
    }

    .box-second{
      width: 315px;
    }
  }

  .box-text .kicker{
    display: block;
    margin-bottom: 6px;
  }


    /*//////////////////////////////////////////////////////////////////
    ////////////////////////////////FOOTER//////////////////////////////
    //////////////////////////////////////////////////////////////////*/


/*DISPLAY GRID : FOOTER INFORMATIONS*/

.parent {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    gap: 40px;
    width: 90vw;
    height: 250px;
}

.div4 {
    grid-row-start: 2;
    align-content: end;
}

.div5 {
    grid-row-start: 2;
    align-content: end;
}

.div6 {
    grid-row-start: 2;
    align-content: start;
}

/*FOOTER INFORMATIONS : MOBILE VERSION*/


@media screen and (max-width: 60rem) {
  .parent {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    grid-template-rows: repeat(9, 1fr);
    width: 90vw;
    height: 700px;
    
}
    
.div1 {
    grid-column-start: 1;
    grid-row-start: 7;

    height: 30px;
}

.div2 {
    grid-column-start: 1;
    grid-row-start: 4;
    height: 30px;
}

.div3 {
    grid-column-start: 1;
    grid-row-start: 1;
    height: 30px;
}

.div4 {
    grid-column-start: 1;
    grid-row-start: 8;
    align-content: start;
}

.div5 {
    grid-column-start: 1;
    grid-row-start: 5;
    align-content: start;
}

.div6 {
    grid-column-start: 1;
    grid-row-start: 2;
    align-content: start;
    height: 30px;
}
        
  }

.div7 {
    grid-column-start: 1;
    grid-row-start: 3;
}

.div8 {
    grid-column-start: 1;
    grid-row-start: 6;
}

.div9{
    height: 30px;
}



/*//////////////////////////////////////////*/






/*//////////////////////////////////////////*/

/* LISTE CONTACT HORIZONTALE */
#contact-footer {
  display: flex;            /* Aligns items side-by-side */
  list-style: none;         /* Removes default bullet points */
  padding: 0;               /* Removes default left padding */
  margin: 0;                /* Removes default margins */
  gap: 20px;                /* Adds spacing between items */
}

.icon-footer {
  width: 30px;
  height: auto; /* Conserve les proportions d'origine */
}

/*//////////////////////////////////////////*/

/*LOGO FOOTER SANS MARGES*/
#logo-footer{
    width: 100vw;
    height: auto;
    margin: 20px 0px 0px 0px;
}
  


/* ---- overlay du SVG de sélection, superposé à l'icône survolée ---- */
  .icon-select{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 140%;
    height: 140%;
    object-fit: contain;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.15s ease;
    z-index: 4; /* au-dessus de l'icône (z-index: 3) */
  }

  .project.is-hovered .icon-select,
  .illustration.is-hovered .icon-select,
  .exploration.is-hovered .icon-select,
  .menu-images a:hover .icon-select,
  .menu-images a:focus .icon-select{
    opacity: 1;
  }

  