/* ============================================================
   ITSIMPLE · 共享标题层 type-v4.css
   —— 全站唯一的标题排版来源。在每个页面里【最后】引入（排在页面自身 CSS 之后）。
   依赖 tokens-v4.css（字号/字体角色 token）。

   两部分：
   1) .t-* 工具类 —— 新写的标题直接套类名，不要再在页面 CSS 里写 font-size/family。
   2) 接管层 —— 把现存各页"自己写了一套标题样式"的选择器，统一收编到角色规则上
      （只改排版属性：字体/字号/字重/行高/字距/字形；不动颜色与布局）。
      迁移完成后，页面 CSS 里那些被收编的排版声明即为冗余，可逐步删除。
   ============================================================ */

/* ---------- 1 · 角色工具类（未来所有标题只套这些） ---------- */
.t-display, .t-h1, .t-h2, .t-h3, .t-h4 { margin: 0; text-wrap: balance; }

.t-display { font-family: var(--display); font-weight: 800; font-size: var(--fs-display); line-height: var(--lh-display); letter-spacing: var(--tr-display); color: var(--brand); }
.t-h1      { font-family: var(--display); font-weight: 800; font-size: var(--fs-h1); line-height: var(--lh-h1); letter-spacing: -0.03em; color: var(--brand); }
.t-h2      { font-family: var(--sans);    font-weight: 800; font-size: var(--fs-h2); line-height: var(--lh-h2); letter-spacing: var(--tr-h2); color: var(--brand); }
.t-h3      { font-family: var(--sans);    font-weight: 800; font-size: var(--fs-h3); line-height: var(--lh-h3); letter-spacing: -0.01em; color: var(--ink); }
.t-h4      { font-family: var(--sans);    font-weight: 700; font-size: var(--fs-h4); line-height: 1.25; color: var(--ink); }
.t-lead    { font-family: var(--zh);      font-weight: 600; font-size: var(--fs-lead); line-height: 1.5; color: var(--brand); margin: 0; }
.t-body    { font-family: var(--zh);      font-weight: 400; font-size: var(--fs-body); line-height: var(--lh-body); color: var(--ink); margin: 0; }
.t-sm      { font-family: var(--zh);      font-weight: 400; font-size: var(--fs-sm); line-height: 1.6; color: var(--ink); margin: 0; }
.t-label   { font-family: var(--sans);    font-weight: 700; font-size: var(--fs-label); letter-spacing: 0.16em; text-transform: uppercase; color: var(--brand); font-style: normal; }
.t-cap     { font-family: ui-monospace, "JetBrains Mono", "IBM Plex Mono", Menlo, monospace; font-size: var(--fs-cap); letter-spacing: 0.16em; text-transform: uppercase; color: rgba(14,14,14,0.5); }
.t-num     { font-family: var(--display); font-weight: 800; font-size: var(--fs-display); line-height: 0.9; letter-spacing: -0.03em; color: var(--brand); } /* 统计/时间大数字 */

/* 颜色修饰（标题在暗底/品牌底上用） */
.t-white { color: #fff !important; }
.t-ink   { color: var(--ink) !important; }
.t-brand { color: var(--brand) !important; }

/* ---------- 1b · 共享容器（宽度只用这套类，禁止各页写 max-width） ----------
   规则：
   - 满屏（不套容器 / .container--full）只留给沉浸型内容：Hero 大图/视频、整块背景色、横向卷轴、地图。
   - 正文 / 表单 / 卡片网格一律收进 .container。
   - 背景色块可满屏，但其【内部内容】必须再套一层 .container。 */
.container {
  width: 100%;
  max-width: var(--w-page);
  margin-inline: auto;
  padding-inline: var(--pad-page);
  box-sizing: border-box;
}
.container--wide   { max-width: var(--w-wide); }
.container--text   { max-width: var(--w-text); }
.container--narrow { max-width: var(--w-narrow); }
.container--full   { max-width: none; padding-inline: 0; }
/* 在容器内打破到满屏（沉浸内容用） */
.full-bleed { width: 100vw; margin-inline: calc(50% - 50vw); }

/* ---------- 2 · 接管层（收编现存页面标题，只改排版） ---------- */

/* —— 区块标题 → Jakarta · --fs-h2 ——
   覆盖现存把 Inter / Syne 当 h2 用的选择器。 */
.v3-scen-head h2,
.v3-products-head h2,
.cs-prose h2,
.sc-shead h2,
.dm-stack-card .ti,
.ab-sec-head h2,
.ab-contact-head h2,
.ct-coop-card h3 {
  font-family: var(--sans);
  font-weight: 800;
  font-size: var(--fs-h2);
  line-height: var(--lh-h2);
  letter-spacing: var(--tr-h2);
  font-style: normal;
}

/* —— 作品区块标题：提升一级 → --fs-h1（保持 Jakarta，与同级区块标题一致字族）—— */
.v3-work-head .lead {
  font-family: var(--sans);
  font-weight: 800;
  font-size: var(--fs-h1);
  line-height: var(--lh-h1);
  letter-spacing: var(--tr-h2);
  font-style: normal;
}

/* —— 大陈述 / 全屏特写标题 → Syne · --fs-h1 ——
   首页客户/AI/在场 等大标题，与关于 WHO 标题、作品列表页眉。 */
.v3-clients-title,
.v3-ai-headline,
.v3-field-headline,
.ab-who-title {
  font-family: var(--display);
  font-weight: 800;
  font-size: var(--fs-h1);
  line-height: var(--lh-h1);
  letter-spacing: -0.03em;
  font-style: normal;
}

/* —— 卡片 / 子区标题 → Jakarta · --fs-h3 —— */
.v3-scen-card .scen-title,
.v3-product-name,
.v3-work-meta h3,
.wl-title,
.dm-next .nm,
.sc-casecard .cap h3,
.sc-prob h3 {
  font-family: var(--sans);
  font-weight: 800;
  font-size: var(--fs-h3);
  line-height: var(--lh-h3);
  letter-spacing: -0.01em;
  font-style: normal;
}

/* —— eyebrow / 标签 → Jakarta · 大写 · 无斜体 —— */
.v3-label,
.cs-label,
.wl-lead .eyebrow,
.sc-shead .ey,
.sc-eyebrow,
.sc-cta-eyebrow,
.dm-mani-eyebrow,
.dm-more-head .ey,
.ab-who-eyebrow {
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-style: normal;
}

/* —— 引言 / 主张 / 陈述句 → Noto · 无斜体/无衬线 —— */
.v3-scen-head h2 + *, /* 占位，避免空规则 */
.ab-who-statement,
.ab-presence-title,
.sc-statement,
.sc-detail {
  font-family: var(--zh);
  font-style: normal;
}

/* —— 收尾：清除全站残留斜体（场景旧索引/作品列表分隔符/数据标签） —— */
.sc-italic,
.wl-tb-sep,
.sc-stat .l,
.sc-dd-block.result p {
  font-style: normal !important;
  font-family: var(--sans);
}

/* ---------- 3 · 宽度收编层（把现存各页杂乱 max-width 收敛到宽度真源） ----------
   迁移期做法：用页面既有容器选择器映射到 --w-* token，统一全站容器宽度；
   新内容请直接用 .container 类，旧页面后续逐步替换，页面 CSS 不再各写 max-width。 */
/* 宽：大画廊 / 卡片网格 / 客户墙 / 页脚 */
.v3-scenarios, .v3-products-inner, .v3-work, .v3-ai-inner, .v3-clients-marquee, .v3-footer-inner {
  max-width: var(--w-wide); margin-left: auto; margin-right: auto;
}
/* 默认：常规内容列 */
.v3-hero-center, .v3-manifesto-block, .cs-article, .cs-footer-inner, .ct-wrap, .ab-wrap, .wl-wrap {
  max-width: var(--w-page); margin-left: auto; margin-right: auto;
}
/* 窄：表单 / 单列窄栏 */
.ct-form { max-width: var(--w-narrow); }
