/* 初醅 · 购物袋 / 结算页 */
body.shop-page{background:var(--paper);color:var(--ink)}
.shop-main{
  max-width:1440px;margin:0 auto;
  padding:calc(var(--nav-h) + 56px) var(--pad) 0;
}
.shop-nav .nav-cart.is-current{border-color:var(--ink);background:var(--paper-card)}
.shop-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:32px;
  padding-bottom:30px;border-bottom:1px solid var(--line-strong);
}
.shop-head h1{
  margin:14px 0 0;
  font-family:var(--serif);font-weight:400;
  font-size:clamp(44px,5.2vw,72px);line-height:1.05;letter-spacing:.02em;
  color:var(--ink-strong);
}
.shop-head .kicker{padding-top:0}
.shop-meta{
  margin:0;text-align:right;
  font-family:var(--mono);font-size:10px;letter-spacing:.14em;line-height:2;
  color:#5F6B4C;
}
.shop-steps{
  display:flex;align-items:center;gap:clamp(18px,4vw,44px);
  list-style:none;margin:22px 0 44px;padding:15px 0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.shop-steps li{
  display:flex;align-items:center;gap:9px;
  font-size:12.5px;letter-spacing:.12em;color:#5F6B4C;
}
.shop-steps li i{font-family:var(--mono);font-style:normal;font-size:10px;letter-spacing:.04em}
.shop-steps li.is-current{color:var(--ink)}
.shop-steps li.is-current i{color:var(--grain-deep)}
.shop-steps li.done{color:var(--leaf-ink)}
.shop-steps li.done i{color:var(--grain-deep)}
.cart-layout:has(.cart-empty:not([hidden])){grid-template-columns:1fr}
.cart-toolbar[hidden]{display:none !important}
.checkout-layout[hidden]{display:none !important}
.cart-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,320px);gap:clamp(28px,4vw,48px);align-items:start}
.cart-main{min-width:0}
.cart-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-bottom:14px;border-bottom:1px solid var(--line-strong);
  font-size:12.5px;color:#5F6B4C;
}
.cart-toolbar .cart-total-label b{font-family:var(--mono);font-weight:400;color:var(--ink)}
.cart-clear{
  font-size:11.5px;color:#5F6B4C;
  border-bottom:1px solid var(--line-strong);padding-bottom:2px;
}
.cart-clear:hover{color:var(--ink);border-color:var(--ink)}
.check{display:inline-flex;align-items:center;gap:10px;cursor:pointer;user-select:none;position:relative}
.check input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.check .box{
  position:relative;flex:none;display:block;width:16px;height:16px;
  border:1px solid var(--line-strong);background:var(--paper);
}
.check input:checked + .box{background:var(--ink);border-color:var(--ink)}
.check input:checked + .box::after{
  content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;
  border:solid var(--paper);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);
}
.check input:indeterminate + .box{background:var(--ink);border-color:var(--ink)}
.check input:indeterminate + .box::after{content:"";position:absolute;left:3px;right:3px;top:6px;height:2px;background:var(--paper)}
.check input:focus-visible + .box{outline:2px solid var(--grain-deep);outline-offset:3px}
.cart-item{
  display:grid;
  grid-template-columns:22px 78px minmax(0,1fr) 104px 82px 42px;
  gap:18px;align-items:center;
  padding:22px 0;border-bottom:1px solid var(--line);
}
.cart-thumb{width:78px;height:104px;display:flex;align-items:center;justify-content:center}
.cart-thumb svg{display:block;width:100%;height:100%}
.cart-info h3{
  margin:0;font-family:var(--serif);font-weight:400;font-size:24px;line-height:1.2;
  letter-spacing:.03em;color:var(--ink-strong);
}
.cart-info p{margin:5px 0 0;font-family:var(--mono);font-size:11px;letter-spacing:.04em;line-height:1.7;color:#5F6B4C}
.cart-line-total{font-family:var(--mono);font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}
.cart-line-total{text-align:right}
.cart-remove{
  font-size:11.5px;color:#5F6B4C;text-align:right;
  border-bottom:1px solid var(--line);padding-bottom:2px;
}
.cart-remove:hover{color:var(--ink);border-color:var(--ink)}
.cart-qty{display:flex;align-items:center}
.cart-qty .stepper{height:34px}
.cart-qty .stepper button{width:30px;height:32px}
.cart-qty .qty-value{width:34px;height:32px;font-size:12px}
.cart-summary{
  position:sticky;top:calc(var(--nav-h) + 24px);
  padding:clamp(22px,2.4vw,30px);
  border:1px solid var(--line-strong);background:var(--paper-card);
  box-shadow:0 24px 60px rgba(37,48,31,.07);
}
.cart-summary h2{
  margin:0 0 16px;padding-bottom:14px;border-bottom:1px solid var(--line);
  font-family:var(--serif);font-weight:400;font-size:26px;letter-spacing:.04em;
  color:var(--ink-strong);
}
.cart-summary .sum-row{padding:6px 0;font-size:13px}
.cart-summary .sum-row strong{font-size:14px}
.cart-summary .sum-pay strong{font-size:32px}
.cart-summary-note{margin:10px 0 16px;font-size:11.5px;line-height:1.7;color:#5F6B4C}
.cart-summary .btn{width:100%}
.cart-summary .link-arrow{margin-top:16px}
.cart-summary .btn:disabled{opacity:.38;cursor:not-allowed}
.cart-summary .btn:disabled:hover{background:var(--ink)}
.cart-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;
  min-height:360px;padding:40px 20px;border-bottom:1px solid var(--line);
  text-align:center;
}
.cart-empty[hidden],.cart-summary[hidden],.pay-success[hidden]{display:none !important}
.cart-empty svg{width:90px;height:186px;opacity:.24;margin-bottom:8px}
.cart-empty h2{font-family:var(--serif);font-weight:400;font-size:32px;color:var(--ink-strong)}
.cart-empty p{font-size:14px;color:#5F6B4C}
.cart-empty .btn{margin-top:14px}
.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,400px);gap:clamp(32px,5vw,72px);align-items:start}
.checkout-main{min-width:0}
.checkout-block{padding:0 0 34px;margin-bottom:34px;border-bottom:1px solid var(--line)}
.checkout-block:first-child{border-top:1px solid var(--line-strong);padding-top:26px}
.checkout-block h2{
  margin:0 0 22px;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.2;
  letter-spacing:.03em;color:var(--ink-strong);
}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1 / -1}
.field label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--leaf-ink)}
.field input,.field textarea{
  width:100%;height:48px;padding:0 14px;
  border:1px solid var(--line-strong);border-radius:0;background:rgba(251,247,236,.5);
  font:inherit;font-size:14px;color:var(--ink);
  transition:border-color .2s ease,background-color .2s ease;
}
.field textarea{height:92px;padding:12px 14px;resize:vertical;line-height:1.7}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--ink);background:var(--paper-card)}
.field .error{font-size:11px;line-height:1.4;color:#A23A28;min-height:0}
.field.has-error input,.field.has-error textarea{border-color:#A23A28}
.pay-list{display:grid;gap:10px}
.pay-method{
  display:grid;grid-template-columns:18px 34px minmax(0,1fr) auto;
  gap:14px;align-items:center;
  padding:16px 16px;border:1px solid var(--line-strong);
  background:rgba(251,247,236,.45);cursor:pointer;position:relative;
  transition:border-color .2s ease,background-color .2s ease,box-shadow .2s ease;
}
.pay-method:hover{background:var(--paper-card)}
.pay-method input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.pay-method:has(input:checked){border-color:var(--ink);background:var(--paper-card);box-shadow:inset 0 0 0 1px var(--ink)}
.pay-radio{
  position:relative;display:block;width:16px;height:16px;border-radius:50%;
  border:1px solid var(--line-strong);flex:none;
}
.pay-method input:checked ~ .pay-radio{border-color:var(--ink)}
.pay-method input:checked ~ .pay-radio::after{
  content:"";position:absolute;inset:3px;border-radius:50%;background:var(--ink);
}
.pay-method input:focus-visible ~ .pay-radio{outline:2px solid var(--grain-deep);outline-offset:3px}
.pay-icon{width:32px;height:32px;display:grid;place-items:center}
.pay-text{display:flex;flex-direction:column;gap:3px;min-width:0}
.pay-text strong{font-size:14px;font-weight:600;line-height:1.3;color:var(--ink)}
.pay-text small{font-size:11.5px;line-height:1.5;color:#5F6B4C}
.pay-mark{font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--leaf-ink)}
.checkout-items{list-style:none;margin:0 0 14px;padding:0;border-bottom:1px solid var(--line)}
.checkout-items li{
  display:grid;grid-template-columns:1fr auto;gap:12px;align-items:baseline;
  padding:10px 0;font-size:12.5px;color:var(--ink-soft);
}
.checkout-items li span:last-child{font-family:var(--mono);font-size:12.5px;color:var(--ink);white-space:nowrap}
.checkout-items li em{font-style:normal;color:#5F6B4C}
.checkout-summary .sum-row{padding:6px 0}
.checkout-summary .sum-pay strong{font-size:32px}
.checkout-summary .btn{width:100%}
.pay-success{
  max-width:620px;margin:20px auto 0;padding:40px 0 80px;text-align:center;
}
.shop-head[hidden],.shop-steps[hidden]{display:none !important}
.pay-success:focus{outline:none}
.success-mark{
  width:64px;height:64px;margin:0 auto 24px;
  display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;
  font-size:26px;line-height:1;color:var(--ink);
}
.pay-success h1{
  margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(40px,5vw,56px);
  line-height:1.1;letter-spacing:.04em;color:var(--ink-strong);
}
.pay-success p{margin:18px 0 0;font-size:14px;line-height:1.9;color:var(--ink-soft)}
.pay-success .success-detail{
  margin:28px auto 30px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  font-family:var(--mono);font-size:13px;letter-spacing:.04em;line-height:2.1;color:#5F6B4C;
}
.pay-success .btn{width:auto}
.shop-footer{margin-top:80px}
.cart-mobile-bar{display:none}
.cart-mobile-bar[hidden]{display:none !important}
@media (max-width:1080px){
  .cart-layout,.checkout-layout{grid-template-columns:1fr;gap:34px}
  .cart-summary,.checkout-summary{position:static;max-width:none}
  .cart-summary{max-width:520px}
  .checkout-summary{max-width:520px}
}
@media (max-width:760px){
  .shop-main{padding-top:calc(var(--nav-h) + 36px)}
  .shop-head{flex-direction:column;align-items:flex-start;gap:14px}
  .shop-meta{text-align:left}
  .shop-steps{gap:18px;margin-bottom:30px}
  .shop-steps li{font-size:11.5px;letter-spacing:.08em}
  .cart-toolbar{flex-wrap:wrap;gap:10px 16px}
  .cart-item{
    grid-template-columns:22px 70px minmax(0,1fr) auto;
    grid-template-areas:"check thumb info remove" "check thumb qty line";
    gap:10px 14px;padding:18px 0;
  }
  .cart-item .check{grid-area:check;align-self:start;margin-top:4px}
  .cart-thumb{grid-area:thumb;width:64px;height:90px}
  .cart-info{grid-area:info}
  .cart-info h3{font-size:21px}
  .cart-qty{grid-area:qty;justify-content:space-between;width:100%}
  .cart-line-total{grid-area:line;justify-self:end;align-self:center;padding-left:0}
  .cart-remove{grid-area:remove;justify-self:end}
  .cart-summary{max-width:none}
  .field-grid{grid-template-columns:1fr}
  .field.full{grid-column:auto}
  .pay-method{padding:14px 12px}
  .checkout-items li{font-size:12px}
  .pay-success{padding:40px 0 60px}
  .cart-mobile-bar{
    display:flex;position:fixed;left:0;right:0;bottom:0;z-index:70;
    align-items:center;justify-content:space-between;gap:16px;
    padding:12px 20px calc(12px + env(safe-area-inset-bottom));
    background:rgba(250,246,234,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
    border-top:1px solid var(--line);
  }
  .cart-mobile-total{display:flex;flex-direction:column;gap:2px;font-size:10px;letter-spacing:.14em;color:var(--leaf-ink)}
  .cart-mobile-total strong{font-family:var(--mono);font-weight:400;font-size:24px;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
  .cart-mobile-bar .btn{height:46px;min-width:150px;padding:0 20px}
  .cart-page{padding-bottom:78px}
}
@media (max-width:420px){
  .cart-item{grid-template-columns:20px 60px minmax(0,1fr) auto}
  .cart-thumb{width:56px;height:80px}
  .cart-info h3{font-size:19px}

  .cart-toolbar{font-size:12px}
}

/* ---------- 扫码支付页 ---------- */
.pay-layout{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:clamp(28px,4vw,48px);align-items:start;
}
.pay-layout[hidden]{display:none !important}
.pay-qr-card{
  position:relative;padding:clamp(24px,3.4vw,40px);
  border:1px solid var(--line-strong);background:var(--paper-card);
  box-shadow:0 24px 60px rgba(37,48,31,.07);text-align:center;
}
.pay-qr-head{
  display:flex;align-items:center;gap:14px;text-align:left;
  padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:24px;
}
.pay-method-badge{
  flex:none;width:42px;height:42px;display:grid;place-items:center;
  border:1px solid var(--line);background:var(--paper);
}
.pay-method-badge--wechat{border-color:rgba(26,173,25,.28);background:rgba(26,173,25,.06)}
.pay-method-badge--alipay{border-color:rgba(22,119,255,.28);background:rgba(22,119,255,.06)}
.pay-qr-head h2{
  margin:0;font-family:var(--serif);font-weight:400;font-size:28px;line-height:1.2;
  letter-spacing:.03em;color:var(--ink-strong);
}
.pay-qr-head p{margin:4px 0 0;font-size:12.5px;line-height:1.6;color:#5F6B4C}
.pay-qr-frame{
  display:inline-flex;padding:12px;background:#FFFFFF;
  border:1px solid var(--line);box-shadow:0 16px 40px rgba(37,48,31,.06);
}
.pay-qr-frame img{display:block;width:min(70vw,300px);height:auto}
.pay-qr-amount{
  margin:22px 0 0;font-family:var(--mono);font-size:32px;line-height:1;
  letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums;
}
.pay-qr-amount span{
  font-family:var(--sans);font-size:10px;letter-spacing:.16em;
  color:var(--leaf-ink);margin-right:8px;
}
.pay-qr-note{max-width:360px;margin:14px auto 0;font-size:13px;line-height:1.8;color:#5F6B4C}
.pay-summary .btn{width:100%}
.pay-later{
  display:block;width:100%;margin-top:10px;padding:8px 0;
  border-bottom:1px solid var(--line-strong);
  font-size:12.5px;letter-spacing:.06em;color:#5F6B4C;text-align:center;
}
.pay-later:hover{color:var(--ink);border-color:var(--ink)}
.pay-later-note{margin:10px 0 0;font-size:12px;line-height:1.7;color:#5F6B4C;text-align:center}
@media (max-width:1080px){
  .pay-layout{grid-template-columns:1fr;gap:34px}
  .pay-summary{max-width:520px}
}
@media (max-width:760px){
  .pay-qr-card{padding:22px 16px}
  .pay-qr-frame img{width:min(78vw,280px)}
  .pay-qr-head h2{font-size:24px}
  .pay-qr-note{font-size:11.5px}
}
