/* ==========================================================================
   内页 v3 皮肤
   1371 个内页与旧 CMS 页共用 InnerLayout。这一层只改颜色、字体、间距，
   不动任何 DOM、不动布局，让内页和新首页是同一个世界。
   同时 InnerLayout 已经卸掉 unicornStudio（1200ms 长任务与整页粉底的来源）。
   ========================================================================== */

:root {
  --v3-ink: #0b0809;
  --v3-paper: #f5f1ea;
  --v3-card: #fffdfa;
  --v3-red: #c8102e;
  --v3-red-dk: #9e1b32;
  --v3-gold: #bf9b30;
  --v3-hair: rgba(191, 155, 48, .42);
  --v3-text: #1a1412;
  --v3-text-soft: #6b605b;
  --v3-serif: "Songti SC", "SimSun", "Noto Serif CJK SC", Georgia, serif;
}

/* 卸掉 WebGL 之后残留的空层，别占位 */
#geo-watercolor-fixed,
.geo-watercolor-fixed,
.geo-inner-hero .geo-us-layer,
.geo-us-layer { display: none !important; }

body { background: var(--v3-paper); color: var(--v3-text); }

/* ─── 页头 banner：从水彩糊改成 v3 近黑，底部一道金线 ─── */
.geo-inner-hero {
  background: linear-gradient(135deg, #140f10 0%, #241016 46%, #0b0809 100%);
  border-bottom: 1px solid var(--v3-hair);
  min-height: clamp(150px, 22vh, 220px);
}
.geo-inner-hero h1 {
  letter-spacing: .06em;
  text-shadow: none;
}
.geo-inner-hero-lead {
  color: #b9afab;
  font-family: var(--v3-serif);
  line-height: 1.95;
}

/* ─── 正文：宋体、行距拉开、行宽收住 ─── */
.geo-inner-main .prose p,
.geo-inner-main .prose li,
.legacy-content p,
.legacy-content li {
  font-family: var(--v3-serif);
  font-size: 1.02rem;
  line-height: 2.05;
  color: var(--v3-text);
}
/* 行宽只锁在段落本身，绝不锁容器。
   上一轮我锁了容器，团队花名册那种卡片网格页被压成一条，是个雷。 */
.geo-inner-main .prose > p,
.geo-inner-main .prose > ul,
.geo-inner-main .prose > ol,
.legacy-content > p,
.legacy-content > ul,
.legacy-content > ol { max-width: 38em; }
.geo-inner-main .prose,
.legacy-content { max-width: none; }

/* ─── 小标题：特粗黑体 + 金色发丝线，不用红色横条 ─── */
.geo-inner-main .prose h2,
.legacy-content h2 {
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
  font-weight: 800;
  letter-spacing: .03em;
  color: var(--v3-text);
  border: 0;
  padding: 0 0 .9rem;
  margin-top: clamp(2.6rem, 5vw, 4rem);
  border-bottom: 1px solid var(--v3-hair);
}
.geo-inner-main .prose h3,
.legacy-content h3 {
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--v3-red);
}

/* ─── 链接与按钮统一到品牌红 ─── */
.geo-inner-main a,
.legacy-content a { color: var(--v3-red); text-decoration: none; border-bottom: 1px solid rgba(200,16,46,.3); }
.geo-inner-main a:hover,
.legacy-content a:hover { border-bottom-color: var(--v3-red); }

/* ─── 表格：细线 + 斑马，去掉圆角与阴影 ─── */
.geo-inner-main table,
.legacy-content table { border-collapse: collapse; width: 100%; box-shadow: none; }
.geo-inner-main th,
.legacy-content th {
  background: var(--v3-ink); color: #f2ede7; font-weight: 600;
  letter-spacing: .1em; font-size: .84rem; text-align: left;
}
.geo-inner-main td, .geo-inner-main th,
.legacy-content td, .legacy-content th {
  border: 1px solid rgba(26,20,18,.12); padding: .8rem 1rem;
}
.geo-inner-main tbody tr:nth-child(even),
.legacy-content tbody tr:nth-child(even) { background: rgba(26,20,18,.03); }

/* ─── 卡片：去圆角去投影，改细线 ─── */
.geo-inner-main .card,
.geo-inner-main .case-card,
.geo-inner-main .service-card,
.legacy-content .card {
  border-radius: 0 !important;
  box-shadow: none !important;
  border: 1px solid rgba(26,20,18,.12);
  background: var(--v3-card);
}

/* ─── 页脚与顶栏跟首页对齐 ─── */
.geo-inner-footer, .geo-home-footer { background: #070506; }

/* 旧 GEO 落地页里的卡片，实际类名是 case-card */
.geo-inner-main .case-card,
.legacy-content .case-card,
.case-card {
  border-radius: 0 !important;
  box-shadow: none !important;
  border: 1px solid rgba(26, 20, 18, .14);
  background: var(--v3-card);
}
.case-card__tag {
  border-radius: 0 !important;
  background: var(--v3-ink); color: #f2ede7;
  letter-spacing: .12em; font-size: .72rem;
}
/* BLUF 直接答案框：改成金线左栏，跟全站一致 */
.geo-bluf, .geo-bluf-answer {
  border-radius: 0 !important; box-shadow: none !important;
  background: var(--v3-card);
}

/* ==========================================================================
   文章阅读体验（577 篇智库文章 + 旧 CMS 长文共用）
   只加视觉与阅读辅助，不动任何内容 DOM
   ========================================================================== */

/* ─── 顶部阅读进度条 ─── */
.v3-progress {
  position: fixed; inset-inline: 0; top: 0; height: 3px; z-index: 60;
  background: transparent; pointer-events: none;
}
.v3-progress__bar {
  height: 100%; width: 0; background: linear-gradient(90deg, var(--v3-red), var(--v3-gold));
  transition: width .12s linear;
}

/* ─── 正文排版：加宽、加大、章节编号 ─── */
.geo-inner-main { max-width: 1180px; }
.geo-inner-main .prose > p,
.legacy-content > p { font-size: clamp(1.02rem, 1.7vw, 1.12rem); line-height: 2.1; margin: 0 0 1.5rem; }

/* :not(.visually-hidden) 是必须的。屏读专用的标题靠 position:absolute + clip 隐藏，
   而这条规则里的 position:relative 会把 absolute 顶掉，clip 对非 absolute 元素无效，
   于是那个"隐形"标题变成 1px 高的可见细条，压在 BLUF 框顶上像两道莫名其妙的金线。 */
.geo-inner-main .prose h2:not(.visually-hidden),
.legacy-content h2:not(.visually-hidden) {
  counter-increment: v3sec; position: relative; padding-left: 3.2rem;
  font-size: clamp(1.35rem, 2.6vw, 1.85rem);
}
/* 计数器要挂在 main 上，不能挂在 .prose 上 —— legacy 页把每个板块都标成了 .prose
   （section.geo-bluf.prose / .geo-pain.prose / .geo-service-detail.prose），
   挂在 .prose 上等于每个板块各自从头数，全页序号一路都是 01。 */
.geo-inner-main,
.legacy-content { counter-reset: v3sec; }
.geo-inner-main .prose h2:not(.visually-hidden)::before,
.legacy-content h2:not(.visually-hidden)::before {
  content: counter(v3sec, decimal-leading-zero);
  position: absolute; left: 0; top: .15em;
  font-size: .78rem; letter-spacing: .18em; color: var(--v3-red);
  font-weight: 700; font-family: var(--v3-sans); font-variant-numeric: tabular-nums;
}

/* ─── 列表：红点 + 呼吸 ─── */
.geo-inner-main .prose > ul li,
.legacy-content > ul li { margin-bottom: .7rem; line-height: 2; }

/* ─── 引用块：左金线 + 宋体大字 ─── */
.geo-inner-main blockquote,
.legacy-content blockquote {
  margin: clamp(2rem, 4vw, 3rem) 0; padding: 0 0 0 1.8rem;
  border-left: 2px solid var(--v3-gold); background: transparent;
  font-family: var(--v3-serif); font-size: clamp(1.1rem, 2.1vw, 1.35rem);
  line-height: 1.95; color: var(--v3-text);
}

/* ─── 文章目录：桌面端贴边，长文才出现 ─── */
.v3-toc {
  position: fixed; top: 50%; transform: translateY(-50%);
  left: calc((100vw - 1180px) / 2 - 13rem);
  width: 11rem; z-index: 20; display: none;
}
/* 只有屏幕真的放得下才出现：正文 1180 + 两侧各 13rem 目录带 = 约 1596px。
   阈值给低了会和正文叠在一起（踩过）。 */
@media (min-width: 1620px) { .v3-toc.is-on { display: block; } }
.v3-toc__lbl { margin: 0 0 .9rem; font-size: .62rem; letter-spacing: .34em; color: var(--v3-text-soft); }
.v3-toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; }
.v3-toc a {
  display: block; font-size: .76rem; line-height: 1.6; color: var(--v3-text-soft);
  text-decoration: none; border-left: 2px solid rgba(26, 20, 18, .12); padding: .12rem 0 .12rem .7rem;
  transition: color .25s, border-color .25s;
  overflow: hidden; text-overflow: ellipsis; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical;
}
.v3-toc a:hover { color: var(--v3-text); }
.v3-toc li.is-cur a { color: var(--v3-red); border-left-color: var(--v3-red); font-weight: 600; }

@media (prefers-reduced-motion: reduce) {
  .v3-progress__bar { transition: none; }
}

/* ==========================================================================
   配色重整（老板令 2026-08-18）
   原来把品牌红当结构线用，用得太多就廉价了。
   改成：金色做所有线条与分隔，红色只留给按钮、勾选与强调词。
   ========================================================================== */

/* ─── 顶栏与导航：拉高、去掉白色 logo 盒、加金色发丝线 ─── */
.geo-inner-site-header { background: var(--v3-ink); border-bottom: 1px solid var(--v3-hair); }
.geo-inner-topbar {
  max-width: 1180px; margin: 0 auto; padding: clamp(1rem, 2vw, 1.5rem) clamp(1.4rem, 5vw, 4rem);
  display: flex; align-items: center; justify-content: space-between; gap: 1.4rem;
}
.geo-inner-topbar-logo a { display: block; line-height: 0; }
.geo-inner-topbar-logo img {
  height: clamp(34px, 4vw, 46px); width: auto; background: transparent !important;
  border-radius: 0 !important; box-shadow: none !important; padding: 0 !important;
}
.geo-inner-topbar-actions { display: flex; align-items: center; gap: clamp(1rem, 2.5vw, 2rem); }
.geo-inner-topbar-tel { display: flex; align-items: baseline; gap: .7rem; }
.geo-tel-label { font-size: .62rem; letter-spacing: .34em; color: var(--v3-gold); }
.geo-inner-topbar-tel a {
  color: #f2ede7; font-weight: 700; letter-spacing: .04em; text-decoration: none;
  font-variant-numeric: tabular-nums; font-size: clamp(.9rem, 1.5vw, 1.05rem); border: 0;
}
.geo-inner-nav {
  max-width: 1180px; margin: 0 auto; padding: 0 clamp(1.4rem, 5vw, 4rem) .9rem;
  display: flex; flex-wrap: wrap; gap: clamp(.9rem, 2.4vw, 2.2rem);
  border-top: 1px solid rgba(191, 155, 48, .18); padding-top: .9rem;
}
.geo-inner-nav a {
  color: #a49b97; text-decoration: none; border: 0 !important; border-radius: 0 !important;
  background: none !important; padding: .2rem 0 !important;
  font-size: .86rem; letter-spacing: .1em; position: relative;
}
.geo-inner-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: -.35rem; height: 1px;
  background: var(--v3-gold); transform: scaleX(0); transform-origin: left;
  transition: transform .3s cubic-bezier(.2,.8,.3,1);
}
.geo-inner-nav a:hover { color: #f2ede7; }
.geo-inner-nav a:hover::after,
.geo-inner-nav a.is-active::after { transform: scaleX(1); }
.geo-inner-nav a.is-active { color: #fff; font-weight: 600; }

/* ─── 页头 banner：金线收边，标题拉开字距 ─── */
.geo-inner-hero { border-bottom: 1px solid var(--v3-hair); }
.geo-inner-hero::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 34%; height: 2px;
  background: linear-gradient(90deg, var(--v3-gold), transparent);
}

/* ─── 干掉「左边一条红杠」这个套路，全站统一成金线 ─── */
/* 只给外框 .geo-bluf 上边框和内边距。以前把 .geo-bluf-answer 也算进来，
   而它就嵌在 .geo-bluf 里面，于是框里又画了一条金线、又撑出一圈内边距，
   看起来像框顶上莫名其妙多了一道横杠加一大片空白。 */
.geo-bluf,
/* 媒体卡里的引语也是 blockquote，但它在深底上，刷成米白同样会把字吃掉 */
.legacy-content blockquote:not(.geo-press-card__quote),
.geo-inner-main blockquote:not(.geo-press-card__quote) {
  border-left: 0 !important;
  border-top: 1px solid var(--v3-hair) !important;
  background: var(--v3-card) !important;
  padding: clamp(1.4rem, 3vw, 2rem) !important;
  border-radius: 0 !important; box-shadow: none !important;
}
.geo-bluf strong:first-child, .geo-bluf-answer strong:first-child { color: var(--v3-red); }
.geo-bluf-answer { margin: 0 !important; font-size: 1.02rem; line-height: 1.9; }

/* 旧内容里各种卡片的左红杠一律换成顶部金线。
   :not([class*="__"]) 是必须的 —— [class*="card"] 会连 BEM 子元素一起命中
   （geo-press-card__title / __excerpt / __quote 都含 "card"），
   于是标题和摘要各自被刷上一块米白底，压在深色媒体卡上像一排白条。
   头条那张媒体卡本来就是深底金字，也必须从这条通配里排除掉，
   否则底被刷白、白字压白底，整块内容等于消失。 */
.geo-inner-main [class*="card"]:not([class*="__"]):not(.geo-press-card--featured),
.legacy-content [class*="card"]:not([class*="__"]):not(.geo-press-card--featured),
.geo-inner-main .geo-step,
.geo-inner-main .geo-list-card {
  border-left: 0 !important; border-radius: 0 !important; box-shadow: none !important;
  border-top: 1px solid var(--v3-hair);
  background: var(--v3-card) !important;
}

/* 正文章节编号与小标题下划线改金 */
.geo-inner-main .prose h2:not(.visually-hidden)::before,
.legacy-content h2:not(.visually-hidden)::before { color: var(--v3-gold); }
.geo-inner-main .prose h3,
.legacy-content h3 { color: var(--v3-text); }
.geo-inner-main .prose h3::before,
.legacy-content h3::before {
  content: ""; display: inline-block; width: 1.1rem; height: 1px;
  background: var(--v3-gold); vertical-align: middle; margin-right: .7rem;
}

/* ─── 内页里的卡片：去圆角去投影，改顶部金线（点名覆盖 Astro 作用域样式）─── */
.services-grid > *,
.case-grid > *,
.faq-item,
.geo-local-faq .faq-item,
.contact-layout > *,
.geo-inner-main .prose > div,
.legacy-content > div {
  border-radius: 0 !important;
  box-shadow: none !important;
  border: 1px solid rgba(26, 20, 18, .1) !important;
  border-top: 1px solid var(--v3-hair) !important;
  background: var(--v3-card) !important;
}
.services-grid { gap: 1px !important; }
.faq-item + .faq-item { margin-top: .9rem; }
.faq-item h3, .faq-item h4, .faq-item summary {
  color: var(--v3-text) !important; font-weight: 700; letter-spacing: .03em;
}
/* 卡片里的小标题保持品牌红，但只是文字，不再是色块或左杠 */
.services-grid > * h3,
.services-grid > * h4 { color: var(--v3-red) !important; letter-spacing: .04em; }

/* 悬停时金线亮起，替代原来的红色描边 */
.services-grid > *:hover,
.case-grid > *:hover,
.faq-item:hover { border-top-color: var(--v3-gold) !important; border-color: rgba(191,155,48,.35) !important; }

/* ==========================================================================
   课程页：视频就是内容本身，不套播放器外壳；滚到自动播，静音循环
   ========================================================================== */
.xcq-hero { max-width: 1180px; margin: 0 auto clamp(3rem, 6vw, 5rem); display: grid; gap: clamp(1.4rem, 3vw, 2.4rem); }
@media (min-width: 980px) { .xcq-hero { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); align-items: center; } }
.xcq-hero__frame { position: relative; border: 1px solid var(--v3-hair); background: #000; }
.xcq-video { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; background: #000; }
.xcq-hero__eyebrow { margin: 0 0 .8rem; font-size: .7rem; letter-spacing: .34em; color: var(--v3-gold); }
.xcq-hero__cap h2 { margin: 0 0 .9rem !important; padding: 0 !important; border: 0 !important; font-size: clamp(1.2rem, 2.4vw, 1.7rem); }
.xcq-hero__cap h2::before { content: none !important; }
.xcq-hero__cap p { margin: 0 0 .8rem; color: var(--v3-text-soft); line-height: 1.95; font-family: var(--v3-serif); }
.xcq-hero__meta { font-size: .78rem; letter-spacing: .16em; color: var(--v3-text-soft); }
.xcq-hero__link { display: inline-block; color: var(--v3-red); font-weight: 700; text-decoration: none; border-bottom: 2px solid rgba(200,16,46,.28); padding-bottom: .18rem; }

.xcq-clipgrid { list-style: none; margin: clamp(1.6rem, 3vw, 2.4rem) 0 0; padding: 0;
  display: grid; gap: clamp(1rem, 2vw, 1.6rem); grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.xcq-clipgrid a { display: grid; gap: .5rem; text-decoration: none; height: 100%;
  border: 1px solid rgba(26,20,18,.1); border-top: 1px solid var(--v3-hair);
  background: var(--v3-card); padding-bottom: 1.1rem; transition: border-color .25s, transform .25s; }
.xcq-clipgrid a:hover { border-color: rgba(191,155,48,.45); transform: translateY(-3px); }
.xcq-clip__frame { position: relative; display: block; background: #000; }
.xcq-clip__v { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.xcq-clip__n { position: absolute; left: 0; top: 0; background: var(--v3-ink); color: var(--v3-gold);
  font-size: .66rem; letter-spacing: .2em; padding: .35rem .7rem; }
.xcq-clip__hook { padding: .9rem 1.1rem 0; font-family: var(--v3-serif); font-size: 1.02rem; line-height: 1.8; color: var(--v3-text); }
.xcq-clip__t { padding: 0 1.1rem; font-size: .82rem; color: var(--v3-text-soft); line-height: 1.7; }
.xcq-clip__meta { padding: .3rem 1.1rem 0; font-size: .7rem; letter-spacing: .14em; color: var(--v3-gold); }

/* ─── 目录：给底衬，压在深色 banner 上也读得清；太长就自己滚 ─── */
.v3-toc {
  max-height: 68vh; overflow-y: auto; overscroll-behavior: contain;
  background: rgba(245, 241, 234, .92); backdrop-filter: blur(6px);
  padding: 1rem .9rem; border: 1px solid rgba(191, 155, 48, .28);
}
.v3-toc::-webkit-scrollbar { width: 3px; }
.v3-toc::-webkit-scrollbar-thumb { background: rgba(191, 155, 48, .5); }
.v3-toc__lbl { color: var(--v3-gold); }
.v3-toc a { color: #6b605b; }

/* ─── 语言切换：不要红字加下划线，改成安静的描边小钮 ─── */
.geo-lang-switch,
.geo-lang-switch--hero,
.geo-lang-switch--footer {
  color: #a49b97 !important; text-decoration: none !important;
  border: 1px solid rgba(242, 237, 231, .26) !important; border-radius: 0 !important;
  padding: .34rem .85rem !important; font-size: .72rem !important; letter-spacing: .16em !important;
  background: transparent !important; line-height: 1.6 !important; display: inline-block;
  transition: color .25s, border-color .25s;
}
.geo-lang-switch:hover { color: #fff !important; border-color: var(--v3-gold) !important; }
.geo-inner-footer .geo-lang-switch { border-color: rgba(242, 237, 231, .2) !important; }

/* ─── 案例卡的行业标签原来浅到几乎看不见 ─── */
.case-grid .case-card__tag,
.case-card__tag,
.geo-case-tag {
  color: var(--v3-gold) !important; background: transparent !important;
  font-size: .68rem !important; letter-spacing: .24em !important; font-weight: 700 !important;
  opacity: 1 !important; padding: 0 !important; border: 0 !important;
}
.case-grid a, .case-grid > * { padding: clamp(1.2rem, 2.4vw, 1.7rem) !important; }
.case-grid h3, .case-card h3 { margin: .7rem 0 .5rem !important; }

/* 蜜罐字段：人看不见，机器人会填 */
.hp-field { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* ==========================================================================
   服务体系页：9000px 的文字墙，七个服务和十套方法论长得一模一样。
   分成三种形态：服务=编号清单、方法论=命名资产卡、对比=细线表。
   只改样式，DOM 一行没动，GEO 一分不掉。
   ========================================================================== */

/* ─── 七个服务：编号清单，一条金线一项 ─── */
.services-grid { display: block !important; counter-reset: v3svc; }
.services-grid > * {
  display: block !important; position: relative;
  padding: clamp(1.4rem, 2.8vw, 2.2rem) 0 clamp(1.4rem, 2.8vw, 2.2rem) clamp(3.2rem, 5vw, 4.4rem) !important;
  border: 0 !important; border-top: 1px solid var(--v3-hair) !important;
  background: transparent !important; counter-increment: v3svc;
}
/* 编号绝对定位。之前用三列网格，结果每个 <p> 都被当成独立格子甩到不同列，惨不忍睹。 */
.services-grid > *::before {
  content: counter(v3svc, decimal-leading-zero);
  position: absolute; left: 0; top: clamp(1.5rem, 2.9vw, 2.35rem);
  font-size: .74rem; letter-spacing: .18em; color: var(--v3-gold);
  font-weight: 700; font-variant-numeric: tabular-nums;
}
.services-grid > * h2,
.services-grid > * h3 {
  margin: 0 0 .8rem !important; padding: 0 !important; border: 0 !important;
  font-size: clamp(1.05rem, 2vw, 1.32rem) !important; font-weight: 800 !important;
  letter-spacing: .05em; color: var(--v3-text) !important;
}
.services-grid > * h2::before { content: none !important; }
.services-grid > * p {
  margin: 0 0 .45rem !important; color: var(--v3-text-soft) !important;
  line-height: 1.95; max-width: 46em !important; font-size: .96rem !important;
}
.services-grid > * p:last-child { margin-bottom: 0 !important; }
.services-grid > * p strong { color: var(--v3-red); font-weight: 700; margin-right: .4rem; }
.services-grid > *:hover { border-top-color: var(--v3-red) !important; }

/* ─── 方法论：这是写春秋的自研资产，值得当卡片墙摆出来 ─── */
.geo-methodology { margin-top: clamp(3rem, 6vw, 5rem); }
.geo-methodology > h2 { margin-bottom: clamp(1.6rem, 3vw, 2.4rem) !important; }
.geo-methodology .geo-method-block {
  border: 1px solid rgba(26, 20, 18, .1) !important;
  border-top: 2px solid var(--v3-gold) !important;
  background: var(--v3-card) !important; border-radius: 0 !important; box-shadow: none !important;
  padding: clamp(1.3rem, 2.6vw, 1.9rem) !important;
}
@supports (display: grid) {
  .geo-methodology { display: grid; gap: clamp(.9rem, 2vw, 1.4rem); }
  .geo-methodology > h2, .geo-methodology > p { grid-column: 1 / -1; }
  @media (min-width: 900px) { .geo-methodology { grid-template-columns: repeat(2, 1fr); } }
}
.geo-method-block h3,
.geo-method-block h4 {
  margin: 0 0 .8rem !important; font-size: clamp(1rem, 1.9vw, 1.2rem) !important;
  font-weight: 800 !important; letter-spacing: .05em; color: var(--v3-text) !important;
}
.geo-method-block h3::before, .geo-method-block h4::before { content: none !important; }
.geo-method-block p { font-size: .95rem !important; line-height: 1.95 !important; color: var(--v3-text-soft); }

/* ─── 方案对比：细线表，表头近黑 ─── */
.geo-comparison table { border-collapse: collapse; width: 100%; }
.geo-comparison th { background: var(--v3-ink); color: #f2ede7; letter-spacing: .12em; font-size: .8rem; }
.geo-comparison td, .geo-comparison th { border: 1px solid rgba(26, 20, 18, .12); padding: .8rem 1rem; }
.geo-comparison tbody tr:nth-child(even) { background: rgba(26, 20, 18, .03); }

/* ─── GEO 链接区：收成一片安静的标签，不跟正文抢 ─── */
.geo-services-geo a,
.geo-local-cases a[href*="/zh/"] { border-bottom: 0 !important; }
.geo-services-geo { margin-top: clamp(2.6rem, 5vw, 4rem); padding-top: 2rem; border-top: 1px solid var(--v3-hair); }

/* 隐藏标题不该占章节编号：BLUF 那块里有个 visually-hidden 的 h2，
   结果页面顶上冒出一个孤零零的「01」。 */
.geo-inner-main .prose h2.visually-hidden,
.legacy-content h2.visually-hidden,
.geo-inner-main h2[class*="visually-hidden"],
.geo-bluf h2 {
  counter-increment: none !important;
  /* 光去掉编号不够：内页样式表给 h2 加了 border-bottom 和 padding，
     屏读专用标题被这些属性撑成一条 1px 高的可见金线，压在 BLUF 框里。
     这里把它彻底压平。 */
  border: 0 !important; padding: 0 !important; margin: 0 !important;
  font-size: 0 !important; line-height: 0 !important;
}
.geo-inner-main .prose h2.visually-hidden::before,
.legacy-content h2.visually-hidden::before,
.geo-inner-main h2[class*="visually-hidden"]::before,
.geo-bluf h2::before { content: none !important; }
.geo-bluf { padding-top: clamp(1.4rem, 3vw, 2rem) !important; }

/* ==========================================================================
   信息图：手写 SVG，不是 AI 出图。文字是真文字，爬虫读得到、能选中、改一行就变。
   ========================================================================== */
.diag { margin: 0 0 1.4rem; }
.diag svg { width: 100%; height: auto; display: block; overflow: visible; }
.diag figcaption {
  margin-top: 1rem; font-size: .86rem; line-height: 1.9; color: var(--v3-text-soft);
  font-family: var(--v3-serif);
}
.diag figcaption strong { color: var(--v3-text); font-weight: 700; }

/* 三角面与描边 */
.diag-tri__face { fill: rgba(191, 155, 48, .07); }
.diag-tri.is-mgmt .diag-tri__face { fill: rgba(200, 16, 46, .05); }
.diag-tri__edge {
  fill: none; stroke: var(--v3-gold); stroke-width: 1.4; stroke-linejoin: round;
  stroke-dasharray: 900; stroke-dashoffset: 900;
}
.diag.is-in .diag-tri__edge { animation: diagDraw 1.4s cubic-bezier(.2,.8,.3,1) forwards; }
.diag.is-in .diag-tri.is-mgmt .diag-tri__edge { animation-delay: .35s; }
@keyframes diagDraw { to { stroke-dashoffset: 0; } }

/* 顶点 */
.diag-node circle { fill: var(--v3-paper); stroke: var(--v3-gold); stroke-width: 1.6; }
.diag-node text {
  font-size: 19px; font-weight: 800; fill: var(--v3-text);
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif; letter-spacing: .04em;
}
.diag-node.is-key circle { fill: var(--v3-red); stroke: var(--v3-red); }
.diag-node.is-key text { fill: var(--v3-red); }

/* 三角中心的名字 */
.diag-tri__label {
  font-size: 15px; font-weight: 700; fill: var(--v3-text-soft); letter-spacing: .22em;
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
.diag-tri__sub {
  font-size: 12.5px; fill: var(--v3-text-soft); opacity: .75; letter-spacing: .1em;
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}

/* 中间的连接 */
.diag-link line { stroke: var(--v3-hair); stroke-width: 1; stroke-dasharray: 4 5; }
.diag-link text {
  font-size: 14px; font-weight: 700; fill: var(--v3-gold); letter-spacing: .18em;
  font-family: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
}
.diag-link__sub { font-size: 12px !important; font-weight: 400 !important; fill: var(--v3-text-soft) !important; }

/* 带图那张卡横跨两列 */
@media (min-width: 900px) {
  .geo-methodology .geo-method-block--wide { grid-column: 1 / -1; }
}
@media (prefers-reduced-motion: reduce) {
  .diag-tri__edge { stroke-dashoffset: 0 !important; animation: none !important; }
}

/* ==========================================================================
   联系页：这是转化页，主角是表单不是通讯录。
   访客心里有三个问题：会不会被轰炸、是不是套路、留完之后会发生什么。
   页面必须逐条回答。
   ========================================================================== */
.contact-trust {
  display: flex; flex-wrap: wrap; gap: .8rem clamp(1.4rem, 4vw, 3.2rem);
  padding: 0 0 clamp(1.6rem, 3vw, 2.4rem); border-bottom: 1px solid var(--v3-hair);
  margin-bottom: clamp(2rem, 4vw, 3rem);
}
.contact-trust span { font-size: .82rem; letter-spacing: .1em; color: var(--v3-text-soft); }
.contact-trust b {
  display: block; font-size: clamp(1.15rem, 2.4vw, 1.6rem); font-weight: 800;
  color: var(--v3-text); letter-spacing: .02em; margin-bottom: .2rem;
}

.contact-layout { display: grid !important; gap: clamp(2rem, 4vw, 3.4rem) !important; align-items: stretch; }
@media (min-width: 940px) {
  /* 表单占大头，右边是「会发生什么」和直接联系 */
  .contact-layout { grid-template-columns: minmax(0, 1.25fr) minmax(300px, .85fr) !important; }
}
.contact-form-wrap { background: var(--v3-card); border: 1px solid rgba(26,20,18,.1);
  border-top: 2px solid var(--v3-red); padding: clamp(1.5rem, 3vw, 2.4rem); }
.contact-form-wrap > h2 {
  margin: 0 0 .7rem !important; padding: 0 !important; border: 0 !important;
  font-size: clamp(1.2rem, 2.5vw, 1.65rem) !important; font-weight: 800 !important;
}
.contact-form-wrap > h2::before { content: none !important; }
.contact-form-lead { margin: 0 0 1.6rem !important; color: var(--v3-text-soft); font-size: .95rem; line-height: 1.9; }
.contact-pledge {
  margin: 1.3rem 0 0 !important; padding: 1rem 0 0 !important;
  border-top: 1px solid var(--v3-hair);
  font-size: .8rem; letter-spacing: .04em; line-height: 1.9; color: var(--v3-text-soft);
}

/* 触发场景：真问题是「一通电话都没有」，所以页面要给出「现在就该找」的理由，
   而不是安抚「不会被轰炸」。 */
.contact-trigger { border-left: 2px solid var(--v3-gold); padding-left: clamp(1rem, 2vw, 1.4rem); }
.contact-trigger ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.contact-trigger li {
  font-size: .9rem; line-height: 1.75; color: var(--v3-text);
  font-family: var(--v3-serif); position: relative; padding-left: 1.1rem;
}
.contact-trigger li::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: 5px; height: 5px; background: var(--v3-red);
}

.contact-side { display: grid; gap: clamp(1.6rem, 3vw, 2.4rem); }
.contact-next h2, .contact-direct h2, .contact-trigger h2 {
  margin: 0 0 1.2rem !important; padding: 0 !important; border: 0 !important;
  font-size: clamp(1rem, 2vw, 1.2rem) !important; font-weight: 800 !important; letter-spacing: .06em;
}
.contact-next h2::before, .contact-direct h2::before, .contact-trigger h2::before { content: none !important; }
.contact-next ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; }
.contact-next li {
  display: grid; grid-template-columns: 2.4rem 1fr; gap: .1rem .8rem; align-items: baseline;
  padding-bottom: 1.2rem; border-bottom: 1px solid rgba(26,20,18,.08);
}
.contact-next li:last-child { border-bottom: 0; padding-bottom: 0; }
.contact-next .n {
  grid-row: span 2; font-size: .74rem; letter-spacing: .16em; color: var(--v3-gold);
  font-weight: 700; font-variant-numeric: tabular-nums;
}
.contact-next b { font-size: 1rem; font-weight: 800; color: var(--v3-text); letter-spacing: .04em; }
.contact-next em {
  font-style: normal; font-size: .86rem; line-height: 1.85; color: var(--v3-text-soft);
  font-family: var(--v3-serif);
}

.contact-direct { background: var(--v3-ink); color: #f5f1ea; padding: clamp(1.4rem, 2.8vw, 2rem); }
.contact-direct h2 { color: #f5f1ea !important; }
.contact-direct__lead { margin: 0 0 1.2rem !important; font-size: .86rem; color: rgba(245,241,234,.72); line-height: 1.8; }
.contact-tel { margin: 0 0 .5rem !important; font-variant-numeric: tabular-nums; }
.contact-tel a {
  color: #fff !important; font-weight: 700; font-size: clamp(1rem, 2vw, 1.18rem);
  letter-spacing: .04em; text-decoration: none; border-bottom: 1px solid rgba(191,155,48,.5) !important;
  white-space: nowrap;   /* 手机号断行会被读成两个残号 */
}
.contact-tel a:hover { border-bottom-color: var(--v3-gold) !important; }
.contact-tel .sep { color: var(--v3-gold); margin: 0 .55rem; }
.contact-tel--sub a { font-size: .84rem !important; font-weight: 400; color: rgba(245,241,234,.72) !important; }
.contact-qr-row { display: flex; gap: 1.1rem; margin: 1.4rem 0 0; flex-wrap: wrap; }
.contact-qr-item { margin: 0; text-align: center; }
.contact-qr-item img { width: clamp(96px, 12vw, 128px); height: auto; background: #fff; padding: 5px; }
.contact-qr-item figcaption, .contact-qr-item p {
  margin: .5rem 0 0; font-size: .7rem; letter-spacing: .1em; color: rgba(245,241,234,.72);
}
.contact-hours { margin: 1.2rem 0 0 !important; font-size: .74rem; letter-spacing: .14em; color: var(--v3-gold); }

.contact-facts {
  margin-top: clamp(2.6rem, 5vw, 4rem); padding-top: clamp(1.8rem, 3vw, 2.6rem);
  border-top: 1px solid var(--v3-hair); display: grid; gap: clamp(1.6rem, 3vw, 3rem);
}
@media (min-width: 860px) { .contact-facts { grid-template-columns: 1fr 1fr; } }
.contact-facts h2 {
  margin: 0 0 .9rem !important; padding: 0 !important; border: 0 !important;
  font-size: 1rem !important; font-weight: 800 !important; letter-spacing: .06em;
}
.contact-facts h2::before { content: none !important; }
.contact-address { margin: 0 0 .4rem !important; line-height: 1.9; }
.contact-coords { margin: 0 0 1.2rem !important; font-size: .8rem; color: var(--v3-text-soft); font-variant-numeric: tabular-nums; }
.contact-map-btn {
  display: inline-block; background: transparent; color: var(--v3-red) !important;
  border: 1px solid rgba(200,16,46,.35) !important; padding: .6rem 1.3rem; font-weight: 700;
  font-size: .86rem; letter-spacing: .06em; text-decoration: none; border-radius: 0 !important;
}
.contact-map-btn:hover { border-color: var(--v3-red) !important; background: rgba(200,16,46,.05); }
.contact-dl { display: grid; grid-template-columns: auto 1fr; gap: .55rem 1.4rem; margin: 0; font-size: .88rem; }
.contact-dl dt { color: var(--v3-text-soft); letter-spacing: .1em; font-size: .78rem; }
.contact-dl dd { margin: 0; color: var(--v3-text); }

/* 位图流程图（即梦出的中文信息图）。中文字在图里，所以正文必须同时把同样的话写成文字，
   否则爬虫和 AI 只看得见一张图。alt + figcaption + 正文三处都要有。 */
.diag--img { margin: 2rem 0 2.4rem; }
.diag--img img {
  width: 100%; height: auto; display: block;
  border: 1px solid var(--v3-hair); background: var(--v3-card);
}
.diag--img figcaption { margin-top: .8rem; }

/* ==========================================================================
   案例页：把点名客户的量化成果提到最前面。
   原来这页只有 23 张匿名卡片，全站最硬的资产（几十家点名客户 + 数字）
   埋在 track-record 里没人点得到。
   ========================================================================== */
.case-proof { margin: 0 0 clamp(2.6rem, 5vw, 4rem); }
.case-proof > h2, .case-anon > h2 { margin-top: 0 !important; }
.case-proof__lead, .case-intro {
  max-width: 40em; color: var(--v3-text-soft); line-height: 1.95; margin: 0 0 1.8rem;
}
/* 分隔线画在格子自己身上，不是靠「容器底色 + 1px gap」透出来 ——
   条目数填不满最后一行时，那种画法会把空缺处露成一片金色色块。 */
.case-proof__grid {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: 0; background: transparent;
  border-top: 1px solid var(--v3-hair); border-left: 1px solid var(--v3-hair);
  grid-template-columns: repeat(auto-fill, minmax(258px, 1fr));
}
.case-proof__item {
  background: var(--v3-card); padding: clamp(1.2rem, 2.4vw, 1.6rem);
  border-right: 1px solid var(--v3-hair); border-bottom: 1px solid var(--v3-hair);
  display: flex; flex-direction: column; gap: .35rem;
}
.case-proof__metric {
  margin: 0 0 .3rem !important; color: var(--v3-red);
  font-size: clamp(1.35rem, 2.6vw, 1.72rem); font-weight: 800; letter-spacing: .01em;
  line-height: 1.25; font-variant-numeric: tabular-nums;
}
.case-proof__client { margin: 0 !important; font-weight: 700; font-size: .95rem; color: var(--v3-text); }
.case-proof__industry {
  margin: 0 !important; font-size: .74rem; letter-spacing: .1em; color: var(--v3-gold);
}
.case-proof__detail {
  margin: .5rem 0 0 !important; font-size: .82rem; line-height: 1.8;
  color: var(--v3-text-soft); font-family: var(--v3-serif);
}
.case-proof__more { margin: 1.6rem 0 0 !important; }
.case-proof__btn {
  display: inline-block; background: var(--v3-ink); color: #f5f1ea !important;
  padding: .8rem 1.7rem; font-weight: 700; font-size: .9rem; letter-spacing: .06em;
  text-decoration: none; border: 0 !important;
}
.case-proof__btn:hover { background: var(--v3-red); }
.case-anon { padding-top: clamp(1.8rem, 3vw, 2.6rem); border-top: 1px solid var(--v3-hair); }

/* 头条媒体卡是深底金字的，但上面那条「旧卡片一律换成米白底」用了
   [class*="card"] 通配，把 .geo-press-card--featured 的深色渐变也刷成了米白，
   白字压白底 = 标题、摘要、引语全部隐形（媒体页和关于页都中招）。
   这里把深底还给它。 */
.geo-inner-main .geo-press-card--featured,
.legacy-content .geo-press-card--featured {
  background: linear-gradient(135deg, #140f10 0%, #2d1218 48%, #0b0809 100%) !important;
  border: 1px solid rgba(191, 155, 48, .35) !important;
  border-top: 1px solid rgba(191, 155, 48, .45) !important;
}
.geo-press-card--featured .geo-press-card__title a { color: #fff !important; }
.geo-press-card--featured .geo-press-card__excerpt { color: rgba(245, 241, 234, .8) !important; }
.geo-press-card--featured .geo-press-card__quote,
.geo-press-card--featured .geo-press-card__quote p { color: rgba(245, 241, 234, .72) !important; }
.geo-press-card--featured .geo-press-card__date { color: rgba(245, 241, 234, .55) !important; }

/* ==========================================================================
   常见问题页：51 条原来是一条直筒列表，页面 9598px。
   现在分五组 + 顶部目录 + 每条一个锚点，人能跳、AI 能单条引用。
   ========================================================================== */
.faq-index {
  margin: 2rem 0 clamp(2.4rem, 5vw, 3.6rem);
  padding: clamp(1.4rem, 3vw, 2rem) 0;
  border-top: 1px solid var(--v3-hair); border-bottom: 1px solid var(--v3-hair);
}
.faq-index__count { margin: 0 0 1.6rem !important; font-size: .88rem; color: var(--v3-text-soft); letter-spacing: .03em; }
.faq-index__cols {
  display: grid; gap: clamp(1.4rem, 3vw, 2.2rem);
  grid-template-columns: repeat(auto-fit, minmax(258px, 1fr));
}
.faq-index__gname {
  margin: 0 0 .35rem !important; padding: 0 !important; border: 0 !important;
  font-size: .95rem !important; font-weight: 800 !important; letter-spacing: .06em;
  display: flex; align-items: baseline; gap: .55rem;
}
.faq-index__gname::before { content: none !important; }
.faq-index__gname a { color: var(--v3-text) !important; text-decoration: none; border: 0 !important; }
.faq-index__gname a:hover { color: var(--v3-red) !important; }
.faq-index__gname span {
  font-size: .7rem; color: var(--v3-gold); font-variant-numeric: tabular-nums;
  border: 1px solid var(--v3-hair); padding: 0 .4rem; line-height: 1.5;
}
.faq-index__hint { margin: 0 0 .8rem !important; font-size: .78rem; color: var(--v3-text-soft); line-height: 1.7; }
.faq-index__cols ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .45rem; }
.faq-index__cols li { margin: 0 !important; line-height: 1.6; }
.faq-index__cols li a {
  font-size: .84rem; color: var(--v3-text-soft) !important;
  text-decoration: none; border-bottom: 1px solid transparent !important;
}
.faq-index__cols li a:hover { color: var(--v3-red) !important; border-bottom-color: var(--v3-red) !important; }

.faq-group { margin: 0 0 clamp(2.2rem, 4vw, 3.2rem); scroll-margin-top: 175px; }  /* 顶部导航是吸顶的，90px 不够，跳过去组标题会被压在导航底下 */
.faq-group__title { margin-top: 0 !important; }
.faq-group__hint { margin: -.6rem 0 1.4rem !important; font-size: .86rem; color: var(--v3-text-soft); }
.faq-item { scroll-margin-top: 175px; }
.faq-item h3 { display: flex; align-items: baseline; gap: .5rem; }
.faq-item__anchor {
  opacity: 0; font-size: .8em; color: var(--v3-gold) !important;
  text-decoration: none; border: 0 !important; transition: opacity .15s;
}
.faq-item:hover .faq-item__anchor, .faq-item__anchor:focus { opacity: 1; }
.faq-item:target { outline: 1px solid var(--v3-gold); outline-offset: 6px; }

.faq-longtail, .faq-cta {
  margin-top: clamp(2.4rem, 4vw, 3.4rem); padding-top: clamp(1.6rem, 3vw, 2.2rem);
  border-top: 1px solid var(--v3-hair);
}
.faq-cta { background: var(--v3-ink); color: #f5f1ea; padding: clamp(1.8rem, 4vw, 2.8rem); border-top: 0; }
.faq-cta h2 { color: #f5f1ea !important; margin-top: 0 !important; }
.faq-cta h2::before { color: var(--v3-gold) !important; }
.faq-cta p { color: rgba(245, 241, 234, .8); }
.faq-cta__btn {
  display: inline-block; margin-top: .6rem; background: var(--v3-red); color: #fff !important;
  padding: .85rem 1.9rem; font-weight: 700; letter-spacing: .05em;
  text-decoration: none; border: 0 !important;
}
.faq-cta__btn:hover { background: #fff; color: var(--v3-ink) !important; }
.faq-cta__sign { margin-top: 1.6rem !important; font-size: .78rem; color: rgba(245, 241, 234, .55) !important; }

/* ==========================================================================
   案例详情页：原来正文一完就是页脚，25 个叶子页全是死胡同，
   既不给下一步，也没有内链把权重传回去。
   ========================================================================== */
.case-crumb {
  margin: 0 0 1.6rem; font-size: .8rem; letter-spacing: .06em; color: var(--v3-text-soft);
  display: flex; gap: .55rem; align-items: center;
}
.case-crumb a { color: var(--v3-red) !important; text-decoration: none; border-bottom: 1px solid rgba(200,16,46,.3) !important; }
.case-crumb span:not([aria-current]) { color: var(--v3-gold); }

.case-proofline {
  margin: clamp(2rem, 4vw, 3rem) 0 0; padding: clamp(1.4rem, 3vw, 2rem);
  background: var(--v3-card); border: 1px solid rgba(26,20,18,.1);
  border-top: 2px solid var(--v3-gold);
}
.case-proofline__label { margin: 0 0 .8rem !important; font-size: .8rem; letter-spacing: .08em; color: var(--v3-text-soft); }
.case-proofline__metric {
  margin: 0 0 .35rem !important; color: var(--v3-red); font-weight: 800;
  font-size: clamp(1.5rem, 3vw, 2.1rem); line-height: 1.2; font-variant-numeric: tabular-nums;
}
.case-proofline__who { margin: 0 0 .5rem !important; font-weight: 700; font-size: .92rem; }
.case-proofline__detail { margin: 0 0 1.2rem !important; font-size: .85rem; line-height: 1.85; color: var(--v3-text-soft); font-family: var(--v3-serif); }
.case-proofline__link { font-weight: 700; font-size: .88rem; }

.case-next { margin-top: clamp(2.2rem, 4vw, 3rem); padding-top: clamp(1.6rem, 3vw, 2.2rem); border-top: 1px solid var(--v3-hair); }
.case-next > h2 { margin-top: 0 !important; }
.case-next ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--v3-hair); border: 1px solid var(--v3-hair); }
.case-next li { margin: 0 !important; background: var(--v3-card); }
.case-next li a {
  display: flex; flex-direction: column; gap: .3rem; padding: 1rem 1.2rem;
  text-decoration: none; border: 0 !important; transition: background .2s;
}
.case-next li a:hover { background: rgba(191,155,48,.07); }
.case-next__tag { font-size: .7rem; letter-spacing: .12em; color: var(--v3-gold); }
.case-next__title { font-weight: 700; color: var(--v3-text); font-size: .95rem; line-height: 1.6; }
.case-next__all { margin: 1.1rem 0 0 !important; font-size: .86rem; }

.case-cta { margin-top: clamp(2.2rem, 4vw, 3rem); background: var(--v3-ink); color: #f5f1ea; padding: clamp(1.8rem, 4vw, 2.8rem); }
.case-cta h2 { color: #f5f1ea !important; margin-top: 0 !important; }
.case-cta h2::before { color: var(--v3-gold) !important; }
.case-cta p { color: rgba(245,241,234,.8); }
.case-cta__btn {
  display: inline-block; margin-top: .6rem; background: var(--v3-red); color: #fff !important;
  padding: .85rem 1.9rem; font-weight: 700; letter-spacing: .05em; text-decoration: none; border: 0 !important;
}
.case-cta__btn:hover { background: #fff; color: var(--v3-ink) !important; }

/* 页脚 logo 原来靠一块白色圆角垫片才看得见（home-v2.css 给它加了
   background: rgba(255,255,255,.93) + padding + border-radius）。
   现在换成了透明底的深色版 logo-on-dark.png，垫片就是多余的白盒子，去掉。 */
.geo-inner-footer .geo-home-footer-brand img,
.geo-home-footer .geo-home-footer-brand img {
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
  height: 62px;
}
