/**
 * File:    assets/css/menu-page.css
 * Purpose: Styles for the /restaurant-menu/ page desktop layout (v3.1.7+) —
 *          shows the category carousel and AJAX product grid. Mobile layout
 *          is intentionally unstyled here (existing menu.css applies).
 *          Loaded ONLY when on the menu page (dish_dash_menu_page_id).
 *
 * Used by templates:
 *   - templates/menu/grid.php  (.dd-menu-page--desktop block)
 *
 * Enqueued by:
 *   - modules/template/class-dd-template-module.php (conditional on menu page)
 *
 * Key classes defined:
 *   .dd-menu-page--desktop, .dd-menu-page--mobile (responsive toggles),
 *   .dd-menu-container, .dd-menu-cats, .dd-menu-cat,
 *   .dd-menu-cat__circle, .dd-menu-cat__name, .dd-menu-cat.is-active,
 *   .dd-menu-grid-section, .dd-menu-grid-header,
 *   .dd-menu-grid-title, .dd-menu-loadmore
 *
 * Depends on CSS variables from theme.css:
 *   --brand, --brand-dark, --dd-gold, --dd-surface, --dd-line
 *
 * Last modified: v3.1.18
 */
/* Hide desktop layout on mobile, hide mobile layout on desktop */
.dd-menu-page--desktop { display: block; }
@media (min-width: 768px) { .dd-mobile-app { display: none; } }
@media (min-width: 768px) { .dd-mobile-app { display: none !important; } }

@media (max-width: 767px) {
  /* Hide desktop wrapper on mobile */
  .dd-menu-page--desktop { display: none !important; }

  /* Hide site theme header on menu page on mobile */
  body .dd-header { display: none !important; }

  /* Show mobile app */
  .dd-mobile-app {
    display: block;
    position: fixed;
    inset: 0;
    background: #F5EFE6;
    z-index: 9999;
    overflow: hidden;
  }

  /* ── Screen System ── */
  .dd-mobile-screen {
    position: absolute;
    inset: 0;
    bottom: 64px;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
    transform: translateX(100%);
    transition: transform 0.3s ease;
    background: #F5EFE6;
    padding-bottom: 16px;
  }
  .dd-mobile-screen.is-active {
    transform: translateX(0);
  }
  .dd-mobile-screen.is-prev {
    transform: translateX(-30%);
  }

  /* ── Mobile Header (base) ── */
  .dd-mobile-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px 12px;
    background: #65040d;
    color: #fff;
    position: sticky;
    top: 0;
    z-index: 10;
  }

  /* ── Branded header (Screen 1) ── */
  .dd-mobile-header--branded {
    justify-content: center;
    padding: 10px 20px;
    gap: 0;
  }
  .dd-mobile-header__logo-wrap {
    background: #fff;
    border-radius: 10px;
    padding: 6px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .dd-mobile-header__logo-img {
    height: 40px;
    width: auto;
    object-fit: contain;
    display: block;
  }
  .dd-mobile-header__initials {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    color: #fff;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    flex-shrink: 0;
  }
  .dd-mobile-header__restaurant-name {
    display: none;
  }

  .dd-mobile-header__back {
    font-size: 24px;
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    padding: 4px 8px 4px 0;
    line-height: 1;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  .dd-mobile-header__title {
    font-size: 18px;
    font-weight: 600;
    color: #fff;
  }
  .dd-mobile-header__actions {
    display: flex;
    align-items: center;
    gap: 12px;
  }
  .dd-mobile-header__cart-icon,
  .dd-mobile-header__search-btn {
    position: relative;
    color: #fff;
    background: none;
    border: none;
    cursor: pointer;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .dd-mobile-cart-badge {
    position: absolute;
    top: 0;
    right: 0;
    background: #E8832A;
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
  }

  /* ── Screen 1: Category List ── */
  .dd-mobile-hero {
    padding: 20px 20px 8px;
  }
  .dd-mobile-hero h1 {
    font-size: 22px;
    font-weight: 700;
    color: #000;
    margin: 0;
    line-height: 1.3;
  }
  .dd-mobile-hero__today {
    color: #E8832A;
  }
  .dd-mobile-search {
    margin: 12px 20px;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border-radius: 12px;
    padding: 10px 14px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.08);
  }
  .dd-mobile-search__input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 14px;
    color: #333;
    background: transparent;
  }
  .dd-mobile-search__filter-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #999;
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .dd-mobile-section-label {
    padding: 8px 20px 4px;
    font-size: 13px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
  }
  .dd-mobile-category-list {
    list-style: none;
    margin: 0;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .dd-mobile-category-item {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border-radius: 14px;
    padding: 10px 14px 10px 10px;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0,0,0,0.06);
    min-height: 72px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
  }
  .dd-mobile-category-item:active {
    transform: scale(0.98);
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
  }
  .dd-mobile-category-item__image {
    width: 56px;
    height: 56px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
  }
  .dd-mobile-category-item__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .dd-mobile-category-item__info {
    flex: 1;
  }
  .dd-mobile-category-item__name {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: #111;
  }
  .dd-mobile-category-item__count {
    display: block;
    font-size: 13px;
    color: #888;
    margin-top: 2px;
  }
  .dd-mobile-category-item__arrow {
    font-size: 22px;
    color: #ccc;
    line-height: 1;
  }

  /* ── Screen 2: Product List ── */
  .dd-mobile-cat-pills {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 12px 20px;
    position: sticky;
    top: 56px;
    background: #F5EFE6;
    z-index: 5;
  }
  .dd-mobile-cat-pills::-webkit-scrollbar { display: none; }
  .dd-mobile-cat-pill {
    flex-shrink: 0;
    padding: 7px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    border: 1.5px solid #e0d5c8;
    background: #fff;
    color: #555;
    transition: all 0.2s ease;
    white-space: nowrap;
    min-height: 44px;
    display: flex;
    align-items: center;
  }
  .dd-mobile-cat-pill.is-active {
    background: #E8832A;
    border-color: #E8832A;
    color: #fff;
  }
  .dd-mobile-product-list {
    list-style: none;
    margin: 0;
    padding: 0 20px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }
  .dd-mobile-product-card {
    display: flex;
    gap: 14px;
    background: #fff;
    border-radius: 14px;
    padding: 12px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.07);
    cursor: pointer;
    transition: transform 0.15s ease;
  }
  .dd-mobile-product-card:active { transform: scale(0.99); }
  .dd-mobile-product-card__image {
    position: relative;
    width: 90px;
    height: 90px;
    border-radius: 10px;
    overflow: hidden;
    flex-shrink: 0;
  }
  .dd-mobile-product-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .dd-mobile-product-card__heart {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: rgba(255,255,255,0.85);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ccc;
    transition: color 0.2s ease;
  }
  .dd-mobile-product-card__heart.is-fav { color: #E8832A; }
  .dd-mobile-product-card__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
  }
  .dd-mobile-product-card__top-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 8px;
  }
  .dd-mobile-product-card__name {
    font-size: 14px;
    font-weight: 600;
    color: #111;
    line-height: 1.3;
    flex: 1;
  }
  .dd-mobile-product-card__rating {
    font-size: 12px;
    color: #888;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .dd-mobile-product-card__description {
    font-size: 12px;
    color: #888;
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .dd-mobile-product-card__bottom-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
  }
  .dd-mobile-product-card__price {
    font-size: 15px;
    font-weight: 700;
    color: #E8832A;
  }
  .dd-mobile-product-card__quick-add {
    display: flex;
    align-items: center;
    gap: 6px;
    background: #65040d;
    color: #fff;
    border: none;
    border-radius: 20px;
    padding: 7px 14px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    min-height: 36px;
    transition: background 0.2s ease;
  }
  .dd-mobile-product-card__quick-add:active { background: #4a0209; }

  /* ── Screen 3: Single Product ── */
  .dd-mobile-single__hero {
    position: relative;
    height: 45vh;
    min-height: 240px;
    max-height: 320px;
    overflow: hidden;
    background: #222;
  }
  .dd-mobile-single__hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .dd-mobile-single__back,
  .dd-mobile-single__heart {
    position: absolute;
    top: 16px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(255,255,255,0.9);
    border: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    color: #333;
  }
  .dd-mobile-single__back { left: 16px; }
  .dd-mobile-single__heart { right: 16px; color: #ccc; }
  .dd-mobile-single__heart.is-fav { color: #E8832A; }
  .dd-mobile-single__qty {
    position: absolute;
    bottom: 16px;
    right: 16px;
    display: flex;
    align-items: center;
    gap: 0;
    background: rgba(255,255,255,0.92);
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
  }
  .dd-mobile-single__qty-btn {
    width: 36px;
    height: 36px;
    border: none;
    background: none;
    cursor: pointer;
    font-size: 18px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #E8832A;
    touch-action: manipulation;
    user-select: none;
    -webkit-user-select: none;
  }
  .dd-mobile-single__qty-count {
    min-width: 28px;
    text-align: center;
    font-size: 15px;
    font-weight: 600;
    color: #111;
  }
  .dd-mobile-single__content {
    background: #fff;
    border-radius: 20px 20px 0 0;
    margin-top: -16px;
    position: relative;
    padding: 20px 20px 16px;
    min-height: 55vh;
  }
  .dd-mobile-single__title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
  }
  .dd-mobile-single__name {
    font-size: 20px;
    font-weight: 700;
    color: #111;
    margin: 0 0 4px;
    line-height: 1.3;
  }
  .dd-mobile-single__meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: #888;
  }
  .dd-mobile-single__price {
    font-size: 22px;
    font-weight: 700;
    color: #E8832A;
    white-space: nowrap;
    flex-shrink: 0;
  }
  .dd-mobile-single__section-label {
    font-size: 15px;
    font-weight: 600;
    color: #111;
    margin: 16px 0 8px;
  }
  /* WooCommerce Attributes */
  .dd-mobile-single__attributes { margin-bottom: 4px; }
  .dd-mobile-attr-group { margin-bottom: 12px; }
  .dd-mobile-attr-group__label {
    display: block;
    font-size: 12px;
    color: #888;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
  }
  .dd-mobile-attr-group__pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }
  .dd-mobile-attr-pill {
    padding: 5px 12px;
    border-radius: 20px;
    border: 1.5px solid #e0d5c8;
    font-size: 12px;
    color: #555;
    background: #F5EFE6;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
  }
  .dd-mobile-attr-pill.is-active {
    background: #65040d;
    border-color: #65040d;
    color: #fff;
    font-weight: 600;
  }
  /* Description */
  .dd-mobile-single__description {
    font-size: 14px;
    color: #666;
    line-height: 1.7;
    margin: 0;
    max-height: 72px;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }
  .dd-mobile-single__description.is-expanded { max-height: none; }
  .dd-mobile-single__read-more {
    background: none;
    border: none;
    color: #E8832A;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    padding: 4px 0;
  }
  /* Add to Cart — sticky at bottom of content panel */
  .dd-mobile-single__add-to-cart {
    position: sticky;
    bottom: 0;
    left: 0;
    right: 0;
    margin: 24px 0 0;
    background: #65040d;
    color: #fff;
    border: none;
    border-radius: 16px;
    padding: 18px;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    min-height: 56px;
    transition: background 0.2s ease;
    z-index: 20;
    touch-action: manipulation;
    user-select: none;
    -webkit-user-select: none;
  }
  .dd-mobile-single__add-to-cart:active { background: #4a0209; }
  .dd-mobile-single__add-to-cart.is-disabled {
    opacity: 0.45;
    cursor: not-allowed;
  }

  /* ── Bottom Navigation ── */
  /* Override theme.css z-index (1300) — must sit above .dd-mobile-app (9999) */
  .dd-bottom-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 64px;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: space-around;
    border-top: 1px solid #e8e0d6;
    z-index: 10000;
    box-shadow: 0 -2px 12px rgba(0,0,0,0.06);
  }
  /* ── Screen 2 header: back + centered logo + spacer ── */
  .dd-mobile-header--with-back {
    justify-content: space-between;
    align-items: center;
  }

  /* ── Screen 3: Related products ── */
  .dd-mobile-single__related {
    margin-top: 32px;
    padding: 16px 0 24px;
  }
  .dd-mobile-single__related-title { padding: 0 20px 12px; }
  .dd-mobile-related-list {
    list-style: none; margin: 0; padding: 0 20px;
    display: flex; flex-direction: column; gap: 12px;
  }
  .dd-mobile-related-card {
    display: flex; align-items: center; gap: 12px;
    background: #fff; border-radius: 14px; padding: 10px;
    cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,0.06);
  }
  .dd-mobile-related-card__img-wrap {
    width: 70px; height: 70px; border-radius: 10px;
    overflow: hidden; flex-shrink: 0; background: #f0e8de;
  }
  .dd-mobile-related-card__img-wrap img {
    width: 100%; height: 100%; object-fit: cover;
  }
  .dd-mobile-related-card__info {
    display: flex; flex-direction: column; gap: 4px;
  }
  .dd-mobile-related-card__name {
    font-size: 14px; font-weight: 600; color: #1a1a1a; line-height: 1.3;
  }
  .dd-mobile-related-card__price {
    font-size: 13px; font-weight: 700; color: #E8832A;
  }

  /* Hide .dd-mobile-app on desktop (redundant safety) */
  /* This rule lives INSIDE the @media block — already scoped */
}

/* Outside media query: hide mobile app on desktop by default */
@media (min-width: 768px) { .dd-mobile-app { display: none; } }

/* Centered container — root-level so it applies regardless of breakpoint */
.dd-menu-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}

@media (min-width: 901px) {
    .dd-menu-page--desktop { display: block; }
    .dd-menu-page--mobile  { display: none; }

    .dd-menu-page--desktop {
        padding: 48px 0 48px;
        background: #FAF7F2;
    }

    /* ─── Category section (white card) ────────────────────────────── */
    .dd-menu-cats {
        margin-bottom: 32px;
    }
    .dd-menu-cats__inner {
        background: #ffffff;
        border: 1px solid #EADfCE;
        border-radius: 18px;
        padding: 32px 36px 28px;
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
        overflow: visible !important;
    }
    .dd-menu-cats__header {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 24px;
        margin-bottom: 24px;
        flex-wrap: wrap;
    }
    .dd-menu-cats__eyebrow {
        color: #8a7a66;
        font-size: 11px;
        letter-spacing: .18em;
        text-transform: uppercase;
        font-weight: 600;
        margin-bottom: 6px;
    }
    .dd-menu-cats__title {
        font-family: 'Cormorant Garamond', Georgia, serif !important;
        font-size: clamp(24px, 2.8vw, 34px) !important;
        margin: 0 !important;
        color: #1a0f08 !important;
        font-weight: 600 !important;
        line-height: 1.15 !important;
    }
    .dd-menu-cats__arrows {
        display: flex;
        gap: 8px;
        align-self: flex-end;
        flex-shrink: 0;
    }
    .dd-menu-cats__arrow {
        width: 40px;
        height: 40px;
        border-radius: 50%;
        border: 1px solid var(--dd-line, #EADfCE);
        background: var(--dd-surface, #FBF7F1);
        color: #2b1d12;
        cursor: pointer;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all .2s;
        padding: 0;
        flex-shrink: 0;
    }
    .dd-menu-cats__arrow:hover {
        background: var(--brand, #6B1D1D);
        color: #fff;
        border-color: var(--brand, #6B1D1D);
    }
    .dd-menu-cats__arrow:disabled {
        opacity: 0.4;
        cursor: default;
    }

    .dd-menu-cats__track {
        display: flex;
        gap: 28px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-behavior: smooth;
        padding: 4px 2px 8px;
        scrollbar-width: none;
    }
    .dd-menu-cats__track::-webkit-scrollbar { display: none; }

    /* ─── Single category circle ──────────────────────────────────── */
    .dd-menu-cat {
        flex: 0 0 auto;
        background: none;
        border: none;
        padding: 4px 0;
        cursor: pointer;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        text-align: center;
        transition: transform .2s;
    }
    .dd-menu-cat:hover { transform: translateY(-2px); }

    .dd-menu-cat__circle {
        width: 78px;
        height: 78px;
        border-radius: 50%;
        overflow: hidden;
        position: relative;
        border: 2px solid #EADfCE;
        background: #f5ede2;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: border-color .2s, box-shadow .2s;
    }
    .dd-menu-cat__circle img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }
    .dd-menu-cat__initial {
        font-family: 'Cormorant Garamond', Georgia, serif;
        font-size: 30px;
        color: var(--brand, #6B1D1D);
        font-weight: 600;
    }
    .dd-menu-cat__all-label {
        font-family: 'Cormorant Garamond', Georgia, serif;
        font-size: 22px;
        color: var(--brand, #6B1D1D);
        font-weight: 600;
    }
    .dd-menu-cat__name {
        font-size: 12px;
        color: #2b1d12;
        font-weight: 500;
        max-width: 92px;
        line-height: 1.3;
    }
    .dd-menu-cat.is-active .dd-menu-cat__circle {
        border-color: var(--brand, #6B1D1D);
        box-shadow: 0 0 0 3px rgba(107, 29, 29, .12);
    }
    .dd-menu-cat.is-active .dd-menu-cat__name {
        color: var(--brand, #6B1D1D);
        font-weight: 700;
    }

    /* ─── Grid section heading ──────────────────────────────────── */
    .dd-menu-grid-header {
        margin-bottom: 24px;
    }
    .dd-menu-grid-eyebrow {
        display: block;
        color: #E8832A;
        font-size: 12px;
        font-weight: 600;
        letter-spacing: 2px;
        text-transform: uppercase;
        margin-bottom: 6px;
        font-family: 'Inter', system-ui, sans-serif;
    }
    .dd-menu-grid-title {
        font-family: 'Cormorant Garamond', Georgia, serif;
        font-size: clamp(22px, 2.5vw, 32px);
        font-weight: 600;
        color: #1a0f08;
        margin: 0;
        line-height: 1.15;
    }

    /* ─── Products grid ─────────────────────────────────────────── */
    .dd-menu-grid-section {
        margin-top: 0;
    }
    .dd-menu-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        column-gap: 24px;
        row-gap: 32px;
    }

    /* Card overrides — scoped to .dd-menu-grid only.
       Homepage .dd-dish-card (290px fixed) is untouched. */
    .dd-menu-grid .dd-dish-card {
        min-width: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
        flex-shrink: 1 !important;
        scroll-snap-align: unset !important;
        border-radius: 12px !important;
        overflow: hidden !important;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06) !important;
        transition: all 0.25s ease !important;
    }
    .dd-menu-grid .dd-dish-card:hover {
        box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12) !important;
        transform: translateY(-3px) !important;
    }
    .dd-menu-grid .dd-dish-card__media,
    .dd-menu-grid .dd-dish-card__img,
    .dd-menu-grid .dd-dish-card__image {
        aspect-ratio: 4 / 3 !important;
        height: auto !important;
        overflow: hidden !important;
    }
    .dd-menu-grid .dd-dish-card__media img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }
    .dd-menu-grid .dd-dish-card__body {
        padding: 14px 16px !important;
    }
    .dd-menu-grid .dd-dish-card__title {
        font-family: 'Cormorant Garamond', Georgia, serif !important;
        font-size: 1.15rem !important;
        font-weight: 500 !important;
        line-height: 1.3 !important;
        color: var(--dd-text, #221B19) !important;
        margin-bottom: 8px !important;
    }
    .dd-menu-grid .dd-dish-card__footer {
        flex-wrap: wrap !important;
        gap: 8px !important;
    }
    .dd-menu-grid .dd-price {
        font-size: 1.1rem !important;
        font-weight: 700 !important;
        color: #E8832A !important;
    }
    .dd-menu-grid .dd-dish-card__footer .dd-add-btn {
        padding: 8px 16px !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        flex-shrink: 0 !important;
    }

    /* ─── Load more button ─────────────────────────────────────── */
    .dd-menu-loadmore-wrap {
        display: flex;
        justify-content: center;
        margin-top: 48px;
    }
    .dd-menu-loadmore {
        background: var(--brand, #6B1D1D);
        color: #fff;
        border: none;
        border-radius: 999px;
        padding: 13px 34px;
        font-size: 13px;
        font-weight: 600;
        letter-spacing: .06em;
        text-transform: uppercase;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        gap: 12px;
        transition: background .2s, transform .15s;
    }
    .dd-menu-loadmore:hover {
        background: #4f1414;
        transform: translateY(-1px);
    }
    .dd-menu-loadmore.is-loading {
        opacity: .7;
        cursor: wait;
    }
    .dd-menu-loadmore__spinner { display: none; }
    .dd-menu-loadmore.is-loading .dd-menu-loadmore__spinner {
        display: inline-block;
        width: 12px;
        height: 12px;
        border: 2px solid rgba(255,255,255,.3);
        border-top-color: #fff;
        border-radius: 50%;
        animation: dd-spin .8s linear infinite;
    }
    @keyframes dd-spin { to { transform: rotate(360deg); } }
}
