@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Lobster&display=swap');

:root {
    --main-color: #911f27;
    --main-color-darker: #5e1419;
    --main-color-transculent: #911f27c2;
    --second-color: #face7f;
    --second-color-darker: #f2c179;
    --text-color: white;
    --main-font: "Inter", sans-serif;
}

.wrapper {
    display: flex;
    flex-direction: column;
    min-height: 100%;
}

.content {
    flex: 1;
}

.loader-wrapper {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #000000c7;
    z-index: 9;
    backdrop-filter: grayscale(1);
    transition: .4s;
}
.loader-wrapper img {
    width: 100px;
    transition: .4s;
}

.loader-wrapper.hidden {
    opacity: 0;
    pointer-events: none;
}
.loader-wrapper .loader {
    transition: .4s;
}
.loader-wrapper .loader l-ring {
    position: absolute;
    transform: scale(1.2);
}
.loader-wrapper.hidden .loader {
    transform: scale(0);
}

.ripple {
    --ripple-background: currentColor;
    --ripple-opacity: 0.3;
    --ripple-duration: 600ms;
    --ripple-easing: linear;

    position: relative;
    overflow: hidden;

    &:before {
        content: "";
        position: absolute;
        display: block;
        background: var(--ripple-background, white);
        border-radius: 50%;
        pointer-events: none;

        top: calc(var(--y) * 1px);
        left: calc(var(--x) * 1px);
        width: calc(var(--d) * 1px);
        height: calc(var(--d) * 1px);

        opacity: calc(var(--o, 1) * var(--ripple-opacity, 0.3));
        transition: calc(var(--t, 0) * var(--ripple-duration, 600ms)) var(--ripple-easing, linear);
        transform: translate(-50%, -50%) scale(var(--s, 1));
        transform-origin: center;
    }
}
.text-slide {
    position: absolute;
    left: 0;
    width: 100%;
    transition: transform 0.4s ease, opacity 0.4s ease;
}
.text-wrapper {
    position: relative;
    overflow: hidden;
    display: inline-block;
    height: 50px;
    width: 100%;
}

body {
    background: var(--second-color);
    padding: 25px 150px;
    padding-bottom: 0px;
    margin: 0;
    font-family: var(--main-font);
}

body.locked {
    overflow: hidden;
}

.logo-font {
    font-family: "Lobster", sans-serif;
}
.logo-text {
    color: var(--text-color);
    font-size: 25px;
    text-decoration: none;
}

p {
    margin: 0;
}

.header {
    background: var(--main-color);
    border-radius: 100px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 40px;
}
.header .header_logo {
    width: 300px;
}
.header .header_section {
    display: flex;
    align-items: center;
    gap: 5px;
}
.header .header_link {
    color: var(--text-color);
    text-decoration: none;
    font-weight: 500;
    transition: .4s;
    padding: 10px 15px;
}
.header .header_link:hover {
    background: var(--main-color-darker);
    border-radius: 100px;
}

.hero {
    background: linear-gradient(0deg, #face7f, var(--main-color-transculent)), url("hero-bg.jpg");
    padding: 50px;
    margin-top: 35px;
    border-radius: 30px;
    color: var(--text-color);
    padding-right: 200px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    min-height: 400px;
    justify-content: space-between;
}
.hero .hero-section {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.hero .hero_title {
    font-size: 40px;
    font-weight: 700;
}
.hero .hero_description {
    font-size: 20px;
    font-weight: 400;
}
.hero .hero_buttons {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 30px;
}
.hero .hero_button {
    display: flex;
    align-items: center;
    text-decoration: none;
    gap: 10px;
    background: var(--main-color);
    color: var(--text-color);
    padding: 15px 30px;
    border-radius: 100px;
    font-size: 20px;
    font-weight: 600;
    transition: .4s;
}
.hero .hero_button:hover {
    background: var(--main-color-darker);
}
.hero .hero_button.outline {
    background: transparent;
    color: var(--main-color);
    border: 2px solid;
    height: 20px;
}
.hero .hero_button.outline:hover {
    background: var(--main-color);
    color: var(--text-color);
    border-color: var(--main-color);
}

.menu {
    display: flex;
    align-items: flex-start;
    gap: 30px;
    margin-top: 100px;
}
.menu .menu_options {
    border: 2px solid var(--main-color);
    border-radius: 32px;
    padding: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.menu .menu_options__section {
    width: 80px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    font-size: 15px;
    font-weight: 600;
    color: var(--main-color);
    text-align: center;
}
.menu .menu_options__section #section_name {
    width: -webkit-fill-available;
    overflow: hidden;
    text-overflow: ellipsis;
}
.menu .menu_options__section.active .menu_options__icon {
    background: var(--main-color);
    color: var(--main-color-darker);
}
.menu .menu_options__icon {
    width: -webkit-fill-available;
    background: var(--second-color-darker);
    padding: 10px 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100px;
    user-select: none;
    transition: .4s;
}
.menu .menu_options__icon:hover {
    background: var(--main-color);
    color: var(--main-color-darker);
    cursor: pointer;
}

.menu .main {
    border: 2px solid var(--main-color);
    padding: 30px 40px;
    border-radius: 30px;
    width: -webkit-fill-available;
}
.menu .main .menu_main__title {
    display: flex;
    align-items: center;
    font-size: 40px;
    font-weight: 700;
    color: var(--main-color);
}
.menu .main .menu_main__title .menu_main__category_main {
    opacity: .5;
}
.menu .main .menu_main__title .material-symbols-rounded {
    font-size: 50px;
}
.menu .main .menu_main__category_description {
    width: 80%;
    color: var(--main-color);
    font-weight: 500;
    opacity: .5;
    margin-top: 5px;
}
.menu .main .menu_main__items {
    margin-top: 20px;
    display: flex;
    align-items: flex-start;
    gap: 20px;
    flex-wrap: wrap;
}
.menu .main .menu_main__item {
    width: fit-content;
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 4px;
    max-width: 250px;
} 
.menu .main .menu_main__item_image_wrapper {
    width: 230px;
    height: 130px;
    outline: 2px solid var(--main-color);
    padding: 5px;
    border-radius: 25px;
    margin-bottom: 10px;
    position: relative;
    transition: .4s;
}
.menu .main .menu_main__item_image_wrapper:hover {
    outline-color: var(--second-color);
    cursor: pointer;
    transform: scale(1.1);
}
.menu .main .menu_main__item_price {
    position: absolute;
    bottom: 12px;
    right: 12px;
    background: var(--main-color);
    color: var(--second-color);
    font-weight: 600;
    padding: 4px 8px;
    border-radius: 100px;
    box-shadow: #00000029 0px 2px 2px 0px;
    border: 2px solid var(--second-color);
}
.menu .main .menu_main__item_image_wrapper .menu_main__item_image {
    width: 230px;
    height: 130px;
    object-fit: cover;
    border-radius: 20px;
}
.menu .main .manu_main__item_type {
    color: var(--main-color);
    font-weight: 700;
    font-size: 14px;
}
.menu .main .manu_main__item_title {
    color: var(--main-color);
    font-weight: 800;
    font-size: 18px;
}
.menu .main .manu_main__item_receipt {
    color: var(--main-color);
    font-weight: 500;
    opacity: .5;
    font-size: 12px;
}

.info {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}

.info .section {
    font-size: 30px;
    font-weight: 700;
    color: var(--main-color);
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.info .section .info_description {
    opacity: .5;
}
.info .section .info_work_time {
    font-size: 40px;
}

.info .section .info_actual {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 25px;
    justify-content: flex-end;
}

.info .section .info_actual .material-symbols-rounded {
    font-size: 30px;
}

.map_wrapper {
    margin-top: 20px;
    outline: 2px solid var(--main-color);
    padding: 5px;
    border-radius: 30px;
    height: 500px;
}
.map {
    border: 0;
    width: 100%;
    height: 500px;
    border-radius: 25px;
}

.footer {
    margin-top: 50px;
    background: var(--main-color);
    color: var(--second-color);
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-radius: 30px 30px 0px 0px;
    padding: 20px 40px;
}
.footer .footer_logo {
    width: 300px;
}
.footer .section {
    display: flex;
    align-items: center;
    gap: 20px;
}
.footer .section ion-icon {
    font-size: 30px;
}
.footer a {
    color: var(--second-color);
    transition: .4s;
}
.footer a:hover {
    opacity: .5;
    transform: scale(1.1);
}
.footer .section .section_socials {
    margin-top: 5px;
    display: flex;
    gap: 15px;
    align-items: center;
}
.footer .sub_section {
    display: flex;
    flex-direction: column;
    font-weight: 600;
}
.footer .footer_section_title {
    opacity: .5;
}

.divider-wrapper {
    padding: 50px;
    display: flex;
    justify-content: center;
}
.divider-wrapper .divider {
    width: 100px;
    height: 8px;
    border-radius: 100px;
    background: var(--second-color-darker);
}

@media only screen and (max-width: 600px) {
    body {
        padding: 0;
    }
    .hero {
        width: auto;
        border-radius: 0px;
        padding: 40px;
        margin-top: 0px;
    }
    .header {
        width: auto;
        display: flex;
        flex-direction: column;
        gap: 20px;
        border-radius: 0px;
    }
    .hero .hero_title {
        font-size: 30px;
        text-align: center;
    }
    .hero .hero_description {
        font-size: 20px;
        font-weight: 400;
        text-align: center;
    }
    .hero .hero_buttons {
        display: flex;
        flex-direction: column;
    }
    .hero .hero_button {
        width: 100%;
        display: flex;
        justify-content: center;
    }
    .menu {
        display: flex;
        flex-direction: column;
        align-items: center;
        padding: 0pxpx;
        margin-top: 20px;
    }
    .menu .main {
        border-radius: 0px;
        border-left: 0px;
        border-right: 0px;
        padding: 20px;
    }
    .menu .menu_options {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
    }
    .menu .main .menu_main__items {
        overflow-x: scroll;
        padding: 5px;
        display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
    }
    .menu .main .menu_main__category_description {
        width: 100%;
    }
    .menu .main .menu_main__title .menu_main__category_main,
    .menu .main .menu_main__title .material-symbols-rounded {
        display: none;
    }
    .menu .main .menu_main__item_image_wrapper,
    .menu .main .menu_main__item_image_wrapper .menu_main__item_image {
        width: 150px;
        height: 100px;
    }
    .menu .main .menu_main__item_image_wrapper {
        padding: 0px;
        border-radius: 10px;
    }
    .menu .main .menu_main__item_image_wrapper .menu_main__item_image {
        border-radius: 10px;
    }
    .menu .main .menu_main__item_price {
        bottom: 5px;
        right: 5px;
    }
    .info {
        padding: 20px;
        display: flex;
        flex-direction: column;
        gap: 20px;
    }
    .info .section .info_actual {
        display: flex;
        flex-direction: row-reverse;
        align-items: center;
        font-size: 20px;
    }
    .map_wrapper {
        padding: 0;
        outline: none;
    }
    .map_wrapper .map {
        border-radius: 0;
    }
    .footer {
        display: flex;
        flex-direction: column;
        padding: 0px 20px 20px;
    }
    .footer .section {
        margin-top: 20px;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        width: 100%;
    }
    .footer .logo-text {
        color: var(--text-color);
        font-size: 25px;
        width: 100%;
        text-align: center;
    }
    .footer .section .section_socials {
        margin: 0;
        width: 100%;
        display: flex;
        justify-content: center;
        gap: 20px;
        flex-wrap: wrap;
    }
    .footer .section .section_socials ion-icon {
        font-size: 40px;
    }
}