:root{
  /* Fallback only — base.html's inline <style> sets these same names with
     the real fixed brand palette and always wins the cascade; this just
     keeps the raw stylesheet from looking broken if ever loaded alone. */
  --navy:#1C2B24; --navy-deep:#16271e; --orange:#C9A227; --orange-deep:#B08D3E;
  --yellow:#C9A227; --green:#1a7a3e; --red:#b23b2e; --grey-bg:#f4f2e8; --border:#e0ddd0; --ink:#22302a; --sub:#6b7565;
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:Arial,Helvetica,sans-serif;background:var(--grey-bg);color:var(--ink);}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1600px;margin:0 auto;padding:0 20px;}
button,input,select{font-family:inherit;}

.img-slot{background:repeating-linear-gradient(45deg,#e9e4d8,#e9e4d8 10px,#f2eee2 10px,#f2eee2 20px);border:2px dashed #b3a892;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#6b6357;font-size:12px;text-align:center;line-height:1.5;padding:8px;width:100%;height:100%;}
.img-slot b{font-size:12.5px;color:#4a4438;display:block;margin-bottom:2px;}
.img-slot span{font-size:10.5px;opacity:.8;}
.slot-fill{width:100%;height:100%;object-fit:cover;}

/* Shimmer background for image containers — sits behind the <img> as its
   own background (no JS needed to detect "loaded"; the image simply paints
   over it the instant it's ready), instead of a flat static color leaving a
   dead gap on slower connections. */
@keyframes img-shimmer{0%{background-position:-200% 0;}100%{background-position:200% 0;}}
.img-shimmer-bg{background-image:linear-gradient(90deg,#f2eee2 25%,#e6dfcc 37%,#f2eee2 63%);background-size:400% 100%;animation:img-shimmer 1.8s ease-in-out infinite;}

/* flash messages */
.flash-wrap{max-width:1600px;margin:12px auto 0;padding:0 20px;}
.flash{padding:10px 16px;margin-bottom:10px;border-radius:4px;font-size:13.5px;}
.flash.success{background:#f2efe6;color:var(--ink);border:1px solid var(--border);}
.flash.error{background:#f2efe6;color:var(--ink);border:1px solid var(--ink);}

/* utility bar + header */
.util-bar{background:var(--navy-deep);color:rgba(255,255,255,.82);font-size:12px;border-bottom:1px solid var(--border);}
.util-bar a{color:inherit;}
.util-bar a:hover{color:var(--header-text);}
.util-bar .wrap{display:flex;justify-content:space-between;align-items:center;padding:6px 20px;flex-wrap:wrap;gap:8px;}
.util-bar a{margin-left:16px;display:inline-flex;align-items:center;gap:6px;}
.util-icon{display:none;}

/* festival decorative strip */
.festival-strip{
  height:14px;width:100%;
}
.festival-motif-ribbon{
  overflow:hidden;white-space:nowrap;font-size:20px;padding:8px 0;text-align:center;
  letter-spacing:10px;
}
header{background:var(--navy);color:var(--header-text);border-bottom:1px solid var(--border);}
.header-main{display:flex;align-items:center;gap:20px;padding:14px 20px;max-width:1600px;margin:0 auto;flex-wrap:wrap;}
.logo{display:flex;align-items:center;flex-shrink:0;}
.logo-badge{display:flex;align-items:center;background:#fff;border-radius:10px;padding:6px 12px;box-shadow:0 2px 6px rgba(0,0,0,.25);}
.logo-img{height:104px;width:auto;display:block;}
.search-bar{flex:0 1 460px;display:flex;min-width:200px;border:1.5px solid transparent;position:relative;border-radius:22px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.08);transition:box-shadow .18s ease,border-color .18s ease;margin:0 auto;}
.search-bar:focus-within{border-color:var(--orange);box-shadow:0 2px 10px rgba(0,0,0,.12);}
.search-suggestions{display:none;position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;border:1px solid var(--border);z-index:50;max-height:320px;overflow-y:auto;border-radius:12px;box-shadow:0 10px 24px rgba(0,0,0,.15);}
.search-suggestions a:first-child{border-radius:12px 12px 0 0;}
.search-suggestions a:last-child{border-radius:0 0 12px 12px;border-bottom:none;}
.search-suggestions a{display:flex;justify-content:space-between;padding:10px 14px;font-size:13px;color:var(--ink);border-bottom:1px solid #f0f0f0;}
.search-suggestions a:hover{background:#f7f4ee;}
.search-suggestions .price{color:var(--sub);font-weight:700;}
.search-bar select{background:#f7f4ee;border:none;padding:0 12px;font-size:11.5px;border-right:1px solid var(--border);color:var(--sub);max-width:110px;border-radius:22px 0 0 22px;}
.search-bar input{flex:1;border:none;padding:8px 12px;font-size:13px;outline:none;color:var(--ink);background:transparent;}
.search-bar button{background:transparent;border:none;padding:0 16px;cursor:pointer;font-size:15px;color:var(--sub);border-radius:0 22px 22px 0;transition:color .15s ease;}
.search-bar button:hover{color:var(--orange);}
.header-icons{display:flex;align-items:center;gap:6px;font-size:12px;flex-shrink:0;margin-left:auto;}
.header-icons .icon-item{display:flex;flex-direction:row;align-items:center;gap:6px;cursor:pointer;padding:8px 12px;border-radius:20px;transition:background .15s ease;}
.header-icons a.icon-item:hover, .header-icons .account-dropdown-wrap:hover > .icon-item{background:rgba(255,255,255,.14);}
.icon-heart{font-size:17px;line-height:1;display:inline-flex;align-items:center;justify-content:center;width:17px;height:16px;flex-shrink:0;}
.header-icons .icon-item b{font-size:12.5px;font-weight:600;}
.account-dropdown-wrap{position:relative;}
/* padding-top (not margin-top) on purpose — a margin gap between the
   trigger and this dropdown is dead space with no :hover coverage, so
   moving the mouse straight down into the menu closes it before it's
   reachable. Padding keeps that space inside the hoverable box. */
.account-dropdown{display:none;position:absolute;top:100%;right:0;background:#fff;border:1px solid var(--border);min-width:170px;z-index:60;box-shadow:0 8px 20px rgba(0,0,0,.15);border-radius:4px;overflow:hidden;padding-top:8px;}
.account-dropdown-wrap:hover .account-dropdown,.account-dropdown-wrap:focus-within .account-dropdown,.account-dropdown-wrap.open .account-dropdown{display:block;}
.account-dropdown a{display:block;padding:10px 14px;font-size:12.5px;color:var(--ink);border-bottom:1px solid #f0f0f0;}
.account-dropdown a:last-child{border-bottom:none;}
.account-dropdown a:hover{background:#f7f4ee;}
.cart-count{background:var(--ink);color:#fff;border-radius:50%;width:16px;height:16px;font-size:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;margin-left:3px;}
.cat-nav{background:var(--navy-deep);color:var(--header-text);font-size:13px;border-bottom:1px solid var(--border);position:relative;}
.cat-nav .wrap{display:flex;align-items:center;gap:4px;padding:0 20px;overflow-x:auto;}
.cat-nav::before,.cat-nav::after{content:"";position:absolute;top:0;bottom:0;width:28px;pointer-events:none;opacity:0;transition:opacity .2s ease;z-index:2;}
.cat-nav::before{left:0;background:linear-gradient(to right,var(--navy-deep),transparent);}
.cat-nav::after{right:0;background:linear-gradient(to left,var(--navy-deep),transparent);}
.cat-nav.show-left::before{opacity:1;}
.cat-nav.show-right::after{opacity:1;}
.cat-nav a{white-space:nowrap;opacity:.82;padding:11px 12px;position:relative;transition:opacity .15s ease;}
.cat-nav a::after{content:"";position:absolute;left:12px;right:12px;bottom:0;height:2px;background:var(--orange);transform:scaleX(0);transition:transform .18s ease;}
.cat-nav a:hover{opacity:1;}
.cat-nav a:hover::after{transform:scaleX(1);}
.cat-nav a.active{opacity:1;font-weight:700;}
.cat-nav a.active::after{transform:scaleX(1);}

/* hero + categories */
.hero-carousel{padding:20px 0 4px;}
.hero-slide-wrap{position:relative;height:440px;border-radius:16px;overflow:hidden;box-shadow:0 16px 40px rgba(28,23,18,0.2);}
.hero-slide-item{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease;}
.hero-slide-item.active{opacity:1;}
.hero-slide-item img{width:100%;height:100%;object-fit:cover;}
.hero-slide-wrap .img-slot{border-radius:16px;}
.hero-dots{position:absolute;bottom:18px;left:0;right:0;display:flex;justify-content:center;gap:8px;z-index:3;}
.hero-dot{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.55);box-shadow:0 1px 3px rgba(0,0,0,.3);cursor:pointer;}
.hero-dot.active{background:#fff;}
.hero-nav-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:36px;height:36px;border-radius:50%;border:none;background:rgba(0,0,0,.35);color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease;}
.hero-nav-btn:hover{background:rgba(0,0,0,.55);}
.hero-nav-prev{left:14px;}
.hero-nav-next{right:14px;}
@media(max-width:600px){.hero-nav-btn{width:28px;height:28px;font-size:16px;}}
.cat-icons{background:var(--card);padding:24px 0;border-radius:14px;box-shadow:0 4px 16px rgba(28,23,18,.07);margin-bottom:10px;}
.cat-icons-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px;justify-items:center;}
.cat-icon-item{text-align:center;cursor:pointer;}
.cat-icon-item .circle{width:250px;aspect-ratio:1;border-radius:14px;overflow:hidden;margin:0 auto 8px;background-color:#f2eee2;border:1px solid var(--border);box-shadow:0 6px 16px rgba(28,23,18,.1);transition:transform .2s ease,box-shadow .2s ease;padding:20px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;}
.cat-icon-item .circle:has(img){background-image:linear-gradient(90deg,#f2eee2 25%,#e6dfcc 37%,#f2eee2 63%);background-size:400% 100%;animation:img-shimmer 1.8s ease-in-out infinite;}
.cat-icon-item:hover .circle{transform:translateY(-4px);box-shadow:0 12px 24px rgba(28,23,18,.16);}
/* Category tiles mix studio product-on-white shots and lifestyle photos —
   forcing contain + this padding (instead of the site-wide .slot-fill
   cover rule) gives every tile identical breathing room regardless of
   which kind of photo it is, so a full-bleed lifestyle shot can't look
   inconsistent next to a padded product-on-white shot. */
.cat-icon-item .circle img{width:100%;height:100%;object-fit:contain;}
.cat-icon-item p{font-size:14px;font-weight:600;color:var(--ink);}

/* section + product cards */
.section-card{background:var(--card);margin-bottom:10px;padding:18px 20px 22px;border-radius:14px;box-shadow:0 4px 16px rgba(28,23,18,.07);}
.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.section-head h2{font-size:19px;font-weight:700;}
.section-head .see-all{color:var(--ink);font-size:13px;font-weight:600;text-decoration:underline;}

/* Shared grid container for every product-card section (Featured Products,
   Top Picks, Recently Viewed, Shop listing). auto-FILL (not auto-fit):
   auto-fit collapses the empty tracks so a section with just 1-2 products
   stretched a single card to the full row width (a giant "Recently
   Viewed" card was the giveaway). auto-fill keeps the ~220-280px tracks,
   so a lone card stays card-sized with plain whitespace to its right,
   while a full row still fills edge to edge. */
.prod-scroll,.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;}
.prod-scroll > *,.shop-grid > *{max-width:360px;}
/* .shop-grid/.prod-scroll are display:grid, which already stretches every
   card to the same outer height as its row (default align-items:stretch) —
   but without flex here, each card's INTERNAL rows (rating/price/button)
   just stack in normal flow, so a card with a tier tag + region/GI origin
   line sits noticeably taller-looking than a plain one, and the price/Add
   button end up at different vertical positions card to card even though
   the boxes are technically the same height. display:flex + margin-top:auto
   on .prod-rating (see below) pins rating+price+button to the bottom on
   every card, so only the top (thumb + already-clamped 2-line title) is
   allowed to vary — this is what actually reads as "equal size" cards. */
.prod-card{border:1px solid var(--border);border-radius:8px;padding:12px;position:relative;background:var(--card);box-shadow:0 1px 2px rgba(28,23,18,.09),0 10px 22px rgba(28,23,18,.13);transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s cubic-bezier(.2,.8,.2,1);will-change:transform;display:flex;flex-direction:column;height:100%;}
.wishlist-heart{background:#fff;border:1px solid var(--border);border-radius:50%;width:30px;height:30px;font-size:16px;line-height:1;cursor:pointer;color:var(--sub);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(0,0,0,.15);}
.wishlist-heart.active{color:var(--off-accent);border-color:var(--off-accent);}
.wishlist-heart-lg{background:#fff;border:1.5px solid var(--ink);border-radius:4px;padding:12px 18px;font-size:15px;cursor:pointer;color:var(--ink);}
.wishlist-heart-lg.active{color:var(--off-accent);border-color:var(--off-accent);}
.prod-card:hover{transform:perspective(900px) rotateX(3deg) translateY(-8px);box-shadow:0 4px 8px rgba(28,23,18,.14),0 26px 42px rgba(28,23,18,.22);}
.prod-thumb{border-radius:6px;overflow:hidden;aspect-ratio:1;margin-bottom:10px;background-color:#f2eee2;display:flex;align-items:center;justify-content:center;}
.prod-thumb:has(img){background-image:linear-gradient(90deg,#f2eee2 25%,#e6dfcc 37%,#f2eee2 63%);background-size:400% 100%;animation:img-shimmer 1.8s ease-in-out infinite;}
.prod-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.prod-card:hover .prod-thumb img{transform:scale(1.06);}
.prod-badge{position:absolute;top:8px;left:8px;background:var(--orange);color:var(--header-text);font-size:11px;font-weight:800;padding:3px 8px;border-radius:4px;z-index:2;box-shadow:0 2px 6px rgba(0,0,0,.18);}
.prod-badge.out{background:#fff;color:var(--ink);border:1px solid var(--ink);}
.prod-badge.deal{background:var(--off-accent);}
.prod-badge.best{background:var(--brass);}
.prod-title{font-size:13px;line-height:1.4;color:var(--ink);margin-bottom:4px;height:36px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;}
.prod-title a{display:block;}
.prod-title a:hover{text-decoration:underline;}
.prod-origin{display:flex;flex-direction:column;gap:2px;margin-bottom:6px;}
.prod-region{font-size:11px;color:var(--sub);}
.prod-region::before{content:"⌂ ";}
.prod-gi{font-size:10.5px;color:var(--green);font-weight:600;}
.prod-gi::before{content:"✓ ";}
.prod-rating{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--yellow);font-weight:700;margin-bottom:6px;margin-top:auto;}
.prod-rating .count{color:var(--orange-deep);font-size:12px;font-weight:600;}
.prod-price{display:flex;align-items:baseline;gap:7px;flex-wrap:wrap;}
.prod-price .now{font-size:18px;font-weight:700;color:var(--ink);}
.prod-price .was{font-size:12px;color:var(--sub);text-decoration:line-through;}
.prod-price .unit{font-size:11px;color:var(--sub);flex-basis:100%;}
.prod-price .off{font-size:12px;color:var(--off-accent);font-weight:700;text-decoration:underline;}
.prod-tier-tag{font-family:var(--site-font);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--orange-deep);font-weight:700;margin-bottom:3px;}
.prod-tax-stamp{display:flex;justify-content:space-between;border-top:1px dashed var(--border);margin-top:8px;padding-top:6px;font-size:10.5px;color:var(--sub);}
.prod-tax-stamp b{color:var(--ink);font-weight:700;}
.prod-quickadd{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:6px;height:30px;}
.btn-cart-quick{width:100%;height:30px;padding:0 10px;border:1.5px solid var(--brass);background:var(--gold);color:var(--forest);font-size:11.5px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;border-radius:4px;cursor:pointer;transition:background .15s,border-color .15s,color .15s;}
.btn-cart-quick:hover{background:var(--brass);border-color:var(--brass);color:#fff;}
.btn-cart-quick.added{display:flex;align-items:center;justify-content:center;text-decoration:none;background:#2f5d3a;border-color:#2f5d3a;color:#fff;}
.btn-cart-quick.added:hover{background:#254a2e;border-color:#254a2e;}
.prod-quickadd .qty-btn,.qty-stepper .qty-btn{width:30px;height:30px;flex-shrink:0;border:1.5px solid var(--brass);background:#fff;color:var(--forest);font-size:14px;font-weight:700;border-radius:4px;cursor:pointer;line-height:1;padding:0;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s;}
.prod-quickadd .qty-btn:hover,.qty-stepper .qty-btn:hover{background:var(--forest);border-color:var(--forest);color:#fff;}
.prod-quickadd .qty-val{flex:1;text-align:center;font-size:12.5px;font-weight:800;color:var(--ink);}

/* promo strips */
.promo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px;}
.promo-strip .img-slot,.promo-strip .slot-fill{height:220px;}
.full-banner{margin-bottom:10px;}
.full-banner .img-slot,.full-banner .slot-fill{height:200px;}

/* trust strip */
.trust-strip{background:var(--card);padding:20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin-bottom:10px;text-align:center;border-radius:14px;box-shadow:0 4px 16px rgba(28,23,18,.07);}

/* Farm-to-jar process section — real elevated cards with icon badges (text glyphs, no SVG/emoji) */
.process-band{background:var(--navy);color:var(--header-text);border-radius:16px;padding:48px 32px 40px;margin-bottom:10px;}
.process-header{max-width:560px;margin:0 auto 40px;text-align:center;}
.process-eyebrow{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);font-weight:700;margin-bottom:10px;}
.process-title{font-size:28px;font-weight:800;margin:0 0 10px;letter-spacing:-.01em;color:var(--header-text);}
.process-sub{font-size:13.5px;color:rgba(255,255,255,0.8);margin:0 auto;line-height:1.5;}
.process-flow{max-width:1180px;margin:0 auto;display:flex;align-items:stretch;gap:14px;}
.flow-arrow{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:22px;font-size:22px;font-weight:700;color:var(--orange);opacity:.8;}
.step-card{flex:1 1 0;background:var(--card);border:none;border-radius:14px;padding:26px 16px 22px;text-align:center;min-width:0;box-shadow:0 14px 30px rgba(0,0,0,.22);position:relative;}
.step-icon{width:52px;height:52px;border-radius:50%;background:var(--tint);color:var(--brass);display:flex;align-items:center;justify-content:center;margin:0 auto 14px;font-size:19px;font-weight:800;font-family:monospace;box-shadow:0 4px 10px rgba(0,0,0,.18);}
.step-title{font-size:14.5px;font-weight:700;margin:0 0 6px;color:var(--ink);}
.step-desc{font-size:12px;line-height:1.5;color:var(--sub);margin:0;}
.badges{max-width:1180px;margin:36px auto 0;padding-top:0;border-top:none;display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.badge{background:var(--card);border-radius:12px;padding:18px 14px;text-align:center;box-shadow:0 8px 20px rgba(0,0,0,.16);}
.badge-icon{width:38px;height:38px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;margin:0 auto 10px;font-size:16px;font-weight:800;}
.badge-title{font-size:12.5px;font-weight:700;color:var(--ink);margin:0 0 4px;}
.badge-desc{font-size:11px;color:var(--sub);margin:0;line-height:1.4;}
@media(max-width:900px){
  .process-band{padding:36px 20px 30px;}
  .process-flow{flex-direction:column;gap:16px;}
  .flow-arrow{width:auto;transform:rotate(90deg);padding:2px 0;}
  .badges{grid-template-columns:repeat(2,1fr);}
}
.trust-item b{display:block;font-size:13.5px;margin-bottom:4px;}
.trust-item p{font-size:11.5px;color:var(--sub);}

/* shop page */
.shop-layout{display:grid;grid-template-columns:220px 1fr;gap:16px;margin-top:14px;}
.shop-filters{background:var(--card);padding:16px;height:fit-content;border-radius:12px;box-shadow:0 4px 16px rgba(28,23,18,.07);}
.shop-filters h4{font-size:13px;margin-bottom:10px;text-transform:uppercase;color:var(--sub);}
.shop-filters a{display:block;padding:6px 0;font-size:13.5px;border-bottom:1px solid #f0f0f0;color:var(--ink);}
.shop-filters a.active{font-weight:700;text-decoration:underline;}
.shop-toolbar{background:var(--card);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:10px;border-radius:12px;box-shadow:0 4px 16px rgba(28,23,18,.07);}
.filter-toggle-mobile{display:none;}
/* .shop-grid container rules now live with .prod-scroll above — shared class */

/* product detail */
.pd-layout{display:grid;grid-template-columns:420px 1fr;gap:36px;background:var(--card);padding:28px;margin-top:14px;border-radius:14px;box-shadow:0 6px 22px rgba(28,23,18,.08);}
.pd-gallery .main-img{height:420px;background-color:#f2eee2;margin-bottom:10px;border-radius:8px;overflow:hidden;}
.pd-gallery .main-img:has(img){background-image:linear-gradient(90deg,#f2eee2 25%,#e6dfcc 37%,#f2eee2 63%);background-size:400% 100%;animation:img-shimmer 1.8s ease-in-out infinite;}
.pd-gallery .main-img img{width:100%;height:100%;object-fit:cover;}
.pd-thumbs{display:flex;gap:8px;flex-wrap:wrap;}
.pd-thumb-btn{width:64px;height:64px;border-radius:6px;overflow:hidden;border:2px solid var(--border);cursor:pointer;opacity:.75;transition:opacity .15s,border-color .15s;}
.pd-thumb-btn img{width:100%;height:100%;object-fit:cover;}
.pd-thumb-btn:hover{opacity:1;}
.pd-thumb-btn.selected{opacity:1;border-color:var(--orange-deep);}
.pd-title{font-size:22px;font-weight:700;margin-bottom:8px;}
.pd-meta{font-size:13px;color:var(--sub);margin-bottom:12px;}
.pd-gi{display:inline-block;background:#f2efe6;color:var(--ink);border:1px solid var(--border);font-size:11.5px;font-weight:700;padding:3px 10px;border-radius:3px;margin-bottom:14px;}
.pd-price-row{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;}
.pd-price-row .now{font-size:28px;font-weight:800;color:var(--ink);}
.pd-price-row .was{font-size:16px;color:var(--sub);text-decoration:line-through;}
.pd-price-row .off{font-size:14px;color:var(--off-accent);font-weight:700;text-decoration:underline;}
.pd-variants{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px;}
.pd-variant-btn{border:1.5px solid var(--border);padding:10px 16px;font-size:13px;cursor:pointer;background:#fff;border-radius:3px;color:var(--ink);}
.pd-variant-btn.selected{border-color:var(--ink);background:#f2efe6;font-weight:700;}
.pd-variant-btn.disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through;}
.pd-actions{display:flex;gap:12px;margin-bottom:0;}
.pd-qty-row{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.pd-qty-row label{font-size:13px;font-weight:700;color:var(--ink);}
.qty-stepper{display:inline-flex;align-items:center;gap:10px;}
.qty-stepper .qty-input{width:40px;height:30px;text-align:center;border:1.5px solid var(--border);border-radius:4px;padding:0;font-size:13.5px;font-weight:700;background:#fff;}
.pd-sticky-bar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--border);box-shadow:0 -4px 14px rgba(0,0,0,.12);padding:10px 14px;align-items:center;justify-content:space-between;gap:12px;}
.pd-sticky-bar .pd-sticky-price{font-size:17px;font-weight:800;color:var(--ink);}
.pd-sticky-bar .pd-sticky-actions{display:flex;gap:10px;flex:1;max-width:320px;}
.pd-sticky-bar .pd-sticky-actions .btn{flex:1;padding:11px 10px;text-align:center;}
@media(max-width:768px){
  .pd-sticky-bar{display:flex;}
}
.pd-trust{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.pd-trust-chip{display:inline-flex;align-items:center;gap:6px;background:#f2efe6;color:var(--ink);border:1px solid var(--border);font-size:12px;font-weight:600;padding:5px 11px 5px 6px;border-radius:20px;white-space:nowrap;}
.pd-trust-chip .chip-dot{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;background:var(--tint);color:var(--brass);font-size:9px;font-weight:800;flex-shrink:0;}

.pd-marketplaces{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;}
.pd-marketplaces-label{font-size:12px;color:var(--sub);font-weight:600;}
.pd-marketplace-badge{display:inline-flex;align-items:center;background:#fff;color:var(--ink);border:1px solid var(--border);font-size:12px;font-weight:700;padding:6px 14px;border-radius:20px;white-space:nowrap;transition:border-color .15s ease,color .15s ease;}
.pd-marketplace-badge:hover{border-color:var(--accent);color:var(--accent);}
.pd-breadcrumb{font-size:12px;color:var(--sub);margin-bottom:12px;}
.pd-breadcrumb a{color:var(--sub);}
.pd-breadcrumb a:hover{text-decoration:underline;color:var(--ink);}
.pd-buybox{background:#f9f7f2;border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:18px;}
.deal-tag{display:inline-block;background:var(--off-accent);color:#fff;font-size:11.5px;font-weight:700;padding:4px 10px;border-radius:4px;margin-bottom:10px;}
.pd-unit-price{font-size:12px;color:var(--sub);margin-left:2px;}
.pd-tax-note{font-size:12px;color:var(--sub);margin-top:-10px;margin-bottom:16px;}
.pd-buybox-meta{border-top:1px solid var(--border);margin-top:16px;padding-top:14px;}
.pd-buybox-meta div{display:flex;justify-content:space-between;font-size:12px;color:var(--sub);margin-bottom:6px;}
.pd-buybox-meta div span:last-child{color:var(--ink);font-weight:600;}
.pd-meta-label{display:inline-flex;align-items:center;gap:8px;color:var(--sub);font-weight:400;}
.pd-meta-icon{width:26px;height:26px;flex-shrink:0;}
.pd-pincode-check{display:flex;gap:8px;margin-bottom:8px;}
.pd-pincode-check input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:4px;font-size:13px;}
.pd-pincode-check button{padding:8px 16px;border:1.5px solid var(--ink);background:#fff;border-radius:4px;font-size:12.5px;font-weight:700;cursor:pointer;}
.pd-pincode-check button:hover{background:var(--ink);color:#fff;}
.pd-pincode-check + div, #pd-pincode-result, #cart-pincode-result, #checkout-pincode-result{font-size:12px;margin-bottom:14px;min-height:1.4em;line-height:1.5;}
.pd-pincode-ok{color:#0a7a3d;}
.pd-pincode-error{color:var(--off-accent);}
.pd-offers-mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:18px;}
.pd-offer-mini{border:1px dashed var(--orange-deep);border-radius:8px;padding:10px 12px;font-size:11.5px;}
.pd-offer-mini b{display:block;font-size:12.5px;margin-bottom:2px;color:var(--ink);}
.pd-offer-mini span{color:var(--sub);}
.reviews-grid{display:grid;grid-template-columns:280px 1fr;gap:40px;background:#f9f7f2;border:1px solid var(--border);border-radius:12px;padding:26px;margin-bottom:20px;}
@media(max-width:820px){.reviews-grid{grid-template-columns:1fr;gap:24px;}}
.score-row{display:flex;align-items:center;gap:10px;margin-bottom:4px;}
.stars-big{color:var(--yellow);font-size:19px;letter-spacing:1px;}
.score-num{font-size:15px;font-weight:700;color:var(--ink);}
.rating-count{font-size:12.5px;color:var(--sub);margin-bottom:16px;}
.bar-row{display:flex;align-items:center;gap:10px;margin-bottom:7px;font-size:12.5px;}
.bar-row .lbl{width:38px;color:var(--sub);flex-shrink:0;}
.bar-track{flex:1;height:9px;border-radius:5px;overflow:hidden;background:var(--border);}
.bar-fill{height:100%;background:var(--orange);border-radius:5px;}
.bar-pct{width:32px;text-align:right;color:var(--sub);flex-shrink:0;}
.how-calc{font-size:11.5px;color:var(--sub);margin-top:10px;line-height:1.5;}
hr.thin{border:none;border-top:1px solid var(--border);margin:16px 0;}
.say-title{font-weight:700;font-size:14px;margin-bottom:14px;color:var(--ink);}
.say-quote{border-bottom:1px solid var(--border);padding:12px 0;}
.say-quote:last-child{border-bottom:none;}
.say-stars{color:var(--yellow);font-size:13px;margin-bottom:4px;}
.say-quote p{font-size:13.5px;color:var(--ink);line-height:1.6;margin-bottom:4px;}
.say-by{font-size:11.5px;color:var(--sub);}
.pd-desc-wrap{margin-bottom:18px;}
.pd-desc{font-size:14px;line-height:1.7;color:#444;max-height:6.8em;overflow:hidden;position:relative;white-space:pre-line;}
.pd-desc.expanded{max-height:none;}
.pd-desc-toggle{display:block;margin-top:8px;background:none;border:none;padding:0;font-size:12.5px;font-weight:700;color:var(--orange-deep);cursor:pointer;text-decoration:underline;}

.recipe-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:14px;}
.recipe-item{text-align:center;padding:16px 10px;background:#f2efe6;border-radius:12px;transition:transform .15s ease,box-shadow .15s ease;}
.recipe-item:hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(28,23,18,.1);}
.recipe-icon{font-size:28px;margin-bottom:8px;}
.recipe-label{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3;}
@media(max-width:600px){
  .recipe-grid{grid-template-columns:repeat(2,1fr);}
}
.pd-stock{font-size:12.5px;margin-bottom:14px;color:var(--sub);}
.pd-stock.low{color:var(--ink);font-weight:700;}
.pd-stock.out{color:var(--ink);font-weight:700;text-decoration:underline;}

/* "Frequently Bought Together" bundle — a horizontal thumb row with a "+"
   between each item on desktop/tablet; on phones it switches to a stacked
   list (thumb+label side by side per row) instead of squeezing tiny
   thumbnails with mid-row "+" wraps. */
.fbt-items{display:flex;flex-wrap:wrap;align-items:flex-start;gap:10px;}
.fbt-item{width:108px;}
.fbt-thumb{width:100%;}
.fbt-plus{align-self:center;font-size:20px;color:var(--sub);}
.fbt-label{display:flex;align-items:flex-start;gap:5px;font-size:11px;margin-top:6px;line-height:1.35;}
.fbt-label input{margin-top:2px;flex-shrink:0;}
@media(max-width:600px){
  .fbt-items{flex-direction:column;align-items:stretch;gap:0;}
  .fbt-item{width:100%;display:flex;align-items:center;gap:12px;padding:10px 0;}
  .fbt-thumb{width:56px;height:56px;flex-shrink:0;}
  .fbt-label{margin-top:0;font-size:13px;flex:1;}
  .fbt-plus{text-align:center;padding:2px 0;}
}

/* small CSS-drawn header icons (currentColor — no SVG, no emoji, no image assets) */
.icon-search{width:15px;height:15px;border:2px solid currentColor;border-radius:50%;position:relative;display:inline-block;flex-shrink:0;}
.icon-search::after{content:"";position:absolute;width:6px;height:2px;background:currentColor;bottom:-5px;right:-6px;transform:rotate(45deg);border-radius:1px;}
.icon-user{width:16px;height:16px;position:relative;display:inline-block;flex-shrink:0;overflow:hidden;}
.icon-user::before{content:"";position:absolute;top:0;left:4px;width:8px;height:8px;border-radius:50%;background:currentColor;}
.icon-user::after{content:"";position:absolute;bottom:0;left:0;width:16px;height:9px;background:currentColor;border-radius:9px 9px 0 0;}
.icon-cart{width:17px;height:13px;border:2px solid currentColor;border-top:none;border-radius:0 0 3px 3px;position:relative;display:inline-block;flex-shrink:0;margin-top:6px;}
.icon-cart::before{content:"";position:absolute;top:-8px;left:2px;width:9px;height:7px;border:2px solid currentColor;border-bottom:none;border-radius:6px 6px 0 0;}
.icon-cart::after{content:"";position:absolute;bottom:-5px;left:0;width:4px;height:4px;border-radius:50%;background:currentColor;box-shadow:9px 0 0 currentColor;}
.header-icons .icon-item{position:relative;}

/* small circular icon badge used before page/section headings — plain glyph in a filled circle */
.head-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--tint);color:var(--brass);font-size:13px;font-weight:800;margin-right:10px;vertical-align:middle;flex-shrink:0;}
h2 .head-icon,h3 .head-icon{margin-bottom:2px;}

/* footer payment / social chips — circle + letter, no emoji */
.pay-badge{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--sub);}
.pay-badge .chip{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--navy);color:#fff;font-size:10.5px;font-weight:800;flex-shrink:0;}
.pay-badge .chip svg{width:14px;height:14px;}
.social-badge{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;border:1.5px solid var(--orange);transition:transform .15s ease,box-shadow .15s ease;}
.social-badge img{width:100%;height:100%;border-radius:50%;}
.social-badge:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.25);}

/* buttons */
.btn{display:inline-block;border:none;padding:12px 26px;font-size:14px;font-weight:700;border-radius:3px;cursor:pointer;text-align:center;}
.btn-cart{background:var(--gold);color:var(--forest);border:1.5px solid var(--gold);}
.btn-buy{background:var(--forest);color:#fff;}
.btn-outline{background:#fff;border:1.5px solid var(--brass);color:var(--forest);}
.btn-sm{padding:7px 14px;font-size:12.5px;}

/* cart page */
.cart-layout{display:grid;grid-template-columns:1fr 340px;gap:16px;margin-top:14px;}
.cart-item{display:flex;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);align-items:center;}
.cart-item .thumb{width:80px;height:80px;background:#f2eee2;flex-shrink:0;}
.cart-item .thumb img{width:100%;height:100%;object-fit:cover;}
.cart-item .info{flex:1;}
.cart-item .qty-box{display:flex;align-items:center;gap:8px;}
.cart-item .qty-box input{width:50px;padding:6px;border:1px solid var(--border);text-align:center;}
.cart-item .qty-box.qty-stepper{gap:6px;}
.cart-item .qty-box.qty-stepper input{width:30px;padding:0;border:none;background:transparent;font-size:13px;font-weight:800;color:var(--ink);-moz-appearance:textfield;}
.cart-item .qty-box.qty-stepper input::-webkit-outer-spin-button,
.cart-item .qty-box.qty-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
.cart-summary{background:var(--card);padding:18px;height:fit-content;border-radius:12px;box-shadow:0 6px 20px rgba(28,23,18,.08);}
.cart-summary h3{font-size:15px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.cart-summary-row{display:flex;justify-content:space-between;font-size:13.5px;margin-bottom:10px;}
.cart-summary-row.total{font-size:16px;font-weight:700;border-top:1px solid var(--border);padding-top:10px;margin-top:10px;}
.cart-summary-row.muted{font-size:12px;color:var(--sub);margin-bottom:6px;}
.free-ship-nudge{background:var(--grey-bg);border:1px solid var(--border);border-radius:10px;padding:10px 12px;margin-bottom:14px;}
.free-ship-msg{display:block;font-size:12.5px;color:var(--ink);margin-bottom:8px;}
.free-ship-msg b{color:var(--green);}
.free-ship-bar{height:6px;border-radius:4px;background:var(--border);overflow:hidden;}
.free-ship-bar-fill{height:100%;background:var(--green);border-radius:4px;transition:width .3s ease;}
.free-ship-nudge.reached{background:rgba(26,122,62,.08);border-color:var(--green);}
.free-ship-nudge.reached .free-ship-msg{margin-bottom:0;}
.free-ship-icon{color:var(--green);font-weight:700;}
.discount-form{display:flex;gap:8px;margin:14px 0;}
.guest-checkout-note{font-size:11.5px;color:var(--sub);text-align:center;margin-top:8px;}
.discount-form input{flex:1;padding:8px 10px;border:1px solid var(--border);font-size:13px;}

/* checkout */
.checkout-steps{display:flex;align-items:center;gap:10px;margin-bottom:6px;}
.checkout-step{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--sub);}
.checkout-step-num{width:24px;height:24px;border-radius:50%;background:var(--border);color:var(--sub);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0;transition:background .2s,color .2s;}
.checkout-step.active{color:var(--forest);}
.checkout-step.active .checkout-step-num{background:var(--forest);color:#fff;}
.checkout-step.done{color:var(--green);}
.checkout-step.done .checkout-step-num{background:var(--green);color:#fff;}
.checkout-step-sep{width:36px;height:2px;background:var(--border);flex-shrink:0;}
@media(max-width:480px){.checkout-step-label{display:none;} .checkout-step-sep{width:20px;}}
.checkout-layout{display:grid;grid-template-columns:1fr 340px;gap:16px;margin-top:14px;align-items:start;}
.checkout-form{background:var(--card);padding:24px;border-radius:14px;box-shadow:0 6px 20px rgba(28,23,18,.08);}
.checkout-form label{font-size:12.5px;font-weight:700;display:block;margin-bottom:6px;color:var(--forest);}
.checkout-form label .opt{font-weight:400;color:var(--sub);}
.checkout-form .row2,.checkout-form .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.checkout-form .field{margin-bottom:16px;}
/* stays visible while scrolling a long form — the right-hand summary
   shouldn't disappear above the fold once the shopper scrolls into the
   payment-method section. */
.checkout-layout .cart-summary{position:sticky;top:24px;}

.coupon-box{display:flex;gap:8px;margin-bottom:10px;}
.coupon-box .form-control{height:42px;}
.coupon-box button{height:42px;padding:0 18px;border:none;border-radius:8px;background:var(--forest);color:#fff;font-weight:700;font-size:13.5px;cursor:pointer;white-space:nowrap;}
.applied-discount-row{display:flex;justify-content:space-between;align-items:center;background:var(--tint);border-radius:8px;padding:10px 12px;margin-bottom:10px;font-size:13px;color:var(--ok);}
.applied-discount-row .link-btn{background:none;border:none;color:var(--forest);text-decoration:underline;font-size:12px;font-weight:600;cursor:pointer;padding:0;margin-left:8px;}

/* uniform input/select/textarea box — a mismatch here (some fields taller,
   selects with browser-default styling) is what made the form feel
   inconsistent before. */
.checkout-form .form-control{
  width:100%;height:46px;padding:0 14px;border:1px solid var(--border);border-radius:8px;
  font-size:14.5px;color:var(--ink);background:#fff;font-family:inherit;
}
.checkout-form textarea.form-control{height:auto;padding:12px 14px;min-height:70px;resize:vertical;}
.checkout-form select.form-control{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9'><path d='M1 1l6 6 6-6' stroke='%231C2B24' stroke-width='1.6' fill='none' fill-rule='evenodd'/></svg>");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px;
}
.checkout-form .form-control:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,0.15);}

.section-label{display:flex;align-items:center;gap:10px;margin:26px 0 14px;}
.section-label:first-child{margin-top:0;}
.section-label .dot{width:32px;height:32px;border-radius:50%;background:var(--tint);display:flex;align-items:center;justify-content:center;color:var(--gold);font-size:15px;flex-shrink:0;}
.section-label h3{margin:0;font-size:16px;color:var(--forest);font-weight:700;}

.pay-option{border:1.5px solid var(--border);border-radius:10px;padding:16px 16px 16px 46px;position:relative;margin-bottom:12px;cursor:pointer;transition:border-color .15s ease,background .15s ease;}
.pay-option.selected{border-color:var(--forest);background:var(--tint);}
.pay-option input{position:absolute;left:16px;top:18px;accent-color:var(--forest);width:18px;height:18px;}
.pay-option .title{font-weight:700;font-size:14.5px;color:var(--ink);margin-bottom:4px;}
.pay-option .desc{font-size:12px;color:var(--sub);line-height:1.5;}

.place-order{width:100%;background:var(--forest);color:#fff;border:none;border-radius:10px;padding:16px;font-size:15.5px;font-weight:700;margin-top:20px;cursor:pointer;letter-spacing:0.2px;transition:background .15s ease;}
.place-order:hover{background:var(--forest-2);}
.place-order:disabled{opacity:.6;cursor:default;}

/* checkout — real active discount codes shown as offer cards */
.offer-card{display:flex;align-items:center;gap:12px;border:1px dashed var(--gold);background:var(--tint);border-radius:10px;padding:12px 14px;margin-bottom:10px;}
.offer-icon{width:34px;height:34px;border-radius:50%;background:var(--forest);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0;}
.offer-info{flex:1;min-width:0;}
.offer-title{font-weight:700;font-size:13.5px;color:var(--forest);}
.offer-tag{display:inline-block;background:#f1e9d2;color:#8a6d00;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:20px;margin-left:6px;}
.offer-desc{font-size:11.5px;color:var(--sub);margin-top:3px;line-height:1.4;}
.offer-apply-btn{border:1px solid var(--forest);background:#fff;color:var(--forest);font-weight:700;font-size:12px;padding:7px 14px;border-radius:8px;cursor:pointer;flex-shrink:0;}
.offer-apply-btn.applied{background:var(--forest);color:#fff;}
.offer-card.disabled{opacity:.45;pointer-events:none;}

/* order confirmation — thank-you card */
.ty-card{background:var(--card);border-radius:16px;padding:32px 26px;text-align:center;box-shadow:0 6px 20px rgba(28,23,18,.08);margin:16px 0;}
.ty-icon{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--forest),var(--forest-2));color:#fff;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 14px;}
.ty-card h2{margin:0 0 4px;color:var(--forest);font-size:22px;}
.ty-sub{color:var(--sub);font-size:14px;margin:0 0 20px;}
.ty-order-box{background:var(--tint);border-radius:12px;padding:14px 16px;text-align:left;margin-bottom:18px;}
.ty-row{display:flex;justify-content:space-between;font-size:13.5px;padding:5px 0;color:var(--ink);}
.ty-row.total{font-weight:800;color:var(--forest);border-top:1px dashed var(--border);margin-top:4px;padding-top:9px;font-size:15px;}
.ty-message{font-size:13.5px;line-height:1.65;color:var(--ink);text-align:left;background:var(--tint);border-left:3px solid var(--gold);padding:12px 14px;border-radius:6px;margin-bottom:16px;}
.ty-delivery{font-size:13px;color:var(--forest);font-weight:600;margin-bottom:22px;}

/* auth pages */
.auth-box{max-width:400px;margin:50px auto;background:var(--card);padding:32px;border-radius:14px;box-shadow:0 10px 30px rgba(28,23,18,.12);}
.auth-box h2{font-size:20px;margin-bottom:20px;}
.auth-box label{font-size:12.5px;font-weight:700;display:block;margin-top:14px;margin-bottom:4px;}
.auth-box input,.auth-box select{width:100%;padding:10px 12px;border:1px solid var(--border);font-size:13.5px;background:#fff;}
.auth-box .btn{width:100%;margin-top:20px;}
.auth-box p.switch{margin-top:16px;font-size:13px;text-align:center;color:var(--sub);}

/* account / orders */
.order-card{background:var(--card);padding:18px;margin-bottom:12px;border-radius:12px;box-shadow:0 4px 16px rgba(28,23,18,.07);}
.order-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px;}

/* delivery step tracker (received -> packed -> shipped -> delivered) */
.delivery-steps{display:flex;align-items:flex-start;margin:16px 0;}
.delivery-step{display:flex;flex-direction:column;align-items:center;flex:0 0 auto;width:84px;text-align:center;}
.delivery-step-dot{width:36px;height:36px;border-radius:50%;background:#f2eee2;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--sub);margin-bottom:6px;}
.delivery-step.done .delivery-step-dot{background:var(--orange);border-color:var(--orange);color:var(--header-text,#fff);}
.delivery-step.current .delivery-step-dot{box-shadow:0 0 0 4px color-mix(in srgb, var(--orange) 25%, transparent);}
.delivery-step-label{font-size:11px;font-weight:600;color:var(--sub);}
.delivery-step.done .delivery-step-label{color:var(--ink);}
.delivery-step-line{flex:1 1 auto;height:3px;background:var(--border);margin:18px -6px 0;}
.delivery-step-line.done{background:var(--orange);}
@media(max-width:600px){
  .delivery-step{width:56px;}
  .delivery-step-label{font-size:9.5px;}
}

/* offers page */
.offer-card{background:var(--card);padding:20px;border-radius:8px;border:1px dashed var(--orange-deep);text-align:center;}
.offer-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--tint);color:var(--brass);font-size:15px;font-weight:800;margin-bottom:8px;}
.offer-code{font-family:monospace;font-size:20px;font-weight:800;letter-spacing:2px;color:var(--orange-deep);background:#fff4e5;padding:8px 16px;border-radius:6px;display:inline-block;margin:8px 0;}
.offer-copy-btn{font-size:11px;padding:4px 10px;}

/* track order page */
.track-order-box{max-width:480px;margin:40px auto;background:var(--card);padding:32px;border-radius:14px;box-shadow:0 10px 30px rgba(28,23,18,.12);}

/* info/policy pages */
.info-page-body h3{display:flex;align-items:center;gap:12px;font-size:17px;font-weight:800;margin:0 0 14px;color:var(--ink);}
.info-page-body h3:not(:first-child){margin-top:34px;padding-top:28px;border-top:1px solid var(--border);}
.info-page-body h4{margin:18px 0 8px;font-size:14.5px;font-weight:700;color:var(--navy);}
.info-page-body p{margin-bottom:10px;font-size:13.5px;color:var(--ink);line-height:1.75;}
.info-page-body ul{margin:0 0 10px 20px;}
.info-page-body li{font-size:13.5px;color:var(--ink);line-height:1.75;margin-bottom:5px;}
.info-page-body a{text-decoration:underline;}
.faq-item{border-bottom:1px solid var(--border);padding:14px 0;}
.faq-item b{display:flex;align-items:center;gap:8px;font-size:14px;margin-bottom:4px;}
.faq-item b::before{content:"Q";display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--tint);color:var(--brass);font-size:10px;font-weight:800;flex-shrink:0;}
.status-badge{font-size:11px;font-weight:700;padding:3px 10px;border-radius:3px;text-transform:uppercase;background:#f2efe6;color:var(--ink);border:1px solid var(--border);}

/* legal/policy pages — jump-nav sidebar layout */
.legal-hero{background:var(--navy);color:var(--header-text);text-align:center;padding:40px 24px 34px;border-radius:14px;margin-bottom:14px;}
.legal-hero .eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);}
.legal-hero h1{font-size:26px;font-weight:800;margin:10px 0 0;color:var(--header-text);}
.legal-hero .sub{font-size:13px;color:rgba(255,255,255,.75);margin-top:8px;}
.legal-hero .eff-date{display:inline-block;margin-top:12px;font-size:11.5px;font-weight:700;background:rgba(255,255,255,.14);color:var(--orange);padding:5px 14px;border-radius:999px;}
.legal-intro{background:#f9f7f2;border:1px solid var(--border);border-radius:12px;padding:20px 24px;margin-bottom:20px;}
.legal-intro p{font-size:13.5px;line-height:1.75;color:var(--sub);margin:0 0 10px;}
.legal-intro p:last-child{margin-bottom:0;}
.legal-intro strong{color:var(--ink);}
.legal-layout{display:grid;grid-template-columns:220px 1fr;gap:32px;align-items:start;}
@media(max-width:820px){.legal-layout{grid-template-columns:1fr;} .legal-toc{position:static;}}
.legal-toc{position:sticky;top:20px;background:var(--card);border-radius:12px;padding:18px;box-shadow:0 4px 16px rgba(28,23,18,.07);}
.legal-toc-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--sub);margin-bottom:10px;}
.legal-toc a{display:block;font-size:12.5px;color:var(--ink);padding:7px 0 7px 12px;border-left:2px solid var(--border);line-height:1.35;}
.legal-toc a:hover{color:var(--navy);border-left-color:var(--orange);}
.legal-callout,.legal-danger{display:flex;gap:12px;align-items:flex-start;border-radius:10px;padding:14px 18px;margin:14px 0;}
.legal-callout{background:#f9f7f2;border:1px solid var(--border);}
.legal-danger{background:#fbeeee;border:1px solid var(--off-accent);}
.legal-callout p,.legal-danger p{margin:0;font-size:13px;line-height:1.6;}
.legal-danger p{color:var(--off-accent);}
.legal-callout .callout-icon{width:22px;height:22px;border-radius:50%;background:var(--tint);color:var(--brass);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;margin-top:1px;}
.legal-danger .callout-icon{width:22px;height:22px;border-radius:50%;background:#b1453b;color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;margin-top:1px;}
.legal-box{background:var(--navy);color:#fff;border-radius:12px;padding:20px 22px;}
.legal-box .b-label{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--orange);margin-bottom:8px;}
.legal-box .b-name{font-size:15px;font-weight:800;margin-bottom:4px;}
.legal-box .b-line{font-size:13px;color:rgba(255,255,255,.82);line-height:1.7;}
.legal-box .b-line a{color:var(--orange);}
.legal-box ul{margin:10px 0 0;padding-left:18px;}
.legal-box li{font-size:12.5px;color:rgba(255,255,255,.72);margin-bottom:4px;}
.owner-line{font-weight:700;color:var(--navy);margin:0 0 12px;font-size:14.5px;}
.subsection{margin-bottom:18px;}
.subsection:last-child{margin-bottom:0;}
.sub-head{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.sub-letter{width:22px;height:22px;border-radius:6px;background:#f2eee2;color:var(--orange-deep);font-size:11.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.sub-title{font-size:14px;font-weight:700;color:var(--navy);}
.subsection ul{margin:0;padding-left:42px;}
.subsection p.inline{margin:0 0 8px 42px;font-size:13.5px;color:var(--ink);line-height:1.7;}
.badge-strip{display:flex;flex-wrap:wrap;gap:10px;margin:4px 0 0 42px;}
.badge-strip span{font-size:12px;font-weight:700;color:var(--navy);background:#f2eee2;border:1px solid var(--border);border-radius:999px;padding:6px 14px;}
.table-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border);font-size:13.5px;}
.table-row:last-child{border-bottom:none;}
.table-row .region{font-weight:700;color:var(--ink);}
.table-row .days{color:var(--sub);}
@media(max-width:600px){
  .subsection ul,.subsection p.inline,.badge-strip{padding-left:0;margin-left:0;}
}

/* footer */
footer{background:var(--navy-deep);color:rgba(255,255,255,.78);padding-top:40px;font-size:13px;margin-top:20px;border-top:1px solid var(--border);}
.foot-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px;max-width:1600px;margin:0 auto;padding:0 20px 30px;}
.foot-col h6{color:var(--header-text);font-size:12px;text-transform:uppercase;margin-bottom:14px;letter-spacing:.03em;font-weight:700;display:flex;align-items:center;gap:8px;}
.foot-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:var(--orange);color:var(--navy);font-size:10px;font-weight:800;flex-shrink:0;}
.foot-col a{display:block;margin-bottom:10px;color:rgba(255,255,255,.78);transition:color .15s ease;}
.mobile-only-link{display:none;}
.foot-col a:hover{color:var(--header-text);}
.foot-payments{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:28px;padding:16px 20px;border-top:1px solid var(--border);}
.foot-payment-icons{display:flex;gap:16px;font-size:12.5px;color:rgba(255,255,255,.78);flex-wrap:wrap;justify-content:center;}
.foot-social{display:flex;gap:14px;font-size:18px;}
.foot-social a{opacity:.85;color:var(--header-text);}
.foot-social a:hover{opacity:1;}
.foot-bottom{border-top:1px solid var(--border);padding:18px 20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;max-width:1600px;margin:0 auto;font-size:12px;color:rgba(255,255,255,.7);}

/* ---------- Tablet (iPad-ish, landscape phones) ---------- */
@media(max-width:1024px){
  .cat-icon-item .circle{width:160px;padding:14px;}
  .cat-icons-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));}
  .hero-slide-wrap{height:320px;}
  .pd-layout{grid-template-columns:340px 1fr;gap:24px;padding:20px;}
  .prod-scroll,.shop-grid{grid-template-columns:repeat(3,1fr);gap:18px;}
}

/* ---------- Tablet-portrait / large phone ---------- */
@media(max-width:900px){
  .trust-strip{grid-template-columns:repeat(2,1fr);}
  .foot-grid{grid-template-columns:repeat(2,1fr);}
  .shop-layout,.pd-layout,.cart-layout,.checkout-layout{grid-template-columns:1fr;}
  .checkout-layout .cart-summary{position:static;}
  .header-main{gap:12px;}
  .search-bar{order:3;flex-basis:100%;}
  .filter-toggle-mobile{
    display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;
    background:var(--card);border:1px solid var(--border);border-radius:12px;
    padding:12px 16px;font-size:14px;font-weight:700;cursor:pointer;
    box-shadow:0 4px 16px rgba(28,23,18,.07);
  }
  .filter-toggle-caret{transition:transform .2s;}
  .filter-toggle-mobile[aria-expanded="true"] .filter-toggle-caret{transform:rotate(180deg);}
  .shop-filters-body{display:none;margin-top:10px;}
  .shop-filters-body.open{display:block;}
}

/* ---------- Mobile ---------- */
@media(max-width:600px){
  .wrap{padding:0 14px;}
  .cat-icon-item .circle{width:110px;padding:10px;}
  .cat-icons-grid{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:12px;}
  .hero-slide-wrap{height:190px;border-radius:10px;}
  .hero-carousel{padding:12px 0 4px;}
  .festival-motif-ribbon{font-size:14px;letter-spacing:5px;padding:5px 0;}
  .section-head h2{font-size:16px;}
  .prod-scroll,.shop-grid{grid-template-columns:repeat(2,1fr);gap:12px;}
  .promo-strip{grid-template-columns:1fr;}
  .foot-grid{grid-template-columns:1fr 1fr;text-align:center;gap:22px 14px;padding:0 18px 16px;}
  .foot-col h6{justify-content:center;}
  /* Mobile footer: keep only Policies + Contact — About/My Account are
     already reachable via the header account-dropdown, so repeating them
     here would just be clutter. */
  .foot-col:nth-child(1),.foot-col:nth-child(2),.foot-col:nth-child(4){display:none;}
  .mobile-only-link{display:block;}
  .pd-title{font-size:18px;}
  .pd-price-row .now{font-size:22px;}
  .pd-actions{flex-direction:column;}
  .pd-actions .btn{width:100%;}
  .checkout-form .row2,.checkout-form .field-row{grid-template-columns:1fr;}
  .header-main{padding:10px 14px;}
  .logo{font-size:21px;}
  .logo-img{height:44px;}
  .logo-badge{padding:4px 9px;}
  .util-bar{display:none;}
  .header-icons{gap:2px;}
  .header-icons .icon-item{padding:8px 8px;}
  .header-icons .icon-item b{display:none;}
  .header-icons .cart-count{position:absolute;top:2px;right:2px;margin-left:0;}
  .foot-payments{padding:14px;justify-content:center;text-align:center;}
  .foot-bottom{padding:14px;justify-content:center;text-align:center;}

  /* legal pages (Privacy/Refund/Terms/Quality/Trademark) */
  .legal-hero{padding:28px 18px 24px;}
  .legal-hero h1{font-size:21px;}
  .legal-intro{padding:16px 18px;}
  .legal-toc{padding:14px;}
  .info-page-body h3{font-size:15.5px;gap:10px;}
  .info-page-body h3 .head-icon{width:26px !important;height:26px !important;font-size:11px !important;}
  .subsection ul,.subsection p.inline,.badge-strip{padding-left:0;margin-left:0;}
  .table-row{font-size:13px;}
  .legal-box,.legal-callout,.legal-danger{padding:14px 16px;}

  /* About Us page */
  .about-hero{padding:36px 18px 30px;}
  .about-hero h1{font-size:23px;}
  .about-section{padding:32px 0;}
  .about-section h2{font-size:19px;}
  .about-mission-box{padding:20px 18px;}
  .about-trust-item{padding:16px;gap:10px;}
  .about-trust-icon{width:32px;height:32px;font-size:14px;}
  .about-source-card{padding:18px 16px;}
  .about-t-step{gap:14px;margin-bottom:18px;}
  .about-t-num{width:34px;height:34px;font-size:13px;}
  .about-t-card{padding:18px;}
  .about-certs{padding:32px 18px;}
  .about-cert-row{gap:8px;}
  .about-cert-badge{padding:7px 13px;font-size:11.5px;}
  .about-closing{padding:30px 18px;}
  .about-closing p{font-size:15px;}

  /* Track order page */
  .track-order-box{margin:20px auto;padding:22px 18px;}

  /* FAQ */
  .faq-item b{font-size:13px;}

  /* blog */
  .newsletter-form{flex-direction:column;}

  /* product page buybox */
  .pd-buybox{padding:16px;}
  .pd-offers-mini{grid-template-columns:1fr;}
  .pd-pincode-check{flex-direction:column;}
  .pd-pincode-check button{width:100%;}
}

/* subtle soil/kraft-paper grain texture — page bg + white card surfaces (neutral ink/tan tint only) */
body{
  background-image:
    radial-gradient(rgba(28,23,18,0.045) 1px, transparent 1px),
    radial-gradient(rgba(107,99,87,0.03) 1px, transparent 1px);
  background-size:16px 16px, 16px 16px;
  background-position:0 0, 8px 8px;
}
.section-card,.cart-summary,.checkout-form,.auth-box,.order-card,
.shop-filters,.shop-toolbar,.pd-layout,.hero-carousel,.cat-icons,.trust-strip,.prod-card{
  background-color:var(--card);
  background-image:
    radial-gradient(rgba(28,23,18,0.03) 1px, transparent 1px),
    radial-gradient(rgba(107,99,87,0.02) 1px, transparent 1px);
  background-size:18px 18px, 18px 18px;
  background-position:0 0, 9px 9px;
}

/* Design Studio — Glass Cards toggle */
body.glass-cards .section-card,
body.glass-cards .prod-card,
body.glass-cards .cart-summary,
body.glass-cards .checkout-form,
body.glass-cards .auth-box,
body.glass-cards .order-card,
body.glass-cards .shop-filters,
body.glass-cards .shop-toolbar,
body.glass-cards .pd-layout,
body.glass-cards .trust-strip{
  background-color:color-mix(in srgb, var(--card) 68%, transparent);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  border:1px solid color-mix(in srgb, var(--card) 40%, transparent);
}

/* Design Studio — Premium Look toggle: deeper shadows, more lift, smoother motion */
body.premium-look .prod-card{box-shadow:0 2px 4px rgba(28,23,18,.11),0 14px 28px rgba(28,23,18,.16);}
body.premium-look .prod-card:hover{transform:perspective(900px) rotateX(4deg) translateY(-10px);box-shadow:0 6px 12px rgba(28,23,18,.16),0 32px 52px rgba(28,23,18,.26);}
body.premium-look .section-card,
body.premium-look .cart-summary,
body.premium-look .checkout-form,
body.premium-look .auth-box,
body.premium-look .order-card,
body.premium-look .pd-layout{
  box-shadow:0 10px 28px rgba(28,23,18,.1);
  transition:box-shadow .25s ease,transform .25s ease;
}
body.premium-look .hero-slide-wrap{box-shadow:0 28px 60px rgba(28,23,18,.28);}
body.premium-look .btn{transition:transform .18s ease,box-shadow .18s ease;}
body.premium-look .btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(28,23,18,.2);}

/* About Us page */
.about-hero{background:var(--navy);color:var(--header-text);text-align:center;padding:56px 24px 48px;border-radius:16px;margin-bottom:14px;}
.about-hero .eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);}
.about-hero h1{font-size:32px;font-weight:800;margin:12px 0 12px;color:var(--header-text);}
.about-hero p{max-width:560px;margin:0 auto;color:rgba(255,255,255,.78);font-size:14px;line-height:1.6;}
.about-section{padding:44px 0;}
.about-eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep);margin-bottom:8px;}
.about-section h2{font-size:24px;font-weight:800;margin:0 0 20px;color:var(--ink);}
.about-story-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:36px;align-items:start;}
@media(max-width:820px){.about-story-grid,.about-trust-grid,.about-sourcing-grid,.about-t-grid{grid-template-columns:1fr;}}
.about-story-grid p{color:var(--sub);font-size:14px;line-height:1.7;margin-bottom:14px;}
.about-mission-box{background:var(--navy);color:var(--header-text);border-radius:14px;padding:26px 24px;}
.about-mission-box p{color:rgba(255,255,255,.8);font-size:13.5px;margin:0;}
.about-tagline{margin-top:18px;font-style:italic;color:var(--orange);font-weight:700;font-size:14px;}
.about-trust-grid,.about-sourcing-grid,.about-t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px;}
.about-trust-item{background:var(--card);border-radius:12px;padding:20px;display:flex;gap:12px;align-items:flex-start;box-shadow:0 4px 16px rgba(28,23,18,.07);}
.about-trust-icon{flex-shrink:0;width:38px;height:38px;border-radius:10px;background:var(--tint);color:var(--brass);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;}
.about-trust-item h4{margin:0 0 4px;font-size:14px;font-weight:700;color:var(--ink);}
.about-trust-item p{margin:0;font-size:12px;color:var(--sub);line-height:1.5;}
.about-source-card{background:var(--navy);border-radius:14px;padding:22px 20px;color:var(--header-text);}
.about-source-pin{display:flex;align-items:center;gap:6px;margin-bottom:12px;color:var(--orange);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}
.about-source-card h4{margin:0 0 8px;font-size:16px;font-weight:800;}
.about-source-card p{margin:0;font-size:12.5px;color:rgba(255,255,255,.78);line-height:1.6;}
.about-timeline{margin-top:28px;}
.about-t-step{display:flex;gap:18px;margin-bottom:22px;}
.about-t-step:last-child{margin-bottom:0;}
.about-t-num{flex-shrink:0;width:40px;height:40px;border-radius:50%;background:var(--tint);color:var(--brass);font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center;}
.about-t-step h4{margin:0 0 4px;font-size:14.5px;font-weight:800;color:var(--ink);}
.about-t-step p{margin:0;font-size:13px;color:var(--sub);line-height:1.6;}
.about-certs{background:var(--navy);color:var(--header-text);text-align:center;border-radius:16px;padding:40px 24px;}
.about-certs h2{color:var(--header-text);}
.about-cert-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:22px;}
.about-cert-badge{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 18px;font-size:12.5px;font-weight:700;color:var(--header-text);}
.about-cert-badge .dot{width:8px;height:8px;border-radius:50%;background:var(--orange);flex-shrink:0;}
.about-t-card{background:var(--card);border-radius:14px;padding:22px;box-shadow:0 4px 16px rgba(28,23,18,.07);}
.about-t-stars{color:var(--yellow);font-size:13px;margin-bottom:10px;letter-spacing:2px;}
.about-t-card p{font-size:12.5px;color:var(--sub);line-height:1.6;margin:0 0 14px;}
.about-t-name{font-weight:700;font-size:13px;color:var(--ink);}
.about-closing{background:var(--navy);text-align:center;padding:40px 24px;border-radius:16px;margin-top:14px;}
.about-closing p{color:var(--orange);font-size:19px;font-weight:800;font-style:italic;margin:0;}

.wa-float-btn{position:fixed;right:20px;bottom:20px;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.25);z-index:900;transition:transform .15s ease;}
.wa-float-btn:hover{transform:scale(1.06);}
@media(max-width:640px){.wa-float-btn{right:14px;bottom:14px;width:50px;height:50px;}.wa-float-btn svg{width:26px;height:26px;}}

/* Featured Products (homepage) — bigger cards, fixed columns instead of
   the shared .prod-scroll's auto-fill+max-width (that sizing is right for
   Recently Viewed/Top Picks, which can genuinely hold just 1-2 cards and
   must not stretch — Featured always shows a full row worth). */
.featured-products .prod-scroll{grid-template-columns:repeat(4,1fr);}
.featured-products .prod-card{max-width:none;}
.featured-products .prod-thumb{padding:18px;background-color:#fff;}
.featured-products .prod-thumb img{object-fit:contain;}
.featured-products .prod-title{font-size:16px;line-height:1.4;height:auto;}
.featured-products .prod-price .now{font-size:24px;}
.featured-products .prod-quickadd{height:36px;}
.featured-products .btn-cart-quick{height:36px;font-size:12.5px;}
.featured-products .prod-quickadd .qty-btn{height:36px;width:36px;}
@media(max-width:1100px){.featured-products .prod-scroll{grid-template-columns:repeat(3,1fr);}}
@media(max-width:820px){.featured-products .prod-scroll{grid-template-columns:repeat(2,1fr);}}
@media(max-width:480px){.featured-products .prod-scroll{grid-template-columns:repeat(2,1fr);gap:14px;}}

/* ===== App-style mobile shell (installable PWA) =====================
   Bottom tab bar + safe-area handling. Phones/tablets only; the PDP
   (has its own sticky Add/Buy bar) and checkout hide the tab bar. */
html{-webkit-tap-highlight-color:transparent;}
.app-tabbar,.app-tabbar-spacer{display:none;}
.tab-cart-count{font-style:normal;}
@media(max-width:768px){
  body{animation:appFade .2s ease-out;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);}
  a,button,select,input[type=submit]{touch-action:manipulation;}
  header,.app-tabbar,.btn,button{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
  header{position:sticky;top:0;z-index:55;}
  .app-tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:58;background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));box-shadow:0 -3px 14px rgba(0,0,0,.07);}
  .app-tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative;color:#7b8478;font-size:10.5px;font-weight:600;padding:4px 0;border-radius:10px;}
  .app-tabbar a svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s;}
  .app-tabbar a.on{color:var(--forest);}
  .app-tabbar a.on svg{stroke-width:2.2;transform:translateY(-1px);}
  .app-tabbar a.on::before{content:"";position:absolute;top:-7px;width:26px;height:3px;border-radius:0 0 4px 4px;background:var(--gold);}
  .app-tabbar a:active{background:var(--tint);}
  .tab-cart-count{position:absolute;top:0;left:calc(50% + 6px);background:var(--gold);color:var(--forest);font-size:10px;font-weight:800;min-width:16px;height:16px;line-height:16px;border-radius:9px;text-align:center;padding:0 4px;}
  .tab-cart-count[hidden]{display:none;}
  .app-tabbar-spacer{display:block;height:calc(62px + env(safe-area-inset-bottom));}
  body:has(.pd-sticky-bar) .app-tabbar,body:has(.checkout-form) .app-tabbar{display:none;}
  body:has(.pd-sticky-bar) .app-tabbar-spacer,body:has(.checkout-form) .app-tabbar-spacer{display:none;}
  .wa-float-btn{bottom:calc(76px + env(safe-area-inset-bottom)) !important;}
  body:has(.pd-sticky-bar) .wa-float-btn{bottom:calc(84px + env(safe-area-inset-bottom)) !important;}
  .pd-sticky-bar{padding-bottom:calc(10px + env(safe-area-inset-bottom));}
  .pwa-banner{bottom:calc(74px + env(safe-area-inset-bottom));}
  body:has(.pd-sticky-bar) .pwa-banner,body:has(.checkout-form) .pwa-banner{bottom:calc(84px + env(safe-area-inset-bottom));}
  /* an installed app has no browser chrome: extend the header under the status bar */
  .pwa-standalone header{padding-top:env(safe-area-inset-top);}
  .pwa-standalone .header-main{padding-top:8px;}

}
@keyframes appFade{from{opacity:.4}to{opacity:1}}

/* ===== App-style mobile chrome: slim app bar, chip categories, compact footer ===== */
@media(max-width:768px){
  /* one-row app bar: logo · search · wishlist (account/cart live in the bottom tabs) */
  .header-main{flex-wrap:nowrap !important;align-items:center;gap:9px;padding:8px 12px !important;}
  .header-main .logo{flex-shrink:0;}
  .logo-badge{padding:3px 7px !important;border-radius:9px;}
  .logo-img{height:30px !important;}
  .header-main .search-bar{flex:1;min-width:0;width:auto !important;order:0 !important;margin:0 !important;height:40px;border-radius:20px !important;}
  .header-main .search-bar select{display:none !important;}
  .header-main .search-bar input{font-size:16px;padding-left:14px;min-width:0;}
  .header-icons{margin-left:0 !important;flex-shrink:0;}
  .header-icons .account-dropdown-wrap{display:none !important;}
  .header-icons .icon-item:has(.icon-cart){display:none;}
  body:has(.pd-sticky-bar) .header-icons .icon-item:has(.icon-cart),body:has(.checkout-form) .header-icons .icon-item:has(.icon-cart){display:flex;}
  /* categories as swipeable chips */
  .cat-nav{background:var(--forest-2);}
  .cat-nav .wrap{gap:7px;padding:8px 12px !important;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .cat-nav .wrap::-webkit-scrollbar{display:none;}
  .cat-nav a{padding:6px 14px !important;border-radius:16px;background:rgba(255,255,255,.09);opacity:1;font-size:12.5px;}
  .cat-nav a::after{display:none;}
  .cat-nav a.all-cat{display:none;}
  .cat-nav::before,.cat-nav::after{display:none;}
  .pd-breadcrumb,.breadcrumb{display:none;}
  /* footer: policies/contact only, no newsletter/payment strips */
  footer>.wrap:first-child,footer .foot-payments{display:none !important;}
  footer .foot-grid{padding-top:22px !important;}
  /* native-app feel */
  img,a{-webkit-touch-callout:none;-webkit-user-drag:none;}
  input,select,textarea{font-size:16px;}
  .btn,.btn-cart-quick,.prod-card,.cat-tile,.section-card a{transition:transform .12s ease;}
  .btn:active,.btn-cart-quick:active,.prod-card:active{transform:scale(.97);}
  .flash-wrap{position:fixed;top:calc(64px + env(safe-area-inset-top));left:10px;right:10px;z-index:80;pointer-events:none;}
  .flash-wrap .flash{box-shadow:0 8px 22px rgba(0,0,0,.2);border-radius:12px;pointer-events:auto;}
}

/* ===== Offers page: compact coupon tiles ===== */
.offers-h{font-size:19px;margin-bottom:12px;display:flex;align-items:center;gap:10px;}
.offer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-bottom:24px;}
.offer-tile{background:var(--card);border:1px dashed var(--gold);border-radius:12px;padding:11px 13px;display:flex;flex-direction:column;gap:9px;min-width:0;}
.offer-tile-top{display:flex;align-items:center;gap:10px;}
.offer-tile-ico{width:30px;height:30px;border-radius:50%;background:var(--forest);color:var(--gold);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0;}
.offer-tile-val{font-size:16px;font-weight:800;color:var(--forest);line-height:1.15;}
.offer-tile-sub{font-size:11px;color:var(--sub);line-height:1.3;margin-top:2px;}
.offer-tile-code{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:var(--tint);border:1px solid var(--border);border-radius:8px;padding:6px 10px;cursor:pointer;font-family:inherit;}
.offer-tile-code b{font-family:monospace;font-size:13px;letter-spacing:1px;color:var(--brass);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.offer-tile-code em{font-style:normal;font-size:10.5px;font-weight:700;color:var(--forest);flex-shrink:0;}
.offer-tile-code.copied{background:#e6f3ea;border-color:var(--ok);}
@media(max-width:768px){
  .offers-h{font-size:17px;}
  .offer-grid{grid-template-columns:1fr;gap:10px;}
}
