html{
    background-image: url("/img/fond_gauche.png"), url("/img/fond_droit.png"), url("/img/bg_site.svg");
    background-position: left center, right center, center;
    background-repeat: no-repeat, no-repeat;
    background-size: auto 100vh; /* ou contain selon ton cas */
    background-attachment: fixed;
    background-color: #e6ebfd; /* couleur de fond au centre */
    font-family: "Roboto", sans-serif;
}

@font-face{
    font-family: StreetCornerSlab;
    src: url("/fonts/StreetCornerSlab.ttf");
}

body{
    max-width: 100%;
    overflow-x: hidden;
    margin: 0;
    position: relative;
}

.contenu{
    position: relative;
    width: 960px;
    margin: auto;
}

h1, h2, h3{
    font-family: StreetCornerSlab;
}

h1{
    font-size: 28px;
}

h2{
    font-size: 24px;
    margin: 10px;
}

h3{
    font-weight: lighter;
    font-size: 22px;
    margin: 3px;
}

.contenu_entete{
    background-image: url("/img/banniere.gif");
    background-size: cover;
    height: 358px;
}

.contenu_entete a{
    display: block;
    width: 150px;
    height: 180px;
    position: relative;
    top: 190px;
    left: 10px;
}

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

MENU

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

.contenu_menu-mobile{
    display: none;
}

.contenu_wrapper{
    display: flex;
    flex-direction: row;
}

.contenu_cote{
    width: 22%;
}

.contenu_cote-menu ul{
    list-style-type: none;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.contenu_cote-menu li{
    height: 80px;
    width: 80px;
    padding-bottom: 2em;
    margin: 10px;
    position: relative;
}

#menu4, #menu3, #menu2, #menu1{
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

#menu4:hover, #menu3:hover, #menu2:hover, #menu1:hover{
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
}

#menu4{
    background-image: url("/img/pc_eteint.png");
}

#menu4:hover{
    background-image: url("/img/pc_allume.png");
}

#menu3{
    background-image: url("/img/crayons.png");
}

#menu3:hover{
    background-image: url("/img/crayons_sorti.png");
}

#menu2{
    background-image: url("/img/corbeille_pleine.png");
}

#menu2:hover{
    background-image: url("/img/corbeille_vide.png");
}

#menu1{
    background-image: url("/img/carnet.png");
}

#menu1:hover{
    background-image: url("/img/carnet_ecrit.png");
}

.contenu_cote-menu li a{
    padding-top: 100%;
    text-decoration: none;
    color: black;
    font-family: StreetCornerSlab;
    width: 100%;
    text-align: center;
    position: absolute;
    bottom: 0;
}

.contenu_cote-histo{
    background-color:#edebf7;
    border-top: 4px solid white;
    border-left: 4px solid white;
    border-right: 4px solid rgb(158, 142, 197);
    border-bottom: 4px solid rgb(158, 142, 197);
    box-shadow: 5px 5px 10px 0 rgba(191, 184, 223, 0.7);
    margin-right: 10px;
}

.histo_articles{
    border-top: 2px solid rgb(158, 142, 197);
    border-left: 2px solid rgb(158, 142, 197);
    border-right: 2px solid white;
    border-bottom: 2px solid white;
    margin: 5px;
}

.histo_articles ul{
    padding-left: 10px;
}

.histo_articles ul li{
    list-style-type: none;
}

.partner-vertical{
    width: 170px;
    margin: 60px auto;
    box-shadow: 5px 5px 10px 0 rgba(191, 184, 223, 0.7);
}

.partner-vertical img{
    display: block;
    width: 100%;
}

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

CONTENU PRINCIPAL

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

.contenu_principal{
    width: 75%;
    min-height: 80vh;
    background-color:#edebf7;
    border-top: 4px solid white;
    border-left: 4px solid white;
    border-right: 4px solid rgb(158, 142, 197);
    border-bottom: 4px solid rgb(158, 142, 197);
    box-shadow: 5px 5px 10px 0 rgba(191, 184, 223, 0.7);
    padding: 15px;
}

.contenu_principal-portrait{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.contenu_principal-portrait-cadre{
    width: 40%;
    background-color: rgb(207, 156, 219);
    padding: 20px;
    border-top: 3px solid white;
    border-left: 3px solid white;
    border-right: 3px solid rgb(185, 130, 197);
    border-bottom: 3px solid rgb(185, 130, 197);
}

.contenu_principal-portrait-cadre h3{
    text-align: center;
    width: 120px;
    background-color: white;
    padding: 5px 0;
    border-radius: 2px;
}

.contenu_principal-portrait-cadre ul{
    padding-left: 10px;
}

.contenu_principal-portrait-cadre ul li{
    list-style-type: none;
    margin-bottom: 1em;
}

.contenu_principal-portrait-img{
    width: 50%;
    height: 300px;
    width: 300px;
    margin-left: 40px;
}

.contenu_principal-portrait-img img{
    height: inherit;
}

.contenu_principal-news{
    background-color:#e5e3ee;
    border-top: 3px solid white;
    border-left: 3px solid white;
    border-right: 3px solid rgb(158, 142, 197);
    border-bottom: 3px solid rgb(158, 142, 197);
    padding: 10px;
    margin-bottom: 15px;
}

.contenu_principal-news img{
    display: block;
    width: 60%;
    margin: auto;
}

.contenu_principal-partenaires{
    background-color:#e5e3ee;
    border-top: 3px solid white;
    border-left: 3px solid white;
    border-right: 3px solid rgb(158, 142, 197);
    border-bottom: 3px solid rgb(158, 142, 197);
    padding: 10px;
}

.contenu_principal-partenaires-content{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.contenu_principal-partenaires a{
    display: block;
    width: 24.5%;
    color: transparent;
    background-color:#c9c5df;
    margin-bottom: 5px;
    padding: 15px;
    border-top: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid rgb(136, 119, 197);
    border-bottom: 2px solid rgb(136, 119, 197);
    font-size: 11pt;
    text-decoration: none;
    box-sizing: border-box;
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat
}

.contenu_principal-partenaires a:hover{
    background-color:#a29dc0;
    border-top: 2px solid rgb(136, 119, 197);
    border-left: 2px solid rgb(136, 119, 197);
    border-right: 2px solid white;
    border-bottom: 2px solid white;
}

#catoce{
    background-image: url("/img/partenaires/btn_elementarya.png");
}

#pechemignon{
    background-image: url("/img/partenaires/btn_pechemignon.png");
}

#drakemaster{
    background-image: url("/img/partenaires/btn_drakemaster.png");
}

#pub{
    background-image: url("/img/partenaires/btn_pub.png");
}

.lecture-lecteur{
    border-top: 3px solid rgb(177, 162, 231);
    border-left: 3px solid rgb(177, 162, 231);
    border-right: 3px solid white;
    border-bottom: 3px solid white;
    height: auto;
    min-height: 400px;
    margin: 15px 0;
}

.lecteur-nav{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 5px 0;
}

.lecteur-nav button{
    font-size: larger;
    padding: 2px 10px;
    border-radius: 0;
    background-color: rgb(121, 104, 180);
    color: white;
    border-top: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid rgb(136, 119, 197);
    border-bottom: 2px solid rgb(136, 119, 197);
}

.lecture-lecteur{
    margin-top: 8px;
}

.lecture-lecteur img{
    width: 100%;
    margin: 0;
}

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

GALERIE

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

.details-img img{
    width: 100%;
}

.principal_galerie{
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
}

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

.principal_filtres button{
    font-family: StreetCornerSlab;
    font-size: large;
    padding: 5px 10px;
    border-radius: 0;
    border-top: 2px solid white;
    border-left: 2px solid white;
    border-right: 2px solid rgb(136, 119, 197);
    border-bottom: 2px solid rgb(136, 119, 197);
}

.principal_filtres button:active{
    border-top: 2px solid rgb(136, 119, 197);
    border-left: 2px solid rgb(136, 119, 197);
    border-right: 2px solid white;
    border-bottom: 2px solid white;
}

.galerie-img{
    height: 200px;
    width: 28%;
    margin: 15px;
    background-color: rgb(214, 206, 241);
    border-top: 3px solid rgb(177, 162, 231);
    border-left: 3px solid rgb(177, 162, 231);
    border-right: 3px solid white;
    border-bottom: 3px solid white;
    overflow: hidden;
}

.galerie-img img{
    display: block;
    width: 150%;
    margin: auto;
}

.principal_fenetre{
    position: fixed;
    top: 3vh;
    left: 3vw;
    width: 90vw;
    max-height: 90vh;
    overflow: auto;
    background-color:#e5e3ee;
    border-top: 4px solid white;
    border-left: 4px solid white;
    border-right: 4px solid rgb(158, 142, 197);
    border-bottom: 4px solid rgb(158, 142, 197);
    box-shadow: 5px 5px 10px 0 rgba(111, 103, 146, 0.7);
    padding: 15px;
}

.principal_fenetre button{
    position: absolute;
    right: 5px;
    top: 5px;
    width: 30px;
    height: 30px;
    padding: 0;
    background-color: rgb(184, 166, 230);
    border: 2px solid white;
}

.principal_fenetre>img{
    display: block;
    max-width: 90%;
    max-height: 90vh;
    margin: auto;
    border: 3px solid white;
}

.principal_fenetre>button>img{
    height: 20px;
}

.principal_fenetre>p{
    font-size: large;
    text-align: justify;
    margin: 15px 20px 0 20px;
}

.principal_fenetre::-webkit-scrollbar {
    width: 15px; /* épaisseur de la barre */
}

.principal_fenetre::-webkit-scrollbar-track {
    background: #d6d3e5; /* fond du rail */
}

.principal_fenetre::-webkit-scrollbar-thumb {
    background: rgb(158, 142, 197); /* couleur du curseur */
    border: 2px solid #e5e3ee; /* crée un effet “encadré” */
}

.principal_fenetre::-webkit-scrollbar-thumb:hover {
    background: rgb(136, 118, 178);
}

.contact-liste{
    display: flex;
    flex-wrap: wrap;
}

.contact-liste li{
    width: 50%;
    height: 450px;
    list-style-type: none;
}

.contact-liste li a{
    text-decoration: none;
    color: black;
    font-family: StreetCornerSlab;
    font-size: larger;
}

.contact-liste li a:hover{
    text-decoration: underline;
}

.contact-liste li img{
    width: 100%;
}

.texte-404{
    margin: 20px;
}

.image-404{
    display: block;
    margin: 150px auto;
    max-width: 90%;
}

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

FOOTER

////////////////////////////////////////////////////////////////////////////////////////////////*/
.partner-horizontal{
    width: 680px;
    margin: 50px auto;
    box-shadow: 5px 5px 10px 0 rgba(191, 184, 223, 0.7);
}

.partner-horizontal img{
    display: block;
    width: 100%;
}

.footer-spacer{
    height: 200px;
}

footer{
    position: relative;
    height: 200px;
    margin-top: 30px;
    box-sizing: border-box;
    box-shadow: 5px 5px 10px 0 rgba(191, 184, 223, 0.7);
    border-top: 3px solid #EAF0FF;
    border-right: 3px solid #3353F0;
    border-bottom: 0;
    border-left: 3px solid #EAF0FF;
    background-color: #6792FF;
    overflow: hidden;
    transition: all 0.3s ease;
}

footer.is-maximized {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    margin: 0;
    height: 100vh;
    width: 100vw;
}

.footer_infos.is-maximized {
    height: calc(100vh - 50px);
}

/* réduit = juste la barre de contrôles */
footer.is-minimized {
    transform: translateY(160px);
    height: 28px;
    overflow: hidden;
}

/* fermé = disparu */
footer.is-closed {
  opacity: 0;
  pointer-events: none;
}

.footer_controles{
  position: absolute;
  top: 12px;
  right: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
  z-index: 5;
}

.ctrl-btn{
  width: 30px;
  height: 30px;
  background-color: #6792FF;
  border-top: 2px solid #EAF0FF;
  border-right: 2px solid #3353F0;
  border-bottom: 2px solid #3353F0;
  border-left: 2px solid #EAF0FF;
  padding: 0;
  margin: 0;
  cursor: pointer;
}

#minimiser{
    background-image: url("/img/elmts/reduire.svg");
}

#agrandir{
    background-image: url("/img/elmts/agrandir.svg");
}

#fermer{
    background-image: url("/img/elmts/fermer.svg");
}

.footer_infos{
    background-color: #BAC5FC;
    padding-bottom: 50px;
    border-top: 3px solid #3353F0;
    border-right: 3px solid #EAF0FF;
    border-bottom: 0;
    border-left: 3px solid #3353F0;
    margin: 50px 10px 0 10px;
}

footer p{
    text-align: center;
    font-family: StreetCornerSlab;
    font-size: larger;
}

footer p a {
    margin: 0 5px
}

footer p a img{
    height: 25px;
}

.alphonse_cache{
    height: 190px;
    position: absolute;
    bottom: 0;
    left: 40%;
    z-index: -1;
}

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

MEDIA QUERIES

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

@media only screen and (max-width: 1720px) {
    html{
        background-image: url("/img/bg_site.svg");
        background-position: center;
    }
}

@media only screen and (max-width: 768px) {
    .contenu{
        width: 100%;
    }
    .contenu_entete{
        height: 180px;
        background-size: contain;
        background-position: center;
        background-repeat: no-repeat;
    }
    .contenu_entete a{
        display: none;
    }
    .contenu_wrapper{
        flex-direction: column;
    }
    .contenu_cote{
        display: none;
    }
    .contenu_principal{
        width: 95%;
        padding: 10px;
        margin: 0;
    }
    .contenu_menu-mobile{
        display: block;
        width: 100%;
    }
    .contenu_menu-mobile > nav > ul{
        padding: 0;
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-around;
        list-style-type: none;
    }
    .contenu_menu-mobile > nav > ul > li{
        font-family: StreetCornerSlab;
        font-size: larger;
    }
    .contenu_menu-mobile > nav > ul > li > a {
        color: black;
        text-decoration: none;
    }
    .principal_filtres{
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    .galerie-img{
        width: 40%;
    }
    .partner-horizontal{
        width: 90%;
    }
    footer{
        width: 100%;
    }
}

@media only screen and (max-width: 610px) {
    .contenu_principal-portrait-cadre, .contenu_principal-portrait-img{
        width: 100%;
        text-align: center
    }
    .contenu_principal-partenaires a{
        width: 48%;
    }
}