:root {
    --jh-primary: #ff4b18;
    --jh-primary-dark: #dc3510;
    --jh-ink: #141414;
    --jh-muted: #69707a;
    --jh-line: #ece7e3;
    --jh-soft: #fff8f3;
    --jh-cream: #fff1e5;
    --jh-success: #2ea44f;
    --jh-shadow: 0 16px 45px rgba(30, 24, 20, .08);
}

body.food-hub-page,
body.food-hub-menu-page,
body.food-hub-partner-page {
    background: #fff;
    overflow-x: hidden;
}

body.food-hub-page .jh-page,
body.food-hub-menu-page .jh-menu-page,
body.food-hub-menu-page .jh-menu-back,
body.food-hub-menu-page .jh-mobile-cart-bar,
body.food-hub-menu-page .offcanvas {
    font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: var(--jh-ink);
}

body.food-hub-page img,
body.food-hub-menu-page img {
    max-width: 100%;
}

.jh-menu-back {
    background: #fff;
    border-bottom: 1px solid var(--jh-line, #ece7e3);
}

.jh-menu-back .jh-link {
    font-size: .95rem;
}

.jh-page {
    padding: 0 0 72px;
}

.jh-container {
    width: min(1320px, calc(100% - 32px));
    margin-inline: auto;
}

.jh-section {
    margin-top: 48px;
}

.jh-section-head {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.jh-section-head h2,
.jh-section-head h3 {
    margin: 0;
    font-weight: 800;
    letter-spacing: -.04em;
}

.jh-section-head h2 { font-size: clamp(1.65rem, 2.4vw, 2.35rem); }
.jh-section-head p { margin: 5px 0 0; color: var(--jh-muted); }

.jh-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-weight: 700;
    white-space: nowrap;
}

.jh-link:hover { color: var(--jh-primary); }

/* Shared controls */
.jh-btn-primary,
.jh-btn-outline {
    min-height: 48px;
    border-radius: 12px;
    padding: 12px 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    font-weight: 800;
    text-decoration: none;
    border: 1px solid transparent;
    transition: .25s ease;
}

.jh-btn-primary {
    color: #fff;
    background: var(--jh-primary);
    box-shadow: 0 12px 22px rgba(255, 75, 24, .2);
}

.jh-btn-primary:hover {
    color: #fff;
    background: var(--jh-primary-dark);
    transform: translateY(-2px);
}

.jh-btn-outline {
    color: var(--jh-primary);
    border-color: rgba(255, 75, 24, .35);
    background: #fff;
}

.jh-btn-outline:hover {
    color: #fff;
    background: var(--jh-primary);
}

/* Food hub home */
.jh-menu-search {
    min-height: 56px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid #e8e2de;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(30, 24, 20, .06);
}

.jh-menu-search input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
}

.jh-category-strip,
.jh-scroll-row {
    position: relative;
}

.jh-category-list {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
    padding: 0;
}

.jh-card-track {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: inline mandatory;
    scrollbar-width: none;
    padding: 4px 2px 12px;
}

.jh-card-track::-webkit-scrollbar { display: none; }

.jh-category-card {
    min-width: 0;
    width: 100%;
    padding: 22px 12px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border: 1px solid var(--jh-line);
    border-radius: 20px;
    background: linear-gradient(180deg, #fff 0%, #fffaf7 100%);
    transition: .25s ease;
    color: inherit;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
}

.jh-category-card:hover {
    border-color: rgba(255, 75, 24, .3);
    transform: translateY(-4px);
    box-shadow: 0 15px 35px rgba(30, 24, 20, .08);
    color: inherit;
}

.jh-category-card.is-active {
    border-color: rgba(255, 75, 24, .55);
    background: linear-gradient(180deg, #fff5ef 0%, #ffe8dc 100%);
    box-shadow: 0 14px 30px rgba(255, 75, 24, .14);
}

.jh-category-card.is-active strong {
    color: var(--jh-primary);
}

.jh-category-thumb {
    width: 96px;
    height: 96px;
    margin: 0 auto 12px;
    border-radius: 50%;
    overflow: hidden;
    flex: 0 0 auto;
    background: #f3efe9;
}

.jh-category-thumb img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}

.jh-category-card strong {
    display: block;
    font-size: .92rem;
    line-height: 1.3;
}

.jh-scroll-btn {
    width: 44px;
    height: 44px;
    position: absolute;
    top: 50%;
    z-index: 5;
    border: 1px solid #e6dfdb;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 8px 20px rgba(30, 24, 20, .12);
    transform: translateY(-50%);
}
.jh-scroll-btn.prev { left: -18px; }
.jh-scroll-btn.next { right: -18px; }

.jh-restaurant-card {
    position: relative;
    isolation: isolate;
    width: 100%;
    min-width: 0;
    height: 320px;
    overflow: hidden;
    border: 0;
    border-radius: 24px;
    background: #111;
    box-shadow: 0 16px 36px rgba(16, 12, 10, .16);
    transition: transform .3s ease, box-shadow .3s ease;
}

#restaurantTrack > [hidden] {
    display: none !important;
}

.jh-restaurant-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 26px 48px rgba(16, 12, 10, .22);
}

.jh-card-hit {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    color: inherit;
    text-decoration: none;
    overflow: hidden;
    border-radius: inherit;
}

.jh-card-hit > img,
body.food-hub-page .jh-card-hit > img {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    z-index: 0;
    transform: none;
    transition: transform .45s ease;
}

.jh-restaurant-card:hover .jh-card-hit > img {
    transform: scale(1.05);
}

.jh-card-shade {
    position: absolute;
    inset: auto 0 0 0;
    height: 55%;
    z-index: 1;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .45) 40%, rgba(0, 0, 0, .88) 100%);
    pointer-events: none;
}

.jh-card-topbar {
    position: absolute;
    top: 14px;
    left: 14px;
    right: 14px;
    z-index: 3;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    background: transparent;
}

.jh-card-badge {
    padding: 7px 11px;
    border-radius: 999px;
    background: #fff;
    color: var(--jh-success);
    font-size: .72rem;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .18);
}

.jh-card-badge-offer {
    color: #fff;
    background: var(--jh-primary);
}

.jh-rating {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 7px 10px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    box-shadow: 0 8px 18px rgba(0, 0, 0, .2);
}
.jh-rating i { color: #ffc107; }

.jh-card-foot {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 16px;
    color: #fff;
    background: transparent;
}

.jh-card-foot h3 {
    margin: 0 0 4px;
    font-size: 1.12rem;
    font-weight: 800;
    letter-spacing: -.03em;
    line-height: 1.2;
    text-shadow: 0 2px 10px rgba(0, 0, 0, .35);
}

.jh-card-cuisine {
    margin: 0 0 12px;
    color: rgba(255, 255, 255, .88);
    font-size: .8rem;
    text-shadow: 0 1px 8px rgba(0, 0, 0, .35);
}

.jh-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
}

.jh-card-meta > span:not(.jh-card-go) {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 10px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .45);
    font-size: .74rem;
    font-weight: 700;
}

.jh-card-meta i {
    color: #ffb08a;
}

.jh-card-go {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 12px;
    border-radius: 999px;
    background: #fff;
    color: #111;
    font-size: .78rem;
    font-weight: 800;
    transition: .22s ease;
}

.jh-restaurant-card:hover .jh-card-go {
    background: var(--jh-primary);
    color: #fff;
}

.jh-link {
    border: 0;
    background: transparent;
    cursor: pointer;
    color: inherit;
    font: inherit;
}

.jh-view-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: 28px;
}

.jh-view-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 48px;
    padding: 12px 28px;
    border: 1px solid rgba(20, 20, 20, .12);
    border-radius: 999px;
    background: #fff;
    color: #111;
    font-size: .95rem;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(20, 16, 12, .08);
    cursor: pointer;
    transition: .22s ease;
}

.jh-view-more-btn:hover {
    color: #fff;
    background: var(--jh-primary);
    border-color: var(--jh-primary);
}

.jh-cuisine-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}

.jh-cuisine-card {
    min-height: 205px;
    padding: 18px;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: end;
    border-radius: 20px;
    color: #fff;
    background-size: cover;
    background-position: center;
}

.jh-cuisine-card::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.06) 10%, rgba(0,0,0,.82) 100%);
}

.jh-cuisine-card > * { position: relative; z-index: 1; }
.jh-cuisine-card h3 { margin: 0 0 4px; font-size: 1.25rem; font-weight: 900; }
.jh-cuisine-card p { margin: 0 0 12px; font-size: .82rem; opacity: .88; }
.jh-cuisine-card span { width: max-content; padding: 6px 10px; border-radius: 999px; color: #222; background: #fff; font-size: .76rem; font-weight: 800; }

.jh-homemade {
    padding: 24px;
    border: 1px solid #f0e4db;
    border-radius: 24px;
    background: linear-gradient(100deg, #fff4e9 0%, #fffaf6 100%);
}

.jh-homemade-intro {
    height: 100%;
    padding: 14px 12px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.jh-homemade-intro h2 { margin: 0 0 10px; font-weight: 900; letter-spacing: -.04em; }
.jh-homemade-intro p { color: var(--jh-muted); line-height: 1.7; }

.jh-home-chef-card {
    height: 100%;
    overflow: hidden;
    border: 1px solid var(--jh-line);
    border-radius: 17px;
    background: #fff;
}

.jh-home-chef-card img { width: 100%; height: 125px; object-fit: cover; }
.jh-home-chef-body { padding: 13px; }
.jh-home-chef-body h3 { margin: 0 0 7px; font-size: .94rem; font-weight: 800; }
.jh-home-chef-body p { margin: 3px 0; color: var(--jh-muted); font-size: .76rem; }

.jh-offer-card {
    min-height: 170px;
    padding: 24px;
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    color: #fff;
}

.jh-offer-card h3 { max-width: 160px; margin: 0 0 8px; font-size: 1.8rem; font-weight: 900; line-height: 1; }
.jh-offer-card p { max-width: 150px; margin: 0; font-size: .86rem; opacity: .9; }
.jh-offer-card img { width: 48%; height: 100%; position: absolute; right: 0; bottom: 0; object-fit: cover; clip-path: ellipse(70% 66% at 72% 53%); }
.jh-offer-orange { background: linear-gradient(135deg, #ff4b18, #ff7a22); }
.jh-offer-green { background: linear-gradient(135deg, #3da542, #74c04f); }
.jh-offer-purple { background: linear-gradient(135deg, #673ab7, #9b4dcc); }

.jh-benefits {
    padding: 26px;
    border: 1px solid var(--jh-line);
    border-radius: 22px;
    background: #fff;
}

.jh-benefit-item { display: flex; align-items: center; gap: 13px; }
.jh-benefit-icon {
    width: 48px;
    height: 48px;
    flex: 0 0 48px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 75, 24, .25);
    border-radius: 50%;
    color: var(--jh-primary);
    background: #fff7f3;
    font-size: 1.15rem;
}
.jh-benefit-item h4 { margin: 0 0 3px; font-size: .9rem; font-weight: 800; }
.jh-benefit-item p { margin: 0; color: var(--jh-muted); font-size: .78rem; }

/* Menu page */
.jh-menu-page { padding-bottom: 90px; }

.jh-restaurant-hero {
    min-height: 390px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: end;
    border-radius: 0 0 28px 28px;
    background-size: cover;
    background-position: center;
}

.jh-restaurant-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.62) 38%, rgba(0,0,0,.12) 100%);
}

.jh-restaurant-copy {
    width: min(1320px, calc(100% - 32px));
    margin: 0 auto;
    padding: 54px 0;
    position: relative;
    z-index: 2;
    color: #fff;
}

.jh-restaurant-copy h1 {
    margin: 0 0 12px;
    font-size: clamp(2.2rem, 4.5vw, 4.6rem);
    font-weight: 900;
    letter-spacing: -.055em;
}

.jh-restaurant-logo {
    width: 94px;
    height: 94px;
    margin-bottom: 16px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.55);
    border-radius: 18px;
    background: rgba(0,0,0,.55);
    backdrop-filter: blur(10px);
    font-weight: 900;
    text-align: center;
    line-height: 1.05;
}

.jh-open-badge {
    margin-left: 10px;
    padding: 5px 10px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border-radius: 999px;
    color: #1b7d34;
    background: #dff7e5;
    font-size: .78rem;
    font-weight: 800;
}

.jh-restaurant-meta,
.jh-restaurant-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 12px;
}

.jh-restaurant-tag {
    padding: 6px 10px;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 999px;
    background: rgba(0,0,0,.22);
    font-size: .8rem;
}

.jh-menu-tools {
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid var(--jh-line);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(16px);
}

.jh-menu-tools-inner {
    width: min(1320px, calc(100% - 32px));
    margin-inline: auto;
    padding: 14px 0;
    display: flex;
    align-items: center;
    gap: 14px;
}

.jh-menu-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
}
.jh-menu-tabs::-webkit-scrollbar { display: none; }

.jh-menu-tab {
    min-height: 45px;
    padding: 9px 15px;
    flex: 0 0 auto;
    border: 1px solid transparent;
    border-radius: 11px;
    color: #34383e;
    background: #fff;
    font-weight: 700;
}

.jh-menu-tab.active,
.jh-menu-tab:hover {
    color: var(--jh-primary);
    border-color: rgba(255, 75, 24, .35);
    background: #fff7f3;
}

.jh-menu-search {
    width: 290px;
    flex: 0 0 auto;
    padding: 0 16px;
}

.jh-menu-layout {
    width: min(1320px, calc(100% - 32px));
    margin: 30px auto 0;
}

.jh-menu-section-title { margin: 0 0 18px; font-size: 1.45rem; font-weight: 900; }

.jh-menu-item {
    margin-bottom: 16px;
    padding: 12px;
    display: grid;
    grid-template-columns: 230px minmax(0, 1fr) auto;
    gap: 20px;
    align-items: center;
    border: 1px solid var(--jh-line);
    border-radius: 18px;
    background: #fff;
    transition: .25s ease;
}

.jh-menu-item:hover {
    border-color: rgba(255, 75, 24, .25);
    box-shadow: 0 15px 35px rgba(30, 24, 20, .07);
}

.jh-menu-item-image {
    height: 155px;
    position: relative;
    overflow: hidden;
    border-radius: 14px;
}

.jh-menu-item-image img { width: 100%; height: 100%; object-fit: cover; }
.jh-bestseller {
    padding: 6px 10px;
    position: absolute;
    top: 9px;
    left: 9px;
    border-radius: 999px;
    color: #fff;
    background: var(--jh-primary);
    font-size: .72rem;
    font-weight: 800;
}

.jh-menu-item-content h3 { margin: 0 0 8px; font-size: 1.2rem; font-weight: 900; }
.jh-menu-item-content p { max-width: 540px; margin: 0 0 12px; color: var(--jh-muted); line-height: 1.6; }
.jh-menu-price { font-size: 1.15rem; font-weight: 900; }

.jh-item-actions { min-width: 150px; display: grid; gap: 10px; }
.jh-qty-control {
    height: 40px;
    display: grid;
    grid-template-columns: 40px 1fr 40px;
    align-items: center;
    overflow: hidden;
    border: 1px solid rgba(255, 75, 24, .38);
    border-radius: 10px;
}
.jh-qty-control button { height: 100%; border: 0; color: var(--jh-primary); background: #fff7f3; font-weight: 900; }
.jh-qty-control span { text-align: center; font-weight: 800; }
.jh-add-btn { min-height: 44px; border: 0; border-radius: 10px; color: #fff; background: var(--jh-primary); font-weight: 800; }
.jh-add-btn:hover { background: var(--jh-primary-dark); }

.jh-cart-card {
    padding: 20px;
    position: sticky;
    top: 92px;
    border: 1px solid var(--jh-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--jh-shadow);
}

.jh-cart-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    margin-bottom: 16px;
}
.jh-cart-head h2 { margin: 0; font-size: 1.25rem; font-weight: 900; }
.jh-clear-cart { border: 0; color: var(--jh-primary); background: transparent; font-size: .82rem; font-weight: 800; }

.jh-cart-empty { padding: 32px 12px; color: var(--jh-muted); text-align: center; }
.jh-cart-empty i { margin-bottom: 10px; display: block; font-size: 2rem; color: #c7c1bd; }

.jh-cart-line {
    padding: 12px 0;
    display: grid;
    grid-template-columns: 58px minmax(0,1fr) auto;
    gap: 10px;
    align-items: center;
    border-bottom: 1px solid #f0ece9;
}
.jh-cart-line img { width: 58px; height: 58px; object-fit: cover; border-radius: 10px; }
.jh-cart-line h4 { margin: 0 0 4px; font-size: .86rem; font-weight: 800; }
.jh-cart-line p { margin: 0; color: var(--jh-muted); font-size: .76rem; }
.jh-cart-line-actions { display: flex; align-items: center; gap: 8px; }
.jh-mini-qty { display: flex; align-items: center; gap: 7px; }
.jh-mini-qty button,
.jh-remove-item { width: 25px; height: 25px; border: 1px solid #ece5e0; border-radius: 7px; background: #fff; }
.jh-remove-item { border: 0; color: #a1a1a1; }

.jh-cart-totals { padding-top: 16px; }
.jh-total-row { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 10px; color: #4d535a; font-size: .9rem; }
.jh-total-row.grand { padding-top: 12px; border-top: 1px solid var(--jh-line); color: var(--jh-ink); font-size: 1.15rem; font-weight: 900; }
.jh-total-row.grand strong { color: var(--jh-primary); font-size: 1.35rem; }
.jh-checkout-btn { width: 100%; min-height: 52px; margin-top: 10px; border: 0; border-radius: 12px; color: #fff; background: var(--jh-primary); font-weight: 900; }
.jh-checkout-btn:disabled { cursor: not-allowed; opacity: .45; }

.jh-progress-box {
    margin-top: 16px;
    padding: 15px;
    border: 1px solid #cfe8d3;
    border-radius: 14px;
    color: #226b32;
    background: #f2fbf4;
    font-size: .83rem;
}

.jh-info-box {
    margin-top: 18px;
    padding: 18px;
    border: 1px solid #f1dfcf;
    border-radius: 18px;
    background: #fffaf6;
}
.jh-info-box h3 { margin: 0 0 14px; font-size: 1rem; font-weight: 900; }
.jh-info-row { margin-bottom: 11px; display: flex; align-items: start; gap: 10px; color: #5f6670; font-size: .84rem; }
.jh-info-row i { color: var(--jh-primary); }

.jh-mobile-cart-bar {
    display: none;
    padding: 10px 14px;
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1040;
    border-top: 1px solid var(--jh-line);
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(14px);
}

.jh-mobile-cart-button {
    width: 100%;
    min-height: 54px;
    padding: 9px 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border: 0;
    border-radius: 13px;
    color: #fff;
    background: var(--jh-primary);
    font-weight: 900;
}

.jh-toast {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 1100;
    transform: translateY(30px);
    opacity: 0;
    transition: .3s ease;
}
.jh-toast.show { transform: translateY(0); opacity: 1; }
.jh-toast-inner { padding: 13px 18px; border-radius: 12px; color: #fff; background: #1f2d24; box-shadow: 0 14px 30px rgba(0,0,0,.22); font-weight: 700; }

@media (max-width: 1199.98px) {
    .jh-cuisine-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .jh-menu-item { grid-template-columns: 190px minmax(0, 1fr) 140px; }
}

@media (max-width: 991.98px) {
    .jh-page { padding-top: 0; }
    .jh-category-list {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .jh-scroll-btn { display: none; }
    .jh-cuisine-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jh-menu-search { width: 235px; }
    .jh-menu-item { grid-template-columns: 180px minmax(0,1fr); }
    .jh-item-actions { grid-column: 2; min-width: 0; grid-template-columns: 150px 1fr; }
    .jh-cart-desktop { display: none; }
    .jh-mobile-cart-bar { display: block; }
}

@media (max-width: 767.98px) {
    .jh-container,
    .jh-menu-layout,
    .jh-restaurant-copy,
    .jh-menu-tools-inner { width: min(100% - 22px, 1320px); }
    .jh-page { padding-bottom: 54px; }
    .jh-section { margin-top: 36px; }
    .jh-section-head { align-items: start; }
    .jh-section-head p { font-size: .88rem; }
    .jh-category-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
    .jh-category-card { padding: 18px 10px; }
    .jh-category-thumb { width: 84px; height: 84px; }
    .jh-restaurant-card { height: 280px; }
    .jh-cuisine-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .jh-cuisine-card { min-height: 180px; padding: 14px; }
    .jh-cuisine-card h3 { font-size: 1.05rem; }
    .jh-homemade { padding: 18px; }
    .jh-benefits { padding: 20px; }
    .jh-restaurant-hero { min-height: 360px; border-radius: 0 0 20px 20px; }
    .jh-restaurant-copy { padding: 38px 0; }
    .jh-menu-tools-inner { align-items: stretch; flex-direction: column; }
    .jh-menu-search { width: 100%; min-height: 48px; }
    .jh-menu-item { grid-template-columns: 130px minmax(0,1fr); gap: 14px; }
    .jh-menu-item-image { height: 135px; }
    .jh-menu-item-content p { font-size: .86rem; }
    .jh-item-actions { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
    .jh-toast { right: 12px; bottom: 78px; left: 12px; text-align: center; }
}

@media (max-width: 575.98px) {
    .jh-cuisine-grid { grid-template-columns: 1fr; }
    .jh-offer-card { min-height: 150px; }
    .jh-menu-item { padding: 10px; grid-template-columns: 112px minmax(0, 1fr); }
    .jh-menu-item-image { height: 116px; }
    .jh-menu-item-content h3 { font-size: 1rem; }
    .jh-menu-item-content p { display: none; }
    .jh-menu-price { font-size: 1rem; }
    .jh-item-actions { gap: 8px; grid-template-columns: 125px 1fr; }
    .jh-qty-control { grid-template-columns: 35px 1fr 35px; }
    .jh-add-btn { font-size: .86rem; }
}
/* Small visual refinements */
.jh-scroll-btn.prev { left: -42px; }
.jh-scroll-btn.next { right: -42px; }
