/* ========================================================================== 
   NEVERLAND CUSTOMER MENU — PREMIUM V2 / REFERENCE MATCH
   Reference proportions: 864 × 1536 approved mobile concept.
   Scope is intentionally limited to .nlv2-page and menu partial hooks.
   ========================================================================== */

:root {
    --nlv2-navy-950: #07182b;
    --nlv2-navy-900: #0b223d;
    --nlv2-navy-850: #102b4b;
    --nlv2-navy-800: #15395f;
    --nlv2-gold-700: #a97722;
    --nlv2-gold-600: #c59236;
    --nlv2-gold-500: #dfad50;
    --nlv2-gold-400: #efc66d;
    --nlv2-ink: #101c2c;
    --nlv2-muted: #737987;
    --nlv2-line: #dfe3e9;
    --nlv2-page: #f6f7f9;
    --nlv2-white: #ffffff;
    --nlv2-max: 864px;
    --nlv2-shadow-soft: 0 10px 26px rgba(15, 28, 46, .10);
    --nlv2-shadow-card: 0 14px 34px rgba(15, 28, 46, .13);
    --nlv2-shadow-navy: 0 12px 26px rgba(7, 25, 45, .22);
    --nlv2-shadow-gold: 0 12px 28px rgba(198, 146, 54, .28);
}

html {
    background: #e9edf2;
}

body:has(.nlv2-page) {
    margin: 0 !important;
    background: #e9edf2 !important;
    color: var(--nlv2-ink);
    overflow-x: hidden;
}

body:has(.nlv2-page) .wrapper,
body:has(.nlv2-page) #mainContent,
body:has(.nlv2-page) main[role="main"] {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 !important;
    background: transparent;
}

.nlv2-page {
    width: min(100%, var(--nlv2-max));
    min-height: 100vh;
    margin: 0 auto;
    overflow: hidden;
    background:
        radial-gradient(circle at 15% 22%, rgba(255,255,255,.96), transparent 27%),
        linear-gradient(180deg, #fafbfc 0%, #f6f7f9 72%, #f1f3f6 100%);
    box-shadow: 0 0 44px rgba(10, 25, 44, .10);
}

/* ---------- HERO: uses exact approved reference crop ------------------- */
.nlv2-hero {
    width: 100%;
    margin: 0;
    padding: 0;
    background: #07182b;
}

.nlv2-hero-image {
    width: 100%;
    aspect-ratio: 864 / 330;
    background-image: url('/images/menu-v2/hero-reference.webp');
    background-position: center top;
    background-repeat: no-repeat;
    background-size: 100% 100%;
}

.nlv2-shell {
    width: 100%;
    padding: 0 0 clamp(32px, 7vw, 60px);
}

/* ---------- LANGUAGE PANEL --------------------------------------------- */
.nlv2-language-panel {
    display: grid;
    width: 90.1%;
    min-height: clamp(54px, 12.8vw, 110px);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: center;
    margin: 0 auto;
    padding: clamp(7px, 2.2vw, 19px) clamp(8px, 3vw, 26px);
    border: 1px solid rgba(13, 34, 56, .08);
    border-radius: clamp(20px, 4.1vw, 35px);
    background: rgba(255,255,255,.985);
    box-shadow:
        0 13px 28px rgba(11, 27, 46, .13),
        inset 0 1px 0 rgba(255,255,255,.95);
}

.nlv2-language-option {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: clamp(40px, 8.3vw, 72px);
    align-items: center;
    justify-content: center;
    gap: clamp(7px, 1.7vw, 15px);
    padding: 0 clamp(7px, 1.5vw, 13px);
    border: 0;
    border-radius: clamp(16px, 3.3vw, 29px);
    color: #172236;
    font-size: clamp(14px, 3.1vw, 27px);
    font-weight: 750;
    line-height: 1;
    text-decoration: none !important;
    transition: transform .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.nlv2-language-option:not(:last-child)::after {
    position: absolute;
    top: 18%;
    right: clamp(-6px, -1.45vw, -12px);
    width: 1px;
    height: 64%;
    background: #e2e4e8;
    content: "";
}

.nlv2-language-option img {
    width: clamp(24px, 5vw, 43px);
    height: clamp(17px, 3.45vw, 30px);
    flex: 0 0 auto;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 2px 7px rgba(8, 21, 36, .18);
}

.nlv2-language-option.active {
    background: linear-gradient(145deg, #153a61 0%, #0b223d 58%, #091b31 100%);
    color: #fff;
    box-shadow:
        0 8px 17px rgba(5, 21, 39, .29),
        inset 0 1px 0 rgba(255,255,255,.14);
}

.nlv2-language-option.active::after {
    display: none;
}

.nlv2-language-option:active {
    transform: scale(.975);
}

/* ---------- CATEGORY CAROUSEL ------------------------------------------ */
.nlv2-category-zone {
    width: 100%;
    margin-top: clamp(17px, 4.1vw, 35px);
}

.nlv2-category-slider-container.category-slider-container {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x proximity;
}

.nlv2-category-slider-container::-webkit-scrollbar {
    display: none;
}

.nlv2-category-slider.category-slider {
    width: max-content !important;
    min-width: 100%;
    margin: 0 !important;
    padding: 0 clamp(15px, 4vw, 35px) clamp(7px, 1.6vw, 14px) !important;
    overflow: visible !important;
}

.nlv2-category-list#categoryTabs {
    display: flex !important;
    width: max-content !important;
    min-width: 100%;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: clamp(8px, 1.25vw, 11px);
    margin: 0 !important;
    padding: 0 !important;
}

.nlv2-category-item.menu-category-item {
    width: clamp(116px, 29.2vw, 252px) !important;
    min-width: clamp(116px, 29.2vw, 252px) !important;
    margin: 0 !important;
    padding: 0 !important;
    scroll-snap-align: start;
}

.nlv2-category-card.menu-category-card,
.nlv2-category-card.add-cart-btn4 {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: clamp(112px, 28.1vw, 243px) !important;
    padding: 0 !important;
    overflow: hidden !important;
    border: clamp(1px, .23vw, 2px) solid rgba(11, 30, 51, .12) !important;
    border-radius: clamp(18px, 3.7vw, 32px) !important;
    background: #0b213a !important;
    box-shadow: 0 10px 21px rgba(9, 26, 45, .14) !important;
    color: #fff !important;
    isolation: isolate;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.nlv2-category-photo,
.nlv2-category-overlay {
    position: absolute;
    inset: 0;
}

.nlv2-category-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.035);
}

.nlv2-category-overlay {
    z-index: 1;
    background:
        linear-gradient(180deg, rgba(4,17,31,.03) 0%, rgba(4,17,31,.08) 36%, rgba(4,17,31,.78) 100%),
        linear-gradient(90deg, rgba(4,17,31,.12), transparent 65%);
}

.nlv2-category-icon.icon-part4 {
    position: absolute !important;
    z-index: 2 !important;
    top: clamp(11px, 2.7vw, 23px) !important;
    left: clamp(12px, 2.8vw, 24px) !important;
    display: grid !important;
    width: clamp(42px, 9.4vw, 81px) !important;
    height: clamp(42px, 9.4vw, 81px) !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1.5px solid rgba(231, 181, 77, .85) !important;
    border-radius: 50% !important;
    background: rgba(9, 29, 50, .91) !important;
    box-shadow: 0 7px 16px rgba(0,0,0,.22) !important;
    color: var(--nlv2-gold-500) !important;
}

.nlv2-category-icon i {
    font-size: clamp(18px, 4.2vw, 36px) !important;
}

.nlv2-category-name.btn-label4 {
    position: absolute !important;
    z-index: 2 !important;
    right: clamp(9px, 2.6vw, 22px) !important;
    bottom: clamp(12px, 2.6vw, 23px) !important;
    left: clamp(12px, 3.2vw, 28px) !important;
    display: block !important;
    overflow: hidden;
    color: #fff !important;
    font-size: clamp(15px, 3.4vw, 29px) !important;
    font-weight: 800 !important;
    letter-spacing: -.02em;
    line-height: 1.03 !important;
    text-align: left !important;
    text-overflow: ellipsis;
    text-shadow: 0 3px 9px rgba(0,0,0,.48);
    white-space: nowrap;
}

.nlv2-category-indicator {
    position: absolute;
    z-index: 3;
    bottom: clamp(7px, 1.55vw, 13px);
    left: clamp(12px, 3.2vw, 28px);
    width: 0;
    height: clamp(2px, .45vw, 4px);
    border-radius: 10px;
    background: var(--nlv2-gold-500);
    transition: width .18s ease;
}

.nlv2-category-card.active {
    border-color: var(--nlv2-gold-500) !important;
    border-width: clamp(2px, .45vw, 4px) !important;
    box-shadow:
        0 12px 25px rgba(8, 24, 42, .18),
        0 0 0 1px rgba(226, 176, 73, .14) !important;
}

.nlv2-category-card.active .nlv2-category-indicator {
    width: clamp(33px, 8vw, 69px);
}

.nlv2-category-card:active {
    transform: scale(.985);
}

/* ---------- SUBCATEGORIES ---------------------------------------------- */
.nlv2-subcategory-zone {
    width: 100%;
    max-height: 0;
    margin: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .2s ease, opacity .2s ease, margin .2s ease;
}

.nlv2-subcategory-zone:has(#subcategorySlider),
.nlv2-subcategory-zone.has-content {
    max-height: 80px;
    margin: clamp(3px, 1vw, 9px) 0 0;
    opacity: 1;
}

.nlv2-subcategory-zone #subcategorySlider {
    display: flex !important;
    gap: 8px;
    padding: 4px clamp(15px, 4vw, 35px) 8px !important;
    overflow-x: auto;
    scrollbar-width: none;
}

.nlv2-subcategory-zone #subcategorySlider::-webkit-scrollbar {
    display: none;
}

.nlv2-subcategory-zone .sub-btn {
    min-height: 36px !important;
    flex: 0 0 auto;
    padding: 0 14px !important;
    border: 1px solid #e1e4e9 !important;
    border-radius: 999px !important;
    background: #fff !important;
    box-shadow: 0 5px 12px rgba(16, 28, 44, .06) !important;
    color: var(--nlv2-navy-900) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.nlv2-subcategory-zone .sub-btn.active {
    border-color: var(--nlv2-gold-500) !important;
    background: linear-gradient(135deg, #f2c56d, #dca844) !important;
}

/* ---------- ACTION ROW -------------------------------------------------- */
.nlv2-actions {
    display: grid;
    width: calc(100% - clamp(30px, 8vw, 69px));
    grid-template-columns: 1.08fr 1.22fr .42fr;
    gap: clamp(7px, 1.7vw, 15px);
    align-items: stretch;
    margin: clamp(7px, 1.5vw, 13px) auto 0;
}

.nlv2-actions .nlv2-action,
.nlv2-actions #waiterCallButton,
.nlv2-actions .nlv2-profile-button {
    min-width: 0;
    min-height: clamp(50px, 11.6vw, 100px) !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: clamp(16px, 3vw, 27px) !important;
}

.nlv2-action-cart.add-cart-btn1 {
    position: relative;
    display: grid !important;
    grid-template-columns: clamp(37px, 8.7vw, 75px) 1fr auto;
    align-items: center;
    padding: 0 clamp(8px, 2vw, 17px) 0 clamp(7px, 1.5vw, 13px) !important;
    overflow: visible;
    background: linear-gradient(135deg, #102f51 0%, #0b223e 62%, #081a30 100%) !important;
    box-shadow: var(--nlv2-shadow-navy) !important;
    color: #fff !important;
}

.nlv2-action-cart .nlv2-action-icon {
    display: grid;
    width: 100%;
    height: 62%;
    place-items: center;
    border-right: 1px solid rgba(255,255,255,.18);
    color: var(--nlv2-gold-400);
    font-size: clamp(19px, 4.3vw, 37px);
}

.nlv2-action-cart .nlv2-action-label {
    overflow: hidden;
    padding-left: clamp(8px, 2vw, 17px);
    font-size: clamp(13px, 2.9vw, 25px);
    font-weight: 800;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.nlv2-action-cart .nlv2-action-chevron {
    font-size: clamp(11px, 2vw, 18px);
    opacity: .95;
}

.nlv2-cart-badge#cartCount {
    position: absolute !important;
    z-index: 4;
    top: clamp(-8px, -1vw, -4px) !important;
    left: clamp(42px, 9.8vw, 85px) !important;
    display: grid !important;
    width: clamp(23px, 5.2vw, 45px) !important;
    height: clamp(23px, 5.2vw, 45px) !important;
    place-items: center;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: linear-gradient(145deg, #f0c96f, #d99d36) !important;
    box-shadow: 0 5px 12px rgba(91, 60, 9, .28) !important;
    color: #172237 !important;
    font-size: clamp(11px, 2.4vw, 21px) !important;
    font-weight: 800 !important;
}

/* Existing waiter partial, visually transformed to approved gold card. */
.nlv2-actions #waiterCallButton.waiter-call-button {
    position: relative !important;
    display: grid !important;
    grid-template-columns: clamp(39px, 9vw, 78px) 1fr clamp(14px, 2.6vw, 23px);
    align-items: center !important;
    gap: 0 !important;
    padding: 0 clamp(8px, 2vw, 17px) 0 clamp(8px, 1.6vw, 14px) !important;
    background: linear-gradient(135deg, #efc66d 0%, #dfa947 54%, #d49731 100%) !important;
    box-shadow: var(--nlv2-shadow-gold) !important;
    color: #0d2540 !important;
    text-align: left !important;
}

.nlv2-actions #waiterCallButton .waiter-call-icon {
    display: grid !important;
    width: 100% !important;
    height: 62% !important;
    place-items: center !important;
    margin: 0 !important;
    border-right: 1px solid rgba(8, 34, 58, .13);
    color: #0c2947 !important;
    font-size: clamp(19px, 4.2vw, 36px) !important;
}

.nlv2-actions #waiterCallButton .waiter-call-label {
    min-width: 0;
    padding-left: clamp(8px, 2vw, 17px);
    color: #0c2947 !important;
    font-size: clamp(12px, 2.85vw, 24px) !important;
    font-weight: 800 !important;
    line-height: 1.08 !important;
    white-space: normal !important;
}

.nlv2-actions #waiterCallButton::after {
    display: block;
    justify-self: end;
    color: #0c2947;
    font-family: "Font Awesome 6 Free";
    font-size: clamp(11px, 2vw, 18px);
    font-weight: 900;
    content: "\f054";
}

.nlv2-actions #waiterCallButton .waiter-call-status-dot {
    position: absolute !important;
    top: 9px !important;
    right: 9px !important;
    width: 6px !important;
    height: 6px !important;
    margin: 0 !important;
}

.nlv2-profile-menu {
    min-width: 0;
}

.nlv2-profile-button.add-cart-btn2 {
    display: grid !important;
    width: 100% !important;
    height: 100% !important;
    place-items: center !important;
    padding: 0 !important;
    background: linear-gradient(145deg, #113253, #081d35) !important;
    box-shadow: var(--nlv2-shadow-navy) !important;
    color: #fff !important;
}

.nlv2-profile-button::after {
    position: absolute;
    right: clamp(7px, 1.5vw, 13px);
    margin: 0 !important;
    border-top-color: #fff !important;
    opacity: .95;
}

.nlv2-profile-icon {
    color: var(--nlv2-gold-400);
    font-size: clamp(18px, 4vw, 35px);
}

.nlv2-profile-dropdown {
    min-width: 220px;
    padding: 9px;
    border: 1px solid rgba(13, 35, 58, .10);
    border-radius: 16px;
    box-shadow: 0 16px 36px rgba(10, 27, 47, .17);
}

.nlv2-profile-dropdown .dropdown-item {
    border-radius: 10px;
    font-weight: 600;
}

/* ---------- TABLE / QR STATUS ------------------------------------------ */
.nlv2-status-row {
    display: grid;
    width: calc(100% - clamp(30px, 8vw, 69px));
    grid-template-columns: .41fr .59fr;
    gap: clamp(8px, 2vw, 17px);
    margin: clamp(13px, 3vw, 26px) auto 0;
}

.nlv2-status-card {
    display: flex;
    min-width: 0;
    min-height: clamp(42px, 9.25vw, 80px);
    align-items: center;
    justify-content: center;
    gap: clamp(7px, 1.7vw, 15px);
    padding: 0 clamp(8px, 2vw, 17px);
    overflow: hidden;
    border: 1px solid #e0e3e8 !important;
    border-radius: clamp(12px, 2.3vw, 20px) !important;
    background: rgba(255,255,255,.94);
    box-shadow: 0 8px 18px rgba(16, 28, 45, .075);
    color: #162137;
    font-size: clamp(12px, 2.75vw, 23px);
    font-weight: 700;
    line-height: 1.05;
    white-space: nowrap;
}

.nlv2-status-card i {
    flex: 0 0 auto;
    color: var(--nlv2-gold-500) !important;
    font-size: clamp(18px, 4vw, 35px);
}

.nlv2-timer-card strong {
    color: #c78b24;
    font-weight: 800;
}

/* ---------- LIVE STATS / RESULT COUNT ---------------------------------- */
.nlv2-live-stats {
    display: flex;
    width: calc(100% - clamp(30px, 8vw, 69px));
    align-items: center;
    gap: clamp(7px, 1.8vw, 15px);
    margin: clamp(13px, 3.6vw, 31px) auto 0;
    color: #0c233f;
}

.nlv2-live-stats > span:not(.nlv2-live-divider) {
    display: inline-flex;
    align-items: center;
    gap: clamp(4px, 1vw, 9px);
    cursor: pointer;
    font-size: clamp(12px, 2.7vw, 23px);
}

.nlv2-live-stats i {
    font-size: clamp(17px, 3.9vw, 34px);
}

.nlv2-live-stats > span:first-child i {
    color: #0d2947;
}

.nlv2-live-stats > span:last-child i {
    color: var(--nlv2-gold-500);
}

.nlv2-live-divider {
    width: 1px;
    height: clamp(18px, 3.5vw, 30px);
    background: #dfe2e7;
}

.nlv2-debug-culture {
    display: none !important;
}

.nlv2-result-count {
    width: calc(100% - clamp(30px, 8vw, 69px));
    margin: clamp(10px, 2.8vw, 24px) auto 0;
    padding: 0;
    color: #111d2d;
    font-size: clamp(13px, 2.9vw, 25px);
    font-weight: 650;
    letter-spacing: -.015em;
}

/* ---------- SEARCH ------------------------------------------------------ */
.nlv2-search-wrap {
    position: relative;
    width: calc(100% - clamp(30px, 8vw, 69px));
    margin: clamp(8px, 2.4vw, 21px) auto 0;
}

.nlv2-search-input.form-control {
    width: 100%;
    min-height: clamp(48px, 9.2vw, 80px);
    padding: 0 clamp(45px, 10vw, 86px) 0 clamp(43px, 9.5vw, 82px) !important;
    border: 1px solid #dfe2e7 !important;
    border-radius: clamp(14px, 2.7vw, 23px) !important;
    background: rgba(255,255,255,.97) !important;
    box-shadow: 0 9px 20px rgba(15, 27, 43, .075) !important;
    color: #172134 !important;
    font-size: clamp(14px, 3vw, 26px) !important;
    font-weight: 500;
    outline: none !important;
}

.nlv2-search-input::placeholder {
    color: #a2a5ac !important;
    opacity: 1;
}

.nlv2-search-input:focus {
    border-color: rgba(201, 148, 53, .48) !important;
    box-shadow: 0 10px 24px rgba(15, 27, 43, .09), 0 0 0 3px rgba(218, 170, 72, .10) !important;
}

.nlv2-search-icon,
.nlv2-search-filter {
    position: absolute;
    z-index: 2;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
}

.nlv2-search-icon {
    left: clamp(15px, 3.6vw, 31px);
    color: #c28b31;
    font-size: clamp(19px, 4.2vw, 36px);
}

.nlv2-search-filter {
    right: clamp(15px, 3.7vw, 32px);
    color: #0d2947;
    font-size: clamp(17px, 3.7vw, 32px);
}

/* ---------- PRODUCT LIST ------------------------------------------------ */
.nlv2-menu-items {
    width: 100%;
    margin-top: clamp(13px, 3vw, 26px);
}

.nlv2-product-grid {
    display: flex;
    width: 100%;
    flex-direction: column;
    gap: clamp(13px, 3vw, 26px);
    padding: 0 clamp(15px, 4vw, 35px);
}

.nlv2-menu-item.menu-item {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.nlv2-menu-item[hidden] {
    display: none !important;
}

.nlv2-product-card.card-grid,
.nlv2-product-card.blockb {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: clamp(8px, 1.8vw, 16px) !important;
    overflow: hidden !important;
    border: 1px solid #dde1e6 !important;
    border-radius: clamp(19px, 3.1vw, 27px) !important;
    background: rgba(255,255,255,.985) !important;
    box-shadow:
        0 11px 25px rgba(12, 27, 44, .10),
        inset 0 1px 0 rgba(255,255,255,.98) !important;
}

.nlv2-product-main {
    display: grid;
    grid-template-columns: minmax(0, .46fr) minmax(0, .54fr);
    gap: clamp(10px, 2.5vw, 22px);
    align-items: start;
}

.nlv2-product-media.card-left {
    width: 100% !important;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
}

.nlv2-product-image.menu-image {
    display: block;
    width: 100% !important;
    height: clamp(125px, 27vw, 233px) !important;
    max-width: none !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: clamp(13px, 2.4vw, 21px) !important;
    object-fit: cover !important;
    object-position: center;
    box-shadow: none !important;
}

.nlv2-product-info.card-info {
    position: relative;
    display: flex !important;
    min-width: 0;
    min-height: clamp(125px, 27vw, 233px);
    flex-direction: column;
    justify-content: flex-start !important;
    margin: 0 !important;
    padding: clamp(2px, .5vw, 4px) 0 0 !important;
}

.nlv2-product-title.menu-item-title {
    display: -webkit-box;
    margin: 0 !important;
    overflow: hidden;
    color: #111d2d !important;
    font-size: clamp(15px, 3.25vw, 28px) !important;
    font-weight: 800 !important;
    letter-spacing: -.025em;
    line-height: 1.12 !important;
    text-align: left !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.nlv2-description-container.description-container {
    margin-top: clamp(7px, 1.5vw, 13px) !important;
}

.nlv2-product-description.description {
    margin: 0 !important;
    color: #737884 !important;
    font-size: clamp(11px, 2.4vw, 21px) !important;
    font-weight: 500;
    line-height: 1.38 !important;
    text-align: left !important;
}

.nlv2-description-container .clamp-2 {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.nlv2-description-toggle.desc-toggle-link {
    position: absolute;
    top: clamp(41px, 8.3vw, 72px);
    right: clamp(0px, .5vw, 4px);
    display: grid !important;
    width: clamp(20px, 4.4vw, 38px);
    height: clamp(20px, 4.4vw, 38px);
    place-items: center;
    margin: 0 !important;
    color: #0c2b4d !important;
    font-size: clamp(11px, 2.4vw, 21px) !important;
    text-decoration: none !important;
}

.nlv2-allergen-row {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: clamp(5px, 1vw, 9px);
    margin-top: auto;
    padding-top: clamp(7px, 1.6vw, 14px);
}

.nlv2-allergen-label {
    flex: 0 0 auto;
    color: #c38b31;
    font-size: clamp(10px, 2.15vw, 19px);
    font-weight: 600;
}

.nlv2-allergen-chevron {
    flex: 0 0 auto;
    color: #c38b31;
    font-size: clamp(8px, 1.8vw, 16px);
}

.nlv2-allergen-icons {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: clamp(4px, .85vw, 7px);
    overflow: hidden;
}

.nlv2-allergen-icon-wrap {
    display: grid;
    width: clamp(25px, 5.25vw, 45px);
    height: clamp(25px, 5.25vw, 45px);
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid rgba(204, 148, 48, .68);
    border-radius: 50%;
    background: #fff;
}

.nlv2-allergen-icon.allergen-icon {
    width: 68% !important;
    height: 68% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: contain;
    box-shadow: none !important;
}

.nlv2-product-purchase {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: clamp(9px, 2vw, 17px);
    align-items: center;
    margin-top: clamp(8px, 1.9vw, 16px);
    padding-top: clamp(8px, 1.8vw, 15px);
    border-top: 1px solid #e4e6ea;
}

.nlv2-price-block {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: clamp(5px, 1.2vw, 10px);
    padding-left: clamp(4px, 1vw, 9px);
}

.nlv2-price-block strong {
    color: #101d30;
    font-size: clamp(16px, 3.5vw, 30px);
    font-weight: 850;
    letter-spacing: -.025em;
    white-space: nowrap;
}

.nlv2-price-block span {
    color: #8a8f99;
    font-size: clamp(10px, 2vw, 17px);
    font-weight: 650;
    white-space: nowrap;
}

.nlv2-purchase-controls {
    display: flex;
    align-items: center;
    gap: clamp(7px, 1.5vw, 13px);
}

.nlv2-quantity-stepper {
    display: grid;
    width: clamp(98px, 21.4vw, 185px);
    height: clamp(39px, 7.8vw, 67px);
    grid-template-columns: 1fr 1fr 1fr;
    align-items: center;
    border: 1px solid #d7dbe1;
    border-radius: clamp(12px, 2.2vw, 19px);
    background: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.96);
}

.nlv2-qty-button {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
    padding: 0;
    border: 0;
    background: transparent;
    color: #c68f33;
    font-size: clamp(17px, 3.3vw, 28px);
    font-weight: 500;
    line-height: 1;
    touch-action: manipulation;
}

.nlv2-qty-button:active {
    background: #f7f2e8;
}

.nlv2-qty-value {
    display: grid;
    height: 58%;
    place-items: center;
    border-right: 1px solid #e6e8ec;
    border-left: 1px solid #e6e8ec;
    color: #142137;
    font-size: clamp(13px, 2.8vw, 24px);
    font-weight: 650;
}

.nlv2-add-cart-button.add-cart-btn {
    display: grid !important;
    width: clamp(53px, 12vw, 104px) !important;
    height: clamp(39px, 7.8vw, 67px) !important;
    min-width: 0 !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    border: 0 !important;
    border-radius: clamp(13px, 2.4vw, 21px) !important;
    background: linear-gradient(145deg, #e9bb5d, #d89b34) !important;
    box-shadow: 0 8px 17px rgba(185, 126, 29, .23) !important;
    color: #fff !important;
}

.nlv2-add-cart-button .icon-part {
    display: grid !important;
    width: 100% !important;
    height: 100% !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: clamp(18px, 3.9vw, 34px) !important;
}

.nlv2-add-cart-button:active {
    transform: scale(.975);
}

.nlv2-product-admin-meta {
    margin-top: 6px;
    color: #8b9099;
    font-size: 10px;
}

.nlv2-product-admin {
    display: flex !important;
    gap: 8px;
    margin-top: 9px;
    padding-top: 9px;
    border-top: 1px dashed #e1e4e8;
}

.nlv2-product-admin .add-cart-btn7 {
    flex: 1 1 0;
    min-height: 34px;
    border: 1px solid #dce0e5;
    border-radius: 10px;
    background: #fff;
    color: #243247;
    font-size: 11px;
    font-weight: 700;
}

.nlv2-menu-empty {
    display: grid;
    min-height: 170px;
    place-items: center;
    align-content: center;
    gap: 10px;
    margin: 0 clamp(15px, 4vw, 35px);
    border: 1px solid #e0e3e7;
    border-radius: 22px;
    background: #fff;
    color: #8a8f98;
    box-shadow: var(--nlv2-shadow-soft);
}

.nlv2-menu-empty i {
    color: var(--nlv2-gold-500);
    font-size: 32px;
}

.nlv2-menu-empty p {
    margin: 0;
}

/* Floating duplicate cart is retained only as a JS compatibility hook. */
.nlv2-hidden-float-cart#cartButton1 {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
}

/* ---------- MODALS: do not inherit menu card sizing -------------------- */
.nlv2-page ~ .modal,
.modal {
    font-family: Montserrat, ui-sans-serif, system-ui, sans-serif;
}

/* ---------- TOUCH / SMALL DEVICES -------------------------------------- */
@media (max-width: 430px) {
    .nlv2-language-panel {
        width: 92%;
        padding-inline: 7px;
    }

    .nlv2-language-option {
        gap: 5px;
        padding-inline: 4px;
        font-size: 13px;
    }

    .nlv2-language-option img {
        width: 23px;
        height: 16px;
    }

    .nlv2-category-item.menu-category-item {
        width: 119px !important;
        min-width: 119px !important;
    }

    .nlv2-category-card.menu-category-card,
    .nlv2-category-card.add-cart-btn4 {
        height: 116px !important;
    }

    .nlv2-actions,
    .nlv2-status-row,
    .nlv2-live-stats,
    .nlv2-result-count,
    .nlv2-search-wrap {
        width: calc(100% - 30px);
    }

    .nlv2-actions {
        grid-template-columns: 1.1fr 1.28fr .46fr;
        gap: 7px;
    }

    .nlv2-actions .nlv2-action,
    .nlv2-actions #waiterCallButton,
    .nlv2-actions .nlv2-profile-button {
        min-height: 52px !important;
        border-radius: 16px !important;
    }

    .nlv2-action-cart .nlv2-action-label,
    .nlv2-actions #waiterCallButton .waiter-call-label {
        font-size: 12px !important;
    }

    .nlv2-status-row {
        grid-template-columns: .42fr .58fr;
        gap: 8px;
    }

    .nlv2-status-card {
        min-height: 42px;
        padding-inline: 8px;
        font-size: 11px;
    }

    .nlv2-product-main {
        grid-template-columns: minmax(0, .45fr) minmax(0, .55fr);
        gap: 10px;
    }

    .nlv2-product-image.menu-image,
    .nlv2-product-info.card-info {
        min-height: 126px;
        height: 126px !important;
    }

    .nlv2-product-title.menu-item-title {
        font-size: 14px !important;
    }

    .nlv2-product-description.description {
        font-size: 10.5px !important;
    }

    .nlv2-allergen-label {
        font-size: 9.5px;
    }

    .nlv2-allergen-icon-wrap {
        width: 24px;
        height: 24px;
    }

    .nlv2-price-block {
        display: block;
    }

    .nlv2-price-block strong {
        display: block;
        font-size: 15px;
    }

    .nlv2-price-block span {
        display: block;
        margin-top: 2px;
        font-size: 9px;
    }

    .nlv2-quantity-stepper {
        width: 92px;
        height: 38px;
    }

    .nlv2-add-cart-button.add-cart-btn {
        width: 51px !important;
        height: 38px !important;
    }
}

@media (max-width: 350px) {
    .nlv2-language-option span {
        font-size: 12px;
    }

    .nlv2-category-item.menu-category-item {
        width: 108px !important;
        min-width: 108px !important;
    }

    .nlv2-category-card.menu-category-card,
    .nlv2-category-card.add-cart-btn4 {
        height: 108px !important;
    }

    .nlv2-actions {
        grid-template-columns: 1fr 1.18fr 48px;
    }

    .nlv2-action-cart .nlv2-action-label,
    .nlv2-actions #waiterCallButton .waiter-call-label {
        font-size: 10.5px !important;
    }

    .nlv2-product-main {
        grid-template-columns: 42% 58%;
        gap: 8px;
    }

    .nlv2-product-image.menu-image,
    .nlv2-product-info.card-info {
        min-height: 116px;
        height: 116px !important;
    }

    .nlv2-product-title.menu-item-title {
        font-size: 12.5px !important;
    }

    .nlv2-product-description.description {
        font-size: 9.5px !important;
    }

    .nlv2-allergen-row {
        display: none;
    }

    .nlv2-product-purchase {
        grid-template-columns: 1fr auto;
    }

    .nlv2-quantity-stepper {
        width: 80px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .nlv2-page *,
    .nlv2-page *::before,
    .nlv2-page *::after {
        scroll-behavior: auto !important;
        transition-duration: .001ms !important;
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* ========================================================================== 
   NEVERLAND PREMIUM V3 — HOME MENU PARITY
   Applies the approved V2 visual language to /HomeMenu without faking table/QR
   state. The dine-in /Menu behavior remains unchanged.
   ========================================================================== */

body:has(.nlv2-home-page) .blue-header,
body:has(.nlv2-home-page) .language-switcher,
body:has(.nlv2-home-page) .menu-action-dock--home,
body:has(.nlv2-home-page) .floating-call-btn {
    display: none !important;
}

.nlv2-home-page .nlv2-home-actions {
    grid-template-columns: 1.06fr 1.30fr .42fr;
}

.nlv2-home-call-action {
    position: relative;
    display: grid !important;
    min-width: 0;
    min-height: clamp(50px, 11.6vw, 100px);
    grid-template-columns: clamp(39px, 9vw, 78px) 1fr clamp(14px, 2.6vw, 23px);
    align-items: center;
    padding: 0 clamp(8px, 2vw, 17px) 0 clamp(8px, 1.6vw, 14px);
    overflow: hidden;
    border: 0;
    border-radius: clamp(16px, 3vw, 27px);
    background: linear-gradient(135deg, #efc66d 0%, #dfa947 54%, #d49731 100%);
    box-shadow: var(--nlv2-shadow-gold);
    color: #0c2947 !important;
    text-decoration: none !important;
}

.nlv2-home-call-icon {
    display: grid;
    width: 100%;
    height: 62%;
    place-items: center;
    border-right: 1px solid rgba(8, 34, 58, .13);
    color: #0c2947;
    font-size: clamp(18px, 4vw, 35px);
}

.nlv2-home-call-label {
    min-width: 0;
    padding-left: clamp(8px, 2vw, 17px);
    overflow: hidden;
    color: #0c2947;
    font-size: clamp(12px, 2.65vw, 23px);
    font-weight: 800;
    line-height: 1.08;
    text-overflow: ellipsis;
}

.nlv2-home-call-chevron {
    justify-self: end;
    font-size: clamp(11px, 2vw, 18px);
}

.nlv2-home-call-action:active {
    transform: scale(.985);
}

.nlv2-home-status-row {
    grid-template-columns: .42fr .58fr;
}

.nlv2-home-mode-card,
.nlv2-home-phone-card {
    color: var(--nlv2-ink) !important;
    font-weight: 750;
    text-decoration: none !important;
}

.nlv2-home-mode-card i,
.nlv2-home-phone-card i {
    color: var(--nlv2-gold-600);
    font-size: clamp(16px, 3.4vw, 29px);
}

.nlv2-home-phone-card span {
    white-space: nowrap;
}

.nlv2-home-live-stats {
    justify-content: flex-start;
}

.nlv2-home-page .nlv2-result-count {
    margin-top: clamp(8px, 1.7vw, 15px);
}

.nlv2-home-contact {
    margin-top: clamp(34px, 7vw, 60px);
    padding: 38px 24px 46px;
    background: #07182b !important;
    color: #fff;
}

.nlv2-home-contact a {
    color: var(--nlv2-gold-400);
    text-decoration: none;
}

/* Keep the compatibility hook in the DOM but do not re-introduce the legacy
   floating cart over the premium composition. */
.nlv2-home-page .nlv2-hidden-float-cart {
    display: none !important;
}

/* Desktop normalization: /HomeMenu used to expand to the full browser width.
   The approved design is an app-like canvas, so the premium shell stays centered. */
@media (min-width: 865px) {
    body:has(.nlv2-home-page),
    body:has(.nlv2-page) {
        background: #e9edf2 !important;
    }

    .nlv2-page {
        border-right: 1px solid rgba(9, 29, 50, .06);
        border-left: 1px solid rgba(9, 29, 50, .06);
    }
}

@media (max-width: 430px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: 1.05fr 1.28fr .46fr;
    }

    .nlv2-home-call-action {
        min-height: 52px;
        border-radius: 16px;
    }

    .nlv2-home-call-label {
        font-size: 11.5px;
    }

    .nlv2-home-status-row {
        grid-template-columns: .43fr .57fr;
    }
}

@media (max-width: 350px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: 1fr 1.18fr 48px;
    }

    .nlv2-home-call-label {
        font-size: 10px;
    }
}

/* ========================================================================== 
   NEVERLAND PREMIUM V4 — PIXEL-MATCH CORRECTIONS
   Based on the real /HomeMenu render from 2026-08-07.
   These rules intentionally outrank legacy site.css / waiter-call.css sizing.
   ========================================================================== */

/* --- Home action strip: reference ratio = cart / gold action / profile --- */
.nlv2-home-page .nlv2-home-actions {
    display: grid !important;
    width: calc(100% - clamp(30px, 8vw, 69px)) !important;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, 1.18fr) clamp(58px, 11.5vw, 76px) !important;
    gap: clamp(7px, 1.7vw, 15px) !important;
    align-items: stretch !important;
}

/* Kill the old 190px max-width from site.css. */
.nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    min-height: clamp(50px, 11.6vw, 100px) !important;
    grid-template-columns: clamp(42px, 8.7vw, 75px) minmax(0, 1fr) clamp(14px, 2.5vw, 22px) !important;
    padding: 0 clamp(8px, 1.8vw, 16px) 0 clamp(6px, 1.35vw, 12px) !important;
    overflow: visible !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    width: 100% !important;
    height: 64% !important;
    align-self: center !important;
    justify-self: stretch !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-label {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    padding: 0 clamp(4px, 1vw, 9px) !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-chevron {
    position: static !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
    transform: none !important;
}

.nlv2-home-page .nlv2-cart-badge#cartCount {
    top: clamp(-8px, -1vw, -4px) !important;
    left: clamp(39px, 8.9vw, 77px) !important;
}

/* Gold call-to-order card: keep text in two deliberate lines, never letter-wrap. */
.nlv2-home-page .nlv2-home-call-action {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    grid-template-columns: clamp(42px, 8.8vw, 76px) minmax(0, 1fr) clamp(14px, 2.5vw, 22px) !important;
    padding: 0 clamp(8px, 1.8vw, 16px) 0 clamp(7px, 1.4vw, 12px) !important;
    overflow: hidden !important;
}

.nlv2-home-page .nlv2-home-call-icon {
    min-width: 0 !important;
    height: 64% !important;
}

.nlv2-home-page .nlv2-home-call-label {
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 1px !important;
    padding: 0 clamp(3px, .8vw, 7px) !important;
    overflow: hidden !important;
    font-size: clamp(11px, 2.45vw, 21px) !important;
    line-height: 1.05 !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}

.nlv2-home-page .nlv2-home-call-label > span {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.nlv2-home-page .nlv2-home-call-chevron {
    position: static !important;
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
    transform: none !important;
}

/* Profile card must use the grid track, not waiter-call.css's fixed legacy width. */
.nlv2-home-page .nlv2-profile-menu.menu-action-profile {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
}

.nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
}

/* Category icon contrast in the real render was too dark. */
.nlv2-page .nlv2-category-icon.icon-part4,
.nlv2-page .nlv2-category-icon.icon-part4 i {
    opacity: 1 !important;
}

.nlv2-page .nlv2-category-icon.icon-part4 i {
    color: var(--nlv2-gold-400) !important;
    filter: none !important;
    text-shadow: none !important;
}

.nlv2-page .nlv2-category-card.active .nlv2-category-icon.icon-part4 {
    background: #0b2745 !important;
    border-color: #efc66d !important;
    box-shadow: 0 6px 16px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.08) !important;
}

/* Tighten the information rhythm to the approved reference. */
.nlv2-home-page .nlv2-home-status-row {
    margin-top: clamp(13px, 2.8vw, 24px) !important;
}

.nlv2-home-page .nlv2-home-live-stats {
    margin-top: clamp(13px, 3vw, 26px) !important;
}

.nlv2-home-page .nlv2-result-count {
    margin-top: clamp(8px, 1.8vw, 16px) !important;
}

/* Small/mobile viewport tuning from the real capture. */
@media (max-width: 575.98px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr) 58px !important;
        gap: 7px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-home-page .nlv2-home-call-action,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
        min-height: 58px !important;
        border-radius: 17px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
        grid-template-columns: 45px minmax(0, 1fr) 14px !important;
        padding-inline: 7px 10px !important;
    }

    .nlv2-home-page .nlv2-home-call-action {
        grid-template-columns: 45px minmax(0, 1fr) 14px !important;
        padding-inline: 7px 9px !important;
    }

    .nlv2-home-page .nlv2-action-cart .nlv2-action-label {
        padding-inline: 4px !important;
        font-size: 12px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        padding-inline: 2px !important;
        font-size: 10.5px !important;
    }

    .nlv2-home-page .nlv2-home-call-icon,
    .nlv2-home-page .nlv2-action-cart .nlv2-action-icon {
        font-size: 18px !important;
    }

    .nlv2-home-page .nlv2-profile-icon {
        font-size: 20px !important;
    }

    .nlv2-home-page .nlv2-cart-badge#cartCount {
        left: 39px !important;
    }
}

@media (max-width: 390px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: minmax(0, .98fr) minmax(0, 1.08fr) 54px !important;
        gap: 6px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-home-page .nlv2-home-call-action,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
        min-height: 54px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-home-page .nlv2-home-call-action {
        border-radius: 16px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
        grid-template-columns: 41px minmax(0, 1fr) 12px !important;
    }

    .nlv2-home-page .nlv2-home-call-action {
        grid-template-columns: 41px minmax(0, 1fr) 12px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        font-size: 9.5px !important;
    }
}

/* ========================================================================== 
   NEVERLAND PREMIUM V5 — ACTION STRIP PARITY
   Real-render correction for both /Menu and /HomeMenu.
   Goal: equal primary action tracks + fixed profile track, matching reference.
   ========================================================================== */

/* The approved reference uses two equally important primary actions and one
   compact profile action. Apply the same geometry to dine-in and takeaway. */
.nlv2-page .nlv2-actions,
.nlv2-home-page .nlv2-home-actions {
    display: grid !important;
    width: calc(100% - clamp(30px, 8vw, 69px)) !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) clamp(58px, 11.5vw, 76px) !important;
    gap: clamp(7px, 1.7vw, 15px) !important;
    align-items: stretch !important;
}

/* Neutralize legacy site.css/waiter-call.css fixed widths completely. */
.nlv2-page .nlv2-action-cart.add-cart-btn1,
.nlv2-page .nlv2-actions #waiterCallButton.waiter-call-button,
.nlv2-page .nlv2-home-call-action,
.nlv2-page .nlv2-profile-menu.menu-action-profile,
.nlv2-page .nlv2-profile-button.add-cart-btn2 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

.nlv2-page .nlv2-profile-menu.menu-action-profile {
    height: 100% !important;
}

.nlv2-page .nlv2-action-cart.add-cart-btn1,
.nlv2-page .nlv2-actions #waiterCallButton.waiter-call-button,
.nlv2-page .nlv2-home-call-action,
.nlv2-page .nlv2-profile-button.add-cart-btn2 {
    height: auto !important;
    min-height: clamp(54px, 11.6vw, 100px) !important;
    border-radius: clamp(16px, 3vw, 27px) !important;
}

/* Cart: force every child into its intended cell. This removes the displaced
   chevron and the label creeping toward the upper edge seen in the capture. */
.nlv2-page .nlv2-action-cart.add-cart-btn1 {
    display: grid !important;
    grid-template-columns: clamp(42px, 8.7vw, 75px) minmax(0, 1fr) clamp(14px, 2.5vw, 22px) !important;
    grid-template-rows: 1fr !important;
    align-items: center !important;
    padding: 0 clamp(8px, 1.8vw, 16px) 0 clamp(6px, 1.35vw, 12px) !important;
    overflow: visible !important;
}

.nlv2-page .nlv2-action-cart .nlv2-action-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: stretch !important;
    width: 100% !important;
    height: 64% !important;
    margin: 0 !important;
}

.nlv2-page .nlv2-action-cart .nlv2-action-label {
    display: flex !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    height: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    margin: 0 !important;
    padding: 0 clamp(4px, 1vw, 9px) !important;
    overflow: hidden !important;
    color: #fff !important;
    font-size: clamp(12px, 2.55vw, 22px) !important;
    font-weight: 800 !important;
    line-height: 1.05 !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.nlv2-page .nlv2-action-cart .nlv2-action-chevron {
    position: static !important;
    display: block !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
    transform: none !important;
    color: #fff !important;
}

/* Dine-in waiter action: the previous real render was squeezed to ~100px.
   It now owns the same grid width as Cart and is guaranteed to wrap only at
   the natural space between the two Bulgarian words. */
.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton.waiter-call-button {
    display: grid !important;
    grid-template-columns: clamp(42px, 8.7vw, 75px) minmax(0, 1fr) clamp(14px, 2.5vw, 22px) !important;
    grid-template-rows: 1fr !important;
    align-items: center !important;
    padding: 0 clamp(8px, 1.8vw, 16px) 0 clamp(7px, 1.4vw, 12px) !important;
    overflow: hidden !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-icon {
    grid-column: 1 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: stretch !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 64% !important;
    margin: 0 !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-label {
    display: flex !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    height: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    margin: 0 !important;
    padding: 0 clamp(3px, .8vw, 7px) !important;
    overflow: visible !important;
    color: #0c2947 !important;
    font-size: clamp(11px, 2.35vw, 20px) !important;
    font-weight: 800 !important;
    line-height: 1.05 !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: normal !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton::after {
    position: static !important;
    display: block !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
    transform: none !important;
}

/* Takeaway action uses the exact same proportions and vertical centering. */
.nlv2-home-page .nlv2-home-call-action {
    display: grid !important;
    grid-template-columns: clamp(42px, 8.7vw, 75px) minmax(0, 1fr) clamp(14px, 2.5vw, 22px) !important;
    grid-template-rows: 1fr !important;
    align-items: center !important;
    padding: 0 clamp(8px, 1.8vw, 16px) 0 clamp(7px, 1.4vw, 12px) !important;
}

.nlv2-home-page .nlv2-home-call-label {
    height: 100% !important;
    align-self: stretch !important;
    margin: 0 !important;
}

/* Cart badge stays anchored to the icon divider at all responsive sizes. */
.nlv2-page .nlv2-cart-badge#cartCount {
    top: clamp(-8px, -1vw, -4px) !important;
    left: clamp(39px, 8.9vw, 77px) !important;
    margin: 0 !important;
}

/* Profile: fixed compact visual track, no inherited 190px cap or 58px legacy
   width fighting the CSS grid. */
.nlv2-page .nlv2-profile-button.add-cart-btn2 {
    display: grid !important;
    height: 100% !important;
    place-items: center !important;
    padding: 0 !important;
    overflow: hidden !important;
}

@media (max-width: 575.98px) {
    .nlv2-page .nlv2-actions,
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 58px !important;
        gap: 7px !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-page .nlv2-actions #waiterCallButton.waiter-call-button,
    .nlv2-page .nlv2-home-call-action,
    .nlv2-page .nlv2-profile-button.add-cart-btn2 {
        min-height: 58px !important;
        border-radius: 17px !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton.waiter-call-button,
    .nlv2-home-page .nlv2-home-call-action {
        grid-template-columns: 45px minmax(0, 1fr) 14px !important;
        padding-inline: 7px 9px !important;
    }

    .nlv2-page .nlv2-action-cart .nlv2-action-label {
        font-size: 12px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-label {
        font-size: 11px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        font-size: 10.5px !important;
    }

    .nlv2-page .nlv2-action-cart .nlv2-action-icon,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-icon,
    .nlv2-home-page .nlv2-home-call-icon {
        font-size: 18px !important;
    }

    .nlv2-page .nlv2-profile-icon {
        font-size: 20px !important;
    }

    .nlv2-page .nlv2-cart-badge#cartCount {
        left: 39px !important;
    }
}

@media (max-width: 390px) {
    .nlv2-page .nlv2-actions,
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 54px !important;
        gap: 6px !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-page .nlv2-actions #waiterCallButton.waiter-call-button,
    .nlv2-page .nlv2-home-call-action,
    .nlv2-page .nlv2-profile-button.add-cart-btn2 {
        min-height: 54px !important;
        border-radius: 16px !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton.waiter-call-button,
    .nlv2-home-page .nlv2-home-call-action {
        grid-template-columns: 41px minmax(0, 1fr) 12px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-label {
        font-size: 10.5px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        font-size: 9.5px !important;
    }
}


/* =======================================================================
   V6 HOTFIX — action row overlap, uncropped item image, centered cart icon
   ======================================================================= */
.nlv2-page:not(.nlv2-home-page) .nlv2-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 68px !important;
    gap: 8px !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-action-cart.add-cart-btn1,
.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton.waiter-call-button {
    min-height: 64px !important;
    overflow: hidden !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-action-cart.add-cart-btn1 {
    grid-template-columns: 46px minmax(0, 1fr) 16px !important;
    padding: 0 12px 0 8px !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton.waiter-call-button {
    grid-template-columns: 46px minmax(0, 1fr) 16px !important;
    padding: 0 12px 0 8px !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-label {
    padding-left: 10px !important;
    font-size: 13px !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-chevron {
    justify-self: end !important;
    font-size: 12px !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-label {
    
    max-width: 100% !important;
    padding-left: 10px !important;
    font-size: 11.5px !important;
    line-height: 1.04 !important;
    word-break: normal !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton::after {
    justify-self: end !important;
    font-size: 12px !important;
}

.nlv2-page .nlv2-product-image.menu-image {
    object-fit: contain !important;
    object-position: center center !important;
    padding: 6px !important;
    background: #fff !important;
}

.nlv2-page .nlv2-add-cart-button.add-cart-btn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.nlv2-page .nlv2-add-cart-button .icon-part,
.nlv2-page .nlv2-add-cart-button .icon-part i {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    line-height: 1 !important;
}

.nlv2-page .nlv2-add-cart-button .icon-part i {
    transform: translateY(-1px) !important;
}

@media (max-width: 575.98px) {
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 64px !important;
        gap: 7px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton.waiter-call-button {
        min-height: 60px !important;
        border-radius: 18px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-label {
        font-size: 12px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-label {
        font-size: 11px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        height: 142px !important;
    }
}

@media (max-width: 390px) {
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 60px !important;
        gap: 6px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton.waiter-call-button {
        grid-template-columns: 42px minmax(0, 1fr) 14px !important;
        padding-right: 10px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-label,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions #waiterCallButton .waiter-call-label {
        font-size: 10.5px !important;
    }
}


/* =======================================================================
   V7 POLISH — HomeMenu action spacing + seamless product image
   ======================================================================= */
.nlv2-home-page .nlv2-home-actions {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 68px !important;
    gap: 10px !important;
}

.nlv2-home-page .nlv2-action-cart.add-cart-btn1,
.nlv2-home-page .nlv2-home-call-action,
.nlv2-home-page .nlv2-profile-menu,
.nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    margin: 0 !important;
    transform: none !important;
}

.nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
    z-index: 1 !important;
    overflow: visible !important;
}

.nlv2-home-page .nlv2-home-call-action {
    z-index: 1 !important;
    overflow: hidden !important;
    box-shadow: 0 9px 20px rgba(198, 146, 54, .22) !important;
}

.nlv2-home-page .nlv2-profile-menu,
.nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
    z-index: 1 !important;
}

.nlv2-page .nlv2-product-media.card-left {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.nlv2-page .nlv2-product-image.menu-image {
    width: 100% !important;
    height: clamp(136px, 28vw, 240px) !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    object-fit: contain !important;
    object-position: center center !important;
}

.nlv2-page .nlv2-product-main {
    grid-template-columns: minmax(0, .44fr) minmax(0, .56fr) !important;
}

.nlv2-page .nlv2-add-cart-button.add-cart-btn,
.nlv2-page .nlv2-add-cart-button .icon-part,
.nlv2-page .nlv2-add-cart-button .icon-part i,
.nlv2-page .nlv2-add-cart-button .icon-part i::before {
    text-align: center !important;
}

.nlv2-page .nlv2-add-cart-button .icon-part i {
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    line-height: 1 !important;
}

@media (max-width: 575.98px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 64px !important;
        gap: 8px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        height: 146px !important;
    }
}

@media (max-width: 390px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 60px !important;
        gap: 7px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        height: 138px !important;
    }
}


/* =======================================================================
   V8 OVERLAP FIX — HomeMenu action strip de-overlap
   Final targeted override based on the latest screenshot.
   ======================================================================= */
.nlv2-home-page .nlv2-home-actions {
    display: flex !important;
    width: calc(100% - clamp(24px, 7vw, 60px)) !important;
    align-items: stretch !important;
    gap: 12px !important;
    margin-inline: auto !important;
}

.nlv2-home-page .nlv2-home-actions > .nlv2-action-cart.add-cart-btn1,
.nlv2-home-page .nlv2-home-actions > .nlv2-home-call-action,
.nlv2-home-page .nlv2-home-actions > .nlv2-profile-menu {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
    transform: none !important;
}

.nlv2-home-page .nlv2-home-actions > .nlv2-profile-menu {
    flex: 0 0 58px !important;
    width: 58px !important;
}

.nlv2-home-page .nlv2-profile-menu .nlv2-profile-button.add-cart-btn2 {
    width: 100% !important;
    height: 100% !important;
}

.nlv2-home-page .nlv2-action-cart.add-cart-btn1,
.nlv2-home-page .nlv2-home-call-action {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    max-width: none !important;
    width: auto !important;
    min-height: 58px !important;
    overflow: hidden !important;
    isolation: isolate !important;
}

.nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
    flex: 1.08 1 0 !important;
    grid-template-columns: 42px minmax(0, 1fr) 12px !important;
    padding: 0 12px 0 8px !important;
}

.nlv2-home-page .nlv2-home-call-action {
    flex: .92 1 0 !important;
    grid-template-columns: 42px minmax(0, 1fr) 12px !important;
    padding: 0 12px 0 8px !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-label,
.nlv2-home-page .nlv2-home-call-label {
    min-width: 0 !important;
    padding-inline: 8px !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-label {
    font-size: 12px !important;
}

.nlv2-home-page .nlv2-home-call-label {
    font-size: 11.5px !important;
    line-height: 1.05 !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-chevron,
.nlv2-home-page .nlv2-home-call-chevron {
    justify-self: end !important;
    align-self: center !important;
}

@media (max-width: 575.98px) {
    .nlv2-home-page .nlv2-home-actions {
        width: calc(100% - 22px) !important;
        gap: 10px !important;
    }

    .nlv2-home-page .nlv2-home-actions > .nlv2-profile-menu {
        flex-basis: 54px !important;
        width: 54px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-home-page .nlv2-home-call-action {
        min-height: 56px !important;
        border-radius: 18px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
        flex-grow: 1.1 !important;
    }

    .nlv2-home-page .nlv2-home-call-action {
        flex-grow: .9 !important;
    }
}

@media (max-width: 390px) {
    .nlv2-home-page .nlv2-home-actions {
        gap: 8px !important;
    }

    .nlv2-home-page .nlv2-home-actions > .nlv2-profile-menu {
        flex-basis: 50px !important;
        width: 50px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-home-page .nlv2-home-call-action {
        min-height: 54px !important;
    }

    .nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
        grid-template-columns: 39px minmax(0, 1fr) 11px !important;
    }

    .nlv2-home-page .nlv2-home-call-action {
        grid-template-columns: 39px minmax(0, 1fr) 11px !important;
    }

    .nlv2-home-page .nlv2-action-cart .nlv2-action-label {
        font-size: 11.5px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        font-size: 10.5px !important;
    }
}


/* =======================================================================
   V9 MICROFIX — profile icon centering + cart badge vertical offset
   ======================================================================= */
.nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
    overflow: visible !important;
}

.nlv2-home-page .nlv2-cart-badge#cartCount {
    top: 2px !important;
    left: 40px !important;
}

.nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.nlv2-home-page .nlv2-profile-icon {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    margin: 0 !important;
    line-height: 1 !important;
    transform: translate(-58%, -50%) !important;
}

.nlv2-home-page .nlv2-profile-button.add-cart-btn2::after {
    position: absolute !important;
    top: 50% !important;
    right: 12px !important;
    margin: 0 !important;
    transform: translateY(-45%) !important;
}

@media (max-width: 575.98px) {
    .nlv2-home-page .nlv2-cart-badge#cartCount {
        top: 1px !important;
        left: 39px !important;
    }

    .nlv2-home-page .nlv2-profile-button.add-cart-btn2::after {
        right: 11px !important;
    }
}

@media (max-width: 390px) {
    .nlv2-home-page .nlv2-cart-badge#cartCount {
        top: 1px !important;
        left: 36px !important;
    }

    .nlv2-home-page .nlv2-profile-icon {
        transform: translate(-60%, -50%) !important;
    }

    .nlv2-home-page .nlv2-profile-button.add-cart-btn2::after {
        right: 10px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V11 START === */
/* HomeMenu: remove duplicated takeaway/phone information row. */
.nlv2-home-page .nlv2-home-status-row,
.nlv2-home-page .nlv2-home-phone-card,
.nlv2-home-page .nlv2-home-mode-card {
    display: none !important;
}

/* Dine-in /Menu: stable action strip after QR entry. */
.nlv2-page:not(.nlv2-home-page) .nlv2-actions {
    display: flex !important;
    width: calc(100% - 24px) !important;
    align-items: stretch !important;
    gap: 8px !important;
    margin: 10px auto 0 !important;
    overflow: visible !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-action-cart.add-cart-btn1,
.nlv2-page:not(.nlv2-home-page) .nlv2-actions > #waiterCallButton.waiter-call-button,
.nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-profile-menu {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-action-cart.add-cart-btn1 {
    flex: .94 1 0 !important;
    width: auto !important;
    min-height: 58px !important;
    grid-template-columns: 40px minmax(0, 1fr) 12px !important;
    padding: 0 8px !important;
    overflow: visible !important;
    z-index: 1 !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions > #waiterCallButton.waiter-call-button {
    flex: 1.06 1 0 !important;
    width: auto !important;
    min-height: 58px !important;
    grid-template-columns: 40px minmax(0, 1fr) 12px !important;
    padding: 0 8px !important;
    overflow: hidden !important;
    z-index: 1 !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-profile-menu {
    flex: 0 0 58px !important;
    width: 58px !important;
    z-index: 1 !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-profile-button.add-cart-btn2 {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 58px !important;
    margin: 0 !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-icon,
.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon {
    width: 100% !important;
    min-width: 0 !important;
    height: 62% !important;
    margin: 0 !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-label {
    min-width: 0 !important;
    padding: 0 5px !important;
    overflow: hidden !important;
    font-size: 11.5px !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
    display: flex !important;
    min-width: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 4px !important;
    overflow: hidden !important;
    font-size: 10.5px !important;
    line-height: 1.02 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-chevron,
.nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
    font-size: 11px !important;
    transform: none !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-cart-badge#cartCount {
    top: 1px !important;
    left: 35px !important;
}

@media (max-width: 390px) {
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions {
        width: calc(100% - 18px) !important;
        gap: 6px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-profile-menu {
        flex-basis: 52px !important;
        width: 52px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > #waiterCallButton.waiter-call-button,
    .nlv2-page:not(.nlv2-home-page) .nlv2-profile-button.add-cart-btn2 {
        min-height: 54px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > #waiterCallButton.waiter-call-button {
        grid-template-columns: 37px minmax(0, 1fr) 10px !important;
        padding: 0 6px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-action-cart .nlv2-action-label {
        font-size: 10.5px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
        font-size: 9.8px !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-cart-badge#cartCount {
        left: 32px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V11 END === */

/* === NEVERLAND PREMIUM MENU V12 START === */
/* /Menu: center profile icon and vertically center waiter label */
.nlv2-page:not(.nlv2-home-page) .nlv2-profile-button.add-cart-btn2 {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-profile-icon {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    margin: 0 !important;
    line-height: 1 !important;
    transform: translate(-42%, -50%) !important;
}

.nlv2-page:not(.nlv2-home-page) .nlv2-profile-button.add-cart-btn2::after {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    margin: 0 !important;
    transform: translateY(-45%) !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button {
    align-items: center !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
    display: flex !important;
    align-self: center !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 100% !important;
    height: 100% !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    line-height: 1.06 !important;
}

@media (max-width: 390px) {
    .nlv2-page:not(.nlv2-home-page) .nlv2-profile-icon {
        transform: translate(-44%, -50%) !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-profile-button.add-cart-btn2::after {
        right: 9px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
        line-height: 1.02 !important;
    }
}
/* === NEVERLAND PREMIUM MENU V12 END === */

/* === NEVERLAND PREMIUM MENU V13 START === */
/* /Menu: perfect centering for the waiter-call text */
.nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button {
    align-items: center !important;
    justify-items: stretch !important;
    grid-template-rows: 1fr !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon {
    align-self: center !important;
    justify-self: stretch !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
    grid-column: 2 !important;
    grid-row: 1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    justify-self: center !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    margin: 0 !important;
    padding: 0 6px !important;
    text-align: center !important;
    line-height: 1.02 !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-self: center !important;
    justify-self: end !important;
    margin: 0 !important;
}

@media (max-width: 390px) {
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
        padding-inline: 4px !important;
        line-height: 1 !important;
    }
}
/* === NEVERLAND PREMIUM MENU V13 END === */

/* === NEVERLAND PREMIUM MENU V14 START === */
/* /Menu: force the waiter label into the true visual center of the gold action. */
.nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button {
    position: relative !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
    position: absolute !important;
    top: 0 !important;
    right: 24px !important;
    bottom: 0 !important;
    left: 48px !important;
    display: flex !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 5px !important;
    overflow: hidden !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.02 !important;
    text-align: center !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    transform: none !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
}

/* Premium euro price. */
.nlv2-page .nlv2-price-block {
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 2px !important;
    padding-left: 4px !important;
}

.nlv2-page .nlv2-price-primary {
    display: block !important;
    margin: 0 !important;
    color: #0b223d !important;
    font-size: clamp(16px, 3.5vw, 30px) !important;
    font-weight: 850 !important;
    letter-spacing: -.025em !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
}

@media (max-width: 390px) {
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
        right: 20px !important;
        left: 42px !important;
        padding-inline: 3px !important;
        font-size: 10.2px !important;
        line-height: 1 !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
        right: 8px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V14 END === */

/* === NEVERLAND PREMIUM MENU V15 START === */
/* /Menu: force true flex centering for the waiter-call label. */
.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 4px !important;
    text-align: center !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    transform: none !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button {
    align-items: stretch !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon,
.nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
    align-self: center !important;
}

@media (max-width: 390px) {
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
        padding-inline: 2px !important;
        line-height: 1.02 !important;
    }
}
/* === NEVERLAND PREMIUM MENU V15 END === */

/* === NEVERLAND PREMIUM MENU V16 START === */
/* /Menu: use a real flex layout for the waiter CTA. */
.nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button {
    position: relative !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    padding: 0 30px 0 0 !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon {
    display: flex !important;
    flex: 0 0 46px !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    width: 46px !important;
    height: auto !important;
    margin: 0 !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
    position: static !important;
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    width: auto !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 4px !important;
    overflow: hidden !important;
    text-align: center !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    transform: none !important;
}

.nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    margin: 0 !important;
    transform: translateY(-50%) !important;
}

@media (max-width: 390px) {
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button {
        padding-right: 26px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon {
        flex-basis: 42px !important;
        width: 42px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
        padding-inline: 2px !important;
        line-height: 1.02 !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
        right: 8px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V16 END === */

/* === NEVERLAND PREMIUM MENU V17 START === */
/* Final waiter label rule. The legacy display:block!important declaration is
   physically removed by the installer before this override is appended. */
.nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 4px !important;
    text-align: center !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
    transform: none !important;
}
/* === NEVERLAND PREMIUM MENU V17 END === */

/* === NEVERLAND PREMIUM MENU V18 START === */
/* Desktop/tablet density correction.
   The original premium CSS uses viewport-based clamp() values. On large
   desktop viewports those values hit their maximums while the menu canvas
   remains app-sized, which makes controls and typography look oversized. */
@media (min-width: 900px) {
    body:has(.nlv2-page) {
        overflow-x: hidden !important;
    }

    .nlv2-page {
        width: min(100%, 760px) !important;
        max-width: 760px !important;
        margin-inline: auto !important;
    }

    .nlv2-hero-image {
        aspect-ratio: 864 / 330 !important;
    }

    /* Language selector */
    .nlv2-language-panel {
        width: 88% !important;
        min-height: 76px !important;
        padding: 11px 16px !important;
        border-radius: 25px !important;
    }

    .nlv2-language-option {
        min-height: 52px !important;
        gap: 10px !important;
        padding-inline: 10px !important;
        border-radius: 18px !important;
        font-size: 17px !important;
    }

    .nlv2-language-option img {
        width: 31px !important;
        height: 21px !important;
    }

    /* Categories */
    .nlv2-category-zone {
        margin-top: 24px !important;
    }

    .nlv2-category-slider.category-slider {
        padding: 0 22px 10px !important;
    }

    .nlv2-category-list#categoryTabs {
        gap: 10px !important;
    }

    .nlv2-category-item.menu-category-item {
        width: 185px !important;
        min-width: 185px !important;
    }

    .nlv2-category-card.menu-category-card,
    .nlv2-category-card.add-cart-btn4 {
        height: 178px !important;
        border-radius: 24px !important;
    }

    .nlv2-category-icon.icon-part4 {
        top: 16px !important;
        left: 16px !important;
        width: 58px !important;
        height: 58px !important;
    }

    .nlv2-category-icon i {
        font-size: 25px !important;
    }

    .nlv2-category-name.btn-label4 {
        right: 15px !important;
        bottom: 18px !important;
        left: 17px !important;
        font-size: 20px !important;
    }

    .nlv2-category-indicator {
        bottom: 10px !important;
        left: 17px !important;
        height: 3px !important;
    }

    .nlv2-category-card.active .nlv2-category-indicator {
        width: 48px !important;
    }

    /* Main action strip — compact and stable on desktop. */
    .nlv2-page .nlv2-actions,
    .nlv2-home-page .nlv2-home-actions {
        display: grid !important;
        width: calc(100% - 44px) !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 64px !important;
        align-items: stretch !important;
        gap: 10px !important;
        margin: 10px auto 0 !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button,
    .nlv2-home-page .nlv2-home-call-action,
    .nlv2-page .nlv2-profile-button.add-cart-btn2 {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        min-height: 64px !important;
        height: 64px !important;
        border-radius: 19px !important;
        margin: 0 !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1 {
        display: grid !important;
        grid-template-columns: 46px minmax(0, 1fr) 16px !important;
        padding: 0 12px 0 8px !important;
    }

    .nlv2-page .nlv2-action-cart .nlv2-action-icon {
        height: 60% !important;
        font-size: 22px !important;
    }

    .nlv2-page .nlv2-action-cart .nlv2-action-label {
        padding-inline: 8px !important;
        font-size: 14px !important;
        text-align: center !important;
    }

    .nlv2-page .nlv2-action-cart .nlv2-action-chevron {
        font-size: 13px !important;
    }

    .nlv2-page .nlv2-cart-badge#cartCount {
        top: 2px !important;
        left: 42px !important;
        width: 27px !important;
        height: 27px !important;
        font-size: 12px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button {
        display: flex !important;
        position: relative !important;
        align-items: center !important;
        justify-content: flex-start !important;
        padding: 0 42px 0 0 !important;
        overflow: hidden !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon {
        display: flex !important;
        width: 52px !important;
        min-width: 52px !important;
        height: 38px !important;
        align-items: center !important;
        justify-content: center !important;
        font-size: 22px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label {
        display: flex !important;
        flex: 1 1 auto !important;
        align-self: stretch !important;
        align-items: center !important;
        justify-content: center !important;
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 8px !important;
        font-size: 13px !important;
        line-height: 1.05 !important;
        text-align: center !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton::after {
        position: absolute !important;
        top: 50% !important;
        right: 14px !important;
        margin: 0 !important;
        font-size: 13px !important;
        transform: translateY(-50%) !important;
    }

    .nlv2-home-page .nlv2-home-call-action {
        display: grid !important;
        grid-template-columns: 48px minmax(0, 1fr) 16px !important;
        padding: 0 12px 0 8px !important;
    }

    .nlv2-home-page .nlv2-home-call-icon {
        height: 60% !important;
        font-size: 22px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding-inline: 8px !important;
        font-size: 13px !important;
        line-height: 1.05 !important;
        text-align: center !important;
    }

    .nlv2-page .nlv2-profile-menu,
    .nlv2-home-page .nlv2-profile-menu {
        width: 64px !important;
        min-width: 64px !important;
        max-width: 64px !important;
        height: 64px !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2 {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .nlv2-page .nlv2-profile-icon {
        position: absolute !important;
        top: 50% !important;
        left: 45% !important;
        margin: 0 !important;
        font-size: 22px !important;
        transform: translate(-50%, -50%) !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2::after {
        position: absolute !important;
        top: 50% !important;
        right: 10px !important;
        margin: 0 !important;
        transform: translateY(-45%) !important;
    }

    /* Status / counters / search */
    .nlv2-status-row,
    .nlv2-home-status-row,
    .nlv2-live-stats,
    .nlv2-result-count,
    .nlv2-search-wrap {
        width: calc(100% - 44px) !important;
    }

    .nlv2-status-row,
    .nlv2-home-status-row {
        gap: 10px !important;
        margin-top: 16px !important;
    }

    .nlv2-status-card {
        min-height: 52px !important;
        padding-inline: 12px !important;
        border-radius: 15px !important;
        font-size: 14px !important;
    }

    .nlv2-status-card i {
        font-size: 20px !important;
    }

    .nlv2-live-stats {
        gap: 10px !important;
        margin-top: 18px !important;
    }

    .nlv2-live-stats > span:not(.nlv2-live-divider) {
        gap: 6px !important;
        font-size: 14px !important;
    }

    .nlv2-live-stats i {
        font-size: 20px !important;
    }

    .nlv2-result-count {
        margin-top: 13px !important;
        font-size: 15px !important;
    }

    .nlv2-search-wrap {
        margin-top: 13px !important;
    }

    .nlv2-search-input.form-control {
        min-height: 58px !important;
        padding: 0 54px 0 52px !important;
        border-radius: 17px !important;
        font-size: 16px !important;
    }

    .nlv2-search-icon {
        left: 18px !important;
        font-size: 22px !important;
    }

    .nlv2-search-filter {
        right: 18px !important;
        font-size: 20px !important;
    }

    /* Product list density */
    .nlv2-menu-items {
        margin-top: 16px !important;
    }

    .nlv2-product-grid {
        gap: 18px !important;
        padding: 0 22px !important;
    }

    .nlv2-product-card.card-grid,
    .nlv2-product-card.blockb {
        padding: 12px !important;
        border-radius: 21px !important;
    }

    .nlv2-product-main {
        grid-template-columns: 230px minmax(0, 1fr) !important;
        gap: 16px !important;
    }

    .nlv2-product-image.menu-image {
        height: 184px !important;
    }

    .nlv2-product-info.card-info {
        min-height: 184px !important;
        padding-top: 3px !important;
    }

    .nlv2-product-title.menu-item-title {
        font-size: 20px !important;
    }

    .nlv2-description-container.description-container {
        margin-top: 9px !important;
    }

    .nlv2-product-description.description {
        font-size: 14px !important;
        line-height: 1.35 !important;
    }

    .nlv2-description-toggle.desc-toggle-link {
        top: 54px !important;
        width: 28px !important;
        height: 28px !important;
        font-size: 14px !important;
    }

    .nlv2-allergen-row {
        gap: 6px !important;
        padding-top: 9px !important;
    }

    .nlv2-allergen-label {
        font-size: 12px !important;
    }

    .nlv2-allergen-icon-wrap {
        width: 31px !important;
        height: 31px !important;
    }

    .nlv2-product-purchase {
        gap: 12px !important;
        margin-top: 10px !important;
        padding-top: 10px !important;
    }

    .nlv2-price-block {
        gap: 7px !important;
    }

    .nlv2-price-block strong,
    .nlv2-price-primary {
        font-size: 20px !important;
    }

    .nlv2-quantity-stepper {
        width: 126px !important;
        height: 46px !important;
        border-radius: 14px !important;
    }

    .nlv2-qty-button {
        font-size: 20px !important;
    }

    .nlv2-qty-value {
        font-size: 15px !important;
    }

    .nlv2-add-cart-button.add-cart-btn {
        width: 70px !important;
        height: 46px !important;
        border-radius: 14px !important;
    }

    .nlv2-add-cart-button .icon-part {
        font-size: 21px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V18 END === */

/* === NEVERLAND PREMIUM MENU V19 START === */
@media (hover: hover) and (pointer: fine) {
    .nlv2-category-slider-container,
    .category-slider-container {
        cursor: grab !important;
        overscroll-behavior-x: contain;
    }

    .nlv2-category-slider-container.nlv2-mouse-dragging,
    .category-slider-container.nlv2-mouse-dragging {
        cursor: grabbing !important;
        scroll-snap-type: none !important;
        user-select: none !important;
    }

    .nlv2-category-slider-container.nlv2-mouse-dragging *,
    .category-slider-container.nlv2-mouse-dragging * {
        cursor: grabbing !important;
        user-select: none !important;
    }

    .nlv2-category-card img,
    .menu-category-card img {
        -webkit-user-drag: none;
        user-select: none;
    }
}
/* === NEVERLAND PREMIUM MENU V19 END === */

/* === NEVERLAND PREMIUM MENU V20 START === */
/* Keep the profile dropdown from covering the search/filter controls. */
.nlv2-page .nlv2-profile-menu {
    position: relative !important;
}

.nlv2-page .nlv2-profile-dropdown.dropdown-menu {
    top: calc(100% + 8px) !important;
    right: 0 !important;
    left: auto !important;
    inset: auto 0 auto auto !important;
    transform: none !important;
    width: max-content !important;
    min-width: 190px !important;
    max-width: min(260px, calc(100vw - 24px)) !important;
    margin: 0 !important;
    z-index: 1085 !important;
}

.nlv2-page .nlv2-actions,
.nlv2-home-page .nlv2-home-actions {
    transition: margin-bottom .16s ease !important;
}

.nlv2-page .nlv2-actions.nlv2-profile-dropdown-open,
.nlv2-home-page .nlv2-home-actions.nlv2-profile-dropdown-open {
    margin-bottom: var(--nlv2-profile-dropdown-space, 112px) !important;
}

/* The search icon/filter must never visually sit above an opened menu. */
.nlv2-page .nlv2-search-wrap {
    position: relative !important;
    z-index: 1 !important;
}

@media (max-width: 575.98px) {
    .nlv2-page .nlv2-profile-dropdown.dropdown-menu {
        min-width: 180px !important;
        max-width: calc(100vw - 20px) !important;
    }
}
/* === NEVERLAND PREMIUM MENU V20 END === */

/* === NEVERLAND PREMIUM MENU V21 START === */
/* Large desktop: use the available width and show two menu items per row. */
@media (min-width: 1100px) {
    .nlv2-page {
        width: min(1120px, calc(100vw - 48px)) !important;
        max-width: 1120px !important;
    }

    .nlv2-product-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        align-items: stretch !important;
        gap: 18px !important;
        padding: 0 22px 24px !important;
    }

    .nlv2-menu-item.menu-item {
        display: flex !important;
        min-width: 0 !important;
        height: 100% !important;
    }

    .nlv2-product-card.card-grid,
    .nlv2-product-card.blockb {
        display: flex !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 0 !important;
        flex-direction: column !important;
        padding: 12px !important;
    }

    .nlv2-product-main {
        display: grid !important;
        grid-template-columns: 150px minmax(0, 1fr) !important;
        gap: 14px !important;
        align-items: stretch !important;
        min-width: 0 !important;
    }

    .nlv2-product-media.card-left {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 0 !important;
    }

    .nlv2-product-image.menu-image {
        width: 100% !important;
        height: 158px !important;
        max-height: 158px !important;
        object-fit: contain !important;
        object-position: center !important;
    }

    .nlv2-product-info.card-info {
        min-width: 0 !important;
        min-height: 158px !important;
    }

    .nlv2-product-title.menu-item-title {
        font-size: 17px !important;
        line-height: 1.14 !important;
    }

    .nlv2-product-description.description {
        font-size: 12.5px !important;
        line-height: 1.34 !important;
    }

    .nlv2-description-toggle.desc-toggle-link {
        top: 48px !important;
        right: 0 !important;
    }

    .nlv2-allergen-row {
        gap: 5px !important;
        padding-top: 8px !important;
    }

    .nlv2-allergen-label {
        font-size: 11px !important;
    }

    .nlv2-allergen-icon-wrap {
        width: 27px !important;
        height: 27px !important;
    }

    .nlv2-product-purchase {
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 10px !important;
        margin-top: auto !important;
        padding-top: 10px !important;
    }

    .nlv2-price-block {
        display: flex !important;
        min-width: 0 !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 2px !important;
    }

    .nlv2-price-primary,
    .nlv2-price-block strong {
        font-size: 18px !important;
        line-height: 1.05 !important;
    }

    .nlv2-purchase-controls {
        gap: 7px !important;
    }

    .nlv2-quantity-stepper {
        width: 112px !important;
        height: 42px !important;
        border-radius: 13px !important;
    }

    .nlv2-add-cart-button.add-cart-btn {
        width: 60px !important;
        height: 42px !important;
        border-radius: 13px !important;
    }

    .nlv2-add-cart-button .icon-part {
        font-size: 19px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V21 END === */

/* === NEVERLAND PREMIUM MENU V22 START === */
/* Large desktop: three product cards per row. */
@media (min-width: 1280px) {
    .nlv2-page {
        width: min(1280px, calc(100vw - 48px)) !important;
        max-width: 1280px !important;
    }

    .nlv2-product-grid {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        align-items: stretch !important;
        gap: 14px !important;
        padding: 0 18px 26px !important;
    }

    .nlv2-menu-item.menu-item {
        display: flex !important;
        min-width: 0 !important;
        height: 100% !important;
    }

    .nlv2-product-card.card-grid,
    .nlv2-product-card.blockb {
        display: flex !important;
        width: 100% !important;
        height: 100% !important;
        min-width: 0 !important;
        flex-direction: column !important;
        padding: 10px !important;
    }

    .nlv2-product-main {
        display: grid !important;
        grid-template-columns: 118px minmax(0, 1fr) !important;
        gap: 10px !important;
        align-items: stretch !important;
        min-width: 0 !important;
    }

    .nlv2-product-media.card-left {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 0 !important;
    }

    .nlv2-product-image.menu-image {
        width: 100% !important;
        height: 140px !important;
        max-height: 140px !important;
        object-fit: contain !important;
        object-position: center !important;
    }

    .nlv2-product-info.card-info {
        min-width: 0 !important;
        min-height: 140px !important;
    }

    .nlv2-product-title.menu-item-title {
        font-size: 15px !important;
        line-height: 1.12 !important;
    }

    .nlv2-product-description.description {
        font-size: 11px !important;
        line-height: 1.3 !important;
    }

    .nlv2-description-toggle.desc-toggle-link {
        top: 44px !important;
        right: 0 !important;
    }

    .nlv2-allergen-row {
        gap: 4px !important;
        padding-top: 6px !important;
    }

    .nlv2-allergen-label {
        font-size: 10px !important;
    }

    .nlv2-allergen-icon-wrap {
        width: 24px !important;
        height: 24px !important;
    }

    .nlv2-product-purchase {
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 7px !important;
        margin-top: auto !important;
        padding-top: 8px !important;
    }

    .nlv2-price-block {
        display: flex !important;
        min-width: 0 !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 1px !important;
    }

    .nlv2-price-primary,
    .nlv2-price-block strong {
        font-size: 17px !important;
        line-height: 1.02 !important;
    }

    .nlv2-purchase-controls {
        gap: 5px !important;
    }

    .nlv2-quantity-stepper {
        width: 96px !important;
        height: 39px !important;
        border-radius: 12px !important;
    }

    .nlv2-add-cart-button.add-cart-btn {
        width: 52px !important;
        height: 39px !important;
        border-radius: 12px !important;
    }

    .nlv2-add-cart-button .icon-part {
        font-size: 18px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V22 END === */

/* === NEVERLAND PREMIUM MENU V23 START === */
/* Large desktop: keep price on the left and quantity/cart controls flush right. */
@media (min-width: 1280px) {
    .nlv2-product-purchase {
        display: flex !important;
        width: 100% !important;
        grid-template-columns: none !important;
        align-items: flex-end !important;
        justify-content: space-between !important;
        gap: 12px !important;
    }

    .nlv2-price-block {
        flex: 0 0 auto !important;
        margin-right: 0 !important;
    }

    .nlv2-purchase-controls {
        display: flex !important;
        flex: 0 0 auto !important;
        align-items: center !important;
        justify-content: flex-end !important;
        margin-left: auto !important;
    }

    .nlv2-quantity-stepper,
    .nlv2-add-cart-button.add-cart-btn {
        flex: 0 0 auto !important;
    }
}
/* === NEVERLAND PREMIUM MENU V23 END === */

/* === NEVERLAND PREMIUM MENU V24 START === */
/* Large desktop: show the signed-in user name next to the profile icon. */
@media (min-width: 1280px) {
    .nlv2-page .nlv2-profile-menu.menu-action-profile,
    .nlv2-home-page .nlv2-profile-menu.menu-action-profile {
        flex: 0 0 clamp(170px, 12vw, 220px) !important;
        width: clamp(170px, 12vw, 220px) !important;
        min-width: 170px !important;
        max-width: 220px !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
        position: relative !important;
        display: grid !important;
        grid-template-columns: 42px minmax(0, 1fr) 18px !important;
        align-items: center !important;
        justify-items: stretch !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0 12px 0 10px !important;
    }

    .nlv2-page .nlv2-profile-icon,
    .nlv2-home-page .nlv2-profile-icon {
        position: static !important;
        grid-column: 1 !important;
        grid-row: 1 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 42px !important;
        height: 100% !important;
        margin: 0 !important;
        transform: none !important;
    }

    .nlv2-page .nlv2-profile-button .profile-label,
    .nlv2-home-page .nlv2-profile-button .profile-label,
    .nlv2-page .nlv2-profile-button .mobile-hide-add-text,
    .nlv2-home-page .nlv2-profile-button .mobile-hide-add-text {
        grid-column: 2 !important;
        grid-row: 1 !important;
        display: block !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 6px !important;
        overflow: hidden !important;
        color: #ffffff !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        line-height: 1.1 !important;
        text-align: center !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2::after,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2::after {
        position: static !important;
        grid-column: 3 !important;
        grid-row: 1 !important;
        align-self: center !important;
        justify-self: end !important;
        margin: 0 !important;
        transform: none !important;
    }
}
/* === NEVERLAND PREMIUM MENU V24 END === */

/* === NEVERLAND PREMIUM MENU V25 START === */
/* Large desktop: keep the profile block inside the action strip and show the user name. */
@media (min-width: 1280px) {
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions,
    .nlv2-home-page .nlv2-home-actions {
        display: grid !important;
        width: calc(100% - 48px) !important;
        max-width: none !important;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(180px, 220px) !important;
        gap: 12px !important;
        align-items: stretch !important;
        margin: 12px auto 0 !important;
        overflow: visible !important;
        box-sizing: border-box !important;
    }

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > #waiterCallButton.waiter-call-button,
    .nlv2-page:not(.nlv2-home-page) .nlv2-actions > .nlv2-profile-menu,
    .nlv2-home-page .nlv2-home-actions > .nlv2-action-cart.add-cart-btn1,
    .nlv2-home-page .nlv2-home-actions > .nlv2-home-call-action,
    .nlv2-home-page .nlv2-home-actions > .nlv2-profile-menu {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        flex: none !important;
        box-sizing: border-box !important;
    }

    .nlv2-page .nlv2-profile-menu.menu-action-profile,
    .nlv2-home-page .nlv2-profile-menu.menu-action-profile {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        overflow: visible !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
        position: relative !important;
        display: grid !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 100% !important;
        grid-template-columns: 42px minmax(0, 1fr) 16px !important;
        align-items: center !important;
        padding: 0 12px 0 10px !important;
        overflow: hidden !important;
        box-sizing: border-box !important;
    }

    .nlv2-page .nlv2-profile-icon,
    .nlv2-home-page .nlv2-profile-icon {
        position: static !important;
        grid-column: 1 !important;
        display: flex !important;
        width: 42px !important;
        height: 100% !important;
        align-items: center !important;
        justify-content: center !important;
        margin: 0 !important;
        transform: none !important;
    }

    .nlv2-page .nlv2-profile-button .profile-label,
    .nlv2-home-page .nlv2-profile-button .profile-label,
    .nlv2-page .nlv2-profile-button .mobile-hide-add-text,
    .nlv2-home-page .nlv2-profile-button .mobile-hide-add-text {
        grid-column: 2 !important;
        display: block !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 6px !important;
        overflow: hidden !important;
        color: #fff !important;
        font-size: 13px !important;
        font-weight: 750 !important;
        line-height: 1.1 !important;
        text-align: center !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2::after,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2::after {
        position: static !important;
        grid-column: 3 !important;
        align-self: center !important;
        justify-self: end !important;
        margin: 0 !important;
        transform: none !important;
    }

    .nlv2-page .nlv2-profile-dropdown,
    .nlv2-home-page .nlv2-profile-dropdown {
        right: 0 !important;
        left: auto !important;
        min-width: 220px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V25 END === */

/* === NEVERLAND PREMIUM MENU V27 START === */
/* Product identity - structural match to approved premium concept. */

.nlv27-product-info {
    position: relative !important;
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    padding: 2px 0 0 !important;
}

.nlv27-product-heading {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    margin: 0 !important;
    padding: 0 2px !important;
}

.nlv27-product-heading .nlv2-product-title.menu-item-title {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    color: #09213e !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: clamp(20px, 2.4vw, 29px) !important;
    font-weight: 700 !important;
    letter-spacing: -0.025em !important;
    line-height: 1.07 !important;
    text-align: left !important;
    text-overflow: clip !important;
    white-space: normal !important;
    -webkit-line-clamp: unset !important;
    text-wrap: balance;
}

.nlv27-weight-row {
    display: grid !important;
    width: min(100%, 310px) !important;
    grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr) !important;
    align-items: center !important;
    gap: 11px !important;
    margin: 1px auto 0 !important;
}

.nlv27-weight-row .nlv2-weight-line {
    display: block !important;
    width: 100% !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent, #d79829 30%, #e8ba5a) !important;
}

.nlv27-weight-row .nlv2-weight-line:last-child {
    background: linear-gradient(90deg, #e8ba5a, #d79829 70%, transparent) !important;
}

.nlv27-weight-row .nlv2-product-weight {
    position: relative !important;
    display: inline-flex !important;
    min-height: 34px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 5px 15px !important;
    border: 1px solid #d89c32 !important;
    border-radius: 12px !important;
    background: linear-gradient(180deg, #fffefa 0%, #fff9ef 100%) !important;
    box-shadow:
        0 5px 14px rgba(182, 119, 17, .07),
        inset 0 1px 0 rgba(255,255,255,.98) !important;
    color: #bd7e19 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

.nlv27-weight-row .nlv2-product-weight::before,
.nlv27-weight-row .nlv2-product-weight::after {
    position: absolute !important;
    top: 50% !important;
    width: 7px !important;
    height: 7px !important;
    background: #dca33c !important;
    content: "" !important;
    transform: translateY(-50%) rotate(45deg) !important;
}

.nlv27-weight-row .nlv2-product-weight::before {
    left: -5px !important;
}

.nlv27-weight-row .nlv2-product-weight::after {
    right: -5px !important;
}

.nlv27-product-heading .nlv2-title-accent {
    display: block !important;
    width: 62px !important;
    height: 2px !important;
    margin-top: 1px !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, #d18b20, #efc66d) !important;
}

.nlv27-description-row {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 10px !important;
    margin-top: 12px !important;
    padding: 0 2px !important;
}

.nlv27-description-row .nlv2-description-container.description-container {
    min-width: 0 !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
}

.nlv27-description-row .nlv2-product-description.description {
    display: -webkit-box !important;
    margin: 0 !important;
    overflow: hidden !important;
    color: #707985 !important;
    font-family: inherit !important;
    font-size: clamp(13px, 1.55vw, 17px) !important;
    font-weight: 500 !important;
    letter-spacing: .005em !important;
    line-height: 1.5 !important;
    text-align: left !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
}

.nlv27-description-row .nlv2-description-container[data-collapsed="false"] .nlv2-product-description.description {
    display: block !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
}

.nlv27-description-row .nlv2-description-toggle.desc-toggle-link {
    position: static !important;
    display: flex !important;
    width: 34px !important;
    height: 34px !important;
    flex: 0 0 34px !important;
    align-items: center !important;
    justify-content: center !important;
    align-self: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border-radius: 50% !important;
    color: #08294c !important;
    font-size: 15px !important;
    text-decoration: none !important;
}

.nlv27-description-row .nlv2-description-toggle.desc-toggle-link:hover {
    background: rgba(8, 41, 76, .055) !important;
}

.nlv27-product-info .nlv2-allergen-row {
    margin-top: auto !important;
    padding-top: 14px !important;
}

/* Make the surrounding card closer to the approved high-end visual. */
.nlv2-product-card.card-grid,
.nlv2-product-card.blockb {
    border: 1px solid rgba(16, 39, 65, .13) !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,.995) 0%, rgba(253,253,252,.985) 100%) !important;
    box-shadow:
        0 12px 30px rgba(11, 30, 52, .11),
        inset 0 1px 0 rgba(255,255,255,.98) !important;
}

/* Desktop 3-column cards need a denser version, but retain the same hierarchy. */
@media (min-width: 1280px) {
    .nlv27-product-heading {
        gap: 7px !important;
    }

    .nlv27-product-heading .nlv2-product-title.menu-item-title {
        font-size: 18px !important;
        line-height: 1.08 !important;
    }

    .nlv27-weight-row {
        width: min(100%, 205px) !important;
        gap: 7px !important;
    }

    .nlv27-weight-row .nlv2-product-weight {
        min-height: 26px !important;
        padding: 3px 10px !important;
        border-radius: 10px !important;
        font-size: 12px !important;
    }

    .nlv27-description-row {
        gap: 6px !important;
        margin-top: 8px !important;
    }

    .nlv27-description-row .nlv2-product-description.description {
        font-size: 12px !important;
        line-height: 1.38 !important;
        -webkit-line-clamp: 2 !important;
    }

    .nlv27-description-row .nlv2-description-toggle.desc-toggle-link {
        width: 26px !important;
        height: 26px !important;
        flex-basis: 26px !important;
        font-size: 12px !important;
    }

    .nlv27-product-info .nlv2-allergen-row {
        padding-top: 8px !important;
    }
}

@media (max-width: 575.98px) {
    .nlv27-product-heading {
        gap: 6px !important;
    }

    .nlv27-product-heading .nlv2-product-title.menu-item-title {
        font-size: 17px !important;
        line-height: 1.08 !important;
    }

    .nlv27-weight-row {
        width: min(100%, 190px) !important;
        gap: 6px !important;
    }

    .nlv27-weight-row .nlv2-product-weight {
        min-height: 25px !important;
        padding: 3px 9px !important;
        border-radius: 9px !important;
        font-size: 11.5px !important;
    }

    .nlv27-description-row {
        gap: 5px !important;
        margin-top: 7px !important;
    }

    .nlv27-description-row .nlv2-product-description.description {
        font-size: 11.5px !important;
        line-height: 1.38 !important;
        -webkit-line-clamp: 2 !important;
    }

    .nlv27-description-row .nlv2-description-toggle.desc-toggle-link {
        width: 24px !important;
        height: 24px !important;
        flex-basis: 24px !important;
        font-size: 11px !important;
    }
}
/* === NEVERLAND PREMIUM MENU V27 END === */

/* === NEVERLAND PREMIUM MENU V29 START === */
/* Expanded descriptions must grow the card instead of overflowing into the purchase row. */

.nlv2-page .nlv2-product-main {
    height: auto !important;
    min-height: 0 !important;
    align-items: stretch !important;
}

.nlv2-page .nlv27-product-info.card-info,
.nlv2-page .nlv2-product-info.card-info.nlv27-product-info {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.nlv2-page .nlv27-description-row {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

.nlv2-page .nlv27-description-row .nlv2-description-container.description-container {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
}

.nlv2-page .nlv27-description-row .nlv2-description-container[data-collapsed="false"] {
    max-height: none !important;
    overflow: visible !important;
}

.nlv2-page .nlv27-description-row .nlv2-description-container[data-collapsed="false"] .nlv2-product-description.description {
    display: block !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
}

.nlv2-page .nlv27-product-info .nlv2-allergen-row {
    flex: 0 0 auto !important;
    margin-top: 12px !important;
}

.nlv2-page .nlv2-product-purchase {
    position: relative !important;
    z-index: 1 !important;
    clear: both !important;
    margin-top: 12px !important;
}

/* Base V2 contains fixed 126/116px heights in small-screen media queries.
   These overrides intentionally cancel them only for the info column. */
@media (max-width: 575.98px) {
    .nlv2-page .nlv27-product-info.card-info,
    .nlv2-page .nlv2-product-info.card-info.nlv27-product-info {
        height: auto !important;
        min-height: 126px !important;
    }

    .nlv2-page .nlv27-description-row .nlv2-description-container[data-collapsed="false"] {
        max-height: none !important;
    }
}

@media (max-width: 350px) {
    .nlv2-page .nlv27-product-info.card-info,
    .nlv2-page .nlv2-product-info.card-info.nlv27-product-info {
        height: auto !important;
        min-height: 116px !important;
    }
}

/* Three-column desktop can also contain longer translated descriptions. */
@media (min-width: 1280px) {
    .nlv2-page .nlv27-product-info.card-info,
    .nlv2-page .nlv2-product-info.card-info.nlv27-product-info {
        height: auto !important;
        max-height: none !important;
    }

    .nlv2-page .nlv27-description-row .nlv2-description-container[data-collapsed="false"] {
        max-height: none !important;
    }
}
/* === NEVERLAND PREMIUM MENU V29 END === */

/* === NEVERLAND PREMIUM MENU V32 ADDONS POPUP START === */

#addOnsModal .nl-aom32-dialog {
    width: min(94vw, 720px) !important;
    max-width: 720px !important;
    margin: 12px auto !important;
}

#addOnsModal .nl-aom32-shell {
    display: flex !important;
    max-height: calc(100dvh - 24px) !important;
    flex-direction: column !important;
    overflow: hidden !important;
    border: 1px solid rgba(8, 33, 62, .16) !important;
    border-radius: 26px !important;
    background: #f6f8fa !important;
    box-shadow: 0 26px 75px rgba(8, 28, 50, .28) !important;
}

#addOnsModal .nl-aom32-header {
    flex: 0 0 auto !important;
    padding: 15px 18px !important;
    border: 0 !important;
    background: linear-gradient(180deg, #222a34 0%, #151c25 100%) !important;
}

#addOnsModal .nl-aom32-header .modal-title {
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    letter-spacing: .01em !important;
}

#addOnsModal .nl-aom32-body {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 15px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    background: linear-gradient(180deg, #f8fafc 0%, #f3f5f8 100%) !important;
}

#addOnsModal .nl-aom32-product {
    padding: 14px !important;
    overflow: visible !important;
    border: 1px solid rgba(10, 37, 67, .13) !important;
    border-radius: 20px !important;
    background: linear-gradient(180deg, #fff 0%, #fefefd 100%) !important;
    box-shadow: 0 12px 28px rgba(8, 30, 52, .10), inset 0 1px 0 #fff !important;
}

#addOnsModal .nl-aom32-product-top {
    display: grid !important;
    grid-template-columns: 140px minmax(0, 1fr) !important;
    gap: 16px !important;
    align-items: start !important;
}

#addOnsModal .nl-aom32-photo-wrap {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    min-width: 0 !important;
}

#addOnsModal .nl-aom32-photo {
    display: block !important;
    width: 140px !important;
    height: 140px !important;
    max-width: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    border: 0 !important;
    border-radius: 18px !important;
    background: transparent !important;
    filter: drop-shadow(0 11px 13px rgba(8, 28, 48, .22)) !important;
}

#addOnsModal .nl-aom32-info {
    display: flex !important;
    min-width: 0 !important;
    flex-direction: column !important;
    align-items: stretch !important;
}

#addOnsModal .nl-aom32-name {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #09213e !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 23px !important;
    font-weight: 700 !important;
    letter-spacing: -.02em !important;
    line-height: 1.08 !important;
    text-align: left !important;
    white-space: normal !important;
    text-wrap: balance !important;
}

#addOnsModal .nl-aom32-weight-row:not([hidden]) {
    display: grid !important;
    width: min(100%, 255px) !important;
    grid-template-columns: minmax(18px, 1fr) auto minmax(18px, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    margin: 9px 0 0 !important;
}

#addOnsModal .nl-aom32-weight-line {
    display: block !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent, #d69a32 35%, #ecbf63) !important;
}

#addOnsModal .nl-aom32-weight-line:last-child {
    background: linear-gradient(90deg, #ecbf63, #d69a32 65%, transparent) !important;
}

#addOnsModal .nl-aom32-weight {
    position: relative !important;
    display: inline-flex !important;
    min-height: 29px !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 4px 12px !important;
    border: 1px solid #d89a30 !important;
    border-radius: 11px !important;
    background: linear-gradient(180deg, #fffefa 0%, #fff8ec 100%) !important;
    color: #bb7b16 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    white-space: nowrap !important;
}

#addOnsModal .nl-aom32-weight::before,
#addOnsModal .nl-aom32-weight::after {
    position: absolute !important;
    top: 50% !important;
    width: 7px !important;
    height: 7px !important;
    background: #dda43d !important;
    content: "" !important;
    transform: translateY(-50%) rotate(45deg) !important;
}

#addOnsModal .nl-aom32-weight::before { left: -5px !important; }
#addOnsModal .nl-aom32-weight::after { right: -5px !important; }

#addOnsModal .nl-aom32-title-accent:not([hidden]) {
    display: block !important;
    width: 54px !important;
    height: 2px !important;
    margin-top: 9px !important;
    border-radius: 999px !important;
    background: linear-gradient(90deg, #ca861e, #efc66c) !important;
}

#addOnsModal .nl-aom32-description-row:not([hidden]) {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 7px !important;
    margin-top: 10px !important;
}

#addOnsModal .nl-aom32-description-text {
    display: block !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #707985 !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    letter-spacing: .004em !important;
    line-height: 1.45 !important;
    text-align: left !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

#addOnsModal .nl-aom32-description-text.is-collapsed {
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

#addOnsModal .nl-aom32-description-toggle {
    display: flex !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    flex: 0 0 30px !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    color: #0a2b4e !important;
    font-size: 14px !important;
    box-shadow: none !important;
}

#addOnsModal .nl-aom32-allergens:not([hidden]) {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 7px !important;
    margin-top: 11px !important;
    padding-top: 10px !important;
    border-top: 1px solid rgba(13, 40, 69, .08) !important;
}

#addOnsModal .nl-aom32-allergens-label {
    flex: 0 0 auto !important;
    color: #b67a1b !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

#addOnsModal .nl-aom32-allergens-chevron {
    flex: 0 0 auto !important;
    color: #cb8b22 !important;
    font-size: 12px !important;
}

#addOnsModal .nl-aom32-allergen-icons {
    display: flex !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    gap: 6px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
}

#addOnsModal .nl-aom32-allergen-icons::-webkit-scrollbar { display: none !important; }

#addOnsModal .nl-aom32-allergen-icon {
    display: block !important;
    width: 29px !important;
    height: 29px !important;
    min-width: 29px !important;
    flex: 0 0 29px !important;
    padding: 3px !important;
    border: 1px solid #dda33d !important;
    border-radius: 50% !important;
    object-fit: contain !important;
    background: #fffdf9 !important;
    filter: none !important;
}

#addOnsModal .nl-aom32-product-footer {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    margin-top: 13px !important;
    padding-top: 12px !important;
    border-top: 1px solid rgba(13, 40, 69, .10) !important;
}

#addOnsModal .nl-aom32-price {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 2px !important;
    margin: 0 !important;
}

#addOnsModal .nl-aom32-price-eur {
    color: #092646 !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

#addOnsModal .nl-aom32-addons-section {
    margin-top: 13px !important;
}

#addOnsModal .nl-aom32-addons {
    display: flex !important;
    width: 100% !important;
    flex-direction: column !important;
    gap: 8px !important;
}

#addOnsModal .nl-aom32-addon-row {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) 132px !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid rgba(13, 40, 69, .10) !important;
    border-radius: 15px !important;
    background: #fff !important;
    box-shadow: 0 7px 16px rgba(10, 32, 55, .05) !important;
}

#addOnsModal .nl-aom32-addon-meta {
    display: block !important;
    min-width: 0 !important;
}

#addOnsModal .nl-aom32-addon-name {
    display: block !important;
    margin: 0 !important;
    color: #12253f !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    overflow-wrap: anywhere !important;
}

#addOnsModal .nl-aom32-addon-price {
    display: block !important;
    margin-top: 3px !important;
    color: #747c87 !important;
    font-size: 12px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
}

#addOnsModal .nl-aom32-addon-stepper {
    display: grid !important;
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    grid-template-columns: 42px 48px 42px !important;
    grid-template-rows: 42px !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    overflow: hidden !important;
    border: 1px solid rgba(13, 40, 69, .14) !important;
    border-radius: 14px !important;
    background: #fff !important;
}

#addOnsModal .nl-aom32-addon-minus,
#addOnsModal .nl-aom32-addon-plus,
#addOnsModal .nl-aom32-addon-input {
    position: static !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 42px !important;
    min-height: 42px !important;
    max-height: 42px !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    transform: none !important;
}

#addOnsModal .nl-aom32-addon-minus,
#addOnsModal .nl-aom32-addon-plus {
    color: #c78520 !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
}

#addOnsModal .nl-aom32-addon-minus { border-right: 1px solid rgba(13,40,69,.09) !important; }
#addOnsModal .nl-aom32-addon-plus { border-left: 1px solid rgba(13,40,69,.09) !important; }

#addOnsModal .nl-aom32-addon-input {
    appearance: none !important;
    color: #12253f !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 42px !important;
    text-align: center !important;
}

#addOnsModal .nl-aom32-empty,
#addOnsModal .nl-aom32-loading {
    padding: 18px !important;
    border: 1px solid rgba(13,40,69,.08) !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: #7a828d !important;
    text-align: center !important;
}

#addOnsModal .nl-aom32-total-card {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    margin-top: 13px !important;
    padding: 12px 14px !important;
    border: 0 !important;
    border-radius: 15px !important;
    background: linear-gradient(180deg, #202a37 0%, #152131 100%) !important;
    box-shadow: 0 12px 24px rgba(8, 28, 50, .16) !important;
}

#addOnsModal .nl-aom32-total-label {
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

#addOnsModal .nl-aom32-total-value {
    display: flex !important;
    align-items: baseline !important;
    justify-content: flex-end !important;
    gap: 7px !important;
    margin: 0 !important;
}

#addOnsModal .nl-aom32-total-eur {
    color: #fff !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

#addOnsModal .nl-aom32-main-quantity {
    display: grid !important;
    width: 174px !important;
    grid-template-columns: 56px 62px 56px !important;
    grid-template-rows: 48px !important;
    margin: 14px auto 0 !important;
    overflow: hidden !important;
    border: 1px solid rgba(13, 40, 69, .13) !important;
    border-radius: 15px !important;
    background: #fff !important;
}

#addOnsModal .nl-aom32-main-qty-btn,
#addOnsModal .nl-aom32-main-qty-value {
    position: static !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    transform: none !important;
}

#addOnsModal .nl-aom32-main-qty-btn {
    color: #c78520 !important;
    font-size: 21px !important;
}

#addOnsModal .nl-aom32-main-qty-value {
    border-right: 1px solid rgba(13,40,69,.09) !important;
    border-left: 1px solid rgba(13,40,69,.09) !important;
    color: #12253f !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 48px !important;
    text-align: center !important;
}

#addOnsModal .nl-aom32-footer {
    display: grid !important;
    flex: 0 0 auto !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
    padding: 13px 15px 15px !important;
    border-top: 1px solid rgba(13,40,69,.08) !important;
    background: #f6f8fa !important;
}

#addOnsModal .nl-aom32-footer-btn {
    position: relative !important;
    display: grid !important;
    min-width: 0 !important;
    height: 52px !important;
    grid-template-columns: 50px minmax(0,1fr) 12px !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 12px 0 0 !important;
    overflow: hidden !important;
    border-radius: 16px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    box-shadow: 0 9px 20px rgba(8, 28, 50, .12) !important;
}

#addOnsModal .nl-aom32-footer-icon {
    display: flex !important;
    width: 50px !important;
    height: 52px !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px !important;
}

#addOnsModal .nl-aom32-footer-btn-secondary {
    border: 1px solid #0a2b4e !important;
    background: #fff !important;
    color: #0a2b4e !important;
}

#addOnsModal .nl-aom32-footer-btn-secondary .nl-aom32-footer-icon {
    background: #f7f9fc !important;
    color: #0a2b4e !important;
}

#addOnsModal .nl-aom32-footer-btn-primary {
    border: 1px solid #d79a30 !important;
    background: linear-gradient(135deg, #f2c45f 0%, #dfa02d 100%) !important;
    color: #0a2b4e !important;
}

#addOnsModal .nl-aom32-footer-btn-primary .nl-aom32-footer-icon {
    background: rgba(255,255,255,.92) !important;
    color: #0a2b4e !important;
}

@media (max-width: 575.98px) {
    #addOnsModal .nl-aom32-dialog {
        width: calc(100vw - 14px) !important;
        max-width: calc(100vw - 14px) !important;
        margin: 7px auto !important;
    }

    #addOnsModal .nl-aom32-shell {
        max-height: calc(100dvh - 14px) !important;
        border-radius: 20px !important;
    }

    #addOnsModal .nl-aom32-body {
        padding: 11px !important;
    }

    #addOnsModal .nl-aom32-product {
        padding: 12px !important;
        border-radius: 17px !important;
    }

    #addOnsModal .nl-aom32-product-top {
        grid-template-columns: 112px minmax(0,1fr) !important;
        gap: 11px !important;
    }

    #addOnsModal .nl-aom32-photo {
        width: 112px !important;
        height: 112px !important;
    }

    #addOnsModal .nl-aom32-name {
        font-size: 18px !important;
    }

    #addOnsModal .nl-aom32-weight-row:not([hidden]) {
        width: min(100%, 185px) !important;
        gap: 6px !important;
        margin-top: 7px !important;
    }

    #addOnsModal .nl-aom32-weight {
        min-height: 25px !important;
        padding: 3px 9px !important;
        font-size: 11.5px !important;
    }

    #addOnsModal .nl-aom32-description-row:not([hidden]) {
        gap: 5px !important;
        margin-top: 7px !important;
    }

    #addOnsModal .nl-aom32-description-text {
        font-size: 12px !important;
        line-height: 1.38 !important;
    }

    #addOnsModal .nl-aom32-allergens:not([hidden]) {
        gap: 5px !important;
        margin-top: 8px !important;
        padding-top: 8px !important;
    }

    #addOnsModal .nl-aom32-allergens-label { font-size: 11px !important; }
    #addOnsModal .nl-aom32-allergen-icon {
        width: 27px !important;
        height: 27px !important;
        min-width: 27px !important;
        flex-basis: 27px !important;
    }

    #addOnsModal .nl-aom32-price-eur { font-size: 21px !important; }

    #addOnsModal .nl-aom32-addon-row {
        grid-template-columns: minmax(0,1fr) 111px !important;
        gap: 8px !important;
        padding: 9px !important;
    }

    #addOnsModal .nl-aom32-addon-name { font-size: 12.5px !important; }
    #addOnsModal .nl-aom32-addon-price { font-size: 10.5px !important; }

    #addOnsModal .nl-aom32-addon-stepper {
        width: 111px !important;
        min-width: 111px !important;
        max-width: 111px !important;
        grid-template-columns: 35px 41px 35px !important;
        grid-template-rows: 38px !important;
    }

    #addOnsModal .nl-aom32-addon-minus,
    #addOnsModal .nl-aom32-addon-plus,
    #addOnsModal .nl-aom32-addon-input {
        height: 38px !important;
        min-height: 38px !important;
        max-height: 38px !important;
    }

    #addOnsModal .nl-aom32-addon-minus,
    #addOnsModal .nl-aom32-addon-plus { font-size: 17px !important; }
    #addOnsModal .nl-aom32-addon-input { font-size: 13px !important; line-height: 38px !important; }

    #addOnsModal .nl-aom32-total-card {
        margin-top: 10px !important;
        padding: 11px 12px !important;
    }

    #addOnsModal .nl-aom32-total-eur { font-size: 18px !important; }

    #addOnsModal .nl-aom32-footer {
        gap: 9px !important;
        padding: 11px !important;
    }

    #addOnsModal .nl-aom32-footer-btn {
        height: 49px !important;
        grid-template-columns: 45px minmax(0,1fr) 6px !important;
        padding-right: 6px !important;
        border-radius: 15px !important;
        font-size: 13px !important;
    }

    #addOnsModal .nl-aom32-footer-icon {
        width: 45px !important;
        height: 49px !important;
        font-size: 16px !important;
    }
}

@media (max-width: 390px) {
    #addOnsModal .nl-aom32-product-top {
        grid-template-columns: 98px minmax(0,1fr) !important;
        gap: 9px !important;
    }

    #addOnsModal .nl-aom32-photo {
        width: 98px !important;
        height: 98px !important;
    }

    #addOnsModal .nl-aom32-name { font-size: 16px !important; }

    #addOnsModal .nl-aom32-allergens:not([hidden]) {
        flex-wrap: wrap !important;
    }

    #addOnsModal .nl-aom32-allergen-icons {
        flex-basis: 100% !important;
    }
}

/* === NEVERLAND PREMIUM MENU V32 ADDONS POPUP END === */

/* === NEVERLAND PREMIUM MENU V33 POPUP META FIX START === */

/*
   V33 deliberately places description and allergens below the image/title
   as a full-width block. This removes the cramped right-column behaviour.
*/

#addOnsModal .nl-aom33-product-meta {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin-top: 12px !important;
    padding: 0 !important;
}

#addOnsModal .nl-aom33-description-row:not([hidden]) {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) 32px !important;
    gap: 8px !important;
    align-items: center !important;
    padding: 11px 12px !important;
    border: 1px solid rgba(10, 37, 67, .08) !important;
    border-radius: 14px !important;
    background: linear-gradient(180deg, #fbfcfd 0%, #f7f9fb 100%) !important;
}

#addOnsModal .nl-aom33-description-text {
    display: block !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    color: #66717f !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    letter-spacing: .004em !important;
    line-height: 1.46 !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
}

#addOnsModal .nl-aom33-description-text.is-collapsed {
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 2 !important;
}

#addOnsModal .nl-aom33-description-toggle {
    display: flex !important;
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #fff !important;
    color: #0b2a4b !important;
    box-shadow: 0 3px 10px rgba(8, 31, 55, .08) !important;
}

#addOnsModal .nl-aom33-allergens:not([hidden]) {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 7px !important;
    margin-top: 9px !important;
    padding: 9px 11px !important;
    border: 1px solid rgba(205, 144, 38, .18) !important;
    border-radius: 14px !important;
    background: linear-gradient(180deg, #fffdf9 0%, #fffbf3 100%) !important;
}

#addOnsModal .nl-aom33-allergens-label {
    flex: 0 0 auto !important;
    color: #b87817 !important;
    font-size: 12px !important;
    font-weight: 750 !important;
    white-space: nowrap !important;
}

#addOnsModal .nl-aom33-allergens-chevron {
    flex: 0 0 auto !important;
    color: #d39732 !important;
    font-size: 11px !important;
}

#addOnsModal .nl-aom33-allergen-icons {
    display: flex !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
    align-items: center !important;
    gap: 7px !important;
    overflow-x: auto !important;
    scrollbar-width: none !important;
}

#addOnsModal .nl-aom33-allergen-icons::-webkit-scrollbar {
    display: none !important;
}

#addOnsModal .nl-aom33-allergen-icon {
    display: block !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    flex: 0 0 30px !important;
    padding: 3px !important;
    border: 1px solid #dda33d !important;
    border-radius: 50% !important;
    object-fit: contain !important;
    background: #fff !important;
    filter: none !important;
}

/* Price gets a clean separation from metadata. */
#addOnsModal .nl-aom32-product-footer {
    margin-top: 10px !important;
}

/* Neutralize the old V32 rows if cached markup survives temporarily. */
#addOnsModal .nl-aom32-description-row,
#addOnsModal .nl-aom32-allergens {
    position: static !important;
}

/* Phone sizing */
@media (max-width: 575.98px) {
    #addOnsModal .nl-aom33-product-meta {
        margin-top: 9px !important;
    }

    #addOnsModal .nl-aom33-description-row:not([hidden]) {
        grid-template-columns: minmax(0, 1fr) 28px !important;
        gap: 5px !important;
        padding: 9px 10px !important;
    }

    #addOnsModal .nl-aom33-description-text {
        font-size: 11.5px !important;
        line-height: 1.4 !important;
    }

    #addOnsModal .nl-aom33-description-toggle {
        width: 28px !important;
        height: 28px !important;
        min-width: 28px !important;
        font-size: 12px !important;
    }

    #addOnsModal .nl-aom33-allergens:not([hidden]) {
        gap: 5px !important;
        padding: 8px 9px !important;
    }

    #addOnsModal .nl-aom33-allergens-label {
        font-size: 11px !important;
    }

    #addOnsModal .nl-aom33-allergen-icon {
        width: 27px !important;
        height: 27px !important;
        min-width: 27px !important;
        flex-basis: 27px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V33 POPUP META FIX END === */

/* === NEVERLAND PREMIUM MENU V37 BLACK DESCRIPTION START === */

/* Main menu product descriptions */
.nlv2-product-description.description,
.nlv27-description-row .nlv2-product-description.description {
    color: #111111 !important;
}

/* Add-ons popup description */
#addOnsModal .nl-aom33-description-text {
    color: #111111 !important;
}

/* === NEVERLAND PREMIUM MENU V37 BLACK DESCRIPTION END === */

/* === NEVERLAND PREMIUM MENU V39 BLACK ALLERGEN LABEL START === */

/* Main menu product cards */
.nlv2-allergen-label,
.nlv27-product-info .nlv2-allergen-label {
    color: #111111 !important;
}

/* Add-ons popup */
#addOnsModal .nl-aom33-allergens-label {
    color: #111111 !important;
}

/* === NEVERLAND PREMIUM MENU V39 BLACK ALLERGEN LABEL END === */

/* === NEVERLAND PREMIUM MENU V40 ALLERGEN ICONS NO CIRCLES START === */

/*
   Remove the decorative circle around allergen icons.
   The allergen artwork itself now uses the full size previously occupied
   by the circle, both in menu cards and in the AddOns popup.
*/

/* Main menu */
.nlv2-allergen-icons .nlv2-allergen-icon,
.nlv2-allergen-icons .allergen-icon,
.nlv27-product-info .nlv2-allergen-icon,
.nlv27-product-info .allergen-icon {
    display: block !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    flex: 0 0 30px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;

    object-fit: contain !important;
    object-position: center !important;
}

/* AddOns popup */
#addOnsModal .nl-aom33-allergen-icons .nl-aom33-allergen-icon,
#addOnsModal .nl-aom33-allergen-icon {
    display: block !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    flex: 0 0 30px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;

    object-fit: contain !important;
    object-position: center !important;
}

/* Keep the icon size consistent on phones as well. */
@media (max-width: 575.98px) {
    .nlv2-allergen-icons .nlv2-allergen-icon,
    .nlv2-allergen-icons .allergen-icon,
    .nlv27-product-info .nlv2-allergen-icon,
    .nlv27-product-info .allergen-icon,
    #addOnsModal .nl-aom33-allergen-icons .nl-aom33-allergen-icon,
    #addOnsModal .nl-aom33-allergen-icon {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        max-width: 30px !important;
        flex-basis: 30px !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
    }
}

/* === NEVERLAND PREMIUM MENU V40 ALLERGEN ICONS NO CIRCLES END === */

/* === NEVERLAND PREMIUM MENU V40.1 MAIN ALLERGEN FIX START === */

/*
   V40 removed the border from the IMG, but the visible circle in the main
   menu is actually .nlv2-allergen-icon-wrap. Keep the original footprint,
   remove that wrapper decoration and let the image fill the whole footprint.
*/

.nlv2-allergen-icons .nlv2-allergen-icon-wrap,
.nlv27-product-info .nlv2-allergen-icon-wrap {
    display: grid !important;

    /* Preserve the original premium footprint. */
    width: clamp(25px, 5.25vw, 45px) !important;
    height: clamp(25px, 5.25vw, 45px) !important;
    min-width: clamp(25px, 5.25vw, 45px) !important;
    flex: 0 0 auto !important;

    place-items: center !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;
    outline: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
}

.nlv2-allergen-icons .nlv2-allergen-icon-wrap > .nlv2-allergen-icon,
.nlv2-allergen-icons .nlv2-allergen-icon-wrap > .allergen-icon,
.nlv27-product-info .nlv2-allergen-icon-wrap > .nlv2-allergen-icon,
.nlv27-product-info .nlv2-allergen-icon-wrap > .allergen-icon {
    display: block !important;

    /* The artwork now occupies the full former circle size. */
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    background: transparent !important;
    box-shadow: none !important;
    filter: none !important;

    object-fit: contain !important;
    object-position: center !important;
}

/* Keep icon gaps clean after removing the circles. */
.nlv2-allergen-icons {
    gap: clamp(5px, 1vw, 8px) !important;
    overflow: visible !important;
}

/* === NEVERLAND PREMIUM MENU V40.1 MAIN ALLERGEN FIX END === */



/* === NEVERLAND PREMIUM MENU V42 COMPACT ALLERGEN SPACING START === */

/*
   Reduce the empty vertical space immediately before and after the allergen row
   in the MAIN product cards. Popup spacing is intentionally unchanged.
*/

.nlv2-page .nlv27-product-info .nlv2-allergen-row {
    margin-top: 6px !important;
    margin-bottom: 0 !important;
    padding-top: 4px !important;
    padding-bottom: 0 !important;
}

.nlv2-page .nlv2-product-purchase {
    margin-top: 7px !important;
}

/* Slightly tighter on phone cards. */
@media (max-width: 575.98px) {
    .nlv2-page .nlv27-product-info .nlv2-allergen-row {
        margin-top: 5px !important;
        padding-top: 3px !important;
    }

    .nlv2-page .nlv2-product-purchase {
        margin-top: 6px !important;
    }
}

/* Three-column desktop cards stay compact as well. */
@media (min-width: 1280px) {
    .nlv2-page .nlv27-product-info .nlv2-allergen-row {
        margin-top: 5px !important;
        padding-top: 3px !important;
    }

    .nlv2-page .nlv2-product-purchase {
        margin-top: 6px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V42 COMPACT ALLERGEN SPACING END === */

/* === NEVERLAND PREMIUM MENU V43 POPUP ADDONS COMPACT STACK START === */

/*
   Make add-on rows in the AddOns popup almost touch vertically.
   Keep the row design intact; only tighten the stack spacing.
*/

#addOnsModal .nl-aom32-addons-section {
    margin-top: 9px !important;
}

#addOnsModal .nl-aom32-addons {
    gap: 3px !important;
}

#addOnsModal .nl-aom32-addon-row {
    margin: 0 !important;
}

@media (max-width: 575.98px) {
    #addOnsModal .nl-aom32-addons-section {
        margin-top: 8px !important;
    }

    #addOnsModal .nl-aom32-addons {
        gap: 2px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V43 POPUP ADDONS COMPACT STACK END === */

/* === NEVERLAND PREMIUM MENU V44 POPUP PRODUCT MATCHES CARD START === */

/*
   Match the product identity area in AddOns popup to the main menu card:
   - image on the left
   - title / weight / description / allergens on the right
   - price in a full-width bottom row
   - remove the large boxed description/allergen panels
*/

#addOnsModal .nl-aom32-product {
    display: grid !important;
    grid-template-columns: 38% minmax(0, 62%) !important;
    grid-template-areas:
        "photo info"
        "photo meta"
        "footer footer" !important;
    column-gap: 16px !important;
    row-gap: 0 !important;
    align-items: start !important;
    padding: 14px !important;
}

/* Let the original top wrapper disappear from layout while keeping its children. */
#addOnsModal .nl-aom32-product-top {
    display: contents !important;
}

#addOnsModal .nl-aom32-photo-wrap {
    grid-area: photo !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding-top: 2px !important;
}

#addOnsModal .nl-aom32-photo {
    width: min(100%, 164px) !important;
    height: 164px !important;
    max-width: 164px !important;
    object-fit: contain !important;
    object-position: center !important;
    border-radius: 18px !important;
}

#addOnsModal .nl-aom32-info {
    grid-area: info !important;
    min-width: 0 !important;
    padding: 1px 2px 0 !important;
}

#addOnsModal .nl-aom32-name {
    margin: 0 !important;
    color: #111111 !important;
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 21px !important;
    font-weight: 700 !important;
    line-height: 1.08 !important;
    text-align: left !important;
}

/* Keep the premium weight ornament directly under the title, like the main card. */
#addOnsModal .nl-aom32-weight-row:not([hidden]) {
    width: min(100%, 245px) !important;
    margin-top: 7px !important;
}

/* Description + allergens move into the right-hand content column. */
#addOnsModal .nl-aom33-product-meta {
    grid-area: meta !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 8px 0 0 !important;
    padding: 0 2px !important;
}

/* Remove the large description box from V33. */
#addOnsModal .nl-aom33-description-row:not([hidden]) {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) 28px !important;
    gap: 5px !important;
    align-items: center !important;
    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

#addOnsModal .nl-aom33-description-text {
    color: #111111 !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    line-height: 1.40 !important;
}

#addOnsModal .nl-aom33-description-toggle {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #08294c !important;
}

/* Allergens match the compact inline row from the main menu card. */
#addOnsModal .nl-aom33-allergens:not([hidden]) {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 6px !important;
    margin: 7px 0 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

#addOnsModal .nl-aom33-allergens-label {
    color: #111111 !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
}

#addOnsModal .nl-aom33-allergens-chevron {
    color: #d39732 !important;
    font-size: 11px !important;
}

#addOnsModal .nl-aom33-allergen-icons {
    gap: 6px !important;
}

/* Keep the current user preference: no additional CSS circle around icons. */
#addOnsModal .nl-aom33-allergen-icon {
    width: 29px !important;
    height: 29px !important;
    min-width: 29px !important;
    flex-basis: 29px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    object-fit: contain !important;
}

/* Price row like the bottom of the main product card. */
#addOnsModal .nl-aom32-product-footer {
    grid-area: footer !important;
    display: flex !important;
    width: 100% !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    margin-top: 10px !important;
    padding-top: 10px !important;
    border-top: 1px solid rgba(13, 40, 69, .10) !important;
}

#addOnsModal .nl-aom32-price-eur {
    font-size: 23px !important;
}

/* Phone: preserve the same structure, just tighten dimensions. */
@media (max-width: 575.98px) {
    #addOnsModal .nl-aom32-product {
        grid-template-columns: 39% minmax(0, 61%) !important;
        column-gap: 10px !important;
        padding: 11px !important;
    }

    #addOnsModal .nl-aom32-photo {
        width: min(100%, 126px) !important;
        height: 126px !important;
        max-width: 126px !important;
        border-radius: 16px !important;
    }

    #addOnsModal .nl-aom32-name {
        font-size: 17px !important;
        line-height: 1.08 !important;
    }

    #addOnsModal .nl-aom32-weight-row:not([hidden]) {
        width: min(100%, 188px) !important;
        gap: 5px !important;
        margin-top: 5px !important;
    }

    #addOnsModal .nl-aom32-weight {
        min-height: 24px !important;
        padding: 3px 9px !important;
        font-size: 11px !important;
    }

    #addOnsModal .nl-aom33-product-meta {
        margin-top: 6px !important;
        padding-inline: 1px !important;
    }

    #addOnsModal .nl-aom33-description-row:not([hidden]) {
        grid-template-columns: minmax(0, 1fr) 25px !important;
        gap: 4px !important;
    }

    #addOnsModal .nl-aom33-description-text {
        font-size: 11px !important;
        line-height: 1.36 !important;
    }

    #addOnsModal .nl-aom33-description-toggle {
        width: 25px !important;
        height: 25px !important;
        min-width: 25px !important;
        font-size: 11px !important;
    }

    #addOnsModal .nl-aom33-allergens:not([hidden]) {
        gap: 5px !important;
        margin-top: 6px !important;
    }

    #addOnsModal .nl-aom33-allergens-label {
        font-size: 10.5px !important;
    }

    #addOnsModal .nl-aom33-allergen-icon {
        width: 27px !important;
        height: 27px !important;
        min-width: 27px !important;
        flex-basis: 27px !important;
    }

    #addOnsModal .nl-aom32-product-footer {
        margin-top: 8px !important;
        padding-top: 8px !important;
    }

    #addOnsModal .nl-aom32-price-eur {
        font-size: 20px !important;
    }

}

/* Very narrow phones: a little more room for text. */
@media (max-width: 370px) {
    #addOnsModal .nl-aom32-product {
        grid-template-columns: 36% minmax(0, 64%) !important;
        column-gap: 8px !important;
    }

    #addOnsModal .nl-aom32-photo {
        height: 112px !important;
        max-width: 112px !important;
    }

    #addOnsModal .nl-aom32-name {
        font-size: 15.5px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V44 POPUP PRODUCT MATCHES CARD END === */

/* === NEVERLAND PREMIUM MENU V45.2 CART CHEVRON PARITY START === */

/*
   Exact HomeMenu parity:
   use the same right-side grid column and horizontal padding as
   .nlv2-home-call-action instead of trying to move the chevron with margins.
*/

.nlv2-home-page .nlv2-action-cart.add-cart-btn1 {
    grid-template-columns:
        clamp(39px, 9vw, 78px)
        minmax(0, 1fr)
        clamp(14px, 2.6vw, 23px) !important;

    padding:
        0
        clamp(8px, 2vw, 17px)
        0
        clamp(8px, 1.6vw, 14px) !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-chevron {
    position: static !important;
    inset: auto !important;

    align-self: center !important;
    justify-self: end !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;

    font-size: clamp(11px, 2vw, 18px) !important;
    line-height: 1 !important;
    opacity: .95 !important;
}

.nlv2-home-page .nlv2-action-cart .nlv2-action-label {
    min-width: 0 !important;
    padding-right: 0 !important;
}

/* === NEVERLAND PREMIUM MENU V45.2 CART CHEVRON PARITY END === */

/* === NEVERLAND PREMIUM MENU V45.3 CART CHEVRON EXACT FIX START === */

/*
   Exact DOM confirmed from DevTools:
   #cartButton > i.fas.fa-chevron-right.nlv2-action-chevron

   Previous V45.2 was scoped through .nlv2-home-page, so if that wrapper
   is absent the rule never matches. V45.3 targets the real element directly.
*/

#cartButton {
    position: relative !important;
}

#cartButton > .nlv2-action-chevron {
    position: absolute !important;
    top: 50% !important;
    right: 18px !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: translateY(-50%) !important;

    font-size: clamp(11px, 2vw, 18px) !important;
    line-height: 1 !important;
    opacity: .95 !important;
    pointer-events: none !important;
}

#cartButton > .nlv2-action-label {
    padding-right: 34px !important;
}

/* Slightly tighter inset on very narrow phones. */
@media (max-width: 390px) {
    #cartButton > .nlv2-action-chevron {
        right: 15px !important;
    }

    #cartButton > .nlv2-action-label {
        padding-right: 30px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V45.3 CART CHEVRON EXACT FIX END === */

/* === NEVERLAND PREMIUM CART V46 START === */

/* =========================================================
   Neverland Premium Cart V46
   Keeps all legacy JS IDs/contracts intact.
   Only markup classes + presentation are modernized.
   ========================================================= */

#cartModal.nl-cart46-modal {
    --nl-cart46-navy: #0b2848;
    --nl-cart46-navy-deep: #071f39;
    --nl-cart46-gold: #e7aa32;
    --nl-cart46-gold-light: #f2c25f;
    --nl-cart46-ink: #10233f;
    --nl-cart46-muted: #727c89;
    --nl-cart46-line: rgba(11, 40, 72, .11);
    --nl-cart46-soft: #f5f7fa;

    padding: 0 !important;
    overflow-x: hidden !important;
}

#cartModal .nl-cart46-dialog {
    box-sizing: border-box !important;
    width: min(calc(100vw - 20px), 660px) !important;
    max-width: 660px !important;
    min-height: 0 !important;
    margin: max(10px, env(safe-area-inset-top, 0px)) auto
            max(10px, env(safe-area-inset-bottom, 0px)) !important;
}

#cartModal .nl-cart46-shell {
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-height: calc(100dvh - 20px) !important;
    flex-direction: column !important;
    overflow: hidden !important;

    border: 1px solid rgba(6, 29, 53, .17) !important;
    border-radius: 26px !important;
    background: #fff !important;

    box-shadow:
        0 28px 80px rgba(5, 24, 43, .30),
        inset 0 1px 0 rgba(255,255,255,.96) !important;
}

/* ---------- Header ---------- */

#cartModal .nl-cart46-header {
    display: flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;

    margin: 0 !important;
    padding: 17px 20px !important;

    border: 0 !important;
    background:
        radial-gradient(circle at 14% -20%, rgba(80,132,187,.22), transparent 42%),
        linear-gradient(135deg, var(--nl-cart46-navy) 0%, var(--nl-cart46-navy-deep) 100%) !important;
}

#cartModal .nl-cart46-header-main {
    display: flex !important;
    min-width: 0 !important;
    align-items: center !important;
    gap: 13px !important;
}

#cartModal .nl-cart46-header-icon {
    display: grid !important;
    width: 50px !important;
    height: 50px !important;
    flex: 0 0 50px !important;
    place-items: center !important;

    border: 1px solid rgba(231,170,50,.82) !important;
    border-radius: 50% !important;
    color: var(--nl-cart46-gold-light) !important;

    background: rgba(7,31,57,.40) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.10) !important;
}

#cartModal .nl-cart46-header-icon i {
    font-size: 21px !important;
}

#cartModal .nl-cart46-header-copy {
    min-width: 0 !important;
}

#cartModal .nl-cart46-title {
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(20px, 4vw, 28px) !important;
    font-weight: 800 !important;
    letter-spacing: -.02em !important;
    line-height: 1.04 !important;
}

#cartModal .nl-cart46-subtitle {
    margin-top: 4px !important;
    color: var(--nl-cart46-gold-light) !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.1 !important;
}

#cartModal .nl-cart46-close-x {
    width: 36px !important;
    height: 36px !important;
    flex: 0 0 36px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: .78 !important;
    box-shadow: none !important;
}

/* ---------- Scrollable body ---------- */

#cartModal .nl-cart46-body {
    min-height: 0 !important;
    flex: 1 1 auto !important;
    padding: 16px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;

    background:
        linear-gradient(180deg, #f8f9fb 0%, #f4f6f9 100%) !important;
}

/* ---------- Table / takeaway context ---------- */

#cartModal .nl-cart46-order-context,
#cartModal #tablenumber.nl-cart46-order-context,
#cartModal #homeOrderBanner.nl-cart46-order-context {
    display: flex !important;
    width: 100% !important;
    height: auto !important;
    min-height: 58px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;

    margin: 0 0 13px !important;
    padding: 10px 14px !important;

    border: 1px solid rgba(214,151,43,.26) !important;
    border-radius: 17px !important;

    color: var(--nl-cart46-ink) !important;
    background: linear-gradient(180deg, #fffdf9 0%, #fff9ee 100%) !important;

    font-size: 15px !important;
    font-weight: 700 !important;
    text-align: left !important;

    box-shadow:
        0 8px 22px rgba(11,40,72,.055),
        inset 0 1px 0 #fff !important;
}

#cartModal .nl-cart46-context-icon {
    display: grid !important;
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
    place-items: center !important;

    border: 1px solid rgba(223,159,49,.35) !important;
    border-radius: 50% !important;

    color: #c6841c !important;
    background: #fff !important;
}

#cartModal .nl-cart46-context-copy strong {
    color: #bd7a14 !important;
}

/* ---------- Dynamic cart list ---------- */

#cartModal #cartItemsList.nl-cart46-items {
    display: flex !important;
    width: 100% !important;
    max-height: none !important;
    flex-direction: column !important;
    gap: 9px !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: visible !important;
    list-style: none !important;
    background: transparent !important;
}

/* cart-v2.js generates these li nodes */
#cartModal #cartItemsList > .list-group-item {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;

    grid-template-columns: 92px minmax(0, 1fr) auto !important;
    grid-template-areas: "image info actions" !important;
    gap: 12px !important;
    align-items: center !important;

    margin: 0 !important;
    padding: 12px !important;

    border: 1px solid var(--nl-cart46-line) !important;
    border-radius: 17px !important;

    color: var(--nl-cart46-ink) !important;
    background: linear-gradient(180deg, #fff 0%, #fefefe 100%) !important;

    box-shadow:
        0 9px 22px rgba(8,31,55,.07),
        inset 0 1px 0 #fff !important;
}

#cartModal #cartItemsList > .list-group-item > img {
    grid-area: image !important;

    width: 92px !important;
    height: 92px !important;
    max-width: 92px !important;

    margin: 0 !important;

    border: 0 !important;
    border-radius: 15px !important;

    object-fit: contain !important;
    object-position: center !important;

    background: #fff !important;

    filter: drop-shadow(0 8px 8px rgba(8,31,55,.18)) !important;
}

#cartModal #cartItemsList > .list-group-item > .flex-grow-1 {
    grid-area: info !important;
    display: flex !important;
    min-width: 0 !important;
    align-self: stretch !important;
    flex-direction: column !important;

    margin: 0 !important;
    padding: 1px 0 !important;
}

#cartModal #cartItemsList > .list-group-item > .flex-grow-1 > .fw-bold {
    color: var(--nl-cart46-ink) !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.18 !important;
}

/* Old addon-pill becomes clean secondary metadata. */
#cartModal #cartItemsList .addon-pill {
    display: flex !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 5px !important;

    margin: 3px 0 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    color: var(--nl-cart46-muted) !important;
    background: transparent !important;

    font-size: 11px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    text-align: left !important;
}

#cartModal #cartItemsList .addon-pill i {
    color: #c98418 !important;
    font-size: 8px !important;
}

#cartModal #cartItemsList .cart-line-price {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    gap: 5px !important;

    margin-top: auto !important;
    padding-top: 8px !important;

    color: var(--nl-cart46-navy) !important;
    font-size: 17px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
}

/* Existing +/- controls become the premium stepper. */
#cartModal #cartItemsList > .list-group-item > .d-flex.align-items-center:last-child {
    grid-area: actions !important;
    display: grid !important;
    width: 116px !important;
    min-width: 116px !important;

    grid-template-columns: 38px 40px 38px !important;
    grid-template-rows: 42px !important;

    gap: 0 !important;
    align-items: stretch !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;

    border: 1px solid rgba(11,40,72,.13) !important;
    border-radius: 14px !important;

    background: #fff !important;
}

#cartModal #cartItemsList .decrease-btn,
#cartModal #cartItemsList .increase-btn {
    display: flex !important;
    width: 38px !important;
    min-width: 38px !important;
    max-width: 38px !important;
    height: 42px !important;

    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;

    color: #c98418 !important;
    background: #fff !important;

    font-size: 18px !important;
    font-weight: 500 !important;
    line-height: 1 !important;

    box-shadow: none !important;
}

#cartModal #cartItemsList .decrease-btn {
    border-right: 1px solid rgba(11,40,72,.09) !important;
}

#cartModal #cartItemsList .increase-btn {
    border-left: 1px solid rgba(11,40,72,.09) !important;
}

#cartModal #cartItemsList > .list-group-item > .d-flex.align-items-center:last-child > .fw-bold {
    display: flex !important;
    width: 40px !important;
    min-width: 40px !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    color: var(--nl-cart46-ink) !important;
    font-size: 14px !important;
    font-weight: 800 !important;
}

/* ---------- Empty cart ---------- */

#cartModal #cartItemsList > .alert-success {
    display: grid !important;
    width: 100% !important;
    min-height: 154px !important;
    place-items: center !important;
    align-content: center !important;
    gap: 10px !important;

    margin: 0 !important;
    padding: 22px !important;

    border: 1px dashed rgba(11,40,72,.18) !important;
    border-radius: 18px !important;

    color: var(--nl-cart46-ink) !important;
    background: #fff !important;

    font-size: 15px !important;
    font-weight: 700 !important;

    box-shadow: 0 8px 20px rgba(8,31,55,.045) !important;
}

#cartModal #cartItemsList > .alert-success::before {
    display: grid !important;
    width: 52px !important;
    height: 52px !important;
    place-items: center !important;

    content: "🛒" !important;

    border: 1px solid rgba(222,157,47,.32) !important;
    border-radius: 50% !important;

    background: #fffaf0 !important;

    font-size: 24px !important;
}

#cartModal #cartItemsList > .alert-success + li {
    display: none !important;
}

/* Hide actions that make no sense while cart-v2 renders its empty marker. */
#cartModal:has(#cartItemsList > .alert-success) .nl-cart46-comment-card,
#cartModal:has(#cartItemsList > .alert-success) .nl-cart46-summary,
#cartModal:has(#cartItemsList > .alert-success) #home-order-fields,
#cartModal:has(#cartItemsList > .alert-success) #btnclear {
    display: none !important;
}

#cartModal:has(#cartItemsList > .alert-success) .nl-cart46-footer {
    grid-template-columns: 1fr !important;
}

/* ---------- Customer / comment ---------- */

#cartModal .nl-cart46-customer-card,
#cartModal .nl-cart46-comment-card {
    margin-top: 13px !important;
    padding: 13px !important;

    border: 1px solid var(--nl-cart46-line) !important;
    border-radius: 17px !important;

    background: #fff !important;
    box-shadow: 0 8px 20px rgba(8,31,55,.05) !important;
}

#cartModal .nl-cart46-customer-card {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

#cartModal .nl-cart46-customer-card:not([style*="display:none"]):not([style*="display: none"]) {
    display: grid !important;
}

#cartModal .nl-cart46-field {
    min-width: 0 !important;
}

#cartModal .nl-cart46-label {
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;

    margin: 0 0 7px !important;

    color: var(--nl-cart46-ink) !important;
    font-size: 12px !important;
    font-weight: 750 !important;
}

#cartModal .nl-cart46-label i {
    color: #c98418 !important;
}

#cartModal .nl-cart46-input,
#cartModal .nl-cart46-textarea {
    width: 100% !important;
    margin: 0 !important;

    border: 1px solid rgba(11,40,72,.12) !important;
    border-radius: 13px !important;

    color: #17283f !important;
    background: #fbfcfd !important;

    font-size: 14px !important;

    box-shadow: inset 0 1px 2px rgba(8,31,55,.02) !important;
}

#cartModal .nl-cart46-input {
    min-height: 44px !important;
}

#cartModal .nl-cart46-textarea {
    min-height: 76px !important;
    resize: vertical !important;
}

/* ---------- Summary ---------- */

#cartModal .nl-cart46-summary {
    margin-top: 13px !important;
    padding: 14px !important;

    border: 1px solid rgba(214,151,43,.19) !important;
    border-radius: 18px !important;

    background:
        linear-gradient(180deg, #fffdf9 0%, #fffaf1 100%) !important;

    box-shadow:
        0 10px 26px rgba(8,31,55,.055),
        inset 0 1px 0 #fff !important;
}

#cartModal .nl-cart46-summary-total {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 12px !important;
}

#cartModal .nl-cart46-summary-label {
    color: var(--nl-cart46-ink) !important;
    font-size: 16px !important;
    font-weight: 850 !important;
}

#cartModal .nl-cart46-summary-price {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 3px !important;
}

#cartModal #cartTotalEuro {
    color: var(--nl-cart46-navy) !important;
    font-size: 25px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
}

#cartModal .nl-cart46-discount-breakdown {
    margin-top: 10px !important;
    padding-top: 9px !important;

    border-top: 1px solid rgba(214,151,43,.18) !important;
}

#cartModal .nl-cart46-discount-row,
#cartModal .nl-cart46-final-row {
    width: 100% !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;

    color: #526071 !important;
    font-size: 12px !important;
}

#cartModal #discountRow:not([style*="display:none"]):not([style*="display: none"]),
#cartModal #finalRow:not([style*="display:none"]):not([style*="display: none"]) {
    display: flex !important;
}

#cartModal .nl-cart46-discount-row {
    color: #657363 !important;
}

#cartModal .nl-cart46-final-row {
    margin-top: 6px !important;
}

#cartModal .nl-cart46-final-row > span:last-child {
    display: flex !important;
    align-items: baseline !important;
    gap: 6px !important;
}

#cartModal #finalEUR {
    color: var(--nl-cart46-navy) !important;
}

#cartModal #discountEUR {
    color: #bd7c16 !important;
}

/* ---------- Ordering disabled ---------- */

#cartModal .nl-cart46-disabled-message {
    width: 100% !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;

    margin-top: 12px !important;
    padding: 11px 12px !important;

    border: 1px solid rgba(188,123,18,.24) !important;
    border-radius: 13px !important;

    color: #7b5311 !important;
    background: #fff7e4 !important;

    font-size: 12px !important;
    font-weight: 700 !important;
}

/* ---------- Checkout CTAs ---------- */

#cartModal .nl-cart46-checkout-stack {
    width: 100% !important;
    gap: 9px !important;
    margin-top: 13px !important;
}

#cartModal .nl-cart46-checkout-btn {
    width: 100% !important;
    min-height: 54px !important;

    grid-template-columns: 52px minmax(0,1fr) 10px !important;
    align-items: center !important;

    margin: 0 !important;
    padding: 0 10px 0 0 !important;

    overflow: hidden !important;

    border-radius: 15px !important;

    font-size: 14px !important;
    font-weight: 800 !important;

    box-shadow: 0 10px 24px rgba(8,31,55,.11) !important;
}

#cartModal .nl-cart46-checkout-main {
    display: grid !important;
    border: 1px solid #d99a27 !important;
    color: #092646 !important;
    background:
        linear-gradient(135deg, #f2c25f 0%, #e6a829 100%) !important;
}

#cartModal .nl-cart46-checkout-card:not([style*="display:none"]):not([style*="display: none"]) {
    display: grid !important;
}

#cartModal .nl-cart46-checkout-card {
    border: 1px solid rgba(11,40,72,.28) !important;
    color: #fff !important;
    background:
        linear-gradient(135deg, #12375e 0%, #082747 100%) !important;
}

#cartModal .nl-cart46-checkout-icon {
    display: grid !important;
    width: 52px !important;
    height: 100% !important;
    place-items: center !important;

    border-right: 1px solid rgba(11,40,72,.12) !important;
    background: rgba(255,255,255,.62) !important;

    color: #092646 !important;
    font-size: 17px !important;
}

#cartModal .nl-cart46-checkout-card .nl-cart46-checkout-icon {
    border-right-color: rgba(255,255,255,.12) !important;
    color: var(--nl-cart46-gold-light) !important;
    background: rgba(255,255,255,.05) !important;
}

#cartModal .nl-cart46-checkout-copy {
    display: flex !important;
    min-width: 0 !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 2px !important;
    padding: 7px 8px !important;
    text-align: center !important;
}

#cartModal .nl-cart46-checkout-copy strong {
    font-size: 14px !important;
    font-weight: 850 !important;
}

#cartModal .nl-cart46-checkout-copy small {
    font-size: 10px !important;
    opacity: .83 !important;
}

/* ---------- Sticky bottom tools ---------- */

#cartModal .nl-cart46-footer {
    display: grid !important;
    flex: 0 0 auto !important;

    grid-template-columns: 1fr 1fr !important;
    gap: 9px !important;

    margin: 0 !important;
    padding: 12px 16px
             calc(12px + env(safe-area-inset-bottom, 0px)) !important;

    border: 0 !important;
    border-top: 1px solid rgba(11,40,72,.08) !important;

    background: rgba(250,251,252,.985) !important;

    box-shadow:
        0 -9px 24px rgba(8,31,55,.065),
        inset 0 1px 0 #fff !important;

    backdrop-filter: blur(10px) !important;
}

#cartModal .nl-cart46-tool-btn {
    display: grid !important;
    width: 100% !important;
    min-height: 49px !important;

    grid-template-columns: 44px minmax(0,1fr) 8px !important;
    align-items: center !important;

    margin: 0 !important;
    padding: 0 8px 0 0 !important;

    overflow: hidden !important;

    border-radius: 14px !important;

    background: #fff !important;

    font-size: 13px !important;
    font-weight: 800 !important;

    box-shadow: 0 7px 18px rgba(8,31,55,.06) !important;
}

#cartModal .nl-cart46-tool-close {
    border: 1px solid rgba(11,40,72,.62) !important;
    color: var(--nl-cart46-navy) !important;
}

#cartModal .nl-cart46-tool-clear {
    border: 1px solid rgba(207,52,61,.48) !important;
    color: #c5323a !important;
}

#cartModal .nl-cart46-tool-icon {
    display: grid !important;
    width: 44px !important;
    height: 100% !important;
    place-items: center !important;

    border-right: 1px solid rgba(11,40,72,.08) !important;
    background: rgba(11,40,72,.025) !important;
}

#cartModal .nl-cart46-tool-clear .nl-cart46-tool-icon {
    border-right-color: rgba(207,52,61,.10) !important;
    background: rgba(207,52,61,.025) !important;
}

/* ---------- Hover / focus ---------- */

@media (hover: hover) and (pointer: fine) {
    #cartModal .nl-cart46-checkout-btn,
    #cartModal .nl-cart46-tool-btn,
    #cartModal #cartItemsList .decrease-btn,
    #cartModal #cartItemsList .increase-btn {
        transition:
            transform .16s ease,
            box-shadow .16s ease,
            filter .16s ease !important;
    }

    #cartModal .nl-cart46-checkout-btn:hover,
    #cartModal .nl-cart46-tool-btn:hover {
        transform: translateY(-1px) !important;
        filter: brightness(1.015) !important;
    }

    #cartModal #cartItemsList .decrease-btn:hover,
    #cartModal #cartItemsList .increase-btn:hover {
        background: #fff8eb !important;
    }
}

#cartModal .nl-cart46-checkout-btn:focus-visible,
#cartModal .nl-cart46-tool-btn:focus-visible,
#cartModal #cartItemsList button:focus-visible,
#cartModal input:focus,
#cartModal textarea:focus {
    outline: 2px solid rgba(220,154,39,.42) !important;
    outline-offset: 2px !important;
}

/* ---------- Responsive phone layout ---------- */

@media (max-width: 575.98px) {
    #cartModal .nl-cart46-dialog {
        width: min(calc(100vw - 12px), 430px) !important;
        max-width: min(calc(100vw - 12px), 430px) !important;
        margin-top: max(6px, env(safe-area-inset-top, 0px)) !important;
        margin-bottom: max(6px, env(safe-area-inset-bottom, 0px)) !important;
    }

    #cartModal .nl-cart46-shell {
        max-height: calc(100dvh - 12px) !important;
        border-radius: 20px !important;
    }

    #cartModal .nl-cart46-header {
        padding: 13px 14px !important;
    }

    #cartModal .nl-cart46-header-icon {
        width: 42px !important;
        height: 42px !important;
        flex-basis: 42px !important;
    }

    #cartModal .nl-cart46-header-icon i {
        font-size: 18px !important;
    }

    #cartModal .nl-cart46-title {
        font-size: 20px !important;
    }

    #cartModal .nl-cart46-subtitle {
        font-size: 11.5px !important;
    }

    #cartModal .nl-cart46-body {
        padding: 11px !important;
    }

    #cartModal .nl-cart46-order-context,
    #cartModal #tablenumber.nl-cart46-order-context,
    #cartModal #homeOrderBanner.nl-cart46-order-context {
        min-height: 50px !important;
        gap: 10px !important;
        margin-bottom: 10px !important;
        padding: 8px 11px !important;
        border-radius: 14px !important;
        font-size: 13px !important;
    }

    #cartModal .nl-cart46-context-icon {
        width: 34px !important;
        height: 34px !important;
        flex-basis: 34px !important;
    }

    #cartModal #cartItemsList.nl-cart46-items {
        gap: 7px !important;
    }

    #cartModal #cartItemsList > .list-group-item {
        grid-template-columns: 74px minmax(0, 1fr) !important;
        grid-template-areas:
            "image info"
            "image actions" !important;

        column-gap: 10px !important;
        row-gap: 7px !important;

        padding: 10px !important;
        border-radius: 15px !important;
    }

    #cartModal #cartItemsList > .list-group-item > img {
        width: 74px !important;
        height: 74px !important;
        max-width: 74px !important;
        align-self: start !important;
        border-radius: 13px !important;
    }

    #cartModal #cartItemsList > .list-group-item > .flex-grow-1 > .fw-bold {
        font-size: 13px !important;
    }

    #cartModal #cartItemsList .addon-pill {
        font-size: 10px !important;
    }

    #cartModal #cartItemsList .cart-line-price {
        padding-top: 6px !important;
        font-size: 15px !important;
    }

    #cartModal #cartItemsList > .list-group-item > .d-flex.align-items-center:last-child {
        justify-self: end !important;

        width: 108px !important;
        min-width: 108px !important;

        grid-template-columns: 35px 38px 35px !important;
        grid-template-rows: 38px !important;

        border-radius: 12px !important;
    }

    #cartModal #cartItemsList .decrease-btn,
    #cartModal #cartItemsList .increase-btn {
        width: 35px !important;
        min-width: 35px !important;
        max-width: 35px !important;
        height: 38px !important;
        font-size: 16px !important;
    }

    #cartModal #cartItemsList > .list-group-item > .d-flex.align-items-center:last-child > .fw-bold {
        width: 38px !important;
        min-width: 38px !important;
        font-size: 13px !important;
    }

    #cartModal .nl-cart46-customer-card {
        grid-template-columns: 1fr !important;
        gap: 9px !important;
    }

    #cartModal .nl-cart46-customer-card,
    #cartModal .nl-cart46-comment-card,
    #cartModal .nl-cart46-summary {
        margin-top: 10px !important;
        padding: 11px !important;
        border-radius: 15px !important;
    }

    #cartModal .nl-cart46-label {
        font-size: 11px !important;
    }

    #cartModal .nl-cart46-input {
        min-height: 41px !important;
        font-size: 13px !important;
    }

    #cartModal .nl-cart46-textarea {
        min-height: 68px !important;
        font-size: 13px !important;
    }

    #cartModal .nl-cart46-summary-label {
        font-size: 14px !important;
    }

    #cartModal #cartTotalEuro {
        font-size: 21px !important;
    }

    #cartModal .nl-cart46-checkout-btn {
        min-height: 50px !important;
        grid-template-columns: 48px minmax(0,1fr) 8px !important;
        border-radius: 14px !important;
    }

    #cartModal .nl-cart46-checkout-icon {
        width: 48px !important;
    }

    #cartModal .nl-cart46-checkout-copy strong {
        font-size: 13px !important;
    }

    #cartModal .nl-cart46-footer {
        gap: 8px !important;
        padding: 9px 11px
                 calc(9px + env(safe-area-inset-bottom, 0px)) !important;
    }

    #cartModal .nl-cart46-tool-btn {
        min-height: 47px !important;
        grid-template-columns: 40px minmax(0,1fr) 5px !important;
        border-radius: 13px !important;
        font-size: 12px !important;
    }

    #cartModal .nl-cart46-tool-icon {
        width: 40px !important;
    }
}

@media (max-width: 350px) {
    #cartModal .nl-cart46-footer {
        grid-template-columns: 1fr !important;
    }
}

/* === NEVERLAND PREMIUM CART V46 END === */











/* === NEVERLAND PREMIUM MENU V49 COMPACT ALLERGEN ICONS START === */

/* =========================================================
   MAIN MENU
   ========================================================= */

.nlv2-allergen-icons {
    gap: 3px !important;
}

.nlv2-allergen-icons .nlv2-allergen-icon-wrap,
.nlv27-product-info .nlv2-allergen-icon-wrap {
    display: grid !important;

    width: 21px !important;
    height: 21px !important;
    min-width: 21px !important;
    max-width: 21px !important;
    flex: 0 0 21px !important;

    place-items: center !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;
}

.nlv2-allergen-icons .nlv2-allergen-icon-wrap > .nlv2-allergen-icon,
.nlv2-allergen-icons .nlv2-allergen-icon-wrap > .allergen-icon,
.nlv27-product-info .nlv2-allergen-icon-wrap > .nlv2-allergen-icon,
.nlv27-product-info .nlv2-allergen-icon-wrap > .allergen-icon {
    display: block !important;

    width: 21px !important;
    height: 21px !important;
    min-width: 21px !important;
    max-width: 21px !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain !important;
    object-position: center !important;

    transform: none !important;
}


/* =========================================================
   ADD-ONS POPUP
   ========================================================= */

#addOnsModal .nl-aom33-allergen-icons {
    gap: 3px !important;
}

#addOnsModal .nl-aom33-allergen-icon {
    display: block !important;

    width: 21px !important;
    height: 21px !important;
    min-width: 21px !important;
    max-width: 21px !important;
    flex: 0 0 21px !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: contain !important;
    object-position: center !important;

    transform: none !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 575.98px) {

    .nlv2-allergen-icons .nlv2-allergen-icon-wrap,
    .nlv27-product-info .nlv2-allergen-icon-wrap,
    #addOnsModal .nl-aom33-allergen-icon {
        width: 21px !important;
        height: 21px !important;
        min-width: 21px !important;
        max-width: 21px !important;
        flex-basis: 21px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V49 COMPACT ALLERGEN ICONS END === */

/* === NEVERLAND PREMIUM MENU V50 PRODUCT IMAGE 126 START === */

/*
   Основна продуктова карта.
   Popup изображението НЕ се променя.
*/

.nlv2-page .nlv2-product-image.menu-image {
    width: 126px !important;
    height: 126px !important;

    min-width: 126px !important;
    min-height: 126px !important;

    max-width: 126px !important;
    max-height: 126px !important;

    flex: 0 0 126px !important;

    object-fit: contain !important;
    object-position: center !important;
}

/* Mobile */
@media (max-width: 575.98px) {
    .nlv2-page .nlv2-product-image.menu-image {
        width: 126px !important;
        height: 126px !important;

        min-width: 126px !important;
        min-height: 126px !important;

        max-width: 126px !important;
        max-height: 126px !important;

        flex-basis: 126px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V50 PRODUCT IMAGE 126 END === */







/* === NEVERLAND PREMIUM MENU V54 CENTERED CART MODAL START === */

/*
   Keep the cart modal centered in the viewport at every desktop size.
   The modal shell still keeps its own max-height and scrollable body.
*/

#cartModal.modal.show {
    display: flex !important;

    align-items: center !important;
    justify-content: center !important;

    padding:
        max(12px, env(safe-area-inset-top, 0px))
        max(12px, env(safe-area-inset-right, 0px))
        max(12px, env(safe-area-inset-bottom, 0px))
        max(12px, env(safe-area-inset-left, 0px)) !important;
}

#cartModal .modal-dialog.nl-cart46-dialog {
    position: relative !important;
    top: auto !important;
    left: auto !important;

    width: min(calc(100vw - 24px), 660px) !important;
    max-width: 660px !important;

    min-height: 0 !important;
    max-height: calc(100dvh - 24px) !important;

    margin: 0 !important;

    transform: none !important;
}

#cartModal .modal-content.nl-cart46-shell {
    width: 100% !important;
    max-height: calc(100dvh - 24px) !important;
    margin: 0 !important;
}

/* Bootstrap can apply transforms while opening/closing.
   Once visible, force the final centered geometry. */
#cartModal.show .modal-dialog.nl-cart46-dialog,
#cartModal.modal.fade.show .modal-dialog.nl-cart46-dialog {
    transform: none !important;
}

/* Mobile: still centered, with a tighter viewport inset. */
@media (max-width: 575.98px) {
    #cartModal.modal.show {
        padding:
            max(6px, env(safe-area-inset-top, 0px))
            max(6px, env(safe-area-inset-right, 0px))
            max(6px, env(safe-area-inset-bottom, 0px))
            max(6px, env(safe-area-inset-left, 0px)) !important;
    }

    #cartModal .modal-dialog.nl-cart46-dialog {
        width: min(calc(100vw - 12px), 430px) !important;
        max-width: min(calc(100vw - 12px), 430px) !important;
        max-height: calc(100dvh - 12px) !important;
    }

    #cartModal .modal-content.nl-cart46-shell {
        max-height: calc(100dvh - 12px) !important;
    }
}

/* === NEVERLAND PREMIUM MENU V54 CENTERED CART MODAL END === */

/* === NEVERLAND PREMIUM MENU V55 PRODUCT IMAGE SHADOWS START === */

/*
   Restore / strengthen product image shadows in:
   - main menu product cards
   - AddOns popup
   - Cart popup

   Uses filter: drop-shadow so transparent food images keep a premium
   natural shadow instead of a rectangular box shadow.
*/

/* ---------- MAIN PRODUCT CARDS ---------- */

.nlv2-page .nlv2-product-image.menu-image {
    filter:
        drop-shadow(0 9px 9px rgba(6, 27, 48, .22))
        drop-shadow(0 2px 2px rgba(6, 27, 48, .10)) !important;
}

/* Slightly deeper shadow on wide desktop cards. */
@media (min-width: 1280px) {
    .nlv2-page .nlv2-product-image.menu-image {
        filter:
            drop-shadow(0 11px 10px rgba(6, 27, 48, .23))
            drop-shadow(0 3px 3px rgba(6, 27, 48, .11)) !important;
    }
}


/* ---------- ADD-ONS / PRODUCT POPUP ---------- */

#addOnsModal .nl-aom32-photo {
    filter:
        drop-shadow(0 10px 11px rgba(8, 28, 48, .24))
        drop-shadow(0 2px 2px rgba(8, 28, 48, .10)) !important;
}


/* ---------- CART POPUP ---------- */

#cartModal #cartItemsList > .list-group-item > img {
    filter:
        drop-shadow(0 8px 9px rgba(8, 31, 55, .22))
        drop-shadow(0 2px 2px rgba(8, 31, 55, .09)) !important;
}


/* ---------- MOBILE ---------- */

@media (max-width: 575.98px) {
    .nlv2-page .nlv2-product-image.menu-image {
        filter:
            drop-shadow(0 8px 8px rgba(6, 27, 48, .21))
            drop-shadow(0 2px 2px rgba(6, 27, 48, .09)) !important;
    }

    #addOnsModal .nl-aom32-photo {
        filter:
            drop-shadow(0 8px 9px rgba(8, 28, 48, .22))
            drop-shadow(0 2px 2px rgba(8, 28, 48, .09)) !important;
    }

    #cartModal #cartItemsList > .list-group-item > img {
        filter:
            drop-shadow(0 7px 8px rgba(8, 31, 55, .20))
            drop-shadow(0 2px 2px rgba(8, 31, 55, .08)) !important;
    }
}

/* === NEVERLAND PREMIUM MENU V55 PRODUCT IMAGE SHADOWS END === */



/* === NEVERLAND PREMIUM MENU V57 BOLD ALLERGEN LABELS START === */

/* Main product cards */
.nlv2-allergen-label,
.nlv27-product-info .nlv2-allergen-label {
    font-weight: 800 !important;
}

/* Add-ons popup */
#addOnsModal .nl-aom33-allergens-label,
#addOnsModal .nl-aom32-allergens-label {
    font-weight: 800 !important;
}

/* === NEVERLAND PREMIUM MENU V57 BOLD ALLERGEN LABELS END === */

/* === NEVERLAND PREMIUM MENU V58 RESPONSIVE HERO BRAND START === */

/*
   V58 rebuilds the visible hero brand from independent DOM elements:
   - /sysimg/logo.png = separate logo asset
   - NEVERLAND = real responsive H1 text
   - ElectronicMenu = real localized text

   The current hero-reference.webp still contains an older baked logo/title.
   The left-side neutralizer below hides that baked branding while keeping
   the wine/food photography on the right visible.
*/

.nlv2-hero-image {
    position: relative !important;
    isolation: isolate !important;

    display: flex !important;
    align-items: center !important;

    overflow: hidden !important;
}

/* Hide ONLY the old baked brand area inside hero-reference.webp. */
.nlv2-hero-image::before {
    position: absolute !important;
    z-index: 1 !important;

    top: 0 !important;
    bottom: 0 !important;
    left: 0 !important;

    width: 84% !important;

    content: "" !important;

    background:
        linear-gradient(
            90deg,
            #07182b 0%,
            #07182b 66%,
            rgba(7, 24, 43, .995) 76%,
            rgba(7, 24, 43, .88) 84%,
            rgba(7, 24, 43, .48) 92%,
            rgba(7, 24, 43, 0) 100%
        ) !important;

    pointer-events: none !important;
}

/* Real brand composition. */
.nlv2-hero-brand {
    position: relative !important;
    z-index: 2 !important;

    display: grid !important;

    width: min(79%, 820px) !important;

    grid-template-columns:
        clamp(88px, 17vw, 170px)
        minmax(0, 1fr) !important;

    gap: clamp(12px, 3vw, 34px) !important;
    align-items: center !important;

    margin: 0 0 0 clamp(18px, 5vw, 64px) !important;
    padding: clamp(10px, 2vw, 24px) 0 !important;
}

.nlv2-hero-logo {
    display: block !important;

    width: 100% !important;
    max-width: 170px !important;
    height: auto !important;

    justify-self: center !important;

    object-fit: contain !important;
    object-position: center !important;

    filter:
        drop-shadow(0 8px 12px rgba(0, 0, 0, .22))
        drop-shadow(0 2px 2px rgba(0, 0, 0, .10)) !important;
}

.nlv2-hero-copy {
    display: flex !important;

    min-width: 0 !important;

    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    text-align: center !important;
}

.nlv2-hero-title {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #f7f4ed !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size: clamp(32px, 6.4vw, 76px) !important;
    font-weight: 400 !important;
    line-height: .96 !important;
    letter-spacing: .075em !important;

    text-align: center !important;
    white-space: nowrap !important;

    text-shadow:
        0 2px 3px rgba(0, 0, 0, .36),
        0 0 14px rgba(255, 255, 255, .035) !important;
}

.nlv2-hero-brand-divider {
    display: grid !important;

    width: min(82%, 410px) !important;

    grid-template-columns: minmax(0, 1fr) 10px minmax(0, 1fr) !important;
    gap: 9px !important;
    align-items: center !important;

    margin: clamp(8px, 1.4vw, 14px) auto clamp(6px, 1vw, 10px) !important;
}

.nlv2-hero-brand-divider::before,
.nlv2-hero-brand-divider::after {
    display: block !important;

    height: 1px !important;

    content: "" !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(225, 171, 73, .94)
        ) !important;
}

.nlv2-hero-brand-divider::after {
    background:
        linear-gradient(
            90deg,
            rgba(225, 171, 73, .94),
            transparent
        ) !important;
}

.nlv2-hero-brand-diamond {
    display: block !important;

    width: 8px !important;
    height: 8px !important;

    margin: 0 auto !important;

    background: #edbd63 !important;

    box-shadow: 0 0 8px rgba(225, 164, 56, .22) !important;

    transform: rotate(45deg) !important;
}

/*
   Reset all previous V41/V47 positioning assumptions.
   This is now ordinary text inside .nlv2-hero-copy.
*/
.nlv2-hero-localized-subtitle {
    position: static !important;

    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    z-index: auto !important;

    display: block !important;

    width: 100% !important;
    max-width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    transform: none !important;

    color: #e9b557 !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size: clamp(17px, 2.8vw, 32px) !important;
    font-weight: 600 !important;
    font-style: normal !important;
    line-height: 1.04 !important;
    letter-spacing: .025em !important;

    text-align: center !important;
    white-space: nowrap !important;

    text-shadow:
        0 1px 2px rgba(0, 0, 0, .46),
        0 3px 10px rgba(0, 0, 0, .15) !important;
}

/* The old subtitle mask is no longer needed. */
.nlv2-hero-localized-subtitle::before {
    display: none !important;

    width: 0 !important;
    height: 0 !important;

    content: none !important;

    background: none !important;
}


/* =========================================================
   PHONE
   ========================================================= */

@media (max-width: 575.98px) {

    .nlv2-hero-image::before {
        width: 88% !important;

        background:
            linear-gradient(
                90deg,
                #07182b 0%,
                #07182b 68%,
                rgba(7, 24, 43, .995) 78%,
                rgba(7, 24, 43, .82) 88%,
                rgba(7, 24, 43, 0) 100%
            ) !important;
    }

    .nlv2-hero-brand {
        width: 90% !important;

        grid-template-columns:
            clamp(66px, 20vw, 86px)
            minmax(0, 1fr) !important;

        gap: clamp(7px, 2.5vw, 12px) !important;

        margin-left: 4.5% !important;
        padding: 7px 0 !important;
    }

    .nlv2-hero-logo {
        max-width: 86px !important;

        filter:
            drop-shadow(0 5px 7px rgba(0, 0, 0, .20))
            drop-shadow(0 1px 1px rgba(0, 0, 0, .10)) !important;
    }

    .nlv2-hero-title {
        font-size: clamp(26px, 8.15vw, 35px) !important;
        line-height: .96 !important;
        letter-spacing: .045em !important;
    }

    .nlv2-hero-brand-divider {
        width: min(84%, 220px) !important;

        grid-template-columns: minmax(0, 1fr) 7px minmax(0, 1fr) !important;
        gap: 6px !important;

        margin: 6px auto 5px !important;
    }

    .nlv2-hero-brand-diamond {
        width: 6px !important;
        height: 6px !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(13px, 4vw, 17px) !important;
        line-height: 1 !important;
        letter-spacing: .012em !important;
    }
}


/* =========================================================
   VERY NARROW PHONE
   ========================================================= */

@media (max-width: 359.98px) {

    .nlv2-hero-brand {
        width: 92% !important;

        grid-template-columns: 62px minmax(0, 1fr) !important;

        gap: 6px !important;

        margin-left: 3.5% !important;
    }

    .nlv2-hero-logo {
        max-width: 62px !important;
    }

    .nlv2-hero-title {
        font-size: clamp(23px, 8vw, 28px) !important;
        letter-spacing: .035em !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(11.5px, 3.8vw, 14px) !important;
    }
}


/* =========================================================
   TABLET
   ========================================================= */

@media (min-width: 576px) and (max-width: 1199.98px) {

    .nlv2-hero-brand {
        width: min(80%, 720px) !important;

        grid-template-columns:
            clamp(105px, 17vw, 148px)
            minmax(0, 1fr) !important;

        gap: clamp(16px, 3vw, 28px) !important;

        margin-left: clamp(28px, 5vw, 52px) !important;
    }

    .nlv2-hero-logo {
        max-width: 148px !important;
    }

    .nlv2-hero-title {
        font-size: clamp(43px, 6.5vw, 64px) !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(19px, 2.8vw, 27px) !important;
    }
}


/* =========================================================
   DESKTOP
   ========================================================= */

@media (min-width: 1200px) {

    .nlv2-hero-brand {
        width: min(76%, 890px) !important;

        grid-template-columns:
            clamp(150px, 14vw, 185px)
            minmax(0, 1fr) !important;

        gap: clamp(26px, 3vw, 42px) !important;

        margin-left: clamp(52px, 5.7vw, 82px) !important;
        padding-block: 20px !important;
    }

    .nlv2-hero-logo {
        max-width: 185px !important;
    }

    .nlv2-hero-title {
        font-size: clamp(60px, 5.35vw, 82px) !important;
        letter-spacing: .082em !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(24px, 2.1vw, 33px) !important;
        letter-spacing: .028em !important;
    }
}


/* =========================================================
   VERY WIDE DESKTOP
   ========================================================= */

@media (min-width: 1800px) {

    .nlv2-hero-brand {
        width: min(74%, 940px) !important;

        grid-template-columns: 190px minmax(0, 1fr) !important;

        margin-left: 84px !important;
    }

    .nlv2-hero-logo {
        max-width: 190px !important;
    }

    .nlv2-hero-title {
        font-size: 84px !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: 34px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V58 RESPONSIVE HERO BRAND END === */

/* === NEVERLAND PREMIUM MENU V59 HERO BRAND CART POLISH START === */

/*
   V59
   - logo: smaller and fixed in the upper-left of the hero
   - NEVERLAND: larger, centered, responsive premium title
   - localized "Electronic menu": larger and responsive
   - cart badge: moved into a dedicated visual zone so it never overlaps "Cart"
*/

.nlv2-hero-image {
    position: relative !important;
    display: block !important;
}

/* Turn the V58 brand container into a full hero positioning surface. */
.nlv2-hero-brand {
    position: absolute !important;
    z-index: 2 !important;

    inset: 0 !important;

    display: block !important;

    width: 100% !important;
    max-width: none !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;
}

/* Small independent logo in the upper-left. */
.nlv2-hero-logo {
    position: absolute !important;
    z-index: 3 !important;

    top: clamp(13px, 4.2%, 30px) !important;
    left: clamp(18px, 4.5%, 54px) !important;

    width: clamp(62px, 11vw, 112px) !important;
    max-width: 112px !important;
    height: auto !important;

    margin: 0 !important;

    object-fit: contain !important;
    object-position: center !important;

    filter:
        drop-shadow(0 7px 10px rgba(0, 0, 0, .23))
        drop-shadow(0 2px 2px rgba(0, 0, 0, .10)) !important;
}

/* Center title/subtitle independently from the logo. */
.nlv2-hero-copy {
    position: absolute !important;
    z-index: 3 !important;

    top: 51% !important;
    left: 50% !important;

    display: flex !important;

    width: min(76%, 920px) !important;
    min-width: 0 !important;

    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    text-align: center !important;

    transform: translate(-50%, -50%) !important;
}

/* Real responsive NEVERLAND text. */
.nlv2-hero-title {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #f7f4ee !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size: clamp(42px, 7.2vw, 102px) !important;
    font-weight: 400 !important;
    line-height: .92 !important;
    letter-spacing: .075em !important;

    text-align: center !important;
    white-space: nowrap !important;

    text-shadow:
        0 2px 3px rgba(0, 0, 0, .42),
        0 0 16px rgba(255, 255, 255, .035) !important;
}

/* Premium divider stays proportional to title width. */
.nlv2-hero-brand-divider {
    width: min(72%, 520px) !important;

    margin:
        clamp(9px, 1.6vw, 17px)
        auto
        clamp(7px, 1.15vw, 12px) !important;
}

/* Larger localized subtitle. */
.nlv2-hero-localized-subtitle {
    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #eab457 !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-size: clamp(22px, 3.25vw, 44px) !important;
    font-weight: 600 !important;
    line-height: 1.02 !important;
    letter-spacing: .025em !important;

    text-align: center !important;
    white-space: nowrap !important;

    text-shadow:
        0 1px 2px rgba(0, 0, 0, .52),
        0 3px 10px rgba(0, 0, 0, .18) !important;
}


/* =========================================================
   CART BADGE / LABEL
   ========================================================= */

/*
   Give icon+badge their own first column.
   This prevents the count circle from entering the label area.
*/
#cartButton.nlv2-action-cart,
.nlv2-action-cart.add-cart-btn1 {
    position: relative !important;

    grid-template-columns:
        68px
        minmax(0, 1fr)
        22px !important;
}

#cartButton .nlv2-action-icon,
.nlv2-action-cart .nlv2-action-icon {
    justify-self: start !important;

    width: 44px !important;
    height: 44px !important;

    margin-left: 2px !important;
}

#cartButton .nlv2-cart-badge,
.nlv2-action-cart .nlv2-cart-badge {
    position: absolute !important;
    z-index: 5 !important;

    top: 7px !important;
    left: 49px !important;

    display: grid !important;

    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;

    place-items: center !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 2px solid #0b2c4c !important;
    border-radius: 50% !important;

    color: #092744 !important;
    background:
        linear-gradient(
            145deg,
            #f3c462,
            #e7aa34
        ) !important;

    font-size: 10.5px !important;
    font-weight: 900 !important;
    line-height: 1 !important;

    box-shadow:
        0 5px 10px rgba(6, 25, 44, .22),
        inset 0 1px 0 rgba(255, 255, 255, .45) !important;
}

#cartButton .nlv2-action-label,
.nlv2-action-cart .nlv2-action-label {
    min-width: 0 !important;

    padding: 0 8px !important;

    text-align: center !important;
}


/* =========================================================
   PHONE
   ========================================================= */

@media (max-width: 575.98px) {

    .nlv2-hero-logo {
        top: 13px !important;
        left: 18px !important;

        width: clamp(54px, 15vw, 72px) !important;
        max-width: 72px !important;
    }

    .nlv2-hero-copy {
        top: 52% !important;

        width: 76% !important;

        /* Shift slightly right so the small corner logo never competes. */
        left: 54% !important;
    }

    .nlv2-hero-title {
        font-size: clamp(34px, 9.6vw, 48px) !important;
        line-height: .93 !important;
        letter-spacing: .045em !important;
    }

    .nlv2-hero-brand-divider {
        width: min(76%, 245px) !important;

        margin: 7px auto 6px !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(17px, 5.25vw, 24px) !important;
        line-height: 1 !important;
        letter-spacing: .012em !important;
    }

    #cartButton.nlv2-action-cart,
    .nlv2-action-cart.add-cart-btn1 {
        grid-template-columns:
            62px
            minmax(0, 1fr)
            19px !important;

        padding-left: 7px !important;
        padding-right: 9px !important;
    }

    #cartButton .nlv2-action-icon,
    .nlv2-action-cart .nlv2-action-icon {
        width: 39px !important;
        height: 39px !important;

        margin-left: 0 !important;
    }

    #cartButton .nlv2-cart-badge,
    .nlv2-action-cart .nlv2-cart-badge {
        top: 5px !important;
        left: 43px !important;

        width: 23px !important;
        height: 23px !important;
        min-width: 23px !important;

        font-size: 10px !important;
    }

    #cartButton .nlv2-action-label,
    .nlv2-action-cart .nlv2-action-label {
        padding: 0 4px !important;

        font-size: 13.5px !important;
    }
}


/* =========================================================
   VERY NARROW PHONE
   ========================================================= */

@media (max-width: 359.98px) {

    .nlv2-hero-logo {
        top: 11px !important;
        left: 14px !important;

        width: 50px !important;
    }

    .nlv2-hero-copy {
        left: 55% !important;
        width: 77% !important;
    }

    .nlv2-hero-title {
        font-size: clamp(30px, 9vw, 36px) !important;
        letter-spacing: .035em !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(15px, 4.7vw, 18px) !important;
    }
}


/* =========================================================
   TABLET
   ========================================================= */

@media (min-width: 576px) and (max-width: 1199.98px) {

    .nlv2-hero-logo {
        top: 18px !important;
        left: 28px !important;

        width: clamp(78px, 10vw, 104px) !important;
        max-width: 104px !important;
    }

    .nlv2-hero-copy {
        top: 51% !important;
        left: 52% !important;

        width: 76% !important;
    }

    .nlv2-hero-title {
        font-size: clamp(52px, 7.5vw, 78px) !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(24px, 3.2vw, 34px) !important;
    }
}


/* =========================================================
   DESKTOP
   ========================================================= */

@media (min-width: 1200px) {

    .nlv2-hero-logo {
        top: 24px !important;
        left: 38px !important;

        width: clamp(92px, 7.2vw, 122px) !important;
        max-width: 122px !important;
    }

    .nlv2-hero-copy {
        top: 51% !important;
        left: 51% !important;

        width: min(75%, 940px) !important;
    }

    .nlv2-hero-title {
        font-size: clamp(72px, 6.2vw, 100px) !important;
        letter-spacing: .082em !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: clamp(30px, 2.65vw, 42px) !important;
        letter-spacing: .026em !important;
    }

    #cartButton .nlv2-cart-badge,
    .nlv2-action-cart .nlv2-cart-badge {
        top: 7px !important;
        left: 50px !important;
    }
}


/* =========================================================
   VERY WIDE DESKTOP
   ========================================================= */

@media (min-width: 1800px) {

    .nlv2-hero-logo {
        top: 28px !important;
        left: 46px !important;

        width: 126px !important;
        max-width: 126px !important;
    }

    .nlv2-hero-title {
        font-size: 104px !important;
    }

    .nlv2-hero-localized-subtitle {
        font-size: 44px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V59 HERO BRAND CART POLISH END === */

/* === NEVERLAND PREMIUM MENU V59.1 CART LABEL FIX START === */

/*
   Fix mobile cart label squeezing introduced by V59.
   The chevron is absolutely positioned, so the label receives the full
   available center width. The badge stays attached to the cart icon.
*/

@media (max-width: 575.98px) {

    #cartButton.nlv2-action-cart,
    .nlv2-action-cart.add-cart-btn1 {
        position: relative !important;

        display: grid !important;
        grid-template-columns: 52px minmax(0, 1fr) !important;
        align-items: center !important;

        padding:
            0
            30px
            0
            7px !important;
    }

    #cartButton .nlv2-action-icon,
    .nlv2-action-cart .nlv2-action-icon {
        justify-self: start !important;

        width: 39px !important;
        height: 39px !important;

        margin: 0 !important;
    }

    #cartButton .nlv2-cart-badge,
    .nlv2-action-cart .nlv2-cart-badge {
        top: 4px !important;
        left: 39px !important;

        width: 23px !important;
        height: 23px !important;
        min-width: 23px !important;
    }

    #cartButton .nlv2-action-label,
    .nlv2-action-cart .nlv2-action-label {
        display: block !important;

        min-width: 0 !important;
        width: 100% !important;

        padding: 0 4px !important;

        overflow: visible !important;

        font-size: 13.5px !important;
        line-height: 1 !important;
        font-weight: 800 !important;

        text-align: center !important;
        white-space: nowrap !important;
        text-overflow: clip !important;
    }

    #cartButton > .nlv2-action-chevron,
    .nlv2-action-cart > .nlv2-action-chevron {
        position: absolute !important;

        top: 50% !important;
        right: 10px !important;

        margin: 0 !important;

        transform: translateY(-50%) !important;

        font-size: 12px !important;
    }
}

/* Extra insurance for very narrow phones. */
@media (max-width: 359.98px) {

    #cartButton.nlv2-action-cart,
    .nlv2-action-cart.add-cart-btn1 {
        grid-template-columns: 48px minmax(0, 1fr) !important;
        padding-right: 27px !important;
        padding-left: 6px !important;
    }

    #cartButton .nlv2-cart-badge,
    .nlv2-action-cart .nlv2-cart-badge {
        left: 36px !important;
    }

    #cartButton .nlv2-action-label,
    .nlv2-action-cart .nlv2-action-label {
        font-size: 12.5px !important;
    }

    #cartButton > .nlv2-action-chevron,
    .nlv2-action-cart > .nlv2-action-chevron {
        right: 8px !important;
    }
}

/* === NEVERLAND PREMIUM MENU V59.1 CART LABEL FIX END === */

/* === NEVERLAND PREMIUM MENU V59.2 CART LABEL VERTICAL CENTER START === */

/*
   Fix: after V59.1 the Cart label had enough horizontal width,
   but inherited alignment rules could keep it at the top of the button.
   Force the label to occupy the full button height and center itself
   both vertically and horizontally.
*/

@media (max-width: 575.98px) {

    #cartButton .nlv2-action-label,
    .nlv2-action-cart .nlv2-action-label {
        position: static !important;

        display: flex !important;

        width: 100% !important;
        height: 100% !important;
        min-height: 100% !important;

        align-self: stretch !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 0 4px !important;

        transform: none !important;

        line-height: 1 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }

    #cartButton.nlv2-action-cart,
    .nlv2-action-cart.add-cart-btn1 {
        align-items: stretch !important;
    }

    #cartButton .nlv2-action-icon,
    .nlv2-action-cart .nlv2-action-icon {
        align-self: center !important;
    }
}

/* === NEVERLAND PREMIUM MENU V59.2 CART LABEL VERTICAL CENTER END === */

/* ============================================================
   NEVERLAND PREMIUM MENU V62 DESKTOP PREMIUM CONSOLIDATION
   Desktop >= 992px only
   Mobile/tablet phone layout remains untouched
   ============================================================ */

@media (min-width: 992px) {

    /* ---------------------------------------------------------
       1. FULL-WIDTH DESKTOP CANVAS
       --------------------------------------------------------- */

    html,
    body {
        overflow-x: hidden !important;
    }

    body:has(.nlv2-page) {
        background:
            linear-gradient(
                180deg,
                #eef2f6 0%,
                #f5f7fa 38%,
                #eef2f6 100%
            ) !important;
    }

    .nlv2-page {
        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 clamp(20px, 2.2vw, 42px) clamp(36px, 3vw, 56px) !important;

        overflow: visible !important;

        border-radius: 0 !important;

        background:
            linear-gradient(
                180deg,
                #ffffff 0%,
                #ffffff 52%,
                #fbfcfd 100%
            ) !important;

        box-shadow: none !important;
    }

    .nlv2-shell {
        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        padding-bottom: 34px !important;

        background: transparent !important;
    }


    /* ---------------------------------------------------------
       2. HERO - QUIETER, WIDER, MORE EDITORIAL
       --------------------------------------------------------- */

    .nlv2-page .nlv2-hero {
        width: 100% !important;

        margin: 0 !important;

        overflow: visible !important;
    }

    .nlv2-page .nlv2-hero-image {
        position: relative !important;

        width: 100% !important;
        max-width: none !important;

        height: clamp(255px, 24vw, 340px) !important;
        min-height: 255px !important;
        max-height: 340px !important;

        margin: 0 !important;

        overflow: hidden !important;

        border-radius: 0 0 26px 26px !important;

        background-size: cover !important;
        background-position: center 48% !important;

        box-shadow: 0 16px 34px rgba(9, 28, 48, .10) !important;
    }

    .nlv2-page .nlv2-hero-logo {
        top: clamp(18px, 2.4vw, 30px) !important;
        left: clamp(22px, 2.8vw, 44px) !important;

        width: clamp(72px, 6vw, 104px) !important;
        max-width: 104px !important;
        height: auto !important;
    }

    .nlv2-page .nlv2-hero-copy {
        top: 50% !important;
        left: 50% !important;

        width: min(72%, 980px) !important;

        transform: translate(-50%, -48%) !important;
    }

    .nlv2-page .nlv2-hero-title {
        font-size: clamp(58px, 5.6vw, 94px) !important;
        line-height: .94 !important;
        letter-spacing: .072em !important;
    }

    .nlv2-page .nlv2-hero-brand-divider {
        width: min(58%, 470px) !important;
        margin: 12px auto 9px !important;
    }

    .nlv2-page .nlv2-hero-localized-subtitle {
        font-size: clamp(24px, 2.3vw, 38px) !important;
        line-height: 1.04 !important;
        letter-spacing: .018em !important;
    }


    /* ---------------------------------------------------------
       3. LANGUAGE SELECTOR - FLOATING BUT RESTRAINED
       --------------------------------------------------------- */

    .nlv2-page .nlv2-language-panel {
        position: relative !important;
        z-index: 20 !important;

        width: min(760px, calc(100% - 120px)) !important;
        max-width: 760px !important;
        min-height: 58px !important;

        margin: -22px auto 0 !important;
        padding: 6px 10px !important;

        border: 1px solid rgba(222, 164, 60, .45) !important;
        border-radius: 22px !important;

        background:
            linear-gradient(
                145deg,
                #0f3459 0%,
                #0a2a49 55%,
                #07223d 100%
            ) !important;

        box-shadow:
            0 14px 28px rgba(7, 27, 48, .18),
            0 3px 8px rgba(7, 27, 48, .08),
            inset 0 1px 0 rgba(255,255,255,.07) !important;
    }

    .nlv2-page .nlv2-language-option {
        min-height: 46px !important;

        gap: 8px !important;
        padding: 0 14px !important;

        border-radius: 15px !important;

        font-size: 14px !important;
        font-weight: 800 !important;
    }

    .nlv2-page .nlv2-language-option img {
        width: 25px !important;
        height: 17px !important;
    }

    .nlv2-page .nlv2-language-option.active {
        color: #f2be5c !important;
        background: rgba(255,255,255,.035) !important;
    }


    /* ---------------------------------------------------------
       4. CATEGORY STRIP - SINGLE ROW / FULL WIDTH / NO SCROLLBAR
       Existing V22 JS keeps mouse dragging.
       --------------------------------------------------------- */

    .nlv2-page .nlv2-category-zone {
        width: 100% !important;
        max-width: none !important;

        margin: 30px 0 0 !important;
        padding: 0 !important;

        overflow: hidden !important;
    }

    .nlv2-page .nlv2-category-slider-container.category-slider-container {
        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
        -ms-overflow-style: none !important;

        scroll-snap-type: x proximity !important;
        scroll-padding-inline: 0 !important;

        cursor: grab !important;
    }

    .nlv2-page .nlv2-category-slider-container.category-slider-container:active,
    .nlv2-page .nlv2-category-slider-container.nlv2-mouse-dragging {
        cursor: grabbing !important;
    }

    .nlv2-page .nlv2-category-slider-container.category-slider-container::-webkit-scrollbar {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
    }

    .nlv2-page .nlv2-category-slider.category-slider {
        width: max-content !important;
        min-width: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;
    }

    .nlv2-page .nlv2-category-list#categoryTabs {
        display: flex !important;

        width: max-content !important;
        min-width: 100% !important;

        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;

        gap: clamp(10px, .9vw, 16px) !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nlv2-page .nlv2-category-item.menu-category-item {
        flex: 0 0 clamp(175px, 12.6vw, 224px) !important;

        width: clamp(175px, 12.6vw, 224px) !important;
        min-width: clamp(175px, 12.6vw, 224px) !important;
        max-width: clamp(175px, 12.6vw, 224px) !important;

        margin: 0 !important;

        scroll-snap-align: start !important;
    }

    .nlv2-page .nlv2-category-card.menu-category-card,
    .nlv2-page .nlv2-category-card.add-cart-btn4 {
        width: 100% !important;

        height: 142px !important;
        min-height: 142px !important;

        aspect-ratio: auto !important;

        border: 1px solid rgba(221, 161, 53, .34) !important;
        border-radius: 22px !important;

        background: #092743 !important;

        box-shadow:
            0 11px 24px rgba(8, 28, 48, .12),
            inset 0 1px 0 rgba(255,255,255,.05) !important;

        transform: none !important;
    }

    .nlv2-page .nlv2-category-overlay {
        background:
            linear-gradient(
                180deg,
                rgba(4,16,29,.01) 0%,
                rgba(4,16,29,.08) 36%,
                rgba(4,16,29,.78) 100%
            ) !important;
    }

    .nlv2-page .nlv2-category-icon.icon-part4 {
        top: 12px !important;
        left: 12px !important;

        width: 45px !important;
        height: 45px !important;

        border: 1px solid rgba(235, 178, 71, .88) !important;
        border-radius: 50% !important;

        background:
            linear-gradient(
                145deg,
                rgba(15,49,82,.96),
                rgba(7,31,55,.97)
            ) !important;

        box-shadow:
            0 6px 12px rgba(0,0,0,.20),
            inset 0 1px 0 rgba(255,255,255,.08) !important;
    }

    .nlv2-page .nlv2-category-icon i {
        font-size: 19px !important;
    }

    .nlv2-page .nlv2-category-name.btn-label4 {
        right: 12px !important;
        bottom: 12px !important;
        left: 12px !important;

        color: #fff !important;

        font-size: clamp(14px, 1vw, 17px) !important;
        font-weight: 800 !important;
        line-height: 1.08 !important;

        white-space: normal !important;
        text-wrap: balance !important;

        text-shadow: 0 2px 5px rgba(0,0,0,.42) !important;
    }

    .nlv2-page .nlv2-category-card.active {
        border-color: rgba(236, 180, 74, .92) !important;

        box-shadow:
            0 13px 28px rgba(8, 28, 48, .14),
            0 0 0 1px rgba(236, 180, 74, .25),
            inset 0 1px 0 rgba(255,255,255,.07) !important;
    }


    /* ---------------------------------------------------------
       5. ACTIONS - COMPACT CTA GROUP, NOT FULL-WIDTH BARS
       --------------------------------------------------------- */

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions,
    .nlv2-home-page .nlv2-home-actions {
        display: flex !important;

        width: fit-content !important;
        max-width: 100% !important;

        align-items: stretch !important;
        justify-content: center !important;

        gap: 12px !important;

        margin: 18px auto 0 !important;
        padding: 0 !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button,
    .nlv2-home-page .nlv2-home-call-action {
        flex: 0 0 auto !important;

        width: clamp(250px, 19vw, 310px) !important;
        min-width: 250px !important;
        max-width: 310px !important;

        height: 60px !important;
        min-height: 60px !important;

        margin: 0 !important;

        border-radius: 18px !important;

        box-shadow:
            0 10px 22px rgba(8, 29, 50, .12),
            inset 0 1px 0 rgba(255,255,255,.06) !important;
    }

    /* Cart */
    .nlv2-page #cartButton.nlv2-action-cart {
        position: relative !important;

        display: grid !important;

        grid-template-columns: 46px minmax(0, 1fr) 16px !important;
        align-items: center !important;

        padding: 0 14px 0 10px !important;

        background:
            linear-gradient(
                135deg,
                #10385f 0%,
                #0a2b4a 56%,
                #07213b 100%
            ) !important;
    }

    .nlv2-page #cartButton .nlv2-action-icon {
        display: grid !important;

        width: 40px !important;
        height: 40px !important;

        place-items: center !important;

        margin: 0 !important;

        border: 0 !important;
        border-right: 1px solid rgba(255,255,255,.10) !important;

        color: #efb64b !important;

        background: transparent !important;

        font-size: 18px !important;
    }

    .nlv2-page #cartButton .nlv2-action-label {
        display: block !important;

        min-width: 0 !important;

        padding: 0 10px 0 14px !important;

        color: #fff !important;

        font-size: 15px !important;
        font-weight: 800 !important;
        line-height: 1 !important;

        text-align: left !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .nlv2-page #cartButton .nlv2-action-chevron {
        position: static !important;

        justify-self: end !important;

        margin: 0 !important;

        color: rgba(255,255,255,.94) !important;

        font-size: 12px !important;

        transform: none !important;
    }

    .nlv2-page #cartButton .nlv2-cart-badge {
        position: absolute !important;
        z-index: 5 !important;

        top: 5px !important;
        left: 36px !important;

        display: grid !important;

        width: 23px !important;
        height: 23px !important;
        min-width: 23px !important;

        place-items: center !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 2px solid #0b2c4c !important;
        border-radius: 50% !important;

        color: #092744 !important;

        background:
            linear-gradient(
                145deg,
                #f5c769,
                #e6a933
            ) !important;

        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1 !important;

        box-shadow: 0 5px 10px rgba(6,25,44,.18) !important;
    }

    /* Waiter / call-to-order */
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button,
    .nlv2-home-page .nlv2-home-call-action {
        display: grid !important;

        grid-template-columns: 45px minmax(0, 1fr) 16px !important;
        align-items: center !important;

        padding: 0 13px 0 9px !important;

        border: 1px solid rgba(205, 139, 28, .18) !important;

        background:
            linear-gradient(
                135deg,
                #f2c35f 0%,
                #e8af3d 58%,
                #dda02f 100%
            ) !important;

        box-shadow:
            0 10px 22px rgba(183, 119, 16, .15),
            inset 0 1px 0 rgba(255,255,255,.32) !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon,
    .nlv2-home-page .nlv2-home-call-icon {
        display: grid !important;

        width: 38px !important;
        height: 38px !important;
        min-width: 38px !important;

        place-items: center !important;
        place-self: center !important;

        border-radius: 50% !important;

        color: #efb64b !important;

        background:
            linear-gradient(
                145deg,
                #10375b,
                #082641
            ) !important;

        font-size: 16px !important;

        box-shadow: 0 5px 11px rgba(8, 31, 55, .17) !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label,
    .nlv2-home-page .nlv2-home-call-label {
        min-width: 0 !important;

        padding: 0 8px !important;

        color: #092846 !important;

        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 1.06 !important;

        text-align: center !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton::after,
    .nlv2-home-page .nlv2-home-call-chevron {
        position: static !important;

        justify-self: end !important;

        margin: 0 !important;

        font-size: 12px !important;
    }

    /* Profile */
    .nlv2-page .nlv2-profile-menu.menu-action-profile,
    .nlv2-home-page .nlv2-profile-menu.menu-action-profile {
        flex: 0 0 64px !important;

        width: 64px !important;
        min-width: 64px !important;
        max-width: 64px !important;
        height: 60px !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
        width: 64px !important;
        min-width: 64px !important;
        max-width: 64px !important;

        height: 60px !important;
        min-height: 60px !important;

        border-radius: 18px !important;

        background:
            linear-gradient(
                145deg,
                #10375d,
                #082744 62%,
                #061e36
            ) !important;

        box-shadow:
            0 10px 22px rgba(7,27,48,.13),
            inset 0 1px 0 rgba(255,255,255,.06) !important;
    }


    /* ---------------------------------------------------------
       6. STATUS / COUNTERS - SECONDARY, QUIET
       --------------------------------------------------------- */

    .nlv2-page .nlv2-status-row {
        display: flex !important;

        width: fit-content !important;
        max-width: 100% !important;

        justify-content: center !important;
        align-items: stretch !important;

        gap: 12px !important;

        margin: 13px auto 0 !important;
    }

    .nlv2-page .nlv2-status-card {
        width: clamp(240px, 18vw, 300px) !important;
        min-width: 240px !important;
        max-width: 300px !important;
        min-height: 50px !important;

        gap: 9px !important;

        padding: 0 16px !important;

        border: 1px solid rgba(10,39,68,.08) !important;
        border-radius: 15px !important;

        color: #10233f !important;

        background:
            linear-gradient(
                180deg,
                rgba(255,255,255,.995),
                rgba(250,251,252,.98)
            ) !important;

        font-size: 13px !important;
        font-weight: 750 !important;

        box-shadow:
            0 7px 16px rgba(8,31,55,.055),
            inset 0 1px 0 #fff !important;
    }

    .nlv2-page .nlv2-live-stats,
    .nlv2-home-page .nlv2-home-live-stats {
        width: fit-content !important;
        max-width: 100% !important;

        justify-content: center !important;

        gap: 10px !important;

        margin: 12px auto 0 !important;
    }


    /* ---------------------------------------------------------
       7. RESULT COUNT + SEARCH
       --------------------------------------------------------- */

    .nlv2-page .nlv2-result-count {
        width: 100% !important;
        max-width: none !important;

        margin: 18px 0 0 !important;

        color: #10233f !important;

        font-size: 17px !important;
        font-weight: 800 !important;
    }

    .nlv2-page .nlv2-search-wrap {
        width: 100% !important;
        max-width: none !important;

        margin: 12px 0 20px !important;
    }

    .nlv2-page .nlv2-search-input.form-control {
        min-height: 58px !important;

        padding: 0 58px 0 50px !important;

        border: 1px solid rgba(10,39,68,.10) !important;
        border-radius: 17px !important;

        color: #10233f !important;
        background: #fff !important;

        font-size: 16px !important;

        box-shadow:
            0 8px 19px rgba(7,29,51,.05),
            inset 0 1px 0 #fff !important;
    }

    .nlv2-page .nlv2-search-icon {
        left: 18px !important;
        font-size: 19px !important;
    }

    .nlv2-page .nlv2-search-filter {
        right: 18px !important;
        font-size: 18px !important;
    }


    /* ---------------------------------------------------------
       8. RESPONSIVE PRODUCT GRID
       992-1279: 2 columns
       1280-1599: 3 columns
       1600-2199: 4 columns
       2200+: 5 columns
       --------------------------------------------------------- */

    .nlv2-page .nlv2-menu-items {
        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
    }

    .nlv2-page .nlv2-product-grid {
        display: grid !important;

        width: 100% !important;

        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

        gap: clamp(16px, 1.15vw, 22px) !important;

        margin: 0 !important;
        padding: 0 !important;

        align-items: stretch !important;
    }

    .nlv2-page .nlv2-menu-item.menu-item {
        display: flex !important;

        min-width: 0 !important;
        height: 100% !important;
    }


    /* ---------------------------------------------------------
       9. PRODUCT CARD - RETURN TO MOBILE HORIZONTAL LANGUAGE
       --------------------------------------------------------- */

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;
        min-height: 245px !important;
        height: 100% !important;

        flex-direction: column !important;

        margin: 0 !important;
        padding: 15px !important;

        overflow: hidden !important;

        border: 1px solid rgba(10,39,68,.10) !important;
        border-radius: 22px !important;

        background:
            linear-gradient(
                180deg,
                #ffffff 0%,
                #fffefd 100%
            ) !important;

        box-shadow:
            0 12px 26px rgba(9, 28, 48, .075),
            0 2px 5px rgba(9, 28, 48, .025),
            inset 0 1px 0 rgba(255,255,255,.98) !important;

        transform: none !important;
    }

    .nlv2-page .nlv2-product-main {
        display: grid !important;

        width: 100% !important;
        min-width: 0 !important;

        grid-template-columns: 132px minmax(0, 1fr) !important;
        gap: 16px !important;
        align-items: start !important;

        flex: 1 1 auto !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        display: flex !important;

        width: 132px !important;
        min-width: 132px !important;
        height: 132px !important;
        min-height: 132px !important;

        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        display: block !important;

        width: 126px !important;
        height: 126px !important;
        min-width: 126px !important;
        min-height: 126px !important;
        max-width: 126px !important;
        max-height: 126px !important;

        flex: 0 0 126px !important;

        margin: 0 !important;

        border-radius: 0 !important;

        object-fit: contain !important;
        object-position: center !important;

        box-shadow: none !important;

        filter:
            drop-shadow(0 10px 9px rgba(6, 27, 48, .22))
            drop-shadow(0 2px 2px rgba(6, 27, 48, .08)) !important;
    }

    .nlv2-page .nlv27-product-info.card-info,
    .nlv2-page .nlv2-product-info.card-info.nlv27-product-info {
        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;
        min-height: 132px !important;
        height: auto !important;

        flex-direction: column !important;

        margin: 0 !important;
        padding: 2px 0 0 !important;

        overflow: visible !important;
    }

    .nlv2-page .nlv27-product-heading {
        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;

        flex-direction: column !important;
        align-items: flex-start !important;

        gap: 6px !important;

        margin: 0 !important;

        text-align: left !important;
    }

    .nlv2-page .nlv27-product-heading .nlv2-product-title.menu-item-title {
        display: -webkit-box !important;

        width: 100% !important;
        min-height: 0 !important;

        margin: 0 !important;
        padding: 0 34px 0 0 !important;

        overflow: hidden !important;

        color: #092846 !important;

        font-family:
            Georgia,
            "Times New Roman",
            serif !important;

        font-size: clamp(17px, 1.15vw, 21px) !important;
        font-weight: 700 !important;
        line-height: 1.12 !important;
        letter-spacing: -.01em !important;

        text-align: left !important;

        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
    }

    .nlv2-page .nlv27-weight-row {
        width: min(100%, 220px) !important;
        min-height: 24px !important;

        gap: 6px !important;

        margin: 0 !important;
    }

    .nlv2-page .nlv27-weight-row .nlv2-product-weight {
        min-height: 23px !important;

        padding: 3px 8px !important;

        border: 1px solid rgba(220, 154, 40, .60) !important;
        border-radius: 9px !important;

        color: #b77712 !important;
        background: #fffaf0 !important;

        font-size: 11px !important;
        font-weight: 700 !important;
    }

    .nlv2-page .nlv27-description-row {
        display: grid !important;

        width: 100% !important;
        min-width: 0 !important;

        grid-template-columns: minmax(0, 1fr) 27px !important;
        gap: 7px !important;
        align-items: center !important;

        margin: 8px 0 0 !important;
    }

    .nlv2-page
    .nlv27-description-row
    .nlv2-description-container[data-collapsed="true"]
    .nlv2-product-description.description {
        display: -webkit-box !important;

        margin: 0 !important;

        overflow: hidden !important;

        color: #4f5c6d !important;

        font-family:
            "Segoe UI",
            Arial,
            sans-serif !important;

        font-size: 12.5px !important;
        line-height: 1.38 !important;

        text-align: left !important;

        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
    }

    .nlv2-page
    .nlv27-description-row
    .nlv2-description-container[data-collapsed="false"]
    .nlv2-product-description.description {
        margin: 0 !important;

        color: #4f5c6d !important;

        font-size: 12.5px !important;
        line-height: 1.38 !important;

        text-align: left !important;
    }

    .nlv2-page .nlv27-description-row .nlv2-description-toggle.desc-toggle-link {
        position: static !important;

        display: grid !important;

        width: 27px !important;
        height: 27px !important;
        min-width: 27px !important;

        place-items: center !important;
        align-self: center !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
        border-radius: 50% !important;

        color: #08294c !important;
        background: rgba(8, 41, 76, .035) !important;

        font-size: 12px !important;

        transform: none !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-row {
        display: flex !important;

        width: 100% !important;

        align-items: center !important;
        flex-wrap: wrap !important;

        gap: 5px !important;

        margin: auto 0 0 !important;
        padding: 8px 0 0 !important;

        border: 0 !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-label {
        color: #111f31 !important;

        font-size: 11px !important;
        font-weight: 800 !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap,
    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap > .nlv2-allergen-icon,
    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap > .allergen-icon {
        width: 23px !important;
        height: 23px !important;
        min-width: 23px !important;
        max-width: 23px !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap {
        flex: 0 0 23px !important;
    }


    /* ---------------------------------------------------------
       10. PURCHASE FOOTER - PRICE LEFT / CONTROLS RIGHT
       --------------------------------------------------------- */

    .nlv2-page .nlv2-product-purchase {
        display: grid !important;

        width: 100% !important;

        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 12px !important;
        align-items: end !important;

        margin: 12px 0 0 !important;
        padding: 11px 0 0 !important;

        border-top: 1px solid rgba(10,39,68,.08) !important;
    }

    .nlv2-page .nlv2-price-block {
        display: flex !important;

        flex-direction: column !important;
        align-items: flex-start !important;

        gap: 2px !important;

        margin: 0 !important;
    }

    .nlv2-page .nlv2-price-primary,
    .nlv2-page .nlv2-price-block strong {
        color: #08294c !important;

        font-size: 23px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        letter-spacing: -.03em !important;
    }

    .nlv2-page .nlv2-purchase-controls {
        display: flex !important;

        align-items: center !important;
        justify-content: flex-end !important;

        gap: 7px !important;

        margin: 0 !important;
    }

    .nlv2-page .nlv2-quantity-stepper {
        width: 104px !important;
        height: 42px !important;

        border: 1px solid rgba(10,39,68,.12) !important;
        border-radius: 13px !important;

        background: #fff !important;

        box-shadow: none !important;
    }

    .nlv2-page .nlv2-qty-button {
        font-size: 16px !important;
    }

    .nlv2-page .nlv2-qty-value {
        font-size: 14px !important;
        font-weight: 800 !important;
    }

    .nlv2-page .nlv2-add-cart-button.add-cart-btn {
        display: grid !important;

        width: 48px !important;
        height: 42px !important;
        min-width: 48px !important;

        place-items: center !important;

        padding: 0 !important;

        border: 1px solid rgba(211, 146, 36, .88) !important;
        border-radius: 13px !important;

        color: #092846 !important;

        background:
            linear-gradient(
                135deg,
                #f1c15f 0%,
                #e5a72f 100%
            ) !important;

        box-shadow: 0 7px 15px rgba(186, 122, 18, .16) !important;
    }

    .nlv2-page .nlv2-add-cart-button .icon-part,
    .nlv2-page .nlv2-add-cart-button .icon-part i {
        display: grid !important;

        width: 100% !important;
        height: 100% !important;

        place-items: center !important;

        margin: 0 !important;
        padding: 0 !important;

        font-size: 17px !important;
    }


    /* ---------------------------------------------------------
       11. PREMIUM HOVER - SUBTLE ONLY
       --------------------------------------------------------- */

    @media (hover: hover) and (pointer: fine) {

        .nlv2-page .nlv2-category-card.menu-category-card:hover,
        .nlv2-page .nlv2-category-card.add-cart-btn4:hover {
            transform: translateY(-2px) !important;

            border-color: rgba(232,174,69,.68) !important;

            box-shadow:
                0 15px 30px rgba(8,28,48,.15),
                inset 0 1px 0 rgba(255,255,255,.06) !important;
        }

        .nlv2-page .nlv2-product-card.card-grid:hover,
        .nlv2-page .nlv2-product-card.blockb:hover {
            transform: translateY(-2px) !important;

            border-color: rgba(212,150,41,.26) !important;

            box-shadow:
                0 17px 34px rgba(9,28,48,.10),
                0 4px 9px rgba(9,28,48,.03),
                inset 0 1px 0 rgba(255,255,255,.98) !important;
        }
    }
}


/* 1280-1599: 3 columns */
@media (min-width: 1280px) and (max-width: 1599.98px) {
    .nlv2-page .nlv2-product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}


/* 1600-2199: 4 columns - target for the user's current desktop */
@media (min-width: 1600px) and (max-width: 2199.98px) {
    .nlv2-page .nlv2-product-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }

    .nlv2-page .nlv2-product-main {
        grid-template-columns: 126px minmax(0, 1fr) !important;
        gap: 14px !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 126px !important;
        min-width: 126px !important;
        height: 126px !important;
        min-height: 126px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 122px !important;
        height: 122px !important;
        min-width: 122px !important;
        min-height: 122px !important;
        max-width: 122px !important;
        max-height: 122px !important;
    }
}


/* 2200+: 5 columns, but only when every card remains comfortably wide */
@media (min-width: 2200px) {
    .nlv2-page .nlv2-product-grid {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62 DESKTOP PREMIUM CONSOLIDATION
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.1 LANGUAGE + CART ALIGNMENT FIX
   Desktop >= 992px
   ============================================================ */

@media (min-width: 992px) {

    /* ---------------------------------------------------------
       LANGUAGE LABEL VISIBILITY
       V62 inherited the old dark text color from the base theme.
       Force inactive labels to white and active label to gold.
       --------------------------------------------------------- */

    .nlv2-page .nlv2-language-option {
        color: rgba(255, 255, 255, .96) !important;
    }

    .nlv2-page .nlv2-language-option > span {
        color: inherit !important;
        opacity: 1 !important;
        visibility: visible !important;

        font-weight: 800 !important;

        text-shadow: 0 1px 2px rgba(0, 0, 0, .18) !important;
    }

    .nlv2-page .nlv2-language-option.active {
        color: #f2be5c !important;
    }

    .nlv2-page .nlv2-language-option.active > span {
        color: #f2be5c !important;
    }


    /* ---------------------------------------------------------
       CART LABEL VERTICAL / HORIZONTAL CENTERING
       Keep icon, badge and chevron positions intact.
       --------------------------------------------------------- */

    .nlv2-page #cartButton.nlv2-action-cart {
        align-items: stretch !important;
    }

    .nlv2-page #cartButton .nlv2-action-icon {
        align-self: center !important;
    }

    .nlv2-page #cartButton .nlv2-action-label {
        position: static !important;

        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;
        height: 100% !important;
        min-height: 100% !important;

        align-self: stretch !important;
        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 0 8px !important;

        overflow: hidden !important;

        color: #ffffff !important;

        font-size: 15px !important;
        font-weight: 800 !important;
        line-height: 1.05 !important;

        text-align: center !important;
        white-space: nowrap !important;
        text-overflow: ellipsis !important;

        transform: none !important;
    }

    .nlv2-page #cartButton .nlv2-action-chevron {
        align-self: center !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.1 LANGUAGE + CART ALIGNMENT FIX
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.2 RESTAURANT HERO BACKGROUND
   ============================================================ */

/*
   Replace the old baked hero-reference.webp with the clean restaurant photo.
   The brand logo, NEVERLAND title and localized ElectronicMenu remain
   independent DOM elements from V58/V59.
*/

.nlv2-page .nlv2-hero-image,
.nlv2-hero-image {
    background:
        url('/images/restaurant.jpg')
        center
        /
        cover
        no-repeat !important;
}

/*
   The V58 neutralizer existed only because hero-reference.webp had baked
   logo/title/subtitle. restaurant.jpg is now the actual background, so the
   old left-side mask must be disabled.
*/
.nlv2-page .nlv2-hero-image::before,
.nlv2-hero-image::before {
    display: none !important;

    width: 0 !important;
    height: 0 !important;

    content: none !important;

    background: none !important;
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.2 RESTAURANT HERO BACKGROUND
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.3 DESKTOP LANGUAGE PREMIUM WHITE
   Desktop >= 992px only
   ============================================================ */

@media (min-width: 992px) {

    /*
       Premium desktop language selector:
       - white floating capsule
       - dark navy active language
       - navy inactive labels
       - subtle vertical dividers
       - clean shadow, matching the approved reference
    */
    .nlv2-page .nlv2-language-panel {
        position: relative !important;
        z-index: 20 !important;

        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        align-items: center !important;

        width: min(720px, calc(100% - 120px)) !important;
        max-width: 720px !important;
        min-height: 72px !important;

        margin: -20px auto 0 !important;
        padding: 7px 9px !important;

        overflow: hidden !important;

        border: 1px solid rgba(10, 39, 68, .08) !important;
        border-radius: 26px !important;

        background:
            linear-gradient(
                180deg,
                #ffffff 0%,
                #fefefe 100%
            ) !important;

        box-shadow:
            0 16px 34px rgba(8, 30, 52, .14),
            0 4px 10px rgba(8, 30, 52, .05),
            inset 0 1px 0 rgba(255, 255, 255, 1) !important;
    }

    .nlv2-page .nlv2-language-option {
        position: relative !important;

        display: flex !important;

        min-width: 0 !important;
        min-height: 58px !important;

        align-items: center !important;
        justify-content: center !important;

        gap: 9px !important;

        margin: 0 !important;
        padding: 0 18px !important;

        border: 0 !important;
        border-radius: 20px !important;

        color: #102844 !important;
        background: transparent !important;

        font-size: 16px !important;
        font-weight: 850 !important;
        line-height: 1 !important;
        letter-spacing: .01em !important;

        box-shadow: none !important;

        transition:
            background-color .16s ease,
            color .16s ease,
            transform .16s ease !important;
    }

    .nlv2-page .nlv2-language-option > span {
        color: inherit !important;
        opacity: 1 !important;
        visibility: visible !important;

        font-size: inherit !important;
        font-weight: inherit !important;
        line-height: 1 !important;

        text-shadow: none !important;
    }

    .nlv2-page .nlv2-language-option img {
        display: block !important;

        width: 29px !important;
        height: 20px !important;

        flex: 0 0 29px !important;

        border-radius: 999px !important;

        object-fit: cover !important;

        box-shadow:
            0 2px 6px rgba(8, 30, 52, .15) !important;
    }

    /* Inactive language separators */
    .nlv2-page .nlv2-language-option:not(:last-child)::after {
        position: absolute !important;

        top: 50% !important;
        right: -5px !important;

        width: 1px !important;
        height: 30px !important;

        content: "" !important;

        background: rgba(10, 39, 68, .16) !important;

        transform: translateY(-50%) !important;

        pointer-events: none !important;
    }

    /*
       Active language is the only navy pill.
       Its separator is hidden because the pill itself is the visual boundary.
    */
    .nlv2-page .nlv2-language-option.active {
        color: #ffffff !important;

        background:
            linear-gradient(
                145deg,
                #123a61 0%,
                #0a2a49 58%,
                #07213b 100%
            ) !important;

        box-shadow:
            0 8px 18px rgba(8, 30, 52, .18),
            inset 0 1px 0 rgba(255, 255, 255, .08) !important;
    }

    .nlv2-page .nlv2-language-option.active > span {
        color: #ffffff !important;
    }

    .nlv2-page .nlv2-language-option.active::after {
        display: none !important;
    }

    @media (hover: hover) and (pointer: fine) {
        .nlv2-page .nlv2-language-option:not(.active):hover {
            color: #0a2a49 !important;

            background: rgba(10, 42, 73, .045) !important;

            transform: translateY(-1px) !important;
        }
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.3 DESKTOP LANGUAGE PREMIUM WHITE
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.4 PROFILE NAME + ADMIN BUTTONS FIX
   ============================================================ */

/* ------------------------------------------------------------
   1. ADMIN EDIT / DELETE BUTTONS
   Mobile + desktop
   ------------------------------------------------------------ */

.nlv2-page .nlv2-product-admin {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;

    width: 100% !important;

    margin-top: 10px !important;
    padding-top: 10px !important;

    align-items: stretch !important;

    border-top: 1px dashed rgba(10, 39, 68, .12) !important;
}

.nlv2-page .nlv2-product-admin .add-cart-btn7 {
    position: relative !important;

    display: flex !important;

    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;

    align-items: center !important;
    justify-content: center !important;

    gap: 9px !important;

    margin: 0 !important;
    padding: 0 14px !important;

    border-radius: 13px !important;

    line-height: 1 !important;

    box-sizing: border-box !important;
}

.nlv2-page .nlv2-product-admin .add-cart-btn7 > i {
    position: static !important;

    display: inline-grid !important;

    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;

    flex: 0 0 18px !important;

    place-items: center !important;
    align-self: center !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 16px !important;
    line-height: 1 !important;

    transform: none !important;
}

.nlv2-page .nlv2-product-admin .add-cart-btn7 > span {
    position: static !important;

    display: block !important;

    min-width: 0 !important;

    margin: 0 !important;
    padding: 0 !important;

    line-height: 1.05 !important;

    text-align: center !important;
    white-space: nowrap !important;

    transform: none !important;
}

.nlv2-page .nlv2-product-admin .edit-item-btn > i {
    color: #0a2a49 !important;
}

.nlv2-page .nlv2-product-admin .delete-item > i {
    color: #263649 !important;
}


/* ------------------------------------------------------------
   2. LARGE DESKTOP PROFILE
   Show signed-in user's existing .profile-label.
   The Razor already renders @fullName; V62 only collapsed the
   profile control to an icon-only 64px button.
   ------------------------------------------------------------ */

@media (min-width: 1280px) {

    .nlv2-page:not(.nlv2-home-page)
    .nlv2-actions
    > .nlv2-profile-menu.menu-action-profile,
    .nlv2-home-page
    .nlv2-home-actions
    > .nlv2-profile-menu.menu-action-profile {
        flex: 0 0 clamp(180px, 13vw, 235px) !important;

        width: clamp(180px, 13vw, 235px) !important;
        min-width: 180px !important;
        max-width: 235px !important;

        height: 60px !important;

        margin: 0 !important;

        overflow: visible !important;
    }

    .nlv2-page
    .nlv2-profile-button.add-cart-btn2,
    .nlv2-home-page
    .nlv2-profile-button.add-cart-btn2 {
        position: relative !important;

        display: grid !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        height: 60px !important;
        min-height: 60px !important;

        grid-template-columns:
            42px
            minmax(0, 1fr)
            16px !important;

        align-items: stretch !important;

        margin: 0 !important;
        padding: 0 12px 0 10px !important;

        overflow: hidden !important;

        border-radius: 18px !important;

        box-sizing: border-box !important;
    }

    .nlv2-page .nlv2-profile-icon,
    .nlv2-home-page .nlv2-profile-icon {
        position: static !important;

        display: flex !important;

        width: 42px !important;
        height: 100% !important;

        grid-column: 1 !important;
        grid-row: 1 !important;

        align-items: center !important;
        justify-content: center !important;
        align-self: stretch !important;

        margin: 0 !important;
        padding: 0 !important;

        transform: none !important;
    }

    /*
       Bootstrap .visually-hidden uses !important position/clip/size rules.
       Reset every relevant property on large desktop.
    */
    .nlv2-page
    .nlv2-profile-button
    .profile-label.visually-hidden,
    .nlv2-home-page
    .nlv2-profile-button
    .profile-label.visually-hidden {
        position: static !important;

        display: flex !important;

        width: auto !important;
        height: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;

        grid-column: 2 !important;
        grid-row: 1 !important;

        align-items: center !important;
        justify-content: center !important;
        align-self: stretch !important;

        margin: 0 !important;
        padding: 0 8px !important;

        overflow: hidden !important;

        clip: auto !important;
        clip-path: none !important;

        border: 0 !important;

        color: #ffffff !important;

        font-size: 13px !important;
        font-weight: 800 !important;
        line-height: 1.08 !important;

        text-align: center !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;

        transform: none !important;
    }

    .nlv2-page
    .nlv2-profile-button.add-cart-btn2::after,
    .nlv2-home-page
    .nlv2-profile-button.add-cart-btn2::after {
        position: static !important;

        grid-column: 3 !important;
        grid-row: 1 !important;

        align-self: center !important;
        justify-self: end !important;

        margin: 0 !important;

        transform: none !important;
    }
}


/* ------------------------------------------------------------
   3. PHONE / TABLET ADMIN BUTTON TUNING
   ------------------------------------------------------------ */

@media (max-width: 575.98px) {

    .nlv2-page .nlv2-product-admin {
        gap: 8px !important;
    }

    .nlv2-page .nlv2-product-admin .add-cart-btn7 {
        min-height: 48px !important;

        gap: 8px !important;

        padding-inline: 10px !important;

        font-size: 13px !important;
    }

    .nlv2-page .nlv2-product-admin .add-cart-btn7 > i {
        width: 17px !important;
        height: 17px !important;
        min-width: 17px !important;

        flex-basis: 17px !important;

        font-size: 15px !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.4 PROFILE NAME + ADMIN BUTTONS FIX
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.4.1 PROFILE ICON LEFT FIX
   Large desktop only
   ============================================================ */

@media (min-width: 1280px) {

    /*
       V12 has a more-specific selector that absolutely centers the icon:
       .nlv2-page:not(.nlv2-home-page) .nlv2-profile-icon
       Override it with higher specificity so icon / name / arrow are
       three separate columns.
    */
    .nlv2-page:not(.nlv2-home-page)
    .nlv2-actions
    .nlv2-profile-menu.menu-action-profile
    .nlv2-profile-button.add-cart-btn2 {
        display: grid !important;

        grid-template-columns:
            42px
            minmax(0, 1fr)
            16px !important;

        align-items: stretch !important;
        justify-items: stretch !important;

        padding: 0 12px 0 10px !important;
    }

    .nlv2-page:not(.nlv2-home-page)
    .nlv2-actions
    .nlv2-profile-menu.menu-action-profile
    .nlv2-profile-button.add-cart-btn2
    .nlv2-profile-icon {
        position: static !important;

        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;

        display: flex !important;

        width: 42px !important;
        height: 100% !important;

        grid-column: 1 !important;
        grid-row: 1 !important;

        align-self: stretch !important;
        align-items: center !important;
        justify-content: flex-start !important;
        justify-self: start !important;

        margin: 0 !important;
        padding: 0 0 0 5px !important;

        line-height: 1 !important;

        transform: none !important;
    }

    .nlv2-page:not(.nlv2-home-page)
    .nlv2-actions
    .nlv2-profile-menu.menu-action-profile
    .nlv2-profile-button.add-cart-btn2
    .nlv2-profile-icon > i {
        position: static !important;

        display: block !important;

        margin: 0 !important;
        padding: 0 !important;

        transform: none !important;
    }

    .nlv2-page:not(.nlv2-home-page)
    .nlv2-actions
    .nlv2-profile-menu.menu-action-profile
    .nlv2-profile-button.add-cart-btn2
    .profile-label.visually-hidden {
        grid-column: 2 !important;
        grid-row: 1 !important;

        align-self: stretch !important;
        align-items: center !important;
        justify-content: center !important;

        padding: 0 8px !important;

        text-align: center !important;
    }

    .nlv2-page:not(.nlv2-home-page)
    .nlv2-actions
    .nlv2-profile-menu.menu-action-profile
    .nlv2-profile-button.add-cart-btn2::after {
        position: static !important;

        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;

        grid-column: 3 !important;
        grid-row: 1 !important;

        align-self: center !important;
        justify-self: end !important;

        margin: 0 !important;

        transform: none !important;
    }
}

/* HomeMenu desktop uses the same visual contract. */
@media (min-width: 1280px) {

    .nlv2-home-page
    .nlv2-home-actions
    .nlv2-profile-menu.menu-action-profile
    .nlv2-profile-button.add-cart-btn2
    .nlv2-profile-icon {
        position: static !important;

        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;

        display: flex !important;

        width: 42px !important;
        height: 100% !important;

        align-items: center !important;
        justify-content: flex-start !important;
        justify-self: start !important;

        padding-left: 5px !important;

        transform: none !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.4.1 PROFILE ICON LEFT FIX
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.4.2 PROFILE DROPDOWN Z-INDEX FIX
   ============================================================ */

/*
   Root cause:
   The dropdown itself already had a high z-index, but it lived inside the
   actions stacking context. The search row is rendered later in the DOM,
   so it could still paint above the entire actions/profile subtree.

   Fix the stacking context at the parent level, not only on dropdown-menu.
*/

.nlv2-page .nlv2-actions,
.nlv2-home-page .nlv2-home-actions {
    position: relative !important;
    overflow: visible !important;
}

/* Promote the complete action row only while the profile menu is open. */
.nlv2-page .nlv2-actions.nlv2-profile-dropdown-open,
.nlv2-home-page .nlv2-home-actions.nlv2-profile-dropdown-open,
.nlv2-page .nlv2-actions:has(.nlv2-profile-button.show),
.nlv2-home-page .nlv2-home-actions:has(.nlv2-profile-button.show) {
    z-index: 3000 !important;
}

/* Profile wrapper creates the foreground stack for the menu. */
.nlv2-page .nlv2-profile-menu.menu-action-profile,
.nlv2-home-page .nlv2-profile-menu.menu-action-profile {
    position: relative !important;
    overflow: visible !important;
}

.nlv2-page .nlv2-profile-menu.menu-action-profile:has(.nlv2-profile-button.show),
.nlv2-home-page .nlv2-profile-menu.menu-action-profile:has(.nlv2-profile-button.show) {
    z-index: 3100 !important;
}

/* Button remains below its own dropdown. */
.nlv2-page .nlv2-profile-button.add-cart-btn2.show,
.nlv2-home-page .nlv2-profile-button.add-cart-btn2.show {
    position: relative !important;
    z-index: 3110 !important;
}

/* The dropdown must be the top layer inside the promoted action row. */
.nlv2-page .nlv2-profile-dropdown.dropdown-menu,
.nlv2-home-page .nlv2-profile-dropdown.dropdown-menu {
    z-index: 3200 !important;
}

/*
   Search/filter belongs to the normal document layer.
   Explicitly keep the wrapper and its controls below opened profile menus.
*/
.nlv2-page .nlv2-search-wrap,
.nlv2-home-page .nlv2-search-wrap {
    position: relative !important;
    z-index: 10 !important;
}

.nlv2-page .nlv2-search-input,
.nlv2-page .nlv2-search-icon,
.nlv2-page .nlv2-search-filter,
.nlv2-home-page .nlv2-search-input,
.nlv2-home-page .nlv2-search-icon,
.nlv2-home-page .nlv2-search-filter {
    z-index: auto !important;
}

/* Product/status content must not establish a layer above the dropdown. */
.nlv2-page .nlv2-status-row,
.nlv2-page .nlv2-live-stats,
.nlv2-page .nlv2-result-count,
.nlv2-page .nlv2-menu-items,
.nlv2-page .nlv2-product-grid {
    position: relative !important;
    z-index: 1 !important;
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.4.2 PROFILE DROPDOWN Z-INDEX FIX
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.4.3 MOBILE PROFILE NO LAYOUT SHIFT
   ============================================================ */

/*
   Root cause:
   V20 intentionally adds margin-bottom to .nlv2-actions while the profile
   dropdown is open. On phone this reserves the full dropdown height and
   pushes Total/Search/Products far down the page.

   Mobile behavior should instead be an overlay:
   - actions keep their original position
   - dropdown is absolutely anchored below the profile button
   - page content does not move
   - dropdown itself can scroll if it is taller than the viewport
*/

@media (max-width: 767.98px) {

    /* Never reserve layout space when the profile dropdown opens. */
    .nlv2-page .nlv2-actions.nlv2-profile-dropdown-open,
    .nlv2-home-page .nlv2-home-actions.nlv2-profile-dropdown-open,
    .nlv2-page .nlv2-actions:has(.nlv2-profile-button.show),
    .nlv2-home-page .nlv2-home-actions:has(.nlv2-profile-button.show) {
        margin-bottom: 0 !important;
    }

    .nlv2-page .nlv2-actions,
    .nlv2-home-page .nlv2-home-actions {
        position: relative !important;

        overflow: visible !important;

        transition:
            box-shadow .16s ease,
            transform .16s ease !important;
    }

    /* The profile wrapper is the positioning anchor. */
    .nlv2-page .nlv2-profile-menu.menu-action-profile,
    .nlv2-home-page .nlv2-profile-menu.menu-action-profile {
        position: relative !important;

        overflow: visible !important;
    }

    /* Overlay dropdown: it must never participate in normal document flow. */
    .nlv2-page .nlv2-profile-dropdown.dropdown-menu,
    .nlv2-home-page .nlv2-profile-dropdown.dropdown-menu {
        position: absolute !important;

        top: calc(100% + 8px) !important;
        right: 0 !important;
        bottom: auto !important;
        left: auto !important;

        inset: auto 0 auto auto !important;

        width: max-content !important;
        min-width: 220px !important;
        max-width: min(270px, calc(100vw - 20px)) !important;

        max-height: calc(100dvh - 170px) !important;

        margin: 0 !important;
        padding-bottom: 8px !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        transform: none !important;

        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;

        z-index: 3200 !important;

        box-shadow:
            0 18px 38px rgba(8, 28, 48, .18),
            0 5px 12px rgba(8, 28, 48, .07) !important;
    }

    /* Keep the opened control tree above search/cards without shifting them. */
    .nlv2-page .nlv2-actions.nlv2-profile-dropdown-open,
    .nlv2-home-page .nlv2-home-actions.nlv2-profile-dropdown-open,
    .nlv2-page .nlv2-actions:has(.nlv2-profile-button.show),
    .nlv2-home-page .nlv2-home-actions:has(.nlv2-profile-button.show) {
        z-index: 3000 !important;
    }

    .nlv2-page .nlv2-profile-menu.menu-action-profile:has(.nlv2-profile-button.show),
    .nlv2-home-page .nlv2-profile-menu.menu-action-profile:has(.nlv2-profile-button.show) {
        z-index: 3100 !important;
    }

    /* Search/product sections stay exactly where they were before the click. */
    .nlv2-page .nlv2-search-wrap,
    .nlv2-home-page .nlv2-search-wrap {
        position: relative !important;
        z-index: 10 !important;
    }

    .nlv2-page .nlv2-result-count,
    .nlv2-page .nlv2-live-stats,
    .nlv2-page .nlv2-menu-items,
    .nlv2-page .nlv2-product-grid {
        position: relative !important;
        z-index: 1 !important;
    }
}

/* Very narrow phones: keep the menu inside the viewport. */
@media (max-width: 359.98px) {

    .nlv2-page .nlv2-profile-dropdown.dropdown-menu,
    .nlv2-home-page .nlv2-profile-dropdown.dropdown-menu {
        min-width: 210px !important;
        max-width: calc(100vw - 16px) !important;

        max-height: calc(100dvh - 155px) !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.4.3 MOBILE PROFILE NO LAYOUT SHIFT
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.5 TABLET PREMIUM POLISH
   Tablet range: 576px - 1199.98px
   ============================================================ */

@media (min-width: 576px) and (max-width: 1199.98px) {

    /* ---------------------------------------------------------
       1. TABLET CANVAS
       --------------------------------------------------------- */

    .nlv2-page {
        width: 100% !important;
        max-width: none !important;

        margin: 0 !important;
        padding:
            0
            clamp(10px, 2vw, 18px)
            30px !important;

        background: #ffffff !important;
    }

    .nlv2-shell {
        width: 100% !important;
        max-width: none !important;
    }


    /* ---------------------------------------------------------
       2. HERO - PROPORTIONAL FOR TABLET
       --------------------------------------------------------- */

    .nlv2-page .nlv2-hero-image {
        width: 100% !important;

        height: clamp(210px, 34vw, 285px) !important;
        min-height: 210px !important;
        max-height: 285px !important;

        border-radius: 0 0 20px 20px !important;

        background-position: center center !important;

        box-shadow: 0 10px 24px rgba(8, 29, 50, .10) !important;
    }

    .nlv2-page .nlv2-hero-logo {
        top: 16px !important;
        left: 18px !important;

        width: clamp(54px, 8vw, 72px) !important;
        max-width: 72px !important;
    }

    .nlv2-page .nlv2-hero-copy {
        top: 50% !important;
        left: 50% !important;

        width: min(78%, 620px) !important;

        transform: translate(-50%, -48%) !important;
    }

    .nlv2-page .nlv2-hero-title {
        font-size: clamp(42px, 7vw, 62px) !important;
        line-height: .96 !important;
        letter-spacing: .055em !important;
    }

    .nlv2-page .nlv2-hero-brand-divider {
        width: min(56%, 300px) !important;
        margin: 8px auto 6px !important;
    }

    .nlv2-page .nlv2-hero-localized-subtitle {
        font-size: clamp(19px, 3.2vw, 28px) !important;
        line-height: 1.04 !important;
    }


    /* ---------------------------------------------------------
       3. LANGUAGE BAR
       Keep premium white style but scale it for tablet.
       --------------------------------------------------------- */

    .nlv2-page .nlv2-language-panel {
        width: min(92%, 560px) !important;
        max-width: 560px !important;
        min-height: 58px !important;

        margin: -14px auto 0 !important;
        padding: 6px 8px !important;

        border-radius: 20px !important;

        box-shadow:
            0 12px 26px rgba(8, 30, 52, .12),
            0 3px 8px rgba(8, 30, 52, .04) !important;
    }

    .nlv2-page .nlv2-language-option {
        min-height: 46px !important;

        gap: 7px !important;
        padding: 0 10px !important;

        border-radius: 15px !important;

        font-size: 13px !important;
    }

    .nlv2-page .nlv2-language-option img {
        width: 25px !important;
        height: 17px !important;
    }


    /* ---------------------------------------------------------
       4. CATEGORY STRIP
       Single row, draggable, no visible scrollbar.
       --------------------------------------------------------- */

    .nlv2-page .nlv2-category-zone {
        width: 100% !important;
        max-width: none !important;

        margin: 20px 0 0 !important;

        overflow: hidden !important;
    }

    .nlv2-page .nlv2-category-slider-container.category-slider-container {
        width: 100% !important;

        overflow-x: auto !important;
        overflow-y: hidden !important;

        scrollbar-width: none !important;
        -ms-overflow-style: none !important;

        -webkit-overflow-scrolling: touch !important;
    }

    .nlv2-page .nlv2-category-slider-container.category-slider-container::-webkit-scrollbar {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
    }

    .nlv2-page .nlv2-category-slider.category-slider {
        width: max-content !important;
        min-width: 100% !important;

        padding: 0 !important;
    }

    .nlv2-page .nlv2-category-list#categoryTabs {
        display: flex !important;

        width: max-content !important;
        min-width: 100% !important;

        flex-wrap: nowrap !important;
        gap: 10px !important;

        padding: 0 !important;
    }

    .nlv2-page .nlv2-category-item.menu-category-item {
        flex: 0 0 clamp(150px, 22vw, 175px) !important;

        width: clamp(150px, 22vw, 175px) !important;
        min-width: clamp(150px, 22vw, 175px) !important;
        max-width: clamp(150px, 22vw, 175px) !important;
    }

    .nlv2-page .nlv2-category-card.menu-category-card,
    .nlv2-page .nlv2-category-card.add-cart-btn4 {
        height: 118px !important;
        min-height: 118px !important;

        border-radius: 18px !important;

        box-shadow: 0 8px 18px rgba(8, 28, 48, .11) !important;
    }

    .nlv2-page .nlv2-category-icon.icon-part4 {
        top: 10px !important;
        left: 10px !important;

        width: 40px !important;
        height: 40px !important;
    }

    .nlv2-page .nlv2-category-icon i {
        font-size: 17px !important;
    }

    .nlv2-page .nlv2-category-name.btn-label4 {
        right: 10px !important;
        bottom: 10px !important;
        left: 10px !important;

        font-size: 13px !important;
        line-height: 1.06 !important;
    }


    /* ---------------------------------------------------------
       5. ACTION ROW
       Make it readable; current tablet labels are too tiny.
       --------------------------------------------------------- */

    .nlv2-page:not(.nlv2-home-page) .nlv2-actions,
    .nlv2-home-page .nlv2-home-actions {
        display: grid !important;

        width: 100% !important;
        max-width: none !important;

        grid-template-columns:
            minmax(0, 1fr)
            minmax(0, 1fr)
            58px !important;

        gap: 8px !important;

        margin: 12px 0 0 !important;
        padding: 0 !important;

        align-items: stretch !important;
    }

    .nlv2-page .nlv2-action-cart.add-cart-btn1,
    .nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button,
    .nlv2-home-page .nlv2-home-call-action {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        height: 56px !important;
        min-height: 56px !important;

        border-radius: 16px !important;
    }

    .nlv2-page #cartButton.nlv2-action-cart {
        display: grid !important;

        grid-template-columns: 42px minmax(0, 1fr) 14px !important;

        padding: 0 10px 0 8px !important;
    }

    .nlv2-page #cartButton .nlv2-action-icon {
        width: 36px !important;
        height: 36px !important;

        font-size: 17px !important;
    }

    .nlv2-page #cartButton .nlv2-action-label {
        display: flex !important;

        width: 100% !important;
        height: 100% !important;

        align-items: center !important;
        justify-content: center !important;

        padding: 0 6px !important;

        font-size: 13px !important;
        font-weight: 800 !important;
        line-height: 1 !important;

        text-align: center !important;
    }

    .nlv2-page #cartButton .nlv2-cart-badge {
        top: 4px !important;
        left: 31px !important;

        width: 22px !important;
        height: 22px !important;
        min-width: 22px !important;

        font-size: 9px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton.waiter-call-button,
    .nlv2-home-page .nlv2-home-call-action {
        display: grid !important;

        grid-template-columns: 40px minmax(0, 1fr) 14px !important;

        padding: 0 9px 0 7px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-icon,
    .nlv2-home-page .nlv2-home-call-icon {
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;

        font-size: 15px !important;
    }

    .nlv2-page:not(.nlv2-home-page) #waiterCallButton .waiter-call-label,
    .nlv2-home-page .nlv2-home-call-label {
        padding: 0 5px !important;

        font-size: 12px !important;
        line-height: 1.05 !important;

        text-align: center !important;
    }

    .nlv2-page .nlv2-profile-menu.menu-action-profile,
    .nlv2-home-page .nlv2-profile-menu.menu-action-profile {
        width: 58px !important;
        min-width: 58px !important;
        max-width: 58px !important;
        height: 56px !important;
    }

    .nlv2-page .nlv2-profile-button.add-cart-btn2,
    .nlv2-home-page .nlv2-profile-button.add-cart-btn2 {
        width: 58px !important;
        min-width: 58px !important;
        max-width: 58px !important;

        height: 56px !important;
        min-height: 56px !important;

        border-radius: 16px !important;
    }


    /* ---------------------------------------------------------
       6. STATUS / COUNTERS / SEARCH
       --------------------------------------------------------- */

    .nlv2-page .nlv2-status-row {
        display: grid !important;

        width: 100% !important;

        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;

        gap: 8px !important;

        margin: 10px 0 0 !important;
    }

    .nlv2-page .nlv2-status-card {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;

        min-height: 44px !important;

        padding: 0 10px !important;

        border-radius: 13px !important;

        font-size: 11.5px !important;
    }

    .nlv2-page .nlv2-live-stats,
    .nlv2-home-page .nlv2-home-live-stats {
        width: 100% !important;

        justify-content: flex-start !important;

        margin: 10px 0 0 !important;
    }

    .nlv2-page .nlv2-result-count {
        margin: 10px 0 0 !important;

        font-size: 13px !important;
    }

    .nlv2-page .nlv2-search-wrap {
        width: 100% !important;

        margin: 10px 0 14px !important;
    }

    .nlv2-page .nlv2-search-input.form-control {
        min-height: 48px !important;

        border-radius: 14px !important;

        font-size: 13px !important;
    }


    /* ---------------------------------------------------------
       7. PRODUCT CARDS
       One elegant horizontal card per row on tablet portrait.
       --------------------------------------------------------- */

    .nlv2-page .nlv2-product-grid {
        display: grid !important;

        width: 100% !important;

        grid-template-columns: minmax(0, 1fr) !important;

        gap: 14px !important;

        padding: 0 !important;
    }

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        width: 100% !important;
        min-height: 215px !important;

        padding: 13px !important;

        border-radius: 19px !important;

        box-shadow:
            0 9px 21px rgba(9, 28, 48, .075),
            inset 0 1px 0 rgba(255,255,255,.98) !important;
    }

    .nlv2-page .nlv2-product-main {
        grid-template-columns: 116px minmax(0, 1fr) !important;
        gap: 13px !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 116px !important;
        min-width: 116px !important;
        height: 116px !important;
        min-height: 116px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 112px !important;
        height: 112px !important;
        min-width: 112px !important;
        min-height: 112px !important;
        max-width: 112px !important;
        max-height: 112px !important;

        filter:
            drop-shadow(0 8px 8px rgba(6, 27, 48, .20))
            drop-shadow(0 2px 2px rgba(6, 27, 48, .07)) !important;
    }

    .nlv2-page .nlv27-product-heading .nlv2-product-title.menu-item-title {
        padding-right: 30px !important;

        font-size: clamp(17px, 2.6vw, 21px) !important;
        line-height: 1.12 !important;
    }

    .nlv2-page .nlv27-description-row {
        margin-top: 7px !important;
    }

    .nlv2-page .nlv2-product-description.description {
        font-size: 12px !important;
        line-height: 1.35 !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-row {
        padding-top: 7px !important;
    }

    .nlv2-page .nlv2-product-purchase {
        margin-top: 10px !important;
        padding-top: 9px !important;
    }

    .nlv2-page .nlv2-price-primary,
    .nlv2-page .nlv2-price-block strong {
        font-size: 21px !important;
    }

    .nlv2-page .nlv2-quantity-stepper {
        width: 96px !important;
        height: 39px !important;
    }

    .nlv2-page .nlv2-add-cart-button.add-cart-btn {
        width: 44px !important;
        min-width: 44px !important;
        height: 39px !important;
    }
}


/* ------------------------------------------------------------
   TABLET LANDSCAPE / LARGE TABLET
   Two cards only when there is genuinely enough width.
   ------------------------------------------------------------ */

@media (min-width: 900px) and (max-width: 1199.98px) {

    .nlv2-page .nlv2-product-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        min-height: 235px !important;
    }

    .nlv2-page .nlv2-product-main {
        grid-template-columns: 104px minmax(0, 1fr) !important;
        gap: 11px !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 104px !important;
        min-width: 104px !important;
        height: 104px !important;
        min-height: 104px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 100px !important;
        height: 100px !important;
        min-width: 100px !important;
        min-height: 100px !important;
        max-width: 100px !important;
        max-height: 100px !important;
    }

    .nlv2-page .nlv27-product-heading .nlv2-product-title.menu-item-title {
        font-size: 17px !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.5 TABLET PREMIUM POLISH
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.5.1 PRODUCT CARD NO EQUAL STRETCH
   ============================================================ */

/*
   Root cause:
   CSS Grid makes every cell in a row as tall as the tallest item.
   Older V62 desktop rules also force:
     - grid align-items: stretch
     - .nlv2-menu-item height: 100%
     - product card height: 100%

   So when the right product has more text/allergens, the shorter left
   product is artificially stretched and its lower layer becomes visible.

   Correct behavior:
   - the grid row may remain as tall as the tallest product
   - each product card keeps only its own natural content height
   - the unused space stays transparent / page-white
   - no fake second-colored layer is exposed
*/

.nlv2-page .nlv2-product-grid {
    align-items: start !important;
}

.nlv2-page .nlv2-menu-item.menu-item {
    align-self: start !important;

    height: auto !important;
    min-height: 0 !important;

    background: transparent !important;
}

.nlv2-page .nlv2-product-card.card-grid,
.nlv2-page .nlv2-product-card.blockb {
    align-self: start !important;

    height: auto !important;
    min-height: 0 !important;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #ffffff 100%
        ) !important;
}

/*
   Keep the internal areas on the same white surface.
   This also removes the visual "two layer" effect if inherited rules
   give one internal section a slightly different background.
*/
.nlv2-page .nlv2-product-main,
.nlv2-page .nlv2-product-info.card-info,
.nlv2-page .nlv27-product-info.card-info,
.nlv2-page .nlv2-product-purchase {
    background: transparent !important;
}

/*
   Admin buttons may make one card taller than another.
   They stay inside their own natural-height card and no longer stretch
   the neighbour.
*/
.nlv2-page .nlv2-product-admin {
    background: transparent !important;
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.5.1 PRODUCT CARD NO EQUAL STRETCH
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.5.2 COMPACT CARD SPACING
   ============================================================ */

/*
   Goal:
   Remove the large empty area inside product cards after the V62.5.1
   no-stretch fix. Some current premium rules still keep the product
   content block stretched and/or keep the purchase block visually pinned
   to the bottom, which leaves too much blank space inside the card.

   Result:
   - tighter vertical rhythm
   - purchase area sits directly under the content
   - no oversized empty white zone before price/quantity/cart
   - works for tablet and desktop while keeping the premium card style
*/

.nlv2-page .nlv2-product-card.card-grid,
.nlv2-page .nlv2-product-card.blockb {
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

.nlv2-page .nlv2-product-main,
.nlv2-page .nlv2-product-info.card-info,
.nlv2-page .nlv27-product-info.card-info {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    height: auto !important;
}

.nlv2-page .nlv2-product-info.card-info,
.nlv2-page .nlv27-product-info.card-info {
    row-gap: 8px !important;
}

.nlv2-page .nlv2-product-desc,
.nlv2-page .nlv2-product-description {
    margin-bottom: 0 !important;
}

.nlv2-page .nlv2-product-allergens,
.nlv2-page .nlv2-product-category {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.nlv2-page .nlv2-product-purchase {
    flex: 0 0 auto !important;
    min-height: 0 !important;
    margin-top: 12px !important;
    padding-top: 12px !important;
    align-self: stretch !important;
}

.nlv2-page .nlv2-product-admin {
    margin-top: 12px !important;
    padding-top: 12px !important;
}

/* keep the row layout clean on larger screens */
@media (min-width: 768px) {
    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        gap: 0 !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.5.2 COMPACT CARD SPACING
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.5.3 EQUAL HEIGHT + UNIFIED CARDS
   ============================================================ */

/*
   Goal:
   - cards in the product grid have equal height
   - stretching is intentional again
   - wrapper/card/internal surfaces use the SAME white color
   - no visible "second layer" when one product has more content
*/

.nlv2-page .nlv2-product-grid {
    align-items: stretch !important;
    grid-auto-rows: 1fr !important;
}

.nlv2-page .nlv2-menu-item.menu-item {
    display: flex !important;

    align-self: stretch !important;

    height: 100% !important;
    min-height: 0 !important;

    background: #ffffff !important;

    border-radius: 22px !important;
}

.nlv2-page .nlv2-product-card.card-grid,
.nlv2-page .nlv2-product-card.blockb {
    display: flex !important;

    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;

    flex-direction: column !important;
    align-self: stretch !important;

    background: #ffffff !important;

    border-radius: 22px !important;
}

.nlv2-page .nlv2-product-main,
.nlv2-page .nlv2-product-info.card-info,
.nlv2-page .nlv27-product-info.card-info,
.nlv2-page .nlv2-product-purchase,
.nlv2-page .nlv2-product-admin {
    background: #ffffff !important;
}

/*
   Keep purchase/footer aligned at the bottom of every equal-height card.
   The visible surface is now the same white everywhere, so the stretching
   is visually seamless instead of showing a second shade.
*/
.nlv2-page .nlv2-product-main {
    flex: 1 1 auto !important;
}

.nlv2-page .nlv2-product-purchase {
    flex: 0 0 auto !important;

    margin-top: auto !important;
    padding-top: 12px !important;

    border-top: 1px solid rgba(10, 39, 68, .08) !important;
}

.nlv2-page .nlv2-product-admin {
    flex: 0 0 auto !important;
}

/* Tablet: keep a consistent premium card height across the grid. */
@media (min-width: 576px) and (max-width: 1199.98px) {
    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        min-height: 230px !important;
    }
}

/* Desktop: slightly taller to accommodate longer translated content. */
@media (min-width: 1200px) {
    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        min-height: 250px !important;
    }
}

/* Phone: preserve the existing phone sizing; only unify the surface. */
@media (max-width: 575.98px) {
    .nlv2-page .nlv2-product-grid {
        grid-auto-rows: auto !important;
    }

    .nlv2-page .nlv2-menu-item.menu-item,
    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        height: auto !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.5.3 EQUAL HEIGHT + UNIFIED CARDS
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.5.4 SURFACE PRO PORTRAIT BREAKPOINT FIX
   ============================================================ */

/*
   Problem:
   V62.5 switches tablet products to 2 columns at 900px.
   Surface Pro 7 portrait is 912 CSS px, so it incorrectly enters the
   "large tablet / landscape" layout and the cards become too narrow.

   New rule:
   576px - 1099.98px  -> 1 premium horizontal card per row
   1100px - 1199.98px -> 2 equal-height cards per row
   1200px+             -> existing desktop rules
*/


/* ------------------------------------------------------------
   PORTRAIT / MEDIUM TABLET: 1 COLUMN
   ------------------------------------------------------------ */

@media (min-width: 576px) and (max-width: 1099.98px) {

    .nlv2-page .nlv2-product-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-auto-rows: auto !important;

        gap: 14px !important;

        align-items: start !important;
    }

    .nlv2-page .nlv2-menu-item.menu-item {
        height: auto !important;
        min-height: 0 !important;

        align-self: start !important;

        background: transparent !important;
    }

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        height: auto !important;
        min-height: 0 !important;

        align-self: start !important;

        padding: 14px !important;

        background: #ffffff !important;
    }

    .nlv2-page .nlv2-product-main {
        flex: 0 0 auto !important;

        grid-template-columns:
            132px
            minmax(0, 1fr) !important;

        gap: 16px !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 132px !important;
        min-width: 132px !important;
        height: 132px !important;
        min-height: 132px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 126px !important;
        height: 126px !important;
        min-width: 126px !important;
        min-height: 126px !important;
        max-width: 126px !important;
        max-height: 126px !important;
    }

    .nlv2-page
    .nlv27-product-heading
    .nlv2-product-title.menu-item-title {
        font-size: clamp(18px, 2.45vw, 22px) !important;
        line-height: 1.12 !important;
    }

    .nlv2-page .nlv2-product-description.description {
        font-size: 13px !important;
        line-height: 1.38 !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-label {
        font-size: 12px !important;
    }

    /*
       In a one-column layout there is no neighbouring card that needs
       equal-height matching, so keep the footer close to the content.
    */
    .nlv2-page .nlv2-product-purchase {
        flex: 0 0 auto !important;

        margin-top: 12px !important;
        padding-top: 11px !important;
    }

    .nlv2-page .nlv2-product-admin {
        flex: 0 0 auto !important;
    }
}


/* ------------------------------------------------------------
   LARGE TABLET / NARROW LANDSCAPE: 2 COLUMNS
   Equal heights make sense again only here.
   ------------------------------------------------------------ */

@media (min-width: 1100px) and (max-width: 1199.98px) {

    .nlv2-page .nlv2-product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        grid-auto-rows: 1fr !important;

        gap: 16px !important;

        align-items: stretch !important;
    }

    .nlv2-page .nlv2-menu-item.menu-item {
        display: flex !important;

        height: 100% !important;

        align-self: stretch !important;

        background: #ffffff !important;
    }

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        height: 100% !important;
        min-height: 235px !important;

        align-self: stretch !important;

        background: #ffffff !important;
    }

    .nlv2-page .nlv2-product-main {
        flex: 1 1 auto !important;

        grid-template-columns:
            110px
            minmax(0, 1fr) !important;

        gap: 12px !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 110px !important;
        min-width: 110px !important;
        height: 110px !important;
        min-height: 110px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 106px !important;
        height: 106px !important;
        min-width: 106px !important;
        min-height: 106px !important;
        max-width: 106px !important;
        max-height: 106px !important;
    }

    .nlv2-page .nlv2-product-purchase {
        margin-top: auto !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.5.4 SURFACE PRO PORTRAIT BREAKPOINT FIX
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.5.5 SURFACE PRO BALANCED TWO COLUMN
   ============================================================ */

/*
   V62.5.4 was too aggressive at 912px: one huge card per row creates
   excessive empty space and looks like a stretched desktop form.

   New tablet behavior:
   576-839px   -> 1 column
   840-1199px  -> 2 compact premium cards
   1200px+     -> existing desktop rules

   Surface Pro 7 portrait (912px) therefore gets 2 balanced cards.
*/


/* ------------------------------------------------------------
   SMALL / MEDIUM TABLET
   ------------------------------------------------------------ */

@media (min-width: 576px) and (max-width: 839.98px) {

    .nlv2-page .nlv2-product-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        grid-auto-rows: auto !important;
        gap: 13px !important;
        align-items: start !important;
    }

    .nlv2-page .nlv2-menu-item.menu-item {
        height: auto !important;
        min-height: 0 !important;
        align-self: start !important;
        background: transparent !important;
    }

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        height: auto !important;
        min-height: 0 !important;
        align-self: start !important;
        background: #ffffff !important;
    }

    .nlv2-page .nlv2-product-main {
        flex: 0 0 auto !important;
        grid-template-columns: 116px minmax(0, 1fr) !important;
        gap: 13px !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 116px !important;
        min-width: 116px !important;
        height: 116px !important;
        min-height: 116px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 112px !important;
        height: 112px !important;
        min-width: 112px !important;
        min-height: 112px !important;
        max-width: 112px !important;
        max-height: 112px !important;
    }

    .nlv2-page .nlv2-product-purchase {
        margin-top: 11px !important;
    }
}


/* ------------------------------------------------------------
   SURFACE PRO / LARGE TABLET: 2 COMPACT PREMIUM CARDS
   ------------------------------------------------------------ */

@media (min-width: 840px) and (max-width: 1199.98px) {

    .nlv2-page .nlv2-product-grid {
        display: grid !important;

        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        grid-auto-rows: 1fr !important;

        gap: 13px !important;

        align-items: stretch !important;
    }

    .nlv2-page .nlv2-menu-item.menu-item {
        display: flex !important;

        min-width: 0 !important;
        height: 100% !important;

        align-self: stretch !important;

        background: #ffffff !important;

        border-radius: 18px !important;
    }

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        display: flex !important;

        width: 100% !important;
        height: 100% !important;
        min-height: 205px !important;

        flex-direction: column !important;
        align-self: stretch !important;

        padding: 12px !important;

        border-radius: 18px !important;

        background: #ffffff !important;

        box-shadow:
            0 8px 18px rgba(9, 28, 48, .07),
            inset 0 1px 0 rgba(255,255,255,.98) !important;
    }

    .nlv2-page .nlv2-product-main {
        display: grid !important;

        grid-template-columns:
            92px
            minmax(0, 1fr) !important;

        gap: 11px !important;

        flex: 1 1 auto !important;

        align-items: start !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 92px !important;
        min-width: 92px !important;
        height: 92px !important;
        min-height: 92px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 88px !important;
        height: 88px !important;
        min-width: 88px !important;
        min-height: 88px !important;
        max-width: 88px !important;
        max-height: 88px !important;

        filter:
            drop-shadow(0 7px 7px rgba(6, 27, 48, .18))
            drop-shadow(0 2px 2px rgba(6, 27, 48, .06)) !important;
    }

    .nlv2-page .nlv27-product-info.card-info,
    .nlv2-page .nlv2-product-info.card-info.nlv27-product-info {
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;

        padding-top: 0 !important;
    }

    .nlv2-page
    .nlv27-product-heading
    .nlv2-product-title.menu-item-title {
        min-height: 0 !important;

        padding-right: 26px !important;

        font-size: 15.5px !important;
        line-height: 1.08 !important;

        -webkit-line-clamp: 2 !important;
    }

    .nlv2-page .nlv27-weight-row {
        min-height: 19px !important;
        margin-top: 3px !important;
    }

    .nlv2-page .nlv27-weight-row .nlv2-product-weight {
        min-height: 19px !important;

        padding: 2px 7px !important;

        font-size: 9.5px !important;
    }

    .nlv2-page .nlv27-description-row {
        margin-top: 5px !important;
        grid-template-columns: minmax(0, 1fr) 24px !important;
        gap: 5px !important;
    }

    .nlv2-page
    .nlv27-description-row
    .nlv2-description-container[data-collapsed="true"]
    .nlv2-product-description.description {
        font-size: 10.5px !important;
        line-height: 1.28 !important;

        -webkit-line-clamp: 2 !important;
    }

    .nlv2-page
    .nlv27-description-row
    .nlv2-description-container[data-collapsed="false"]
    .nlv2-product-description.description {
        font-size: 10.5px !important;
        line-height: 1.28 !important;
    }

    .nlv2-page
    .nlv27-description-row
    .nlv2-description-toggle.desc-toggle-link {
        width: 24px !important;
        height: 24px !important;
        min-width: 24px !important;

        font-size: 11px !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-row {
        gap: 4px !important;

        margin-top: auto !important;
        padding-top: 5px !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-label {
        font-size: 9.5px !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap,
    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap > .nlv2-allergen-icon,
    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap > .allergen-icon {
        width: 19px !important;
        height: 19px !important;
        min-width: 19px !important;
        max-width: 19px !important;
    }

    .nlv2-page .nlv2-product-purchase {
        display: grid !important;

        grid-template-columns:
            minmax(0, 1fr)
            auto !important;

        gap: 8px !important;

        margin-top: auto !important;
        padding-top: 8px !important;

        background: #ffffff !important;
    }

    .nlv2-page .nlv2-price-primary,
    .nlv2-page .nlv2-price-block strong {
        font-size: 18px !important;
    }

    .nlv2-page .nlv2-purchase-controls {
        gap: 5px !important;
    }

    .nlv2-page .nlv2-quantity-stepper {
        width: 86px !important;
        height: 35px !important;

        border-radius: 11px !important;
    }

    .nlv2-page .nlv2-qty-button {
        font-size: 13px !important;
    }

    .nlv2-page .nlv2-qty-value {
        font-size: 12px !important;
    }

    .nlv2-page .nlv2-add-cart-button.add-cart-btn {
        width: 40px !important;
        min-width: 40px !important;
        height: 35px !important;

        border-radius: 11px !important;
    }

    .nlv2-page .nlv2-add-cart-button .icon-part,
    .nlv2-page .nlv2-add-cart-button .icon-part i {
        font-size: 14px !important;
    }

    /*
       Equal height is intentional here. All visible layers remain #fff,
       so one taller card cannot expose a different-coloured lower layer.
    */
    .nlv2-page .nlv2-product-main,
    .nlv2-page .nlv2-product-info.card-info,
    .nlv2-page .nlv27-product-info.card-info,
    .nlv2-page .nlv2-product-purchase,
    .nlv2-page .nlv2-product-admin {
        background: #ffffff !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.5.5 SURFACE PRO BALANCED TWO COLUMN
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.5.6 COMPACT SURFACE PRO CARD HEIGHT
   ============================================================ */

/*
   Target: 840px - 1199.98px
   Keeps the current 2-column Surface Pro/tablet layout, but reduces
   the product tile height and vertical spacing.
*/

@media (min-width: 840px) and (max-width: 1199.98px) {

    .nlv2-page .nlv2-product-grid {
        gap: 11px !important;
    }

    .nlv2-page .nlv2-product-card.card-grid,
    .nlv2-page .nlv2-product-card.blockb {
        min-height: 176px !important;
        padding: 10px !important;
        border-radius: 17px !important;
    }

    .nlv2-page .nlv2-product-main {
        grid-template-columns: 82px minmax(0, 1fr) !important;
        gap: 9px !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        width: 82px !important;
        min-width: 82px !important;
        height: 82px !important;
        min-height: 82px !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        width: 78px !important;
        height: 78px !important;
        min-width: 78px !important;
        min-height: 78px !important;
        max-width: 78px !important;
        max-height: 78px !important;
    }

    .nlv2-page .nlv27-product-heading .nlv2-product-title.menu-item-title {
        font-size: 14px !important;
        line-height: 1.06 !important;
    }

    .nlv2-page .nlv27-weight-row {
        min-height: 17px !important;
        margin-top: 2px !important;
    }

    .nlv2-page .nlv27-weight-row .nlv2-product-weight {
        min-height: 17px !important;
        padding: 2px 6px !important;
        font-size: 9px !important;
    }

    .nlv2-page .nlv27-description-row {
        margin-top: 3px !important;
        gap: 4px !important;
    }

    .nlv2-page
    .nlv27-description-row
    .nlv2-description-container[data-collapsed="true"]
    .nlv2-product-description.description {
        font-size: 9.8px !important;
        line-height: 1.22 !important;
        -webkit-line-clamp: 2 !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-row {
        gap: 3px !important;
        padding-top: 3px !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-label {
        font-size: 9px !important;
    }

    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap,
    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap > .nlv2-allergen-icon,
    .nlv2-page .nlv27-product-info .nlv2-allergen-icon-wrap > .allergen-icon {
        width: 17px !important;
        height: 17px !important;
        min-width: 17px !important;
        max-width: 17px !important;
    }

    .nlv2-page .nlv2-product-purchase {
        margin-top: auto !important;
        padding-top: 6px !important;
        gap: 6px !important;
    }

    .nlv2-page .nlv2-price-primary,
    .nlv2-page .nlv2-price-block strong {
        font-size: 16px !important;
    }

    .nlv2-page .nlv2-quantity-stepper {
        width: 76px !important;
        height: 31px !important;
        border-radius: 9px !important;
    }

    .nlv2-page .nlv2-add-cart-button.add-cart-btn {
        width: 36px !important;
        min-width: 36px !important;
        height: 31px !important;
        border-radius: 9px !important;
    }
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.5.6 COMPACT SURFACE PRO CARD HEIGHT
   ============================================================ */

/* ============================================================
   NEVERLAND PREMIUM MENU V62.4.4 PROFILE DROPDOWN NO LAYOUT SHIFT
   ALL SCREEN SIZES
   ============================================================ */

/*
   Root cause:
   An older profile-dropdown rule reserves vertical space by adding
   margin-bottom to the actions row while the dropdown is open.

   V62.4.3 removed that only below 768px.
   On tablet/desktop the old spacing rule can still win, producing the
   very large blank area shown in the screenshot.

   V62.4.4 makes the profile dropdown a true overlay on ALL screen sizes.
*/


/* ------------------------------------------------------------
   1. NEVER RESERVE PAGE SPACE FOR THE OPEN PROFILE DROPDOWN
   ------------------------------------------------------------ */

.nlv2-page .nlv2-actions.nlv2-profile-dropdown-open,
.nlv2-home-page .nlv2-home-actions.nlv2-profile-dropdown-open,
.nlv2-page .nlv2-actions:has(.nlv2-profile-button.show),
.nlv2-home-page .nlv2-home-actions:has(.nlv2-profile-button.show) {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}


/* ------------------------------------------------------------
   2. KEEP THE ACTION ROW AS THE STACKING ANCHOR
   ------------------------------------------------------------ */

.nlv2-page .nlv2-actions,
.nlv2-home-page .nlv2-home-actions {
    position: relative !important;
    overflow: visible !important;
}

.nlv2-page .nlv2-actions.nlv2-profile-dropdown-open,
.nlv2-home-page .nlv2-home-actions.nlv2-profile-dropdown-open,
.nlv2-page .nlv2-actions:has(.nlv2-profile-button.show),
.nlv2-home-page .nlv2-home-actions:has(.nlv2-profile-button.show) {
    z-index: 3000 !important;
}


/* ------------------------------------------------------------
   3. PROFILE WRAPPER + DROPDOWN ARE TRUE OVERLAYS
   ------------------------------------------------------------ */

.nlv2-page .nlv2-profile-menu.menu-action-profile,
.nlv2-home-page .nlv2-profile-menu.menu-action-profile {
    position: relative !important;
    overflow: visible !important;
}

.nlv2-page .nlv2-profile-menu.menu-action-profile:has(.nlv2-profile-button.show),
.nlv2-home-page .nlv2-profile-menu.menu-action-profile:has(.nlv2-profile-button.show) {
    z-index: 3100 !important;
}

.nlv2-page .nlv2-profile-dropdown.dropdown-menu,
.nlv2-home-page .nlv2-profile-dropdown.dropdown-menu {
    position: absolute !important;

    top: calc(100% + 8px) !important;
    right: 0 !important;
    bottom: auto !important;
    left: auto !important;

    inset: auto 0 auto auto !important;

    margin: 0 !important;

    transform: none !important;

    z-index: 3200 !important;
}


/* ------------------------------------------------------------
   4. KEEP LONG ADMIN MENUS INSIDE THE VIEWPORT
   ------------------------------------------------------------ */

@media (min-width: 768px) {
    .nlv2-page .nlv2-profile-dropdown.dropdown-menu,
    .nlv2-home-page .nlv2-profile-dropdown.dropdown-menu {
        max-height: calc(100vh - 120px) !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        overscroll-behavior: contain !important;
    }
}

@media (max-width: 767.98px) {
    .nlv2-page .nlv2-profile-dropdown.dropdown-menu,
    .nlv2-home-page .nlv2-profile-dropdown.dropdown-menu {
        max-height: calc(100dvh - 170px) !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        overscroll-behavior: contain !important;
        -webkit-overflow-scrolling: touch !important;
    }
}


/* ------------------------------------------------------------
   5. CONTENT BELOW MUST NOT MOVE OR PAINT ABOVE THE DROPDOWN
   ------------------------------------------------------------ */

.nlv2-page .nlv2-status-row,
.nlv2-page .nlv2-live-stats,
.nlv2-page .nlv2-result-count,
.nlv2-page .nlv2-search-wrap,
.nlv2-page .nlv2-menu-items,
.nlv2-page .nlv2-product-grid,
.nlv2-home-page .nlv2-status-row,
.nlv2-home-page .nlv2-live-stats,
.nlv2-home-page .nlv2-result-count,
.nlv2-home-page .nlv2-search-wrap,
.nlv2-home-page .nlv2-menu-items,
.nlv2-home-page .nlv2-product-grid {
    position: relative !important;
}

.nlv2-page .nlv2-search-wrap,
.nlv2-home-page .nlv2-search-wrap {
    z-index: 10 !important;
}

.nlv2-page .nlv2-status-row,
.nlv2-page .nlv2-live-stats,
.nlv2-page .nlv2-result-count,
.nlv2-page .nlv2-menu-items,
.nlv2-page .nlv2-product-grid,
.nlv2-home-page .nlv2-status-row,
.nlv2-home-page .nlv2-live-stats,
.nlv2-home-page .nlv2-result-count,
.nlv2-home-page .nlv2-menu-items,
.nlv2-home-page .nlv2-product-grid {
    z-index: 1 !important;
}

/* ============================================================
   END NEVERLAND PREMIUM MENU V62.4.4 PROFILE DROPDOWN NO LAYOUT SHIFT
   ALL SCREEN SIZES
   ============================================================ */

/* NEVERLAND PREMIUM MENU V65 HERO SUBTITLE WHITE START */
.nlv2-hero-localized-subtitle {
    color: #ffffff !important;
    text-shadow:
        0 2px 4px rgba(0, 0, 0, .65),
        0 4px 14px rgba(0, 0, 0, .35) !important;
}
/* NEVERLAND PREMIUM MENU V65 HERO SUBTITLE WHITE END */

/* NEVERLAND MENU SEARCH HIDDEN CARDS FIX V2.1 START */
/*
   SearchCounter correctly sets the native [hidden] attribute.
   Later premium responsive rules use display:flex !important on menu cards,
   so they can override the earlier [hidden] rule.

   This final, higher-specificity rule makes [hidden] authoritative.
*/
html body .nlv2-menu-items .nlv2-menu-item.menu-item[hidden],
html body .nlv2-page .nlv2-menu-items .nlv2-menu-item.menu-item[hidden],
html body .nlv2-home-page .nlv2-menu-items .nlv2-menu-item.menu-item[hidden] {
    display: none !important;
}
/* NEVERLAND MENU SEARCH HIDDEN CARDS FIX V2.1 END */

/* NEVERLAND HOME CALL BUTTON FIT V1 START */

/*
   HomeMenu only.
   The current premium CSS gives the gold call button the same width as Cart,
   while its localized text is longer. Older rules also force ellipsis on
   each line. Give the call action a little more room and remove ellipsis.
*/

.nlv2-home-page .nlv2-home-actions {
    grid-template-columns:
        minmax(0, .94fr)
        minmax(0, 1.16fr)
        clamp(54px, 11.5vw, 76px) !important;
}

.nlv2-home-page .nlv2-home-call-action {
    grid-template-columns:
        clamp(34px, 7.2vw, 56px)
        minmax(0, 1fr)
        clamp(11px, 2vw, 17px) !important;

    padding:
        0
        clamp(6px, 1.2vw, 10px)
        0
        clamp(5px, 1vw, 9px) !important;
}

.nlv2-home-page .nlv2-home-call-label {
    min-width: 0 !important;
    padding: 0 2px !important;

    overflow: visible !important;

    font-size: clamp(10.5px, 2.25vw, 18px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.08px !important;

    text-overflow: clip !important;
}

.nlv2-home-page .nlv2-home-call-label > span {
    display: block !important;

    width: 100% !important;
    max-width: none !important;

    overflow: visible !important;

    text-align: center !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}

@media (max-width: 575.98px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns:
            minmax(0, .92fr)
            minmax(0, 1.18fr)
            58px !important;

        gap: 7px !important;
    }

    .nlv2-home-page .nlv2-home-call-action {
        grid-template-columns:
            34px
            minmax(0, 1fr)
            11px !important;

        padding: 0 6px 0 5px !important;
    }

    .nlv2-home-page .nlv2-home-call-icon {
        width: 30px !important;
        min-width: 30px !important;
        height: 32px !important;

        font-size: 15px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        padding: 0 1px !important;
        font-size: 10.5px !important;
    }

    .nlv2-home-page .nlv2-home-call-chevron {
        font-size: 11px !important;
    }
}

@media (max-width: 390px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns:
            minmax(0, .90fr)
            minmax(0, 1.20fr)
            54px !important;

        gap: 6px !important;
    }

    .nlv2-home-page .nlv2-home-call-action {
        grid-template-columns:
            31px
            minmax(0, 1fr)
            10px !important;

        padding: 0 5px 0 4px !important;
    }

    .nlv2-home-page .nlv2-home-call-icon {
        width: 28px !important;
        min-width: 28px !important;

        font-size: 14px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        font-size: 10px !important;
        letter-spacing: -0.12px !important;
    }

    .nlv2-home-page .nlv2-home-call-chevron {
        font-size: 10px !important;
    }
}

@media (max-width: 350px) {
    .nlv2-home-page .nlv2-home-actions {
        grid-template-columns:
            minmax(0, .88fr)
            minmax(0, 1.22fr)
            50px !important;
    }

    .nlv2-home-page .nlv2-home-call-label {
        font-size: 9.5px !important;
    }
}

/* NEVERLAND HOME CALL BUTTON FIT V1 END */

/* NEVERLAND PRODUCT IMAGE SHADOW V3 EXACT START */

/* Exact product-image shadow requested. */
.nlv2-page .nlv2-product-image.menu-image {
    filter: drop-shadow(0 1px 4px rgba(15, 0, 0, 0.7)) !important;
}

/* Keep exactly the same shadow on all responsive breakpoints. */
@media (min-width: 1200px) {
    .nlv2-page .nlv2-product-image.menu-image {
        filter: drop-shadow(0 1px 4px rgba(15, 0, 0, 0.7)) !important;
    }
}

@media (min-width: 576px) and (max-width: 1199.98px) {
    .nlv2-page .nlv2-product-image.menu-image {
        filter: drop-shadow(0 1px 4px rgba(15, 0, 0, 0.7)) !important;
    }
}

@media (max-width: 575.98px) {
    .nlv2-page .nlv2-product-image.menu-image {
        filter: drop-shadow(0 1px 4px rgba(15, 0, 0, 0.7)) !important;
    }
}

@media (max-width: 390px) {
    .nlv2-page .nlv2-product-image.menu-image {
        filter: drop-shadow(0 1px 4px rgba(15, 0, 0, 0.7)) !important;
    }
}

/* Do not change shadow on hover. */
@media (hover: hover) and (pointer: fine) {
    .nlv2-page .nlv2-product-card:hover
    .nlv2-product-image.menu-image {
        filter: drop-shadow(0 1px 4px rgba(15, 0, 0, 0.7)) !important;
    }
}

/* NEVERLAND PRODUCT IMAGE SHADOW V3 EXACT END */

/* ============================================================
   NEVERLAND MENU CARD LAYOUT FIX V2 START
   ============================================================ */

/*
   Phone cards use a fixed responsive media column instead of the old
   44% / 56% split. The image keeps a predictable square area while the
   information column receives every remaining pixel. The purchase row
   stays full width below the main content.
*/
@media (max-width: 575.98px) {
    .nlv2-page .nlv2-product-main {
        display: grid !important;

        width: 100% !important;
        min-width: 0 !important;

        grid-template-columns:
            clamp(92px, 27vw, 108px)
            minmax(0, 1fr) !important;

        column-gap: clamp(9px, 2.8vw, 12px) !important;
        row-gap: 0 !important;
        align-items: start !important;
    }

    .nlv2-page .nlv2-product-media.card-left {
        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;

        aspect-ratio: 1 / 1 !important;

        align-items: center !important;
        justify-content: center !important;
        align-self: start !important;

        margin: 0 !important;
        padding: 0 !important;

        overflow: visible !important;
    }

    .nlv2-page .nlv2-product-image.menu-image {
        display: block !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: 100% !important;

        flex: 0 1 auto !important;

        margin: 0 !important;
        padding: 0 !important;

        object-fit: contain !important;
        object-position: center !important;
    }

    .nlv2-page .nlv27-product-info.card-info,
    .nlv2-page .nlv2-product-info.card-info.nlv27-product-info {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: 0 !important;

        align-self: stretch !important;

        margin: 0 !important;
        padding-top: 0 !important;

        overflow: visible !important;
    }

    .nlv2-page
    .nlv27-product-heading
    .nlv2-product-title.menu-item-title {
        width: 100% !important;
        min-width: 0 !important;

        padding-right: 0 !important;

        overflow-wrap: break-word !important;
        word-break: normal !important;
        hyphens: auto !important;
    }

    .nlv2-page .nlv27-weight-row {
        width: 100% !important;
        max-width: 220px !important;
    }

    .nlv2-page .nlv27-description-row {
        width: 100% !important;
        min-width: 0 !important;

        grid-template-columns: minmax(0, 1fr) 24px !important;
        gap: 5px !important;
    }

    .nlv2-page .nlv27-description-row .nlv2-description-container {
        min-width: 0 !important;
    }

    .nlv2-page .nlv27-description-row .nlv2-product-description.description {
        overflow-wrap: break-word !important;
        word-break: normal !important;
    }

    .nlv2-page
    .nlv27-description-row
    .nlv2-description-toggle.desc-toggle-link {
        width: 24px !important;
        min-width: 24px !important;
        height: 24px !important;
    }
}

@media (max-width: 350px) {
    .nlv2-page .nlv2-product-main {
        grid-template-columns: 86px minmax(0, 1fr) !important;
        column-gap: 8px !important;
    }
}

/* ============================================================
   NEVERLAND MENU CARD LAYOUT FIX V2 END
   ============================================================ */
