/* =========================================================
   华智国际教育集团 · 官网站点样式
   修改配色 / 字号 / 间距：只需调整下方 :root 变量
   ========================================================= */

/* ---------- 1. 设计变量 ---------- */
:root {
  --ink: #0c1c2c;
  --ink-soft: #16293c;
  --ink-3: #22384d;
  --gold: #a9855a;
  --gold-2: #c3a074;
  --white: #ffffff;
  --bg-soft: #f5f6f8;
  --bg-soft-2: #eef0f3;
  --line: #e4e8ed;
  --text: #20303f;
  --muted: #6d7c8c;

  --maxw: 1288px;
  --nav-h: 72px;
  --radius: 2px;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);

  --font-sans: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", "Source Han Sans SC", "Segoe UI", system-ui, sans-serif;
  --font-serif: "Georgia", "Times New Roman", "Songti SC", serif;
}

/* ---------- 2. 基础重置 ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; scroll-padding-top: calc(var(--nav-h) + 20px); -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 19px;
  line-height: 1.65;
  color: var(--text);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, h5 {
  margin: 0;
  font-weight: 600;
  line-height: 1.32;
  letter-spacing: -0.01em;
  /* 字号放大后标题更容易折行，让多行长度自动均衡，避免最后一行只剩一个字 */
  text-wrap: balance;
}
p { margin: 0; text-wrap: pretty; }

::selection { background: var(--ink); color: #fff; }

/* ---------- 3. 布局工具 ---------- */
.container {
  width: 100%;
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 32px;
}

.section { padding: 84px 0; }
.section--tight { padding: 42px 0; }
.section--soft { background: var(--bg-soft); }
.section--ink { background: var(--ink); color: #fff; }

.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

/* 标题组 */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-serif);
  font-size: 13px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
}
.eyebrow::before {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--gold);
}
.eyebrow--center::after {
  content: "";
  width: 24px;
  height: 1px;
  background: var(--gold);
}

.section-head { max-width: 680px; margin-bottom: 46px; }
.section-head--center { margin-left: auto; margin-right: auto; text-align: center; }

.section-title {
  font-size: clamp(39px, 3vw, 57px);
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.section-title .light { color: var(--muted); font-weight: 400; }
.section-desc {
  margin-top: 20px;
  font-size: 16.5px;
  color: var(--muted);
  line-height: 1.72;
}
.section--ink .section-title { color: #fff; }
.section--ink .section-desc { color: rgba(255, 255, 255, 0.62); }

/* ---------- 4. 头部导航 ---------- */
.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  height: var(--nav-h);
  z-index: 900;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: saturate(180%) blur(14px);
  border-bottom: 1px solid var(--line);
  transition: box-shadow 0.35s var(--ease), background 0.35s var(--ease);
}
.site-header.is-scrolled { box-shadow: 0 6px 20px rgba(12, 28, 44, 0.07); }

.nav {
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.brand { display: flex; align-items: center; gap: 13px; }
.brand-mark {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  display: grid;
  place-items: center;
  background: var(--ink);
  color: var(--gold-2);
  font-family: var(--font-serif);
  font-size: 22px;
  letter-spacing: 0.02em;
  border-radius: var(--radius);
}
.brand-text { display: flex; flex-direction: column; line-height: 1.25; }
.brand-cn {
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ink);
  white-space: nowrap;
}
.brand-en {
  font-family: var(--font-serif);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  color: var(--muted);
  text-transform: uppercase;
  white-space: nowrap;
}

.nav-links { display: flex; align-items: center; gap: 4px; }
.nav-links a {
  position: relative;
  padding: 10px 14px;
  font-size: 15px;
  color: var(--text);
  transition: color 0.25s var(--ease);
  white-space: nowrap;
}
.nav-links a::after {
  content: "";
  position: absolute;
  left: 14px;
  right: 14px;
  bottom: 4px;
  height: 1.5px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.32s var(--ease);
}
.nav-links a:hover { color: var(--ink); }
.nav-links a:hover::after,
.nav-links a.active::after { transform: scaleX(1); }
.nav-links a.active { color: var(--ink); font-weight: 600; }

.nav-cta { display: flex; align-items: center; gap: 12px; }
.nav-tel {
  font-family: var(--font-serif);
  font-size: 13.5px;
  letter-spacing: 0.02em;
  color: var(--ink);
  display: flex;
  align-items: center;
  gap: 8px;
}
.nav-tel svg { width: 18px; height: 18px; stroke: var(--gold); }

/* 语言切换：中文 / EN 两段式，位于页头最右（手机端紧邻汉堡按钮） */
.lang-switch {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  height: 34px;
  padding: 2px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  flex: 0 0 auto;
  margin-left: 2px;
}
.lang-opt {
  appearance: none;
  -webkit-appearance: none;
  border: 0;
  background: transparent;
  height: 28px;
  min-width: 32px;
  padding: 0 9px;
  font-family: var(--font-sans);
  font-size: 12.5px;
  line-height: 28px;
  letter-spacing: 0.02em;
  color: var(--muted);
  border-radius: 1px;
  cursor: pointer;
  transition: color 0.22s var(--ease), background 0.22s var(--ease);
}
.lang-opt:hover { color: var(--ink); background: rgba(12, 28, 44, 0.05); }
.lang-opt.is-on { background: var(--ink); color: #fff; }
.lang-opt.is-on:hover { background: var(--ink); color: #fff; }
.lang-opt:focus-visible { outline: 2px solid var(--gold); outline-offset: 1px; }

.nav-toggle {
  display: none;
  width: 42px;
  height: 42px;
  border: 1px solid var(--line);
  background: #fff;
  border-radius: var(--radius);
  position: relative;
}
.nav-toggle span,
.nav-toggle span::before,
.nav-toggle span::after {
  position: absolute;
  left: 50%;
  width: 18px;
  height: 1.5px;
  background: var(--ink);
  transform: translateX(-50%);
  transition: 0.3s var(--ease);
}
.nav-toggle span { top: 50%; margin-top: -0.75px; }
.nav-toggle span::before { content: ""; top: -6px; }
.nav-toggle span::after { content: ""; top: 6px; }
.nav-toggle.is-open span { background: transparent; }
.nav-toggle.is-open span::before { top: 0; transform: rotate(45deg); }
.nav-toggle.is-open span::after { top: 0; transform: rotate(-45deg); }

.mobile-menu {
  position: fixed;
  inset: var(--nav-h) 0 auto 0;
  background: #fff;
  border-bottom: 1px solid var(--line);
  z-index: 880;
  padding: 12px 26px 20px;
  transform: translateY(-102%);
  transition: transform 0.42s var(--ease);
  max-height: calc(100vh - var(--nav-h));
  overflow-y: auto;
}
.mobile-menu.is-open { transform: translateY(0); }
.mobile-menu a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 0;
  border-bottom: 1px solid var(--line);
  font-size: 19px;
  color: var(--ink);
}
.mobile-menu a span { font-family: var(--font-serif); font-size: 12px; color: var(--gold); letter-spacing: 0.14em; }

/* 字号放大后导航整体更宽：提前一档收起为汉堡菜单，避免挤压品牌标识 */
@media (max-width: 1200px) {
  .nav-links, .nav-tel, .nav-cta .btn { display: none; }
  .nav-toggle { display: block; }
}

/* ---------- 5. 按钮 ---------- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 54px;
  padding: 0 26px;
  font-size: 15px;
  letter-spacing: 0.02em;
  border: 1px solid transparent;
  border-radius: var(--radius);
  transition: 0.32s var(--ease);
  cursor: pointer;
  white-space: nowrap;
}
.btn svg { width: 17px; height: 17px; transition: transform 0.32s var(--ease); }
.btn:hover svg { transform: translateX(4px); }

.btn--dark { background: var(--ink); color: #fff; }
.btn--dark:hover { background: var(--ink-3); }

.btn--gold { background: var(--gold); color: #fff; }
.btn--gold:hover { background: #96744c; }

.btn--ghost { border-color: rgba(255, 255, 255, 0.34); color: #fff; }
.btn--ghost:hover { border-color: #fff; background: rgba(255, 255, 255, 0.08); }

.btn--line { border-color: var(--line); color: var(--ink); background: #fff; }
.btn--line:hover { border-color: var(--ink); }

.btn--sm { height: 44px; padding: 0 18px; font-size: 13.5px; }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  font-size: 16px;
  color: var(--ink);
  padding-bottom: 3px;
  border-bottom: 1px solid var(--line);
  transition: 0.3s var(--ease);
}
.link-arrow svg { width: 18px; height: 18px; transition: transform 0.3s var(--ease); }
.link-arrow:hover { border-color: var(--gold); color: var(--gold); }
.link-arrow:hover svg { transform: translateX(4px); }

/* ---------- 6. 首页 Hero ---------- */
.hero {
  position: relative;
  background-color: var(--ink);
  background-image:
    var(--bg-hero-mask, linear-gradient(100deg, rgba(8, 21, 33, 0.95) 0%, rgba(8, 21, 33, 0.78) 52%, rgba(8, 21, 33, 0.57) 100%)),
    var(--bg-hero-img, none);
  background-size: cover, cover;
  background-position: var(--bg-hero-pos, center), var(--bg-hero-pos, center);
  background-repeat: no-repeat, no-repeat;
  color: #fff;
  padding: calc(var(--nav-h) + 64px) 0 0;
  overflow: hidden;
  isolation: isolate;
}
.hero-grid-bg {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, 0.05) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
  background-size: 84px 84px;
  -webkit-mask-image: radial-gradient(ellipse 90% 75% at 30% 20%, #000 30%, transparent 78%);
  mask-image: radial-gradient(ellipse 90% 75% at 30% 20%, #000 30%, transparent 78%);
  z-index: -1;
}
.hero-glow {
  position: absolute;
  top: -320px;
  right: -220px;
  width: 900px;
  height: 900px;
  background: radial-gradient(circle, rgba(169, 133, 90, 0.22) 0%, rgba(169, 133, 90, 0.05) 42%, transparent 68%);
  z-index: -1;
  pointer-events: none;
}
.hero-glow--2 {
  top: auto;
  bottom: -420px;
  right: auto;
  left: -260px;
  width: 780px;
  height: 780px;
  background: radial-gradient(circle, rgba(90, 140, 190, 0.16) 0%, transparent 66%);
}

.hero-inner {
  display: block;
  padding-bottom: 62px;
}
.hero-main { max-width: 920px; }
.hero .eyebrow { color: var(--gold-2); }
.hero .eyebrow::before { background: var(--gold-2); }

.hero h1 {
  font-size: clamp(57px, 5.4vw, 102px);
  line-height: 1.16;
  letter-spacing: -0.03em;
  font-weight: 600;
}
.hero h1 em {
  font-style: normal;
  color: var(--gold-2);
}
.hero-lead {
  margin-top: 28px;
  font-size: 21px;
  line-height: 1.75;
  color: rgba(255, 255, 255, 0.72);
  max-width: 540px;
}
.hero-actions { margin-top: 42px; display: flex; flex-wrap: wrap; gap: 14px; }

.hero-side {
  border-left: 1px solid rgba(255, 255, 255, 0.14);
  padding-left: 40px;
  display: grid;
  gap: 20px;
}
.hero-side-item h4 {
  font-size: 16.5px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.02em;
  display: flex;
  align-items: center;
  gap: 10px;
}
.hero-side-item h4::before {
  content: "";
  width: 5px;
  height: 5px;
  background: var(--gold);
  border-radius: 50%;
  flex: 0 0 5px;
}
.hero-side-item p {
  margin-top: 8px;
  padding-left: 15px;
  font-size: 15px;
  line-height: 1.68;
  color: rgba(255, 255, 255, 0.55);
}

.hero-scroll {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-serif);
  font-size: 11.5px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 8px;
}
.hero-scroll i {
  display: block;
  width: 1px;
  height: 34px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.5), transparent);
  animation: scrollLine 2.4s var(--ease) infinite;
}
@keyframes scrollLine {
  0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
  40% { transform: scaleY(1); opacity: 1; }
  100% { transform: scaleY(1); transform-origin: bottom; opacity: 0; }
}

/* 数据条 */
.stats-bar {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.03);
}
.stats-bar .container {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.stat {
  padding: 28px 20px 30px;
  border-left: 1px solid rgba(255, 255, 255, 0.1);
}
.stat:first-child { border-left: 0; padding-left: 0; }
.stat-num {
  font-family: var(--font-serif);
  font-size: clamp(45px, 3.4vw, 66px);
  line-height: 1;
  color: #fff;
  letter-spacing: -0.02em;
}
.stat-num small { font-size: 0.48em; margin-left: 4px; color: var(--gold-2); letter-spacing: 0; }
.stat-label {
  margin-top: 12px;
  font-size: 14.5px;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.5);
}

/* ---------- 7. 内页页头 ---------- */
.page-hero {
  position: relative;
  background-color: var(--ink);
  background-image:
    var(--bg-page-mask, linear-gradient(100deg, rgba(8, 21, 33, 0.95) 0%, rgba(8, 21, 33, 0.78) 52%, rgba(8, 21, 33, 0.57) 100%)),
    var(--bg-page-img, none);
  background-size: cover, cover;
  background-position: var(--bg-page-pos, center), var(--bg-page-pos, center);
  background-repeat: no-repeat, no-repeat;
  color: #fff;
  padding: calc(var(--nav-h) + 56px) 0 78px;
  overflow: hidden;
  isolation: isolate;
}
.page-hero .hero-grid-bg { opacity: 0.8; }
.page-hero h1 {
  font-size: clamp(45px, 4vw, 69px);
  letter-spacing: -0.02em;
}
.page-hero p {
  margin-top: 18px;
  max-width: 560px;
  font-size: 16.5px;
  line-height: 1.72;
  color: rgba(255, 255, 255, 0.62);
}
.breadcrumb {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 34px;
  font-size: 13.5px;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.42);
}
.breadcrumb a:hover { color: #fff; }
.breadcrumb i { font-style: normal; color: rgba(255, 255, 255, 0.25); }

/* ---------- 8. 关于 · 图文块 ---------- */
.split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 54px;
  align-items: center;
}
.split--media-left .split-media { order: -1; }

.split-media { position: relative; }
.media-frame {
  position: relative;
  aspect-ratio: 4 / 4.4;
  background-color: #0a1622;
  /* 两层：上层是遮罩（--bg-frame-mask，由 content.js → images.frame 注入），
     下层是照片（--bg-frame-img），没配图时退回原来的斜向深色渐变。
     两者都由 site.js 写到 :root 上，所以换图只改 content.js 一处。 */
  background-image:
    var(--bg-frame-mask, none),
    var(--bg-frame-img, linear-gradient(150deg, var(--ink-soft) 0%, var(--ink) 55%, #0a1622 100%));
  background-size: cover, cover;
  background-position: center, var(--bg-frame-pos, center);
  background-repeat: no-repeat, no-repeat;
  overflow: hidden;
  border-radius: var(--radius);
}
.media-frame::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, 0.055) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
  background-size: 56px 56px;
}
/* 配了照片就撤掉网格与暖色光晕：这两层是为空底准备的，压在照片上会显脏 */
html.has-frame-img .media-frame::before { display: none; }
html.has-frame-img .media-frame::after { opacity: 0.5; }
.media-frame::after {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -160px;
  bottom: -180px;
  background: radial-gradient(circle, rgba(169, 133, 90, 0.28), transparent 66%);
}
.media-frame .media-word {
  position: absolute;
  left: 40px;
  right: 40px;
  top: 40px;
  z-index: 2;
  font-family: var(--font-serif);
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
}
.media-frame img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 1;
}
.media-badge {
  position: absolute;
  left: -20px;
  bottom: 46px;
  z-index: 3;
  background: #fff;
  border: 1px solid var(--line);
  padding: 16px 22px;
  box-shadow: 0 12px 28px rgba(12, 28, 44, 0.1);
}
.media-badge strong {
  display: block;
  font-family: var(--font-serif);
  font-size: 45px;
  line-height: 1;
  color: var(--ink);
}
.media-badge span { display: block; margin-top: 8px; font-size: 13.5px; color: var(--muted); letter-spacing: 0.06em; }

.split-body p {
  color: var(--muted);
  font-size: 16.5px;
  line-height: 1.75;
}
.split-body p + p { margin-top: 20px; }

.point-list { margin-top: 36px; display: grid; gap: 0; }
.point-list li {
  display: flex;
  gap: 16px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
  font-size: 16.5px;
  color: var(--text);
}
.point-list li:last-child { border-bottom: 1px solid var(--line); }
.point-list li b { color: var(--ink); font-weight: 600; }
.point-list .idx {
  font-family: var(--font-serif);
  font-size: 13px;
  color: var(--gold);
  padding-top: 4px;
  min-width: 22px;
}
.point-list p { color: var(--muted); font-size: 15.5px; margin-top: 4px; line-height: 1.68; }

/* ---------- 9. 业务卡片 ---------- */
.biz-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.biz-card {
  padding: 34px 30px 34px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  background: #fff;
  position: relative;
  transition: 0.4s var(--ease);
  display: flex;
  flex-direction: column;
}
.biz-card::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.45s var(--ease);
}
.biz-card:hover { background: #fbfbfc; }
.biz-card:hover::before { transform: scaleX(1); }
.biz-icon {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--gold);
  margin-bottom: 26px;
  transition: 0.4s var(--ease);
}
.biz-icon svg { width: 27px; height: 27px; stroke: currentColor; fill: none; stroke-width: 1.4; }
.biz-card:hover .biz-icon { border-color: var(--gold); background: rgba(169, 133, 90, 0.06); }
.biz-no {
  position: absolute;
  top: 40px;
  right: 38px;
  font-family: var(--font-serif);
  font-size: 14.5px;
  color: #c9d0d8;
  letter-spacing: 0.06em;
}
.biz-card h3 { font-size: 27px; color: var(--ink); }
.biz-card .en {
  font-family: var(--font-serif);
  font-size: 11.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: 9px;
}
.biz-card p {
  margin-top: 16px;
  font-size: 16px;
  line-height: 1.72;
  color: var(--muted);
  flex: 1;
}
.biz-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 24px; }
.biz-tags span {
  font-size: 13px;
  padding: 5px 11px;
  border: 1px solid var(--line);
  color: var(--muted);
  letter-spacing: 0.02em;
  transition: 0.3s var(--ease);
}
.biz-card:hover .biz-tags span { border-color: #d6dce3; }

/* 业务详情条目 */
.biz-detail {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 48px;
  padding: 46px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.biz-detail:first-of-type { border-top: 1px solid var(--line); }
.biz-detail-head .idx {
  font-family: var(--font-serif);
  font-size: 14.5px;
  color: var(--gold);
  letter-spacing: 0.1em;
}
.biz-detail-head h3 {
  margin-top: 14px;
  font-size: clamp(33px, 2.4vw, 42px);
  color: var(--ink);
}
.biz-detail-head .en {
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 10px;
}
.biz-detail-head p { margin-top: 22px; font-size: 16.5px; line-height: 1.75; color: var(--muted); }
.biz-detail-body { display: grid; gap: 0; }
.spec-row {
  display: grid;
  grid-template-columns: 116px 1fr;
  gap: 14px;
  padding: 12px 0;
  border-bottom: 1px dashed var(--line);
  font-size: 16px;
}
.spec-row dt { color: var(--muted); }
.spec-row dd { margin: 0; color: var(--text); }

/* ---------- 10. 新闻 ---------- */
.news-list { display: grid; gap: 0; border-top: 1px solid var(--line); }
.news-item {
  display: grid;
  grid-template-columns: 116px 1fr 140px;
  gap: 26px;
  padding: 28px 0;
  border-bottom: 1px solid var(--line);
  align-items: center;
  transition: 0.35s var(--ease);
}
.news-item:hover { background: #fbfbfc; }
.news-date { font-family: var(--font-serif); color: var(--muted); }
.news-date b { display: block; font-size: 39px; color: var(--ink); font-weight: 400; line-height: 1; }
.news-date span { display: block; margin-top: 7px; font-size: 12.5px; letter-spacing: 0.1em; }
.news-body h3 {
  font-size: 25px;
  color: var(--ink);
  transition: color 0.3s var(--ease);
  line-height: 1.6;
}
.news-item:hover .news-body h3 { color: var(--gold); }
.news-body p { margin-top: 9px; font-size: 15.5px; color: var(--muted); line-height: 1.68; }
.news-meta { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.tag {
  font-size: 12.5px;
  letter-spacing: 0.06em;
  padding: 4px 10px;
  background: var(--bg-soft-2);
  color: var(--ink-3);
}
.news-time { font-size: 13px; color: #9aa7b4; letter-spacing: 0.04em; }

.news-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  transition: 0.4s var(--ease);
  height: 100%;
}
.news-card:hover { border-color: #cfd7e0; box-shadow: 0 12px 28px rgba(12, 28, 44, 0.07); transform: translateY(-2px); }
.news-card-top {
  aspect-ratio: 16 / 9;
  background: linear-gradient(145deg, var(--ink-soft), var(--ink));
  position: relative;
  overflow: hidden;
}
.news-card-top::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(to right, rgba(255, 255, 255, 0.06) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(255, 255, 255, 0.06) 1px, transparent 1px);
  background-size: 40px 40px;
}
.news-card-top .num {
  position: absolute;
  right: 22px;
  bottom: 14px;
  font-family: var(--font-serif);
  font-size: 66px;
  color: rgba(255, 255, 255, 0.14);
  line-height: 1;
}
.news-card-body { padding: 20px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.news-card-body h3 { font-size: 22px; color: var(--ink); line-height: 1.6; }
.news-card-body p { margin-top: 10px; font-size: 15px; color: var(--muted); line-height: 1.68; flex: 1; }
.news-card-foot {
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  color: #9aa7b4;
}

.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 44px;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--line);
}
.filter-btn {
  padding: 9px 16px;
  font-size: 15.5px;
  color: var(--muted);
  background: #fff;
  border: 1px solid var(--line);
  transition: 0.3s var(--ease);
}
.filter-btn:hover { color: var(--ink); border-color: #cfd7e0; }
.filter-btn.active { background: var(--ink); border-color: var(--ink); color: #fff; }

/* 新闻详情 */
.article { max-width: 760px; margin: 0 auto; }
.article-head { text-align: center; padding-bottom: 44px; border-bottom: 1px solid var(--line); }
.article-head h1 { font-size: clamp(36px, 3vw, 51px); color: var(--ink); line-height: 1.45; margin-top: 18px; }
.article-meta {
  display: flex;
  justify-content: center;
  gap: 14px;
  margin-top: 22px;
  font-size: 14.5px;
  color: var(--muted);
}
.article-body { padding: 36px 0; font-size: 19px; line-height: 1.8; color: #33465a; }
.article-body p + p { margin-top: 22px; }
.article-body h2 {
  font-size: 27px;
  color: var(--ink);
  margin: 30px 0 14px;
  padding-left: 14px;
  border-left: 2px solid var(--gold);
}
.article-body blockquote {
  margin: 28px 0;
  padding: 18px 24px;
  background: var(--bg-soft);
  border-left: 2px solid var(--gold);
  color: var(--ink-3);
  font-size: 16.5px;
}
.article-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
}

/* ---------- 11. 时间轴 ---------- */
.timeline { position: relative; display: grid; gap: 0; }
.timeline::before {
  content: "";
  position: absolute;
  left: 92px;
  top: 8px;
  bottom: 8px;
  width: 1px;
  background: var(--line);
}
.tl-item {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 38px;
  padding: 20px 0 24px;
  position: relative;
}
.tl-year {
  font-family: var(--font-serif);
  font-size: 36px;
  color: var(--gold);
  line-height: 1.2;
}
.tl-body { position: relative; padding-left: 0; }
.tl-body::before {
  content: "";
  position: absolute;
  left: -32px;
  top: 12px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #fff;
  border: 1.5px solid var(--gold);
  z-index: 2;
}
.tl-body h4 { font-size: 21px; color: var(--ink); }
.tl-body p { margin-top: 8px; font-size: 16px; color: var(--muted); line-height: 1.7; }

/* ---------- 12. 合作伙伴 ---------- */
.partner-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.partner-cell {
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  padding: 24px 14px;
  display: grid;
  place-items: center;
  text-align: center;
  min-height: 132px;
  transition: 0.35s var(--ease);
}
.partner-cell span {
  font-family: var(--font-serif);
  font-size: 15px;
  letter-spacing: 0.04em;
  color: #8b98a5;
  line-height: 1.6;
  transition: color 0.35s var(--ease);
}
.partner-cell:hover { background: #fbfbfc; }
.partner-cell:hover span { color: var(--ink); }

/* ---------- 13. 使命 / 价值 ---------- */
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); }
.value-cell { background: #fff; padding: 36px 30px; }
.value-cell .num {
  font-family: var(--font-serif);
  font-size: 13px;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.value-cell h3 { margin-top: 20px; font-size: 26px; color: var(--ink); }
.value-cell p { margin-top: 14px; font-size: 16px; line-height: 1.72; color: var(--muted); }

/* ---------- 14. 下载 / 资料 ---------- */
.file-list { border-top: 1px solid var(--line); }
.file-meta-row { display: contents; }
.file-row {
  display: grid;
  grid-template-columns: 46px 1fr 130px 112px 46px;
  gap: 18px;
  align-items: center;
  padding: 18px 0;
  border-bottom: 1px solid var(--line);
  transition: 0.3s var(--ease);
}
.file-row:hover { background: #fbfbfc; }
.file-ico {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  background: var(--bg-soft);
  color: var(--gold);
  font-family: var(--font-serif);
  font-size: 11px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid var(--line);
}
.file-row h4 { font-size: 16.5px; color: var(--ink); line-height: 1.6; }
.file-row .file-desc { margin-top: 5px; font-size: 14.5px; color: var(--muted); }
.file-meta { font-size: 14.5px; color: var(--muted); letter-spacing: 0.02em; }
.file-dl {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--ink);
  transition: 0.3s var(--ease);
  justify-self: end;
}
.file-dl svg { width: 16px; height: 16px; }
.file-row:hover .file-dl { background: var(--ink); border-color: var(--ink); color: #fff; }

/* ---------- 15. 联系 ---------- */
.contact-head { max-width: 720px; }
/* 联系方式：通栏卡片，大屏两列、窄屏单列 */
.contact-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  margin-top: 42px;
}
.contact-item {
  display: grid;
  grid-template-columns: 46px 1fr;
  gap: 16px;
  padding: 26px 28px 28px;
  background: #fff;
  border: 1px solid var(--line);
  transition: 0.3s var(--ease);
}
.contact-item:hover { border-color: var(--line-2, #d9dee4); box-shadow: 0 14px 34px rgba(24, 40, 56, 0.05); }
.contact-item .ci-ico {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  background: var(--bg-soft);
  color: var(--gold);
}
.contact-item .ci-ico svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 1.4; }
.contact-item .ci-body { min-width: 0; }
.contact-item .ci-label {
  display: block;
  font-size: 13.5px;
  color: var(--muted);
  letter-spacing: 0.06em;
}
.contact-item .ci-value {
  display: block;
  margin-top: 8px;
  font-size: 16.5px;
  color: var(--ink);
  line-height: 1.6;
  word-break: break-word;
}
.contact-item a.ci-value { transition: 0.24s var(--ease); }
.contact-item a.ci-value:hover { color: var(--gold); }
.contact-item .ci-value.small {
  margin-top: 5px;
  font-size: 15px;
  color: var(--text);
}


/* ---------- 16. CTA ---------- */
.cta {
  position: relative;
  background-color: var(--ink);
  background-image:
    var(--bg-cta-mask, linear-gradient(115deg, rgba(8, 21, 33, 0.95) 0%, rgba(8, 21, 33, 0.78) 52%, rgba(8, 21, 33, 0.57) 100%)),
    var(--bg-cta-img, none);
  background-size: cover, cover;
  background-position: var(--bg-cta-pos, center), var(--bg-cta-pos, center);
  background-repeat: no-repeat, no-repeat;
  color: #fff;
  padding: 64px 0;
  overflow: hidden;
  isolation: isolate;
}
.cta .container { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 34px; flex-wrap: wrap; }
.cta h2 { font-size: clamp(36px, 3vw, 51px); letter-spacing: -0.02em; }
.cta p { margin-top: 14px; font-size: 16.5px; color: rgba(255, 255, 255, 0.6); max-width: 500px; }
.cta-actions { display: flex; gap: 14px; flex-wrap: wrap; }

/* ---------- 17. 页脚 ---------- */
/* 页脚按「信息密度优先」重排：列宽收紧、行距压缩，避免出现整屏大留白 */
.site-footer {
  background-color: #081521;
  background-image:
    var(--bg-footer-mask, none),
    var(--bg-footer-img, none);
  background-size: cover, cover;
  background-position: var(--bg-footer-pos, center), var(--bg-footer-pos, center);
  background-repeat: no-repeat, no-repeat;
  color: rgba(255, 255, 255, 0.62);
  padding: 44px 0 0;
  font-size: 14px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.25fr 0.66fr 0.78fr 1.42fr;
  gap: 44px;
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.footer-brand .brand-mark { background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.12); }
.footer-brand .brand-cn { color: #fff; }
.footer-brand .brand-en { color: rgba(255, 255, 255, 0.36); }
.footer-brand p { margin-top: 16px; font-size: 13px; line-height: 1.7; max-width: 276px; color: rgba(255, 255, 255, 0.45); }
.footer-col h5 {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.38);
  font-family: var(--font-serif);
  font-weight: 400;
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.footer-col li + li { margin-top: 9px; }
.footer-col a { font-size: 13.5px; color: rgba(255, 255, 255, 0.7); transition: 0.28s var(--ease); }
.footer-col a:hover { color: var(--gold-2); }
.footer-contact li { display: flex; gap: 9px; font-size: 13px; line-height: 1.62; color: rgba(255, 255, 255, 0.6); }
.footer-contact li + li { margin-top: 11px; }
.footer-contact svg { width: 13px; height: 13px; flex: 0 0 13px; margin-top: 4px; stroke: var(--gold); fill: none; stroke-width: 1.4; }
.footer-contact a { word-break: break-all; }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  padding: 16px 0 18px;
  font-size: 11.5px;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.3);
  flex-wrap: wrap;
}
.footer-bottom a:hover { color: rgba(255, 255, 255, 0.7); }
.footer-links { display: flex; gap: 18px; }

/* ---------- 18. 动效 ---------- */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
  will-change: opacity, transform;
}
.reveal.is-in { opacity: 1; transform: none; }
.reveal.d1 { transition-delay: 0.08s; }
.reveal.d2 { transition-delay: 0.16s; }
.reveal.d3 { transition-delay: 0.24s; }
.reveal.d4 { transition-delay: 0.32s; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .hero-scroll i { animation: none; }
}

/* ---------- 19. 响应式 ---------- */
@media (max-width: 1080px) {
  .nav-links { display: none; }
  .nav-tel { display: none; }
  .nav-toggle { display: block; }
  .nav-cta .btn { display: none; }
  .hero-inner { grid-template-columns: 1fr; gap: 46px; align-items: start; }
  .hero-side { border-left: 0; padding-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.14); padding-top: 34px; grid-template-columns: 1fr 1fr; }
  .split { grid-template-columns: 1fr; gap: 34px; }
  .split--media-left .split-media { order: 0; }
  .media-frame { aspect-ratio: 16 / 10; }
  .biz-grid { grid-template-columns: repeat(2, 1fr); }
  .biz-detail { grid-template-columns: 1fr; gap: 24px; padding: 34px 0; }
  .contact-list { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 30px; }
  .partner-grid { grid-template-columns: repeat(3, 1fr); }
  .value-grid { grid-template-columns: 1fr; }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .timeline::before { left: 92px; }
  .tl-item { grid-template-columns: 94px 1fr; gap: 32px; }
  .tl-body::before { left: -28px; }
}

@media (max-width: 720px) {
  body { font-size: 15.5px; }
  .container { padding: 0 16px; }
  .section { padding: 50px 0; }
  .section--tight { padding: 38px 0; }
  :root { --nav-h: 66px; }
  .brand-mark { width: 34px; height: 34px; flex-basis: 34px; font-size: 15px; }
  .brand-cn { font-size: 15px; letter-spacing: 0.04em; }
  .brand-en { font-size: 10px; letter-spacing: 0.1em; }
  .hero { padding-top: calc(var(--nav-h) + 60px); }
  .hero h1 { font-size: 38px; }
  .hero-lead { font-size: 15px; }
  .hero-side { grid-template-columns: 1fr; gap: 14px; }
  .hero-actions .btn { flex: 1; }
  .stats-bar .container { grid-template-columns: 1fr 1fr; }
  .stat { padding: 18px 0 20px 16px; }
  .stat:nth-child(odd) { border-left: 0; padding-left: 0; }
  .stat:nth-child(n + 3) { border-top: 1px solid rgba(255, 255, 255, 0.1); }
  .section-head { margin-bottom: 30px; }
  .biz-grid { grid-template-columns: 1fr; }
  .biz-card { padding: 28px 20px; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .news-item { grid-template-columns: 1fr; gap: 12px; padding: 20px 0; }
  .news-date { display: flex; align-items: baseline; gap: 10px; }
  .news-date b { font-size: 20px; }
  .news-date span { margin-top: 0; }
  .news-item .link-arrow { display: none; }
  .partner-grid { grid-template-columns: repeat(2, 1fr); }
  .file-row {
    grid-template-columns: 52px 1fr 48px;
    grid-template-rows: auto auto;
    gap: 8px 14px;
    padding: 16px 0;
  }
  .file-row .file-ico { grid-column: 1; grid-row: 1 / 3; align-self: start; }
  .file-row > div:nth-child(2) { grid-column: 2; grid-row: 1; }
  .file-meta-row {
    display: flex;
    align-items: center;
    gap: 16px;
    grid-column: 2;
    grid-row: 2;
  }
  .file-meta-row .file-meta { font-size: 13.5px; }
  .file-row .file-dl { grid-column: 3; grid-row: 1 / 3; }
  .footer-top { grid-template-columns: 1fr; gap: 26px; }
  .contact-item { padding: 22px 20px 24px; gap: 14px; grid-template-columns: 42px 1fr; }
  .contact-item .ci-ico { width: 42px; height: 42px; }
  .cta .container { flex-direction: column; align-items: flex-start; }
  .page-hero { padding-bottom: 40px; }
  .article-body { font-size: 15.5px; }
  .spec-row { grid-template-columns: 1fr; gap: 4px; }
  .media-badge { left: 0; padding: 12px 16px; }
  .timeline::before { left: 62px; }
  .tl-item { grid-template-columns: 64px 1fr; gap: 26px; }
  .tl-body::before { left: -24px; }
  .tl-year { font-size: 20px; }
}

/* ---------- 20. 组件补充 ---------- */
.u-mt { margin-top: 34px; }

.section-title .light { margin-left: 0.55em; }
@media (max-width: 900px) {
  .section-title .light { display: block; margin-left: 0; margin-top: 8px; }
}

.section-head--row {
  max-width: none;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
}
.section-head--row .link-arrow { margin-bottom: 8px; flex: 0 0 auto; }

.page-hero--slim { padding: calc(var(--nav-h) + 24px) 0 24px; }

/* 服务流程 */
.flow {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.flow-item { background: #fff; padding: 30px 26px 32px; position: relative; }
.flow-no {
  font-family: var(--font-serif);
  font-size: 12.5px;
  letter-spacing: 0.16em;
  color: var(--gold);
}
.flow-item h4 { margin-top: 18px; font-size: 23px; color: var(--ink); }
.flow-item p { margin-top: 11px; font-size: 15.5px; line-height: 1.7; color: var(--muted); }

/* 提示框 */
.note-box {
  margin-top: 52px;
  padding: 24px 28px;
  background: var(--bg-soft);
  border-left: 2px solid var(--gold);
}
.note-box h4 { font-size: 16.5px; color: var(--ink); }
.note-box p { margin-top: 12px; font-size: 15.5px; line-height: 1.72; color: var(--muted); }
.note-box a { color: var(--ink); border-bottom: 1px solid var(--gold); }

/* 内容待上传占位（数据填回后由脚本自动移除） */
.empty-note {
  padding: 38px 20px;
  text-align: center;
  border: 1px dashed rgba(12, 28, 44, 0.16);
  background: #fff;
}
.empty-note p {
  font-size: 15.5px;
  line-height: 1.7;
  letter-spacing: 0.02em;
  color: var(--muted);
}
.empty-note .btn { margin-top: 22px; }
.news-list .empty-note,
.file-list .empty-note { border: 0; border-bottom: 1px solid var(--line); }
.value-grid .empty-note,
.timeline .empty-note { grid-column: 1 / -1; }
.timeline.is-empty::before { display: none; }


/* 联系方式文本块 */
.ci-body { display: block; }
.ci-label { display: block; font-size: 13.5px; color: var(--muted); letter-spacing: 0.06em; }
.ci-value {
  display: block;
  margin-top: 7px;
  font-size: 16.5px;
  color: var(--ink);
  line-height: 1.6;
}
a.ci-value:hover { color: var(--gold); }
.ci-value.small { margin-top: 5px; font-size: 15px; color: var(--text); }

@media (max-width: 1080px) {
  .flow { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 900px) {
  /* 中等宽度下标题右侧的链接挤在描述旁，改为上下堆叠 */
  .section-head--row { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media (max-width: 720px) {
  .flow { grid-template-columns: 1fr; }
  .note-box { padding: 18px 16px; }
}

/* ---------- 21. 图标尺寸兜底 ---------- */
.news-card-foot svg,
.partner-cell svg,
.file-row svg,
.biz-card svg,
.hero-side svg { width: 15px; height: 15px; flex: 0 0 auto; }
.biz-card .biz-icon svg { width: 27px; height: 27px; }

@media (max-width: 720px) {
  .media-frame .media-word { display: none; }
  .media-badge { bottom: 20px; }
}

/* 中文断行优化（支持的浏览器生效，避免出现孤字换行） */
.hero-lead,
.page-hero p,
.section-desc,
.split-body p,
.article-body p { text-wrap: pretty; }

/* =========================================================
   22. 首页改版组件（首屏品牌区 / 业务亮点 / 案例轮播 / 双通道入口）
   ========================================================= */

/* ---------- 22.1 首屏主视觉 ---------- */
.hero-brand { display: flex; flex-direction: column; gap: 12px; }
.hero-brand-en {
  font-family: var(--font-serif);
  font-size: 12.5px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold-2);
}
.hero-brand-cn {
  font-size: clamp(33px, 2.5vw, 45px);
  font-weight: 600;
  letter-spacing: 0.07em;
  color: #fff;
}
.hero-main h1 {
  margin-top: 28px;
  font-size: clamp(45px, 4.2vw, 81px);
  line-height: 1.26;
  letter-spacing: -0.02em;
  font-weight: 600;
  color: #fff;
}
.hero-main .hero-actions { margin-top: 40px; }

/* 愿景标语条 */
.hero-vision {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding: 20px 0 24px;
}
.hero-vision .container {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.hero-vision-tag {
  font-size: 12.5px;
  letter-spacing: 0.18em;
  color: var(--gold-2);
  border: 1px solid rgba(195, 160, 116, 0.42);
  padding: 4px 11px;
  flex: 0 0 auto;
}
.hero-vision p {
  font-size: 16.5px;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.82);
}

/* ---------- 22.2 业务亮点标签 ---------- */
.biz-grid { grid-template-columns: repeat(4, 1fr); }
.biz-card { padding: 32px 24px 28px; }
.biz-no { top: 34px; right: 30px; }
.biz-card h3 { font-size: 25px; }
.biz-card .en {
  flex: 0 0 auto;
  height: 40px;
  font-size: 10.5px;
  line-height: 20px;
  letter-spacing: 0.08em;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.biz-card p { font-size: 15.5px; }
.biz-tags { gap: 6px; }
.biz-tags span { font-size: 12.5px; padding: 4px 9px; letter-spacing: 0; white-space: nowrap; }
.biz-highlights {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px dashed var(--line);
}
.biz-highlight {
  font-size: 13.5px;
  line-height: 1.5;
  padding: 5px 10px;
  color: #8a6a42;
  background: rgba(169, 133, 90, 0.09);
  border-left: 2px solid var(--gold);
}
.biz-card:hover .biz-highlight { background: rgba(169, 133, 90, 0.15); }

/* ---------- 22.3 案例轮播 ---------- */
.case-nav { display: flex; gap: 10px; margin-bottom: 8px; flex: 0 0 auto; }
.case-btn {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  background: #fff;
  color: var(--ink);
  cursor: pointer;
  transition: 0.32s var(--ease);
}
.case-btn svg { width: 17px; height: 17px; }
.case-btn:hover { background: var(--ink); border-color: var(--ink); color: #fff; }

/* 每屏一张：横向位移在脚本里做，容器只负责裁切 */
.case-viewport {
  --case-gap: 0px;
  overflow: hidden;
  touch-action: pan-y;
}
.case-track {
  display: flex;
  gap: var(--case-gap);
  will-change: transform;
  backface-visibility: hidden;
}
.case-card {
  flex: 0 0 100%;
  min-width: 0;
  background: #fff;
  border: 1px solid var(--line);
  padding: 30px 32px 28px;
  display: flex;
  flex-direction: column;
}
.case-main { display: flex; flex-direction: column; align-items: flex-start; }
.case-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.case-no {
  font-family: var(--font-serif);
  font-size: 12.5px;
  letter-spacing: 0.18em;
  color: var(--gold);
}
.case-note {
  font-size: 12.5px;
  color: var(--muted);
  border: 1px solid var(--line);
  padding: 3px 9px;
  white-space: nowrap;
}
.case-school { margin-top: 22px; font-size: 28px; line-height: 1.55; color: var(--ink); }
.case-sub { margin-top: 8px; font-size: 15px; color: var(--muted); }
/* 亮点关键词：与业务卡片的金色侧条同一套语言 */
.case-points {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}
.case-points li {
  max-width: 100%;
  font-size: 13.5px;
  line-height: 1.5;
  padding: 5px 11px;
  color: #8a6a42;
  background: rgba(169, 133, 90, 0.08);
  border-left: 2px solid var(--gold);
}
.case-specs { margin: 20px 0 0; border-top: 1px solid var(--line); }
.case-specs > div {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: 16px;
  padding: 13px 0;
  border-bottom: 1px solid var(--line);
}
.case-specs dt { font-size: 13.5px; letter-spacing: 0.05em; color: var(--muted); }
.case-specs dd { margin: 0; font-size: 16px; color: var(--ink); line-height: 1.7; }
.case-link {
  margin-top: 26px;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  padding-bottom: 4px;
  font-size: 15px;
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
  transition: 0.3s var(--ease);
}
.case-link svg { width: 14px; height: 14px; transition: transform 0.3s var(--ease); }
.case-link:hover { color: var(--gold); }
.case-link:hover svg { transform: translateX(4px); }

/* 单张占满整行时改为左文右表，避免长行文字与大片留白 */
@media (min-width: 981px) {
  .case-card {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
    column-gap: 30px;
    padding: 32px 36px 32px;
  }
  .case-main { height: 100%; }
  .case-points { margin-bottom: 26px; }
  .case-school { font-size: 33px; }
  .case-sub { font-size: 15.5px; }
  .case-link { margin-top: auto; }
  .case-specs {
    margin: 0;
    border-top: 0;
    border-left: 1px solid var(--line);
    padding-left: 48px;
  }
}


.case-dots { display: flex; gap: 8px; margin-top: 28px; }
.case-dot {
  width: 26px;
  height: 3px;
  padding: 0;
  border: 0;
  background: #d3d9e0;
  cursor: pointer;
  transition: 0.35s var(--ease);
}
.case-dot.is-on { width: 44px; background: var(--gold); }

/* ---------- 22.4 双通道入口 ---------- */
.channels { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.channel-card {
  display: flex;
  flex-direction: column;
  padding: 34px 32px 32px;
  background: #fff;
  border: 1px solid var(--line);
}
.channel-card--ink { background: var(--ink); border-color: var(--ink); color: #fff; }
.channel-tag { font-size: 12.5px; letter-spacing: 0.16em; color: var(--gold); }
.channel-card h3 { margin-top: 16px; font-size: 36px; color: var(--ink); }
.channel-card--ink h3 { color: #fff; }
.channel-card > p { margin-top: 14px; font-size: 16px; line-height: 1.72; color: var(--muted); }
.channel-card--ink > p { color: rgba(255, 255, 255, 0.68); }
.channel-points { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 11px; }
.channel-points li { position: relative; padding-left: 18px; font-size: 15px; color: var(--text); }
.channel-points li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 7px;
  height: 1px;
  background: var(--gold);
}
.channel-card--ink .channel-points li { color: rgba(255, 255, 255, 0.82); }
.channel-card .btn { margin-top: 30px; align-self: flex-start; }

/* ---------- 22.5 快捷入口 ---------- */
.quick-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 26px; }
.quick-link {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--line);
  transition: 0.32s var(--ease);
}
.quick-link:hover { border-color: var(--gold); background: #fbfaf8; }
.quick-link-ico {
  width: 42px;
  height: 42px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  color: var(--gold);
  transition: 0.32s var(--ease);
}
.quick-link-ico svg { width: 18px; height: 18px; }
.quick-link:hover .quick-link-ico { border-color: var(--gold); }
.quick-link-body { display: flex; flex-direction: column; gap: 5px; flex: 1; min-width: 0; }
.quick-link-title {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 16.5px;
  color: var(--ink);
}
.quick-link-title em {
  font-style: normal;
  font-family: var(--font-serif);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.quick-link-desc { font-size: 13.5px; line-height: 1.7; color: var(--muted); }
.quick-link-arrow { color: #c3cad3; transition: 0.3s var(--ease); flex: 0 0 auto; }
.quick-link-arrow svg { width: 15px; height: 15px; }
.quick-link:hover .quick-link-arrow { color: var(--gold); transform: translateX(3px); }

/* ---------- 22.6 响应式 ---------- */
@media (max-width: 1080px) {
  .biz-grid { grid-template-columns: repeat(2, 1fr); }
  .quick-links { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .channels { grid-template-columns: 1fr; }
  .quick-links { grid-template-columns: 1fr; }
  .case-card { flex: 0 0 100%; }
}
@media (max-width: 720px) {
  .hero-inner { padding-bottom: 44px; }
  .hero-brand-en { font-size: 11.5px; letter-spacing: 0.18em; }
  .hero-main h1 { margin-top: 18px; font-size: clamp(31px, 8.4vw, 38px); }
  /* 窄屏不再强制换行，交给 text-wrap: balance 均分，避免最后一行只剩一个字 */
  .hero-main h1 br { display: none; }
  .hero-main .hero-actions { margin-top: 30px; }
  .hero-vision { padding: 16px 0 18px; }
  .hero-vision .container { flex-direction: column; align-items: flex-start; gap: 12px; }
  .hero-vision p { font-size: 14px; }

  .stats-bar .container { grid-template-columns: 1fr; }
  .stat { padding: 16px 0; border-left: 0; border-top: 1px solid rgba(255, 255, 255, 0.1); }
  .stat:first-child { border-top: 0; padding-top: 24px; }
  .stat-num { font-size: 36px; }
  .stat-label { margin-top: 8px; }

  .biz-grid { grid-template-columns: 1fr; }
  .biz-card { padding: 26px 18px 22px; }
  .biz-no { top: 28px; right: 24px; }

  .case-nav { margin-top: 4px; }
  .case-card { flex: 0 0 100%; padding: 22px 18px 20px; }
  .case-school { font-size: 20px; }
  .case-points { gap: 6px; margin: 12px 0 0; }
  .case-points li { font-size: 13px; padding: 4px 9px; }
  .case-specs > div { grid-template-columns: 96px 1fr; gap: 12px; padding: 11px 0; }
  .case-specs dd { font-size: 15px; }

  .channel-card { padding: 26px 20px 24px; }
  .channel-card h3 { font-size: 24px; }
  .quick-link { padding: 14px 14px; gap: 13px; }
}

/* =========================================================
   23. 品牌标识（官方 Logo 图片）
   ========================================================= */
.brand-logo {
  display: block;
  height: 38px;
  width: auto;
  max-width: 100%;
}
.footer-brand .brand-logo { height: 32px; }
.hero-brand { gap: 0; }
.hero-logo {
  display: block;
  width: 260px;
  height: auto;
  max-width: 100%;
}

@media (max-width: 1080px) {
  .brand-logo { height: 34px; }
  .footer-brand .brand-logo { height: 30px; }
}
@media (max-width: 720px) {
  .brand-logo { height: 30px; }
  .footer-brand .brand-logo { height: 28px; }
  .hero-logo { width: 216px; }
}

/* 案例只有一屏时不再显示指示点 */
.case-dots:empty { display: none; }

/* =========================================================
   24. 关于我们页组件（分支机构 / 核心资源 / 服务清单）
   ========================================================= */

/* 24.1 分支机构与业务覆盖 */
.branch-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.branch-item {
  background: #fff;
  padding: 24px 24px 26px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.branch-no {
  font-family: var(--font-serif);
  font-size: 12.5px;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.branch-item b { font-size: 26px; font-weight: 600; color: var(--ink); letter-spacing: 0.04em; }
.branch-en {
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

/* 24.2 核心资源数据与国别标签 */
.about-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.fact-item { padding: 28px 0 28px 34px; border-left: 1px solid var(--line); }
.fact-item:first-child { padding-left: 0; border-left: 0; }
.fact-num {
  font-family: var(--font-serif);
  font-size: 69px;
  line-height: 1;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.fact-num small { font-size: 0.42em; margin-left: 5px; color: var(--gold); letter-spacing: 0; }
.fact-label { margin-top: 14px; font-size: 15px; color: var(--muted); letter-spacing: 0.02em; }

.country-list {
  margin-top: 40px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.country-list li {
  padding: 10px 16px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: 15px;
  color: var(--text);
  letter-spacing: 0.04em;
}

/* 24.3 高校国际化提升服务清单 */
.svc-feature {
  display: grid;
  grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
  align-items: center;
  gap: 30px;
  padding: 28px 32px;
  background: var(--bg-soft);
  border-left: 2px solid var(--gold);
  margin-bottom: 26px;
}
.svc-no {
  display: block;
  margin-bottom: 12px;
  font-family: var(--font-serif);
  font-size: 12.5px;
  letter-spacing: 0.16em;
  color: var(--gold);
}
.svc-feature-head h4 { font-size: 27px; color: var(--ink); letter-spacing: 0.02em; }
.svc-tags {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}
.svc-tags li {
  padding: 13px 14px;
  background: #fff;
  border: 1px solid var(--line);
  font-size: 15px;
  line-height: 1.6;
  color: var(--text);
  letter-spacing: 0.02em;
}

/* 24.4 响应式 */
@media (max-width: 1080px) {
  .branch-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .svc-feature {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    padding: 24px 26px;
  }
}
@media (max-width: 720px) {
  .about-facts { grid-template-columns: 1fr; }
  .fact-item { padding: 18px 0; border-left: 0; }
  .fact-item + .fact-item { border-top: 1px solid var(--line); }
  .fact-num { font-size: 44px; }
  .branch-item { padding: 16px 14px 16px; gap: 7px; }
  .branch-item b { font-size: 19px; }
  .branch-en { font-size: 11px; letter-spacing: 0.06em; }
  .country-list li { padding: 9px 12px; font-size: 14.5px; }
  .svc-feature { padding: 20px 16px; gap: 14px; margin-bottom: 20px; }
  .svc-feature-head h4 { font-size: 20px; }
  .svc-tags { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .svc-tags li { padding: 11px 14px; font-size: 14.5px; }
  [data-render="about-services"] .flow-item { padding: 18px 16px 20px; }
  [data-render="about-services"] .flow-item h4 { margin-top: 14px; font-size: 21px; }
}

/* =========================================================
   25. 业务介绍页 · 高校国际化提升
   ========================================================= */

/* 25.1 板块定位与价值主张 */
.intl-head { max-width: 880px; }
.intl-title {
  font-size: clamp(42px, 3.2vw, 63px);
  line-height: 1.28;
  color: var(--ink);
  letter-spacing: -0.02em;
}
.intl-title em {
  display: block;
  margin-top: 16px;
  font-style: normal;
  font-size: 0.55em;
  font-weight: 400;
  color: var(--gold);
  letter-spacing: 0.01em;
}
.intl-desc {
  margin-top: 28px;
  max-width: 720px;
  font-size: 16.5px;
  line-height: 1.78;
  color: var(--muted);
}
.intl-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 58px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.intl-value { padding: 26px 0 26px 34px; border-left: 1px solid var(--line); }
.intl-value:first-child { padding-left: 0; border-left: 0; }
.intl-value .v-no {
  font-family: var(--font-serif);
  font-size: 12.5px;
  letter-spacing: 0.16em;
  color: var(--gold);
}
.intl-value b { display: block; margin-top: 12px; font-size: 26px; color: var(--ink); }
.intl-value p { margin-top: 8px; font-size: 15px; line-height: 1.68; color: var(--muted); }

/* 25.2 五大模块导航卡片 */
.mod-nav {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.mod-nav-item {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 24px 20px 20px;
  background: #fff;
  transition: background 0.35s var(--ease);
}
.mod-nav-item::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 2px;
  background: var(--gold);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.4s var(--ease);
}
.mod-nav-item:hover { background: #fbfbfc; }
.mod-nav-item:hover::before { transform: scaleX(1); }
.mod-nav-icon {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  margin-bottom: 22px;
  border: 1px solid var(--line);
  color: var(--gold);
  transition: 0.4s var(--ease);
}
.mod-nav-icon svg { width: 21px; height: 21px; stroke: currentColor; fill: none; stroke-width: 1.4; }
.mod-nav-item:hover .mod-nav-icon { border-color: var(--gold); background: rgba(169, 133, 90, 0.06); }
.mod-nav-no {
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: #c9d0d8;
}
.mod-nav-item h4 { margin-top: 8px; font-size: 19px; line-height: 1.55; color: var(--ink); }
.mod-nav-item p { flex: 1; margin-top: 10px; font-size: 13.5px; line-height: 1.65; color: var(--muted); }
.mod-nav-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
  font-size: 13px;
  color: var(--gold);
}
.mod-nav-more svg { width: 14px; height: 14px; stroke: currentColor; fill: none; stroke-width: 1.6; transition: transform 0.3s var(--ease); }
.mod-nav-item:hover .mod-nav-more svg { transform: translateX(4px); }

/* 25.3 模块区块通用 */
.mod {
  padding: 72px 0;
  border-top: 1px solid var(--line);
}
.mod--soft { background: var(--bg-soft); }
.mod-head {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  column-gap: 14px;
}
.mod-no {
  grid-column: 1;
  grid-row: 1 / span 3;
  padding-top: 8px;
  font-family: var(--font-serif);
  font-size: 13px;
  letter-spacing: 0.16em;
  color: var(--gold);
}
.mod-head h3 { grid-column: 2; font-size: clamp(36px, 2.6vw, 48px); color: var(--ink); }
.mod-en {
  display: block;
  grid-column: 2;
  margin-top: 10px;
  font-family: var(--font-serif);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.mod-lead {
  grid-column: 2;
  margin-top: 24px;
  max-width: 720px;
  font-size: 16.5px;
  line-height: 1.75;
  color: var(--muted);
}
.mod-sub { font-size: 16.5px; color: var(--ink); letter-spacing: 0.03em; }

/* 25.4 办学层次手风琴（模块一） */
.level-acc {
  margin-top: 54px;
  border-top: 1px solid var(--line);
}
.level-item { border-bottom: 1px solid var(--line); }
.level-sum {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 16px 10px;
  background: transparent;
  border: 0;
  text-align: left;
  color: var(--ink);
  transition: background 0.3s var(--ease);
}
.level-sum:hover,
.level-item.is-open .level-sum { background: var(--bg-soft); }
.level-sum:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
.level-idx {
  flex: 0 0 auto;
  width: 24px;
  padding-top: 2px;
  align-self: flex-start;
  font-family: var(--font-serif);
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--gold-2);
}
.level-main {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
}
.level-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 11px;
}
.level-tag {
  flex: 0 0 auto;
  padding: 2px 9px;
  border: 1px solid rgba(169, 133, 90, 0.36);
  font-size: 12.5px;
  letter-spacing: 0.12em;
  color: var(--gold);
  background: #fff;
}
.level-badge { font-size: 29px; font-weight: 600; color: var(--ink); letter-spacing: 0.02em; }
.level-sub {
  font-size: 14.5px;
  line-height: 1.65;
  color: var(--muted);
  letter-spacing: 0.01em;
}
.level-tail {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-left: auto;
  padding-left: 24px;
}
.level-chips { display: flex; align-items: center; gap: 8px; }
.level-chip {
  padding: 4px 11px;
  border: 1px solid var(--line);
  background: #fff;
  font-size: 12.5px;
  line-height: 1.5;
  letter-spacing: 0.02em;
  color: var(--muted);
  white-space: nowrap;
}
.level-cue {
  position: relative;
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
}
.level-cue::before,
.level-cue::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 15px;
  height: 1.5px;
  background: var(--gold);
  transition: transform 0.4s var(--ease), opacity 0.3s var(--ease);
}
.level-cue::before { transform: translateY(-50%); }
.level-cue::after { transform: translateY(-50%) rotate(90deg); }
.level-item.is-open .level-cue::after { transform: translateY(-50%) rotate(0deg); opacity: 0; }
.level-body {
  overflow: hidden;
  max-height: 0;
  background: var(--bg-soft);
  transition: max-height 0.42s var(--ease);
}
.level-body .level-rows { margin: 0; padding: 12px 24px 18px 50px; }
.level-rows > div {
  display: grid;
  grid-template-columns: 88px minmax(0, 1fr);
  gap: 12px;
  padding: 13px 0;
  border-top: 1px solid var(--line);
}
.level-rows > div:first-child { border-top: 0; }
.level-rows dt { font-size: 13.5px; letter-spacing: 0.04em; color: var(--gold); }
.level-rows dd { margin: 0; font-size: 15px; line-height: 1.7; color: var(--text); }

/* 25.5 办学层次矩阵表 */
.mod-matrix { margin-top: 56px; }
.table-wrap {
  margin-top: 18px;
  overflow-x: auto;
  border: 1px solid var(--line);
  background: #fff;
  -webkit-overflow-scrolling: touch;
}
.mod-table { width: 100%; min-width: 680px; border-collapse: collapse; }
.mod-table th,
.mod-table td {
  padding: 12px 16px;
  text-align: left;
  font-size: 15px;
  line-height: 1.6;
  border-bottom: 1px solid var(--line);
}
.mod-table thead th {
  background: var(--bg-soft-2);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--muted);
  white-space: nowrap;
}
.mod-table tbody th { font-weight: 600; color: var(--ink); white-space: nowrap; }
.mod-table tbody td { color: var(--text); }
.mod-table tbody tr:last-child th,
.mod-table tbody tr:last-child td { border-bottom: 0; }
.mod--soft .table-wrap { border-color: var(--line); }

/* 25.6 证书类型科普（折叠面板） */
.mod-cert { margin-top: 34px; }
.cert-list { margin-top: 16px; border-top: 1px solid var(--line); }
.cert-item { border-bottom: 1px solid var(--line); }
.cert-item summary {
  position: relative;
  padding: 14px 34px 14px 0;
  list-style: none;
  cursor: pointer;
  font-size: 15.5px;
  color: var(--ink);
  transition: color 0.3s var(--ease);
}
.cert-item summary::-webkit-details-marker { display: none; }
.cert-item summary:hover { color: var(--gold); }
.cert-item summary::after {
  content: "+";
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 24px;
  line-height: 1;
  color: var(--gold);
}
.cert-item[open] summary::after { content: "−"; }
.cert-item p { padding: 0 34px 16px 0; font-size: 15px; line-height: 1.72; color: var(--muted); }

/* 25.7 栏目组（服务内容 / 客户价值） */
.mod-groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1px;
  margin-top: 52px;
  background: var(--line);
  border: 1px solid var(--line);
}
.mod-groups--2 { grid-template-columns: 1.42fr minmax(0, 1fr); }
.mod-groups--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mod-group { padding: 28px 28px 26px; background: #fff; }
.mod-group--value { background: var(--bg-soft); }
.mod--soft .mod-group { background: var(--white); }
.mod--soft .mod-group--value { background: var(--bg-soft-2); }
.mod-group > h4 {
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--gold);
}
.mod-list { margin-top: 20px; }
.mod-list li { padding: 13px 0; border-top: 1px solid var(--line); font-size: 15.5px; line-height: 1.7; }
.mod-list li:first-child { border-top: 0; padding-top: 0; }
.mod-list li b { display: block; font-weight: 600; color: var(--ink); }
.mod-list li span { display: block; font-size: 15px; color: var(--muted); }
.mod-list li b + span { margin-top: 4px; }

/* 两栏模块：服务内容排成 2×2，避免与「客户价值」栏高度差过大 */
.mod-groups--2 > .mod-group:first-child .mod-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
  row-gap: 16px;
}
.mod-groups--2 > .mod-group:first-child .mod-list li { padding: 0; border-top: 0; }

/* 25.8 五步服务流程 */
.step-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
}
.step-cell { padding: 26px 20px 28px; background: #fff; }
.step-no {
  font-family: var(--font-serif);
  font-size: 12.5px;
  letter-spacing: 0.16em;
  color: var(--gold);
}
.step-cell h4 { margin-top: 16px; font-size: 21px; color: var(--ink); }
.step-cell p { margin-top: 10px; font-size: 14.5px; line-height: 1.68; color: var(--muted); }

/* 25.9 其他业务板块（3 张卡，宽屏时按 3 列而不是 4 列） */
.biz-details { margin-top: 64px; }
@media (min-width: 1081px) {
  .biz-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* 25.10 响应式 */
@media (max-width: 1080px) {
  .mod-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mod-nav-item:last-child:nth-child(odd) { grid-column: span 2; }
  .step-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .step-cell:last-child:nth-child(odd) { grid-column: span 2; }
  .mod { padding: 56px 0; }
}
@media (max-width: 900px) {
  .level-chips { display: none; }
  .intl-values { grid-template-columns: minmax(0, 1fr); }
  .intl-value { padding: 18px 0; border-left: 0; }
  .intl-value + .intl-value { border-top: 1px solid var(--line); }
  .intl-values { margin-top: 44px; }
}
@media (max-width: 720px) {
  .mod-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mod-nav-item { padding: 16px 14px 16px; }
  .mod-nav-item h4 { font-size: 13.5px; }
  .mod-nav-item p { font-size: 12.5px; }
  .mod-nav-icon { width: 36px; height: 36px; margin-bottom: 16px; }
  .mod-nav-icon svg { width: 18px; height: 18px; }
  .step-grid { grid-template-columns: minmax(0, 1fr); }
  .step-cell:last-child:nth-child(odd) { grid-column: auto; }
  .mod { padding: 48px 0; }
  .mod-head { display: block; }
  .mod-no { display: inline-block; padding-top: 0; margin-bottom: 12px; }
  .mod-lead { margin-top: 14px; font-size: 15px; }
  .level-acc { margin-top: 38px; }
  .level-sum { gap: 12px; padding: 14px 6px; }
  .level-idx { display: none; }
  .level-badge { font-size: 19px; }
  .level-title { gap: 9px; }
  .level-sub { font-size: 12.5px; line-height: 1.62; }
  .level-tail { padding-left: 12px; }
  .level-body .level-rows { padding: 2px 14px 16px; }
  .level-rows > div { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; }
  .mod-matrix { margin-top: 40px; }
  .mod-table { min-width: 0; }
  .mod-table thead { display: none; }
  .mod-table tbody,
  .mod-table tr { display: block; }
  .mod-table tr { padding: 8px 0; border-bottom: 1px solid var(--line); }
  .mod-table tbody tr:last-child { border-bottom: 0; }
  .mod-table th,
  .mod-table td {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 12px;
    padding: 8px 14px;
    border: 0;
    font-size: 13.5px;
    line-height: 1.62;
    white-space: normal;
  }
  .mod-table th::before,
  .mod-table td::before {
    content: attr(data-label);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: 0.04em;
    color: var(--muted);
  }
  .mod-table tbody th { color: var(--ink); }
  .mod-groups--2,
  .mod-groups--3 { grid-template-columns: minmax(0, 1fr); }
  .mod-groups--2 > .mod-group:first-child .mod-list { grid-template-columns: minmax(0, 1fr); row-gap: 0; }
  .mod-groups--2 > .mod-group:first-child .mod-list li { padding: 13px 0; border-top: 1px solid var(--line); }
  .mod-groups--2 > .mod-group:first-child .mod-list li:first-child { padding-top: 0; border-top: 0; }
  .mod-groups { margin-top: 38px; }
  .mod-group { padding: 20px 16px 18px; }
  .cert-item summary { padding: 15px 30px 15px 0; font-size: 15px; }
  .cert-item p { padding-right: 26px; }
  .biz-details { margin-top: 44px; }
}

/* 小屏单列：字号放大后两列卡片会把标题挤断词 */
@media (max-width: 560px) {
  .mod-nav { grid-template-columns: minmax(0, 1fr); }
  .mod-nav-item:last-child:nth-child(odd) { grid-column: auto; }
  .mod-nav-item h4 { font-size: 14px; }
  .mod-nav-item p { font-size: 13px; }
}

/* =========================================================
   26. 英文版排版微调
   ---------------------------------------------------------
   切到 English 时 <html> 会带上 data-lang="en"。英文和中文的
   字面宽度不是一回事：同样的 px 下英文一行能塞的字更少，中文字距
   （0.08em 一类）在英文里也会显得松。所以这里只做「不动布局骨架」
   的几处微调：
   - 换一套以拉丁字体为先的字体栈（仍是系统字体，不联网加载）
   - 展示级标题略降字号，长句仍能一行放下
   - 个别中文字距收回
   这些规则都带 html[data-lang="en"] 前缀，中文版完全不受影响。
   ========================================================= */
html[data-lang="en"] body {
  font-family: "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
}

/* 展示级标题：英文按字数排，降一档才不会一行只放三四个词 */
html[data-lang="en"] .hero h1 {
  font-size: clamp(44px, 4vw, 74px);
  letter-spacing: -0.018em;
  line-height: 1.1;
}
html[data-lang="en"] .section-title {
  font-size: clamp(35px, 2.7vw, 51px);
  letter-spacing: -0.014em;
}
html[data-lang="en"] .page-hero h1 {
  font-size: clamp(41px, 3.4vw, 59px);
  letter-spacing: -0.014em;
}
html[data-lang="en"] .cta h2 {
  font-size: clamp(33px, 2.7vw, 46px);
  letter-spacing: -0.014em;
}

/* 英文字距收窄：中文靠字距撑开气韵，英文会显得散 */
html[data-lang="en"] .stat-label { letter-spacing: 0.02em; }
html[data-lang="en"] .hero-vision p { letter-spacing: 0; }

/* 英文长句更多，给正文区一点余量，避免频繁断成三行 */
html[data-lang="en"] .section-desc { line-height: 1.68; }
html[data-lang="en"] .section-head { max-width: 780px; }

@media (max-width: 720px) {
  html[data-lang="en"] .hero h1 { font-size: clamp(32px, 7.4vw, 44px); }
  html[data-lang="en"] .section-title { font-size: clamp(28px, 6.4vw, 36px); }
  html[data-lang="en"] .page-hero h1 { font-size: clamp(32px, 7vw, 42px); }
  html[data-lang="en"] .cta h2 { font-size: clamp(27px, 6vw, 34px); }
}

/* 手机端页头：语言按钮再窄一档，给品牌标识让位 */
@media (max-width: 560px) {
  .lang-switch { height: 32px; margin-left: 0; }
  .lang-opt { height: 26px; line-height: 26px; padding: 0 7px; min-width: 28px; font-size: 11.5px; }
}

/* ---------- 26.1 英文版的断行与对齐 ----------
   中文副标题通常只有 6—10 个字，跟在主标题后面排一行很自然；
   英文副标题动辄 25—35 个字符，跟在后面一定会断成两截，所以英文版
   让它独占一行（与 ≤900px 的处理一致）。 */
html[data-lang="en"] .section-title .light {
  display: block;
  margin-left: 0;
  margin-top: 6px;
}
html[data-lang="en"] .page-hero h1 .light { display: block; margin-left: 0; }

/* 业务卡片：英文标题常见两行、偶尔一行，统一按两行占位，
   否则下面那行英文副题和正文会各自错位。 */
html[data-lang="en"] .biz-card h3 {
  line-height: 1.22;
  min-height: 2.44em;
}
html[data-lang="en"] .biz-card .en { margin-top: 12px; }

/* 模块卡标题同理 */
html[data-lang="en"] .mod-nav-item h4 { min-height: 2.1em; line-height: 1.35; }

/* ---------- 26.2 英文版的标签列宽 ----------
   中文标签多为 4 字（适用对象 / 培养模式），116px 刚好；
   英文同样意思要 13—17 个字符，沿用中文列宽会把标签挤成两三行，
   所以英文版单独放宽这几处「左标签 + 右内容」的栅格。 */
html[data-lang="en"] .spec-row { grid-template-columns: 156px 1fr; }
html[data-lang="en"] .case-specs > div { grid-template-columns: 132px 1fr; }
html[data-lang="en"] .level-rows > div { grid-template-columns: 118px minmax(0, 1fr); }
html[data-lang="en"] .mod-table th,
html[data-lang="en"] .mod-table td { padding: 12px 14px; }
html[data-lang="en"] .mod-table tbody th { white-space: normal; }

@media (max-width: 900px) {
  html[data-lang="en"] .spec-row { grid-template-columns: 132px 1fr; }
  html[data-lang="en"] .case-specs > div { grid-template-columns: 112px 1fr; }
  html[data-lang="en"] .level-rows > div { grid-template-columns: 98px minmax(0, 1fr); }
}

@media (max-width: 720px) {
  html[data-lang="en"] .spec-row { grid-template-columns: 116px 1fr; }
  html[data-lang="en"] .case-specs > div { grid-template-columns: 104px 1fr; }
  html[data-lang="en"] .level-rows > div { grid-template-columns: 92px minmax(0, 1fr); }
}

/* 手机竖屏：标签独占一行压在内容上面，比挤成两列好读 */
@media (max-width: 560px) {
  html[data-lang="en"] .spec-row,
  html[data-lang="en"] .case-specs > div,
  html[data-lang="en"] .level-rows > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  html[data-lang="en"] .spec-row dt,
  html[data-lang="en"] .case-specs dt,
  html[data-lang="en"] .level-rows dt { padding-top: 10px; letter-spacing: 0.04em; }
}

/* ---------- 27. 关于页方块的手机端 ----------
   方块在 ≤720px 变成 16:10 横放，画面高度只剩 200 多像素，
   45px 的「100+」角标会把照片压掉近一半，所以手机端把角标收小一档。 */
@media (max-width: 560px) {
  .media-badge { left: 0; bottom: 14px; padding: 10px 14px; }
  .media-badge strong { font-size: 32px; }
  .media-badge span { margin-top: 6px; font-size: 12px; }
}

/* ---------- 28. 按钮禁用态 ---------- */
.btn:disabled { opacity: 0.62; cursor: not-allowed; transform: none; }
