@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

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

html,
body {
    height: 100%;
    font-family: 'poppins', sans-serif;
    font-weight: 600;
    margin: 0;
    padding: 0;
}

.index {
    background-image: url("./img/copeauxfinal.webp");
    background-size: 100%;
    width: 100vw;
    display: flex;
    flex-direction: column;
    height: 100vh;
}


header {
    height: 6.5%;
    width: 100%;
    display: flex;
    background-color: white;
    margin-bottom: 1vh;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1000;
    /* plus grand que le menu pour rester visible */
}

header>a {
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;
    text-decoration: none;
    font-size: 1.6vh;
    height: 130%;
    width: 100vw;

}

header img {
    height: 50px;
    padding: 2px;
}

#titre {
    letter-spacing: 1vw;
    color: #f1de31;
    font-weight: bold;
    font-size: clamp(45px, 4.3vw, 150px);
    display: flex;
    align-self: center;
    padding-top: 8vh;
    text-align: center;
}

h1 {
    color: #009a44;
    letter-spacing: 1vw;
    display: flex;
    justify-content: center;
    font-size: 2.6vh;
    font-family: 'Bebas Neue', sans-serif;
}

h2 {
    color: rgb(0, 0, 0);
    font-size: 60px;
    padding-top: 4vh;
    padding-bottom: 2vh;
}

#menu-burger {
    font-size: 2.5em;
    color: black;
    cursor: pointer;
    padding-right: 23px;
}

.nav-liens,
.nav-liens-qui {
    opacity: 0;
    visibility: hidden;
    position: fixed;
    top: 6vh;
    z-index: 999;
    right: 0;
    width: 100vw;
    height: 100%;
    background-color: #f1de31;
    justify-content: center;
    font-family: "Poppins", sans-serif;
    line-height: 3.5;
}


.nav-liens.active,
.nav-liens-qui.active {
    z-index: 1;
    opacity: 1;
    visibility: visible;
    transition:
        opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
        visibility 0s;
}


.nav-liens img,
.nav-liens-qui img {
    max-width: 60px;
    max-height: 60px;
    padding-left: 30px;
}

.nav-liens li,
.nav-liens-qui li {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1vw;
    padding: 8vw;
    max-height: 15vh;
}


.nav-liens a,
.nav-liens-qui a {
    text-decoration: none;
    color: black;
    font-size: clamp(17px, 4vw, 52px);
    
}


.palmares a,
.qui-sommes-nous a,
.contact a,
.photos a,
.manifestations a,
.membres a {
    text-decoration: none;
    color: white;
    font-size: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center;

}

.grille-nav a.manifestations {
    justify-content: center;
    align-items: center;
    text-align: center;
}

.palmares,
.qui-sommes-nous,
.contact,
.photos,
.manifestations,
.membres {
    /*Pour que les pictogrammes soient en bas à droite de mes rectangles*/
    background-repeat: no-repeat;
    background-size: 15%;
    background-position: bottom right;
}

/* Regroupement par couleurs */
.qui-sommes-nous,
.manifestations {
    background-color: #009a44;
    text-align: center;

}

.palmares,
.contact {
    background-color: #f1de31;
}

.membres,
.photos {
    background-color: #481653;
}

/* Regroupement par colonne*/
.palmares,
.membres,
.qui-sommes-nous {
    grid-column: 1;
    
}

.contact,
.photos,
.manifestations {
    grid-column: 2;

}

.qui-sommes-nous {
    background-image: url(./img/pictogrammes_blancs/foule.svg);
    

}

.palmares {
    background-image: url(./img/pictogrammes_blancs/trophee.svg);
}

.contact {
    background-image: url(./img/pictogrammes_blancs/mail.svg);
}

.membres {
    background-image: url(./img/pictogrammes_blancs/membre.svg);
}

.manifestations {
    background-image: url(./img/pictogrammes_blancs/date.svg);
}

.photos {
    background-image: url(./img/pictogrammes_blancs/photo.svg);
}

.grille-nav {
    display: grid;
    width: 100vw;
    height: min(86vh, calc(100vh - 50px));
    min-height: 50px;
    justify-content: center;
    align-items: center;
    margin-top: 7vh;
}

.grille-nav a {
    height: 12vh;
    width: 45vw;
    border-radius: 1.5vh;
    border: none;
    cursor: pointer;
    text-decoration: none;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
}


footer {
    background-color: white;
    display: grid;
    grid-template-columns: 1fr 1fr;
    font-size: 10vh;
    height: 7.5%;
    align-items: center;
}

footer i {
    font-size: 27px;
}

footer a {
    color: #481653;
    text-decoration: none;
    display: grid;
    grid-column: 2;
    flex-direction: column;
    font-size: clamp(17px, 3vw, 32px);
    padding-left: 2vw;
    padding-top: 0.7vw;
    font-family: 'Bebas Neue', sans-serif;
    letter-spacing: 0.2em;
}



.reseaux-sociaux-liens {
    display: flex;
    height: 100%;
    justify-content: flex-end;
    padding-right: 1vw;
    align-items: center;
}


/*Galerie photos*/

.galerie-photos {
    flex-grow: 1; /* prend tout l'espace restant */
    overflow-y: auto; 
    padding: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 3vh;
}

.galerie-photos img {
    width: 90vw;
    height: auto;
    margin-bottom: 2vh;
    object-fit: contain;
    border: none;
}

.galerie {
    display: flex;
    flex-direction: column;
    height: 100vh; /* 👈 toute la hauteur de l'écran */
    background-image: url(./img/tournesol.webp);
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;

}

.galerie p {
    background-color: #009a44;
    color: white;
    margin: 2vh;
    font-size: 2vh;
    font-weight: 200;
    padding: 1vh;
    border-radius: 10px;
    opacity: 80%;
    text-align: center;
}


#lightbox {
    position: fixed; /* Obligé pour que le zoom de ma photo soit plein centre*/
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.85);
    display: none;
    justify-content: center;
    align-items: center;
    cursor: zoom-out;
  }
  
  #lightbox img {
    max-width: 95vw;
    max-height: 95vh;
    border-radius: 10px;
  }
  
/*Qui sommes-nous? */

.page-qui {
    background-image: url(./img/tournesol.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
    width: 100vw;
    height: 100vh;
    overflow: auto;
}

.page-qui p {
    color: #ffffff;
    width: 90vw;
    display: flex;
    justify-self: center;
    font-weight: 300;
    font-size: 3.5vh;
}


.photo-jeunesse {
    width: 90vw;
    height: 300px;
    display: flex;
    justify-self: center;
}

.photo-jeunesse img {
    width: 90vw;
    display: flex;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 10px;
}

.cta {
    width: 90vw;
    margin-top: 4vh;
    display: flex;
    flex-direction: column;
    justify-self: center;
    align-self: center;
}

.cta1 p,
.cta2 p {
    display: flex;
    justify-content: center;
    text-align: center;
    font-family: 'poppins', sans-serif;
    font-weight: 700;
    font-size: 1.9vh;
    padding-bottom: 10px;

}

.cta1,
.cta2 {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;


}

.cta1 a,
.cta2 a {
    text-decoration: none;
    color: #481653;
    background-color: #f1de31;
    font-size: 20px;
    font-weight: 700;
    border: none;
    border-radius: 20px;
    align-self: center;
    padding: 2%;
    margin-bottom: 5vh;
    display: flex;
    text-align: center;
}

/*Palmarès*/
.page-palmares {
    background-image: url(./img/savigny19.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
    width: 100vw;
    height: 100vh;
    overflow: auto;
    display: flex;
    flex-direction: column;
    justify-self: center;
    align-self: center;
}

.ligne-temps {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 90vw;
    margin: auto;
    padding: 2rem 0;
    gap: 2rem;
}

.ligne-temps::before {
    content: "";
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #ffffff;
    transform: translateX(-50%);
}

.contenant {
    width: 45%;
    padding: 1rem;
    border-radius: 10px;
    color: white;
    position: relative;
    /*Pour les points qui relient à la ligne du milieu */
}

.contenant h3 {
    margin-top: 0;
}

.contenant:nth-child(odd) {
    align-self: flex-start;
}

.contenant:nth-child(even) {
    align-self: flex-end;
}

.contenant::before {
    content: "";
    position: absolute;
    top: 1rem;
    width: 10px;
    height: 10px;
    background: #ffffff;
    border-radius: 50%;
    border: 3px solid white;
    box-shadow: 0 0 0 2px #86898c;
}

.contenant:nth-child(odd)::before {
    right: -1.5rem;
}

.contenant:nth-child(even)::before {
    left: -1.5rem;
}


/*Manifestations 2025*/
.page-manifestations {
    background-image: url("./img/copeauxfinal.webp");
    background-repeat: no-repeat;
    background-size: cover;
    overflow: hidden;
    width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
}

.galerie-photos-manif {
    flex-grow: 1; /* prend tout l'espace restant */
    overflow-y: auto; 
    padding: 1rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 3vh;
}


.galerie-photos-manif img {
    width: 90vw;
    height: auto;
    margin-bottom: 2vh;
    object-fit: contain;
    border: none;
}

.galerie-photos-manif p {
    font-size: 4vh;
    color: white;
}

#lightbox {
    position: fixed; /* Obligé pour que le zoom de ma photo soit plein centre*/
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.85);
    display: none;
    justify-content: center;
    align-items: center;
    cursor: zoom-out;
  }
  
  #lightbox img {
    max-width: 95vw;
    max-height: 95vh;
    border-radius: 10px;
  }
  

  .flyer p{
    text-align: center;
    
}


/*Membres */
.page-membres {
    background-image: url(./img/susu.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
    width: 100%;
    height: 100vh;
    overflow: auto;
}

.cartes-membres {
    gap: 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-self: center;
    padding: 2rem;
    width: 90vw;
}

.cartes {
    width: 80vw;
    height: 60vh;
    position: relative;
    /*Obligé pour faire une grille de cartes*/
}

.carte-avant img {
    width: 100%;
    height: 55vh;
    object-fit: cover;
    object-position: center;
    border-radius: 8px;
    display: block;

}

.cartes .carte-avant,
.cartes .carte-arriere {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: 12px;
    overflow: hidden;
    transition: transform 0.8s;
    text-align: center;
    color: white;

}

.cartes .carte-avant {
    background: #481653;
    z-index: 2;
    transform: rotateY(0deg);
}

.cartes-membres h2 {
    font-size: 15px;

}

.cartes-membres h3 {
    color: white;
}

.cartes .carte-arriere {
    background: #481653;
    transform: rotateY(180deg);
    z-index: 1;
    padding: 40px;
}

.carte-arriere h2 {
    font-size: 5vh;
}

.carte-arriere h3 {
    margin-bottom: 2vh;
}

.carte-avant p {
    font-size: 3vh;
}

.cartes.retourne .carte-avant {
    transform: rotateY(180deg);
    z-index: 1;
}

.cartes.retourne .carte-arriere {
    transform: rotateY(360deg);
    z-index: 2;
}

/*Contact */
.page-contact {
    background-image: url(./img/tournesol.webp);
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
    background-position: center;
    padding-bottom: 3vh;
}

h2 {
    color: white;
    font-size: 4vh;
    text-align: center;
    display: flex;
    justify-self: center;
    align-self: center;

}

h3 {
    font-size: 3vh;

}

.comite {
    background-color: rgba(0, 154, 68, 0.8);
    text-align: center;
    margin-bottom: 10px;
    color: white;
    font-weight: 400;
    padding: 10px;
    width: 90vw;
    display: flex;
    align-self: center;
    justify-self: center;
    flex-direction: column;
}

.categorie {
    font-weight: bold;
    margin-top: 3vh;
}

.responsables {
    background-color: rgba(72, 22, 83, 0.8);
    text-align: center;
    color: white;
    padding: 10px;
    width: 90vw;
    display: flex;
    align-self: center;
    justify-self: center;
    flex-direction: column;
    margin-bottom: 10px;
    font-weight: 400;
}

.formulaire {
    padding: 5px;
    width: 90vw;
    display: flex;
    align-self: center;
    justify-self: center;
    flex-direction: column;
}

form {
    width: 90vw;
    display: flex;
    align-self: center;
    justify-self: center;
    flex-direction: column;
    box-sizing: border-box;
}


label {
    color: white;

}

input {
    height: 4vh;
    width: 90vw;

}

input::placeholder,
textarea::placeholder {
    font-family: 'poppins', sans-serif;
    font-weight: 600;
}

input,
textarea {
    background-color: #f1de31;
    border: none;
    border-radius: 10px;
    width: 90vw;
    padding: 3%;
}

.message textarea {
    height: 15vh;
}

#captchaCheck {
    height: 2vh;
    border: none;
    color: #481653;
}

#captcha {
    margin-top: 2vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    align-self: center;
    text-align: center;
}


button {
    font-size: 20px;
    font-weight: 700;
    background-color: #f1de31;
    color: #481653;
    border: none;
    border-radius: 20px;
    align-self: center;
    width: 25vw;
    height: 4vh;
    margin-bottom: 5vh;
}

button a {
    font-family: 'poppins', sans-serif;
    display: flex;
    justify-self: center;
    align-self: center;
    width: 30vw;
    text-align: center;
}

iframe {
    height: 70vh;
    width: 90vw;
    display: flex;
    justify-self: center;
}

.sponsors {
    background-color: rgba(255, 255, 255, 0.7);
    display: flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
    width: 80vw;
    box-sizing: border-box;
    justify-self: center;
    border-radius: 10px;
    height: 7vh;
}

.sponsors img {
    height: 5vh;
    margin-left: 2%;
}

@media only screen and (min-width: 640px) {


    header {
        background-color: transparent;
        height: 9.5%;
        margin-top: 10px;
    }

    .header-qui {
        height: 10%;
        background-color: #f1de31;
        width: 100vw;
        margin-top: 0;
        padding: 0;
    }

    header img {
        height: 15vw;
        max-height: 100px;
    }

    header a {
        padding-left: 2px;
    }

    .header-qui a {
        width: 100%;
        justify-content: flex-start;
        text-align: start;
        display: flex;
    }

    .header-qui img {
        height: 5vw;
        padding-left: 10px;
    }

    #menu-burger {
        display: none;
    }

    h1 {
        font-size: clamp(5vh, 3vw, 10vh);
        letter-spacing: 1vw;
        color: white;
        font-weight: 400;
        height: 8vh;

    }

    #titre {
        letter-spacing: 1vw;
        font-size: clamp(6vw, 1.75vw, 15vw);
        margin-bottom: 6vh;
        height: 10vh;
        padding-top: 12vh;
        padding-bottom: 4vh;
        text-align: center;
    }

    .nav-liens.active {
        visibility: hidden;
    }


    .nav-liens-qui {
        visibility: visible;
        opacity: 100%;
        background-color: transparent;
        justify-content: space-between;
        align-items: center;
        flex-direction: row;
        display: flex;
        height: 15px;
        width: 95vw;
        margin-top: 20px;
        padding-right: 20px;
        line-height: 1.2;
    }

    .nav-liens-qui a {
        font-size: clamp(13px, 1.7vw, 24px);
        justify-content: space-between;
        display: flex;
        flex-direction: row;
        width: 100%;
        padding-bottom: 1.5vh;
    }

    .nav-liens-qui a.active {
        font-size: clamp(12px, 1.95vw, 28px);
        border-bottom: 3px solid #009a44;
        font-weight: bold;
        color: #481653;
    }

    .nav-liens-qui a:hover {
        font-size: clamp(12px, 1.75vw, 28px);
        color: #481653;
        cursor: pointer;

    }

    .nav-liens-qui img {
        display: none;
    }

    .nav-liens-qui li {
        display: flex;
        flex-direction: row;
        padding: 2px;


    }


    .grille-nav {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: repeat(2, 1fr);
        justify-items: center;
        align-items: center;
        flex-grow: 1;
        /*centré par rapport à la page*/

    }


    .grille-nav a {
        width: 30vw;
        height: 20vh;
        font-size: clamp(20px, 2.5vw, 30px);
    }

    .palmares,
    .qui-sommes-nous,
    .contact,
    .photos,
    .manifestations,
    .membres {
        /*Pour que les pictogrammes soient plus grands au départ que la version mobile*/
        font-weight: 600;
        background-size: 15%;

    }

    /*Regroupement par couleurs*/
    .qui-sommes-nous,
    .contact {
        background-color: #009a44;
    }

    .photos,
    .manifestations {
        background-color: #f1de31;
    }

    .photos {
        grid-column: 2 / 3;
        grid-row: 1 / 2;
    }

    .palmares {
        grid-column: 3 / 3;
        grid-row: 1 / 2;
        background-color: #481653;
    }

    .manifestations {
        grid-column: 1 / 2;
        grid-row: 2 / 2;

    }

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

    .contact {
        grid-column: 3 / 3;
        grid-row: 2 / 2;

    }

    .qui-sommes-nous:hover {
        background-image: url(./img/pictogrammes_pleins/foule.svg);
    }

    .photos:hover {
        background-image: url(./img/pictogrammes_pleins/galerie.svg);
    }

    .palmares:hover {
        background-image: url(./img/pictogrammes_pleins/palmares.svg);
    }

    .manifestations:hover {
        background-image: url(./img/pictogrammes_pleins/dates.svg);
    }

    .membres:hover {
        background-image: url(./img/pictogrammes_pleins/membres.svg);
    }

    .contact:hover {
        background-image: url(./img/pictogrammes_pleins/contact.svg);
    }


    footer {
        background-color: transparent;
    }

    .footer-qui {
        background-color: #f1de31;
        height: 11vh;

    }

    footer :hover {
        color: #f1de31;
    }

    .footer-qui :hover {
        color: #009a44;

    }

    footer a {
        color: rgb(255, 255, 255);
        font-size: clamp(14px, 2.5vw, 25px);
        line-height: 1;
    }

    .footer-qui a {
        color: rgb(0, 0, 0);
    }

    footer a :hover {
        color: #f1de31;
    }

    footer i {
        font-size: clamp(20px, 3vw, 32px);

    }

    .reseaux-sociaux-liens {
        display: flex;
        justify-content: end;
        align-items: center;
    }


    /*Galerie photo*/
    .galerie-photos {
        overflow-x: auto;
        flex-direction: row;
    }

    .galerie-photos img {
        height: 57vh;
        width: auto;
        margin-right: 2vh;
        flex-shrink: 0;
    }

    .galerie i {
        display: none;
    }


    /*Page Qui sommes-nous? */
    .photo-jeunesse {
        height: 60%;
        width: auto;
        margin-bottom: 20px;
    }

    .cta1 a:hover,
    .cta2 a:hover {
        color: #f1de31;
        background-color: #481653;
    }

    /*Contact*/
    .infos {
        display: flex;
        flex-direction: row;
        /* côte à côte */
        height: 66vh;
        /* hauteur imposée à l'ensemble */
        align-items: stretch;
        /* étire les enfants à la même hauteur */
        gap: 20px;
        /* espace entre les deux sections (facultatif) */
        width: 90vw;
        justify-self: center;
        align-self: center;
        margin-bottom: 7vh;
    }

    .comite,
    .responsables {
        flex: 1;
        height: 100%;
        padding: 20px;
        border-radius: 10px;
        box-sizing: border-box;
        width: 90vw;
    }

    /*Manifestations 2025 */
    .galerie-photos-manif {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        gap: 2vw;
        width: 90vw;
        margin-bottom: 3vh;

    }

    .flyer {
        flex: 0 0 auto;
        width: auto;
        height: 50vh;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: flex-start;
        scroll-snap-align: start;
        text-align: center;
    }

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


    .nom-prenom {
        width: 90vw;
        display: flex;
        flex-direction: row;
        gap: 2vw;
    }

    input#nom,
    input#prenom {
        width: 44vw;
    }

    .message textarea {
        height: 15vh;
    }

    /* Membres */
    .cartes-membres {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
        gap: 20px;
        width: 90vw;
        max-width: 1400px;
        margin: 0 auto;
    }

    .cartes {
        height: 49vh;
        width: 100%;
        aspect-ratio: 3 / 4;
    }


    .carte-avant img {
        height: 44vh;
    }

    .cartes:hover .carte-avant {
        transform: rotateY(180deg);
    }

    .cartes:hover .carte-arriere {
        transform: rotateY(360deg);
    }

}