* {
    outline: 0;
}

body {
    font-family: 'Montserrat', sans-serif;
    background-color: #E7DBB3;
    display: flex;
    justify-content: center;
    touch-action: manipulation;
    font-size: 14px;
}

/********************************
* Background style
*********************************/
.bg-creme {
    background-color: #E7DBB3;
}

.bg-laurier {
    background-color: #588C76;
}

.bg-algue {
    background-color: #2D5D5D;
}

.bg-marron {
    background-color: #452A1F;
}

.bg-ocre {
    background-color: #A23B2A;
}

.bg-moutarde {
    background-color: #C87A0E;
}

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

/********************************
* Margin style
*********************************/
.mr-10 {
    margin-right: 10px;
}

.ml-10 {
    margin-left: 10px;
}

.mt-10 {
    margin-top: 10px;
}

.mb-10 {
    margin-bottom: 10px;
}

.mr-20 {
    margin-right: 20px;
}

.ml-20 {
    margin-left: 20px;
}

.mt-20 {
    margin-top: 20px;
}

.mb-20 {
    margin-bottom: 20px;
}

.mb-15 {
    margin-bottom: 15px;
}

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

/********************************
* Splash screen style
*********************************/
#splash-screen {
    width: 100%;
    height: 100%;
    display: none;
}

.intro-section {
    width: 100%;
    height: 100%;
    display: flex;
}

.ribbon {
    height: 100vh;
    width: 20%;
    bottom: -98vh;
    position: relative;
    z-index: 5;
}

.game-start-div {
    height: 100%;
    width: 100%;
    display: flex;
    z-index: 10;
    position: absolute;
    top: 0px;
    justify-content: center;
    align-items: center;
}

#game-start {
    display: none;
}

.background-logo-div {
    position: absolute;
    background-color: #E7DBB3;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
}

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

#contenu {
    display: none;
    flex-direction: column;
    justify-content: space-between;
    background-color: #E7DBB3;
    max-width: 1000px;
    width: 100%;
    padding-bottom: 20px;
    padding: 0;
    margin: 0;
    min-height: 100vh;
}

header {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
    padding: 15px 15px 0px 15px;
}

.logo-header {
    display: flex;
    flex-direction: column;
}

.logo {
    width: 160px;
    height: auto;
}

.main-title {
    font-style: normal;
    line-height: 21px;
    text-align: center;
    color: #000000;
    padding: 0px 15px 0px 15px;
}

.main-title h1 {
    font-weight: 600;
    font-size: 16px;
    margin: 0;
}


.button-header {
    width: 34px;
    height: 34px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    border-radius: 28px;
    text-transform: uppercase;
    color: #fff;
    background-color: #588C76;
    border: none;
    cursor: pointer;
    box-shadow: 0 7px #2D5D5D;
}

.fs-32 {
    font-size: 32px;
}

.fs-26 {
    font-size: 26px;
}

@supports (-webkit-tap-highlight-color: transparent) {
    * {
        -webkit-tap-highlight-color: transparent;
    }
}

button:active {
    transform: translateY(7px);
    transition-duration: 20ms;
    box-shadow: 0 0px;
    outline: none;
}

.button-large img {
    margin-left: 10px;

}

/********************************
* Carousel styles
*********************************/

.carousel-produits {
    display: flex;
    overflow-x: scroll;
    padding: 0;
    margin: 0;
    -ms-overflow-style: none;
    /* for Internet Explorer, Edge
    scrollbar-width: none;
    */
}

#modal-resultats .carousel-produits {
    flex-direction: column;
    overflow-x: hidden;
}

.carousel-produits::-webkit-scrollbar {
    display: none;
    /* Remove the scrolling bar for Chrome, Safari, and Opera */
}

.produit {
    flex: none;
    width: 230px;
    height: auto;
    scroll-snap-align: start;
    list-style: none;
}

#first {
    width: calc(50% - 230px/2 + 230px);
    display: flex;
    justify-content: flex-end;
}

#second {
    margin-left: 50px;
}

#last {
    width: calc(50% - 230px/2 + 230px);
    margin-left: 50px;
    display: flex;
    justify-content: flex-start;
}

#modal-resultats .produit {
    width: 100%;
    margin-left: 0px;
    margin-bottom: 20px;
}

.card {
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.img-produit {
    overflow: hidden;
    width: 196px;
    height: 183px;
    margin: 17px 17px 0px 17px;
    background-color: white;
    border-radius: 8px;
}

.img-produit img {
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.container-title-produit {
    text-align: center;
    color: #fff;
    font-style: normal;
    font-weight: 400;
    line-height: 14px;
    height: 48px;
    padding: 0 5px 5px 5px;
    max-width: 220px;
}

#modal-resultats .container-title-produit {
    height: 80px;
}

.title-produit {
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.separation-produit {
    width: 196px;
    border-top: 2px solid #fff;
    border-radius: 57px;
}

.prix_produit {
    font-weight: 700;
    font-size: 18px;
    line-height: 21px;
    display: flex;
    flex-direction: row;
}

.prix_produit button {
    margin-left: 10px;
}

/********************************
* Indication styles
*********************************/

.container-aide {
    padding-left: 30px;
    padding-right: 30px;
}

.aide {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.bulle {
    width: 211px;
    height: 45px;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
}

.bulle.debut {
    background-image: url("../img/bulle_laurier.svg");
}

.bulle.deja-propose {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.div-deja-propose {
    padding: 10px 20px;
}

.triangle-bulle {
    height: 19px;
    width: 10px;
}

.bulle.plus {
    background-image: url("../img/bulle_ocre.svg");
}

.bulle.plus #indice {
    transform: translateX(10px);
}

.bulle.moins {
    background-image: url("../img/bulle_moutarde.svg");
}

.bulle.moins #indice {
    transform: translateX(-10px);
}

.indication {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 19px;
}

.indication span {
    font-weight: 900;
    font-size: 18px;
    line-height: 20px;
    color: #fff;
    text-transform: uppercase;
}

/********************************
* Prix styles
*********************************/

.prix-utilisateur {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.all-inputs {
    width: 200px;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.input-prix {
    height: 115px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
}

.btn-fleche {
    width: 37px;
    height: 25px;
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    border: 0;
    background-color: transparent;
}

.btn-fleche.augmenter {
    background-image: url("../img/augmenter.svg");
}

.btn-fleche.reduire {
    background-image: url("../img/reduire.svg");
}

.input-prix input {
    width: 43px;
    height: 48px;
    background: #FFFFFF;
    border-radius: 20px;
    font-weight: 600;
    font-size: 32px;
    line-height: 39px;
    color: #2D5D5D;
    display: flex;
    align-items: flex-end;
    text-align: center;
    padding: 0;
    border: 0;
}

input:focus {
    outline: none;
}

#btn-deviner {
    margin-top: 10px;
    margin-bottom: 15px;
}

/********************************
* Button styles
*********************************/

.container-button {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.button-large {
    width: auto;
    height: auto;
    padding: 10px 30px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    font-weight: 900;
    border-radius: 30px;
    text-transform: uppercase;
    color: #fff;
    border: none;
    cursor: pointer;
    margin-bottom: 7px;

}

.btn-ocre {
    background-color: #A23B2A;
    box-shadow: 0 7px #452A1F;
}

.btn-creme {
    background-color: #E7DBB3;
    color: #452A1F;
    box-shadow: 0 7px #452A1F;
}

.btn-laurier {
    background-color: #588C76;
    box-shadow: 0 7px #2D5D5D;
}

.button-link {
    width: 20px;
    height: 20px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    border-radius: 28px;
    text-transform: uppercase;
    color: #A23B2A;
    background-color: #E7DBB3;
    border: none;
    cursor: pointer;
    box-shadow: 0 4px #A23B2A;
    font-size: 10px;
}

.button-link:active {
    transform: translateY(3px);
}

/********************************
* Modal styles
*********************************/
.modal {
    display: none;
    /* Hidden by default */
    z-index: 99999;
    /* Sit on top */
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background-color: rgba(0, 0, 0, 0.6);
    /* Black w/ opacity */
}

.modal-header #compteur {
    position: fixed;
    top: 15px;
    left: 15px;
}

.modal-header #aide {
    position: fixed;
    top: 15px;
    right: 15px;
}

.modal#modal-mentions-legales {
    width: 100%;
    height: 100%;
    background-color: #E7DBB3;
    overflow-y: scroll;
}

.modal#modal-bug-submission {
    width: 100%;
    height: 100%;
    background-color: #E7DBB3;
    overflow-y: scroll;
}

.modal#modal-my-stats {
    width: 100%;
    height: 100%;
    background-color: #E7DBB3;
    overflow-y: scroll;
}

.modal.fin {
    width: 100%;
    height: 100%;
}

.modal.fin#modal-victoire {
    background-color: #588C76;
}

.modal.fin#modal-defaite {
    background-color: #A23B2A;
}

.modal.fin#modal-resultats {
    background-color: #E7DBB3;
    overflow-y: scroll;
}

#modal-maintenance .modal-content {
    background-color: #E7DBB3;
    height: 100%;
    border: 0;
    margin: 0;
}

#modal-maintenance .modal-body {
    height: 100%;
    justify-content: center;
    text-align: center;
}

#modal-maintenance  {
    height: 100%;
    overflow: hidden;
}

/* Modal Content */
.modal-content {
    position: relative;
    background-color: #fff;
    width: 100%;
    margin: 0px 15px 0px 15px;
    border: 8px solid #E7DBB3;
    border-radius: 30px;
}

#modal-mentions-legales .modal-content {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0px;
    background-color: #E7DBB3;
}

#modal-bug-submission .modal-content {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0px;
    background-color: #E7DBB3;
}

#modal-my-stats .modal-content {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0px;
    background-color: #E7DBB3;
}

.modal.fin .modal-content {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 0px;
    background-color: transparent;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.modal.fin#modal-resultats .modal-content {
    color: #000000;
    justify-content: flex-start;
}

/* The Close Button */
.close {
    background-color: #A23B2A;
    border-radius: 12px;
    color: #E7DBB3;
    float: right;
    width: 43px;
    height: 43px;
    display: flex;
    font-size: 50px;
    font-weight: bold;
    position: fixed;
    top: 15px;
    right: 15px;
    text-decoration: none;
    flex-direction: row;
    align-content: center;
    justify-content: center;
    align-items: center;
    line-height: 1em;
}

.modal-body {
    display: flex;
    flex-direction: column;
    align-content: center;
    justify-content: space-around;
    align-items: center;
    padding: 0px 25px 20px 25px;
}

#modal-mentions-legales .modal-body {
    padding: 0px;
    margin-top: 30px;
}

#modal-bug-submission .modal-body {
    padding: 0px;
    margin-top: 10px;
}

#modal-my-stats .modal-body {
    padding: 0px;
    margin-top: 10px;
}

#modal-resultats .modal-body {
    width: 100%;
}

#modal-resultats header {
    width: 100%;
}

.modal.fin .modal-body {
    padding: 0px;
}

.modal-title {
    font-size: 32px;
    font-weight: 700;
}

.modal.fin .modal-title {
    font-weight: 900;
    font-size: 36px;
    text-transform: uppercase;
    margin-top: 20px;
    margin-bottom: 20px;
}

.modal-h3 {
    font-size: 24px;
    font-weight: 500;
}

.no-margin {
    margin: 0;
}

.modal-subtitle {
    font-size: 16px;
    font-weight: 500;
    margin-top: 0px;
    margin-bottom: 10px;
}

.modal-notification {
    display: none;
}

.modal-prix {
    font-size: 32px;
    font-weight: 900;
    margin-top: 0px;
    margin-bottom: 20px;
}

.tentatives {
    margin-bottom: 25px;
}

.tentatives table {
    border-collapse: separate;
    border-spacing: 30px 0;
    font-weight: 700;
    font-size: 18px;
}

.tentative_prix {
    text-align: center;
}

.tentative_prix.moins {
    color: #A23B2A;
}

.tentative_prix.plus {
    color: #C87A0E;
}

.tentative_prix.gagne {
    color: #2D5D5D;
}

.ronds-tricolores {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
}

.rond {
    width: 85px;
    height: 85px;
    border-radius: 15px;
}

.text-modal {
    font-weight: 400;
    font-size: 15px;
    line-height: 20px;
    display: flex;
    align-items: center;
    text-align: center;
}

.text-modal p {
    margin-bottom: 0px;
    margin-top: 0px;
}

#modal-mentions-legales .text-modal {
    text-align: left;
    display: inline;
}

.text-modal a {
    text-decoration: underline;
    color: #588C76;
}

.personnages-fin img {
    width: 120px;
    height: 140px;
}

.personnages-fin :first-child {
    transform: rotate(-25deg);
    margin-right: 25px;
    margin-bottom: 20px;
}

.personnages-fin :last-child {
    transform: rotate(25deg);
}

.modal.fin .button-large {
    width: 240px;
}

#bug-submission {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

#bug-submission .container-button {
    width: 100%;
}

.bug-submission-block {
    display: flex;
    flex-direction: column;
    width: 100%;
}

.bug-submission-block label {
    font-weight: 600;
}

.bug-submission-block input,
textarea {
    border-radius: 20px;
    border: none;
    padding: 4px 10px;
    margin: 7px 0px 17px 0px;
    height: 25px;
    resize: none;
}

#explaination {
    height: 150px;
}

.my-stats-row {
    display: flex;
    justify-content: space-between;
    width: 100%;
    margin-bottom: 15px;
}

.my-stats-item {
    color: white;
    border-radius: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: calc(50% - 23px);
    height: 155px;
    padding: 5px;
}

.my-stats-title {
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2em;
    text-align: center;
}

.my-stats-nb {
    font-size: 35px;
    font-weight: 900;
}

/* Règle le problème de trop d'espacement pour les téléphones plus grands */
@media screen and (min-height: 700px) and (max-width: 480px) {
    #btn-deviner {
        margin-top: 0px;
        margin-bottom: 70px;
    }
}


/********************************
* Desktop
*********************************/
@media screen and (min-width: 820px) {
    body {
        background-color: #2D5D5D;
    }

    #contenu {
        height: 100vh;
        padding-bottom: 0px;
        min-height: 700px;
    }

    .logo {
        width: 200px;
    }

    .main-title h1 {
        font-size: 20px;
    }

    .carousel-produits {
        overflow-x: hidden;
        justify-content: center;
        flex-direction: row;
    }

    #modal-resultats .carousel-produits {
        display: flex;
        flex-direction: row;
        overflow-x: auto;
        gap: 20px;
    }

    #modal-resultats .produit {
        width: auto;
    }

    .close {
        cursor: pointer;
    }

    .aide {
        justify-content: center;
        gap: 20px;
    }

    #first {
        width: auto;
    }

    #last {
        width: auto;
    }

    #btn-deviner {
        margin-bottom: 20px;
    }

    .presentateurs {
        height: 70px;
    }

    .modal-content {
        width: auto;
    }

    #modal-bug-submission .modal-content,
    #modal-mentions-legales .modal-content,
    #modal-my-stats .modal-content {
        width: 800px;
    }

    /* Chrome, Safari, Edge, Opera */
    input::-webkit-outer-spin-button,
    input::-webkit-inner-spin-button {
        -webkit-appearance: none;
        margin: 0;
    }

    /* Firefox 
    input[type=number] {
        -moz-appearance: textfield;
    }
    */
    /* Règle le problème de trop d'espacement pour les écrans plus grands */
    @media (min-height: 800px) {
        #btn-deviner {
            margin-top: 0px;
            margin-bottom: 70px;
        }
    }

}

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

/********************************
* Tablet
*********************************/
@media screen and (min-width: 750px) and (max-width: 820px) {
    body {
        background-color: #2D5D5D;
    }

    #contenu {
        height: 100vh;
        padding-bottom: 0px;
    }

    .carousel-produits {
        overflow-x: hidden;
        justify-content: center;
    }

    #first {
        width: auto;
    }

    #second {
        margin-left: 20px;
    }

    #last {
        margin-left: 20px;
        width: auto;
    }

    .logo {
        width: 250px;
    }

    .main-title h1 {
        font-size: 20px;
    }

    #btn-deviner {
        margin-bottom: 70px;
    }

    .presentateurs {
        height: 70px;
    }

    .aide {
        justify-content: center;
        gap: 20px;
    }

    .modal-content {
        width: auto;
    }

}

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

/* Resolution du problème avec l'encoche de safari sur mobile*/
@supports (-webkit-touch-callout: none) {
    #contenu {
        /* The hack for Safari */
        min-height: -webkit-fill-available;
    }
}