/* ============================================================
   康园康复 · 全站样式表
   目录： 0 token · 1 reset · 2 基础排版 · 3 布局 · 4 组件 · 5 页面 · 6 响应式 · 7 无障碍
   纪律： 组件内禁止写颜色/间距字面值，一律 var(--*)；
         金色 #FAC503 只做背景/填充/图形/描边，不做文字色，其上不放白字。
   ============================================================ */

/* ============================================================
   0. Design Tokens —— 全站只认这里的变量
   ============================================================ */

/* 若客户后续提供思源黑体子集：新建 fonts/ 目录、放入 woff2 后取消下方注释即可接入。
   当前字体走系统栈（见 2.1 字体），不建 fonts/ 目录、不发任何字体网络请求。（勿删本块）
@font-face {
  font-family: "Source Han Sans SC";
  src: url("fonts/SourceHanSansSC-Regular.woff2") format("woff2");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Source Han Sans SC";
  src: url("fonts/SourceHanSansSC-Bold.woff2") format("woff2");
  font-weight: 700; font-style: normal; font-display: swap;
}
*/

:root {
  /* ---- 色彩 ---- */
  --c-brand: #FAC503;
  --c-brand-deep: #E2AE00;
  --c-brand-ghost: #FFF7DF;
  --c-ink: #612E01;
  --c-ink-2: #8A5A2B;
  /* 第 5 批：#B08A63 在白底仅 3.02:1，而它被 32 处用作小字（图注/提示/注释）——不达 AA 的 4.5:1。
     改为 #8F6739（白底 5.04:1 / --c-bg-2 4.83:1 / --c-brand-ghost 4.71:1），同色系且比 --c-ink-2 浅，三级层次保留。 */
  --c-ink-3: #8F6739;
  --c-line: #EBE0CC;
  --c-bg: #FFFFFF;
  --c-bg-2: #FDFAF3;
  --c-bg-deep: #2E1700;
  --c-on-deep: #F5E9D2;
  --c-on-deep-2: #C9AE86;
  --c-ok: #2E7D32;
  --c-warn: #A65A00;
  --c-err: #C62828;
  --c-focus: #612E01;

  /* ---- 字体 ---- */
  --font-sans: "PingFang SC", "HarmonyOS Sans SC", "Microsoft YaHei",
    "Source Han Sans SC", "Noto Sans CJK SC", system-ui, -apple-system,
    "Segoe UI", sans-serif;
  --fs-2xs: 0.75rem;    /* 12 */
  --fs-xs: 0.875rem;    /* 14 */
  --fs-sm: 1rem;        /* 16 */
  --fs-base: 1.0625rem; /* 17 正文基准 */
  --fs-md: 1.1875rem;   /* 19 */
  --fs-lg: 1.375rem;    /* 22 */
  --fs-xl: 1.75rem;     /* 28 */
  --fs-2xl: 2.125rem;   /* 34 */
  --fs-3xl: 2.75rem;    /* 44 */
  --fs-4xl: 3.5rem;     /* 56 */
  --fs-5xl: 4.5rem;     /* 72 */
  --fs-hero: clamp(2.125rem, 6vw, 3.5rem);
  --fs-h2-fluid: clamp(1.75rem, 4vw, 2.125rem);
  --fs-h3-fluid: clamp(1.375rem, 3vw, 1.75rem);
  --fs-year-fluid: clamp(3rem, 10vw, 4.5rem);
  --lh-body: 1.8;
  --lh-title: 1.3;
  --lh-tight: 1.15;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;

  /* ---- 间距 ---- */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px;
  --space-9: 96px; --space-10: 128px;
  --section-gap: var(--space-9);

  /* ---- 圆角 ---- */
  --r-sm: 8px;
  --r-md: 16px;
  --r-lg: 20px;
  --r-pill: 999px;

  /* ---- 阴影（暖灰） ---- */
  --shadow-sm: 0 1px 3px rgba(97, 46, 1, 0.06), 0 2px 8px rgba(97, 46, 1, 0.05);
  --shadow-md: 0 4px 12px rgba(97, 46, 1, 0.08), 0 10px 28px rgba(97, 46, 1, 0.07);
  --shadow-lg: 0 8px 24px rgba(97, 46, 1, 0.14), 0 20px 56px rgba(97, 46, 1, 0.12);

  /* ---- 动效 ---- */
  --dur-fast: 200ms;
  --dur-base: 600ms;
  --dur-slow: 1200ms;
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-expo-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1);
  --stagger: 80ms;

  /* ---- 布局 ---- */
  --container: 1280px;
  --container-pad: 64px;
  --grid-gap: 24px;
  /* 断点口径（媒体查询写字面值）：480 / 768 / 1024 / 1440 */

  /* ---- 层级 ---- */
  --z-decor: -1;
  --z-sticky: 10;
  --z-header: 100;
  --z-drawer: 200;
  --z-lightbox: 300;
  --z-top: 400;

  /* ---- 焦点环（深棕，禁用金色） ---- */
  --focus-ring: 0 0 0 2px #FFFFFF, 0 0 0 4px var(--c-focus);

  /* ---- 页头高度 ---- */
  --header-h: 76px;
}

/* 大字号模式：根字号 16→18，正文 17px→19.1px（+2px），全站 rem 联动 */
html.is-font-lg { font-size: 112.5%; }

/* 高对比模式：正文/次文字加深、边框加深，正文达 AAA */
html.is-contrast-high {
  --c-ink: #3D1E00;
  --c-ink-2: #612E01;
  --c-ink-3: #7A4E1F;
  --c-line: #D9C6A3;
  --c-on-deep: #FFF7DF;
  --c-on-deep-2: #EBD9B8;
}

/* ============================================================
   1. Reset & Base
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }

html {
  font-size: 100%;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: var(--lh-body);
  color: var(--c-ink);
  background-color: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

img, svg, video { display: block; max-width: 100%; }
img { height: auto; }

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

button { cursor: pointer; background: none; border: 0; padding: 0; }

a {
  color: var(--c-ink);
  text-decoration-color: var(--c-ink-3);
  text-underline-offset: 0.2em;
  transition: color var(--dur-fast) var(--ease-standard),
              text-decoration-color var(--dur-fast) var(--ease-standard);
}
a:hover { color: var(--c-ink-2); text-decoration-color: var(--c-ink-2); }

/* 焦点环：全站统一，不得 outline:none */
:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--r-sm);
}

::selection { background: var(--c-brand); color: var(--c-ink); }

/* 领导关怀总开关（config.js SHOW_LEADERSHIP=false 时由脚本加类）
   ⚠️ 2026-09-29 修正：这一行曾被整行注释掉，导致开关失效——
      SHOW_LEADERSHIP=false 时领导关怀模块仍会显示。现已恢复。
      站内搜索索引里的 honors-leadership 条目由 script.js 按同一开关剔除。 */
html.is-leadership-off [data-leadership] { display: none !important; }

/* ============================================================
   2. 排版 Typography
   ============================================================ */
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 var(--space-4);
  line-height: var(--lh-title);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
}
h1 { font-size: var(--fs-3xl); }
h2 { font-size: var(--fs-h2-fluid); }
h3 { font-size: var(--fs-h3-fluid); }
h4 { font-size: var(--fs-lg); }

p { margin: 0 0 var(--space-4); }

ul, ol { margin: 0 0 var(--space-4); padding-left: 1.4em; }

strong, b { font-weight: var(--fw-bold); }

blockquote {
  margin: 0 0 var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: var(--c-brand-ghost);
  border-left: 4px solid var(--c-brand);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  color: var(--c-ink-2);
}

figure { margin: 0; }
figcaption {
  margin-top: var(--space-2);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}

/* 数字等宽（数据条对齐） */
.ky-num, .ky-stat__num, .ky-databar__num, time {
  font-variant-numeric: tabular-nums;
}

/* 区块标题组：徽章 + 标题 + 导语 */
.ky-section-head { max-width: 46rem; margin-bottom: var(--space-7); }
.ky-section-head--center { margin-inline: auto; text-align: center; }
.ky-section-head__badge {
  display: inline-block;
  margin-bottom: var(--space-3);
  padding: var(--space-1) var(--space-4);
  border-radius: var(--r-pill);
  background: var(--c-brand);
  color: var(--c-ink);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
}
.ky-section-head__title { margin-bottom: var(--space-3); }
.ky-section-head__lead {
  margin: 0;
  font-size: var(--fs-md);
  color: var(--c-ink-2);
}
/* 深色区块内的标题组 */
.ky-section--deep .ky-section-head__title,
.ky-section--deep h2, .ky-section--deep h3 { color: var(--c-on-deep); }
.ky-section--deep .ky-section-head__lead { color: var(--c-on-deep-2); }

/* ============================================================
   3. 布局 Layout
   ============================================================ */
.ky-container {
  width: 100%;
  max-width: calc(var(--container) + var(--container-pad) * 2);
  margin-inline: auto;
  padding-inline: var(--container-pad);
}

.ky-section { padding-block: var(--section-gap); }
.ky-section--alt { background: var(--c-bg-2); }
.ky-section--deep { background: var(--c-bg-deep); color: var(--c-on-deep); }

.ky-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: var(--grid-gap);
}
.ky-grid__span5 { grid-column: span 5; }
.ky-grid__span6 { grid-column: span 6; }
.ky-grid__span7 { grid-column: span 7; }
.ky-grid__span8 { grid-column: span 8; }

/* 少量布局工具类（替代内联样式） */
.ky-mt-4 { margin-top: var(--space-4); }
.ky-mt-6 { margin-top: var(--space-6); }
.ky-text-center { text-align: center; }

/* 主内容锚点（SkipLink 目标） */
#main { outline: none; }

/* ============================================================
   4. 组件 Components
   ============================================================ */

/* ---------- 4.1 SkipLink ---------- */
.ky-skiplink {
  position: fixed;
  top: var(--space-3);
  left: var(--space-3);
  z-index: var(--z-top);
  padding: var(--space-3) var(--space-5);
  background: var(--c-ink);
  color: var(--c-bg);
  border-radius: var(--r-pill);
  font-size: var(--fs-sm);
  transform: translateY(-200%);
  transition: transform var(--dur-fast) var(--ease-standard);
}
.ky-skiplink:focus-visible {
  transform: translateY(0);
  color: var(--c-bg);
}

/* ---------- 4.2 按钮 ---------- */
.ky-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 48px;
  padding: var(--space-3) var(--space-6);
  border-radius: var(--r-pill);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  text-decoration: none;
  transition: background-color var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard);
}
.ky-btn .ky-btn__arrow { transition: transform var(--dur-fast) var(--ease-standard); }
.ky-btn:hover .ky-btn__arrow { transform: translateX(4px); }

/* 主按钮唯一正确做法：金底 + 深棕字（6.9:1） */
.ky-btn--primary {
  background: var(--c-brand);
  color: var(--c-ink);
  box-shadow: var(--shadow-sm);
}
.ky-btn--primary:hover { background: var(--c-brand-deep); color: var(--c-ink); box-shadow: var(--shadow-md); }

.ky-btn--outline {
  border: 2px solid var(--c-ink);
  color: var(--c-ink);
  background: transparent;
}
.ky-btn--outline:hover { background: var(--c-ink); color: var(--c-bg); }

/* 深色区块里的次按钮 */
.ky-btn--ghost-light {
  border: 2px solid var(--c-on-deep);
  color: var(--c-on-deep);
  background: transparent;
}
.ky-btn--ghost-light:hover { border-color: var(--c-brand); color: var(--c-brand); }

.ky-btn--sm { min-height: 44px; padding: var(--space-2) var(--space-5); }

/* ---------- 4.3 页头 ---------- */
/* 吸顶渐变（第 5 批后追加）：--ky-hd-a 由 script.js 按滚动进度写入 0→1（0→120px 区间），
   背景透明度、毛玻璃模糊、投影三者同步推进，形成一体化的渐变过渡。
   ⚠️ 起点必须显式写 rgba(255,255,255,0)，**不能留空** —— 关键字 transparent
   等价于 rgba(0,0,0,0)，从它过渡到白色会先经过灰色，视觉上「闪一下脏」。
   这也是旧版明明写了 transition、却看不出渐变的原因。 */
.ky-header {
  --ky-hd-a: 0;
  position: fixed;
  inset: 0 0 auto 0;
  z-index: var(--z-header);
  background-color: rgba(255, 255, 255, calc(var(--ky-hd-a) * 0.94));
  -webkit-backdrop-filter: blur(calc(var(--ky-hd-a) * 10px)) saturate(calc(1 + var(--ky-hd-a) * 0.2));
  backdrop-filter: blur(calc(var(--ky-hd-a) * 10px)) saturate(calc(1 + var(--ky-hd-a) * 0.2));
  box-shadow: 0 calc(var(--ky-hd-a) * 1px) calc(var(--ky-hd-a) * 12px)
              rgba(47, 23, 0, calc(var(--ky-hd-a) * 0.12));
  /* 变量每帧都在更新，过渡只需很短一点，用来抹平 scroll 事件的抖动 */
  transition: background-color 160ms linear,
              box-shadow 160ms linear;
}
/* 菜单展开时直接给足不透明度（此时 JS 也会把变量写为 1，这里是无 JS 时的兜底） */
.ky-header.is-open {
  background-color: rgba(255, 255, 255, 0.98);
  box-shadow: var(--shadow-sm);
}
.ky-header.is-scrolled { box-shadow: var(--shadow-sm); }
/* 无 JS 时变量永远是 0，页头会全透明、导航可能看不清 —— 强制给到实心 */
html:not(.js) .ky-header {
  --ky-hd-a: 1;
  background-color: var(--c-bg);
  box-shadow: var(--shadow-sm);
}
.ky-header__inner {
  display: flex;
  align-items: center;
  gap: var(--space-5);
  height: var(--header-h);
}
.ky-header__logo { display: inline-flex; align-items: center; flex-shrink: 0; }
.ky-header__logo img { height: 40px; width: auto; }

.ky-header__nav { flex: 1; }
.ky-nav__list {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: var(--space-1);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ky-nav__link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--r-pill);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--c-ink-2);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--dur-fast) var(--ease-standard),
              background-color var(--dur-fast) var(--ease-standard);
}
.ky-nav__link:hover { color: var(--c-ink); background: var(--c-brand-ghost); }
.ky-nav__link[aria-current="page"] {
  color: var(--c-ink);
  font-weight: var(--fw-bold);
  background: var(--c-brand);
}

/* ===== 导航二级下拉菜单（2026-09-29 新增） =====
   展开靠纯 CSS（:hover / :focus-within），JS 只负责移动端点击展开与 Esc 收起。
   动画分三层，时间错开才有「丝滑」而不是「弹出」：
     ① 面板  opacity + 轻微上移 + 0.97→1 缩放（expo-out，320ms）
     ② 子项  逐条上浮淡入，每条 delay 递增 30ms（stagger）
     ③ 装饰  左侧金色竖条由 0 长到 60%、箭头旋转 180°
   面板顶部留 14px 透明「桥」，鼠标从标题移到面板时不会丢失 hover。 */
.ky-nav__item { position: relative; }

.ky-nav__caret {
  width: 0;
  height: 0;
  margin-left: 6px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: 0.55;
  transition: transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);
}
.ky-nav__item--has-sub:hover > .ky-nav__link .ky-nav__caret,
.ky-nav__item--has-sub:focus-within > .ky-nav__link .ky-nav__caret {
  transform: rotate(180deg);
  opacity: 1;
}

.ky-nav__sub {
  position: absolute;
  top: 100%;
  left: 50%;
  z-index: 5;
  min-width: 268px;
  max-width: min(760px, calc(100vw - 48px));
  padding-top: 14px;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(-50%, -10px) scale(0.97);
  transform-origin: 50% 0;
  transition: opacity 200ms var(--ease-standard) 40ms,
              transform 320ms var(--ease-expo-out),
              visibility 0s linear 260ms;
}
/* 末尾两项改为右对齐，避免面板顶出视口 */
.ky-nav__item--has-sub:nth-last-child(-n + 2) .ky-nav__sub {
  left: auto;
  right: 0;
  transform: translate(0, -10px) scale(0.97);
  transform-origin: 100% 0;
}

.ky-nav__item--has-sub:hover > .ky-nav__sub,
.ky-nav__item--has-sub:focus-within > .ky-nav__sub {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0) scale(1);
  transition-delay: 0s;
}
.ky-nav__item--has-sub:nth-last-child(-n + 2):hover > .ky-nav__sub,
.ky-nav__item--has-sub:nth-last-child(-n + 2):focus-within > .ky-nav__sub {
  transform: translate(0, 0) scale(1);
}

.ky-nav__sub-inner {
  padding: var(--space-4) var(--space-4) var(--space-3);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-lg);
}

.ky-nav__sub-head {
  margin: 0 0 var(--space-3);
  padding-bottom: var(--space-2);
  border-bottom: 2px solid var(--c-brand);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.08em;
  color: var(--c-ink-3);
}

.ky-nav__sub-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.ky-nav__sub-list > li {
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 240ms var(--ease-out), transform 240ms var(--ease-out);
}
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li,
.ky-nav__item--has-sub:focus-within .ky-nav__sub-list > li {
  opacity: 1;
  transform: none;
}
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(1) { transition-delay: 20ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(2) { transition-delay: 50ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(3) { transition-delay: 80ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(4) { transition-delay: 110ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(5) { transition-delay: 140ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(6) { transition-delay: 170ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(7) { transition-delay: 200ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(8) { transition-delay: 230ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(9) { transition-delay: 260ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(10) { transition-delay: 290ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(11) { transition-delay: 320ms; }
.ky-nav__item--has-sub:hover .ky-nav__sub-list > li:nth-child(12) { transition-delay: 350ms; }

.ky-nav__sub-link {
  position: relative;
  display: block;
  padding: var(--space-2) var(--space-3);
  border-radius: var(--r-sm);
  text-decoration: none;
  transition: background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-out);
}
.ky-nav__sub-link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  border-radius: var(--r-pill);
  background: var(--c-brand);
  transform: translateY(-50%);
  transition: height var(--dur-fast) var(--ease-out);
}
/* 当前所在子页：加一条金色底边（金色不做文字色，对比度纪律） */
.ky-nav__sub-link.is-current { background: var(--c-brand-ghost); }
.ky-nav__sub-link.is-current::before { height: 100%; }

.ky-nav__sub-link:hover,
.ky-nav__sub-link:focus-visible {
  background: var(--c-brand-ghost);
  transform: translateX(3px);
}
.ky-nav__sub-link:hover::before,
.ky-nav__sub-link:focus-visible::before { height: 58%; }

.ky-nav__sub-title {
  display: block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  line-height: 1.5;
  color: var(--c-ink);
}
.ky-nav__sub-desc {
  display: block;
  font-size: var(--fs-2xs);
  line-height: 1.5;
  color: var(--c-ink-3);
}

.ky-nav__sub-all {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  width: 100%;
  margin-top: var(--space-3);
  padding-top: var(--space-3);
  border-top: 1px solid var(--c-line);
  font-size: var(--fs-2xs);
  font-weight: var(--fw-medium);
  color: var(--c-ink-2);
  text-decoration: none;
  transition: color var(--dur-fast) var(--ease-standard);
}
.ky-nav__sub-all:hover { color: var(--c-ink); }
.ky-nav__sub-all svg { transition: transform var(--dur-fast) var(--ease-out); }
.ky-nav__sub-all:hover svg { transform: translateX(4px); }

.ky-header__actions { display: flex; align-items: center; gap: var(--space-3); flex-shrink: 0; }

.ky-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--r-pill);
  color: var(--c-ink);
  transition: background-color var(--dur-fast) var(--ease-standard);
}
.ky-icon-btn:hover { background: var(--c-brand-ghost); }
.ky-icon-btn svg { width: 22px; height: 22px; }

/* 移动端导航抽屉 */
.ky-header__burger { display: none; }
.ky-header__drawer { display: none; }

/* ---------- 4.4 无障碍开关（页头） ---------- */
.ky-a11y { position: relative; }
.ky-a11y__panel {
  position: absolute;
  top: calc(100% + var(--space-2));
  right: 0;
  min-width: 15rem;
  padding: var(--space-4);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}
.ky-a11y__panel[hidden] { display: none; }
.ky-a11y__title {
  margin: 0 0 var(--space-3);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: var(--c-ink-2);
}
.ky-a11y__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding-block: var(--space-2);
  font-size: var(--fs-sm);
}
/* 第 5 批：触摸目标 ≥ 44×44 —— 外层撑到 44 高，轨道仍保持 30 高的视觉不变 */
.ky-switch { position: relative; width: 52px; height: 44px; flex-shrink: 0; }
.ky-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.ky-switch__track {
  position: absolute; top: 7px; left: 0; right: 0; height: 30px;
  background: var(--c-line);
  border-radius: var(--r-pill);
  transition: background-color var(--dur-fast) var(--ease-standard);
  pointer-events: none;
}
.ky-switch__track::after {
  content: "";
  position: absolute;
  top: 3px; left: 3px;
  width: 24px; height: 24px;
  background: var(--c-bg);
  border-radius: 50%;
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-fast) var(--ease-standard);
}
.ky-switch input:checked + .ky-switch__track { background: var(--c-brand); }
.ky-switch input:checked + .ky-switch__track::after { transform: translateX(22px); }
.ky-switch input:focus-visible + .ky-switch__track { box-shadow: var(--focus-ring); }

/* ---------- 4.5 Hero 主视觉 ---------- */
.ky-hero {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100vh;
  min-height: 100svh;
  padding-top: var(--header-h);
  overflow: hidden;
  background: var(--c-bg-2);
}
.ky-hero__bg {
  position: absolute;
  inset: -5%;
  z-index: 0; /* 不能为负：负 z-index 会沉到 .ky-hero 背景色之下 */
  background-position: center 20%;
  background-size: cover;
  background-repeat: no-repeat;
  opacity: 0.07;
  filter: blur(6px) saturate(0.8);
}
.ky-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  align-items: center;
  gap: var(--space-8);
  width: 100%;
  padding-block: var(--space-8);
}
.ky-hero__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--c-line);
  border-radius: var(--r-pill);
  background: var(--c-bg);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  color: var(--c-ink-2);
}
.ky-hero__badge .ky-num { font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-hero__title {
  margin: 0 0 var(--space-5);
  font-size: var(--fs-hero);
  line-height: var(--lh-tight);
  letter-spacing: 0.02em;
}
/* 逐字入场（.js 下生效；字符 span 在 HTML 里写死，共 11 字） */
.js .ky-hero__char {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.35em);
  animation: ky-char-in var(--dur-base) var(--ease-out) forwards;
}
.js .ky-hero__char:nth-child(1)  { animation-delay: 0.05s; }
.js .ky-hero__char:nth-child(2)  { animation-delay: 0.11s; }
.js .ky-hero__char:nth-child(3)  { animation-delay: 0.17s; }
.js .ky-hero__char:nth-child(4)  { animation-delay: 0.23s; }
.js .ky-hero__char:nth-child(5)  { animation-delay: 0.29s; }
.js .ky-hero__char:nth-child(6)  { animation-delay: 0.35s; }
.js .ky-hero__char:nth-child(7)  { animation-delay: 0.41s; }
.js .ky-hero__char:nth-child(8)  { animation-delay: 0.47s; }
.js .ky-hero__char:nth-child(9)  { animation-delay: 0.53s; }
.js .ky-hero__char:nth-child(10) { animation-delay: 0.59s; }
.js .ky-hero__char:nth-child(11) { animation-delay: 0.65s; }
@keyframes ky-char-in {
  to { opacity: 1; transform: translateY(0); }
}
.ky-hero__title .ky-hero__accent {
  position: relative;
  z-index: 0; /* 建立层叠上下文，让 ::after 金条垫在文字下、区块背景上 */
  white-space: nowrap;
}
.ky-hero__title .ky-hero__accent::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0.08em;
  height: 0.28em;
  background: var(--c-brand);
  z-index: var(--z-decor);
  border-radius: var(--r-sm);
}
.ky-hero__lead {
  max-width: 34rem;
  margin-bottom: var(--space-6);
  font-size: var(--fs-md);
  color: var(--c-ink-2);
}
.ky-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-4); }
.ky-hero__visual { display: flex; justify-content: center; }
.ky-hero__visual img {
  width: min(100%, 22rem);
  height: auto;
  filter: drop-shadow(0 24px 48px rgba(97, 46, 1, 0.18));
}
/* 向下滚动呼吸箭头 */
.ky-hero__scroll-hint {
  position: absolute;
  right: var(--container-pad);
  bottom: var(--space-6);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  color: var(--c-ink-2);
  font-size: var(--fs-2xs);
  text-decoration: none;
}
.ky-hero__scroll-hint svg { width: 20px; height: 20px; animation: ky-breathe 2.2s var(--ease-standard) infinite; }
@keyframes ky-breathe {
  0%, 100% { transform: translateY(0); opacity: 0.5; }
  50% { transform: translateY(8px); opacity: 1; }
}

/* 栏目索引页 banner（Hero 的轻量变体） */
.ky-hero--banner {
  min-height: 0;
  padding-block: calc(var(--header-h) + var(--space-8)) var(--space-8);
}
.ky-hero--banner .ky-hero__inner { grid-template-columns: 1fr; padding-block: 0; }

/* ---------- 4.6 媒体背书条（marquee） ---------- */
.ky-press-bar {
  padding-block: var(--space-5);
  background: var(--c-bg);
  border-bottom: 1px solid var(--c-line);
  overflow: hidden;
}
.ky-press-bar__label {
  display: block;
  margin-bottom: var(--space-3);
  text-align: center;
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.2em;
  color: var(--c-ink-2);
}
.ky-press-bar__viewport { overflow: hidden; }
.ky-press-bar__track {
  display: flex;
  align-items: center;
  width: max-content;
  /* 单组从 7 家扩到 17 家后轨道长约 2.25 倍，时长同比放大才算「匀速」：
     若沿用 36s，滚动速度会变成原来的 2 倍多，显得急躁且看不清。
     改名单时必须同步改这个数：时长 ≈ 36s × (新项数 / 8)。 */
  animation: ky-marquee 82s linear infinite;
}
/* 两组完全相同的内容，-50% 无缝循环；gap 收进组内 + 组尾 padding 补齐，
   保证轨道宽度恰为单组的 2 倍 */
.ky-press-bar__group {
  display: flex;
  align-items: center;
  gap: var(--space-6);
  padding-right: var(--space-6);
}
.ky-press-bar:hover .ky-press-bar__track { animation-play-state: paused; }
@keyframes ky-marquee {
  to { transform: translateX(-50%); }
}
.ky-press-bar__item {
  display: inline-flex;
  align-items: center;
  gap: var(--space-6);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--c-ink);
  white-space: nowrap;
  text-decoration: none;
}
/* 金色圆点仅作装饰分隔、不承载语义 */
.ky-press-bar__dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--c-brand);
  flex-shrink: 0;
}
.ky-press-bar__more {
  font-size: var(--fs-sm);
  color: var(--c-ink-2);
  white-space: nowrap;
}

/* ---------- 4.7 数字滚动卡 ---------- */
.ky-stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--grid-gap);
}
.ky-stat {
  padding: var(--space-6);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  text-align: center;
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}
.ky-stat:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.ky-stat__num {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--fs-3xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-ink);
}
.ky-stat__num .ky-stat__suffix { font-size: var(--fs-lg); font-weight: var(--fw-medium); color: var(--c-ink-2); }
.ky-stat__label { margin: 0; font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- 4.8 数据横条 ---------- */
.ky-databar { display: grid; gap: var(--space-5); }
.ky-databar__row { display: grid; grid-template-columns: 11rem 1fr auto; align-items: center; gap: var(--space-4); }
.ky-databar__label { font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-databar__track {
  height: 12px;
  background: var(--c-brand-ghost);
  border-radius: var(--r-pill);
  overflow: hidden;
}
.ky-databar__bar {
  display: block;
  height: 100%;
  width: 0;
  background: var(--c-brand);
  border-radius: var(--r-pill);
  transition: width var(--dur-slow) var(--ease-expo-out);
}
.ky-databar__num { font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--c-ink); white-space: nowrap; }
.ky-databar__num small { font-size: var(--fs-xs); font-weight: var(--fw-medium); color: var(--c-ink-2); }
/* 逐行依次向右进展：第 1 行先走，之后每行延后 220ms。
   数字滚动由 JS 的 data-count-delay 同步延后（同值），保证「条走完数字也走完」。
   只有一行时不产生任何延迟，行为与原来一致。 */
.ky-databar__row:nth-child(2) .ky-databar__bar { transition-delay: 220ms; }
.ky-databar__row:nth-child(3) .ky-databar__bar { transition-delay: 440ms; }
.ky-databar__row:nth-child(n+4) .ky-databar__bar { transition-delay: 660ms; }

/* ---------- 4.9 通用卡片族 ---------- */
.ky-card-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--grid-gap);
}
.ky-card-row--2 { grid-template-columns: repeat(2, 1fr); }
.ky-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-6);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  text-decoration: none;
  color: var(--c-ink);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}
.ky-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); color: var(--c-ink); }
.ky-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px; height: 56px;
  border-radius: var(--r-md);
  background: var(--c-brand-ghost);
  color: var(--c-ink);
}
.ky-card__icon svg { width: 28px; height: 28px; }
.ky-card__title { margin: 0; font-size: var(--fs-lg); }
.ky-card__text { margin: 0; font-size: var(--fs-sm); color: var(--c-ink-2); flex: 1; }
.ky-card__more {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
}
.ky-card__more svg { width: 16px; height: 16px; transition: transform var(--dur-fast) var(--ease-standard); }
.ky-card:hover .ky-card__more svg { transform: translateX(4px); }

/* 图片卡（公益/纪实） */
.ky-card--media { padding: 0; overflow: hidden; }
.ky-card--media .ky-card__img { overflow: hidden; border-radius: var(--r-lg) var(--r-lg) 0 0; }
.ky-card--media .ky-card__img img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  transition: transform var(--dur-base) var(--ease-out);
}
.ky-card--media:hover .ky-card__img img { transform: scale(1.03); }
.ky-card--media .ky-card__body { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-5); }

/* 荣誉卡（深色区） */
.ky-card--honor {
  background: rgba(250, 197, 3, 0.06);
  border: 1px solid rgba(250, 197, 3, 0.35);
  color: var(--c-on-deep);
}
.ky-card--honor:hover { color: var(--c-on-deep); border-color: var(--c-brand); }

/* ---------- 4.10 品牌生态 ---------- */
.ky-ecosystem {
  position: relative;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--grid-gap);
  max-width: 52rem;
  margin-inline: auto;
}
.ky-ecosystem__node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-6);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.ky-ecosystem__node-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--c-brand);
  color: var(--c-ink);
}
.ky-ecosystem__node-icon svg { width: 30px; height: 30px; }
.ky-ecosystem__node-title { margin: 0; font-size: var(--fs-lg); }
.ky-ecosystem__node-text { margin: 0; font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- 4.11 网点示意图 ---------- */
.ky-campuses {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-4);
}
.ky-campuses__node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-2);
  min-width: 9.5rem;
  padding: var(--space-5) var(--space-4);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.ky-campuses__num {
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  line-height: var(--lh-tight);
  color: var(--c-ink);
}
.ky-campuses__num small { display: block; font-size: var(--fs-2xs); font-weight: var(--fw-medium); color: var(--c-ink-3); }
.ky-campuses__label { font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- 4.12 引文窄条 ---------- */
.ky-press-quote {
  display: flex;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  background: var(--c-brand-ghost);
  border-left: 4px solid var(--c-brand);
  border-radius: 0 var(--r-md) var(--r-md) 0;
}
.ky-press-quote__media { flex-shrink: 0; font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-press-quote__title { margin: 0; font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-press-quote__date { flex-shrink: 0; margin-left: auto; font-size: var(--fs-xs); color: var(--c-ink-3); }

/* ---------- 4.13 最高荣誉大卡（深色区） ---------- */
.ky-honor-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-8);
  align-items: center;
}
.ky-honor-hero__img {
  position: relative;
  border: 1px solid rgba(250, 197, 3, 0.45);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-lg);
  transition: transform var(--dur-base) var(--ease-out), border-color var(--dur-fast) var(--ease-standard);
}
.ky-honor-hero__img:hover { transform: translateY(-4px); border-color: var(--c-brand); }
.ky-honor-hero__img img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.ky-honor-hero__badge {
  display: inline-block;
  margin-bottom: var(--space-4);
  padding: var(--space-1) var(--space-4);
  border: 1px solid var(--c-brand);
  border-radius: var(--r-pill);
  /* 第 5 批：徽标在浅底 hero（honors-overview）上时金字只有 1.56:1，
     故默认用深棕字＋金描边；只有落在深色区时才恢复金字（10.54:1）。 */
  color: var(--c-ink);
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.1em;
}
.ky-honor-hero__title { color: var(--c-on-deep); font-size: var(--fs-h2-fluid); }
.ky-honor-hero__facts { margin: 0 0 var(--space-5); padding: 0; list-style: none; }
.ky-honor-hero__facts li {
  position: relative;
  padding: var(--space-2) 0 var(--space-2) var(--space-5);
  color: var(--c-on-deep-2);
  font-size: var(--fs-sm);
  border-bottom: 1px solid rgba(245, 233, 210, 0.12);
}
.ky-honor-hero__facts li::before {
  content: "";
  position: absolute;
  left: 0; top: 1.1em;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--c-brand);
}
.ky-honor-hero__facts strong { color: var(--c-on-deep); }

/* ---------- 4.14 页脚 ---------- */
.ky-footer {
  background: var(--c-bg-deep);
  color: var(--c-on-deep);
  padding: var(--space-8) 0 var(--space-6);
}
.ky-footer a { color: var(--c-on-deep-2); text-decoration: none; }
.ky-footer a:hover { color: var(--c-brand); }
.ky-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 2fr 0.8fr;
  gap: var(--space-8);
  padding-bottom: var(--space-7);
  border-bottom: 1px solid rgba(245, 233, 210, 0.14);
}
.ky-footer__brand img { height: 44px; width: auto; margin-bottom: var(--space-4); }
.ky-footer__slogan { margin: 0 0 var(--space-4); color: var(--c-brand); font-weight: var(--fw-bold); font-size: var(--fs-md); }
.ky-footer__contact { margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); color: var(--c-on-deep-2); }
.ky-footer__contact li { margin-bottom: var(--space-2); }
.ky-footer__col-title {
  margin: 0 0 var(--space-4);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-on-deep);
}
.ky-footer__sitemap {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-2) var(--space-5);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--fs-sm);
}
.ky-footer__qrcode { text-align: center; }
.ky-footer__qrcode img {
  width: 128px; height: 128px;
  margin-inline: auto;
  border-radius: var(--r-md);
  background: var(--c-bg);
  padding: var(--space-2);
}
.ky-footer__qrcode figcaption { color: var(--c-on-deep-2); }
.ky-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-3);
  padding-top: var(--space-5);
  font-size: var(--fs-xs);
  color: var(--c-on-deep-2);
}
.ky-footer__bottom p { margin: 0; }

/* ---------- 4.15 底部 CTA ---------- */
.ky-cta {
  background: var(--c-brand-ghost);
  border-block: 1px solid var(--c-line);
}
.ky-cta__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-5);
  padding-block: var(--space-7);
}
.ky-cta__title { margin: 0 0 var(--space-2); font-size: var(--fs-h3-fluid); }
.ky-cta__text { margin: 0; color: var(--c-ink-2); font-size: var(--fs-sm); }
.ky-cta__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }

/* ---------- 4.16 面包屑 ---------- */
.ky-breadcrumb {
  padding-top: calc(var(--header-h) + var(--space-4));
  font-size: var(--fs-xs);
  color: var(--c-ink-3);
}
.ky-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ky-breadcrumb li:not(:last-child)::after { content: "/"; margin-left: var(--space-2); color: var(--c-line); }
.ky-breadcrumb [aria-current="page"] { color: var(--c-ink-2); }

/* ---------- 4.17 折叠面板 ---------- */
.ky-accordion__item { border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-bg); overflow: hidden; }
.ky-accordion__item + .ky-accordion__item { margin-top: var(--space-3); }
.ky-accordion__item h3 { margin: 0; }
.ky-accordion__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  width: 100%;
  min-height: 44px;
  padding: var(--space-4) var(--space-5);
  text-align: left;
  font-size: var(--fs-base);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
}
.ky-accordion__head:hover { background: var(--c-brand-ghost); }
.ky-accordion__icon { flex-shrink: 0; width: 20px; height: 20px; transition: transform var(--dur-fast) var(--ease-standard); }
.ky-accordion__head[aria-expanded="true"] .ky-accordion__icon { transform: rotate(180deg); }
.ky-accordion__body { padding: 0 var(--space-5); color: var(--c-ink-2); font-size: var(--fs-sm); }
.ky-accordion__body[hidden] { display: none; }
.ky-accordion__body > *:last-child { margin-bottom: var(--space-5); }

/* ---------- 4.18 Tab ---------- */
.ky-tabs__list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-bottom: var(--space-5);
  padding: 0;
  list-style: none;
}
.ky-tabs__tab {
  min-height: 44px;
  padding: var(--space-2) var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-pill);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  color: var(--c-ink-2);
  transition: all var(--dur-fast) var(--ease-standard);
}
.ky-tabs__tab:hover { border-color: var(--c-ink-3); color: var(--c-ink); }
.ky-tabs__tab[aria-selected="true"] { background: var(--c-brand); border-color: var(--c-brand); color: var(--c-ink); font-weight: var(--fw-bold); }
.ky-tabs__panel[hidden] { display: none; }

/* ---------- 4.19 时间轴（基础） ---------- */
.ky-timeline { position: relative; }
.ky-timeline__node { position: relative; padding-left: var(--space-6); padding-bottom: var(--space-6); border-left: 2px solid var(--c-line); }
.ky-timeline__node::before {
  content: "";
  position: absolute;
  left: -7px; top: 6px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--c-bg);
  border: 3px solid var(--c-brand);
}
.ky-timeline__year { font-size: var(--fs-xl); font-weight: var(--fw-bold); color: var(--c-ink); line-height: var(--lh-tight); }
.ky-timeline__title { font-weight: var(--fw-bold); }
.ky-timeline__text { color: var(--c-ink-2); font-size: var(--fs-sm); }

/* ---------- 4.20 灯箱（基础） ---------- */
.ky-lightbox {
  position: fixed;
  inset: 0;
  z-index: var(--z-lightbox);
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(46, 23, 0, 0.92);
}
.ky-lightbox[hidden] { display: none; }
.ky-lightbox__figure { max-width: min(88vw, 64rem); text-align: center; }
.ky-lightbox__img { max-height: 76vh; width: auto; margin-inline: auto; border-radius: var(--r-md); box-shadow: var(--shadow-lg); }
.ky-lightbox__caption { margin-top: var(--space-3); color: var(--c-on-deep-2); font-size: var(--fs-sm); }
.ky-lightbox__btn {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  border-radius: 50%;
  background: rgba(245, 233, 210, 0.12);
  color: var(--c-on-deep);
  transition: background-color var(--dur-fast) var(--ease-standard);
}
.ky-lightbox__btn:hover { background: rgba(250, 197, 3, 0.35); }
/* 单图时左右切换按钮由 JS 置 hidden；此处必须显式 none，否则被上面的 display 覆盖 */
.ky-lightbox__btn[hidden] { display: none; }
.ky-lightbox__btn--close { top: var(--space-5); right: var(--space-5); }
.ky-lightbox__btn--prev { left: var(--space-5); top: 50%; transform: translateY(-50%); }
.ky-lightbox__btn--next { right: var(--space-5); top: 50%; transform: translateY(-50%); }
.ky-lightbox__btn svg { width: 22px; height: 22px; }

/* ---------- 4.21 文字墙 ---------- */
.ky-wall {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3) var(--space-5);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ky-wall__item {
  padding: var(--space-2) var(--space-4);
  border-bottom: 2px solid transparent;
  font-size: var(--fs-base);
  color: var(--c-ink-3);
  transition: color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard);
}
/* hover 变深棕 + 金色下划线；不得改金色字 */
.ky-wall__item:hover { color: var(--c-ink); border-bottom-color: var(--c-brand); }

/* ---------- 4.22 表单块（基础） ---------- */
.ky-form { max-width: 40rem; }
.ky-form__field { margin-bottom: var(--space-5); }
.ky-form__label { display: block; margin-bottom: var(--space-2); font-size: var(--fs-sm); font-weight: var(--fw-bold); }
.ky-form__label .ky-form__req { color: var(--c-err); }
.ky-form__input, .ky-form__select, .ky-form__textarea {
  width: 100%;
  min-height: 48px;
  padding: var(--space-3) var(--space-4);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-bg);
  font-size: var(--fs-base);
  color: var(--c-ink);
  transition: border-color var(--dur-fast) var(--ease-standard);
}
.ky-form__textarea { min-height: 8rem; resize: vertical; }
.ky-form__input:focus, .ky-form__select:focus, .ky-form__textarea:focus { outline: none; border-color: var(--c-focus); box-shadow: var(--focus-ring); }
.ky-form__input[aria-invalid="true"], .ky-form__textarea[aria-invalid="true"] { border-color: var(--c-err); }
.ky-form__error {
  display: none;
  align-items: center;
  gap: var(--space-2);
  margin-top: var(--space-2);
  font-size: var(--fs-xs);
  color: var(--c-err);
}
.ky-form__error.is-show { display: flex; }
.ky-form__hint { margin-top: var(--space-2); font-size: var(--fs-xs); color: var(--c-ink-3); }
.ky-form__success { text-align: center; padding: var(--space-7) var(--space-5); }
.ky-form__success img { width: 10rem; margin: 0 auto var(--space-4); }
.ky-form__success[hidden] { display: none; }

/* ---------- 4.23 空状态 ---------- */
.ky-empty { text-align: center; padding: var(--space-8) var(--space-5); color: var(--c-ink-3); }
.ky-empty img { width: 8rem; margin: 0 auto var(--space-4); opacity: 0.7; }

/* ---------- 4.24 搜索浮层 ---------- */
.ky-search {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: 12vh var(--space-4) var(--space-4);
  background: rgba(46, 23, 0, 0.6);
}
.ky-search[hidden] { display: none; }
.ky-search__box {
  width: min(100%, 42rem);
  background: var(--c-bg);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg);
  overflow: hidden;
}
.ky-search__head { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-bottom: 1px solid var(--c-line); }
.ky-search__head svg { width: 22px; height: 22px; color: var(--c-ink-3); flex-shrink: 0; }
.ky-search__input {
  flex: 1;
  border: 0;
  outline: none;
  font-size: var(--fs-md);
  color: var(--c-ink);
  background: transparent;
}
.ky-search__close { flex-shrink: 0; }
.ky-search__results { max-height: 50vh; overflow-y: auto; margin: 0; padding: var(--space-2); list-style: none; }
.ky-search__result a {
  display: block;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--r-md);
  text-decoration: none;
}
.ky-search__result a:hover, .ky-search__result a.is-active { background: var(--c-brand-ghost); }
.ky-search__result-title { display: block; font-weight: var(--fw-bold); color: var(--c-ink); font-size: var(--fs-base); }
.ky-search__result-summary { display: block; font-size: var(--fs-xs); color: var(--c-ink-2); }
.ky-search__empty { padding: var(--space-6); text-align: center; color: var(--c-ink-3); font-size: var(--fs-sm); }
.ky-search__tip { padding: var(--space-3) var(--space-5); border-top: 1px solid var(--c-line); font-size: var(--fs-2xs); color: var(--c-ink-3); }

/* ---------- 4.25 图片加载失败兜底（is-missing） ---------- */
img.is-missing {
  position: relative;
  background:
    linear-gradient(135deg, var(--c-bg-2) 0%, var(--c-brand-ghost) 55%, var(--c-line) 100%);
  object-fit: contain;
}
/* 用 ::after 展示占位文案（小象剪影背景由父级 ::before 承担时退化为色块） */
img.is-missing { color: transparent; }
.ky-img-fallback {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  min-height: 8rem;
  padding: var(--space-4);
  background: linear-gradient(135deg, var(--c-bg-2) 0%, var(--c-brand-ghost) 60%, var(--c-line) 100%);
  border-radius: var(--r-md);
  color: var(--c-ink-3);
  font-size: var(--fs-2xs);
  text-align: center;
}
.ky-img-fallback svg { width: 3rem; height: 3rem; opacity: 0.45; }

/* ---------- 4.26 入场动效 ---------- */
.js .ky-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--dur-base) var(--ease-out),
              transform var(--dur-base) var(--ease-out);
}
.js .ky-reveal.is-in { opacity: 1; transform: translateY(0); }

/* ---------- 4.26b 差异化入场变体（第 5 批后追加） ----------
   基础 .ky-reveal 只有一种「淡入 + 上移 24px」，全站 36 处都用同一个就会显得平淡。
   按每个 section 的语义换方向/换质感，滚动才有节奏。
   用法：与 .ky-reveal **一起**写（JS 只认 .ky-reveal 加 is-in，变体只改初始位移）。
   归位统一由上面的 .js .ky-reveal.is-in 负责（它的选择器权重更高，会覆盖初始 transform）。 */
.js .ky-reveal--fade { transform: none; }                    /* 纯淡入：大段文字，位移会打断阅读 */
.js .ky-reveal--left { transform: translateX(-32px); }       /* 自左滑入 */
.js .ky-reveal--right { transform: translateX(32px); }       /* 自右滑入 */
.js .ky-reveal--down { transform: translateY(-24px); }       /* 自上落下 */
.js .ky-reveal--scale { transform: translateY(16px) scale(0.94); }  /* 轻微放大：图片 / 数字节点 */
/* 窄屏上横向位移容易溢出产生横向滚动条，降级为上移 */
@media (max-width: 767px) {
  .js .ky-reveal--left, .js .ky-reveal--right { transform: translateY(24px); }
}

/* ============================================================
   5. 页面 Pages
   ============================================================ */

/* ===== 第1批：首页 index ===== */
/* 首屏背景：人民大会堂领奖照做极低透明度虚化层（不直接铺图） */
.ky-home-hero .ky-hero__bg {
  background-image: url("images/renmindahuitang/rmdht-00-zhangluomei-plaque.webp");
}

.ky-home-position {
  text-align: center;
  font-size: var(--fs-h3-fluid);
  font-weight: var(--fw-bold);
  line-height: 1.6;
  max-width: 52rem;
  margin-inline: auto;
}
.ky-home-position .ky-home-position__hl {
  position: relative;
  z-index: 0; /* 同上：让 ::after 浅色高亮垫在文字下、区块背景上 */
  white-space: nowrap;
}
.ky-home-position .ky-home-position__hl::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0.05em;
  height: 0.3em;
  background: var(--c-brand-ghost);
  z-index: var(--z-decor);
  border-radius: var(--r-sm);
}

/* 首页领导关怀掠影 */
.ky-leader-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--grid-gap);
}
.ky-leader-strip figure {
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-sm);
}
.ky-leader-strip img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform var(--dur-base) var(--ease-out);
}
.ky-leader-strip figure:hover img { transform: scale(1.03); }
.ky-leader-strip figcaption {
  padding: var(--space-3) var(--space-4);
  background: var(--c-bg);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}

/* ===== 第2批：走进康园 + 康复服务 ===== */

/* ---------- 5.1 正文长文排版 ---------- */
.ky-prose { max-width: 44rem; }
.ky-prose > h2 { margin-top: var(--space-8); }
.ky-prose > h3 { margin-top: var(--space-6); font-size: var(--fs-lg); }
.ky-prose > h2:first-child, .ky-prose > h3:first-child { margin-top: 0; }
.ky-prose p { margin-bottom: var(--space-4); }
.ky-prose ul, .ky-prose ol { margin-bottom: var(--space-5); }
.ky-prose li { margin-bottom: var(--space-2); }
.ky-prose img { border-radius: var(--r-lg); }
.ky-lead { font-size: var(--fs-md); color: var(--c-ink-2); }
.ky-note { margin-top: var(--space-3); font-size: var(--fs-xs); color: var(--c-ink-3); }
.ky-split { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: var(--space-8); align-items: start; }
.ky-split > figure img,
.ky-figure img { width: 100%; border: 1px solid var(--c-line); border-radius: var(--r-lg); box-shadow: var(--shadow-md); }
.ky-figure--flat img { box-shadow: var(--shadow-sm); }
.ky-figure figcaption { text-align: center; }

/* 事实清单（资质 / 规模 / 档案） */
.ky-facts { margin: 0; }
.ky-facts div {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: var(--space-4);
  padding: var(--space-4) 0;
  border-bottom: 1px solid var(--c-line);
  font-size: var(--fs-sm);
}
.ky-facts dt { font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-facts dd { margin: 0; color: var(--c-ink-2); }

/* ---------- 5.2 老照片（灰度 → 彩色 hover） ---------- */
.ky-oldphoto img { filter: grayscale(1) contrast(1.04); transition: filter var(--dur-base) var(--ease-standard); }
.ky-oldphoto:hover img, .ky-oldphoto:focus-within img { filter: none; }

/* ---------- 5.3 发展历程（纵向卷轴 + 年代筛选 + 展开全部） ---------- */
.ky-hist__bar { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-6); }
.ky-hist__chip {
  min-height: 44px;
  padding: var(--space-2) var(--space-4);
  border: 1px solid var(--c-line);
  border-radius: var(--r-pill);
  background: var(--c-bg);
  font-size: var(--fs-sm);
  color: var(--c-ink-2);
  transition: all var(--dur-fast) var(--ease-standard);
}
.ky-hist__chip:hover { border-color: var(--c-ink-3); color: var(--c-ink); }
.ky-hist__chip[aria-pressed="true"] { background: var(--c-brand); border-color: var(--c-brand); color: var(--c-ink); font-weight: var(--fw-bold); }
.ky-hist__list { margin: 0; padding: 0; list-style: none; }
.ky-hist__item { position: relative; padding: 0 0 var(--space-5) var(--space-6); border-left: 2px solid var(--c-line); }
.ky-hist__item::before {
  content: "";
  position: absolute;
  left: -7px; top: 6px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--c-bg);
  border: 3px solid var(--c-brand);
}
.ky-hist__item--first::before { background: var(--c-brand); }
.ky-hist__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-3); }
.ky-hist__year { font-size: var(--fs-lg); font-weight: var(--fw-bold); font-variant-numeric: tabular-nums; }
.ky-hist__date { font-size: var(--fs-xs); color: var(--c-ink-3); font-variant-numeric: tabular-nums; }
.ky-hist__cat {
  padding: 2px var(--space-3);
  border-radius: var(--r-sm);
  background: var(--c-brand-ghost);
  font-size: var(--fs-2xs);
  color: var(--c-ink-2);
}
.ky-hist__cat--first { background: var(--c-brand); color: var(--c-ink); font-weight: var(--fw-bold); }
.ky-hist__title { margin: var(--space-2) 0 0; font-size: var(--fs-base); font-weight: var(--fw-medium); color: var(--c-ink-2); }
.ky-hist.is-collapsed .ky-hist__item[data-extra] { display: none; }
.ky-hist__more { margin-top: var(--space-5); }
.ky-hist__group-title { margin: var(--space-8) 0 var(--space-4); font-size: var(--fs-lg); }

/* ---------- 5.4 全周期服务流程（横向 11 步） ---------- */
.ky-accordion { margin-top: var(--space-2); }
.ky-paper { margin-top: var(--space-2); }
.ky-process, .ky-stages { position: relative; }
.ky-hist__empty {
  padding: var(--space-6) var(--space-5);
  border: 1px dashed var(--c-line);
  border-radius: var(--r-md);
  text-align: center;
  font-size: var(--fs-sm);
  color: var(--c-ink-3);
}
.ky-oath { max-width: 40rem; margin-inline: auto; text-align: center; }
.ky-oath p { margin: 0 0 var(--space-5); font-size: var(--fs-md); line-height: 2; color: var(--c-on-deep-2); }
.ky-oath__sign { margin-top: var(--space-6); font-weight: var(--fw-bold); color: var(--c-on-deep); }

.ky-process__legend { display: flex; flex-wrap: wrap; gap: var(--space-5); margin: 0 0 var(--space-5); padding: 0; list-style: none; }
.ky-process__legend li { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-process__swatch { flex-shrink: 0; width: 12px; height: 12px; border-radius: 3px; }
.ky-process__swatch--1 { background: var(--c-brand); }
.ky-process__swatch--2 { background: var(--c-ink); }
.ky-process__swatch--3 { background: var(--c-ink-3); }
.ky-scroller__track {
  display: flex;
  gap: var(--space-4);
  margin: 0;
  padding: var(--space-2) 0 var(--space-4);
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: thin;
}
.ky-process__step {
  flex: 0 0 15rem;
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  padding: var(--space-5);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-base) var(--ease-out),
              box-shadow var(--dur-base) var(--ease-out),
              border-color var(--dur-base) var(--ease-out);
}
.ky-process__step.is-current { transform: translateY(-6px) scale(1.03); box-shadow: var(--shadow-md); border-color: var(--c-brand); }
.ky-process__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem; height: 2.5rem;
  border-radius: 50%;
  background: var(--c-brand-ghost);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums;
}
.ky-process__step[data-phase="2"] .ky-process__num { background: rgba(97, 46, 1, 0.12); }
.ky-process__step[data-phase="3"] .ky-process__num { background: rgba(176, 138, 99, 0.2); }
.ky-process__title { margin: 0; font-size: var(--fs-base); }
.ky-process__desc { margin: 0; font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-scroller__nav { display: flex; align-items: center; gap: var(--space-3); margin-top: var(--space-3); }
.ky-scroller__hint { font-size: var(--fs-2xs); color: var(--c-ink-3); }

/* ---------- 5.5 纸质工具卡（评价工具 Tab 面板） ---------- */
.ky-paper__card {
  position: relative;
  overflow: hidden;
  padding: var(--space-7) var(--space-6);
  background-color: var(--c-bg-2);
  background-image:
    repeating-linear-gradient(0deg, rgba(97, 46, 1, 0.035) 0 1px, transparent 1px 4px),
    repeating-linear-gradient(90deg, rgba(97, 46, 1, 0.035) 0 1px, transparent 1px 4px);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-md);
}
.ky-paper__card::after {
  content: "";
  position: absolute;
  right: -2rem; bottom: -2rem;
  width: 8rem; height: 8rem;
  border-radius: 50%;
  background: rgba(250, 197, 3, 0.16);
  z-index: 0;
}
.ky-paper__head, .ky-paper__body { position: relative; z-index: 1; }
.ky-paper__title { margin: 0; font-size: var(--fs-h3-fluid); }
.ky-paper__sub { margin: var(--space-2) 0 var(--space-5); font-size: var(--fs-md); color: var(--c-ink-2); }
.ky-paper__body h4 { margin-top: var(--space-5); }
.ky-paper__body > h4:first-child { margin-top: 0; }
.ky-paper__body ul { margin-bottom: var(--space-4); }
.ky-table { width: 100%; border-collapse: collapse; font-size: var(--fs-sm); }
.ky-table th, .ky-table td { padding: var(--space-3); border-bottom: 1px solid var(--c-line); text-align: left; vertical-align: top; }
.ky-table thead th { background: var(--c-brand-ghost); color: var(--c-ink); font-weight: var(--fw-bold); }
.ky-table tbody tr:nth-child(even) { background: var(--c-bg-2); }

/* ---------- 5.6 神经发育六边形网格 ---------- */
.ky-hexgrid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  max-width: 58rem;
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
.ky-hex {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  width: 100%;
  aspect-ratio: 1 / 1;
  padding: var(--space-5);
  background: transparent;
  text-align: center;
  color: var(--c-ink);
}
.ky-hex__shape {
  position: absolute;
  inset: 0;
  z-index: 0;
  clip-path: polygon(50% 0%, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
  background: var(--c-brand-ghost);
  transition: background-color var(--dur-base) var(--ease-out),
              transform var(--dur-base) var(--ease-out);
}
.ky-hex:hover .ky-hex__shape, .ky-hex:focus-visible .ky-hex__shape, .ky-hex.is-on .ky-hex__shape {
  background: var(--c-brand);
  transform: translateY(-4px);
}
.ky-hex__abbr { position: relative; z-index: 1; font-size: var(--fs-xl); font-weight: var(--fw-bold); letter-spacing: 0.04em; }
.ky-hex__name { position: relative; z-index: 1; font-size: var(--fs-sm); }
.ky-hex__tag { position: relative; z-index: 1; font-size: var(--fs-2xs); color: var(--c-ink-2); }
.ky-hex:hover .ky-hex__tag, .ky-hex:focus-visible .ky-hex__tag { color: var(--c-ink); }

/* ---------- 5.7 详解抽屉 ---------- */
.ky-drawer {
  position: fixed;
  inset: 0;
  z-index: var(--z-drawer);
  display: flex;
  justify-content: flex-end;
  background: rgba(46, 23, 0, 0.5);
}
.ky-drawer[hidden] { display: none; }
.ky-drawer__panel {
  width: min(100%, 34rem);
  height: 100%;
  overflow-y: auto;
  padding: var(--space-7) var(--space-6);
  background: var(--c-bg);
  box-shadow: var(--shadow-lg);
}
.ky-drawer__panel[hidden] { display: none; }
.ky-drawer__close { display: inline-flex; align-items: center; gap: var(--space-2); margin-bottom: var(--space-5); font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-drawer__panel h3 { margin-bottom: var(--space-2); }
.ky-drawer__panel h4 { margin-top: var(--space-5); }
.ky-drawer__panel ul { padding-left: 1.2em; font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-drawer__panel li { margin-bottom: var(--space-2); }
.ky-drawer__tag { display: inline-block; margin-bottom: var(--space-3); padding: var(--space-1) var(--space-3); border-radius: var(--r-pill); background: var(--c-brand); font-size: var(--fs-2xs); font-weight: var(--fw-bold); color: var(--c-ink); }

/* ---------- 5.8 能力树（横向阶段牌） ---------- */
.ky-stages__node {
  flex: 0 0 13rem;
  scroll-snap-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-3);
  padding: var(--space-5) var(--space-4);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-sm);
  text-align: center;
}
.ky-stages__node--preschool { border-top: 4px solid var(--c-brand); }
.ky-stages__node--school { border-top: 4px solid var(--c-ink); }
.ky-stages__age {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.5rem;
  padding: var(--space-1) var(--space-3);
  border-radius: var(--r-pill);
  background: var(--c-brand-ghost);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums;
}
.ky-stages__items { margin: 0; padding: 0; list-style: none; font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-stages__items li + li { margin-top: var(--space-1); }
.ky-stages__legend { display: flex; flex-wrap: wrap; gap: var(--space-5); margin-bottom: var(--space-5); font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-stages__legend span { display: inline-flex; align-items: center; gap: var(--space-2); }

/* ---------- 5.9 公式视觉 ---------- */
.ky-formula { padding: var(--space-6); background: var(--c-bg-2); border: 1px solid var(--c-line); border-radius: var(--r-lg); }
.ky-formula__name { margin: 0 0 var(--space-2); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-ink-2); }
.ky-formula__expr { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-5); }
.ky-formula__term {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.75rem;
  min-height: 2.75rem;
  padding: 0 var(--space-2);
  border-radius: var(--r-md);
  background: var(--c-brand);
  color: var(--c-ink);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  transition: transform var(--dur-fast) var(--ease-standard);
}
.ky-formula__term:hover, .ky-formula__term.is-on { transform: translateY(-3px); }
.ky-formula__op { color: var(--c-ink-3); font-size: var(--fs-xl); }
.ky-formula__paren { color: var(--c-ink-2); font-size: var(--fs-2xl); font-weight: var(--fw-bold); }
.ky-formula__defs { margin: 0; padding: 0; list-style: none; }
.ky-formula__def {
  display: flex;
  gap: var(--space-3);
  padding: var(--space-3);
  border-radius: var(--r-md);
  font-size: var(--fs-sm);
  color: var(--c-ink-2);
  transition: background-color var(--dur-fast) var(--ease-standard);
}
.ky-formula__def.is-on { background: var(--c-brand-ghost); color: var(--c-ink); }
.ky-formula__def b { flex: 0 0 2.75rem; color: var(--c-ink); }
.ky-formula__note { margin: var(--space-4) 0 0; font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- 5.10 四条准则 ---------- */
.ky-rules { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--grid-gap); }
.ky-rule {
  padding: var(--space-6) var(--space-4);
  background: var(--c-bg);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  text-align: center;
  box-shadow: var(--shadow-sm);
}
.ky-rule__name { font-size: var(--fs-xl); font-weight: var(--fw-bold); letter-spacing: 0.16em; }
.ky-rule__desc { margin-top: var(--space-2); font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- 5.11 七感通路 ---------- */
.ky-senses { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-3); padding: 0; margin: 0; list-style: none; }
.ky-senses li {
  padding: var(--space-3) var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-pill);
  background: var(--c-bg);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
}
.ky-senses__flow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  margin-top: var(--space-5);
  padding: var(--space-4);
  background: var(--c-brand-ghost);
  border-radius: var(--r-md);
  font-size: var(--fs-sm);
  color: var(--c-ink-2);
  text-align: center;
}
.ky-senses__flow span + span::before { content: "→"; margin-right: var(--space-3); color: var(--c-ink-3); }
/* （第2批交付时追加） */

/* ===== 第3批：康复成效 + 公益 + 小象暖暖 ===== */

/* ---------- 6.1 图组（可点开灯箱） ---------- */
.ky-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ky-gallery--2 { grid-template-columns: repeat(2, 1fr); }
.ky-gallery--4 { grid-template-columns: repeat(4, 1fr); }
.ky-gallery__item {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: zoom-in;
  text-align: left;
}
.ky-gallery__frame {
  display: block; /* span 默认 inline，不设 block 则圆角裁剪与溢出隐藏失效 */
  overflow: hidden;
  border-radius: var(--r-md);
  background: var(--c-bg-2);
}
.ky-gallery__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform var(--dur-slow) var(--ease-standard);
}
.ky-gallery__item:hover .ky-gallery__img,
.ky-gallery__item:focus-visible .ky-gallery__img { transform: scale(1.03); }
.ky-gallery__cap {
  display: block;
  margin-top: var(--space-2);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}

/* ---------- 6.2 公益项目区块（8 组，每组一整块） ---------- */
.ky-proj {
  border: 1px solid var(--c-line);
  border-left: 6px solid var(--c-brand);
  border-radius: var(--r-lg);
  background: var(--c-bg);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.ky-proj + .ky-proj { margin-top: var(--space-6); }
.ky-proj__head {
  display: flex;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-6);
  background: var(--c-bg-2);
  border-bottom: 1px solid var(--c-line);
}
.ky-proj__num {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3rem;
  height: 3rem;
  border-radius: var(--r-pill);
  background: var(--c-brand);
  color: var(--c-ink);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums;
}
.ky-proj__titles { flex: 1 1 auto; }
.ky-proj__title { margin: 0; font-size: var(--fs-xl); font-weight: var(--fw-bold); }
.ky-proj__partner {
  display: inline-block;
  margin-top: var(--space-2);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--r-sm);
  background: var(--c-brand-ghost);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}
.ky-proj__time {
  flex: 0 0 auto;
  font-size: var(--fs-sm);
  color: var(--c-ink-3);
  font-variant-numeric: tabular-nums;
}
.ky-proj__body { padding: var(--space-6); }
.ky-proj__lead { margin: 0 0 var(--space-5); font-size: var(--fs-md); line-height: 1.8; color: var(--c-ink); }
.ky-proj__facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  margin: 0 0 var(--space-5);
  padding: 0;
  list-style: none;
}
.ky-proj__fact {
  flex: 1 1 12rem;
  padding: var(--space-4);
  border-radius: var(--r-md);
  background: var(--c-brand-ghost);
}
.ky-proj__fact-num {
  display: block;
  font-size: var(--fs-2xl);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.ky-proj__fact-label { display: block; margin-top: var(--space-1); font-size: var(--fs-xs); color: var(--c-ink-2); }
.ky-proj__note { margin: var(--space-5) 0 0; font-size: var(--fs-xs); color: var(--c-ink-3); }

/* ---------- 6.3 流程图（四种入门方式 / 落地三步） ---------- */
.ky-flow { position: relative; }
.ky-flow__steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: kyflow;
}
.ky-flow--3 .ky-flow__steps { grid-template-columns: repeat(3, 1fr); }
.ky-flow__step {
  position: relative;
  padding: var(--space-6) var(--space-4);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg);
  text-align: center;
}
.ky-flow__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: var(--space-3);
  border-radius: var(--r-pill);
  background: var(--c-brand);
  color: var(--c-ink);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums;
}
.ky-flow__name { display: block; font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-flow__text { display: block; margin-top: var(--space-2); font-size: var(--fs-sm); color: var(--c-ink-2); line-height: 1.7; }
.ky-flow__hint { margin-top: var(--space-5); font-size: var(--fs-sm); color: var(--c-ink-2); }

/* ---------- 6.3b 表格容器（窄屏横向滚动） ---------- */
.ky-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* ---------- 6.4 三级成员体系 ---------- */
.ky-tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); }
.ky-tier {
  display: flex;
  flex-direction: column;
  padding: var(--space-6) var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg);
}
.ky-tier--founding { border-top: 6px solid var(--c-brand); }
.ky-tier--member { border-top: 6px solid var(--c-ink); }
.ky-tier--observer { border-top: 6px solid var(--c-ink-3); }
.ky-tier__level { font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-tier__seat {
  display: inline-block;
  margin-top: var(--space-2);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--r-sm);
  background: var(--c-brand-ghost);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}
.ky-tier__promise { margin: var(--space-4) 0; font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-tier__promise b { color: var(--c-ink); font-variant-numeric: tabular-nums; }
.ky-tier__rights { margin: 0; padding-left: 1.2em; font-size: var(--fs-sm); color: var(--c-ink-2); }
.ky-tier__rights li + li { margin-top: var(--space-1); }

/* ---------- 6.5 形象设计解构（四元素释义与四张图一一配对） ---------- */
.ky-design { display: grid; grid-template-columns: 1fr; gap: var(--space-6); }
.ky-design__item {
  display: grid;
  grid-template-columns: 22rem 1fr;
  gap: var(--space-6);
  align-items: center;
  padding: var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg);
  box-shadow: var(--shadow-sm);
}
.ky-design__item:nth-child(even) { background: var(--c-bg-2); }
.ky-design__body { padding-right: var(--space-2); }
.ky-design__img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: var(--r-md);
  background: var(--c-brand-ghost);
}
.ky-design__name {
  margin: 0 0 var(--space-3);
  font-size: var(--fs-xl);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
}
.ky-design__text { margin: 0; font-size: var(--fs-base); line-height: 1.85; color: var(--c-ink-2); }
.ky-design__tag {
  display: inline-block;
  margin-bottom: var(--space-3);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--r-sm);
  background: var(--c-brand-ghost);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}

/* ---------- 6.6 人设卡（暖暖档案） ---------- */
.ky-idcard {
  padding: var(--space-6);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg-2);
}
.ky-idcard__row {
  display: grid;
  grid-template-columns: 7rem 1fr;
  gap: var(--space-4);
  padding: var(--space-3) 0;
  border-bottom: 1px dashed var(--c-line);
  font-size: var(--fs-base);
}
.ky-idcard__row:last-child { border-bottom: 0; }
.ky-idcard__key { color: var(--c-ink-3); font-size: var(--fs-sm); }
.ky-idcard__val { color: var(--c-ink); line-height: 1.7; }

/* ---------- 6.7 职业版 IP 横向画廊 ---------- */
.ky-jobs { position: relative; }
.ky-jobs__track {
  display: flex;
  gap: var(--grid-gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-bottom: var(--space-3);
}
.ky-jobs__item {
  flex: 0 0 14rem;
  scroll-snap-align: center;
  margin: 0;
  padding: var(--space-4);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg);
  text-align: center;
}
.ky-jobs__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: var(--c-brand-ghost);
  border-radius: var(--r-md);
  transition: transform var(--dur-slow) var(--ease-standard);
}
.ky-jobs__item:hover .ky-jobs__img { transform: scale(1.04); }
.ky-jobs__name { display: block; margin-top: var(--space-3); font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-jobs__industry { display: block; margin-top: var(--space-1); font-size: var(--fs-xs); color: var(--c-ink-3); }

/* ---------- 6.8 周边与联名 ---------- */
.ky-merch {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--grid-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.ky-merch__item {
  padding: var(--space-4);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg);
  text-align: center;
}
.ky-merch__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  background: var(--c-bg-2);
  border-radius: var(--r-md);
  transition: transform var(--dur-slow) var(--ease-standard);
}
.ky-merch__item:hover .ky-merch__img { transform: scale(1.03); }
.ky-merch__name { display: block; margin-top: var(--space-3); font-size: var(--fs-sm); color: var(--c-ink); }
.ky-merch__tag { display: block; margin-top: var(--space-1); font-size: var(--fs-2xs); color: var(--c-ink-3); }

/* 居中容器内的引文窄条改为 inline，避免整块拉伸 */
.ky-text-center .ky-press-quote { display: inline-flex; }

/* ---------- 6.9 口碑大引文 ---------- */
.ky-quote {
  position: relative;
  margin: 0;
  padding: var(--space-7) var(--space-6);
  border-radius: var(--r-lg);
  background: var(--c-bg-2);
  border: 1px solid var(--c-line);
}
.ky-quote::before {
  content: "”";
  position: absolute;
  top: var(--space-2);
  left: var(--space-5);
  font-size: 4rem;
  line-height: 1;
  color: var(--c-brand);
}
.ky-quote__text {
  position: relative;
  margin: 0;
  font-size: var(--fs-lg);
  line-height: 1.9;
  color: var(--c-ink);
}
.ky-quote__src { display: block; margin-top: var(--space-4); font-size: var(--fs-sm); color: var(--c-ink-3); }

/* ---------- 6.10 三重角色（爱心妈妈） ---------- */
.ky-roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--grid-gap); }
.ky-role {
  padding: var(--space-6) var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg);
}
.ky-role__en { display: block; font-size: var(--fs-2xs); letter-spacing: 0.08em; color: var(--c-ink-3); }
.ky-role__name { display: block; margin: var(--space-2) 0 var(--space-4); font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-role__list { margin: 0; padding-left: 1.2em; font-size: var(--fs-sm); color: var(--c-ink-2); line-height: 1.8; }
.ky-role__list li + li { margin-top: var(--space-2); }

/* ---------- 6.11 灯箱触发与成功态图 ---------- */
.ky-lightbox__count {
  position: absolute;
  top: var(--space-5);
  left: var(--space-5);
  padding: var(--space-1) var(--space-3);
  border-radius: var(--r-pill);
  background: rgba(245, 233, 210, 0.14);
  color: var(--c-on-deep);
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
}
/* （第3批交付时追加） */

/* ===== 第4批：媒体 + 荣誉 + 新闻 + 伙伴 + 联系 ===== */

/* ---------- 7.1 媒体名文字墙 ---------- */
/* 继承 .ky-wall / .ky-wall__item（第 2 批已定义），此处只补「计数角标」变体 */
.ky-wall--count {
  counter-reset: kymedia;
}
.ky-wall--count .ky-wall__item::before {
  counter-increment: kymedia;
  content: counter(kymedia, decimal-leading-zero);
  margin-right: var(--space-2);
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
  color: var(--c-ink-3);
}
.ky-wall__item.is-star { font-weight: var(--fw-bold); color: var(--c-ink); }

/* ---------- 7.2 报道卡片流（A 组 · 现行报道） ---------- */
.ky-pressgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: var(--space-5);
}
.ky-pressgrid__card {
  display: flex;
  flex-direction: column;
  padding: var(--space-5);
  border: 1px solid var(--c-line);
  border-top: 3px solid var(--c-brand);
  border-radius: var(--r-lg);
  background: var(--c-bg);
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);
}
.ky-pressgrid__card:hover,
.ky-pressgrid__card:focus-within {
  transform: translateY(-4px);
  box-shadow: var(--shadow-md);
}
.ky-pressgrid__top {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--space-2) var(--space-3);
  margin-bottom: var(--space-3);
}
.ky-pressgrid__media {
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
}
.ky-pressgrid__topic {
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}
.ky-pressgrid__date {
  margin-left: auto;
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
  color: var(--c-ink-3);
}
.ky-pressgrid__title {
  margin: 0 0 var(--space-3);
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1.5;
  color: var(--c-ink);
}
.ky-pressgrid__quote {
  margin: 0 0 var(--space-4);
  font-size: var(--fs-sm);
  line-height: 1.8;
  color: var(--c-ink-2);
}
.ky-pressgrid__foot {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-top: auto;
  padding-top: var(--space-3);
  border-top: 1px dashed var(--c-line);
  font-size: var(--fs-sm);
}
.ky-pressgrid__link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
  text-decoration: underline;
  text-decoration-color: var(--c-brand);
  text-decoration-thickness: 3px;
  text-underline-offset: 4px;
}
.ky-pressgrid__link:hover { text-decoration-color: var(--c-brand-deep); }
.ky-pressgrid__tag {
  display: inline-block;
  padding: 2px var(--space-2);
  border-radius: var(--r-sm);
  background: var(--c-brand-ghost);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}
.ky-pressgrid__nolink {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  color: var(--c-ink-3);
  cursor: default;
}
/* 同一主题合并陈列的第二条（如河南日报 与 省政府官网同源） */
.ky-pressgrid__card--merged { border-top-color: var(--c-line); background: var(--c-bg-2); }

/* ---------- 7.3 旧报纸版面风格（B 组 · 历史报道档案） ---------- */
.ky-oldpress {
  display: grid;
  gap: var(--space-4);
}
.ky-oldpress__card {
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: var(--space-4);
  padding: var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  background:
    repeating-linear-gradient(0deg, rgba(176, 138, 99, 0.05) 0 2px, transparent 2px 5px),
    linear-gradient(180deg, var(--c-brand-ghost), var(--c-bg-2));
}
.ky-oldpress__masthead {
  position: relative;
  padding-bottom: var(--space-2);
  border-bottom: 2px solid var(--c-ink-3);
  text-align: center;
}
.ky-oldpress__date {
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  color: var(--c-ink-2);
}
.ky-oldpress__press {
  margin: var(--space-2) 0 var(--space-1);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  letter-spacing: 0.08em;
  color: var(--c-ink);
}
.ky-oldpress__kind {
  font-size: var(--fs-xs);
  color: var(--c-ink-3);
}
.ky-oldpress__body { display: grid; gap: var(--space-2); }
.ky-oldpress__headline {
  margin: 0;
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1.6;
  color: var(--c-ink);
}
.ky-oldpress__text {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.85;
  color: var(--c-ink-2);
}
.ky-oldpress__tag {
  justify-self: start;
  padding: 2px var(--space-2);
  border-radius: var(--r-sm);
  background: rgba(176, 138, 99, 0.16);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}

/* ---------- 7.4 荣誉证书墙（区别于普通图集：深色底衬 + 金框） ---------- */
.ky-certgrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-5);
}
.ky-certgrid__item {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: none;
  text-align: left;
  cursor: zoom-in;
}
.ky-certgrid__frame {
  display: block;
  overflow: hidden;
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-bg-2);
}
.ky-certgrid__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: contain;
  transition: transform var(--dur-slow) var(--ease-standard);
}
.ky-certgrid__item:hover .ky-certgrid__img,
.ky-certgrid__item:focus-visible .ky-certgrid__img { transform: scale(1.03); }
.ky-certgrid__name {
  display: block;
  margin-top: var(--space-2);
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
}
.ky-certgrid__meta {
  display: block;
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
  color: var(--c-ink-2);
}

/* ---------- 7.5 阶梯式荣誉时间线（等级一路上升叙事） ---------- */
.ky-ladder {
  display: grid;
  gap: 0;
}
.ky-ladder__row {
  display: grid;
  grid-template-columns: 96px 28px 1fr;
  gap: var(--space-3);
  align-items: start;
}
.ky-ladder__year {
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums;
  color: var(--c-ink);
  text-align: right;
  padding-top: var(--space-4);
}
.ky-ladder__rail { position: relative; }
.ky-ladder__dot {
  position: absolute;
  top: calc(var(--space-4) + 6px);
  left: 50%;
  width: 12px;
  height: 12px;
  margin-left: -6px;
  border-radius: 999px;
  background: var(--c-brand);
  box-shadow: 0 0 0 4px var(--c-brand-ghost);
}
.ky-ladder__line {
  position: absolute;
  top: calc(var(--space-4) + 6px);
  bottom: calc(-1 * var(--space-4));
  left: 50%;
  width: 2px;
  margin-left: -1px;
  background: var(--c-line);
}
.ky-ladder__row:last-child .ky-ladder__line { display: none; }
.ky-ladder__body {
  padding: var(--space-4) var(--space-4) var(--space-5);
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--c-brand);
  border-radius: var(--r-md);
  background: var(--c-bg);
}
.ky-ladder__title {
  margin: 0 0 var(--space-2);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: 1.6;
  color: var(--c-ink);
}
.ky-ladder__text {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.8;
  color: var(--c-ink-2);
}
.ky-ladder__row--top .ky-ladder__body {
  border-left-color: var(--c-ink);
  background: var(--c-brand-ghost);
}

/* ---------- 7.6 合作伙伴网格 ---------- */
.ky-partners {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-4);
}
.ky-partner {
  display: grid;
  gap: var(--space-1);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-bg);
}
.ky-partner__no {
  font-size: var(--fs-xs);
  font-variant-numeric: tabular-nums;
  color: var(--c-ink-3);
}
.ky-partner__name {
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: 1.6;
  color: var(--c-ink);
}
.ky-partner__role {
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}

/* ---------- 7.7 联系信息卡 ---------- */
.ky-contactgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--space-4);
}
.ky-contactcard {
  padding: var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg);
}
.ky-contactcard__label {
  display: block;
  margin-bottom: var(--space-2);
  font-size: var(--fs-xs);
  letter-spacing: 0.06em;
  color: var(--c-ink-3);
}
.ky-contactcard__value {
  display: block;
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
  line-height: 1.6;
  color: var(--c-ink);
  word-break: break-word;
}
a.ky-contactcard__value:hover { text-decoration: underline; text-decoration-color: var(--c-brand); text-decoration-thickness: 3px; text-underline-offset: 4px; }
.ky-contactcard__hint {
  margin-top: var(--space-2);
  font-size: var(--fs-xs);
  line-height: 1.7;
  color: var(--c-ink-2);
}

/* ---------- 7.8 深色区块内的通用内容件（荣誉 / 大会堂） ---------- */
/* 大会堂主图：居中、限宽、金色细描边 */
.ky-hall__hero {
  margin: var(--space-7) auto 0;
  max-width: 520px;
  text-align: center;
}
.ky-hall__hero img {
  width: 100%;
  height: auto;
  border: 1px solid var(--c-brand);
  border-radius: var(--r-md);
  background: rgba(0, 0, 0, 0.2);
}
.ky-section--deep .ky-note { color: var(--c-on-deep-2); }
/* 第 5 批：深色区里的荣誉徽标恢复金字（金 #FAC503 / 棕黑 #2E1700 = 10.54:1） */
.ky-section--deep .ky-honor-hero__badge { color: var(--c-brand); }
.ky-section--deep .ky-gallery__cap { color: var(--c-on-deep-2); }
.ky-section--deep .ky-facts div { border-bottom-color: rgba(245, 233, 210, 0.14); }
.ky-section--deep .ky-facts dt { color: var(--c-on-deep); }
.ky-section--deep .ky-facts dd { color: var(--c-on-deep-2); }
.ky-section--deep .ky-quote__text { color: var(--c-on-deep); }
.ky-section--deep .ky-quote__src { color: var(--c-on-deep-2); }
.ky-section--deep .ky-section-head__badge { color: var(--c-brand); }

/* ---------- 7.9 大事记列表（新闻动态） ---------- */
.ky-newslist { display: grid; gap: var(--space-3); }
.ky-newslist__item {
  display: grid;
  grid-template-columns: 108px 1fr;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-5);
  border: 1px solid var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-bg);
}
.ky-newslist__date {
  font-size: var(--fs-sm);
  font-weight: var(--fw-bold);
  font-variant-numeric: tabular-nums;
  color: var(--c-ink-2);
}
.ky-newslist__title {
  margin: 0 0 var(--space-1);
  font-size: var(--fs-md);
  font-weight: var(--fw-bold);
  line-height: 1.7;
  color: var(--c-ink);
}
.ky-newslist__text {
  margin: 0;
  font-size: var(--fs-sm);
  line-height: 1.8;
  color: var(--c-ink-2);
}
.ky-newslist__tag {
  display: inline-block;
  margin-top: var(--space-2);
  padding: 2px var(--space-2);
  border-radius: var(--r-sm);
  background: var(--c-brand-ghost);
  font-size: var(--fs-xs);
  color: var(--c-ink-2);
}

/* ============================================================
   6. 响应式 Media Queries（移动优先，min-width 递增）
   ============================================================ */

/* 基线（<768px）已在上方按移动可用书写；以下做两档收紧 */
@media (max-width: 1023px) {
  :root {
    --container-pad: 24px;
    --section-gap: var(--space-8);
    --header-h: 64px;
  }

  /* 移动端导航：收进抽屉 */
  .ky-header__nav {
    position: fixed;
    inset: var(--header-h) 0 auto 0;
    z-index: var(--z-drawer);
    display: none;
    padding: var(--space-4) var(--container-pad) var(--space-6);
    background: var(--c-bg);
    border-bottom: 1px solid var(--c-line);
    box-shadow: var(--shadow-md);
    max-height: calc(100vh - var(--header-h));
    max-height: calc(100svh - var(--header-h));
    overflow-y: auto;
  }
  .ky-header.is-open .ky-header__nav { display: block; }
  .ky-nav__list { flex-direction: column; align-items: stretch; gap: var(--space-1); }
  .ky-nav__link { justify-content: center; font-size: var(--fs-base); }
  .ky-header__burger { display: inline-flex; }

  /* 移动端：下拉改「手风琴」，点标题就地展开，用 grid 0fr→1fr 做丝滑高度过渡 */
  .ky-nav__item--has-sub { width: 100%; }
  .ky-nav__link--parent { justify-content: space-between; }
  .ky-nav__item--has-sub:hover > .ky-nav__link .ky-nav__caret { transform: none; }
  .ky-nav__item--has-sub.is-sub-open > .ky-nav__link .ky-nav__caret { transform: rotate(180deg); }

  .ky-nav__sub {
    position: static;
    min-width: 0;
    max-width: none;
    padding: 0 var(--space-3);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 320ms var(--ease-expo-out);
  }
  .ky-nav__item--has-sub:nth-last-child(-n + 2) .ky-nav__sub { transform: none; }
  .ky-nav__item--has-sub.is-sub-open > .ky-nav__sub { grid-template-rows: 1fr; }

  .ky-nav__sub-inner {
    min-height: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }
  .ky-nav__item--has-sub.is-sub-open > .ky-nav__sub > .ky-nav__sub-inner { padding: var(--space-2) 0 var(--space-3); }
  .ky-nav__sub-head { display: none; }
  .ky-nav__sub-list { grid-template-columns: 1fr; }
  .ky-nav__sub-list > li {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .ky-nav__sub-link { padding: var(--space-2); }
  .ky-nav__sub-link:hover { transform: none; }
  .ky-nav__sub-all { padding: var(--space-2) 0 0; }

  .ky-header__inner { gap: var(--space-3); }
  .ky-header__logo img { height: 34px; }
  .ky-header__cta-text { display: none; }

  .ky-hero__inner { grid-template-columns: 1fr; gap: var(--space-6); text-align: center; }
  .ky-hero__lead { margin-inline: auto; }
  .ky-hero__actions { justify-content: center; }
  .ky-hero__visual img { width: min(60vw, 16rem); }
  .ky-hero__scroll-hint { display: none; }

  .ky-stat-row, .ky-card-row, .ky-card-row--2, .ky-leader-strip { grid-template-columns: 1fr; }
  .ky-grid__span5, .ky-grid__span6, .ky-grid__span7, .ky-grid__span8 { grid-column: span 12; }
  .ky-honor-hero { grid-template-columns: 1fr; gap: var(--space-6); }
  .ky-ecosystem { grid-template-columns: 1fr 1fr; }
  .ky-footer__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .ky-footer__sitemap { grid-template-columns: repeat(2, 1fr); }
  .ky-databar__row { grid-template-columns: 1fr; gap: var(--space-2); }
  .ky-databar__num { justify-self: start; }
  .ky-press-quote { flex-direction: column; align-items: flex-start; gap: var(--space-2); }
  .ky-press-quote__date { margin-left: 0; }

  .ky-split { grid-template-columns: 1fr; gap: var(--space-6); }
  .ky-rules { grid-template-columns: repeat(2, 1fr); }
  .ky-hexgrid { grid-template-columns: repeat(2, 1fr); gap: var(--space-4); }
  .ky-drawer__panel { width: 100%; }
  .ky-facts div { grid-template-columns: 1fr; gap: var(--space-1); }

  /* 第3批 */
  .ky-gallery, .ky-gallery--4 { grid-template-columns: repeat(2, 1fr); }
  .ky-proj__head { flex-wrap: wrap; }
  .ky-proj__time { flex-basis: 100%; padding-left: 4rem; }
  .ky-proj__body { padding: var(--space-5) var(--space-4); }
  .ky-flow__steps { grid-template-columns: repeat(2, 1fr); }
  .ky-flow--3 .ky-flow__steps { grid-template-columns: 1fr; }
  .ky-tiers { grid-template-columns: 1fr; }
  .ky-roles { grid-template-columns: 1fr; }
  .ky-design__item { grid-template-columns: 1fr; }
  .ky-merch { grid-template-columns: repeat(2, 1fr); }
  .ky-quote { padding: var(--space-6) var(--space-5); }

  /* 第4批 */
  .ky-pressgrid { grid-template-columns: 1fr; }
  .ky-pressgrid__date { margin-left: 0; flex-basis: 100%; }
  .ky-oldpress__card { grid-template-columns: 1fr; gap: var(--space-3); }
  .ky-oldpress__masthead { display: flex; align-items: baseline; gap: var(--space-2); padding-bottom: var(--space-1); text-align: left; }
  .ky-oldpress__press { margin: 0; }
  .ky-certgrid { grid-template-columns: repeat(2, 1fr); }
  .ky-ladder__row { grid-template-columns: 72px 20px 1fr; gap: var(--space-2); }
  .ky-ladder__year { font-size: var(--fs-sm); }
  .ky-partners { grid-template-columns: 1fr; }
  .ky-newslist__item { grid-template-columns: 1fr; gap: var(--space-1); }
}

@media (max-width: 599px) {
  .ky-rules { grid-template-columns: 1fr; }
  .ky-hex { aspect-ratio: 1 / 1.08; padding: var(--space-4); }
  .ky-paper__card { padding: var(--space-5) var(--space-4); }

  /* 第3批 */
  .ky-gallery, .ky-gallery--2, .ky-gallery--4 { grid-template-columns: 1fr; }
  .ky-gallery__img { aspect-ratio: 16 / 10; }
  .ky-flow__steps { grid-template-columns: 1fr; }
  .ky-idcard__row { grid-template-columns: 5rem 1fr; gap: var(--space-3); }
  .ky-jobs__item { flex-basis: 11rem; }
  .ky-lightbox__btn--prev { left: var(--space-2); }
  .ky-lightbox__btn--next { right: var(--space-2); }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .ky-stat-row, .ky-card-row { grid-template-columns: repeat(3, 1fr); }
  .ky-leader-strip { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) and (max-width: 1439px) {
  :root { --container-pad: 40px; }
  .ky-nav__link { padding: var(--space-2) var(--space-2); }
}

@media (min-width: 1440px) {
  /* 桌面满血：token 默认值即此档 */
}

/* ============================================================
   7. 无障碍与 prefers-* 适配
   ============================================================ */

/* 尊重减少动态偏好：关闭一切位移动画，降级为直接显示 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  .js .ky-reveal, .js .ky-hero__char { opacity: 1; transform: none; animation: none; }
  /* 差异化的入场变体（第 5 批后追加）同样降级为直接显示 */
  .js [class*="ky-reveal--"] { opacity: 1 !important; transform: none !important; animation: none !important; }
  /* 跑马灯停止后两组会同时铺开 → 露出 34 项重复内容，故隐藏第二组 */
  .ky-press-bar__track { animation: none; flex-wrap: wrap; width: 100%; justify-content: center; }
  .ky-press-bar__group + .ky-press-bar__group { display: none; }
  .ky-hero__scroll-hint svg { animation: none; }
  .ky-databar__bar { transition: none; }
  .ky-oldphoto img { filter: none; }
  .ky-process__step { transition: none; }
  .ky-process__step.is-current { transform: none; }
  .ky-scroller__track { scroll-behavior: auto; }
  .ky-hex__shape { transition: none; }
  .ky-hex:hover .ky-hex__shape, .ky-hex:focus-visible .ky-hex__shape { transform: none; }
  .ky-formula__term:hover, .ky-formula__term.is-on { transform: none; }
  /* 第3批 */
  .ky-gallery__item:hover .ky-gallery__img,
  .ky-gallery__item:focus-visible .ky-gallery__img { transform: none; }
  .ky-jobs__item:hover .ky-jobs__img { transform: none; }
  .ky-merch__item:hover .ky-merch__img { transform: none; }
  .ky-jobs__track { scroll-behavior: auto; }
}

/* 系统深色模式：不切深色主题，仅确保不刺眼 */
@media (prefers-color-scheme: dark) {
  :root { --c-bg: #FAFAFA; }
}

/* 打印样式（P2，先给基础） */
@media print {
  .ky-header, .ky-cta, .ky-footer__qrcode, .ky-hero__scroll-hint,
  .ky-search, .ky-skiplink { display: none !important; }
  .ky-section { padding-block: var(--space-5); }
  body { font-size: 12pt; }
}

/* ============================================================
   第六批 · 首页内容改造（2026-10-08，答复家长八问）
   1) .ky-quickfacts —— 首屏「即时答复条」：把家长最关心的四个答案压进第一屏，
      而不是让他们在页面上找。金色只做左侧描边，文字一律深棕（对比度纪律）。
   2) .ky-mt-5 / .ky-mt-7 —— 补齐间距工具类（此前只有 --space-4 与 --space-6 两档）
   ============================================================ */
.ky-quickfacts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-3);
  margin: var(--space-7) 0 0;
  padding: 0;
  list-style: none;
}
.ky-quickfacts__item {
  padding: var(--space-4) var(--space-4) var(--space-5);
  border: 1px solid var(--c-line);
  border-left: 3px solid var(--c-brand);
  border-radius: var(--r-md);
  background: var(--c-bg);
  box-shadow: var(--shadow-sm);
}
.ky-quickfacts__k {
  display: block;
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  letter-spacing: 0.06em;
  color: var(--c-ink-2);
}
.ky-quickfacts__v {
  display: block;
  margin-top: var(--space-2);
  font-size: var(--fs-sm);
  line-height: 1.7;
  color: var(--c-ink);
}

.ky-mt-5 { margin-top: var(--space-5); }
.ky-mt-7 { margin-top: var(--space-7); }

@media (max-width: 767px) {
  .ky-quickfacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 599px) {
  .ky-quickfacts { grid-template-columns: 1fr; gap: var(--space-2); }
}

/* ============================================================
   第七批（2026-10-08）
   1) .ky-totop    —— 一键丝滑回顶（小象暖暖 + 金色进度环）
   2) .ky-secpic   —— 首页 3~6c 各段的实景图片点缀（此前整段纯文字）
   3) 桌面端导航强制单行 —— 11 个一级栏目此前在 1280~1440 会折成两排
   ============================================================ */

/* ---------- 1. 一键回顶 ---------- */
.ky-totop {
  position: fixed;
  right: clamp(16px, 3vw, 40px);
  bottom: clamp(16px, 3vw, 40px);
  z-index: var(--z-sticky);
  width: 62px;
  height: 62px;
  padding: 0;
  border: 0;
  border-radius: var(--r-pill);
  background: transparent;
  cursor: pointer;
  /* 默认收起：不可见且不可聚焦（visibility 会把它移出 Tab 序列） */
  opacity: 0;
  visibility: hidden;
  transform: translateY(14px) scale(0.92);
  transition: opacity 280ms var(--ease-out), transform 280ms var(--ease-out),
              visibility 0s linear 280ms;
  -webkit-tap-highlight-color: transparent;
}
.ky-totop.is-on {
  opacity: 1;
  visibility: visible;
  transform: none;
  transition-delay: 0s;
}
.ky-totop:focus-visible { outline: 3px solid var(--c-focus); outline-offset: 4px; }

/* 金色进度环：--p 由 script.js 写入（0—100） */
.ky-totop__ring {
  position: absolute;
  inset: 0;
  border-radius: var(--r-pill);
  background: conic-gradient(var(--c-brand) calc(var(--p, 0) * 1%),
                             rgba(97, 46, 1, 0.10) 0);
}
/* 白色内盘压在环上，露出 4px 环边 */
.ky-totop__disc {
  position: absolute;
  inset: 4px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  border: 1px solid var(--c-line);
  border-radius: var(--r-pill);
  background: var(--c-bg);
  box-shadow: var(--shadow-md);
  overflow: hidden;
  transition: background-color var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}
.ky-totop:hover .ky-totop__disc,
.ky-totop:focus-visible .ky-totop__disc {
  background: var(--c-brand-ghost);
  box-shadow: var(--shadow-lg);
}
/* 小象：悬停时向上探一探，暗示「往上走」 */
.ky-totop__img {
  display: block;
  width: 46px;
  height: auto;
  margin-bottom: 3px;
  transition: transform 380ms var(--ease-expo-out);
}
.ky-totop:hover .ky-totop__img,
.ky-totop:focus-visible .ky-totop__img { transform: translateY(-6px) scale(1.06); }

@media (max-width: 599px) {
  .ky-totop { width: 52px; height: 52px; }
  .ky-totop__img { width: 38px; }
}
@media print { .ky-totop { display: none !important; } }

/* ---------- 2. 首页各段实景图片点缀 ---------- */
.ky-secpic {
  display: grid;
  gap: var(--grid-gap);
  margin: var(--space-7) 0 0;
  padding: 0;
  list-style: none;
}
.ky-secpic--1 {
  grid-template-columns: minmax(0, 1fr);
  max-width: 560px;
  margin-inline: auto;   /* 单图居中，否则会贴左 */
}
.ky-secpic--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ky-secpic--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ky-secpic__cell { margin: 0; }
.ky-secpic__frame {
  display: block;
  overflow: hidden;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-bg-2);
  box-shadow: var(--shadow-sm);
}
.ky-secpic__img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  transition: transform var(--dur-slow) var(--ease-standard);
}
.ky-secpic__frame:hover .ky-secpic__img,
.ky-secpic__frame:focus-visible .ky-secpic__img { transform: scale(1.04); }
.ky-secpic__cap {
  display: block;
  margin-top: var(--space-2);
  font-size: var(--fs-2xs);
  line-height: 1.5;
  color: var(--c-ink-3);   /* 白底 5.04:1，已过 WCAG AA */
  text-align: center;
}
@media (max-width: 767px) {
  .ky-secpic { margin-top: var(--space-6); }
  .ky-secpic--2, .ky-secpic--3 { grid-template-columns: 1fr; gap: var(--space-4); }
  .ky-secpic--1 { max-width: none; }
}

/* ---------- 3. 桌面端导航强制单行 ---------- */

/* 3-a. 1024~1199：11 个栏目在单行里放不下，这一段改回抽屉，
        避免「折成两排」。断点 max-width:1199px 须与 script.js 的
        matchMedia 保持一致，见 KY.header 里的注释。 */
@media (min-width: 1024px) and (max-width: 1199px) {
  .ky-header__nav {
    position: fixed;
    inset: var(--header-h) 0 auto 0;
    z-index: var(--z-drawer);
    display: none;
    padding: var(--space-4) var(--container-pad) var(--space-6);
    background: var(--c-bg);
    border-bottom: 1px solid var(--c-line);
    box-shadow: var(--shadow-md);
    max-height: calc(100vh - var(--header-h));
    max-height: calc(100svh - var(--header-h));
    overflow-y: auto;
  }
  .ky-header.is-open .ky-header__nav { display: block; }
  .ky-nav__list { flex-direction: column; align-items: stretch; gap: var(--space-1); }
  .ky-nav__link { justify-content: center; font-size: var(--fs-base); padding: var(--space-2) var(--space-3); }
  .ky-header__burger { display: inline-flex; }
  .ky-header__cta-text { display: none; }

  .ky-nav__item--has-sub { width: 100%; }
  .ky-nav__link--parent { justify-content: space-between; }
  .ky-nav__item--has-sub:hover > .ky-nav__link .ky-nav__caret { transform: none; }
  .ky-nav__item--has-sub.is-sub-open > .ky-nav__link .ky-nav__caret { transform: rotate(180deg); }
  .ky-nav__sub {
    position: static;
    min-width: 0;
    max-width: none;
    padding: 0 var(--space-3);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 320ms var(--ease-expo-out);
  }
  .ky-nav__item--has-sub:nth-last-child(-n + 2) .ky-nav__sub { transform: none; }
  .ky-nav__item--has-sub.is-sub-open > .ky-nav__sub { grid-template-rows: 1fr; }
  .ky-nav__sub-inner {
    min-height: 0;
    overflow: hidden;
    padding: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: transparent;
  }
  .ky-nav__item--has-sub.is-sub-open > .ky-nav__sub > .ky-nav__sub-inner { padding: var(--space-2) 0 var(--space-3); }
  .ky-nav__sub-head { display: none; }
  .ky-nav__sub-list { grid-template-columns: 1fr; }
  .ky-nav__sub-list > li { opacity: 1; transform: none; transition: none; }
  .ky-nav__sub-link { padding: var(--space-2); }
  .ky-nav__sub-link:hover { transform: none; }
  .ky-nav__sub-all { padding: var(--space-2) 0 0; }
}

/* 3-b. >=1200：单行。三处让位——
       ① 页头容器单独放宽到 1560px（正文仍守 --container 1280）
       ② 链接字号 clamp(12px, .9vw, 14px)、左右内边距收到 7px
       ③ 1200~1439 隐藏「预约咨询」文字，只留箭头图标 */
@media (min-width: 1200px) {
  .ky-header__inner { max-width: 1560px; padding-inline: 32px; gap: var(--space-3); }
  .ky-header__nav { flex: 1 1 auto; min-width: 0; }
  .ky-nav__list { flex-wrap: nowrap; gap: 0; justify-content: flex-end; }
  .ky-nav__link {
    /* --nav-scale 由 script.js 的 KY.navFit 写入：万一字号估算偏大，
       脚本会按 1 → .94 → .88 → .82 → .76 逐级收紧，直到真的单行。 */
    font-size: calc(clamp(12px, 0.9vw, 14px) * var(--nav-scale, 1));
    padding: 6px 7px;
    white-space: nowrap;
  }
  .ky-nav__caret {
    margin-left: 3px;
    border-left-width: 3.5px;
    border-right-width: 3.5px;
    border-top-width: 4px;
  }
  .ky-header__logo img { height: 38px; }
}
@media (min-width: 1200px) and (max-width: 1439px) {
  .ky-header__cta-text { display: none; }
}
@media (min-width: 1600px) {
  .ky-nav__list { gap: 2px; }
  .ky-nav__link { padding: 6px 10px; }
}

/* ==========================================================================
   新闻中心 · 五个栏目的差异化版式（列表页 + 内容页各一套）
   新增于第四版部署（PbootCMS 模板化）时，沿用品牌双色与既有 token。
   ========================================================================== */

/* ---- 通用：栏目内切换条 ---- */
.ky-section--tight { padding-block: var(--space-7); }

.ky-news__tab {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin-top: var(--space-5);
}
.ky-news__tab-link {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  border: 1px solid var(--c-line);
  border-radius: var(--r-pill);
  background: var(--c-bg);
  color: var(--c-ink-2);
  font-size: var(--fs-xs);
  font-weight: var(--fw-medium);
  transition: background var(--dur-fast) var(--ease-standard),
              color var(--dur-fast) var(--ease-standard),
              border-color var(--dur-fast) var(--ease-standard);
}
.ky-news__tab-link:hover,
.ky-news__tab-link:focus-visible {
  border-color: var(--c-brand);
  background: var(--c-brand-ghost);
  color: var(--c-ink);
}
.ky-news__tab-link.is-current {
  background: var(--c-brand);
  border-color: var(--c-brand);
  color: var(--c-ink);
  font-weight: var(--fw-bold);
}

/* ---- 空状态：列表容器为空时才显示 ---- */
.ky-news__empty {
  display: none;
  margin-top: var(--space-5);
  padding: var(--space-5);
  border: 1px dashed var(--c-line);
  border-radius: var(--r-md);
  background: var(--c-bg-2);
  color: var(--c-ink-3);
  font-size: var(--fs-sm);
  text-align: center;
}
.ky-news__grid:empty + .ky-news__empty,
.ky-news__notice:empty + .ky-news__empty,
.ky-news__cards:empty + .ky-news__empty,
.ky-news__stories:empty + .ky-news__empty,
.ky-news__experts:empty + .ky-news__empty,
.ky-news__latest:empty + .ky-news__empty { display: block; }

/* ---- 分页 ---- */
.ky-pager:empty { display: none; }
.ky-pager {
  margin-top: var(--space-7);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: center;
  font-size: var(--fs-sm);
}
.ky-pager a,
.ky-pager span,
.ky-pager strong {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 38px;
  height: 38px;
  padding-inline: var(--space-3);
  border: 1px solid var(--c-line);
  border-radius: var(--r-sm);
  color: var(--c-ink-2);
}
.ky-pager a:hover { border-color: var(--c-brand); background: var(--c-brand-ghost); color: var(--c-ink); }
.ky-pager strong { background: var(--c-brand); border-color: var(--c-brand); color: var(--c-ink); font-weight: var(--fw-bold); }

/* =========================== ① 医院动态：图文卡片网格 =========================== */
.ky-news__grid {
  display: grid;
  gap: var(--grid-gap);
  grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}
.ky-news-card { border-radius: var(--r-md); overflow: hidden; background: var(--c-bg); box-shadow: var(--shadow-sm); }
.ky-news-card__link { display: block; color: inherit; }
.ky-news-card__pic { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--c-brand-ghost); }
.ky-news-card__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ky-news-card__date { display: block; padding: var(--space-4) var(--space-4) 0; font-size: var(--fs-xs); color: var(--c-ink-3); }
.ky-news-card__title { display: block; padding: var(--space-2) var(--space-4) 0; font-size: var(--fs-md); font-weight: var(--fw-bold); line-height: var(--lh-title); color: var(--c-ink); }
.ky-news-card__desc { display: block; padding: var(--space-2) var(--space-4) var(--space-4); font-size: var(--fs-sm); line-height: 1.7; color: var(--c-ink-2); }
.ky-news-card__link:hover .ky-news-card__title,
.ky-news-card__link:focus-visible .ky-news-card__title { color: var(--c-brand-deep); }

/* =========================== ② 通知公告：紧凑告示条 =========================== */
.ky-news__notice { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--c-line); }
.ky-news__notice-item { border-bottom: 1px solid var(--c-line); }
.ky-news__notice-item a {
  display: grid;
  grid-template-columns: 116px 1fr auto;
  align-items: center;
  gap: var(--space-4);
  padding: var(--space-4) var(--space-2);
  color: var(--c-ink);
  transition: background var(--dur-fast) var(--ease-standard);
}
.ky-news__notice-item a:hover { background: var(--c-bg-2); }
.ky-news__notice-date { font-size: var(--fs-xs); color: var(--c-ink-3); font-variant-numeric: tabular-nums; }
.ky-news__notice-title { font-size: var(--fs-base); line-height: 1.6; }
.ky-news__notice-tag {
  font-size: var(--fs-2xs);
  padding: 2px 10px;
  border-radius: var(--r-pill);
  background: var(--c-brand-ghost);
  color: var(--c-ink-2);
}
@media (max-width: 599px) {
  .ky-news__notice-item a { grid-template-columns: 1fr auto; }
  .ky-news__notice-date { grid-column: 1 / -1; }
}

/* =========================== ③ 康复科普：图文双列 =========================== */
.ky-news__cards {
  display: grid;
  gap: var(--grid-gap);
  grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}
.ky-sci-card { border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-bg); overflow: hidden; }
.ky-sci-card__link { display: grid; grid-template-columns: 168px 1fr; color: inherit; }
.ky-sci-card__pic { background: var(--c-brand-ghost); overflow: hidden; }
.ky-sci-card__pic img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 132px; }
.ky-sci-card__body { padding: var(--space-4); display: block; }
.ky-sci-card__kicker { display: block; font-size: var(--fs-2xs); font-weight: var(--fw-bold); letter-spacing: .08em; color: var(--c-ink-3); }
.ky-sci-card__title { display: block; margin-top: var(--space-2); font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--c-ink); line-height: var(--lh-title); }
.ky-sci-card__desc { display: block; margin-top: var(--space-2); font-size: var(--fs-sm); line-height: 1.7; color: var(--c-ink-2); }
.ky-sci-card__more { display: inline-block; margin-top: var(--space-3); font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--c-brand-deep); }
.ky-sci-card:hover { border-color: var(--c-brand); box-shadow: var(--shadow-md); }
@media (max-width: 767px) {
  .ky-news__cards { grid-template-columns: 1fr; }
  .ky-sci-card__link { grid-template-columns: 1fr; }
}

/* =========================== ④ 康复故事：大图故事流 =========================== */
.ky-news__stories { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-7); }
.ky-story-card { border-radius: var(--r-lg); overflow: hidden; background: var(--c-bg-2); }
.ky-story-card__link { display: grid; grid-template-columns: 46% 1fr; color: inherit; }
.ky-story-card__cover { overflow: hidden; background: var(--c-brand-ghost); }
.ky-story-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 240px; }
.ky-story-card__inner { padding: var(--space-6); display: block; align-self: center; }
.ky-story-card__quote { display: block; font-size: var(--fs-lg); line-height: 1.7; color: var(--c-ink); font-weight: var(--fw-medium); }
.ky-story-card__title { display: block; margin-top: var(--space-4); font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--c-ink-2); }
.ky-story-card__date { display: block; margin-top: var(--space-2); font-size: var(--fs-xs); color: var(--c-ink-3); }
@media (max-width: 767px) {
  .ky-story-card__link { grid-template-columns: 1fr; }
  .ky-story-card__inner { padding: var(--space-5); }
  .ky-story-card__quote { font-size: var(--fs-md); }
}

/* =========================== ⑤ 专家专栏：作者卡片墙 =========================== */
.ky-news__experts {
  list-style: none; margin: 0; padding: 0;
  display: grid; gap: var(--grid-gap);
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}
.ky-exp-card { border: 1px solid var(--c-line); border-radius: var(--r-md); background: var(--c-bg); }
.ky-exp-card__link { display: grid; grid-template-columns: 84px 1fr; gap: var(--space-4); padding: var(--space-5); color: inherit; }
.ky-exp-card__avatar { width: 84px; height: 84px; border-radius: 50%; overflow: hidden; background: var(--c-brand-ghost); }
.ky-exp-card__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ky-exp-card__author { display: block; font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--c-ink-3); letter-spacing: .04em; }
.ky-exp-card__title { display: block; margin-top: var(--space-2); font-size: var(--fs-md); font-weight: var(--fw-bold); line-height: var(--lh-title); color: var(--c-ink); }
.ky-exp-card__desc { display: block; margin-top: var(--space-2); font-size: var(--fs-sm); line-height: 1.7; color: var(--c-ink-2); }
.ky-exp-card__date { display: block; margin-top: var(--space-3); font-size: var(--fs-2xs); color: var(--c-ink-3); }
.ky-exp-card:hover { border-color: var(--c-brand); box-shadow: var(--shadow-sm); }
@media (max-width: 479px) { .ky-exp-card__link { grid-template-columns: 1fr; } }

/* =========================== 内容页通用 =========================== */
.ky-news-article { padding-block: var(--space-7); }
.ky-news__title {
  font-size: var(--fs-h2-fluid);
  line-height: var(--lh-title);
  font-weight: var(--fw-bold);
  color: var(--c-ink);
  margin: var(--space-4) 0 0;
}
.ky-news__meta {
  display: flex; flex-wrap: wrap; gap: var(--space-4);
  margin-top: var(--space-4); padding-bottom: var(--space-4);
  border-bottom: 1px solid var(--c-line);
  font-size: var(--fs-xs); color: var(--c-ink-3);
}
.ky-news__body { margin-top: var(--space-5); font-size: var(--fs-base); line-height: var(--lh-body); color: var(--c-ink); }
.ky-news__body img { max-width: 100%; height: auto; border-radius: var(--r-sm); }
.ky-news__body h2 { margin-top: var(--space-6); font-size: var(--fs-lg); color: var(--c-ink); }
.ky-news__body h3 { margin-top: var(--space-5); font-size: var(--fs-md); color: var(--c-ink); }
.ky-news__body p { margin-block: var(--space-4); }
.ky-news__body ul, .ky-news__body ol { margin-block: var(--space-4); padding-inline-start: 1.4em; }
.ky-news__body li { margin-block: var(--space-2); }
.ky-news__body table { width: 100%; border-collapse: collapse; margin-block: var(--space-4); }
.ky-news__body th, .ky-news__body td { border: 1px solid var(--c-line); padding: var(--space-3); text-align: left; }

.ky-news__nav {
  display: flex; flex-wrap: wrap; gap: var(--space-5);
  margin-top: var(--space-7); padding-top: var(--space-5);
  border-top: 1px solid var(--c-line);
  font-size: var(--fs-sm); color: var(--c-ink-2);
}
.ky-news__rel { margin-top: var(--space-7); padding: var(--space-5); border-radius: var(--r-md); background: var(--c-bg-2); }
.ky-news__rel-title { font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--c-ink); margin-bottom: var(--space-3); }
.ky-news__rel-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.ky-news__rel-list li { display: flex; justify-content: space-between; gap: var(--space-4); font-size: var(--fs-sm); }
.ky-news__rel-list a { color: var(--c-ink); }
.ky-news__rel-list a:hover { color: var(--c-brand-deep); }
.ky-news__rel-list span { color: var(--c-ink-3); font-variant-numeric: tabular-nums; }

/* ---- 通知公告内容页：公文版式 ---- */
.ky-notice__head { text-align: center; padding-block: var(--space-5); }
.ky-notice__badge {
  display: inline-block; padding: 4px 14px; border-radius: var(--r-pill);
  background: var(--c-brand); color: var(--c-ink);
  font-size: var(--fs-2xs); font-weight: var(--fw-bold); letter-spacing: .08em;
}
.ky-news-article--notice .ky-news__meta { justify-content: center; border-bottom: 0; }
.ky-notice__paper {
  max-width: 760px; margin-inline: auto;
  padding: var(--space-8) var(--space-6);
  border: 1px solid var(--c-line); border-radius: var(--r-md);
  background: var(--c-bg);
}
.ky-notice__back { margin-top: var(--space-6); text-align: center; }
@media (max-width: 599px) { .ky-notice__paper { padding: var(--space-5) var(--space-4); } }

/* ---- 康复科普内容页 ---- */
.ky-sci__paper { max-width: 820px; }
.ky-sci__tip {
  margin-top: var(--space-7); padding: var(--space-5) var(--space-6);
  border-inline-start: 4px solid var(--c-brand);
  background: var(--c-brand-ghost); border-radius: 0 var(--r-md) var(--r-md) 0;
}
.ky-sci__tip-title { font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--c-ink); margin-bottom: var(--space-2); }
.ky-sci__tip p { font-size: var(--fs-sm); line-height: 1.8; color: var(--c-ink-2); margin-block: var(--space-2); }

/* ---- 康复故事内容页 ---- */
.ky-story__cover { margin-block: var(--space-5) 0; border-radius: var(--r-md); overflow: hidden; }
.ky-story__cover img { width: 100%; display: block; aspect-ratio: 21 / 9; object-fit: cover; }
.ky-story__lead {
  margin-top: var(--space-5); padding-inline-start: var(--space-5);
  border-inline-start: 4px solid var(--c-brand);
  font-size: var(--fs-md); line-height: 1.8; color: var(--c-ink-2);
}
.ky-story__paper { max-width: 820px; }
.ky-story__wish { margin-top: var(--space-7); text-align: center; }
.ky-story__wish blockquote { font-size: var(--fs-lg); color: var(--c-ink); line-height: 1.8; }
.ky-story__wish figcaption { margin-top: var(--space-3); font-size: var(--fs-xs); color: var(--c-ink-3); }

/* ---- 专家专栏内容页 ---- */
.ky-exp__head { display: flex; align-items: center; gap: var(--space-4); }
.ky-exp__avatar { width: 60px; height: 60px; border-radius: 50%; overflow: hidden; background: var(--c-brand-ghost); flex: 0 0 auto; }
.ky-exp__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ky-exp__who { display: block; }
.ky-exp__name { display: block; font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-exp__role { display: block; font-size: var(--fs-xs); color: var(--c-ink-3); }
.ky-exp__paper { max-width: 820px; }

/* =========================== 新闻动态栏目页：五栏入口 + 最新汇总 =========================== */
.ky-news__hub {
  display: grid; gap: var(--grid-gap);
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  margin-top: var(--space-6);
}
.ky-hub-card {
  display: block; padding: var(--space-5);
  border: 1px solid var(--c-line); border-radius: var(--r-md);
  background: var(--c-bg); color: inherit;
  transition: border-color var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard);
}
.ky-hub-card:hover { border-color: var(--c-brand); box-shadow: var(--shadow-md); }
.ky-hub-card__k {
  display: inline-block; padding: 3px 12px; border-radius: var(--r-pill);
  background: var(--c-brand); color: var(--c-ink);
  font-size: var(--fs-2xs); font-weight: var(--fw-bold);
}
.ky-hub-card__t { display: block; margin-top: var(--space-3); font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--c-ink); line-height: var(--lh-title); }
.ky-hub-card__d { display: block; margin-top: var(--space-2); font-size: var(--fs-xs); color: var(--c-ink-3); line-height: 1.7; }

.ky-news__latest-title { margin-top: var(--space-8); font-size: var(--fs-lg); font-weight: var(--fw-bold); color: var(--c-ink); }
.ky-news__latest { list-style: none; margin: var(--space-4) 0 0; padding: 0; border-top: 1px solid var(--c-line); }
.ky-news__latest li { border-bottom: 1px solid var(--c-line); }
.ky-news__latest a { display: flex; gap: var(--space-4); align-items: baseline; padding: var(--space-3) var(--space-2); color: var(--c-ink); }
.ky-news__latest a:hover { background: var(--c-bg-2); }
.ky-news__latest-date { font-size: var(--fs-xs); color: var(--c-ink-3); font-variant-numeric: tabular-nums; flex: 0 0 96px; }
.ky-news__latest-title { margin-top: 0; font-size: var(--fs-base); font-weight: var(--fw-regular); }

/* ---- 搜索页 / 留言页 ---- */
.ky-search-page, .ky-message-page { margin-top: var(--space-5); }
.ky-search-page ul, .ky-message-page ul { list-style: none; margin: 0; padding: 0; }
.ky-search-page li { padding-block: var(--space-3); border-bottom: 1px solid var(--c-line); }
