@font-face {
    font-family: 'Nunito Sans'; font-style: normal; font-weight: 200 900;
    font-display: swap; src: url(fonts/nunito-sans-latin-wght-normal.woff2) format('woff2');
}
/* Startpage opt-in. Shared tokens/components can be adopted by later portal pages. */
body.jd-home {
    --jd-font: 'Nunito Sans', Arial, sans-serif; --jd-ink: #133e31; --jd-green: #448800; --jd-lime: #69b509;
    --jd-soft: #edf6e4; --jd-line: #e6ece6; --jd-muted: #58625e;
    --jd-radius: 18px; --jd-shadow: 0 4px 16px #123c3010;
    min-width: 0; margin: 0; color: var(--jd-ink); background: #fff;
    font: 400 16px/1.5 var(--jd-font);
}
.jd-home *, .jd-home *::before, .jd-home *::after { box-sizing: border-box; }
.jd-home .core_portal { width: auto; min-width: 0; margin: 0; }
.jd-home a { color: inherit; text-decoration: none; }
.jd-home img { max-width: 100%; height: auto; }
.jd-home h1, .jd-home h2, .jd-home h3, .jd-home p { margin: 0; }
.jd-home h2 { font-size: 23px; line-height: 1.2; font-weight: 700; }
.jd-home h3 { font-size: 17px; line-height: 1.35; font-weight: 700; }
.jd-home a:focus-visible, .jd-home button:focus-visible, .jd-home input:focus-visible, .jd-home summary:focus-visible { outline: 3px solid #215fbc; outline-offset: 4px; }
.jd-home .jd-container { width: min(1540px, calc(100% - 64px)); margin-inline: auto; }
.jd-home .jd-button { display: inline-flex; justify-content: center; align-items: center; gap: 8px; min-height: 46px; padding: 11px 20px; border: 1px solid transparent; border-radius: 12px; background: linear-gradient(#77c415, #438600); color: white; font: 700 15px/1.3 var(--jd-font); cursor: pointer; text-align: center; box-shadow: 0 3px 8px #244b1110; }
.jd-home .jd-button:hover { filter: brightness(.94); }
.jd-home .jd-button-outline { color: var(--jd-ink); border-color: #b5c5b4; background: #fff; }
.jd-home .jd-button-light { color: #285c17; background: var(--jd-soft); box-shadow: none; }
.jd-home .jd-skip { position: absolute; z-index: 1000; left: 16px; top: -100px; padding: 12px; background: #fff; }
.jd-home .jd-skip:focus { top: 10px; }
.jd-home .jd-header { width: 100%; overflow: visible; border-bottom: 1px solid var(--jd-line); background: white; }
.jd-home .jd-header-row { display: flex; align-items: center; gap: 28px; min-height: 96px; }
.jd-portal .jd-brand { flex-shrink: 0; display: block; width: 130px; }
.jd-portal .jd-brand img { display: block; width: 120px; height: 84px; object-fit: contain; }
.jd-home .jd-navigation { flex: 1; min-width: 0; }
.jd-home .jd-navigation summary { font-weight: 700; cursor: pointer; }
@media (min-width: 801px) { .jd-home .jd-navigation[open] summary { display: none; } }
.jd-home .jd-navigation nav { height: auto; line-height: 1.5; padding: 0; border: 0; background: none; box-shadow: none; text-shadow: none; font-family: inherit; }
.jd-home .jd-navigation li { float: none; padding: 0; }
.jd-home .jd-navigation a { float: none; background: none; }
.jd-home .jd-navigation ul { float: none; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; list-style: none; margin: 0; padding: 0; }
.jd-home .jd-navigation a { display: block; padding: 10px 14px; font-weight: 700; font-size: 15px; border-radius: 24px; }
.jd-home .jd-navigation a:hover, .jd-home .jd-navigation a[aria-current] { background: var(--jd-soft); color: #2e6b06; }
.jd-home .jd-account { display: flex; flex-wrap: wrap; gap: 10px; justify-content: flex-end; }
.jd-home .jd-account-links { display: contents; }
.jd-home .jd-hero { padding: 38px 0; background: linear-gradient(110deg, #fafcf8, #f1f4f2); border-bottom: 1px solid var(--jd-line); }
.jd-home .jd-hero-grid { display: grid; grid-template-columns: minmax(250px, 1.1fr) minmax(150px, .7fr) minmax(310px, 1fr); gap: 22px; align-items: center; }
.jd-home .jd-with-feature { grid-template-columns: minmax(250px, 1.1fr) minmax(150px, .7fr) minmax(310px, 1fr) minmax(210px, .75fr); }
.jd-home .jd-hero h1 { font-size: clamp(30px, 2.8vw, 48px); font-weight: 700; line-height: 1.08; letter-spacing: -1.2px; margin-bottom: 18px; }
.jd-home .jd-hero h1 span { color: var(--jd-green); }
.jd-home .jd-hero-copy > p { color: #424d48; font-size: 18px; max-width: 450px; }
.jd-home .jd-benefits { display: flex; flex-wrap: wrap; gap: 12px 18px; margin: 24px 0 0; padding: 0; list-style: none; font-size: 13px; font-weight: 700; }
.jd-home .jd-benefits li::before { content: '✓'; color: var(--jd-green); font-size: 20px; padding-right: 5px; }
.jd-home .jd-hero-spacer { min-height: 280px; }
.jd-home .jd-search { margin: 0; padding: 26px; border-radius: 26px; color: white; background: linear-gradient(140deg, #386b4f, #092f25); box-shadow: 0 12px 30px #143d3020; scroll-margin-top: 20px; }
.jd-home .jd-search label { color: #fff; display: block; font-size: 21px; font-weight: 700; line-height: 1.2; margin-bottom: 9px; }
.jd-home .jd-search input { display: block; width: 100%; min-width: 0; min-height: 48px; margin: 0 0 18px; padding: 12px 14px; border: 1px solid #d3ded6; border-radius: 12px; box-shadow: inset 0 1px 3px #00000008; background: #fff; color: #22382e; font: 400 15px/1.4 var(--jd-font); }
.jd-home .jd-search .jd-button { width: 100%; font-size: 21px; }
.jd-home .jd-search p { margin-top: 12px; color: #dcebd9; font-size: 12px; line-height: 1.5; }
.jd-home .jd-card { border: 1px solid var(--jd-line); border-radius: var(--jd-radius); background: #fff; box-shadow: var(--jd-shadow); }
.jd-home a.jd-card { transition: border-color .15s, box-shadow .15s; }
.jd-home a.jd-card:hover { border-color: #91b776; box-shadow: 0 6px 18px #123c3020; }
.jd-home .jd-feature { overflow-wrap: anywhere; padding: 24px; min-height: 250px; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.jd-home .jd-feature h2 { font-size: 26px; }
.jd-home .jd-feature p { font-size: 14px; color: var(--jd-muted); }
.jd-home .jd-feature .jd-button { margin-top: auto; }
.jd-home .jd-tag { padding: 4px 12px; border-radius: 30px; background: var(--jd-green); color: white; font-size: 12px; font-weight: 700; }
.jd-home .jd-discover { display: grid; grid-template-columns: 210px 1fr auto; align-items: center; gap: 24px; padding: 24px 0; border-bottom: 1px solid var(--jd-line); }
.jd-home .jd-section-heading { margin-bottom: 20px; }
.jd-home .jd-section-heading p { font-size: 14px; line-height: 1.45; color: var(--jd-muted); margin-top: 6px; }
.jd-home .jd-discover .jd-section-heading { margin-bottom: 0; }
.jd-home .jd-chip-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.jd-home .jd-chip { min-height: 56px; padding: 10px; display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 14px; font-weight: 700; text-align: center; overflow-wrap: anywhere; }
.jd-home .jd-chip img { width: 38px; height: 38px; object-fit: contain; }
.jd-home .jd-chip-food { flex-direction: column; gap: 5px; }
.jd-home .jd-chip-food img { width: 64px; height: 42px; }
.jd-home .jd-content-grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 36px; padding: 30px 0; border-bottom: 1px solid var(--jd-line); }
.jd-home .jd-content-grid > :only-child { grid-column: 1 / -1; }
.jd-home .jd-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.jd-home .jd-product { display: flex; flex-direction: column; gap: 10px; padding: 18px; overflow-wrap: anywhere; }
/* A decorative pattern avoids passing stock photos off as actual product photos. */
.jd-home .jd-product-art { display: block; height: 65px; margin: -18px -18px 3px; background: radial-gradient(circle at 75% 20%, #cce6ac 0 20px, transparent 21px), linear-gradient(120deg, #eef6e8, #dceccb); }
.jd-home .jd-price { color: #347900; font-weight: 700; font-size: 20px; }
.jd-home .jd-card-action { display: block; margin-top: auto; color: #347900; font-weight: 700; font-size: 12px; }
.jd-home .jd-restaurant-grid { display: grid; gap: 10px; }
.jd-home .jd-restaurant { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 14px; }
.jd-home .jd-restaurant img { width: 52px; height: 52px; object-fit: contain; }
.jd-home .jd-restaurant-symbol { width: 48px; height: 48px; background: var(--jd-soft); border-radius: 12px; display: grid; place-items: center; font-size: 26px; color: var(--jd-green); }
.jd-home .jd-restaurant strong { overflow-wrap: anywhere; }
.jd-home .jd-address { overflow-wrap: anywhere; display: block; font-size: 13px; color: var(--jd-muted); margin-top: 4px; }
.jd-home .jd-reviews { display: grid; grid-template-columns: 210px 1fr; gap: 24px; padding: 30px 0; }
.jd-home .jd-review-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.jd-home .jd-review { padding: 20px; margin: 0; min-width: 0; }
.jd-home .jd-review figcaption { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font-size: 14px; }
.jd-home .jd-rating { color: #845d00; font-weight: 700; white-space: nowrap; }
.jd-home .jd-review blockquote { font-size: 14px; line-height: 1.5; color: #46564e; margin: 14px 0 0; overflow-wrap: anywhere; }
.jd-home .jd-empty { padding: 24px; border-radius: 14px; background: var(--jd-soft); }
.jd-portal .jd-footer { padding: 30px 0 18px; background: linear-gradient(110deg, #2e5f47, #103a2d); color: #fff; }
.jd-portal .jd-footer-grid { display: grid; grid-template-columns: 1.2fr 1fr .8fr 1fr; gap: 36px; }
.jd-portal .jd-footer h2 { font-size: 17px; margin-bottom: 12px; color: white; }
.jd-portal .jd-footer-brand { font-size: 28px; font-weight: 700; letter-spacing: -.8px; }
.jd-portal .jd-footer p { color: #cbe5ac; }
.jd-portal .jd-footer ul { margin: 0; padding: 0; list-style: none; }
.jd-portal .jd-footer a:not(.jd-footer-brand) { font-size: 14px; display: inline-block; padding-block: 5px; }
.jd-portal .jd-footer a:hover { text-decoration: underline; }
.jd-home .jd-contact-content { font-size: 14px; line-height: 1.6; }
.jd-portal .jd-copyright { border-top: 1px solid #ffffff30; padding-top: 18px; margin-top: 24px; font-size: 12px; color: #d4e3d7; }
.jd-home .ui-autocomplete { max-width: calc(100vw - 32px); max-height: 240px; overflow-y: auto; font-size: 15px; }
@media (min-width: 1700px) { .jd-home .jd-chip-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
@media (max-width: 1250px) {
    .jd-home .jd-header-row { flex-wrap: wrap; gap: 12px 24px; padding-block: 8px; }
    .jd-home .jd-account { margin-left: auto; }
    .jd-home .jd-hero-grid { grid-template-columns: 1fr .6fr 1fr; }
    .jd-home .jd-feature { grid-column: 1 / -1; min-height: 0; flex-direction: row; flex-wrap: wrap; align-items: center; }
    .jd-home .jd-feature .jd-button { margin: 0 0 0 auto; }
    .jd-home .jd-discover { grid-template-columns: 180px 1fr; }
    .jd-home .jd-discover > .jd-button { grid-column: 2; justify-self: end; }
    .jd-home .jd-content-grid { grid-template-columns: 1fr; }
    .jd-home .jd-restaurant-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jd-home .jd-reviews { grid-template-columns: 1fr; }
    .jd-home .jd-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
    .jd-home .jd-container { width: calc(100% - 32px); }
    .jd-home .jd-header-row { gap: 8px 16px; }
    .jd-home .jd-navigation { order: 3; flex-basis: 100%; }
    .jd-home .jd-navigation summary { display: list-item; padding: 10px; font-weight: 700; cursor: pointer; }
    .jd-home .jd-navigation nav { height: auto; line-height: 1.5; padding: 0; border: 0; background: none; box-shadow: none; text-shadow: none; font-family: inherit; }
.jd-home .jd-navigation li { float: none; padding: 0; }
.jd-home .jd-navigation a { float: none; background: none; }
.jd-home .jd-navigation ul { float: none; gap: 0; }
    .jd-home .jd-account { flex: 1; gap: 6px; }
    .jd-home .jd-account .jd-button { padding: 10px 12px; font-size: 13px; }
    .jd-home .jd-hero { padding: 28px 0; }
    .jd-home .jd-hero-grid { grid-template-columns: 1fr 1fr; }
    .jd-home .jd-hero-spacer { min-height: 210px; }
    .jd-home .jd-search { grid-column: 1 / -1; }
    .jd-home .jd-discover { grid-template-columns: 1fr; gap: 16px; }
    .jd-home .jd-discover > .jd-button { grid-column: 1; }
    .jd-home .jd-review-grid { grid-template-columns: 1fr; }
    .jd-portal .jd-footer-grid { grid-template-columns: 1fr 1fr; gap: 26px; }
}
@media (max-width: 520px) {
    .jd-portal .jd-brand { width: 90px; }
    .jd-portal .jd-brand img { width: 90px; height: 68px; }
    .jd-home .jd-hero-grid { grid-template-columns: 1fr; gap: 24px; }
    .jd-home .jd-hero h1 { font-size: 35px; }
    .jd-home .jd-hero-spacer { display: none; }
    .jd-home .jd-search { padding: 22px; }
    .jd-home .jd-feature { padding: 20px; }
    .jd-home .jd-chip-grid, .jd-home .jd-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jd-home .jd-restaurant-grid { grid-template-columns: 1fr; }
    .jd-home .jd-restaurant { grid-template-columns: 44px 1fr; }
    .jd-home .jd-restaurant .jd-card-action { grid-column: 2; }
    .jd-portal .jd-footer-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) { .jd-home a.jd-card { transition: none; } }

/* Reuse the original bag mark alongside the new wordmark treatment. */
.jd-portal .jd-brand { width: 250px; display: flex; align-items: center; gap: 4px; }
.jd-portal .jd-brand-mark { display: block; width: 55px; height: 60px; overflow: hidden; flex-shrink: 0; }
.jd-portal .jd-brand-mark img { width: 155px; max-width: none; height: 109px; object-fit: contain; transform: translate(-32px, -4px); }
.jd-portal .jd-brand-word { white-space: nowrap; font-size: 27px; letter-spacing: -1.1px; font-weight: 700; line-height: 1.1; }
.jd-portal .jd-brand-word small { display: block; font-size: 13px; letter-spacing: 0; color: #538e00; padding-top: 4px; }
@media (min-width: 1500px) {
    .jd-home .jd-header-row { gap: 16px; }
    .jd-home .jd-header .jd-brand { width: 225px; }
    .jd-home .jd-navigation ul { gap: 4px; }
    .jd-home .jd-navigation ul, .jd-home .jd-account { flex-wrap: nowrap; white-space: nowrap; }
    .jd-home .jd-navigation a { padding-inline: 9px; }
    .jd-home .jd-account .jd-button { padding-inline: 16px; }
}
@media (max-width: 1499px) {
    .jd-home .jd-header-row { flex-wrap: wrap; }
    .jd-home .jd-navigation { order: 3; flex-basis: 100%; }
    .jd-home .jd-account { margin-left: auto; }
}
@media (max-width: 520px) {
    .jd-home .jd-header-row {
        position: relative;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 6px 8px;
        min-height: 0;
    }
    .jd-home .jd-header .jd-brand { grid-area: 1 / 1; width: auto; }
    .jd-home .jd-header .jd-brand-word { font-size: clamp(16px, 5vw, 23px); }
    .jd-home .jd-header .jd-brand-word small { font-size: clamp(9px, 2.8vw, 12px); }
    .jd-home .jd-header .jd-brand-mark { width: 40px; height: 47px; }
    .jd-home .jd-header .jd-brand-mark img { width: 118px; height: 83px; transform: translate(-25px, -3px); }
    .jd-home .jd-header .jd-account { display: contents; }
    .jd-home .jd-header .jd-order-cta { grid-area: 1 / 2; justify-self: end; white-space: nowrap; }
    .jd-home .jd-header .jd-account-links {
        grid-area: 2 / 1 / 3 / 3;
        justify-self: end;
        max-width: calc(100% - 76px);
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-end;
        gap: 5px;
    }
    .jd-home .jd-header .jd-account .jd-button { gap: 5px; padding: 7px 8px; font-size: 12px; }
    .jd-home .jd-header .jd-navigation { grid-area: 2 / 1; justify-self: start; }
    .jd-home .jd-header .jd-navigation summary { padding: 6px 0; }
    .jd-home .jd-header .jd-navigation nav {
        position: absolute;
        z-index: 10;
        inset: 100% 0 auto;
        padding: 8px;
        border: 1px solid var(--jd-line);
        border-radius: 0 0 10px 10px;
        background: #fff;
        box-shadow: 0 8px 16px #0002;
    }
    .jd-home .jd-header .jd-navigation nav ul { flex-wrap: wrap; }
}

/* Typography and Lucide SVGs share a consistent baseline throughout the homepage. */
.jd-home .jd-icon { width: 20px; height: 20px; display: inline-block; flex-shrink: 0; vertical-align: middle; stroke-width: 2.2; }
.jd-home .jd-button, .jd-home .jd-navigation a { gap: 9px; font-weight: 800; }
.jd-home .jd-navigation a { display: inline-flex; align-items: center; }
.jd-home .jd-navigation summary .jd-icon { margin-right: 8px; }
.jd-home .jd-hero h1 { font-weight: 900; letter-spacing: -1.4px; font-size: clamp(30px, 2.75vw, 46px); }
.jd-home h2 { font-weight: 900; letter-spacing: -.6px; }
.jd-home h3 { font-weight: 800; }
.jd-home .jd-hero-copy > p { font-size: 18px; line-height: 1.4; }
.jd-portal .jd-brand-word { font-weight: 900; }
.jd-home .jd-search label { font-family: var(--jd-font); font-weight: 900; font-size: 21px; }
.jd-home .jd-input-wrap { position: relative; margin-bottom: 16px; }
.jd-home .jd-input-wrap > .jd-icon { position: absolute; top: 14px; left: 14px; color: #54814b; pointer-events: none; }
.jd-home .jd-search .jd-input-wrap input { padding-left: 44px; margin-bottom: 0; }
.jd-home .jd-benefits { gap: 18px; }
.jd-home .jd-benefits li { display: flex; align-items: center; gap: 10px; font-size: 13px; line-height: 1.25; font-weight: 800; }
.jd-home .jd-benefits li::before { content: none; }
.jd-home .jd-benefits .jd-icon { color: #62a800; width: 30px; height: 30px; stroke-width: 2.4; }
.jd-home .jd-section-heading.jd-heading-with-icon { display: grid; grid-template-columns: 32px minmax(0,1fr); column-gap: 12px; align-items: start; }
.jd-home .jd-section-icon { grid-column: 1; grid-row: 1 / 3; color: #62a800; }
.jd-home .jd-section-icon .jd-icon { width: 31px; height: 31px; stroke-width: 2.3; }
.jd-home .jd-heading-with-icon h2, .jd-home .jd-heading-with-icon p { grid-column: 2; }
.jd-home .jd-chip { font-weight: 800; word-break: normal; overflow-wrap: normal; hyphens: auto; }
.jd-home .jd-chip > .jd-icon { color: #54814b; }
.jd-home .jd-card-action { display: inline-flex; align-items: center; gap: 5px; }
.jd-home .jd-card-action .jd-icon { width: 16px; height: 16px; }
.jd-home .jd-rating { display: inline-flex; align-items: center; gap: 4px; }
.jd-home .jd-rating .jd-icon { width: 16px; height: 16px; fill: #ffc900; stroke: #e4a900; }
.jd-portal .jd-footer h2 { display: flex; gap: 8px; align-items: center; letter-spacing: 0; }
.jd-portal .jd-footer a .jd-icon { width: 16px; height: 16px; margin-left: 4px; }
@media (min-width: 1500px) {
    .jd-home .jd-chip-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
    .jd-home .jd-discover { grid-template-columns: 240px minmax(0,1fr) auto; gap: 22px; padding-block: 16px; }
    .jd-home .jd-chip { padding: 10px 7px; gap: 7px; font-size: 13px; border-radius: 12px; }
    .jd-home .jd-chip img { width: 28px; height: 36px; }
    .jd-home .jd-chip-food img { width: 62px; height: 42px; }
}
@media (max-width: 520px) {
    .jd-home .jd-hero h1 { font-size: 34px; }
    .jd-home .jd-benefits { gap: 12px; }
    .jd-home .jd-benefits li { gap: 6px; font-size: 12px; }
    .jd-home .jd-benefits .jd-icon { width: 25px; height: 25px; }
    .jd-home .jd-account .jd-button { gap: 6px; padding-inline: 10px; }
    .jd-home .jd-account .jd-icon { width: 17px; height: 17px; }
}

@media (min-width: 1251px) {
 .jd-home .jd-discover { grid-template-columns: 240px minmax(0,1fr) auto; }
 .jd-home .jd-reviews { grid-template-columns: 240px minmax(0,1fr); }
}

/* Full-width food photography selected by the existing portal time-of-day classes. */
.jd-home .jd-hero {
    --jd-hero-image: url(images/hero/morning-v1.webp);
    background-color: #faf7f1;
    background-image: linear-gradient(90deg, rgba(255,255,255,.96), rgba(255,255,255,.88) 24%, rgba(255,255,255,0) 42%), var(--jd-hero-image);
    background-size: 100% 100%, cover;
    background-position: center, center;
    background-repeat: no-repeat;
}
.jd-home .jd-hero.head1 { --jd-hero-image: url(images/hero/morning-v1.webp); }
.jd-home .jd-hero.head3 { --jd-hero-image: url(images/hero/lunch-v1.webp); }
.jd-home .jd-hero.head2 { --jd-hero-image: url(images/hero/evening-v1.webp); }
.jd-home .jd-hero.head4 { --jd-hero-image: url(images/hero/night-v1.webp); }
@media (min-width: 1251px) {
    .jd-home .jd-hero { min-height: 400px; }
}
@media (min-width: 521px) and (max-width: 800px) {
    .jd-home .jd-hero { background-size: 100% 320px, auto 320px; background-position: center top, center top; }
}
@media (max-width: 520px) {
    .jd-home .jd-hero {
        background-image: var(--jd-hero-image);
        background-size: auto 210px;
        background-position: center top;
        padding-top: 220px;
    }
}

/* Compact city cards: green vector landmarks, full city names and a native scroll rail. */
.jd-home .jd-city-strip { padding-block: 15px; gap: 20px; }
.jd-home .jd-city-strip .jd-section-heading h2 { font-size: 22px; }
.jd-home .jd-city-strip .jd-section-heading p { font-size: 12px; margin-top: 5px; line-height: 1.35; }
.jd-home .jd-city-track { display: flex; align-items: stretch; gap: 12px; min-width: 0; max-width: 100%; padding: 4px 3px 9px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: #b8cbb1 transparent; }
.jd-home .jd-city-track:focus-visible { outline: 2px solid #215fbc; outline-offset: 2px; border-radius: 12px; }
.jd-home .jd-city-track::-webkit-scrollbar { height: 5px; }
.jd-home .jd-city-track::-webkit-scrollbar-thumb { background: #b8cbb1; border-radius: 5px; }
.jd-home .jd-city-card { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 11px; min-width: 142px; min-height: 58px; padding: 7px 15px; border-radius: 12px; box-shadow: 0 2px 5px #173d300a; scroll-snap-align: start; white-space: nowrap; font-size: 13px; line-height: 1.2; font-weight: 800; background: linear-gradient(#fff, #fcfdfb); }
.jd-home .jd-city-landmark { flex-shrink: 0; width: 44px; height: 39px; color: #729475; }
.jd-home .jd-city-card:hover .jd-city-landmark { color: #447a43; }
.jd-home .jd-all-cities { font-size: 13px; min-height: 48px; border-radius: 17px; padding-inline: 16px; }
@media (min-width: 1251px) { .jd-home .jd-city-strip { grid-template-columns: 240px minmax(0,1fr) auto; } }
@media (min-width: 801px) and (max-width: 1250px) {
 .jd-home .jd-city-strip { grid-template-columns: 210px minmax(0,1fr); gap: 12px 20px; }
 .jd-home .jd-city-strip > .jd-all-cities { grid-column: 2; }
}
@media (max-width: 800px) {
 .jd-home .jd-city-strip { grid-template-columns: minmax(0,1fr) auto; gap: 12px; }
 .jd-home .jd-city-track { grid-column: 1 / -1; grid-row: 2; }
 .jd-home .jd-city-strip > .jd-all-cities { grid-column: 2; grid-row: 1; }
 .jd-home .jd-city-strip .jd-section-heading { margin: 0; }
 .jd-home .jd-city-strip .jd-section-heading h2 { font-size: 20px; }
 .jd-home .jd-city-strip .jd-section-heading p { display: none; }
 .jd-home .jd-city-card { min-width: 145px; min-height: 60px; }
 .jd-home .jd-all-cities { padding-inline: 12px; font-size: 12px; }
}
@media (prefers-reduced-motion: no-preference) { .jd-home .jd-city-track { scroll-behavior: smooth; } }

/* The homepage footer is shared by every portal page, including legacy content views. */
body.jd-portal { min-width: 0; }
.jd-portal .core_portal { max-width: 100%; overflow-x: auto; }
.jd-portal .jd-footer { --jd-font: 'Nunito Sans', Arial, sans-serif; --jd-ink: #133e31; --jd-green: #448800; --jd-soft: #edf6e4; font: 400 16px/1.5 var(--jd-font); width: 100%; box-sizing: border-box; }
.jd-portal .jd-footer *, .jd-portal .jd-footer *::before, .jd-portal .jd-footer *::after { box-sizing: border-box; }
.jd-portal .jd-footer .jd-container { width: min(1540px, calc(100% - 64px)); margin-inline: auto; }
.jd-portal .jd-footer a { color: inherit; text-decoration: none; }
.jd-portal .jd-footer a:focus-visible { outline: 3px solid #acd66f; outline-offset: 4px; }
.jd-portal .jd-footer .jd-icon { width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle; }
.jd-portal .jd-footer .jd-brand { display: flex; width: 250px; align-items: center; gap: 4px; }
.jd-portal .jd-footer .jd-brand-word { color: white; }
.jd-portal .jd-footer .jd-brand-word small { color: #c2ee62; }
.jd-portal .jd-footer .jd-brand-mark img { display: block; }
.jd-portal .jd-footer .jd-footer-brand { padding: 0; }
@media (max-width: 800px) { .jd-portal .jd-footer .jd-container { width: calc(100% - 32px); } }
.jd-portal .jd-footer h2 { font-weight: 800; }
.jd-portal .jd-footer .jd-contact-content { font-size: 14px; line-height: 1.6; }

/* Real recent orders; lower left leaves the support chat on the right free. */
.jd-home .jd-order-notices[hidden] { display:none; }
.jd-home .jd-order-notices { position:fixed; bottom:max(20px,env(safe-area-inset-bottom)); left:max(20px,env(safe-area-inset-left)); width:min(360px,calc(100vw - 32px)); z-index:80; font-size:14px; filter:drop-shadow(0 8px 20px #153e3120); }
.jd-home .jd-order-notices-heading { display:flex; justify-content:space-between; align-items:center; padding:0 5px 8px 12px; font-size:12px; font-weight:800; }
.jd-home .jd-order-notices-heading>span { display:flex; align-items:center; gap:7px; background:#fff; padding:4px 9px; border-radius:20px; }
.jd-home .jd-order-dot { width:7px; height:7px; border-radius:50%; background:#69b509; }
.jd-home .jd-order-notices button { display:grid; place-items:center; flex-shrink:0; width:32px; height:32px; border:1px solid var(--jd-line); border-radius:50%; background:#fff; color:var(--jd-ink); font:700 21px/1 var(--jd-font); cursor:pointer; }
.jd-home .jd-order-notice { display:grid; grid-template-columns:44px minmax(0,1fr) 24px; gap:11px; align-items:start; padding:17px; margin-top:9px; background:#fff; border:1px solid #e0eadf; border-radius:18px; animation:jd-order-enter .45s cubic-bezier(.2,.8,.2,1) both; }
.jd-home .jd-order-notice-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:var(--jd-soft); color:#4a8d12; }
.jd-home .jd-order-notice-icon svg { width:24px; height:24px; }
.jd-home .jd-order-notice strong { display:block; font-size:14px; line-height:1.4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jd-home .jd-order-notice p { margin:4px 0; color:var(--jd-muted); font-size:12px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.jd-home .jd-order-notice time { color:#548a39; font-size:11px; }
.jd-home .jd-order-notice button { width:24px; height:24px; border:0; font-size:17px; background:#f3f7ef; }
@keyframes jd-order-enter { from { opacity:0; transform:translateX(-35px) translateY(8px); } to { opacity:1; transform:none; } }
@media(max-width:600px) { .jd-home .jd-order-notices { left:16px; bottom:max(12px,env(safe-area-inset-bottom)); width:min(330px,calc(100vw - 80px)); } .jd-home .jd-order-notice~.jd-order-notice { display:none; } }
@media(prefers-reduced-motion:reduce) { .jd-home .jd-order-notice { animation:none; } }

/* Customer voices and the honest app preview, shared visual row. */
.jd-home .jd-social-proof { display:grid; grid-template-columns:minmax(0,1fr) 290px; gap:24px; padding:20px 0; border-top:1px solid var(--jd-line); align-items:start; }
.jd-home .jd-social-proof .jd-reviews { grid-template-columns:210px minmax(0,1fr); gap:20px; padding:0; min-width:0; }
.jd-home .jd-review-grid { gap:14px; }
.jd-home .jd-review[data-review-card] { position:relative; padding:15px; min-height:138px; border-radius:15px; animation:jd-review-in .45s ease both; }
.jd-home .jd-review[hidden],.jd-home .jd-review-controls[hidden] { display:none; }
.jd-home .jd-review figcaption { display:grid; grid-template-columns:38px minmax(0,1fr); align-items:center; column-gap:10px; row-gap:0; padding-right:8px; font-size:12px; }
.jd-home .jd-review figcaption strong { overflow-wrap:anywhere; }
.jd-home .jd-review-avatar { grid-row:1 / 3; width:38px; height:38px; overflow:hidden; border-radius:50%; background:#e3efdc; border:2px solid #fff; box-shadow:0 0 0 1px #dce7d8; --avatar-shirt:#34785b; --avatar-hair:#533f30; }
.jd-home .jd-review-avatar svg { display:block; width:100%; height:100%; }
.jd-home .jd-avatar-1 { background:#e8dfd3; --avatar-shirt:#bc7048; --avatar-hair:#49302b; }
.jd-home .jd-avatar-2 { background:#d8e9e5; --avatar-shirt:#315468; --avatar-hair:#302a28; }
.jd-home .jd-avatar-3 { background:#ece9cb; --avatar-shirt:#637a44; --avatar-hair:#8e623e; }
.jd-home .jd-review .jd-rating { font-size:12px; line-height:1.2; }
.jd-home .jd-review-stars { position:relative; display:inline-block; color:#d4d9d3; white-space:nowrap; letter-spacing:1px; font-size:18px; }
.jd-home .jd-review-stars>span { position:absolute; left:0; top:0; overflow:hidden; color:#efb300; }
.jd-home .jd-review blockquote { margin:11px 0 0 48px; font-size:12px; line-height:1.4; max-height:68px; overflow:auto; padding-right:4px; scrollbar-width:thin; }
.jd-home .jd-review-quote { position:absolute; right:11px; top:34px; font-size:32px; color:#d2e8be; font-weight:900; line-height:1; pointer-events:none; }
.jd-home .jd-visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.jd-home .jd-review-controls { display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin-top:10px; }
.jd-home .jd-review-controls button { border:1px solid #dce7d8; background:#f2f7ed; color:var(--jd-ink); border-radius:8px; min-height:32px; min-width:32px; padding:4px 8px; font:700 11px var(--jd-font); cursor:pointer; }
.jd-home .jd-review-position { font-size:10px; color:var(--jd-muted); }
.jd-home .jd-app-teaser { display:flex; align-items:center; justify-content:center; gap:18px; padding:16px; min-height:158px; border-radius:18px; background:radial-gradient(at top right,#dceecb,transparent 70%),#eff8e5; }
.jd-home .jd-app-phone { position:relative; width:62px; height:113px; flex-shrink:0; border:4px solid #173d30; border-radius:12px; background:#fff; transform:rotate(-8deg); box-shadow:4px 7px 0 #b7ceaa66; display:grid; place-items:center; }
.jd-home .jd-app-phone>span { position:absolute; top:0; left:15px; width:23px; height:5px; background:#173d30; border-radius:0 0 5px 5px; }
.jd-home .jd-app-phone img { width:43px; height:auto; }
.jd-home .jd-app-soon { display:inline-block; padding:3px 8px; border-radius:20px; background:#dceccf; color:#396e18; font-size:10px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }
.jd-home .jd-app-teaser h2 { font-size:16px; line-height:1.2; margin:7px 0 5px; font-weight:900; }
.jd-home .jd-app-teaser p { font-size:11px; line-height:1.4; }
.jd-home .jd-app-platforms { display:block; margin-top:7px; font-size:10px; color:#52654a; }
@keyframes jd-review-in { from { opacity:.3; transform:translateY(5px); } to { opacity:1; transform:none; } }
@media(min-width:1550px) { .jd-home .jd-review figcaption { grid-template-columns:38px auto 1fr; } .jd-home .jd-review-avatar { grid-row:auto; } .jd-home .jd-review .jd-rating { justify-self:end; } }
@media(max-width:1300px) and (min-width:901px) { .jd-home .jd-review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .jd-home .jd-review-grid>.jd-review:nth-child(n+3) { display:none; } }
@media(max-width:1100px) { .jd-home .jd-social-proof { grid-template-columns:1fr; } .jd-home .jd-app-teaser { justify-content:flex-start; max-width:430px; } }
@media(max-width:800px) { .jd-home .jd-social-proof .jd-reviews { grid-template-columns:1fr; } }
@media(max-width:600px) { .jd-home .jd-review-grid { grid-template-columns:1fr; } .jd-home .jd-review-grid>.jd-review:nth-child(n+2) { display:none; } .jd-home .jd-review-controls button { min-height:40px; min-width:40px; } }
@media(prefers-reduced-motion:reduce) { .jd-home .jd-review[data-review-card] { animation:none; } }
@media(min-width:601px) and (max-width:1300px) { .jd-home .jd-review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .jd-home .jd-review-grid>.jd-review:nth-child(n+3) { display:none; } }
.jd-home .jd-review-controls { grid-column:2; }
.jd-home .jd-social-proof .jd-reviews, .jd-home .jd-social-proof .jd-review-grid { align-items:start; }
.jd-home .jd-social-proof .jd-reviews .jd-section-heading { margin-bottom:0; }

.jd-home .jd-review-author { min-width:0; }
.jd-home .jd-review-author strong { display:block; }
.jd-home .jd-review-date { display:block; margin-top:2px; color:#6b796f; font-size:10px; font-weight:400; line-height:1.3; }

/* Homepage cuisine cards: isolated food illustrations above compact labels. */
.jd-home .jd-kitchen-strip { gap: 14px; padding-block: 14px; }
.jd-home .jd-kitchen-strip .jd-chip-grid { gap: 9px; }
.jd-home .jd-kitchen-strip .jd-chip-food {
    min-height: 86px;
    padding: 6px;
    gap: 2px;
    border-radius: 12px;
    background: linear-gradient(#fff, #f9faf9);
    font-size: 13px;
    line-height: 1.2;
}
.jd-home .jd-kitchen-art {
    display: grid;
    place-items: center;
    width: 100%;
    height: 50px;
    color: var(--jd-green);
}
.jd-home .jd-kitchen-art img { width: 108px; height: 50px; object-fit: contain; }
.jd-home .jd-kitchen-art .jd-icon { width: 28px; height: 28px; }
@media (min-width: 1251px) {
    .jd-home .jd-kitchen-strip .jd-chip-grid {
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: minmax(0, 1fr);
    }
}

@media (max-width: 600px) {
    .jd-home .jd-kitchen-strip .jd-chip-grid {
        min-width: 0;
        grid-template-columns: none;
        grid-auto-flow: column;
        grid-auto-columns: 44%;
        padding: 3px 2px 7px;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        scroll-padding-inline: 2px;
        scroll-snap-type: x proximity;
        scrollbar-width: thin;
    }
    .jd-home .jd-kitchen-strip .jd-chip-food { scroll-snap-align: start; }
}

/* Popular dishes and restaurant discovery on the homepage. */
.jd-home .jd-discovery-board {
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
    gap: 20px;
    padding-block: 16px;
}
.jd-home .jd-discovery-board > section { min-width: 0; }
.jd-home .jd-discovery-board .jd-section-heading { margin-bottom: 0; }
.jd-home .jd-discovery-board .jd-section-heading p { font-size: 12px; }
.jd-home .jd-discovery-board .jd-section-heading h2 { font-size: 21px; }
.jd-home .jd-discovery-board .jd-product-grid {
    display: grid;
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: calc((100% - 30px) / 4);
    gap: 10px;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    padding: 3px 2px 7px;
    scrollbar-width: thin;
}
.jd-home .jd-discovery-board .jd-product {
    padding: 0;
    gap: 0;
    overflow: hidden;
    scroll-snap-align: start;
    border-radius: 11px;
}
.jd-home .jd-discovery-board .jd-product-art {
    position: relative;
    display: grid;
    place-items: center;
    height: 82px;
    margin: 0;
    background: #edf6e4;
    color: var(--jd-green);
}
.jd-home .jd-discovery-board .jd-product-art img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.jd-home .jd-product-popular {
    position: absolute;
    bottom: 4px;
    left: 6px;
    padding: 2px 6px;
    border-radius: 12px;
    background: white;
    color: #365522;
    font-size: 10px;
    font-weight: 800;
}
.jd-home .jd-product-copy { display: flex; flex: 1; flex-direction: column; padding: 8px 9px; }
.jd-home .jd-product-copy h3 { font-size: 13px; line-height: 1.2; }
.jd-home .jd-product-details {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 4px;
    margin-top: auto;
    padding-top: 4px;
    font-size: 11px;
    color: var(--jd-muted);
}
.jd-home .jd-product-details .jd-price { font-size: 13px; white-space: nowrap; }
.jd-home .jd-dish-controls { display: flex; grid-column: 2; gap: 6px; margin-top: 8px; }
.jd-home .jd-dish-controls[hidden] { display: none; }
.jd-home .jd-dish-controls button {
    min-width: 38px;
    min-height: 36px;
    border: 0;
    border-radius: 9px;
    color: var(--jd-ink);
    background: var(--jd-soft);
    cursor: pointer;
}
.jd-home .jd-dish-controls button:disabled { opacity: .45; cursor: default; }
.jd-home .jd-discovery-board .jd-restaurant-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
    overflow: hidden;
    border: 1px solid var(--jd-line);
    border-radius: 12px;
    box-shadow: var(--jd-shadow);
}
.jd-home .jd-discovery-board .jd-restaurant {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 9px;
    min-height: 47px;
}
.jd-home .jd-discovery-board .jd-restaurant + .jd-restaurant { border-top: 1px solid var(--jd-line); }
.jd-home .jd-discovery-board .jd-restaurant:hover { background: #f4f8ef; }
.jd-home .jd-discovery-board .jd-restaurant-symbol { flex: 0 0 30px; width: 30px; height: 30px; border-radius: 8px; }
.jd-home .jd-discovery-board .jd-restaurant-symbol img { width: 30px; height: 30px; }
.jd-home .jd-discovery-board .jd-restaurant-symbol svg { width: 17px; height: 17px; }
.jd-home .jd-restaurant-copy { flex: 1; min-width: 0; font-size: 12px; line-height: 1.25; }
.jd-home .jd-restaurant-copy .jd-address { display: block; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.jd-home .jd-restaurant-rating { font-size: 11px; font-weight: 800; white-space: nowrap; }
.jd-home .jd-restaurant-rating > span { color: #e8a400; }
.jd-home .jd-restaurant-rating small { font-size: inherit; color: var(--jd-muted); }
.jd-home .jd-restaurant-new { background: var(--jd-green); color: #fff; border-radius: 6px; padding: 2px 5px; font-size: 10px; font-weight: 800; }
.jd-home .jd-all-restaurants { grid-column: 2; justify-self: start; margin-top: 8px; padding: 7px 10px; min-height: 0; font-size: 11px; }
@media (min-width: 1480px) {
    .jd-home .jd-discovery-board .jd-products,
    .jd-home .jd-discovery-board .jd-restaurants {
        display: grid;
        align-items: start;
        grid-template-columns: 200px minmax(0, 1fr);
        gap: 12px;
    }
    .jd-home .jd-discovery-board .jd-restaurants { border-left: 1px solid var(--jd-line); padding-left: 14px; }
}
@media (max-width: 1479px) {
    .jd-home .jd-discovery-board .jd-section-heading { margin-bottom: 10px; }
}
@media (max-width: 1000px) {
    .jd-home .jd-discovery-board { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
    .jd-home .jd-discovery-board .jd-product-grid { grid-auto-columns: calc((100% - 10px) / 2.2); }
}

/* Payment badges in the shared footer. */
.jd-portal .jd-footer-payments { grid-column: 1 / -1; min-width: 0; }
.jd-portal .jd-footer .jd-payment-list {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0 0;
}
.jd-portal .jd-payment {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-width: 46px;
    min-height: 32px;
    padding: 3px 7px;
    border-radius: 7px;
    background: #fff;
    color: #19372f;
    box-shadow: 0 2px 5px #0002;
    font-size: 12px;
    font-weight: 800;
}
.jd-portal .jd-payment svg { width: 16px; height: 16px; flex: none; }
.jd-portal .jd-payment-paypal { color: #003087; font-style: italic; }
.jd-portal .jd-payment-paypal > span > span { color: #0070ba; }
.jd-portal .jd-google-g {
    font-size: 16px;
    background: conic-gradient(#4285f4 0 100deg, #34a853 100deg 195deg, #fbbc05 195deg 260deg, #ea4335 260deg 325deg, #4285f4 325deg);
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.jd-portal .jd-payment-sr {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.jd-portal .jd-footer .jd-payment-note { margin: 7px 0 0; color: #d4e3d7; font-size: 11px; }
@media (min-width: 1280px) {
    .jd-portal .jd-footer-grid {
        grid-template-columns: minmax(250px, 1.2fr) minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1fr) minmax(290px, 1.3fr);
        gap: 22px;
    }
    .jd-portal .jd-footer-payments { grid-column: -2 / -1; border-left: 1px solid #ffffff30; padding-left: 18px; }
}
