@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&display=swap');
@media(min-width:901px){.hero.hero-slider{height:430px;min-height:430px}}
.product-no-image{display:grid;place-items:center;width:100%;aspect-ratio:1/1;min-height:150px;border-radius:10px;background:#f2f2f2;color:#929292;font-size:12px;font-weight:600}@media(max-width:560px){.product-card .product-no-image{min-height:86px;border-radius:7px;font-size:9px}#featured-products .product-card .product-no-image,#fresh-products .product-card .product-no-image,.category-product-slider .product-card .product-no-image{min-height:78px}}
body,button,input,select,textarea{font-family:'Manrope',sans-serif!important}h1,h2,h3,h4,.brand,.receipt-logo-mark{font-family:'Manrope',sans-serif!important}

:root {
    --red: #d92736;
    --dark: #202124;
    --cream: #fff9f7;
    --muted: #6d6d73;
    --line: #eee8e5;
    --green: #238b45;
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth
}

body {
    margin: 0;
    font-family: 'DM Sans', sans-serif;
    color: var(--dark);
    background: #f8f8f8
}

a {
    text-decoration: none;
    color: inherit
}

button,
input,
select,
textarea {
    font: inherit
}

button {
    cursor: pointer;
    border: 0
}

img {
    max-width: 100%;
    object-fit: cover
}

.nav {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 13px max(4vw, 25px);
    background: rgba(255, 255, 255, .9);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--line)
}

.brand {
    font: bold 22px 'Playfair Display';
    white-space: nowrap
}

.brand span {
    color: var(--red)
}

.brand small {
    display: block;
    font: 10px 'DM Sans';
    letter-spacing: .5px;
    color: var(--muted)
}

.nav-search {
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0;
    flex: 1;
    max-width: 430px;
    position: relative
}

.hide-nav-search .nav-search {
    display: none
}

.nav-search input {
    border: 0;
    outline: 0;
    background: transparent;
    padding: 11px 48px 11px 11px;
    width: 100%
}

.nav-search-icon {
    align-items: center;
    background: var(--red);
    border: 0;
    border-radius: 6px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    height: 32px;
    justify-content: center;
    padding: 0;
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 32px
}

.nav-search-icon svg {
    fill: none;
    height: 17px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 2.5;
    width: 17px
}

.nav-search-icon:hover,
.nav-search-icon:focus-visible {
    background: #b91d2d
}

.nav-search-results {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 9px;
    box-shadow: 0 12px 25px #0002;
    display: none;
    left: 0;
    max-height: 360px;
    overflow: auto;
    position: absolute;
    right: 0;
    top: calc(100% + 7px);
    z-index: 20
}

.nav-search-results.show {
    display: block
}

.nav-search-results a {
    align-items: center;
    color: inherit;
    display: flex;
    gap: 10px;
    padding: 9px 11px;
    text-decoration: none
}

.nav-search-results a+a {
    border-top: 1px solid var(--line)
}

.nav-search-results a:hover {
    background: #fff7f7
}

.nav-search-results img {
    border-radius: 5px;
    height: 38px;
    object-fit: cover;
    width: 38px
}

.nav-search-results span {
    display: grid;
    gap: 3px
}

.nav-search-results small,
.nav-search-results p {
    color: var(--muted);
    font-size: 12px
}

.nav-search-results p {
    margin: 0;
    padding: 13px
}

.home-search-results {
    margin-top: 24px
}

.category-select {
    border: 0;
    background: transparent;
    color: var(--muted);
    outline: 0
}

.nav-links {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 18px;
    font-size: 14px;
    font-weight: 600
}

.mobile-bottom-nav {
    display: none
}

.cart-link {
    align-items: center;
    background: var(--red);
    color: #fff;
    display: inline-flex;
    gap: 7px;
    padding: 9px 12px;
    border-radius: 9px
}

.cart-icon {
    fill: none;
    height: 21px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2.2;
    width: 21px
}

.cart-count {
    background: #fff;
    color: var(--red);
    border-radius: 6px;
    font-size: 11px;
    padding: 1px 5px
}

.menu-toggle {
    display: none;
    background: none;
    font-size: 20px
}

.hero {
    min-height: 350px;
    padding: 75px max(7vw, 25px);
    background: linear-gradient(100deg, rgba(255, 248, 244, .98) 0%, rgba(255, 244, 239, .83) 43%, rgba(255, 244, 239, .1) 72%), var(--hero-image, url('https://images.unsplash.com/photo-1542838132-92c53300491e?auto=format&fit=crop&w=1600&q=80')) center/cover;
    display: flex;
    align-items: center;
    border: 1px solid rgba(126, 58, 48, .14);
    border-radius: 26px;
    box-shadow: 0 18px 45px rgba(69, 35, 27, .14);
    margin: 20px auto 0;
    overflow: hidden;
    position: relative;
    transition: background .45s ease
}

.hero-copy {
    max-width: 570px;
    animation: rise .7s ease
}

.eyebrow {
    font-size: 11px;
    font-weight: bold;
    letter-spacing: 1.6px;
    color: var(--red);
    text-transform: uppercase
}

.hero h1,
.page-heading h1 {
    font: 700 clamp(38px, 5vw, 64px)/1.08 'Playfair Display';
    margin: 10px 0
}

.hero p {
    max-width: 450px;
    color: #555;
    font-size: 17px;
    line-height: 1.6
}

.primary,
.secondary {
    display: inline-block;
    padding: 13px 22px;
    border-radius: 9px;
    font-weight: bold;
    margin-top: 12px
}

.primary {
    background: var(--red);
    color: white;
    box-shadow: 0 8px 20px #d9273640
}

.primary:hover {
    transform: translateY(-2px);
    background: #bc1e2c
}

.secondary {
    background: #fff;
    color: var(--red);
    border: 1px solid #f1c8cb
}

.wide {
    width: 100%;
    text-align: center
}

.section {
    max-width: 1250px;
    margin: 55px auto;
    padding: 0 25px
}

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

.section h2 {
    font: 700 30px 'Playfair Display';
    margin: 0
}

.section-head a {
    color: var(--red);
    font-weight: bold
}

.category-grid {
    display: flex;
    gap: 13px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    padding-bottom: 4px
}

.category-grid::-webkit-scrollbar { display: none }

.category-card {
    padding: 10px 8px;
    background: rgba(255, 255, 255, .7);
    border: 1px solid white;
    border-radius: 15px;
    box-shadow: 0 7px 22px #27100c0b;
    text-align: center;
    transition: .25s;
    display: flex;
    flex-direction: column
}

.category-grid .category-card { flex: 0 0 calc((100% - 7 * 13px) / 8); scroll-snap-align: start }

.category-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 30px #27100c1a
}

.category-card span {
    display: block;
    font-size: 32px;
    margin-bottom: 8px
}
.category-card .category-card-media{height:72px}.category-card .category-card-image{display:block;width:72px;height:72px;margin:auto;border-radius:6px;object-fit:cover}

.category-card b {
    display: block;
    font-size: 13px
}

.category-card small {
    display: block;
    color: var(--red);
    font-size: 10px;
    margin-top: auto;
    padding-top: 5px
}

.product-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px
}

@media (min-width: 1200px) {
    .product-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr))
    }
}

/* Homepage product rows scroll like carousels, while the catalogue keeps its grid. */
#featured-products,
#fresh-products,
.category-product-slider {
    display: flex;
    gap: 18px;
    overflow-x: auto;
    padding: 3px 2px 12px;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    touch-action: pan-x pan-y;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain
}

#featured-products::-webkit-scrollbar,
#fresh-products::-webkit-scrollbar,
.category-product-slider::-webkit-scrollbar {
    display: none
}

#featured-products .product-card,
#fresh-products .product-card,
.category-product-slider .product-card {
    flex: 0 0 calc((100% - 5 * 18px) / 6);
    min-width: 140px;
    scroll-snap-align: start
}

@media (max-width: 1200px) {
    #featured-products .product-card,
    #fresh-products .product-card,
    .category-product-slider .product-card {
        flex-basis: calc((100% - 4 * 18px) / 5)
    }
}

@media (max-width: 900px) {
    #featured-products .product-card,
    #fresh-products .product-card,
    .category-product-slider .product-card {
        flex-basis: calc((100% - 3 * 18px) / 4)
    }
}

@media (max-width: 560px) {
    #featured-products .product-card,
    #fresh-products .product-card,
    .category-product-slider .product-card {
        flex-basis: calc((100% - 2 * 18px) / 3)
    }
}

.product-card {
    position: relative;
    padding: 12px;
    background: rgba(255, 255, 255, .8);
    border: 1px solid white;
    border-radius: 14px;
    box-shadow: 0 5px 20px #21110b0c;
    transition: .25s
}

.product-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px #21110b18
}

.product-card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
    border-radius: 10px;
    background: #faf8f6
}

.product-card small {
    display: block;
    color: var(--muted);
    font-size: 10px;
    margin-top: 10px
}

.product-card h3 {
    font-size: 14px;
    margin: 4px 0;
    height: 34px
}

.unit {
    font-size: 12px;
    color: var(--muted);
    margin: 4px 0 8px
}

.product-card strong,
.detail-price {
    font-size: 17px
}

.product-card del,
.detail-price del {
    font-size: 12px;
    color: #9b9b9b
}

.discount {
    display: block;
    color: var(--green);
    font-size: 11px;
    font-weight: bold;
    margin: 4px 0
}

.add-btn {
    width: 100%;
    padding: 8px;
    border: 1px solid #eab1b6;
    border-radius: 7px;
    background: #fff7f7;
    color: var(--red);
    font-weight: bold
}

.product-qty {
    align-items: center;
    background: #fff7f7;
    border: 1px solid #eab1b6;
    border-radius: 7px;
    color: var(--red);
    display: flex;
    font-weight: bold;
    justify-content: space-between;
    padding: 4px
}

.product-qty button {
    background: var(--red);
    border: 0;
    border-radius: 5px;
    color: #fff;
    cursor: pointer;
    font-size: 18px;
    height: 28px;
    line-height: 1;
    width: 28px
}

.card-stock {
    color: var(--green);
    font-size: 11px;
    font-weight: 700;
    margin: 4px 0
}

.card-stock.out {
    color: var(--red)
}

.login-required-modal {
    align-items: center;
    background: rgba(32, 20, 19, .52);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 20px;
    position: fixed;
    z-index: 200
}

.login-required-card {
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 22px 60px rgba(20, 8, 7, .3);
    max-width: 390px;
    padding: 32px;
    position: relative;
    text-align: center;
    width: 100%
}

.login-required-card h2 {
    font: 700 27px/1.15 'Playfair Display';
    margin: 9px 0 11px
}

.login-required-card>p:not(.eyebrow) {
    color: var(--muted);
    line-height: 1.55;
    margin: 0 auto 12px;
    max-width: 300px
}

.login-required-card .text-btn {
    background: none;
    color: var(--red);
    display: block;
    font-weight: 700;
    margin: 14px auto 0
}

.login-required-icon {
    align-items: center;
    background: #fff0f1;
    border-radius: 50%;
    color: var(--red);
    display: inline-flex;
    font-size: 25px;
    font-weight: 800;
    height: 48px;
    justify-content: center;
    width: 48px
}

.login-required-close {
    background: transparent;
    color: var(--muted);
    font-size: 24px;
    padding: 2px 8px;
    position: absolute;
    right: 10px;
    top: 8px
}

.wish {
    position: absolute;
    z-index: 1;
    right: 18px;
    top: 18px;
    width: 29px;
    height: 29px;
    border-radius: 50%;
    background: #fff;
    font-size: 20px;
    color: #555
}

.wish.active {
    background: var(--red);
    color: #fff
}

.product-card.is-inactive { background: #f8f7f7; }.product-card.is-inactive img { filter: grayscale(.45); opacity: .72; }.product-inactive-badge { background: #55515a; border-radius: 5px; color: #fff; font-size: 10px; font-weight: 800; left: 18px; letter-spacing: .2px; padding: 5px 7px; position: absolute; text-transform: uppercase; top: 18px; z-index: 2; }.product-card .add-btn.unavailable { background: #f2eeee; border-color: #d9d1d1; color: #7d6e71; cursor: not-allowed; }

.purchase-limits {
    background: #fff7f7;
    border: 1px solid #f0d4d6;
    border-radius: 8px;
    display: flex;
    gap: 18px;
    margin: 14px 0;
    padding: 11px 13px
}

.purchase-limits span {
    color: #666;
    font-size: 13px
}

.purchase-limits b {
    color: var(--red)
}

.offer {
    max-width: 1200px;
    margin: 35px auto;
    border-radius: 20px;
    padding: 45px max(5vw, 25px);
    color: #fff;
    background: linear-gradient(100deg, #b41527, #e5424f), url('https://images.unsplash.com/photo-1601598851547-4302969d0614?auto=format&fit=crop&w=1000&q=80');
    background-blend-mode: multiply
}

.offer h2 {
    font: 700 35px 'Playfair Display';
    margin: 0
}

.offer p {
    max-width: 440px
}

.offer .primary {
    background: #fff;
    color: var(--red)
}

footer {
    margin-top: 70px;
    background: #241f20;
    color: #ddd;
    padding: 48px max(7vw, 25px);
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1.4fr;
    gap: 30px;
    font-size: 13px
}

footer .brand {
    color: #fff
}

footer a {
    display: block;
    margin: 9px 0;
    color: #bbb
}

footer h4 {
    color: #fff;
    margin: 0 0 12px
}

.social {
    font-size: 20px
}

.page-heading {
    max-width: 1250px;
    margin: 40px auto 25px;
    padding: 0 25px
}

.page-heading h1 {
    font-size: 42px
}

.filters {
    background: var(--cream);
    max-width: 1250px;
    padding: 15px 25px;
    margin: auto;
    display: flex;
    gap: 12px;
    align-items: center;
    position: sticky;
    top: 0;
    z-index: 10
}

.filters input,
.filters select {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 11px;
    outline-color: var(--red)
}

.filters input {
    flex: 1
}

.product-logo {
    align-items: center;
    color: #202020;
    display: inline-flex;
    flex-direction: column;
    font-size: 15px;
    line-height: 1.05;
    margin-right: 6px;
    text-decoration: none;
    white-space: nowrap
}

.product-logo span {
    color: var(--red);
    font-size: 19px;
    font-weight: 800
}

.product-logo b {
    font-weight: 700
}

.product-search-field {
    flex: 1;
    position: relative
}

.product-search-field input {
    box-sizing: border-box;
    padding-right: 48px;
    width: 100%
}

.product-search-field button {
    background: var(--red);
    border: 0;
    border-radius: 50%;
    color: #fff;
    cursor: pointer;
    display: grid;
    height: 32px;
    place-items: center;
    width: 32px;
    right: 6px;
    padding: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1
}

.product-search-field button svg {
    fill: none;
    height: 17px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-width: 2.5;
    width: 17px
}

.product-search-field button:hover,
.product-search-field button:focus-visible {
    background: #b91d2d;
    color: #fff
}

.product-actions {
    display: flex;
    gap: 8px;
    margin-left: auto
}

.product-actions a {
    align-items: center;
    border: 1px solid var(--red);
    border-radius: 8px;
    color: var(--red);
    display: inline-flex;
    font-weight: 700;
    gap: 6px;
    padding: 10px 13px;
    text-decoration: none;
    white-space: nowrap
}

.product-actions a:hover {
    background: #fff1f2
}

.product-actions .product-cart-button {
    background: var(--red);
    color: #fff
}

.product-actions .product-cart-button:hover {
    background: #b91d2d
}

.product-cart-icon {
    fill: none;
    height: 19px;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 2;
    width: 19px
}

.product-wishlist-icon {
    fill: currentColor;
    height: 19px;
    filter: drop-shadow(0 1px 1px rgba(126, 58, 48, .16));
    width: 19px
}

.product-pagination-status {
    color: var(--muted);
    font-size: 13px;
    font-weight: 600;
    min-height: 1px;
    padding: 22px 16px 34px;
    text-align: center
}

.filters label {
    font-size: 12px;
    white-space: nowrap
}

.empty {
    min-height: 280px;
    grid-column: 1/-1;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center
}

.empty>b {
    font-size: 45px
}

.detail {
    max-width: 1050px;
    margin: 55px auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 55px;
    padding: 0 25px
}

.detail-image>img {
    width: 100%;
    height: 390px;
    border-radius: 18px
}

.thumbs {
    display: flex;
    gap: 10px;
    margin-top: 10px
}

.thumbs img {
    width: 62px;
    height: 62px;
    border-radius: 8px
}

.detail h1 {
    font: 700 40px 'Playfair Display';
    margin: 6px 0
}

.detail-price {
    font-weight: bold;
    margin: 18px 0
}

.detail-price span {
    font: 12px 'DM Sans';
    color: var(--green);
    background: #edfff1;
    padding: 5px;
    margin-left: 7px
}

.stock {
    color: var(--green);
    font-weight: bold;
    font-size: 13px
}

.stock.out {
    color: var(--red)
}

.buy-row {
    display: flex;
    gap: 10px;
    align-items: center;
    margin-top: 25px
}

.qty {
    display: flex;
    align-items: center;
    gap: 15px;
    border: 1px solid var(--line);
    background: #fff;
    border-radius: 8px;
    padding: 5px 8px
}

.qty button {
    background: #f6f3f2;
    border-radius: 5px;
    width: 25px;
    height: 25px
}

.cart-layout,
.checkout-layout {
    max-width: 1050px;
    margin: 20px auto;
    display: grid;
    grid-template-columns: 1.45fr 1.15fr;
    gap: 25px;
    padding: 0 25px
}

.cart-items,
.summary,
.coupon,
.checkout-form,
.checkout-layout aside,
.order-card,
.profile-card,
.profile-grid section {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    padding: 18px;
    box-shadow: 0 5px 20px #21110b08
}

.cart-item {
    display: flex;
    gap: 15px;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--line)
}

.cart-item:last-child {
    border: 0
}

.cart-item img {
    width: 72px;
    height: 72px;
    border-radius: 9px
}

.cart-item h3 {
    font-size: 14px;
    margin: 0
}

.cart-item>div:nth-child(2) {
    flex: 1
}

.cart-price { align-items: center; display: flex; flex-wrap: wrap; gap: 5px }
.cart-price del { color: var(--muted); font-size: 12px }
.cart-price span { background: #e8f7ed; border-radius: 4px; color: var(--green); font-size: 10px; font-weight: 700; padding: 2px 4px }

.remove {
    color: var(--red);
    background: transparent;
    font-size: 12px
}

.coupon {
    margin-top: 15px;
    display: flex;
    gap: 10px;
    align-items: center
}

.coupon input {
    border: 1px solid var(--line);
    padding: 9px;
    border-radius: 6px;
    flex: 1
}

.coupon button {
    color: var(--red);
    background: white;
    font-weight: bold
}

.coupon-applied {
    justify-content: space-between;
    background: #f0faf3
}

.coupon-applied > div {
    display: grid;
    gap: 3px
}

.coupon-applied small {
    color: var(--green)
}

.coupon .coupon-remove {
    border: 1px solid var(--red);
    border-radius: 6px;
    padding: 8px 10px
}

.summary h3 {
    margin-top: 0
}

.summary p,
.mini-item {
    display: flex;
    justify-content: space-between;
    font-size: 13px
}

.summary hr {
    border: 0;
    border-top: 1px solid var(--line)
}

.summary .grand {
    font-size: 17px
}

.green {
    color: var(--green)
}

.cart-empty {
    margin: 60px auto
}

.checkout-form {
    display: flex;
    flex-direction: column;
    gap: 12px
}

.checkout-form h2,
.checkout-layout aside h2 {
    margin-top: 0;
    font: 700 25px 'Playfair Display'
}

.checkout-form label {
    font-size: 13px;
    font-weight: bold
}

.checkout-form input,
.checkout-form select,
.checkout-form textarea {
    display: block;
    width: 100%;
    margin-top: 5px;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 7px;
    outline-color: var(--red)
}

.checkout-form textarea {
    min-height: 90px;
    resize: vertical
}

.current-location-button {
    align-self: flex-start;
    border: 1px solid var(--red);
    border-radius: 7px;
    background: #fff;
    color: var(--red);
    cursor: pointer;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    padding: 9px 12px
}

.current-location-button:hover:not(:disabled) { background: #fff4f3 }
.current-location-button:disabled { cursor: wait; opacity: .7 }
.location-status { color: #666; font-size: 12px; line-height: 1.4; margin: 7px 0 0 }


.pickup-box {
    background: #fff5f5;
    border-left: 3px solid var(--red);
    padding: 10px;
    font-size: 13px
}

.booking-payment-panel {
    background: #fff8ef;
    border: 1px solid #f1d6aa;
    border-radius: 10px;
    display: grid;
    gap: 12px;
    padding: 15px
}

.booking-payment-panel h3 { margin: 2px 0 6px }
.booking-payment-panel p { font-size: 13px; line-height: 1.45; margin: 0 }
.booking-payment-panel label small { color: var(--muted); font-weight: 400 }
.booking-qr { align-items: center; background: #fff; border: 1px solid #e2c895; border-radius: 8px; display: flex; height: 150px; justify-content: center; justify-self: center; object-fit: contain; width: 150px }
.booking-qr-placeholder { color: #906f35; font-size: 13px; font-weight: 800; letter-spacing: 1px; line-height: 1.25; text-align: center }
.upi-id { background: #fff; border-radius: 6px; padding: 8px }
.upi-id span { color: var(--muted); display: block; font-size: 10px; font-weight: 700; letter-spacing: .4px; text-transform: uppercase }
.upi-copy { background: #fff; border: 1px solid #d9c397; border-radius: 5px; color: #805a18; float: right; font-size: 12px; font-weight: 700; margin-top: -2px; padding: 4px 8px }
.booking-pending-note { color: #8b5a00; font-weight: 600 }
.booking-charge-row b { color: var(--green) }
.booking-status { font-size: 12px }
.booking-status.pending { color: #9a6400 }
.booking-status.verified { color: var(--green) }
.booking-status.rejected { color: var(--red) }
.booking-payment-modal { align-items: center; background: rgba(38, 22, 17, .5); display: flex; inset: 0; justify-content: center; padding: 18px; position: fixed; z-index: 200 }
.booking-payment-modal .booking-payment-panel { box-shadow: 0 18px 60px rgba(35, 19, 14, .26); max-height: calc(100vh - 36px); max-width: 430px; overflow: auto; position: relative; width: 100% }
.booking-popup-close { background: transparent; font-size: 26px; line-height: 1; padding: 0 4px; position: absolute; right: 10px; top: 8px }
.booking-popup-done { justify-self: end }
.booking-checkout-note { background: #fff8ef; border-left: 3px solid #c78319; color: #72501a; font-size: 13px; margin: 0; padding: 10px }
.booking-charge-layout { align-items: start; display: grid; gap: 25px; grid-template-columns: 1.7fr .9fr; margin: 20px auto; max-width: 1050px; padding: 0 25px; position: relative }
.booking-charge-layout aside { background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 5px 20px #21110b08; padding: 18px }
.booking-charge-layout aside h2 { font: 700 25px 'Playfair Display'; margin-top: 0 }
.summary .online-order-total { background: #fff3f3; border: 1px solid #edc3c3; border-radius: 8px; font-size: 17px; font-weight: 800; margin-top: 14px; padding: 13px 11px }
.summary .online-order-total b { color: var(--red); font-size: 19px; font-weight: 800 }
.booking-page-back { background: #fff; border: 1px solid var(--line); border-radius: 50%; font-size: 27px; height: 38px; line-height: 1; position: absolute; right: 32px; top: 12px; width: 38px; z-index: 1 }

.order-tabs {
    max-width: 1250px;
    margin: 0 auto 20px;
    padding: 0 25px
}

.order-tabs button {
    background: #fff;
    padding: 10px 15px;
    border-bottom: 2px solid transparent
}

.order-tabs .active {
    color: var(--red);
    border-color: var(--red)
}

.order-card {
    max-width: 1200px;
    margin: 15px auto;
    display: flex;
    justify-content: space-between;
    gap: 20px
}

.order-card h3 {
    font-size: 14px
}

.order-card>div:last-child {
    text-align: right
}

.status {
    color: var(--green);
    font-size: 12px;
    font-weight: bold
}

.active-order-card {
    display: block;
    padding: 18px
}

.active-order-header,
.order-actions {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between
}

.active-order-header h3 {
    color: var(--muted);
    font-size: 13px;
    font-weight: 500;
    margin: 4px 0 0
}

.order-status {
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    margin: 0;
    padding: 6px 10px;
    text-transform: capitalize
}

.order-status.pending { background: #fff3d6; color: #9a6400 }
.order-status.accepted { background: #e7f6eb; color: var(--green) }
.order-status.delivered { background: #e8f3ff; color: #1466ad }
.order-status.cancelled { background: #fff0f1; color: var(--red) }
.order-status.rejected { background: #fff0f1; color: var(--red) }

.active-order-info {
    border-bottom: 1px solid var(--line);
    border-top: 1px solid var(--line);
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 16px 0;
    padding: 14px 0
}

.active-order-info p { color: var(--muted); font-size: 12px; margin: 0 }
.active-order-info span { display: block; font-size: 10px; font-weight: 700; letter-spacing: .3px; margin-bottom: 4px; text-transform: uppercase }
.active-order-info b { color: var(--dark); display: block; line-height: 1.35 }

.order-actions { justify-content: flex-start }
.order-actions .secondary { font-size: 13px; text-decoration: none }
.order-actions a { display: none }
.order-card-footer { align-items: end; display: flex; gap: 24px; justify-content: space-between; padding-top: 16px }
.order-card-footer .order-charge-summary { margin: 0; min-width: 310px }

@media (max-width: 720px) {
    .order-card-footer { align-items: stretch; flex-direction: column; gap: 16px }
    .order-card-footer .order-charge-summary { min-width: 0; width: 100% }
}
.order-table-scroll { margin-top: 16px; overflow-x: auto }

.order-products table { border-collapse: collapse; min-width: 800px; width: 100% }
.order-products th,
.order-products td { border-bottom: 1px solid var(--line); font-size: 12px; padding: 10px 8px; text-align: left }
.order-products th { background: #fff7f7; color: var(--muted); font-size: 10px; text-transform: uppercase }
.order-products td img { border-radius: 6px; height: 38px; object-fit: cover; width: 38px }
.order-products tfoot td { background: #fff7f7; color: var(--dark); font-weight: 700 }
.order-products tfoot span { display: block; font-size: 10px; margin-bottom: 2px; text-transform: uppercase }
.order-charge-summary {
    display: grid;
    gap: 7px;
    margin: 14px 0 0 auto;
    max-width: 310px
}
.order-charge-summary p {
    display: flex;
    font-size: 13px;
    justify-content: space-between;
    margin: 0
}
.order-charge-summary .order-payable {
    border-top: 1px solid var(--line);
    font-size: 14px;
    margin-top: 3px;
    padding-top: 9px
}
.order-charge-summary .coupon-discount { color: var(--green) }

.receipt-modal {
    align-items: center;
    background: #21110b80;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 20px;
    position: fixed;
    z-index: 50
}

.receipt-card {
    background: #fff;
    box-sizing: border-box;
    border-radius: 14px;
    box-shadow: 0 20px 50px #0004;
    max-height: min(760px, calc(100vh - 40px));
    max-width: 1080px;
    overflow: auto;
    padding: 24px;
    position: relative;
    width: 100%
}

.receipt-card h2 { margin: 4px 0 }
.receipt-order-id { color: var(--red); font-weight: 700; margin: 0 0 18px }
.receipt-close { background: transparent; font-size: 25px; padding: 2px 8px; position: absolute; right: 10px; top: 8px }
.receipt-details { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); margin-bottom: 16px; padding: 12px 0 }
.receipt-details .active-order-info { border: 0; margin: 0; padding: 0 }
.receipt-table { overflow: hidden }
.receipt-table table { border-collapse: collapse; table-layout: fixed; width: 100% }
.receipt-table th,
.receipt-table td { border-bottom: 1px solid var(--line); font-size: 12px; overflow-wrap: anywhere; padding: 9px 5px; text-align: left }
.receipt-table th { background: #fff7f7; font-size: 10px; overflow-wrap: anywhere; padding: 9px 5px; text-transform: uppercase }
.receipt-table td img { border-radius: 5px; height: 34px; width: 34px }
.receipt-table th:nth-child(1), .receipt-table td:nth-child(1) { width: 4% }
.receipt-table th:nth-child(2), .receipt-table td:nth-child(2) { width: 7% }
.receipt-table th:nth-child(3), .receipt-table td:nth-child(3) { width: 25% }
.receipt-table th:nth-child(4), .receipt-table td:nth-child(4) { width: 8% }
.receipt-table th:nth-child(n+5), .receipt-table td:nth-child(n+5) { width: 11.2% }

.receipt-shop {
    align-items: center;
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: 12px;
    grid-template-columns: auto 1fr auto;
    padding: 0 34px 16px 0
}

.receipt-shop h2 { font-size: 23px }
.receipt-shop p { color: var(--muted); font-size: 12px; margin: 4px 0 0 }
.receipt-logo-mark,
.receipt-logo-image { border-radius: 9px; height: 48px; width: 48px }
.receipt-logo-mark { align-items: center; background: var(--red); color: #fff; display: flex; font: 700 26px 'Playfair Display'; justify-content: center }
.receipt-logo-image { object-fit: contain }
.receipt-phone { text-align: right; white-space: nowrap }
.receipt-phone span,
.receipt-customer span { color: var(--muted); display: block; font-size: 10px; font-weight: 700; letter-spacing: .3px; margin-bottom: 4px; text-transform: uppercase }
.receipt-phone b { color: var(--dark); font-size: 13px }
.receipt-customer { display: grid; gap: 13px 18px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 17px 0 }
.receipt-customer p { margin: 0 }
.receipt-customer b { display: block; font-size: 13px; line-height: 1.35 }
.receipt-address { grid-column: span 3 }
.receipt-table tfoot td { background: #fff7f7; font-weight: 700 }
.receipt-table tfoot span { color: var(--muted); display: block; font-size: 9px; margin-bottom: 3px; text-transform: uppercase }
.receipt-download { display: block; margin: 20px 0 0 auto }

/* Category browsing remains available on the products page; the header stays focused on search. */
.nav .category-select { display: none }

@media(max-width:560px) {
    .receipt-modal { align-items: flex-start; padding: 10px }
    .receipt-card { max-height: calc(100vh - 20px); padding: 18px }
    .receipt-shop { grid-template-columns: auto 1fr; padding-right: 25px }
    .receipt-phone { grid-column: 1 / -1; text-align: left }
    .receipt-customer { grid-template-columns: repeat(2, minmax(0, 1fr)) }
    .receipt-address { grid-column: span 2 }
    .receipt-table th,
    .receipt-table td { font-size: 9px; padding: 6px 2px }
    .receipt-table th { font-size: 8px }
    .receipt-table td img { height: 22px; width: 22px }
    .receipt-table th:nth-child(2),
    .receipt-table td:nth-child(2) { display: none }
    .receipt-table th:nth-child(1), .receipt-table td:nth-child(1) { width: 5% }
    .receipt-table th:nth-child(3), .receipt-table td:nth-child(3) { width: 29% }
    .receipt-table th:nth-child(4), .receipt-table td:nth-child(4) { width: 8% }
    .receipt-table th:nth-child(n+5), .receipt-table td:nth-child(n+5) { width: 11.5% }
}



.profile-card {
    max-width: 900px;
    margin: 50px auto 25px;
    display: flex;
    align-items: center;
    gap: 18px
}

.profile-card>div:nth-child(2) {
    flex: 1
}

.profile-card h1 {
    font: 700 32px 'Playfair Display';
    margin: 2px 0
}

.avatar {
    width: 70px;
    height: 70px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--red);
    color: white;
    font: 30px 'Playfair Display'
}

.avatar img {
    width: 100%;
    height: 100%;
    border-radius: inherit;
    object-fit: cover
}

.profile-avatar-wrap {
    position: relative;
    flex: 0 0 70px
}

.photo-edit {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 999px;
    bottom: -10px;
    color: var(--red);
    cursor: pointer;
    font-size: 10px;
    font-weight: 700;
    left: 50%;
    padding: 4px 7px;
    position: absolute;
    transform: translateX(-50%);
    white-space: nowrap
}

.photo-edit,
.photo-delete {
    display: none
}

.profile-avatar-wrap.editing .photo-edit,
.profile-avatar-wrap.editing .photo-delete {
    display: block
}

.photo-delete {
    background: transparent;
    border: 0;
    color: var(--red);
    cursor: pointer;
    font-size: 11px;
    font-weight: 700;
    left: 50%;
    padding: 0;
    position: absolute;
    top: calc(100% + 20px);
    transform: translateX(-50%);
    white-space: nowrap
}

.photo-crop-modal {
    align-items: center;
    background: rgba(29, 20, 19, .68);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 20px;
    position: fixed;
    z-index: 200
}

.photo-crop-card {
    background: #fff;
    border-radius: 16px;
    max-width: 390px;
    padding: 22px;
    text-align: center;
    width: min(100%, 390px)
}

.photo-crop-card h2 {
    margin: 0 0 6px
}

.photo-crop-card p {
    color: var(--muted);
    font-size: 13px;
    margin: 0 0 16px
}

#photo-crop-canvas {
    border-radius: 50%;
    cursor: grab;
    display: block;
    height: min(72vw, 300px);
    margin: auto;
    touch-action: none;
    width: min(72vw, 300px)
}

#photo-crop-canvas:active {
    cursor: grabbing
}

.photo-crop-zoom {
    accent-color: var(--red);
    margin: 18px 0;
    width: 100%
}

.photo-crop-actions {
    display: flex;
    gap: 10px;
    justify-content: center
}

.customer-id-home {
    background: #fff;
    border: 1px solid #e6c7c8;
    border-radius: 999px;
    color: var(--red);
    display: inline-block;
    font-size: 12px !important;
    font-weight: 700;
    margin-top: 16px !important;
    padding: 7px 11px
}

.customer-id-card {
    color: var(--red);
    font-size: 14px;
    font-weight: 700;
    margin: 8px 0 0
}

.customer-id-header {
    background: #fff5f5;
    border: 1px solid #efc7ca;
    border-radius: 999px;
    color: var(--red);
    font-size: 14px;
    font-weight: 700;
    margin: 0;
    padding: 6px 9px;
    white-space: nowrap
}

@media(max-width:900px) {
    .nav-links:has(.customer-id-header) {
        display: flex;
        margin-left: auto;
        order: 1;
        width: auto
    }

    .nav-links:has(.customer-id-header) a {
        display: none
    }

    .customer-id-header {
        font-size: 12px
    }
}

@media(max-width:560px) {
    .nav:has(.customer-id-header) .brand {
        flex-basis: auto
    }

    .nav-links:has(.customer-id-header) {
        margin-left: auto;
        order: 0
    }

    .nav:has(.customer-id-header) .nav-search {
        order: 2;
        width: 100%
    }
}


@media(min-width:901px) {
    .profile-page .category-select {
        display: none
    }

    body:has(#cart-page) .category-select {
        display: none
    }
}

.profile-grid {
    max-width: 900px;
    margin: auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px
}

.profile-details {
    grid-row: span 2
}

.profile-section-head h2,
.profile-grid h2 {
    margin-top: 0
}

.profile-section-head {
    align-items: start;
    display: flex;
    justify-content: space-between;
    gap: 12px
}

.profile-edit-button {
    border: 1px solid var(--line);
    border-radius: 999px;
    margin: 0;
    padding: 6px 12px
}

.profile-summary {
    display: grid;
    gap: 12px;
    margin-top: 18px
}

.profile-summary p {
    border-bottom: 1px solid var(--line);
    display: grid;
    gap: 4px;
    margin: 0;
    padding-bottom: 11px
}

.profile-summary p:last-child {
    border: 0;
    padding-bottom: 0
}

.profile-summary span {
    color: var(--muted);
    font-size: 12px
}

.profile-form-actions {
    align-items: center;
    display: flex;
    gap: 12px
}

.profile-form-actions .text-btn {
    margin: 0
}



#profile-form {
    display: grid;
    gap: 14px;
    margin-top: 18px
}

/* Keep the profile editor closed until the customer presses Edit. */
#profile-form[hidden],
#profile-summary[hidden] {
    display: none
}

#profile-form label {
    color: #363030;
    font-size: 13px;
    font-weight: 700
}

#profile-form input {
    box-sizing: border-box;
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 11px;
    border: 1px solid var(--line);
    border-radius: 7px;
    outline-color: var(--red)
}


.address {
    padding: 12px;
    background: #fafafa;
    border-radius: 8px;
    font-size: 13px
}

.delete-address {
    background: transparent;
    color: var(--red);
    display: none;
    font-size: 12px;
    font-weight: 700;
    margin-top: 10px;
    padding: 0
}

.address-editing .delete-address {
    display: block
}

.address-empty {
    color: var(--muted);
    font-size: 13px
}

.text-btn {
    background: none;
    color: var(--red);
    font-weight: bold;
    margin-top: 10px
}

@keyframes rise {
    from {
        opacity: 0;
        transform: translateY(15px)
    }

    to {
        opacity: 1;
        transform: none
    }
}

.toast {
    align-items: center;
    background: linear-gradient(135deg, #d92736, #a91625);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 14px;
    bottom: 24px;
    box-shadow: 0 14px 34px rgba(41, 20, 18, .28);
    color: #fff;
    display: flex;
    font-size: 14px;
    font-weight: 600;
    left: 50%;
    line-height: 1.4;
    max-width: min(420px, calc(100% - 32px));
    opacity: 0;
    padding: 14px 18px;
    position: fixed;
    transform: translate(-50%, 20px) scale(.97);
    transition: opacity .25s ease, transform .25s ease;
    z-index: 99
}

.toast.show {
    opacity: 1;
    transform: translate(-50%, 0) scale(1)
}

@media(max-width:900px) {
    .category-grid {
        grid-template-columns: repeat(4, 1fr)
    }

    .product-grid {
        grid-template-columns: repeat(3, 1fr)
    }

    #featured-products .product-card,
    #fresh-products .product-card,
    .category-product-slider .product-card {
        flex-basis: calc((100% - 18px) / 2)
    }

    .nav-search {
        order: 3;
        max-width: none;
        width: 100%
    }

    .nav {
        flex-wrap: wrap
    }

    .category-select {
        display: none
    }

    .menu-toggle {
        display: block;
        margin-left: auto
    }

    .nav-links {
        display: none;
        width: 100%;
        margin: 0
    }

.nav-links.open {
        display: flex;
        justify-content: space-around
    }

    .mobile-bottom-nav {
        display: none
    }

    .cart-layout,
    .checkout-layout {
        grid-template-columns: 1fr
    }

    .detail {
        gap: 25px
    }

    .hero {
        min-height: 320px
    }

    footer {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:560px) {
    body {
        padding-bottom: calc(76px + env(safe-area-inset-bottom));
        overscroll-behavior-y: auto;
        touch-action: pan-y pinch-zoom
    }

    .toast {
        bottom: calc(88px + env(safe-area-inset-bottom))
    }

    .booking-payment-panel { grid-template-columns: 1fr }
    .booking-payment-modal { align-items: flex-end; padding: 0 }
    .booking-payment-modal .booking-payment-panel { border-bottom-left-radius: 0; border-bottom-right-radius: 0; max-height: min(88vh, 680px); padding: 18px; width: 100% }
    .booking-qr { height: 128px; justify-self: center; width: 128px }
    .booking-charge-layout { grid-template-columns: 1fr; padding: 0 16px }
    .booking-page-back { right: 26px; top: 10px }

    .cart-layout { padding: 0 16px }
    .cart-items { padding: 10px 12px }
    .cart-item {
        align-items: start;
        display: grid;
        gap: 6px 10px;
        grid-template-areas: 'image info quantity' 'image info remove';
        grid-template-columns: 74px minmax(0, 1fr) auto;
        min-height: 96px;
        padding: 12px 0
    }
    .cart-item img { grid-area: image; height: 74px; width: 74px }
    .cart-item > div:nth-child(2) { grid-area: info; min-width: 0; padding-top: 2px }
    .cart-item h3 { -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; display: -webkit-box; font-size: 14px; line-height: 1.3; margin: 0 0 4px; overflow: hidden }
    .cart-item > div:nth-child(2) p { font-size: 12px; margin: 2px 0 5px }
    .cart-item > div:nth-child(2) strong { font-size: 14px }
    .cart-price { gap: 4px }
    .cart-price del { font-size: 11px }
    .cart-price span { font-size: 9px; padding: 2px 3px }
    .cart-item .qty { gap: 8px; grid-area: quantity; padding: 3px 5px }
    .cart-item .qty button { height: 24px; width: 24px }
    .cart-item .remove { font-size: 11px; grid-area: remove; justify-self: center; padding: 3px 0 }

    .nav {
        padding: 11px 18px;
        gap: 10px
    }

    .brand {
        flex-basis: 100%;
        font-size: 19px
    }

    .nav-search {
        order: 2;
        width: auto
    }

    .menu-toggle {
        display: none
    }

    .nav-links {
        display: none;
        font-size: 12px;
        gap: 8px
    }

    .mobile-bottom-nav {
        align-items: stretch;
        background: rgba(255, 255, 255, .96);
        border-top: 1px solid rgba(126, 58, 48, .13);
        bottom: 0;
        box-shadow: 0 -8px 24px rgba(49, 28, 23, .1);
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        left: 0;
        min-height: 64px;
        padding: 6px 8px calc(6px + env(safe-area-inset-bottom));
        position: fixed;
        right: 0;
        z-index: 100
    }

    .mobile-bottom-nav a {
        align-items: center;
        color: var(--muted);
        display: flex;
        flex-direction: column;
        font-size: 10px;
        font-weight: 700;
        gap: 2px;
        justify-content: center;
        line-height: 1.1;
        position: relative
    }

    .mobile-bottom-nav a span {
        font-size: 20px;
        line-height: 1
    }

    .mobile-nav-icon {
        fill: none;
        height: 20px;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.9;
        width: 20px
    }

    .mobile-bottom-nav a.active {
        color: var(--red)
    }

    .mobile-bottom-nav .cart-count {
        align-items: center;
        background: var(--red);
        border-radius: 50%;
        color: #fff;
        display: inline-flex;
        font-size: 9px;
        height: 15px;
        justify-content: center;
        position: absolute;
        right: 23%;
        top: 2px;
        width: 15px
    }

    .hero {
        min-height: 120px;
        padding: 15px 20px 25px;
        background-position: 62%;
        border-radius: 20px;
        margin-top: 12px;
        width: calc(100% - 24px)
    }

    .hero h1 {
        font-size: 28px;
        margin: 6px 0
    }

    .hero p {
        font-size: 13px;
        line-height: 1.45;
        margin: 0
    }

    .hero .primary {
        margin-top: 9px;
        padding: 10px 15px
    }

    .slider-dots {
        bottom: 5px;
        left: 50%;
        transform: translateX(-50%)
    }

    .section {
        margin: 40px auto;
        padding: 0 16px
    }

    .section h2 {
        font-size: 25px
    }

    .category-grid {
        display: flex;
        gap: 8px;
        grid-template-columns: none;
        margin-right: -16px;
        overflow-x: auto;
        padding: 2px 16px 8px 0;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        touch-action: pan-x pan-y;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior-x: contain
    }

    .category-grid::-webkit-scrollbar {
        display: none
    }

    .category-card {
        flex: 0 0 calc((100% - 24px) / 4);
        min-height: 100px;
        padding: 6px 4px;
        border-radius: 10px;
        scroll-snap-align: start
    }

    .category-card .category-card-media {
        height: 50px
    }

    .category-card .category-card-image {
        width: 50px;
        height: 50px;
        border-radius: 5px
    }

    .category-card b {
        font-size: 10px;
        line-height: 1.2;
        margin-top: 4px
    }

    .category-card small {
        font-size: 8px;
        padding-top: 3px
    }

    .product-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px
    }

    #featured-products,
    #fresh-products,
    .category-product-slider {
        gap: 12px;
        margin-right: -16px;
        padding-right: 16px
    }

    #featured-products .product-card,
    #fresh-products .product-card,
    .category-product-slider .product-card {
        flex-basis: calc((100% - 24px) / 3)
    }

    #featured-products .product-card img,
    #fresh-products .product-card img,
    .category-product-slider .product-card img {
        height: 78px
    }

    .product-card {
        border-radius: 10px;
        padding: 6px
    }

    .product-card img {
        border-radius: 7px;
        height: 86px
    }

    .product-card small {
        font-size: 8px;
        margin-top: 5px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap
    }

    .product-card h3 {
        font-size: 11px;
        height: 28px;
        line-height: 1.25;
        margin: 3px 0
    }

    .product-card .unit,
    .card-stock {
        font-size: 9px;
        line-height: 1.2;
        margin: 3px 0
    }

    .product-card strong {
        font-size: 13px
    }

    .product-card del,
    .discount {
        font-size: 9px
    }

    .add-btn {
        font-size: 11px;
        padding: 6px 3px
    }

    .product-qty {
        padding: 2px
    }

    .product-qty button {
        font-size: 14px;
        height: 22px;
        width: 22px
    }

    .wish {
        font-size: 15px;
        height: 23px;
        right: 10px;
        top: 10px;
        width: 23px
    }

    .filters {
        display: grid;
        gap: 8px;
        grid-template-columns: minmax(0, 3fr) minmax(0, 2fr) auto;
        padding: 8px 12px
    }

    .product-logo,
    .product-actions a:not(.product-cart-button):not(.product-wishlist-button) {
        display: none
    }

    .product-search-field {
        display: block;
        grid-column: 1 / 3;
        grid-row: 1;
        min-width: 0;
        width: calc(100% -  1px);
    }

    .product-search-field input {
        padding-left: 11px;
        padding-right: 80px
    }

    .product-search-field button {
        left: auto;
        right: 6px
    }

    .filters>select {
        font-size: 12px;
        grid-row: 2;
        min-width: 0;
        padding: 8px;
        width: 100%
    }

    #category-filter {
        grid-column: 1 / 3
    }

    #sort-filter {
        grid-column: 3
    }

    .product-actions {
        grid-column: 3;
        grid-row: 1;
        justify-content: flex-end;
        margin: 0
    }

    .product-actions .product-cart-button {
        border-radius: 7px;
        gap: 0;
        padding: 8px
    }

    .product-actions .product-wishlist-button {
        border-radius: 7px;
        gap: 0;
        padding: 8px
    }

    .product-actions .product-cart-label,
    .product-actions .product-wishlist-label {
        display: none
    }

    .product-actions .product-cart-icon {
        height: 20px;
        width: 20px
    }

    .product-actions .product-wishlist-icon {
        height: 20px;
        width: 20px
    }

    .product-actions .product-cart-button .cart-count {
        font-size: 11px
    }

    .page-heading {
        padding: 0 16px;
        margin: 28px auto 15px
    }

    .page-heading h1 {
        font-size: 34px
    }

    .detail {
        grid-template-columns: 1fr;
        margin: 25px auto;
        padding: 0 16px
    }

    .detail-image>img {
        height: 280px
    }

    .detail h1 {
        font-size: 33px
    }

    .buy-row {
        flex-wrap: wrap
    }

    .cart-layout,
    .checkout-layout {
        padding: 0 16px
    }

    .coupon {
        flex-wrap: wrap
    }

    .order-card {
        margin: 12px 16px;
        display: block
    }

    .order-card>div:last-child {
        text-align: left;
        margin-top: 14px
    }

    .profile-card {
        margin: 28px 16px;
        flex-wrap: wrap
    }

    .profile-grid {
        margin: 0 16px;
        grid-template-columns: 1fr
    }

    .profile-details {
        grid-row: auto
    }

    footer {
        grid-template-columns: 1fr;
        padding: 38px 25px
    }

    .offer {
        margin: 25px 16px
    }
}

.slider-dots {
    position: absolute;
    bottom: 8px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 2
}

.slider-dots button {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #fff8;
    border: 1px solid #fff
}

.slider-dots button.active {
    width: 26px;
    border-radius: 10px;
    background: var(--red)
}

.hero-slider {
    position: relative;
    padding: 0;
    overflow: hidden;
    background: #eee
}

.hero-slider-track {
    display: flex;
    width: 100%;
    height: 100%;
    transition: transform .55s ease-in-out;
    will-change: transform
}

.hero-slider-slide {
    flex: 0 0 100%;
    min-width: 100%;
    height: 100%;
    background: center/cover no-repeat
}

@media (prefers-reduced-motion: reduce) {
    .hero-slider-track {
        transition: none
    }
}

.skeleton {
    height: 112px;
    border-radius: 15px;
    background: linear-gradient(90deg, #f1eeee 25%, #fafafa 45%, #f1eeee 65%);
    background-size: 300% 100%;
    animation: shimmer 1.2s infinite
}

@keyframes shimmer {
    to {
        background-position: -300% 0
    }
}

.auth-page {
    min-height: 100vh;
    background: radial-gradient(circle at 10% 10%, #fff0ed 0, transparent 32%), radial-gradient(circle at 90% 90%, #f8dedf 0, transparent 28%), #fbfaf9
}

.auth-page>footer {
    display: none
}

.auth-shell {
    min-height: calc(100vh - 71px);
    display: grid;
    grid-template-columns: 1.1fr .9fr
}

.auth-art {
    padding: 55px clamp(30px, 8vw, 120px);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: linear-gradient(115deg, #6d111d99, #d92736dd), url('https://images.unsplash.com/photo-1542838132-92c53300491e?auto=format&fit=crop&w=1400&q=80') center/cover
}

.auth-art .brand {
    color: #fff
}

.auth-art .brand span {
    color: #fff3db
}

.auth-art h1 {
    font: 700 clamp(38px, 5vw, 65px)/1.05 'Playfair Display';
    margin: 10px 0
}

.auth-art p:not(.eyebrow) {
    max-width: 360px;
    line-height: 1.6
}

.auth-card {
    align-self: center;
    justify-self: center;
    width: min(440px, calc(100% - 40px));
    padding: 42px;
    background: #fff;
    border: 1px solid #f0dddd;
    border-radius: 22px;
    box-shadow: 0 24px 55px rgba(72, 35, 29, .12)
}

.auth-brand {
    display: none;
    font-size: 24px;
    margin-bottom: 34px
}

.auth-card h1 {
    font: 700 31px 'Playfair Display';
    margin: 7px 0 28px
}

.auth-card form {
    display: flex;
    flex-direction: column;
    gap: 16px
}

.auth-card label {
    font-size: 13px;
    font-weight: bold;
    position: relative
}

.auth-card input:not([type=checkbox]) {
    display: block;
    width: 100%;
    margin-top: 6px;
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 12px;
    outline-color: var(--red);
    font-weight: 400
}

.show-pass {
    float: right;
    background: none;
    color: var(--red);
    font-size: 12px;
    font-weight: bold
}

.form-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 12px
}

.form-row a {
    color: var(--red);
    font-weight: bold
}

.check {
    font-weight: 400 !important
}

.check input {
    accent-color: var(--red)
}

.auth-switch {
    text-align: center;
    font-size: 13px;
    margin-top: 24px
}

.auth-switch button {
    background: none;
    color: var(--red);
    font-weight: bold
}

@media(max-width:720px) {
    .active-order-header {
        align-items: flex-start
    }

    .active-order-info {
        gap: 12px;
        grid-template-columns: repeat(2, minmax(0, 1fr))
    }

    .auth-page>.nav {
        display: none
    }

    .auth-shell {
        grid-template-columns: 1fr;
        min-height: 100vh;
        padding: 28px 16px 100px
    }

    .auth-art {
        display: none
    }

    .auth-card {
        padding: 30px 24px;
        width: min(440px, 100%)
    }

    .auth-brand {
        display: inline-block
    }
}

@media(max-width:560px) {
    .nav:has(.customer-id-header) .nav-search {
        flex: 0 0 100%;
        max-width: none;
        order: 3;
        width: 100%
    }
}

/* Compact, touch-friendly home page layout on phones. */
@media(max-width:560px) {
    .hero.hero-slider {
        min-height: 190px;
        height: 190px;
        margin-top: 10px;
        padding: 0;
        width: calc(100% - 20px);
        border-radius: 16px;
        background-position: center;
    }

    .slider-dots { bottom: 10px }
    .slider-dots button { height: 6px; width: 6px }
    .slider-dots button.active { width: 20px }

    .section { margin: 30px auto }
    .section-head { align-items: center; margin-bottom: 14px }
    .section h2 { font-size: 23px }

    .category-grid {
        gap: 10px;
        margin-right: -16px;
        padding: 3px 16px 10px 0;
    }

    .category-card,
    .category-grid .category-card {
        flex: 0 0 104px;
        min-height: 126px;
        padding: 9px 6px;
        border-radius: 12px;
    }

    .category-card .category-card-media { height: 62px }
    .category-card .category-card-image { width: 62px; height: 62px; border-radius: 8px }
    .category-card b { font-size: 11px; line-height: 1.25; margin-top: 6px }
    .category-card small { font-size: 9px; padding-top: 4px }
}

/* The bottom navigation is the mobile navigation; do not show the desktop footer too. */
@media(max-width:768px) {
    body > footer { display: none !important }
}

@media (min-width:769px) and (max-width:1024px) {
    body > footer { display: none !important }
}
