body{
    padding:0;
    margin: 0;

    --img-size: 32vw;
    --img-size-r: 55vw;
    --mini-img-size: 10rem;
    --img-hauteur: 70vh;
    --img-hauteur-r: 60vh;
    --mini-img-hauteur: 10rem;
    --heading1: 2.5em;
    --heading1-r: 2.2em;
    --heading2: 1.6em;
    --heading2-r: 1.5em;
    --heading3: 1.4em;
    --heading4: 1.32em;
    --large: 1.25em;
    --large-r: 1.30em;
    --medium: 1.15em;
    --medium-r: 1.3em;
    --heading5: 1.1em;
    --normal: 1em;
    --normal-r: 1.15em;
    --margin-sections: 10% 0;
    --ocean-blue: #2D5194;
    --white: #FFFFFF;
    --lemon-bg: rgba(186, 194, 95, 0.6);
    --pastel-blue-bg: rgba(142, 196, 203, 0.2);
}

main{
    padding: 0 10px;
    margin: 0 50px;
}

h2{
    font-weight: 400;
}

h3{
    font-size: var(--heading3);
    font-family: 'Libre baskerville';
}

h5{
    padding: 0 5vw;
}

strong{
    font-weight: 650;
}

.title{
    padding: var(--margin-sections);
    display: flex;
    flex-direction: row;
    justify-content: space-around;
    align-items: center;
    background-color: var(--pastel-blue-bg);
}

.title img{
    object-fit: cover;
    object-position: center;
    width: var(--img-size);
    height: var(--img-hauteur);
    border-top-left-radius: 8vw;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

.title div{
    margin-right: 2vw;
}

.title h1{
    font-size: var(--heading1);
    font-family: 'Libre baskerville';
    margin:0;
}

.title p{
    font-size: var(--large);
    font-family: 'source sans 3';
}

.title #btn-pack{
    display:flex;
    flex-direction: row;
    align-items: center;
    gap: 15px;
}

.title button{
    height: 40px;
    width: 50%;
    border-radius: 100px;
}

.title #btn-one{
    background-color: var(--ocean-blue);
    color: var(--white);
    border-style: none;
}

.title #btn-two{
    background-color: var(--white);
    border-color: var(--ocean-blue);
    border-style: solid;
}

.title button p{
    text-align: center;
    padding: 0;
    margin: 0;
    font-family: 'source sans 3';
    font-size: var(--normal);
}

.first{
    margin: 30px 0;
}

.first h2{
    font-size: var(--heading2);
    font-family: 'Libre baskerville';
    margin-top: 35px;
}

.first #middle-p{
    text-align: center;
}

.first div{
    display:flex;
    flex-direction: row;
    align-items: center;
}

.first img{
    margin: 2vw 5vw;
    object-fit: cover;
    object-position: center;
    width: var(--img-size);
    height: var(--img-hauteur);
    border-top-left-radius: 8vw;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

.first #reverse-border{
    border-top-left-radius: 0;
    border-top-right-radius: 8vw;
}

.first span{
    font-size: var(--medium);
    font-family: 'source sans 3';
}

.second{
    margin: 60px 0 0 0;
    padding: 60px;
    background-color: var(--pastel-blue-bg);
}

.second h2{
    font-size: var(--heading2);
    font-family: 'Libre baskerville';
    margin-top: 35px;
}

.second div{
    display:flex;
    flex-direction: row;
    align-items: center;
}

.second #div-p{
    display: flex;
    flex-direction: column;
}

.second img{
    margin: 2vw 5vw;
    object-fit: cover;
    object-position: center;
    width: var(--img-size);
    height: var(--img-hauteur);
    border-top-left-radius: 8vw;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

.second p{
    font-size: var(--medium);
    font-family: 'source sans 3';
}

.third{
    background-color: var(--lemon-bg);
    margin: 0;
    padding: 50px 150px;
    font-size: var(--large);
    font-family: 'source sans 3';
}

.third p{
    margin: 0;
    padding: 0;
}

.third h5{
    font-size: var(--heading5);
    font-family: 'Libre baskerville';
    font-weight: 550;
}

#middle-h1{
    text-align: center;
    font-size: var(--heading1);
    font-family: 'Libre baskerville';
}

#left-title{
    margin-top: 5vw;
    margin-bottom: 0;
}

#left-title p{
    margin: auto 8vw;
    align-self: left;
    font-size: var(--large);
    font-family: 'source sans 3';
}

.hypno{
    display: flex;
    flex-direction: row;
    align-items: center;
}

.hypno img{
    margin: 2vw 5vw;
    object-fit: cover;
    object-position: center;
    width: var(--img-size);
    height: var(--img-hauteur);
    border-top-right-radius: 8vw;
    border-bottom-left-radius: 8vw;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

.hypno div{
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.hypno p{
    font-size: var(--medium);
    font-family: 'source sans 3';
}

.hypno #med-bold{
    font-weight: 550;
}

.hypno #liste{
    display:flex;
    flex-direction: row;
}

.hypno #right-ul{
    margin-right: 50px;
}

.hypno li{
    font-size: var(--normal);
    font-family: 'source sans 3';
}

.grid{
    background-color: var(--pastel-blue-bg);
    padding: 10px;
}

.grid div{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 30px;
}

.grid span{
    max-width: 10rem;
    max-height: fit-content;
}

.grid h4{
    font-size: var(--heading4);
    font-family: 'Libre baskerville';
    font-weight: 550;
}

.grid p{
    font-size: var(--normal);
    font-family: 'source sans 3';
}

.commentaire{
    background-color: var(--ocean-blue);
    padding: 50px;
}

.commentaire img{
    margin: 2vw 5vw;
    object-fit: cover;
    object-position: center;
    width: var(--img-size);
    max-width: var(--mini-img-hauteur);
    height: var(--mini-img-hauteur);
    border-top-right-radius: 4vw;
    border-bottom-left-radius: 4vw;

}

.commentaire div{
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.commentaire #div-p{
    display:flex;
    flex-direction: column;
}

.commentaire p{
    max-width: 25rem;
    margin: 2vw 5vw;
    color: white;
    font-size: var(--medium);
    font-family: 'source sans 3';
    font-weight: 300;
}

#container{
    display:flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 80px;
}

#container:not(h3){
    font-family: "source sans 3";
}

#container h3{
    width: fit-content;
}

#container p{
    width: fit-content;
    margin-bottom: 0;
    font-size: var(--normal);
}

#container .message{
    padding: 0;
    margin: 0;
}

#container #flex-span{
    display: flex;
    flex-direction: row;
    gap: 20px;
}

input{
    padding-left: 10px;
}

#container .message span:not(#check-out, #tel){
    display: flex;
    flex-direction: column;
    width: fit-content;
    justify-content: flex-start;
}

#container input, #container textarea{
    height: 30px;
    border-style: solid;
    border-color: rgb(231, 231, 231);
    border-radius: 8px;
    width: 15vw;
}

#container textarea{
    max-width: 32vw;
    padding: 3px 10px;
}

#container .message input:not(#flex-span input, #check-out input), #container textarea:not(#flex-span input){
    width: 32vw;
}

#container .message div:not(#check-out, #flex-span){
    display: flex;
    flex-direction: column;
    width: fit-content;
}

#check-out{
    padding: 0;
    margin: 15px 0 0 0;
    display:flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 8px;
}

#check-out input{
width: 25px;
height: 25px;
margin: 0;
padding: 0;
}

#check-out p{
    margin: 0;
}

#container .message button{
    margin-top: 15px;
    padding: 10px;
    width: 32vw;
    background-color: var(--ocean-blue);
    border-radius: 8px;
    border-style: none;
    color: white;
}

#container .zone{
    display: flex;
    flex-direction: column;
    justify-content: center;
}

#container .lieu-a{
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#container .lieu-b{
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

#container .lieu-c{
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
}

#container .zone img[class^="map-"]{
    width: 40vw;
    min-width: 200px;
    max-width: 400px;
    height: auto;
    border-radius: 1vw;
}

#container .lieu-a button{
    display:flex;
    flex-direction: row;
    justify-content: space-evenly;
    align-items: center;
    margin: 22px 0;
    padding: 8px 0px;
    width: 18rem;
    background-color: #0596DE;
    border-style: none;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
}

#container .lieu-a button img{
    width: 7vh;
    height: auto;
}

#container .lieu-a button a{
    color: white;
    text-decoration: underline;
}


#tel img{
    object-fit:contain;
    width: 20px;
    height: auto;
}

#tel{
    display: flex;
    flex-direction: row;
    justify-content: center;
    text-align: center;
    gap:5px;
}

#tel p{
    margin: 0;
}

#container .zone .l-bold{
    font-size: var(--large);
    font-weight: 500;
}

#container .zone .s-reg{
    font-size: var(--medium);
    margin-bottom: 20px;
    margin-top: 5px;
    font-weight: 380;
}

@media (max-width: 945px){
    
    main{
        text-align: center;
    }

    .title{
        padding: var(--margin-sections);
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        background-color: var(--pastel-blue-bg);
        gap: 50px;
    }

    .title img{
        object-fit: cover;
        object-position: center;
        width: var(--img-size-r);
        height: var(--img-hauteur-r);
    }

    .title div{
        margin-right: 0;
    }

    .title h1{
        font-size: var(--heading1-r);
        font-family: 'Libre baskerville';
        margin:0;
    }

    .title #btn-pack{
        display:flex;
        flex-direction: column;
        align-items: center;
        gap: 15px;
    }

    .title #btn-one{
        background-color: var(--ocean-blue);
        color: var(--white);
        border-style: none;
        width: 60%;
    }

    .title button p{
        font-size: var(--normal-r);
    }

    .first{
        text-align: left;
    }

    .first div{
        display:flex;
        flex-direction: column-reverse;
        align-items: center;
    }

    .first h2{
        font-size: var(--heading2-r);
    }

    .first p{
        font-size: var(--normal-r);
    }

    .first img{
        width: var(--img-size-r);
        height: var(--img-hauteur-r);
    }

    .second{
        padding: 50px 40px;
        margin: 0;
        text-align: left;
    }

    .second h2{
        font-size: var(--heading2-r);
    }

    .second div{
        display:flex;
        flex-direction: column;
        align-items: center;
    }

    .second img{
        width: var(--img-size-r);
        height: var(--img-hauteur-r);
    }

    .second p{
        font-size: var(--medium-r);
    }

    .third{
        padding: 50px 40px;
        margin: 0;
        font-size: var(--large-r);
    }
    
}