/* ------------------------------ */
/* ------------ Menu ------------ */
/* ------------------------------ */

#menu {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding-top: 0;
    padding-bottom: 0;
    background-color: var(--brand-light);
    z-index: -1;
    overflow: auto;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: var(--transition-2);
    -o-transition: var(--transition-2);
    transition: var(--transition-2);
}

.menu-open #menu {
    z-index: 17;
    opacity: 1;
    visibility: visible;
    -webkit-transition: var(--transition-2);
    -o-transition: var(--transition-2);
    transition: var(--transition-2);
}

.close-animation #menu {
    opacity: 0;
    visibility: hidden;
    -webkit-transition: var(--transition-2);
    -o-transition: var(--transition-2);
    transition: var(--transition-2);
    -webkit-transition-delay: .25s;
         -o-transition-delay: .25s;
            transition-delay: .25s;
}

#menu.section > .menu {
    max-width: 100%;
    padding: 0;
    margin: 0;
}

.menu__container {
    opacity: 0;
    -webkit-transition: var(--transition-2);
    -o-transition: var(--transition-2);
    transition: var(--transition-2);
    -webkit-transition-delay: .25s;
         -o-transition-delay: .25s;
            transition-delay: .25s;
}

.menu-open .menu__container {
    opacity: 1;
}

.close-animation .menu__container {
    opacity: 0;
    -webkit-transition-delay: 0s;
         -o-transition-delay: 0s;
            transition-delay: 0s;
}

#menu p {
    margin-bottom: var(--spacing-1);
}

.dish__row--spacing {
    margin-top: var(--spacing-2);
}

#menu p:last-child {
    margin-bottom: 0;
}


/* Category */
.menu__middle {
    margin: 0 auto;
}

.menu__categories {
    margin-top: -5px;
}

.menu__category, .dishes_title h3 {
    font-family: var(--brand-font-headline);
    font-size: var(--font-size-7);
    font-weight: 700;
    line-height: var(--line-height-3);
}

.menu__category {
    display: block;
    padding: 5px 0;
    text-align: left;
    -webkit-transition: var(--transition-2);
    -o-transition: var(--transition-2);
    transition: var(--transition-2);
}

.dishes_title {
    margin-top: var(--spacing-6-5);
    margin-bottom: var(--spacing-5);
    text-align: center;
}

.dishes_title h3 {
    color: var(--brand-color-1);
}



/* Opening hours */
.menu__infos {
    max-width: var(--width-opening-hours);
}

.menu__infos .typography--h3 {
    display: inline-block;
    margin-bottom: var(--spacing-4);
    max-width: 300px;
}

.menu__infos .typography--label {
    display: block;
    margin-bottom: 9px;
    color: var(--brand-emmerald);
}

.opening_hours__date > span {
    display: inline-block;
}

.opening_hours__text.opening_hours__text--below {
    margin-top: var(--spacing-3);
}

.menu__infos__voucher {
    margin-top: var(--spacing-6);
}


/* Dishes */
#menu .menu__dishes {
    position: relative;
    overflow: hidden;
}

.menu__dishes__category {
    position: relative;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: var(--transition-2);
    -o-transition: var(--transition-2);
    transition: var(--transition-2);
}

.menu__dishes__category.is-visible {
    opacity: 1;
    visibility: visible;
}

.dishes {
    position: relative;
}

.dishes__theme {
    display: block;
    max-width: unset;
    border-bottom: 1px solid var(--brand-color-1);
    padding-right: 200px;
}

.dishes__legal, .menu__legal  {
    display: block;
    padding: var(--spacing-2) 0;
    font-size: var(--font-size-1);
    line-height: var(--line-height-2);
    text-align: right;
    border-top: 1px solid var(--brand-color-1);
    max-width: 100%;
}

.dish {
    padding: var(--spacing-2) 0;
}

.dish + .dish {
    border-top: 1px solid var(--brand-color-1);
}

.dish__name {
    display: inline-block;
}

.dish--no-price .dish__row--main > .dish__name {
    -ms-flex-preferred-size: 100%;
        flex-basis: 100%;
}

.dish__name span {
    display: block;
}

.dish__price {
    display: inline-block;
    text-align: right;
}

.dish__price__container {
    height: 100%;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-direction: column;
            flex-direction: column;
    -webkit-box-pack: justify;
        -ms-flex-pack: justify;
            justify-content: space-between;
}

.dish__price__text {
    display: inline-block;
    min-width: 75px;
    font-weight: 700;
}

.dish.dish--no-price .dish__row:not(.dish__row--main) .dish__name, .dish.dish--no-price .dish__row:not(.dish__row--main) .dish__price {
    -ms-flex-preferred-size: 50%;
        flex-basis: 50%;
}


/* Reservation */
.menu__dishes__reservation {
    text-align: center;
}

.menu__dishes__reservation > p:last-of-type {
    margin-bottom: var(--spacing-3);
}


/* Illustration */
.menu__dishes__illustration {
    position: relative;
    overflow: hidden;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

.menu__dishes__illustration img {
    margin-bottom: -50%;
}



/* ------------------------------ */
/* -------- Media Queries ------- */
/* ------------------------------ */


@media all and (min-width: 1240px) and (min-height: 768px) {

    .menu__sides {
        position: fixed;
    }

}

@media all and (min-width: 1240px) and (max-height: 849.98px) {

    .menu__sides {
        position: absolute;
    }

}

@media all and (min-width: 768px) and (max-width: 1239.98px) and (min-height: 850px) {

    .menu__sides {
        position: fixed;
    }

}

@media all and (min-width: 768px) and (max-width: 1239.98px) and (max-height: 849.98px) {

    .menu__sides {
        position: absolute;
    }

    .windows.desktop .menu-open .site_nav__illustration {
        margin-right: 16px;
    }

}

@media all and (min-width: 1720px) {

    .menu__middle {
        max-width: 600px;
    }

    .menu__sides {
        padding: 0 var(--spacing-11);
    }
}

@media all and (min-width: 1400px) {

    #menu .menu__dishes {
        margin-top: var(--spacing-10);
    }

    .menu__category {
        width: 290px;
    }

    .dish__price {
        -ms-flex-preferred-size: 25%;
            flex-basis: 25%;
    }

    .dish__name {
        -ms-flex-preferred-size: 75%;
            flex-basis: 75%;
    }

}

@media all and (min-width: 1240px) {

    .menu__sides {
        width: 100%;
        max-width: var(--width-content);
        left: 50%;
        top: calc(var(--height-logo) + var(--spacing-5) + var(--spacing-10));
        -webkit-transform: translateX(-50%);
            -ms-transform: translateX(-50%);
                transform: translateX(-50%);
    }

    .windows.desktop .menu-open .menu__infos {
        margin-right: 16px;
    }

    .menu__dishes__reservation {
        max-width: 550px;
        margin: var(--spacing-10) auto 0;
    }

    .menu__category + .menu__category {
        margin-top: var(--spacing-2);
    }

    .dishes__theme {
        padding-bottom: var(--spacing-3);
    }

    .opening_hours__date__time {
        padding-left: var(--spacing-3);
    }

    .opening_hours__date__day {
        width: 100px;
        word-break: break-all;
    }

}


@media all and (min-width: 992px) {

    .menu-open #menu {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .menu__category.hover, .menu__categories .menu__category.is-active {
        color: var(--brand-color-1);
    }

    .dishes_title:first-child {
        margin-top: 0;
    }

}


@media all and (min-width: 768px) {

    .menu__middle__logo {
        padding-top: var(--spacing-5);
        text-align: center;
    }
    
    .menu__middle__logo a {
        display: inline-block;
    }

    .dishes + .dishes {
        margin-top: var(--spacing-7);
    }

    .menu__dishes__illustration {
        margin-top: var(--spacing-11);
    }

}

@media all and (max-width: 1239.98px) and (min-width: 516px) {

    .dishes__theme span.typography--label {
        font-size: 18px !important;
    }

    .dishes .dish {
        font-size: 20px !important;
        padding: 20px 0 !important;
    }

    .dishes__theme {
        padding-bottom: 28px !important;
    }

}


@media all and (max-width: 1719.98px) and (min-width: 1400px) {

    .menu__middle {
        max-width: 500px;
    }

    .menu__sides {
        padding: 0 var(--spacing-6-5);
    }

}

@media all and (max-width: 1399.98px) and (min-width: 1240px) {

    .menu__sides {
        padding: 0 var(--spacing-3);
        top: calc(var(--height-logo) + var(--spacing-4) + var(--spacing-9));
    }

    .menu__category {
        width: 270px;
    }

    .menu__middle__logo {
        padding-top: var(--spacing-4);
    }

    #menu .menu__dishes {
        margin-top: var(--spacing-9);
    }

}

@media all and (max-width: 1399.98px) and (min-width: 992px) {

    .menu__middle {
        max-width: 450px;
    }

}


@media all and (max-width: 1399.98px) and (min-width: 576px) {

    .dish__price {
        -ms-flex-preferred-size: 33%;
            flex-basis: 33%;
    }

    .dish__name {
        -ms-flex-preferred-size: 67%;
            flex-basis: 67%;
    }

}

@media all and (max-width: 1239.98px) {

    .menu__infos {
        width: 100%;
        max-width: unset;
        padding-top: var(--spacing-5);
        border-top: 1px solid var(--brand-color-1);
    }

    .menu__category {
        width: 240px;
    }

    .menu__category + .menu__category {
        margin-top: var(--spacing-1);
    }

    .menu__infos__voucher {
        margin-top: var(--spacing-4);
    }

    .opening_hours__date__time {
        padding-left: var(--spacing-2);
    }

    .opening_hours__date__day {
        width: 86px;
        word-break: break-all;
    }

}


@media all and (max-width: 1239.98px) and (min-width: 992px) {

    .menu__sides {
        width: 40%;
        left: 0;
        top: calc(var(--height-logo) + var(--spacing-5) + var(--spacing-7));
        -webkit-transform: unset;
            -ms-transform: unset;
                transform: unset;
    }

    .menu__sides {
        padding-left: var(--spacing-3-5);
        padding-right: var(--spacing-6-5);
    }

    #menu .menu__categories {
        padding-bottom: var(--spacing-4);
    }

    .menu__dishes__reservation {
        max-width: 400px;
        margin: var(--spacing-10) auto 0;
    }

    .menu__middle {
        max-width: 100%;
        padding: 0 var(--spacing-3-5);
    }

    .menu__middle__logo {
        padding-top: var(--spacing-4);
    }

    #menu .menu__dishes {
        margin-left: 40%;
        width: 60%;
        margin-top: var(--spacing-7);
    } 

    .menu__dishes__illustration {
        margin-top: var(--spacing-9);
        max-width: 400px;
    }

    .dishes_title {
        text-align: left;
    }

}


@media all and (max-width: 991.98px) {

    .menu-open .site_header__nav {
        background-color: var(--brand-light);
    }

    #menu {
        top: var(--height-header);
        height: calc(100% - var(--height-header));
    }

    .menu__container {
        padding: 0 var(--spacing-3-5);
    }

    .menu__sides {
        padding: var(--spacing-5) 0 var(--spacing-9);
    }

    .menu__sides.is-hidden {
        opacity: 0;
        visibility: hidden;
    }

    #menu .menu__categories {
        width: 100%;
        padding-bottom: var(--spacing-5-5);
    }

    .menu__infos .typography--h3 {
        font-size: 32px;
    }

    .menu-open .menu__sides {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .menu__middle {
        position: fixed;
        top: var(--height-header);
        left: 0;
        height: calc(100% - var(--height-header));
        width: 100%;
        padding: 0 var(--spacing-3-5);
        background-color: var(--brand-light);

        z-index: -1;
        opacity: 0;
        visibility: hidden;
    }

    .menu__middle.is-active {
        z-index: 25;
        opacity: 1;
        visibility: visible; 

        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .menu__middle__back {
        position: fixed;
        z-index: 10;
        top: 80px;
        right: var(--spacing-3-5);
        left: var(--spacing-3-5);
        border-bottom: 1px solid var(--brand-color-1);
        background-color: var(--brand-light);
    }

    .menu__middle__back .button--back {
        padding: var(--spacing-1) 0;
        width: 100%;
        cursor: pointer;
    }

    .dishes + .dishes {
        margin-top: var(--spacing-6);
    }

    .dishes_title {
        margin-top: var(--spacing-9);
        margin-bottom: var(--spacing-4);
        text-align: center;
    }

    .menu__dishes__title {
        display: block;
        font-family: var(--brand-font-headline);
        font-size: var(--font-size-7);
        font-weight: 700;
        line-height: var(--line-height-3);
        text-align: center;
        padding: var(--spacing-5) 0;
        color: var(--brand-emmerald);
        -webkit-transition: var(--transition-2);
        -o-transition: var(--transition-2);
        transition: var(--transition-2);
    }

    .dishes__theme {
        padding-bottom: var(--spacing-2);
    }

    .menu__dishes__reservation {
        margin-top: var(--spacing-9);
    }

    .menu__dishes__illustration {
        margin-top: var(--spacing-9);
        max-width: 350px;
    }

}

@media all and (max-width: 767.98px) {

    .dishes__theme {
        padding-right: 0;
    }

    .dishes_title h3 {
        margin-bottom: var(--spacing-1);
    }

}


@media all and (min-width: 480px) {

    .dish__name {
        padding-right: var(--spacing-4);
    }

}


@media all and (max-width: 479.98px) {

    .menu__sides {
        padding: var(--spacing-4) 0 var(--spacing-5);
    }

    .dish__name {
        -ms-flex-preferred-size: 70%;
            flex-basis: 70%; 
        padding-right: var(--spacing-2);
    }
    
    .dish__price {
        -ms-flex-preferred-size: 30%;
            flex-basis: 30%;
    }   

}