/* Restaurant-wide visual layer. Cart, menu, and checkout behavior remain unchanged. */
body.lb-restaurant-reference {
    --demo1-orange: #f4511e;
    --demo1-ink: #242424;
    --demo1-muted: #6b6b6b;
    --demo1-line: #e8e5e1;
    background: #fff !important;
    color: var(--demo1-ink);
}

body.lb-restaurant-reference .page-wrapper,
body.lb-restaurant-reference .content,
body.lb-restaurant-reference main,
body.lb-restaurant-reference .lb-restaurant-layout,
body.lb-restaurant-reference .lb-restaurant-layout > [class*="col-"] {
    background: #fff !important;
}

body.lb-restaurant-reference .rf-hero {
    background: #fff !important;
    border: 1px solid var(--demo1-line);
    border-radius: 20px;
    box-shadow: 0 12px 32px rgba(30, 24, 20, .10);
    overflow: hidden;
}

body.lb-restaurant-reference .rf-hero__media {
    box-sizing: border-box;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    max-width: 100% !important;
    border-radius: 20px 20px 0 0;
    overflow: visible !important;
    width: 100% !important;
    background: #fff !important;
}

body.lb-restaurant-reference .rf-hero__bg {
    display: block;
    box-sizing: border-box;
    height: 320px;
    margin: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    overflow: hidden;
    background: #fff !important;
}

body.lb-restaurant-reference .rf-hero__bg-img {
    display: block;
    box-sizing: border-box;
    max-width: 100%;
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center;
}

body.lb-restaurant-reference .rf-hero__card--desktop {
    border-top: 1px solid rgba(232, 229, 225, .9);
    background: rgba(255, 255, 255, .98);
    box-shadow: none;
    margin: 0 !important;
}

body.lb-restaurant-reference .rf-hero__card--desktop,
body.lb-restaurant-reference .rf-hero__mobile-info {
    background: #fff !important;
}

@media (min-width: 768px) {
    body.lb-restaurant-reference a.lb-iconbtn[aria-label="Favoriten"] {
        display: none !important;
    }

    body.lb-restaurant-reference .rf-hero__favorite-btn {
        align-items: center;
        background: #fff;
        border: 1px solid var(--demo1-line);
        border-radius: 999px;
        color: #242424;
        display: inline-flex;
        flex: 0 0 48px;
        height: 48px;
        justify-content: center;
        margin: 0;
        padding: 0;
        width: 48px;
    }

    body.lb-restaurant-reference .rf-hero__favorite-btn svg {
        fill: none;
        stroke: currentColor;
        stroke-width: 1.8;
    }

    body.lb-restaurant-reference .rf-hero__favorite-btn.is-active {
        color: #e53935;
    }

    body.lb-restaurant-reference .rf-hero__favorite-btn.is-active svg {
        fill: currentColor;
    }
}

/* Lieferando-sized media for regular menu rows on every device. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item-image {
    flex: 0 0 120px !important;
    width: 120px !important;
    height: 120px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background-size: contain !important;
}

/* Final desktop containment fix for normal restaurant cards. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card {
        overflow: hidden !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row.has-image > .menu-item-image {
        align-self: flex-start !important;
        margin-top: 0 !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main {
        min-width: 0 !important;
        min-height: 0 !important;
        height: 100% !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main > .menu-tags-row {
        margin-top: auto !important;
        margin-bottom: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
        flex: 0 0 auto !important;
    }
}

/* Final section-background override after all legacy responsive rules. */
body.lb-restaurant-reference .lb-menu-panel .menu-search,
body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search-wrap,
body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot,
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories {
    background: #FDFDFB !important;
}

/* Last override for the category name header strip. */
body.lb-restaurant-reference .menu-group .category-title,
body.lb-restaurant-reference .menu-group .category-title > span {
    background: #FDFDFB !important;
}

/* Last override for the category name header strip. */
body.lb-restaurant-reference .menu-group .category-title,
body.lb-restaurant-reference .menu-group .category-title > span {
    background: #FDFDFB !important;
}

/* Category heading strip behind names such as "Salat". */
body.lb-restaurant-reference .menu-group .category-title,
body.lb-restaurant-reference .menu-group .category-title > span {
    background: #FDFDFB !important;
}

/* Cart-count badge: final override so the count circle keeps the requested color. */
body.lb-restaurant-reference .menu-item.menu-item-card .menu-button .btn-cart.lb-menu-card-has-count {
    border-color: #2B2A28 !important;
    background: #2B2A28 !important;
    color: #fff !important;
}

body.lb-restaurant-reference .menu-item.menu-item-card .menu-button .btn-cart.lb-menu-card-has-count .lb-menu-card-count {
    color: #fff !important;
    font-size: 1.4rem !important;
    font-weight: 900 !important;
}

body.lb-restaurant-reference,
body.lb-restaurant-reference .page-wrapper,
body.lb-restaurant-reference .content,
body.lb-restaurant-reference main,
body.lb-restaurant-reference .lb-restaurant-layout,
body.lb-restaurant-reference .lb-restaurant-layout > [class*="col-"] {
    background: #FDFDFB !important;
}

/* Keep restaurant sliders inside the main content column, never viewport-wide. */
body.lb-restaurant-reference .yt-local-slider-shell,
body.lb-restaurant-reference .yt-local-slider,
body.lb-restaurant-reference .yt-local-slider .carousel-inner,
body.lb-restaurant-reference .yt-local-slider .carousel-item,
body.lb-restaurant-reference .yt-local-slider__item,
body.lb-restaurant-reference .yt-local-slider__image {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 768px) {
    body.lb-restaurant-reference .yt-local-slider-shell {
        width: 930px !important;
        max-width: 100% !important;
        margin-inline: auto !important;
    }
}

/* Restaurant page sections use the same warm background as the page. */
body.lb-restaurant-reference .rf-hero,
body.lb-restaurant-reference .rf-hero__card,
body.lb-restaurant-reference .rf-hero__card--desktop,
body.lb-restaurant-reference .rf-hero__mobile-info,
body.lb-restaurant-reference .lb-menu-panel > .menu-search,
body.lb-restaurant-reference .rf-menu-search-wrap,
body.lb-restaurant-reference .rf-menu-search__input,
body.lb-restaurant-reference .lb-mobile-categories-slot,
body.lb-restaurant-reference .rf-mobile-categories,
body.lb-restaurant-reference .rf-mobile-categories__row,
body.lb-restaurant-reference .rf-mobile-categories__scroll,
body.lb-restaurant-reference .rf-mobile-categories__list,
body.lb-restaurant-reference .menu-group-item,
body.lb-restaurant-reference .menu-group-item .category-title,
body.lb-restaurant-reference .menu-items {
    background: #FDFDFB !important;
}

/* Final priority overrides for legacy white section rules. */
body.lb-restaurant-reference .lb-menu-panel > .menu-search,
body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search-wrap,
body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search__input,
body.lb-restaurant-reference .menu-group > .menu-group-item,
body.lb-restaurant-reference .menu-group > .menu-group-item > .category-title {
    background: #FDFDFB !important;
}

/* Lieferando-style quantity value: plain number without its own frame. */
body.lb-restaurant-reference .lb-restaurant-layout .cart-items > ul > li .cart-item-qty {
    border: 0 !important;
    background: rgb(243, 241, 239) !important;
    box-shadow: none !important;
}

/* Popular-dishes carousel: keep the product image aligned to the top of its card. */
body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item-card .menu-item-image {
    align-self: flex-start !important;
    margin-top: 0 !important;
}

/* Show the current cart quantity on a menu card instead of the plus icon. */
body.lb-restaurant-reference .menu-item-card .btn-cart.lb-menu-card-has-count {
    border-color: #2B2A28 !important;
    background: #2B2A28 !important;
    color: #fff !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, .16) !important;
}

body.lb-restaurant-reference .menu-item-card .btn-cart.lb-menu-card-has-count > .fa-plus {
    display: none !important;
}

body.lb-restaurant-reference .menu-item-card .lb-menu-card-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1em;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
}

body.lb-restaurant-reference .menu-item-card .lb-menu-card-count[hidden] {
    display: none !important;
}

/* Keep normal restaurant-card tags inside the fixed card and align media to
   the card's top edge. The popular carousel keeps its own layout. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card {
        overflow: hidden !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row.has-image > .menu-item-image {
        align-self: flex-start !important;
        margin-top: 0 !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main {
        min-width: 0 !important;
        min-height: 0 !important;
        height: 100% !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main > .menu-tags-row {
        margin-top: auto !important;
        margin-bottom: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
        flex: 0 0 auto !important;
    }
}

/* Desktop menu-card dimensions aligned with the Lieferando reference.
   This block is intentionally scoped to the desktop breakpoint so the
   established phone/tablet layout and the cart remain unchanged. */
@media (min-width: 992px) {
    /* The available menu column is 919px wide.  A 6px remainder keeps the
       two exact 448.5px cards and their 16px inter-card gap inside it. */
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        box-sizing: border-box !important;
        width: calc(100% + 32px) !important;
        margin-left: -16px !important;
        grid-template-columns: repeat(2, 448.5px) !important;
        column-gap: 16px !important;
        row-gap: 16px !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items > .menu-item.menu-item-card {
        box-sizing: border-box !important;
        width: 448.5px !important;
        min-width: 448.5px !important;
        max-width: 448.5px !important;
        height: 128px !important;
        min-height: 128px !important;
        max-height: 128px !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item-image {
        flex: 0 0 120px !important;
        width: 120px !important;
        height: 90px !important;
        max-height: 90px !important;
    }

    /* The button is positioned against the card's detail layer.  The
       offsets compensate for that layer's 7px bleed and the card padding,
       resulting in 16px from the card's right edge and 8px from its top. */
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card .menu-card-row > .menu-detail .menu-button,
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item.menu-item-card .menu-card-row > .menu-detail .menu-button {
        top: 2px !important;
        right: 10px !important;
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card .menu-card-row > .menu-detail .menu-button > *,
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item.menu-item-card .menu-card-row > .menu-detail .menu-button > * {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
    }

    /* Lieferando uses a 120px-wide carousel image. Keep its natural aspect
       ratio while preserving the current carousel card width. */
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item-image {
        flex: 0 0 120px !important;
        flex-basis: 120px !important;
        width: 120px !important;
        min-width: 120px !important;
        height: 90px !important;
        max-height: 90px !important;
    }

    /* Some carousel cards carry an inline width on the image wrapper. Keep
       the reference width authoritative without changing the card itself. */
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-item-image {
        flex: 0 0 120px !important;
        flex-basis: 120px !important;
        width: 120px !important;
        min-width: 120px !important;
    }
}

/* Offer prices: keep the star directly beside the current price on regular
   menu cards at every viewport. The carousel keeps its own star behavior. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row:has(.menu-meta) .menu-meta {
    display: none !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row:has(.menu-meta) .menu-price-mobile {
    display: flex !important;
    align-items: baseline !important;
    flex-wrap: wrap !important;
    column-gap: 4px !important;
    row-gap: 0 !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row:has(.menu-meta) .menu-price-mobile::after {
    content: '\2605';
    color: #ffb000;
    display: inline-block;
    font-size: 15px;
    line-height: 1;
}

/* Shared category sheet used by the list icon on every larger layout. */
body.lb-restaurant-reference .rf-category-sheet {
    display: block;
    inset: 0;
    position: fixed;
    z-index: 1000000;
}

body.lb-restaurant-reference .rf-category-sheet[hidden] {
    display: none !important;
}

body.lb-restaurant-reference .rf-category-sheet__backdrop {
    background: rgba(24, 24, 24, .42);
    inset: 0;
    position: absolute;
}

body.lb-restaurant-reference .rf-category-sheet__panel {
    background: #fff;
    border-radius: 16px 0 0 16px;
    bottom: 0;
    box-shadow: -8px 0 28px rgba(24, 24, 24, .18);
    box-sizing: border-box;
    max-width: calc(100vw - 24px);
    overflow-y: auto;
    padding: 20px;
    position: absolute;
    right: 0;
    top: 0;
    width: 360px;
}

body.lb-restaurant-reference .rf-category-sheet__head {
    align-items: center;
    border-bottom: 1px solid #e8e5e1;
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
    padding-bottom: 14px;
}

body.lb-restaurant-reference .rf-category-sheet__head h2 {
    color: #242424;
    font-size: 1.2rem;
    margin: 0;
}

body.lb-restaurant-reference .rf-category-sheet__close {
    align-items: center;
    background: #f0f0f0;
    border: 0;
    border-radius: 50%;
    color: #242424;
    cursor: pointer;
    display: inline-flex;
    height: 36px;
    justify-content: center;
    padding: 0;
    width: 36px;
}

body.lb-restaurant-reference .rf-category-sheet__list {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.lb-restaurant-reference .rf-category-sheet__list a {
    border-radius: 10px;
    color: #242424;
    display: block;
    font-weight: 600;
    padding: 12px 14px;
    text-decoration: none;
}

body.lb-restaurant-reference .rf-category-sheet__list a:hover,
body.lb-restaurant-reference .rf-category-sheet__list a.active {
    background: #ece9e5;
    color: #242424;
}

body.lb-restaurant-reference.rf-category-sheet-open {
    overflow: hidden;
}

/* Keep the category rail in its normal flow. The fixed sheet and translucent
   backdrop sit above it, so the rail remains visible behind the popup without
   moving onto the popup itself. */
body.lb-restaurant-reference.rf-category-sheet-open .lb-mobile-categories-slot {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    z-index: 1000001 !important;
}

body.lb-restaurant-reference.rf-category-sheet-open .rf-category-sheet {
    display: block !important;
    z-index: 2000000 !important;
}

body.lb-restaurant-reference [data-rf-favorite-toast] {
    background: #2b2928;
    border-radius: 8px;
    bottom: 24px;
    box-shadow: 0 8px 24px rgba(24, 24, 24, .22);
    box-sizing: border-box;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    left: 50%;
    max-width: min(420px, calc(100vw - 32px));
    opacity: 0;
    padding: 14px 16px;
    pointer-events: none;
    position: fixed;
    text-align: left;
    transform: translate(-50%, 12px);
    transition: opacity .2s ease, transform .2s ease;
    visibility: hidden;
    white-space: normal;
    width: max-content;
    z-index: 2000002;
}

body.lb-restaurant-reference [data-rf-favorite-toast].is-visible {
    opacity: 1;
    transform: translate(-50%, 0);
    visibility: visible;
}

/* Use one centered category popup consistently on phone, tablet and desktop. */
body.lb-restaurant-reference .rf-category-sheet__panel {
    bottom: auto;
    border-radius: 16px !important;
    left: 50%;
    max-height: calc(100vh - 32px);
    right: auto;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(420px, calc(100vw - 32px));
}

/* On tablet, keep the category popup fully inside the narrower viewport. */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .rf-category-sheet__panel {
        bottom: 16px;
        left: 50%;
        right: auto;
        top: 16px;
        transform: translateX(-50%);
        width: min(360px, calc(100vw - 32px));
    }
}

/* Shared action-button background across desktop, tablet and mobile. */
body.lb-restaurant-reference .rf-hero__actions > :is(
    .rf-hero__favorite-btn,
    .rf-hero__menu-btn,
    .rf-hero__social-btn,
    .rf-hero__info-btn
),
body.lb-restaurant-reference .rf-hero__mobile-actions > :is(
    .rf-hero__mobile-info-btn,
    .rf-hero__menu-btn,
    .rf-hero__social-btn,
    .rf-hero__mobile-favorite
) {
    background-color: #ECE9E5 !important;
}

body.lb-restaurant-reference .rf-hero__actions > .rf-hero__social-btn,
body.lb-restaurant-reference .rf-hero__mobile-actions > .rf-hero__social-btn {
    background-color: #fff !important;
}

@media (max-width: 767.98px) {
    /* Keep the mobile heart beside the restaurant information, not in the
       vertical cover-button stack. */
    body.lb-restaurant-reference .rf-hero__mobile-actions .rf-hero__mobile-favorite {
        align-items: center !important;
        background: #ECE9E5 !important;
        border: 1px solid var(--demo1-line) !important;
        border-radius: 999px !important;
        display: inline-flex !important;
        height: 48px !important;
        justify-content: center !important;
        left: 42px !important;
        margin: 0 !important;
        padding: 0 !important;
        position: absolute !important;
        top: 164px !important;
        width: 48px !important;
        z-index: 8 !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions .rf-hero__mobile-favorite svg {
        fill: none;
        height: 20px;
        stroke: currentColor;
        stroke-width: 1.8;
        width: 20px;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions .rf-hero__mobile-favorite.is-active {
        color: #e53935 !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions .rf-hero__mobile-favorite.is-active svg {
        fill: currentColor;
    }
}

/* Regular menu-card prices stay normal-weight on every device. The popular
   carousel is excluded so its existing price styling is preserved. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-price-mobile,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-price-mobile b,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .menu-price,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .menu-price b {
    font-weight: 400 !important;
}

/* Keep a visible breathing space before the first and after the last card. */
body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
    padding-inline: 16px !important;
}

/* The category navigation belongs to the upper search/switch area, so it
   must not draw its own outer frame on any device size. */
body.lb-restaurant-reference .rf-mobile-categories,
body.lb-restaurant-reference .lb-mobile-categories-slot {
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Keep the first menu category consistently close to the horizontal
   category navigation on every device size. */
body.lb-restaurant-reference .lb-mobile-categories-slot {
    margin-bottom: 0 !important;
}

body.lb-restaurant-reference .menu-list > .menu-group > .menu-group-item:first-child .category-title {
    padding-top: 16px !important;
}

@media (max-width: 991.98px) {
    body.lb-restaurant-reference .menu-group .category-title {
        border-bottom: 1px solid #e5e1dc !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        flex-basis: min(292px, calc(100% - 40px));
    }

    body.lb-restaurant-reference .menu-group .menu-category {
        padding-inline: 12px !important;
    }

    body.lb-restaurant-reference .menu-list > .menu-group > .menu-group-item:first-child .category-title {
        padding-top: 4px !important;
    }
}

/* Final phone-only edge spacing for the popular-category carousel. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        margin-inline: 0 !important;
        padding-inline: 20px !important;
        scroll-padding-inline: 20px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        flex-basis: min(292px, calc(100vw - 48px)) !important;
        width: min(292px, calc(100vw - 48px)) !important;
    }
}

/* Final popup stacking override: the open sheet must cover sticky navigation. */
body.lb-restaurant-reference.rf-category-sheet-open .lb-mobile-categories-slot {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    z-index: 2000001 !important;
}

body.lb-restaurant-reference.rf-category-sheet-open .rf-category-sheet {
    z-index: 2000002 !important;
}

/* Final one-column spacing: regular menu rows use exactly the mobile
   left/right inset, regardless of which normal category they belong to. */
@media (max-width: 1279.98px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        grid-template-columns: minmax(0, 1fr) !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items > .menu-item.menu-item-card {
        width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

/* Responsive anatomy for regular menu rows, matching the Lieferando
   multi-layout structure. The popular carousel is intentionally excluded. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    min-height: 0 !important;
    width: 100% !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-main {
    order: 1 !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-name-row {
    display: flex !important;
    align-items: baseline !important;
    flex-wrap: wrap !important;
    column-gap: 6px !important;
    row-gap: 2px !important;
    min-width: 0;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-price-mobile {
    display: block !important;
    margin: 3px 0 0 !important;
    line-height: 1.3 !important;
    white-space: normal !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-desc {
    display: block !important;
    margin: 4px 0 0 !important;
    overflow-wrap: anywhere;
    line-height: 1.45 !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-tags-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 4px !important;
    margin-top: 6px !important;
}

/* Lieferando-inspired tag treatment; keep the existing tag placement and data colors. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-tags-row .menu-tag-pill {
    align-items: center;
    border-radius: 8px !important;
    display: inline-flex !important;
    flex: 0 1 auto;
    font-size: 13px !important;
    font-weight: 400 !important;
    gap: 5px !important;
    line-height: 18px !important;
    min-height: 22px;
    padding: 2px 8px !important;
    white-space: nowrap;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-tags-row .menu-tag-pill img {
    flex: 0 0 14px;
    height: 14px;
    margin: 0 !important;
    width: 14px;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item-image {
    order: 2 !important;
    flex: 0 0 clamp(92px, 14vw, 120px) !important;
    width: clamp(92px, 14vw, 120px) !important;
    height: 80px !important;
    margin: 0 0 0 12px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row.no-image .menu-main {
    padding-right: 46px !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail {
    position: absolute !important;
    top: -7px !important;
    right: -7px !important;
    bottom: auto !important;
    z-index: 3 !important;
    display: block !important;
    width: auto !important;
    padding: 0 !important;
    pointer-events: none !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .menu-price {
    display: none !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .menu-button,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .btn-cart {
    pointer-events: auto !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .btn-cart {
    flex: 0 0 38px !important;
    width: 38px !important;
    min-width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    font-weight: 400 !important;
}

/* When the content column becomes narrow, let text use the full row while
   retaining the right-side image and keeping every image corner rounded. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item-image {
        flex-basis: 92px !important;
        width: 92px !important;
        height: 80px !important;
    }
}

/* Single-column regular categories use the same borderless list-row treatment
   as the mobile layout. The popular carousel is intentionally excluded. */
@media (max-width: 1279.98px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        gap: 0 !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card {
        box-sizing: border-box !important;
        width: calc(100% - 24px) !important;
        margin: 0 12px !important;
        min-height: 0 !important;
        padding: 12px 14px !important;
        background: #fff !important;
        border: 0 !important;
        border-bottom: 1px solid #e5e1dc !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }
}

/* Lieferando-style responsive layout for all non-carousel categories:
   one card below 1280px, two cards from 1280px upward. */
@media (max-width: 1279.98px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}

@media (min-width: 1280px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
}

/* Remove the legacy hard-coded highlight from the popular category. */
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__list li:has(a[href*="beliebte"]) a:not([aria-current="true"]) {
    background: transparent !important;
    color: var(--demo1-ink) !important;
}

/* Only the category selected by the scroll observer receives the black
   background. Legacy active classes from the base category component must not
   leave a second category highlighted. */
body.lb-restaurant-reference .rf-mobile-categories a.active:not([aria-current="true"]),
body.lb-restaurant-reference .rf-mobile-categories button.active:not([aria-current="true"]) {
    background: transparent !important;
    color: var(--demo1-ink) !important;
}

body.lb-restaurant-reference .rf-mobile-categories a[aria-current="true"],
body.lb-restaurant-reference .rf-mobile-categories button[aria-current="true"] {
    background: var(--demo1-ink) !important;
    color: #fff !important;
}

/* The category sheet lives inside the sticky category slot. While it is open,
   lift that stacking context above the sticky search field as one unit. */
body.lb-restaurant-reference.rf-category-sheet-open .lb-mobile-categories-slot {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    z-index: 2000001 !important;
}

body.lb-restaurant-reference.rf-category-sheet-open .rf-category-sheet {
    z-index: 2000002 !important;
}

/* Reuse the mobile category-sheet trigger on tablet and desktop as well. */
@media (min-width: 768px) {
    body.lb-restaurant-reference .lb-mobile-categories-slot,
    body.lb-restaurant-reference .rf-mobile-categories {
        display: block !important;
    }

    body.lb-restaurant-reference .rf-mobile-categories__row {
        align-items: center;
        display: flex !important;
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-mobile-categories__slider {
        flex: 1 1 auto !important;
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-mobile-categories__more {
        align-items: center !important;
        background: #f0f0f0 !important;
        border: 0 !important;
        border-radius: 50% !important;
        color: #242424 !important;
        cursor: pointer;
        display: inline-flex !important;
        flex: 0 0 40px !important;
        height: 40px !important;
        justify-content: center !important;
        margin: 0 8px 0 4px !important;
        padding: 0 !important;
        width: 40px !important;
    }

    body.lb-restaurant-reference .rf-mobile-categories__more i {
        font-size: 15px;
    }
}

/* Keep long category rails navigable without forcing users to drag the
   horizontal list. The arrows stay outside the scrollable content. */
body.lb-restaurant-reference .rf-mobile-categories__arrow {
    align-items: center;
    background: #fff !important;
    border: 1px solid var(--demo1-line) !important;
    border-radius: 50% !important;
    color: var(--demo1-orange) !important;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 32px;
    height: 32px;
    justify-content: center;
    margin: 0 2px;
    padding: 0;
    width: 32px;
}

body.lb-restaurant-reference .rf-mobile-categories__arrow:disabled {
    cursor: default;
    opacity: .35;
}

body.lb-restaurant-reference .rf-mobile-categories__arrow[hidden] {
    display: none !important;
}

body.lb-restaurant-reference .rf-mobile-categories__arrow i {
    font-size: 12px;
}

body.lb-restaurant-reference .rf-mobile-categories__slider {
    min-width: 0;
    overflow: hidden;
}

/* The popular-dishes cards use discreet edge buttons instead of exposing a
   native horizontal scrollbar. */
body.lb-restaurant-reference .rf-popular-carousel-host {
    position: relative;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
    cursor: grab;
    user-select: none;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items.is-dragging {
    cursor: grabbing;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items::-webkit-scrollbar {
    display: none;
    height: 0;
    width: 0;
}

body.lb-restaurant-reference .rf-popular-carousel-arrow {
    align-items: center;
    background: #fff !important;
    border: 1px solid var(--demo1-line) !important;
    border-radius: 50% !important;
    color: var(--demo1-orange) !important;
    cursor: pointer;
    display: inline-flex;
    height: 34px;
    justify-content: center;
    padding: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 34px;
    z-index: 4;
}

body.lb-restaurant-reference .rf-popular-carousel-arrow--previous {
    left: 4px;
}

body.lb-restaurant-reference .rf-popular-carousel-arrow--next {
    right: 4px;
}

body.lb-restaurant-reference .rf-popular-carousel-arrow:disabled {
    cursor: default;
    opacity: .35;
}

body.lb-restaurant-reference .rf-popular-carousel-arrow[hidden] {
    display: none !important;
}

body.lb-restaurant-reference .rf-popular-carousel-arrow i {
    font-size: 12px;
}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference .rf-mobile-categories__arrow {
        display: none !important;
    }
}

/* Let the restaurant menu use the full narrow viewport. The surrounding
   header and cart containers keep their own responsive spacing. */
@media (max-width: 991.98px) {
    body.lb-restaurant-reference main > div > .container:has(.lb-restaurant-layout) {
        box-sizing: border-box !important;
        max-width: none !important;
        padding-left: 4px !important;
        padding-right: 4px !important;
        width: 100% !important;
    }
}

/* Tablet: render the delivery/pickup switch below the restaurant info,
   instead of keeping a duplicate switch in the header. */
@media (min-width: 768px) and (max-width: 991.98px) {
    /* The time-slot control is not needed in the tablet layout. Keep the
       delivery/pickup switch visible, but remove every visible time summary. */
    body.lb-restaurant-reference .rf-order-time-summary {
        display: none !important;
    }

    body.lb-restaurant-reference > header.header .lb-segment--header,
    body.lb-restaurant-reference > header.header .rf-order-type-switch,
    body.lb-restaurant-reference > header.header [aria-label="Lieferung oder Abholung"] {
        display: none !important;
    }

    body.lb-restaurant-reference > header.header .lb-header__center .lb-locpill {
        display: none !important;
    }

    /* Tablet uses the same compact header composition as mobile: back,
       brand and menu only. */
    body.lb-restaurant-reference > header.header .lb-header__center,
    body.lb-restaurant-reference > header.header .lb-actions {
        display: none !important;
    }

    body.lb-restaurant-reference > header.header .navbar-brand .rf-brand-copy {
        display: inline-flex !important;
        flex-direction: column !important;
        justify-content: center !important;
    }

    body.lb-restaurant-reference > header.header .navbar-brand .rf-brand-copy__subtitle {
        display: block !important;
        font-size: 12px !important;
        line-height: 1.15 !important;
        white-space: nowrap !important;
    }

    body.lb-restaurant-reference > header.header .lb-burger--desktop {
        margin-left: auto !important;
    }

    body.lb-restaurant-reference .lb-menu-panel {
        margin-top: 0 !important;
    }

    body.lb-restaurant-reference .rf-mobile-topbar {
        background: #fff !important;
        display: contents !important;
    }
}

/* Lieferando-like search control: one rounded field with the brand icon on
   the left and no nested/double border. */
body.lb-restaurant-reference .rf-menu-search__field {
    align-items: center;
    background: #fff !important;
    border: 1px solid #d8d4cf !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    box-sizing: border-box;
    min-height: 48px !important;
    overflow: hidden;
}

body.lb-restaurant-reference .rf-menu-search__input {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-height: 46px !important;
    padding: 10px 18px 10px 42px !important;
}

body.lb-restaurant-reference .rf-menu-search__icon {
    color: var(--demo1-orange) !important;
    left: 15px !important;
    z-index: 1;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search-wrap,
    body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search,
    body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search__field {
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }
}

body.lb-restaurant-reference .rf-menu-search__input,
body.lb-restaurant-reference .rf-menu-search__input::placeholder {
    font-weight: 400 !important;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel .menu-search,
    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search-wrap,
    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search,
    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search__field {
        max-width: none !important;
        width: 100% !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search-wrap {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference .rf-mobile-topbar .rf-order-type-switch {
        transform: translateY(-67px) !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    body.lb-restaurant-reference .lb-menu-panel > .menu-search,
    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search-wrap,
    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search,
    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search__field {
        box-sizing: border-box !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        width: 100% !important;
    }

    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search-wrap {
        grid-column: 1 !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .menu-search {
        box-shadow: none !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search-wrap {
        border: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none !important;
        padding: 8px 0 12px !important;
        width: 100% !important;
    }
}

body.lb-restaurant-reference .rf-menu-search__input,
body.lb-restaurant-reference .rf-menu-search__input::placeholder {
    font-weight: 400 !important;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel .menu-search,
    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search-wrap,
    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search,
    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search__field {
        max-width: none !important;
        width: 100% !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .rf-menu-search-wrap {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

/* Final search-field treatment: one rounded control, like Lieferando. */
body.lb-restaurant-reference .rf-menu-search__field {
    align-items: center;
    background: #fff !important;
    border: 1px solid #d8d4cf !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    box-sizing: border-box;
    min-height: 48px !important;
    overflow: hidden;
}

body.lb-restaurant-reference .rf-menu-search__input {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-height: 46px !important;
    padding: 10px 18px 10px 42px !important;
}

body.lb-restaurant-reference .rf-menu-search__icon {
    color: var(--demo1-orange) !important;
    left: 15px !important;
    z-index: 1;
}

/* Final search-field treatment: one rounded control, like Lieferando. */
body.lb-restaurant-reference .rf-menu-search__field {
    align-items: center;
    background: #fff !important;
    border: 1px solid #d8d4cf !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    box-sizing: border-box;
    min-height: 48px !important;
    overflow: hidden;
}

body.lb-restaurant-reference .rf-menu-search__input {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-height: 46px !important;
    padding: 10px 18px 10px 42px !important;
}

body.lb-restaurant-reference .rf-menu-search__icon {
    color: var(--demo1-orange) !important;
    left: 15px !important;
    z-index: 1;
}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference .lb-menu-panel {
        margin-top: -8px !important;
    }

    body.lb-restaurant-reference .rf-mobile-topbar {
        margin-top: -8px !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-info {
        transform: translate(-8px, -8px) !important;
        margin-top: -8px !important;
        width: calc(100% + 8px) !important;
    }
}

/* Move only the delivery/pickup switch into the marked area below the
   restaurant details; surrounding containers keep their original layout. */
@media (max-width: 991.98px) {
    body.lb-restaurant-reference .rf-hero {
        border-bottom: 0 !important;
    }

    body.lb-restaurant-reference .rf-mobile-topbar .rf-order-type-switch {
        position: relative !important;
        transform: translateY(-75px) !important;
        z-index: 20 !important;
    }
}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference .rf-mobile-topbar .rf-order-type-switch {
        transform: translateY(-67px) !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .rf-mobile-topbar > .py-2 {
        border: 0 !important;
        box-shadow: none !important;
    }

    body.lb-restaurant-reference .rf-mobile-topbar .rf-order-type-switch {
        margin-left: auto !important;
        margin-right: auto !important;
        padding: 5px !important;
        transform: translateY(-18px) !important;
        width: 480px !important;
        max-width: calc(100% - 32px) !important;
    }

    body.lb-restaurant-reference .rf-mobile-topbar .rf-order-type-switch__btn {
        padding: 6px 12px !important;
    }

    body.lb-restaurant-reference .menu-search {
        border: 0 !important;
        box-shadow: none !important;
        margin-top: -27px !important;
    }

    body.lb-restaurant-reference .menu-search .rf-menu-search-wrap {
        border: 0 !important;
        padding: 8px 0 12px !important;
    }
}

body.lb-restaurant-reference .rf-hero__title,
body.lb-restaurant-reference .rf-hero__mobile-title {
    color: #242424 !important;
    font-weight: 800;
    text-decoration: underline;
    text-decoration-color: #242424;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

body.lb-restaurant-reference .rf-hero__title-link,
body.lb-restaurant-reference .rf-hero__title-link:visited,
body.lb-restaurant-reference .rf-hero__title-link:hover,
body.lb-restaurant-reference .rf-hero__title-link:focus,
body.lb-restaurant-reference .rf-hero__title-link:active {
    color: #242424 !important;
    text-decoration-color: #242424 !important;
}

body.lb-restaurant-reference .rf-hero__rating,
body.lb-restaurant-reference .rf-hero__mobile-rating {
    color: var(--demo1-muted);
}

body.lb-restaurant-reference .rf-hero__rating .rf-star,
body.lb-restaurant-reference .rf-hero__mobile-rating span {
    color: var(--demo1-orange);
}

/* Match the compact Lieferando-style rating line: one orange star followed
   by the underlined score and review count. */
body.lb-restaurant-reference .rf-hero__rating {
    align-items: center;
    display: inline-flex;
    gap: 4px;
    line-height: 20px;
    white-space: nowrap;
}

body.lb-restaurant-reference .rf-hero__rating .rf-star:not(:first-child) {
    display: none;
}

body.lb-restaurant-reference .rf-hero__rating .rf-star:first-child {
    font-size: 0;
}

body.lb-restaurant-reference .rf-hero__rating .rf-star:first-child::before {
    color: var(--demo1-orange);
    content: '★';
    font-size: 16px;
}

body.lb-restaurant-reference .rf-hero__rating .rf-star:first-child::after {
    content: none;
}

body.lb-restaurant-reference .rf-hero__rating-score,
body.lb-restaurant-reference .rf-hero__rating-count,
body.lb-restaurant-reference .rf-hero__mobile-rating-score,
body.lb-restaurant-reference .rf-hero__mobile-rating-count {
    color: #242424 !important;
    font-weight: 700;
    font-size: 13px;
    white-space: nowrap;
    text-decoration: underline;
    text-decoration-color: #242424 !important;
    text-decoration-thickness: 1px !important;
    text-decoration-style: solid !important;
    text-underline-offset: 2px !important;
}

/* Keep the mobile rating identical to the desktop/tablet rating even when
   the underlying button/link theme colors are applied later. */
body.lb-restaurant-reference .rf-hero__mobile-rating .rf-hero__mobile-rating-score,
body.lb-restaurant-reference .rf-hero__mobile-rating .rf-hero__mobile-rating-count {
    color: #242424 !important;
    font-size: 13px !important;
    text-decoration-color: #242424 !important;
    text-decoration-thickness: 1px !important;
    text-decoration-style: solid !important;
}

body.lb-restaurant-reference .rf-hero__rating-score,
body.lb-restaurant-reference .rf-hero__rating-count,
body.lb-restaurant-reference .rf-hero__mobile-rating-score,
body.lb-restaurant-reference .rf-hero__mobile-rating-count,
body.lb-restaurant-reference .rf-hero__rating-score:link,
body.lb-restaurant-reference .rf-hero__rating-count:link,
body.lb-restaurant-reference .rf-hero__mobile-rating-score:link,
body.lb-restaurant-reference .rf-hero__mobile-rating-count:link,
body.lb-restaurant-reference .rf-hero__rating-score:visited,
body.lb-restaurant-reference .rf-hero__rating-count:visited,
body.lb-restaurant-reference .rf-hero__mobile-rating-score:visited,
body.lb-restaurant-reference .rf-hero__mobile-rating-count:visited {
    color: #242424 !important;
    text-decoration-color: #242424 !important;
    text-decoration-thickness: 1px !important;
    text-decoration-style: solid !important;
}

body.lb-restaurant-reference .rf-hero__mobile-rating {
    align-items: center;
    display: inline-flex;
    gap: 4px;
    font-size: 13px;
    line-height: 18px;
    white-space: nowrap;
}

body.lb-restaurant-reference .rf-hero__mobile-rating > span:first-child {
    color: var(--demo1-orange) !important;
    font-size: 16px !important;
    line-height: 1 !important;
}

/* No separator belongs under the star. Only the score and review count carry
   the black text underline above. */
body.lb-restaurant-reference .rf-hero__rating,
body.lb-restaurant-reference .rf-hero__mobile-rating {
    border-bottom: 0 !important;
}

body.lb-restaurant-reference .rf-hero__delivery-meta {
    align-items: center;
    color: #242424;
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    font-weight: 400;
    gap: 4px;
    line-height: 20px;
    margin-top: 2px;
    white-space: nowrap;
}

body.lb-restaurant-reference .rf-hero__delivery-meta i {
    color: #242424;
    font-size: 12px;
}

body.lb-restaurant-reference .rf-hero__delivery-meta span {
    text-decoration: none !important;
}

body.lb-restaurant-reference .rf-hero .rating-note,
body.lb-restaurant-reference .rf-hero .rf-hero__sub {
    display: none !important;
}

body.lb-restaurant-reference .lb-menu-panel .menu-search,
body.lb-restaurant-reference .lb-menu-panel .rf-menu-search-wrap {
    background: transparent;
    border: 0;
}

body.lb-restaurant-reference .lb-menu-panel .rf-menu-search__field,
body.lb-restaurant-reference .lb-menu-panel .rf-menu-search__input {
    min-height: 56px;
    border: 2px solid #d2cec8;
    border-radius: 999px;
    background: #fff;
    box-shadow: none;
}

body.lb-restaurant-reference .lb-menu-panel .rf-menu-search-wrap {
    padding: 24px 16px 12px !important;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories,
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__inner {
    border: 1px solid var(--demo1-line);
    border-radius: 0 0 14px 14px;
    background: #fff;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories a,
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories button {
    border-radius: 999px;
    color: var(--demo1-ink);
    font-weight: 700;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories a.active,
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories button.active {
    background: var(--demo1-ink);
    color: #fff;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories {
    padding: 8px 16px;
    overflow-x: auto;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__row {
    display: flex;
    align-items: center;
    gap: 8px;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__slider,
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__scroll {
    min-width: 0;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__list {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: max-content;
    border: 0;
    border-radius: 0;
    padding: 0 !important;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories a,
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories button {
    padding: 9px 13px;
    white-space: nowrap;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__list li:has(a[href*="beliebte"]) {
    order: -1;
}

body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories__list li:has(a[href*="beliebte"]) a {
    background: var(--demo1-ink);
    color: #fff;
}

body.lb-restaurant-reference .menu-group,
body.lb-restaurant-reference .menu-group-item {
    background: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.lb-restaurant-reference .menu-group .category-title,
body.lb-restaurant-reference .menu-group button.category-title,
body.lb-restaurant-reference .menu-group .menu-group-item button.category-title {
    padding: 26px 0 12px;
    background: #fff !important;
    background-color: #fff !important;
    border: 0 !important;
    border-color: transparent !important;
    border-radius: 0;
    box-shadow: none !important;
    color: var(--demo1-ink);
    font-weight: 800;
    font-size: 1.35rem;
}

body.lb-restaurant-reference .menu-group .category-title > span {
    background: #fff !important;
    border: 0 !important;
    box-shadow: none !important;
}

/* Keep the category description close to its category heading. */
body.lb-restaurant-reference .menu-group .category-title {
    padding-bottom: 4px !important;
}

body.lb-restaurant-reference .menu-group .category-title > span {
    padding-bottom: 4px !important;
}

body.lb-restaurant-reference .menu-group .menu-category > p.mt-2 {
    margin-top: 0 !important;
}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference .menu-group .menu-category > p {
        padding-left: 10px !important;
    }
}

/* Keep configured category and product imagery visible. A product without an
   image receives a neutral visual placeholder without changing its content. */
body.lb-restaurant-reference .menu-group-image img.img-fluid,
body.lb-restaurant-reference .menu-group-item .menu-group-image {
    display: block;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0 0 8px;
    scroll-snap-type: x proximity;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item.menu-item-card {
    box-sizing: border-box;
    flex: 0 0 292px;
    margin-bottom: 0 !important;
    min-height: 124px;
    height: auto !important;
    overflow: hidden;
    padding: 12px !important;
    scroll-snap-align: start;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row {
    position: relative;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start;
    height: 100%;
    min-height: 0 !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item-image {
    flex: 0 0 88px !important;
    width: 88px !important;
    height: 88px !important;
    margin: 0 12px 0 0 !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background-color: #fff !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-main {
    flex: 1 1 auto !important;
    min-width: 0;
    width: auto !important;
    margin: 0 !important;
    padding-right: 0 !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-desc {
    display: none !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-price-mobile {
    display: none !important;
}

body.lb-restaurant-reference .menu-productinfo-overlay {
    align-items: center !important;
    justify-content: center !important;
    padding: 1rem !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-tags-row {
    align-items: center;
    display: flex !important;
    flex-wrap: wrap;
    gap: 4px;
    margin: 4px 0 0 !important;
    max-width: 100%;
    min-width: 0;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-tags-row .menu-tag-pill {
    align-items: center;
    display: inline-flex !important;
    flex: 0 1 auto;
    font-size: 10px;
    line-height: 16px;
    max-width: 100%;
    min-height: 18px;
    overflow: hidden;
    padding: 1px 5px !important;
    white-space: nowrap;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-tags-row .menu-tag-pill img {
    flex: 0 0 auto;
    height: 13px;
    margin-right: 3px;
    width: 13px;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-productinfo-row {
    display: none !important;
}

/* Keep restaurant-card tags pixel-equivalent to the item-popup tags. */
body.lb-restaurant-reference .menu-tags-row .menu-tag-pill.menu-item-tag {
    align-items: center !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    display: inline-flex !important;
    flex: 0 1 auto !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    gap: 3px !important;
    line-height: 1 !important;
    min-height: 0 !important;
    padding: 0 8px 0 0 !important;
    padding-left: 0 !important;
    white-space: nowrap !important;
}

body.lb-restaurant-reference .menu-tags-row .menu-item-tag__icon-shell {
    align-items: center !important;
    background: var(--tag-icon-bg) !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    flex: 0 0 24px !important;
    height: 24px !important;
    justify-content: center !important;
    margin-left: -8px !important;
    padding-left: 0 !important;
    order: -1 !important;
    width: 24px !important;
}

body.lb-restaurant-reference .menu-tags-row .menu-item-tag__icon {
    align-items: center !important;
    background: var(--tag-svg) !important;
    border-radius: 50% !important;
    display: inline-flex !important;
    flex: 0 0 20px !important;
    height: 20px !important;
    justify-content: center !important;
    width: 20px !important;
}

body.lb-restaurant-reference .menu-tags-row .menu-item-tag__icon img {
    height: 16px !important;
    margin: 0 !important;
    object-fit: contain !important;
    width: 16px !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-detail {
    position: absolute !important;
    right: 0;
    bottom: 0;
    display: flex !important;
    width: auto !important;
    align-items: center;
    justify-content: flex-end !important;
    gap: 8px;
    padding: 0 !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-price {
    padding-right: 0 !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-productinfo-label {
    display: block !important;
    margin-top: 6px !important;
    color: inherit !important;
    cursor: pointer !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1px;
    text-underline-offset: 2px;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-productinfo-label {
    display: none !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-main > .menu-productinfo-trigger {
    display: block !important;
    margin: 6px 0 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    cursor: pointer !important;
    font-size: inherit;
    line-height: 1.2;
    text-align: left;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-name-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0 6px;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-name-row > .menu-productinfo-trigger {
    display: inline-block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: inherit !important;
    cursor: pointer !important;
    font: inherit !important;
    font-weight: 400 !important;
    line-height: 20px !important;
    text-align: left;
    text-decoration: underline !important;
    text-underline-offset: 2px;
}

/* Lieferando-style type scale for regular menu cards; carousel cards stay unchanged. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-name {
    font-size: 20px !important;
    line-height: 24px !important;
}

body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-productinfo-trigger,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-desc,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-price-mobile,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .menu-price {
    font-size: 14px !important;
    line-height: 20px !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-name-row {
    display: block !important;
}

body.lb-restaurant-reference .menu-item.menu-item-card {
    border: 1px solid #e5e1dc;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 3px 12px rgba(30, 24, 20, .08);
}

body.lb-restaurant-reference .menu-item.menu-item-card .btn-cart {
    border-color: var(--demo1-orange);
    background: var(--demo1-orange);
    color: #fff;
}

body.lb-restaurant-reference .menu-item.menu-item-card .btn-cart i {
    color: #fff;
}

body.lb-restaurant-reference .menu-item.menu-item-card .btn-cart {
    background: #fff !important;
    border-color: rgba(230, 81, 0, .48) !important;
    color: #e65100 !important;
}

body.lb-restaurant-reference .menu-item.menu-item-card .btn-cart i {
    color: #e65100 !important;
    font-weight: 400 !important;
}

body.lb-restaurant-reference .menu-item.menu-item-card .btn-cart i.fa.fa-plus {
    color: #e65100 !important;
    font-weight: 400 !important;
    -webkit-text-stroke: 0 !important;
}

/* Keep every menu-card plus control at the card's upper-right corner while
   leaving the configured price at the lower edge of the card. */
body.lb-restaurant-reference .menu-item.menu-item-card .menu-card-row > .menu-detail {
    inset: 0 !important;
    width: 100% !important;
    pointer-events: none;
}

/* Standalone menu cards need their own positioning context as well. Without
   it, the absolute plus control can attach to the page and appear in the
   header/search area instead of at the card's upper-right corner. */
body.lb-restaurant-reference .menu-item.menu-item-card .menu-card-row {
    position: relative !important;
}

body.lb-restaurant-reference .menu-item.menu-item-card .menu-card-row > .menu-detail .menu-price {
    position: absolute !important;
    left: 0 !important;
    bottom: 0 !important;
}

body.lb-restaurant-reference .menu-item.menu-item-card .menu-card-row > .menu-detail .menu-button {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    pointer-events: auto;
}

/* Mobile/tablet overrides must keep the first carousel control at the
   upper-right of its card as well. */
body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail {
    inset: 0 !important;
    width: 100% !important;
    bottom: 0 !important;
    z-index: 3 !important;
    pointer-events: none;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-button {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    z-index: 4 !important;
    pointer-events: auto;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-main > .menu-price {
    display: block !important;
    position: static !important;
    inset: auto !important;
    margin-top: 4px !important;
    padding: 0 !important;
    width: auto !important;
}

/* Keep an offer's old price, current price and ending-soon star together. */
body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .rf-popular-price-row {
    align-items: baseline;
    display: flex !important;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 4px !important;
    min-width: 0;
    width: 100%;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .rf-popular-price-row .menu-price,
body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .rf-popular-price-row .menu-meta {
    align-items: baseline;
    display: inline-flex !important;
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0 !important;
    position: static !important;
    width: auto !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .rf-popular-price-row .menu-meta .fa-star {
    color: #ffb400 !important;
    font-size: 14px;
    line-height: 1;
}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        padding-inline: 12px !important;
        gap: 12px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        box-sizing: border-box !important;
        flex: 0 0 min(292px, calc(100vw - 32px)) !important;
        width: min(292px, calc(100vw - 32px)) !important;
        margin: 0 !important;
        padding: 12px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail {
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        height: 100% !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-button {
        top: 0 !important;
        right: var(--rf-sticky-shadow-right, 0px) !important;
        bottom: auto !important;
        transform: none !important;
    }
}

/* Final non-carousel price weight on every viewport. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-price-mobile,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-price-mobile b,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .menu-price,
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail .menu-price b {
    font-weight: 400 !important;
}

@media (min-width: 768px) {
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-price {
        left: 0 !important;
        top: 54px !important;
        bottom: auto !important;
        padding-right: 0 !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .rf-popular-price-row .menu-price {
        left: auto !important;
        top: auto !important;
    }
}

/* The popular carousel follows the same compact card direction on every
   viewport: text on the left, configured product image on the right. */
body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-item-image {
    order: 2 !important;
    margin: 0 0 0 12px !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-main {
    order: 1 !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-item-image {
    flex: 0 0 96px !important;
    width: 96px !important;
    height: 96px !important;
}

/* Regular Lieferando categories use a two-column list of compact cards.
   Keep the popular carousel above separate because it is a horizontal rail. */
body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card {
    box-sizing: border-box;
    min-height: 116px;
    margin-bottom: 0 !important;
    padding: 12px !important;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row {
    position: relative;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start;
    min-height: 88px;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item-image {
    order: 2;
    flex: 0 0 108px !important;
    width: 108px !important;
    height: 80px !important;
    margin: 0 0 0 12px !important;
    border-radius: 10px !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-main {
    order: 1;
    flex: 1 1 auto !important;
    min-width: 0;
    width: auto !important;
    margin: 0 !important;
    padding-right: 0 !important;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-name-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-productinfo-row {
    display: none !important;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-desc {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    overflow: hidden;
}

body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-detail {
    position: absolute !important;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex !important;
    width: auto !important;
    align-items: center;
    gap: 8px;
    padding: 0 !important;
}

/* The page keeps all category collapses in one menu group. Target the actual
   category panels so Salat, Pizza and Burger receive the same two-column
   treatment as the reference list. */
body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-items {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-item.menu-item-card {
    box-sizing: border-box;
    min-height: 116px;
    margin-bottom: 0 !important;
    padding: 12px !important;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-card-row {
    position: relative;
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start;
    min-height: 88px;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-item-image {
    order: 2;
    flex: 0 0 108px !important;
    width: 108px !important;
    height: 80px !important;
    margin: 0 0 0 12px !important;
    border-radius: 10px !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-main {
    order: 1;
    flex: 1 1 auto !important;
    min-width: 0;
    width: auto !important;
    margin: 0 !important;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-name-row {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-productinfo-row {
    display: none !important;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-detail {
    position: absolute !important;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex !important;
    width: 100% !important;
    align-items: flex-end;
    justify-content: space-between !important;
    gap: 8px;
    padding: 0 !important;
    pointer-events: none;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-detail .menu-price {
    padding-right: 0 !important;
}

body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-detail .menu-button,
body.lb-restaurant-reference :is(
    #category-category-salat-collapse,
    #category-category-pizza-collapse,
    #category-category-burger-collapse
) .menu-detail .btn-cart {
    pointer-events: auto;
}

body.lb-restaurant-reference .affix-cart .panel-cart {
    border: 0;
    border-left: 0 !important;
    border-radius: 0;
    box-shadow: none;
}

body.lb-restaurant-reference .affix-cart .panel-cart .cart-box,
body.lb-restaurant-reference .affix-cart .panel-cart .cart-items {
    background: #fff;
}

/* Empty-cart copy only: visual text and typography, without changing cart behavior. */
body.lb-restaurant-reference .affix-cart #cart-items .empty-cart + p {
    font-size: 0 !important;
    line-height: 0 !important;
}

body.lb-restaurant-reference .affix-cart #cart-items .empty-cart {
    background-color: #fff !important;
}

body.lb-restaurant-reference .affix-cart #cart-items .empty-cart + p::before {
    content: "Bestellung zusammenstellen";
    display: block;
    margin-bottom: 8px;
    color: #111827;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.25;
}

body.lb-restaurant-reference .affix-cart #cart-items .empty-cart + p::after {
    content: "Wähle leckere Gerichte aus der Speisekarte aus und schließe deine Bestellung ab";
    display: block;
    max-width: 280px;
    margin: 0 auto;
    color: #111827;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
}

/* Match the reference page's 70/30 menu-to-cart grid on wide screens. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .affix-cart .local-timeslot,
    body.lb-restaurant-reference .affix-cart #cart-header-order {
        display: none !important;
    }

    body.lb-restaurant-reference .affix-cart .rf-order-type-switch--cart {
        display: flex !important;
        width: 100%;
        margin: 0 0 16px;
    }

    body.lb-restaurant-reference .affix-cart .rf-order-type-switch--cart {
        gap: 4px;
        padding: 5px;
        box-sizing: border-box;
    }

    body.lb-restaurant-reference .affix-cart .rf-order-type-switch--cart .rf-order-type-switch__btn {
        flex: 1 1 50%;
        min-width: 0;
    }

    /* Keep the restaurant header aligned to the viewport: brand/back on the
       far left, while the action controls stay on the far right. */
    body.lb-restaurant-reference > header.header .lb-header__inner {
        width: 100% !important;
        max-width: none !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    body.lb-restaurant-reference > header.header .lb-header__center {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
    }

    body.lb-restaurant-reference > header.header .lb-actions {
        margin-left: auto !important;
    }

    body.lb-restaurant-reference .container:has(> .lb-restaurant-layout) {
        width: 100% !important;
        max-width: none !important;
    }

    body.lb-restaurant-reference .lb-restaurant-layout {
        display: flex;
        flex-wrap: nowrap;
        padding-top: 0 !important;
    }

    body.lb-restaurant-reference .rf-hero__bg,
    body.lb-restaurant-reference .rf-hero__bg-img {
        height: clamp(240px, 24vw, 380px) !important;
    }

    /* Align the restaurant information row with the centered 850px menu
       column instead of starting at the outer edge of the hero. */
    body.lb-restaurant-reference .rf-hero__card--desktop {
        padding-left: max(20px, calc((100% - 850px) / 2)) !important;
        padding-right: max(20px, calc((100% - 850px) / 2)) !important;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__logo-wrap {
        position: absolute !important;
        left: max(20px, calc((100% - 850px) / 2)) !important;
        top: -106px !important;
        width: 96px !important;
        height: 96px !important;
        padding: 8px !important;
        box-sizing: border-box;
        background: #fff !important;
        border-radius: 12px;
        box-shadow: 0 4px 14px rgba(24, 24, 24, .16);
        z-index: 4;
    }

    body.lb-restaurant-reference .lb-restaurant-layout > .col-lg-6 {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        max-width: none !important;
        padding-right: 0 !important;
    }

    body.lb-restaurant-reference .lb-restaurant-layout > .col-lg-4 {
        flex: 0 0 350px !important;
        max-width: 350px !important;
        margin-left: auto !important;
        padding-left: 0 !important;
        border-left: 1px solid #e5e7eb !important;
    }

    /* Lieferando keeps the cart at the viewport's right edge while the menu
       content remains centered in the much wider main column. */
    body.lb-restaurant-reference .lb-menu-panel > .menu-search,
    body.lb-restaurant-reference .lb-menu-panel > .menu-list,
    body.lb-restaurant-reference .lb-menu-panel > .lb-mobile-categories-slot {
        width: 100%;
        max-width: 930px;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Align the menu block with the restaurant name and the right-side
       restaurant actions, while letting it shrink on smaller desktops. */
    body.lb-restaurant-reference .lb-menu-panel {
        width: min(930px, 100%);
        max-width: 930px;
        margin-left: auto !important;
        margin-right: auto !important;
        border-left: 0 !important;
        border-right: 0 !important;
        box-shadow: none !important;
    }

    body.lb-restaurant-reference .rf-hero__bg,
    body.lb-restaurant-reference .rf-hero__bg-img {
        max-width: 100%;
    }

    /* Desktop reference layout uses square top corners for the hero image. */
    body.lb-restaurant-reference .rf-hero,
    body.lb-restaurant-reference .rf-hero__media,
    body.lb-restaurant-reference .rf-hero__bg {
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
    }
}

/* The mobile/tablet switch is the single shared control at every breakpoint. */
body.lb-restaurant-reference .rf-order-type-switch--legacy {
    display: none !important;
}

/* Cart delivery/pickup switch background. */
body.lb-restaurant-reference .rf-order-type-switch--cart {
    background-color: #e6e3dd !important;
}

/* The desktop cart column is active through 1199px. Hide the mobile CTA for
   the remaining desktop-width range as well. */
@media (min-width: 1101px) and (max-width: 1199.98px) {
    body.lb-restaurant-reference #cart-mobile-buttons,
    body.lb-restaurant-reference #cart-mobile-buttons.cart-mobile-buttons {
        display: none !important;
    }
}

/* At the desktop breakpoint (992px) the menu column is already the full
   restaurant main column. Keep the search field and category rail in that
   same container instead of applying the narrower desktop inset. */
@media (min-width: 992px) and (max-width: 1100px) {
    body.lb-restaurant-reference .lb-menu-panel,
    body.lb-restaurant-reference .lb-menu-panel > .menu-search,
    body.lb-restaurant-reference .lb-menu-panel > .menu-list,
    body.lb-restaurant-reference .lb-menu-panel > .lb-mobile-categories-slot,
    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search-wrap,
    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search,
    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search__field {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search-wrap {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* The tablet category rail inherits the header offset as a relative
       `top` value. At this breakpoint it is already in normal flow, so that
       offset creates the empty strip below the search field. */
    body.lb-restaurant-reference .lb-menu-panel > .lb-mobile-categories-slot .rf-mobile-categories {
        top: 0 !important;
    }

    /* From 992px onward this is the desktop restaurant layout with the
       right-hand cart column. The floating mobile cart CTA must stay hidden. */
    body.lb-restaurant-reference #cart-mobile-buttons,
    body.lb-restaurant-reference #cart-mobile-buttons.cart-mobile-buttons {
        display: none !important;
    }
}

/* On phones the popular-category carousel must sit inside the menu column,
   with a clear breathing space at both viewport edges. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        margin-inline: 0 !important;
        padding-inline: 20px !important;
        scroll-padding-inline: 20px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        flex-basis: min(292px, calc(100vw - 48px)) !important;
        width: min(292px, calc(100vw - 48px)) !important;
    }
}

/* Final responsive menu navigation override. */
@media (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        position: sticky !important;
        top: 0 !important;
        z-index: 40 !important;
        background: #fff !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        position: sticky !important;
        top: var(--rf-sticky-search-height, 68px) !important;
        z-index: 39 !important;
        background: #fff !important;
    }
}
/* Final responsive menu navigation: keep search and category navigation
   visible while the restaurant menu scrolls. */
@media (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        position: sticky !important;
        top: 0 !important;
        z-index: 40 !important;
        background: #fff !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        position: sticky !important;
        top: var(--rf-sticky-search-height, 68px) !important;
        z-index: 39 !important;
        background: #fff !important;
    }
}

/* Final phone-only edge spacing for the popular-category carousel. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        margin-inline: 0 !important;
        padding-inline: 20px !important;
        scroll-padding-inline: 20px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        flex-basis: min(292px, calc(100vw - 48px)) !important;
        width: min(292px, calc(100vw - 48px)) !important;
    }
}

/* Final mobile alignment for the popular carousel cards. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        padding-inline: 12px !important;
        gap: 12px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        box-sizing: border-box !important;
        flex: 0 0 min(292px, calc(100vw - 32px)) !important;
        width: min(292px, calc(100vw - 32px)) !important;
        margin: 0 !important;
        padding: 12px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-item-image {
        order: 2 !important;
        flex: 0 0 96px !important;
        width: 96px !important;
        height: 96px !important;
        margin: 0 0 0 12px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail {
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        pointer-events: none;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-price {
        left: 0 !important;
        top: 54px !important;
        bottom: auto !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-button {
        position: absolute !important;
        top: 0 !important;
        right: 0 !important;
        bottom: auto !important;
        transform: none !important;
        pointer-events: auto;
    }
}

/* Keep the popular carousel card anatomy identical on mobile and tablet:
   right-side image, top-right plus control and price below the product info. */
body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-item-image {
    order: 2 !important;
    flex: 0 0 96px !important;
    width: 96px !important;
    height: 96px !important;
    margin: 0 0 0 12px !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background-clip: padding-box !important;
    clip-path: inset(0 round 10px);
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail {
    inset: 0 !important;
    width: 100% !important;
    bottom: 0 !important;
    pointer-events: none;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-price {
    left: 0 !important;
    top: 54px !important;
    bottom: auto !important;
    padding-right: 0 !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-button {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: auto !important;
    pointer-events: auto;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail {
    z-index: 3 !important;
}

body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row > .menu-detail .menu-button {
    z-index: 4 !important;
}

/* Final mobile placement: the search follows the mobile switch block with no
   spacer left by the switch's visual upward positioning. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .rf-mobile-topbar + .menu-search {
        border: 0 !important;
        box-shadow: none !important;
        margin-top: -62px !important;
        max-width: none !important;
        width: 100% !important;
    }

    body.lb-restaurant-reference .lb-menu-panel > .rf-mobile-topbar + .menu-search .rf-menu-search-wrap {
        border: 0 !important;
        padding: 8px 16px 12px !important;
    }
}

/* The delivery/pickup switch is the only mobile control needed here. Keep
   the search immediately below it and remove the obsolete time-slot row. */
@media (max-width: 991.98px) {
    body.lb-restaurant-reference .rf-mobile-topbar .rf-order-time-summary {
        display: none !important;
    }

    body.lb-restaurant-reference .rf-mobile-topbar > .py-2 {
        border-top: 0 !important;
        justify-content: center !important;
    }

}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        border: 0 !important;
        box-shadow: none !important;
        margin-top: -62px !important;
    }

    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search-wrap {
        border: 0 !important;
        padding: 8px 16px 12px !important;
    }
}

@media (max-width: 991.98px) {
    /* Tablet headers contain the delivery controls and are taller than the
       desktop header. A fixed sticky search offset cannot track that dynamic
       height, so let the search move with the menu on narrow screens. */
    body.lb-restaurant-reference .lb-menu-panel .menu-search {
        position: static !important;
        top: auto !important;
    }

    /* Keep the search track opaque so nearby scrolling cards never show
       through the control. */
    body.lb-restaurant-reference .lb-menu-panel .menu-search {
        background: #fff !important;
        box-shadow: 0 4px 12px rgba(30, 24, 20, .08);
        isolation: isolate;
        z-index: 30;
    }

    body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search-wrap {
        background: #fff !important;
    }

    /* The category bar is wrapped by a sticky slot in the base theme. On
       tablet/mobile that wrapper overlaps the first product row while the
       page scrolls, even when the bar itself is non-sticky. */
    body.lb-restaurant-reference .lb-mobile-categories-slot {
        position: static !important;
        top: auto !important;
    }

    body.lb-restaurant-reference .lb-cookie-banner {
        align-items: stretch;
        bottom: 12px;
        box-sizing: border-box;
        display: flex !important;
        flex-direction: column;
        gap: 12px;
        left: 12px;
        max-width: none;
        padding: 16px;
        right: 12px;
        width: auto;
    }

    body.lb-restaurant-reference .lb-cookie-content {
        min-width: 0;
        width: 100%;
    }

    body.lb-restaurant-reference .lb-cookie-message {
        overflow-wrap: normal;
        white-space: normal;
        word-break: normal;
    }

    body.lb-restaurant-reference .lb-cookie-actions {
        align-items: center;
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        justify-content: flex-end;
        width: 100%;
    }

    body.lb-restaurant-reference .lb-cookie-actions > * {
        flex: 0 1 auto;
        min-height: 42px;
    }

    /* Put the mobile/tablet logo on the cover, matching the desktop
       placement while keeping the restaurant text below it. */
    body.lb-restaurant-reference .rf-hero__mobile-info .rf-hero__mobile-logo {
        left: 16px !important;
        top: -136px !important;
        width: 96px !important;
        min-width: 96px !important;
        height: 96px !important;
        padding: 8px !important;
        box-sizing: border-box;
        background: #fff !important;
        border-radius: 12px;
        box-shadow: 0 4px 14px rgba(24, 24, 24, .16);
        z-index: 4;
    }

    body.lb-restaurant-reference .rf-hero__mobile-info .rf-hero__mobile-copy {
        margin-left: 0 !important;
    }

    body.lb-restaurant-reference .rf-hero {
        border-radius: 0;
        border-inline: 0;
        box-shadow: none;
    }

    body.lb-restaurant-reference .rf-hero__media {
        height: auto !important;
        min-height: 0;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item-image {
        height: 96px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        display: flex;
        flex-wrap: nowrap;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 8px;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item.menu-item-card {
        flex: 0 0 min(292px, calc(100vw - 32px));
        height: 124px;
        min-height: 124px !important;
        margin-bottom: 0 !important;
        padding: 12px !important;
    }

    body.lb-restaurant-reference .lb-restaurant-layout {
        display: block;
        margin: 0;
        padding: 0 !important;
    }

    body.lb-restaurant-reference .lb-restaurant-layout > .col-lg-2,
    body.lb-restaurant-reference .lb-restaurant-layout > .col-lg-4 {
        display: none !important;
    }

    body.lb-restaurant-reference .lb-restaurant-layout > .col-lg-6 {
        max-width: 100%;
        padding: 0;
        width: 100%;
    }

    body.lb-restaurant-reference .lb-restaurant-layout > .col-lg-6 > .content {
        width: 100%;
    }

    body.lb-restaurant-reference .rf-hero {
        border-radius: 0;
        border-inline: 0;
    }

    body.lb-restaurant-reference .rf-hero__bg,
    body.lb-restaurant-reference .rf-hero__bg-img {
        height: 240px;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop {
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 12px;
        padding: 16px;
    }

    body.lb-restaurant-reference .rf-menu-search-wrap {
        padding: 16px !important;
    }

    body.lb-restaurant-reference .rf-menu-search__field,
    body.lb-restaurant-reference .rf-menu-search__input {
        min-height: 52px;
    }

    body.lb-restaurant-reference .rf-mobile-categories {
        position: sticky;
        top: 72px;
        z-index: 20;
        border-radius: 0;
        padding-inline: 12px;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-card-row {
        display: flex !important;
        flex-direction: row !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item-image {
        flex: 0 0 88px !important;
        height: 88px !important;
        margin: 0 12px 0 0 !important;
        width: 88px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-main {
        margin: 0 8px 0 0 !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-detail {
        display: flex !important;
        width: auto !important;
        padding: 0 !important;
    }

    body.lb-restaurant-reference .menu-item.menu-item-card {
        border-radius: 12px;
        box-shadow: 0 2px 8px rgba(30, 24, 20, .06);
    }
}

/* Desktop/tablet: keep the heart at the start of the action area and push
   the menu/social/info controls to the right. */
@media (min-width: 768px) {
    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__actions {
        flex: 1 1 auto !important;
        align-items: center !important;
        column-gap: 8px !important;
        justify-content: flex-end !important;
        margin-left: 0 !important;
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__actions .rf-hero__favorite-btn {
        margin-right: 0 !important;
        order: 1 !important;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__actions .rf-hero__menu-btn {
        flex: 0 0 auto;
        order: 2 !important;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__actions .rf-hero__social-btn {
        order: 3 !important;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__actions .rf-hero__info-btn {
        order: 4 !important;
    }
}

@media (max-width: 767.98px) {
    /* Match the compact Lieferando list: every normal menu row keeps the
       same inner breathing room on both sides, while the popular rail keeps
       its horizontal card behavior. */
    body.lb-restaurant-reference .menu-items > .menu-item.menu-item-card {
        box-sizing: border-box;
        width: calc(100% - 24px) !important;
        margin-left: 12px !important;
        margin-right: 12px !important;
        padding: 12px 14px !important;
    }

    body.lb-restaurant-reference .menu-items > .menu-item.menu-item-card .menu-detail {
        top: 0 !important;
        bottom: auto !important;
        right: 12px !important;
    }

    body.lb-restaurant-reference .menu-items > .menu-item.menu-item-card .menu-card-row.no-image .menu-main {
        padding-right: 42px !important;
    }

    body.lb-restaurant-reference .menu-items > .menu-item.menu-item-card .menu-card-row.has-image .menu-detail {
        top: -4px !important;
        right: -12px !important;
    }

    body.lb-restaurant-reference .menu-items > .menu-item.menu-item-card .menu-card-row.no-image .menu-detail {
        top: 0 !important;
        right: -4px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        width: auto;
        margin-inline: 0 !important;
        padding: 12px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-item.menu-item-card .menu-detail {
        top: auto !important;
        bottom: 0 !important;
        right: 0 !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        gap: 12px;
        padding-inline: 12px;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        flex: 0 0 min(292px, calc(100% - 40px));
        margin: 0 !important;
        border: 1px solid #e5e1dc !important;
        border-radius: 12px !important;
        background: #fff !important;
        box-shadow: 0 2px 8px rgba(30, 24, 20, .06) !important;
    }

    body.lb-restaurant-reference :is(
        #category-category-salat-collapse,
        #category-category-pizza-collapse,
        #category-category-burger-collapse
    ) .menu-items {
        grid-template-columns: minmax(0, 1fr);
        padding-inline: 0;
    }

    body.lb-restaurant-reference :is(
        #category-category-salat-collapse,
        #category-category-pizza-collapse,
        #category-category-burger-collapse
    ) .menu-item.menu-item-card {
        margin-inline: 12px !important;
    }

    body.lb-restaurant-reference :is(
        #category-category-salat-collapse,
        #category-category-pizza-collapse,
        #category-category-burger-collapse
    ) .menu-detail {
        right: 12px !important;
    }

    body.lb-restaurant-reference :is(
        #category-category-salat-collapse,
        #category-category-pizza-collapse,
        #category-category-burger-collapse
    ) .menu-item-image {
        flex-basis: 92px !important;
        width: 92px !important;
    }

    body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        grid-template-columns: minmax(0, 1fr);
        padding-inline: 0;
    }

    body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card {
        min-height: 108px !important;
    }

    body.lb-restaurant-reference .menu-group:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item-image {
        flex-basis: 92px !important;
        width: 92px !important;
    }

    body.lb-restaurant-reference .lb-cookie-actions {
        flex-direction: column;
    }

    body.lb-restaurant-reference .lb-cookie-actions > * {
        width: 100%;
    }

    body.lb-restaurant-reference > header.header {
        min-height: 88px;
    }

    body.lb-restaurant-reference .rf-mobile-categories {
        top: 88px;
    }

    /* Keep every mobile product row compact; desktop card minimums must not
       create large blank gaps between dishes on narrow screens. */
    body.lb-restaurant-reference .menu-item.menu-item-card {
        min-height: 0 !important;
        margin-bottom: 12px !important;
    }

    body.lb-restaurant-reference .menu-item.menu-item-card .menu-card-row {
        min-height: 0 !important;
        align-items: flex-start;
    }

    body.lb-restaurant-reference .menu-item.menu-item-card .menu-main {
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-hero__bg,
    body.lb-restaurant-reference .rf-hero__bg-img {
        height: 200px;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop {
        display: none !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-info {
        display: grid !important;
        grid-template-columns: 64px minmax(0, 1fr);
        gap: 8px 12px;
        padding: 16px;
        position: relative;
    }

    body.lb-restaurant-reference .rf-hero__mobile-logo {
        grid-column: 1;
        grid-row: 1 / span 2;
        width: 64px;
        min-width: 64px;
    }

    body.lb-restaurant-reference .rf-hero__mobile-copy {
        grid-column: 2;
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions {
        display: flex;
        gap: 8px;
        grid-column: 1 / -1;
        width: 100%;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions > * {
        flex: 1 1 0;
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-hero__mobile-info .rf-hero__mobile-title {
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    body.lb-restaurant-reference .rf-hero__mobile-info .rf-hero__mobile-rating {
        margin-top: 4px;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop {
        min-height: 154px;
        padding: 16px !important;
        position: relative;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__logo-wrap {
        left: 16px;
        position: absolute;
        top: 16px;
        width: 64px;
        min-width: 64px;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__text {
        margin-left: 76px;
        min-height: 72px;
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__actions {
        display: flex;
        gap: 8px;
        margin-top: 12px;
        width: 100%;
    }

    body.lb-restaurant-reference .menu-group .category-title {
        font-size: 1.15rem;
        padding: 20px 16px 10px;
    }

    body.lb-restaurant-reference .rf-hero__mobile-info {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        column-gap: 0 !important;
        min-height: 154px !important;
        padding: 16px !important;
        position: relative !important;
        z-index: 5 !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-logo {
        left: 16px !important;
        position: absolute !important;
        top: 16px !important;
        width: 64px !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-copy {
        grid-area: 1 / 1 !important;
        margin-left: 0 !important;
        min-height: 72px;
        position: static !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions {
        align-self: start;
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
        grid-area: auto !important;
        grid-template-columns: none !important;
        margin: 0 !important;
        min-width: 0;
        position: absolute !important;
        top: -158px !important;
        right: 16px !important;
        width: 132px !important;
        z-index: 6;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions > * {
        flex: 0 0 auto;
        min-width: 0;
        width: 100%;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions .rf-hero__mobile-info-btn {
        display: inline-flex !important;
        gap: 5px !important;
        justify-content: center !important;
        padding: 6px 8px !important;
        font-size: 11px !important;
    }

    body.lb-restaurant-reference .rf-hero__mobile-actions .rf-hero__mobile-info-btn span {
        display: inline !important;
        font-size: 11px !important;
        line-height: 1 !important;
    }
}

@media (min-width: 768px) and (max-width: 991.98px) {
    /* Keep the tablet header in one horizontal row so the back control stays
       immediately to the left of the logo. */
    body.lb-restaurant-reference > header.header .lb-header__inner {
        align-items: center !important;
        display: flex !important;
        gap: 8px !important;
        height: auto !important;
        min-height: 64px !important;
        padding: 8px 16px !important;
    }

    body.lb-restaurant-reference > header.header .lb-header__inner > .lb-restaurant-back {
        flex: 0 0 40px !important;
        order: 1 !important;
    }

    body.lb-restaurant-reference > header.header .lb-header__inner > .navbar-brand {
        flex: 0 0 auto !important;
        order: 2 !important;
    }

    body.lb-restaurant-reference > header.header .lb-header__inner > .lb-header__center {
        align-items: center !important;
        display: flex !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        order: 3 !important;
    }

    body.lb-restaurant-reference > header.header .lb-header__inner > .lb-actions {
        flex: 0 0 auto !important;
        order: 4 !important;
    }

    body.lb-restaurant-reference > header.header .lb-header__inner > .lb-burger--desktop {
        flex: 0 0 40px !important;
        order: 5 !important;
    }

    /* The tablet header contains the expanded delivery controls; keeping that
       202px block sticky leaves a blank obstruction over the menu while
       scrolling. Let the full tablet header scroll away as one unit. */
    body.lb-restaurant-reference > header.header {
        position: static !important;
    }

    body.lb-restaurant-reference .rf-hero__bg,
    body.lb-restaurant-reference .rf-hero__bg-img {
        height: 300px;
    }

    /* On tablet the restaurant information belongs below the cover, not as
       an overlay inside it. The logo remains elevated over the cover. */
    body.lb-restaurant-reference .rf-hero__card--desktop {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: 100% !important;
        margin: 0 !important;
        box-sizing: border-box;
        transform: none;
        width: 100% !important;
        background: #fff !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
    }

    /* Use the same cover-logo treatment on tablet as on desktop and mobile. */
    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__logo-wrap {
        position: absolute !important;
        left: 16px !important;
        top: -119px !important;
        width: 96px !important;
        height: 96px !important;
        padding: 8px !important;
        box-sizing: border-box;
        background: #fff !important;
        border-radius: 12px;
        box-shadow: 0 4px 14px rgba(24, 24, 24, .16);
        z-index: 4;
    }

    body.lb-restaurant-reference .rf-hero__card--desktop .rf-hero__text {
        margin-left: 0 !important;
        min-width: 0;
    }

    body.lb-restaurant-reference .rf-mobile-categories {
        top: 72px;
    }
}

/* Responsive cover framing: fill the mobile/tablet media box completely so
   the image never leaves empty bands around the placeholder. */
@media (max-width: 991.98px) {
    body.lb-restaurant-reference .rf-hero__media {
        overflow: hidden !important;
    }

    body.lb-restaurant-reference .rf-hero__bg {
        height: auto !important;
        aspect-ratio: 16 / 9;
        overflow: hidden !important;
    }

    body.lb-restaurant-reference .rf-hero__bg-img {
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        object-fit: cover !important;
        object-position: center center;
    }
}

/* Tablet keeps the cover fully rounded, including both bottom corners. */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .rf-hero,
    body.lb-restaurant-reference .rf-hero__media,
    body.lb-restaurant-reference .rf-hero__bg {
        border-radius: 16px !important;
    }
}

/* Search control matching the Lieferando-style single rounded field. */
body.lb-restaurant-reference .rf-menu-search-wrap {
    box-sizing: border-box;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: none !important;
    width: 100% !important;
}

body.lb-restaurant-reference .rf-menu-search__field {
    align-items: center;
    background: #fff !important;
    border: 1px solid #d8d4cf !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    box-sizing: border-box;
    min-height: 48px !important;
    overflow: hidden;
    width: 100% !important;
}

body.lb-restaurant-reference .rf-menu-search__input {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    min-height: 46px !important;
    padding: 10px 18px 10px 42px !important;
    font-weight: 400 !important;
}

body.lb-restaurant-reference .rf-menu-search__input::placeholder {
    font-weight: 400 !important;
}

body.lb-restaurant-reference .rf-menu-search__icon {
    color: var(--demo1-orange) !important;
    left: 15px !important;
    z-index: 1;
}

@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel .menu-search {
        box-shadow: none !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search-wrap {
        border: 0 !important;
        padding: 8px 0 12px !important;
    }
}

/* Keep the desktop search directly attached to the restaurant information.
   The outer separator belongs to neither block; only the search field keeps
   its own rounded outline. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .rf-hero {
        border-bottom: 0 !important;
        box-shadow: none !important;
    }

    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        border: 0 !important;
        box-shadow: none !important;
        margin-top: 0 !important;
    }

    body.lb-restaurant-reference .lb-menu-panel > .menu-search .rf-menu-search-wrap {
        border-top: 0 !important;
        border-bottom: 0 !important;
        padding-top: 4px !important;
        padding-bottom: 4px !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories {
        padding-top: 4px !important;
        padding-bottom: 4px !important;
    }

    /* Keep the desktop search and category navigation on one opaque sticky
       surface so menu cards cannot show through while the page is scrolling. */
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        background: #fff !important;
        isolation: isolate;
        position: sticky !important;
        top: 72px !important;
        z-index: 50 !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        background: #fff !important;
        isolation: isolate;
        position: sticky !important;
        top: 137px !important;
        z-index: 49 !important;
    }
}

/* Final responsive menu navigation override. */
@media (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        position: sticky !important;
        top: 0 !important;
        z-index: 40 !important;
        background: #fff !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        position: sticky !important;
        top: var(--rf-sticky-search-height, 68px) !important;
        z-index: 39 !important;
        background: #fff !important;
    }
}

/* Final phone-only edge spacing for the popular-category carousel. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items {
        margin-inline: 0 !important;
        padding-inline: 20px !important;
        scroll-padding-inline: 20px !important;
    }

    body.lb-restaurant-reference #category-category-beliebte-gerichte-collapse .menu-items > .menu-item.menu-item-card {
        flex-basis: min(292px, calc(100vw - 48px)) !important;
        width: min(292px, calc(100vw - 48px)) !important;
    }
}

/* Final popup stacking override: the open sheet must cover sticky navigation. */
body.lb-restaurant-reference.rf-category-sheet-open .lb-mobile-categories-slot {
    position: relative !important;
    top: auto !important;
    bottom: auto !important;
    z-index: 2000001 !important;
}

body.lb-restaurant-reference.rf-category-sheet-open .rf-category-sheet {
    z-index: 2000002 !important;
}

/* Keep mobile search and categories together below the fixed mobile header. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        top: 84px !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        top: calc(84px + var(--rf-sticky-search-height, 68px)) !important;
    }
}

/* Lieferando-style depth cue for the sticky search/category navigation. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        box-shadow: none !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        box-shadow: none !important;
        margin-bottom: -12px !important;
    }

    /* Full-cover-width shadow directly below the sticky category bar. */
    body.lb-restaurant-reference.rf-sticky-nav-scrolled::after {
        background: linear-gradient(
            to bottom,
            rgba(15, 23, 42, .16),
            rgba(15, 23, 42, .07) 35%,
            rgba(15, 23, 42, 0)
        ) !important;
        box-shadow: none !important;
        content: "";
        display: block !important;
        height: 8px !important;
        left: 0 !important;
        min-height: 8px !important;
        pointer-events: none;
        position: fixed !important;
        right: var(--rf-sticky-shadow-right, 0px) !important;
        top: var(--rf-sticky-shadow-y) !important;
        width: auto !important;
        z-index: 48 !important;
    }
}

@media (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search,
    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        box-shadow: 0 4px 9px rgba(15, 23, 42, .14) !important;
    }
}

/* Tablet: search and categories form one connected sticky surface. Keep the
   depth cue only below the category bar, never between the two controls. */
@media (min-width: 768px) and (max-width: 991.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        box-shadow: none !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        box-shadow: 0 6px 14px rgba(15, 23, 42, .12) !important;
    }
}

/* The restaurant header belongs to the document flow and scrolls away. */
body.lb-restaurant-reference > header.header {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
}

@media (min-width: 992px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        top: 0 !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        top: var(--rf-sticky-search-height, 68px) !important;
    }
}

@media (max-width: 767.98px) {
    body.lb-restaurant-reference .lb-menu-panel > .menu-search {
        top: 0 !important;
    }

    body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot {
        top: var(--rf-sticky-search-height, 68px) !important;
    }
}

/* The category slot is sticky itself; its legacy spacer would duplicate the
   category height and create a large empty block while scrolling. */
body.lb-restaurant-reference .lb-mobile-categories-slot > div[aria-hidden="true"] {
    display: none !important;
    height: 0 !important;
}

/* The cart remains available in the cart column/drawer; hide only its header
   shortcut on every viewport. */
body.lb-restaurant-reference > header.header a[aria-label="Warenkorb"] {
    display: none !important;
}

/* Desktop header depth continues across the full viewport, including the
   cart column on the right. */
@media (min-width: 992px) {
    body.lb-restaurant-reference > header.header {
        position: relative !important;
        z-index: 50 !important;
        box-shadow: 0 8px 14px rgba(15, 23, 42, .14) !important;
    }

    /* Keep the cart column at the top while the menu is scrolled. */
    body.lb-restaurant-reference .affix-cart {
        position: sticky !important;
        top: 0 !important;
        align-self: flex-start !important;
        z-index: 45 !important;
    }
}

/* Final phone alignment: regular one-column rows must share the category
   title's left edge and stay fully inside the mobile content column. */
@media (max-width: 767.98px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        box-sizing: border-box !important;
        width: 100% !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        overflow: visible !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items > .menu-item.menu-item-card {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 12px 22px !important;
        transform: none !important;
    }
}

/* Final Lieferando-sized media for regular menu rows on every device. */
body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item-image {
    flex: 0 0 120px !important;
    width: 120px !important;
    height: 120px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background-size: contain !important;
}

/* Final desktop containment fix for normal restaurant cards. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-item.menu-item-card {
        overflow: hidden !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row.has-image > .menu-item-image {
        align-self: flex-start !important;
        margin-top: 0 !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main {
        min-width: 0 !important;
        min-height: 0 !important;
        height: 100% !important;
        overflow: hidden !important;
        display: flex !important;
        flex-direction: column !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main > .menu-tags-row {
        margin-top: auto !important;
        margin-bottom: 0 !important;
        max-width: 100% !important;
        overflow: hidden !important;
        flex: 0 0 auto !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row {
        height: 104px !important;
        min-height: 104px !important;
        max-height: 104px !important;
        align-items: flex-start !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main {
        height: 104px !important;
        max-height: 104px !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main > .menu-content {
        display: flex !important;
        flex: 1 1 auto !important;
        flex-direction: column !important;
        min-height: 0 !important;
        height: auto !important;
        overflow: hidden !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-card-row > .menu-main > .menu-content > .menu-tags-row {
        margin-top: auto !important;
        margin-bottom: 0 !important;
        flex: 0 0 auto !important;
    }
}

/* On smaller desktop widths, use one full-width card instead of forcing a
   second card into a column that cannot fit the Lieferando card width. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .lb-menu-panel {
        container-type: inline-size;
        container-name: restaurant-menu;
    }
}

@container restaurant-menu (max-width: 912px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        grid-template-columns: minmax(0, 1fr) !important;
        column-gap: 0 !important;
        row-gap: 16px !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items > .menu-item.menu-item-card {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

/* Fallback for desktop browsers without container-query support. */
@media (min-width: 992px) and (max-width: 1199.98px) {
    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items {
        grid-template-columns: minmax(0, 1fr) !important;
        column-gap: 0 !important;
        row-gap: 16px !important;
    }

    body.lb-restaurant-reference .menu-group > .menu-group-item:not(:has(#category-category-beliebte-gerichte-collapse)) .menu-items > .menu-item.menu-item-card {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

/* Keep all cart quantity controls on the same baseline on desktop carts,
   including items whose note link wraps onto two lines. */
@media (min-width: 992px) {
    body.lb-restaurant-reference .lb-restaurant-layout .cart-items > ul > li .cart-btn:not(.cart-btn-plus),
    body.lb-restaurant-reference .lb-restaurant-layout .cart-items > ul > li .cart-item-qty,
    body.lb-restaurant-reference .lb-restaurant-layout .cart-items > ul > li .cart-btn-plus {
        align-self: start !important;
    }

    body.lb-restaurant-reference .lb-restaurant-layout .cart-items > ul > li {
        grid-template-columns: minmax(0, 1fr) 30px 34px 30px 64px !important;
    }
}

/* Last override: sticky search and category wrappers use the page background. */
body.lb-restaurant-reference .lb-menu-panel .menu-search,
body.lb-restaurant-reference .lb-menu-panel .menu-search .rf-menu-search-wrap,
body.lb-restaurant-reference .lb-menu-panel .lb-mobile-categories-slot,
body.lb-restaurant-reference .lb-menu-panel .rf-mobile-categories {
    background: #FDFDFB !important;
}



/* Final category heading strip override. */
body.lb-restaurant-reference .menu-group-item .category-title,
body.lb-restaurant-reference .menu-group-item .category-title > span {
    background: #FDFDFB !important;
}

/* Highest-specificity correction: the category heading button must use the page background. */
body.lb-restaurant-reference .menu-group .menu-group-item button.category-title,
body.lb-restaurant-reference .menu-group .menu-group-item button.category-title > span {
    background: #FDFDFB !important;
}

/* Restaurant menu: never show the marketplace filter control beside search. */
body.lb-restaurant-reference .rf-mobile-search-filter {
    display: none !important;
}

/* Cart item order: keep the note action below the complete option list. */
body.lb-restaurant-reference .affix-cart .cart-items > ul > li .name-image {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}

body.lb-restaurant-reference .affix-cart .cart-items > ul > li .name-image > .name {
    order: 1 !important;
}

body.lb-restaurant-reference .affix-cart .cart-items > ul > li .name-image > ul,
body.lb-restaurant-reference .affix-cart .cart-items > ul > li .name-image > .options,
body.lb-restaurant-reference .affix-cart .cart-items > ul > li .name-image > .comment {
    order: 2 !important;
}

body.lb-restaurant-reference .affix-cart .cart-items > ul > li .cart-note-link {
    grid-row: 2 !important;
    align-self: start !important;
    margin-top: 6px !important;
}
