/* Velora */
.app-shop{--brand:#5B3DF5;--brand-ink:#fff;--brand-soft:#EEEAFF;--brand-deep:#4325D9;--brand-line:#CFC5FF;--bg:#F7F7F9;--surface:#fff;--ink:#16161D;--muted:#6E7080;--line:#ECECF1;--font:"Plus Jakarta Sans",sans-serif;--coral:#FF5A4E;--snack-act:#B9A8FF}
.app-shop .ok{color:#14955a}
.app-shop .st{width:11px;height:11px;stroke-width:0}
.s-top{flex:none;display:flex;align-items:center;gap:2px;padding:var(--sbh) 6px 0 18px;height:calc(var(--sbh) + 58px);background:var(--surface)}
.s-logo{flex:1;font:600 28px/1 "Fraunces",serif;letter-spacing:-.03em;color:var(--ink)}
.s-logo:after{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--coral);margin-left:3px}
.s-bn .badge,.s-wb{top:4px;right:3px}
.tab .pill{position:relative}
.s-wb{top:-3px!important;right:6px!important}
.s-home{background:var(--surface)}
.s-search{display:flex;align-items:center;gap:10px;margin:2px 16px 14px;height:48px;padding:0 14px;border-radius:24px;background:#F1F1F5;color:var(--muted)}
.s-search .ic{width:20px;height:20px}
.s-search input{flex:1;min-width:0;border:0;outline:0;background:none;height:100%;font-size:14.5px;color:var(--ink);-webkit-appearance:none;appearance:none}
.s-search input::-webkit-search-cancel-button{display:none}
.s-banners{gap:12px;padding:0 16px;scroll-padding-left:16px}
.s-ban{flex:0 0 100%;height:200px;border-radius:22px;position:relative;overflow:hidden;color:#fff;cursor:pointer}
.s-ban img{position:absolute;right:0;top:0;width:62%;height:100%;pointer-events:none}
.s-ban:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bgc,rgba(0,0,0,.0)) 0,transparent);pointer-events:none}
.s-bant{position:absolute;left:0;top:0;bottom:0;width:58%;padding:20px 18px;display:flex;flex-direction:column;z-index:1;background:linear-gradient(90deg,inherit 70%,transparent)}
.s-ban .s-bant{background:none}
.s-ban:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,currentColor 0,transparent);opacity:0}
.s-bant small{font-size:10.5px;font-weight:800;letter-spacing:.14em;opacity:.8}
.s-bant b{font:600 25px/1.08 "Fraunces",serif;margin-top:8px;letter-spacing:-.01em}
.s-bant span{font-size:12.5px;opacity:.85;margin-top:6px;line-height:1.35}
.s-bant i{margin-top:auto;font-style:normal;font-size:12.5px;font-weight:800;background:#fff;color:#16161D;align-self:flex-start;padding:8px 14px;border-radius:16px}
.s-ban img{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 38%);mask-image:linear-gradient(90deg,transparent 0,#000 38%)}
.s-dots{margin:12px 0 4px}
.s-cats{gap:4px;padding:12px 10px 6px}
.s-cat{flex:none;width:76px;display:flex;flex-direction:column;align-items:center;gap:7px;font-size:12px;font-weight:700;color:#3a3b45}
.s-cat span{width:62px;height:62px;border-radius:50%;padding:3px;background:linear-gradient(135deg,#7B61FF,#FF5A4E)}
.s-cat img{width:100%;height:100%;border-radius:50%;border:2.5px solid #fff;pointer-events:none}
.s-deal{display:flex;align-items:center;gap:12px;margin:14px 16px 6px;padding:16px;border-radius:22px;background:linear-gradient(120deg,#16161D,#2d2457);color:#fff;cursor:pointer;--rp:rgba(255,255,255,.2)}
.s-deal small{display:flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;letter-spacing:.12em;color:#FFC94A}
.s-deal small .ic{width:13px;height:13px}
.s-deal h3{margin:6px 0 6px;font-size:16px;font-weight:700;line-height:1.3}
.s-deal img{width:104px;height:104px;border-radius:18px;flex:none;pointer-events:none}
.s-deal .s-price s{color:rgba(255,255,255,.5)}
.s-timer{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:12px;color:rgba(255,255,255,.75)}
.s-timer span{display:flex;align-items:center;gap:3px}
.s-timer b{background:rgba(255,255,255,.14);color:#fff;padding:3px 6px;border-radius:6px;font-variant-numeric:tabular-nums;font-size:12.5px}
.s-timer i{font-style:normal}
.s-sech{display:flex;align-items:center;justify-content:space-between;margin:20px 16px 12px}
.s-link{color:var(--brand);font-weight:800;font-size:13px;padding:4px}
.s-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 10px;padding:0 12px}
.s-pc{display:block;cursor:pointer;border-radius:16px;min-width:0}
.s-pimg{position:relative;aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:#EFEFF3}
.s-pimg img{width:100%;height:100%;pointer-events:none}
.s-heart{position:absolute;right:8px;top:8px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.9);display:grid;place-items:center;color:#2b2b33;z-index:2}
.s-heart .ic{width:18px;height:18px}
.s-heart.on{color:var(--coral)}
.s-tag{position:absolute;left:8px;top:8px;background:#16161D;color:#fff;font-size:10.5px;font-weight:800;padding:4px 8px;border-radius:8px;letter-spacing:.02em}
.s-rt{position:absolute;left:8px;bottom:8px;display:inline-flex;align-items:center;gap:3px;background:rgba(255,255,255,.92);font-size:11.5px;font-weight:800;padding:3px 7px;border-radius:8px}
.s-rt .st{color:#14955a}
.s-rt i{font-style:normal;font-weight:600;color:var(--muted);margin-left:2px;padding-left:4px;border-left:1px solid #ddd}
.s-pinfo{padding:8px 2px 2px}
.s-pinfo small{display:block;font-size:12px;font-weight:800;color:var(--ink)}
.s-pinfo h4{margin:2px 0 4px;font-size:13px;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.s-price b{font-size:14.5px;font-weight:800}
.s-price s{font-size:12px;color:#9a9caa}
.s-price em{font-style:normal;font-size:12px;font-weight:800;color:var(--coral)}
.s-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:22px 12px 6px;padding:14px 8px;border-radius:18px;background:#F4F2FF}
.s-trust>div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}
.s-trust .ic{width:22px;height:22px;color:var(--brand);margin-bottom:3px}
.s-trust b{font-size:12px}
.s-trust small{font-size:10.5px;color:var(--muted);line-height:1.3}

/* list */
.s-sorts{flex:none;gap:8px;padding:2px 14px 12px;background:var(--bg)}
/* product */
.pg-product{background:var(--surface)}
.s-pbar{position:absolute;left:0;right:0;top:0;z-index:6;display:flex;align-items:center;gap:6px;padding:calc(var(--sbh) + 2px) 10px 0}
.s-pbar .ibtn{width:42px;height:42px;background:rgba(255,255,255,.92);box-shadow:0 2px 10px rgba(0,0,0,.12)}
.s-pbar .ibtn .ic{width:20px;height:20px}
.s-gal{position:relative;background:#EFEFF3}
.s-gal .hscroll{scroll-padding-left:0}
.s-shot{flex:0 0 100%;aspect-ratio:1/1.08}
.s-shot img{width:100%;height:100%;pointer-events:none}
.s-gcount{position:absolute;left:14px;bottom:14px;background:rgba(22,22,29,.7);color:#fff;font-size:11.5px;font-weight:700;padding:4px 9px;border-radius:10px}
.s-gdots{position:absolute;left:0;right:0;bottom:18px;pointer-events:none}
.s-gdots i{background:rgba(255,255,255,.6)}
.s-gdots i.on{background:#fff}
.s-pheart{position:absolute;right:14px;bottom:-22px;width:48px;height:48px;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.15);display:grid;place-items:center;color:#2b2b33;z-index:2}
.s-pheart.on{color:var(--coral)}
.s-pheart .ic{width:22px;height:22px}
.s-pmain{padding:16px 16px 14px}
.s-brand{color:var(--brand);font-weight:800;font-size:13px;letter-spacing:.02em}
.s-pmain h1{margin:4px 50px 8px 0;font:600 22px/1.2 "Fraunces",serif;letter-spacing:-.01em}
.s-prate{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.s-prate span{display:inline-flex;align-items:center;gap:3px;background:#14955a;color:#fff;font-weight:800;padding:3px 7px;border-radius:8px}
.s-prate .st{color:#fff}
.s-pprice{display:flex;align-items:baseline;gap:10px;margin:14px 0 2px}
.s-pprice em{font-style:normal;color:#14955a;font-weight:800;font-size:18px}
.s-pprice s{color:#9a9caa;font-size:15px}
.s-pprice b{font-size:24px;font-weight:800}
.s-offers{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.s-offer{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#F4F2FF;font-size:12.5px}
.s-offer .ic{width:18px;height:18px;color:var(--brand);flex:none}
.s-blk{padding:16px;border-top:8px solid var(--bg)}
.s-blk h4{margin:0 0 12px;font-size:15px;font-weight:800}
.s-blk .row h4{margin:0}
.s-blk .row{margin-bottom:12px}
.s-sizes{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}
.s-sz{min-width:52px;height:46px;padding:0 12px;border-radius:23px;border:1.5px solid #D9D9E2;font-weight:700;font-size:13.5px;transition:all .2s}
.s-sz.on{border-color:var(--brand);background:var(--brand);color:#fff;--rp:rgba(255,255,255,.3)}
.s-sz.oos{color:#B8B9C4;border-style:dashed;text-decoration:line-through}
.s-cols{display:flex;gap:14px}
.s-col{width:40px;height:40px;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);position:relative}
.s-col.on:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--brand)}
.s-pin{display:flex;align-items:center;gap:10px;height:48px;border:1.5px solid #D9D9E2;border-radius:14px;padding:0 6px 0 12px}
.s-pin .ic{width:18px;height:18px;color:var(--brand)}
.s-pin input{flex:1;min-width:0;border:0;outline:0;font-size:15px;font-weight:700;letter-spacing:.08em;background:none;user-select:text}
.s-pin button{color:var(--brand);font-weight:800;font-size:13.5px;padding:8px 12px;border-radius:10px}
.s-eta{display:flex;align-items:center;gap:8px;margin:10px 2px 0;font-size:13px}
.s-eta .ic{width:17px;height:17px;color:#14955a}
.s-err{color:#e5484d;font-weight:600}
.s-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.s-perks div{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;font-size:11.5px;font-weight:600;color:#45474e;padding:10px 4px;border-radius:12px;background:#F7F7F9}
.s-perks .ic{width:20px;height:20px;color:var(--brand)}
.s-hl{margin:0;padding-left:18px;font-size:13.5px;line-height:1.9;color:#3a3b45}
.s-big{display:inline-flex;align-items:center;gap:4px;font-size:22px;font-weight:800}
.s-big .st{width:18px;height:18px;color:#14955a}
.s-bar{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin:5px 0}
.s-bar span{width:24px}
.s-bar i{flex:1;height:6px;border-radius:3px;background:#EEEEF3;overflow:hidden}
.s-bar b{display:block;height:100%;background:#14955a;border-radius:3px}
.s-quote{margin-top:14px;padding:12px 14px;border-radius:14px;background:#F7F7F9}
.s-quote b{display:block;font-size:13.5px;font-weight:600}
.s-quote small{color:var(--muted);font-size:12px}
.s-sim{gap:10px;padding:0 14px}
.s-sim .s-pc{flex:0 0 150px}
.s-pfoot,.s-foot{flex:none;display:flex;align-items:center;gap:10px;padding:10px 12px;background:#fff;box-shadow:0 -6px 20px -12px rgba(0,0,0,.25)}
.s-pfoot .btn.ghost{color:var(--ink);border-color:#D9D9E2;padding:0 16px}
.s-pfoot .btn.ghost .ic{color:var(--coral)}
.s-foot>div{display:flex;flex-direction:column;min-width:96px}
.s-foot b{font-size:18px}
.s-foot .s-link{padding:0;text-align:left;font-size:12px}
/* bag */
.s-bag,.s-co,.s-od,.s-orders,.s-acc{padding:4px 12px}
.s-deliv{display:flex;align-items:center;gap:8px;padding:12px 14px;border-radius:14px;background:#F4F2FF;font-size:13px;margin-bottom:12px;cursor:pointer}
.s-deliv .ic{width:18px;height:18px;color:var(--brand)}
.s-bi{display:flex;gap:12px;padding:12px;margin-bottom:10px}
.s-bi img{width:84px;height:104px;border-radius:12px;flex:none;cursor:pointer}
.s-bi small{display:block;font-size:12px;font-weight:800}
.s-bi>div>b{display:block;font-size:13.5px;font-weight:500;color:#3a3b45;margin:2px 0 8px;line-height:1.35}
.s-bmeta{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:12.5px;font-weight:700}
.s-bmeta>span{background:#F1F1F5;padding:5px 9px;border-radius:8px}
.app-shop .s-step{height:30px;border-radius:9px}
.app-shop .s-step button{width:30px}
.app-shop .s-step .ic{width:14px;height:14px}
.s-dby{display:flex!important;align-items:center;gap:5px;margin-top:6px;font-weight:600!important;color:var(--muted)}
.s-dby .ic{width:14px;height:14px}
.s-cpn{display:flex;align-items:center;gap:12px;padding:14px;margin-bottom:10px;cursor:pointer;border:1.5px dashed var(--brand-line)}
.s-cpn>.ic{width:22px;height:22px;color:var(--brand)}
.s-cpn b{display:block;font-size:14px}
.s-cpn small{display:block;font-size:12px;color:var(--muted)}
.s-cbtn{font-weight:800;font-size:13px;color:#fff;background:var(--brand);padding:7px 12px;border-radius:10px}
.s-cbtn.on{background:none;color:var(--coral)}
.s-sum{padding:14px;margin-bottom:10px}
.s-sum h4{margin:0 0 10px;font-size:14.5px;font-weight:800}
.s-sum .row{padding:5px 0;font-size:13.5px;color:#45474e}
.s-sum .row.ok{color:#14955a}
.s-sum s{color:#9a9caa}
.s-sum .divider{margin:8px 0}
.s-tot{font-weight:800;font-size:15.5px!important;color:var(--ink)!important}
.s-saved{display:flex;align-items:center;gap:6px;margin-top:10px;padding:9px 12px;border-radius:10px;background:#E8F7EF;color:#14955a;font-weight:700;font-size:12.5px}
.s-saved .ic{width:16px;height:16px}
.s-li{gap:10px}
.s-li img{width:36px;height:36px;border-radius:8px;flex:none}
/* checkout */
.s-secure{display:flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:#14955a;padding-right:12px}
.s-secure .ic{width:14px;height:14px}
.s-steps{flex:none;display:flex;align-items:center;gap:8px;padding:0 18px 12px;font-size:12px;font-weight:700;color:var(--muted)}
.s-steps span{display:flex;align-items:center;gap:4px}
.s-steps .done{color:#14955a}
.s-steps .done .ic{width:14px;height:14px}
.s-steps .now{color:var(--ink)}
.s-steps i{flex:1;height:2px;background:var(--line);border-radius:1px}
.s-coh{margin:10px 4px 10px;font-size:14px;font-weight:800}
.s-acard{display:flex;align-items:flex-start;gap:12px;width:100%;padding:14px;margin-bottom:10px;text-align:left;border:1.5px solid transparent;transition:border-color .2s}
.s-acard.sel{border-color:var(--brand)}
.s-acard.sel .radio{border-color:var(--brand)}
.s-acard.sel .radio:after{transform:scale(1)}
.s-acard b{font-size:14px}
.s-acard small{display:block;color:var(--muted);font-size:12.5px;margin-top:3px;line-height:1.45}
.s-addnew{display:flex;align-items:center;gap:6px;color:var(--brand);font-weight:800;font-size:13.5px;padding:8px 6px;border-radius:10px}
.s-addnew .ic{width:17px;height:17px}
.s-eta2{display:flex;align-items:center;gap:10px;padding:12px 14px;margin:8px 0 6px;font-size:13px}
.s-eta2 .ic{width:20px;height:20px;color:var(--brand)}
.s-pays{padding:2px 12px;margin-bottom:10px}
.s-pays .opt.dim{opacity:.5}
.s-note{display:flex;gap:8px;font-size:12px;color:var(--muted);margin:0 4px 12px;line-height:1.45}
.s-note .ic{width:15px;height:15px;flex:none}
.s-foot small{font-size:11.5px}
/* placed */
.s-placed{padding:0 16px 20px;background:var(--surface)}
.s-pl-top{display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(var(--sbh) + 40px) 10px 20px}
.s-pl-top h1{margin:22px 0 6px;font:600 28px "Fraunces",serif}
.s-pl-top p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.s-plc{padding:14px 16px;margin-bottom:16px;background:#F7F7F9;animation-delay:.15s}
.s-plc .row{padding:7px 0;font-size:13.5px}
.s-thumbs{display:flex;gap:8px;margin-top:10px;padding-top:12px;border-top:1px dashed #DCDCE4}
.s-thumbs img{width:52px;height:60px;border-radius:10px}
/* order */
.s-track{padding:16px;margin-bottom:10px}
.s-track h4{margin:0 0 12px;font-size:15px;font-weight:800}
.s-ts{display:flex;gap:12px;position:relative;padding-bottom:18px;color:#A0A2AE}
.s-ts:last-child{padding-bottom:0}
.s-ts:not(:last-child):before{content:"";position:absolute;left:10px;top:24px;bottom:2px;width:2px;background:#E5E5EC}
.s-ts.done:not(:last-child):before{background:#14955a}
.s-ts i{width:22px;height:22px;border-radius:50%;border:2px solid #D6D6DE;display:grid;place-items:center;flex:none;background:#fff;color:#fff}
.s-ts i .ic{width:12px;height:12px;stroke-width:3;opacity:0}
.s-ts.done i,.s-ts.now i{background:#14955a;border-color:#14955a}
.s-ts.done i .ic,.s-ts.now i .ic{opacity:1}
.s-ts.now i{box-shadow:0 0 0 5px rgba(20,149,90,.18)}
.s-ts b{display:block;font-size:14px}
.s-ts.done b,.s-ts.now b{color:var(--ink)}
.s-ts small{font-size:12px;color:var(--muted)}
.s-odb{gap:10px;margin-top:6px}
.s-odb .btn{height:46px;font-size:14px}
/* orders list */
.s-ocard{display:flex;align-items:center;gap:12px;width:100%;padding:12px;margin-bottom:10px;text-align:left}
.s-oimgs{display:flex;flex:none}
.s-oimgs img{width:54px;height:64px;border-radius:10px;border:2px solid #fff}
.s-oimgs img+img{margin-left:-22px}
.s-ocard b{display:block;font-size:13.5px;margin:5px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-ocard small{font-size:11.5px;color:var(--muted)}
.s-ocard>.ic{width:18px;height:18px;color:#B5B6C2}
.s-st{display:inline-block;font-size:11px;font-weight:800;padding:3px 8px;border-radius:7px;background:#EEEAFF;color:var(--brand)}
.s-st-delivered{background:#E8F7EF;color:#14955a}
.s-st-cancelled{background:#FDECEC;color:#d23b3b}
.s-st-out{background:#FFF3DF;color:#b86e00}
/* wishlist */
.s-wcard{display:flex;flex-direction:column;gap:8px;min-width:0}
.s-move{display:flex;align-items:center;justify-content:center;gap:6px;height:38px;border-radius:12px;border:1.5px solid var(--brand-line);color:var(--brand);font-weight:800;font-size:12.5px}
.s-move .ic{width:16px;height:16px}
/* account */
.s-acc-h{flex:none;padding:calc(var(--sbh) + 18px) 20px 18px;background:linear-gradient(140deg,#2d1e8f,#5B3DF5 60%,#8B6CFF);color:#fff;text-align:center}
.s-acc-av{width:64px;height:64px;border-radius:50%;margin:0 auto 10px;background:rgba(255,255,255,.18);display:grid;place-items:center;font:600 28px "Fraunces",serif}
.s-acc-h h2{margin:0;font:600 22px "Fraunces",serif}
.s-acc-h p{margin:4px 0 14px;font-size:12.5px;opacity:.85}
.s-acc-stats{display:flex;background:rgba(255,255,255,.12);border-radius:16px;padding:10px 0}
.s-acc-stats div{flex:1;display:flex;flex-direction:column}
.s-acc-stats div+div{border-left:1px solid rgba(255,255,255,.2)}
.s-acc-stats b{font-size:17px}
.s-acc-stats small{font-size:11.5px;opacity:.8}
.s-acc{padding-top:14px}
.s-alist{padding:4px 6px;margin-bottom:12px}
.s-arow{display:flex;align-items:center;gap:12px;width:100%;padding:12px 8px;text-align:left;border-radius:14px}
.s-arow+.s-arow{border-top:1px solid var(--line)}
.s-ai{width:38px;height:38px;border-radius:12px;background:#F4F2FF;color:var(--brand);display:grid;place-items:center;flex:none}
.s-ai .ic{width:19px;height:19px}
.s-arow b{display:block;font-size:14.5px}
.s-arow small{display:block;font-size:12px;color:var(--muted);margin-top:2px}
.s-arow>.ic{width:18px;height:18px;color:#B5B6C2}
.s-ver{text-align:center;font-size:12px;color:#A0A2AE;margin:6px 0 20px}
.s-pbar{transition:background .25s,box-shadow .25s;padding-bottom:6px}
.s-pbar h2{margin:0 4px;font-size:16px;font-weight:700;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}
.s-pbar.solid{background:#fff;box-shadow:0 1px 0 var(--line)}
.s-pbar.solid h2{opacity:1;transform:none}
.s-pbar.solid .ibtn{background:transparent;box-shadow:none}
