/***** Propriété box-sizing: border-box (les width et height des éléments inclus les padding et border, mais par les margin) *****/

* {
    box-sizing: border-box;
}

/***** Propriétés générales de la page *****/

body {
    font-family: 'Raleway', sans-serif;
    color: black;
}

a {
    text-decoration: none;
    color: black;
}

h1, h2, h3, strong {
    font-weight: bold;
}

h3 {
    font-size: 16px;
}

input {
    border: none;
}

ul {
    list-style-type: none;
    padding-left: 0;
}

/***** Header *****/

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

#logo_header {
    height: 60px;
    margin-top: 60px;
    margin-left: 40px;
}

#nav {
    display: flex;
    justify-content: end;
    width: 25%;
    margin-right: 20px;
    font-size: 18px;
}

#nav a {
    border-top: transparent solid 3px ;
    text-align: center;
    width: 50%;
    padding-top: 60px;
    transition: 0.3s;
}

#nav a:hover {
    border-top: #0065FC solid 3px ;
    color: #0065FC;
}

/***** Main *****/

main {
    width: 100%;
    padding-left: 40px;
    padding-right: 40px;
}

/***** Section - Recherche *****/

form {
    display: flex;
}

.icone_map {
    padding: 17px 17px 6px 21px;
    height: 50px;
    border-radius: 20px 0 0 20px;
    background-color: #F2F2F2;
}

.input_recherche {
    height: 50px;
    width: 70%;
    max-width: 220px;
    padding-left: 15px;
    font-weight: bold;
    background-color: transparent;
    border: #F2F2F2 solid 1px;
    outline: none;
}

.input_recherche::placeholder {
    color: rgb(0, 0, 0);
}

.bouton_submit {
    color: white;
    background: #0065FC;
    font-weight: bold;
    border-style: none;
    border-radius: 0 20px 20px 0;
    height: 50px;
    padding: 0 20px 0 20px;
    cursor: pointer;
    transition: 0.3s;
}

.bouton_submit:hover {
    background-color: #004bbb;
}

.bouton_submit i {
    display: none;
}

/***** Section - Filtres *****/

#filtres {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}

#filtres p {
    font-size: 19px;
    margin-right: 20px;
}

.btn_filtre {
    margin: 20px;
    border-radius: 50px;
    border: #d2d2d2 solid 2px;
    font-weight: bold;
    padding: 15px;
    cursor: pointer;
    transition: 0.3s;
}

.btn_filtre .icone_child {
    padding: 15px 18px;
}

.btn_filtre .icone_heart {
    padding: 15px 17px;
}

.btn_filtre_icone {
    position: relative;
    left: -18px;
    color: #0065FC;
    border-radius: 50px;
    background: #DEEBFF;
    border: #DEEBFF solid 2px;
    padding: 15px;
    transition: 0.3s;
}

.btn_filtre_titre {
    position: relative;
    left: -5px;
}

.btn_filtre:hover {
    transform: scale(1.1);
    background-color: #DEEBFF;
    color: #0065FC;
    border: #0065FC solid 2px;
}

.btn_filtre:hover > .btn_filtre_icone {
    background-color: #0065FC;
    color: #DEEBFF;
    border: #d2d2d2 solid 2px;
}

#informations {
    display: flex;
    align-items: center;
}

#informations i {
    color: #0065FC;
    border: #d2d2d2 1px solid;
    border-radius: 50px;
    margin-right: 18px;
    padding: 5px 10px 5px 10px;
}

/***** Section - Résultats *****/

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

        /* Article - Hébergement */

#hebergements {
    display: flex;
    flex-wrap: wrap;
    row-gap: 40px;
    justify-content: space-around;
    background-color: #F2F2F2;
    border-radius: 20px;
    margin-right: 15px;
    padding: 20px;
    width: 68%;
}

#hebergements h2 {
    width: 95%;
}

.carte_hebergements {
    display: flex;
    flex-direction: column;
    border: white 6px solid;
    border-radius: 25px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.25);
    width: 29%;
    min-width: 150px;
    height: 250px;
    transition: 0.3s;
}

.carte_hebergements:hover {
    border: #DEEBFF 6px solid;
    box-shadow: 0 0 10px rgba(0, 0, 0, 1);
    color: #0065FC;
    transform: scale(1.1);
}

.carte_hebergements img {
    border-radius: 20px 20px 0 0;
    overflow: hidden;
    object-fit: cover;
    height:60%;
}

.description_hebergements {
    position: relative;
    background-color: white;
    border-radius: 0 0 20px 20px;
    height: 40%;
    padding: 10px;
}

.description_hebergements h3 {
    margin: 0 0 6px 0;
}

.description_hebergements p {
    margin: 0;
}

.etoiles {
    position: absolute;
    bottom: 5px;
    left: 10px;
}

.etoile_bleue {
    color: #0065FC;
}

.etoile_grise {
    color: #F2F2F2;
}

.afficher_plus {
    width: 95%;
    font-size: 19px;
}

.afficher_plus:hover {
    color: #0065FC;
}

        /* Aside - Populaires */

#populaires {
    display: flex;
    flex-wrap: wrap;
    row-gap: 20px;
    justify-content: space-around;
    background-color: #F2F2F2;
    border-radius: 20px;
    width: 29%;
    min-width: 250px;
    padding: 20px 40px;
}

.titre_populaires {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    width: 100%;
    margin-bottom: 14px;
}

.icone_chart {
    height: 27px;
    width: 25px;
}

.carte_populaires {
    display: flex;
    border-radius: 25px;
    border: white 6px solid;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.25);
    width: 100%;
    height: 165px;
    transition: 0.3s;
}

.carte_populaires:hover {
    border: #DEEBFF 6px solid;
    box-shadow: 0 0 10px rgba(0, 0, 0, 1);
    color: #0065FC;
    transform: scale(1.1);
}

.carte_populaires img {
    width: 40%;
    border-radius: 20px 0 0 20px;
    overflow: hidden;
    object-fit: cover;
}

.description_populaires {
    position: relative;
    background-color: white;
    border-radius: 0 20px 20px 0;
    width: 60%;
    padding: 15px;
}

.description_populaires h3 {
    margin: 0 0 6px 0;
}

.description_populaires p {
    margin: 0;
}

/***** Section - Activités *****/

#activites {
    margin: 50px 0;
}

#activites h2 {
    width: 100%;
}

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

.bloc_cartes_activites {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 22.5%;
    height: 500px;
}

.carte_activite {
    display: flex;
    flex-direction: column;
    border-radius: 25px;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.25);
    width: 100%;
    height: 100%;
    transition: 0.3s;
}

.carte_activite img {
    height: 100%;
    border-radius: 20px 20px 0 0;
    overflow: hidden;
    object-fit: cover;
}

.carte_activite_nom {
    background-color: white;
    border-radius: 0 0 20px 20px;
    padding: 20px;
    font-weight: bold;
}

#activite_1 {
    height: 100%;
}

#activite_2 {
    height: 61%;
}

#activite_3 {
    height: 32%;
}

#activite_4 {
    height: 100%;
}

#activite_5 {
    height:46%
}

#activite_6 {
    height:46%
}

#activite_1 .carte_activite:hover, #activite_4 .carte_activite:hover {
    box-shadow: 0 0 10px rgba(0, 0, 0, 1);
    color: #0065FC;
    transform: scale(1.05);
}

#activite_2 .carte_activite:hover {
    box-shadow: 0 0 10px rgba(0, 0, 0, 1);
    color: #0065FC;
    transform: scale(1.08);
}

#activite_3 .carte_activite:hover {
    box-shadow: 0 0 10px rgba(0, 0, 0, 1);
    color: #0065FC;
    transform: scale(1.12);
}

#activite_5 .carte_activite:hover, #activite_6 .carte_activite:hover {
    box-shadow: 0 0 10px rgba(0, 0, 0, 1);
    color: #0065FC;
    transform: scale(1.1);
}

/***** Footer *****/

footer {
    display: flex;
    justify-content: space-around;
    width: 100%;
    background-color: #F2F2F2;
}

footer div {
    width: 27%;
    margin: 30px 0;
}

footer p {
    font-weight: bold;
    font-size: 19px;
}

footer li {
    line-height: 35px;
}

footer a:hover {
    color: #0065FC;
}

/***************************************************** Responsive - Très Grands Desktop *****************************************************/
@media screen and (min-width: 1921px) {

        header, main, footer {
            max-width: 1920px;
            margin-left: auto;
            margin-right: auto;
        }
}

/***************************************************** Responsive - Grands Desktop *****************************************************/

@media screen and (min-width: 1700px) and (max-width: 1921px) {

    #logo_header {
        margin-left: 60px;
    }

    main {
        padding-left: 60px;
        padding-right: 60px;
    }
}

/***************************************************** Responsive - Petits Desktop *****************************************************/

@media screen and (min-width: 992px) and (max-width: 1300px) {

    #logo_header {
        margin-left: 20px;
    }

    main {
        padding-left: 20px;
        padding-right: 20px;
    }
    
    #hebergements {
        padding: 10px;
        margin-right: 10px;
    }

    #populaires {
        padding: 10px 20px;
    }

    .carte_activite_nom {
        padding: 12px;
    }
}

/***************************************************** Responsive - Tablettes *****************************************************/

@media screen and (min-width: 769px) and (max-width: 991px) {

    /****************** Header - Tablettes *****************/

    #nav {
        width: 40%;
    }

    /***************** Main - Tablettes ********************/

    main {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        padding-top: 25px;
        padding-left: 0;
        padding-right: 0;
    }

    main h1 {
        text-align: center;
        padding-left: 30px;
        padding-right: 30px;
    }

    main p {
        margin-bottom: 40px;
        text-align: center;
    }

    #formulaire_recherche {
        display: flex;
        justify-content: center;
    }

    /***** Section - Filtres - Tablettes *****/

    #filtres {
        justify-content: center;
        align-items: center;
        margin-top: 40px;
    }

    #filtres p {
        padding-left: 20px;
    }

    #informations {
        margin-left: 40px;
    }

    /***** Section - Résultats - Tablettes *****/

    #resultats {
        flex-direction: column-reverse;
        align-items: center;
        width: 100%;
    }

    /** Article - Hebergements - Tablettes **/

    #hebergements {
        width: 90%;
        justify-content: center;
        margin-top: 25px;
        margin-right: 0;
    }

    #hebergements h2 {
        width:80%;
    }

    .carte_hebergements {
        width: 80%;
    }

    .afficher_plus {
        width: 80%;
    }

    /** Aside - Populaires - Tablette **/

    #populaires {
        width: 90%;
        padding: 20px 20px 40px 20px;
    }

    .titre_populaires {
        justify-content: space-between;
        width: 80%;
    }

    .carte_populaires {
        width: 80%;
        height: 200px;
    }

    /***** Section - Activités - Tablettes *****/

    #activites {
        display: flex;
        flex-direction: column;
        width: 95%;
    }

    #activites h2 {
        width: 100%;
        padding-left: 20px;
    }

    #bloc_activites {
        justify-content: space-around;
        flex-wrap: wrap;
        row-gap: 35px;
    }

    .bloc_cartes_activites {
        width: 45%;
        height: 400px;
    }

    #activite_2 {
        height: 62.5%;
    }

    #activite_3 {
        height: 32.5%;
    }

    #activite_5 {
        height:47.5%
    }

    #activite_6 {
        height:47.5%
    }

    .carte_activite_nom {
        padding: 15px;
    }

    /****************** Footer - Tablettes *****************/

    footer {
        justify-content: space-between;
        padding-left: 6%;
    }
} 

/***************************************************** Responsive - Mobiles *****************************************************/

@media screen and (max-width: 768px) {

    /***** Header - Mobiles *****/

    header {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        margin-left: 0;
        width: 100%;
    }

    #logo_header {
        height: 60px;
        margin-top: 30px;
        margin-left: 0;
    }

    #nav {
        justify-content: center;
        width: 100%;
        margin: 0;
    }

    #nav a {
        text-decoration: none;
        padding-top: 40px;
        padding-bottom: 25px;
        border-bottom: 5px solid #F2F2F2;
    }

    #nav a:hover {
        border-top: transparent solid 3px;
        border-bottom: #0065FC solid 5px ;
    }

    /***** Main - Mobiles *****/

    main {
        width: 100%;
        padding: 0;
    }

    main h1, main p {
        margin: 25px 5px 20px 20px;
        width: 90%;
    }

    /***** Section - Recherche - Mobiles *****/

    #formulaire_recherche {
        padding: 30px 0 20px 20px;
        width: 100%;
    }

    .input_recherche {
        width: 100%;
        max-width: none;
    }

    .bouton_submit {
        padding: 18px;
        height: 50px;
        width: 50px;
        border-radius: 20px;
        position: relative;
        left: -20px;
    }

    .bouton_submit span {
        display: none;
    }

    .bouton_submit i {
        display: block;
    }

    /***** Section - Filtres - Mobiles *****/

    #filtres {
        margin-left: 20px;
    }

    #filtres p {
        width: 100%;
    }

    .btn_filtre {
        font-size: 20px;
        margin-left: 0;   
    }
    
    #informations {
        margin-left: 20px;
        margin-top: 20px;
    }

    /***** Section - Résultats - Mobiles *****/

    #resultats {
        flex-direction: column-reverse;
        align-items: center;
        margin: 30px 0 0 0;
        width: 100%;
    }

    /** Article - Hebergements - Mobile **/

    #hebergements {
        margin-right: 0;
        width: 100%;
        justify-content: center;
        background-color: transparent;
        padding: 5px;
        row-gap: 20px;
    }

    #hebergements h2 {
        width:90%;
        margin-bottom: 0;
    }

    .carte_hebergements {
        width: 90%;
        height: 200px;
    }

    .description_hebergements {
        padding: 10px;
    }

    .description_hebergements h3 {
        margin: 0 0 3px 4px;
    }

    .description_hebergements p {
        margin: 0 0 20px 4px;
    }

    .description_hebergements .etoiles {
        bottom: 2.5px;
        left: 13px;
        margin-top: 5px;
    }

    .afficher_plus {
        width: 90%;
    }

    .afficher_plus p {
        margin-top: 10px;
    }

    /** Aside - Populaires - Mobile **/

    #populaires {
        width: 100%;
        padding: 5px 5px 20px 5px;
        border-radius: 0;
        min-width: 0;
    }

    .titre_populaires {
        justify-content: space-between;
        width: 90%;
        margin-bottom: 0;
    }

    .titre_populaires .etoiles {
        bottom: 2.5px;
        left: 8px;
        font-size: 14px;
        margin-top: 5px;
    }


    .carte_populaires {
        width: 90%;
        height: 170px;
    }

    
    /***** Section - Activités - Mobiles *****/

    #activites {
        width: 100%;
        margin-top: 0;
        margin-bottom: 10px;
    }
        
    #activites h2 {
        width: auto;
        margin-left: 6%;
    }
        
    #bloc_activites {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
        
    .bloc_cartes_activites {
        width: 88%;
        height: auto;
    }

    .carte_activite_nom {
        padding: 15px;
    }
        
    #activite_1, #activite_2, #activite_3, #activite_4, #activite_5, #activite_6 {
        height: 200px;
        margin-bottom: 20px;
    }

    #activite_1 .carte_activite:hover, #activite_2 .carte_activite:hover, #activite_3 .carte_activite:hover, #activite_4 .carte_activite:hover, #activite_5 .carte_activite:hover, #activite_6 .carte_activite:hover {
        transform: scale(1.1);
    }

    /***** Footer - Mobiles *****/

    footer {
        flex-direction: column;
        align-items: center;
        padding-top: 20px;
    }

    footer div {
        width: 80%;
        margin: 5px 0;
    }

    footer li {
        line-height: 40px;
    }
}