/* base.css — 排版/容器/通用工具 */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;900&family=Noto+Sans+SC:wght@400;500;700;900&display=swap');

html { scroll-behavior: smooth; }
body {
  font-family: var(--font-cn);
  font-size: var(--fs-base);
  color: var(--c-text);
  background: var(--c-bg);
}

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--s-3);
}
@media (min-width: 768px) { .container { padding-inline: var(--s-4); } }

/* 排版 */
h1, .h1 { font-size: var(--fs-4xl); font-weight: 900; }
h2, .h2 { font-size: var(--fs-3xl); font-weight: 900; }
h3, .h3 { font-size: var(--fs-2xl); font-weight: 700; }
h4, .h4 { font-size: var(--fs-xl);  font-weight: 700; }
h5, .h5 { font-size: var(--fs-lg);  font-weight: 600; }
@media (min-width: 1024px) {
  h1 { font-size: var(--fs-5xl); }
  h2 { font-size: var(--fs-4xl); }
}

p { color: var(--c-text-sub); line-height: 1.75; }
p + p { margin-top: var(--s-2); }

.lead { font-size: var(--fs-md); color: var(--c-text-sub); line-height: 1.8; }
.muted { color: var(--c-text-mute); }
.sub { color: var(--c-text-sub); }
.eyebrow {
  display: inline-block;
  font-family: var(--font-en);
  font-size: var(--fs-sm);
  letter-spacing: 2px;
  color: var(--c-primary);
  font-weight: 700;
  text-transform: uppercase;
  margin-bottom: var(--s-2);
}

/* 区块 */
section { padding: var(--s-8) 0; }
@media (min-width: 1024px) { section { padding: var(--s-10) 0; } }
.section--alt { background: var(--c-bg-alt); }
.section--deep { background: var(--c-bg-deep); color: #fff; }
.section--deep h2, .section--deep h3, .section--deep p { color: #fff; }

.section__head { text-align: center; max-width: 720px; margin-inline: auto; margin-bottom: var(--s-6); }
.section__head h2 { margin-bottom: var(--s-2); }

/* 通用工具类 */
.flex { display: flex; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.gap-1 { gap: var(--s-1); } .gap-2 { gap: var(--s-2); } .gap-3 { gap: var(--s-3); } .gap-4 { gap: var(--s-4); }
.text-center { text-align: center; }
.text-primary { color: var(--c-primary); }
.bg-primary { background: var(--c-primary); color: #fff; }
.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* 渐入动画（IntersectionObserver 触发） */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--t-slow) var(--ease), transform var(--t-slow) var(--ease);
}
.reveal.is-visible { opacity: 1; transform: none; }

/* 装饰分隔条 */
.divider-dot {
  display: inline-flex; gap: 4px; vertical-align: middle; margin: 0 var(--s-2);
}
.divider-dot span {
  width: 6px; height: 6px; border-radius: 50%; background: var(--c-primary);
}