/* ============================================================
   geo.css — 全站 GEO 排版与结构化样式
   用于：知识库文章页 / 案例详情页 / 列表页
   设计令牌沿用站点原体系：品牌红 #e81320、深灰 #242424、淡底 #f4f4f4
   ============================================================ */

/* ---------- 1. 文章头部 ---------- */
.geo-crumb { max-width: 1044px; width: 90%; margin: 0 auto; padding: 22px 0 0;
  font-size: 13px; color: #a5a5a5; line-height: 1.8; }
.geo-crumb a { color: #a5a5a5; }
.geo-crumb a:hover { color: #e81320; }
.geo-crumb .sep { margin: 0 6px; color: #d5d5d5; }

.geo-head { max-width: 900px; width: 90%; margin: 0 auto; text-align: center;
  padding: 30px 0 32px; border-bottom: 1px solid #ededed; }
.geo-head h1 { font-size: 34px; font-weight: normal; line-height: 1.45; color: #111;
  margin: 0; letter-spacing: -.01em; }
.geo-head .geo-sub { font-size: 15px; color: #8a8a8a; line-height: 1.9;
  margin: 16px auto 0; max-width: 760px; }
.geo-meta { margin-top: 20px; font-size: 13px; color: #b0b0b0; }
.geo-meta span { margin: 0 10px; }
.geo-meta .iconfont { margin-right: 5px; color: #c9c9c9; }
.geo-meta a { color: #b0b0b0; }
.geo-meta a:hover { color: #e81320; }

/* ---------- 2. 要点卡（key-points，与 speakable 选择器对齐） ---------- */
.key-points { background: #f7f7f7; border: 1px solid #ececec;
  border-left: 4px solid #e81320; border-radius: 0 6px 6px 0;
  padding: 20px 26px; margin: 0 0 30px; }
.key-points h4 { font-size: 13px; color: #e81320; letter-spacing: .1em;
  margin: 0 0 12px; font-weight: normal; }
.key-points ul { margin: 0; padding: 0; list-style: none; }
.key-points li { position: relative; padding-left: 18px; font-size: 15px;
  color: #555; line-height: 1.9; margin-bottom: 6px; }
.key-points li:last-child { margin-bottom: 0; }
.key-points li:before { content: ''; position: absolute; left: 0; top: 11px;
  width: 5px; height: 5px; border-radius: 50%; background: #e81320; }

.geo-lead { background: #f7f7f7; border-left: 4px solid #e81320;
  border-radius: 0 6px 6px 0; padding: 22px 26px; margin: 0 0 34px; }
.geo-lead h4 { font-size: 13px; color: #e81320; letter-spacing: .1em;
  margin: 0 0 12px; font-weight: normal; }
.geo-lead ul { margin: 0; padding: 0; list-style: none; }
.geo-lead li { position: relative; padding-left: 18px; font-size: 15px;
  color: #555; line-height: 1.9; margin-bottom: 6px; }
.geo-lead li:last-child { margin-bottom: 0; }
.geo-lead li:before { content: ''; position: absolute; left: 0; top: 11px;
  width: 5px; height: 5px; border-radius: 50%; background: #e81320; }

/* ---------- 3. 目录 ---------- */
.geo-toc { background: #fafafa; border: 1px solid #ececec; border-radius: 6px;
  padding: 20px 26px; margin: 0 0 36px; }
.geo-toc h4 { font-size: 13px; color: #999; letter-spacing: .1em;
  margin: 0 0 14px; font-weight: normal; }
.geo-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc;
  -webkit-columns: 2; columns: 2; -webkit-column-gap: 30px; column-gap: 30px; }
.geo-toc li { counter-increment: toc; font-size: 14.5px; line-height: 1.95;
  break-inside: avoid; }
.geo-toc li a { color: #555; }
.geo-toc li a:before { content: counter(toc, decimal-leading-zero) '  ';
  color: #d0d0d0; font-size: 12px; }
.geo-toc li a:hover { color: #e81320; }

/* ---------- 4. 正文排版 ---------- */
.geo-body { counter-reset: geosec; font-size: 16px; line-height: 1.95;
  color: #3d3d3d; max-width: 840px; margin: 0 auto; }
.geo-body > p:first-child { font-size: 17px; color: #2b2b2b; }
.geo-body p { margin: 0 0 18px; }
.geo-body a { color: #e81320; border-bottom: 1px solid rgba(232,19,32,.25); }
.geo-body a:hover { border-bottom-color: #e81320; }

/* 二级标题 — 自动段落编号，兼作锚点 */
.geo-body h2 { counter-increment: geosec; position: relative;
  font-size: 22px; font-weight: normal; color: #161616; line-height: 1.5;
  margin: 52px 0 20px; padding: 0 0 12px; border-bottom: 1px solid #ececec;
  scroll-margin-top: 90px; }
.geo-body h2:first-child { margin-top: 6px; }
.geo-body h2:before { content: counter(geosec, decimal-leading-zero);
  display: inline-block; font-size: 12px; color: #e81320; letter-spacing: .06em;
  background: #fdf5f5; border: 1px solid #f3c9cc; border-radius: 3px;
  padding: 2px 9px; margin-right: 12px; vertical-align: 4px;
  font-family: Arial, Helvetica, sans-serif; }
.geo-body h2:after { content: counter(geosec, decimal-leading-zero);
  position: absolute; right: 0; top: -18px; font-size: 46px; line-height: 1;
  color: #f4f4f4; pointer-events: none; font-family: Arial, Helvetica, sans-serif; }

.geo-body h3 { font-size: 17px; font-weight: bold; color: #1a1a1a;
  line-height: 1.6; margin: 30px 0 14px; }
.geo-body h3:before { content: ''; display: inline-block; width: 7px; height: 7px;
  background: #e81320; margin-right: 10px; vertical-align: 2px; }
.geo-body h4 { font-size: 15.5px; font-weight: bold; color: #1a1a1a;
  margin: 22px 0 10px; }
.geo-body strong { color: #161616; }
.geo-body em { color: #e81320; font-style: normal; }
.geo-body hr { border: none; border-top: 1px dashed #e0e0e0; margin: 40px 0; }

/* 列表 */
.geo-body ul, .geo-body ol { margin: 0 0 20px; padding-left: 0; list-style: none; }
.geo-body ul > li, .geo-body ol > li { position: relative; padding-left: 22px;
  margin-bottom: 10px; }
.geo-body ul > li:before { content: ''; position: absolute; left: 2px; top: 11px;
  width: 6px; height: 6px; background: #e81320; }
.geo-body ol { counter-reset: geoitem; }
.geo-body ol > li { counter-increment: geoitem; }
.geo-body ol > li:before { content: counter(geoitem); position: absolute; left: 0;
  top: 3px; width: 17px; height: 17px; line-height: 17px; text-align: center;
  font-size: 11px; color: #fff; background: #242424; border-radius: 2px; }
.geo-body li > ul, .geo-body li > ol { margin-top: 10px; }

/* 表格 */
.geo-body table { width: 100%; border-collapse: collapse; margin: 26px 0;
  font-size: 14.5px; border: 1px solid #e8e8e8; }
.geo-body table th { background: #242424; color: #fff; font-weight: normal;
  text-align: left; padding: 13px 16px; line-height: 1.7; }
.geo-body table td { padding: 13px 16px; border-top: 1px solid #eee;
  color: #5a5a5a; line-height: 1.8; vertical-align: top; }
.geo-body table tr:nth-child(even) td { background: #fafafa; }
.geo-body table strong { color: #161616; }
.geo-body table td:first-child { color: #333; }

/* 引用 / 提示块 */
.geo-body blockquote { background: #fdf5f5; border-left: 4px solid #e81320;
  border-radius: 0 6px 6px 0; padding: 18px 24px; margin: 0 0 26px;
  color: #555; font-size: 15.5px; line-height: 1.9; }
.geo-body blockquote p { margin-bottom: 0; }
.geo-body blockquote p + p { margin-top: 10px; }

/* 代码 */
.geo-body code { background: #f5f5f5; padding: 2px 7px; border-radius: 3px;
  font-size: 13.5px; color: #c7254e;
  font-family: Consolas, Monaco, 'Courier New', monospace; }
.geo-body pre { background: #f7f7f7; border: 1px solid #ececec;
  border-left: 4px solid #242424; border-radius: 0 6px 6px 0;
  padding: 18px 20px; margin: 0 0 24px; overflow-x: auto; }
.geo-body pre code { background: none; padding: 0; color: #444; font-size: 13.5px;
  line-height: 1.85; }

/* 沉淀块 / 结尾块（写作规范中复用） */
.geo-body .reuse { background: #fafafa; border: 1px solid #ececec;
  border-left: 4px solid #e81320; border-radius: 0 6px 6px 0;
  padding: 20px 26px; margin: 28px 0; }
.geo-body .reuse p { margin-bottom: 10px; }
.geo-body .reuse p:last-child { margin-bottom: 0; }
.geo-body .case-foot { margin-top: 46px; padding: 22px 26px; background: #f7f7f7;
  border-radius: 6px; font-size: 14px; color: #777; line-height: 1.9; }
.geo-body .case-foot p { margin-bottom: 6px; }
.geo-body .case-foot p:last-child { margin-bottom: 0; }
.geo-body .case-foot strong { color: #e81320; font-weight: normal; }

/* ---------- 5. 图片与图示 ---------- */
.geo-body img { max-width: 100%; height: auto; display: block; margin: 26px auto;
  border-radius: 6px; box-shadow: 0 6px 22px rgba(0,0,0,.08); }
.geo-body figure { margin: 30px 0; }
.geo-body figure img { margin: 0 auto; }
.geo-body figcaption { text-align: center; font-size: 13px; color: #999;
  margin-top: 12px; line-height: 1.8; }

/* 图示块：内联 SVG / 流程 / 数据卡（文章内可视化） */
.geo-fig { margin: 32px 0; padding: 26px 22px; background: #fafafa;
  border: 1px solid #ececec; border-radius: 6px; }
.geo-fig svg { display: block; width: 100%; height: auto; margin: 0 auto; }
.geo-fig-title { text-align: center; font-size: 13px; color: #999;
  margin-top: 16px; letter-spacing: .04em; }
.geo-flow { display: -webkit-box; display: -ms-flexbox; display: flex;
  -webkit-flex-wrap: wrap; flex-wrap: wrap; margin: 32px 0; }
.geo-flow > div { -webkit-flex: 1 1 0; flex: 1 1 0; min-width: 150px;
  background: #fff; border: 1px solid #ececec; border-top: 3px solid #e81320;
  border-radius: 0 0 6px 6px; padding: 18px 16px; margin: 6px; }
.geo-flow > div b { display: block; font-size: 12px; color: #e81320;
  font-weight: normal; letter-spacing: .08em; margin-bottom: 8px; }
.geo-flow > div p { font-size: 14px; color: #555; line-height: 1.8; margin: 0; }
.geo-stat { display: -webkit-box; display: -ms-flexbox; display: flex;
  -webkit-flex-wrap: wrap; flex-wrap: wrap; margin: 30px 0; }
.geo-stat > div { -webkit-flex: 1 1 0; flex: 1 1 0; min-width: 130px; text-align: center;
  background: #fff; border: 1px solid #ececec; border-radius: 6px;
  padding: 20px 12px; margin: 6px; }
.geo-stat > div b { display: block; font-size: 30px; color: #e81320;
  font-weight: normal; line-height: 1.2; font-family: Arial, Helvetica, sans-serif; }
.geo-stat > div span { display: block; font-size: 13px; color: #8a8a8a; margin-top: 8px;
  line-height: 1.7; }

/* ---------- 6. 标签与相关阅读 ---------- */
.geo-tags { margin: 40px 0 0; padding-top: 24px; border-top: 1px solid #ededed; }
.geo-tags .iconfont { color: #c9c9c9; margin-right: 6px; }
.geo-tags a { display: inline-block; font-size: 13px; color: #666;
  border: 1px solid #e4e4e4; border-radius: 3px; padding: 4px 14px;
  margin: 0 8px 8px 0; }
.geo-tags a:hover { color: #fff; background: #242424; border-color: #242424; }

/* ---------- 7. 列表页增强 ---------- */
.geo-listhead { max-width: 900px; width: 90%; margin: 0 auto; text-align: center;
  padding: 30px 0 26px; }
.geo-listhead h1 { font-size: 30px; font-weight: normal; color: #111; margin: 0; }
.geo-listhead p { font-size: 14.5px; color: #8a8a8a; line-height: 1.9;
  margin: 14px auto 0; max-width: 720px; }
.geo-empty { text-align: center; color: #bbb; padding: 70px 0; font-size: 15px;
  line-height: 2; }
.geo-empty a { color: #e81320; }

/* ---------- 8. 响应式 ---------- */
@media (max-width: 900px) {
  .geo-head h1 { font-size: 23px; }
  .geo-head .geo-sub { font-size: 14px; }
  .geo-body { font-size: 15.5px; }
  .geo-body h2 { font-size: 19px; margin: 38px 0 16px; }
  .geo-body h2:after { font-size: 38px; top: -14px; }
  .geo-body h3 { font-size: 16px; }
  .geo-toc ol { -webkit-columns: 1; columns: 1; }
  .geo-listhead h1 { font-size: 22px; }
  .geo-stat > div b { font-size: 24px; }
}
@media (max-width: 750px) {
  .geo-body table { display: block; overflow-x: auto; white-space: nowrap;
    -webkit-overflow-scrolling: touch; }
  .geo-body table th, .geo-body table td { padding: 10px 12px; font-size: 13.5px; }
  .geo-body blockquote { padding: 14px 18px; font-size: 14.5px; }
  .geo-fig { padding: 18px 12px; }
  .geo-flow > div, .geo-stat > div { -webkit-flex: 1 1 100%; flex: 1 1 100%; }
  .geo-crumb { padding-top: 16px; }
}
