@charset "UTF-8";
/* ==========================================================================
   0.0) 强制全站统一滚动条槽（根治 Chrome「有的页大有的页小」）
   --------------------------------------------------------------------------
   根因：Chrome 在「经典滚动条」(系统设置"始终显示滚动条")下，长页面有滚动条→
   视口布局宽 = 窗口宽 − 15px，短页面无滚动条→视口布局宽 = 窗口宽。凡是仍用
   vw 计算的字号/宽度，在两页之间会算出不同值 → Chrome「有的页大有的页小」；
   Safari 用悬浮滚动条(不占布局宽)，基准恒定，故 Safari 永远正确。
   修复：给 <html> 恒定预留滚动条槽，使所有页面(长/短)的视口布局宽完全一致 →
   vw 基准恒定 → 跨页不再跳变，与 Safari 对齐。
   ⚠️ 不能用 overflow-y:scroll(会改 html overflow，破坏 scrollTo 且触发硬规则)，
      故只用品格属性 scrollbar-gutter:stable，不改变 overflow 值。 */
html{
  scrollbar-gutter:stable !important;
}

/* ==========================================================================
   雅之林® 全站「显示格式锁死」唯一真源 —— shared/type.css
   --------------------------------------------------------------------------
   背景：此前 hero 三件套 / 栏目三件套的字体设置散落在
   group/site/assets/style.css、case/site/assets/style.css、edu、news、mall、
   check、ai 各自的内联 <style> 里，同一语义元素在不同站点/页面用了不同
   字号、字重、行高、字距，切页面时"文字大小乱跳"。本文件把字体设置收口成
   一套 token，全站所有页面在 </head> 前最后一行引入。

   ⚠️ 特异性约定：所有规则统一用 `html:not(.y-mall) body …` 前缀（0,2,2），
      高于 desktop.css 的 `html body …`（0,1,2），且本文件最后加载，
      因此能压过各站本地 CSS 与内联 <style>；又低于页面里更具体的组合选择器
      （如 group 首页手机端压缩规则 0,4,2、edu 教程子页小标题 0,4,2），
      不会破坏既有的局部特例。

   .y-mall：会员商城是 640px 卡片式独立版式（标题 26px/小节 15px 带左竖线），
      与门户站不同体系，加该 class 到 <html> 即可豁免标题类规则。

   覆盖范围：group / case / edu / news / check / ai（+ mall 仅字体族与防膨胀）
   锁定属性：font-family / font-size / font-weight / line-height /
             letter-spacing / max-width / white-space
   刻意不锁：颜色（各站主题变量不同）、区块 padding/高度（各站布局不同）
   ========================================================================== */

/* --------------------------------------------------------------------------
   0) 字体族全局统一 + 关闭系统/浏览器字号自动膨胀
   --------------------------------------------------------------------------
   -webkit-text-size-adjust:100% 关闭安卓 Chrome「字号档位」与 iOS 小屏自动
   放大的强制膨胀，这是"同一段字在不同手机上大小不一样"的首要来源。 */
html, body{
  -webkit-text-size-adjust:100% !important;
  -moz-text-size-adjust:100% !important;
  text-size-adjust:100% !important;
}
html, body,
.hero, .page-hero, .ux-hero,
.hero-content, .page-hero-content, .ux-hero-content,
.sec, .sec-inner, .ux-footer, .ux-footer-inner{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
}

/* --------------------------------------------------------------------------
   1) 首屏三件套：kicker（小标签） / h1（大标题） / desc（下面几行字）
   -------------------------------------------------------------------------- */

/* 1.1 kicker：12px / 700 / 字距 3px / 行高 1.7 / 单行不换行
   行高取 1.7 与桌面端 desktop.css 12.4 条一致（此前 case 站 1.2、其余 1.7）。 */
html:not(.y-mall) body .hero-kicker,
html:not(.y-mall) body .ux-hero-kicker{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.7 !important;
  letter-spacing:3px !important;
  white-space:nowrap !important;
}
html:not(.y-mall) body .hero-kicker sup,
html:not(.y-mall) body .ux-hero-kicker sup{
  font-size:9px !important;
  font-weight:400 !important;
  letter-spacing:0 !important;
}

/* 1.2 大标题 h1 / h2（含 edu 的 .hero h2 主标题）：手机端走 clamp 曲线缩放，
   桌面端(≥768px) 定死 68px 固定像素 —— 彻底去掉 vw 依赖，消除 Safari(悬浮
   滚动条) 与 Chrome(布局滚动条) 因视口计算不同导致的字号偏差，做到两浏览器
   桌面端完全一致、各页统一。此前四套值并存(g5vw/52、c6vw/68、案例页6vw/44、mall26) */
html:not(.y-mall) body .hero h1,
html:not(.y-mall) body .hero h2,
html:not(.y-mall) body .page-hero h1,
html:not(.y-mall) body .page-hero h2,
html:not(.y-mall) body .ux-hero h1,
html:not(.y-mall) body .ux-hero-title,
html:not(.y-mall) body .case-hero h1,
html:not(.y-mall) body .case-hero h2{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:clamp(30px,6vw,68px) !important;
  font-weight:900 !important;
  line-height:1.12 !important;
  letter-spacing:1px !important;
}
/* 桌面端：定死 68px，不再随视口变化（锁死电脑浏览器规则，以 Safari 桌面为准） */
@media (min-width:768px){
  html:not(.y-mall) body .hero h1,
  html:not(.y-mall) body .hero h2,
  html:not(.y-mall) body .page-hero h1,
  html:not(.y-mall) body .page-hero h2,
  html:not(.y-mall) body .ux-hero h1,
  html:not(.y-mall) body .ux-hero-title,
  html:not(.y-mall) body .case-hero h1,
  html:not(.y-mall) body .case-hero h2{ font-size:68px !important; }
}

/* 1.3 下方小字 desc：手机端 clamp(15px,2vw,20px) 缩放，桌面端(≥768px) 定死 20px */
html:not(.y-mall) body .hero-desc,
html:not(.y-mall) body .ux-hero-desc{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:clamp(15px,2vw,20px) !important;
  font-weight:400 !important;
  line-height:1.7 !important;
  letter-spacing:0 !important;
  max-width:860px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
@media (min-width:768px){
  html:not(.y-mall) body .hero-desc,
  html:not(.y-mall) body .ux-hero-desc{ font-size:20px !important; }
}

/* --------------------------------------------------------------------------
   2) 栏目三件套：sec-kicker / sec-title / sec-sub
   -------------------------------------------------------------------------- */

/* 2.1 栏目容器：居中、最大宽 720、下间距 32
   —— 此前 edu 18 / news 32 / ai 10 / check 18 / case 30，忽大忽小。 */
html:not(.y-mall) body .sec-head{
  text-align:center !important;
  max-width:720px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  margin-bottom:20px !important;
}

/* 2.2 栏目小标签：12px / 800 / 字距 2px / 下间距 12 / 两侧金线 */
html:not(.y-mall) body .sec-kicker{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:12px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  letter-spacing:2px !important;
  margin-bottom:12px !important;
  text-align:center !important;
}
html:not(.y-mall) body .sec-kicker::before,
html:not(.y-mall) body .sec-kicker::after{
  content:'' !important;
  width:18px !important;
  height:1px !important;
  background:#C9A24A !important;
  flex:none !important;
}

/* 2.3 栏目大标题：clamp(26px,4vw,40px) / 900 / 行高 1.2 / 下间距 14
   —— 此前 check 站为 clamp(24px,3.4vw,34px)、ai 站下间距 6，与其他页不同。
      桌面端(≥768px)跟随 desktop.css 首页基准写死 40px，避免中间宽度浮动。 */
html:not(.y-mall) body .sec-title{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:clamp(26px,4vw,40px) !important;
  font-weight:900 !important;
  line-height:1.2 !important;
  letter-spacing:0 !important;
  margin:0 0 14px !important;
}
@media (min-width:768px){
  html:not(.y-mall) body .sec-title{font-size:40px !important;}
}

/* 2.4 栏目说明小字：16px / 行高 1.8 / 最大宽 760 居中
   —— 此前 case 14px、check 13px，与 group/news/edu 的 16px 不一致。
      桌面端跟随 desktop.css 首页基准 15px。 */
html:not(.y-mall) body .sec-sub{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:16px !important;
  font-weight:400 !important;
  line-height:1.8 !important;
  letter-spacing:0 !important;
  max-width:760px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
@media (min-width:768px){
  html:not(.y-mall) body .sec-sub{font-size:15px !important;}
}

/* 0.5) 基础字号统一为 16px
   🔴🔴🔴🔴 2026-10-22（第56轮）**真 bug，用户当场抓到**：
   这条原来被包在 `@media (min-width:768px)` 里 ⇒ **手机上完全不生效**。
   于是老人把系统字号调大（安卓 Chrome「字体大小」滑块 / 微信内置字号 /
   iOS「更大字体」）时，根元素计算字号跟着从 16px 变成 20/24px，
   页面里所有 `rem/em` 一起**等比放大** ⇒ 头像挤爆、卡片重叠、落款按钮折行。
   线上真机实测（390×844，把根字号顶到 24px）：
     · group / case / news / edu 四站 → `getComputedStyle(html).fontSize` **真的变成 24px**（没锁）
     · hub 首页 → 仍是 16px（因为它引了 lock.css）
   用户原话：「任何手机任何字体，能不能锁死禁止换行和增大字体？…很多老年人把字体调的很大，
   整个会员中心都是乱套的显示错乱。」
   ⛔ 别再塞回 `@media`：`rem` 基准是「根元素的计算字号」，跟屏宽一点关系都没有，
      按屏宽决定要不要锁根字号，等于手机端永久裸奔。
   ⚠️ 与 `shared/lock-type.css`（部署为各站根 `lock.css`）**同口径同值**：
      两边都必须是 16px；任一处改，另一处必须同改（判据：两站实测根字号都恒为 16px）。 */
html:not(.y-mall), html:not(.y-mall) body{ font-size:16px !important; }
/* 核心力量等"固定两行"副标题：每行各自不换行，由 JS 自适应缩字号 */
html:not(.y-mall) body .sec-sub .sub-ln{
  display:block !important;
  white-space:nowrap !important;
  line-height:1.8 !important;
}

/* --------------------------------------------------------------------------
   5) 内容字号桌面定死（消除 Chrome vs Safari 的 vw/滚动条差异）
   --------------------------------------------------------------------------
   根因：各站本地 style.css 的「内容数字/小标题」仍用 clamp(..vw..)，例如
   case 的 .series-title/.summary-card .num/.ds b/.hero-sub-sm、
   group 的 .hero-stat .num/.cta-title/.lead-box .lead-main/.about-intro-body h3。
   vw 在 Chrome(经典滚动条占布局宽度：长页面有滚动条→vw 基准=窗口宽；短页面
   无滚动条→vw 基准=窗口宽-15px) 与 Safari(悬浮滚动条不占布局→基准恒定) 下算
   出不同字号 → Chrome「有的页大有的页小」、Safari 全部一致。
   修复：桌面端(≥768px) 把下列元素定死为 clamp 上限的固定像素，彻底去掉 vw 依赖，
   两浏览器在任意窗口宽度下完全一致。值=各 clamp 上限（宽屏 Safari/Chrome 本就显示此值）。 */
/* —— 桌面端内容字号统一（≥768px 定死，不受视口/滚动条影响）—— */
@media (min-width:768px){
  /* case 站内容数字 / 子标题 */
  html:not(.y-mall) body .series-title{font-size:30px !important;line-height:1.2 !important;}
  html:not(.y-mall) body .summary-card .num{font-size:36px !important;line-height:1.15 !important;}
  html:not(.y-mall) body .ds b{font-size:22px !important;line-height:1.1 !important;}
  html:not(.y-mall) body .hero-sub-sm{font-size:20px !important;line-height:1.7 !important;letter-spacing:1.5px !important;}
  /* group 站内容数字 / 子标题 */
  html:not(.y-mall) body .hero-stat .num{font-size:40px !important;line-height:1 !important;}
  html:not(.y-mall) body .cta-title{font-size:40px !important;line-height:1.2 !important;}
  html:not(.y-mall) body .lead-box .lead-main{font-size:30px !important;line-height:1.5 !important;}
  /* 通用内容 h3 统一为 20px（消除 case=18 / case-cardio=19 的跨页差异）。
     特异性 (0,2,2)+!important，与已锁的 .sec-title(0,2,2)+!important 同权 →
     源顺序在其前 → .sec-title 仍 40px 胜出；.about-intro-body h3(0,2,3)+!important 也胜出保持 26px。 */
  html:not(.y-mall) body h3{font-size:20px !important;line-height:1.4 !important;}
  /* group 关于页 h3（本地带 !important，此处用更高特异性 + !important 压过） */
  html:not(.y-mall) body .about-intro-body h3{font-size:26px !important;line-height:1.3 !important;}
  /* 子页残留 vw 小标题/数字：桌面定死，消除经典滚动条下的跨页 vw 基准跳变
     （brand/product 子页、edu 教程子页此前仍用 clamp(..vw..)，未走主锁） */
  html:not(.y-mall) body .brand-intro-title{font-size:40px !important;line-height:1.25 !important;margin:0 0 14px !important;}
  html:not(.y-mall) body .product-detail-title{font-size:34px !important;line-height:1.25 !important;margin:0 0 14px !important;}
  html:not(.y-mall) body .case-link-t{font-size:19px !important;line-height:1.25 !important;letter-spacing:.3px !important;}
  html:not(.y-mall) body .case-arrow{font-size:30px !important;line-height:1 !important;}
  html:not(.y-mall) body .hero-ext .st b{font-size:24px !important;line-height:1.25 !important;}
  /* 子页大标题 .brand-hero-title：本地有 0,3,2 !important 规则压过 type.css 1.2，
     此处用更高特异性(0,3,3 / 0,4,3) + !important 收口，桌面定死 68px */
  html:not(.y-mall) body .page-hero h1.brand-hero-title{font-size:68px !important;line-height:1.12 !important;letter-spacing:1px !important;}
  html:not(.y-mall) body .hero.page-hero:not(.hero-compact) h1.brand-hero-title{font-size:68px !important;line-height:1.12 !important;letter-spacing:1px !important;margin-bottom:4px !important;}
}

/* --------------------------------------------------------------------------
   3) 单行锁：必须一行显示、永不换行的口号/落款
   --------------------------------------------------------------------------
   用法：<p class="hero-desc fit-one" data-fit-max="20" data-fit-min="11">…</p>
   CSS 只负责"不换行"，实际字号由 fit.js 按容器宽度自适应收缩到刚好一行
   （不会像纯 nowrap 那样在西文长句下被压成 7~8px 不可读：低于 data-fit-min
   时 fit.js 自动放弃 nowrap 改回正常换行）。 */
.fit-one{
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:clip !important;
  max-width:100% !important;
}
/* JS 未执行/失效时的兜底：按视口宽度线性缩放，保证中文状态下仍是一行 */
@media (max-width:767px){
  .fit-one{font-size:min(20px,4.1vw) !important;}
}
@media (max-width:400px){
  .fit-one{font-size:min(20px,3.9vw) !important;}
}

/* --------------------------------------------------------------------------
   4) 页脚文字：统一字号，避免不同页脚行距跳动
   -------------------------------------------------------------------------- */
.ux-footer{
  font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif !important;
  font-size:13px !important;
  line-height:1.6 !important;
}
.ux-footer-version,
.ux-footer-record{font-size:13px !important;font-weight:800 !important;}
.ux-footer-copy{font-size:12px !important;}
.ux-footer-disclaimer{font-size:11px !important;line-height:1.5 !important;}
