/* ==========================================================================
   tokens.css —— 设计令牌唯一定义处
   依据《官网开发方案》8.1 / 8.3 / 8.5：
   · 间距阶梯仅允许 4 / 8 / 12 / 16 / 24 / 32 / 48 / 64
   · 正文流体字号 360px→16px、1440px→18px，行高 1.7~1.8
   · 断点 480 / 768 / 1024 / 1280；内容最大宽度 1200，主视觉可出血至 1440
   · 长辈模式只切换根节点一组变量，不维护第二套样式
   其他样式文件只允许引用，不得自定义新值。
   ========================================================================== */

:root {
  /* ---------- 品牌色（稳重、清晰、可信，方案 1.5「适度设计」） ---------- */
  --color-primary: #0F3557;
  --color-primary-hover: #164A76;
  --color-primary-soft: #E9F0F7;
  --color-accent: #B8863B;
  --color-accent-hover: #9C6F2C;
  --color-accent-soft: #F7F0E3;
  --color-party: #A32B25;
  --color-party-dark: #7E1F1B;

  /* ---------- 文字与分隔 ---------- */
  --color-ink: #141C26;
  --color-ink-2: #46505E;
  --color-ink-3: #5D6876;
  --color-line: #E3E8EF;
  --color-line-strong: #C6D0DC;

  /* ---------- 背景 ---------- */
  --color-bg: #FFFFFF;
  --color-bg-soft: #F5F7FA;
  --color-bg-dark: #0A2036;
  --color-bg-dark-2: #0E2C47;
  --color-white: #FFFFFF;

  /* ---------- 间距（唯一阶梯，方案 8.1） ---------- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;

  /* ---------- 字体 ---------- */
  --font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB",
    "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", sans-serif;
  --font-body: clamp(16px, 0.185vw + 15.33px, 18px);
  --font-sm: 15px;
  --font-xs: 14px;
  --font-h1: clamp(30px, 3.6vw, 54px);
  --font-h2: clamp(24px, 1.6vw + 18px, 38px);
  --font-h3: clamp(18px, 0.55vw + 16px, 22px);
  --font-num: clamp(28px, 2.6vw, 40px);
  --leading-tight: 1.28;
  --leading-body: 1.75;

  /* ---------- 圆角 ---------- */
  --radius-sm: 4px;
  --radius: 8px;
  --radius-lg: 16px;
  --radius-pill: 999px;

  /* ---------- 布局 ---------- */
  --container: 1200px;
  --gutter: 16px;
  --header-h: 64px;
  --header-h-compact: 56px;
  --section-pad: 48px;

  /* ---------- 阴影与动效（单次动画 ≤400ms，方案 7.1） ---------- */
  --shadow-1: 0 1px 2px rgba(16, 35, 55, 0.05), 0 2px 8px rgba(16, 35, 55, 0.05);
  --shadow-2: 0 8px 24px rgba(16, 35, 55, 0.10);
  --shadow-3: 0 16px 40px rgba(16, 35, 55, 0.16);
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);
  --dur-fast: 200ms;
  --dur: 300ms;
  --dur-slow: 400ms;

  /* ---------- 层级 ---------- */
  --z-header: 100;
  --z-mobilebar: 120;
  --z-scrim: 150;
  --z-drawer: 200;
  --z-toast: 400;
}

/* 平板竖屏：页面留白 32px */
@media (min-width: 768px) {
  :root {
    --gutter: 32px;
    --header-h: 72px;
    --header-h-compact: 60px;
    --section-pad: 64px;
  }
}

/* 桌面：内容 1200 居中，留白按居中计算 */
@media (min-width: 1024px) {
  :root {
    --gutter: 24px;
    --header-h: 80px;
    --header-h-compact: 60px;
  }
}

/* ==========================================================================
   长辈模式（方案 8.5）：正文字号放大至 125%、行高加大、去掉装饰性动效
   根节点 class 固定 a11y-large，状态存 localStorage 键 yd-a11y-large
   ========================================================================== */
html.a11y-large {
  --font-body: 20px;
  --font-sm: 18px;
  --font-xs: 17px;
  --font-h3: 25px;
  --font-h2: clamp(28px, 2.4vw, 40px);
  --leading-body: 1.9;
  --header-h: 76px;
}

html.a11y-large .btn {
  min-height: 52px;
}

html.a11y-large .reveal {
  opacity: 1 !important;
  transform: none !important;
}

/* 长辈模式下加深次级文字，保证对比度不低于 4.5:1 */
html.a11y-large .section-desc,
html.a11y-large .card__desc,
html.a11y-large .news-item__meta,
html.a11y-large .metric__label,
html.a11y-large .project-item__meta {
  color: var(--color-ink-2);
}
