/* ============================================================
   ChinaRoute RU · 三语字体系统
   中文：思源宋体 / 阿里巴巴普惠体（长文阅读优化）
   英文：Inter / Georgia（国际主流）
   俄文：PT Sans / PT Serif（西里尔字母优化）
   通过 html[lang] 自动切换字体栈与排版参数
   ============================================================ */

/* ---------- 字体引入（Web 字体在 HTML <head> 用 <link> + preconnect 加载，见各页面头部） ---------- */
/* 英文 Inter + 俄文 PT Sans/PT Serif + 中文思源宋体/思源黑体
   说明：原 @import 改为 <head> 预连接，避免 CSS @import 的渲染阻塞与弱网失败风险。 */

/* 阿里巴巴普惠体：优先使用用户本机已安装字体；
   未安装时自动回退到思源黑体（Noto Sans SC，上方已从 Google Fonts 引入）。
   说明：官方 OSS Webfont 启用了防盗链，直接外链会 403，故不作为远程源。 */
@font-face {
  font-family: "Alibaba PuHuiTi";
  src: local("Alibaba PuHuiTi 3.0"), local("Alibaba PuHuiTi"), local("AlibabaPuHuiTi-3-55-Regular");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Alibaba PuHuiTi";
  src: local("Alibaba PuHuiTi 3.0 Medium"), local("AlibabaPuHuiTi-3-65-Medium");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Alibaba PuHuiTi";
  src: local("Alibaba PuHuiTi 3.0 SemiBold"), local("AlibabaPuHuiTi-3-75-SemiBold");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ---------- 字体栈与排版参数 ---------- */
:root {
  /* 中文字体栈：标题用思源宋体，正文用阿里巴巴普惠体 */
  --font-zh-serif: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "SimSun", serif;
  --font-zh-sans: "Alibaba PuHuiTi", "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;

  /* 英文字体栈：正文 Inter，标题 Georgia */
  --font-en-serif: Georgia, "Times New Roman", "Noto Serif SC", serif;
  --font-en-sans: Inter, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

  /* 俄文字体栈：正文 PT Sans，标题 PT Serif */
  --font-ru-serif: "PT Serif", Georgia, "Times New Roman", serif;
  --font-ru-sans: "PT Sans", Inter, -apple-system, "Segoe UI", Arial, sans-serif;

  /* 默认（中文）排版参数 */
  --font-body: var(--font-zh-sans);
  --font-display: var(--font-zh-serif);
  --fs-base: 16px;
  --lh-body: 1.85;          /* 中文长文行高 */
  --lh-display: 1.35;       /* 中文标题行高 */
  --ls-body: 0.015em;       /* 中文字间距 */
  --ls-display: 0.06em;     /* 中文标题字间距 */
  --para-gap: 0.9em;        /* 段间距 */
  --fw-body: 400;
  --fw-display: 700;
}

/* 英文排版参数 */
html[lang="en"] {
  --font-body: var(--font-en-sans);
  --font-display: var(--font-en-serif);
  --fs-base: 16px;
  --lh-body: 1.65;
  --lh-display: 1.22;       /* Georgia 标题紧凑行高 */
  --ls-body: 0.002em;
  --ls-display: -0.015em;
  --para-gap: 1em;
  --fw-display: 700;
}

/* 俄文排版参数 */
html[lang="ru"] {
  --font-body: var(--font-ru-sans);
  --font-display: var(--font-ru-serif);
  --fs-base: 16px;
  --lh-body: 1.72;
  --lh-display: 1.28;       /* PT Serif 标题行高 */
  --ls-body: 0.003em;
  --ls-display: 0.005em;
  --para-gap: 0.95em;
  --fw-display: 700;
}

/* ---------- 应用 ---------- */
body {
  font-family: var(--font-body);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  letter-spacing: var(--ls-body);
  font-weight: var(--fw-body);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: var(--fw-display);
  letter-spacing: var(--ls-display);
  line-height: var(--lh-display, 1.3);
}

p + p { margin-top: var(--para-gap); }

/* 西里尔/拉丁长单词自动断字 + 防溢出（中文不受影响） */
html[lang="ru"] p, html[lang="en"] p,
html[lang="ru"] li, html[lang="en"] li,
html[lang="ru"] td, html[lang="en"] td {
  hyphens: auto;
  -webkit-hyphens: auto;
  overflow-wrap: break-word;
}

/* 中文界面下的俄文/英文片段、俄文界面下的中文片段自动匹配对应字体 */
:lang(zh), .text-zh, .ticket-zh, .ticket-desc-zh {
  font-family: var(--font-zh-sans);
}
:lang(ru), .text-ru {
  font-family: var(--font-ru-sans);
}
:lang(en), .text-en {
  font-family: var(--font-en-sans);
}

/* 覆盖旧变量，让历史样式表继承新字体系统 */
:root {
  --serif: var(--font-display);
  --sans: var(--font-body);
  --latin-serif: var(--font-display);
}

/* 字号刻度（全站统一） */
:root {
  --fs-xs: 12px;
  --fs-sm: 13.5px;
  --fs-md: 15px;
  --fs-lg: 17px;
  --fs-xl: 21px;
  --fs-2xl: 26px;
  --fs-3xl: 32px;
  --fs-hero: clamp(30px, 5.2vw, 56px);
}

@media (max-width: 768px) {
  :root { --fs-base: 15px; }
}
