/* 商店：首页是商品目录（今日推荐 + 价格排序），点进商品页再看规格和详情（10-26 店主语音要求） */
.store { padding-top: 44px; padding-bottom: 56px; }
.store [hidden] { display: none !important; }
.store .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.store-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .16em; color: #77766f; margin: 0 0 12px; }
.store-text-link { color: #363631; font-size: 13px; text-decoration: none; white-space: nowrap; }
.store-text-link:hover { text-decoration: underline; }
.store-art-fallback { display: grid; place-items: center; background: linear-gradient(145deg, #2b2a26, #4a4842); color: #f3f1ec; font-weight: 700; }

/* ---------- 首页：今日推荐大卡片（第一版样式） ---------- */
.store-featured { margin-bottom: 22px; }
.store-featured-card { display: grid; grid-template-columns: 228px minmax(0, 1fr); align-items: stretch; border-radius: 22px; overflow: hidden; text-decoration: none; color: #f6f1ea; background: radial-gradient(120% 140% at 0% 0%, #3a271b 0%, #1c1612 55%, #141110 100%); box-shadow: 0 1px 2px rgba(20, 14, 10, .12), 0 18px 40px -18px rgba(60, 34, 18, .55); transition: transform .2s ease, box-shadow .2s ease; }
.store-featured-card:hover { transform: translateY(-2px); box-shadow: 0 1px 2px rgba(20, 14, 10, .12), 0 26px 50px -20px rgba(60, 34, 18, .6); }
.store-featured-art { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; display: block; }
.store-featured-body { display: flex; flex-direction: column; gap: 14px; padding: 28px 32px; min-width: 0; }
.store-featured-tag { align-self: flex-start; font-size: 12px; font-weight: 700; letter-spacing: .08em; color: #241a12; background: linear-gradient(90deg, #f4c58f, #e98f62); padding: 5px 12px; border-radius: 99px; }
.store-featured-body strong { font-size: clamp(20px, 2.4vw, 27px); font-weight: 650; line-height: 1.35; letter-spacing: -.02em; }
.store-featured-points { display: flex; flex-wrap: wrap; gap: 8px; }
.store-featured-points span { font-size: 12px; color: #eadfd2; border: 1px solid rgba(255, 236, 214, .22); background: rgba(255, 236, 214, .06); padding: 5px 10px; border-radius: 99px; }
.store-featured-foot { margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.store-featured-price { font-size: 34px; font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.store-featured-price small { font-size: 14px; font-weight: 500; color: #cdbfb0; margin-left: 3px; letter-spacing: 0; }
.store-featured-price em { font-style: normal; font-size: 14px; font-weight: 500; color: #cdbfb0; margin-left: 3px; letter-spacing: 0; }
.store-featured-cta { font-size: 14px; font-weight: 650; background: #f6f1ea; color: #1b1512; padding: 11px 18px; border-radius: 12px; }

/* ---------- 首页：限时促销横幅（src/promotions.js；店主 10-28 GPT Plus 代充一周 ¥108） ---------- */
.store-promo { margin-bottom: 22px; border-radius: 22px; padding: 22px 24px 20px; color: #fff7f2; background: radial-gradient(130% 160% at 100% 0%, #7a2a1c 0%, #b4401f 35%, #d9582a 62%, #ef7a3a 100%); box-shadow: 0 1px 2px rgba(60, 20, 10, .14), 0 20px 44px -20px rgba(180, 64, 31, .6); position: relative; overflow: hidden; }
.store-promo::before { content: ""; position: absolute; inset: 0; background: radial-gradient(60% 80% at 10% 100%, rgba(255, 225, 190, .18), transparent 70%); pointer-events: none; }
.store-promo-head { position: relative; display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.store-promo-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 800; letter-spacing: .08em; color: #5a1d10; background: linear-gradient(90deg, #ffe3a3, #ffb86b); padding: 5px 12px 5px 9px; border-radius: 99px; }
.store-promo-tag svg { width: 13px; height: 13px; fill: #7a2a1c; }
.store-promo-head strong { font-size: clamp(18px, 2.2vw, 24px); font-weight: 700; letter-spacing: -.02em; line-height: 1.3; }
.store-promo-note { font-size: 13px; color: #ffd9c4; }
.store-promo-timer { margin-left: auto; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; font-variant-numeric: tabular-nums; }
.store-promo-timer > span { font-size: 15px; font-weight: 700; color: #fff; background: rgba(60, 16, 8, .32); border: 1px solid rgba(255, 220, 190, .35); padding: 6px 12px; border-radius: 99px; }
.store-promo-timer small { font-size: 11px; color: #ffd9c4; }
.store-promo.is-over .store-promo-timer > span { background: rgba(60, 16, 8, .5); color: #ffd9c4; }
.store-promo-items { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 12px; }
.store-promo-item { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; grid-template-areas: "art body price" "art body cta"; align-items: center; column-gap: 14px; row-gap: 6px; padding: 14px 16px; border-radius: 16px; background: rgba(255, 250, 246, .96); color: #1b1512; text-decoration: none; box-shadow: 0 10px 24px -18px rgba(60, 20, 10, .6); transition: transform .2s ease, box-shadow .2s ease; }
.store-promo-item:hover { transform: translateY(-2px); box-shadow: 0 16px 30px -18px rgba(60, 20, 10, .7); }
.store-promo-item.is-off { opacity: .7; }
.store-promo-art { grid-area: art; width: 52px; height: 52px; border-radius: 14px; object-fit: cover; box-shadow: 0 1px 2px rgba(0, 0, 0, .12); }
.store-promo-art.store-art-fallback { font-size: 20px; }
.store-promo-body { grid-area: body; display: grid; gap: 3px; min-width: 0; }
.store-promo-body strong { font-size: 15px; font-weight: 650; line-height: 1.4; }
.store-promo-body small { font-size: 12px; color: #7b776d; }
.store-promo-price { grid-area: price; justify-self: end; display: flex; align-items: baseline; gap: 6px; white-space: nowrap; }
.store-promo-price b { font-size: 24px; font-weight: 800; letter-spacing: -.04em; color: #c2461c; line-height: 1; }
.store-promo-price small { font-size: 12px; color: #8a877f; margin-left: -4px; }
.store-promo-price em { font-style: normal; font-size: 11px; font-weight: 700; color: #c2461c; background: #ffe9dc; padding: 2px 7px; border-radius: 6px; }
.store-promo-was, .store-was, .store-row-was, .store-pill-was, .store-item-was { font-size: 13px; color: #9a968c; text-decoration: line-through; text-decoration-color: #b8b4aa; font-weight: 500; letter-spacing: 0; }
.store-promo-cta { grid-area: cta; justify-self: end; font-size: 12px; font-weight: 700; color: #c2461c; }
.store-promo-item.is-off .store-promo-cta { color: #8a877f; }
.store-promo-item:hover .store-promo-cta::after { content: " →"; }
.store-tag.is-promo { color: #c2461c; background: #ffe9dc; border-color: #f7cdb6; }
.store-cat-icon.is-bolt { display: grid; place-items: center; background: #ffe9dc; }
.store-cat-icon.is-bolt svg { width: 16px; height: 16px; fill: #d9582a; }
.store-row-price .store-row-was { margin-right: 6px; font-size: 12px; }
.store-row-price.is-promo { color: #c2461c; }
.store-pill-price .store-pill-was { margin-right: 4px; font-size: 11px; }
.store-pill-price.is-promo { color: #c2461c; border-color: #f7cdb6; background: #fff3ec; }
.store-item-price .store-item-was { font-size: 18px; margin-left: 8px; align-self: center; }
.store-item-price.is-promo strong { color: #c2461c; }
.store-item-promo { display: inline-flex; align-items: center; gap: 6px; margin: -14px 0 22px; font-size: 13px; font-weight: 600; color: #c2461c; background: #ffe9dc; border: 1px solid #f7cdb6; padding: 5px 12px 5px 9px; border-radius: 99px; }
.store-item-promo svg { width: 13px; height: 13px; fill: #d9582a; flex: none; }

/* ---------- 首页：左边分类栏 + 右边商品列表（对标上家） ---------- */
.store-shop { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 22px; align-items: start; }
.store-shop > * { min-width: 0; }
.store-side { position: sticky; top: 88px; background: #fff; border: 1px solid #e6e3da; border-radius: 22px; padding: 22px 14px 14px; }
.store-side .store-eyebrow { margin: 0 10px 6px; }
.store-side h2 { font-size: 21px; margin: 0 10px 16px; letter-spacing: -.02em; }
.store-cats { display: grid; gap: 4px; }
.store-cat { display: flex; align-items: center; gap: 12px; width: 100%; padding: 9px 10px; border: 1px solid transparent; border-radius: 14px; background: none; font: inherit; font-size: 15px; color: #2b2a25; cursor: pointer; text-align: left; }
.store-cat:hover { background: #f5f4ef; }
.store-cat[aria-pressed=true] { background: #fff; border-color: #dcd9cf; box-shadow: 0 2px 10px -4px rgba(25, 24, 22, .18); font-weight: 650; }
.store-cat-icon { width: 28px; height: 28px; border-radius: 8px; flex: none; object-fit: cover; }
.store-cat-icon.is-svg, .store-cat-icon.is-star { display: grid; place-items: center; background: #f1efe9; }
.store-cat-icon.is-svg svg { width: 16px; height: 16px; fill: #57544d; }
.store-cat-icon.is-star { background: #fff4d6; }
.store-cat-icon.is-star svg { width: 17px; height: 17px; fill: #f2b01e; }
.store-cat-icon.store-art-fallback { font-size: 13px; }
.store-cat-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.store-cat-count { font-size: 12px; color: #6e6b63; background: #f1efe9; min-width: 26px; padding: 2px 8px; border-radius: 99px; text-align: center; }

.store-main { background: #fff; border: 1px solid #e6e3da; border-radius: 22px; overflow: hidden; min-width: 0; }
.store-main-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 24px 18px; border-bottom: 1px solid #efede7; }
.store-main-head .store-eyebrow { margin-bottom: 6px; }
.store-main-head h1 { font-size: 26px; font-weight: 700; letter-spacing: -.03em; margin: 0; }
.store-search { display: flex; align-items: center; gap: 8px; width: min(420px, 100%); height: 48px; padding: 0 5px 0 16px; border: 1px solid #dcd9cf; border-radius: 99px; background: #fff; color: #8a877f; }
.store-search svg { width: 17px; height: 17px; flex: none; }
.store-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; color: #23231f; font: inherit; font-size: 15px; }
.store-search button { height: 38px; padding: 0 18px; border: 0; border-radius: 99px; background: #111110; color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.store-search:focus-within { border-color: #48483f; box-shadow: 0 0 0 3px #48483f14; }

.store-list-head, .store-row { display: grid; grid-template-columns: minmax(0, 1fr) 132px 72px 84px; align-items: center; gap: 16px; }
.store-list-head { padding: 10px 24px; background: #faf9f6; border-bottom: 1px solid #efede7; font-size: 12px; color: #8a877f; }
.store-list-head > span:nth-child(2) { justify-self: end; }
.store-sort { display: inline-flex; gap: 2px; padding: 2px; border-radius: 99px; background: #eceae4; }
.store-sort button { font: inherit; font-size: 12px; color: #6e6b63; border: 0; background: transparent; padding: 3px 10px; border-radius: 99px; cursor: pointer; }
.store-sort button[aria-pressed=true] { background: #fff; color: #1d1d1a; font-weight: 600; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
.store-row { position: relative; padding: 14px 24px; border-bottom: 1px solid #f0eee8; color: inherit; text-decoration: none; transition: background .12s ease; }
.store-row:last-child { border-bottom: 0; }
.store-row:hover { background: #fbfaf7; }
.store-row-art { position: absolute; left: 24px; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border-radius: 13px; object-fit: cover; box-shadow: 0 1px 2px rgba(0, 0, 0, .12); }
.store-row-art.store-art-fallback { font-size: 18px; }
.store-row-main { display: grid; gap: 6px; min-width: 0; padding-left: 62px; }
.store-row-name { font-size: 15px; font-weight: 650; line-height: 1.45; overflow-wrap: anywhere; }
.store-row-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.store-tag { font-size: 11px; font-weight: 600; color: #2f7a4b; background: #e9f5ee; border: 1px solid #d5eadc; padding: 1px 7px; border-radius: 6px; }
.store-tag.is-hot { color: #b4581c; background: #fff1e3; border-color: #f6dcc2; }
.store-tag.is-usdt { color: #1f6f6b; background: #e6f4f3; border-color: #cbe6e3; }
.store-row-usdt { display: block; font-size: 11px; font-weight: 500; color: #1f6f6b; letter-spacing: 0; text-align: right; }
.store-usdt { display: inline-block; margin: -12px 0 18px; font-size: 13px; color: #1f6f6b; background: #e6f4f3; border: 1px solid #cbe6e3; padding: 3px 10px; border-radius: 99px; }
.store-row-price { justify-self: end; font-size: 17px; font-weight: 700; letter-spacing: -.02em; white-space: nowrap; }
.store-row-price small { font-size: 12px; font-weight: 500; color: #8a877f; margin-left: 1px; letter-spacing: 0; }
.store-row-price em { font-style: normal; font-size: 11px; font-weight: 500; color: #8a877f; margin-left: 2px; }
.store-row-stock { font-size: 13px; color: #8a877f; white-space: nowrap; }
.store-row-stock.is-ok { color: #2f7a4b; }
.store-row-buy { justify-self: end; display: inline-flex; align-items: center; justify-content: center; height: 38px; min-width: 72px; padding: 0 16px; border-radius: 99px; background: #111110; color: #fff; font-size: 14px; font-weight: 600; }
.store-row.is-off .store-row-buy { background: #ecebe5; color: #77746b; }
.store-row.is-off .store-row-art, .store-row.is-off .store-row-price { opacity: .5; }
.store-no-results { padding: 40px 20px; font-size: 14px; color: #777; text-align: center; }
.store-result-count { font-size: 12px; color: #8b8b80; margin: 0; padding: 14px 24px; border-top: 1px solid #f0eee8; }

.store-help { border-top: 1px solid #dddcd3; margin-top: 44px; padding: 30px 0; }
.store-help h2 { margin: 0 0 7px; font-size: 21px; }
.store-help p:not(.store-eyebrow) { margin: 0; font-size: 13px; color: #858577; }
.store-help .store-eyebrow { margin-bottom: 8px; }
.store-faq { border-top: 1px solid #dddcd3; padding-top: 28px; max-width: 740px; }
.store-faq h2 { font-size: 20px; margin: 0 0 14px; }
.store-faq details { padding: 16px 0; border-bottom: 1px solid #e2e1d9; }
.store-faq summary { cursor: pointer; font-size: 14px; }
.store-faq p { font-size: 13px; line-height: 1.9; color: #747467; margin-top: 8px; }

/* ---------- 商品页 ---------- */
.store-crumbs { display: flex; gap: 14px; align-items: center; font-size: 13px; color: #9a978e; margin-bottom: 22px; }
.store-back { display: inline-flex; align-items: center; gap: 4px; height: 38px; padding: 0 16px 0 12px; border-radius: 99px; background: #fff; border: 1px solid #dcd9cf; color: #23231f !important; font-size: 14px; font-weight: 600; text-decoration: none !important; }
.store-back span { font-size: 22px; line-height: 1; margin-top: -2px; }
.store-back:hover { border-color: #9f9b91; }
.store-crumbs-path { display: inline-flex; gap: 8px; align-items: center; }
.store-detail { scroll-margin-top: 90px; }
.store-crumbs a { color: #6b675f; text-decoration: none; }
.store-crumbs a:hover { color: #191816; text-decoration: underline; }
.store-item { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 44px; align-items: start; }
.store-item-media { min-width: 0; }
/* 左图：外层这一列从购买区一直延伸到商品详情底部，里层 .store-item-stick 负责粘住和动效。
   以前直接让网格项粘住，Chrome 会以整个页面网格为边界，滚到底时图会压到下面的「加入群聊」 */
.store-item-stick { position: sticky; top: 92px; }
.store-item-art { width: 100%; height: auto; aspect-ratio: 1; border-radius: 28px; display: block; object-fit: cover; box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 24px 48px -28px rgba(25, 24, 22, .45); }
.store-item-art.store-art-fallback { font-size: 120px; }
.store-item-head { display: flex; gap: 16px; align-items: flex-start; }
.store-item-thumb { display: none; }
.store-item-head .store-eyebrow { margin-bottom: 8px; }
.store-item-title { font-size: clamp(24px, 3vw, 34px); font-weight: 650; line-height: 1.3; letter-spacing: -.03em; margin: 0 0 14px; overflow-wrap: anywhere; }
.store-item-price { display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; margin: 0 0 22px; }
.store-item-price strong { font-size: 40px; font-weight: 700; letter-spacing: -.05em; line-height: 1; }
.store-item-price small { font-size: 16px; color: #78756d; }
.store-item-state { margin-left: 10px; font-size: 12px; color: #85827a; background: #ecebe5; padding: 4px 10px; border-radius: 99px; align-self: center; }

.store-order { display: grid; gap: 18px; scroll-margin-top: 96px; }
.store-order fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.store-order legend { font-size: 13px; font-weight: 650; color: #46443e; padding: 0; margin-bottom: 10px; }
.store-pill-list { display: flex; flex-wrap: wrap; gap: 10px; }
.store-pill { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-width: 112px; max-width: 100%; padding: 10px 18px 12px; border: 1.5px solid #d9d6cd; border-radius: 22px; background: #fff; cursor: pointer; text-align: center; transition: border-color .15s ease; }
.store-pill:hover { border-color: #9f9b91; }
.store-pill input { position: absolute; opacity: 0; pointer-events: none; }
.store-pill-price { font-size: 13px; font-weight: 700; color: #1b1b18; background: #f3f2ee; border: 1px solid #e3e1da; padding: 2px 10px; border-radius: 99px; white-space: nowrap; }
.store-pill-price small { font-size: 11px; font-weight: 500; color: #7c796f; margin-left: 1px; }
.store-pill-name { font-size: 14px; font-weight: 620; color: #3c3a35; line-height: 1.4; overflow-wrap: anywhere; }
.store-pill-state { font-size: 11px; color: #8a877e; }
.store-pill:has(input:checked) { background: #111110; border-color: #111110; }
.store-pill:has(input:checked) .store-pill-name { color: #fff; }
.store-pill:has(input:checked) .store-pill-price { background: #fff; border-color: #fff; }
.store-pill:has(input:focus-visible) { outline: 2px solid #191816; outline-offset: 2px; }
.store-pill.is-off { cursor: not-allowed; background: #f5f4f0; border-style: dashed; }
.store-pill.is-off .store-pill-name, .store-pill.is-off .store-pill-price { opacity: .55; }
.store-pills.is-single .store-pill { cursor: default; flex-direction: row; gap: 12px; padding: 10px 16px; border-radius: 14px; }
.store-pills.is-single .store-pill:has(input:checked) { background: #fff; border-color: #d9d6cd; box-shadow: none; }
.store-pills.is-single .store-pill:has(input:checked) .store-pill-name { color: #1b1b18; }
.store-pills.is-single .store-pill:has(input:checked) .store-pill-price { background: #f3f2ee; border-color: #e3e1da; }
.store-pills.is-single .store-pill:hover { transform: none; box-shadow: none; border-color: #d9d6cd; }

.store-order-specs { margin: 0; }
.store-order-specs > div { display: flex; gap: 12px; font-size: 13px; line-height: 1.6; }
.store-order-specs dt { color: #86837a; flex: none; }
.store-qty { font: inherit; font-size: 14px; padding: 4px 10px; border: 1px solid #d9d6cd; border-radius: 8px; background: #fff; margin-right: 8px; }
.store-qty-note { color: #86837a; font-size: 12px; }
.store-order-specs dd { margin: 0; color: #3c3a35; overflow-wrap: anywhere; }
.store-fields { padding: 16px; border-radius: 14px; background: #fff; border: 1px solid #e6e3da; display: grid; gap: 10px; }
.store-fields-title { margin: 0; font-size: 13px; font-weight: 650; }
.store-field { display: grid; gap: 6px; font-size: 13px; color: #55534c; }
.store-field input { width: 100%; box-sizing: border-box; border: 1px solid #d6d6ce; border-radius: 10px; padding: 11px 12px; font: inherit; font-size: 16px; color: #22221f; background: #fff; }
.store-field input:focus { outline: 2px solid #30372b; outline-offset: 1px; }
.store-field small { font-size: 12px; line-height: 1.6; color: #86867c; }
.store-field small.store-field-check.is-bad { color: #b42318; font-weight: 600; }
.store-field small.store-field-check.is-ok { color: #2f7a3b; }
.store-field input[aria-invalid="true"] { border-color: #d92d20; background: #fffbfa; }
.store-fields-hint { margin: 0; font-size: 12px; color: #86867c; }
.store-email { margin-top: 2px; }
.store-channels > div { display: flex; flex-wrap: wrap; gap: 8px; }
.store-channels label { display: flex; align-items: center; gap: 8px; border: 1px solid #dedbd2; background: #fff; border-radius: 12px; padding: 10px 14px; font-size: 14px; cursor: pointer; }
.store-channels label:has(input:checked) { border-color: #191816; box-shadow: inset 0 0 0 1px #191816; }
.store-channels input, .store-agree input { accent-color: #1d1d1a; flex-shrink: 0; }
.store-channels p { margin: 0; font-size: 13px; color: #85827a; }
.store-checkout-notice { background: #efede7; border-radius: 12px; padding: 12px 14px; color: #6c695f; font-size: 12px; line-height: 1.8; margin: 0; }
.store-agree { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; line-height: 1.6; }
.store-agree a { color: inherit; text-decoration: underline; }
/* 环境检测截图（Claude 成品号）：下单前必须看到、必须勾选的提示，用提醒色框和购买区其他说明区分开 */
.store-envcheck { display: grid; gap: 10px; border: 1.5px solid rgba(154, 91, 12, .45); background: var(--warn-bg); border-radius: 12px; padding: 14px 16px; }
.store-envcheck-title { margin: 0; font-size: 15px; font-weight: 700; line-height: 1.5; color: var(--warn); }
.store-envcheck ol { margin: 0; padding-left: 20px; list-style: decimal; font-size: 13px; line-height: 1.8; color: #4b3b22; }
.store-envcheck a { color: inherit; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; overflow-wrap: anywhere; }
.store-envcheck-agree { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; font-weight: 600; line-height: 1.6; color: #5c3a06; padding-top: 10px; border-top: 1px solid rgba(154, 91, 12, .2); }
.store-envcheck-agree input { accent-color: var(--warn); flex-shrink: 0; }
/* 下单前须知（Claude 成品号两阶段交付流程、Max 20x 购买前提示）：购买区最上面的提醒色框，没有勾选；弹窗顶部同一个块。
   店主 10-28「有点挤」：时效做标题行，每个阶段一张白底小卡，步骤圆圈数字，行距放宽 */
.store-notice { display: grid; gap: 12px; border: 1.5px solid rgba(154, 91, 12, .4); background: var(--warn-bg); border-radius: 14px; padding: 16px 16px 14px; }
.store-notice-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; }
.store-notice-kicker { font-size: 12px; font-weight: 700; letter-spacing: .06em; color: #8a5a14; }
.store-notice-delivery { font-size: 17px; font-weight: 750; line-height: 1.4; color: var(--warn); letter-spacing: -.01em; }
.store-notice-phase { display: grid; gap: 8px; background: rgba(255, 255, 255, .72); border: 1px solid rgba(154, 91, 12, .18); border-radius: 12px; padding: 12px 14px; }
.store-notice-phase h4 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13.5px; font-weight: 700; color: #3f2f16; }
.store-notice-num { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: var(--warn); color: #fff; font-size: 12px; font-weight: 700; flex-shrink: 0; }
.store-notice-steps { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; counter-reset: notice-step; }
.store-notice-steps li { position: relative; padding-left: 26px; font-size: 13px; line-height: 1.75; color: #4b3b22; counter-increment: notice-step; }
.store-notice-steps li::before { content: counter(notice-step); position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid rgba(154, 91, 12, .5); color: #8a5a14; font-size: 11px; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.store-notice-phase.is-rules { background: transparent; border-color: transparent; padding: 0 2px; gap: 4px; }
.store-notice-phase.is-rules h4 { font-size: 12px; color: #8a5a14; letter-spacing: .02em; }
.store-notice-rules { margin: 0; padding-left: 18px; list-style: disc; font-size: 13px; line-height: 1.75; color: #4b3b22; }
.store-notice-statement { margin: 0; padding: 10px 12px; border-radius: 10px; background: #fdecec; border: 1px solid #f5c6c2; font-size: 13px; line-height: 1.75; font-weight: 600; color: #b42318; }
.store-notice-statement b { display: inline-block; margin-right: 6px; padding: 0 6px; border-radius: 5px; background: #b42318; color: #fff; font-size: 12px; line-height: 20px; vertical-align: 1px; }
.store-confirm-after .store-notice-statement { font-size: 13px; color: #b42318; }
.store-notice-facts { margin: 0; display: grid; gap: 4px; background: rgba(255, 255, 255, .72); border: 1px solid rgba(154, 91, 12, .18); border-radius: 12px; padding: 10px 14px; }
.store-notice-facts > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 10px; font-size: 13px; line-height: 1.7; color: #4b3b22; }
.store-notice-facts dt { color: #8a5a14; }
.store-notice-facts dd { margin: 0; overflow-wrap: anywhere; }
.store-ack-hint { margin: -4px 0 0; font-size: 12px; line-height: 1.7; color: #77746b; text-align: center; }
/* U 付款须知（店主 10-30，对标上家付款前的「下单提示」）：选了 USDT 才显示在弹窗最上面，红框编号清单 + 必须勾选；
   购买区支付方式下面一行短提醒，选中 USDT 时用 :has 显示 */
.store-upay { display: grid; gap: 12px; border: 1.5px solid rgba(178, 34, 34, .45); background: #fff4f2; border-radius: 14px; padding: 16px 16px 14px; }
.store-upay[hidden] { display: none; }
.store-upay-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0; font-size: 16px; font-weight: 750; color: #b22222; }
.store-upay-title small { font-size: 12.5px; font-weight: 600; color: #8f2a1d; }
.store-upay-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; counter-reset: upay; }
.store-upay-list li { position: relative; padding-left: 26px; font-size: 13.5px; line-height: 1.75; color: #4a2a22; counter-increment: upay; }
.store-upay-list li::before { content: counter(upay); position: absolute; left: 0; top: 3px; width: 18px; height: 18px; border-radius: 50%; background: #b22222; color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; line-height: 1; }
.store-upay-list b { color: #2e1a14; font-weight: 700; }
.store-upay-list [hidden] { display: none; }
/* 退款地址（店主 10-31，src/refund-address.js）：清单下面、勾选上面；下面那行跟着输入变成认出的网络（绿）或哪里不对（红） */
.store-upay-refund { display: grid; gap: 6px; padding: 12px; border-radius: 10px; background: #fff; border: 1px solid rgba(178, 34, 34, .3); }
.store-upay-refund label { display: flex; align-items: baseline; gap: 8px; font-size: 13.5px; font-weight: 700; color: #2e1a14; }
.store-upay-refund label small { font-size: 12px; font-weight: 600; color: #b22222; }
.store-upay-refund input { width: 100%; box-sizing: border-box; border: 1px solid #d6d6ce; border-radius: 10px; padding: 11px 12px; font-size: 16px; color: #22221f; background: #fff; }
.store-upay-refund input::placeholder { font-family: var(--font); font-size: 14px; color: #a3a198; }
.store-upay-refund input:focus { outline: 2px solid #30372b; outline-offset: 1px; }
.store-upay-refund input[aria-invalid="true"] { border-color: #d92d20; background: #fffbfa; }
.store-upay-refund-tip { margin: 0; font-size: 12.5px; line-height: 1.65; color: #6d5a52; }
.store-upay-refund-tip.is-ok { color: #2f7a3b; font-weight: 600; }
.store-upay-refund-tip.is-bad { color: #b42318; font-weight: 600; }
.store-upay-refund:has(.is-ok) { border-color: #1f7a3a; background: #f1faf3; }
.store-upay-agree { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; font-weight: 650; line-height: 1.6; color: #7a1d12; padding: 10px 12px; border-radius: 10px; background: #fff; border: 1px solid rgba(178, 34, 34, .3); cursor: pointer; }
.store-upay-agree input { accent-color: #b22222; flex-shrink: 0; width: 18px; height: 18px; margin: 1px 0 0; }
.store-upay-agree:has(input:checked) { border-color: #1f7a3a; color: #1f5c32; background: #f1faf3; }
.store-channels .store-upay-hint { display: none; margin: 10px 0 0; padding: 9px 12px; border-radius: 10px; background: #fff4f2; color: #8f2a1d; font-size: 12.5px; line-height: 1.7; }
.store-channels .store-upay-hint b { color: #b22222; }
.store-channels:has(input[value="usdt"]:checked) .store-upay-hint { display: block; }
/* 「我已知晓」弹窗：沿用客服弹窗 .contact 的外观和淡入淡出；中间 [data-confirm-body] 自己滚动，头尾固定，手机上接近全屏 */
/* 注意：display 只能写在 [open] 上，写在基础规则上弹窗没打开也会显示在页面里（店主 10-28 截图里的 bug） */
.store-confirm { width: min(600px, calc(100vw - 32px)); max-height: min(88vh, 88dvh); padding: 18px 0 0; grid-template-rows: auto auto minmax(0, 1fr) auto; }
.store-confirm[open] { display: grid; }
.store-confirm .contact-head { padding: 0 22px; margin-bottom: 4px; }
.store-confirm-head { justify-content: flex-start; gap: 6px; }
.store-confirm-back { margin-left: -8px; color: var(--ink-2); }
.store-confirm-back:hover { background: var(--line-2); }
.store-confirm-after { width: min(380px, calc(100vw - 32px)); display: grid; gap: 12px; padding: 22px 24px 24px; }
.store-confirm-after[open] { display: grid; }
.store-confirm-after h2 { margin: 0; font-size: 17px; font-weight: 650; }
.store-confirm-after p { margin: 0; font-size: 14px; line-height: 1.75; color: var(--ink-2); }
.store-confirm-after .btn { height: 46px; border-radius: 12px; font-size: 15px; margin-top: 4px; }
.store-confirm-sub { margin: 0; padding: 0 22px 12px; font-size: 13px; line-height: 1.6; color: var(--ink-3); }
.store-confirm-body { overflow-y: auto; overscroll-behavior: contain; padding: 18px 24px 24px; border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); background: #faf9f6; display: grid; gap: 20px; align-content: start; -webkit-overflow-scrolling: touch; }
.store-confirm-body:focus-visible { outline: 2px solid var(--ink); outline-offset: -2px; }
.store-confirm-email { display: grid; gap: 2px; padding: 12px 14px; border-radius: 12px; background: #fff; border: 1px solid var(--line); font-size: 13px; line-height: 1.6; }
.store-confirm-email span { color: var(--ink-3); font-size: 12px; }
.store-confirm-email b { font-weight: 650; overflow-wrap: anywhere; }
.store-confirm-email small { color: var(--ink-3); }
.store-confirm-email[hidden] { display: none; }
/* 弹窗里的详情表（店主 10-28「这块 UI 有点挤」、10-29 截图又挤）：这些行复用页面「商品详情」的 .store-detail-group 结构，
   页面那套规则在文件后面而且更具体（6px 8px 紧凑行距、负外边距、手机 76px 标签列），之前把这里写的宽松版全盖掉了。
   所以弹窗里一律用三层类选择器压过去：行距内边距放宽、标签列略宽、手机上标签和值上下排 */
.store-confirm .store-confirm-details { display: grid; gap: 26px; }
.store-confirm .store-confirm-details .store-detail-group { padding: 0; margin: 0; border: 0; }
.store-confirm .store-confirm-details .store-detail-group[hidden] { display: none; }
.store-confirm .store-confirm-details .store-detail-group h3 { margin: 0 0 10px; font-size: 14px; font-weight: 700; letter-spacing: .01em; color: var(--ink); }
.store-confirm .store-confirm-details .store-detail-group dl { margin: 0; display: grid; gap: 0; background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.store-confirm .store-confirm-details .store-detail-group dl > div { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 16px; margin: 0; padding: 14px 18px; border-top: 1px solid var(--line-2); border-radius: 0; background: none; font-size: 14px; line-height: 1.8; transition: none; }
.store-confirm .store-confirm-details .store-detail-group dl > div:first-child { border-top: 0; }
.store-confirm .store-confirm-details .store-detail-group dl > div[hidden] { display: none; }
.store-confirm .store-confirm-details .store-detail-group dl > div:hover { background: none; }
.store-confirm .store-confirm-details .store-detail-group dl > div.store-detail-figure { grid-template-columns: minmax(0, 1fr); gap: 8px; }
.store-confirm .store-confirm-details .store-detail-group dt { color: var(--ink-3); font-size: 13px; padding-top: 2px; }
.store-confirm .store-confirm-details .store-detail-group dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.store-confirm .store-confirm-details .store-detail-figure dd img { max-width: 100%; border-radius: 10px; }
.store-confirm-end { margin: 4px 0 0; text-align: center; font-size: 12px; color: var(--ink-3); }
.store-confirm-end::before, .store-confirm-end::after { content: ' — '; }
/* 底部：顶边那条分隔线就是阅读进度条（滑多少亮多少，看完变绿），让人知道还剩多少，不至于以为没完没了 */
.store-confirm-foot { position: relative; padding: 14px 22px 20px; display: grid; gap: 10px; }
.store-confirm-bar { position: absolute; top: -1px; left: 0; right: 0; height: 3px; background: var(--line-2); overflow: hidden; }
.store-confirm-bar i { display: block; height: 100%; width: 0; background: var(--warn); transition: width .25s ease; }
.store-confirm-foot:has(.is-ok) .store-confirm-bar i { background: #1f7a3a; }
.store-confirm-progress { margin: 0; font-size: 13px; line-height: 1.5; color: var(--warn); font-weight: 600; }
.store-confirm-progress::before { content: '↓ '; }
.store-confirm-progress.is-ok { color: #1f7a3a; }
.store-confirm-progress.is-ok::before { content: '✓ '; }
.store-confirm-foot .btn { height: 48px; border-radius: 12px; font-size: 15px; }
.store-confirm-foot .btn[disabled] { opacity: .45; cursor: not-allowed; }
.store-confirm-foot .btn.is-pop { animation: store-pill-pop .35s var(--ease); }
@media (max-width: 640px) {
  .store-confirm { width: calc(100vw - 16px); max-height: min(92vh, 92dvh); }
  .store-confirm .contact-head, .store-confirm-sub, .store-confirm-foot { padding-left: 16px; padding-right: 16px; }
  .store-confirm-body { padding: 14px 14px 20px; gap: 18px; }
  .store-confirm .store-confirm-details { gap: 22px; }
  .store-confirm .store-confirm-details .store-detail-group dl > div { grid-template-columns: 1fr; gap: 4px; padding: 13px 14px; line-height: 1.75; }
  .store-confirm .store-confirm-details .store-detail-group dt { font-size: 12px; padding-top: 0; }
  .store-notice-facts > div { grid-template-columns: 72px minmax(0, 1fr); }
  .store-notice { padding: 14px 12px 12px; }
  .store-notice-phase { padding: 10px 12px; }
}
.store-total { display: flex; justify-content: space-between; align-items: baseline; padding-top: 14px; border-top: 1px solid #e3e1da; }
.store-total span { font-size: 13px; color: #77746b; }
.store-total strong { font-size: 26px; letter-spacing: -.04em; }
.store-order .btn.primary { height: 52px; font-size: 16px; border-radius: 14px; }

.store-detail { margin-top: 48px; padding: 28px 30px; background: #fff; border: 1px solid #e6e3da; border-radius: 22px; }
.store-detail h2 { font-size: 20px; margin: 0; letter-spacing: -.02em; }
.store-detail h2 span { font-size: 13px; font-weight: 400; color: #8a877e; margin-left: 6px; }

/* ---------- 买前四点（店主 10-29，src/key-facts.js）：价格正下方、永远展开；一个规格一张卡（data-variants），弹窗里放大版 .is-big ---------- */
.store-keys { display: grid; gap: 14px; margin: 0 0 22px; padding: 18px 20px 16px; background: #fff; border: 1.5px solid #191816; border-radius: 18px; box-shadow: 0 1px 2px rgba(0, 0, 0, .05), 0 18px 36px -28px rgba(25, 24, 22, .45); }
.store-keys[hidden] { display: none; }
.store-keys-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin: 0; font-size: 17px; font-weight: 750; letter-spacing: -.01em; color: #191816; }
.store-keys-title small { font-size: 12px; font-weight: 500; color: #6b675f; }
.store-keys-list { margin: 0; display: grid; gap: 8px; }
.store-key { display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 12px; align-items: start; align-content: start; padding: 10px 12px; border-radius: 12px; background: #faf9f6; border: 1px solid #efede7; }
.store-key dt { display: flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: #46443e; padding-top: 2px; }
.store-key dt svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.store-key dd { margin: 0; font-size: 14px; line-height: 1.65; color: #191816; overflow-wrap: anywhere; }
.store-key.is-warranty dd { display: grid; gap: 4px; align-content: start; }
.store-key-keep, .store-key-deny { display: flex; gap: 8px; align-items: flex-start; }
.store-key-keep b, .store-key-deny b { flex: none; display: inline-grid; place-items: center; min-width: 34px; height: 22px; padding: 0 7px; margin-top: 1px; border-radius: 6px; font-size: 12px; font-weight: 700; line-height: 1; }
.store-key-keep b { background: #e9f5ee; color: #2f7a4b; border: 1px solid #d5eadc; }
.store-key-deny b { background: #fdecec; color: #b42318; border: 1px solid #f5c6c2; }
.store-key-deny { color: #b42318; font-weight: 600; }
.store-key.is-format dd small { display: block; margin-top: 2px; font-size: 12px; color: #6b675f; font-weight: 400; }
.store-keys-rule { margin: 0; padding-top: 12px; border-top: 1px solid #e6e3da; font-size: 12.5px; line-height: 1.7; color: #46443e; }
.store-keys-rule::before { content: "!"; display: inline-grid; place-items: center; width: 16px; height: 16px; margin-right: 6px; border-radius: 50%; background: #191816; color: #fff; font-size: 11px; font-weight: 700; vertical-align: -2px; }
@media (min-width: 861px) {
  .store-keys-list { grid-template-columns: 1fr 1fr; }
  .store-key { grid-template-columns: 1fr; gap: 6px; }
}
/* 弹窗里的放大版：字号大一级，标题换说法 */
.store-confirm .store-keys { padding: 16px 18px 14px; margin: 0; box-shadow: none; }
.store-confirm .store-keys-list { grid-template-columns: 1fr; }
.store-confirm .store-key { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; }
.store-confirm .store-key dd { font-size: 15px; }
.store-confirm .store-keys-rule { font-size: 13px; }
.store-confirm-end a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.store-detail-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 14px; }
.store-detail-head p { margin: 0; font-size: 13px; color: #6b675f; }
.store-detail-group { padding-top: 20px; }
.store-detail-group + .store-detail-group { margin-top: 4px; border-top: 1px solid #efede7; }
.store-detail-group h3 { font-size: 15px; font-weight: 650; margin: 0 0 10px; color: #26251f; }
.store-detail-group dl { margin: 0; display: grid; gap: 2px; }
.store-detail-group dl > div { display: grid; grid-template-columns: 104px minmax(0, 1fr); gap: 16px; font-size: 14px; line-height: 1.75; padding: 6px 0; }
.store-detail-group dt { color: #8a877e; }
.store-detail-group dd { margin: 0; color: #2f2e29; overflow-wrap: anywhere; }
.store-detail-group dl > div.store-detail-figure { grid-template-columns: minmax(0, 1fr); padding: 8px 0 12px; }
.store-detail-figure dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.store-detail-figure img { display: block; width: 100%; max-width: 760px; height: auto; border-radius: 14px; border: 1px solid #e6e3da; }
.store-buybar { display: none; }
/* 购买区滚出屏幕时底部滑出的「去下单」条：原来只有手机有，店主 10-28 说购买按钮离得远，桌面也显示 */
.store-buybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .96); backdrop-filter: blur(10px); border-top: 1px solid #e3e1da; box-shadow: 0 -8px 24px -16px rgba(0, 0, 0, .25); }
.store-buybar[hidden] { display: none; }
.store-buybar-price strong { font-size: 22px; letter-spacing: -.03em; }
.store-buybar-price small { font-size: 12px; color: #7c796f; margin-left: 2px; }
.store-buybar .btn { height: 44px; padding: 0 22px; border-radius: 12px; }
@media (min-width: 861px) { .store-buybar { justify-content: center; gap: 28px; } .store-buybar .btn { padding: 0 40px; } }

@media (max-width: 860px) {
  .store-shop { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .store-side { position: static; padding: 0; background: none; border: 0; border-radius: 0; }
  .store-side .store-eyebrow, .store-side h2 { display: none; }
  .store-cats { display: flex; gap: 8px; overflow-x: auto; padding: 2px 2px 6px; scrollbar-width: none; }
  .store-cats::-webkit-scrollbar { display: none; }
  .store-cat { flex: none; width: auto; padding: 6px 12px 6px 6px; background: #fff; border-color: #e3e0d7; border-radius: 99px; font-size: 14px; }
  .store-cat[aria-pressed=true] { background: #111110; border-color: #111110; color: #fff; box-shadow: none; }
  .store-cat[aria-pressed=true] .store-cat-count { background: rgba(255, 255, 255, .18); color: #fff; }
  .store-cat-icon { width: 24px; height: 24px; border-radius: 99px; }
  .store-cat-name { overflow: visible; }
  .store-item { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .store-item-media { display: none; }
  .store-item-thumb { display: block; width: 72px; height: 72px; border-radius: 18px; flex: none; object-fit: cover; box-shadow: 0 1px 2px rgba(0, 0, 0, .12); }
  .store-item-thumb.store-art-fallback { display: grid; font-size: 28px; }
}
@media (max-width: 720px) {
  .store { padding-top: 16px; padding-bottom: 96px; }
  .store-promo { margin-bottom: 16px; border-radius: 18px; padding: 16px 14px 14px; }
  .store-promo-head { gap: 10px; margin-bottom: 12px; }
  .store-promo-head strong { font-size: 17px; width: 100%; }
  .store-promo-timer { margin-left: 0; flex-direction: row; align-items: center; gap: 8px; }
  .store-promo-timer > span { font-size: 13px; padding: 5px 10px; }
  .store-promo-items { grid-template-columns: 1fr; }
  /* 手机上名字和价格不并排：第一行图 + 名字，第二行原价 / 促销价 / 立即购买，名字不会被挤得一字一行 */
  .store-promo-item { padding: 12px 14px; column-gap: 12px; row-gap: 10px; grid-template-columns: 44px minmax(0, 1fr) auto; grid-template-areas: "art body body" "price price cta"; }
  .store-promo-art { width: 44px; height: 44px; border-radius: 12px; }
  .store-promo-body { grid-template-columns: 1fr; }
  .store-promo-body strong { font-size: 15px; }
  .store-promo-price { justify-self: start; align-self: center; }
  .store-promo-price b { font-size: 22px; }
  .store-promo-cta { align-self: center; }
  .store-item-price .store-item-was { font-size: 15px; }
  .store-featured { margin-bottom: 16px; }
  .store-featured-card { grid-template-columns: 112px minmax(0, 1fr); border-radius: 18px; }
  .store-featured-body { padding: 16px 16px 18px; gap: 10px; }
  .store-featured-body strong { font-size: 17px; }
  .store-featured-points { gap: 6px; }
  .store-featured-points span { font-size: 11px; padding: 3px 8px; }
  .store-featured-price { font-size: 26px; }
  .store-featured-cta { padding: 9px 14px; font-size: 13px; }
  .store-main { border-radius: 18px; }
  .store-main-head { flex-direction: column; align-items: stretch; gap: 12px; padding: 16px 14px 14px; }
  .store-main-head h1 { font-size: 22px; }
  .store-search { width: 100%; height: 44px; }
  .store-search button { height: 34px; padding: 0 14px; }
  .store-list-head { display: none; }
  .store-row { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "main price" "main buy"; row-gap: 6px; column-gap: 10px; padding: 12px 14px; }
  .store-row-main { grid-area: main; padding-left: 56px; }
  .store-row-art { left: 14px; width: 44px; height: 44px; border-radius: 12px; }
  .store-row-name { font-size: 14px; }
  .store-row-price { grid-area: price; font-size: 16px; }
  .store-row-stock { display: none; }
  .store-row-buy { grid-area: buy; height: 32px; min-width: 60px; padding: 0 12px; font-size: 13px; }
  .store-result-count { padding: 12px 14px; }
  .store-crumbs { margin-bottom: 16px; }
  .store-crumbs-path { display: none; }
  .store-item-title { font-size: 22px; margin-bottom: 10px; }
  .store-item-price { margin-bottom: 18px; }
  .store-item-price strong { font-size: 32px; }
  .store-pill { min-width: calc(50% - 5px); padding: 10px 12px 12px; }
  .store-detail { margin-top: 32px; padding: 20px 16px; border-radius: 18px; }
  .store-keys { padding: 14px 14px 12px; border-radius: 16px; margin-bottom: 18px; }
  .store-key { grid-template-columns: 1fr; gap: 4px; padding: 9px 11px; }
  .store-confirm .store-key { grid-template-columns: 1fr; gap: 4px; }
  .store-confirm .store-key dd { font-size: 14px; }
  .store-detail-group dl > div { grid-template-columns: 76px minmax(0, 1fr); gap: 12px; font-size: 13px; }
  .store-help { margin-top: 30px; gap: 18px; }
}

/* ---------- 动效（2026-10-26）：进场交错、悬停轻抬、切规格时价格和详情行轻轻冒出；只动 transform / opacity ---------- */
@keyframes store-row-in { from { opacity: 0; transform: translateY(6px); } }
@keyframes store-pill-pop { 50% { transform: scale(1.035); } }
@keyframes store-bump { from { opacity: 0; transform: translateY(5px); } }
@keyframes store-detail-in { from { opacity: 0; transform: translateX(5px); } }

/* 对比度：Lighthouse 报的几处浅灰加深一点，看着也更清楚 */
.store-eyebrow { color: #6b675f; }
.store-row-price small, .store-row-price em, .store-row-stock, .store-pill-state { color: #6f6c64; }
.store-result-count, .store-help p:not(.store-eyebrow), .store-no-results { color: #6f6e66; }
.store-tag.is-hot { color: #9e4a12; }
.store-row.is-off .store-row-buy { color: #5f5c55; }

/* 首页：今日推荐大卡片 */
.store-featured-card { transition: transform .28s var(--ease), box-shadow .28s var(--ease); }
.store-featured-card:active { transform: translateY(0) scale(.995); }
.store-featured-art { transition: transform .7s var(--ease-out); transform-origin: 50% 60%; }
.store-featured-card:hover .store-featured-art { transform: scale(1.04); }
.store-featured-cta { transition: background .2s, transform .2s var(--ease); }
.store-featured-cta span { display: inline-block; transition: transform .25s var(--ease); }
.store-featured-card:hover .store-featured-cta span { transform: translateX(3px); }

/* 左边分类栏 */
.store-cat { transition: background .18s var(--ease), border-color .18s var(--ease), box-shadow .22s var(--ease), color .18s, transform .14s var(--ease); }
.store-cat:active { transform: scale(.98); }
.store-cat-icon { transition: transform .22s var(--ease); }
@media (hover: hover) { .store-cat:hover .store-cat-icon { transform: scale(1.06); } }
.store-cat-count { transition: background .18s, color .18s; }

/* 搜索与排序 */
.store-search { transition: border-color .18s, box-shadow .22s var(--ease); }
.store-search button { transition: background .18s, transform .14s var(--ease); }
.store-search button:hover { background: #2a2926; }
.store-search button:active { transform: scale(.96); }
.store-sort button { transition: background .18s, color .18s, box-shadow .18s; }

/* 商品行：首次进场和切换分类、排序时按顺序淡入；悬停时图标和「购买」轻轻抬起 */
.store-row.is-in { animation: store-row-in .34s var(--ease) both; animation-delay: min(calc(var(--i, 0) * 24ms), 280ms); }
.store-row-art { transition: transform .25s var(--ease), box-shadow .25s var(--ease); }
.store-row:hover .store-row-art { transform: translateY(-50%) scale(1.06); box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .35); }
.store-row-buy { transition: background .18s, color .18s, transform .18s var(--ease), box-shadow .22s var(--ease); }
.store-row:hover .store-row-buy { background: #2a2926; transform: translateY(-1px); box-shadow: 0 8px 16px -10px rgba(25, 24, 22, .5); }
.store-row:active .store-row-buy { transform: scale(.97); box-shadow: none; }
.store-row.is-off:hover .store-row-buy { background: #e4e2db; transform: none; box-shadow: none; }

/* 商品页 */
.store-back { transition: border-color .18s, transform .18s var(--ease), box-shadow .2s var(--ease); }
@media (hover: hover) { .store-back:hover { box-shadow: 0 6px 14px -10px rgba(25, 24, 22, .35); } }
.store-back:active { transform: scale(.97); box-shadow: none; }
.store-back span { transition: transform .2s var(--ease); }
@media (hover: hover) { .store-back:hover span { transform: translateX(-2px); } }
.store-pill { transition: border-color .18s var(--ease), background .2s var(--ease), box-shadow .22s var(--ease), transform .18s var(--ease); }
@media (hover: hover) { .store-pill:hover { transform: translateY(-1px); box-shadow: 0 8px 16px -12px rgba(25, 24, 22, .4); } }
.store-pill:has(input:checked) { box-shadow: 0 10px 20px -14px rgba(25, 24, 22, .6); }
.store-pill.is-off:hover { transform: none; box-shadow: none; }
.store-pill.is-pop { animation: store-pill-pop .28s var(--ease); }
.store-pill-name, .store-pill-price { transition: color .2s, background .2s, border-color .2s; }
.store-item-price strong, .store-total strong, .store-buybar-price strong { display: inline-block; font-variant-numeric: tabular-nums; }
.store-item-price strong.is-bump, .store-total strong.is-bump, .store-buybar-price strong.is-bump { animation: store-bump .28s var(--ease); }
.store-channels label { transition: border-color .18s, box-shadow .18s var(--ease), transform .16s var(--ease); }
.store-channels label:hover { border-color: #9f9b91; }
.store-channels label:active { transform: scale(.98); }
.store-detail-group dl > div.is-in { animation: store-detail-in .3s var(--ease); }

/* 常见问题：右侧「+」转成「×」，答案淡入 */
.store-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; list-style: none; }
.store-faq summary::-webkit-details-marker { display: none; }
.store-faq summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; border: 1px solid #d9d6cd; color: #6b675f; font-size: 15px; line-height: 1; transition: transform .25s var(--ease), background .2s, border-color .2s, color .2s; }
.store-faq details[open] summary::after { transform: rotate(45deg); background: #111110; border-color: #111110; color: #fff; }
.store-faq details[open] > p { animation: rise-in .28s var(--ease); }

/* 底部「去下单」条：滑入滑出，而不是突然出现（store.js 用 is-show 控制；桌面和手机都用） */
.store-buybar { transform: translateY(110%); visibility: hidden; transition: transform .32s var(--ease-out), visibility 0s linear .32s; }
.store-buybar.is-show { transform: none; visibility: visible; transition: transform .32s var(--ease-out), visibility 0s; }
/* 往下滚到的区块轻轻浮现（store.js 给加 js-reveal；没有 JS 时照常显示） */
.js-reveal { opacity: 0; transform: translateY(14px); transition: opacity .55s var(--ease-out), transform .55s var(--ease-out); }
.js-reveal.is-visible { opacity: 1; transform: none; }

@media (max-width: 720px) {
  /* 手机底部「去下单」条：滑入滑出，而不是突然出现（store.js 用 is-show 控制） */
}

@media (prefers-reduced-motion: reduce) {
  .store-row.is-in, .store-pill.is-pop, .is-bump, .store-detail-group dl > div.is-in, .store-faq details[open] > p { animation: none !important; }
  .js-reveal { opacity: 1; transform: none; transition: none; }
  .store-featured-card, .store-featured-art, .store-featured-cta span, .store-cat, .store-cat-icon, .store-row-art, .store-row-buy, .store-back, .store-back span, .store-pill, .store-channels label, .store-buybar, .store-faq summary::after { transition: none; }
  .store-featured-card:hover .store-featured-art, .store-row:hover .store-row-art, .store-cat:hover .store-cat-icon, .store-pill:hover, .store-row:hover .store-row-buy { transform: none; }
  .store-row:hover .store-row-art { transform: translateY(-50%); }
}

/* ---------- 商品页动效（2026-10-26 第二批）：左图跟着滚动轻轻缩放上浮、悬停随指针微倾斜并带一道高光；右栏按顺序入场；价格数字滚动到新值 ---------- */
@keyframes store-media-in { from { opacity: 0; transform: translateY(14px) scale(.965); } }
@keyframes store-shake { 0%, 100% { transform: translateX(0); } 20% { transform: translateX(-5px); } 40% { transform: translateX(5px); } 60% { transform: translateX(-3px); } 80% { transform: translateX(3px); } }

/* 入场：store.js 给 #store 加 is-enter，放完就去掉；fill 只用 backwards，之后的 transform 由脚本接管 */
#store.is-enter .store-item-stick { animation: store-media-in .7s var(--ease-out) backwards; }
#store.is-enter .store-item-head, #store.is-enter .store-keys, #store.is-enter .store-order > * { animation: rise-in .5s var(--ease-out) backwards; }
#store.is-enter .store-item-head { animation-delay: 40ms; }
#store.is-enter .store-order > :nth-child(1) { animation-delay: 120ms; }
#store.is-enter .store-order > :nth-child(2) { animation-delay: 170ms; }
#store.is-enter .store-order > :nth-child(3) { animation-delay: 220ms; }
#store.is-enter .store-order > :nth-child(4) { animation-delay: 270ms; }
#store.is-enter .store-order > :nth-child(5) { animation-delay: 320ms; }
#store.is-enter .store-order > :nth-child(6) { animation-delay: 370ms; }
#store.is-enter .store-order > :nth-child(7) { animation-delay: 420ms; }
#store.is-enter .store-order > :nth-child(8) { animation-delay: 470ms; }
#store.is-enter .store-order > :nth-child(n+9) { animation-delay: 520ms; }

/* 左图：脚本接管 transform（跟随滚动的缩放上浮 + 指针倾斜），这里只管阴影和高光 */
.store-item-stick.is-live { will-change: transform; }
.store-item-stick.is-live .store-item-art { transition: box-shadow .5s var(--ease); }
.store-item-sheen { position: absolute; inset: 0; border-radius: 28px; pointer-events: none; opacity: 0; transition: opacity .4s var(--ease); background: radial-gradient(260px circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .17), rgba(255, 255, 255, 0) 70%); }
/* 只在真有鼠标的设备上响应悬停：平板上点一下不会留下高光和加深的阴影 */
@media (hover: hover) {
  .store-item-stick.is-live:hover .store-item-art { box-shadow: 0 2px 4px rgba(0, 0, 0, .08), 0 44px 80px -36px rgba(25, 24, 22, .62); }
  .store-item-stick.is-live:hover .store-item-sheen { opacity: 1; }
}

/* 购买区：支付方式选中时弹一下；没勾同意就提交时勾选行左右晃一下；报错信息冒出来；「立即购买」悬停扫过一道光 */
.store-channels label.is-pop { animation: store-pill-pop .28s var(--ease); }
.store-agree.is-shake, .store-envcheck.is-shake, .store-notice.is-shake, .store-upay.is-shake { animation: store-shake .4s var(--ease); }
.store-order .error:not([hidden]) { animation: rise-in .25s var(--ease); }
.store-order .btn.primary { position: relative; overflow: hidden; }
.store-order .btn.primary::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 55%; background: linear-gradient(105deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, 0) 100%); transform: translateX(-190%) skewX(-14deg); pointer-events: none; }
@media (hover: hover) { .store-order .btn.primary:not(:disabled):hover::after { transform: translateX(270%) skewX(-14deg); transition: transform .8s var(--ease); } }

/* 详情行：鼠标扫过时淡淡的底色，看长表格不容易串行 */
.store-detail-group dl > div:not(.store-detail-figure) { padding: 6px 8px; margin: 0 -8px; border-radius: 8px; transition: background .15s ease; }
.store-detail-group dl > div:not(.store-detail-figure):hover { background: #faf9f6; }

@media (prefers-reduced-motion: reduce) {
  #store.is-enter .store-item-stick, #store.is-enter .store-item-head, #store.is-enter .store-order > *, .store-channels label.is-pop, .store-agree.is-shake, .store-envcheck.is-shake, .store-notice.is-shake, .store-upay.is-shake, .store-order .error:not([hidden]) { animation: none !important; }
  .store-item-sheen, .store-order .btn.primary::after { display: none; }
  .store-item-stick.is-live .store-item-art, .store-detail-group dl > div { transition: none; }
}

/* ---------- 单独分享一个商品（10-26）：商品页右上角「分享链接」，下架的分享链接回首页时顶部提示 ---------- */
.store-share { display: inline-flex; align-items: center; gap: 6px; height: 38px; margin-left: auto; padding: 0 14px 0 12px; border-radius: 99px; background: #fff; border: 1px solid #dcd9cf; color: #23231f; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: border-color .18s, transform .18s var(--ease), box-shadow .2s var(--ease); }
.store-share svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.store-share:hover { border-color: #9f9b91; }
@media (hover: hover) { .store-share:hover { box-shadow: 0 6px 14px -10px rgba(25, 24, 22, .35); } }
.store-share:active { transform: scale(.97); box-shadow: none; }
.store-share.copied { color: var(--ok); border-color: #b9dcc6; }
.store-gone { margin: 0 0 18px; padding: 12px 16px; border-radius: 14px; background: #fff7e6; border: 1px solid #f0dcae; color: #6b4b12; font-size: 14px; }
@media (prefers-reduced-motion: reduce) { .store-share { transition: none; } }

/* 桌面端商品页改成一张大网格：左图的粘性范围从「购买区那一行」扩大到「购买区 + 商品详情」，往下读详情时左图一直陪着，不会读到一半被顶走 */
@media (min-width: 861px) {
  body.store-item-page .store { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); column-gap: 44px; align-items: start; }
  body.store-item-page .store-crumbs, body.store-item-page .store-help { grid-column: 1 / -1; }
  body.store-item-page .store-item { display: contents; }
  body.store-item-page .store-item-media { grid-column: 1; grid-row: 2 / span 3; align-self: stretch; }
  body.store-item-page .store-item-main { grid-column: 2; grid-row: 2; min-width: 0; }
  body.store-item-page .store-how { grid-column: 2; grid-row: 3; min-width: 0; }
  body.store-item-page .store-detail { grid-column: 2; grid-row: 4; min-width: 0; }
}

/* ---------- 支付方式（2026-10-26）：带图标的选项，USDT 按链路分开；选中样式和规格按钮一致 ---------- */
.store-channels label.store-pay { gap: 9px; padding: 9px 14px 9px 10px; border-radius: 14px; font-weight: 600; }
.store-channels label.store-pay input { position: absolute; opacity: 0; pointer-events: none; }
.store-channels label.store-pay { position: relative; }
.store-channels label.store-pay:has(input:checked) { background: #111110; border-color: #111110; color: #fff; box-shadow: 0 10px 20px -14px rgba(25, 24, 22, .6); }
.store-channels label.store-pay .store-pay-note { margin-left: -3px; font-size: 12px; font-weight: 500; opacity: .62; }
.store-total-fee { margin: 4px 0 0; font-size: 12px; color: #85827a; text-align: right; }
.store-channels label.store-pay:has(input:focus-visible) { outline: 2px solid #191816; outline-offset: 2px; }
.store-pay-ico { position: relative; display: inline-grid; place-items: center; width: 24px; height: 24px; flex: none; }
.store-pay-ico .pay-ico { width: 24px; height: 24px; display: block; }
.store-pay-badge { position: absolute; right: -6px; bottom: -6px; width: 14px; height: 14px; display: grid; place-items: center; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1.5px #fff; }
.store-pay-badge svg { width: 12px; height: 12px; display: block; }
.store-channels label.store-pay:has(input:checked) .store-pay-badge { background: #111110; box-shadow: 0 0 0 1.5px #111110; }

/* ---------- 借鉴 tiancexai（2026-10-26）：联系入口卡片、纸飞机轻飘、今日推荐按钮定期扫光、库存状态小圆点 ---------- */
@keyframes store-float { 0%, 100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(2px, -3px) rotate(-8deg); } }
@keyframes store-glint { 0%, 78% { transform: translateX(-160%) skewX(-16deg); } 100% { transform: translateX(260%) skewX(-16deg); } }
.store-help { display: block; }
.store-help-head { margin-bottom: 16px; }
.store-help-head p:not(.store-eyebrow) { margin-top: 6px; }
.store-help-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.store-help-card { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 14px 14px 14px 16px; border: 1px solid #e3e0d7; border-radius: 16px; background: #fff; color: inherit; font: inherit; text-align: left; text-decoration: none; cursor: pointer; transition: transform .22s var(--ease), box-shadow .25s var(--ease), border-color .2s; }
@media (hover: hover) { .store-help-card:hover { transform: translateY(-2px); border-color: #c9c5bb; box-shadow: 0 14px 28px -20px rgba(25, 24, 22, .45); } }
.store-help-card:active { transform: translateY(0); box-shadow: none; }
.store-help-ico { display: grid; place-items: center; width: 40px; height: 40px; flex: none; border-radius: 12px; background: #f1efe9; color: #3c3a35; }
.store-help-ico .i { width: 20px; height: 20px; }
.store-help-card.is-tg .store-help-ico { background: #e7f2fa; color: #1675a5; }
.store-help-card.is-qq .store-help-ico { background: #e6f4fd; color: #1296db; }
.store-help-card.is-wx .store-help-ico { background: #e6f7ec; color: #07c160; }
.store-help-card.is-wx .store-help-ico .wx-ico { width: 20px; height: 20px; }
@media (hover: hover) { .store-help-card.is-tg:hover .store-help-ico .i { animation: store-float 1.6s var(--ease) infinite; } }
.store-help-text { display: grid; gap: 2px; min-width: 0; flex: 1; }
.store-help-text strong { font-size: 15px; font-weight: 650; overflow-wrap: anywhere; }
.store-help-text small { font-size: 12px; color: #6f6e66; }
.store-help-arrow { flex: none; color: #b5b1a6; transition: transform .22s var(--ease), color .2s; }
.store-help-arrow .i { width: 16px; height: 16px; }
@media (hover: hover) { .store-help-card:hover .store-help-arrow { transform: translateX(3px); color: #3c3a35; } }
.store-help-card.copied { border-color: #b9dcc6; }
.store-help-card.copied .store-help-ico { background: #e6f2ea; color: #24764a; }
/* 今日推荐的「立即购买」：每 7 秒扫过一道光，提示它能点 */
.store-featured-cta { position: relative; overflow: hidden; }
.store-featured-cta::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 45%; background: linear-gradient(105deg, rgba(27, 21, 18, 0) 0%, rgba(27, 21, 18, .12) 50%, rgba(27, 21, 18, 0) 100%); transform: translateX(-160%) skewX(-16deg); animation: store-glint 7s ease-in-out infinite; pointer-events: none; }
/* 「有货」前面一个小圆点 */
.store-row-stock.is-ok { display: inline-flex; align-items: center; gap: 6px; }
.store-row-stock.is-ok::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #2f9d5f; box-shadow: 0 0 0 3px rgba(47, 157, 95, .14); }
@media (max-width: 720px) {
  .store-help-cards { grid-template-columns: 1fr; gap: 10px; }
  .store-help-card { padding: 12px 12px 12px 14px; border-radius: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .store-featured-cta::after { animation: none; }
  .store-help-card.is-tg:hover .store-help-ico .i { animation: none; }
  .store-help-card, .store-help-arrow { transition: none; }
  .store-help-card:hover { transform: none; }
}

/* ---------- CSS/UX 审查第二轮修正（2026-10-26） ---------- */
/* 支付方式选中时：背景、文字、角标和边框一起过渡（以前只有边框在过渡，背景一下子变黑） */
.store-channels label.store-pay { transition: border-color .18s var(--ease), background .2s var(--ease), color .2s, box-shadow .22s var(--ease), transform .16s var(--ease); }
.store-pay-badge { transition: background .2s, box-shadow .2s; }
@media (max-width: 720px) {
  /* 手机商品页：底部「去下单」条会一直盖住页脚，把留白挪到页脚下面 */
  body.store-item-page .store { padding-bottom: 40px; }
  body.store-item-page .foot { margin-bottom: calc(76px + env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
  .store-channels label.store-pay, .store-pay-badge, .store-search, .store-search button, .store-sort button { transition: none; }
}
