:root {
  --ink: #2f261f;
  --muted: #74685f;
  --green: #4c663e;
  --green-dark: #32472d;
  --green-soft: #dfe9d8;
  --brown: #74461f;
  --brown-dark: #4c2f19;
  --orange: #b95f27;
  --wheat: #f1d48e;
  --cream: #fbf5e7;
  --paper: #fffdf8;
  --line: #e7ddcd;
  --danger: #a13d31;
  --whatsapp: #18794e;
  --shadow: 0 22px 60px rgba(65, 43, 23, .14);
  --shadow-soft: 0 12px 36px rgba(65, 43, 23, .09);
  --radius: 24px;
  --radius-small: 15px;
  --container: 1210px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.6; }
body.cart-open { overflow: hidden; }
img { max-width: 100%; display: block; }
button, input, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { font-family: Georgia, "Times New Roman", serif; line-height: 1.04; letter-spacing: -.035em; }
h1 { max-width: 820px; margin-bottom: 26px; font-size: clamp(3rem, 6.2vw, 6.15rem); }
h2 { margin-bottom: 18px; font-size: clamp(2.2rem, 4vw, 4rem); }
h3 { line-height: 1.25; }
a { color: inherit; }
.container { width: min(calc(100% - 38px), var(--container)); margin-inline: auto; }
.narrow { width: min(calc(100% - 38px), 850px); }
.section { padding-block: 104px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; left: 16px; top: 12px; z-index: 999; padding: 10px 14px; border-radius: 10px; background: #fff; color: var(--ink); transform: translateY(-160%); }
.skip-link:focus { transform: none; }

.announcement { color: #fff; background: #352417; font-size: .82rem; font-weight: 760; letter-spacing: .02em; }
.announcement-inner { min-height: 38px; display: flex; justify-content: center; align-items: center; gap: 13px; text-align: center; }
.announcement-dot { color: var(--wheat); }
.site-header { position: sticky; top: 0; z-index: 60; background: rgba(255, 253, 248, .94); border-bottom: 1px solid transparent; backdrop-filter: blur(18px); transition: box-shadow .2s ease, border-color .2s ease; }
.site-header.scrolled { border-color: var(--line); box-shadow: 0 8px 30px rgba(48,34,22,.08); }
.nav-wrap { min-height: 86px; display: flex; align-items: center; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand img { flex: 0 0 auto; border-radius: 16px; }
.brand span { display: grid; line-height: 1.08; }
.brand strong { font-family: Georgia, serif; font-size: 1.28rem; }
.brand small { margin-top: 6px; color: var(--muted); font-size: .73rem; }
.site-nav { margin-left: auto; display: flex; align-items: center; gap: 28px; }
.site-nav a { position: relative; padding: 9px 0; text-decoration: none; font-size: .89rem; font-weight: 800; }
.site-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 2px; height: 2px; border-radius: 99px; background: var(--green); transition: right .2s ease; }
.site-nav a:hover::after { right: 0; }
.cart-button { min-height: 50px; display: inline-flex; align-items: center; gap: 8px; padding: 0 16px; border: 0; border-radius: 999px; background: var(--brown); color: #fff; font-weight: 900; cursor: pointer; box-shadow: 0 10px 24px rgba(101,57,25,.19); }
.cart-count { min-width: 25px; height: 25px; display: grid; place-items: center; padding-inline: 6px; border-radius: 999px; background: #fff; color: var(--brown); font-size: .75rem; }
.menu-toggle { display: none; width: 45px; height: 45px; margin-left: auto; border: 1px solid var(--line); border-radius: 13px; background: #fff; }
.menu-toggle span:not(.sr-only) { display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--ink); }

.hero { position: relative; overflow: hidden; padding: 84px 0 96px; background: radial-gradient(circle at 88% 12%, rgba(226,196,123,.43), transparent 27%), linear-gradient(128deg, #fffaf0 0%, #fbf4df 50%, #edf0d7 100%); }
.hero::before { content: ""; position: absolute; width: 310px; height: 310px; left: -160px; bottom: -150px; border-radius: 50%; background: rgba(91,116,73,.19); }
.hero-grid { display: grid; grid-template-columns: 1.03fr .97fr; gap: 76px; align-items: center; }
.eyebrow { margin-bottom: 15px; color: var(--orange); font-size: .73rem; font-weight: 950; letter-spacing: .15em; text-transform: uppercase; }
.hero-lead { max-width: 680px; margin-bottom: 30px; color: #65594f; font-size: 1.08rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 24px; }
.button { min-height: 51px; display: inline-flex; justify-content: center; align-items: center; gap: 9px; padding: 0 22px; border: 1px solid transparent; border-radius: 999px; text-decoration: none; font-weight: 900; cursor: pointer; transition: transform .17s ease, box-shadow .17s ease, background .17s ease; }
.button:hover { transform: translateY(-2px); }
.button:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.button-primary { color: #fff; background: var(--brown); box-shadow: 0 12px 25px rgba(103,59,25,.18); }
.button-primary:hover { background: var(--brown-dark); }
.button-secondary { border-color: #d5c7b3; background: rgba(255,255,255,.72); color: var(--brown); }
.button-secondary:hover { background: #fff; }
.button-light { color: var(--brown); background: #fff; }
.button-whatsapp { color: #fff; background: var(--whatsapp); }
.button-whatsapp:hover { background: #11653f; }
.button.compact { min-height: 43px; padding-inline: 17px; font-size: .83rem; }
.full-width { width: 100%; }
.payment-trust { width: fit-content; display: flex; align-items: center; gap: 12px; margin-bottom: 22px; padding: 11px 15px; border: 1px solid rgba(77,99,63,.18); border-radius: 16px; background: rgba(255,255,255,.6); }
.payment-trust span:last-child { display: grid; }
.payment-trust strong { font-size: .83rem; }
.payment-trust small { color: var(--muted); font-size: .74rem; }
.secure-icon { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 11px; background: var(--green-soft); }
.trust-row { display: flex; flex-wrap: wrap; gap: 17px; color: var(--green-dark); font-size: .82rem; font-weight: 850; }
.hero-visual { position: relative; }
.hero-visual > img { width: 100%; border: 1px solid rgba(255,255,255,.85); border-radius: 52px 52px 52px 18px; box-shadow: 0 34px 75px rgba(71,49,24,.21); transform: rotate(1.5deg); }
.hero-price-card { position: absolute; left: -34px; bottom: 48px; display: grid; min-width: 210px; padding: 19px 23px; border-radius: 19px; background: #fff; box-shadow: var(--shadow); }
.hero-price-card small { color: var(--muted); font-size: .67rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.hero-price-card strong { margin-top: 4px; font-family: Georgia, serif; font-size: 1.22rem; }
.hero-price-card span { color: var(--orange); font-weight: 950; }
.hero-seal { position: absolute; right: -16px; bottom: 28px; width: 126px; height: 126px; display: grid; place-content: center; border: 6px solid rgba(255,255,255,.78); border-radius: 50%; background: var(--green); color: #fff; text-align: center; transform: rotate(7deg); box-shadow: var(--shadow-soft); }
.hero-seal strong { font-family: Georgia, serif; font-size: 1.22rem; line-height: .9; }
.hero-seal span { font-weight: 900; font-size: .98rem; }
.hero-seal small { margin-top: 4px; font-size: .58rem; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }

.benefits-section { position: relative; z-index: 3; margin-top: -28px; }
.benefits-grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--line); border-radius: 25px; background: #fff; box-shadow: var(--shadow-soft); overflow: hidden; }
.benefits-grid article { display: flex; gap: 15px; padding: 24px 27px; }
.benefits-grid article + article { border-left: 1px solid var(--line); }
.benefit-icon { width: 46px; height: 46px; flex: 0 0 46px; display: grid; place-items: center; border-radius: 14px; background: var(--cream); font-size: 1.45rem; }
.benefits-grid h2 { margin: 0 0 5px; font-family: inherit; font-size: .98rem; letter-spacing: 0; }
.benefits-grid p { margin: 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }

.section-heading { margin-bottom: 35px; }
.section-heading h2 { max-width: 850px; }
.section-heading p:not(.eyebrow) { max-width: 680px; color: var(--muted); }
.split-heading { display: flex; justify-content: space-between; gap: 35px; align-items: end; }
.centered { text-align: center; }
.centered h2, .centered p { margin-inline: auto; }
.products-section { background: var(--paper); }
.shop-toolbar { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-bottom: 30px; }
.search-box { width: min(100%, 390px); display: flex; align-items: center; gap: 10px; padding: 0 15px; border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.search-box input { width: 100%; height: 48px; border: 0; outline: 0; background: transparent; }
.filter-pills { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.filter-pill { min-height: 39px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; color: #685b50; background: #fff; font-size: .75rem; font-weight: 850; cursor: pointer; }
.filter-pill.active { border-color: var(--green); color: #fff; background: var(--green); }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.product-card { position: relative; min-width: 0; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 25px; background: #fff; overflow: hidden; box-shadow: 0 10px 28px rgba(76,51,30,.06); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.product-card:hover { transform: translateY(-6px); border-color: #cfb99a; box-shadow: 0 20px 45px rgba(76,51,30,.13); }
.product-image-wrap { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--cream); }
.product-image { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.product-card:hover .product-image { transform: scale(1.025); }
.product-badge { position: absolute; left: 14px; top: 14px; z-index: 2; padding: 6px 10px; border-radius: 999px; color: #fff; background: var(--orange); box-shadow: 0 8px 18px rgba(83,47,23,.15); font-size: .63rem; font-weight: 950; letter-spacing: .06em; text-transform: uppercase; }
.product-content { flex: 1; display: flex; flex-direction: column; padding: 19px; }
.product-meta { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 8px; color: var(--muted); font-size: .64rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.product-card h3 { min-height: 49px; margin-bottom: 7px; font-family: Georgia, serif; font-size: 1.17rem; }
.product-description { min-height: 61px; margin-bottom: 17px; color: var(--muted); font-size: .82rem; line-height: 1.48; }
.product-bottom { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 11px; }
.price { display: grid; line-height: 1.1; }
.price strong { color: var(--brown); font-size: 1.2rem; }
.price small { margin-top: 5px; color: var(--muted); font-size: .69rem; }
.add-button { width: 43px; height: 43px; flex: 0 0 43px; display: grid; place-items: center; border: 0; border-radius: 50%; color: #fff; background: var(--brown); box-shadow: 0 9px 19px rgba(87,47,19,.18); font-size: 1.35rem; cursor: pointer; }
.add-button:hover { background: var(--brown-dark); }
.empty-state { padding: 34px; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--muted); text-align: center; }

.warm-section { background: linear-gradient(130deg, #f8ebc8, #f3dfad); }
.feature-grid { display: grid; grid-template-columns: .83fr 1.17fr; gap: 64px; align-items: center; }
.feature-copy p:not(.eyebrow), .feature-copy li { color: #5f5145; }
.check-list { list-style: none; display: grid; gap: 10px; margin: 24px 0 28px; padding: 0; }
.check-list li { position: relative; padding-left: 28px; }
.check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--green); font-weight: 950; }
.meal-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 19px; }
.meal-card { display: flex; flex-direction: column; border: 1px solid rgba(111,77,42,.15); border-radius: 29px; background: rgba(255,255,255,.9); overflow: hidden; box-shadow: var(--shadow-soft); }
.meal-card img { aspect-ratio: 4/3; width: 100%; object-fit: cover; }
.meal-card-content { flex: 1; display: flex; flex-direction: column; padding: 22px; }
.meal-card h3 { margin-bottom: 8px; font-family: Georgia, serif; font-size: 1.55rem; }
.meal-card p:not(.eyebrow) { color: var(--muted); font-size: .87rem; }
.meal-card .product-bottom { margin-top: auto; }

.process-showcase { background: #f7f6ef; }
.process-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; align-items: center; }
.process-grid > img { border-radius: 35px; box-shadow: var(--shadow); }
.process-grid > div > p:not(.eyebrow) { color: var(--muted); }
.quality-list { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; margin: 26px 0; }
.quality-list article { padding: 18px 12px; border: 1px solid var(--line); border-radius: 17px; background: #fff; text-align: center; }
.quality-list strong { display: block; color: var(--green); font-family: Georgia, serif; font-size: 1.75rem; }
.quality-list span { color: var(--muted); font-size: .72rem; line-height: 1.25; }
.notice-box { margin-top: 22px; padding: 17px 19px; border-left: 4px solid var(--orange); border-radius: 0 var(--radius-small) var(--radius-small) 0; background: #fff; font-size: .88rem; font-weight: 800; }

.steps-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 18px; }
.steps-grid article { padding: 25px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.steps-grid article > span { width: 43px; height: 43px; display: grid; place-items: center; margin-bottom: 18px; border-radius: 14px; background: var(--green); color: #fff; font-weight: 950; }
.steps-grid h3 { margin-bottom: 8px; }
.steps-grid p { margin-bottom: 0; color: var(--muted); font-size: .86rem; }
.faq-section { background: #fff; }
.faq-list { display: grid; gap: 11px; }
.faq-list details { border: 1px solid var(--line); border-radius: 17px; background: #fffdf8; }
.faq-list summary { position: relative; padding: 19px 52px 19px 20px; list-style: none; cursor: pointer; font-weight: 900; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 20px; top: 14px; color: var(--brown); font-size: 1.6rem; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { margin: 0; padding: 0 20px 20px; color: var(--muted); }
.cta-section { padding-block: 68px; background: var(--brown); color: #fff; }
.cta-wrap { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.cta-wrap h2 { margin-bottom: 10px; }
.cta-wrap p { margin-bottom: 0; color: rgba(255,255,255,.76); }
.cta-wrap .eyebrow { color: var(--wheat); }

.site-footer { padding-top: 64px; background: #24170f; color: rgba(255,255,255,.82); }
.footer-grid { display: grid; grid-template-columns: 1.3fr .65fr 1fr .75fr; gap: 45px; padding-bottom: 45px; }
.footer-brand { margin-bottom: 18px; color: #fff; }
.footer-brand small { color: rgba(255,255,255,.62); }
.site-footer h2 { margin-bottom: 14px; color: #fff; font-family: inherit; font-size: .78rem; letter-spacing: .12em; text-transform: uppercase; }
.site-footer p { color: rgba(255,255,255,.64); font-size: .84rem; }
.site-footer a, .footer-link-button { display: block; margin: 8px 0; padding: 0; border: 0; color: rgba(255,255,255,.72); background: none; text-decoration: none; cursor: pointer; }
.site-footer a:hover, .footer-link-button:hover { color: #fff; }
.stripe-note { display: block; margin-top: 16px; color: rgba(255,255,255,.5); font-size: .72rem; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-block: 20px; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.52); font-size: .77rem; }

.cart-backdrop { position: fixed; inset: 0; z-index: 90; background: rgba(27,18,12,.58); backdrop-filter: blur(3px); }
.cart-drawer { position: fixed; z-index: 100; top: 0; right: 0; width: min(100%, 570px); height: 100dvh; display: flex; flex-direction: column; padding: 24px; background: #fffdf8; box-shadow: -22px 0 60px rgba(34,19,7,.25); transform: translateX(105%); transition: transform .25s ease; overflow-y: auto; }
.cart-drawer.open { transform: translateX(0); }
.cart-header { display: flex; justify-content: space-between; gap: 20px; align-items: start; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.cart-header h2 { margin: 0; font-size: 2rem; }
.icon-button { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 50%; background: #fff; font-size: 1.8rem; cursor: pointer; }
.cart-items { display: grid; gap: 12px; padding: 20px 0; }
.cart-item { display: grid; grid-template-columns: 70px 1fr auto; gap: 13px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.cart-item-image { width: 70px; height: 70px; border-radius: 14px; object-fit: cover; background: var(--cream); }
.cart-item h3 { margin: 0 0 3px; font-size: .91rem; }
.cart-item-price { color: var(--muted); font-size: .72rem; }
.qty-control { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; }
.qty-control button { width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; background: #fff; cursor: pointer; }
.qty-control span { min-width: 22px; text-align: center; font-weight: 900; }
.cart-item-total { text-align: right; }
.cart-item-total strong { display: block; color: var(--brown); }
.remove-item { margin-top: 6px; padding: 0; border: 0; background: transparent; color: var(--danger); font-size: .69rem; text-decoration: underline; cursor: pointer; }
.cart-empty { margin: auto; padding: 44px 12px; text-align: center; }
.cart-empty > span { font-size: 4rem; }
.cart-empty p { color: var(--muted); }
.cart-summary { border-top: 1px solid var(--line); padding-top: 20px; }
.summary-line { display: flex; justify-content: space-between; font-size: .94rem; }
.summary-line + .summary-line { margin-top: 5px; }
.summary-line strong { color: var(--brown); font-size: 1.05rem; }
.grand-total { margin-top: 10px !important; padding-top: 12px; border-top: 1px dashed var(--line); font-weight: 900; }
.grand-total strong { font-size: 1.35rem; }
.delivery-note { margin: 8px 0 18px; color: var(--muted); font-size: .75rem; }
.order-form { display: grid; gap: 13px; }
.order-form label, .order-form legend { color: #4d4138; font-size: .77rem; font-weight: 850; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.order-form input, .order-form textarea { width: 100%; margin-top: 5px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; background: #fff; outline: 0; }
.order-form input:focus, .order-form textarea:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(76,102,62,.1); }
.order-form input.invalid, .order-form textarea.invalid { border-color: var(--danger); }
.order-form fieldset { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; border: 0; }
.order-form legend { grid-column: 1/-1; margin-bottom: 4px; }
.radio-card { display: flex; gap: 9px; align-items: start; padding: 10px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.radio-card input { width: auto; margin-top: 4px; }
.radio-card span { display: grid; }
.radio-card small { color: var(--muted); font-weight: 500; line-height: 1.35; }
.form-error { padding: 11px 13px; border: 1px solid #e5b1aa; border-radius: 11px; background: #fff1ef; color: #8a2f26; font-size: .78rem; font-weight: 750; }
.checkout-note { margin: -2px 7px 0; color: var(--muted); font-size: .68rem; text-align: center; }
.text-button { justify-self: center; padding: 4px; border: 0; background: transparent; color: #8f4335; text-decoration: underline; cursor: pointer; }
.toast { position: fixed; left: 50%; bottom: 24px; z-index: 150; max-width: calc(100% - 30px); padding: 12px 17px; border-radius: 999px; color: #fff; background: #25211e; box-shadow: var(--shadow); font-size: .83rem; font-weight: 780; transform: translate(-50%,20px); opacity: 0; pointer-events: none; transition: .2s ease; }
.toast.show { transform: translate(-50%,0); opacity: 1; }
.noscript { padding: 14px; color: #fff; background: #8a2d20; text-align: center; }

/* Success, legal and error pages */
.simple-page { min-height: 100dvh; background: linear-gradient(145deg,#fffaf0,#edf1dd); }
.simple-header { padding-block: 24px; }
.simple-main { padding: 45px 0 90px; }
.status-card, .legal-card, .error-card { width: min(100%, 820px); margin-inline: auto; padding: clamp(28px,5vw,58px); border: 1px solid var(--line); border-radius: 32px; background: rgba(255,255,255,.93); box-shadow: var(--shadow); }
.status-icon { width: 78px; height: 78px; display: grid; place-items: center; margin-bottom: 23px; border-radius: 50%; background: var(--green-soft); font-size: 2.2rem; }
.status-card h1, .legal-card h1, .error-card h1 { margin-bottom: 16px; font-size: clamp(2.4rem,6vw,4.7rem); }
.status-message { color: var(--muted); }
.order-summary-box { display: grid; gap: 12px; margin: 26px 0; padding: 19px; border: 1px solid var(--line); border-radius: 18px; background: var(--cream); }
.order-summary-row { display: flex; justify-content: space-between; gap: 20px; }
.order-summary-row strong { text-align: right; }
.order-items-list { margin: 0; padding-left: 20px; color: var(--muted); }
.simple-actions { display: flex; flex-wrap: wrap; gap: 11px; margin-top: 25px; }
.legal-card h2 { margin-top: 32px; font-family: inherit; font-size: 1.25rem; letter-spacing: 0; }
.legal-card p, .legal-card li { color: var(--muted); }

@media (max-width: 1080px) {
  .hero-grid { gap: 42px; }
  .product-grid { grid-template-columns: repeat(3,1fr); }
  .site-nav { gap: 12px; }
  .site-nav a { font-size: .82rem; }
  .footer-grid { grid-template-columns: 1.3fr .7fr 1fr; }
  .footer-grid > div:last-child { grid-column: 2 / 4; }
}

@media (max-width: 860px) {
  .section { padding-block: 78px; }
  .menu-toggle { display: block; }
  .site-nav { position: absolute; top: calc(100% + 1px); left: 18px; right: 18px; display: none; margin: 0; padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: #fff; box-shadow: var(--shadow-soft); }
  .site-nav.open { display: grid; }
  .site-nav a { padding: 10px 8px; }
  .cart-button { min-height: 45px; padding-inline: 12px; }
  .hero { padding-top: 62px; }
  .hero-grid, .feature-grid, .process-grid { grid-template-columns: 1fr; }
  .hero-grid { gap: 55px; }
  .hero-copy { text-align: center; }
  .hero-lead, .payment-trust { margin-inline: auto; }
  .hero-actions, .trust-row { justify-content: center; }
  .hero-visual { width: min(100%,650px); margin-inline: auto; }
  .benefits-grid { grid-template-columns: 1fr; }
  .benefits-grid article + article { border-left: 0; border-top: 1px solid var(--line); }
  .shop-toolbar, .split-heading { align-items: stretch; flex-direction: column; }
  .filter-pills { justify-content: flex-start; }
  .search-box { width: 100%; }
  .product-grid { grid-template-columns: repeat(2,1fr); }
  .process-grid { gap: 45px; }
  .steps-grid { grid-template-columns: repeat(2,1fr); }
  .cta-wrap { align-items: flex-start; flex-direction: column; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: auto; }
}

@media (max-width: 580px) {
  .container, .narrow { width: min(calc(100% - 26px), var(--container)); }
  .announcement-inner { min-height: 48px; gap: 7px; flex-wrap: wrap; padding-block: 7px; line-height: 1.2; }
  .announcement-dot { display: none; }
  .nav-wrap { min-height: 74px; gap: 10px; }
  .brand img { width: 45px; height: 45px; }
  .brand strong { font-size: 1rem; }
  .brand small { display: none; }
  .cart-button > span:nth-child(2) { display: none; }
  .hero { padding: 49px 0 72px; }
  h1 { font-size: clamp(2.65rem,14vw,4.2rem); }
  h2 { font-size: clamp(2.05rem,11vw,3.2rem); }
  .hero-visual > img { border-radius: 31px 31px 31px 12px; }
  .hero-price-card { left: 8px; bottom: 16px; min-width: 170px; padding: 14px 17px; }
  .hero-price-card strong { font-size: 1rem; }
  .hero-seal { right: -2px; bottom: -30px; width: 102px; height: 102px; }
  .benefits-section { margin-top: -12px; }
  .product-grid, .meal-grid, .quality-list, .steps-grid, .footer-grid { grid-template-columns: 1fr; }
  .product-card h3, .product-description { min-height: 0; }
  .feature-grid { gap: 38px; }
  .steps-grid article { padding: 21px; }
  .footer-bottom { flex-direction: column; }
  .cart-drawer { padding: 18px 14px; }
  .cart-item { grid-template-columns: 62px 1fr; }
  .cart-item-image { width: 62px; height: 62px; }
  .cart-item-total { grid-column: 2; display: flex; justify-content: space-between; align-items: center; text-align: left; }
  .form-grid, .order-form fieldset { grid-template-columns: 1fr; }
}
.website-trap { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
.payment-button.loading { cursor: wait; opacity: .82; }
.payment-button:disabled { cursor: not-allowed; opacity: .58; filter: grayscale(.15); }

/* Multi-page catalogue update — July 2026 */
.site-nav a.active { color: var(--green-dark); }
.site-nav a.active::after { right: 0; }
.page-hero { position: relative; padding: clamp(72px, 9vw, 120px) 0; overflow: hidden; background: linear-gradient(135deg, #f8edd0 0%, #f5f7e9 58%, #e5eddc 100%); }
.page-hero::after { content: ""; position: absolute; width: 420px; height: 420px; right: -120px; bottom: -240px; border-radius: 50%; background: rgba(76,102,62,.09); }
.page-hero-inner { position: relative; z-index: 1; }
.page-hero-inner > div { max-width: 860px; }
.page-hero h1 { max-width: 900px; margin-bottom: 22px; font-size: clamp(3rem, 6vw, 5.8rem); }
.page-hero p:not(.eyebrow) { max-width: 760px; color: var(--muted); font-size: clamp(1rem, 1.8vw, 1.22rem); }

.category-section { background: #f7f6ef; }
.category-card-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.category-card { min-height: 310px; display: flex; flex-direction: column; padding: 28px; border: 1px solid var(--line); border-radius: 26px; background: #fff; text-decoration: none; box-shadow: var(--shadow-soft); transition: transform .2s ease, box-shadow .2s ease; }
.category-card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.category-card > span { font-size: 2.7rem; }
.category-card h3 { margin: 18px 0 9px; font-family: Georgia, serif; font-size: 1.55rem; }
.category-card p { color: var(--muted); font-size: .88rem; }
.category-card strong { margin-top: auto; color: var(--green-dark); font-size: .83rem; }
.featured-section { background: #fffdf8; }

.product-local-names { display: flex; flex-wrap: wrap; gap: 6px 9px; min-height: 48px; margin: -1px 0 10px; color: var(--green-dark); font-size: .79rem; font-weight: 780; line-height: 1.45; }
.variant-list { display: grid; gap: 8px; margin-top: auto; padding-top: 4px; }
.variant-row { display: grid; grid-template-columns: minmax(78px,1fr) auto auto; gap: 9px; align-items: center; padding: 9px 9px 9px 12px; border: 1px solid var(--line); border-radius: 13px; background: #fffcf5; }
.variant-size { color: #51463d; font-size: .75rem; font-weight: 850; }
.variant-row strong { color: var(--brown); font-size: .94rem; white-space: nowrap; }
.variant-add { min-width: 48px; min-height: 34px; padding: 0 10px; border: 0; border-radius: 9px; color: #fff; background: var(--brown); font-size: .7rem; font-weight: 900; cursor: pointer; }
.variant-add:hover { background: var(--brown-dark); }
.variant-add:disabled { cursor: not-allowed; background: #9e9e98; color: #fff; opacity: .82; }
.variant-unavailable { background: #f3f1ed; border-color: #d8d3cb; }
.variant-unavailable strong { color: #6d6861; }
.variant-stock-out { display: block; margin-top: 2px; color: #a1372c; font-size: .62rem; font-weight: 900; text-transform: uppercase; letter-spacing: .04em; }
.product-out-of-stock .product-image { filter: grayscale(.35); opacity: .78; }
.product-out-of-stock .product-meta span:last-child { color: #a1372c; }
.cart-stock-warning { display: block; margin-top: 4px; color: #a1372c; font-weight: 850; }
.product-qty-control button:disabled,.product-qty-control input:disabled { opacity: .5; cursor: not-allowed; }
.product-image-wrap.product-image-contain { aspect-ratio: 4 / 3; padding: 10px; background: #fff; }
.product-image-wrap.product-image-contain .product-image { object-fit: contain; transform: none; }
.packaging-product-card .product-image-wrap { aspect-ratio: 4 / 5; }
.packaging-product-card .product-image { object-fit: contain; }
.packaging-product-card:hover .product-image { transform: none; }
.packaging-product-card .product-description { min-height: 82px; }
.product-card h3 { min-height: auto; }
.product-description { min-height: 72px; }

.inquiry-split { display: grid; grid-template-columns: 1fr .85fr; gap: 60px; align-items: center; }
.inquiry-split > img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 30px; box-shadow: var(--shadow); }
.packaging-inquiry-section { background: #f7f6ef; }
.packaging-photo-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 22px; }
.packaging-photo-grid figure { margin: 0; padding: 14px; border: 1px solid var(--line); border-radius: 24px; background: #fff; box-shadow: var(--shadow-soft); }
.packaging-photo-grid img { width: 100%; height: 520px; object-fit: contain; border-radius: 16px; background: #f7f7f7; }
.packaging-photo-grid figcaption { padding: 11px 4px 2px; color: var(--muted); font-size: .8rem; text-align: center; }

@media (max-width: 1120px) {
  .category-card-grid { grid-template-columns: repeat(2,1fr); }
}
@media (max-width: 860px) {
  .page-hero { padding-block: 72px; }
  .inquiry-split { grid-template-columns: 1fr; gap: 32px; }
  .packaging-photo-grid img { height: 390px; }
}
@media (max-width: 580px) {
  .category-card-grid, .packaging-photo-grid { grid-template-columns: 1fr; }
  .category-card { min-height: 240px; }
  .product-local-names { min-height: 0; }
  .product-description, .packaging-product-card .product-description { min-height: 0; }
  .variant-row { grid-template-columns: 1fr auto auto; }
  .packaging-photo-grid img { height: 360px; }
}

/* Pickup, weekend delivery and refreshed Samarth logo — v5.2 */
.brand img {
  width: 68px;
  height: 68px;
  object-fit: contain;
  border-radius: 0;
}
.footer-brand img {
  padding: 4px;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
}
.footer-directions,
.inline-directions {
  color: var(--wheat) !important;
  font-weight: 850;
  text-decoration: underline !important;
  text-underline-offset: 3px;
}
.inline-directions { color: var(--green-dark) !important; }
.pickup-directions {
  padding: 12px 14px;
  border: 1px solid #cfe0c3;
  border-radius: 13px;
  background: #f1f7ec;
}
.directions-link {
  color: var(--green-dark);
  font-size: .82rem;
  font-weight: 900;
  text-decoration: none;
}
.directions-link:hover { text-decoration: underline; }
.delivery-options {
  display: grid;
  gap: 8px;
  padding: 13px;
  border: 1px solid #dfcfb8;
  border-radius: 14px;
  background: #fff8e9;
}
.delivery-options[hidden], .pickup-directions[hidden] { display: none !important; }
.delivery-distance-help {
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.45;
}
.order-form select {
  width: 100%;
  margin-top: 5px;
  padding: 11px 36px 11px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  background: #fff;
  outline: 0;
}
.order-form select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(76,102,62,.1);
}
.founder-story .about-brand-logo {
  width: min(100%, 520px);
  max-height: 570px;
  margin-inline: auto;
  padding: 20px;
  object-fit: contain;
  border: 1px solid var(--line);
  border-radius: 34px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
@media (max-width: 580px) {
  .brand img { width: 52px; height: 52px; }
  .nav-wrap { min-height: 80px; }
  .delivery-options { padding: 11px; }
}

.variant-price-wrap { display: inline-flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.variant-offer { display: inline-flex; align-items: center; min-height: 20px; padding: 2px 7px; border-radius: 999px; background: #fff0df; color: #a94316; border: 1px solid #f2c49f; font-size: .65rem; font-weight: 900; letter-spacing: .02em; white-space: nowrap; }

/* Customer accounts, delivery address lookup and order tracking */
.account-checkout-gate {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid #d7c9ae;
  border-radius: 14px;
  background: #fff9ea;
  color: var(--ink);
}
.account-checkout-gate strong { font-size: .86rem; }
.account-checkout-gate span { color: var(--muted); font-size: .75rem; line-height: 1.45; }
.account-checkout-gate a { color: var(--green-dark); font-size: .78rem; font-weight: 900; text-decoration: none; }
.account-checkout-gate a:hover { text-decoration: underline; }
.address-search-wrap { position: relative; margin-top: 5px; }
.address-search-wrap > input[type="text"] { margin-top: 0; }
.address-suggestions {
  position: absolute;
  z-index: 80;
  top: calc(100% + 5px);
  right: 0;
  left: 0;
  overflow: hidden;
  max-height: 300px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(34, 48, 28, .18);
}
.address-suggestions[hidden] { display: none !important; }
.address-suggestion {
  display: grid;
  width: 100%;
  gap: 2px;
  padding: 11px 12px;
  border: 0;
  border-bottom: 1px solid #eee7db;
  background: #fff;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
}
.address-suggestion:last-child { border-bottom: 0; }
.address-suggestion:hover, .address-suggestion:focus-visible { background: #f4f8f0; outline: none; }
.address-suggestion strong { font-size: .78rem; }
.address-suggestion small { color: var(--muted); font-size: .7rem; line-height: 1.35; }
.address-suggestion-empty { padding: 12px; color: var(--muted); font-size: .75rem; }


/* Mobile delivery-address fix: keep Google suggestions in the cart's scroll
   flow so the on-screen keyboard cannot cover an absolutely positioned list. */
@media (max-width: 760px) {
  .address-suggestions {
    position: static;
    max-height: min(34dvh, 250px);
    margin-top: 6px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    box-shadow: 0 10px 24px rgba(34, 48, 28, .14);
  }
  .address-suggestion {
    min-height: 48px;
    padding: 13px 12px;
    touch-action: manipulation;
  }
  .address-suggestion strong { font-size: .82rem; }
  .address-suggestion small { font-size: .73rem; }
}

.delivery-distance-help.error { color: #9f2f24; font-weight: 700; }
.order-form input[readonly] { background: #f4f3ef; color: var(--muted); cursor: default; }

.account-page { min-height: 70vh; background: linear-gradient(180deg, #fbfaf5 0%, #f5f1e8 100%); }
.account-shell { max-width: 1040px; }
.account-nav { margin-left: auto; }
.account-auth-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; }
.account-card, .orders-panel {
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.account-card { padding: clamp(20px, 3vw, 30px); }
.account-card h2 { margin: 0 0 8px; }
.account-card > p { margin: 0 0 18px; color: var(--muted); line-height: 1.6; }
.account-form { display: grid; gap: 14px; }
.account-form label { display: grid; gap: 6px; color: var(--ink); font-size: .8rem; font-weight: 800; }
.account-form input {
  width: 100%;
  padding: 12px 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  background: #fff;
  outline: 0;
}
.account-form input:focus { border-color: var(--green); box-shadow: 0 0 0 3px rgba(76,102,62,.1); }
.account-message { margin: 0 0 18px; padding: 12px 14px; border-radius: 13px; background: #edf5e9; color: var(--green-dark); font-weight: 800; }
.account-message[data-type="error"] { background: #fff0ed; color: #9f2f24; }
.account-message[data-type="success"] { background: #edf7ea; color: #355e2d; }
.account-dashboard { display: grid; gap: 20px; }
.account-dashboard-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: clamp(20px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: 24px;
  background: #fff;
  box-shadow: var(--shadow-soft);
}
.account-dashboard-head h2, .orders-panel-head h2 { margin: 0; }
.account-dashboard-head p:not(.eyebrow) { margin: 5px 0 0; color: var(--muted); }
.account-dashboard-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.account-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.account-info-grid > div { display: grid; gap: 5px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 17px; background: #fff; }
.account-info-grid span, .customer-order-meta span { color: var(--muted); font-size: .72rem; font-weight: 700; }
.orders-panel { padding: clamp(18px, 3vw, 28px); }
.orders-panel-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.orders-list { display: grid; gap: 14px; }
.customer-order-card { padding: 17px; border: 1px solid #e7e0d4; border-radius: 17px; background: #fffdfa; }
.customer-order-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.customer-order-head > div { display: grid; gap: 3px; }
.order-id { font-weight: 900; color: var(--ink); }
.customer-order-head small { color: var(--muted); }
.order-status { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border-radius: 999px; background: #eeeae2; color: #5d574c; font-size: .7rem; font-weight: 900; white-space: nowrap; }
.order-status.active { background: #fff2cf; color: #865a00; }
.order-status.good { background: #e8f5e5; color: #2e652b; }
.order-status.bad { background: #ffebe7; color: #9f2f24; }
.customer-order-meta { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 14px 0; }
.customer-order-meta > div { display: grid; gap: 3px; padding: 10px 12px; border-radius: 12px; background: #f7f4ed; }
.customer-order-items { margin: 0 0 12px; padding-left: 20px; color: var(--muted); font-size: .78rem; line-height: 1.65; }
.account-empty { padding: 28px; border: 1px dashed var(--line); border-radius: 16px; text-align: center; }
.account-empty h3 { margin-top: 0; }
.account-empty p { color: var(--muted); }
.text-link { color: var(--green-dark); font-weight: 900; text-decoration: none; }
.text-link:hover { text-decoration: underline; }

@media (max-width: 760px) {
  .account-auth-grid { grid-template-columns: 1fr; }
  .account-dashboard-head { align-items: flex-start; flex-direction: column; }
  .account-info-grid, .customer-order-meta { grid-template-columns: 1fr; }
  .customer-order-head { flex-direction: column; }
  .account-nav { display: flex; }
}


/* Signed-in customer identity */
.site-nav .signed-in-account-link {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #d9e2d2;
  border-radius: 999px;
  background: #f3f7ef;
  color: var(--green-dark);
}
.site-nav .signed-in-account-link::after { display: none; }
.checkout-customer {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 12px 14px;
  border: 1px solid #cddbc3;
  border-radius: 14px;
  background: #f4f8f1;
}
.checkout-customer[hidden] { display: none !important; }
.checkout-customer-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #e6efe0;
  font-size: 1rem;
}
.checkout-customer-copy { display: grid; gap: 1px; min-width: 0; }
.checkout-customer-copy small { color: var(--muted); font-size: .68rem; font-weight: 700; }
.checkout-customer-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .88rem; }
.checkout-customer > a { color: var(--green-dark); font-size: .74rem; font-weight: 900; text-decoration: none; }
.checkout-customer > a:hover { text-decoration: underline; }
.order-form input[readonly] { background: #f5f5f1; color: #42503d; cursor: default; }
.account-header-name {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid #d9e2d2;
  border-radius: 999px;
  background: #f3f7ef;
  color: var(--green-dark);
  font-size: .82rem;
  font-weight: 900;
}
.account-header-name[hidden] { display: none !important; }
@media (max-width: 580px) {
  .checkout-customer { grid-template-columns: auto 1fr; }
  .checkout-customer > a { grid-column: 2; }
}

/* v6.0.3: Respect the HTML hidden attribute across account/checkout UI. */
html [hidden] {
  display: none !important;
}


/* PayID + WhatsApp checkout */
.payid-checkout-card{margin:10px 0 12px;padding:14px 15px;border:1px solid #cbd9c4;border-radius:14px;background:#f2f7ef}
.payid-checkout-card>div{display:flex;align-items:center;justify-content:space-between;gap:12px}
.payid-checkout-card span{font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#52694d}
.payid-checkout-card strong{font-size:1.05rem;color:#244b23}
.payid-checkout-card small{display:block;margin-top:6px;line-height:1.4;color:#60705b}
.payid-order-button{margin-top:2px;font-weight:850}

/* v6.2 — Manual delivery approval + mobile checkout hardening */
.address-mode-switch {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}
.address-mode-option {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 9px;
  align-items: start;
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
}
.address-mode-option:has(input:checked) {
  border-color: var(--green);
  background: #f1f6ee;
  box-shadow: inset 0 0 0 1px rgba(73,97,61,.15);
}
.address-mode-option input { margin-top: 3px; }
.address-mode-option span { display: grid; gap: 2px; min-width: 0; }
.address-mode-option strong { font-size: .78rem; }
.address-mode-option small { color: var(--muted); font-size: .68rem; line-height: 1.35; }
.manual-delivery-note {
  margin-top: 8px;
  padding: 11px 12px;
  border: 1px solid #e6c989;
  border-radius: 11px;
  background: #fff8e5;
  color: #6f510e;
  font-size: .74rem;
  line-height: 1.5;
}
.manual-delivery-note strong { display: block; margin-bottom: 2px; }
[data-google-distance-wrap][hidden], [data-manual-distance-wrap][hidden], [data-manual-delivery-note][hidden] { display: none !important; }

@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  img, svg, video { max-width: 100%; height: auto; }
  .cart-drawer {
    width: 100%;
    max-width: 100%;
    padding-bottom: calc(20px + env(safe-area-inset-bottom));
    overscroll-behavior: contain;
  }
  .order-form input,
  .order-form select,
  .order-form textarea,
  .account-form input,
  .account-form select,
  .account-form textarea { font-size: 16px; }
  .order-form .button,
  .order-form button.full-width { min-height: 48px; }
  .address-mode-switch { grid-template-columns: 1fr; }
  .address-mode-option { min-height: 52px; }
  .delivery-options { overflow: visible; }
}

@media (max-width: 420px) {
  .cart-drawer { padding-inline: 11px; }
  .cart-header h2 { font-size: 1.55rem; }
  .summary-line { gap: 10px; }
  .payid-checkout-card > div { align-items: flex-start; flex-direction: column; gap: 3px; }
}


/* Confirmation-invoice + navigation mobile pass — 19 Aug 2026 */
@media (max-width: 980px) {
  .nav-wrap { position: relative; }
  .menu-toggle { display: block; flex: 0 0 auto; }
  .site-nav {
    position: absolute;
    z-index: 85;
    top: calc(100% + 1px);
    left: 18px;
    right: 18px;
    display: none;
    margin: 0;
    padding: 15px;
    max-height: calc(100dvh - 118px);
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--shadow-soft);
  }
  .site-nav.open { display: grid; }
  .site-nav a { min-height: 44px; display: flex; align-items: center; padding: 10px 8px; font-size: .9rem; }
  .account-nav {
    position: static;
    display: flex;
    margin-left: auto;
    padding: 0;
    max-height: none;
    overflow: visible;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }
  .account-nav a { min-height: 40px; padding: 8px; }
  .cart-button { flex: 0 0 auto; }
}

@media (max-width: 580px) {
  .nav-wrap { gap: 8px; }
  .brand { min-width: 0; flex: 1 1 auto; }
  .brand span { min-width: 0; }
  .brand strong { display: block; max-width: 150px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .menu-toggle { width: 44px; height: 44px; }
  .site-nav { left: 8px; right: 8px; max-height: calc(100dvh - 100px); }
  .account-nav { position: static; flex: 0 0 100%; order: 3; justify-content: flex-end; max-height: none; }
  .account-nav .account-header-name { margin-right: auto; }
  .search-box input { font-size: 16px; }
  .filter-pills { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; -webkit-overflow-scrolling: touch; }
  .filter-pills button { flex: 0 0 auto; min-height: 42px; }
  .hero-actions .button, .simple-actions .button { width: 100%; }
  .cart-drawer { padding-top: max(14px, env(safe-area-inset-top)); }
}


/* Account password recovery + quantity-tier pricing */
.account-link-button {
  appearance: none;
  border: 0;
  background: transparent;
  color: var(--primary, #49613d);
  padding: .35rem 0;
  font: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  justify-self: start;
}
.account-divider { border: 0; border-top: 1px solid rgba(73,97,61,.18); margin: 1.1rem 0; }
.password-reset-panel { max-width: 560px; margin: 0 auto 1.5rem; }
.cart-tier-note { display: block; margin-top: .2rem; color: #49613d; font-weight: 700; line-height: 1.3; }
@media (max-width: 700px) {
  .password-reset-panel { max-width: none; width: 100%; }
  .account-link-button { min-height: 44px; display: inline-flex; align-items: center; }
}


/* Fresh food quantity controls — Aug 2026 */
.ready-quantity-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 11px;
  overflow: visible;
}
.ready-price-summary {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.ready-price-summary .variant-price-wrap {
  min-width: 0;
  display: grid;
  justify-items: end;
  gap: 3px;
  text-align: right;
}
.ready-order-controls {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(112px, 1fr) minmax(92px, auto);
  gap: 8px;
  align-items: stretch;
}
.product-qty-control {
  min-width: 0;
  display: grid;
  grid-template-columns: 34px minmax(42px, 1fr) 34px;
  align-items: stretch;
  overflow: hidden;
  border: 1px solid #d9c9b3;
  border-radius: 10px;
  background: #fff;
}
.product-qty-control button {
  min-width: 34px;
  min-height: 38px;
  border: 0;
  background: #f5ead8;
  color: var(--brown-dark);
  font-size: 1.15rem;
  font-weight: 950;
  cursor: pointer;
}
.product-qty-control button:hover { background: #ead8bd; }
.product-qty-control input {
  width: 100%;
  min-width: 0;
  height: 38px;
  padding: 0 4px;
  border: 0;
  border-inline: 1px solid #e5d7c3;
  outline: 0;
  background: #fff;
  color: #34281f;
  font: inherit;
  font-size: .86rem;
  font-weight: 900;
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
}
.product-qty-control input::-webkit-inner-spin-button,
.product-qty-control input::-webkit-outer-spin-button { margin: 0; -webkit-appearance: none; }
.ready-add {
  width: 100%;
  min-width: 92px;
  min-height: 40px;
  padding: 0 11px;
  white-space: nowrap;
  font-size: .72rem;
}
.ready-qty-total {
  display: block;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 800;
  line-height: 1.35;
}
.ready-qty-total.bulk-applied { color: var(--green-dark); }

@media (max-width: 1080px) {
  body[data-catalogue="ready"] .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 580px) {
  body[data-catalogue="ready"] .product-grid { grid-template-columns: 1fr; }
  .ready-order-controls { grid-template-columns: minmax(0, 1fr) minmax(105px, .8fr); }
  .product-qty-control { grid-template-columns: 42px minmax(48px, 1fr) 42px; }
  .product-qty-control button, .product-qty-control input { min-height: 44px; }
  .ready-add { min-height: 44px; }
}
@media (max-width: 360px) {
  .ready-order-controls { grid-template-columns: 1fr; }
  .ready-add { width: 100%; }
}

/* Mobile Out-of-Stock presentation — v6.2.2 */
@media (max-width: 580px) {
  /* Make fully unavailable products obvious without crowding the metadata row. */
  .product-out-of-stock .product-image-wrap::after {
    content: "Out of Stock";
    position: absolute;
    right: 12px;
    bottom: 12px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 12px;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 999px;
    background: rgba(145,48,42,.94);
    color: #fff;
    box-shadow: 0 8px 20px rgba(71,34,28,.2);
    font-size: .72rem;
    font-weight: 950;
    letter-spacing: .045em;
    line-height: 1;
    text-transform: uppercase;
  }
  .product-out-of-stock .product-meta span:last-child { display: none; }
  .product-out-of-stock .product-image { filter: grayscale(.28); opacity: .82; }

  /* On phones, unavailable variants become a clean two-line row + status pill. */
  .variant-row.variant-unavailable:not(.ready-quantity-row) {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "stock-size stock-status"
      "stock-price stock-status";
    column-gap: 12px;
    row-gap: 2px;
    min-height: 62px;
    padding: 10px 10px 10px 12px;
    border-color: #ead0ca;
    background: #fff8f6;
  }
  .variant-row.variant-unavailable:not(.ready-quantity-row) .variant-size {
    grid-area: stock-size;
    align-self: end;
    color: #51463d;
  }
  .variant-row.variant-unavailable:not(.ready-quantity-row) .variant-price-wrap {
    grid-area: stock-price;
    justify-content: flex-start;
    align-self: start;
  }
  .variant-row.variant-unavailable:not(.ready-quantity-row) .variant-stock-out { display: none; }
  .variant-row.variant-unavailable:not(.ready-quantity-row) .variant-add {
    grid-area: stock-status;
    align-self: center;
    min-width: 96px;
    min-height: 34px;
    padding: 0 10px;
    border: 1px solid #e1aaa3;
    border-radius: 999px;
    background: #fff;
    color: #a1372c;
    box-shadow: none;
    opacity: 1;
    white-space: nowrap;
    font-size: .65rem;
    letter-spacing: .015em;
  }

  /* Ready-food unavailable items should not show disabled +/- controls. */
  .ready-quantity-row.variant-unavailable {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    padding: 11px;
    border-color: #ead0ca;
    background: #fff8f6;
  }
  .ready-quantity-row.variant-unavailable .variant-stock-out { display: none; }
  .ready-quantity-row.variant-unavailable .product-qty-control { display: none; }
  .ready-quantity-row.variant-unavailable .ready-order-controls { display: block; }
  .ready-quantity-row.variant-unavailable .ready-add {
    width: 100%;
    min-height: 40px;
    border: 1px solid #e1aaa3;
    border-radius: 10px;
    background: #fff;
    color: #a1372c;
    opacity: 1;
  }
  .ready-quantity-row.variant-unavailable .ready-qty-total {
    color: #8b4a43;
    text-align: center;
  }
}

/* Search + Gujarati/Tamil product names — v6.2.3 */
.product-local-names {
  display: grid;
  gap: 4px;
  min-height: 62px;
  margin: -1px 0 10px;
  color: var(--green-dark);
  font-size: .77rem;
  font-weight: 760;
  line-height: 1.4;
}
.product-local-names p {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 6px;
  margin: 0;
}
.product-local-names .language-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 23px;
  min-height: 18px;
  padding: 1px 5px;
  border: 1px solid #d9d6c8;
  border-radius: 999px;
  background: #f7f6ef;
  color: #6c665c;
  font-size: .54rem;
  font-weight: 950;
  letter-spacing: .04em;
  line-height: 1;
}
.product-local-names .local-separator { color: #b5ad9e; }
.home-shop-toolbar { margin-top: -4px; }
.home-shop-toolbar .search-all-link { flex: 0 0 auto; text-decoration: none; }

@media (max-width: 580px) {
  .product-local-names {
    gap: 5px;
    min-height: 0;
    margin-bottom: 11px;
    font-size: .72rem;
    line-height: 1.35;
  }
  .product-local-names p {
    gap: 3px 5px;
  }
  .product-local-names .language-label {
    min-width: 21px;
    min-height: 17px;
    padding-inline: 4px;
    font-size: .5rem;
  }
  .home-shop-toolbar {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
    margin-bottom: 22px;
  }
  .home-shop-toolbar .search-box,
  .home-shop-toolbar .search-all-link {
    width: 100%;
  }
  .home-shop-toolbar .search-all-link {
    justify-content: center;
    min-height: 44px;
  }
}


/* Product finder, catalogue differentiation & Google review trust — v6.2.4 */
.product-finder-section { background: linear-gradient(180deg, #fff 0%, #f6f1e7 100%); }
.product-finder-card { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:34px; align-items:center; padding:34px; border:1px solid #dccdb9; border-radius:28px; background:#fff; box-shadow:0 18px 46px rgba(76,51,30,.09); }
.product-finder-copy h2 { margin:.25rem 0 .6rem; font-family:Georgia,serif; font-size:clamp(1.7rem,3vw,2.45rem); }
.product-finder-copy p:last-child { color:var(--muted); }
.global-product-search > label { display:block; margin-bottom:8px; font-weight:800; color:var(--green-dark); }
.global-search-row { display:flex; gap:10px; align-items:stretch; }
.global-search-row input { flex:1 1 auto; min-width:0; height:54px; padding:0 18px; border:1px solid #cab89e; border-radius:16px; background:#fffdf8; font-size:16px; outline:none; }
.global-search-row input:focus { border-color:var(--green); box-shadow:0 0 0 3px rgba(73,97,61,.12); }
.quick-search-links,.quick-search-strip { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.quick-search-links { margin-top:14px; }
.quick-search-links > span,.quick-search-strip > span { color:var(--muted); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.quick-search-links a,.quick-search-strip a { display:inline-flex; align-items:center; min-height:34px; padding:6px 11px; border:1px solid #ded1bf; border-radius:999px; background:#fff; color:var(--green-dark); text-decoration:none; font-size:.82rem; font-weight:750; transition:.18s ease; }
.quick-search-links a:hover,.quick-search-strip a:hover { border-color:var(--green); background:#eef3e8; transform:translateY(-1px); }
.quick-search-strip { margin:12px 0 22px; padding:12px 14px; border-radius:16px; background:#f5f1e7; }
.quick-search-strip .quick-all { margin-left:auto; background:var(--green); border-color:var(--green); color:#fff; }
.catalogue-nav-section { position:relative; z-index:3; margin-top:-18px; }
.catalogue-nav { display:flex; gap:8px; overflow-x:auto; padding:10px; border:1px solid #ddd0bc; border-radius:18px; background:rgba(255,255,255,.96); box-shadow:0 12px 30px rgba(76,51,30,.08); scrollbar-width:thin; }
.catalogue-nav a { flex:0 0 auto; padding:10px 14px; border-radius:12px; color:var(--green-dark); text-decoration:none; font-size:.86rem; font-weight:800; white-space:nowrap; }
.catalogue-nav a:hover { background:#f1eee5; }
.catalogue-nav a.active { background:var(--green-dark); color:#fff; box-shadow:0 5px 14px rgba(45,70,37,.18); }
.category-card-grid .category-card:nth-child(1) { background:linear-gradient(160deg,#ffffff 35%,#eef5e8 100%); border-top:5px solid #607c4d; }
.category-card-grid .category-card:nth-child(2) { background:linear-gradient(160deg,#ffffff 35%,#fff3dc 100%); border-top:5px solid #c68b35; }
.category-card-grid .category-card:nth-child(3) { background:linear-gradient(160deg,#ffffff 35%,#fce9e2 100%); border-top:5px solid #b76650; }
.category-card-grid .category-card:nth-child(4) { background:linear-gradient(160deg,#ffffff 35%,#e9f2f5 100%); border-top:5px solid #587a86; }
.google-review-section { background:#fff; }
.google-review-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:34px; align-items:center; padding:34px; border:1px solid #e2d6c4; border-radius:28px; background:linear-gradient(135deg,#fffdf8 0%,#f5f0e6 100%); box-shadow:0 18px 46px rgba(76,51,30,.08); }
.google-review-score { display:flex; gap:18px; align-items:center; }
.google-g { display:grid; place-items:center; width:58px; height:58px; flex:0 0 58px; border-radius:50%; background:#fff; box-shadow:0 7px 20px rgba(0,0,0,.09); font:800 2rem/1 Arial,sans-serif; color:#4285f4; }
.review-score-line { display:flex; align-items:center; gap:12px; margin:3px 0; }
.review-score-line strong { font:800 2.25rem/1 Georgia,serif; color:#2f4128; }
.google-stars { color:#f4b400; letter-spacing:2px; font-size:1.15rem; }
.google-review-score p:last-child,.google-review-copy p { color:var(--muted); }
.google-review-copy h2 { margin:0 0 8px; font-family:Georgia,serif; font-size:clamp(1.6rem,3vw,2.2rem); }
.account-gate-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin-top:4px; }
@media (max-width: 780px) {
  .product-finder-card,.google-review-card { grid-template-columns:1fr; gap:22px; padding:22px; border-radius:22px; }
  .global-search-row { flex-direction:column; }
  .global-search-row .button { width:100%; }
  .catalogue-nav-section { margin-top:-10px; }
  .catalogue-nav { margin-inline:-2px; border-radius:14px; }
  .quick-search-strip { flex-wrap:nowrap; overflow-x:auto; padding:10px 12px; }
  .quick-search-strip > span,.quick-search-strip a { flex:0 0 auto; }
  .quick-search-strip .quick-all { margin-left:0; }
  .google-review-score { align-items:flex-start; }
}

/* Typography & mobile legibility pass — v6.2.5 — 28 Aug 2026
   Keeps the premium hierarchy while ensuring secondary text remains readable
   on desktop, tablet and phone screens. */
:root {
  --text-xs: .75rem;
  --text-sm: .84rem;
  --text-md: .94rem;
  --text-base: 1rem;
  --text-lg: 1.08rem;
}

body { font-size: var(--text-base); line-height: 1.62; }
h1 { font-size: clamp(2.8rem, 5.2vw, 5.15rem); line-height: 1.02; }
h2 { font-size: clamp(2rem, 3.45vw, 3.45rem); line-height: 1.08; }
h3 { line-height: 1.3; }

.announcement { font-size: .88rem; line-height: 1.35; }
.brand strong { font-size: 1.3rem; }
.brand small { font-size: .78rem; }
.site-nav a { font-size: .92rem; }
.cart-button, .button { font-size: .94rem; }
.button.compact { font-size: .86rem; }
.cart-count { font-size: .78rem; }
.eyebrow { font-size: .77rem; line-height: 1.35; }
.hero-lead { font-size: clamp(1rem, 1.45vw, 1.12rem); }
.payment-trust strong { font-size: .88rem; }
.payment-trust small { font-size: .8rem; }
.trust-row { font-size: .87rem; }
.hero-price-card small { font-size: .73rem; }
.hero-price-card strong { font-size: 1.25rem; }
.hero-seal small { font-size: .68rem; }

.benefits-grid h2 { font-size: 1.04rem; line-height: 1.3; }
.benefits-grid p { font-size: .86rem; line-height: 1.5; }
.section-heading p:not(.eyebrow) { font-size: 1rem; line-height: 1.65; }
.search-box input { font-size: 1rem; }
.filter-pill { font-size: .82rem; }
.product-badge { font-size: .7rem; }
.product-meta { font-size: .71rem; line-height: 1.35; }
.product-card h3 { font-size: 1.25rem; line-height: 1.28; }
.product-description { font-size: .89rem; line-height: 1.55; }
.price strong { font-size: 1.24rem; }
.price small { font-size: .76rem; }
.meal-card p:not(.eyebrow), .steps-grid p { font-size: .91rem; }
.quality-list span { font-size: .8rem; }
.notice-box { font-size: .92rem; }

.site-footer h2 { font-size: .84rem; }
.site-footer p { font-size: .88rem; }
.site-footer a, .footer-link-button { font-size: .9rem; }
.stripe-note { font-size: .78rem; line-height: 1.55; }
.footer-bottom { font-size: .81rem; }

.cart-item h3 { font-size: .96rem; }
.cart-item-price { font-size: .79rem; }
.remove-item { font-size: .76rem; }
.summary-line { font-size: .96rem; }
.delivery-note { font-size: .82rem; line-height: 1.5; }
.order-form label, .order-form legend { font-size: .83rem; }
.form-error { font-size: .84rem; }
.checkout-note { font-size: .77rem; line-height: 1.45; }
.toast { font-size: .89rem; }

.status-message, .legal-card p, .legal-card li { font-size: 1rem; line-height: 1.68; }
.legal-card h2 { font-size: 1.35rem; line-height: 1.3; }
.page-hero h1 { font-size: clamp(2.8rem, 5.15vw, 4.9rem); }
.page-hero p:not(.eyebrow) { font-size: clamp(1rem, 1.45vw, 1.15rem); line-height: 1.65; }
.category-card h3 { font-size: 1.58rem; }
.category-card p { font-size: .92rem; line-height: 1.58; }
.category-card strong { font-size: .88rem; }

.product-local-names { font-size: .84rem; line-height: 1.48; }
.product-local-names .language-label { min-width: 25px; min-height: 20px; font-size: .63rem; }
.variant-size { font-size: .82rem; }
.variant-row strong { font-size: .98rem; }
.variant-add { min-height: 38px; font-size: .78rem; }
.variant-stock-out { font-size: .69rem; }
.variant-offer { font-size: .71rem; }
.packaging-photo-grid figcaption { font-size: .86rem; }

.directions-link { font-size: .88rem; }
.delivery-distance-help { font-size: .8rem; line-height: 1.5; }
.account-checkout-gate strong { font-size: .91rem; }
.account-checkout-gate span { font-size: .82rem; }
.account-checkout-gate a { font-size: .84rem; }
.address-suggestion strong { font-size: .86rem; }
.address-suggestion small { font-size: .78rem; }
.address-suggestion-empty { font-size: .82rem; }
.account-form label { font-size: .85rem; }
.account-info-grid span, .customer-order-meta span { font-size: .78rem; }
.order-status { font-size: .76rem; }
.customer-order-items { font-size: .84rem; }
.checkout-customer-copy small { font-size: .76rem; }
.checkout-customer-copy strong { font-size: .92rem; }
.checkout-customer > a { font-size: .82rem; }
.account-header-name { font-size: .86rem; }

.payid-checkout-card span { font-size: .82rem; }
.payid-checkout-card strong { font-size: 1.08rem; }
.payid-checkout-card small { font-size: .8rem; line-height: 1.5; }
.address-mode-option strong { font-size: .85rem; }
.address-mode-option small { font-size: .78rem; line-height: 1.45; }
.manual-delivery-note { font-size: .82rem; }
.ready-add { font-size: .8rem; }
.ready-qty-total { font-size: .76rem; line-height: 1.45; }

.product-finder-copy p:last-child { font-size: .98rem; line-height: 1.6; }
.global-product-search > label { font-size: .92rem; }
.quick-search-links > span, .quick-search-strip > span { font-size: .8rem; }
.quick-search-links a, .quick-search-strip a { min-height: 38px; font-size: .86rem; }
.catalogue-nav a { min-height: 42px; display: inline-flex; align-items: center; font-size: .9rem; }
.google-review-score p:last-child, .google-review-copy p { font-size: .94rem; line-height: 1.6; }

@media (max-width: 980px) {
  .site-nav a { font-size: .96rem; }
  h1 { font-size: clamp(2.6rem, 7.8vw, 4.4rem); }
  h2 { font-size: clamp(1.95rem, 5.5vw, 3rem); }
  .page-hero h1 { font-size: clamp(2.55rem, 7.2vw, 4rem); }
}

@media (max-width: 580px) {
  body { font-size: 1rem; line-height: 1.6; }
  .section { padding-block: 62px; }
  .simple-main { padding: 28px 0 64px; }
  .status-card, .legal-card, .error-card { padding: 24px 20px; border-radius: 24px; }

  h1 { font-size: clamp(2.35rem, 11.5vw, 3.25rem); line-height: 1.04; letter-spacing: -.028em; }
  h2 { font-size: clamp(1.8rem, 8.8vw, 2.45rem); line-height: 1.1; letter-spacing: -.025em; }
  .page-hero { padding-block: 54px; }
  .page-hero h1 { font-size: clamp(2.25rem, 10.5vw, 3.15rem); line-height: 1.06; }
  .page-hero p:not(.eyebrow) { font-size: 1rem; }

  .announcement { font-size: .84rem; }
  .brand strong { max-width: 158px; font-size: 1.03rem; }
  .site-nav a { font-size: 1rem; }
  .cart-button, .button { min-height: 46px; font-size: .94rem; }
  .eyebrow { font-size: .74rem; letter-spacing: .12em; }
  .hero-lead { font-size: 1rem; }
  .trust-row { gap: 10px 14px; font-size: .84rem; }
  .hero-price-card small { font-size: .7rem; }
  .hero-seal small { font-size: .64rem; }

  .benefits-grid h2 { font-size: 1.02rem; }
  .benefits-grid p { font-size: .87rem; }
  .section-heading { margin-bottom: 26px; }
  .section-heading p:not(.eyebrow) { font-size: .96rem; }
  .filter-pill { min-height: 42px; font-size: .84rem; }

  .product-card h3 { font-size: 1.3rem; }
  .product-description { font-size: .92rem; }
  .product-meta { font-size: .72rem; }
  .product-local-names { font-size: .82rem; line-height: 1.48; }
  .product-local-names .language-label { min-width: 25px; min-height: 20px; padding-inline: 5px; font-size: .62rem; }
  .variant-size { font-size: .84rem; }
  .variant-row strong { font-size: 1rem; }
  .variant-add { min-height: 42px; font-size: .8rem; }
  .variant-row.variant-unavailable:not(.ready-quantity-row) .variant-add { font-size: .72rem; }
  .ready-qty-total { font-size: .78rem; }

  .category-card { padding: 23px; }
  .category-card h3 { font-size: 1.48rem; }
  .category-card p { font-size: .93rem; }
  .catalogue-nav a { min-height: 44px; padding: 10px 13px; font-size: .9rem; }
  .quick-search-links a, .quick-search-strip a { min-height: 40px; font-size: .86rem; }

  .cart-header h2 { font-size: 1.7rem; }
  .cart-item h3 { font-size: 1rem; }
  .cart-item-price, .remove-item { font-size: .8rem; }
  .delivery-note, .delivery-distance-help { font-size: .82rem; }
  .order-form label, .order-form legend { font-size: .85rem; }
  .checkout-note { font-size: .78rem; }
  .address-mode-option strong { font-size: .87rem; }
  .address-mode-option small { font-size: .8rem; }
  .manual-delivery-note { font-size: .82rem; }
  .payid-checkout-card small { font-size: .8rem; }

  .site-footer h2 { font-size: .84rem; }
  .site-footer p, .site-footer a, .footer-link-button { font-size: .9rem; }
  .stripe-note { font-size: .79rem; }
  .footer-bottom { font-size: .8rem; line-height: 1.5; }
}

@media (max-width: 380px) {
  .container, .narrow { width: min(calc(100% - 22px), var(--container)); }
  h1 { font-size: 2.25rem; }
  h2 { font-size: 1.78rem; }
  .page-hero h1 { font-size: 2.18rem; }
  .product-finder-card, .google-review-card { padding: 18px; }
  .review-score-line { flex-wrap: wrap; gap: 7px 10px; }
}

/* Final micro-text safeguard — keep even badge/status text legible. */
.product-badge,
.product-meta,
.variant-stock-out,
.variant-offer,
.product-local-names .language-label,
.hero-seal small { font-size: .72rem; }

@media (max-width: 580px) {
  .product-local-names .language-label,
  .variant-row.variant-unavailable:not(.ready-quantity-row) .variant-add { font-size: .72rem; }
}

/* v6.30: customer-facing ingredients and allergen information */
.product-food-info { margin: 0 0 14px; border: 1px solid #e2e7dd; border-radius: 12px; background: #fafcf8; overflow: hidden; }
.product-food-info summary { position: relative; padding: 10px 34px 10px 12px; color: var(--green-dark); font-size: .82rem; font-weight: 850; line-height: 1.35; cursor: pointer; list-style: none; }
.product-food-info summary::-webkit-details-marker { display: none; }
.product-food-info summary::after { content: '+'; position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #e7eee3; font-size: 1rem; }
.product-food-info[open] summary::after { content: '−'; }
.product-food-info-body { padding: 0 12px 11px; border-top: 1px solid #e6ebe2; }
.product-food-info-body p { margin: 9px 0 0; color: #3e483a; font-size: .79rem; line-height: 1.48; }
.product-food-info-body strong { color: #20341c; }
.product-food-info-body .product-allergen-line { padding: 8px 9px; border-radius: 8px; background: #f3f0e8; }
.product-food-info-body small { display: block; margin-top: 8px; color: #6c7468; font-size: .7rem; line-height: 1.4; }
@media(max-width:620px){.product-food-info summary{font-size:.86rem}.product-food-info-body p{font-size:.82rem}.product-food-info-body small{font-size:.73rem}}

/* Checkout completion assistant — explains why order buttons are unavailable. */
.checkout-assistant {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 11px;
  align-items: start;
  padding: 13px 14px;
  border: 1px solid #e2c77a;
  border-radius: 14px;
  background: #fff8df;
  box-shadow: 0 6px 18px rgba(84, 62, 22, .06);
}
.checkout-assistant[data-tone="ready"] {
  border-color: #b9d2ae;
  background: #f0f7ec;
}
.checkout-assistant-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #8b6418;
  color: #fff;
  font-size: 1.05rem;
  font-weight: 950;
}
.checkout-assistant[data-tone="ready"] .checkout-assistant-icon { background: var(--green); }
.checkout-assistant-copy { min-width: 0; }
.checkout-assistant-copy strong {
  display: block;
  color: #543d16;
  font-size: .9rem;
  line-height: 1.25;
}
.checkout-assistant[data-tone="ready"] .checkout-assistant-copy strong { color: var(--green); }
.checkout-assistant-copy p {
  margin: 4px 0 0;
  color: #66563e;
  font-size: .79rem;
  line-height: 1.45;
}
.checkout-assistant-action {
  margin-top: 9px;
  min-height: 38px;
  padding: 8px 12px;
  border: 0;
  border-radius: 10px;
  background: #6f5016;
  color: #fff;
  font: inherit;
  font-size: .78rem;
  font-weight: 900;
  cursor: pointer;
}
.checkout-assistant-action:hover { filter: brightness(.96); }
.checkout-assistant-action[hidden] { display: none !important; }
.payment-button.needs-checkout-details:disabled,
.payid-order-button.needs-checkout-details:disabled {
  opacity: .72;
  filter: none;
  background: #dedbd5;
  border-color: #c8c3bb;
  color: #554f48;
}
.checkout-requirement-highlight {
  border-radius: 12px;
  outline: 3px solid rgba(196, 141, 31, .35);
  outline-offset: 4px;
  transition: outline-color .25s ease;
}
@media (max-width: 640px) {
  .checkout-assistant {
    grid-template-columns: 34px 1fr;
    padding: 12px;
  }
  .checkout-assistant-icon { width: 31px; height: 31px; }
  .checkout-assistant-copy strong { font-size: .92rem; }
  .checkout-assistant-copy p { font-size: .82rem; }
  .checkout-assistant-action { width: 100%; min-height: 42px; font-size: .82rem; }
}

/* v7.1: free-delivery codes, product pages, offers and local trust */
.delivery-code-card{margin:12px 0;padding:12px;border:1px solid #d9e4d4;border-radius:12px;background:#f8fbf6}.delivery-code-card label{margin:0;font-weight:800}.optional-label{font-size:.75rem;font-weight:700;color:#6a7565}.delivery-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:7px}.delivery-code-row input{text-transform:uppercase}.delivery-code-status{display:block;margin-top:7px;min-height:1.1em;color:#687462}.delivery-code-status.success{color:#2f6b2b;font-weight:700}.delivery-code-status.error{color:#9b2d24;font-weight:700}.product-detail-link{margin:.2rem 0 .65rem}.product-detail-link a{font-weight:800;color:#416237;text-decoration:none}.product-detail-link a:hover{text-decoration:underline}.trust-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.trust-info-grid article{background:#fff;border:1px solid #dce5d8;border-radius:16px;padding:18px;box-shadow:0 8px 22px rgba(32,57,27,.05)}.trust-info-grid strong{display:block;font-size:1.02rem;margin-bottom:6px}.trust-info-grid span{color:#667260;font-size:.92rem}.home-offer-callout{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:20px;padding:20px;border-radius:18px;background:#eef4ea}.home-offer-callout h3{margin:.15rem 0 0}.product-detail-section{padding:clamp(32px,6vw,72px) 0}.product-detail-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(24px,5vw,64px);align-items:start}.product-detail-image{border-radius:24px;overflow:hidden;background:#f2f5ef;border:1px solid #dfe7da}.product-detail-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.product-detail-copy h1{font-size:clamp(2rem,4vw,3.6rem);line-height:1.02;margin:.2rem 0 1rem}.product-detail-description{font-size:1.08rem;line-height:1.7;color:#4f5e4a}.product-detail-local-names{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.product-detail-local-names span{display:inline-grid;gap:2px;padding:7px 10px;border-radius:10px;background:#f5f8f2}.product-detail-local-names small{font-size:.68rem;text-transform:uppercase;color:#6b7866;font-weight:800}.product-detail-badge{position:static;display:inline-flex;margin:4px 0 14px}.product-detail-variants{display:grid;gap:9px}.product-detail-variant{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px;border:1px solid #dce5d8;border-radius:12px;background:#fff}.product-detail-variant>div{display:grid}.product-detail-variant small{color:#6a7565}.detail-price{font-weight:900;font-size:1.08rem}.product-detail-info{margin-top:22px;padding:18px;border-radius:16px;background:#f8faf6;border:1px solid #dce5d8}.offers-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.offer-card{overflow:hidden;border:1px solid #dce5d8;border-radius:18px;background:#fff;box-shadow:0 10px 26px rgba(32,57,27,.06)}.offer-card>div{padding:16px}.offer-image{display:block;background:#f2f5ef;aspect-ratio:4/3;overflow:hidden}.offer-image img{width:100%;height:100%;object-fit:cover}.offer-card h2{font-size:1.15rem;margin:.7rem 0 .4rem}.offer-card h2 a{color:inherit;text-decoration:none}.offer-card p{color:#667260;font-size:.92rem}.offer-price-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:12px}.offer-price-row>strong{font-size:1.25rem}.local-trust-section{background:#f7f9f5}
@media(max-width:900px){.trust-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-detail-grid{grid-template-columns:1fr}.offers-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.delivery-code-row{grid-template-columns:1fr}.trust-info-grid,.offers-grid{grid-template-columns:1fr}.home-offer-callout{align-items:flex-start;flex-direction:column}.product-detail-variant{grid-template-columns:1fr auto}.product-detail-variant .button{grid-column:1/-1;width:100%}}

.offer-card .product-badge{position:static;display:inline-flex;margin:0 0 4px;box-shadow:none}

/* ================================================================
   Festival Mode v7.2
   Lightweight seasonal banner + product motion. No external media.
   ================================================================ */
body.festival-active {
  --festival-a: #b55216;
  --festival-b: #f0b24f;
  --festival-c: #fff3d6;
  --festival-ink: #2d1b0e;
}
body[data-festival-theme="harvest"] { --festival-a:#7d4d16;--festival-b:#d9a72e;--festival-c:#fff4c6;--festival-ink:#2f210d; }
body[data-festival-theme="patriotic"] { --festival-a:#df7722;--festival-b:#17844d;--festival-c:#fff;--festival-ink:#173c2a; }
body[data-festival-theme="colour"] { --festival-a:#b83280;--festival-b:#315fd3;--festival-c:#fff0c8;--festival-ink:#2c1533; }
body[data-festival-theme="spring"] { --festival-a:#d19915;--festival-b:#79a93d;--festival-c:#fff8ce;--festival-ink:#354016; }
body[data-festival-theme="moon"] { --festival-a:#1d6a59;--festival-b:#c7a23e;--festival-c:#effcf7;--festival-ink:#123d34; }
body[data-festival-theme="lotus"] { --festival-a:#a54269;--festival-b:#e3a64f;--festival-c:#fff1f5;--festival-ink:#4a1d30; }
body[data-festival-theme="peace"] { --festival-a:#536c76;--festival-b:#91aaa5;--festival-c:#f7fbfb;--festival-ink:#27383d; }
body[data-festival-theme="gold"] { --festival-a:#8f5e12;--festival-b:#d6a633;--festival-c:#fff6d8;--festival-ink:#352508; }
body[data-festival-theme="rose"] { --festival-a:#9d3e5d;--festival-b:#dc8b72;--festival-c:#fff0ef;--festival-ink:#47202d; }
body[data-festival-theme="blue"] { --festival-a:#2f5aa8;--festival-b:#e4a62f;--festival-c:#edf4ff;--festival-ink:#172b51; }
body[data-festival-theme="ganesh"] { --festival-a:#c55217;--festival-b:#e6aa31;--festival-c:#fff0cf;--festival-ink:#40210b; }
body[data-festival-theme="navratri"] { --festival-a:#8c2b61;--festival-b:#e18b25;--festival-c:#fff1dc;--festival-ink:#421a33; }
body[data-festival-theme="diwali"] { --festival-a:#6c2b91;--festival-b:#d9931f;--festival-c:#fff2c5;--festival-ink:#351341; }
body[data-festival-theme="green"] { --festival-a:#34733b;--festival-b:#d2a63f;--festival-c:#f2f8df;--festival-ink:#17371b; }
body[data-festival-theme="sun"] { --festival-a:#bd5b19;--festival-b:#f2bf31;--festival-c:#fff3cf;--festival-ink:#45220c; }
body[data-festival-theme="night"] { --festival-a:#24355f;--festival-b:#a58447;--festival-c:#eef2ff;--festival-ink:#101a38; }
body[data-festival-theme="christmas"] { --festival-a:#9d2727;--festival-b:#2f7544;--festival-c:#fff7ef;--festival-ink:#321616; }

.festival-banner {
  position: relative;
  z-index: 34;
  overflow: hidden;
  color: var(--festival-ink);
  background:
    radial-gradient(circle at 12% 30%, rgba(255,255,255,.65) 0 2px, transparent 3px),
    radial-gradient(circle at 72% 60%, rgba(255,255,255,.42) 0 2px, transparent 3px),
    linear-gradient(105deg, var(--festival-c), color-mix(in srgb, var(--festival-b) 30%, white));
  border-bottom: 1px solid color-mix(in srgb, var(--festival-a) 22%, transparent);
  box-shadow: 0 8px 28px rgba(49, 35, 18, .08);
}
.festival-banner::before,
.festival-banner::after {
  content: "";
  position: absolute;
  width: 150px;
  height: 150px;
  border: 1px solid color-mix(in srgb, var(--festival-a) 18%, transparent);
  border-radius: 50%;
  pointer-events: none;
}
.festival-banner::before { left: -65px; top: -82px; }
.festival-banner::after { right: 5%; bottom: -120px; }
.festival-banner-inner {
  min-height: 86px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 16px;
  padding-top: 12px;
  padding-bottom: 12px;
}
.festival-emoji {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.78), 0 8px 20px rgba(40,20,0,.09);
  font-size: 1.8rem;
  animation: festival-emoji-pulse 3.8s ease-in-out infinite;
}
.festival-banner-copy { display: grid; gap: 2px; min-width: 0; }
.festival-banner-copy small { font-weight: 850; color: color-mix(in srgb, var(--festival-a) 78%, #2b2b2b); letter-spacing: .025em; }
.festival-banner-copy strong { font-size: clamp(1.02rem, 2vw, 1.35rem); line-height: 1.15; }
.festival-banner-copy span { font-size: .94rem; line-height: 1.35; opacity: .9; }
.festival-shop-link {
  white-space: nowrap;
  color: #fff;
  background: var(--festival-a);
  border: 1px solid color-mix(in srgb, var(--festival-a) 75%, #000);
  border-radius: 999px;
  padding: 10px 15px;
  font-size: .86rem;
  font-weight: 850;
  text-decoration: none;
  box-shadow: 0 7px 18px color-mix(in srgb, var(--festival-a) 22%, transparent);
  transition: transform .2s ease, box-shadow .2s ease;
}
.festival-shop-link:hover { transform: translateY(-2px); box-shadow: 0 10px 22px color-mix(in srgb, var(--festival-a) 30%, transparent); }

.festival-product-active {
  position: relative;
  isolation: isolate;
  animation: festival-product-float 5.8s ease-in-out infinite;
}
.festival-product-active:nth-child(2n) { animation-delay: -.8s; }
.festival-product-active:nth-child(3n) { animation-delay: -1.6s; }
.festival-product-featured::after {
  content: "Festival pick ✨";
  position: absolute;
  z-index: 5;
  top: 10px;
  right: 10px;
  padding: 6px 9px;
  border-radius: 999px;
  color: #fff;
  background: var(--festival-a);
  box-shadow: 0 7px 18px rgba(0,0,0,.13);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .02em;
  pointer-events: none;
}
.festival-product-featured {
  box-shadow: 0 16px 38px color-mix(in srgb, var(--festival-a) 14%, rgba(0,0,0,.05));
}
.festival-product-featured .product-image,
.festival-product-featured .offer-image img,
.product-detail-grid.festival-product-featured .product-detail-image img {
  animation: festival-image-breathe 4.8s ease-in-out infinite;
}

.festival-decorations {
  position: fixed;
  inset: 0;
  z-index: 33;
  overflow: hidden;
  pointer-events: none;
}
.festival-decorations span {
  --festival-i: 0;
  --festival-x: 50%;
  position: absolute;
  left: var(--festival-x);
  top: -36px;
  font-size: clamp(.75rem, 1.3vw, 1.15rem);
  opacity: 0;
  filter: drop-shadow(0 3px 4px rgba(0,0,0,.08));
  animation: festival-drift calc(9s + (var(--festival-i) * .65s)) linear infinite;
  animation-delay: calc(var(--festival-i) * -1.35s);
}

@keyframes festival-emoji-pulse {
  0%,100% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.06); }
}
@keyframes festival-product-float {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes festival-image-breathe {
  0%,100% { transform: scale(1); }
  50% { transform: scale(1.025); }
}
@keyframes festival-drift {
  0% { transform: translate3d(0,-30px,0) rotate(0deg); opacity: 0; }
  8% { opacity: .42; }
  86% { opacity: .22; }
  100% { transform: translate3d(24px,105vh,0) rotate(240deg); opacity: 0; }
}

@media (max-width: 760px) {
  .festival-banner-inner { grid-template-columns: auto 1fr; gap: 10px; min-height: 82px; }
  .festival-emoji { width: 46px; height: 46px; border-radius: 14px; font-size: 1.45rem; }
  .festival-shop-link { grid-column: 2; justify-self: start; padding: 7px 11px; font-size: .78rem; }
  .festival-banner-copy span { font-size: .84rem; }
  .festival-banner-copy small { font-size: .72rem; }
  .festival-product-featured::after { top: 8px; right: 8px; font-size: .66rem; }
}

@media (prefers-reduced-motion: reduce) {
  .festival-emoji,
  .festival-product-active,
  .festival-product-featured .product-image,
  .festival-product-featured .offer-image img,
  .product-detail-grid.festival-product-featured .product-detail-image img,
  .festival-decorations span { animation: none !important; transform: none !important; }
  .festival-decorations { display: none !important; }
}


/* ================================================================
   Ganesh Chaturthi visual layer v7.2.2
   Real festival artwork + lightweight CSS animation.
   ================================================================ */
body[data-festival-theme="ganesh"] .festival-banner {
  background:
    radial-gradient(circle at 13% 30%, rgba(255,255,255,.78) 0 2px, transparent 3px),
    radial-gradient(circle at 74% 52%, rgba(255,218,129,.38) 0 2px, transparent 3px),
    linear-gradient(100deg, #fff8e6 0%, #fff0c9 52%, #f8dda1 100%);
  border-bottom-color: rgba(190,106,24,.24);
}
.festival-ganesh-art {
  position: relative;
  width: 78px;
  height: 78px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  isolation: isolate;
}
.festival-ganesh-art img {
  position: relative;
  z-index: 2;
  width: 70px;
  height: 70px;
  object-fit: cover;
  object-position: 50% 48%;
  border: 3px solid rgba(255,255,255,.92);
  border-radius: 22px;
  box-shadow: 0 9px 24px rgba(117,61,13,.22);
  animation: ganesh-blessing-float 4.2s ease-in-out infinite;
}
.festival-ganesh-halo {
  position: absolute;
  z-index: 1;
  inset: 5px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,206,91,.72) 0%, rgba(235,145,34,.18) 52%, transparent 72%);
  filter: blur(2px);
  animation: ganesh-halo-pulse 3.2s ease-in-out infinite;
}
body[data-festival-theme="ganesh"] .festival-banner-copy strong {
  color: #7f3212;
  text-shadow: 0 1px 0 rgba(255,255,255,.8);
  animation: ganesh-title-glow 3.6s ease-in-out infinite;
}
body[data-festival-theme="ganesh"] .festival-shop-link {
  background: linear-gradient(135deg, #aa4818, #cf681c);
  border-color: #903a13;
}
.festival-hero-ganesh {
  position: absolute;
  z-index: 8;
  top: -28px;
  right: -26px;
  width: 186px;
  display: grid;
  justify-items: center;
  pointer-events: none;
  filter: drop-shadow(0 18px 28px rgba(91,50,12,.18));
  animation: ganesh-hero-float 5.2s ease-in-out infinite;
}
.festival-hero-ganesh img {
  position: relative;
  z-index: 2;
  width: 164px;
  height: 164px;
  object-fit: cover;
  object-position: 50% 48%;
  border: 5px solid rgba(255,250,232,.94);
  border-radius: 50%;
  box-shadow: 0 0 0 2px rgba(202,116,25,.30), 0 18px 34px rgba(77,43,10,.22);
}
.festival-hero-ganesh-ring {
  position: absolute;
  z-index: 1;
  top: -11px;
  width: 184px;
  height: 184px;
  border: 2px solid rgba(210,135,34,.38);
  border-radius: 50%;
  box-shadow: 0 0 0 11px rgba(255,218,130,.12);
  animation: ganesh-ring-breathe 3.8s ease-in-out infinite;
}
.festival-hero-ganesh strong {
  position: relative;
  z-index: 3;
  margin-top: -8px;
  padding: 6px 10px;
  border: 1px solid rgba(180,91,19,.18);
  border-radius: 999px;
  color: #7a3415;
  background: rgba(255,248,226,.94);
  box-shadow: 0 8px 18px rgba(85,47,15,.14);
  font-family: Georgia, serif;
  font-size: .82rem;
  white-space: nowrap;
}
.festival-decorations-ganesh span:nth-child(4n+1) { font-size: clamp(.82rem,1.35vw,1.2rem); }
.festival-decorations-ganesh span:nth-child(4n+2) { filter: drop-shadow(0 3px 5px rgba(153,64,24,.13)); }

@keyframes ganesh-blessing-float {
  0%,100% { transform: translateY(0) rotate(-1deg) scale(1); }
  50% { transform: translateY(-4px) rotate(1deg) scale(1.035); }
}
@keyframes ganesh-halo-pulse {
  0%,100% { opacity:.55; transform:scale(.92); }
  50% { opacity:1; transform:scale(1.08); }
}
@keyframes ganesh-title-glow {
  0%,100% { text-shadow:0 1px 0 rgba(255,255,255,.8),0 0 0 rgba(221,139,38,0); }
  50% { text-shadow:0 1px 0 rgba(255,255,255,.9),0 0 18px rgba(221,139,38,.28); }
}
@keyframes ganesh-hero-float {
  0%,100% { transform:translate3d(0,0,0) rotate(1deg); }
  50% { transform:translate3d(0,-7px,0) rotate(-1deg); }
}
@keyframes ganesh-ring-breathe {
  0%,100% { opacity:.55; transform:scale(.94); }
  50% { opacity:1; transform:scale(1.045); }
}

@media (max-width: 760px) {
  .festival-ganesh-art { width: 58px; height: 58px; }
  .festival-ganesh-art img { width: 54px; height: 54px; border-radius: 16px; border-width: 2px; }
  .festival-banner-ganesh .festival-banner-inner { min-height: 92px; }
  .festival-hero-ganesh { top: -18px; right: 2px; width: 124px; }
  .festival-hero-ganesh img { width: 108px; height: 108px; border-width: 4px; }
  .festival-hero-ganesh-ring { top: -8px; width: 122px; height: 122px; }
  .festival-hero-ganesh strong { margin-top:-5px; padding:4px 8px; font-size:.66rem; }
}
@media (max-width: 480px) {
  .festival-banner-ganesh .festival-banner-inner { grid-template-columns: 52px 1fr; }
  .festival-banner-ganesh .festival-shop-link { grid-column: 1 / -1; justify-self: stretch; text-align: center; }
  .festival-hero-ganesh { width: 104px; top: -14px; right: 4px; }
  .festival-hero-ganesh img { width: 90px; height: 90px; }
  .festival-hero-ganesh-ring { width: 102px; height: 102px; }
  .festival-hero-ganesh strong { display:none; }
}
@media (prefers-reduced-motion: reduce) {
  .festival-ganesh-art img,
  .festival-ganesh-halo,
  body[data-festival-theme="ganesh"] .festival-banner-copy strong,
  .festival-hero-ganesh,
  .festival-hero-ganesh-ring { animation:none!important; transform:none!important; }
}


/* v7.2.3 — animated, data-driven homepage product-category carousel */
.home-category-showcase {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 5%, rgba(198,139,53,.11), transparent 27%),
    linear-gradient(180deg, #fbfaf6 0%, #f5f1e7 100%);
  border-block: 1px solid rgba(86,104,67,.12);
}
.home-category-heading { align-items: end; gap: 24px; margin-bottom: 24px; }
.home-category-heading .section-heading { margin-bottom: 0; }
.home-category-heading p { max-width: 720px; }
.home-category-controls { display: flex; gap: 9px; flex: 0 0 auto; }
.category-carousel-button {
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  border: 1px solid #cbd4c2;
  border-radius: 50%;
  background: rgba(255,255,255,.92);
  color: var(--green-dark);
  font: 800 1.25rem/1 system-ui, sans-serif;
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(48,66,39,.08);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.category-carousel-button:hover,
.category-carousel-button:focus-visible {
  transform: translateY(-2px);
  background: #fff;
  box-shadow: 0 10px 24px rgba(48,66,39,.15);
  outline: 2px solid rgba(96,124,77,.28);
  outline-offset: 2px;
}
.home-category-carousel { position: relative; }
.home-category-track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(225px, 24%);
  gap: 16px;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
  padding: 5px 3px 18px;
  position: relative;
}
.home-category-track::-webkit-scrollbar { display: none; }
.home-category-card {
  scroll-snap-align: start;
  min-width: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(84,103,67,.16);
  border-radius: 24px;
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  box-shadow: 0 10px 26px rgba(54,67,44,.08);
  transform: translateZ(0);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.home-category-card:hover,
.home-category-card:focus-visible {
  transform: translateY(-6px);
  border-color: rgba(96,124,77,.42);
  box-shadow: 0 18px 36px rgba(54,67,44,.15);
  outline: none;
}
.home-category-image-wrap {
  position: relative;
  display: block;
  height: 128px;
  overflow: hidden;
  background: linear-gradient(135deg,#edf3e8,#f8ead5);
}
.home-category-image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .65s cubic-bezier(.2,.7,.2,1);
}
.home-category-card:hover .home-category-image-wrap img,
.home-category-card:focus-visible .home-category-image-wrap img { transform: scale(1.07); }
.home-category-icon {
  position: absolute;
  left: 14px;
  bottom: 12px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: rgba(255,255,255,.93);
  box-shadow: 0 7px 18px rgba(55,52,36,.16);
  font-size: 1.35rem;
}
.home-category-card-body { display: flex; flex: 1; flex-direction: column; padding: 17px 18px 18px; }
.home-category-card-meta {
  margin-bottom: 5px;
  color: #8a5b26;
  font-size: .72rem;
  line-height: 1.2;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-category-card-body > strong { font-family: Georgia, serif; color: var(--green-dark); font-size: 1.28rem; }
.home-category-card-body > small {
  min-height: 38px;
  margin-top: 7px;
  color: var(--muted);
  font-size: .78rem;
  line-height: 1.45;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.home-category-link { margin-top: 13px; color: var(--green-dark); font-size: .8rem; font-weight: 800; }
.home-category-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding-top: 2px;
  color: var(--muted);
  font-size: .82rem;
}
.home-category-footer strong { color: var(--green-dark); }
.home-category-footer a { color: var(--green-dark); font-weight: 800; text-decoration: none; }
.home-category-footer a:hover { text-decoration: underline; }

@media (max-width: 980px) {
  .home-category-track { grid-auto-columns: minmax(220px, 38%); }
}
@media (max-width: 680px) {
  .home-category-heading { align-items: center; margin-bottom: 16px; }
  .home-category-heading > div:first-child { min-width: 0; }
  .home-category-heading h2 { font-size: clamp(1.75rem, 8vw, 2.25rem); }
  .home-category-heading p { font-size: .9rem; }
  .home-category-controls { gap: 6px; }
  .category-carousel-button { width: 38px; height: 38px; font-size: 1.05rem; }
  .home-category-track { grid-auto-columns: minmax(238px, 78vw); gap: 13px; padding-bottom: 14px; }
  .home-category-image-wrap { height: 118px; }
  .home-category-card-body { padding: 15px 16px 16px; }
  .home-category-footer { align-items: flex-start; flex-direction: column; gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  .home-category-track { scroll-behavior: auto; }
  .home-category-card,
  .home-category-image-wrap img,
  .category-carousel-button { transition: none !important; transform: none !important; }
}

/* Westpac merchant website disclosure - 2026-09-17 */
.merchant-payment-disclosure{margin:14px 0;padding:14px 15px;border:1px solid #cfdcc9;border-radius:14px;background:#f7faf5;color:#273422;font-size:.88rem;line-height:1.48}.merchant-payment-disclosure>strong{display:block;margin-bottom:7px;font-size:.95rem}.merchant-payment-disclosure p{margin:5px 0}.merchant-payment-disclosure a{font-weight:800;color:#315b2b}.merchant-footer-note{font-size:.86rem;line-height:1.45;opacity:.92}.payment-fee-line,.card-total-line{font-size:.9rem}.card-total-line{padding-top:8px;border-top:1px dashed rgba(60,79,54,.22)}.card-total-line strong{font-size:1.02rem}.legal-card a{word-break:break-word}.legal-card h2{scroll-margin-top:90px}.simple-actions{display:flex;gap:10px;flex-wrap:wrap}.simple-actions .button-secondary{background:#eef3eb;color:#294522;border:1px solid #cbd8c5}@media(max-width:640px){.merchant-payment-disclosure{padding:12px;font-size:.84rem}.payment-fee-line,.card-total-line{align-items:flex-start;gap:12px}.payment-fee-line span,.card-total-line span{max-width:64%}}
