/* ==========================================================================
   NEVERLAND MENU V5.7 — PRO PRODUCT CARDS
   Dedicated last-mile presentation layer for product cards.

   Goals:
   - product cards use exactly the same content width as the search field
   - remove legacy product-grid horizontal padding
   - premium, compact, touch-first mobile composition
   - preserve cart, quantity, add-ons, description toggle and admin behavior
   - preserve four product columns on desktop
   ========================================================================== */

.nlv5-page {
    --nlv57-card-bg: #ffffff;
    --nlv57-card-ink: #0a2945;
    --nlv57-card-text: #354254;
    --nlv57-card-muted: #707c8c;
    --nlv57-card-line: rgba(8, 38, 66, .085);
    --nlv57-card-gold: #d89d31;
    --nlv57-card-gold-soft: #f1cd7c;
    --nlv57-card-navy: #082d4d;
    --nlv57-card-shadow:
        0 13px 30px rgba(5, 25, 44, .085),
        0 3px 8px rgba(5, 25, 44, .028),
        inset 0 1px 0 rgba(255,255,255,.98);
}

/* --------------------------------------------------------------------------
   WIDTH CONTRACT
   Search and product content share the exact same outer width.
   Legacy product-grid padding is explicitly neutralized here.
   -------------------------------------------------------------------------- */

.nlv5-page .nlv2-menu-items,
.nlv5-page .nlv2-product-grid,
.nlv5-page .nlv2-menu-item.menu-item,
.nlv5-page .nlv2-product-card.card-grid,
.nlv5-page .nlv2-product-card.blockb {
    box-sizing: border-box !important;
}

.nlv5-page .nlv2-menu-items {
    max-width: none !important;
}

.nlv5-page .nlv2-product-grid {
    width: 100% !important;
    max-width: none !important;

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

.nlv5-page .nlv2-menu-item.menu-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

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

.nlv5-page .nlv2-product-card.card-grid,
.nlv5-page .nlv2-product-card.blockb {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;

    margin: 0 !important;
}

/* --------------------------------------------------------------------------
   CARD SURFACE
   -------------------------------------------------------------------------- */

.nlv5-page .nlv2-product-card.card-grid,
.nlv5-page .nlv2-product-card.blockb {
    position: relative !important;
    isolation: isolate !important;

    overflow: hidden !important;

    border: 1px solid var(--nlv57-card-line) !important;
    border-radius: 22px !important;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #ffffff 72%,
            #fffdf8 100%
        ) !important;

    box-shadow: var(--nlv57-card-shadow) !important;
}

.nlv5-page .nlv2-product-card.card-grid::before,
.nlv5-page .nlv2-product-card.blockb::before {
    content: "" !important;

    position: absolute !important;
    z-index: 0 !important;
    top: 0 !important;
    right: 0 !important;
    left: 0 !important;

    height: 3px !important;

    pointer-events: none !important;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(216,157,49,.50) 24%,
            rgba(241,205,124,.96) 50%,
            rgba(216,157,49,.50) 76%,
            transparent 100%
        ) !important;
}

/* --------------------------------------------------------------------------
   PRODUCT INFORMATION
   -------------------------------------------------------------------------- */

.nlv5-page .nlv2-product-main {
    min-width: 0 !important;
}

.nlv5-page .nlv2-product-info.card-info,
.nlv5-page .nlv27-product-info.card-info {
    min-width: 0 !important;
}

.nlv5-page .nlv2-product-media.card-left {
    overflow: hidden !important;

    border: 1px solid rgba(8, 38, 66, .055) !important;
    border-radius: 17px !important;

    background:
        radial-gradient(
            circle at 50% 42%,
            #ffffff 0%,
            #fbfaf7 58%,
            #f2f3f5 100%
        ) !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.98),
        0 4px 11px rgba(5,25,44,.035) !important;
}

.nlv5-page .nlv2-product-image.menu-image {
    object-fit: contain !important;
    object-position: center !important;
}

.nlv5-page .nlv2-product-heading,
.nlv5-page .nlv27-product-heading {
    min-width: 0 !important;
}

.nlv5-page .nlv2-product-title.menu-item-title {
    margin: 0 !important;

    color: var(--nlv57-card-ink) !important;

    font-weight: 750 !important;
    letter-spacing: -.018em !important;

    overflow-wrap: anywhere !important;
}

.nlv5-page .nlv2-weight-row,
.nlv5-page .nlv27-weight-row {
    width: 100% !important;
    min-width: 0 !important;
}

.nlv5-page .nlv2-product-weight {
    flex: 0 0 auto !important;

    border-color: rgba(216,157,49,.42) !important;

    color: #986316 !important;
    background: #fffaf0 !important;

    font-weight: 800 !important;
}

.nlv5-page .nlv2-weight-line {
    min-width: 10px !important;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(216,157,49,.46),
            transparent
        ) !important;
}

.nlv5-page .nlv2-description-row,
.nlv5-page .nlv27-description-row {
    min-width: 0 !important;
}

.nlv5-page .nlv2-product-description.description {
    margin: 0 !important;

    color: var(--nlv57-card-text) !important;

    font-weight: 500 !important;
}

.nlv5-page .nlv2-description-toggle.desc-toggle-link {
    flex: 0 0 auto !important;

    border-color: rgba(8,38,66,.065) !important;

    color: #123a5d !important;
    background: #f5f7f9 !important;
}

.nlv5-page .nlv2-allergen-row {
    min-width: 0 !important;

    color: #111f2f !important;
}

.nlv5-page .nlv2-allergen-label {
    color: #111f2f !important;
    font-weight: 850 !important;
}

.nlv5-page .nlv2-allergen-chevron {
    color: var(--nlv57-card-gold) !important;
}

.nlv5-page .nlv2-allergen-icons {
    min-width: 0 !important;
}

/* --------------------------------------------------------------------------
   PURCHASE BAR
   -------------------------------------------------------------------------- */

.nlv5-page .nlv2-product-purchase {
    position: relative !important;

    display: flex !important;

    width: 100% !important;
    min-width: 0 !important;

    align-items: center !important;
    justify-content: space-between !important;

    border-top: 1px solid rgba(8,38,66,.075) !important;
}

.nlv5-page .nlv2-price-block {
    flex: 0 0 auto !important;

    min-width: 0 !important;
}

.nlv5-page .nlv2-price-primary,
.nlv5-page .nlv2-price-block strong {
    color: #062946 !important;

    font-weight: 900 !important;
    letter-spacing: -.035em !important;

    white-space: nowrap !important;
}

.nlv5-page .nlv2-purchase-controls {
    display: flex !important;

    min-width: 0 !important;

    align-items: center !important;
    justify-content: flex-end !important;
}

.nlv5-page .nlv2-quantity-stepper {
    flex: 0 0 auto !important;

    border: 1px solid rgba(8,38,66,.09) !important;

    background:
        linear-gradient(
            180deg,
            #ffffff,
            #f7f9fb
        ) !important;

    box-shadow:
        inset 0 1px 0 #fff,
        0 3px 8px rgba(5,25,44,.035) !important;
}

.nlv5-page .nlv2-qty-button {
    color: #123a5d !important;

    font-weight: 800 !important;
}

.nlv5-page .nlv2-qty-value {
    color: #102b46 !important;

    font-weight: 900 !important;
}

.nlv5-page .nlv2-add-cart-button.add-cart-btn {
    flex: 0 0 auto !important;

    border: 1px solid rgba(160,105,18,.11) !important;

    color: #0b3152 !important;

    background:
        linear-gradient(
            145deg,
            #f7d373 0%,
            #ecb344 58%,
            #dea031 100%
        ) !important;

    box-shadow:
        0 7px 15px rgba(169,113,24,.18),
        inset 0 1px 0 rgba(255,255,255,.46) !important;
}

.nlv5-page .nlv2-add-cart-button.add-cart-btn .icon-part,
.nlv5-page .nlv2-add-cart-button.add-cart-btn .icon-part i {
    color: #0b3152 !important;
}

/* --------------------------------------------------------------------------
   MOBILE — PRIMARY PRO COMPOSITION
   -------------------------------------------------------------------------- */

@media (max-width: 767.98px) {

    /*
       Search and menu items have the same outer width.
       Product grid has zero inner horizontal padding, therefore the visible
       card edge aligns exactly with the search field edge.
    */
    .nlv5-page .nlv2-search-wrap,
    .nlv5-page .nlv2-menu-items {
        width: calc(100% - 20px) !important;

        margin-right: auto !important;
        margin-left: auto !important;
    }

    .nlv5-page .nlv2-product-grid {
        grid-template-columns: minmax(0, 1fr) !important;

        gap: 12px !important;

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

    .nlv5-page .nlv2-menu-item.menu-item {
        display: block !important;

        width: 100% !important;
        max-width: none !important;

        background: transparent !important;
    }

    .nlv5-page .nlv2-product-card.card-grid,
    .nlv5-page .nlv2-product-card.blockb {
        display: flex !important;

        width: 100% !important;
        min-height: 0 !important;
        height: auto !important;

        flex-direction: column !important;

        padding: 13px !important;

        border-radius: 22px !important;
    }

    .nlv5-page .nlv2-product-main {
        display: grid !important;

        grid-template-columns:
            clamp(106px, 29vw, 118px)
            minmax(0, 1fr) !important;

        gap: 13px !important;

        align-items: start !important;

        flex: 0 0 auto !important;
    }

    .nlv5-page .nlv2-product-media.card-left {
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;

        aspect-ratio: 1 / 1 !important;
    }

    .nlv5-page .nlv2-product-image.menu-image {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;

        height: 100% !important;
        min-height: 0 !important;
        max-height: 100% !important;
    }

    .nlv5-page .nlv2-product-info.card-info,
    .nlv5-page .nlv27-product-info.card-info {
        display: flex !important;

        min-width: 0 !important;
        height: 100% !important;

        flex-direction: column !important;
    }

    .nlv5-page .nlv2-product-title.menu-item-title {
        font-size: clamp(17px, 4.7vw, 20px) !important;
        line-height: 1.08 !important;
    }

    .nlv5-page .nlv2-weight-row,
    .nlv5-page .nlv27-weight-row {
        gap: 5px !important;

        margin-top: 7px !important;
        margin-bottom: 8px !important;
    }

    .nlv5-page .nlv2-product-weight {
        min-height: 27px !important;

        padding: 3px 10px !important;

        border-radius: 999px !important;

        font-size: 12px !important;
        line-height: 1 !important;
    }

    .nlv5-page .nlv2-description-row,
    .nlv5-page .nlv27-description-row {
        display: grid !important;

        grid-template-columns:
            minmax(0, 1fr)
            34px !important;

        gap: 7px !important;

        align-items: center !important;

        margin-top: 2px !important;
    }

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

    .nlv5-page .nlv2-description-toggle.desc-toggle-link {
        width: 34px !important;
        min-width: 34px !important;
        height: 34px !important;

        border-radius: 50% !important;
    }

    .nlv5-page .nlv2-allergen-row {
        display: flex !important;

        min-height: 28px !important;

        gap: 5px !important;

        align-items: center !important;

        margin-top: 9px !important;

        font-size: 11.5px !important;
        line-height: 1 !important;
    }

    .nlv5-page .nlv2-allergen-icons {
        display: flex !important;

        gap: 3px !important;

        align-items: center !important;
        flex-wrap: wrap !important;
    }

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

    .nlv5-page .nlv2-product-purchase {
        gap: 10px !important;

        margin-top: 12px !important;
        padding-top: 10px !important;
    }

    .nlv5-page .nlv2-price-primary,
    .nlv5-page .nlv2-price-block strong {
        font-size: 21px !important;
        line-height: 1 !important;
    }

    .nlv5-page .nlv2-purchase-controls {
        gap: 8px !important;
    }

    .nlv5-page .nlv2-quantity-stepper {
        display: grid !important;

        width: 112px !important;
        min-width: 112px !important;
        height: 40px !important;

        grid-template-columns:
            1fr
            36px
            1fr !important;

        border-radius: 12px !important;
    }

    .nlv5-page .nlv2-qty-button {
        min-width: 0 !important;
        height: 38px !important;

        padding: 0 !important;

        font-size: 17px !important;
    }

    .nlv5-page .nlv2-qty-value {
        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        font-size: 15px !important;
    }

    .nlv5-page .nlv2-add-cart-button.add-cart-btn {
        width: 44px !important;
        min-width: 44px !important;
        height: 40px !important;

        border-radius: 12px !important;
    }

    .nlv5-page .nlv2-add-cart-button.add-cart-btn .icon-part i {
        font-size: 17px !important;
    }

    /* Admin controls remain full-width and separated from customer purchase. */
    .nlv5-page .nlv2-product-admin {
        width: 100% !important;

        margin-top: 10px !important;
        padding-top: 10px !important;

        border-top: 1px dashed rgba(8,38,66,.09) !important;
    }
}

@media (max-width: 390px) {

    .nlv5-page .nlv2-search-wrap,
    .nlv5-page .nlv2-menu-items {
        width: calc(100% - 16px) !important;
    }

    .nlv5-page .nlv2-product-card.card-grid,
    .nlv5-page .nlv2-product-card.blockb {
        padding: 11px !important;

        border-radius: 20px !important;
    }

    .nlv5-page .nlv2-product-main {
        grid-template-columns:
            100px
            minmax(0, 1fr) !important;

        gap: 11px !important;
    }

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

    .nlv5-page .nlv2-product-description.description {
        font-size: 12.6px !important;
    }

    .nlv5-page .nlv2-quantity-stepper {
        width: 104px !important;
        min-width: 104px !important;

        grid-template-columns:
            1fr
            34px
            1fr !important;
    }

    .nlv5-page .nlv2-add-cart-button.add-cart-btn {
        width: 42px !important;
        min-width: 42px !important;
    }
}

/* --------------------------------------------------------------------------
   TABLET
   -------------------------------------------------------------------------- */

@media (min-width: 768px) and (max-width: 1279.98px) {

    .nlv5-page .nlv2-product-grid {
        padding: 0 !important;
    }

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

/* --------------------------------------------------------------------------
   DESKTOP
   Preserve four equal columns and strengthen card consistency.
   -------------------------------------------------------------------------- */

@media (min-width: 1280px) {

    .nlv5-page .nlv2-product-grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr)) !important;

        padding: 0 !important;
    }

    .nlv5-page .nlv2-menu-item.menu-item,
    .nlv5-page .nlv2-product-card.card-grid,
    .nlv5-page .nlv2-product-card.blockb {
        height: 100% !important;
    }
}

@media (min-width: 2200px) {
    .nlv5-page .nlv2-product-grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr)) !important;
    }
}

/* --------------------------------------------------------------------------
   FINE POINTER POLISH
   -------------------------------------------------------------------------- */

@media (hover: hover) and (pointer: fine) {
    .nlv5-page .nlv2-product-card.card-grid:hover,
    .nlv5-page .nlv2-product-card.blockb:hover {
        transform: translateY(-3px) !important;

        border-color: rgba(216,157,49,.24) !important;

        box-shadow:
            0 20px 42px rgba(5,25,44,.115),
            0 4px 11px rgba(5,25,44,.035),
            inset 0 1px 0 rgba(255,255,255,.98) !important;
    }

    .nlv5-page .nlv2-add-cart-button.add-cart-btn:hover {
        transform: translateY(-1px) !important;
    }
}

/* Search filtering must remain authoritative. */
html body .nlv5-page
.nlv2-menu-items
.nlv2-menu-item.menu-item[hidden] {
    display: none !important;
}


/* ==========================================================================
   NEVERLAND MENU V5.8 — POPUP VISUAL PARITY FOR PRODUCT CARDS
   Mobile product identity area follows the visual hierarchy of AddOns popup:
   larger image, Georgia title, compact weight, description and allergens.
   Purchase controls remain structurally and functionally unchanged.
   ========================================================================== */

@media (max-width: 767.98px) {

    /* --------------------------------------------------------------
       PRODUCT TOP: larger popup-like image + clean right content
       -------------------------------------------------------------- */

    .nlv5-page .nlv2-product-main {
        display: grid !important;

        grid-template-columns:
            clamp(138px, 35vw, 154px)
            minmax(0, 1fr) !important;

        column-gap: 14px !important;
        row-gap: 0 !important;

        align-items: start !important;

        width: 100% !important;
        min-width: 0 !important;
    }

    .nlv5-page .nlv2-product-media.card-left {
        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;
        max-width: 154px !important;

        height: auto !important;
        min-height: 0 !important;

        aspect-ratio: 1 / 1 !important;

        align-items: center !important;
        justify-content: center !important;

        overflow: hidden !important;

        border: 1px solid rgba(8, 38, 66, .07) !important;
        border-radius: 18px !important;

        background:
            radial-gradient(
                circle at 50% 42%,
                #ffffff 0%,
                #fbfaf7 60%,
                #f3f4f5 100%
            ) !important;

        box-shadow:
            inset 0 1px 0 rgba(255,255,255,.98),
            0 6px 16px rgba(5,25,44,.055) !important;
    }

    .nlv5-page .nlv2-product-image.menu-image {
        display: block !important;

        width: 100% !important;
        height: 100% !important;

        min-width: 0 !important;
        max-width: 100% !important;

        min-height: 0 !important;
        max-height: 100% !important;

        margin: 0 !important;
        padding: 0 !important;

        object-fit: contain !important;
        object-position: center !important;

        border-radius: 18px !important;
    }

    .nlv5-page .nlv2-product-info.card-info,
    .nlv5-page .nlv27-product-info.card-info {
        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;
        height: 100% !important;

        flex-direction: column !important;

        margin: 0 !important;
        padding: 1px 2px 0 !important;
    }

    /* --------------------------------------------------------------
       TITLE — same visual language as popup
       -------------------------------------------------------------- */

    .nlv5-page .nlv2-product-heading,
    .nlv5-page .nlv27-product-heading {
        width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nlv5-page .nlv2-product-title.menu-item-title {
        margin: 0 !important;
        padding: 0 !important;

        color: #111111 !important;

        font-family:
            Georgia,
            "Times New Roman",
            serif !important;

        font-size: clamp(18px, 4.5vw, 20px) !important;
        font-weight: 700 !important;
        line-height: 1.08 !important;
        letter-spacing: -.012em !important;

        text-align: left !important;

        overflow-wrap: anywhere !important;
    }

    /* --------------------------------------------------------------
       WEIGHT ORNAMENT
       -------------------------------------------------------------- */

    .nlv5-page .nlv2-weight-row,
    .nlv5-page .nlv27-weight-row {
        display: flex !important;

        width: min(100%, 230px) !important;
        min-width: 0 !important;

        align-items: center !important;
        gap: 6px !important;

        margin-top: 7px !important;
        margin-bottom: 0 !important;

        padding: 0 !important;
    }

    .nlv5-page .nlv2-product-weight {
        min-height: 26px !important;

        padding: 3px 10px !important;

        border: 1px solid rgba(216,157,49,.38) !important;
        border-radius: 999px !important;

        color: #9b6616 !important;

        background: #fffaf0 !important;

        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1 !important;

        white-space: nowrap !important;
    }

    .nlv5-page .nlv2-weight-line {
        min-width: 8px !important;
        height: 1px !important;

        flex: 1 1 auto !important;

        background:
            linear-gradient(
                90deg,
                transparent 0%,
                rgba(216,157,49,.75) 50%,
                transparent 100%
            ) !important;
    }

    /* --------------------------------------------------------------
       DESCRIPTION — compact popup-style content
       -------------------------------------------------------------- */

    .nlv5-page .nlv2-description-row,
    .nlv5-page .nlv27-description-row {
        display: grid !important;

        width: 100% !important;
        min-width: 0 !important;

        grid-template-columns:
            minmax(0, 1fr)
            30px !important;

        gap: 5px !important;

        align-items: center !important;

        margin-top: 10px !important;
        padding: 0 !important;
    }

    .nlv5-page .nlv2-description-container {
        width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;
    }

    .nlv5-page .nlv2-product-description.description {
        display: block !important;

        width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        color: #111111 !important;

        font-size: 13px !important;
        font-weight: 500 !important;
        line-height: 1.40 !important;
        letter-spacing: .002em !important;

        text-align: left !important;

        overflow-wrap: break-word !important;
    }

    .nlv5-page
    .nlv2-description-container[data-collapsed="true"]
    .nlv2-product-description.clamp-2 {
        display: -webkit-box !important;

        overflow: hidden !important;

        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
    }

    .nlv5-page .nlv2-description-toggle.desc-toggle-link {
        display: flex !important;

        position: static !important;

        width: 30px !important;
        min-width: 30px !important;
        height: 30px !important;

        align-items: center !important;
        justify-content: center !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
        border-radius: 50% !important;

        color: #08294c !important;

        background: #f5f7f9 !important;

        box-shadow:
            inset 0 0 0 1px rgba(8,38,66,.06) !important;

        font-size: 13px !important;
        text-decoration: none !important;
    }

    /* --------------------------------------------------------------
       ALLERGENS — popup-style compact inline row
       -------------------------------------------------------------- */

    .nlv5-page .nlv2-allergen-row {
        display: flex !important;

        width: 100% !important;
        min-width: 0 !important;

        align-items: center !important;
        gap: 6px !important;

        margin: 9px 0 0 !important;
        padding: 0 !important;
    }

    .nlv5-page .nlv2-allergen-label {
        flex: 0 0 auto !important;

        color: #111111 !important;

        font-size: 12px !important;
        font-weight: 750 !important;
        line-height: 1 !important;

        white-space: nowrap !important;
    }

    .nlv5-page .nlv2-allergen-chevron {
        flex: 0 0 auto !important;

        color: #d39732 !important;

        font-size: 11px !important;
    }

    .nlv5-page .nlv2-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;
        overflow-y: hidden !important;

        scrollbar-width: none !important;
    }

    .nlv5-page .nlv2-allergen-icons::-webkit-scrollbar {
        display: none !important;
    }

    .nlv5-page .nlv2-allergen-icon-wrap {
        display: grid !important;

        width: 29px !important;
        min-width: 29px !important;
        height: 29px !important;

        flex: 0 0 29px !important;

        place-items: center !important;

        margin: 0 !important;
        padding: 0 !important;

        border: 0 !important;
        border-radius: 0 !important;

        background: transparent !important;

        box-shadow: none !important;
    }

    .nlv5-page
    .nlv2-allergen-icon-wrap
    > .nlv2-allergen-icon.allergen-icon {
        display: block !important;

        width: 29px !important;
        min-width: 29px !important;
        max-width: 29px !important;

        height: 29px !important;
        min-height: 29px !important;
        max-height: 29px !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;
    }

    /* --------------------------------------------------------------
       PURCHASE BAR
       Structure stays the same; only ensure clean separation.
       -------------------------------------------------------------- */

    .nlv5-page .nlv2-product-purchase {
        width: 100% !important;

        margin-top: 13px !important;
        padding-top: 11px !important;

        border-top: 1px solid rgba(8,38,66,.08) !important;
    }
}

/* Narrow phones keep the same hierarchy without crushing the right column. */
@media (max-width: 390px) {

    .nlv5-page .nlv2-product-main {
        grid-template-columns:
            128px
            minmax(0, 1fr) !important;

        column-gap: 10px !important;
    }

    .nlv5-page .nlv2-product-media.card-left {
        max-width: 128px !important;

        border-radius: 16px !important;
    }

    .nlv5-page .nlv2-product-image.menu-image {
        border-radius: 16px !important;
    }

    .nlv5-page .nlv2-product-title.menu-item-title {
        font-size: 17px !important;
    }

    .nlv5-page .nlv2-product-description.description {
        font-size: 11.8px !important;
        line-height: 1.37 !important;
    }

    .nlv5-page .nlv2-allergen-label {
        font-size: 11px !important;
    }

    .nlv5-page .nlv2-allergen-icon-wrap,
    .nlv5-page
    .nlv2-allergen-icon-wrap
    > .nlv2-allergen-icon.allergen-icon {
        width: 27px !important;
        min-width: 27px !important;
        max-width: 27px !important;

        height: 27px !important;
        min-height: 27px !important;
        max-height: 27px !important;

        flex-basis: 27px !important;
    }
}
/* NEVERLAND ALL-ITEMS RENDER OPTIMIZATION V1 START */
/*
   HomeMenu keeps every product in the initial HTML/DOM.
   Modern browsers may skip style/layout/paint work for product wrappers
   that are far outside the viewport, while search/filter/cart behavior
   continues to operate on the same DOM nodes.

   The rule intentionally targets only the outer menu-item wrapper:
   - [hidden] search rules remain authoritative.
   - product-card hover/transform/shadow remain on the inner card.
   - popup/cart/admin JavaScript is unchanged.
   - non-supporting browsers keep the existing behavior via @supports.
*/
@supports (content-visibility: auto) {
    .nlv5-home-page
    .nlv2-menu-items
    .nlv2-menu-item.menu-item:not([hidden]) {
        content-visibility: auto;
        contain-intrinsic-size: auto 300px;
    }

    /*
       Mobile cards contain larger media/content blocks and can naturally
       be taller. A closer fallback reduces scroll-position correction
       before a skipped card receives its measured size.
    */
    @media (max-width: 767.98px) {
        .nlv5-home-page
        .nlv2-menu-items
        .nlv2-menu-item.menu-item:not([hidden]) {
            contain-intrinsic-size: auto 380px;
        }
    }

    @media (min-width: 768px) and (max-width: 1199.98px) {
        .nlv5-home-page
        .nlv2-menu-items
        .nlv2-menu-item.menu-item:not([hidden]) {
            contain-intrinsic-size: auto 320px;
        }
    }

    @media (min-width: 1200px) {
        .nlv5-home-page
        .nlv2-menu-items
        .nlv2-menu-item.menu-item:not([hidden]) {
            contain-intrinsic-size: auto 250px;
        }
    }
}

/* Printing must always render every product explicitly. */
@media print {
    .nlv5-home-page
    .nlv2-menu-items
    .nlv2-menu-item.menu-item {
        content-visibility: visible !important;
        contain-intrinsic-size: none !important;
    }
}
/* NEVERLAND ALL-ITEMS RENDER OPTIMIZATION V1 END */

/* NEVERLAND PREMIUM PRODUCT CARD V2 START */
/*
   Premium Product Card V2
   -----------------------
   Presentation-only last-mile layer.

   Contracts intentionally preserved:
   - existing Razor / JS class names
   - 4 product columns on desktop
   - all items remain in the initial DOM
   - *.card.webp remains the card image source
   - AddOns popup continues to use its original image flow
   - quantity / cart / description / allergens / admin behavior unchanged
   - content-visibility optimization remains authoritative
*/

.nlv5-home-page {
    --nl-pcv2-navy: #082d4d;
    --nl-pcv2-navy-deep: #061f36;
    --nl-pcv2-gold: #d89d31;
    --nl-pcv2-gold-light: #f1cd7c;
    --nl-pcv2-ink: #101820;
    --nl-pcv2-muted: #536171;
    --nl-pcv2-line: rgba(8, 38, 66, .095);
    --nl-pcv2-soft: #f6f8fa;
    --nl-pcv2-warm: #fffaf1;
}

/* ---------- Card shell ---------- */

.nlv5-home-page .nlv2-product-card.card-grid,
.nlv5-home-page .nlv2-product-card.blockb {
    display: flex !important;

    min-width: 0 !important;
    height: 100% !important;

    flex-direction: column !important;

    overflow: hidden !important;

    border: 1px solid var(--nl-pcv2-line) !important;
    border-radius: 24px !important;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #ffffff 68%,
            #fffdf8 100%
        ) !important;

    box-shadow:
        0 12px 28px rgba(5, 25, 44, .080),
        0 3px 8px rgba(5, 25, 44, .026),
        inset 0 1px 0 rgba(255,255,255,.98) !important;
}

.nlv5-home-page .nlv2-product-card.card-grid::before,
.nlv5-home-page .nlv2-product-card.blockb::before {
    height: 3px !important;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(216,157,49,.34) 18%,
            rgba(241,205,124,.96) 50%,
            rgba(216,157,49,.34) 82%,
            transparent 100%
        ) !important;
}

/* ---------- Product identity ---------- */

.nlv5-home-page .nlv2-product-main {
    width: 100% !important;
    min-width: 0 !important;

    flex: 1 1 auto !important;
}

.nlv5-home-page .nlv2-product-media.card-left {
    display: flex !important;

    min-width: 0 !important;

    align-items: center !important;
    justify-content: center !important;

    overflow: hidden !important;

    border: 1px solid rgba(8, 38, 66, .065) !important;
    border-radius: 19px !important;

    background:
        radial-gradient(
            circle at 50% 40%,
            #ffffff 0%,
            #fbfaf7 58%,
            #f1f3f5 100%
        ) !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.98),
        0 6px 16px rgba(5,25,44,.045) !important;
}

.nlv5-home-page .nlv2-product-image.menu-image {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

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

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

    border-radius: 18px !important;
}

.nlv5-home-page .nlv2-product-info.card-info,
.nlv5-home-page .nlv27-product-info.card-info {
    display: flex !important;

    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;

    flex-direction: column !important;

    margin: 0 !important;
}

.nlv5-home-page .nlv2-product-heading,
.nlv5-home-page .nlv27-product-heading {
    min-width: 0 !important;
}

.nlv5-home-page .nlv2-product-title.menu-item-title {
    margin: 0 !important;

    color: var(--nl-pcv2-ink) !important;

    font-family:
        Georgia,
        "Times New Roman",
        serif !important;

    font-weight: 700 !important;
    line-height: 1.10 !important;
    letter-spacing: -.014em !important;

    text-align: left !important;
}

/* ---------- Weight ---------- */

.nlv5-home-page .nlv2-weight-row,
.nlv5-home-page .nlv27-weight-row {
    width: min(100%, 240px) !important;

    gap: 6px !important;
}

.nlv5-home-page .nlv2-product-weight {
    border: 1px solid rgba(216,157,49,.35) !important;
    border-radius: 999px !important;

    color: #936012 !important;

    background:
        linear-gradient(
            180deg,
            #fffdf8 0%,
            #fff7e5 100%
        ) !important;

    font-weight: 800 !important;
}

.nlv5-home-page .nlv2-weight-line {
    height: 1px !important;

    background:
        linear-gradient(
            90deg,
            transparent 0%,
            rgba(216,157,49,.68) 50%,
            transparent 100%
        ) !important;
}

/* ---------- Description ---------- */

.nlv5-home-page .nlv2-description-row,
.nlv5-home-page .nlv27-description-row {
    width: 100% !important;
    min-width: 0 !important;
}

.nlv5-home-page .nlv2-product-description.description {
    color: #202832 !important;

    font-weight: 500 !important;
}

.nlv5-home-page .nlv2-description-toggle.desc-toggle-link {
    border: 0 !important;

    color: var(--nl-pcv2-navy) !important;

    background:
        linear-gradient(
            180deg,
            #f8fafb,
            #f1f4f6
        ) !important;

    box-shadow:
        inset 0 0 0 1px rgba(8,38,66,.065) !important;
}

/* ---------- Allergens ---------- */

.nlv5-home-page .nlv2-allergen-row {
    width: 100% !important;
    min-width: 0 !important;
}

.nlv5-home-page .nlv2-allergen-label {
    color: #182331 !important;

    font-weight: 800 !important;
}

.nlv5-home-page .nlv2-allergen-chevron {
    color: var(--nl-pcv2-gold) !important;
}

.nlv5-home-page .nlv2-allergen-icon-wrap {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.nlv5-home-page
.nlv2-allergen-icon-wrap
> .nlv2-allergen-icon.allergen-icon {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    filter: none !important;

    object-fit: contain !important;
}

/* ---------- Purchase bar ---------- */

.nlv5-home-page .nlv2-product-purchase {
    width: 100% !important;
    min-width: 0 !important;

    flex: 0 0 auto !important;

    align-items: center !important;

    margin-top: auto !important;

    border-top: 1px solid rgba(8,38,66,.085) !important;
}

.nlv5-home-page .nlv2-price-primary,
.nlv5-home-page .nlv2-price-block strong {
    color: var(--nl-pcv2-navy-deep) !important;

    font-weight: 900 !important;
    letter-spacing: -.035em !important;

    white-space: nowrap !important;
}

.nlv5-home-page .nlv2-purchase-controls {
    flex: 0 0 auto !important;

    align-items: center !important;
}

.nlv5-home-page .nlv2-quantity-stepper {
    overflow: hidden !important;

    border: 1px solid rgba(8,38,66,.10) !important;
    border-radius: 13px !important;

    background:
        linear-gradient(
            180deg,
            #ffffff,
            #f6f8fa
        ) !important;

    box-shadow:
        inset 0 1px 0 #fff,
        0 3px 8px rgba(5,25,44,.032) !important;
}

.nlv5-home-page .nlv2-qty-button {
    color: #163b5c !important;

    background: transparent !important;

    font-weight: 800 !important;
}

.nlv5-home-page .nlv2-qty-value {
    color: #102c47 !important;

    background: rgba(255,255,255,.72) !important;

    font-weight: 900 !important;
}

.nlv5-home-page .nlv2-add-cart-button.add-cart-btn {
    border: 1px solid rgba(151,96,14,.13) !important;
    border-radius: 13px !important;

    color: #092d4c !important;

    background:
        linear-gradient(
            145deg,
            #f7d576 0%,
            #ecb448 56%,
            #dca034 100%
        ) !important;

    box-shadow:
        0 7px 15px rgba(169,113,24,.17),
        inset 0 1px 0 rgba(255,255,255,.50) !important;
}

/* ---------- Tablet: 2 premium cards per row ---------- */

@media (min-width: 768px) and (max-width: 1279.98px) {

    .nlv5-home-page .nlv2-product-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr)) !important;

        gap: 14px !important;
    }

    .nlv5-home-page .nlv2-product-card.card-grid,
    .nlv5-home-page .nlv2-product-card.blockb {
        min-height: 242px !important;

        padding: 13px !important;
    }

    .nlv5-home-page .nlv2-product-main {
        display: grid !important;

        grid-template-columns:
            clamp(126px, 17vw, 146px)
            minmax(0, 1fr) !important;

        gap: 14px !important;

        align-items: start !important;
    }

    .nlv5-home-page .nlv2-product-media.card-left {
        width: 100% !important;
        max-width: 146px !important;

        aspect-ratio: 1 / 1 !important;
    }

    .nlv5-home-page .nlv2-product-title.menu-item-title {
        font-size: clamp(18px, 1.75vw, 21px) !important;
    }

    .nlv5-home-page .nlv2-product-description.description {
        font-size: 13px !important;
        line-height: 1.38 !important;
    }

    .nlv5-home-page .nlv2-allergen-icon-wrap,
    .nlv5-home-page
    .nlv2-allergen-icon-wrap
    > .nlv2-allergen-icon.allergen-icon {
        width: 28px !important;
        min-width: 28px !important;
        max-width: 28px !important;

        height: 28px !important;
        min-height: 28px !important;
        max-height: 28px !important;

        flex-basis: 28px !important;
    }

    .nlv5-home-page .nlv2-product-purchase {
        gap: 10px !important;

        padding-top: 11px !important;
    }

    .nlv5-home-page .nlv2-price-primary,
    .nlv5-home-page .nlv2-price-block strong {
        font-size: 22px !important;
    }
}

/* ---------- Desktop: preserve exactly 4 columns ---------- */

@media (min-width: 1280px) {

    .nlv5-home-page .nlv2-product-grid {
        grid-template-columns:
            repeat(4, minmax(0, 1fr)) !important;

        gap: clamp(14px, 1vw, 18px) !important;
    }

    .nlv5-home-page .nlv2-menu-item.menu-item,
    .nlv5-home-page .nlv2-product-card.card-grid,
    .nlv5-home-page .nlv2-product-card.blockb {
        height: 100% !important;
    }

    .nlv5-home-page .nlv2-product-card.card-grid,
    .nlv5-home-page .nlv2-product-card.blockb {
        min-height: 270px !important;

        padding: 14px !important;
    }

    .nlv5-home-page .nlv2-product-main {
        display: grid !important;

        grid-template-columns:
            clamp(118px, 7.5vw, 144px)
            minmax(0, 1fr) !important;

        column-gap: 14px !important;
        row-gap: 0 !important;

        align-items: start !important;
    }

    .nlv5-home-page .nlv2-product-media.card-left {
        width: 100% !important;
        max-width: 144px !important;

        aspect-ratio: 1 / 1 !important;

        align-self: start !important;
    }

    .nlv5-home-page .nlv2-product-info.card-info,
    .nlv5-home-page .nlv27-product-info.card-info {
        padding: 1px 1px 0 !important;
    }

    .nlv5-home-page .nlv2-product-title.menu-item-title {
        font-size: clamp(18px, 1.20vw, 21px) !important;
    }

    .nlv5-home-page .nlv2-weight-row,
    .nlv5-home-page .nlv27-weight-row {
        margin-top: 7px !important;
        margin-bottom: 0 !important;
    }

    .nlv5-home-page .nlv2-product-weight {
        min-height: 25px !important;

        padding: 3px 9px !important;

        font-size: 11.5px !important;
    }

    .nlv5-home-page .nlv2-description-row,
    .nlv5-home-page .nlv27-description-row {
        grid-template-columns:
            minmax(0, 1fr)
            29px !important;

        gap: 5px !important;

        margin-top: 9px !important;
    }

    .nlv5-home-page .nlv2-product-description.description {
        font-size: 12.8px !important;
        line-height: 1.38 !important;
    }

    .nlv5-home-page .nlv2-description-toggle.desc-toggle-link {
        width: 29px !important;
        min-width: 29px !important;
        height: 29px !important;
    }

    .nlv5-home-page .nlv2-allergen-row {
        gap: 5px !important;

        margin-top: 8px !important;
        padding-top: 0 !important;
    }

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

    .nlv5-home-page .nlv2-allergen-icons {
        gap: 5px !important;
    }

    .nlv5-home-page .nlv2-allergen-icon-wrap,
    .nlv5-home-page
    .nlv2-allergen-icon-wrap
    > .nlv2-allergen-icon.allergen-icon {
        width: 28px !important;
        min-width: 28px !important;
        max-width: 28px !important;

        height: 28px !important;
        min-height: 28px !important;
        max-height: 28px !important;

        flex-basis: 28px !important;
    }

    .nlv5-home-page .nlv2-product-purchase {
        gap: 10px !important;

        padding-top: 11px !important;
    }

    .nlv5-home-page .nlv2-price-primary,
    .nlv5-home-page .nlv2-price-block strong {
        font-size: 22px !important;
    }

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

    .nlv5-home-page .nlv2-quantity-stepper {
        width: 108px !important;
        min-width: 108px !important;
        height: 40px !important;

        grid-template-columns:
            1fr
            34px
            1fr !important;
    }

    .nlv5-home-page .nlv2-qty-button {
        height: 38px !important;

        font-size: 17px !important;
    }

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

    .nlv5-home-page .nlv2-add-cart-button.add-cart-btn {
        width: 44px !important;
        min-width: 44px !important;
        height: 40px !important;
    }
}

/* ---------- Mobile: keep popup-like identity, polish shell/purchase ---------- */

@media (max-width: 767.98px) {

    .nlv5-home-page .nlv2-product-grid {
        grid-template-columns:
            minmax(0, 1fr) !important;

        gap: 12px !important;
    }

    .nlv5-home-page .nlv2-product-card.card-grid,
    .nlv5-home-page .nlv2-product-card.blockb {
        min-height: 0 !important;
        height: auto !important;

        padding: 12px !important;

        border-radius: 22px !important;
    }

    .nlv5-home-page .nlv2-product-main {
        display: grid !important;

        grid-template-columns:
            clamp(136px, 35vw, 152px)
            minmax(0, 1fr) !important;

        column-gap: 13px !important;
        row-gap: 0 !important;

        align-items: start !important;
    }

    .nlv5-home-page .nlv2-product-media.card-left {
        width: 100% !important;
        max-width: 152px !important;

        aspect-ratio: 1 / 1 !important;

        border-radius: 18px !important;
    }

    .nlv5-home-page .nlv2-product-title.menu-item-title {
        font-size: clamp(18px, 4.5vw, 20px) !important;
    }

    .nlv5-home-page .nlv2-product-purchase {
        gap: 9px !important;

        margin-top: 12px !important;
        padding-top: 10px !important;
    }

    .nlv5-home-page .nlv2-price-primary,
    .nlv5-home-page .nlv2-price-block strong {
        font-size: 21px !important;
    }

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

    .nlv5-home-page .nlv2-quantity-stepper {
        width: 110px !important;
        min-width: 110px !important;
        height: 40px !important;

        grid-template-columns:
            1fr
            35px
            1fr !important;
    }

    .nlv5-home-page .nlv2-add-cart-button.add-cart-btn {
        width: 44px !important;
        min-width: 44px !important;
        height: 40px !important;
    }
}

@media (max-width: 390px) {

    .nlv5-home-page .nlv2-product-card.card-grid,
    .nlv5-home-page .nlv2-product-card.blockb {
        padding: 11px !important;

        border-radius: 20px !important;
    }

    .nlv5-home-page .nlv2-product-main {
        grid-template-columns:
            124px
            minmax(0, 1fr) !important;

        column-gap: 10px !important;
    }

    .nlv5-home-page .nlv2-product-media.card-left {
        max-width: 124px !important;

        border-radius: 16px !important;
    }

    .nlv5-home-page .nlv2-product-title.menu-item-title {
        font-size: 17px !important;
    }

    .nlv5-home-page .nlv2-product-description.description {
        font-size: 11.8px !important;
        line-height: 1.37 !important;
    }

    .nlv5-home-page .nlv2-quantity-stepper {
        width: 104px !important;
        min-width: 104px !important;

        grid-template-columns:
            1fr
            34px
            1fr !important;
    }

    .nlv5-home-page .nlv2-add-cart-button.add-cart-btn {
        width: 42px !important;
        min-width: 42px !important;
    }
}

/* ---------- Fine-pointer polish without touching image filters ---------- */

@media (hover: hover) and (pointer: fine) {

    .nlv5-home-page .nlv2-product-card.card-grid,
    .nlv5-home-page .nlv2-product-card.blockb {
        transition:
            transform 160ms ease,
            border-color 160ms ease !important;
    }

    .nlv5-home-page .nlv2-product-card.card-grid:hover,
    .nlv5-home-page .nlv2-product-card.blockb:hover {
        transform: translateY(-3px) !important;

        border-color: rgba(216,157,49,.28) !important;
    }

    .nlv5-home-page .nlv2-add-cart-button.add-cart-btn {
        transition: transform 140ms ease !important;
    }

    .nlv5-home-page .nlv2-add-cart-button.add-cart-btn:hover {
        transform: translateY(-1px) !important;
    }
}

/* Native [hidden] remains authoritative after the V2 layer. */
html body .nlv5-home-page
.nlv2-menu-items
.nlv2-menu-item.menu-item[hidden] {
    display: none !important;
}

/* NEVERLAND PREMIUM PRODUCT CARD V2 END */

/* NEVERLAND PREMIUM PRODUCT CARD V2.1 MOBILE POLISH START */
/*
   Mobile-only follow-up to Premium Product Card V2.

   Goals:
   1) Expanded description uses the full card width below media + heading.
   2) Allergen icons return to the approved compact 26x26 size.
   3) HomeMenu's floating scroll-to-top control cannot cover card prices.

   Desktop/tablet card contracts, WebP flow, cart, popup, Razor and JS
   remain unchanged.
*/

@media (max-width: 767.98px) {

    /* Compact approved allergen treatment on mobile. */
    .nlv5-home-page .nlv2-allergen-icons {
        gap: 4px !important;
    }

    .nlv5-home-page .nlv2-allergen-icon-wrap,
    .nlv5-home-page
    .nlv2-allergen-icon-wrap
    > .nlv2-allergen-icon.allergen-icon {
        width: 26px !important;
        min-width: 26px !important;
        max-width: 26px !important;

        height: 26px !important;
        min-height: 26px !important;
        max-height: 26px !important;

        flex-basis: 26px !important;
    }

    /*
       The current markup keeps description/allergens inside product-info.
       When a description is expanded, display:contents promotes those
       children into product-main's grid. This lets the expanded text span
       the whole card below the image + heading without changing Razor or JS.

       Browsers without :has() keep the existing V2 behavior.
    */
    @supports selector(:has(*)) {

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        ) {
            grid-template-areas:
                "media heading"
                "description description"
                "allergens allergens"
                "admin admin" !important;

            align-items: start !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        > .nlv2-product-media {
            grid-area: media !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        > .nlv2-product-info {
            display: contents !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        .nlv2-product-heading {
            grid-area: heading !important;

            min-width: 0 !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        .nlv2-description-row {
            grid-area: description !important;

            width: 100% !important;
            min-width: 0 !important;

            margin-top: 12px !important;
            padding-top: 10px !important;

            border-top: 1px solid rgba(8, 38, 66, .07) !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        .nlv2-description-container {
            width: 100% !important;
            min-width: 0 !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        .nlv2-product-description.description {
            width: 100% !important;

            margin: 0 !important;

            font-size: 13.2px !important;
            line-height: 1.46 !important;

            overflow-wrap: anywhere !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        .nlv2-description-toggle.desc-toggle-link {
            align-self: start !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        .nlv2-allergen-row {
            grid-area: allergens !important;

            width: 100% !important;
            min-width: 0 !important;

            margin-top: 10px !important;
        }

        .nlv5-home-page
        .nlv2-product-main:has(
            .nlv2-description-container[data-collapsed="false"]
        )
        .nlv2-product-admin-meta {
            grid-area: admin !important;

            width: 100% !important;
            min-width: 0 !important;
        }
    }
}

/*
   The dark-blue floating scroll-to-top control was visibly covering the
   purchase price on HomeMenu mobile. HomeMenu already has direct category
   navigation and a short action/header area, so hide only this compatibility
   control on mobile. Other pages and desktop/tablet keep their existing
   scroll-to-top behavior.
*/
@media (max-width: 767.98px) {

    body:has(.nlv5-home-page) #scrollToTop,
    body:has(.nlv5-home-page) #scrollToTop.show {
        display: none !important;

        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }
}

/* NEVERLAND PREMIUM PRODUCT CARD V2.1 MOBILE POLISH END */

/* NEVERLAND HOMEMENU SCROLL TOP RESTORE V1 START */
/*
   V2.1 hid the compatibility scroll-to-top control on mobile because the
   old 58px bottom-right button could cover product prices/actions.

   Restore it as a smaller edge-aligned control. The existing JS and markup
   remain unchanged; only presentation is overridden.
*/
@media (max-width: 767.98px) {

    body:has(.nlv5-home-page) #scrollToTop {
        display: flex !important;

        right: max(6px, env(safe-area-inset-right)) !important;
        bottom: max(82px, calc(env(safe-area-inset-bottom) + 72px)) !important;

        width: 42px !important;
        height: 42px !important;

        border: 1px solid rgba(241,202,118,.42) !important;
        border-radius: 50% !important;

        color: #fff !important;

        background:
            linear-gradient(
                145deg,
                rgba(11,52,88,.96),
                rgba(6,31,54,.98)
            ) !important;

        box-shadow:
            0 8px 18px rgba(5,25,44,.22),
            inset 0 1px 0 rgba(255,255,255,.11) !important;

        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;

        z-index: 1100 !important;
    }

    body:has(.nlv5-home-page) #scrollToTop.show {
        display: flex !important;

        opacity: .94 !important;
        visibility: visible !important;
        pointer-events: auto !important;
    }

    body:has(.nlv5-home-page) #scrollToTop i {
        color: #f1ca76 !important;

        font-size: 16px !important;
    }
}

@media (max-width: 390px) {
    body:has(.nlv5-home-page) #scrollToTop {
        right: max(4px, env(safe-area-inset-right)) !important;

        width: 40px !important;
        height: 40px !important;
    }
}
/* NEVERLAND HOMEMENU SCROLL TOP RESTORE V1 END */

/* NEVERLAND SCROLL TOP RIGHT ALIGN V1 START */
/*
   Unified right-side position for the shared #scrollToTop control on:
   - /HomeMenu (.nlv5-home-page)
   - QR Menu/Index (.nlv5-page)

   Existing JS visibility behavior is preserved.
*/

/* Tablet / desktop */
body:has(.nlv5-home-page) #scrollToTop,
body:has(.nlv5-page) #scrollToTop {
    left: auto !important;
    right: max(18px, env(safe-area-inset-right)) !important;
}

/* Mobile */
@media (max-width: 767.98px) {
    body:has(.nlv5-home-page) #scrollToTop,
    body:has(.nlv5-page) #scrollToTop {
        left: auto !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        bottom: max(82px, calc(env(safe-area-inset-bottom) + 72px)) !important;
    }
}

/* Very narrow phones */
@media (max-width: 390px) {
    body:has(.nlv5-home-page) #scrollToTop,
    body:has(.nlv5-page) #scrollToTop {
        left: auto !important;
        right: max(6px, env(safe-area-inset-right)) !important;
    }
}
/* NEVERLAND SCROLL TOP RIGHT ALIGN V1 END */
