#menu-grid {
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    padding: 12px 12px 24px;
    box-sizing: border-box;
}

#menu-grid .row {
    margin-left: 0;
    margin-right: 0;
}

#menu-grid .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}

#menu-grid:not(.is-classic) .menu-card {
    margin-bottom: 48px;
}

.skeleton-card {
    opacity: 0;
    margin-bottom: 24px;
    padding: 20px;
    border-radius: 12px;
    background-color: rgba(255, 255, 255, 0.72);
    animation: pulse 1.5s infinite;
    animation-delay: 0.2s;
    animation-fill-mode: forwards;
}

.skeleton-img,
.skeleton-text {
    display: block;
    border-radius: 8px;
    background-color: #dedede;
}

.skeleton-img {
    width: var(--menu-dish-image-size, 380px);
    height: var(--menu-dish-image-size, 380px);
    max-width: 100%;
    margin: 0 auto 16px;
}

.skeleton-text {
    width: 100%;
    height: 18px;
    margin-bottom: 12px;
}

.skeleton-text:last-child {
    width: 45%;
    margin-bottom: 0;
}

.fade-in {
    opacity: 0;
    animation: fade-in 0.35s ease-out forwards;
}

@keyframes pulse {
    0%,
    100% {
        opacity: 0.55;
    }

    50% {
        opacity: 1;
    }
}

@keyframes fade-in {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .skeleton-card,
    .fade-in {
        opacity: 1;
        animation: none;
    }
}

@media (min-width: 1024px) {
    .menu.menu--centered-desktop {
        padding-left: 24px;
        padding-right: 24px;
    }

    .menu.menu--centered-desktop.is-fit-to-screen {
        justify-content: center;
    }
}

#menu-grid.is-classic {
    max-width: none;
    width: 100%;
    padding: 0 0 48px;
}

#menu-grid.is-classic dish {
    display: block;
}

@media (max-width: 767.98px) {
    #menu-grid,
    #menu-grid.is-classic,
    .menuWrapper ~ section,
    .menuWrapper ~ .title {
        padding-left: max(var(--menu-page-gutter), env(safe-area-inset-left, 0px));
        padding-right: max(var(--menu-page-gutter), env(safe-area-inset-right, 0px));
        box-sizing: border-box;
    }
}
