/* ==========================================================================
   VPN31 · deepdoc.css
   深度指南页(怎么选)专属样式:文档头 / 双列阅读区 / 侧栏事实卡 / 章节节奏
   颜色、圆角、阴影一律引用 base.css 的设计令牌,不新增硬编码色值
   ========================================================================== */

/* ---------- 文档头 ---------- */

.doc-hero{
  padding-block:clamp(36px, 5vw, 64px) clamp(20px, 2.6vw, 32px);
}

.doc-title{
  max-width:20em;
  margin:0 0 16px;
  font-size:clamp(1.95rem, 3.6vw, 2.85rem);
  line-height:1.14;
  letter-spacing:-.028em;
}

.doc-lead{
  max-width:44em;
  font-size:16.5px;
  line-height:1.8;
}

.doc-cta{
  margin-top:22px;
}

.doc-meta{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px 16px;
  font-size:12.5px;
  color:var(--muted);
}

.doc-meta li{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}

.doc-meta li + li::before{
  content:"";
  flex:none;
  width:3px;
  height:3px;
  border-radius:50%;
  background-color:var(--accent-a32);
}

.doc-hero .facts-band{
  margin-top:22px;
}

/* ---------- 阅读区布局 ---------- */

.doc-article{
  padding-block:0 clamp(40px, 5vw, 72px);
}

.doc-grid{
  display:grid;
  grid-template-columns:minmax(0, 1fr) 296px;
  gap:clamp(28px, 4vw, 56px);
  align-items:start;
}

.doc-body{
  min-width:0;
  max-width:none;
}

.doc-intro{
  margin-bottom:clamp(20px, 2.6vw, 28px);
}

.doc-aside{
  position:sticky;
  top:76px;
  display:grid;
  gap:16px;
  min-width:0;
}

.doc-aside .card{
  padding:20px;
}

.doc-fact-list{
  list-style:none;
  margin:12px 0 0;
  padding:0;
  display:grid;
  gap:9px;
}

.doc-fact-list li{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:2px 10px;
  font-size:13px;
  line-height:1.55;
}

.doc-fact-k{
  flex:none;
  color:var(--muted);
}

.doc-fact-v{
  font-weight:600;
  color:var(--text);
}

.doc-link-list{
  list-style:none;
  margin:10px 0 0;
  padding:0;
  display:grid;
  gap:2px;
}

.doc-link-list a{
  display:flex;
  align-items:center;
  min-height:34px;
  padding:6px 8px;
  border-radius:var(--r-xs);
  font-size:13.5px;
  line-height:1.4;
  color:var(--text);
  transition:background-color .18s ease, color .18s ease;
}

.doc-link-list a:hover{
  background-color:var(--panel-2);
  color:var(--accent-dark);
}

/* ---------- 章节节奏 ---------- */

.doc-section{
  padding-block:clamp(24px, 3vw, 34px) 0;
}

.doc-section + .doc-section{
  margin-top:clamp(26px, 3.2vw, 38px);
  border-top:1px solid var(--border);
}

.doc-section > h2:first-child{
  margin-top:0;
}

.doc-body h2::after{
  content:"";
  display:block;
  width:44px;
  height:3px;
  margin-top:14px;
  border-radius:2px;
  background-image:var(--grad-bar);
}

.doc-caption{
  margin:8px 0 0;
  font-size:12.5px;
  line-height:1.6;
  color:var(--muted);
}

.doc-body .table-scroll{
  margin-block:var(--sp-3);
}

.doc-body .data-table{
  min-width:600px;
}

.doc-body .callout{
  margin-block:var(--sp-3);
}

/* ---------- 装饰描线 ---------- */

.doc-draw{
  width:100%;
  max-width:320px;
  height:auto;
  margin-block:var(--sp-3);
  fill:none;
  stroke:var(--accent-a32);
  stroke-width:1.6;
  stroke-linecap:round;
}

.doc-draw circle{
  fill:var(--accent-a12);
  stroke:var(--accent-a32);
}

/* ---------- 响应式 ---------- */

@media (max-width:980px){
  .doc-grid{
    grid-template-columns:minmax(0, 1fr);
    gap:32px;
  }
  .doc-aside{
    position:static;
    order:-1;
  }
}

@media (max-width:640px){
  .doc-title{
    font-size:clamp(1.7rem, 7vw, 2.2rem);
  }
  .doc-lead{
    font-size:15.5px;
  }
  .doc-meta{
    gap:5px 12px;
    font-size:12px;
  }
  .doc-article{
    padding-block:0 40px;
  }
}

@media (prefers-reduced-motion: reduce){
  .doc-link-list a{
    transition:none;
  }
}