/* ============================================================
   fonts.css — 搜词AI 前端字体系统（全站单一事实来源）
   引入顺序：必须在 style.css / custom.css / index.css 之前加载
   依赖：将自托管 woff2 放置于 public/assets/fonts/ 下
   ============================================================ */

/* ---------- 1. @font-face：自托管 woff2，font-display: swap ---------- */
/* 拉丁品牌正文：Be Vietnam Pro（仅拉丁字形，中文走系统栈） */
@font-face {
  font-family: "Be Vietnam Pro";
  font-style: normal;
  font-weight: 400;
  font-display: swap;            /* 先用兜底渲染，字体就绪后无缝替换，杜绝 FOIT/CLS */
  src: url("../fonts/be-vietnam-pro-400.woff2") format("woff2");
}
@font-face {
  font-family: "Be Vietnam Pro";
  font-style: normal;  font-weight: 600;
  font-display: swap;
  src: url("../fonts/be-vietnam-pro-600.woff2") format("woff2");
}
/* 拉丁品牌标题：Plus Jakarta Sans */
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;  font-weight: 700;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-700.woff2") format("woff2");
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;  font-weight: 800;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans-800.woff2") format("woff2");
}
/* 等宽：JetBrains Mono（算价数字 / 代码块） */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-400.woff2") format("woff2");
}

/* 中文兜底：Source Han Sans（思源黑体）。
   仅当系统无 PingFang SC / 微软雅黑 等时，浏览器才会下载（local 优先，已安装者 0 请求）；
   单字重 Regular，约 1.24MB，仅惠及极少数缺系统 CJK 的环境，绝大多数用户不触发。 */
@font-face {
  font-family: "Source Han Sans SC";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: local("Source Han Sans SC"), local("Source Han Sans CN"), local("Noto Sans CJK SC"),
       url("../fonts/SourceHanSansK-Regular.ttf") format("truetype");
}

/* ---------- 2. 兜底字体度量对齐：消除 CLS ---------- */
/* 品牌拉丁字体不含中文字形，中文由系统栈渲染；
   用 size-adjust / ascent-override 让兜底与品牌字体视觉高度接近，避免回流抖动 */
@font-face {
  font-family: "Fallback CJK";
  src: local("PingFang SC"), local("Microsoft YaHei"), local("Hiragino Sans GB"), local("Segoe UI");
  size-adjust: 100%;
  ascent-override: 90%;
  descent-override: 22%;
  line-gap-override: 0%;
}

/* ---------- 3. 字体设计令牌（全站统一） ---------- */
:root {
  /* 系统字体栈：中文优先高质量系统字体，零网络请求 */
  --font-system: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
                 "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC",
                 "Noto Sans CJK SC", sans-serif;

  /* 正文：拉丁品牌字体 + 系统中文兜底 */
  --font-sans:   "Be Vietnam Pro", var(--font-system);
  /* 标题：拉丁展示字体 + 系统中文兜底 */
  --font-display:"Plus Jakarta Sans", var(--font-system);
  /* 等宽 */
  --font-mono:   "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  /* 流体排版比例尺：clamp(下限, 视口插值, 上限) —— 随屏宽平滑缩放 */
  --fs--1:    clamp(0.83rem, 0.80rem + 0.15vw, 0.94rem);
  --fs-0:     clamp(1.00rem, 0.95rem + 0.25vw, 1.125rem);
  --fs-1:     clamp(1.25rem, 1.10rem + 0.75vw, 1.50rem);
  --fs-2:     clamp(1.60rem, 1.35rem + 1.25vw, 2.00rem);
  --fs-3:     clamp(2.00rem, 1.60rem + 2.00vw, 2.80rem);
  --fs-hero:  clamp(2.00rem, 1.20rem + 4.00vw, 3.50rem);

  /* 行高令牌 */
  --lh-tight: 1.15;
  --lh-snug:  1.30;
  --lh-base:  1.65;
  --lh-loose: 1.85;
}

/* ---------- 4. 抗锯齿 & 平滑渲染（跨浏览器一致） ---------- */
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; } /* 禁止 iOS 自动放大 */

body {
  font-family: var(--font-sans);
  font-size: var(--fs-0);
  line-height: var(--lh-base);
  -webkit-font-smoothing: antialiased;     /* WebKit：灰阶抗锯齿 */
  -moz-osx-font-smoothing: grayscale;      /* Firefox：灰阶抗锯齿 */
  text-rendering: optimizeLegibility;      /* 启用字距/连字微调 */
  font-synthesis: none;                    /* 禁止伪粗体 / 伪斜体 */
  font-feature-settings: "kern" 1, "liga" 1, "calt" 1;  /* 字距 + 连字 */
  font-variant-ligatures: common-ligatures discretionary-ligatures;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  line-height: var(--lh-snug);
  letter-spacing: -0.01em;     /* 标题光学字距收紧 */
  color: #1E1B4B;
}

/* ---------- 5. 响应式排版微调 ---------- */
@media (max-width: 768px) {
  :root { --lh-base: 1.75; --lh-loose: 1.90; }  /* 小屏放松行高，提升可读性 */
}
@media (min-width: 1400px) {
  :root { --lh-base: 1.70; }                    /* 大屏略收紧，避免行过松 */
}

/* 流量敏感用户：放弃 webfont，仅用系统字体（节省数 MB 下载） */
@media (prefers-reduced-data: reduce) {
  @font-face { font-family: "Be Vietnam Pro"; src: local("PingFang SC"), local("Microsoft YaHei"); }
  @font-face { font-family: "Plus Jakarta Sans"; src: local("PingFang SC"), local("Microsoft YaHei"); }
  @font-face { font-family: "JetBrains Mono"; src: local("SF Mono"), local("Cascadia Code"); }
}
