/* =========================================================================
 * 贵州信酒 · 红信  ·  手机版下单页
 * 视觉：中国红 + 米白纸 + 描金细线（取自产品包装）
 * 只做手机端：整页 560px 封顶并居中，电脑上打开也是一列
 * ========================================================================= */

:root {
  --red: #c8161d;
  --red-deep: #9c1116;
  --paper: #fbf7ef;
  --paper-2: #f4ecdd;
  --gold: #b89355;
  --gold-2: #d6b87f;
  --ink: #1a1714;
  --ink-2: #3a342c;
  --muted: #7a6f62;
  --line: rgba(26, 23, 20, .12);
  --line-2: rgba(26, 23, 20, .2);
  --serif: "Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", "SimSun", Georgia, serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
  --page: 560px;
  --bar-h: 66px;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--sans);
  color: var(--ink);
  background: #e9e3d6;              /* 电脑上露出的底色 */
  line-height: 1.65;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
}

.page {
  max-width: var(--page);
  margin: 0 auto;
  background: var(--paper);
  min-height: 100vh;
  padding-bottom: calc(var(--bar-h) + 28px + env(safe-area-inset-bottom));
  box-shadow: 0 0 60px -30px rgba(80, 40, 20, .5);
  overflow: hidden;
  position: relative;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; }
input, textarea { font-family: inherit; font-size: 16px; }

/* ---------------- 按钮 ---------------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid transparent; border-radius: 8px;
  padding: 13px 22px; font-size: 15px; font-weight: 600; letter-spacing: .04em;
  transition: transform .16s ease, opacity .16s ease;
  white-space: nowrap; background: var(--ink); color: var(--paper);
}
.btn:active { transform: scale(.98); }
.btn[disabled] { opacity: .4; cursor: not-allowed; }
.btn-red { background: linear-gradient(180deg, #d41c22, var(--red) 60%, var(--red-deep)); color: #fff8f2; }
.btn-ghost { background: transparent; border-color: var(--line-2); color: var(--ink-2); }
.btn-block { width: 100%; }
.btn-sm { padding: 8px 16px; font-size: 13.5px; border-radius: 6px; }

/* ---------------- 顶部条 ---------------- */
.topbar {
  background: var(--red); color: #fdf1ea; font-size: 11.5px; letter-spacing: .06em;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  height: 32px; overflow: hidden; padding: 0 10px; white-space: nowrap;
}
.topbar .dot { opacity: .5; }

/* ---------------- 头部 ---------------- */
.header {
  position: sticky; top: 0; z-index: 60;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 10px 14px;
  background: rgba(251, 247, 239, .95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(200, 22, 29, .12);
}
.brand-lock { display: flex; align-items: center; gap: 9px; min-width: 0; }
.seal {
  width: 36px; height: 36px; border-radius: 5px; flex: 0 0 auto;
  background: var(--red); color: #fdf3e6;
  font-family: var(--serif); font-size: 22px; font-weight: 700;
  display: grid; place-items: center;
  box-shadow: inset 0 0 0 2px rgba(253, 243, 230, .5);
}
.brand-text { display: flex; flex-direction: column; line-height: 1.15; min-width: 0; }
.brand-text b { font-family: var(--serif); font-size: 16.5px; letter-spacing: .1em; }
.brand-text i { font-style: normal; font-size: 8.5px; letter-spacing: .24em; color: var(--gold); white-space: nowrap; }

/* ---------------- 商品主视觉 ---------------- */
.hero { background: var(--paper); }
.hero-img-wrap { position: relative; }
.hero-img {
  width: 100%; height: auto; aspect-ratio: 4 / 3.4; object-fit: contain;
  mix-blend-mode: multiply;   /* 白底图融进米白 */
  padding: 6px;
}
.badge-promo {
  position: absolute; left: 12px; top: 12px;
  background: var(--red); color: #fff5ee; font-size: 11.5px; letter-spacing: .06em;
  padding: 4px 11px; border-radius: 3px;
}
.hero-body { padding: 14px 16px 18px; }
.hero-body h1 { font-family: var(--serif); font-size: 25px; margin: 0; letter-spacing: .06em; }
.hero-body .sub { color: var(--muted); font-size: 13px; margin: 4px 0 0; }

.price-block { display: flex; align-items: baseline; gap: 10px; margin: 14px 0 0; flex-wrap: wrap; }
.price { color: var(--red); font-family: var(--serif); font-weight: 700; }
.price small { font-size: 17px; }
.price b { font-size: 34px; letter-spacing: .01em; }
.price em { font-style: normal; font-size: 14px; color: var(--red-deep); margin-left: 2px; }
.price-sub { font-size: 12.5px; color: var(--muted); }
.price-sub b { color: var(--ink-2); }

.promo-strip {
  margin: 12px 0 0; padding: 9px 12px; border-radius: 6px;
  background: rgba(200, 22, 29, .06); border: 1px solid rgba(200, 22, 29, .18);
  font-size: 12.5px; color: var(--red-deep); display: flex; align-items: center; gap: 8px;
}
.promo-tag {
  flex: 0 0 auto; background: var(--red); color: #fff5ee; font-size: 11px;
  padding: 2px 8px; border-radius: 3px; letter-spacing: .06em;
}
.hero-note { font-size: 13.5px; color: var(--ink-2); margin: 12px 0 0; line-height: 1.75; }
.stock-line { margin-top: 10px; font-size: 12.5px; color: var(--muted); }
.stock-line b { color: var(--red); font-family: var(--serif); font-size: 15px; }

/* ---------------- 卖点 ---------------- */
.trust {
  display: grid; grid-template-columns: 1fr 1fr; gap: 14px 10px;
  padding: 18px 16px; background: var(--paper-2);
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.trust div { font-size: 11.5px; color: var(--muted); }
.trust div b {
  display: block; font-family: var(--serif); font-size: 14px; color: var(--ink);
  letter-spacing: .06em; margin-bottom: 1px;
}

/* ---------------- 价格卡 ---------------- */
.card { margin: 16px 14px; background: #fffdf8; border: 1px solid var(--line); border-radius: 10px; padding: 16px; }
.card-title { font-family: var(--serif); font-size: 16px; margin: 0 0 12px; letter-spacing: .08em; }
.price-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  padding: 9px 0; border-bottom: 1px dashed var(--line-2); font-size: 13.5px; color: var(--muted);
}
.price-row:last-of-type { border-bottom: none; }
.price-row b { font-family: var(--serif); font-size: 15px; color: var(--ink); }
.hint { font-size: 12px; color: var(--muted); margin: 10px 0 0; line-height: 1.7; }

/* ---------------- 故事 ---------------- */
.story { padding: 8px 0 4px; }
.story > img { width: 100%; height: auto; }
.story-body { padding: 18px 16px 4px; }
.kicker { font-size: 11px; letter-spacing: .3em; color: var(--red); text-transform: uppercase; }
.kicker.light { color: var(--gold-2); }
.story-body h2, .brand h2, .how h2, .faq h2 {
  font-family: var(--serif); font-size: 21px; margin: 8px 0 12px;
  letter-spacing: .06em; line-height: 1.4;
}
.story-body p { font-size: 14px; color: #4f473c; margin: 0 0 12px; }
.story-body b { color: var(--red-deep); }
.quote {
  font-family: var(--serif); font-size: 16px; line-height: 1.9; color: var(--ink);
  border-left: 3px solid var(--red); padding-left: 14px; margin: 18px 0;
}
.quote span { color: var(--red); font-weight: 700; }

/* ---------------- 品牌（深色） ---------------- */
.brand {
  background: #17130f; color: rgba(251, 247, 239, .82);
  padding: 28px 16px 24px; margin-top: 8px;
}
.brand h2 { color: var(--paper); }
.brand p { font-size: 13.5px; margin: 0 0 10px; color: rgba(251, 247, 239, .72); }
.brand p.small { font-size: 12.5px; color: rgba(251, 247, 239, .5); }
.brand-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 18px 0 20px; }
.brand-stats div strong {
  display: block; font-family: var(--serif); font-size: 22px; color: var(--gold-2); line-height: 1.2;
}
.brand-stats div strong small { font-size: 11px; margin-left: 1px; }
.brand-stats div span { font-size: 10.5px; color: rgba(251, 247, 239, .5); }
.brand blockquote {
  margin: 0 0 18px; padding: 14px 16px; border-left: 2px solid var(--red);
  background: rgba(200, 22, 29, .1);
  font-family: var(--serif); font-size: 16px; letter-spacing: .04em; color: #f7e9d4;
}
.brand blockquote cite {
  display: block; margin-top: 6px; font-family: var(--sans); font-style: normal;
  font-size: 11.5px; color: rgba(251, 247, 239, .55);
}
.billboard { margin: 0; border-radius: 6px; overflow: hidden; border: 1px solid rgba(184, 147, 85, .3); }
.billboard figcaption {
  padding: 8px 12px; font-size: 11.5px; color: rgba(251, 247, 239, .55);
  background: rgba(0, 0, 0, .35);
}

/* ---------------- 怎么买 ---------------- */
.how { padding: 26px 16px 8px; }
.steps { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.step { background: #fffdf8; border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.step span { font-family: var(--serif); font-size: 20px; color: rgba(200, 22, 29, .28); font-weight: 700; }
.step b { display: block; font-size: 14px; margin: 2px 0 4px; letter-spacing: .04em; }
.step p { font-size: 12px; color: var(--muted); margin: 0; line-height: 1.6; }

/* ---------------- FAQ ---------------- */
.faq { padding: 26px 16px 30px; background: var(--paper-2); margin-top: 24px; }
.faq-list details { border-bottom: 1px solid var(--line-2); padding: 13px 0; }
.faq-list summary {
  list-style: none; cursor: pointer; font-size: 14px; font-weight: 600;
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; color: var(--red); font-size: 18px; line-height: 1; }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { font-size: 13px; color: var(--muted); margin: 10px 0 0; line-height: 1.75; }

/* ---------------- 页脚 ---------------- */
footer {
  background: #17130f; color: rgba(251, 247, 239, .7);
  padding: 26px 16px 30px; text-align: center;
}
.foot-brand { display: flex; align-items: center; justify-content: center; gap: 9px; margin-bottom: 18px; }
.foot-brand b { font-family: var(--serif); font-size: 16px; color: var(--paper); letter-spacing: .1em; display: block; text-align: left; }
.foot-brand i { font-style: normal; font-size: 8.5px; letter-spacing: .22em; color: var(--gold); display: block; text-align: left; }
.foot-qr-box { margin: 0 auto 16px; }
.foot-qr-box img {
  width: 190px; height: 190px; object-fit: contain;
  margin: 0 auto 8px; border-radius: 8px; background: #fff; padding: 6px;
}
.foot-qr-box p { font-size: 12px; margin: 0; color: rgba(251, 247, 239, .55); }
.foot-info { list-style: none; padding: 0; margin: 0 0 14px; font-size: 13px; }
.foot-info li { margin-bottom: 4px; }
.foot-info b { color: var(--paper); font-weight: 600; }
.foot-info a { color: var(--paper); }
.foot-note { font-size: 11px; color: rgba(251, 247, 239, .38); margin: 0 0 6px; line-height: 1.7; }
.foot-bottom {
  font-size: 11px; color: rgba(251, 247, 239, .32); margin: 6px 0 0;
  padding-top: 12px; border-top: 1px solid rgba(251, 247, 239, .1);
}

/* ---------------- 底部购买条 ---------------- */
.buy-bar {
  position: fixed; left: 50%; bottom: 0; transform: translateX(-50%);
  width: min(100%, var(--page)); z-index: 70;
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px calc(10px + env(safe-area-inset-bottom));
  background: rgba(251, 247, 239, .97);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(200, 22, 29, .16);
  box-shadow: 0 -8px 24px -16px rgba(80, 40, 20, .5);
}
.buy-bar-price { flex: 1; min-width: 0; line-height: 1.2; }
.buy-bar-price b { font-family: var(--serif); font-size: 23px; color: var(--red); display: block; }
.buy-bar-price span { font-size: 11.5px; color: var(--muted); }
.buy-bar .btn { flex: 0 0 auto; padding: 12px 30px; }

/* ---------------- 抽屉（底部上滑） ---------------- */
.scrim {
  position: fixed; inset: 0; background: rgba(26, 18, 12, .5); z-index: 80;
  opacity: 0; pointer-events: none; transition: opacity .25s ease;
}
.scrim.show { opacity: 1; pointer-events: auto; }

.drawer {
  position: fixed; left: 50%; bottom: 0; z-index: 90;
  width: min(100%, var(--page)); max-height: 92vh;
  background: var(--paper);
  border-radius: 14px 14px 0 0;
  transform: translate(-50%, 101%);
  transition: transform .3s cubic-bezier(.32, .72, 0, 1);
  display: flex; flex-direction: column;
  box-shadow: 0 -20px 50px -20px rgba(60, 20, 10, .5);
}
.drawer.show { transform: translate(-50%, 0); }
.drawer-head {
  padding: 14px 16px; border-bottom: 1px solid var(--line);
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  flex: 0 0 auto;
}
.drawer-head h2 { font-family: var(--serif); font-size: 17px; margin: 0; letter-spacing: .1em; }
.icon-btn {
  width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--line-2);
  background: transparent; display: grid; place-items: center; font-size: 15px; color: var(--ink-2);
}
.drawer-body { flex: 1; overflow-y: auto; padding: 16px; -webkit-overflow-scrolling: touch; }
.drawer-foot {
  flex: 0 0 auto; padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
  border-top: 1px solid var(--line); background: var(--paper-2);
}
.foot-row { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.foot-row span { font-size: 12.5px; color: var(--muted); }
.foot-row .total { font-family: var(--serif); font-size: 22px; color: var(--red); font-weight: 700; }

/* 步骤条 */
.steps-bar { display: flex; align-items: center; gap: 6px; padding: 0 0 16px; }
.steps-bar i { flex: 1; height: 3px; border-radius: 99px; background: var(--line); transition: background .3s; }
.steps-bar i.on { background: linear-gradient(90deg, var(--red), #e8605f); }
.steps-bar span { font-size: 11px; color: var(--muted); white-space: nowrap; }

/* 商品行 */
.order-line { display: flex; gap: 12px; padding: 12px; background: #fffdf8; border: 1px solid var(--line); border-radius: 8px; }
.order-line img {
  width: 74px; height: 82px; object-fit: contain; border-radius: 6px;
  background: var(--paper-2); mix-blend-mode: multiply; flex: 0 0 auto;
}
.order-line-info { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.order-line-info b { font-size: 14.5px; }
.order-line-info span { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
.order-line-info em { font-style: normal; font-family: var(--serif); font-size: 16px; color: var(--red); margin-top: 4px; font-weight: 700; }

/* 数量 */
.qty-block { display: flex; align-items: center; justify-content: space-between; padding: 16px 0; }
.qty-label { font-size: 14px; font-weight: 600; }
.qty { display: inline-flex; align-items: center; border: 1px solid var(--line-2); border-radius: 6px; overflow: hidden; }
.qty button { width: 40px; height: 38px; border: none; background: transparent; font-size: 19px; color: var(--ink-2); }
.qty button:active { background: rgba(200, 22, 29, .1); }
.qty span { min-width: 46px; text-align: center; font-size: 17px; font-variant-numeric: tabular-nums; font-weight: 600; }

.quick-picks { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.chip {
  border: 1px solid var(--line-2); background: #fffdf8; border-radius: 99px;
  padding: 7px 13px; font-size: 12.5px; color: var(--ink-2);
}
.chip.on { border-color: var(--red); background: rgba(200, 22, 29, .08); color: var(--red); font-weight: 600; }

/* 合计 */
.sum-box { background: #fffdf8; border: 1px solid var(--line); border-radius: 8px; padding: 6px 14px; }
.sum-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 9px 0; font-size: 13px; color: var(--muted);
  border-bottom: 1px dashed var(--line-2);
}
.sum-row:last-child { border-bottom: none; }
.sum-row b { color: var(--ink); font-weight: 600; }
.sum-row.gift-row b { color: var(--red); }
.sum-row.total { font-size: 14px; color: var(--ink); padding-top: 12px; }
.sum-row.total b { font-family: var(--serif); font-size: 22px; color: var(--red); font-weight: 700; }

/* 表单 */
.form-grid { display: grid; gap: 12px; }
.field label { display: block; font-size: 12px; color: var(--muted); margin-bottom: 5px; }
.field label b { color: var(--red); font-weight: 400; }
.field input, .field textarea {
  width: 100%; padding: 12px; border: 1px solid var(--line-2); border-radius: 7px;
  background: #fffdf8; color: var(--ink); outline: none;
}
.field input:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(200, 22, 29, .08); }
.field-row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; }
.field-row.two { grid-template-columns: 1fr 1fr; }
.err {
  color: var(--red-deep); font-size: 12.5px; background: rgba(200, 22, 29, .07);
  border-radius: 6px; padding: 10px 12px; margin: 0 0 12px; display: none; line-height: 1.7;
}
.err.show { display: block; }
.check { display: flex; gap: 9px; align-items: flex-start; font-size: 12.5px; color: var(--muted); }
.check input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--red); flex: 0 0 auto; }

/* 支付 */
.amount-box {
  background: #17130f; color: var(--paper); border-radius: 8px; padding: 14px 16px; margin-bottom: 14px;
  display: flex; align-items: center; justify-content: space-between;
}
.amount-box span { font-size: 12px; color: rgba(251, 247, 239, .6); letter-spacing: .06em; }
.amount-box strong { font-family: var(--serif); font-size: 26px; color: var(--gold-2); }
.pay-tabs { display: flex; gap: 8px; margin-bottom: 14px; }
.pay-tab {
  flex: 1; padding: 10px 8px; border-radius: 7px; text-align: center; font-size: 13px;
  border: 1px solid var(--line-2); background: #fffdf8; color: var(--ink-2);
}
.pay-tab.on { border-color: var(--red); background: rgba(200, 22, 29, .07); font-weight: 600; color: var(--red); }
.pay-panel { display: none; }
.pay-panel.on { display: block; }
.qr-box {
  background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 14px;
  display: grid; place-items: center; gap: 8px; text-align: center;
}
.qr-box img { width: 100%; max-width: 260px; height: auto; border-radius: 6px; }
.qr-cap { font-size: 12.5px; color: var(--muted); }
.qr-cap b { color: var(--ink); }
.bank-card { background: #fffdf8; border: 1px solid var(--line); border-radius: 8px; padding: 2px 14px; }
.bank-row {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 12px 0; border-bottom: 1px dashed var(--line-2); font-size: 13.5px;
}
.bank-row:last-child { border-bottom: none; }
.bank-row span { color: var(--muted); font-size: 12px; flex: 0 0 auto; }
.bank-row strong { text-align: right; word-break: break-all; font-variant-numeric: tabular-nums; }
.copy-mini {
  border: 1px solid var(--line-2); background: transparent; border-radius: 4px;
  font-size: 11px; padding: 4px 8px; color: var(--ink-2); margin-left: 4px;
}
.notice {
  font-size: 12.5px; color: #6f5228; background: rgba(184, 147, 85, .1);
  border: 1px solid rgba(184, 147, 85, .3); border-radius: 8px; padding: 12px 14px; margin: 12px 0 0;
  line-height: 1.8;
}
.notice-code { font-size: 13px; color: var(--ink); }
.notice-code b { font-size: 19px; letter-spacing: .08em; color: var(--red); }
.notice-full { font-size: 11.5px; color: var(--muted); white-space: nowrap; }

/* 完成 */
.done { text-align: center; padding-top: 4px; }
.done .tick {
  width: 56px; height: 56px; border-radius: 50%; margin: 0 auto 12px;
  background: rgba(200, 22, 29, .1); color: var(--red);
  display: grid; place-items: center; font-size: 26px;
}
.done h3 { font-family: var(--serif); font-size: 20px; margin: 0 0 4px; letter-spacing: .06em; }
.done-label { font-size: 12px; color: var(--muted); margin: 6px 0 0; }
.done .oid { font-variant-numeric: tabular-nums; letter-spacing: .08em; color: var(--red); font-weight: 700; font-size: 15px; }
.done-amount { font-family: var(--serif); font-size: 22px; color: var(--red); font-weight: 700; margin-top: 6px; }
.order-preview {
  text-align: left; white-space: pre-wrap; font-size: 12px; line-height: 1.7;
  background: #fffdf8; border: 1px solid var(--line); border-radius: 8px;
  padding: 12px; margin: 14px 0; max-height: 230px; overflow: auto; color: #3d342c;
}
.done-note { font-size: 12px; color: var(--muted); margin: 12px 0 0; line-height: 1.8; }

/* Toast */
.toast {
  position: fixed; left: 50%; bottom: calc(var(--bar-h) + 24px + env(safe-area-inset-bottom));
  transform: translate(-50%, 12px);
  background: rgba(26, 19, 12, .95); color: #f6e7cf;
  padding: 11px 20px; border-radius: 999px; font-size: 13px; z-index: 200;
  opacity: 0; pointer-events: none; transition: all .25s ease; max-width: 86vw; text-align: center;
}
.toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---------------- 极窄屏 ---------------- */
@media (max-width: 340px) {
  .hero-body h1 { font-size: 22px; }
  .price b { font-size: 30px; }
  .brand-stats { grid-template-columns: 1fr 1fr; row-gap: 12px; }
  .topbar { font-size: 10.5px; }
}

@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}
