/* SHAHAZ Grocery Market — fresh, warm, everyday marketplace identity. */
.shz-grocery-world{--gm-green:#169447;--gm-lime:#74bd38;--gm-orange:#f58a18;--gm-red:#e84b4b;--gm-yellow:#f3c94b;--gm-plum:#8d286d;--gm-ink:#27302a;--gm-muted:#727b73;--gm-paper:#fffefa;--gm-line:#e5e7df;background:linear-gradient(180deg,#fffdf6 0%,#f8fff6 48%,#fffaf2 100%);color:var(--gm-ink);min-height:100vh;overflow:hidden}
.shz-grocery-world *{box-sizing:border-box}.shz-grocery-world a{text-decoration:none;color:inherit}
.shz-grocery-hero{display:flex;justify-content:space-between;gap:12px;padding:17px 13px 15px;background:linear-gradient(135deg,#124d35 0%,#177c45 52%,#8e9d28 100%);color:#fff;position:relative;overflow:hidden}.shz-grocery-hero:after{content:"";position:absolute;right:-45px;bottom:-70px;width:205px;height:205px;border:30px solid rgba(255,255,255,.12);border-radius:50%}.shz-grocery-hero-copy{position:relative;z-index:2;min-width:0}.shz-grocery-kicker{font-size:9px;font-weight:950;letter-spacing:.14em;color:#f6e7a6}.shz-grocery-hero h1{margin:4px 0 5px;font-size:24px;line-height:1.08}.shz-grocery-hero p{margin:0;max-width:450px;color:#eff9ed;font-size:11px;line-height:1.48}.shz-grocery-hero-pills{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.shz-grocery-hero-pills span{padding:5px 7px;border:1px solid rgba(255,255,255,.35);border-radius:999px;background:rgba(255,255,255,.12);font-size:7px;font-weight:900}.shz-grocery-basket-art{position:relative;flex:0 0 94px;height:94px;align-self:center;z-index:2}.shz-grocery-basket-art:before{content:"";position:absolute;left:13px;top:32px;width:68px;height:45px;border:3px solid #f6d36a;border-top:0;border-radius:8px 8px 20px 20px;transform:skew(-7deg)}.shz-grocery-basket-art span{position:absolute;left:21px;top:19px;width:46px;height:38px;border:3px solid #fff4c9;border-bottom:0;border-radius:28px 28px 0 0}.shz-grocery-basket-art i,.shz-grocery-basket-art b{position:absolute;border-radius:50%}.shz-grocery-basket-art i{width:22px;height:22px;right:3px;top:4px;background:#e84b4b;border:3px solid #ffd8d0}.shz-grocery-basket-art b{width:24px;height:24px;left:2px;bottom:5px;background:#74bd38;border:3px solid #e8ffcf}
.shz-grocery-panel{padding:13px 10px;background:rgba(255,255,255,.87);border-bottom:1px solid #edf0e8}.shz-grocery-section-head{display:flex;align-items:end;justify-content:space-between;gap:8px;margin-bottom:9px}.shz-grocery-section-head>div{min-width:0}.shz-grocery-section-head span:first-child{display:block;font-size:8px;font-weight:950;letter-spacing:.14em;color:#8d286d}.shz-grocery-section-head h2{margin:2px 0 0;font-size:19px;line-height:1.12}.shz-grocery-section-head>a,.shz-grocery-scroll-note,.shz-grocery-count{font-size:9px;font-weight:900;color:#169447;white-space:nowrap}.shz-grocery-chip,.shz-grocery-deal-pill{padding:6px 9px;border-radius:999px;border:1px solid #ead7a3;background:#fff8df;color:#8b6512;font-size:8px;font-weight:950;white-space:nowrap}
.shz-grocery-context{background:linear-gradient(135deg,#fff9e7,#effbea)}.shz-grocery-context-card{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1.5px solid #c8dfbd;border-radius:14px;background:#fff;box-shadow:inset 0 1px 0 #fff}.shz-grocery-context-card img{width:58px;height:58px;border-radius:11px;object-fit:cover;border:1px solid #e0e8dc}.shz-grocery-context-card b{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shz-grocery-context-card span{display:block;margin-top:2px;font-size:8px;color:#7a827b;line-height:1.3}.shz-grocery-context-card strong{display:block;margin-top:3px;color:#169447;font-size:12px}.shz-grocery-small-cta{padding:7px 8px;border-radius:9px;background:linear-gradient(135deg,#169447,#74bd38);color:#fff!important;font-size:9px;font-weight:900}
.shz-grocery-rail{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(148px,43vw);gap:8px;overflow-x:auto;padding:1px 1px 4px;scroll-snap-type:x proximity;scrollbar-width:none}.shz-grocery-rail::-webkit-scrollbar{display:none}.shz-grocery-rail .shz-grocery-product-card{scroll-snap-align:start}
.shz-grocery-category-panel{background:#fbfff7}.shz-grocery-category-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shz-grocery-category-card{min-height:80px;border-radius:15px;padding:11px;position:relative;overflow:hidden;border:1.5px solid #d9e2d4;background:#fff;display:flex;flex-direction:column;justify-content:flex-end}.shz-grocery-category-card:before{content:"";position:absolute;width:78px;height:78px;border-radius:50%;right:-25px;top:-24px;background:rgba(255,255,255,.42)}.shz-grocery-category-card span{font-size:14px;font-weight:950;position:relative;z-index:1}.shz-grocery-category-card small{font-size:8px;color:#69726b;position:relative;z-index:1;margin-top:2px}.shz-grocery-category-card b{position:absolute;right:9px;bottom:8px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:#fff;border:1px solid rgba(255,255,255,.9);font-size:16px}.shz-grocery-category-card.fresh{background:linear-gradient(135deg,#ecfae7,#dff3cf);border-color:#a8d58c}.shz-grocery-category-card.fresh b{color:#169447}.shz-grocery-category-card.pantry{background:linear-gradient(135deg,#fff5d9,#ffe7ad);border-color:#edca76}.shz-grocery-category-card.pantry b{color:#b47710}.shz-grocery-category-card.snack{background:linear-gradient(135deg,#fff0e1,#ffd9bf);border-color:#eeb18a}.shz-grocery-category-card.snack b{color:#e06b1a}.shz-grocery-category-card.drink{background:linear-gradient(135deg,#e8f8ff,#ccecff);border-color:#9ccce4}.shz-grocery-category-card.drink b{color:#167da8}.shz-grocery-category-card.home{background:linear-gradient(135deg,#f2edff,#e4ddff);border-color:#c3b5e7}.shz-grocery-category-card.home b{color:#7651b4}.shz-grocery-category-card.care{background:linear-gradient(135deg,#fff0f6,#ffd9e9);border-color:#e9a7c4}.shz-grocery-category-card.care b{color:#c03c78}
.shz-grocery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.shz-grocery-product-card{min-width:0;overflow:hidden;background:#fff;position:relative;border-radius:16px;transition:transform .18s ease}.shz-grocery-product-card.style-1{border:1.5px solid #169447;box-shadow:0 2px 0 #bce2ad}.shz-grocery-product-card.style-2{border:1px solid #f0a02a;box-shadow:inset 0 0 0 1px #fff0c9}.shz-grocery-product-card.style-3{border:1.5px solid #e84b4b;box-shadow:0 2px 0 #f4b9b9;border-radius:12px 18px 12px 18px}.shz-grocery-product-card.style-4{border:2px solid #74bd38;box-shadow:inset 0 0 0 1px #eff8e5;border-radius:18px 12px 18px 12px}.shz-grocery-product-card.style-5{border:1.5px solid #8d286d;box-shadow:0 2px 0 #e5b5d6;border-radius:12px 12px 18px 18px}.shz-grocery-product-card:hover{transform:translateY(-2px)}
.shz-world-media{display:block;position:relative;background:#f7faf5}.shz-world-media img{display:block;width:100%;aspect-ratio:1/1;object-fit:cover}.shz-world-sale-badge{position:absolute;left:6px;top:6px;padding:4px 6px;border-radius:7px;background:#e84b4b;color:#fff;font-size:8px;font-weight:950}.shz-world-card-mark{position:absolute;right:6px;top:6px;padding:4px 6px;border-radius:999px;background:rgba(255,255,255,.94);color:#169447;font-size:7px;font-weight:950;border:1px solid rgba(22,148,71,.24)}.shz-world-card-body{padding:7px 7px 0}.shz-world-card-proof{display:flex;justify-content:space-between;gap:4px;align-items:center;font-size:7px;color:#777f78;white-space:nowrap}.shz-world-card-proof span{color:#169447}.shz-world-card-proof b{font-size:6px;color:#777f78;overflow:hidden;text-overflow:ellipsis}.shz-world-card-title{display:block;margin-top:4px;font-size:11px;line-height:1.2;min-height:27px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.shz-world-price{display:flex;align-items:baseline;gap:5px;margin-top:4px;color:#169447;font-size:14px;font-weight:950;line-height:1.1}.shz-world-price del{color:#8b918c;font-size:8px;font-weight:700}.shz-world-card-cta{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:6px;padding:7px 5px;border-top:1px solid #edf1eb;font-size:10px;font-weight:950;color:#fff!important;background:linear-gradient(135deg,#169447,#74bd38)}.shz-world-card-cta span{font-size:14px}.shz-grocery-product-card.style-2 .shz-world-card-cta{background:linear-gradient(135deg,#f58a18,#f0b82f)}.shz-grocery-product-card.style-3 .shz-world-card-cta{background:linear-gradient(135deg,#e84b4b,#d66a42)}.shz-grocery-product-card.style-5 .shz-world-card-cta{background:linear-gradient(135deg,#8d286d,#c24c88)}
.shz-grocery-grid--deals .shz-grocery-product-card:nth-child(2n){transform:translateY(5px)}.shz-grocery-grid--deals .shz-grocery-product-card:nth-child(3n){transform:translateY(-2px)}.shz-grocery-buy-again{background:linear-gradient(180deg,#fffaf0,#f6fff4)}.shz-grocery-popular{background:linear-gradient(180deg,#f5fff0,#fff)}.shz-grocery-trust{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:11px 6px;background:#164c34;color:#eff8e9;text-align:center}.shz-grocery-trust span{font-size:7px;line-height:1.25}
@media(min-width:768px){.shz-grocery-world{max-width:760px;margin:0 auto}.shz-grocery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.shz-grocery-hero h1{font-size:30px}.shz-grocery-rail{grid-auto-columns:190px}.shz-grocery-category-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:480px){.shz-grocery-hero{padding:15px 10px}.shz-grocery-hero h1{font-size:22px}.shz-grocery-basket-art{transform:scale(.86);transform-origin:right center;margin-left:-8px}.shz-grocery-panel{padding-inline:8px}.shz-grocery-grid{gap:7px}.shz-world-card-body{padding-inline:6px}.shz-world-card-title{font-size:10px}.shz-world-price{font-size:12px}.shz-world-card-cta{font-size:9px;padding-block:6px}}
@media(prefers-reduced-motion:no-preference){.shz-grocery-product-card,.shz-grocery-category-card{animation:groceryIn .45s ease both}@keyframes groceryIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}}
body.shahaz-grocery-market-world-page .shahaz-footer-destination-header{position:sticky;top:0;z-index:50}
/* ZIP-158 responsive/feed hardening. */
.shz-grocery-world .shz-world-empty{grid-column:1/-1;margin:0;padding:14px 10px;border:1px dashed #cbdcc3;border-radius:12px;background:#fff;color:#727b73;text-align:center;font-size:11px;line-height:1.45}
.shz-grocery-world .shz-grocery-grid.is-empty{display:grid;min-height:0}
.shz-grocery-world .shz-grocery-rail.is-empty{display:block;min-height:0}
@media(min-width:1024px){.shz-grocery-world{max-width:1180px}.shz-grocery-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.shz-grocery-rail{grid-auto-columns:220px}.shz-grocery-category-grid{grid-template-columns:repeat(6,1fr)}}
.shz-grocery-world{min-height:0}

/* ZIP-176: Fashion product-card action row — canonical Cart / Buy Now / Wishlist controls. */

/* ZIP-176: Fashion product-card action row — canonical Cart / Buy Now / Wishlist controls. */
.shz-grocery-product-card .shz-world-card-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(34px,40px);gap:5px;align-items:stretch;margin-top:7px;padding:0 0 7px}.shz-grocery-product-card .shz-world-purchase-form{margin:0;min-width:0}.shz-grocery-product-card .shz-world-action,.shz-grocery-product-card button.shahaz-p-wishlist{position:relative!important;top:auto!important;right:auto!important;left:auto!important;bottom:auto!important;width:100%!important;height:100%!important;min-height:32px;margin:0!important;padding:6px 5px!important;border-radius:10px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:2px;box-sizing:border-box;cursor:pointer;appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;font:inherit;font-size:9px!important;font-weight:950;line-height:1!important;text-decoration:none!important;transition:transform .16s ease,filter .16s ease,box-shadow .16s ease;background-image:none!important}.shz-grocery-product-card .shz-world-action svg{width:13px;height:13px;flex:0 0 13px;display:block}.shz-grocery-product-card .shz-world-action span{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shz-grocery-product-card .shz-world-action--cart{color:#fff!important;background:linear-gradient(135deg,#169447,#0d7438)!important;border:1px solid #169447!important;box-shadow:0 2px 0 #0b6130}.shz-grocery-product-card .shz-world-action--buy{color:#3d2700!important;background:linear-gradient(135deg,#ffd95a,#f0a52b)!important;border:1px solid #d59b18!important;box-shadow:0 2px 0 #b87b08}.shz-grocery-product-card button.shahaz-p-wishlist{color:#8d286d!important;background:#fff!important;border:1px solid #8d286d!important;box-shadow:0 2px 0 #e5b5d6}.shz-grocery-product-card button.shahaz-p-wishlist svg{width:18px!important;height:18px!important;flex:0 0 18px}.shz-grocery-product-card .shz-world-action:hover,.shz-grocery-product-card button.shahaz-p-wishlist:hover{filter:brightness(1.04);transform:translateY(-1px)}.shz-grocery-product-card .shz-world-action:active,.shz-grocery-product-card button.shahaz-p-wishlist:active{transform:translateY(1px) scale(.985)}.shz-grocery-product-card button.shahaz-p-wishlist.shahaz-p-wishlist-active{background:linear-gradient(135deg,#8d286d,#c24c88)!important;color:#fff!important;border-color:#8d286d!important}.shz-grocery-product-card button.shahaz-p-wishlist:focus-visible,.shz-grocery-product-card .shz-world-action:focus-visible{outline:2px solid #f0b82f;outline-offset:1px}@media(min-width:481px){.shz-grocery-product-card .shz-world-action,.shz-grocery-product-card button.shahaz-p-wishlist{min-height:34px;font-size:10px!important}.shz-grocery-product-card .shz-world-action svg{width:14px;height:14px;flex-basis:14px}.shz-grocery-product-card button.shahaz-p-wishlist svg{width:19px!important;height:19px!important}}

/* ZIP-178: Homepage-selected product replaces the decorative hero graphic.
 * The same canonical Marketplace World card renderer/actions are reused.
 * The standalone CONTEXT PRESERVED block is intentionally removed. */
.shz-grocery-hero-context{position:relative;z-index:3;flex:0 1 52%;min-width:0;display:flex;align-items:center;justify-content:flex-end}
.shz-grocery-hero-context>.shz-grocery-product-card{width:100%;max-width:340px;margin:0;background:#fff}
.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-media img{aspect-ratio:1.18/1}
.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-card-body{padding:6px 7px 0}
.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-card-proof{font-size:7px}
.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-card-title{font-size:10px;min-height:24px}
.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-price{font-size:13px}
.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-card-actions{margin-top:5px;padding-bottom:6px}
@media(max-width:480px){.shz-grocery-hero{align-items:stretch}.shz-grocery-hero-copy{flex:1 1 48%;min-width:0}.shz-grocery-hero-context{flex:0 1 52%}.shz-grocery-hero-context>.shz-grocery-product-card{max-width:none}.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-media img{aspect-ratio:1/1}.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-card-title{font-size:9px}.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-price{font-size:11px}.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-action,.shz-grocery-hero-context>.shz-grocery-product-card button.shahaz-p-wishlist{min-height:29px;padding:5px 3px!important;font-size:7px!important;gap:3px}.shz-grocery-hero-context>.shz-grocery-product-card .shz-world-action svg{width:11px;height:11px;flex-basis:11px}.shz-grocery-hero-context>.shz-grocery-product-card button.shahaz-p-wishlist svg{width:15px!important;height:15px!important;flex-basis:15px!important}}


/* ZIP-213 — Independent Marketplace Entry Point for Grocery Market. */
.shz-grocery-entry{position:relative;width:100%;margin:0;padding:clamp(7px,1vw,12px) 0;overflow:hidden;isolation:isolate}.shz-grocery-entry::before{content:"";position:absolute;top:18px;right:0;bottom:18px;left:0;z-index:-1;background:linear-gradient(115deg,#ff5aa8 0%,#ff7fba 30%,#ffd84d 52%,#ff8bc6 76%,#ff5aa8 100%);background-size:220% 100%;animation:shzGroceryEntryBackground 14s ease-in-out infinite}.shz-grocery-entry__track-wrap{position:relative;overflow:hidden;padding:clamp(4px,1vw,8px) 0}.shz-grocery-entry__track{display:flex;align-items:stretch;gap:clamp(6px,1vw,12px);width:100%;overflow-x:auto;overflow-y:visible;scrollbar-width:none;padding:clamp(8px,1.2vw,13px) 0;overscroll-behavior-x:contain}.shz-grocery-entry__track::-webkit-scrollbar{display:none}.shz-grocery-entry__card{position:relative;flex:0 0 calc((100% - (4 * clamp(6px,1vw,12px))) / 5);min-width:0;aspect-ratio:.78/1;text-decoration:none;scroll-snap-align:center;transform:scale(.94);transform-origin:center;transition:transform .5s cubic-bezier(.2,.8,.2,1),filter .5s,opacity .5s;z-index:1;opacity:.94}.shz-grocery-entry__card:hover,.shz-grocery-entry__card:focus-visible{transform:scale(1.03);z-index:4;opacity:1}.shz-grocery-entry__media{position:relative;display:block;width:100%;height:82%;overflow:hidden;border:1px solid transparent;border-radius:18px 10px 18px 12px;background:linear-gradient(145deg,#fff7fb,#f7e8ff);box-shadow:0 8px 20px rgba(70,0,75,.13),inset 0 0 0 1px rgba(255,255,255,.72)}.shz-grocery-entry__card--2 .shz-grocery-entry__media{border-radius:10px 20px 12px 18px}.shz-grocery-entry__card--3 .shz-grocery-entry__media{border-radius:20px 12px 18px 8px}.shz-grocery-entry__card--5 .shz-grocery-entry__media{border-radius:8px 18px 10px 22px}.shz-grocery-entry__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.shz-grocery-entry__no-image{position:absolute;inset:0;display:grid;place-items:center;font-size:clamp(22px,4vw,42px);font-weight:1000;color:#fff;background:linear-gradient(135deg,#169447,#65b92e)}.shz-grocery-entry__shine{position:absolute;inset:-30% 0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 48%,transparent 61%);transform:translateX(-120%);animation:shzGroceryEntryShine 5.5s ease-in-out infinite}.shz-grocery-entry__live-border{position:absolute;inset:0;border:1px solid transparent;border-radius:inherit;background:linear-gradient(120deg,#ff087f,#ffd84d,#169447,#ff087f) border-box;mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0);mask-composite:exclude;opacity:.95;animation:shzGroceryEntryBorder 4.2s linear infinite}.shz-grocery-entry__label{position:relative;display:flex;align-items:center;justify-content:center;height:18%;padding:3px 2px;text-align:center;overflow:hidden}.shz-grocery-entry__label strong{display:block;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(8px,1.35vw,13px);font-weight:1000;line-height:1.1;color:#65005f;text-shadow:0 1px 0 #fff}.shz-grocery-entry__card:nth-child(2n) .shz-grocery-entry__label strong{color:#169447}.shz-grocery-entry__card:nth-child(3n) .shz-grocery-entry__label strong{color:#8d286d}@keyframes shzGroceryEntryShine{0%,60%,100%{transform:translateX(-120%)}75%{transform:translateX(120%)}}@keyframes shzGroceryEntryBorder{0%{filter:hue-rotate(0deg)}100%{filter:hue-rotate(360deg)}}@keyframes shzGroceryEntryBackground{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}@media(max-width:390px){.shz-grocery-entry__track{gap:6px}.shz-grocery-entry__card{flex-basis:calc((100% - (4 * 6px)) / 5)}.shz-grocery-entry__media{border-radius:14px 8px 14px 10px}.shz-grocery-entry__label strong{font-size:8px}}@media(min-width:768px){.shz-grocery-entry__card{flex-basis:calc((100% - (5 * clamp(7px,1vw,12px))) / 6);aspect-ratio:.82/1}.shz-grocery-entry__media{height:82%}}/* ZIP-216 — Product-card mobile overflow safety. Keep the existing world colors/design. */
@media(max-width:480px){.shz-grocery-product-card .shz-world-card-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 36px;gap:4px;margin-top:6px;padding-bottom:6px}.shz-grocery-product-card .shz-world-action{min-width:0;padding:5px 3px!important;font-size:8px!important;gap:2px}.shz-grocery-product-card .shz-world-action svg{width:12px;height:12px;flex-basis:12px}.shz-grocery-product-card button.shahaz-p-wishlist{min-width:0;width:100%!important;min-height:30px;padding:4px 2px!important}.shz-grocery-product-card button.shahaz-p-wishlist svg{width:16px!important;height:16px!important;flex-basis:16px!important}}

@media(prefers-reduced-motion:reduce){.shz-grocery-entry,.shz-grocery-entry::before,.shz-grocery-entry__card,.shz-grocery-entry__shine,.shz-grocery-entry__live-border{animation:none;transition:none}}

/* ZIP-217 — Entry Point carousel: 3-second centered rotation + middle-card emphasis. */
.shz-grocery-entry{margin-top:-10px;margin-bottom:-20px}
.shz-grocery-entry__track{scroll-behavior:smooth;scroll-snap-type:x mandatory}
.shz-grocery-entry__card{will-change:transform;transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .55s,opacity .55s;}
.shz-grocery-entry__card.is-focus{transform:scale(1.05);z-index:6;opacity:1;filter:saturate(1.04) brightness(1.02)}
.shz-grocery-entry__card:not(.is-focus){transform:scale(.94);opacity:.9}
.shz-grocery-entry__card:focus-visible{outline:2px solid #ffd84d;outline-offset:2px}
.shz-grocery-product-card .shz-world-card-body{min-width:0;overflow:hidden}
.shz-grocery-product-card .shz-world-card-title{overflow-wrap:anywhere;word-break:break-word}
.shz-grocery-product-card .shz-world-card-actions{min-width:0;overflow:hidden}
.shz-grocery-product-card .shz-world-action span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.shz-grocery-product-card .shz-world-card-proof,
.shz-grocery-product-card .shz-world-card-mark{display:none!important}
@media(max-width:480px){
  .shz-grocery-product-card .shz-world-card-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(32px,36px);gap:4px}
  .shz-grocery-product-card .shz-world-action{min-width:0;padding-inline:3px!important;gap:2px!important;font-size:8px!important;white-space:nowrap}
  .shz-grocery-product-card .shz-world-action svg{flex:0 0 12px;width:12px;height:12px}
  .shz-grocery-product-card button.shahaz-p-wishlist{min-width:0;width:100%!important;padding-inline:2px!important}
}
@media(prefers-reduced-motion:reduce){.shz-grocery-entry__card{transition:none;transform:none!important}}

/* ZIP-218: Remove touch/focus highlight and text shadow from Grocery World cards only. */
.shz-grocery-product-card,
.shz-grocery-product-card a,
.shz-grocery-product-card button{ -webkit-tap-highlight-color:transparent; }
.shz-grocery-product-card a:focus,
.shz-grocery-product-card a:active,
.shz-grocery-product-card:focus,
.shz-grocery-product-card:focus-within{ outline:none!important; box-shadow:none!important; }
.shz-grocery-product-card .shz-world-card-body,
.shz-grocery-product-card .shz-world-card-body *{ text-shadow:none!important; }
.shz-grocery-entry__card,
.shz-grocery-entry__card:focus,
.shz-grocery-entry__card:active{ -webkit-tap-highlight-color:transparent; outline:none!important; box-shadow:none!important; }
.shz-grocery-entry__label strong{ text-shadow:none!important; }
/* ZIP-219 — Reduce vertical gaps around the Grocery Deals product-card section without changing card dimensions. */
.shz-grocery-world .shz-grocery-deals-section{margin-top:-10px;margin-bottom:-20px}


/* ZIP-220 — Restore the full world product-card footprint; keep the existing card grid and visual language intact. */
.shz-grocery-product-card {
  width:100%;
  max-width:none;
  min-width:0;
  box-sizing:border-box;
}
.shz-grocery-product-card .shz-world-media,
.shz-grocery-product-card .shz-world-card-body,
.shz-grocery-product-card .shz-world-card-actions {
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
.shz-grocery-product-card .shz-world-media img {
  width:100%;
  max-width:100%;
  display:block;
}

/* ZIP-220 — Marketplace Entry Point parity with the approved homepage entry cards.
 * Scoped to Grocery Market only. No shared/global selectors. */
.shz-grocery-world .shz-grocery-entry{margin-top:-23px;margin-right:0;margin-bottom:-21px;margin-left:0;padding:clamp(5px,1vw,12px) 0}
.shz-grocery-world .shz-grocery-entry__track-wrap{padding:clamp(5px,1vw,10px) 0}
.shz-grocery-world .shz-grocery-entry__track{gap:clamp(6px,1vw,12px);padding:clamp(10px,1.5vw,16px) 0;scroll-snap-type:x mandatory}
.shz-grocery-world .shz-grocery-entry__card{flex:0 0 calc((100% - (5 * clamp(6px,1vw,12px))) / 6);aspect-ratio:.78/1;transform:scale(.9);opacity:.88;filter:saturate(.94);transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .55s,opacity .55s}
.shz-grocery-world .shz-grocery-entry__card.is-focus{transform:scale(1.12);opacity:1;filter:saturate(1.08);z-index:5}
.shz-grocery-world .shz-grocery-entry__card:not(.is-focus){transform:scale(.9);opacity:.88}
.shz-grocery-world .shz-grocery-entry__media{height:calc(100% - 18%)}
.shz-grocery-world .shz-grocery-entry__label{height:18%}
.shz-grocery-world .shz-grocery-entry__label strong{text-shadow:none}
@media(max-width:390px){.shz-grocery-world .shz-grocery-entry__track{gap:6px}.shz-grocery-world .shz-grocery-entry__card{flex-basis:calc((100% - (4 * 6px)) / 5)}.shz-grocery-world .shz-grocery-entry__label strong{font-size:7px}}
@media(min-width:768px){.shz-grocery-world .shz-grocery-entry__card{aspect-ratio:.82/1}.shz-grocery-world .shz-grocery-entry__media{height:82%}.shz-grocery-world .shz-grocery-entry__label{height:18%}}
@media(prefers-reduced-motion:reduce){.shz-grocery-world .shz-grocery-entry__card{transition:none}.shz-grocery-world .shz-grocery-entry__shine,.shz-grocery-world .shz-grocery-entry__live-border,.shz-grocery-world .shz-grocery-entry,.shz-grocery-world .shz-grocery-entry::before{animation:none!important}}

/* ================================================================
 * Grocery Market Horizontal Banner Engine
 * Replaces the previous .shz-grocery-hero category header. Fixed
 * layout height at each breakpoint (see the responsive rule below)
 * so the .shz-grocery-entry section immediately after it can never
 * be overlapped or pushed by variable text/image content — no
 * absolute positioning, no negative margins, no z-index tricks;
 * this section sits in plain normal document flow.
 *
 * Heights are derived from the PREVIOUS .shz-grocery-hero's own
 * rendered box model (padding + content stack, computed from its
 * existing CSS): approx. 158px at mobile (<768px) and approx. 177px
 * at desktop (>=768px, this project's existing "desktop" breakpoint
 * for these Market World pages) — so per the requested rule, Mobile
 * = 158 - 25 = 133px, Desktop = 177 + 25 = 202px. Tablet intentionally
 * has no dedicated breakpoint of its own here, matching how the rest
 * of this page's existing responsive CSS already works (no separate
 * tablet rule exists for the old hero either) — it inherits the base
 * (mobile-authored) rules exactly as the project's established
 * pattern already does, so no new breakpoint behavior is introduced.
 * ================================================================ */
.shz-grocery-banner{
	position:relative;
	width:100%;
	height:133px;
	overflow:hidden;
	isolation:isolate;
	display:flex;
	align-items:center;
	/* Safe fallback background (identical palette to the previous hero)
	 * so an unconfigured banner is never a blank/broken area. */
	background:linear-gradient(135deg,#124d35 0%,#177c45 52%,#8e9d28 100%);
}
.shz-grocery-banner__bg{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
	z-index:0;
}
.shz-grocery-banner__overlay{
	position:absolute;
	inset:0;
	z-index:1;
	background:linear-gradient(90deg,rgba(15,20,16,.46) 0%,rgba(15,20,16,.2) 55%,rgba(15,20,16,0) 88%);
}
.shz-grocery-banner--no-image .shz-grocery-banner__overlay{ background:none; }
.shz-grocery-banner__text{
	position:relative;
	z-index:2;
	width:100%;
	max-width:100%;
	padding:0 18px;
	box-sizing:border-box;
	display:flex;
	flex-direction:column;
	overflow:hidden;
}
.shz-grocery-banner__line{
	display:block;
	max-width:100%;
	overflow:hidden;
	text-overflow:ellipsis;
	white-space:nowrap;
}

/* --- Base typography presets (admin-selectable "Default Font / Style" —
 * used as the fallback for any text that has no per-selection font
 * override; see the shz-gb-f-* span presets further below for the actual
 * per-word/per-phrase override system). All 8 are built from the 3 font
 * families already loaded site-wide (Inter, Playfair Display, Dancing
 * Script) — no new/unreliable font dependency added. --- */
.shz-grocery-banner__text{
	font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
	font-weight:800;
	font-size:clamp(18px,4.2vw,30px);
	line-height:1.15;
	letter-spacing:-.01em;
}
.shz-grocery-banner--luxury_sans .shz-grocery-banner__text{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:500;letter-spacing:0}
.shz-grocery-banner--bold_modern .shz-grocery-banner__text{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:800;letter-spacing:-.01em}
.shz-grocery-banner--elegant_script .shz-grocery-banner__text{font-family:'Dancing Script',cursive;font-weight:700;font-size:clamp(22px,5vw,38px)}
.shz-grocery-banner--luxury_serif .shz-grocery-banner__text,
.shz-grocery-banner--classic_luxury .shz-grocery-banner__text{font-family:'Playfair Display',Georgia,serif;font-weight:700;letter-spacing:0}
.shz-grocery-banner--fashion_editorial .shz-grocery-banner__text{font-family:'Playfair Display',Georgia,serif;font-weight:600;font-style:italic;letter-spacing:.03em}
.shz-grocery-banner--handwritten .shz-grocery-banner__text{font-family:'Dancing Script',cursive;font-weight:600;font-size:clamp(22px,5vw,38px)}
.shz-grocery-banner--premium_display .shz-grocery-banner__text{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-size:clamp(15px,3.6vw,25px)}

/* --- Per-selection rich-text overrides (span-level; see
 * shahaz_grocery_banner_richtext_allowed_classes() — this is the exact,
 * complete, matching list the sanitizer permits, nothing more). Sizes are
 * relative (em) so they scale safely off whichever base font-size above
 * is active, on every breakpoint, without a fixed px value. --- */
.shz-gb-c-magenta{color:#f50087}
.shz-gb-c-gold{color:#c99725}
.shz-gb-c-white{color:#ffffff}
.shz-gb-c-red{color:#c8102e}
.shz-gb-c-cream{color:#fff3df}
.shz-gb-c-ink{color:#241922}

.shz-gb-s-sm{font-size:.7em}
.shz-gb-s-md{font-size:1em}
.shz-gb-s-lg{font-size:1.32em}
.shz-gb-s-xl{font-size:1.65em}

/* Per-selection font-weight controls. These are independent of color/size/font,
 * so each selected word or phrase can be thin, regular, semibold, bold or extra-bold. */
.shz-gb-w-light{font-weight:300}
.shz-gb-w-regular{font-weight:400}
.shz-gb-w-semibold{font-weight:600}
.shz-gb-w-bold{font-weight:700}
.shz-gb-w-extrabold{font-weight:800}

.shz-gb-f-luxury_sans{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:500;letter-spacing:0;font-style:normal}
.shz-gb-f-bold_modern{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:800;letter-spacing:-.01em;font-style:normal}
.shz-gb-f-elegant_script{font-family:'Dancing Script',cursive;font-weight:700;font-style:normal}
.shz-gb-f-luxury_serif{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-style:normal;letter-spacing:0}
.shz-gb-f-fashion_editorial{font-family:'Playfair Display',Georgia,serif;font-weight:600;font-style:italic;letter-spacing:.03em}
.shz-gb-f-handwritten{font-family:'Dancing Script',cursive;font-weight:600;font-style:normal}
.shz-gb-f-premium_display{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:800;letter-spacing:.1em;text-transform:uppercase;font-style:normal}
.shz-gb-f-classic_luxury{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-style:normal;letter-spacing:0}

.shz-gb-w-bold{font-weight:800}
.shz-gb-i{font-style:italic}

/* --- Per-selection geometry controls. These intentionally use relative
 * transforms/letter-spacing so the same admin content remains responsive
 * across mobile, tablet and desktop without hard-coded pixel typography. */
.shz-grocery-banner__text span[class*='shz-gb-']{display:inline-block;transform:scale(var(--shz-gb-scale-x,1),var(--shz-gb-scale-y,1));transform-origin:left center}
.shz-gb-x-narrow{--shz-gb-scale-x:.84}
.shz-gb-x-normal{--shz-gb-scale-x:1}
.shz-gb-x-wide{--shz-gb-scale-x:1.12}
.shz-gb-y-short{--shz-gb-scale-y:.86}
.shz-gb-y-normal{--shz-gb-scale-y:1}
.shz-gb-y-tall{--shz-gb-scale-y:1.16}
.shz-gb-k-tight{letter-spacing:-.035em}
.shz-gb-k-normal{letter-spacing:0}
.shz-gb-k-loose{letter-spacing:.035em}

/* Each rendered line owns its line box. This prevents a selected large/bold
 * span from changing the editor's inherited line-height and visually adding
 * an uncontrolled gap before the next line. The actual inter-line distance is
 * supplied only by the admin's .shz-grocery-banner__line margin-top value. */
.shz-grocery-banner__text{line-height:1!important}
.shz-grocery-banner__line{line-height:1!important;margin-bottom:0!important}

/* --- Text readability treatments (banner-level — how the whole text
 * block sits on the image; restrained, never a large box behind text) --- */
.shz-grocery-banner--treat-soft_shadow .shz-grocery-banner__text{text-shadow:0 2px 6px rgba(0,0,0,.35)}
.shz-grocery-banner--treat-strong_shadow .shz-grocery-banner__text{text-shadow:0 3px 10px rgba(0,0,0,.6),0 1px 3px rgba(0,0,0,.85)}
.shz-grocery-banner--treat-subtle_outline .shz-grocery-banner__text{text-shadow:-1px -1px 0 rgba(0,0,0,.45),1px -1px 0 rgba(0,0,0,.45),-1px 1px 0 rgba(0,0,0,.45),1px 1px 0 rgba(0,0,0,.45)}
.shz-grocery-banner--treat-soft_glow .shz-grocery-banner__text{text-shadow:0 0 14px rgba(255,255,255,.55),0 0 4px rgba(255,255,255,.35)}
.shz-grocery-banner--treat-premium_contrast .shz-grocery-banner__overlay{background:linear-gradient(90deg,rgba(10,12,10,.58) 0%,rgba(10,12,10,.32) 55%,rgba(10,12,10,0) 90%)}
.shz-grocery-banner--treat-premium_contrast .shz-grocery-banner__text{text-shadow:0 2px 8px rgba(0,0,0,.4)}
.shz-grocery-banner--treat-auto_readability .shz-grocery-banner__text{text-shadow:0 1px 3px rgba(0,0,0,.7),0 2px 10px rgba(0,0,0,.5),0 0 1px rgba(255,255,255,.6)}
/* --treat-none: intentionally no extra rule — the base color/font alone. */

@media(min-width:768px){
	.shz-grocery-world .shz-grocery-banner{ height:202px; }
}

/* ZIP-241 — Continuous marketplace visual bridge.
 * The approved category/deal layouts remain unchanged. Only the boundaries are
 * softened so the animated entry/header, Category area, and Deal Zone read as
 * one continuous visual surface on mobile, tablet, and desktop.
 */
.shz-grocery-world .shz-grocery-category-panel{
  position:relative;
  z-index:2;
  overflow:visible;
  border-bottom:0;
  isolation:isolate;
  background:
    linear-gradient(180deg,rgba(255,90,168,.24) 0%,rgba(255,255,255,0) 46px),
    linear-gradient(180deg,#fbfff7 0%,#fbfff7 68%,rgba(255,255,255,.92) 84%,rgba(255,255,255,.18) 100%);
}
.shz-grocery-world .shz-grocery-category-panel::before,
.shz-grocery-world .shz-grocery-category-panel::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  pointer-events:none;
  z-index:0;
}
.shz-grocery-world .shz-grocery-category-panel>*{position:relative;z-index:1}
.shz-grocery-world .shz-grocery-category-panel::before{
  top:-30px;
  height:62px;
  background:
    radial-gradient(ellipse at 50% 100%,rgba(255,90,168,.24) 0%,rgba(255,216,77,.14) 34%,rgba(255,255,255,0) 74%);
  filter:blur(8px);
  opacity:.9;
}
.shz-grocery-world .shz-grocery-category-panel::after{
  bottom:-34px;
  height:72px;
  background:
    radial-gradient(ellipse at 50% 0%,rgba(22,148,71,.17) 0%,rgba(243,201,75,.12) 30%,rgba(255,255,255,0) 74%);
  filter:blur(9px);
  opacity:.95;
  animation:shzGroceryCategoryFlow 8s ease-in-out infinite;
}
.shz-grocery-world .shz-grocery-deals-section{
  position:relative;
  z-index:1;
  border-top:0;
  background:
    linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.58) 24px,rgba(255,255,255,.94) 62px,rgba(255,255,255,.98) 92px);
}
@media (max-width:767px){
  .shz-grocery-world .shz-grocery-category-panel::before{top:-24px;height:54px}
  .shz-grocery-world .shz-grocery-category-panel::after{bottom:-30px;height:64px}
  .shz-grocery-world .shz-grocery-deals-section{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.62) 22px,rgba(255,255,255,.95) 58px,rgba(255,255,255,.98) 82px)}
}
@media (min-width:768px){
  .shz-grocery-world .shz-grocery-category-panel::before{top:-34px;height:70px}
  .shz-grocery-world .shz-grocery-category-panel::after{bottom:-42px;height:84px}
}
@media(prefers-reduced-motion:reduce){
  .shz-grocery-world .shz-grocery-category-panel::after{animation:none}
}
