/* CRO growth additions: retain Velappar's cream/leaf palette and existing components. */
.cro-trust-strip{max-width:1200px;margin:18px auto 6px;padding:14px 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;border:1px solid rgba(31,122,77,.15);border-radius:18px;background:#fffdf5;color:var(--ink);font-size:13px;font-weight:700}
.divisions-grid .division-card.fresh,.divisions-grid .division-card.mess{min-height:168px;border-width:2px}
.home-live-section.is-empty{display:none}
.growth-section{max-width:1200px;margin:48px auto;padding:38px;display:grid;grid-template-columns:1.05fr .95fr;gap:40px;border-radius:28px;background:linear-gradient(135deg,#123d29,#1f6b46);color:#fff}
.growth-copy .eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#f3cb72}.growth-copy h2{margin:10px 0;font-family:Boska,"Instrument Serif",serif;font-size:clamp(34px,4vw,56px);line-height:.98}.growth-copy p{max-width:580px;color:rgba(255,255,255,.78)}
.growth-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.growth-options button{min-height:44px;padding:9px 14px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:transparent;color:#fff;font-weight:700}
.growth-form{display:grid;gap:11px;padding:22px;border-radius:20px;background:#fffdf5;color:var(--ink)}.growth-form input,.growth-form select,.growth-form textarea{width:100%;min-height:46px;border:1px solid rgba(13,31,22,.16);border-radius:12px;padding:11px 13px;background:#fff}.growth-form textarea{min-height:96px;resize:vertical}.lead-consent{display:flex;gap:9px;align-items:flex-start;font-size:12px}.lead-consent input{width:18px;min-height:18px}.lead-whatsapp{text-align:center;color:var(--leaf);font-size:13px;font-weight:800}.growth-form #leadStatus{font-size:12px;font-weight:700}
.info-grid{max-width:1200px;margin:28px auto 56px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.info-grid article{padding:24px;border:1px solid rgba(13,31,22,.12);border-radius:18px;background:#fff}.info-grid h3{margin:0 0 8px}.info-grid p{color:var(--ink-mute);font-size:14px;line-height:1.55}.info-grid details{border-top:1px solid rgba(13,31,22,.1);padding:10px 0}.info-grid summary{cursor:pointer;font-size:13px;font-weight:700}
.free-delivery-nudge{padding:10px 0;color:var(--leaf);font-size:12px;font-weight:800}.delivery-progress{height:6px;margin-top:7px;overflow:hidden;border-radius:99px;background:rgba(31,122,77,.12)}.delivery-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#64a752,#1f7a4d)}
.contact-consent{display:flex;gap:10px;align-items:flex-start;margin:12px 0 18px;font-size:13px;line-height:1.45}.contact-consent input{margin-top:2px}
.reorder-actions{border-top:0!important;padding-top:0!important}
@media(max-width:800px){.cro-trust-strip{margin:12px 14px 4px;grid-template-columns:1fr 1fr;padding:13px;font-size:11px}.growth-section{margin:32px 14px;padding:24px 18px;grid-template-columns:1fr;gap:22px}.info-grid{margin:22px 14px 44px;grid-template-columns:1fr}.divisions-grid{grid-template-columns:1fr 1fr}.divisions-grid .division-card.fresh,.divisions-grid .division-card.mess{grid-column:span 1;min-height:145px}.cart-drawer{height:100dvh;max-height:100dvh}.cart-summary{position:sticky;bottom:0;z-index:3;background:var(--cream,#fffdf5);padding-bottom:max(12px,env(safe-area-inset-bottom))}}
@media(max-width:420px){.cro-trust-strip,.divisions-grid{grid-template-columns:1fr}.growth-options{display:grid}.growth-options button{width:100%}}
@media(max-width:360px){
    html,body{max-width:100%;overflow-x:clip}
    .header-inner{gap:8px;padding:10px 12px}
    .header-actions{display:none}
    .header-location{margin-left:auto;max-width:138px;padding:5px 8px}
    .header-location .info .addr{max-width:102px;font-size:11px}
    .brand-logo{max-width:140px}
    .category-strip-inner{max-width:100vw}
    .product-grid,.product-card{min-width:0}
}

/* ================================================================
   VELAPPAR — DESIGN TOKENS
   ================================================================ */
:root {
    /* Palette — grounded in produce, not corporate greens */
    --leaf: #0f5a2a;
    --leaf-dark: #0a3f1d;
    --leaf-soft: #4a8f5f;
    --leaf-tint: #e8f0e0;
    --tomato: #d43926;
    --tomato-dark: #a82b1c;
    --banana: #f4b93a;
    --banana-deep: #d99a1f;
    --paper: #fbf6ea;
    --paper-warm: #f4ecd7;
    --paper-deep: #ebe0c4;
    --ink: #1a1613;
    --ink-soft: #4d4740;
    --ink-mute: #8a8478;
    --rule: #e2d8bf;
    --white: #ffffff;

    /* Type */
    --serif: "Fraunces", Georgia, serif;
    --display: "Boska", "Instrument Serif", "Fraunces", Georgia, serif;
    --sans: "Satoshi", "Work Sans", "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --tamil: "Noto Sans Tamil", var(--sans);
    --mono: "JetBrains Mono", ui-monospace, Menlo, monospace;

    /* Radius */
    --r-sm: 6px;
    --r-md: 12px;
    --r-lg: 20px;
    --r-xl: 28px;

    /* Shadow */
    --shadow-sm: 0 1px 2px rgba(26, 22, 19, 0.04), 0 2px 6px rgba(26, 22, 19, 0.04);
    --shadow-md: 0 4px 12px rgba(26, 22, 19, 0.06), 0 8px 24px rgba(26, 22, 19, 0.05);
    --shadow-lg: 0 12px 32px rgba(26, 22, 19, 0.1), 0 24px 60px rgba(26, 22, 19, 0.08);
    --shadow-leaf: 0 4px 20px rgba(15, 90, 42, 0.18);
}

/* ================================================================
   RESET & BASE
   ================================================================ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
    font-family: var(--sans);
    font-size: 15px;
    line-height: 1.5;
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}
img, svg { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }
input:focus, button:focus, select:focus { outline: 2px solid var(--leaf-soft); outline-offset: 2px; }
input:focus:not(:focus-visible), button:focus:not(:focus-visible) { outline: none; }
a { color: inherit; text-decoration: none; }
.tamil { font-family: var(--tamil); font-weight: 400; }

/* ================================================================
   LOCATION GATE (mandatory first screen)
   ================================================================ */
.gate {
    position: fixed;
    inset: 0;
    z-index: 200;
    background: var(--paper);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    transition: opacity 0.4s ease, transform 0.4s ease;
}
.gate.hidden {
    opacity: 0;
    transform: scale(0.98);
    pointer-events: none;
}
.gate-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 20%, rgba(244, 185, 58, 0.15), transparent 40%),
        radial-gradient(circle at 85% 80%, rgba(212, 57, 38, 0.1), transparent 45%),
        radial-gradient(circle at 50% 100%, rgba(15, 90, 42, 0.08), transparent 50%);
    pointer-events: none;
}
.gate-inner {
    position: relative;
    max-width: 520px;
    width: 100%;
    margin: auto;
    padding: 40px 24px;
}
.gate-brand {
    text-align: center;
    margin-bottom: 32px;
}
.gate-brand .mark {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--serif);
    font-weight: 900;
    font-size: 38px;
    line-height: 1;
    color: var(--leaf);
    letter-spacing: -0.03em;
    font-variation-settings: "opsz" 144;
}
.gate-brand .mark::before {
    content: "";
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--tomato);
    display: inline-block;
}
.gate-brand .sub {
    font-family: var(--mono);
    font-size: 10px;
    letter-spacing: 0.24em;
    text-transform: uppercase;
    color: var(--ink-mute);
    margin-top: 10px;
}
.gate h1 {
    font-family: var(--serif);
    font-weight: 500;
    font-size: clamp(30px, 6vw, 40px);
    line-height: 1.1;
    letter-spacing: -0.02em;
    text-align: center;
    color: var(--ink);
    margin-bottom: 8px;
    font-variation-settings: "opsz" 80;
}
.gate h1 em {
    font-style: italic;
    color: var(--leaf);
    font-weight: 600;
}
.gate .lede {
    text-align: center;
    color: var(--ink-soft);
    margin-bottom: 32px;
    font-size: 15px;
}
.gate-actions {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.gate-btn {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    padding: 18px 20px;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    text-align: left;
    transition: all 0.15s ease;
    box-shadow: var(--shadow-sm);
}
.gate-btn:hover {
    border-color: var(--leaf);
    transform: translateY(-1px);
    box-shadow: var(--shadow-md);
}
.gate-btn.primary {
    background: var(--leaf);
    color: var(--paper);
    border-color: var(--leaf);
}
.gate-btn.primary:hover {
    background: var(--leaf-dark);
}
.gate-btn .icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--leaf-tint);
    display: grid;
    place-items: center;
    font-size: 20px;
    flex-shrink: 0;
}
.gate-btn.primary .icon { background: rgba(255, 255, 255, 0.15); }
.gate-btn .text .title { font-weight: 600; font-size: 15px; margin-bottom: 2px; }
.gate-btn .text .desc { font-size: 12px; opacity: 0.75; }
.gate-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 20px 0;
    color: var(--ink-mute);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}
.gate-divider::before, .gate-divider::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--rule);
}
.gate-search {
    position: relative;
}
.gate-search input {
    width: 100%;
    padding: 18px 20px 18px 52px;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    font-size: 15px;
    box-shadow: var(--shadow-sm);
}
.gate-search input:focus {
    border-color: var(--leaf);
    outline: none;
}
.gate-search .search-icon {
    position: absolute;
    left: 18px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 18px;
    color: var(--ink-mute);
}
.gate-suggestions {
    margin-top: 10px;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    display: none;
}
.gate-suggestions.show { display: block; }
.gate-suggestion {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    width: 100%;
    text-align: left;
    border-bottom: 1px solid var(--rule);
    transition: background 0.12s;
}
.gate-suggestion:last-child { border-bottom: none; }
.gate-suggestion:hover { background: var(--paper-warm); }
.gate-suggestion .pin-icon {
    color: var(--tomato);
    font-size: 16px;
    margin-top: 2px;
}
.gate-suggestion .info .name { font-weight: 500; font-size: 14px; }
.gate-suggestion .info .full { font-size: 12px; color: var(--ink-mute); margin-top: 2px; }

/* Gate step 2: Confirmation map */
.gate-map-view { display: none; }
.gate-map-view.show { display: block; }
.map-preview {
    position: relative;
    height: 240px;
    border-radius: var(--r-md);
    overflow: hidden;
    background: #e8ecdd;
    margin-bottom: 20px;
    border: 1px solid var(--rule);
}
.map-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(15, 90, 42, 0.07) 1px, transparent 1px),
        linear-gradient(90deg, rgba(15, 90, 42, 0.07) 1px, transparent 1px);
    background-size: 24px 24px;
}
.map-road {
    position: absolute;
    background: rgba(255, 255, 255, 0.7);
}
.map-road.h1 { top: 40%; left: 0; right: 0; height: 12px; }
.map-road.h2 { top: 70%; left: 0; right: 0; height: 8px; }
.map-road.v1 { left: 30%; top: 0; bottom: 0; width: 10px; }
.map-road.v2 { left: 65%; top: 0; bottom: 0; width: 8px; }
.map-radius {
    position: absolute;
    top: 50%; left: 50%;
    width: 180%;
    height: 180%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: radial-gradient(circle, rgba(15, 90, 42, 0.08) 0%, rgba(15, 90, 42, 0.03) 60%, transparent 100%);
    border: 2px dashed rgba(15, 90, 42, 0.3);
    pointer-events: none;
}
.map-store {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    text-align: center;
}
.map-store .marker {
    width: 44px;
    height: 44px;
    background: var(--leaf);
    color: var(--white);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 20px;
    border: 3px solid var(--white);
    box-shadow: var(--shadow-lg);
}
.map-store .label {
    font-size: 10px;
    font-weight: 600;
    background: var(--ink);
    color: var(--paper);
    padding: 3px 8px;
    border-radius: 4px;
    margin-top: 6px;
    display: inline-block;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.map-customer {
    position: absolute;
    z-index: 3;
    text-align: center;
    animation: bounce 2s infinite;
}
.map-customer .marker {
    width: 36px;
    height: 36px;
    background: var(--tomato);
    color: var(--white);
    border-radius: 50% 50% 50% 0;
    transform: rotate(-45deg);
    display: grid;
    place-items: center;
    border: 3px solid var(--white);
    box-shadow: var(--shadow-lg);
    position: relative;
}
.map-customer .marker span { transform: rotate(45deg); font-size: 14px; }
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-6px); }
}
.map-connector {
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1;
    height: 2px;
    background: repeating-linear-gradient(90deg, var(--tomato) 0 6px, transparent 6px 12px);
    transform-origin: left center;
}
.map-info {
    background: var(--paper-warm);
    border-radius: var(--r-md);
    padding: 18px 20px;
    margin-bottom: 20px;
}
.map-info .address-line {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 14px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--rule);
}
.map-info .address-line .pin { color: var(--tomato); font-size: 18px; }
.map-info .address-line .addr { flex: 1; }
.map-info .address-line .label {
    font-family: var(--mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-mute);
    margin-bottom: 2px;
}
.map-info .address-line .val { font-weight: 500; font-size: 14px; line-height: 1.3; }
.map-info .change {
    color: var(--leaf);
    font-size: 12px;
    font-weight: 600;
    padding: 4px 8px;
    border-radius: 4px;
}
.map-info .change:hover { background: var(--leaf-tint); }
.map-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.map-stat {
    background: var(--white);
    padding: 10px 14px;
    border-radius: var(--r-sm);
    border: 1px solid var(--rule);
}
.map-stat .label {
    font-family: var(--mono);
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-mute);
    margin-bottom: 4px;
}
.map-stat .val { font-weight: 700; font-size: 16px; color: var(--ink); }
.map-stat.eta .val { color: var(--leaf); }

.serviceable-badge {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    background: var(--leaf-tint);
    border-radius: var(--r-md);
    margin-bottom: 20px;
    font-weight: 600;
    color: var(--leaf-dark);
    font-size: 14px;
}
.serviceable-badge.no {
    background: rgba(212, 57, 38, 0.1);
    color: var(--tomato-dark);
}
.serviceable-badge .check {
    width: 24px;
    height: 24px;
    background: var(--leaf);
    color: var(--white);
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 12px;
    font-weight: bold;
}
.serviceable-badge.no .check { background: var(--tomato); }

.confirm-btn {
    width: 100%;
    padding: 18px;
    background: var(--leaf);
    color: var(--paper);
    border-radius: var(--r-md);
    font-size: 16px;
    font-weight: 600;
    transition: all 0.15s ease;
    box-shadow: var(--shadow-leaf);
}
.confirm-btn:hover {
    background: var(--leaf-dark);
    transform: translateY(-1px);
}
.confirm-btn:disabled {
    background: var(--ink-mute);
    box-shadow: none;
    cursor: not-allowed;
}
.confirm-btn.secondary {
    background: var(--white);
    color: var(--ink);
    border: 1px solid var(--rule);
    box-shadow: var(--shadow-sm);
    margin-top: 10px;
}

.gate-footer {
    margin-top: 32px;
    text-align: center;
    font-size: 12px;
    color: var(--ink-mute);
}
.gate-footer strong { color: var(--ink-soft); }

/* Mobile input */
.mobile-input-wrap {
    display: flex;
    align-items: stretch;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: border-color 0.15s, box-shadow 0.15s;
    margin-bottom: 8px;
}
.mobile-input-wrap:focus-within {
    border-color: var(--leaf);
    box-shadow: 0 0 0 3px rgba(15, 90, 42, 0.1);
}
.mobile-prefix {
    padding: 18px 16px;
    background: var(--paper-warm);
    border-right: 1px solid var(--rule);
    font-weight: 600;
    font-size: 15px;
    color: var(--ink);
    display: flex;
    align-items: center;
    gap: 4px;
}
#mobileInput {
    flex: 1;
    border: none;
    background: transparent;
    padding: 18px 20px;
    font-size: 18px;
    font-family: var(--mono);
    letter-spacing: 0.05em;
    font-weight: 500;
    outline: none;
    min-width: 0;
}
.mobile-hint {
    font-size: 12px;
    color: var(--ink-mute);
    margin-bottom: 20px;
    padding-left: 4px;
    min-height: 18px;
    transition: color 0.15s;
}
.mobile-hint.error { color: var(--tomato); }
.mobile-hint.success { color: var(--leaf); }

/* OTP boxes */
.otp-inputs {
    display: flex;
    gap: 10px;
    justify-content: center;
    margin: 28px 0 16px;
}
.otp-box {
    width: 60px;
    height: 68px;
    border: 1.5px solid var(--rule);
    border-radius: var(--r-md);
    background: var(--white);
    font-family: var(--serif);
    font-size: 32px;
    font-weight: 700;
    text-align: center;
    color: var(--ink);
    outline: none;
    transition: all 0.15s;
    box-shadow: var(--shadow-sm);
}
.otp-box:focus {
    border-color: var(--leaf);
    box-shadow: 0 0 0 3px rgba(15, 90, 42, 0.12);
    transform: scale(1.03);
}
.otp-box.filled {
    background: var(--leaf-tint);
    border-color: var(--leaf-soft);
    color: var(--leaf-dark);
}

.otp-demo-hint {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    padding: 10px 14px;
    background: rgba(244, 185, 58, 0.12);
    border-radius: 100px;
    font-size: 12px;
    color: var(--ink-soft);
    margin-bottom: 20px;
}
.otp-demo-hint .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--banana-deep);
    animation: pulse 1.5s infinite;
}
.otp-demo-hint strong {
    font-family: var(--mono);
    color: var(--ink);
    letter-spacing: 0.2em;
    padding: 0 4px;
}

.text-btn {
    color: var(--leaf);
    font-weight: 600;
    font-size: inherit;
    background: none;
    border: none;
    padding: 2px 4px;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.text-btn:hover { color: var(--leaf-dark); }

.resend-line {
    text-align: center;
    font-size: 12px;
    color: var(--ink-mute);
    margin-top: 14px;
}
#resendTimer {
    font-family: var(--mono);
    color: var(--ink-mute);
    margin-left: 4px;
}

@media (max-width: 500px) {
    .otp-box { width: 52px; height: 60px; font-size: 26px; }
    .otp-inputs { gap: 8px; }
}

/* ================================================================
   APP LAYOUT (visible after location confirmed)
   ================================================================ */
.app {
    display: none;
    min-height: 100vh;
}
.app.visible { display: block; }

/* ============ HEADER ============ */
.header {
    position: sticky;
    top: 0;
    z-index: 90;
    background: var(--paper);
    border-bottom: 1px solid var(--rule);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.header-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 24px;
}
.brand {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--serif);
    font-weight: 900;
    font-size: 28px;
    line-height: 1;
    color: var(--leaf);
    letter-spacing: -0.03em;
    font-variation-settings: "opsz" 144;
    cursor: pointer;
    flex-shrink: 0;
}
.brand::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--tomato);
}
.header-location {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 14px 6px 10px;
    background: var(--paper-warm);
    border-radius: 100px;
    cursor: pointer;
    transition: background 0.15s;
    min-width: 0;
}
.header-location:hover { background: var(--paper-deep); }
.header-location .pin { color: var(--tomato); font-size: 16px; flex-shrink: 0; }
.header-location .info { min-width: 0; }
.header-location .info .top {
    font-size: 10px;
    color: var(--ink-mute);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1;
    margin-bottom: 3px;
}
.header-location .info .addr {
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: min(44vw, 200px);
}
.header-location .info .addr::after {
    content: "▾";
    font-size: 10px;
    opacity: 0.5;
    flex-shrink: 0;
}
.header-eta {
    padding: 4px 10px;
    background: var(--leaf-tint);
    color: var(--leaf-dark);
    font-size: 11px;
    font-weight: 700;
    border-radius: 4px;
    font-family: var(--mono);
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.header-search {
    flex: 1;
    position: relative;
    max-width: 480px;
}
.header-search input {
    width: 100%;
    padding: 12px 16px 12px 42px;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: 100px;
    font-size: 14px;
    transition: all 0.15s;
}
.header-search input:focus {
    border-color: var(--leaf);
    box-shadow: 0 0 0 3px rgba(15, 90, 42, 0.08);
    outline: none;
}
.header-search .icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 16px;
    color: var(--ink-mute);
}
.header-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}
.header-btn {
    padding: 10px 16px;
    border-radius: 100px;
    font-weight: 600;
    font-size: 14px;
    transition: all 0.15s;
    display: flex;
    align-items: center;
    gap: 8px;
}
.header-btn:hover { background: var(--paper-warm); }
.header-btn.cart {
    background: var(--leaf);
    color: var(--paper);
    padding: 10px 18px;
}
.header-btn.cart:hover { background: var(--leaf-dark); }
.header-btn.cart .count {
    background: var(--banana);
    color: var(--ink);
    padding: 1px 6px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    min-width: 20px;
    text-align: center;
}

/* Category strip below header */
.category-strip {
    background: var(--paper);
    border-bottom: 1px solid var(--rule);
    position: sticky;
    top: 66px;
    z-index: 89;
}
.category-strip-inner {
    max-width: 1240px;
    margin: 0 auto;
    padding: 10px 20px;
    display: flex;
    gap: 4px;
    overflow-x: auto;
    scrollbar-width: none;
}
.category-strip-inner::-webkit-scrollbar { display: none; }
.cat-tab {
    padding: 8px 16px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ink-soft);
    transition: all 0.15s;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 6px;
}
.cat-tab:hover { background: var(--paper-warm); }
.cat-tab.active {
    background: var(--ink);
    color: var(--paper);
    font-weight: 600;
}
.cat-tab .icon { font-size: 15px; }

/* ================================================================
   HERO — home page
   ================================================================ */
.hero {
    background: linear-gradient(135deg, var(--paper-warm) 0%, var(--paper) 100%);
    padding: 40px 20px 32px;
    position: relative;
    overflow: hidden;
}
.hero::after {
    content: "";
    position: absolute;
    top: -50%;
    right: -20%;
    width: 60%;
    height: 200%;
    background: radial-gradient(circle, rgba(244, 185, 58, 0.12), transparent 70%);
    pointer-events: none;
}
.hero-inner {
    max-width: 1240px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 40px;
    align-items: center;
}
.hero-text .kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--mono);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--tomato);
    background: rgba(212, 57, 38, 0.08);
    padding: 6px 12px;
    border-radius: 100px;
    margin-bottom: 20px;
    font-weight: 600;
}
.hero-text .kicker::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--tomato);
    animation: pulse 1.5s infinite;
}
@keyframes pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(1.3); }
}
.hero-text h1 {
    font-family: var(--display);
    font-weight: 500;
    font-size: clamp(38px, 6vw, 64px);
    line-height: 1.02;
    letter-spacing: -0.015em;
    margin-bottom: 14px;
    color: var(--ink);
    text-wrap: balance;
}
.hero-text h1 em {
    font-style: italic;
    color: var(--leaf);
    font-weight: 600;
}
.hero-text .lede {
    font-family: var(--sans);
    font-size: 17px;
    font-weight: 450;
    color: var(--ink-soft);
    line-height: 1.55;
    letter-spacing: -0.005em;
    max-width: 470px;
    margin-bottom: 24px;
}
.hero-text .kicker,
.hero-marquee .pill,
.hero-tile .name { font-family: var(--sans) !important; font-weight: 700; letter-spacing: -0.01em; }
.hero-marquee .pill { font-weight: 600; letter-spacing: -0.01em; }
.hero-marquee {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
}
.hero-marquee .pill {
    background: var(--white);
    border: 1px solid var(--rule);
    padding: 8px 14px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
}
.hero-marquee .pill .emoji { font-size: 15px; }
.hero-visual {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: 320px;
}
.hero-tile {
    aspect-ratio: 1;
    border-radius: var(--r-lg);
    padding: 16px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
    transition: transform 0.2s;
    cursor: pointer;
    box-shadow: var(--shadow-md);
}
.hero-tile:hover { transform: translateY(-3px) rotate(-1deg); }
.hero-tile:nth-child(1) { background: linear-gradient(135deg, #d63b2f, #a82b1c); color: white; }
.hero-tile:nth-child(2) { background: linear-gradient(135deg, #f4b93a, #d99a1f); color: var(--ink); transform: translateY(20px); }
.hero-tile:nth-child(2):hover { transform: translateY(17px) rotate(1deg); }
.hero-tile:nth-child(3) { background: linear-gradient(135deg, #0f5a2a, #0a3f1d); color: var(--paper); transform: translateY(-10px); }
.hero-tile:nth-child(3):hover { transform: translateY(-13px) rotate(1deg); }
.hero-tile:nth-child(4) { background: linear-gradient(135deg, #4a8f5f, #0f5a2a); color: var(--paper); transform: translateY(10px); }
.hero-tile:nth-child(4):hover { transform: translateY(7px) rotate(-1deg); }
.hero-tile .emoji { font-size: 48px; line-height: 1; }
.hero-tile .name {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 17px;
    line-height: 1.1;
    letter-spacing: -0.01em;
}

/* ================================================================
   DIVISION SHOWCASE (4 cards)
   ================================================================ */
.divisions {
    max-width: 1240px;
    margin: 0 auto;
    padding: 32px 20px;
}
.divisions-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.division-card {
    padding: 24px 22px;
    border-radius: var(--r-lg);
    color: white;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.2s;
    min-height: 180px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}
.division-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.division-card.fresh { background: linear-gradient(135deg, #0f5a2a 0%, #0a3f1d 100%); }
.division-card.mess { background: linear-gradient(135deg, #a82b1c 0%, #7a1e13 100%); }
.division-card.juice { background: linear-gradient(135deg, #d99a1f 0%, #a67514 100%); color: var(--ink); }
.division-card.fastfood { background: linear-gradient(135deg, #4a8f5f 0%, #2c6b3e 100%); }
.division-card.grocery { background: linear-gradient(135deg, #8a6a2f 0%, #5d4415 100%); }
.division-card .emoji {
    font-size: 56px;
    line-height: 1;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.2));
}
.division-card .tag {
    font-family: var(--mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    opacity: 0.7;
    margin-bottom: 6px;
}
.division-card .name {
    font-family: var(--serif);
    font-weight: 700;
    font-size: 24px;
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: 4px;
}
.division-card .desc {
    font-size: 12px;
    opacity: 0.85;
    line-height: 1.3;
}
.division-card .arrow {
    position: absolute;
    bottom: 20px;
    right: 20px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    display: grid;
    place-items: center;
    font-size: 14px;
    transition: transform 0.15s;
}
.division-card.juice .arrow { background: rgba(0, 0, 0, 0.15); }
.division-card:hover .arrow { transform: translateX(4px); }

/* ================================================================
   SECTIONS
   ================================================================ */
.section {
    max-width: 1240px;
    margin: 0 auto;
    padding: 24px 20px;
}
.section-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 20px;
    gap: 20px;
}
.section-title {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 28px;
    line-height: 1.1;
    letter-spacing: -0.02em;
    color: var(--ink);
    font-variation-settings: "opsz" 60;
}
.section-title em {
    font-style: italic;
    font-weight: 400;
    color: var(--leaf);
}
.section-sub {
    font-size: 13px;
    color: var(--ink-mute);
    margin-top: 4px;
}
.section-link {
    color: var(--leaf);
    font-weight: 600;
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 12px;
    border-radius: 100px;
    transition: background 0.15s;
    white-space: nowrap;
}
.section-link:hover { background: var(--leaf-tint); }

/* ================================================================
   PRODUCT GRID
   ================================================================ */
.product-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 14px;
}
.product-card {
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    padding: 14px;
    position: relative;
    transition: all 0.15s;
    display: flex;
    flex-direction: column;
}
.product-card:hover {
    border-color: var(--leaf-soft);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}
.product-card .badge {
    position: absolute;
    top: 10px;
    left: 10px;
    background: var(--tomato);
    color: white;
    padding: 3px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    z-index: 2;
}
.product-card .badge.bestseller { background: var(--banana); color: var(--ink); }
.product-card .badge.fresh { background: var(--leaf); }
.product-card .badge.new { background: var(--ink); }
.product-card .veg-mark {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 16px;
    height: 16px;
    border: 1.5px solid var(--leaf);
    display: grid;
    place-items: center;
    z-index: 2;
    background: white;
}
.product-card .veg-mark::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--leaf);
}
.product-card .veg-mark.non-veg { border-color: var(--tomato); }
.product-card .veg-mark.non-veg::before { background: var(--tomato); border-radius: 0; clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.product-media { margin-bottom: 12px; }
.product-image {
    aspect-ratio: 1 / 1;
    width: 100%;
    background: var(--paper-warm);
    border-radius: 14px;
    display: block;
    margin-bottom: 12px;
    position: relative;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px rgba(28, 38, 26, 0.06);
}
.product-media .product-image { margin-bottom: 0; }
.product-image > img.product-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transition: transform .45s ease;
}
.product-card:hover .product-image > img.product-photo { transform: scale(1.035); }

/* Branded fallback — used whenever an original photograph is missing */
.photo-soon {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    justify-items: center;
    gap: 6px;
    text-align: center;
    background:
        repeating-linear-gradient(135deg, rgba(255,255,255,.35) 0 10px, transparent 10px 20px),
        linear-gradient(135deg, #f4efe2, #e8e1cd);
}
.photo-soon .ps-mark {
    font-family: var(--font-display, inherit);
    font-size: 15px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--leaf, #2f5d34);
    opacity: .85;
}
.photo-soon .ps-text {
    font-size: 11px;
    letter-spacing: .04em;
    color: rgba(28, 38, 26, .55);
}

/* Division backgrounds behind the product image */
.product-card.fresh-tint .product-image { background: linear-gradient(160deg, #fbfaf4, #eef4e6); }
.product-card.mess-tint .product-image { background: linear-gradient(160deg, #efe7de, #ddd0c2); }
.product-card.juice-tint .product-image { background: linear-gradient(160deg, #fdf6e6, #f7ecd2); }
.product-card.fastfood-tint .product-image { background: linear-gradient(160deg, #23331f, #35492c); }
.product-card.fastfood-tint .photo-soon { background: linear-gradient(135deg, #23331f, #35492c); }
.product-card.fastfood-tint .photo-soon .ps-mark { color: #e8d9a6; opacity: 1; }
.product-card.fastfood-tint .photo-soon .ps-text { color: rgba(255,255,255,.65); }

.product-name {
    font-weight: 600;
    font-size: 14px;
    line-height: 1.2;
    color: var(--ink);
    margin-bottom: 2px;
}
.product-tamil {
    font-family: var(--tamil);
    font-size: 12px;
    color: var(--ink-mute);
    margin-bottom: 8px;
    line-height: 1.2;
}
.product-meta {
    font-size: 11px;
    color: var(--ink-mute);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.product-meta .dot { color: var(--rule); }
.product-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: auto;
}
.product-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-family: var(--sans);
}
.product-price .now {
    font-size: 15px;
    font-weight: 700;
    color: var(--ink);
}
.product-price .was {
    font-size: 12px;
    color: var(--ink-mute);
    text-decoration: line-through;
}
.add-btn {
    padding: 6px 14px;
    background: var(--white);
    color: var(--leaf);
    border: 1px solid var(--leaf);
    border-radius: var(--r-sm);
    font-weight: 700;
    font-size: 12px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    transition: all 0.15s;
}
.add-btn:hover {
    background: var(--leaf);
    color: white;
}
.qty-control {
    display: flex;
    align-items: center;
    background: var(--leaf);
    border-radius: var(--r-sm);
    overflow: hidden;
}
.qty-control button {
    width: 26px;
    height: 30px;
    color: white;
    font-size: 16px;
    font-weight: 700;
    transition: background 0.15s;
    display: grid;
    place-items: center;
}
.qty-control button:hover { background: var(--leaf-dark); }
.qty-control .count {
    color: white;
    font-weight: 700;
    font-size: 13px;
    min-width: 24px;
    text-align: center;
    font-family: var(--mono);
}

/* Weight selector */
.weight-select {
    display: flex;
    gap: 4px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}
.weight-opt {
    font-family: var(--mono);
    font-size: 10px;
    padding: 3px 7px;
    border: 1px solid var(--rule);
    border-radius: 4px;
    cursor: pointer;
    color: var(--ink-soft);
    background: var(--white);
    transition: all 0.1s;
}
.weight-opt:hover { border-color: var(--leaf); }
.weight-opt.active { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* ================================================================
   TODAY'S RATES banner
   ================================================================ */
.rates-banner {
    background: linear-gradient(135deg, var(--leaf-dark), var(--leaf));
    color: var(--paper);
    padding: 24px 24px;
    border-radius: var(--r-lg);
    margin: 24px 0;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    position: relative;
    overflow: hidden;
}
.rates-banner::after {
    content: "🥬";
    position: absolute;
    right: -20px;
    bottom: -30px;
    font-size: 180px;
    opacity: 0.1;
    pointer-events: none;
    transform: rotate(-15deg);
}
.rates-banner .kicker {
    font-family: var(--mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    opacity: 0.8;
    margin-bottom: 6px;
}
.rates-banner h3 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 26px;
    letter-spacing: -0.02em;
    line-height: 1.1;
    margin-bottom: 6px;
}
.rates-banner p { font-size: 13px; opacity: 0.85; max-width: 400px; }
.rates-banner .cta {
    background: var(--banana);
    color: var(--ink);
    padding: 12px 22px;
    border-radius: 100px;
    font-weight: 700;
    font-size: 14px;
    z-index: 1;
    position: relative;
    transition: transform 0.15s;
}
.rates-banner .cta:hover { transform: translateY(-2px); }

/* ================================================================
   CART DRAWER
   ================================================================ */
.cart-overlay {
    position: fixed;
    inset: 0;
    background: rgba(26, 22, 19, 0.4);
    z-index: 110;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
    backdrop-filter: blur(2px);
}
.cart-overlay.show {
    opacity: 1;
    pointer-events: auto;
}
.cart-drawer {
    position: fixed;
    top: 0;
    right: 0;
    height: 100vh;
    width: 420px;
    max-width: 100vw;
    background: var(--paper);
    z-index: 120;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
    display: flex;
    flex-direction: column;
    box-shadow: var(--shadow-lg);
}
.cart-drawer.show { transform: translateX(0); }
.cart-header {
    padding: 20px 24px;
    border-bottom: 1px solid var(--rule);
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: var(--paper);
}
.cart-header h2 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 22px;
    letter-spacing: -0.01em;
}
.cart-header .close {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--paper-warm);
    display: grid;
    place-items: center;
    font-size: 18px;
    transition: background 0.15s;
}
.cart-header .close:hover { background: var(--paper-deep); }
.cart-eta {
    padding: 12px 24px;
    background: var(--leaf-tint);
    border-bottom: 1px solid var(--rule);
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
}
.cart-eta .icon { color: var(--leaf); font-size: 16px; }
.cart-eta strong { color: var(--leaf-dark); font-weight: 700; }

.cart-body {
    flex: 1;
    overflow-y: auto;
    padding: 16px 24px;
}
.cart-empty {
    text-align: center;
    padding: 60px 20px;
    color: var(--ink-mute);
}
.cart-empty .emoji { font-size: 64px; margin-bottom: 16px; opacity: 0.4; }
.cart-empty h3 { font-family: var(--serif); font-size: 20px; color: var(--ink); margin-bottom: 6px; font-weight: 600; }
.cart-empty p { font-size: 13px; margin-bottom: 20px; }
.cart-empty button {
    padding: 12px 24px;
    background: var(--leaf);
    color: white;
    border-radius: 100px;
    font-weight: 600;
    font-size: 13px;
}

.fulfilment-group {
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px dashed var(--rule);
}
.fulfilment-group:last-child { border-bottom: none; }
.fulfilment-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: var(--mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: var(--ink-mute);
    margin-bottom: 10px;
    font-weight: 600;
}
.fulfilment-label .dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--leaf);
}
.fulfilment-label.mess .dot { background: var(--tomato); }
.fulfilment-label.juice .dot { background: var(--banana-deep); }
.fulfilment-label.fastfood .dot { background: var(--leaf-soft); }
.fulfilment-label.grocery .dot { background: #c9a227; }
.fulfilment-label .prep-time {
    margin-left: auto;
    color: var(--ink-soft);
    font-weight: 500;
}

.cart-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 0;
}
.cart-item .thumb {
    width: 44px;
    height: 44px;
    border-radius: var(--r-sm);
    background: var(--paper-warm);
    display: grid;
    place-items: center;
    font-size: 24px;
    flex-shrink: 0;
}
.cart-item .thumb .cart-thumb-photo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: inherit;
}
.cart-item .info { flex: 1; min-width: 0; }
.cart-item .name {
    font-weight: 600;
    font-size: 13px;
    line-height: 1.2;
    margin-bottom: 2px;
}
.cart-item .meta {
    font-size: 11px;
    color: var(--ink-mute);
    font-family: var(--mono);
}
.cart-item .price {
    font-weight: 700;
    font-size: 14px;
    text-align: right;
    min-width: 60px;
}
.cart-item .qty-mini {
    display: flex;
    align-items: center;
    background: var(--white);
    border: 1px solid var(--leaf);
    border-radius: 4px;
    overflow: hidden;
}
.cart-item .qty-mini button {
    width: 22px;
    height: 24px;
    color: var(--leaf);
    font-weight: 700;
    font-size: 12px;
    display: grid;
    place-items: center;
}
.cart-item .qty-mini button:hover { background: var(--leaf-tint); }
.cart-item .qty-mini .count {
    min-width: 24px;
    text-align: center;
    font-family: var(--mono);
    font-weight: 700;
    font-size: 11px;
    color: var(--leaf);
}

.cart-suggestions {
    padding: 16px;
    background: var(--paper-warm);
    border-radius: var(--r-md);
    margin-top: 12px;
}
.cart-suggestions .title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-mute);
    margin-bottom: 10px;
    font-weight: 600;
}
.cart-suggestions .items {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    scrollbar-width: none;
    flex-wrap: wrap;
}
@supports not (flex-wrap: wrap) {
    .cart-suggestions .items { flex-wrap: nowrap; }
}
.cart-suggestions .items::-webkit-scrollbar { display: none; }
.suggest-item {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--white);
    padding: 6px 12px 6px 8px;
    border-radius: 100px;
    border: 1px solid var(--rule);
    font-size: 12px;
    transition: border-color 0.15s;
}
.suggest-item:hover { border-color: var(--leaf); }
.suggest-item .em { font-size: 16px; }
.suggest-item .plus {
    color: var(--leaf);
    font-weight: 700;
    font-size: 14px;
    margin-left: 4px;
}

.cart-summary {
    padding: 16px 24px;
    border-top: 1px solid var(--rule);
    background: var(--paper-warm);
}
.cart-summary-row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 13px;
    color: var(--ink-soft);
}
.cart-summary-row.discount { color: var(--leaf); font-weight: 600; }
.cart-summary-row.total {
    font-family: var(--serif);
    font-size: 20px;
    font-weight: 700;
    color: var(--ink);
    padding-top: 10px;
    margin-top: 6px;
    border-top: 1px solid var(--rule);
}
.checkout-btn {
    width: 100%;
    padding: 16px;
    background: var(--leaf);
    color: var(--paper);
    border-radius: var(--r-md);
    font-weight: 600;
    font-size: 15px;
    margin-top: 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all 0.15s;
    box-shadow: var(--shadow-leaf);
}
.checkout-btn:hover { background: var(--leaf-dark); }
.checkout-btn .arrow { transition: transform 0.15s; }
.checkout-btn:hover .arrow { transform: translateX(4px); }

/* ================================================================
   VIEWS
   ================================================================ */
.view { display: none; }
.view.active { display: block; }

/* Category page header */
.cat-page-header {
    padding: 32px 20px 20px;
    max-width: 1240px;
    margin: 0 auto;
}
.cat-page-header .breadcrumb {
    font-size: 12px;
    color: var(--ink-mute);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.cat-page-header .breadcrumb a { color: var(--leaf); }
.cat-page-header .breadcrumb a:hover { text-decoration: underline; }
.cat-page-header h1 {
    font-family: var(--serif);
    font-weight: 500;
    font-size: 38px;
    line-height: 1;
    letter-spacing: -0.02em;
    margin-bottom: 6px;
    color: var(--ink);
}
.cat-page-header h1 em {
    font-style: italic;
    color: var(--leaf);
}
.cat-page-header p {
    color: var(--ink-soft);
    max-width: 600px;
    line-height: 1.5;
}
.cat-filters {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 20px 20px;
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.filter-chip {
    padding: 6px 14px;
    border-radius: 100px;
    background: var(--white);
    border: 1px solid var(--rule);
    font-size: 13px;
    font-weight: 500;
    color: var(--ink-soft);
    transition: all 0.15s;
}
.filter-chip:hover { border-color: var(--leaf); }
.filter-chip.active { background: var(--ink); color: var(--paper); border-color: var(--ink); }

/* ================================================================
   CHECKOUT VIEW
   ================================================================ */
.checkout-layout {
    max-width: 1000px;
    margin: 0 auto;
    padding: 32px 20px 60px;
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 32px;
}
.checkout-main h1 {
    font-family: var(--serif);
    font-weight: 500;
    font-size: 34px;
    letter-spacing: -0.02em;
    margin-bottom: 4px;
}
.checkout-main .lede { color: var(--ink-mute); margin-bottom: 24px; font-size: 14px; }
.checkout-section {
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    padding: 20px 22px;
    margin-bottom: 16px;
}
.checkout-section .head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.checkout-section .step {
    width: 26px;
    height: 26px;
    background: var(--leaf);
    color: white;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-family: var(--mono);
    font-size: 12px;
    font-weight: 700;
}
.checkout-section h3 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 18px;
    letter-spacing: -0.01em;
}
.addr-card {
    padding: 14px;
    border: 1px solid var(--rule);
    border-radius: var(--r-sm);
    display: flex;
    align-items: flex-start;
    gap: 12px;
    cursor: pointer;
    transition: border-color 0.15s;
    margin-bottom: 8px;
}
.addr-card:hover { border-color: var(--leaf-soft); }
.addr-card.active {
    border-color: var(--leaf);
    background: var(--leaf-tint);
}
.addr-card .radio {
    width: 18px;
    height: 18px;
    border: 2px solid var(--rule);
    border-radius: 50%;
    flex-shrink: 0;
    margin-top: 2px;
    position: relative;
}
.addr-card.active .radio { border-color: var(--leaf); }
.addr-card.active .radio::after {
    content: "";
    position: absolute;
    inset: 3px;
    background: var(--leaf);
    border-radius: 50%;
}
.addr-card .body { flex: 1; }
.addr-card .label {
    font-family: var(--mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--leaf);
    font-weight: 700;
    margin-bottom: 4px;
}
.addr-card .text { font-size: 13px; line-height: 1.4; color: var(--ink-soft); }
.addr-card .text strong { color: var(--ink); }

.pay-option {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid var(--rule);
    border-radius: var(--r-sm);
    margin-bottom: 8px;
    cursor: pointer;
    transition: all 0.15s;
}
.pay-option:hover { border-color: var(--leaf-soft); }
.pay-option.active { border-color: var(--leaf); background: var(--leaf-tint); }
.pay-option .icon {
    width: 34px;
    height: 34px;
    background: var(--paper-warm);
    border-radius: var(--r-sm);
    display: grid;
    place-items: center;
    font-size: 16px;
}
.pay-option.active .icon { background: var(--white); }
.pay-option .info { flex: 1; }
.pay-option .name { font-weight: 600; font-size: 14px; }
.pay-option .sub { font-size: 11px; color: var(--ink-mute); margin-top: 2px; }

.checkout-side {
    position: sticky;
    top: 100px;
    align-self: start;
}
.checkout-summary {
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    overflow: hidden;
}
.checkout-summary .head {
    padding: 16px 20px;
    background: var(--paper-warm);
    border-bottom: 1px solid var(--rule);
    font-family: var(--serif);
    font-weight: 600;
    font-size: 18px;
}
.checkout-summary-body { padding: 12px 20px; }
.checkout-summary-item {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    font-size: 13px;
    color: var(--ink-soft);
}
.checkout-summary-item .name { flex: 1; }
.checkout-summary-item .qty {
    color: var(--ink-mute);
    font-family: var(--mono);
    font-size: 11px;
    margin: 0 8px;
}
.checkout-summary-item .amt { font-weight: 600; color: var(--ink); }
.checkout-summary-bill {
    padding: 12px 20px;
    background: var(--paper-warm);
    border-top: 1px dashed var(--rule);
}
.checkout-summary-bill .row {
    display: flex;
    justify-content: space-between;
    padding: 4px 0;
    font-size: 13px;
    color: var(--ink-soft);
}
.checkout-summary-bill .row.discount { color: var(--leaf); font-weight: 600; }
.checkout-summary-bill .row.total {
    font-family: var(--serif);
    font-size: 20px;
    font-weight: 700;
    color: var(--ink);
    padding-top: 10px;
    margin-top: 8px;
    border-top: 1px solid var(--rule);
}
.place-order-btn {
    width: 100%;
    padding: 16px;
    background: var(--leaf);
    color: var(--paper);
    font-weight: 600;
    font-size: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: background 0.15s;
}
.place-order-btn:hover { background: var(--leaf-dark); }

/* ================================================================
   ORDER TRACKING VIEW
   ================================================================ */
.tracking-view {
    max-width: 640px;
    margin: 0 auto;
    padding: 40px 20px 80px;
}
.track-hero {
    text-align: center;
    margin-bottom: 32px;
    padding: 32px 24px;
    background: var(--leaf-tint);
    border-radius: var(--r-lg);
    position: relative;
    overflow: hidden;
}
.track-hero::after {
    content: "";
    position: absolute;
    top: -50%;
    right: -30%;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(15, 90, 42, 0.15), transparent 70%);
    pointer-events: none;
}
.track-hero .check {
    width: 70px;
    height: 70px;
    background: var(--leaf);
    color: white;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 34px;
    margin: 0 auto 16px;
    box-shadow: var(--shadow-leaf);
    animation: checkPop 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
@keyframes checkPop {
    0% { transform: scale(0); }
    60% { transform: scale(1.2); }
    100% { transform: scale(1); }
}
.track-hero h1 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 30px;
    letter-spacing: -0.02em;
    color: var(--leaf-dark);
    margin-bottom: 6px;
}
.track-hero p { color: var(--ink-soft); }
.track-hero .order-num {
    font-family: var(--mono);
    font-size: 13px;
    background: var(--white);
    padding: 6px 14px;
    border-radius: 100px;
    display: inline-block;
    margin-top: 12px;
    color: var(--ink);
    font-weight: 600;
}

.track-eta {
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}
.track-eta .info .label {
    font-family: var(--mono);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--ink-mute);
    margin-bottom: 4px;
}
.track-eta .info .time {
    font-family: var(--serif);
    font-size: 22px;
    font-weight: 700;
    color: var(--ink);
}
.track-eta .badge {
    padding: 6px 14px;
    background: var(--leaf-tint);
    color: var(--leaf-dark);
    border-radius: 100px;
    font-size: 12px;
    font-weight: 700;
    font-family: var(--mono);
}

.track-stages {
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-md);
    padding: 24px 24px 12px;
}
.track-stage {
    display: flex;
    gap: 16px;
    padding-bottom: 20px;
    position: relative;
}
.track-stage:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 15px;
    top: 30px;
    bottom: 4px;
    width: 2px;
    background: var(--rule);
}
.track-stage.done:not(:last-child)::before { background: var(--leaf); }
.track-stage .dot {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--paper-warm);
    border: 2px solid var(--rule);
    display: grid;
    place-items: center;
    font-size: 14px;
    color: var(--ink-mute);
    flex-shrink: 0;
    z-index: 1;
    transition: all 0.3s;
}
.track-stage.done .dot {
    background: var(--leaf);
    border-color: var(--leaf);
    color: white;
}
.track-stage.active .dot {
    background: var(--white);
    border-color: var(--leaf);
    color: var(--leaf);
    box-shadow: 0 0 0 4px rgba(15, 90, 42, 0.15);
    animation: activePulse 2s infinite;
}
@keyframes activePulse {
    0%, 100% { box-shadow: 0 0 0 4px rgba(15, 90, 42, 0.15); }
    50% { box-shadow: 0 0 0 8px rgba(15, 90, 42, 0.05); }
}
.track-stage .content { flex: 1; padding-top: 4px; }
.track-stage .title {
    font-weight: 600;
    font-size: 14px;
    color: var(--ink);
    margin-bottom: 2px;
}
.track-stage.pending .title { color: var(--ink-mute); font-weight: 500; }
.track-stage .time {
    font-family: var(--mono);
    font-size: 11px;
    color: var(--ink-mute);
}
.track-stage.done .time { color: var(--leaf); font-weight: 600; }

.track-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 20px;
}
.track-actions button {
    padding: 14px;
    border: 1px solid var(--rule);
    background: var(--white);
    border-radius: var(--r-md);
    font-weight: 600;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    transition: all 0.15s;
}
.track-actions button:hover { border-color: var(--leaf); }
.track-actions button.primary { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.track-actions button.primary:hover { background: var(--leaf-dark); border-color: var(--leaf-dark); }

/* ================================================================
   MOBILE BOTTOM NAV
   ================================================================ */
.bottom-nav {
    display: none;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: var(--white);
    border-top: 1px solid var(--rule);
    padding: 8px 4px calc(8px + env(safe-area-inset-bottom));
    z-index: 80;
    justify-content: space-around;
    box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.04);
}
.bottom-nav-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 6px 12px;
    color: var(--ink-mute);
    font-size: 10px;
    font-weight: 600;
    transition: color 0.15s;
    flex: 1;
    max-width: 96px;
    position: relative;
}
.bottom-nav-item.active { color: var(--leaf); }
.bottom-nav-item .icon { font-size: 20px; }
.bottom-nav-item.cart .icon { position: relative; }
.bottom-nav-item.cart .count {
    position: absolute;
    top: -4px;
    right: -8px;
    background: var(--tomato);
    color: white;
    font-size: 9px;
    font-weight: 700;
    padding: 1px 5px;
    border-radius: 100px;
    min-width: 16px;
    text-align: center;
    font-family: var(--mono);
}

/* ================================================================
   TOAST
   ================================================================ */
.toast {
    position: fixed;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%) translateY(100px);
    background: var(--ink);
    color: var(--paper);
    padding: 12px 20px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 500;
    z-index: 150;
    opacity: 0;
    transition: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
    box-shadow: var(--shadow-lg);
    display: flex;
    align-items: center;
    gap: 10px;
    max-width: 90vw;
}
.toast.show {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.toast .icon {
    width: 20px;
    height: 20px;
    background: var(--leaf);
    color: white;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: 11px;
    font-weight: 700;
}

/* ================================================================
   RESPONSIVE
   ================================================================ */
@media (max-width: 900px) {
    .hero-inner { grid-template-columns: 1fr; gap: 24px; }
    .hero-visual { width: 260px; margin: 0 auto; }
    .divisions-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .division-card { min-height: 160px; padding: 20px 18px; }
    .division-card .emoji { font-size: 44px; }
    .division-card .name { font-size: 20px; }
    .checkout-layout { grid-template-columns: 1fr; }
    .checkout-side { position: static; }
    .cart-drawer { width: 100vw; }
    .header-search { display: none; }
    .header-btn.orders-btn { display: none; }
    .brand { font-size: 24px; }
    .header-location .info .addr { max-width: min(44vw, 180px); }
    .rates-banner { grid-template-columns: 1fr; text-align: center; padding: 20px; }
    .rates-banner::after { display: none; }
    .bottom-nav { display: flex; }
    .whatsapp-float { bottom: calc(84px + env(safe-area-inset-bottom)); }
    .app.visible { padding-bottom: 68px; }
    .section-title { font-size: 24px; }
    .header-btn:not(.cart):not(.icon-only) { display: none; }
    .header-inner { gap: 12px; }
    .header-eta { display: none; }
    .cat-page-header h1 { font-size: 30px; }
}

@media (max-width: 500px) {
    .product-grid { grid-template-columns: repeat(2, 1fr); gap: 10px; }
    .product-card { padding: 10px; }
    .product-image { margin-bottom: 8px; border-radius: 12px; }
    .product-media { margin-bottom: 8px; }
    .product-name { font-size: 13px; }
    .product-tamil { font-size: 11px; margin-bottom: 6px; }
    .add-btn { padding: 5px 10px; font-size: 11px; }
    .qty-control button { width: 24px; height: 26px; }
    .header-inner { padding: 12px 16px; gap: 8px; }
    .header-inner .brand { max-width: 40%; }
    .header-inner .brand-logo { max-width: 100%; height: auto; }
    .header-location { padding: 6px 8px; flex: 1; overflow: hidden; gap: 5px; }
    .header-location .info { overflow: hidden; }
    .header-location .info .addr { display: block; max-width: 100%; line-height: 1.2; }
    .header-actions { flex-shrink: 0; margin-left: 0; }
    .header-actions .header-btn:not(.cart) { display: none; }
    .header-btn.cart { padding: 8px 12px; font-size: 12px; }
    .hero { padding: 24px 16px; }
    .hero-tile .emoji { font-size: 36px; }
    .hero-visual { width: 240px; }
    .divisions { padding: 20px 16px; }
    .section { padding: 20px 16px; }
    .divisions-grid { grid-template-columns: repeat(2, 1fr); }
    .cat-page-header { padding: 20px 16px 12px; }
    .cat-filters { padding: 0 16px 16px; }
}

/* ================ SITE FOOTER ================ */
.site-footer{background:var(--leaf-dark);color:#f3ead6;padding:64px 24px 120px;margin-top:64px;}
.site-footer-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;}
.site-footer h4{font-family:var(--serif);font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--banana);margin-bottom:16px;}
.site-footer .fbrand{font-family:var(--serif);font-size:32px;font-weight:900;color:#fff;margin-bottom:10px;}
.site-footer p,.site-footer a,.site-footer li{font-size:14px;line-height:1.7;color:#d8e4d0;text-decoration:none;}
.site-footer a:hover{color:var(--banana);}
.site-footer ul{list-style:none;}
.footer-contact div{display:flex;gap:10px;margin-bottom:12px;align-items:flex-start;}
.footer-contact .ic{font-size:16px;}
.footer-social{display:flex;gap:10px;margin-top:16px;}
.footer-social a{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#f3f7f0;transition:.2s;}
.footer-social a svg{width:18px;height:18px;fill:currentColor;display:block;}
.footer-social a:hover{background:var(--banana);color:#123018;border-color:transparent;transform:translateY(-2px);}

.footer-bottom{max-width:1180px;margin:40px auto 0;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13px;color:#a9bfa5;}
@media (max-width:860px){.site-footer-inner{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.site-footer-inner{grid-template-columns:1fr;}}

/* ============ CHECKOUT ADDRESS FORM ============ */
.addr-add-btn{margin-top:10px;background:none;border:1px dashed var(--leaf-soft);color:var(--leaf);font-family:var(--sans);font-weight:600;font-size:14px;padding:10px 16px;border-radius:var(--r-md);cursor:pointer;width:100%;transition:.2s;}
.addr-add-btn:hover{background:var(--leaf-tint);}
.addr-form{display:none;margin-top:14px;padding:18px;border:1px solid var(--rule);border-radius:var(--r-lg);background:var(--paper-warm);}
.addr-form.open{display:block;}
.addr-label-picker{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.addr-chip{border:1px solid var(--rule);background:var(--white);border-radius:999px;padding:8px 14px;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:.2s;}
.addr-chip.active{background:var(--leaf);border-color:var(--leaf);color:#fff;}
.addr-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.addr-field{display:flex;flex-direction:column;gap:6px;}
.addr-field.full{grid-column:1 / -1;}
.addr-field span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-mute);font-weight:600;}
.addr-field input{width:100%;padding:11px 13px;border:1px solid var(--rule);border-radius:var(--r-md);background:var(--white);font-family:var(--sans);font-size:14px;color:var(--ink);}
.addr-field input:focus{outline:none;border-color:var(--leaf);box-shadow:0 0 0 3px rgba(15,90,42,.1);}
.addr-form-error{color:var(--tomato);font-size:13px;font-weight:600;margin-top:10px;min-height:18px;}
.addr-form-actions{display:flex;gap:10px;margin-top:6px;}
.addr-form-actions .confirm-btn{margin-top:0;}
.addr-card .edit-addr{background:none;border:none;color:var(--leaf);font-size:12px;font-weight:700;cursor:pointer;text-decoration:underline;align-self:flex-start;}
@media (max-width:600px){.addr-fields{grid-template-columns:1fr;}.addr-form-actions{flex-direction:column;}}

/* ---- Area suggestion zone tags ---- */
.gate-suggestion .zone-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    vertical-align: middle;
}
.gate-suggestion .zone-tag.core { background: rgba(46,160,67,.16); color: #2ea043; }
.gate-suggestion .zone-tag.near { background: rgba(214,158,46,.18); color: #b7791f; }
.gate-suggestion .zone-tag.gps { background: rgba(120,120,140,.18); color: #6b7280; }
.gate-suggestion.empty {
    padding: 14px 16px;
    font-size: 13px;
    color: #6b7280;
    cursor: default;
}

/* Out of stock */
.add-btn.sold-out {
    background: #f1f1f1;
    color: #9a9a9a;
    cursor: not-allowed;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .3px;
    box-shadow: none;
}
.product-card.sold-out-card { opacity: .72; }

.product-price .now .per-unit {
    font-size: 11px;
    font-weight: 600;
    color: var(--ink-mute);
}

/* Cart line-item remove (one-tap delete, subtle until hovered) */
.cart-item .cart-remove {
    width: 44px;
    height: 44px;
    margin: -10px -8px -10px 0;
    flex-shrink: 0;
    display: grid;
    place-items: center;
    color: var(--ink-mute);
    background: transparent;
    border: none;
    border-radius: var(--r-sm);
    cursor: pointer;
    transition: color 0.15s ease, background 0.15s ease;
}
.cart-item .cart-remove:hover,
.cart-item .cart-remove:focus-visible,
.cart-item .cart-remove:active {
    color: var(--tomato);
    background: rgba(212, 57, 38, 0.1);
}
.toast .toast-action {
    background: transparent;
    border: none;
    color: var(--banana);
    font-weight: 700;
    font-size: 13px;
    letter-spacing: 0.02em;
    padding: 2px 4px;
    cursor: pointer;
}

/* ---- Shared bill breakdown ---- */
.bill-sublabel {
    display: block;
    font-size: 11px;
    color: var(--leaf, #2e7d32);
    font-weight: 600;
    margin-top: 2px;
}
.free-delivery-nudge {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--leaf, #2e7d32);
    background: rgba(46, 125, 50, 0.08);
    border: 1px dashed rgba(46, 125, 50, 0.35);
    border-radius: 10px;
    padding: 8px 10px;
    margin-bottom: 10px;
}

/* ---- Minimum order gate ---- */
.checkout-btn.is-disabled,
.checkout-btn:disabled {
    background: #e2e2e2;
    color: #9a9a9a;
    cursor: not-allowed;
    box-shadow: none;
    opacity: 1;
}
.min-order-note {
    margin-top: 8px;
    font-size: 12px;
    line-height: 1.4;
    color: var(--ink-mute, #7a7a7a);
    text-align: center;
}

/* ---- Checkout address step: location prompt ---- */
.addr-location-prompt {
    display: flex; align-items: center; gap: 12px; justify-content: space-between;
    padding: 12px 14px; margin-bottom: 12px;
    border: 1px dashed var(--line, #e3e3e3); border-radius: 14px;
    background: #fffdf3; font-size: 13px; line-height: 1.45;
}
.addr-location-prompt span { color: var(--ink-mute, #7a7a7a); }
.addr-location-btn {
    flex: none; padding: 9px 14px; border: 0; border-radius: 10px; cursor: pointer;
    background: var(--leaf, #2e7d32); color: #fff; font-weight: 700; font-size: 13px;
}

/* ==================================================
   MY ACCOUNT — orders, invoices, address book
   ================================================== */
.account-view { max-width: 900px; margin: 0 auto; padding: 24px 16px 80px; }
.account-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.account-head h1 { font-size: 28px; letter-spacing: -0.5px; margin: 0; }
.account-head p { margin: 4px 0 0; color: var(--muted, #6b7280); font-size: 14px; }
.account-signout {
    border: 1px solid rgba(0,0,0,.12); background: #fff; color: #111;
    padding: 9px 16px; border-radius: 999px; font-weight: 600; font-size: 13px; cursor: pointer;
}
.account-signout:hover { background: #f6f6f6; }

.account-tabs { display: flex; gap: 8px; margin: 20px 0 18px; border-bottom: 1px solid rgba(0,0,0,.08); }
.account-tab {
    background: none; border: none; padding: 12px 4px; margin-right: 20px; cursor: pointer;
    font-weight: 700; font-size: 15px; color: #8a8f98; border-bottom: 2px solid transparent;
}
.account-tab.active { color: #14532d; border-bottom-color: #14532d; }
.account-panel { display: none; }
.account-panel.active { display: block; }
.account-loading { padding: 28px 4px; color: #6b7280; font-size: 14px; }
.account-empty { padding: 48px 20px; }

/* Order cards */
.order-card { border: 1px solid rgba(0,0,0,.09); border-radius: 16px; background: #fff; margin-bottom: 12px; overflow: hidden; }
.order-card.open { border-color: rgba(20,83,45,.35); box-shadow: 0 10px 30px rgba(0,0,0,.06); }
.order-row {
    width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 14px;
    padding: 16px 18px; background: none; border: none; cursor: pointer; text-align: left;
}
.order-id { font-weight: 800; font-size: 15px; letter-spacing: -0.2px; }
.order-date { font-size: 12.5px; color: #6b7280; margin-top: 2px; }
.order-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.ostat { font-size: 11.5px; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.ostat.live { background: #eef4ff; color: #1d4ed8; }
.ostat.good { background: #e8f6ee; color: #14803c; }
.ostat.wait { background: #fff4e5; color: #b45309; }
.ostat.bad { background: #fdeaea; color: #b91c1c; }
.order-side { text-align: right; flex-shrink: 0; }
.order-total { font-weight: 800; font-size: 17px; }
.order-toggle { font-size: 12px; color: #14532d; font-weight: 700; margin-top: 6px; }

/* Invoice */
.invoice { border-top: 1px dashed rgba(0,0,0,.14); padding: 22px 18px; background: #fff; }
.invoice-sheet { background: #fff; color: #111827; }
.invoice-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; flex-wrap: wrap; padding-bottom: 16px; border-bottom: 1px solid rgba(0,0,0,.1); }
.inv-logo { height: 40px; width: auto; display: block; flex: 0 0 auto; }
.inv-brand { max-width: 62%; display: flex; align-items: flex-start; gap: 14px; }

.inv-seller { font-size: 11.5px; color: #4b5563; line-height: 1.65; }
.inv-seller .strong { font-weight: 800; color: #111827; font-size: 12.5px; }
.inv-meta { text-align: right; font-size: 12px; color: #4b5563; }
.inv-title { font-size: 15px; letter-spacing: 3px; text-transform: uppercase; color: #14532d; font-weight: 900; }
.inv-num { font-weight: 800; color: #111827; font-size: 13px; margin-top: 4px; }
.inv-date { margin-top: 2px; }
.inv-status { margin-top: 8px; }
.inv-parties { display: flex; gap: 28px; flex-wrap: wrap; margin: 18px 0 16px; font-size: 12.5px; line-height: 1.7; color: #374151; }
.inv-parties > div { flex: 1 1 220px; }
.inv-paychip { margin-top: 6px; }
.inv-label { text-transform: uppercase; font-size: 10px; letter-spacing: 1.4px; color: #9ca3af; font-weight: 800; margin-bottom: 5px; }
.inv-table { width: 100%; border-collapse: collapse; margin-top: 4px; font-size: 12.5px; }
.inv-table th { text-align: left; font-size: 10px; letter-spacing: 1.2px; text-transform: uppercase; color: #6b7280; border-bottom: 1.5px solid rgba(0,0,0,.18); padding: 9px 8px; }
.inv-table td { padding: 10px 8px; border-bottom: 1px solid rgba(0,0,0,.07); vertical-align: middle; }
.inv-table .num { text-align: right; white-space: nowrap; }
.inv-table .iname { font-weight: 700; color: #111827; }
.inv-table .unit { color: #6b7280; white-space: nowrap; }
.inv-table .strong { font-weight: 700; }
.inv-bill { margin: 16px 0 0 auto; max-width: 320px; font-size: 12.5px; }
.inv-bill .row { display: flex; justify-content: space-between; padding: 6px 0; color: #374151; }
.inv-bill .row.save { color: #14803c; }
.inv-bill .row.total { border-top: 1.5px solid rgba(0,0,0,.18); margin-top: 6px; padding-top: 10px; font-weight: 900; font-size: 15.5px; color: #111827; }
.inv-thanks { margin-top: 22px; padding-top: 14px; border-top: 1px solid rgba(0,0,0,.1); text-align: center; font-size: 11.5px; color: #6b7280; line-height: 1.7; }
.inv-thanks .strong { font-weight: 800; color: #14532d; font-size: 13px; }
.inv-foot { display: flex; justify-content: flex-end; margin-top: 16px; }
.inv-print { background: #14532d; color: #fff; border: none; padding: 10px 18px; border-radius: 999px; font-weight: 700; font-size: 13px; cursor: pointer; }

/* Account details */
.account-card { border: 1px solid rgba(0,0,0,.09); border-radius: 16px; background: #fff; padding: 18px; margin-bottom: 14px; }
.account-card h3 { margin: 0 0 10px; font-size: 15px; }
.account-card-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.account-card-head h3 { margin: 0; }
.account-field.readonly { background: #f4f5f3; border-radius: 10px; padding: 12px 14px; font-weight: 700; }
.account-hint { font-size: 12px; color: #6b7280; margin: 8px 0 0; }
.account-ghost-btn { background: none; border: 1px solid rgba(20,83,45,.3); color: #14532d; padding: 8px 14px; border-radius: 999px; font-weight: 700; font-size: 12.5px; cursor: pointer; }

.acct-addr { display: flex; justify-content: space-between; gap: 12px; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; padding: 12px 14px; margin-bottom: 10px; }
.acct-addr .label { font-size: 10.5px; letter-spacing: 1.2px; text-transform: uppercase; font-weight: 800; color: #14532d; }
.acct-addr .text { font-size: 13px; line-height: 1.6; margin-top: 4px; color: #374151; }
.acct-addr .note { font-size: 12px; color: #6b7280; margin-top: 6px; }
.acct-addr-actions { display: flex; flex-direction: column; gap: 6px; flex-shrink: 0; }
.acct-addr-actions button { background: none; border: 1px solid rgba(0,0,0,.12); border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 600; cursor: pointer; }
.acct-addr-actions .danger { color: #b91c1c; border-color: rgba(185,28,28,.25); }
.acct-addr-empty { font-size: 13px; color: #6b7280; padding: 8px 0 14px; }

.acct-addr-form { display: none; border-top: 1px dashed rgba(0,0,0,.12); padding-top: 14px; margin-top: 6px; }
.acct-addr-form.open { display: block; }
.acct-addr-form input { width: 100%; border: 1px solid rgba(0,0,0,.14); border-radius: 10px; padding: 11px 12px; font-size: 14px; margin-bottom: 10px; font-family: inherit; }
.acct-row { display: flex; gap: 10px; }
.acct-row input { flex: 1; }
.acct-chips { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.acct-chip { border: 1px solid rgba(0,0,0,.14); background: #fff; border-radius: 999px; padding: 7px 14px; font-size: 12.5px; font-weight: 600; cursor: pointer; }
.acct-chip.active { background: #14532d; color: #fff; border-color: #14532d; }
.acct-error { color: #b91c1c; font-size: 12.5px; min-height: 16px; }
.acct-form-actions { display: flex; gap: 10px; margin-top: 6px; }
.acct-save { background: #14532d; color: #fff; border: none; border-radius: 999px; padding: 11px 22px; font-weight: 700; cursor: pointer; }
.acct-cancel { background: none; border: 1px solid rgba(0,0,0,.14); border-radius: 999px; padding: 11px 20px; font-weight: 600; cursor: pointer; }

@media (max-width: 520px) {
    .order-row { align-items: flex-start; }
    .inv-meta { text-align: left; }
    .inv-bill { max-width: none; }
}

/* Print fallback: the real PDF is rendered in an isolated print frame
   (see printInvoice), so here we only guard against stray app chrome. */
@page { size: A4 portrait; margin: 12mm; }

@media print {
    html, body { background: #fff !important; height: auto !important; }
    .inv-foot, .inv-print { display: none !important; }
}


/* ============ OFFERS SECTION ============ */
.product-card.offer-card .badge.offer-save {
    background: var(--tomato, #e4572e);
    color: #fff;
    letter-spacing: .02em;
}
.product-card.offer-card .product-image img {
    width: 100%; height: 100%; object-fit: cover; border-radius: 12px;
}
.product-card.offer-card .product-meta span { font-weight: 700; }
.offer-desc {
    font-size: 12px; line-height: 1.45; opacity: .7; margin: 6px 0 2px;
}
.offers-empty {
    text-align: center; padding: 56px 20px; border-radius: 20px;
    background: rgba(0,0,0,.03);
}
.offers-empty .emoji { font-size: 44px; }
.offers-empty h3 { margin: 12px 0 4px; font-size: 20px; }
.offers-empty p { opacity: .65; font-size: 14px; margin-bottom: 18px; }
.offers-empty .confirm-btn { max-width: 260px; margin: 0 auto; }

/* ---- Combo cards ---- */
.combo-card .combo-includes {
    font-size: 12px;
    line-height: 1.4;
    color: var(--ink-mute, #6b7280);
    margin: 4px 0 2px;
}
.combo-card .fulfilment-label.combo .dot { background: #b45309; }
.fulfilment-label.combo { color: #b45309; }

/* ===== Brand logo (replaces the wordmark text) ===== */
.brand-logo{
  display:block;width:auto;
  background:none;border:0;padding:0;box-shadow:none;
  border-radius:0;
}
.brand .brand-logo{height:40px;}
.brand::before{display:none !important;}
.gate-brand .mark{display:flex;align-items:center;justify-content:center;}
.gate-brand .mark::before{display:none !important;}
.brand-logo.gate{height:52px;}
.site-footer .fbrand .brand-logo.footer{height:48px;}
.footer-social{flex-wrap:wrap;}
@media (max-width:640px){
  .brand .brand-logo{height:34px;}
  .brand-logo.gate{height:44px;}
  .site-footer .fbrand .brand-logo.footer{height:42px;}
}


/* ================================================================
   MOBILE SEARCH + LIVE RESULTS
   ================================================================ */
.mobile-search {
    display: none; padding: 10px 16px 12px;
    background: var(--paper); border-bottom: 1px solid var(--rule);
    /* Locks under the header while the catalogue scrolls beneath it. */
    position: sticky; top: 73px; z-index: 91;
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.mobile-search-box { position: relative; display: flex; align-items: center; }
.mobile-search-box .icon { position: absolute; left: 14px; font-size: 15px; opacity: .7; }
.mobile-search-box input {
    width: 100%; padding: 12px 40px 12px 40px; border-radius: 100px;
    border: 1px solid var(--rule); background: var(--white); font-size: 15px;
}
.mobile-search-box input:focus { outline: none; border-color: var(--leaf); box-shadow: 0 0 0 3px rgba(15,90,42,.1); }
.mobile-search-box .clear { position: absolute; right: 10px; width: 26px; height: 26px; border-radius: 50%; background: rgba(0,0,0,.06); font-size: 17px; line-height: 1; }

.search-results {
    display: none; position: absolute; left: 16px; right: 16px; top: calc(100% - 4px);
    background: var(--white); border: 1px solid var(--rule); border-radius: 16px;
    box-shadow: 0 18px 44px rgba(0,0,0,.14); overflow: hidden; z-index: 400; max-height: 60vh; overflow-y: auto;
}
.header-search .search-results { left: 0; right: 0; top: calc(100% + 8px); }
.search-results.open { display: block; }
.search-hit { display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 14px; text-align: left; border-bottom: 1px solid rgba(0,0,0,.05); }
.search-hit:last-child { border-bottom: none; }
.search-hit:hover { background: rgba(15,90,42,.06); }
.hit-emoji { font-size: 22px; }
.hit-photo { width: 44px; height: 44px; flex: 0 0 44px; border-radius: 8px; object-fit: cover; }
.hit-text { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.hit-name { font-weight: 600; font-size: 14px; }
.hit-sub { font-size: 12px; color: var(--ink-mute); }
.hit-price { font-family: var(--mono); font-weight: 600; font-size: 14px; }
.search-empty { padding: 16px; font-size: 13px; color: var(--ink-mute); }

@media (max-width: 900px) { .mobile-search { display: block; } }

/* ================================================================
   PRODUCT DETAIL SHEET
   ================================================================ */
.product-image.tappable, .product-name.tappable { cursor: pointer; }
.product-name.tappable:hover { text-decoration: underline; text-underline-offset: 3px; }

.sheet-overlay { position: fixed; inset: 0; background: rgba(12,20,14,.55); backdrop-filter: blur(3px); opacity: 0; pointer-events: none; transition: opacity .2s; z-index: 200; }
.sheet-overlay.open { opacity: 1; pointer-events: auto; }
body.sheet-open { overflow: hidden; }

.pdp {
    position: fixed; z-index: 210; left: 50%; top: 50%; transform: translate(-50%, -46%) scale(.97);
    width: min(560px, calc(100vw - 32px)); max-height: 88vh; overflow-y: auto;
    background: var(--white); border-radius: 24px; box-shadow: 0 30px 80px rgba(0,0,0,.32);
    opacity: 0; pointer-events: none; transition: opacity .18s, transform .18s;
}
.pdp.open { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.pdp-close { position: absolute; right: 12px; top: 12px; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.9); font-size: 22px; line-height: 1; z-index: 2; box-shadow: 0 2px 10px rgba(0,0,0,.12); }
.pdp-body { padding: 0 0 22px; }
.pdp-media { position: relative; aspect-ratio: 1 / 1; max-height: 320px; display: flex; align-items: center; justify-content: center; border-radius: 24px 24px 0 0; overflow: hidden; }
.pdp-media img { width: 100%; height: 100%; object-fit: cover; }
.pdp-media .product-image { height: 100%; border-radius: 24px 24px 0 0; box-shadow: none; margin: 0; }
.pdp-media .product-image > img.product-photo { border-radius: 24px 24px 0 0; }
.pdp-badge { position: absolute; left: 16px; top: 16px; background: var(--ink); color: #fff; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; padding: 5px 10px; border-radius: 100px; }
.pdp-head { padding: 18px 22px 0; }
.pdp-head h2 { font-family: var(--serif); font-size: 26px; margin: 0; letter-spacing: -.4px; }
.pdp-tamil { font-size: 14px; color: var(--ink-mute); margin-top: 2px; }
.pdp-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.pdp-tag { font-size: 11px; text-transform: uppercase; letter-spacing: .05em; padding: 4px 9px; border-radius: 100px; background: rgba(0,0,0,.05); color: var(--ink-mute); }
.pdp-tag.veg { background: rgba(22,120,60,.12); color: #14532d; }
.pdp-tag.nonveg { background: rgba(180,40,30,.12); color: #9b1c1c; }
.pdp-tag.in { background: rgba(22,120,60,.12); color: #14532d; }
.pdp-tag.out { background: rgba(180,40,30,.12); color: #9b1c1c; }
.pdp-desc { padding: 14px 22px 0; font-size: 14px; line-height: 1.6; color: var(--ink-mute); }
.pdp-label { padding: 16px 22px 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-mute); }
.pdp-weights { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 22px; }
.pdp-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 18px 22px 0; flex-wrap: wrap; }
.pdp-price strong { font-family: var(--mono); font-size: 24px; }
.pdp-price s { color: var(--ink-mute); margin-left: 7px; font-size: 14px; }
.pdp-price .per { display: block; font-size: 12px; color: var(--ink-mute); }
.pdp-add { background: var(--leaf); color: #fff; padding: 13px 26px; border-radius: 100px; font-weight: 600; font-size: 15px; }
.pdp-add.sold-out { background: rgba(0,0,0,.1); color: var(--ink-mute); }
.pdp-qty { transform: scale(1.1); }
.pdp-note { padding: 14px 22px 0; font-size: 12px; color: var(--ink-mute); }

/* ================================================================
   CANCEL ORDER CONFIRMATION
   ================================================================ */
.confirm-modal {
    position: fixed; z-index: 210; left: 50%; top: 50%; transform: translate(-50%, -46%) scale(.97);
    width: min(480px, calc(100vw - 32px)); background: var(--white); border-radius: 22px;
    padding: 24px; box-shadow: 0 30px 80px rgba(0,0,0,.32);
    opacity: 0; pointer-events: none; transition: opacity .18s, transform .18s; max-height: 90vh; overflow-y: auto;
}
.confirm-modal.open { opacity: 1; pointer-events: auto; transform: translate(-50%, -50%) scale(1); }
.confirm-modal h3 { font-family: var(--serif); font-size: 22px; margin: 0 0 4px; }
.confirm-sub { font-size: 13px; color: var(--ink-mute); font-family: var(--mono); margin: 0 0 14px; }
.policy-warn { display: flex; gap: 10px; align-items: flex-start; font-size: 13.5px; line-height: 1.55; border-radius: 14px; padding: 13px 14px; margin-bottom: 16px; }
.policy-warn.ok { background: rgba(22,120,60,.09); color: #14532d; }
.policy-warn.warn { background: rgba(214,150,20,.14); color: #7c4a03; }
.policy-warn.bad { background: rgba(180,40,30,.1); color: #9b1c1c; }
.confirm-label { display: block; font-size: 12px; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-mute); margin-bottom: 6px; }
.confirm-modal select { width: 100%; padding: 11px 12px; border: 1px solid var(--rule); border-radius: 12px; background: var(--white); }
.confirm-actions { display: flex; gap: 10px; margin-top: 18px; flex-wrap: wrap; }
.confirm-keep { flex: 1; min-width: 140px; padding: 13px; border-radius: 100px; background: var(--leaf); color: #fff; font-weight: 600; }
.confirm-danger { flex: 1; min-width: 140px; padding: 13px; border-radius: 100px; background: rgba(180,40,30,.1); color: #9b1c1c; font-weight: 600; }
.confirm-danger:disabled { opacity: .5; cursor: not-allowed; }
.confirm-body { font-size: 13px; color: var(--ink-mute); line-height: 1.55; margin: 6px 0 12px; }
.policy-badge { display: block; font-size: 12.5px; letter-spacing: .01em; margin-bottom: 3px; }
.confirm-foot { font-size: 11.5px; color: var(--ink-mute); line-height: 1.5; margin: 14px 0 0; }

.order-actions { display: flex; gap: 10px; padding: 0 16px 14px; flex-wrap: wrap; }
.order-cancel { padding: 9px 16px; border-radius: 100px; background: rgba(180,40,30,.09); color: #9b1c1c; font-size: 13px; font-weight: 600; }
.order-call { padding: 9px 16px; border-radius: 100px; background: rgba(0,0,0,.05); color: var(--ink); font-size: 13px; font-weight: 600; text-decoration: none; }
.track-call { display: inline-flex; align-items: center; justify-content: center; padding: 12px 20px; border-radius: 100px; background: rgba(0,0,0,.05); color: var(--ink); font-weight: 600; text-decoration: none; }

/* Search stays pinned under the header on phones; the category strip
   parks below it so the two never overlap while scrolling. */
@media (max-width: 900px) {
    .category-strip { top: 145px; }
    .bottom-nav-item { padding: 6px 6px; max-width: none; }
    .bottom-nav-item .icon { font-size: 19px; }
    .bottom-nav-item span:last-child { font-size: 9.5px; }
}

/* ==========================================================
   LOCATION PICKER — map-first premium delivery location sheet
   ========================================================== */
.lp-sheet{
    position:relative;width:min(560px,100%);max-height:94vh;display:flex;flex-direction:column;
    background:var(--card,#fffdf7);border-radius:26px;overflow:hidden;
    box-shadow:0 40px 90px rgba(8,32,16,.45);border:1px solid rgba(15,90,42,.14);
    z-index:2;
}
.lp-top{display:flex;align-items:center;gap:12px;padding:14px 16px 10px;border-bottom:1px solid rgba(15,90,42,.1)}
.lp-logo{width:42px;height:42px;flex:none}
.lp-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.lp-title strong{font-size:1.02rem;font-weight:800;color:var(--ink,#12321d)}
.lp-title span{font-size:.72rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lp-top{background:var(--paper)}
.lp-close{flex:none;width:34px;height:34px;border-radius:50%;border:1px solid rgba(15,90,42,.15);background:#fff;color:#12321d;font-size:.85rem;cursor:pointer}
.lp-close:hover{background:rgba(15,90,42,.08)}

.lp-searchwrap{position:relative;margin:12px 16px 10px}
.lp-searchwrap input{
    width:100%;padding:13px 40px 13px 40px;border-radius:14px;border:1.5px solid rgba(15,90,42,.18);
    background:#fff;font:inherit;font-size:.92rem;color:var(--ink,#12321d);outline:none;
}
.lp-searchwrap input:focus{border-color:#1f9d55;box-shadow:0 0 0 4px rgba(31,157,85,.12)}
.lp-search-icon{position:absolute;left:13px;top:50%;transform:translateY(-50%);font-size:.95rem;pointer-events:none}
.lp-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;border-radius:50%;background:rgba(15,90,42,.08);cursor:pointer;font-size:.72rem;color:#12321d}
.lp-suggestions{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;max-height:280px;overflow:auto;border-radius:14px;background:#fff;box-shadow:0 20px 44px rgba(8,32,16,.22);display:none}
.lp-suggestions.show{display:block}

.lp-map-wrap{position:relative;margin:0 16px;height:230px;border-radius:18px;overflow:hidden;border:1px solid rgba(15,90,42,.16);background:#eef3ee}
.lp-map{position:absolute;inset:0}
.lp-map-fallback{display:flex;align-items:center;justify-content:center;height:100%;padding:20px;text-align:center;font-size:.85rem;color:var(--muted,#6c7a70)}
.lp-centerpin{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);z-index:500;pointer-events:none;text-align:center;transition:transform .18s ease}
.lp-centerpin span{font-size:1.9rem;display:block;filter:drop-shadow(0 6px 6px rgba(0,0,0,.28))}
.lp-centerpin i{display:block;width:10px;height:10px;margin:0 auto;border-radius:50%;background:rgba(15,90,42,.35)}
.lp-centerpin.lifted{transform:translate(-50%,-118%)}
.lp-store-icon{display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:#fff;border-radius:50%;box-shadow:0 4px 10px rgba(0,0,0,.25)}
.lp-gps{
    position:absolute;right:10px;top:10px;z-index:600;display:inline-flex;align-items:center;gap:7px;
    padding:10px 14px;border-radius:999px;border:none;cursor:pointer;font:inherit;font-size:.82rem;font-weight:700;
    background:linear-gradient(135deg,#0f5a2a,#1f9d55);color:#fff;box-shadow:0 8px 20px rgba(15,90,42,.32)
}
.lp-gps.busy{opacity:.7;pointer-events:none}
.lp-map-hint{position:absolute;left:10px;bottom:10px;z-index:600;background:rgba(255,255,255,.92);border-radius:999px;padding:6px 12px;font-size:.7rem;color:#3c4d42}

.lp-body{padding:14px 16px 6px;overflow:auto;flex:1}
.lp-banner{display:flex;align-items:center;gap:10px;padding:11px 13px;border-radius:14px;background:rgba(31,157,85,.1);color:#0f5a2a;font-size:.83rem;font-weight:600;line-height:1.35}
.lp-banner .check{flex:none;width:24px;height:24px;border-radius:50%;background:#1f9d55;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem}
.lp-banner.warn{background:rgba(214,158,46,.14);color:#8a5b00}
.lp-banner.warn .check{background:#d69e2e}
.lp-banner.no{background:rgba(200,60,45,.12);color:#9b2c1f}
.lp-banner.no .check{background:#c83c2d}

.lp-address{display:flex;align-items:flex-start;gap:10px;margin-top:12px;padding:12px;border-radius:14px;border:1px solid rgba(15,90,42,.14);background:#fff}
.lp-address .pin{font-size:1.05rem}
.lp-address-text{flex:1;min-width:0}
.lp-addr-short{font-weight:800;font-size:.95rem;color:var(--ink,#12321d)}
.lp-addr-full{font-size:.78rem;color:var(--muted,#6c7a70);line-height:1.4;margin-top:2px}
.lp-edit{flex:none;border:none;background:none;color:#1f9d55;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}

.lp-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.lp-stat{padding:10px 12px;border-radius:14px;background:rgba(15,90,42,.06)}
.lp-stat .label{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted,#6c7a70)}
.lp-stat .val{font-weight:800;font-size:.95rem;color:var(--ink,#12321d);margin-top:2px}

.lp-form{margin-top:12px;display:flex;flex-direction:column;gap:9px}
.lp-form input{width:100%;padding:12px 14px;border-radius:13px;border:1.5px solid rgba(15,90,42,.16);background:#fff;font:inherit;font-size:.88rem;outline:none}
.lp-form input:focus{border-color:#1f9d55;box-shadow:0 0 0 4px rgba(31,157,85,.1)}
.lp-labels{display:flex;gap:8px;flex-wrap:wrap}
.lp-chip{padding:9px 14px;border-radius:999px;border:1.5px solid rgba(15,90,42,.18);background:#fff;font:inherit;font-size:.8rem;font-weight:700;color:#3c4d42;cursor:pointer}
.lp-chip.active{background:#0f5a2a;border-color:#0f5a2a;color:#fff}
.lp-note{margin:12px 0 4px;font-size:.72rem;color:var(--muted,#6c7a70);text-align:center}

.lp-sticky{position:sticky;bottom:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to top,#fffdf7 70%,rgba(255,253,247,0));border-top:1px solid rgba(15,90,42,.08)}
.lp-sticky .confirm-btn{width:100%;margin:0}
.lp-sticky .confirm-btn:disabled{opacity:.5;cursor:not-allowed}
.lp-sticky .confirm-btn.secondary{margin-top:8px}

@media (max-width:640px){
    .lp-sheet{width:100%;max-height:100vh;height:100vh;border-radius:0}
    .lp-map-wrap{height:38vh;min-height:210px}
    .lp-gps{left:10px;right:auto}
}

#gate{align-items:center;justify-content:center;background:rgba(8,26,15,.55);backdrop-filter:blur(4px);padding:16px}
#gate .gate-bg{opacity:.35}
@media (max-width:640px){ #gate{padding:0} }
.leaflet-container{font:inherit}

.lp-sheet .lp-logo{width:40px!important;height:40px!important;min-width:0!important;min-height:0!important;padding:4px!important;object-fit:contain;border-radius:12px}
.lp-map-hint{left:auto;right:10px;bottom:10px;max-width:66%}

.lp-searchwrap{z-index:900}
.lp-suggestions{z-index:1000}
.lp-map-wrap{z-index:0}

.lp-sheet .lp-logo{position:static!important;margin:0!important;inset:auto!important;transform:none!important;box-shadow:none!important}

/* Serviceable banner — two-line layout */
.lp-banner #serviceableText { display: flex; flex-direction: column; gap: 2px; }
.lp-banner-title { font-weight: 700; line-height: 1.25; }
.lp-banner-sub { font-size: .82rem; opacity: .82; line-height: 1.3; }
.lp-banner-help { display:block; font-size:.78rem; opacity:.72; margin-top:4px; line-height:1.35; }

/* ================================================================
   HERO — static split hero (text / visual / trust card)
   ================================================================ */
.hero { background: linear-gradient(160deg, var(--paper-warm) 0%, var(--paper) 62%); padding: 44px 20px 40px; }
.hero-inner {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    grid-template-areas: "text visual" "trust visual";
    align-items: start;
    gap: 28px 48px;
}
.hero-text { grid-area: text; }
.hero-text .kicker {
    font-family: var(--sans) !important;
    font-size: 12px;
    letter-spacing: 0.12em;
    color: var(--leaf);
    background: rgba(15, 90, 42, 0.08);
    margin-bottom: 18px;
}
.hero-text .kicker::before { background: var(--banana-deep); animation: none; }
.hero-text h1 { font-family: var(--display); font-weight: 500; line-height: 1.0; margin-bottom: 16px; }
.hero-text h1 em { font-style: italic; color: var(--leaf); }
.hero-text .lede { margin-bottom: 22px; }
.hero-cta { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-btn {
    font-family: var(--sans);
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.01em;
    padding: 14px 26px;
    border-radius: 100px;
    border: 1.5px solid transparent;
    cursor: pointer;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.hero-btn.primary { background: var(--leaf); color: var(--paper); box-shadow: 0 8px 20px rgba(15, 90, 42, 0.22); }
.hero-btn.primary:hover { background: var(--leaf-dark); transform: translateY(-1px); }
.hero-btn.ghost { background: transparent; color: var(--ink); border-color: var(--rule); }
.hero-btn.ghost:hover { border-color: var(--leaf); color: var(--leaf); }

.hero-visual {
    grid-area: visual;
    display: block;
    width: auto;
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--rule);
}
.hero-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow: inset 0 0 0 6px rgba(251, 246, 234, 0.5);
    pointer-events: none;
}
.hero-visual img { display: block; width: 100%; height: 100%; object-fit: cover; aspect-ratio: 1 / 1; }

.hero-trust {
    grid-area: trust;
    background: var(--white);
    border: 1px solid var(--rule);
    border-radius: var(--r-lg);
    padding: 20px 22px;
    box-shadow: var(--shadow-sm);
    max-width: 520px;
}
.hero-trust-title { font-family: var(--sans); font-size: 15px; font-weight: 800; letter-spacing: -0.01em; color: var(--ink); margin-bottom: 14px; }
.hero-trust-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.hero-trust-list li { display: flex; gap: 10px; align-items: flex-start; }
.hero-trust-list .ic { font-size: 18px; line-height: 1.2; }
.hero-trust-list strong { display: block; font-family: var(--sans); font-size: 13.5px; font-weight: 700; color: var(--ink); }
.hero-trust-list span:not(.ic) { display: block; font-family: var(--sans); font-size: 12.5px; color: var(--ink-soft); line-height: 1.45; }
.hero-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--rule); }
.hero-chip {
    font-family: var(--sans);
    font-size: 13px;
    font-weight: 600;
    padding: 8px 14px;
    border-radius: 100px;
    border: 1px solid var(--rule);
    background: var(--paper);
    color: var(--ink);
    cursor: pointer;
}
.hero-chip:hover { border-color: var(--leaf); color: var(--leaf); background: var(--leaf-tint); }

@media (max-width: 900px) {
    .hero { padding: 26px 16px 30px; }
    .hero-inner { grid-template-columns: 1fr; grid-template-areas: "text" "visual" "trust"; gap: 20px; }
    .hero-visual { width: 100%; max-width: 520px; margin: 0 auto; }
    .hero-visual img { aspect-ratio: 16 / 10; }
    .hero-trust { max-width: none; }
    .hero-trust-list { grid-template-columns: 1fr; gap: 12px; }
    .hero-btn { flex: 1 1 auto; text-align: center; }
}

/* ================================================================
   HERO VISUAL — subtle 3-slide rotating panel
   ================================================================ */
.hero-visual { outline: none; }
.hero-visual .hv-track { position: relative; width: 100%; aspect-ratio: 1 / 1; }
.hv-slide {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transform: translateX(12px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    pointer-events: none;
}
.hv-slide.active { opacity: 1; transform: translateX(0); pointer-events: auto; }
.hv-slide img { display: block; width: 100%; height: 100%; object-fit: cover; }
.hv-slide figcaption {
    position: absolute;
    left: 14px;
    bottom: 46px;
    font-family: var(--sans);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: -0.01em;
    color: var(--ink);
    background: rgba(251, 246, 234, 0.92);
    border: 1px solid rgba(15, 90, 42, 0.14);
    border-left: 3px solid var(--banana-deep, #d8a319);
    padding: 7px 13px;
    border-radius: 100px;
    backdrop-filter: blur(4px);
}
.hv-dots {
    position: absolute;
    left: 0; right: 0; bottom: 14px;
    display: flex;
    justify-content: center;
    gap: 7px;
    z-index: 3;
}
.hv-dot {
    width: 7px; height: 7px;
    padding: 0;
    border-radius: 100px;
    border: none;
    cursor: pointer;
    background: rgba(251, 246, 234, 0.6);
    box-shadow: 0 1px 3px rgba(0,0,0,0.25);
    transition: width 0.3s ease, background 0.3s ease;
}
.hv-dot.active { width: 20px; background: var(--paper, #fbf6ea); }
.hv-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 34px; height: 34px;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    line-height: 1;
    color: var(--ink);
    background: rgba(251, 246, 234, 0.9);
    border: 1px solid rgba(15, 90, 42, 0.14);
    border-radius: 100px;
    cursor: pointer;
    transition: background 0.15s ease;
}
.hv-arrow:hover { background: #fff; }
.hv-arrow.prev { left: 12px; }
.hv-arrow.next { right: 12px; }
@media (min-width: 821px) { .hv-arrow { display: flex; } }
@media (max-width: 820px) {
    .hero-visual .hv-track { aspect-ratio: 16 / 10; }
    .hv-slide figcaption { bottom: 42px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .hv-slide { transition: none; transform: none; }
}

/* ================================================================
   FLOATING WHATSAPP SUPPORT CTA
   Non-intrusive: right rail on desktop, above the bottom nav on
   mobile, and hidden whenever a full-screen flow owns the screen.
   ================================================================ */
.wa-fab-wrap{
  position:fixed; right:20px; bottom:22vh; z-index:900;
  display:flex; align-items:center; gap:10px;
  transition:opacity .22s ease, transform .22s ease;
}
.wa-fab{
  width:52px; height:52px; border-radius:50%;
  display:grid; place-items:center;
  background:#25D366; color:#fff;
  box-shadow:0 8px 22px rgba(18,48,24,.22), 0 2px 6px rgba(0,0,0,.12);
  border:2px solid rgba(255,255,255,.9);
  transition:transform .2s ease, box-shadow .2s ease;
  position:relative;
}
.wa-fab svg{width:27px;height:27px;fill:currentColor;display:block;}
.wa-fab:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(18,48,24,.28);}
.wa-fab:focus-visible{outline:3px solid var(--banana,#f4c430);outline-offset:3px;}

/* Desktop tooltip */
.wa-fab::after{
  content:attr(data-tip);
  position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%) translateX(6px);
  background:#123018; color:#fff; font-family:var(--sans, inherit);
  font-size:12.5px; font-weight:600; white-space:nowrap;
  padding:7px 12px; border-radius:999px;
  opacity:0; pointer-events:none; transition:.18s ease;
  box-shadow:0 6px 16px rgba(0,0,0,.18);
}
.wa-fab:hover::after,.wa-fab:focus-visible::after{opacity:1;transform:translateY(-50%) translateX(0);}

/* One-time "Need help?" label */
.wa-bubble{
  display:none; align-items:center; gap:8px;
  background:#fff; color:#123018; font-size:13px; font-weight:700;
  padding:9px 10px 9px 14px; border-radius:999px;
  border:1px solid rgba(0,0,0,.08);
  box-shadow:0 8px 20px rgba(18,48,24,.16);
}
.wa-bubble.show{display:flex;}
.wa-bubble-x{background:none;border:none;cursor:pointer;font-size:12px;color:#7a8a7c;line-height:1;padding:2px;}

@media (max-width:860px){
  .wa-fab-wrap{right:14px; bottom:calc(78px + env(safe-area-inset-bottom,0px));}
  .wa-fab{width:48px;height:48px;}
  .wa-fab svg{width:25px;height:25px;}
  .wa-fab::after{display:none;}
}

/* Visibility rules — step aside for full-screen flows */
body.sheet-open .wa-fab-wrap,
body:has(#gate:not(.hidden)) .wa-fab-wrap,
body:has(#mobileGate:not(.hidden)) .wa-fab-wrap,
body:has(#view-checkout.active) .wa-fab-wrap,
body:has(#cancelModal.open) .wa-fab-wrap,
body:has(.cart-drawer.open) .wa-fab-wrap{
  opacity:0; pointer-events:none; transform:translateY(8px);
}

/* Store status and mobile commerce navigation */
.store-status-banner{display:flex;align-items:center;justify-content:center;gap:9px;padding:9px 18px;background:var(--leaf-tint);color:var(--leaf-dark);border-bottom:1px solid var(--rule);font-size:13px}
.store-status-banner[hidden]{display:none}.store-status-banner .status-dot{width:8px;height:8px;border-radius:50%;background:var(--leaf)}
.store-status-banner[data-status="closing_soon"]{background:#fff4d4;color:#704b00}.store-status-banner[data-status="closing_soon"] .status-dot{background:#d99a1f}
.store-status-banner[data-status="busy"]{background:#fff0e7;color:#7c3319}.store-status-banner[data-status="busy"] .status-dot{background:#d65a28}
.store-status-banner[data-status="paused"],.store-status-banner[data-status="closed"]{background:#eef0ec;color:var(--ink)}
.closed-hero{max-width:1180px;margin:28px auto 12px;min-height:430px;padding:50px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:36px;background:var(--leaf-dark);color:var(--paper);border-radius:8px;overflow:hidden}
.closed-hero[hidden]{display:none}.closed-eyebrow{font-size:12px;font-weight:800;color:var(--banana);letter-spacing:0}.closed-hero h1{font-family:var(--display);font-size:clamp(42px,6vw,76px);font-weight:500;line-height:1.02;margin:10px 0 14px}.closed-hero p{font-size:18px;color:#d8e4d0}.closed-actions{display:flex;gap:10px;margin-top:25px;flex-wrap:wrap}.closed-actions button{border:0;background:var(--banana);color:var(--ink);font-weight:800;padding:13px 18px;border-radius:6px}.closed-actions .secondary{background:transparent;color:var(--paper);border:1px solid #ffffff55}
.closed-illustration{position:relative;min-height:300px;display:grid;place-items:end center}.moon{position:absolute;right:8%;top:0;font-size:70px;color:var(--banana)}.shop-front{width:86%;height:220px;border:8px solid #f3ead6;border-top:0;background:#e7ddc5;position:relative;display:grid;place-items:center}.shop-front img{position:absolute;top:24px;max-width:145px;filter:none}.shop-awning{position:absolute;bottom:205px;width:96%;height:48px;background:repeating-linear-gradient(90deg,var(--banana) 0 42px,#f3ead6 42px 84px);border-radius:8px 8px 0 0;z-index:2}.shop-front .shutter{position:absolute;inset:78px 12px 28px;background:repeating-linear-gradient(0deg,#879184 0 8px,#6e796c 8px 11px);border:4px solid #505b4f}.shop-front span{position:absolute;bottom:0;color:var(--leaf-dark);font-weight:800;font-size:12px}
.cart-status-note{margin:0 18px 10px;padding:11px 13px;background:#eef0ec;color:var(--ink);border-radius:6px;font-size:13px;line-height:1.45}.cart-status-note[hidden]{display:none}
.category-sheet-overlay{display:none;position:fixed;inset:0;background:#0d1f1699;z-index:209}.category-sheet{position:fixed;left:0;right:0;bottom:0;z-index:210;background:var(--paper);padding:8px 18px calc(24px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;transform:translateY(105%);transition:transform .24s ease;box-shadow:0 -16px 50px #0d1f1633}.category-sheet.show{transform:translateY(0)}.category-sheet-overlay.show{display:block}.sheet-handle{width:42px;height:4px;border-radius:3px;background:var(--rule);margin:2px auto 14px}.category-sheet-head{display:flex;justify-content:space-between;align-items:center}.category-sheet-head span{font-size:10px;color:var(--leaf);font-weight:800}.category-sheet-head h2{font-family:var(--display);font-size:30px;margin:2px 0 14px}.category-sheet-head button{width:40px;height:40px;border-radius:50%;border:1px solid var(--rule);background:transparent;font-size:24px}.category-primary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.category-primary-grid button{min-height:114px;text-align:left;border:1px solid var(--rule);background:var(--paper-warm);border-radius:8px;padding:14px}.category-primary-grid button>span{display:block;font-size:27px}.category-primary-grid strong,.category-primary-grid small{display:block}.category-primary-grid strong{font-size:16px;margin-top:6px}.category-primary-grid small{color:var(--ink-soft);margin-top:2px}.food-subcategories,.category-secondary{display:flex;gap:8px;margin-top:10px}.food-subcategories[hidden]{display:none}.food-subcategories button,.category-secondary button{flex:1;border:1px solid var(--rule);background:transparent;border-radius:6px;padding:11px;font-weight:700}.category-secondary{border-top:1px solid var(--rule);padding-top:10px}
body.category-sheet-open,body.cart-open{overflow:hidden}body.category-sheet-open .wa-fab-wrap,body.cart-open .wa-fab-wrap{display:none}.bottom-nav-item .icon{font-family:var(--sans);font-weight:800}.bottom-nav-item.active{background:var(--leaf-tint)}
@media(max-width:900px){body{padding-bottom:calc(78px + env(safe-area-inset-bottom))}.bottom-nav{min-height:68px;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav-item{min-height:58px}.site-footer{padding-bottom:100px}}
@media(max-width:600px){.store-status-banner{align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;padding:9px 14px}.closed-hero{margin:0;min-height:calc(100svh - 210px);padding:30px 18px 24px;border-radius:0;grid-template-columns:1fr;gap:12px}.closed-hero h1{font-size:46px}.closed-hero p{font-size:16px}.closed-illustration{min-height:205px}.shop-front{height:155px;width:74%;border-width:6px}.shop-awning{bottom:143px;width:82%;height:34px;background:repeating-linear-gradient(90deg,var(--banana) 0 30px,#f3ead6 30px 60px)}.shop-front img{top:16px;max-width:105px}.shop-front .shutter{inset:55px 10px 22px}.moon{font-size:52px}.site-footer-inner>div:not(:first-child) h4{cursor:pointer}.site-footer-inner>div:not(:first-child) ul,.site-footer-inner>.footer-contact>div{display:none}.site-footer-inner>div.footer-open ul,.site-footer-inner>.footer-contact.footer-open>div{display:flex}.site-footer{padding-top:38px;margin-top:40px}.site-footer-inner{gap:18px}}
@media(prefers-reduced-motion:reduce){.category-sheet{transition:none}}
.cart-status-note{margin:0 24px 14px;padding:12px 14px;border:1px solid var(--rule);border-radius:8px;background:var(--leaf-tint);color:var(--leaf-dark);font-size:13px;line-height:1.45}
.cart-status-note[hidden]{display:none}
@media(max-width:600px){.cart-status-note{margin:0 24px 12px}}

/* Fresh fixed-price menu descriptions; full copy is available in the existing item detail sheet. */
#view-fresh .fresh-menu-description{display:-webkit-box;width:100%;padding:0;border:0;background:transparent;color:var(--ink-soft);font:inherit;font-size:12px;line-height:1.4;text-align:left;cursor:pointer;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:2.8em;margin:0 0 8px}
#view-fresh .fresh-menu-description.expanded{-webkit-line-clamp:unset}
#view-fresh .product-card:has(.fresh-menu-description) .product-tamil{display:none}
