/* ==========================================================================
   VPNUJ — pricing.css
   套餐价格页专属样式。所有颜色、圆角、间距均引用 base.css 的设计令牌。
   ========================================================================== */

/* ---------- 1. 页首 ---------- */

.pricing-intro .shell{position:relative;}

.pricing-title{margin-top:14px;}

.pricing-lede{max-width:840px;}

.pricing-actions{margin-top:22px;}

.price-summary{
  max-width:840px;
  margin-top:22px;
  padding-left:14px;
  border-left:2px solid var(--accent);
  font-size:15.5px;
  line-height:1.7;
  color:var(--text-muted);
}

.price-summary strong{
  font-family:var(--font-mono);
  font-weight:700;
  color:var(--text);
}

/* ---------- 2. 价格一览表 ---------- */

.section-note{
  max-width:760px;
  margin-top:10px;
  font-size:14px;
  line-height:1.65;
  color:var(--text-muted);
}

.price-scroll{margin-top:20px;}

.price-table{min-width:760px;}

.price-table td{color:var(--text-muted);}

.price-plan{
  font-weight:600;
  color:var(--text);
  white-space:nowrap;
}

.price-num{
  font-family:var(--font-mono);
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--text);
  white-space:nowrap;
}

.price-unit{
  font-family:var(--font-body);
  font-size:12px;
  color:var(--text-soft);
  white-space:nowrap;
}

/* ---------- 3. 三档说明 ---------- */

.tier-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  margin-top:36px;
}

.tier-item{
  min-width:0;
  padding-top:16px;
  border-top:2px solid var(--border);
}

.tier-item .tier-price{
  margin:0;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.04em;
  color:var(--text-soft);
}

.tier-item h3{
  margin-top:8px;
  font-size:16.5px;
}

.tier-item p{
  margin-top:8px;
  font-size:13.5px;
  line-height:1.72;
  color:var(--text-muted);
}

.tier-item .tier-limit{
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-top:12px;
  font-size:12.5px;
  line-height:1.65;
  color:var(--text-muted);
}

.tier-limit .dot-warn{
  flex:none;
  margin-top:6px;
}

/* ---------- 4. 流量包 ---------- */

.plan-card.is-pack::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:2px;
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  background:linear-gradient(90deg,var(--border-strong),transparent);
}

.plan-card.is-pack .plan-name{color:var(--accent-dark);}

.pack-rules{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px 28px;
  margin-top:28px;
}

.pack-rules li{
  position:relative;
  min-width:0;
  padding-left:16px;
  font-size:13.5px;
  line-height:1.7;
  color:var(--text-muted);
}

.pack-rules li::before{
  content:"";
  position:absolute;
  left:0;
  top:.66em;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent);
}

.pack-notes{
  max-width:840px;
  margin-top:22px;
}

.pack-notes p{
  font-size:14.5px;
  line-height:1.78;
  color:var(--text-muted);
}

.pack-notes p + p{margin-top:10px;}

/* ---------- 5. 包含清单 ---------- */

.include-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:14px;
}

.include-item{
  display:flex;
  gap:12px;
  min-width:0;
  padding:16px 18px;
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-xs);
}

.include-item > svg{
  flex:none;
  width:18px;
  height:18px;
  margin-top:2px;
  color:var(--accent);
}

.include-item h3{
  font-size:14.5px;
  letter-spacing:-.01em;
}

.include-item p{
  margin-top:5px;
  font-size:12.5px;
  line-height:1.65;
  color:var(--text-muted);
}

/* ---------- 6. 对比表 ---------- */

.compare-table{min-width:840px;}

.compare-table tbody th{
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.05em;
}

/* ---------- 7. 付款 ---------- */

.pay-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}

.pay-card{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  padding:20px;
  background:var(--bg-panel);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  box-shadow:var(--shadow-xs);
}

.pay-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  width:38px;
  height:38px;
  border-radius:var(--r-sm);
  background:var(--accent-soft);
  border:1px solid var(--accent-line);
  font-family:var(--font-mono);
  font-size:16px;
  font-weight:700;
  color:var(--accent-dark);
}

.pay-card h3{font-size:15px;}

.pay-card p{
  font-size:13px;
  line-height:1.68;
  color:var(--text-muted);
}

.pay-flow{margin-top:36px;}

.pay-flow > h3{
  margin-bottom:14px;
  font-size:17px;
}

.pay-steps{
  display:grid;
  gap:12px;
  margin:0;
  padding:0;
  list-style:none;
  counter-reset:paystep;
}

.pay-steps li{
  position:relative;
  min-width:0;
  padding-left:42px;
  font-size:14px;
  line-height:1.72;
  color:var(--text-muted);
}

.pay-steps li::before{
  counter-increment:paystep;
  content:counter(paystep,decimal-leading-zero);
  position:absolute;
  left:0;
  top:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  border:1px solid var(--border);
  background:var(--bg-panel);
  font-family:var(--font-mono);
  font-size:11px;
  color:var(--text-muted);
}

.pay-steps strong{
  color:var(--text);
  font-weight:600;
}

.pay-steps a{
  color:var(--accent-dark);
  text-underline-offset:2px;
}

/* ---------- 8. 退款 ---------- */

.refund-panel .panel-body{padding:clamp(22px,3vw,34px);}

.refund-panel h2{margin-top:8px;}

.refund-panel .panel-body > p{
  max-width:70ch;
  margin-top:10px;
  font-size:14.5px;
  line-height:1.78;
  color:var(--text-muted);
}

.refund-panel .pay-steps{
  max-width:70ch;
  margin-top:20px;
}

.refund-note{
  margin-top:18px;
  font-family:var(--font-mono);
  font-size:11.5px;
  letter-spacing:.02em;
  color:var(--text-soft);
}

/* ---------- 9. FAQ ---------- */

.faq-col{max-width:880px;}

/* ---------- 10. 底部 CTA 带 ---------- */

.cta-band{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:12px;
  padding:clamp(28px,4vw,46px) 24px;
  text-align:center;
  border-radius:var(--r-xl);
  background:linear-gradient(180deg,var(--ink-2) 0%,var(--ink) 100%);
  box-shadow:inset 0 1px 0 var(--ink-line-hi),var(--shadow-sky);
}

.cta-band::after{
  content:"";
  position:absolute;
  left:50%;
  top:-70%;
  width:74%;
  height:180%;
  transform:translateX(-50%);
  pointer-events:none;
  background:radial-gradient(closest-side,var(--glow-sun),var(--glow-sun-2) 48%,var(--glow-sun-0) 74%);
}

.cta-band > *{position:relative;z-index:1;}

.cta-band h2{
  color:var(--white);
  font-size:clamp(21px,2.4vw,28px);
}

.cta-band p{
  max-width:52ch;
  font-size:14px;
  line-height:1.68;
  color:var(--ink-muted);
}

.cta-band .btn{margin-top:6px;}

.cta-band .btn-primary{
  background:var(--white);
  color:var(--ink);
  box-shadow:none;
}

.cta-band .btn-primary:hover{
  background:var(--bg-panel-2);
  color:var(--ink);
}

/* ---------- 11. 响应式 ---------- */

@media (max-width:980px){
  .tier-grid{grid-template-columns:minmax(0,1fr);gap:18px;}
  .pack-rules{grid-template-columns:minmax(0,1fr);gap:8px;}
  .pay-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));}
}

@media (max-width:640px){
  .price-summary{font-size:14px;}
  .include-grid{grid-template-columns:minmax(0,1fr);}
  .pay-grid{grid-template-columns:minmax(0,1fr);}
  .cta-band{padding:26px 18px;}
  .pay-steps li{padding-left:36px;font-size:13.5px;}
  .pay-steps li::before{width:24px;height:24px;font-size:10px;}
  .price-table{min-width:680px;}
  .compare-table{min-width:760px;}
}