/* Public shop */
.sh-sec{padding-top:34px}
.sh-bar{display:grid;gap:12px;margin-bottom:22px}
.sh-find{display:flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--line);border-radius:14px;padding:0 14px;max-width:520px;box-shadow:var(--sh)}
.sh-find i{color:#8A93A8}.sh-find input{border:0;outline:0;flex:1;padding:13px 0;font:600 15px "Plus Jakarta Sans",sans-serif;background:none;min-width:0}
.sh-find:focus-within{border-color:var(--brand)}
.sh-cats{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.sh-cats::-webkit-scrollbar{display:none}
.sh-cats button{flex:none;border:1.5px solid var(--line);background:#fff;border-radius:99px;padding:8px 14px;font:700 13px "Plus Jakarta Sans",sans-serif;color:#39425A;cursor:pointer;transition:.2s}
.sh-cats button em{font-style:normal;color:#8A93A8;margin-left:3px;font-weight:600}
.sh-cats button:hover{border-color:var(--brand);color:var(--brand-d)}
.sh-cats button.on{background:var(--brand-g);color:#fff;border-color:transparent;box-shadow:0 8px 18px rgba(244,34,34,.28)}.sh-cats button.on em{color:#FFD5D0}
.sh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.sh-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;transition:transform .28s,box-shadow .28s,border-color .28s}
.sh-card[hidden]{display:none}
.sh-card:hover{transform:translateY(-6px);box-shadow:0 24px 48px rgba(11,16,32,.14);border-color:rgba(244,34,34,.25)}
.sh-img{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#F3F4F9,#E9ECF5);display:grid;place-items:center;color:#B7C0D2;font-size:46px;overflow:hidden}
.sh-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.sh-card:hover .sh-img img{transform:scale(1.06)}
.sh-off{position:absolute;left:10px;top:10px;background:var(--brand-g);color:#fff;font:800 11.5px "Plus Jakarta Sans",sans-serif;padding:4px 10px;border-radius:99px}
.sh-bd{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1;gap:4px}
.sh-cat{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--brand-d)}
.sh-bd h3{font-size:16.5px;line-height:1.25}
.sh-br{font-size:12.5px;color:var(--mut);font-weight:600}
.sh-fit{font-size:12.5px;color:#168C3C;font-weight:700;display:flex;gap:5px;align-items:flex-start}
.sh-bd p{margin:2px 0;font-size:13px;color:var(--mut);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sh-sell{font-size:12px;color:var(--mut);margin-top:auto;padding-top:6px}.sh-sell b{color:var(--ink)}
.sh-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;padding-top:10px;border-top:1px solid #F0F1F6}
.sh-pr b{font-size:19px;font-weight:800;color:var(--ink)}.sh-pr s{margin-left:6px;color:#9AA3B8;font-size:13px}.sh-pr small{display:block;color:#C2570C;font-weight:700;font-size:11.5px}
.sh-buy{border:0;border-radius:12px;background:var(--brand-g);color:#fff;font:800 13.5px "Plus Jakarta Sans",sans-serif;padding:10px 16px;cursor:pointer;box-shadow:0 8px 18px rgba(244,34,34,.28);transition:.2s}
.sh-buy:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(244,34,34,.38)}
.sh-none{text-align:center;color:var(--mut);padding:30px 0}
.sh-sell-cta{display:flex;align-items:center;gap:16px;margin-top:34px;padding:18px 20px;border-radius:18px;background:linear-gradient(120deg,#0B1020,#1B1450 70%,#3A1030);color:#fff;flex-wrap:wrap}
.sh-sell-cta>i{font-size:30px;color:#FF8A7A}.sh-sell-cta div{flex:1;min-width:200px}.sh-sell-cta b{display:block;font-size:17px}.sh-sell-cta span{font-size:13.5px;color:#C6CEE4}
.sh-sell-cta a{background:#fff;color:var(--ink);font-weight:800;border-radius:12px;padding:11px 20px;font-size:14px}
.sh-modal{position:fixed;inset:0;z-index:300;background:rgba(7,10,21,.62);backdrop-filter:blur(3px);display:grid;place-items:center;padding:14px;overflow-y:auto}
.sh-modal[hidden]{display:none}
.sh-box{position:relative;width:min(480px,100%);max-height:calc(100vh - 28px);overflow-y:auto;background:#fff;border-radius:22px;padding:22px 20px 18px;box-shadow:0 40px 90px rgba(0,0,0,.4)}
.sh-sum{display:flex;gap:12px;align-items:center;margin:0 34px 14px 0}
.sh-th{width:62px;height:62px;border-radius:14px;background:#F0F2F8;display:grid;place-items:center;overflow:hidden;flex:none;color:#B7C0D2;font-size:26px}.sh-th img{width:100%;height:100%;object-fit:cover}
.sh-sum h3{font-size:17px}.sh-up{color:var(--mut);font-size:13px;font-weight:600}
.sh-qty{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;font-weight:700;font-size:14px}
.sh-qty div{display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;overflow:hidden}
.sh-qty button{width:40px;height:38px;border:0;background:#F6F7FB;font-size:20px;cursor:pointer}
.sh-qty input{width:46px;text-align:center;border:0;font:800 15px "Plus Jakarta Sans",sans-serif;outline:0;background:#fff}
.sh-chk{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1.5px solid var(--line);border-radius:14px;margin-bottom:14px;cursor:pointer;background:#FAFBFD}
.sh-chk input{margin-top:3px;width:18px;height:18px;accent-color:var(--brand)}.sh-chk b{display:block;font-size:14px}.sh-chk small{display:block;color:var(--mut);font-size:12.5px;line-height:1.4}
.sh-total{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px dashed #D5D9E6;margin-top:4px;font-weight:700}.sh-total b{font-size:22px}
.sh-go{width:100%;justify-content:center}
.sh-fine{text-align:center;color:var(--mut);font-size:12px;margin:8px 0 0}
.sh-done{text-align:center;padding:14px 4px 4px}.sh-done>i{font-size:54px;color:#16A34A}.sh-done h3{font-size:22px;margin:6px 0}.sh-done p{color:var(--mut)}
.sh-done .btn{margin:4px}
@media(max-width:1180px){.sh-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.sh-grid{grid-template-columns:repeat(2,1fr);gap:12px}.sh-bd{padding:11px 12px 13px}.sh-bd h3{font-size:15px}.sh-pr b{font-size:17px}.sh-buy{padding:9px 12px;font-size:12.5px}.sh-foot{flex-wrap:wrap}}
@media(max-width:380px){.sh-grid{grid-template-columns:1fr}}
.sh-done .btn.alt{background:#fff;color:var(--ink);border:1.5px solid var(--line);box-shadow:none}
.note[hidden],.sh-done[hidden],#shForm[hidden]{display:none}
/* nearby + delivery */
.sh-near{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 10px;font-size:13px}
.sh-locbtn{border:0;background:#F42222;color:#fff;font-weight:700;border-radius:99px;padding:8px 14px;cursor:pointer}.sh-locbtn.alt{background:rgba(127,127,127,.15);color:inherit}
.sh-nearon{font-weight:700;color:#168C3C}.sh-nearhint,.sh-nearmsg{opacity:.7}
.sh-near select{border:1px solid rgba(127,127,127,.35);border-radius:99px;padding:6px 10px;background:transparent;color:inherit;font-size:13px}
.sh-ar{opacity:.7;font-size:12px}.sh-km{background:#E7F7EC;color:#168C3C;font-weight:700;font-size:11.5px;border-radius:99px;padding:1px 8px;margin-left:4px;white-space:nowrap}
.sh-delv{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;background:rgba(127,127,127,.1);border-radius:12px;padding:9px 11px;margin:8px 0}.sh-delv i{margin-top:2px}
.sh-lines{font-size:13px;margin:8px 0 4px}.sh-lines>div{display:flex;justify-content:space-between;padding:2px 0}

/* speed promise */
.sh-promise{background:linear-gradient(90deg,#14182B,#252B45);color:#fff;padding:14px 0}
.sh-promise ul{list-style:none;margin:0;padding:0;display:flex;gap:10px 26px;flex-wrap:wrap;justify-content:center}
.sh-promise li{display:flex;align-items:center;gap:9px;font-size:13px;line-height:1.25}.sh-promise li i{font-size:20px;color:#FFB020}
.sh-promise li b{display:block;font-size:13.5px}.sh-promise li span{display:block;opacity:.7;font-size:11.5px}
.sh-pnote{margin:10px 0 0;text-align:center;font-size:12px;opacity:.75}
.sh-eta{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#667085;margin:4px 0 0;background:rgba(127,127,127,.1);border-radius:99px;padding:2px 9px}
.sh-eta.fast{background:#FFF1D6;color:#B45309}
.sh-promo-line{background:#FFF1D6;color:#92400E;border-radius:12px;padding:8px 11px;font-size:13px;font-weight:700;margin:8px 0}
.sh-promo-line[hidden]{display:none}
@media(max-width:600px){.sh-promise ul{gap:8px 14px;justify-content:flex-start}.sh-promise li{flex:1 1 45%}}
