/* 页面主题层：本文件仅供 talent.html 加载（晚于 tokens.css 与 style.css）。
   其中的 :root 覆盖与 .btn / .hero / .card 等通用类覆盖是**刻意保留的页面主题**：
   各落地页自成一套视觉规格，取值差异并非 token 冲突，不得为「统一」而随意拉平。
   加载顺序：tokens.css → style.css → 本文件，故本文件的覆盖始终生效。 */

/* =========================================================
   达师管培 · 人才管理落地页 · 设计系统 v3
   主题：Blue-led 蓝色主导 + 强排版层级（Type Hierarchy）
   品牌：科技蓝 var(--c-primary) / 点缀金 var(--c-gold) / 深蓝 #0B2F8F
   无障碍：WCAG AA（正文 ≥4.5:1，大字与图形 ≥3:1）
   排版：10 档字号 × 6 档字重 × 反向字间距 × 四级灰阶
   ========================================================= */

/* ========================= 1. 设计令牌 ========================= */
.talent-page {
  /* --- 1.1 品牌蓝色阶（主色） --- */
  --c-blue-950: #050F26;   /* 页脚 / 最深 */
  --c-blue-900: #071B4E;   /* 深底渐变起点 */
  --c-blue-800: #0B2F8F;   /* 深底渐变中段 */
  --c-blue-700: #0E42C1;   /* 按压 / 深底渐变尾 */
  --c-blue-600: #165DFF;   /* 主色 科技蓝 */
  --c-blue-500: #4080FF;   /* 悬浮 */
  --c-blue-400: #6FA3FF;
  --c-blue-200: #BBD5FF;
  --c-blue-100: #D6E4FF;   /* 描边 / 分隔 */
  --c-blue-050: #EBF3FF;   /* 标签底 / 图标底 */

  --c-primary: var(--c-blue-600);
  --c-primary-hover: var(--c-blue-500);
  --c-primary-active: var(--c-blue-700);
  --c-primary-050: var(--c-blue-050);
  --c-primary-100: var(--c-blue-100);
  --c-gradient: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-active) 100%);

  /* --- 1.2 点缀金：仅用于深底统计数字、强调标记与装饰 --- */
  --c-gold: #D4AF66;
  /* 金色亮调：深底上的金色强调。原深底小字直接用 --c-gold(var(--c-gold))，
     对 --c-deep 最亮色停 #1246C4 实测 3.75:1，未达 AA 4.5:1；
     2026-09-25 新增本令牌（取 landing-brand.css --c-gold-lit 同值），→ 4.87:1 */
  --c-gold-lit: #E8C98A;
  --c-gold-soft: rgba(212, 175, 102, .16);
  --c-gold-ink: #7A5A1E;

  /* --- 1.3 背景体系（蓝色主导） --- */
  --c-bg: #F1F6FF;                                    /* 页面底：极浅蓝 */
  --c-paper: #FFFFFF;                                 /* 纸面模块 */
  --c-bg-soft: #EAF2FF;                               /* 蓝染色（表格隔行 / 描边） */
  --c-band: linear-gradient(180deg, #E4EEFF 0%, #F3F8FF 100%);  /* 蓝色浅 band */
  --c-deep: linear-gradient(155deg, #05173F 0%, #0B2F8F 48%, #1246C4 100%);
  --c-deep-alt: linear-gradient(160deg, #04122F 0%, #0A2A80 56%, #103FB0 100%);
  --c-bg-deep: var(--c-deep);
  --c-ink: #050F26;                                   /* 页脚底 */

  /* --- 1.4 文字四级灰阶（蓝调中性，与蓝色主题呼应） --- */
  --c-text-1: #0A2540;    /* 标题 15.4:1 on #FFF */
  --c-text-2: #2E3D57;    /* 正文 10.3:1 */
  --c-text-3: #52607A;    /* 次要 6.3:1（浅蓝底 5.5:1，仍达标） */
  --c-text-4: #8A97AC;    /* 占位 / 装饰（不承载正文） */
  --c-text: var(--c-text-2);
  --c-text-sub: var(--c-text-3);
  --c-text-ph: var(--c-text-4);

  /* 深底文字（底色恒 ≤ #1246C4，故对比度充足） */
  --c-on-deep: #E8EFFB;        /* 深底正文 7.6:1 */
  --c-on-deep-sub: #C3D0E9;    /* 深底次要 4.9:1 */

  /* --- 1.5 语义色 --- */
  --c-success: #0E9F6E;
  --c-warn: #D98B0B;
  --c-error: #D93A3A;

  /* --- 1.6 边框 --- */
  --c-border: #DDE5F2;
  --c-border-strong: #C6D5EE;

  /* ================= 1.7 排版系统 ================= */
  --font-sans: var(--font-sans-base); /* 唯一真源见 style.css :root */

  /* 字号：9 档等比例阶梯
     旧问题：56/52/38/28/21 上端三步各跌 27%（断崖），13/14/15/16 下端仅差 1px（糊在一起）
     新方案：模度收敛在 1.07~1.21，总跨度 14→40 = 2.86x（原 4.3x），每档差 4-6px
     相邻比：1.071 / 1.067 / 1.125 / 1.111 / 1.200 / 1.167 / 1.214 / 1.176 */
  --fz-xs:      14px;  /* 眉标 / 标签 / 注释 */
  --fz-sm:      15px;  /* 次要说明 / 页脚列表 */
  --fz-nav:     15px;  /* 控件专属（导航 / FAB，非内容层级） */
  --fz-body:    16px;  /* 正文基准（中文阅读下限） */
  --fz-lead:    18px;  /* 导语 / 模块副标题 */
  --fz-h4:      20px;  /* 卡片标题 */
  --fz-h3:      24px;  /* 面板 / 区块标题 */
  --fz-h2:      28px;  /* 模块标题 */
  --fz-display: 34px;  /* 统计数字（深底金） */
  --fz-hero:    40px;  /* H1 */

  /* 局部放大档（不参与主阶梯，作用域受限，避免污染全局层级）
     模块眉标与序号：原 14px（--fz-xs）放大一倍 */
  --fz-eyebrow: 17px;   /* 模块眉标：在放大后的 28px 基础上缩小 40% ≈ 16.8 → 17 */
  --fz-ordinal: 20px;   /* 痛点序号：在 28px 基础上缩小 30% ≈ 19.6 → 20，保留加粗 */

  /* 字重：5 档 —— 中文渲染友好
     思源黑体 / 微软雅黑实粗上限 700，旧版 800 会触发合成粗体导致边缘发糊
     层级靠「字重 + 色阶 + 字距」三者叠加，而非极端字号差 */
  --fw-hero:    700;
  --fw-display: 700;
  --fw-h2:      700;
  --fw-h3:      600;
  --fw-h4:      600;
  --fw-lead:    400;
  --fw-body:    400;
  --fw-sm:      400;
  --fw-xs:      600;   /* 小字靠字重+字距立住 */

  /* 字间距：中文为全角字，对负间距极敏感，收紧幅度较拉丁文减半
     旧 -.035em 在 56px 下等于每字 -1.96px，中文挤成一团；大字 -.015em 足够 */
  --ls-hero:    -.015em;
  --ls-display: -.018em;
  --ls-h2:      -.01em;
  --ls-h3:      -.005em;
  --ls-h4:      0;
  --ls-lead:    .005em;
  --ls-body:    .01em;
  --ls-sm:      .01em;
  --ls-xs:      .05em;   /* 旧 .1em：中文无大写概念，1.3px 字距过散 */
  --ls-nav:     .01em;

  /* 行高：字号下调后同步放松，避免大字贴行、小字显挤 */
  --lh-display: 1.12;
  --lh-hero:    1.3;
  --lh-h2:      1.4;
  --lh-h3:      1.5;
  --lh-h4:      1.6;
  --lh-lead:    1.85;
  --lh-body:    1.85;
  --lh-sm:      1.8;
  --lh-xs:      1.65;
  --lh-loose:   1.95;   /* 长文（FAQ / 表单说明） */
  --lh-snug:    1.7;
  --lh-tight:   1.4;

  /* --- 1.8 间距（4px 基准） --- */
  --sp-1: 4px;  --sp-2: 8px;   --sp-3: 12px;  --sp-4: 16px;
  --sp-5: 20px; --sp-6: 24px;  --sp-7: 28px;  --sp-8: 32px;  --sp-9: 36px;  --sp-10: 40px;
  --sp-12: 48px; --sp-16: 56px; --sp-20: 64px;
  /* 修正原 ladder 自相矛盾：旧值 --sp-20:52px 反而小于 --sp-16:56px（20 < 16），
     且 --sp-24:80px 与 --sp-20 同级差过大、全站零引用（已删除）。
     本页属于「页面主题层」，高级别间距刻意比 tokens.css 的 N×4（16→64 / 20→80）
     压缩一档，这里保持该意图，只要求 ladder **逐级递增**且随断点**逐级递减**。 */

  /* 模块节奏专用（与栅格内部间距解耦，可独立调节呼吸感）
     --mod-pad  = 模块上下内边距 → 相邻模块内容间距 = 2 × 56 = 112px（原 160px，-30%）
     --head-gap = 模块标题区 → 内容区（原 56px，-29%） */
  --mod-pad:  56px;
  --head-gap: 40px;

  /* --- 1.9 圆角 / 阴影 / 动效 --- */
  --r-card: 10px;
  --r-btn: 8px;
  --r-pill: 999px;
  --sh-card: 0 2px 10px rgba(22, 93, 255, .07);
  --sh-card-hover: 0 10px 26px rgba(22, 93, 255, .16);
  --sh-pop: 0 16px 40px rgba(11, 47, 143, .18);
  --sh-deep: 0 18px 44px rgba(5, 23, 63, .34);
  --ease: cubic-bezier(.4, 0, .2, 1);
  --t-fast: 160ms var(--ease);
  --t-base: 280ms var(--ease);

  /* --- 1.10 布局 --- */
  /* 内容宽度与全站对齐：style.css :root --container = 1280px → 内容盒 1240px。
     实测 9 页内容盒主流为 1240px（首页/讲师列表/内训列表/讲师详情/公司介绍/企业团建），
     本页原 1200px（内容盒 1160px）是唯一异类，且与本页自身页脚（1240px）错位 40px/侧。 */
  --container: 1280px;
  /* --nav-h 不再在本页重定义：全站唯一引用点是 `html { scroll-padding-top }`，
     而 <html> 是令牌宿主 <main> 的**祖先**，取值只能来自 style.css 的 :root（64px）。 */
}

/* ========================= 2. 基础重置 ========================= */
.talent-page *, .talent-page *::before, .talent-page *::after { box-sizing: border-box; }

/* ⚠ 外壳层（html / body）不得引用本页自有令牌。
   本页令牌宿主是 .talent-page（= <main>），而 <main> 是 <body> 的**后代**；
   var() 沿继承链解析，祖先取不到后代的自定义属性 → 该声明在「计算值阶段」整体失效
   （按 unset 处理，**不会**回落到 style.css 的同名声明）。
   2026-09-24 实测：body 上 7 条 var() 引用曾致 317/325 个文本节点字体族掉回 Times New Roman。
   故此处只保留与令牌无关的外壳属性；font-size 由 style.css `html{font-size:16px}` 提供。 */
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--nav-h) + 16px);   /* --nav-h 取 style.css 全站基线（64px） */
  -webkit-text-size-adjust: 100%;
}

/* 基础排版与页面底色：挂**作用域包装类**，与 consulting 的 .lp-page、coaching 的 .pp-page 同范式。
   若挂 body，共享外壳（顶栏 / 导航 / 页脚 / 移动抽屉）会一并继承本页排版，破坏整站统一性。 */
.talent-page {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fz-body);
  font-weight: var(--fw-body);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  color: var(--c-text-2);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* 蓝色主导的页面底：两处蓝色光晕 + 浅蓝渐变 */
  background-color: var(--c-bg);
  background-image:
    radial-gradient(1100px 620px at 84% -8%, rgba(64, 128, 255, .15), rgba(64, 128, 255, 0) 62%),
    radial-gradient(900px 560px at 2% 6%, rgba(64, 128, 255, .12), rgba(64, 128, 255, 0) 60%),
    linear-gradient(180deg, #EFF5FF 0%, #F6FAFF 44%, #E9F1FF 100%);
  background-repeat: no-repeat;
  background-attachment: scroll;
}

.talent-page h1, .talent-page h2, .talent-page h3, .talent-page h4, .talent-page p, .talent-page figure, .talent-page dl, .talent-page dd { margin: 0; }
.talent-page ul, .talent-page ol { margin: 0; padding: 0; list-style: none; }
.talent-page img, .talent-page svg { display: block; max-width: 100%; }
.talent-page a { color: inherit; text-decoration: none; }
.talent-page button { font: inherit; color: inherit; border: 0; background: none; cursor: pointer; }

/* 标题基础：统一字重与色阶，杜绝浏览器默认值 */
.talent-page h1, .talent-page h2, .talent-page h3, .talent-page h4 { color: var(--c-text-1); font-weight: var(--fw-h3); }
.talent-page .on-deep h1, .talent-page .on-deep h2, .talent-page .on-deep h3, .talent-page .on-deep h4 { color: #fff; }

.talent-page :focus-visible {
  outline: 2px solid var(--c-primary);
  outline-offset: 3px;
  border-radius: 4px;
}
.talent-page .on-deep :focus-visible { outline-color: var(--c-gold); }

/* 仅供读屏 */
.talent-page .sr-only {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link {
  position: absolute; top: -60px; left: 16px; z-index: 200;
  background: var(--c-primary); color: #fff;
  padding: 10px 18px; border-radius: 0 0 var(--r-btn) var(--r-btn);
  font-size: var(--fz-sm); font-weight: 600;
  transition: top var(--t-fast);
}
.skip-link:focus { top: 0; }

/* ========================= 3. 布局与模块节奏 ========================= */
.talent-page .container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--sp-5);
}

/* 模块节奏：深蓝 → 纸面 → 蓝 band → 蓝底 → 深蓝 → 纸面 → 蓝 band → 纸面 → 深蓝 → 墨底 */
.talent-page .module {
  position: relative;
  padding-block: var(--mod-pad);
}
.talent-page .module--paper {
  background: var(--c-paper);
  border-block: 1px solid var(--c-border);
}
.talent-page .module--soft {                     /* 蓝色浅 band */
  background: var(--c-band);
  border-block: 1px solid var(--c-blue-100);
}
.talent-page .module--deep {
  background: var(--c-deep);
  color: var(--c-on-deep);
  border-block: 0;
}

/* 深底装饰：光晕 + 网格 */
.talent-page .module--deep::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(720px 420px at 82% 8%, rgba(22, 93, 255, .30), rgba(22, 93, 255, 0) 66%),
    radial-gradient(560px 380px at 6% 92%, rgba(30, 90, 220, .24), rgba(30, 90, 220, 0) 64%);
}
.talent-page .module--deep::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: radial-gradient(ellipse at 50% 40%, #000 18%, transparent 76%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 40%, #000 18%, transparent 76%);
}
.talent-page .module--deep > .container { position: relative; z-index: 1; }

/* 780 → 940px：容得下 48 字的模块导语单行显示（实测单行需 867px，留 73px 余量） */
.talent-page .module__head { max-width: 940px; margin-bottom: var(--head-gap); }

/* 眉标：蓝色胶囊，13px/700/.1em —— 小字靠字重与字间距立住层次 */
.talent-page .eyebrow {
  display: inline-flex; align-items: center; gap: var(--sp-2);
  font-size: var(--fz-xs); font-weight: var(--fw-xs);
  letter-spacing: var(--ls-xs); line-height: var(--lh-xs);
  color: var(--c-primary-active);
  background: var(--c-blue-050);
  border: 1px solid var(--c-blue-100);
  border-radius: var(--r-pill);
  padding: 6px 14px;
  margin-bottom: var(--sp-5);
}
.talent-page .eyebrow::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%;
  background: var(--c-primary); flex: none;
}
.talent-page .module--deep .eyebrow {
  color: #F0E2C4;
  background: var(--c-gold-soft);
  border-color: rgba(212, 175, 102, .38);
}

/* 模块眉标（Why / How / What / Process / Result / Proof / FAQ / Contact）放大一倍
   作用域限定 .module__head，不波及 Hero 区那条同类的 .eyebrow
   字号翻倍后同步收紧行高与内边距，避免胶囊被撑成 60px 的笨重块 */
.talent-page .module__head .eyebrow {
  font-size: var(--fz-eyebrow);
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.4;
  padding: 5px 14px;
  border-radius: var(--r-pill);
}
.talent-page .module__head .eyebrow::before { width: 7px; height: 7px; }
.talent-page .module--deep .eyebrow::before { background: var(--c-gold); }

/* 模块标题：28px/700，配 5×26 蓝色渐变竖条（竖条高度 ≈ 标题字号的 .93，视觉等高） */
.talent-page .mod-title {
  position: relative; padding-left: var(--sp-5);
  font-size: var(--fz-h2); font-weight: var(--fw-h2);
  line-height: var(--lh-h2); letter-spacing: var(--ls-h2);
  color: var(--c-text-1);
}
.talent-page .mod-title::before {
  content: ""; position: absolute; left: 0; top: 50%;
  transform: translateY(-50%);
  width: 5px; height: 26px; border-radius: 3px;
  background: var(--c-gradient);
}
.talent-page .module--deep .mod-title { color: #fff; }
.talent-page .module--deep .mod-title::before { background: linear-gradient(180deg, #E2C283, var(--c-gold)); }

/* 导语：18px/400/1.85，三级色 —— 与标题形成「粗大深 / 细中浅」的强对比 */
.talent-page .mod-desc {
  margin-top: var(--sp-5);
  max-width: 100%;   /* 原 46em(=828px) 会把 48 字导语压成两行；改由 .module__head 的 940px 统一约束 */
  font-size: var(--fz-lead); font-weight: var(--fw-lead);
  line-height: var(--lh-lead); letter-spacing: var(--ls-lead);
  color: var(--c-text-3);
}
.talent-page .module--deep .mod-desc { color: var(--c-on-deep-sub); }

/* ========================= 4. 组件：按钮 ========================= */
.talent-page .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  min-height: 46px; padding: 0 var(--sp-7);
  font-size: var(--fz-body); font-weight: 600; line-height: 1;
  letter-spacing: .02em;
  border-radius: var(--r-btn);
  transition: transform var(--t-fast), box-shadow var(--t-base),
              background-color var(--t-fast), border-color var(--t-fast), color var(--t-fast);
  white-space: nowrap;
}
.talent-page .btn:active { transform: translateY(1px); }

.talent-page .btn--primary {
  background: var(--c-primary); color: #fff;
  box-shadow: 0 4px 14px rgba(22, 93, 255, .30);
}
.talent-page .btn--primary:hover { background: var(--c-primary-hover); transform: translateY(-2px); box-shadow: var(--sh-card-hover); }

.talent-page .btn--on-deep {
  background: rgba(255, 255, 255, .12); color: #fff;
  border: 1px solid rgba(255, 255, 255, .42);
  backdrop-filter: blur(2px);
}
.talent-page .btn--on-deep:hover { background: rgba(255, 255, 255, .2); border-color: rgba(255, 255, 255, .78); transform: translateY(-2px); }

.talent-page .btn--lg { min-height: 56px; padding: 0 var(--sp-9); font-size: var(--fz-lead); font-weight: 600; }
.talent-page .btn--block { width: 100%; }

.talent-page .btn__arrow { width: 18px; height: 18px; flex: none; transition: transform var(--t-fast); }
.talent-page .btn:hover .btn__arrow { transform: translateX(3px); }

/* ========================= 5. 组件：卡片 / 标签 ========================= */
/* 图标底座：高度与卡片标题文字一致（容器 32px = h4 行高 20×1.6，图形 20px = h4 字号） */
.talent-page .icon-badge {
  display: grid; place-items: center;
  width: 32px; height: 32px;
  border-radius: 8px;
  background: var(--c-blue-050);
  border: 1px solid var(--c-blue-100);
  color: var(--c-primary);
  margin-bottom: var(--sp-5);
}
.talent-page .icon-badge svg { width: 20px; height: 20px; }

/* 标签 */
.talent-page .tag {
  display: inline-flex; align-items: center;
  padding: 4px 12px;
  font-size: var(--fz-xs); font-weight: var(--fw-xs);
  letter-spacing: .04em; line-height: var(--lh-xs);
  border-radius: var(--r-pill);
  background: var(--c-blue-050); color: var(--c-primary-active);
}
.talent-page .tag--outline { background: #fff; border: 1px solid var(--c-border-strong); color: var(--c-text-3); }

/* 注：原 6.导航 / 17.页脚 / 17.页脚相关 responsive 块已移除 —— talent.html 改挂主站 chrome（详见 ui.js · initChrome）*/

/* ========================= 7. Hero（深蓝主视觉） ========================= */
.talent-page .hero {
  position: relative; overflow: hidden;
  background: var(--c-deep);
  color: var(--c-on-deep);
  padding-block: var(--mod-pad) var(--sp-20);
}
.talent-page .hero::before {  /* 光晕 + 网格，合并为单层 */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(760px 520px at 80% 14%, rgba(22, 93, 255, .40), rgba(22, 93, 255, 0) 66%),
    radial-gradient(600px 420px at 4% 88%, rgba(30, 90, 220, .28), rgba(30, 90, 220, 0) 64%);
}
.talent-page .hero::after {   /* 网格纹理 + 底部斜切过渡 */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, .05) 1px, transparent 1px);
  background-size: 58px 58px;
  mask-image: radial-gradient(ellipse at 68% 30%, #000 22%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse at 68% 30%, #000 22%, transparent 78%);
}
.talent-page .hero__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.05fr .95fr;
  gap: var(--sp-16); align-items: center;
}

.talent-page .hero__title {
  font-size: var(--fz-hero); font-weight: var(--fw-hero);
  line-height: var(--lh-hero); letter-spacing: var(--ls-hero);
  color: #fff;
  text-shadow: 0 2px 24px rgba(5, 23, 63, .32);
}
.talent-page .hero__title em {
  font-style: normal; color: var(--c-gold);
  background: linear-gradient(180deg, transparent 68%, rgba(212, 175, 102, .26) 0);
  padding-inline: 3px;
}
.talent-page .hero__lead {
  margin-top: var(--sp-6);
  font-size: var(--fz-lead); font-weight: var(--fw-lead);
  line-height: var(--lh-lead); letter-spacing: var(--ls-lead);
  color: var(--c-on-deep); max-width: 32em;
}
.talent-page .hero__actions { display: flex; flex-wrap: wrap; gap: var(--sp-4); margin-top: var(--sp-9); }

.talent-page .hero__trust {
  display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3);
  margin-top: var(--sp-10); padding-top: var(--sp-6);
  border-top: 1px solid rgba(255, 255, 255, .16);
}
.talent-page .hero__trust-label {
  font-size: var(--fz-sm); font-weight: 500; letter-spacing: .06em;
  color: var(--c-on-deep-sub); margin-right: var(--sp-2);
}

.talent-page .hero__viz { display: grid; place-items: center; }
.talent-page .hero__viz svg { width: 100%; max-width: 460px; height: auto; filter: drop-shadow(0 18px 40px rgba(5, 23, 63, .38)); }

/* 统计条：深底玻璃卡片 + 金色数字 */
.talent-page .stats {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  margin-top: var(--head-gap);
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: var(--r-card);
  overflow: hidden;
  box-shadow: var(--sh-deep);
}
.talent-page .stat {
  background: rgba(5, 23, 63, .42);
  backdrop-filter: blur(4px);
  padding: var(--sp-8) var(--sp-5);
  text-align: center;
}
.talent-page .stat__num {
  display: block;
  font-size: var(--fz-display); font-weight: var(--fw-display);
  line-height: var(--lh-display); letter-spacing: var(--ls-display);
  color: var(--c-gold); font-variant-numeric: tabular-nums;
}
.talent-page .stat__num small { font-size: .42em; font-weight: 600; margin-left: 3px; letter-spacing: 0; }
.talent-page .stat__label {
  display: block; margin-top: var(--sp-3);
  font-size: var(--fz-body); font-weight: 500; letter-spacing: .04em;
  color: var(--c-on-deep-sub);
}

/* ========================= 8. 痛点（纸面 + 蓝染卡片） ========================= */
.talent-page .pain-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-5); }
.talent-page .pain {
  position: relative; overflow: hidden;
  background: linear-gradient(180deg, #F5F9FF 0%, #FFFFFF 100%);
  border: 1px solid var(--c-border);
  border-top: 3px solid var(--c-primary);
  border-radius: var(--r-card);
  padding: var(--sp-7);
  box-shadow: var(--sh-card);
  /* 行1 = 序号(整行)；行2 = 图标(左，与标题同行) + 标题(右)；行3 = 正文(跨整行，左缘对齐图标列、文字居中) */
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-areas:
    "no   no"
    "icon title"
    "desc desc";
  column-gap: var(--sp-4);
  row-gap: var(--sp-3);
  align-items: center;
  transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}
.talent-page .pain:hover { transform: translateY(-4px); box-shadow: var(--sh-card-hover); border-top-color: var(--c-primary-hover); }

/* 序号：在 28px 基础上缩小 30% ≈ 20px，保留加粗 */
.talent-page .pain__no {
  grid-area: no;
  font-size: var(--fz-ordinal); font-weight: 700;
  letter-spacing: .06em; line-height: 1.25;
  color: var(--c-primary); margin-bottom: 0;
  /* 仅视觉上移，不影响 grid 行布局 —— 下方图标+标题+正文保持原位 */
  transform: translateY(calc(var(--sp-2) * -1));
}
/* 图标居左，与标题同行垂直居中对齐（已上移对齐标题文字） */
.talent-page .pain .icon-badge {
  grid-area: icon;
  justify-self: start; align-self: center;
  margin-bottom: 0;
}
.talent-page .pain__title {
  grid-area: title; text-align: left;
  font-size: var(--fz-h4); font-weight: var(--fw-h4);
  line-height: var(--lh-h4); letter-spacing: var(--ls-h4);
  color: var(--c-text-1); margin-bottom: var(--sp-2);
}
.talent-page .pain__desc {
  grid-area: desc; text-align: center;
  font-size: var(--fz-body); font-weight: var(--fw-body);
  line-height: var(--lh-body); letter-spacing: var(--ls-body);
  color: var(--c-text-3);
}

/* ========================= 9. MAD 模型 ========================= */
/* M/A/D 三卡撑满 1200px 容器，与下方详情面板同宽 */
.talent-page .mad-tabs { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1fr; gap: var(--sp-5); }
.talent-page .mad-tab {
  position: relative; text-align: center;
  background: #fff; border: 1px solid var(--c-border);
  border-radius: var(--r-card);
  /* 字母+标题同行（head），head/en 居中，列表左对齐 */
  padding: var(--sp-8) var(--sp-7);
  box-shadow: var(--sh-card);
  transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
  display: flex;
  flex-direction: column;
  align-items: center;          /* head(字母+标题) 与 en 行 在卡片内水平居中 */
}
.talent-page .mad-tab:hover { transform: translateY(-4px); box-shadow: var(--sh-card-hover); }
.talent-page .mad-tab[aria-selected="true"] {
  border-color: var(--c-primary);
  box-shadow: 0 0 0 3px rgba(22, 93, 255, .12), var(--sh-card-hover);
}
/* 三卡各配浅色底（M蓝/A绿/D金），与详情面板左栏底色呼应 */
.talent-page .mad-tab[data-tab="m"] { background: #EFF4FF; border-color: #C5D7F2; }
.talent-page .mad-tab[data-tab="a"] { background: #EAF7EF; border-color: #C8E0CB; }
.talent-page .mad-tab[data-tab="d"] { background: #FFF6E0; border-color: #EDD49B; }
/* 选中态：更深一档底色 + 强化边框 */
.talent-page .mad-tab[aria-selected="true"][data-tab="m"] { background: #DCE9FF; border-color: var(--c-primary); }
.talent-page .mad-tab[aria-selected="true"][data-tab="a"] { background: #D9EEDE; border-color: #2E9F4F; }
.talent-page .mad-tab[aria-selected="true"][data-tab="d"] { background: #FFEFC2; border-color: #C49228; }
/* 字母+标题同行包裹，整体居中；字母在标题左 */
.talent-page .mad-tab__head {
  display: inline-flex;          /* 字母 + 标题 同一行 */
  align-items: center;           /* 字母与标题中线对齐 */
  gap: var(--sp-2);
  margin: 0;
}
.talent-page .mad-tab__letter {
  flex: none;                    /* head 内同行，不伸缩 */
  width: 36px; height: 36px; border-radius: 9px;
  display: grid; place-items: center;
  font-size: 24px; font-weight: 700; color: #fff;
  background: var(--c-gradient);
  box-shadow: 0 4px 12px rgba(22, 93, 255, .28);
}
.talent-page .mad-tab[aria-selected="true"] .mad-tab__letter { background: linear-gradient(135deg, var(--c-primary-active), #0B2F8F); }
.talent-page .mad-tab__name {
  font-size: var(--fz-h3); font-weight: var(--fw-h3);
  line-height: var(--lh-h3); letter-spacing: var(--ls-h3);
  color: var(--c-text-1); margin: 0;
  text-align: center;            /* 标题在卡片内居中 */
}
.talent-page .mad-tab__en {
  font-size: var(--fz-xs); font-weight: var(--fw-xs);
  letter-spacing: .12em; line-height: var(--lh-xs);
  color: var(--c-text-4); margin: var(--sp-2) 0 0;
  text-align: center;            /* 英文副标与标题一起居中 */
}
/* 列表左对齐：align-self:flex-start 贴卡片左缘，不随 head/en 居中 */
.talent-page .mad-tab__list {
  align-self: flex-start;       /* 列表贴卡片左缘，保持左对齐 */
  display: flex; flex-direction: column; align-items: flex-start;
  gap: var(--sp-3);
  margin: var(--fz-body) 0 0;   /* 与上方英文副标留一行字高度 */
  padding: 0; list-style: none; /* 去除 ul 默认缩进 */
}
  .talent-page .mad-tab__list li {
    display: flex; gap: var(--sp-2); align-items: center; justify-content: flex-start;
    font-size: calc(var(--fz-body) + 1px); font-weight: 600; line-height: var(--lh-snug); letter-spacing: var(--ls-body);
    color: var(--c-text-3); text-align: left;
  }
.talent-page .mad-tab__list svg { width: 18px; height: 18px; flex: none; margin-top: 0; color: var(--c-primary); }

.talent-page .mad-panels { margin-top: var(--sp-8); }
.talent-page .mad-panel { display: none; }
.talent-page .mad-panel.is-active { display: block; animation: fadeUp var(--t-base) both; }
.talent-page .mad-panel__inner {
  /* 左栏 0.55fr，右栏放 4 段说明，gap 收窄让右栏长文左靠 */
  display: grid; grid-template-columns: 0.55fr 1.45fr; gap: var(--sp-8);
  background: #fff;
  border: 1px solid var(--c-blue-100);
  border-radius: var(--r-card);
  padding: var(--sp-10);
  box-shadow: var(--sh-card);
  align-items: center;            /* 让两列各 child 在 grid row 内垂直居中 */
}
/* 左栏（标题+说明）在 panel 内垂直居中 */
.talent-page .mad-panel__inner > div:first-child:not(.mad-flow) { align-self: center; }
/* 左栏随 data-current 切换底色，与三卡呼应 */
.talent-page .mad-panel__left {
  padding: var(--sp-6);
  border-radius: var(--r-btn);
  border: 1px solid transparent;
  transition: background var(--t-base), border-color var(--t-base);
}
.talent-page .mad-panel[data-current="m"] .mad-panel__left { background: #EFF4FF; border-color: #C5D7F2; }
.talent-page .mad-panel[data-current="a"] .mad-panel__left { background: #EAF7EF; border-color: #C8E0CB; }
.talent-page .mad-panel[data-current="d"] .mad-panel__left { background: #FFF6E0; border-color: #EDD49B; }
.talent-page .mad-panel__sub {
  font-size: var(--fz-h3); font-weight: var(--fw-h3);
  line-height: var(--lh-h3); letter-spacing: var(--ls-h3);
  color: var(--c-text-1); margin-bottom: var(--sp-5);
}
.talent-page .mad-panel__note {
  font-size: var(--fz-body); font-weight: var(--fw-body);
  line-height: var(--lh-loose); letter-spacing: var(--ls-body);
  color: var(--c-text-3);
}
.talent-page .mad-flow { display: grid; gap: var(--sp-3); align-content: start; }
.talent-page .mad-flow__item {
  /* k 列 104px 适配字号，间距 sp-4 */
  display: grid; grid-template-columns: 104px 1fr; gap: var(--sp-4);
  align-items: center;                                                  /* k 与 v 行内上下居中 */
  background: linear-gradient(90deg, var(--c-blue-050), #FFFFFF 62%);
  border: 1px solid var(--c-border);
  border-left: 3px solid var(--c-primary);
  border-radius: var(--r-btn); padding: var(--sp-5) var(--sp-6);
}
.talent-page .mad-flow__k {
  /* k 字号 16px / 700，比 v 列更醒目 */
  font-size: var(--fz-body);
  font-weight: 700;                              /* 加粗（600 → 700） */
  letter-spacing: .04em; line-height: 1.2;
  color: var(--c-primary-active);
}
.talent-page .mad-flow__v {
  font-size: var(--fz-body); line-height: var(--lh-body); letter-spacing: var(--ls-body);
  color: var(--c-text-2);
}

/* ========================= 10. 服务矩阵（蓝底 + 白卡片） ========================= */
.talent-page .svc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--sp-5); }
.talent-page .svc {
  position: relative;
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: var(--r-card); padding: var(--sp-7);
  box-shadow: var(--sh-card);
  transition: transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);
}
.talent-page .svc::before {  /* 顶部蓝色渐变细条 */
  content: ""; position: absolute; left: var(--sp-7); right: var(--sp-7); top: 0;
  height: 3px; border-radius: 0 0 3px 3px;
  background: var(--c-gradient);
  opacity: .85;
}
.talent-page .svc:hover { transform: translateY(-4px); box-shadow: var(--sh-card-hover); border-color: var(--c-blue-200); }
.talent-page .svc__no {
  display: inline-block;
  font-size: var(--fz-xs); font-weight: var(--fw-xs);
  letter-spacing: .06em; line-height: var(--lh-xs);
  color: var(--c-primary-active); background: var(--c-blue-050);
  border: 1px solid var(--c-blue-100);
  border-radius: var(--r-pill); padding: 3px 11px; margin-bottom: var(--sp-5);
}
.talent-page .svc__title {
  font-size: var(--fz-h4); font-weight: var(--fw-h4);
  line-height: var(--lh-h4); letter-spacing: var(--ls-h4);
  color: var(--c-text-1); margin-bottom: var(--sp-3);
}
.talent-page .svc__desc {
  font-size: var(--fz-body); font-weight: var(--fw-body);
  line-height: var(--lh-body); letter-spacing: var(--ls-body);
  color: var(--c-text-3);
}

/* ========================= 11. 交付流程（深蓝 band） ========================= */
.talent-page .steps { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--sp-4); position: relative; }
.talent-page .step { position: relative; padding-top: var(--sp-9); }
.talent-page .step::before {
  content: ""; position: absolute; top: 19px; left: 0; right: 0;
  height: 2px; background: linear-gradient(90deg, rgba(255,255,255,.10), rgba(255,255,255,.34), rgba(255,255,255,.10));
}
.talent-page .step:first-child::before { left: 50%; }
.talent-page .step:last-child::before { right: 50%; }
.talent-page .step__dot {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(5, 23, 63, .55);
  border: 2px solid rgba(255, 255, 255, .58);
  display: grid; place-items: center;
  font-size: var(--fz-body); font-weight: 800;
  color: #fff; font-variant-numeric: tabular-nums;
  box-shadow: 0 4px 14px rgba(5, 23, 63, .34);
  z-index: 1;
}
.talent-page .step__title {
  font-size: var(--fz-h4); font-weight: var(--fw-h4);
  line-height: var(--lh-h4); letter-spacing: var(--ls-h4);
  color: #fff; text-align: center; margin-bottom: var(--sp-2);
}
.talent-page .step__meta {
  font-size: var(--fz-xs); font-weight: var(--fw-xs);
  letter-spacing: .1em; line-height: var(--lh-xs);
  color: var(--c-gold-lit); text-align: center; margin-bottom: var(--sp-3);
}
.talent-page .step__desc {
  font-size: var(--fz-body); font-weight: var(--fw-body);
  line-height: var(--lh-body); letter-spacing: var(--ls-body);
  color: var(--c-on-deep-sub); text-align: center;
  /* 6 段描述限宽一致 + 水平居中 */
  max-width: 150px; margin-inline: auto;
}

/* ========================= 12. 对比表（纸面 + 蓝表头） ========================= */
.talent-page .compare {
  width: 100%; border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: var(--r-card); overflow: hidden;
  box-shadow: var(--sh-card);
}
.talent-page .compare caption { text-align: left; padding-bottom: var(--sp-4); font-size: var(--fz-sm); color: var(--c-text-3); }
.talent-page .compare th, .talent-page .compare td {
  padding: var(--sp-5) var(--sp-6);
  border-bottom: 1px solid var(--c-border);
  font-size: var(--fz-body); line-height: var(--lh-snug); letter-spacing: var(--ls-body);
  text-align: left; vertical-align: top;
}
.talent-page .compare thead th {
  background: var(--c-gradient); color: #fff;
  font-weight: 700; font-size: var(--fz-body); letter-spacing: .04em;
}
.talent-page .compare thead th:first-child { background: linear-gradient(135deg, #0B2F8F, #071B4E); }
.talent-page .compare tbody tr:nth-child(even) td { background: var(--c-bg-soft); }
.talent-page .compare tbody th {
  font-weight: 700; width: 20%;
  color: var(--c-text-1); background: #fff;
}
.talent-page .compare tbody tr:nth-child(even) th { background: var(--c-bg-soft); }
.talent-page .compare td.is-yes { color: var(--c-primary-active); font-weight: 600; }
.talent-page .compare td.is-no { color: var(--c-text-3); }
.talent-page .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ========================= 13. 交付物清单 ========================= */
.talent-page .deliver { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--sp-10); margin-top: var(--head-gap); }
.talent-page .deliver__col h3 {
  font-size: var(--fz-h3); font-weight: var(--fw-h3);
  line-height: var(--lh-h3); letter-spacing: var(--ls-h3);
  color: var(--c-text-1);
  margin-bottom: var(--sp-6);
  display: flex; align-items: center; gap: var(--sp-3);
}
.talent-page .deliver__col h3::before {
  content: ""; width: 6px; height: 22px;
  background: var(--c-gradient); border-radius: 3px; flex: none;
}
.talent-page .deliver__list { display: grid; gap: var(--sp-5); }
.talent-page .deliver__list li {
  display: grid; grid-template-columns: 22px 1fr; gap: var(--sp-4); align-items: start;
  font-size: var(--fz-body); line-height: var(--lh-body); letter-spacing: var(--ls-body);
  color: var(--c-text-3);
}
.talent-page .deliver__list svg { width: 22px; height: 22px; color: var(--c-primary); flex: none; margin-top: 3px; }
.talent-page .deliver__list b { font-weight: 700; color: var(--c-text-2); }

/* ========================= 14. 案例（蓝 band + 白占位卡） ========================= */
.talent-page .case-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-6); }
.talent-page .case-card {
  background: #fff;
  border: 1px dashed var(--c-blue-200);
  border-radius: var(--r-card); padding: var(--sp-8);
  box-shadow: var(--sh-card);
  display: grid; gap: var(--sp-4); align-content: start;
}
.talent-page .case-card__ph {
  display: inline-flex; align-items: center; gap: 6px; align-self: start;
  font-size: var(--fz-xs); font-weight: var(--fw-xs);
  letter-spacing: .06em; line-height: var(--lh-xs);
  color: var(--c-gold-ink); background: var(--c-gold-soft);
  border-radius: var(--r-pill); padding: 4px 12px;
}
.talent-page .case-card__title {
  font-size: var(--fz-h4); font-weight: var(--fw-h4);
  line-height: var(--lh-h4); letter-spacing: var(--ls-h4);
  color: var(--c-text-1);
}
.talent-page .case-card__body {
  font-size: var(--fz-body); line-height: var(--lh-body); letter-spacing: var(--ls-body);
  color: var(--c-text-3);
}
.talent-page .case-card__kv { display: flex; gap: var(--sp-8); padding-top: var(--sp-4); border-top: 1px solid var(--c-border); }
.talent-page .case-card__kv div {
  font-size: var(--fz-sm); line-height: var(--lh-sm); letter-spacing: var(--ls-sm);
  color: var(--c-text-3);
}
.talent-page .case-card__kv b {
  display: block;
  font-size: var(--fz-h3); font-weight: var(--fw-h3);
  line-height: 1.2; letter-spacing: var(--ls-h3);
  color: var(--c-primary-active); font-variant-numeric: tabular-nums;
}

/* ========================= 15. FAQ ========================= */
/* FAQ 容器左对齐到标题同左缘(60px)，保留 920px 限宽 */
.talent-page .faq { display: grid; gap: var(--sp-4); max-width: 920px; margin-left: 0; margin-right: auto; }
.talent-page .faq__item {
  background: #fff;
  border: 1px solid var(--c-border);
  border-radius: var(--r-card);
  overflow: hidden;
  transition: border-color var(--t-base), box-shadow var(--t-base);
}
.talent-page .faq__item[open] { border-color: var(--c-blue-200); box-shadow: var(--sh-card); }
.talent-page .faq__q {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-5);
  padding: var(--sp-5) var(--sp-7);
  font-size: var(--fz-body); font-weight: var(--fw-h4);
  line-height: var(--lh-h4); letter-spacing: var(--ls-h4);
  color: var(--c-text-1);
  cursor: pointer; list-style: none; min-height: 60px;
  transition: color var(--t-fast), background-color var(--t-fast);
}
.talent-page .faq__q::-webkit-details-marker { display: none; }
.talent-page .faq__q:hover { color: var(--c-primary-active); background: var(--c-blue-050); }
.talent-page .faq__icon { flex: none; width: 24px; height: 24px; color: var(--c-primary); transition: transform var(--t-base); }
.talent-page .faq__item[open] .faq__icon { transform: rotate(45deg); }
.talent-page .faq__a {
  padding: 0 var(--sp-7) var(--sp-7);
  font-size: var(--fz-body); font-weight: var(--fw-body);
  line-height: var(--lh-loose); letter-spacing: var(--ls-body);
  color: var(--c-text-3);
}

/* ========================= 16. 表单 / CTA（深蓝渐变） ========================= */
.talent-page .module--deep#contact { background: var(--c-deep-alt); }
.talent-page .cta-grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: var(--sp-16); align-items: center; }
.talent-page .cta__title {
  font-size: var(--fz-h2); font-weight: var(--fw-h2);
  line-height: var(--lh-h2); letter-spacing: var(--ls-h2);
  color: #fff; margin-bottom: var(--sp-5);
}
.talent-page .cta__desc {
  font-size: var(--fz-lead); font-weight: var(--fw-lead);
  line-height: var(--lh-loose); letter-spacing: var(--ls-lead);
  color: var(--c-on-deep-sub); margin-bottom: var(--sp-9);
}
.talent-page .cta__points { display: grid; gap: var(--sp-6); }
.talent-page .cta__point { display: grid; grid-template-columns: 26px 1fr; gap: var(--sp-4); align-items: start; }
.talent-page .cta__point svg { width: 26px; height: 26px; color: var(--c-gold); }
.talent-page .cta__point b {
  display: block;
  font-size: var(--fz-body); font-weight: 700; letter-spacing: .02em;
  color: #fff; margin-bottom: var(--sp-1);
}
.talent-page .cta__point span {
  font-size: var(--fz-sm); line-height: var(--lh-sm); letter-spacing: var(--ls-sm);
  color: var(--c-on-deep-sub);
}

.talent-page .form {
  background: #fff; border-radius: var(--r-card);
  /* 表单顶部内距 24px（已移除原标题占位） */
  padding: var(--sp-6) var(--sp-7) var(--sp-6); box-shadow: var(--sh-pop);
}
/* 姓名/职务输入框缩至 70% 宽 */
.talent-page #f-name, .talent-page #f-role { width: 70%; }
/* 需求③：职务+电话行（第2个 form__row--2）与上方姓名+公司行间距 = 2 行字高度；
   两字段本就在 form__row--2 内左右并排（水平对齐已满足） */
/* 双列行间距归 0，标签紧贴上方输入框 */
.talent-page .form__row--2 + .form__row--2 { margin-top: 0; }
.talent-page .form__sub {
  font-size: var(--fz-sm); line-height: var(--lh-sm); letter-spacing: var(--ls-sm);
  color: var(--c-text-3); margin-bottom: var(--sp-4);
}
/* 行底距归 0，标签紧贴当前行输入框 */
.talent-page .form__row { display: grid; gap: var(--sp-3); margin-bottom: 0; }
.talent-page .form__row--2 { grid-template-columns: 1fr 1fr; margin-bottom: 0; }
.talent-page .field { display: grid; gap: var(--sp-2); grid-auto-rows: min-content; }   /* grid-auto-rows: min-content，避免 label 被拉伸撑高 */

/* 需求优化v10 第5条：姓名·输入框·联系电话·输入框 同一行；职务·输入框·公司名称·输入框 同一行；
   关注重点·其筛选框 同一行。
   原 .field 为 grid 纵向堆叠（label 在上、input 在下），并不在同一水平行；
   这里让标签与其控件横向并列成一个整体，行内再按 .form__row--2 分两列。
   其余视觉样式（高度/圆角/配色/字号）均不变。 */
.talent-page .form__row--inline .field {
  /* 用 grid 显式定位而非 flex-wrap：err 提示是第三个兄弟，
     flex 换行会把它和输入框挤进同一条 flex line，导致输入框被拉伸到 152px 高。 */
  display: grid;
  /* 标签列按实际字数取宽（max-content），而非固定 76px ——
     固定值会让「姓名」「职务」这类两字标签右侧空出一大段距离。 */
  grid-template-columns: max-content minmax(0, 1fr);
  grid-template-rows: 44px min-content;
  /* 标签与控件的水平间距适度收窄（12px → 8px） */
  gap: 6px 8px;
  align-items: center;
}
.talent-page .form__row--inline .field label {
  grid-column: 1; grid-row: 1;
  height: auto; line-height: 1.5; white-space: nowrap;
}
.talent-page .form__row--inline .field input,
.talent-page .form__row--inline .field select {
  grid-column: 2; grid-row: 1;
  width: 100%; height: 44px; min-height: 0;
}
.talent-page .form__row--inline .field .field__err { grid-column: 1 / -1; grid-row: 2; }
/* 解除上方「姓名/职务输入框 70% 宽」的遗留限制：该规则带 #id，特异性压过本行的 width:100%，
   会让同行两个输入框一长一短（155 vs 222）。第5条要求四元素同行且样式统一，故提升优先级覆盖，
   原规则保留不动，避免波及其它引用位置。 */
.talent-page .form__row--inline #f-name,
.talent-page .form__row--inline #f-role { width: 100%; }
/* 窄屏：两组各占整行，避免「label + 输入框」挤在一半宽度里（输入框仅剩 43px 无法使用）；
   label 与输入框仍保持同行，符合第5条的四元素同行语义。 */
@media (max-width: 768px) {
  .talent-page .form__row--inline { grid-template-columns: 1fr; }
}
.talent-page .field label {
  font-size: var(--fz-sm); font-weight: 600; letter-spacing: .04em;
  color: var(--c-text-2);
  /* 标签锁 28px，两输入框起点对齐 */
  height: 28px; line-height: 28px;
  display: block;
}
.talent-page .field label .req { color: var(--c-error); margin-left: 2px; }
.talent-page .field input, .talent-page .field select, .talent-page .field textarea {
  width: 100%; min-height: 40px;
  /* 输入框锁 44px，避免长 placeholder 撑高错位 */
  height: 44px; box-sizing: border-box;
  padding: 10px var(--sp-5);
  font-family: inherit; font-size: 16px; /* 固定 16px：避免 iOS 聚焦时页面自动缩放 */
  line-height: 1.55; letter-spacing: var(--ls-body); color: var(--c-text-1);
  background: #FBFCFE;
  border: 1px solid var(--c-border-strong); border-radius: var(--r-btn);
  transition: border-color var(--t-fast), box-shadow var(--t-fast), background-color var(--t-fast);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;   /* placeholder 强制单行，被截即 ellipsis */
}
.talent-page .field textarea { min-height: 72px; resize: vertical; line-height: 1.8; height: auto; white-space: normal; overflow: auto; }
.talent-page .field input::placeholder, .talent-page .field textarea::placeholder { color: var(--c-text-4); }
.talent-page .field input:focus, .talent-page .field select:focus, .talent-page .field textarea:focus {
  outline: none; border-color: var(--c-primary); background: #fff;
  box-shadow: 0 0 0 4px rgba(22, 93, 255, .13);
}
.talent-page .field.is-error input, .talent-page .field.is-error select { border-color: var(--c-error); }
.talent-page .field.is-error input:focus { box-shadow: 0 0 0 4px rgba(217, 58, 58, .15); }
.talent-page .field__err {
  font-size: var(--fz-xs); font-weight: 500;
  letter-spacing: .04em; line-height: var(--lh-xs);
  color: var(--c-error); min-height: 20px;
}

.talent-page .form__consent {
  display: flex; gap: var(--sp-3); align-items: flex-start;
  font-size: var(--fz-sm); line-height: var(--lh-sm); letter-spacing: var(--ls-sm);
  color: var(--c-text-3); margin-bottom: var(--sp-4);
}
.talent-page .form__consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--c-primary); flex: none; }
.talent-page .form__note {
  margin-top: var(--sp-3);
  font-size: var(--fz-xs); line-height: var(--lh-xs); letter-spacing: .04em;
  color: var(--c-text-4); text-align: center;
}
.talent-page .on-deep .form__note { color: var(--c-on-deep-sub); }
/* ⚠ 反噬：.form 是不透明白色卡（实测 background-color: rgb(255,255,255)），会遮住 .on-deep 的深色段底，
   而上面的深底浅色规则仍按「深底」给字配色 → #C3D0E9 压白底仅 1.55:1，几乎不可见。
   故对落在白色卡片内的 note 显式改回浅底文字色（特异性 0,4,0 > 0,3,0，不受书写顺序影响）。 */
.talent-page .on-deep .form .form__note { color: var(--c-text-3); }
.talent-page .form__success { display: none; text-align: center; padding: var(--sp-8) var(--sp-4); }
.talent-page .form__success.is-show { display: block; animation: fadeUp var(--t-base) both; }
.talent-page .form__success svg { width: 56px; height: 56px; color: var(--c-success); margin: 0 auto var(--sp-5); }
.talent-page .form__success b {
  display: block;
  font-size: var(--fz-h3); font-weight: var(--fw-h3);
  line-height: var(--lh-h3); letter-spacing: var(--ls-h3);
  color: var(--c-text-1); margin-bottom: var(--sp-3);
}
.talent-page .form__success p {
  font-size: var(--fz-body); line-height: var(--lh-body);
  color: var(--c-text-3);
}

/* 悬浮咨询按钮（移动端） */
.fab {
  position: fixed; right: 16px; bottom: 16px; z-index: 90;
  display: none; align-items: center; gap: 6px;
  min-height: 48px; padding: 0 var(--sp-6);
  border-radius: var(--r-pill);
  background: var(--c-gradient); color: #fff;
  font-size: var(--fz-body); font-weight: 600; letter-spacing: .04em;
  box-shadow: 0 8px 22px rgba(22, 93, 255, .45);
  transition: opacity var(--t-base), transform var(--t-base);
}
.fab.is-hidden { opacity: 0; transform: translateY(12px); pointer-events: none; }

/* ========================= 18. 动效 ========================= */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
/* .reveal 的隐藏/显现规则已上收至 style.css（全站唯一实现），
   本文件不再重复定义，避免同一批元素被两套样式与两个观察器同时驱动。
   @keyframes fadeUp 仍被 .mad-panel.is-active 与 .form__success.is-show 使用，保留。 */

/* ========================= 19. 响应式 ========================= */
/* Tablet */
@media (max-width: 1080px) {
  .talent-page {
    /* 等比缩小：1.16 / 1.19 / 1.18 / 1.16 / 1.12 / 1.06 */
    --fz-display: 31px; --fz-hero: 36px; --fz-h2: 26px;
    --fz-h3: 22px; --fz-h4: 19px; --fz-lead: 17px;
    --fz-eyebrow: 16px; --fz-ordinal: 18px;
    --mod-pad: 50px; --head-gap: 36px;
    --sp-12: 44px; --sp-16: 48px; --sp-20: 56px;   /* 原 --sp-20:46px 小于 --sp-16:48px，已理顺 */
  }
  .talent-page .hero__inner { grid-template-columns: 1fr; gap: var(--sp-12); }
  .talent-page .hero__viz { order: -1; }
  .talent-page .hero__viz svg { max-width: 360px; }
  .talent-page .pain-grid, .talent-page .svc-grid { grid-template-columns: repeat(2, 1fr); }
  .talent-page .steps { grid-template-columns: repeat(3, 1fr); row-gap: var(--sp-10); }
  .talent-page .step:first-child::before { left: 0; }
  .talent-page .step:last-child::before { right: 0; }
  .talent-page .mad-tabs { grid-template-columns: 1fr; }
  .talent-page .mad-panel__inner { grid-template-columns: 1fr; gap: var(--sp-7); padding: var(--sp-8); }
  .talent-page .cta-grid { grid-template-columns: 1fr; gap: var(--sp-10); }
  .talent-page .footer__grid { grid-template-columns: 1fr 1fr; }
  .talent-page .deliver { gap: var(--sp-8); }
  .talent-page .form { padding: var(--sp-8); }
}

@media (max-width: 900px) {
  .talent-page {
    /* 1.14 / 1.21 / 1.14 / 1.17 / 1.125 */
    --fz-display: 29px; --fz-hero: 33px; --fz-h2: 24px;
    --fz-h3: 21px; --fz-h4: 18px; --fz-lead: 16px;
    --fz-eyebrow: 15px; --fz-ordinal: 17px;
    --mod-pad: 46px; --head-gap: 34px;
    --sp-12: 40px; --sp-16: 44px; --sp-20: 48px;   /* 补齐本级保证金字塔递减：44 / 48 / 52 → 40 / 44 / 48 */
  }
  /* 主站 chrome 接管响应式菜单，原 landing nav 相关规则全部移除 */
  .fab { display: inline-flex; }
  .talent-page .case-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .talent-page {
    /* 1.11 / 1.17 / 1.15 / 1.11 / 1.125 */
    --fz-display: 27px; --fz-hero: 30px; --fz-h2: 23px;
    --fz-h3: 20px; --fz-h4: 18px; --fz-lead: 16px;
    --fz-eyebrow: 14px; --fz-ordinal: 15px;
    --mod-pad: 40px; --head-gap: 30px;
    --sp-12: 32px; --sp-16: 36px; --sp-20: 40px;   /* 原两者同为 32px（同级不同义），现按阶梯拉开 */
  }
  .talent-page .container { padding-inline: var(--sp-4); }
  .talent-page .hero { padding-block: var(--mod-pad) var(--sp-16); }
  .talent-page .hero__actions .btn { width: 100%; }
  .talent-page .stats { grid-template-columns: repeat(2, 1fr); }
  .talent-page .stat { padding: var(--sp-6) var(--sp-4); }
  .talent-page .pain-grid, .talent-page .svc-grid, .talent-page .steps, .talent-page .deliver { grid-template-columns: 1fr; }
  .talent-page .steps { row-gap: var(--sp-8); }
  .talent-page .step { padding-top: var(--sp-8); text-align: left; }
  .talent-page .step::before { display: none; }
  .talent-page .step__dot { left: 0; transform: none; width: 34px; height: 34px; }
  .talent-page .step__title, .talent-page .step__meta, .talent-page .step__desc { text-align: left; }
  .talent-page .step__title { padding-left: 46px; }
  .talent-page .step__meta { padding-left: 46px; }
  .talent-page .form { padding: var(--sp-6); }
  .talent-page .mad-panel__inner { padding: var(--sp-6); }
  .talent-page .mad-flow__item { grid-template-columns: 1fr; gap: var(--sp-1); }
  .talent-page .compare th, .talent-page .compare td { padding: var(--sp-4); font-size: var(--fz-sm); }
  .talent-page .faq__q { padding: var(--sp-5); font-size: var(--fz-body); }
  .talent-page .faq__a { padding: 0 var(--sp-5) var(--sp-6); }
}

/* 打印：保留核心内容（主站 chrome 由全局 style.css 控制）*/
@media print {
  /* 必须 !important：这些元素的基础规则特异性相当，且打印时不应受任何交互态 /
     响应式规则影响。属于「打印兜底」，请勿按「代码异味」删除。 */
  .fab, .talent-page .hero__actions, .talent-page .form { display: none !important; }
  body { color: #000; background: #fff; }
  .talent-page { color: #000; background-color: #fff; background-image: none; }
  .talent-page .module { padding-block: 16px; break-inside: avoid; }
}

/* ========================= 20. 落地页补丁 ========================= */
/* Hero 文案列：防止长文案撑破 grid 列 */
.talent-page .hero__copy { min-width: 0; }

/* 表单内的必填标记与独立错误提示 */
.talent-page .req-inline { color: var(--c-error); font-style: normal; }
.talent-page .form > .field__err { margin-top: calc(var(--sp-2) * -1); margin-bottom: var(--sp-2); }

@media (max-width: 640px) {
  .talent-page .deliver { margin-top: var(--sp-10); }
}

/* 降低动效偏好 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .talent-page *, .talent-page *::before, .talent-page *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  /* .reveal 的兜底可见性由 style.css 的同名媒体查询统一负责，此处不再重复。 */
}

/* ============================================================
   需求轮 6（文档《网站优化 V3》）· 需求16 —— 人才管理页 hero 固定高度导致的溢出
   与 consulting 侧同根因：.hero 在 style.css:392 的 `height: 600px; overflow: hidden`
   未被 .talent-page .hero（本文 7 节）覆盖（该处只声明了 padding-block，未声明 height）。
   实测（1440px 视口）：hero clientHeight 600 / scrollHeight 752 → 内容溢出 152px，
   .container(99.84) / .stats(64.75) / .stat__label(31.75) / p.form__note(99.84) 依次被裁；
   其中 p.form__note 底边 848.75 越过 #pain 顶边 784 ——
   这正是「Why · 问题诊断模块挡住了上方模块的内容」的真实成因（并非 #pain 的 margin 问题）。
   ============================================================ */
.talent-page .hero { height: auto; min-height: 600px; }
@media (max-width: 1199px) { .talent-page .hero { min-height: 400px; } }
@media (max-width: 767px) { .talent-page .hero { min-height: 220px; } }

/* ============================================================
   需求轮 7（文档《网站优化 V4》）需求10：人才管理「交付节奏」——
   ①~⑥ 圆圈数字与下方文字之间的高度适度增加。
   根因：.step 的 padding-top 原来小于圆圈直径，文字压在圆点上（实测重叠）。
     · 桌面（本文件 712 行）：padding-top = --sp-9 = 36px，而 .step__dot 高 40px
       → 数字圆圈下沿比标题盒上沿还低 4px（实测 gapDotToTitle = −4px）；
     · ≤640px（本文件 1055/1057 行）：padding-top = --sp-8 = 32px，圆点 34px
       → 同样重叠 2px（实测 −2px）。
   取值：圆点直径 + 留白 —— 桌面 40 + 16 = 56px，窄屏 34 + 12 = 46px。
   只改 .step 的 padding-top（绝对定位的圆点与 ::before 连接线均以 .step 为原点，不受影响）。
   ============================================================ */
.talent-page .step { padding-top: 56px; }
@media (max-width: 640px) { .talent-page .step { padding-top: 46px; } }