/* OrderNao Unified Restaurant Page
 * External stylesheet intentionally used so Elementor/WoodMart cannot print
 * the CSS source as page text.
 */
.fe-unified-restaurant-page,
.fe-unified-restaurant-page * { box-sizing:border-box; }

.fe-unified-restaurant-page {
    width:100%;
    max-width:1200px;
    margin:0 auto;
    padding:20px 14px 50px;
    color:#222;
    overflow-x:hidden; /* safety net: no page-level horizontal scroll on any device */
}

.fe-unified-page-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin:0 0 22px;
}
.fe-unified-page-heading h1 {
    margin:0;
    font-size:30px;
    line-height:1.2;
    font-weight:700;
}
.fe-unified-count {
    color:#888;
    font-size:14px;
}

.fe-unified-restaurant-section { margin:0 0 34px; }
.fe-unified-restaurant-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
    width:100%;
}

.fe-unified-card-slot {
    min-width: 0;
}

.fe-unified-restaurant-card {
    position:relative;
    min-width:0;    overflow:hidden;
    background:#fff;
    border-radius:22px;
    box-shadow:0 2px 10px rgba(0,0,0,.08);
    text-align:center;
}

.fe-unified-restaurant-link,
.fe-unified-manual-card {
    color:inherit;
    text-decoration:none;
}

.fe-unified-plugin-card .fe-unified-restaurant-link {
    display:block;
    cursor:pointer;
}

.fe-unified-restaurant-image {
    position:relative;
    width:100%;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#f7f7f7;
    display:flex;
    align-items:center;
    justify-content:center;
}
.fe-unified-restaurant-image img {
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    margin:0;
    border:0;
}
.fe-unified-no-logo {
    width:100%;
    height:100%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:55px;
    background:#f4f4f4;
}

.fe-unified-view-menu {
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    width:100%;
    padding:10px;
    background:#4CAF50;
    color:#ffffff;
    font-size:15px;
    line-height:1.2;
    font-weight:700;
    letter-spacing:0.3px;
    text-shadow:0 1px 2px rgba(0,0,0,0.18);
}

/* Dark logo background card — auto-detect via data attribute set by JS */
.fe-unified-restaurant-card[data-bg="dark"] .fe-unified-view-menu {
    background:#2e7d32;
    color:#fff;
}

.fe-unified-restaurant-name {
    display:block;
    margin:10px 10px 12px;
    color:#1a1a1a;
    font-size:15px;
    line-height:1.3;
    font-weight:700;
    /* Single line — truncate with ellipsis */
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* Category type div — hidden here as base layer; the !important rule at
   the very end of this file is what actually enforces this (see 2.1.8 block). */
.fe-unified-restaurant-type {
    display:none;
}

.fe-unified-favorite {
    position:absolute !important;
    top:12px !important;
    right:12px !important;
    z-index:30 !important;
    width:58px !important;
    height:58px !important;
    min-width:58px !important;
    min-height:58px !important;
    max-width:58px !important;
    max-height:58px !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    border-radius:50% !important;
    background:#fff !important;
    color:#555 !important;
    box-shadow:0 2px 8px rgba(0,0,0,.10) !important;
    display:grid !important;
    place-items:center !important;
    font-size:0 !important;
    line-height:1 !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    cursor:pointer !important;
}
.fe-unified-favorite::before,
.fe-unified-favorite::after {
    content:none !important;
    display:none !important;
}
.fe-unified-heart {
    width:28px !important;
    height:28px !important;
    display:block !important;
    fill:transparent !important;
    stroke:currentColor !important;
    stroke-width:1.8 !important;
    stroke-linecap:round !important;
    stroke-linejoin:round !important;
}
.fe-unified-favorite:hover,
.fe-unified-favorite.is-favorite {
    color:#ef4444 !important;
}
.fe-unified-favorite.is-favorite .fe-unified-heart {
    fill:currentColor !important;
    stroke:currentColor !important;
}

/* WooCommerce insertions */
.fe-unified-insert {
    width:100%;
    margin:30px 0 38px;
    padding:0;
}
.fe-unified-insert-title {
    margin:0 0 15px;
    font-size:24px;
    line-height:1.25;
    font-weight:700;
}
.fe-unified-insert-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:15px;
}
.fe-unified-woo-wrap {
    width:100%;
}
.fe-unified-woo-wrap ul.products {
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
}
.fe-unified-category-insert ul.products,
.fe-unified-product-insert ul.products {
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:18px !important;
    list-style:none !important;
}
.fe-unified-category-insert ul.products li,
.fe-unified-product-insert ul.products li {
    width:auto !important;
    float:none !important;
    margin:0 !important;
}

/* Manual restaurant menu modal */
.fe-unified-menu-modal {
    display:none;
    position:fixed;
    inset:0;
    z-index:999999;
    align-items:center;
    justify-content:center;
    padding:10px;
    background:rgba(0,0,0,.75);
}
.fe-unified-menu-modal-content {
    position:relative;
    width:95%;
    max-width:550px;
    max-height:92vh;
    overflow-y:auto;
    padding:20px;
    background:#fff;
    border-radius:12px;
}
.fe-unified-modal-close {
    position:absolute;
    top:8px;
    right:12px;
    width:36px;
    height:36px;
    padding:0;
    border:0;
    background:transparent;
    color:#666;
    font-size:28px;
    line-height:36px;
    cursor:pointer;
}
.fe-unified-menu-modal-content h3 {
    margin:0 40px 8px 0;
    color:#111;
    font-size:19px;
}
.fe-unified-modal-help {
    margin:0 0 8px;
    color:#4b5563;
    font-size:12px;
}
.fe-unified-zoom-wrapper {
    position:relative;
    max-height:340px;
    margin-bottom:10px;
    overflow:hidden;
    border:1px solid #e5e7eb;
    border-radius:8px;
    background:#f9fafb;
    touch-action:pan-y;
}
.fe-unified-zoom-wrapper img {
    display:block;
    width:100%;
    height:auto;
    margin:0 auto;
    user-select:none;
    -webkit-user-drag:none;
}
.fe-unified-swipe-hint {
    margin:-2px 0 10px;
    color:#6b7280;
    font-size:11px;
    text-align:center;
}
.fe-unified-menu-nav {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin:8px 0 14px;
}
.fe-unified-menu-nav button {
    padding:8px 13px;
    border:1px solid #ddd;
    border-radius:6px;
    background:#fff;
    cursor:pointer;
}
.fe-unified-menu-page-label {
    color:#555;
    font-size:13px;
    font-weight:600;
    text-align:center;
}
.fe-unified-order-label {
    display:block;
    margin-bottom:5px;
    color:#374151;
    font-size:13px;
    font-weight:700;
}
.fe-unified-order-list,
.fe-unified-total-price {
    width:100%;
    padding:10px;
    border:1px solid #ccc;
    border-radius:6px;
    font-size:14px;
}
.fe-unified-total-box {
    margin:12px 0 15px;
    padding:12px;
    border:1px solid #fed7d7;
    border-radius:8px;
    background:#fff5f5;
}
.fe-unified-total-box label {
    display:block;
    margin-bottom:6px;
    color:#9b2c2c;
    font-size:13px;
    font-weight:700;
}
.fe-unified-total-box p {
    margin:7px 0 0;
    color:#c53030;
    font-size:12px;
    line-height:1.4;
}
.fe-unified-submit-manual-order {
    width:100%;
    min-height:50px;
    padding:12px;
    border:0;
    border-radius:7px;
    background:#16a34a;
    color:#fff;
    font-size:16px;
    font-weight:700;
    cursor:pointer;
}
.fe-unified-submit-manual-order:disabled { opacity:.7; cursor:wait; }
.fe-unified-notice {
    padding:18px;
    border:1px solid #e5e7eb;
    border-radius:10px;
    background:#f8fafc;
    color:#555;
}

@media (max-width:1024px) {
    .fe-unified-restaurant-grid,
    .fe-unified-category-insert ul.products,
    .fe-unified-product-insert ul.products {
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }
}
@media (max-width:767px) {
    .fe-unified-restaurant-page { padding:14px 6px 40px; }
    .fe-unified-page-heading h1 { font-size:25px; }
    .fe-unified-restaurant-grid,
    .fe-unified-category-insert ul.products,
    .fe-unified-product-insert ul.products {
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        gap:12px !important;
    }
    .fe-unified-restaurant-card { border-radius:18px; }
    .fe-unified-view-menu { min-height:52px; font-size:17px; }
    .fe-unified-restaurant-name { font-size:17px; }
    .fe-unified-restaurant-type { font-size:14px; }
    .fe-unified-favorite {
        top:9px !important;
        right:9px !important;
        width:52px !important;
        height:52px !important;
        min-width:52px !important;
        min-height:52px !important;
        max-width:52px !important;
        max-height:52px !important;
    }
    .fe-unified-heart { width:26px !important; height:26px !important; }
    .fe-unified-menu-modal { padding:0; align-items:stretch; }
    .fe-unified-menu-modal-content {
        width:100%;
        max-width:none;
        height:100%;
        max-height:none;
        padding:12px 12px calc(12px + env(safe-area-inset-bottom));
        border-radius:0;
    }
    .fe-unified-zoom-wrapper { max-height:56vh; min-height:220px; }
}

/* v2.0.1 WoodMart/mobile refinement */
.fe-unified-restaurant-page { max-width:1180px; }
.fe-unified-restaurant-card { border-radius:16px; }
.fe-unified-view-menu { min-height:46px; padding:8px 9px; font-size:16px; }
.fe-unified-restaurant-name { margin:9px 7px 2px; font-size:16px; line-height:1.2; }
.fe-unified-restaurant-type { min-height:18px; margin:0 7px 10px; font-size:12px; line-height:1.25; }
.fe-unified-favorite {
    width:42px !important; height:42px !important;
    min-width:42px !important; min-height:42px !important;
    max-width:42px !important; max-height:42px !important;
    top:9px !important; right:9px !important;
    background:transparent !important;
    box-shadow:none !important;
    color:#555 !important;
}
.fe-unified-heart { width:30px !important; height:30px !important; filter:drop-shadow(0 1px 2px rgba(255,255,255,.75)); }
@media (max-width:767px) {
    .fe-unified-restaurant-page { max-width:640px; padding:12px 6px 36px; }
    .fe-unified-restaurant-grid { gap:10px !important; }
    .fe-unified-restaurant-card { border-radius:15px; }
    .fe-unified-view-menu { min-height:44px; padding:7px 8px; font-size:15px; }
    .fe-unified-restaurant-name { margin:8px 6px 2px; font-size:15px; }
    .fe-unified-restaurant-type { margin:0 6px 9px; font-size:11px; }
    .fe-unified-favorite { top:8px !important; right:8px !important; width:40px !important; height:40px !important; min-width:40px !important; min-height:40px !important; max-width:40px !important; max-height:40px !important; }
    .fe-unified-heart { width:27px !important; height:27px !important; }
}


/* OrderNao 2.0.2 — WoodMart restaurant UI refinement */
.foodxpress-scroll-notice {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto 16px;
    overflow: hidden;
    border-radius: 10px;
    background: #f5c400;
    box-sizing: border-box;
}
.foodxpress-scroll-notice__viewport {
    width: 100%;
    overflow: hidden;
    white-space: nowrap;
}
.foodxpress-scroll-notice__track {
    display: inline-flex;
    width: max-content;
    min-width: 100%;
    align-items: center;
    animation: foodxpress-notice-scroll 22s linear infinite;
    will-change: transform;
}
.foodxpress-scroll-notice__item {
    display: inline-block;
    padding: 9px 30px;
    color: #111;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.35;
    white-space: nowrap;
}
@keyframes foodxpress-notice-scroll {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.fe-unified-view-menu {
    width: auto !important;
    min-height: 44px !important;
    margin: 7px 8px 0 !important;
    padding: 7px 10px !important;
    border-radius: 9px !important;
    overflow: hidden;
    font-size: 15px !important;
    line-height: 1.25 !important;
    box-sizing: border-box;
}
.fe-unified-restaurant-name {
    margin: 8px 7px 2px !important;
    font-size: 15px !important;
    line-height: 1.2 !important;
}
.fe-unified-restaurant-type {
    min-height: 18px !important;
    margin: 0 7px 9px !important;
    font-size: 11px !important;
    line-height: 1.25 !important;
}
.fe-unified-favorite,
.fe-unified-favorite:hover,
.fe-unified-favorite:focus {
    background: transparent !important;
    box-shadow: none !important;
    border: 0 !important;
}
.fe-unified-heart {
    filter: drop-shadow(0 1px 2px rgba(255,255,255,.75));
}
@media (max-width: 767px) {
    .foodxpress-scroll-notice {
        margin: 0 0 12px;
        border-radius: 9px;
    }
    .foodxpress-scroll-notice__track { animation-duration: 18s; }
    .foodxpress-scroll-notice__item {
        padding: 8px 22px;
        font-size: 13px;
    }
    .fe-unified-restaurant-grid { gap: 10px !important; }
    .fe-unified-restaurant-card { border-radius: 15px !important; }
    .fe-unified-view-menu {
        min-height: 40px !important;
        margin: 6px 6px 0 !important;
        padding: 6px 8px !important;
        border-radius: 8px !important;
        font-size: 14px !important;
    }
    .fe-unified-restaurant-name {
        margin: 7px 6px 2px !important;
        font-size: 14px !important;
    }
    .fe-unified-restaurant-type {
        margin: 0 6px 8px !important;
        font-size: 10.5px !important;
    }
    .fe-unified-favorite {
        top: 8px !important;
        right: 8px !important;
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
        max-width: 40px !important;
        max-height: 40px !important;
    }
    .fe-unified-heart {
        width: 27px !important;
        height: 27px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .foodxpress-scroll-notice__track { animation: none; }
}


/* OrderNao 2.0.3 — final restaurant grid reference */

/* Card proportions: tall, compact and close to the supplied mobile reference. */
.fe-unified-restaurant-grid {
    align-items: start;
}
.fe-unified-restaurant-card {
    overflow: hidden;
    border-radius: 18px !important;
}

/* Image area stays dominant, with the favorite sitting directly on the image. */
.fe-unified-restaurant-card img,
.fe-unified-restaurant-card .fe-unified-restaurant-image {
    display: block;
}

/* Favorite: icon only, no white disk/background. */
.fe-unified-favorite,
.fe-unified-favorite:hover,
.fe-unified-favorite:focus,
.fe-unified-favorite:active {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    padding: 0 !important;
}
.fe-unified-favorite::before,
.fe-unified-favorite::after {
    background: transparent !important;
    box-shadow: none !important;
}
.fe-unified-heart {
    background: transparent !important;
    box-shadow: none !important;
}

/* View Menu is its own rounded section, not a full-width rectangular strip. */
.fe-unified-view-menu {
    display: block !important;
    width: calc(100% - 16px) !important;
    min-height: 46px !important;
    margin: 8px 8px 0 !important;
    padding: 8px 10px !important;
    border-radius: 11px !important;
    overflow: hidden;
    font-size: 15px !important;
    line-height: 1.2 !important;
    text-align: center;
    box-sizing: border-box;
}

/* Compact labels beneath View Menu. */
.fe-unified-restaurant-name {
    margin: 9px 7px 2px !important;
    font-size: 15px !important;
    line-height: 1.18 !important;
    text-align: center;
}
.fe-unified-restaurant-type {
    min-height: 17px !important;
    margin: 0 7px 10px !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
    text-align: center;
}

/* Ticker spacing remains above the list, not inside individual cards. */
.foodxpress-scroll-notice {
    margin-bottom: 16px;
    border-radius: 10px;
}

@media (max-width: 767px) {
    .fe-unified-restaurant-grid {
        gap: 10px !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .fe-unified-restaurant-card {
        border-radius: 16px !important;
    }

    .fe-unified-view-menu {
        width: calc(100% - 12px) !important;
        min-height: 40px !important;
        margin: 6px 6px 0 !important;
        padding: 6px 7px !important;
        border-radius: 9px !important;
        font-size: 14px !important;
    }

    .fe-unified-restaurant-name {
        margin: 7px 5px 2px !important;
        font-size: 14px !important;
    }

    .fe-unified-restaurant-type {
        margin: 0 5px 8px !important;
        font-size: 10.5px !important;
    }

    .fe-unified-favorite {
        top: 8px !important;
        right: 8px !important;
        width: 34px !important;
        height: 34px !important;
        min-width: 34px !important;
        min-height: 34px !important;
        max-width: 34px !important;
        max-height: 34px !important;
    }

    .fe-unified-heart {
        width: 25px !important;
        height: 25px !important;
    }

    .foodxpress-scroll-notice {
        margin-bottom: 12px;
        border-radius: 9px;
    }
}

@media (min-width: 768px) {
    .fe-unified-restaurant-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px !important;
    }
}


/* OrderNao 2.0.4 — compact reference correction */

/* Keep the card compact rather than creating a tall, oversized card. */
.fe-unified-restaurant-card {
    overflow: hidden !important;
    border-radius: 15px !important;
    height: auto !important;
}

/* Do NOT turn View Menu into a floating pill. It remains the card's compact
   menu strip, with only its own lower corners softly rounded. */
.fe-unified-view-menu {
    display: flex !important;
    width: 100% !important;
    min-height: 0 !important;
    height: 40px !important;
    margin: 0 !important;
    padding: 5px 8px !important;
    align-items: center;
    justify-content: center;
    border: 0 !important;
    border-radius: 0 0 10px 10px !important;
    box-sizing: border-box;
    font-size: 14px !important;
    line-height: 1 !important;
}

/* Compact restaurant labels directly under the menu strip. */
.fe-unified-restaurant-name {
    margin: 7px 5px 1px !important;
    padding: 0 !important;
    font-size: 14px !important;
    line-height: 1.15 !important;
    text-align: center;
}
.fe-unified-restaurant-type {
    min-height: 0 !important;
    margin: 0 5px 7px !important;
    padding: 0 !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
    text-align: center;
}

/* Favorite icon is completely transparent; only the heart graphic remains. */
.fe-unified-favorite,
.fe-unified-favorite:hover,
.fe-unified-favorite:focus,
.fe-unified-favorite:active {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}
.fe-unified-favorite::before,
.fe-unified-favorite::after {
    content: none !important;
    display: none !important;
}
.fe-unified-heart {
    background: transparent !important;
    box-shadow: none !important;
}

/* Avoid the previous oversized 4-column desktop cards. */
@media (min-width: 768px) {
    .fe-unified-restaurant-grid {
        gap: 14px !important;
    }
}

@media (max-width: 767px) {
    /* 2.1.5: three restaurant cards per row on mobile instead of two. */
    .fe-unified-restaurant-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 7px !important;
    }

    .fe-unified-restaurant-card {
        border-radius: 12px !important;
    }

    .fe-unified-view-menu {
        height: 30px !important;
        min-height: 30px !important;
        padding: 3px 4px !important;
        border-radius: 0 0 8px 8px !important;
        font-size: 11px !important;
    }

    .fe-unified-restaurant-name {
        margin: 5px 3px 1px !important;
        font-size: 11.5px !important;
    }

    .fe-unified-restaurant-type {
        margin: 0 3px 5px !important;
        font-size: 8.5px !important;
    }

    .fe-unified-favorite {
        top: 5px !important;
        right: 5px !important;
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
        min-height: 26px !important;
        max-width: 26px !important;
        max-height: 26px !important;
    }

    .fe-unified-heart {
        width: 19px !important;
        height: 19px !important;
    }
}


/* OrderNao 2.0.5 — tighter search-to-announcement spacing */
.fe-unified-restaurant-page {
    padding-top: 4px !important;
}
.foodxpress-scroll-notice {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
}
@media (max-width: 767px) {
    .fe-unified-restaurant-page {
        padding-top: 2px !important;
    }
    .foodxpress-scroll-notice {
        margin-bottom: 9px !important;
    }
}


/* OrderNao 2.0.6 — search spacing correction */
.fe-unified-restaurant-page,
.fe-unified-restaurants-page {
    margin-top: 0 !important;
    padding-top: 0 !important;
}
.fe-unified-restaurant-page .foodxpress-scroll-notice,
.fe-unified-restaurants-page .foodxpress-scroll-notice {
    margin-top: 6px !important;
}
.fe-unified-restaurant-page .fe-unified-search,
.fe-unified-restaurants-page .fe-unified-search {
    margin-bottom: 6px !important;
}

/* 2.1.0: homepage category/food sections are hard one-row horizontal collections. */
.fe-unified-restaurant-page .fe-unified-insert .fe-unified-woo-wrap,
.fe-home-restaurant-feed .fe-home-feed-insert { overflow:hidden; }
.fe-unified-restaurant-page .fe-unified-insert .fe-unified-woo-wrap ul.products,
.fe-home-restaurant-feed .fe-home-feed-insert ul.products,
.fe-home-restaurant-feed .fe-home-feed-insert ul.product-categories {
  display:flex !important; flex-wrap:nowrap !important; align-items:stretch !important; justify-content:flex-start !important; overflow-x:auto !important; overflow-y:hidden !important; gap:12px !important; width:100% !important; max-width:100% !important; touch-action:pan-x !important; -webkit-overflow-scrolling:touch !important;
  padding:2px 2px 10px !important; margin:0 !important; scrollbar-width:none !important;
}
.fe-unified-restaurant-page .fe-unified-insert .fe-unified-woo-wrap ul.products::-webkit-scrollbar,
.fe-home-restaurant-feed .fe-home-feed-insert ul.products::-webkit-scrollbar,
.fe-home-restaurant-feed .fe-home-feed-insert ul.product-categories::-webkit-scrollbar { display:none !important; }
.fe-unified-restaurant-page .fe-unified-insert .fe-unified-woo-wrap ul.products > li.product,
.fe-home-restaurant-feed .fe-home-feed-insert ul.products > li.product {
  flex:0 0 180px !important; width:180px !important; max-width:180px !important; margin:0 !important;
}
.fe-home-restaurant-feed .fe-home-feed-insert ul.product-categories > li {
  flex:0 0 150px !important; width:150px !important; max-width:150px !important; margin:0 !important; float:none !important;
}
@media(max-width:680px){
  .fe-unified-restaurant-page .fe-unified-insert .fe-unified-woo-wrap ul.products > li.product,
  .fe-home-restaurant-feed .fe-home-feed-insert ul.products > li.product { flex-basis:165px !important; width:165px !important; max-width:165px !important; }
  .fe-home-restaurant-feed .fe-home-feed-insert ul.product-categories > li { flex-basis:138px !important; width:138px !important; max-width:138px !important; }
}

/* OrderNao 2.1.1 — harden homepage WooCommerce horizontal sections.
 * These rules intentionally target only the shortcode output inside the
 * unified restaurant page, so the normal WooCommerce/WoodMart product grid
 * elsewhere on the site is untouched.
 */
.fe-unified-restaurant-page .fe-unified-category-insert .fe-unified-woo-wrap,
.fe-unified-restaurant-page .fe-unified-product-insert .fe-unified-woo-wrap {
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow:hidden !important;
}
.fe-unified-restaurant-page .fe-unified-category-insert ul.products.fe-unified-horizontal-products,
.fe-unified-restaurant-page .fe-unified-product-insert ul.products.fe-unified-horizontal-products,
.fe-unified-restaurant-page .fe-unified-category-insert ul.products,
.fe-unified-restaurant-page .fe-unified-product-insert ul.products {
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    float:none !important;
    clear:both !important;
    gap:12px !important;
    margin:0 !important;
    padding:2px 2px 12px !important;
    list-style:none !important;
    -webkit-overflow-scrolling:touch !important;
    overscroll-behavior-x:contain !important;
    touch-action:pan-x !important;
    scrollbar-width:none !important;
}
.fe-unified-restaurant-page .fe-unified-category-insert ul.products::-webkit-scrollbar,
.fe-unified-restaurant-page .fe-unified-product-insert ul.products::-webkit-scrollbar {
    display:none !important;
    width:0 !important;
    height:0 !important;
}
.fe-unified-restaurant-page .fe-unified-category-insert ul.products > li.product,
.fe-unified-restaurant-page .fe-unified-category-insert ul.products > li.product-category {
    flex:0 0 150px !important;
    width:150px !important;
    min-width:150px !important;
    max-width:150px !important;
    float:none !important;
    margin:0 !important;
}
.fe-unified-restaurant-page .fe-unified-product-insert ul.products > li.product {
    flex:0 0 180px !important;
    width:180px !important;
    min-width:180px !important;
    max-width:180px !important;
    float:none !important;
    margin:0 !important;
}
@media (max-width:680px) {
    .fe-unified-restaurant-page .fe-unified-category-insert ul.products > li.product,
    .fe-unified-restaurant-page .fe-unified-category-insert ul.products > li.product-category {
        flex-basis:138px !important;
        width:138px !important;
        min-width:138px !important;
        max-width:138px !important;
    }
    .fe-unified-restaurant-page .fe-unified-product-insert ul.products > li.product {
        flex-basis:165px !important;
        width:165px !important;
        min-width:165px !important;
        max-width:165px !important;
    }
}


/* 2.1.2 dedicated homepage scrollers: no WooCommerce .products dependency */
.fe-unified-restaurant-page .fe-unified-scroll-shell{width:100%;max-width:100%;min-width:0;overflow:hidden}
.fe-unified-restaurant-page .fe-unified-horizontal-track{display:flex!important;flex-flow:row nowrap!important;align-items:stretch;gap:14px;width:100%;max-width:100%;min-width:0;overflow-x:auto!important;overflow-y:hidden!important;padding:3px 3px 12px;margin:0;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none}
.fe-unified-restaurant-page .fe-unified-horizontal-track::-webkit-scrollbar{display:none;width:0;height:0}
.fe-unified-restaurant-page .fe-unified-category-card{flex:0 0 154px!important;width:154px!important;min-width:154px!important;max-width:154px!important;display:block;text-decoration:none;overflow:hidden;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;box-sizing:border-box}
.fe-unified-category-image{display:block;aspect-ratio:1.35;overflow:hidden;background:#f5f5f5}.fe-unified-category-image img{width:100%;height:100%;object-fit:cover;display:block}.fe-unified-category-placeholder{display:flex;width:100%;height:100%;align-items:center;justify-content:center;font-size:28px}.fe-unified-category-name{display:block;padding:9px 10px 1px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fe-unified-category-count{display:block;padding:0 10px 10px;font-size:12px;opacity:.65}
.fe-unified-restaurant-page .fe-unified-food-card{flex:0 0 190px!important;width:190px!important;min-width:190px!important;max-width:190px!important;display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(0,0,0,.08);border-radius:12px;background:#fff;box-sizing:border-box}.fe-unified-food-image{display:block;aspect-ratio:1.12;overflow:hidden;background:#f5f5f5}.fe-unified-food-image img{width:100%;height:100%;object-fit:cover;display:block}.fe-unified-food-body{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:82px}.fe-unified-food-body h3{margin:0;font-size:14px;line-height:1.35}.fe-unified-food-body h3 a{text-decoration:none}.fe-unified-food-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}.fe-unified-food-price{font-weight:700;font-size:14px}.fe-unified-food-bottom .button{min-width:32px!important;width:32px!important;height:32px!important;padding:0!important;border-radius:8px!important;display:inline-flex!important;align-items:center;justify-content:center}
@media(max-width:680px){.fe-unified-restaurant-page .fe-unified-horizontal-track{gap:10px}.fe-unified-restaurant-page .fe-unified-category-card{flex-basis:138px!important;width:138px!important;min-width:138px!important;max-width:138px!important}.fe-unified-restaurant-page .fe-unified-food-card{flex-basis:165px!important;width:165px!important;min-width:165px!important;max-width:165px!important}}


/* 2.1.4 homepage horizontal sections: scoped to shortcode inserts only */
.fe-unified-restaurant-page .fe-unified-category-insert,
.fe-unified-restaurant-page .fe-unified-product-insert{min-width:0!important;overflow:hidden!important}
.fe-unified-restaurant-page .fe-unified-category-insert ul.products,
.fe-unified-restaurant-page .fe-unified-product-insert ul.products{
 display:flex!important;flex-wrap:nowrap!important;flex-direction:row!important;
 gap:12px!important;width:100%!important;max-width:100%!important;min-width:0!important;
 overflow-x:auto!important;overflow-y:hidden!important;float:none!important;clear:both!important;
 margin:0!important;padding:2px 2px 14px!important;scrollbar-width:none!important;
 -webkit-overflow-scrolling:touch!important;touch-action:pan-x!important;
}
.fe-unified-restaurant-page .fe-unified-category-insert ul.products::-webkit-scrollbar,
.fe-unified-restaurant-page .fe-unified-product-insert ul.products::-webkit-scrollbar{display:none!important}
.fe-unified-restaurant-page .fe-unified-category-insert ul.products>li,
.fe-unified-restaurant-page .fe-unified-product-insert ul.products>li{
 float:none!important;margin:0!important;clear:none!important;
}
.fe-unified-restaurant-page .fe-unified-category-insert ul.products>li{flex:0 0 150px!important;width:150px!important;min-width:150px!important;max-width:150px!important}
.fe-unified-restaurant-page .fe-unified-product-insert ul.products>li{flex:0 0 180px!important;width:180px!important;min-width:180px!important;max-width:180px!important}
@media(max-width:680px){
 .fe-unified-restaurant-page .fe-unified-category-insert ul.products>li{flex-basis:138px!important;width:138px!important;min-width:138px!important;max-width:138px!important}
 .fe-unified-restaurant-page .fe-unified-product-insert ul.products>li{flex-basis:165px!important;width:165px!important;min-width:165px!important;max-width:165px!important}
}


/* 2.1.5 — homepage round-icon Home Categories scroller.
 * Shows ~3 full bubbles on a phone screen; the rest reveal by horizontal
 * scroll. Admin controls which categories exist and which restaurants
 * belong to each from OrderNao → Home Categories in wp-admin.
 */
.fe-home-cat-shell{width:100%;max-width:100%;overflow:hidden;margin-bottom:14px;margin-top:0}
.fe-home-cat-track{display:flex;flex-wrap:nowrap;align-items:flex-start;gap:16px;width:100%;overflow-x:auto;overflow-y:hidden;padding:2px 2px 6px;margin:0;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;
    /* 2.1.6: snap to one category bubble at a time while scrolling. */
    scroll-snap-type:x mandatory;
}
.fe-home-cat-track::-webkit-scrollbar{display:none;width:0;height:0}
.fe-home-cat-item{flex:0 0 calc((100% - 32px)/3);width:calc((100% - 32px)/3);max-width:calc((100% - 32px)/3);display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:inherit;scroll-snap-align:start;scroll-snap-stop:always}
.fe-home-cat-circle{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#f2f2f2;border:2px solid transparent}
.fe-home-cat-item.is-active .fe-home-cat-circle{border-color:#e0263f}
.fe-home-cat-circle img{width:100%;height:100%;object-fit:cover;display:block}
.fe-home-cat-placeholder{font-size:32px}
.fe-home-cat-name{display:block;margin-top:8px;font-size:13px;font-weight:600;line-height:1.25;word-break:break-word}
.fe-unified-page-heading{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.fe-unified-clear-category{font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}

@media (max-width:767px) {
    .fe-home-cat-shell{margin-bottom:10px}
    .fe-home-cat-track{gap:10px}
    .fe-home-cat-item{flex:0 0 calc((100% - 20px)/3);width:calc((100% - 20px)/3);max-width:calc((100% - 20px)/3)}
    .fe-home-cat-name{font-size:11.5px;margin-top:6px}
    .fe-home-cat-placeholder{font-size:26px}
}


/* 2.1.6 — trim the excess left/right gutter on the homepage container so
 * the category bubbles and restaurant grid sit closer to the screen edge
 * on phones, matching a typical food-delivery app layout.
 */
@media (max-width:767px) {
    .fe-unified-restaurant-page {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }
}

/* =========================================================================
 * OrderNao 2.1.8 — View Menu / Name color + single-line + hide category
 * This block is intentionally placed LAST in the file (and uses !important)
 * so it wins over every earlier per-version override above, regardless of
 * source order. Do not add new .fe-unified-view-menu / .fe-unified-restaurant-
 * name / .fe-unified-restaurant-type rules after this block — they will
 * silently defeat these fixes the same way the 2.0.x–2.1.x history did.
 * ========================================================================= */

/* View Menu: solid brand-green pill with white text — readable on every
   card background regardless of the restaurant logo colors. */
.fe-unified-view-menu {
    background: #43a047 !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.15) !important;
    letter-spacing: 0.2px !important;
}

/* Restaurant name: dark, high-contrast text, forced to a single line with
   an ellipsis so a long name never wraps to a second line and breaks the
   card's fixed height. */
.fe-unified-restaurant-name {
    color: #1a1a1a !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    display: block !important;
    max-width: 100% !important;
}

/* Category line under the restaurant name: no longer needed on the card. */
.fe-unified-restaurant-type {
    display: none !important;
}

/* =========================================================================
 * OrderNao 2.1.12 — extra breakpoint for very narrow phones (<380px,
 * e.g. older/budget Android devices). The 3-column grid above is fine down
 * to ~380px; below that it gets too cramped, so drop to 2 columns.
 * ========================================================================= */
@media (max-width: 379px) {
    .fe-unified-restaurant-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
    .fe-unified-restaurant-card { border-radius: 14px !important; }
    .fe-unified-view-menu { font-size: 13px !important; height: 34px !important; }
    .fe-unified-restaurant-name { font-size: 12.5px !important; }
    .fe-unified-favorite {
        width: 30px !important; height: 30px !important;
        min-width: 30px !important; min-height: 30px !important;
        max-width: 30px !important; max-height: 30px !important;
    }
    .fe-unified-heart { width: 21px !important; height: 21px !important; }

    /* Horizontal scrollers: slightly smaller cards so more than one full
       card is visible in the viewport instead of being mostly cut off. */
    .fe-unified-restaurant-page .fe-unified-category-card { flex-basis: 118px !important; width: 118px !important; min-width: 118px !important; max-width: 118px !important; }
    .fe-unified-restaurant-page .fe-unified-food-card { flex-basis: 145px !important; width: 145px !important; min-width: 145px !important; max-width: 145px !important; }
    .fe-home-cat-item { flex-basis: calc((100% - 16px)/3) !important; width: calc((100% - 16px)/3) !important; max-width: calc((100% - 16px)/3) !important; }
}

/* =========================================================================
 * OrderNao 2.1.13 — use the extra room on tablet/desktop screens.
 * Previously the home-category bubbles stayed at 3-per-row and the
 * restaurant grid stayed at 4-per-row on every screen size >=768px,
 * wasting horizontal space on wider viewports. Scale both up gradually.
 * ========================================================================= */

/* Home category bubbles: 3 (phone) -> 5 (tablet) -> 6 (small desktop) -> 8 (wide desktop) */
@media (min-width: 700px) {
    .fe-home-cat-item {
        flex-basis: calc((100% - 64px) / 5) !important;
        width: calc((100% - 64px) / 5) !important;
        max-width: calc((100% - 64px) / 5) !important;
    }
}
@media (min-width: 900px) {
    .fe-home-cat-item {
        flex-basis: calc((100% - 80px) / 6) !important;
        width: calc((100% - 80px) / 6) !important;
        max-width: calc((100% - 80px) / 6) !important;
    }
}
@media (min-width: 1300px) {
    .fe-unified-restaurant-page { max-width: 1500px; }
    .fe-home-cat-item {
        flex-basis: calc((100% - 112px) / 8) !important;
        width: calc((100% - 112px) / 8) !important;
        max-width: calc((100% - 112px) / 8) !important;
    }
}

/* Restaurant grid (and the homepage category/product WooCommerce grids that
   share the same selector): 3 (phone) -> 4 (tablet) -> 5 (small desktop /
   "Request Desktop Site" on a phone, which typically renders at ~980-1024px)
   -> 6 (wide desktop). */
@media (min-width: 900px) {
    .fe-unified-restaurant-grid,
    .fe-unified-category-insert ul.products,
    .fe-unified-product-insert ul.products {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }
}
@media (min-width: 1300px) {
    .fe-unified-restaurant-page { max-width: 1500px; }
}
@media (min-width: 1400px) {
    .fe-unified-restaurant-grid,
    .fe-unified-category-insert ul.products,
    .fe-unified-product-insert ul.products {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
        gap: 22px !important;
    }
}

/* =========================================================================
 * OrderNao 2.1.17 — offer-banner slots inside the restaurant grid.
 * Rendered as a normal grid item (grid-column:1/-1 makes it span the full
 * row regardless of column count) so it needs no separate wrapper section.
 * Three copies get rendered per insertion point (mobile/tablet/desktop,
 * each at its own card-count interval — see class-unified-restaurants.php)
 * but only the one matching the current screen width is ever shown; the
 * other two stay display:none and never trigger their lazy-loaded images.
 * ========================================================================= */
.fe-offer-slot {
    display: none;
    grid-column: 1 / -1;
}
@media (max-width: 767px) {
    .fe-offer-slot--mobile { display: block; }
}
@media (min-width: 768px) and (max-width: 1199px) {
    .fe-offer-slot--tablet { display: block; }
}
@media (min-width: 1200px) {
    .fe-offer-slot--desktop { display: block; }
}