/* ============================================================
   关于我们 · 样式（复用 design-system + main + product 的组件）
   三个子页：公司介绍 / 合作伙伴 / 人才招聘，同一容器切换
   ============================================================ */

/* ---------- Hero ---------- */
.ab-hero {
  position: relative; overflow: hidden;
  padding-top: calc(var(--header-h) + 26px);
  padding-bottom: clamp(26px, 3.2vw, 40px);
  background: #FAFBFA;
  border-bottom: 1px solid var(--c-line-2);
}
.ab-hero::before {
  content: ""; position: absolute; inset: -30% -10% auto auto; z-index: 0; pointer-events: none;
  width: 720px; height: 720px;
  background: radial-gradient(circle, rgba(48, 174, 36, .10), transparent 62%);
  filter: blur(6px);
}
.ab-hero__dots { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.ab-hero__dots i {
  position: absolute; width: 5px; height: 5px; border-radius: 50%;
  background: var(--c-brand-400); opacity: .38; animation: pdFloat 11s ease-in-out infinite;
}
.ab-hero__dots i:nth-child(1) { left: 46%; top: 22%; }
.ab-hero__dots i:nth-child(2) { left: 41%; top: 62%; animation-duration: 14s; animation-delay: -3s; }
.ab-hero__dots i:nth-child(3) { left: 52%; top: 82%; animation-duration: 9s; animation-delay: -6s; }
.ab-hero__inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: minmax(0, 1fr) 288px;
  column-gap: clamp(32px, 5vw, 88px); align-items: start;
}
.ab-hero__main { max-width: 640px; }
.ab-hero__inner > * { animation: pdRise .85s var(--e-out) backwards; }
.ab-hero__inner > *:nth-child(1) { animation-delay: .04s; }
.ab-hero__inner > *:nth-child(2) { animation-delay: .14s; }
.ab-hero__inner > *:nth-child(3) { animation-delay: .24s; }
.ab-hero__lead { margin-top: var(--s-5); font-size: clamp(1rem, 1.3vw, 1.14rem); line-height: 1.8; color: var(--c-slate); }

/* Hero 右侧：治未病竖排引文 */
.ab-hero__aside { justify-self: end; width: 100%; max-width: 288px; padding-top: 6px; }
.ab-hero__quote {
  position: relative; overflow: hidden;
  display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between;
  min-height: 348px; padding: 28px 26px 24px;
  border-radius: var(--r-xl);
  background:
    radial-gradient(240px 200px at 100% 100%, rgba(48, 174, 36, .16), transparent 70%),
    linear-gradient(160deg, #FFFFFF, var(--c-haze));
  border: 1px solid rgba(48, 174, 36, .2);
  box-shadow: var(--sh-md);
  color: var(--c-ink);
}
.ab-hero__quote::after {
  content: ""; position: absolute; right: -64px; bottom: -64px;
  width: 200px; height: 200px; border-radius: 50%;
  border: 1px solid rgba(48, 174, 36, .22);
}
.ab-hero__quote-k {
  font-size: var(--fs-micro); letter-spacing: .16em; text-transform: uppercase;
  color: var(--c-brand-700);
}
.ab-hero__quote-t {
  display: flex; gap: 16px; margin: 22px 0;
  padding-left: 2px;
}
.ab-hero__quote-t span {
  writing-mode: vertical-rl; text-orientation: upright;
  font-size: 1.28rem; font-weight: 700; letter-spacing: .2em; line-height: 1.35;
  font-family: "Songti SC", "Source Han Serif SC", serif;
}
.ab-hero__quote-t span:last-child { color: var(--c-brand-600); }
.ab-hero__quote-src { font-size: var(--fs-micro); color: var(--c-mute); letter-spacing: .1em; }

/* 关键数字 */
.ab-stats {
  position: relative; z-index: 1; grid-column: 1 / -1;
  margin-top: clamp(30px, 4vw, 48px);
  display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-4);
}
.ab-stat {
  padding: var(--s-5); border-radius: var(--r-lg);
  background: var(--c-paper); border: 1px solid var(--c-line);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base);
}
.ab-stat:hover { transform: translateY(-4px); box-shadow: var(--sh-md); border-color: var(--c-brand-100); }
.ab-stat__n {
  display: block; font-family: var(--font-latin);
  font-size: clamp(1.7rem, 2.6vw, 2.3rem); line-height: 1.25; font-weight: 700;
  color: var(--c-brand-700);
}
.ab-stat__t { display: block; margin-top: 4px; font-size: var(--fs-sm); font-weight: 600; color: var(--c-ink); }
.ab-stat__d { display: block; margin-top: 4px; font-size: var(--fs-xs); color: var(--c-mute); line-height: 1.6; }

/* ---------- 子页切换 ---------- */
.ab-tabs {
  position: sticky; top: var(--header-h); z-index: 30;
  background: rgba(255, 255, 255, .92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--c-line);
}
.ab-tabs__inner { display: flex; gap: clamp(4px, 2vw, 18px); position: relative; }
.ab-tab {
  position: relative; appearance: none; border: 0; background: none; cursor: pointer;
  padding: 16px 4px; margin-right: clamp(12px, 3vw, 34px);
  font-size: var(--fs-sm); font-weight: 600; color: var(--c-mute);
  transition: color var(--t-fast) var(--e-out);
}
.ab-tab:hover { color: var(--c-brand-600); }
.ab-tab.is-active { color: var(--c-brand-700); }
.ab-tab__en { display: block; font-family: var(--font-latin); font-size: var(--fs-micro); letter-spacing: .12em; opacity: .6; text-transform: uppercase; }
.ab-tabs__ink {
  position: absolute; bottom: -1px; left: 0; height: 2px; border-radius: var(--r-pill);
  background: var(--c-brand-600);
  transition: transform .45s var(--e-out), width .45s var(--e-out);
  transform-origin: left center;
}

/* ---------- 面板 ---------- */
.ab-panel { display: none; }
.ab-panel.is-active { display: block; animation: abPanelIn .5s var(--e-out); }
@keyframes abPanelIn {
  from { opacity: 0; transform: translate3d(0, 14px, 0); }
  to { opacity: 1; transform: none; }
}

.ab-block { padding-block: clamp(40px, 5vw, 68px); }
.ab-panel .section { scroll-margin-top: calc(var(--header-h) + 88px); } /* 让开吸顶的子页切换条 */
.ab-block + .ab-block { border-top: 1px solid var(--c-line-2); }
.ab-block__head { max-width: 660px; margin-bottom: clamp(24px, 3.4vw, 40px); }
.ab-block__head h2 { margin-top: var(--s-4); }
.ab-block__head p { margin-top: var(--s-3); }

/* 使命 / 愿景 */
.ab-mv { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-5); }
.ab-mv__card {
  position: relative; overflow: hidden;
  padding: clamp(26px, 3.4vw, 42px); border-radius: var(--r-xl);
  border: 1px solid var(--c-line); background: var(--c-paper);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out);
}
.ab-mv__card:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.ab-mv__card--mission {
  background:
    radial-gradient(320px 220px at 100% 0%, rgba(48, 174, 36, .18), transparent 70%),
    linear-gradient(160deg, var(--c-haze), var(--c-sage));
  border-color: rgba(48, 174, 36, .22);
}
.ab-mv__card.ab-mv__card--mission h3 { color: var(--c-ink); }
.ab-mv__card.ab-mv__card--mission p { color: var(--c-slate); }
.ab-mv__tag { font-size: var(--fs-micro); letter-spacing: .16em; text-transform: uppercase; color: var(--c-brand-600); }
.ab-mv__card--mission .ab-mv__tag { color: var(--c-brand-700); }
.ab-mv__card--vision {
  background:
    radial-gradient(320px 220px at 0% 0%, rgba(0, 102, 180, .14), transparent 70%),
    linear-gradient(160deg, #FFFFFF, var(--c-wash));
  border-color: rgba(0, 102, 180, .18);
}
.ab-mv__card--vision .ab-mv__tag { color: var(--c-tech-700); }
.ab-mv__card h3 { margin-top: 12px; font-size: clamp(1.3rem, 2vw, 1.65rem); font-weight: 700; line-height: 1.5; }
.ab-mv__card p { margin-top: 12px; font-size: var(--fs-sm); line-height: 1.85; color: var(--c-slate); }

/* 业务版图 */
.ab-dirs { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s-4); }
.ab-dir {
  position: relative; overflow: hidden; padding: var(--s-6);
  border-radius: var(--r-lg); border: 1px solid var(--c-line); background: var(--c-paper);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base);
}
.ab-dir:hover { transform: translateY(-5px); box-shadow: var(--sh-md); border-color: var(--c-brand-100); }
.ab-dir__k { font-family: var(--font-latin); font-size: 1.6rem; font-weight: 700; color: var(--c-brand-200); line-height: 1; }
.ab-dir__t { margin-top: 10px; font-size: 1.05rem; font-weight: 700; color: var(--c-ink); }
.ab-dir__n { font-size: var(--fs-xs); color: var(--c-tech-600); margin-top: 4px; font-weight: 600; }
.ab-dir__d { margin-top: 10px; font-size: var(--fs-xs); color: var(--c-slate); line-height: 1.7; }

.ab-scenes { margin-top: var(--s-5); display: flex; flex-wrap: wrap; gap: var(--s-3); }
.ab-scene {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 9px 16px; border-radius: var(--r-pill);
  background: var(--c-paper); border: 1px solid var(--c-line);
  font-size: var(--fs-sm); color: var(--c-ink-2); font-weight: 500;
  transition: transform var(--t-fast) var(--e-out), border-color var(--t-fast), color var(--t-fast);
}
.ab-scene svg { width: 15px; height: 15px; color: var(--c-brand-600); }
.ab-scene:hover { transform: translateY(-2px); border-color: var(--c-brand-300); color: var(--c-brand-700); }

/* 核心技术（2×2 大卡，科技蓝点缀） */
.ab-tech { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-5); }
.ab-tech__item {
  padding: var(--s-7); border-radius: var(--r-lg);
  background: var(--c-paper); border: 1px solid var(--c-line); border-left: 2px solid var(--c-tech-400);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base);
}
.ab-tech__item:hover { transform: translateY(-4px); box-shadow: var(--sh-md); border-left-color: var(--c-tech-600); }
.ab-tech__n {
  display: block; font-family: var(--font-latin); font-size: var(--fs-xs);
  color: var(--c-tech-600); letter-spacing: .18em; margin-bottom: 10px;
}
.ab-tech__item h3 { font-size: 1.08rem; font-weight: 700; color: var(--c-ink); }
.ab-tech__item p { margin-top: 10px; font-size: var(--fs-sm); color: var(--c-slate); line-height: 1.78; }

/* 资质：三列卡片 */
.ab-certs { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-4); }
.ab-cert {
  display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
  min-height: 178px; padding: clamp(22px, 2.6vw, 30px);
  border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-paper);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base);
}
.ab-cert:hover { transform: translateY(-3px); box-shadow: var(--sh-md); border-color: var(--c-brand-100); }
.ab-cert > svg {
  width: 42px; height: 42px; padding: 11px; flex: none;
  border-radius: var(--r-sm); background: var(--c-brand-050); color: var(--c-brand-600);
}
.ab-cert__t { margin-top: auto; padding-top: 18px; font-size: 1.02rem; font-weight: 700; color: var(--c-ink); }
.ab-cert__d { margin-top: 5px; font-size: var(--fs-xs); color: var(--c-mute); line-height: 1.7; }

/* 专家团队：核心成员 + 特约席位 + 学科覆盖 */
.ab-team-lead { display: block; }
.ab-member {
  display: flex; flex-direction: column; gap: var(--s-5);
  padding: clamp(24px, 3vw, 38px); border-radius: var(--r-lg);
  background: var(--c-paper); border: 1px solid var(--c-line);
}
.ab-member--lead {
  display: grid; grid-template-columns: minmax(0, .74fr) minmax(0, 1.26fr);
  gap: clamp(24px, 4vw, 64px); align-items: start;
  border-left: 2px solid var(--c-brand-400);
}
.ab-member__l { display: flex; flex-direction: column; gap: var(--s-5); }
.ab-member__head { display: flex; align-items: center; gap: var(--s-4); }
.ab-member__avatar {
  width: 68px; height: 68px; border-radius: 50%; flex: none;
  display: grid; place-items: center; color: #fff;
  font-size: 1.5rem; font-weight: 700; background: var(--c-brand-600);
}
.ab-member--lead .ab-member__avatar { width: 78px; height: 78px; font-size: 1.75rem; }
.ab-member__id { min-width: 0; }
.ab-member__name { font-size: 1.24rem; font-weight: 800; color: var(--c-ink); letter-spacing: .04em; }
.ab-member__role { margin-top: 3px; font-size: var(--fs-sm); color: var(--c-brand-600); }
.ab-member__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ab-member__tags span {
  font-size: var(--fs-micro); padding: 4px 10px; border-radius: var(--r-xs);
  background: var(--c-brand-050); color: var(--c-brand-700);
}
.ab-member__cols {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-5) var(--s-6);
}
.ab-member__cols h4 {
  font-size: var(--fs-xs); font-weight: 700; color: var(--c-ink);
  display: flex; align-items: center; gap: 6px;
}
.ab-member__cols h4::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--c-tech-500); flex: none; }
.ab-member__cols p { margin-top: 7px; font-size: var(--fs-xs); color: var(--c-slate); line-height: 1.78; }
.ab-member__bio {
  margin-top: auto; padding-top: 18px; border-top: 1px solid var(--c-line-2);
  font-size: var(--fs-xs); color: var(--c-slate); line-height: 1.85;
}

/* 特约专家 / 席位开放：单行条 */
.ab-guest { margin-top: var(--s-4); border-top: 1px solid var(--c-line); }
.ab-guest__row {
  display: grid; grid-template-columns: 92px 128px minmax(0, 1fr) auto;
  align-items: center; gap: var(--s-4);
  padding: 17px 10px; border-bottom: 1px solid var(--c-line);
}
.ab-guest__k { font-size: var(--fs-micro); letter-spacing: .14em; color: var(--c-brand-600); }
.ab-guest__name { font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink); }
.ab-guest__d { font-size: var(--fs-xs); color: var(--c-mute); line-height: 1.7; }
.ab-guest__link {
  display: inline-flex; align-items: center; gap: 6px; flex: none;
  font-size: var(--fs-xs); font-weight: 600; color: var(--c-brand-700);
}
.ab-guest__link svg { width: 13px; height: 13px; }
.ab-guest__link:hover { color: var(--c-brand-500); }
/* 区块内小标题 */
.ab-sub {
  display: flex; align-items: center; gap: 10px;
  margin: var(--s-7) 0 var(--s-4);
  font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink); letter-spacing: .06em;
}
.ab-sub::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: var(--c-brand-500); flex: none; }

/* 学科覆盖 */
.ab-team { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-4); }
.ab-team__item {
  padding: var(--s-5) var(--s-6); border-radius: var(--r-md); background: var(--c-paper);
  border: 1px solid var(--c-line);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base);
}
.ab-team__item:hover { transform: translateY(-3px); box-shadow: var(--sh-md); border-color: var(--c-brand-100); }
.ab-team__ico {
  width: 38px; height: 38px; border-radius: var(--r-sm, 6px); display: grid; place-items: center;
  background: var(--c-brand-050); color: var(--c-brand-600);
}
.ab-team__ico svg { width: 21px; height: 21px; }
.ab-team__t { margin-top: var(--s-4); font-size: 1rem; font-weight: 700; color: var(--c-ink); }
.ab-team__d { margin-top: 6px; font-size: var(--fs-xs); color: var(--c-slate); line-height: 1.7; }

/* 联系卡 + 二维码 */
.ab-contact {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  gap: clamp(24px, 4vw, 48px); align-items: center;
  padding: clamp(24px, 3.6vw, 44px); border-radius: var(--r-xl);
  background: var(--c-brand-050);
  border: 1px solid var(--c-brand-100);
}
.ab-contact__row { display: flex; align-items: center; gap: 10px; font-size: var(--fs-sm); color: var(--c-ink-2); margin-top: var(--s-4); }
.ab-contact__row svg { width: 17px; height: 17px; color: var(--c-brand-600); flex: none; }
.ab-contact__row a:hover { color: var(--c-brand-700); }
.ab-qr { display: flex; gap: var(--s-5); justify-content: flex-end; flex-wrap: wrap; }
.ab-qr__item { text-align: center; }
.ab-qr__box {
  display: grid; place-items: center; width: 96px; height: 96px; padding: 6px;
  background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-md);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out);
}
.ab-qr__item:hover .ab-qr__box { transform: translateY(-3px); box-shadow: var(--sh-md); }
.ab-qr__box img { width: 100%; height: auto; display: block; }
.ab-qr__lbl { margin-top: 8px; font-size: var(--fs-micro); color: var(--c-mute); }

/* ---------- 合作伙伴 ---------- */
.ab-ways { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-4); }
.ab-way {
  padding: var(--s-6); border-radius: var(--r-lg); background: var(--c-paper);
  border: 1px solid var(--c-line);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out);
}
.ab-way:hover { transform: translateY(-4px); box-shadow: var(--sh-md); }
.ab-way__n { font-family: var(--font-latin); font-size: var(--fs-xs); color: var(--c-tech-600); letter-spacing: .1em; }
.ab-way__t { margin-top: 8px; font-size: 1.02rem; font-weight: 700; color: var(--c-ink); }
.ab-way__d { margin-top: 8px; font-size: var(--fs-sm); color: var(--c-slate); line-height: 1.72; }

.ab-logowall { display: grid; grid-template-columns: repeat(6, 1fr); gap: var(--s-3); }
.ab-logo {
  aspect-ratio: 16 / 9; border-radius: var(--r-md);
  display: grid; place-items: center;
  background: var(--c-paper); border: 1px solid var(--c-line); color: var(--c-mute);
  font-size: var(--fs-micro); letter-spacing: .06em;
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base), color var(--t-base);
}
.ab-logo:hover { transform: translateY(-3px); box-shadow: var(--sh-md); border-color: var(--c-brand-100); color: var(--c-brand-600); }

/* ---------- 人才招聘 ---------- */
.ab-jobs { display: grid; gap: var(--s-3); }
.ab-job {
  border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-paper);
  overflow: hidden; transition: border-color var(--t-base), box-shadow var(--t-base);
}
.ab-job:hover { border-color: var(--c-brand-100); }
.ab-job.is-open { box-shadow: var(--sh-md); border-color: var(--c-brand-100); }
.ab-job__head {
  width: 100%; display: flex; align-items: center; gap: var(--s-4);
  padding: var(--s-5) var(--s-6); background: none; border: 0; cursor: pointer; text-align: left;
}
.ab-job__t { font-size: 1rem; font-weight: 700; color: var(--c-ink); flex: 1; }
.ab-job__meta { font-size: var(--fs-xs); color: var(--c-mute); display: flex; gap: var(--s-4); flex-wrap: wrap; }
.ab-job__tag {
  font-size: var(--fs-micro); padding: 3px 10px; border-radius: var(--r-pill);
  background: var(--c-brand-050); color: var(--c-brand-700); border: 1px solid var(--c-brand-100);
}
.ab-job__chev { width: 16px; height: 16px; color: var(--c-mute); flex: none; transition: transform var(--t-base) var(--e-out); }
.ab-job.is-open .ab-job__chev { transform: rotate(180deg); }
.ab-job__body {
  max-height: 0; overflow: hidden;
  transition: max-height .45s var(--e-out), opacity .35s var(--e-out);
  opacity: 0;
}
.ab-job.is-open .ab-job__body { max-height: 460px; opacity: 1; }
.ab-job__body-in { padding: 0 var(--s-6) var(--s-6); font-size: var(--fs-sm); color: var(--c-slate); line-height: 1.8; }
.ab-job__body-in h4 { margin-top: var(--s-4); font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink); }
.ab-job__body-in ul { margin-top: 6px; padding-left: 18px; }
.ab-job__body-in li { margin-top: 4px; }

.ab-welfare { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s-4); }
.ab-welfare__item {
  display: flex; align-items: center; gap: var(--s-4);
  padding: var(--s-5); border-radius: var(--r-lg); background: var(--c-paper); border: 1px solid var(--c-line);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out);
}
.ab-welfare__item:hover { transform: translateY(-3px); box-shadow: var(--sh-md); }
.ab-welfare__ico { width: 38px; height: 38px; border-radius: var(--r-md); display: grid; place-items: center; background: var(--c-brand-050); color: var(--c-brand-600); flex: none; }
.ab-welfare__ico svg { width: 19px; height: 19px; }
.ab-welfare__t { font-size: var(--fs-sm); font-weight: 600; color: var(--c-ink); }
.ab-welfare__d { font-size: var(--fs-xs); color: var(--c-mute); margin-top: 3px; }

/* 投递表单（前端演示） */
.ab-form {
  padding: clamp(24px, 3.6vw, 40px); border-radius: var(--r-xl);
  background: var(--c-paper); border: 1px solid var(--c-line); box-shadow: var(--sh-sm);
}
.ab-form__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-4); }
.ab-field { display: flex; flex-direction: column; gap: 7px; }
.ab-field--full { grid-column: 1 / -1; }
.ab-field label { font-size: var(--fs-xs); font-weight: 600; color: var(--c-ink-2); }
.ab-field input, .ab-field select, .ab-field textarea {
  padding: 11px 14px; border-radius: var(--r-md);
  border: 1px solid var(--c-line); background: #fff;
  font-size: var(--fs-sm); color: var(--c-ink); font-family: inherit;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.ab-field input:focus, .ab-field select:focus, .ab-field textarea:focus {
  outline: none; border-color: var(--c-brand-400); box-shadow: 0 0 0 3px rgba(48, 174, 36, .14);
}
.ab-field textarea { resize: vertical; min-height: 96px; }
.ab-field__err { font-size: var(--fs-micro); color: #C0392B; min-height: 14px; }
.ab-field.is-bad input, .ab-field.is-bad select, .ab-field.is-bad textarea { border-color: #C0392B; }
.ab-form__foot { margin-top: var(--s-5); display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap; }
.ab-form__tip { font-size: var(--fs-xs); color: var(--c-mute); }
.ab-form__ok {
  margin-top: var(--s-4); padding: 12px 16px; border-radius: var(--r-md);
  background: var(--c-brand-050); border: 1px solid var(--c-brand-100);
  font-size: var(--fs-sm); color: var(--c-brand-700); display: none;
}
.ab-form__ok.is-show { display: block; animation: pdRise .45s var(--e-out); }

/* ============================================================
   公司介绍补充模块（内容取自官方资料）
   ============================================================ */

/* 公司简介：规格表式要点行（标签列 + 内容列 + 序号） */
.ab-profile { display: block; border-top: 1px solid var(--c-line); }
.ab-prof {
  display: grid; grid-template-columns: 116px minmax(0, 1fr) 54px;
  column-gap: clamp(16px, 2.6vw, 40px); row-gap: 6px; align-content: start;
  padding: 26px 10px; border-bottom: 1px solid var(--c-line);
  background: none; border-radius: 0;
  transition: background-color var(--t-base) var(--e-out);
}
.ab-prof:hover { background: rgba(48, 174, 36, .05); transform: none; box-shadow: none; }
.ab-prof:hover .ab-prof__k { color: var(--c-brand-600); }
.ab-prof:hover .ab-prof__i { color: var(--c-brand-500); }
.ab-prof__k {
  grid-column: 1; grid-row: 1 / span 2; padding-top: 3px;
  font-size: var(--fs-sm); font-weight: 600; color: var(--c-mute); letter-spacing: .1em;
  transition: color var(--t-base) var(--e-out);
}
.ab-prof__t { grid-column: 2; grid-row: 1; margin-top: 0; font-size: 1.06rem; font-weight: 700; color: var(--c-ink); }
.ab-prof__d { grid-column: 2; grid-row: 2; margin-top: 2px; font-size: var(--fs-sm); color: var(--c-slate); line-height: 1.74; max-width: 70ch; }
.ab-prof__i {
  grid-column: 3; grid-row: 1 / span 2; padding-top: 3px;
  text-align: right; font-family: var(--font-latin); font-size: var(--fs-xs);
  color: var(--c-brand-200); letter-spacing: .12em;
  transition: color var(--t-base) var(--e-out);
}

/* 发展定位 */
.ab-pos { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(24px, 4vw, 48px); align-items: center; }
.ab-pos__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.ab-pos__tag {
  padding: 9px 15px; border-radius: var(--r-pill);
  background: var(--c-paper); border: 1px solid var(--c-line);
  font-size: var(--fs-sm); color: var(--c-ink-2);
  transition: border-color var(--t-fast), color var(--t-fast), transform var(--t-fast);
}
.ab-pos__tag:hover { border-color: var(--c-brand-300); color: var(--c-brand-700); transform: translateY(-2px); }
.ab-pos__concl {
  padding: clamp(26px, 3.4vw, 40px); border-radius: var(--r-lg); color: var(--c-ink);
  background:
    radial-gradient(300px 240px at 0% 0%, rgba(0, 102, 180, .14), transparent 70%),
    linear-gradient(150deg, var(--c-wash), var(--c-haze));
  border: 1px solid rgba(0, 102, 180, .18);
  height: 100%; display: flex; flex-direction: column; justify-content: center;
}
.ab-pos__concl h3 { margin-top: 10px; font-size: clamp(1.1rem, 1.9vw, 1.5rem); font-weight: 700; line-height: 1.45; }
.ab-pos__concl p { margin-top: 12px; font-size: var(--fs-sm); color: var(--c-slate); line-height: 1.78; }

/* 创始人 */
.ab-founder { display: grid; grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); gap: clamp(24px, 4vw, 48px); align-items: start; }
.ab-founder__card { padding: var(--s-7); border-radius: var(--r-lg); background: var(--c-mist); border: 1px solid var(--c-line); text-align: center; }
.ab-founder__avatar {
  width: 104px; height: 104px; margin: 0 auto; border-radius: 50%;
  display: grid; place-items: center; color: #fff; font-size: 2.1rem; font-weight: 700;
  background: var(--c-brand-600);
  box-shadow: 0 10px 26px rgba(11, 42, 24, .18);
}
.ab-founder__name { margin-top: 16px; font-size: 1.32rem; font-weight: 800; color: var(--c-ink); letter-spacing: .04em; }
.ab-founder__role { margin-top: 5px; font-size: var(--fs-sm); color: var(--c-brand-600); }
.ab-founder__tags { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.ab-founder__tag { font-size: var(--fs-micro); padding: 4px 10px; border-radius: var(--r-xs); background: var(--c-paper); color: var(--c-slate); }
.ab-founder__cols { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-5); }
.ab-founder__col { padding: var(--s-5) var(--s-6); background: var(--c-paper); border: 1px solid var(--c-line); border-radius: var(--r-lg); border-left: 2px solid var(--c-tech-400); }
.ab-founder__col h4 { display: flex; align-items: center; gap: 7px; font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink); }
.ab-founder__col h4::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--c-tech-500); flex: none; }
.ab-founder__col ul { margin-top: 9px; display: grid; gap: 7px; }
.ab-founder__col li { font-size: var(--fs-xs); color: var(--c-slate); line-height: 1.72; padding-left: 12px; position: relative; }
.ab-founder__col li::before { content: ""; position: absolute; left: 0; top: 9px; width: 4px; height: 1px; background: var(--c-brand-300); }

/* 核心体系：三列矩阵（无卡片、细线分隔） */
.ab-theory { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--c-line); }
.ab-th {
  position: relative; display: flex; flex-direction: column;
  padding: 30px 30px 32px 24px;
  border-bottom: 1px solid var(--c-line);
  transition: background-color var(--t-base) var(--e-out);
}
.ab-th:not(:nth-child(3n)) { border-right: 1px solid var(--c-line); }
.ab-th:hover { background: rgba(48, 174, 36, .045); }
.ab-th__k { display: block; font-family: var(--font-latin); font-size: var(--fs-micro); letter-spacing: .2em; color: var(--c-brand-400); }
.ab-th__t { margin-top: 11px; font-size: 1.02rem; font-weight: 700; color: var(--c-ink); line-height: 1.55; }
.ab-th__d { margin-top: 10px; font-size: var(--fs-sm); color: var(--c-slate); line-height: 1.8; }
.ab-th__en { margin-top: auto; padding-top: 16px; font-size: var(--fs-micro); color: var(--c-mute); letter-spacing: .05em; font-family: var(--font-latin); }

/* 应用案例 */
.ab-cases-wrap {
  display: grid; grid-template-columns: 1.2fr 1fr; gap: 0;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--c-line); border-radius: var(--r-lg); background: var(--c-paper);
}
.ab-cases-col + .ab-cases-col {
  border-left: 1px solid var(--c-line-2);
  margin-left: clamp(20px, 3vw, 40px); padding-left: clamp(20px, 3vw, 40px);
}
.ab-cases-col .ab-cases__t { margin-top: 0; }
.ab-cases { display: flex; flex-wrap: wrap; gap: 9px; }
.ab-case {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 8px 13px; border-radius: var(--r-pill);
  background: var(--c-paper); border: 1px solid var(--c-line);
  font-size: var(--fs-sm); color: var(--c-ink-2); white-space: nowrap;
  transition: transform var(--t-fast) var(--e-out), border-color var(--t-fast), color var(--t-fast);
}
.ab-case svg { width: 16px; height: 16px; color: var(--c-brand-600); flex: none; }
.ab-case:hover { transform: translateY(-2px); border-color: var(--c-brand-300); color: var(--c-brand-700); }
.ab-cases__t {
  display: flex; align-items: center; gap: 10px;
  margin: var(--s-6) 0 var(--s-4);
  font-size: var(--fs-sm); font-weight: 700; color: var(--c-ink); letter-spacing: .06em;
}
.ab-cases__t::before { content: ""; width: 3px; height: 14px; border-radius: 2px; background: var(--c-tech-500); flex: none; }
.ab-cases__t:first-of-type { margin-top: 0; }

/* ---------- 响应式 ---------- */
@media (max-width: 1024px) {
  .ab-hero__inner { grid-template-columns: 1fr; }
  .ab-hero__aside { max-width: none; padding-top: var(--s-2); }
  .ab-hero__quote {
    min-height: 0; padding: 22px 24px; border-radius: var(--r-lg);
    gap: 10px;
  }
  .ab-hero__quote-t { margin: 4px 0 8px; gap: 10px; }
  .ab-hero__quote-t span {
    writing-mode: horizontal-tb; text-orientation: mixed;
    font-size: 1.06rem; letter-spacing: .12em; white-space: nowrap;
  }
  .ab-hero__quote-src { margin-top: 2px; }
  .ab-stats { grid-template-columns: repeat(2, 1fr); }
  .ab-team { grid-template-columns: repeat(2, 1fr); }
  .ab-member--lead { grid-template-columns: 1fr; gap: var(--s-6); }
  .ab-theory { grid-template-columns: repeat(2, 1fr); }
  .ab-th:nth-child(odd) { border-right: 1px solid var(--c-line); }
  .ab-th:nth-child(even) { border-right: 0; }
  .ab-cases-wrap { grid-template-columns: 1fr; gap: 0; }
  .ab-cases-col + .ab-cases-col {
    border-left: 0; margin-left: 0; padding-left: 0;
    border-top: 1px solid var(--c-line-2); margin-top: var(--s-6); padding-top: var(--s-6);
  }
  .ab-pos { grid-template-columns: 1fr; }
  .ab-ways { grid-template-columns: 1fr; }
  .ab-logowall { grid-template-columns: repeat(4, 1fr); }
  .ab-welfare { grid-template-columns: repeat(2, 1fr); }
  .ab-contact { grid-template-columns: 1fr; }
  .ab-qr { justify-content: flex-start; }
}
@media (max-width: 768px) {
  .ab-mv { grid-template-columns: 1fr; }
  .ab-profile { grid-template-columns: 1fr; }
  .ab-prof { grid-template-columns: 1fr; row-gap: 6px; padding: 22px 4px; }
  .ab-prof__k { grid-row: 1; }
  .ab-prof__t { grid-column: 1; grid-row: 2; }
  .ab-prof__d { grid-column: 1; grid-row: 3; }
  .ab-prof__i { display: none; }
  .ab-member__cols { grid-template-columns: 1fr; }
  .ab-guest__row { grid-template-columns: 1fr auto; row-gap: 6px; }
  .ab-guest__k { grid-column: 1; }
  .ab-guest__name { grid-column: 1; grid-row: 2; }
  .ab-guest__d { grid-column: 1; grid-row: 3; }
  .ab-guest__link { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
  .ab-theory { grid-template-columns: 1fr; }
  .ab-th:nth-child(n) { border-right: 0; padding: 24px 6px; }
  .ab-certs { grid-template-columns: 1fr; }
  .ab-team { grid-template-columns: 1fr; }
  .ab-logowall { grid-template-columns: repeat(2, 1fr); }
  .ab-welfare { grid-template-columns: 1fr; }
  .ab-form__grid { grid-template-columns: 1fr; }
  .ab-tabs__inner { overflow-x: auto; }
  .ab-job__head { flex-wrap: wrap; gap: var(--s-3); }
  .ab-job__t { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ab-hero::before, .ab-hero__dots i, .ab-hero__inner > * { animation: none !important; }
  .ab-panel.is-active { animation: none !important; }
  [data-rise] { opacity: 1 !important; transform: none !important; }
}

/* ============================================================
   版式升级 · 统一「细线 + 大留白 + 章节编号」的叙述语言
   ------------------------------------------------------------
   原来一半是圆角卡片、一半是细线表格，两套语言混在一起显得零碎。
   这里把全页收敛成一套：去卡片外壳，用细线和留白分区，
   标题左、引言右，每个章节带一个大号浅色编号。
   ============================================================ */

/* ---------- 一、章节头：左标题 / 右引言 ---------- */
.ab-panel.is-active { counter-reset: absec; }
.ab-panel.is-active > .section { counter-increment: absec; }

.ab-block__head {
  position: relative;
  max-width: none;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  column-gap: clamp(32px, 5vw, 88px);
  row-gap: 14px;
  align-items: end;
  margin-bottom: clamp(34px, 4.4vw, 60px);
  padding-bottom: clamp(18px, 2vw, 26px);
  border-bottom: 1px solid var(--c-line);
}
.ab-block__head .eyebrow { grid-column: 1; grid-row: 1; }
.ab-block__head h2,
.ab-block__head .t-h2 {
  grid-column: 1; grid-row: 2;
  margin-top: 0;
  font-size: clamp(1.9rem, 3vw, 2.75rem);
  line-height: 1.2; letter-spacing: -.014em;
}
.ab-block__head p,
.ab-block__head .t-lead {
  grid-column: 2; grid-row: 2;
  margin-top: 0; max-width: 44ch;
  font-size: clamp(.98rem, 1.05vw, 1.06rem); line-height: 1.85;
}
/* 没有引言的章节，标题单独占左栏即可 */
.ab-block__head:not(:has(.t-lead)) .t-h2 { grid-column: 1 / 2; }

/* 章节编号已取消（2026-11-02）：编号只在卡片内部出现一次，
   章节头不再叠一层大号数字，避免同一屏里 01/02/03 反复出现 */

/* ---------- 二、首屏数字：从卡片改为数据条 ---------- */
.ab-stats {
  gap: 0;
  border-top: 1px solid var(--c-line);
  padding-top: clamp(18px, 2.2vw, 26px);
}
.ab-stat {
  background: none; border: 0; border-radius: 0; box-shadow: none;
  padding: 0 clamp(18px, 2.4vw, 34px);
  border-right: 1px solid var(--c-line-2);
}
.ab-stat:first-child { padding-left: 0; }
.ab-stat:last-child { border-right: 0; padding-right: 0; }
.ab-stat:hover { transform: none; box-shadow: none; border-color: var(--c-line-2); }
.ab-stat__n { font-size: clamp(1.9rem, 3vw, 2.7rem); font-weight: 400; letter-spacing: -.02em; color: var(--c-brand-700); }

/* ---------- 三、使命与愿景：两张「章节」，不再是两张卡 ---------- */
.ab-mv { gap: clamp(28px, 4.4vw, 72px); }
.ab-mv__card,
.ab-mv__card.ab-mv__card--mission,
.ab-mv__card.ab-mv__card--vision {
  position: relative;
  padding: clamp(22px, 2.4vw, 30px) 0 0;
  border: 0; border-top: 1px solid var(--c-line);
  border-radius: 0; background: none; box-shadow: none;
}
.ab-mv__card::before {
  content: ""; position: absolute; left: 0; top: -1px;
  width: 46px; height: 2px; background: var(--c-brand-500);
}
.ab-mv__card.ab-mv__card--vision::before { background: var(--c-tech-500); }
.ab-mv__card:hover { transform: none; box-shadow: none; }
.ab-mv__card h3 {
  margin-top: 16px;
  font-size: clamp(1.28rem, 2vw, 1.72rem); line-height: 1.42; letter-spacing: -.008em;
}
.ab-mv__card p {
  margin-top: 14px; max-width: 46ch;
  font-size: var(--fs-body); line-height: 1.92; color: var(--c-slate);
}

/* ---------- 四、发展定位：标签云 → 规整清单 ---------- */
.ab-pos {
  grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr);
  gap: clamp(32px, 5vw, 76px); align-items: stretch;
}
.ab-pos__tags {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0; border-top: 1px solid var(--c-line);
}
.ab-pos__tag {
  display: flex; align-items: baseline; gap: 10px;
  padding: 14px 10px 14px 0;
  border: 0; border-bottom: 1px solid var(--c-line-2);
  border-radius: 0; background: none;
  font-size: var(--fs-sm); color: var(--c-ink-2); line-height: 1.5;
  transition: color var(--t-fast) var(--e-out), background-color var(--t-fast);
}
.ab-pos__tag::before {
  content: ""; width: 4px; height: 4px; border-radius: 50%; flex: none;
  background: var(--c-brand-400); transform: translateY(-3px);
}
.ab-pos__tag:hover { color: var(--c-ink); background: rgba(48, 174, 36, .04); transform: none; border-color: var(--c-line-2); }
.ab-pos__concl {
  padding: clamp(24px, 2.8vw, 36px) clamp(22px, 2.8vw, 34px);
  border: 0; border-left: 2px solid var(--c-brand-500);
  border-radius: 0;
  background: linear-gradient(180deg, rgba(48, 174, 36, .06), rgba(48, 174, 36, .012));
}
.ab-pos__concl h3 { font-size: clamp(1.18rem, 1.9vw, 1.52rem); line-height: 1.4; }

/* ---------- 五、专家团队：去外框，信息靠留白分隔 ---------- */
.ab-member,
.ab-member--lead {
  border: 0; border-top: 1px solid var(--c-line); border-left: 0;
  border-radius: 0; background: none;
  padding: clamp(24px, 3vw, 38px) 0 0;
}
.ab-guest { margin-top: clamp(24px, 3vw, 40px); border-top: 1px solid var(--c-line); }
.ab-guest__row { padding: 20px 0; }
.ab-member__avatar { width: 60px; height: 60px; font-size: 1.32rem; }
.ab-member--lead .ab-member__avatar { width: 66px; height: 66px; font-size: 1.5rem; }

/* ---------- 六、核心体系：编号放大，压过正文 ---------- */
.ab-th { padding: 28px 28px 30px 0; }
.ab-th:not(:nth-child(3n+1)) { padding-left: 28px; }
.ab-th:not(:nth-child(3n)) { border-right: 1px solid var(--c-line-2); }
.ab-th__k { font-size: .68rem; letter-spacing: .24em; color: var(--c-brand-500); }
.ab-th__t { margin-top: 12px; font-size: 1.06rem; line-height: 1.5; }
.ab-th__d { font-size: var(--fs-sm); line-height: 1.85; }
.ab-th__en { font-size: .66rem; letter-spacing: .1em; opacity: .75; }

/* ---------- 七、应用案例：外框去掉，改为两栏清单 ---------- */
.ab-cases-wrap {
  border: 0; border-radius: 0; background: none; padding: 0;
  gap: 0;
}
.ab-cases-col + .ab-cases-col {
  border-left: 1px solid var(--c-line);
  margin-left: clamp(20px, 3.2vw, 48px); padding-left: clamp(20px, 3.2vw, 48px);
}
/* 案例：保留弹性排布（改 display 会把内部文字挤扁），只收敛外观 */
.ab-cases { display: flex; flex-wrap: wrap; gap: 8px 10px; }
.ab-case {
  display: inline-flex; align-items: center; gap: 7px;
  flex: 0 0 auto;
  padding: 8px 14px; border: 0; border-radius: var(--r-pill);
  background: rgba(48, 174, 36, .055);
  font-size: var(--fs-sm); color: var(--c-ink-2); white-space: nowrap;
}
.ab-case svg { color: var(--c-brand-400); }
.ab-case:hover { transform: none; border-color: var(--c-line); color: var(--c-ink); }

/* ---------- 八、资质：三列卡片 → 三条横向记录 ---------- */
.ab-certs { gap: clamp(20px, 3.4vw, 48px); }
.ab-cert {
  display: block; min-height: 0;
  padding: clamp(20px, 2.4vw, 26px) 0 0;
  border: 0; border-top: 1px solid var(--c-line); border-radius: 0; background: none;
}
.ab-cert:hover { transform: none; box-shadow: none; border-color: var(--c-line); }
.ab-cert > svg {
  width: 26px; height: 26px; padding: 0; margin: 0;
  background: none; border-radius: 0; color: var(--c-brand-500);
}
.ab-cert__t { display: block; margin-top: 16px; padding-top: 0; font-size: 1.06rem; }
.ab-cert__d { display: block; margin-top: 6px; }

/* ---------- 九、联系我们：色块 → 两栏 + 细线 ---------- */
.ab-contact {
  border: 0; border-top: 1px solid var(--c-line); border-radius: 0;
  background: none; padding: clamp(26px, 3.4vw, 42px) 0 0;
  align-items: start;
}
.ab-contact__row { margin-top: 16px; }
.ab-qr { gap: clamp(16px, 2.4vw, 30px); }
.ab-qr__box { border: 0; background: none; padding: 0; box-shadow: none; }

/* ---------- 十、合作伙伴 / 招聘面板同步收敛 ---------- */
.ab-way, .ab-welfare__item, .ab-team__item {
  background: none; border: 0; border-top: 1px solid var(--c-line);
  border-radius: 0; box-shadow: none;
  padding: clamp(18px, 2.2vw, 24px) 0 0;
}
.ab-way:hover, .ab-welfare__item:hover, .ab-team__item:hover {
  transform: none; box-shadow: none; border-color: var(--c-line);
}
.ab-way__t { margin-top: 11px; font-size: 1.06rem; }
.ab-logo {
  border: 1px solid var(--c-line); border-radius: var(--r-sm);
  background: transparent;
}
.ab-logo:hover { transform: none; box-shadow: none; border-color: var(--c-brand-300); }
.ab-job { border: 0; border-radius: 0; border-top: 1px solid var(--c-line); background: none; }
.ab-job.is-open { box-shadow: none; border-color: var(--c-line); }
.ab-job__head { padding: 20px 0; }
.ab-job__body-in { padding: 0 0 24px; }

/* ---------- 十一、窄屏回落 ---------- */
@media (max-width: 900px) {
  .ab-block__head { grid-template-columns: minmax(0, 1fr); row-gap: 12px; }
  .ab-block__head .eyebrow,
  .ab-block__head h2,
  .ab-block__head .t-h2,
  .ab-block__head p,
  .ab-block__head .t-lead { grid-column: 1; }
  .ab-block__head .eyebrow { grid-row: 1; }
  .ab-block__head h2, .ab-block__head .t-h2 { grid-row: 2; }
  .ab-block__head p, .ab-block__head .t-lead { grid-row: 3; max-width: none; }
  .ab-block__head::after { top: -4px; font-size: 2rem; }
  .ab-stats { grid-template-columns: repeat(2, 1fr); row-gap: 22px; }
  .ab-stat { padding: 0 16px; }
  .ab-stat:nth-child(2n) { border-right: 0; }
  .ab-stat:nth-child(2n+1) { padding-left: 0; }
  .ab-pos { grid-template-columns: 1fr; }
  .ab-pos__tags { grid-template-columns: 1fr; }
  .ab-cases-wrap { grid-template-columns: 1fr; }
  .ab-cases-col + .ab-cases-col {
    border-left: 0; border-top: 1px solid var(--c-line);
    margin: 24px 0 0; padding: 24px 0 0;
  }
  .ab-certs { grid-template-columns: 1fr; }
  .ab-case { flex: 0 0 auto; }
}

/* ---------- 十二、节奏与联系区微调 ---------- */
/* 相邻区块各带 115px 内边距，叠起来空隙过大，收到 100 以内 */
.ab-panel .section { padding-block: clamp(64px, 6.8vw, 104px); }

/* 联系区：右列改成收缩到内容宽，二维码不再被推到最右边 */
.ab-contact { grid-template-columns: minmax(0, 1fr) auto; gap: clamp(28px, 4vw, 72px); }
.ab-qr { justify-content: flex-start; }

@media (max-width: 900px) {
  .ab-contact { grid-template-columns: minmax(0, 1fr); }
  .ab-qr { justify-content: flex-start; }
}

/* 创始人：右侧信息列与左侧身份区之间拉一条细线，避免糊成一片 */
.ab-member--lead .ab-member__cols {
  border-left: 1px solid var(--c-line-2);
  padding-left: clamp(24px, 3vw, 52px);
}
@media (max-width: 900px) {
  .ab-member--lead .ab-member__cols { border-left: 0; padding-left: 0; }
}

/* ============================================================
   投递简历 · 邮箱直投（无表单）
   ============================================================ */
.ab-apply {
  max-width: 640px;
  padding: clamp(24px, 3.4vw, 40px);
  border-radius: var(--r-lg);
  background: linear-gradient(160deg, #FFFFFF 0%, #F4FAF2 100%);
  border: 1px solid var(--c-line);
  box-shadow: var(--sh-md, 0 18px 40px -28px rgba(18, 56, 31, .35));
}
.ab-apply__mail {
  display: flex; align-items: center; gap: 14px;
  padding: 16px 20px;
  border-radius: var(--r-md);
  background: #fff;
  border: 1px solid var(--c-brand-200, var(--c-line));
  color: var(--c-ink); text-decoration: none;
  transition: border-color var(--t-fast) var(--e-out), box-shadow var(--t-fast) var(--e-out), transform var(--t-fast) var(--e-out);
}
.ab-apply__mail:hover {
  border-color: var(--c-brand-500);
  box-shadow: 0 14px 30px -18px rgba(48, 174, 36, .55);
  transform: translateY(-2px);
}
.ab-apply__mail > svg:first-child { width: 20px; height: 20px; flex: none; color: var(--c-brand-600); }
.ab-apply__addr {
  flex: 1; min-width: 0;
  font-family: var(--font-latin);
  font-size: clamp(1.02rem, 1.6vw, 1.22rem); font-weight: 600;
  letter-spacing: .02em; word-break: break-all;
}
.ab-apply__arr { width: 16px; height: 16px; flex: none; color: var(--c-brand-500); transition: transform var(--t-fast) var(--e-out); }
.ab-apply__mail:hover .ab-apply__arr { transform: translateX(3px); }
.ab-apply__tips {
  display: flex; flex-wrap: wrap; gap: 8px 18px;
  margin-top: 16px;
}
.ab-apply__tip {
  position: relative;
  padding-left: 16px;
  font-size: var(--fs-xs); color: var(--c-mute); line-height: 1.7;
}
.ab-apply__tip::before {
  content: ""; position: absolute; left: 0; top: .62em;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--c-brand-300, var(--c-brand-500));
}

/* ============================================================
   2026-10 · 关于我们美化：引文竖排顺序、定位三组、九大理论九宫格
   ============================================================ */

/* 竖排引文按传统从右往左读：先「圣人不治已病」，再「治未病」 */
.ab-hero__quote-t { flex-direction: row-reverse; gap: 18px; justify-content: flex-end; }
.ab-hero__quote-t span:last-child { color: var(--c-brand-600); }

/* 发展定位：12 条散点 → 三组结构（技术 / 场景 / 方法） */
.ab-pos {
  grid-template-columns: minmax(0, 1.24fr) minmax(0, .76fr);
  gap: clamp(32px, 4.6vw, 68px);
  align-items: stretch;
}
.ab-pos__tags {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0 clamp(20px, 2.6vw, 40px);
  border-top: 0;
}
.ab-pos__grp { display: flex; flex-direction: column; min-width: 0; }
.ab-pos__grp-t {
  margin: 0 0 2px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--c-line);
  font-size: var(--fs-xs);
  font-weight: 700;
  letter-spacing: .06em;
  color: var(--c-brand-700);
}
.ab-pos__grp:nth-child(2) .ab-pos__grp-t { color: var(--c-tech-700); }
.ab-pos__grp:nth-child(3) .ab-pos__grp-t { color: var(--c-lime-700); }
.ab-pos__tag {
  padding: 12px 0;
  border-bottom: 1px solid var(--c-line-2);
  font-size: var(--fs-sm);
  line-height: 1.55;
  background: none;
}
.ab-pos__tag::before { width: 4px; height: 4px; background: var(--c-brand-300); }
.ab-pos__grp:nth-child(2) .ab-pos__tag::before { background: var(--c-tech-300); }
.ab-pos__grp:nth-child(3) .ab-pos__tag::before { background: var(--c-lime-300); }
.ab-pos__tag:last-child { border-bottom: 0; }

/* 九大理论体系：九宫格卡片，替代原来的表格分隔线 */
.ab-theory {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  border-top: 0;
}
.ab-th {
  padding: 26px 24px 22px;
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #FFFFFF 0%, #FBFDFB 100%);
  transition: transform .45s var(--e-out), box-shadow .45s var(--e-out),
              border-color .45s var(--e-out), background .45s var(--e-out);
}
.ab-th:not(:nth-child(3n)) { border-right: 1px solid var(--c-line); }
.ab-th:not(:nth-child(3n+1)) { padding-left: 24px; }
.ab-th:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
  border-color: var(--c-brand-200);
  background: linear-gradient(180deg, #FFFFFF 0%, var(--c-brand-050) 100%);
}
.ab-th__k {
  font-family: var(--font-latin);
  font-size: .7rem;
  letter-spacing: .22em;
  color: var(--c-brand-500);
}
.ab-th__t { margin-top: 14px; font-size: 1.12rem; font-weight: 700; line-height: 1.45; color: var(--c-ink); }
.ab-th__d { margin-top: 10px; font-size: var(--fs-sm); line-height: 1.85; color: var(--c-slate); }
.ab-th__en {
  margin-top: auto;
  padding-top: 18px;
  font-size: .64rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--c-tech-600);
  opacity: .82;
}

@media (max-width: 1024px) {
  .ab-pos { grid-template-columns: 1fr; gap: var(--s-8); }
  .ab-theory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-th:nth-child(n) { border-right: 1px solid var(--c-line); padding-left: 24px; }
  .ab-th:nth-child(even) { border-right: 1px solid var(--c-line); }
}
@media (max-width: 768px) {
  .ab-pos__tags { grid-template-columns: 1fr; gap: 0; }
  .ab-pos__grp + .ab-pos__grp { margin-top: var(--s-5); }
  .ab-theory { grid-template-columns: 1fr; }
  .ab-th:nth-child(n) { padding: 24px 20px 22px; }
}

/* 手机端隐藏章节大号编号，避免与眉标文字叠在一起 */
@media (max-width: 768px) {
  .ab-block__head::after { display: none; }
}

/* ============================================================
   关于我们 · 版式升级（2026-10）
   ------------------------------------------------------------
   1) 公司简介：四行改成四张卡
   2) 发展定位：标签堆改成三张能力卡
   3) 使命愿景：加色条与对比
   4) 九大理论：卡片化 + 悬停
   5) 新增「四位一体闭环」流程图
   ============================================================ */

/* ---- 1. 公司简介四卡 ---- */
.ab-profile {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 18px);
  border-top: 0;
}
.ab-prof {
  position: relative;
  display: flex; flex-direction: column;
  padding: clamp(22px, 2.2vw, 28px) clamp(20px, 2vw, 24px) clamp(24px, 2.4vw, 30px);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-paper);
  overflow: hidden;
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base) var(--e-out);
}
.ab-prof::before {
  content: "";
  position: absolute; left: 0; top: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, var(--c-brand-500), var(--c-brand-300));
  opacity: 0; transition: opacity var(--t-base) var(--e-out);
}
.ab-prof:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 32px -18px rgba(16, 48, 26, .28);
  border-color: var(--c-brand-200, var(--c-brand-100));
  background: var(--c-paper);
}
.ab-prof:hover::before { opacity: 1; }
.ab-prof__k {
  font-size: 11px; font-weight: 700; letter-spacing: .16em;
  color: var(--c-brand-600);
}
.ab-prof__t {
  margin-top: 14px;
  font-size: clamp(1.02rem, 1.25vw, 1.16rem);
  font-weight: 700; line-height: 1.45; color: var(--c-ink);
}
.ab-prof__d {
  margin-top: 9px;
  font-size: .855rem; line-height: 1.82; color: var(--c-slate);
}
.ab-prof__i {
  position: absolute; right: 16px; top: 14px;
  font-family: var(--font-latin);
  font-size: 1.9rem; font-weight: 700; line-height: 1;
  letter-spacing: .02em;
  color: var(--c-brand-050, #EAF6E8);
  pointer-events: none;
}

/* ---- 2. 发展定位三卡 ---- */
.ab-pos { align-items: stretch; }
.ab-pos__tags {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.4vw, 16px);
  align-content: start;
}
.ab-pos__grp {
  padding: clamp(20px, 2vw, 26px) clamp(18px, 1.8vw, 22px);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: var(--c-paper);
}
.ab-pos__grp-t {
  margin: 0 0 14px;
  font-size: 12.5px; font-weight: 700; letter-spacing: .08em;
  color: var(--c-ink);
  padding-bottom: 12px;
  border-bottom: 1px solid var(--c-line-2);
}
.ab-pos__tag {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 7px 0;
  border: 0; border-radius: 0; background: none;
  font-size: .875rem; line-height: 1.6; color: var(--c-slate);
  transition: color var(--t-fast) var(--e-out);
}
.ab-pos__tag::before {
  content: "";
  flex: none; width: 5px; height: 5px; margin-top: 8px;
  border-radius: 50%; background: var(--c-brand-400, #7FCB72);
}
.ab-pos__tag:hover { border: 0; transform: none; color: var(--c-ink); }

/* ---- 3. 使命 / 愿景 ---- */
.ab-mv { gap: clamp(12px, 1.6vw, 18px); }
.ab-mv__card {
  position: relative;
  padding: clamp(26px, 3vw, 38px) clamp(24px, 2.8vw, 34px) clamp(28px, 3.2vw, 40px);
  border-radius: var(--r-lg);
  border: 1px solid var(--c-line);
  overflow: hidden;
}
.ab-mv__card::after {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--c-brand-500);
}
.ab-mv__card--vision::after { background: var(--c-tech-500); }
.ab-mv__tag {
  display: inline-block;
  padding: 3px 10px; border-radius: var(--r-pill);
  font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: none;
  background: var(--c-brand-050, #EAF6E8); color: var(--c-brand-700);
}
.ab-mv__card--vision .ab-mv__tag { background: rgba(0, 102, 180, .08); color: var(--c-tech-700); }
.ab-mv__card h3 { font-size: clamp(1.3rem, 2.1vw, 1.85rem); line-height: 1.42; }

/* ---- 4. 九大理论卡片 ---- */
.ab-theory { gap: clamp(12px, 1.5vw, 16px); }
.ab-th {
  position: relative;
  padding: clamp(20px, 2.2vw, 28px) clamp(20px, 2vw, 26px) clamp(22px, 2.4vw, 28px);
  border-radius: var(--r-lg);
  border: 1px solid var(--c-line);
  background: var(--c-paper);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out), border-color var(--t-base) var(--e-out);
}
.ab-th:hover {
  transform: translateY(-3px);
  border-color: var(--c-brand-200, var(--c-brand-100));
  box-shadow: 0 14px 30px -18px rgba(16, 48, 26, .26);
}
.ab-th__k {
  font-family: var(--font-latin);
  font-size: 1.5rem; font-weight: 700;
  color: var(--c-brand-100);
  line-height: 1;
}
.ab-th__t { margin-top: 12px; }

/* ---- 5. 四位一体闭环 ---- */
.ab-loop {
  display: grid;
  gap: clamp(24px, 3vw, 36px);
}
.ab-loop__flow {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(10px, 1.6vw, 18px);
  margin: 0; padding: 0; list-style: none;
  counter-reset: loop;
}
.ab-loop__flow li {
  position: relative;
  padding: clamp(20px, 2.2vw, 26px) clamp(18px, 1.8vw, 22px) clamp(22px, 2.4vw, 28px);
  border-radius: var(--r-lg);
  border: 1px solid var(--c-line);
  background: var(--c-paper);
  counter-increment: loop;
}
.ab-loop__flow li::before {
  content: "0" counter(loop);
  display: block;
  font-family: var(--font-latin);
  font-size: 12px; font-weight: 700; letter-spacing: .16em;
  color: var(--c-brand-500);
}
.ab-loop__flow li::after {
  content: "";
  position: absolute; right: -12px; top: 50%;
  width: 10px; height: 10px;
  border-top: 2px solid var(--c-brand-300, #A8DDA0);
  border-right: 2px solid var(--c-brand-300, #A8DDA0);
  transform: translateY(-50%) rotate(45deg);
}
.ab-loop__flow li:last-child::after { display: none; }
.ab-loop__flow b {
  display: block; margin-top: 10px;
  font-size: 1.15rem; font-weight: 700; color: var(--c-ink); letter-spacing: .04em;
}
.ab-loop__flow span {
  display: block; margin-top: 6px;
  font-size: .855rem; line-height: 1.7; color: var(--c-slate);
}
.ab-loop__d {
  margin: 0; max-width: 66ch;
  font-size: .95rem; line-height: 1.9; color: var(--c-slate);
}
.ab-loop__d b { color: var(--c-ink); }

@media (max-width: 1100px) {
  .ab-profile { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-pos__tags { grid-template-columns: 1fr; }
  .ab-loop__flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-loop__flow li::after { display: none; }
}
@media (max-width: 640px) {
  .ab-profile { grid-template-columns: 1fr; }
  .ab-loop__flow { grid-template-columns: 1fr; }
}

/* ---- 使命 / 愿景：改回两块色块章节（覆盖原有的细线篇章） ---- */
#panel-company .ab-mv { gap: clamp(14px, 1.8vw, 20px); }
#panel-company .ab-mv__card,
#panel-company .ab-mv__card.ab-mv__card--mission,
#panel-company .ab-mv__card.ab-mv__card--vision {
  padding: clamp(26px, 3vw, 38px) clamp(24px, 2.6vw, 34px) clamp(28px, 3.2vw, 42px);
  border: 1px solid var(--c-line);
  border-top: 1px solid var(--c-line);
  border-radius: var(--r-xl);
  background: var(--c-paper);
  transition: transform var(--t-base) var(--e-out), box-shadow var(--t-base) var(--e-out);
}
#panel-company .ab-mv__card.ab-mv__card--mission {
  background:
    radial-gradient(340px 240px at 100% 0%, rgba(48, 174, 36, .16), transparent 70%),
    linear-gradient(160deg, #F6FBF4, #EEF7EC);
  border-color: rgba(48, 174, 36, .20);
}
#panel-company .ab-mv__card.ab-mv__card--vision {
  background:
    radial-gradient(340px 240px at 0% 0%, rgba(0, 102, 180, .10), transparent 70%),
    linear-gradient(160deg, #F7FAFD, #EFF5FA);
  border-color: rgba(0, 102, 180, .16);
}
/* 去掉之前那条压在文字上的竖色条，改用顶部短色条 */
#panel-company .ab-mv__card::after { display: none; }
#panel-company .ab-mv__card::before {
  left: clamp(24px, 2.6vw, 34px); top: 0;
  width: 42px; height: 3px; border-radius: 0 0 3px 3px;
}
#panel-company .ab-mv__card:hover { transform: translateY(-3px); box-shadow: 0 18px 36px -22px rgba(16, 48, 26, .30); }
#panel-company .ab-mv__card h3 {
  margin-top: 16px;
  font-size: clamp(1.45rem, 2.3vw, 2rem);
  line-height: 1.4;
}
#panel-company .ab-mv__card p {
  margin-top: 14px; max-width: 44ch;
  font-size: .93rem; line-height: 1.92;
}

/* ---- 发展定位：确保三卡横排（原样式是两栏 + 标签云） ---- */
#panel-company .ab-pos {
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(16px, 2vw, 24px);
}
#panel-company .ab-pos__tags {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.4vw, 16px);
}
@media (max-width: 1100px) {
  #panel-company .ab-pos__tags { grid-template-columns: 1fr; }
}

/* ============================================================
   2026-11-03 · 关于我们改版
   ------------------------------------------------------------
   首屏：主标题换成公司全称，副标题只留定位语；
   应用案例：去掉客户名清单，只留场景图。
   ============================================================ */
.ab-hero__title {
  margin-top: 16px;
  font-size: clamp(1.8rem, 2.9vw, 2.6rem);
  line-height: 1.28; letter-spacing: -.012em;
}
.ab-hero__pos {
  margin-top: clamp(14px, 1.6vw, 20px);
  font-size: clamp(1.02rem, 1.4vw, 1.24rem);
  font-weight: 600; letter-spacing: .02em;
  color: var(--c-brand-700);
}

/* 使命 / 愿景：只剩两句 slogan，给文字更多留白 */
.ab-mv__card h3 { margin-top: 14px; }

/* 应用案例：纯场景图，不加说明 */
.ab-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 1.2vw, 16px);
}
.ab-shot {
  margin: 0; position: relative; overflow: hidden;
  aspect-ratio: 3 / 2;
  border-radius: var(--r-md);
  background: var(--c-sage);
  box-shadow: var(--sh-xs);
}
.ab-shot img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 1.1s var(--e-out);
}
.ab-shot:hover img { transform: scale(1.05); }
@media (max-width: 900px) { .ab-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  /* 手机上保持两列，12 张图不至于把页面拉成一条长卷 */
  .ab-gallery { gap: 8px; }
  .ab-shot { aspect-ratio: 4 / 3; }
}

/* 首屏文案变短后，让标题块与右侧引文卡垂直居中对齐，避免中间塌出一块空白 */
.ab-hero__main { align-self: center; }
.ab-stats { margin-top: clamp(22px, 2.6vw, 34px); }

/* 发展定位去掉右侧「我们是谁」结论卡后，标签铺满整行 */
.ab-pos:not(:has(.ab-pos__concl)) { grid-template-columns: minmax(0, 1fr); }

/* 公司全称较长：让标题按语义均衡折行，避免最后一个字单独掉行 */
.ab-hero__title { text-wrap: balance; }

/* ============================================================
   2026-11-03 · 应用案例分「观智 / 悦心」两组
   ============================================================ */
.ab-case-grp + .ab-case-grp { margin-top: clamp(30px, 3.6vw, 48px); }
.ab-case-grp__t {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: clamp(12px, 1.4vw, 16px);
  font-size: var(--fs-sm); font-weight: 500;
  letter-spacing: .05em; color: var(--c-slate);
}
.ab-case-grp__t::before {
  content: ""; flex: none; width: 18px; height: 1px;
  background: var(--c-brand-500);
}
.ab-case-grp__t b { font-weight: 700; color: var(--c-ink); letter-spacing: .02em; }
/* ============================================================
   2026-11-03 · 九大理论体系（第二版）
   ------------------------------------------------------------
   第一版是细线九宫格：格子空、线太密，像一张没填完的表格。
   现在改成三栏目录：大号编号打头、名称放大，每行只留一条底线；
   悬停时底线从左侧长出一条品牌绿、名称向右轻移，安静但有回应。
   ============================================================ */
#theory .ab-block__head { margin-bottom: clamp(8px, 1.2vw, 16px); }
#theory .ab-theory {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(30px, 4.2vw, 76px);
  row-gap: 0;
}
#theory .ab-th {
  position: relative;
  display: flex; flex-direction: row; align-items: baseline;
  gap: clamp(12px, 1.5vw, 20px);
  padding: clamp(22px, 2.5vw, 32px) 0;
  border: 0; border-radius: 0;
  background: none;
  box-shadow: none;
  justify-content: flex-start;
}
#theory .ab-th::after,
#theory .ab-th::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0;
  height: 1px;
}
#theory .ab-th::after { background: var(--c-line); z-index: 1; }
#theory .ab-th::before {
  z-index: 2;
  background: var(--c-brand-500);
  transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .6s var(--e-out);
}
#theory .ab-th:hover { background: none; box-shadow: none; transform: none; border-color: transparent; }
#theory .ab-th:hover::before { transform: scaleX(1); }

#theory .ab-th__k {
  flex: none;
  font-family: var(--font-latin);
  font-size: clamp(1rem, 1.25vw, 1.16rem);
  font-weight: 300;
  letter-spacing: .04em;
  line-height: 1;
  color: rgba(48, 174, 36, .42);
  transition: color var(--t-base) var(--e-out);
}
#theory .ab-th:hover .ab-th__k { color: var(--c-brand-500); }

#theory .ab-th__t {
  margin: 0;
  font-size: clamp(1.14rem, 1.55vw, 1.4rem);
  font-weight: 600;
  letter-spacing: .015em;
  color: var(--c-ink);
  transition: transform .45s var(--e-out), color var(--t-base) var(--e-out);
}
#theory .ab-th:hover .ab-th__t { transform: translateX(6px); color: var(--c-brand-700); }

@media (max-width: 900px) {
  #theory .ab-theory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  #theory .ab-theory { grid-template-columns: 1fr; }
  #theory .ab-th { padding: 20px 0; }
}

/* ============================================================
   2026-11-05 · 九大理论体系：每格加一枚线性图标
   ============================================================ */
.ab-th__ico {
  width: 54px; height: 54px; border-radius: 16px;
  display: grid; place-items: center;
  background: linear-gradient(158deg, rgba(48, 174, 36, .10), rgba(48, 174, 36, .035));
  border: 1px solid rgba(48, 174, 36, .16);
  color: var(--c-brand-600);
  margin-bottom: 16px;
  transition: transform .4s var(--e-out), background .4s var(--e-out), border-color .4s var(--e-out);
}
.ab-th__ico svg { width: 30px; height: 30px; display: block; }
.ab-th:hover .ab-th__ico {
  transform: translateY(-2px);
  background: linear-gradient(158deg, rgba(48, 174, 36, .15), rgba(48, 174, 36, .05));
  border-color: rgba(48, 174, 36, .32);
}

/* 理论格子是「图标 + 编号 + 标题」横排，图标与文字垂直居中更稳 */
#theory .ab-th { align-items: center; }
#theory .ab-th__ico { flex: none; }

/* 长标题在窄栏换行时均分两行，避免句尾孤字 */
#theory .ab-th__t { text-wrap: balance; }

/* ============================================================
   2026-11-05 · 九大理论体系：横排配图卡，整块压进一屏
   ------------------------------------------------------------
   9 格 = 3 列 × 3 行；每格左侧 4:3 缩略图、右侧编号 + 标题。
   相比原来「图上文下」的竖卡，行高降到约三分之一，
   整节高度从 ~1550px 收到 ~650px，一屏看得全。
   ============================================================ */
#theory {
  padding-top: clamp(50px, 4.8vw, 74px);
  padding-bottom: clamp(50px, 4.8vw, 74px);
}
#theory .ab-block__head { margin-bottom: clamp(22px, 2.4vw, 34px); }

#theory .ab-theory {
  border-top: 0;
  gap: clamp(12px, 1.2vw, 18px) clamp(20px, 2.2vw, 34px);
  row-gap: clamp(12px, 1.3vw, 20px);
}

#theory .ab-th {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-height: calc(clamp(124px, 12.6vw, 182px) * .75);
  padding: 0 0 0 calc(clamp(124px, 12.6vw, 182px) + clamp(14px, 1.3vw, 20px)) !important;
  border: 0 !important;
  background: none;
}

#theory .ab-th__fig {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(124px, 12.6vw, 182px);
  margin: 0;
  border-radius: 13px;
  overflow: hidden;
  background: #F7FBF6;
  border: 1px solid rgba(16, 40, 24, .07);
  box-shadow: 0 12px 20px -18px rgba(16, 40, 24, .55);
}
#theory .ab-th__fig img {
  display: block;
  width: 100%; height: auto;
  aspect-ratio: 4 / 3; object-fit: cover;
  transform: scale(1.02);
  transition: transform .7s var(--e-out);
}
#theory .ab-th:hover .ab-th__fig img { transform: scale(1.08); }

#theory .ab-th__k {
  margin: 0 0 5px;
  font-size: .74rem;
  letter-spacing: .22em;
}
#theory .ab-th__t {
  margin: 0;
  font-size: clamp(1.02rem, 1.12vw, 1.16rem);
  line-height: 1.45;
}

/* 新排版不需要旧卡片底部那条 1px 装饰线（原来在竖卡里当分隔用） */
#theory .ab-th::before,
#theory .ab-th::after { display: none; }

/* ============================================================
   2026-11-05 · 招聘理念：补三条理念卡 + 「招聘方向」小标题
   ------------------------------------------------------------
   原来这个区块只有一条 h2 加五个岗位标签，标题与内容对不上。
   现在：标题区右侧放一句理念导语，下面三张理念卡，
   岗位类别降级为「招聘方向」，语义就顺了。
   ============================================================ */
.ab-ethos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.8vw, 26px);
  margin-bottom: clamp(28px, 3.2vw, 42px);
}
.ab-ethos__i {
  padding: clamp(20px, 2.2vw, 28px);
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg);
  background: linear-gradient(180deg, #FFFFFF 0%, #FBFDFB 100%);
  transition: transform .45s var(--e-out), box-shadow .45s var(--e-out), border-color .45s var(--e-out);
}
.ab-ethos__i:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-md);
  border-color: var(--c-brand-200);
}
.ab-ethos__k {
  display: block;
  font-family: var(--font-latin);
  font-size: 1.35rem; font-weight: 700; line-height: 1;
  color: var(--c-brand-200);
}
.ab-ethos__t {
  margin-top: 14px;
  font-size: 1.04rem; font-weight: 700; color: var(--c-ink);
}
.ab-ethos__d {
  margin-top: 8px;
  font-size: var(--fs-sm); color: var(--c-slate); line-height: 1.8;
}
.ab-ethos__sub {
  display: flex; align-items: center; gap: clamp(12px, 1.4vw, 18px);
  flex-wrap: wrap;
  padding-top: clamp(18px, 2vw, 24px);
  border-top: 1px solid var(--c-line-2);
}
.ab-ethos__sub h3 {
  flex: none;
  font-size: var(--fs-sm); font-weight: 600;
  color: var(--c-mute); letter-spacing: .08em;
}
.ab-ethos__sub .ab-scenes { margin-top: 0; }

@media (max-width: 860px) {
  .ab-ethos { grid-template-columns: 1fr; }
  .ab-ethos__sub { align-items: flex-start; flex-direction: column; }
}

/* 岗位详情：职责/要求改为带圆点的清单，并放宽展开高度
   （原来的 max-height 460px 在窄屏遇上长文案会被截断） */
.ab-job.is-open .ab-job__body { max-height: 640px; }
.ab-job__body-in ul { list-style: none; }
.ab-job__body-in li { position: relative; padding-left: 14px; }
.ab-job__body-in li::before {
  content: "";
  position: absolute; left: 0; top: .78em;
  width: 4px; height: 4px; border-radius: 50%;
  background: var(--c-brand-300, #8FCF9A);
}


/* ============================================================
   2026-11-06 · 理论卡改回「图标 + 编号 + 标题」横排
   （弃用生成配图：整块更轻、加载更快，风格与站点线稿语言统一）
   ============================================================ */
#theory .ab-th {
  min-height: clamp(58px, 5vw, 72px);
  padding-left: calc(clamp(58px, 5vw, 72px) + 18px) !important;
}
#theory .ab-th__ico {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: clamp(58px, 5vw, 72px);
  height: clamp(58px, 5vw, 72px);
  border-radius: 18px;
  display: grid;
  place-items: center;
  background: linear-gradient(158deg, rgba(48, 174, 36, .10), rgba(48, 174, 36, .035));
  border: 1px solid rgba(48, 174, 36, .16);
  color: var(--c-brand-600);
  transition: transform .4s var(--e-out), background .4s var(--e-out), border-color .4s var(--e-out);
}
#theory .ab-th__ico svg { width: 46%; height: 46%; display: block; }
#theory .ab-th:hover .ab-th__ico {
  transform: translateY(-50%) translateY(-2px);
  background: linear-gradient(158deg, rgba(48, 174, 36, .15), rgba(48, 174, 36, .05));
  border-color: rgba(48, 174, 36, .32);
}

/* ============================================================
   2026-11-06 · 九大理论体系：整块分格面板（替代九个散条目）
   ------------------------------------------------------------
   9 格收进一块浅绿渐变面板，内部用发丝线分隔；
   格子 hover 时透出白色，图标加深 —— 有结构、有呼吸感。
   ============================================================ */
#theory .ab-theory {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  background: linear-gradient(180deg, #FBFDF9 0%, #F5FAF4 100%);
  border: 1px solid rgba(16, 40, 24, .08);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 34px 60px -50px rgba(16, 40, 24, .55);
}

#theory .ab-th {
  position: relative;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  grid-template-rows: auto auto;
  align-content: center;
  align-items: center;
  column-gap: clamp(12px, 1.2vw, 16px);
  row-gap: 0;
  min-height: 0;
  padding: clamp(20px, 2vw, 26px) clamp(18px, 1.9vw, 24px) !important;
  border: 0 !important;
  border-right: 1px solid rgba(16, 40, 24, .07) !important;
  border-bottom: 1px solid rgba(16, 40, 24, .07) !important;
  background: transparent;
  transition: background .45s var(--e-out);
}
#theory .ab-th::before,
#theory .ab-th::after { display: none !important; }
#theory .ab-th:nth-child(3n) { border-right: 0 !important; }
#theory .ab-th:nth-child(n+7) { border-bottom: 0 !important; }
#theory .ab-th:hover { background: rgba(255, 255, 255, .86); }

#theory .ab-th__ico {
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  grid-column: 1;
  grid-row: 1 / span 2;
  width: clamp(50px, 4.4vw, 58px);
  height: clamp(50px, 4.4vw, 58px);
  border-radius: 15px;
  background: linear-gradient(158deg, rgba(48, 174, 36, .12), rgba(48, 174, 36, .03));
  border: 1px solid rgba(48, 174, 36, .16);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9);
  transition: background .45s var(--e-out), border-color .45s var(--e-out), box-shadow .45s var(--e-out);
}
#theory .ab-th__ico svg { width: 52%; height: 52%; display: block; }
#theory .ab-th:hover .ab-th__ico {
  transform: none !important;
  background: linear-gradient(158deg, rgba(48, 174, 36, .19), rgba(48, 174, 36, .06));
  border-color: rgba(48, 174, 36, .3);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 8px 16px -12px rgba(16, 90, 30, .5);
}

#theory .ab-th__k {
  grid-column: 2;
  grid-row: 1;
  margin: 0 0 5px;
  font-size: .66rem;
  letter-spacing: .26em;
  line-height: 1;
  color: var(--c-brand-500);
}
#theory .ab-th__t {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  font-size: clamp(1rem, 1.05vw, 1.08rem);
  line-height: 1.45;
  text-wrap: balance;
}

/* 平板：2 列 */
@media (max-width: 1040px) {
  #theory .ab-theory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #theory .ab-th { border-right: 1px solid rgba(16, 40, 24, .07) !important; border-bottom: 1px solid rgba(16, 40, 24, .07) !important; }
  #theory .ab-th:nth-child(2n) { border-right: 0 !important; }
  #theory .ab-th:nth-child(8),
  #theory .ab-th:nth-child(9) { border-bottom: 0 !important; }
  #theory .ab-th:nth-child(9) { border-right: 0 !important; }
}

/* 手机：1 列 */
@media (max-width: 700px) {
  #theory .ab-theory { grid-template-columns: 1fr; border-radius: 18px; }
  #theory .ab-th { border-right: 0 !important; border-bottom: 1px solid rgba(16, 40, 24, .07) !important; padding: 18px 20px !important; }
  #theory .ab-th:last-child { border-bottom: 0 !important; }
}

/* 面板细节：幽灵序号（用 counter，无需改 HTML）+ 顶部高光 */
#theory .ab-theory {
  counter-reset: th;
  box-shadow: 0 34px 60px -50px rgba(16, 40, 24, .55), inset 0 1px 0 rgba(255, 255, 255, .9);
}
#theory .ab-th { counter-increment: th; }
#theory .ab-th::after {
  content: counter(th, decimal-leading-zero);
  display: block !important;
  position: absolute;
  right: clamp(12px, 1.4vw, 20px);
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: auto;
  border: 0;
  background: none;
  font-family: var(--font-latin);
  font-size: clamp(1.7rem, 2.1vw, 2.3rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.02em;
  color: rgba(48, 174, 36, .07);
  pointer-events: none;
  transition: color .45s var(--e-out);
}
#theory .ab-th:hover::after { color: rgba(48, 174, 36, .13); }

/* 旧规则给伪元素设了 left/right/bottom，会把幽灵序号拉成通栏，这里重置 */
#theory .ab-th::after {
  left: auto !important;
  right: clamp(12px, 1.4vw, 20px) !important;
  top: 50% !important;
  bottom: auto !important;
  width: auto !important;
  height: auto !important;
  z-index: 0 !important;
  background: none !important;
}

/* 幽灵序号承担编号职责，去掉重复的小号序号 */
#theory .ab-th__k { display: none !important; }
#theory .ab-th { grid-template-rows: 1fr; }
#theory .ab-th__t { grid-row: 1; }
#theory .ab-th::after {
  top: clamp(14px, 1.4vw, 18px) !important;
  transform: none !important;
  font-size: clamp(1.5rem, 1.9vw, 2rem) !important;
  color: rgba(48, 174, 36, .1) !important;
}

/* 图标 + 标题作为一组在格子里居中，避免右侧大片空白 */
#theory .ab-th {
  grid-template-columns: auto auto !important;
  justify-content: center;
  justify-items: start;
  column-gap: clamp(11px, 1.1vw, 15px) !important;
  padding-left: clamp(14px, 1.4vw, 18px) !important;
  padding-right: clamp(14px, 1.4vw, 18px) !important;
}

/* 序号收到格子右上角，做成小索引，不跟标题挤在一起 */
#theory .ab-th::after {
  top: 12px !important;
  right: 14px !important;
  font-size: 1.05rem !important;
  letter-spacing: .04em;
  color: rgba(48, 174, 36, .16) !important;
}
#theory .ab-th:hover::after { color: rgba(48, 174, 36, .26) !important; }
/* 图标略放大、标题略放大，撑住居中构图 */
#theory .ab-th__ico { width: clamp(52px, 4.6vw, 60px); height: clamp(52px, 4.6vw, 60px); }
#theory .ab-th__t { font-size: clamp(1.02rem, 1.08vw, 1.12rem); }

/* 2 列断点下第 9 项独占末行时跨两列，避免半行空着 */
@media (max-width: 1040px) and (min-width: 701px) {
  #theory .ab-th:nth-child(9) { grid-column: span 2; border-right: 0 !important; }
}


/* ============================================================
   2026-11-06 · 理论区占满一屏（纵向撑满 + 每格加释义）
   ------------------------------------------------------------
   之前面板只有 388px，放在一屏里显得空。现在：
   section 用 min-height:100svh 垂直居中，格子加一句学术释义，
   图标放大到 68px，标题 1.2rem —— 整块正好吃满一屏。
   ============================================================ */
#theory {
  min-height: 100svh;
  display: flex;
  align-items: center;
  padding-top: clamp(72px, 9vh, 118px);
  padding-bottom: clamp(72px, 9vh, 118px);
}
#theory > .wrap { width: 100%; }
#theory .ab-block__head { margin-bottom: clamp(24px, 3.2vh, 40px); }

#theory .ab-theory { border-radius: 26px; }

#theory .ab-th {
  grid-template-columns: auto minmax(0, 1fr) !important;
  grid-template-rows: auto auto auto !important;
  justify-content: start !important;
  align-content: center !important;
  column-gap: clamp(14px, 1.4vw, 20px) !important;
  padding: clamp(24px, 3.2vh, 38px) clamp(20px, 2vw, 30px) !important;
}
#theory .ab-th__ico {
  grid-column: 1;
  grid-row: 1 / span 3;
  width: clamp(56px, 4.6vw, 68px);
  height: clamp(56px, 4.6vw, 68px);
  border-radius: 19px;
}
#theory .ab-th__k {
  display: block !important;
  grid-column: 2;
  grid-row: 1;
  margin: 0 0 5px;
  font-size: .7rem;
  letter-spacing: .26em;
  color: var(--c-brand-500);
}
#theory .ab-th__t {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  font-size: clamp(1.06rem, 1.12vw, 1.2rem);
  line-height: 1.4;
}
#theory .ab-th__d {
  grid-column: 2;
  grid-row: 3;
  margin: 7px 0 0;
  font-size: clamp(.8rem, .84vw, .88rem);
  line-height: 1.7;
  color: var(--c-slate);
  text-wrap: pretty;
}
/* 有了释义后，右上角的幽灵序号会压到文字，撤掉 */
#theory .ab-th::after { display: none !important; }

@media (max-width: 1040px) and (min-width: 701px) {
  #theory { min-height: 0; padding-top: clamp(56px, 7vh, 88px); padding-bottom: clamp(56px, 7vh, 88px); }
}
@media (max-width: 700px) {
  #theory { min-height: 0; padding-top: 56px; padding-bottom: 56px; }
  #theory .ab-th { padding: 20px !important; column-gap: 14px !important; }
  #theory .ab-th__ico { width: 52px; height: 52px; border-radius: 15px; }
}

/* 纵向居中 + 面板拉高，真正吃满一屏 */
#theory {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
#theory > .wrap { width: 100%; }
#theory .ab-theory {
  grid-auto-rows: 1fr;
  min-height: clamp(400px, 52vh, 540px);
  align-content: stretch;
}
#theory .ab-th { height: 100%; }

/* 面板再拉高，格子撑住整屏；图标与字号同步放大 */
#theory .ab-theory { min-height: clamp(440px, 62vh, 600px); }
#theory .ab-th { padding: clamp(28px, 3.6vh, 44px) clamp(22px, 2.2vw, 32px) !important; }
#theory .ab-th__ico { width: clamp(60px, 5vw, 74px); height: clamp(60px, 5vw, 74px); }
#theory .ab-th__t { font-size: clamp(1.1rem, 1.2vw, 1.28rem); }
#theory .ab-th__d { font-size: clamp(.82rem, .87vw, .9rem); }

/* 2026-11-06 · 去掉释义小字：图标 + 标题成组居中，撑满整块 */
#theory .ab-th {
  grid-template-rows: auto auto !important;
  align-content: center !important;
  justify-content: center !important;
  grid-template-columns: auto auto !important;
  column-gap: clamp(16px, 1.6vw, 22px) !important;
}
#theory .ab-th__ico { grid-row: 1 / span 2; }
#theory .ab-th__d { display: none !important; }
#theory .ab-th__t { font-size: clamp(1.12rem, 1.24vw, 1.34rem); }

/* 占满可视区（扣掉吸顶导航），并放大图标与标题，让格子不显空 */
#theory {
  min-height: calc(100svh - 96px);
  scroll-margin-top: 96px;
  padding-top: clamp(24px, 4vh, 48px);
  padding-bottom: clamp(24px, 4vh, 48px);
}
#theory .ab-theory { min-height: clamp(420px, 58vh, 580px); }
#theory .ab-th__ico { width: clamp(68px, 6vw, 84px); height: clamp(68px, 6vw, 84px); border-radius: 22px; }
#theory .ab-th__ico svg { width: 54%; height: 54%; }
#theory .ab-th__t { font-size: clamp(1.16rem, 1.32vw, 1.42rem); }
#theory .ab-th__k { font-size: .72rem; }

/* 面板再撑高一点，接近满屏 */
#theory .ab-theory { min-height: clamp(440px, 63vh, 620px); }

/* ============================================================
   2026-11-06 · 理论区终版：无框 + 横线分隔（编辑式排版）
   ------------------------------------------------------------
   去掉面板底色/描边/投影，每一项上方一条渐隐细线，
   图标裸线条 + 编号 + 标题，横向三列按行对齐。
   ============================================================ */
#theory .ab-theory {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: clamp(36px, 5.2vh, 60px) clamp(30px, 3.4vw, 64px) !important;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 0 !important;
  overflow: visible !important;
  counter-reset: none !important;
}

#theory .ab-th {
  position: relative !important;
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  align-items: center !important;
  align-content: start !important;
  justify-content: start !important;
  justify-items: start !important;
  row-gap: 14px !important;
  column-gap: clamp(14px, 1.5vw, 22px) !important;
  height: auto !important;
  min-height: 0 !important;
  padding: clamp(18px, 2.4vh, 28px) 0 0 !important;
  border: 0 !important;
  background: none !important;
}

/* 顶部渐隐细线 */
#theory .ab-th::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  top: 0 !important;
  bottom: auto !important;
  width: auto !important;
  height: 1px !important;
  background: linear-gradient(90deg, rgba(16, 40, 24, .2), rgba(16, 40, 24, .04)) !important;
  transform: none !important;
  z-index: 0 !important;
}
#theory .ab-th::after { display: none !important; }

#theory .ab-th__k {
  grid-column: 1 / -1 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  font-size: .7rem !important;
  letter-spacing: .26em !important;
  color: var(--c-brand-400) !important;
}

/* 图标不再套色块，裸线条更轻 */
#theory .ab-th__ico {
  grid-column: 1 !important;
  grid-row: 2 !important;
  width: clamp(52px, 4.4vw, 64px) !important;
  height: clamp(52px, 4.4vw, 64px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  color: var(--c-brand-600) !important;
  transition: color .4s var(--e-out), transform .4s var(--e-out);
}
#theory .ab-th__ico svg { width: 100% !important; height: 100% !important; }
#theory .ab-th:hover .ab-th__ico { transform: translateY(-2px); color: var(--c-brand-700, #166b23) !important; }

#theory .ab-th__t {
  grid-column: 2 !important;
  grid-row: 2 !important;
  margin: 0 !important;
  font-size: clamp(1.08rem, 1.18vw, 1.28rem) !important;
  line-height: 1.4 !important;
  color: var(--c-ink) !important;
}

@media (max-width: 1040px) {
  #theory .ab-theory { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  #theory .ab-th:nth-child(9) { grid-column: span 2 !important; }
}
@media (max-width: 700px) {
  #theory .ab-theory { grid-template-columns: 1fr !important; gap: 26px !important; }
  #theory .ab-th:nth-child(9) { grid-column: auto !important; }
  #theory .ab-th { padding-top: 18px !important; }
}

/* 收尾：整组底部加一条渐隐线；行距拉开，图标略放大 */
#theory .ab-theory { gap: clamp(46px, 6.6vh, 78px) clamp(30px, 3.4vw, 64px) !important; }
#theory .ab-theory::after {
  content: "";
  grid-column: 1 / -1;
  height: 1px;
  background: linear-gradient(90deg, rgba(16, 40, 24, .2), rgba(16, 40, 24, .04));
}
#theory .ab-th__ico { width: clamp(56px, 4.8vw, 70px) !important; height: clamp(56px, 4.8vw, 70px) !important; }

/* 窄屏收一收行距，避免整节被拉太长 */
@media (max-width: 1040px) {
  #theory .ab-theory { gap: clamp(34px, 4.2vh, 50px) 40px !important; }
}
@media (max-width: 700px) {
  #theory { min-height: 0; padding-top: 56px; padding-bottom: 56px; }
  #theory .ab-theory { gap: 28px !important; }
}

/* ============================================================
   2026-11-06 · 九大理论体系 v4：以「身心健康」为中心的辐射图谱
   ------------------------------------------------------------
   九个学科围绕中心成椭圆环分布，细连线从核心引出；
   虚线轨道缓慢流动、核心带呼吸光环，节点依次浮现。
   ≤1040 收为三列卡片，≤700 收为竖排列表。
   ============================================================ */
#theory { min-height: calc(100svh - 96px); }
#theory .ab-block__head { margin-bottom: clamp(14px, 2.2vh, 28px); }

.ab-ob { display: flex; justify-content: center; }
.ab-ob__stage {
  position: relative;
  width: min(1120px, 100%);
  aspect-ratio: 1120 / 620;
}

/* —— 轨道与连线 —— */
.ab-ob__wires { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ab-ob__orbit {
  fill: none;
  stroke: rgba(48, 174, 36, .22);
  stroke-width: 1;
  stroke-dasharray: 2 7;
  stroke-linecap: round;
  animation: obFlow 40s linear infinite;
}
@keyframes obFlow { to { stroke-dashoffset: -240; } }

.ab-ob__spokes line {
  stroke: rgba(16, 40, 24, .18);
  stroke-width: 1;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
}
.ab-ob.is-in .ab-ob__spokes line {
  animation: obDraw 1s cubic-bezier(.3, .7, .2, 1) forwards;
}
.ab-ob.is-in .ab-ob__spokes line:nth-child(1) { animation-delay: .05s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(2) { animation-delay: .10s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(3) { animation-delay: .15s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(4) { animation-delay: .20s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(5) { animation-delay: .25s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(6) { animation-delay: .30s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(7) { animation-delay: .35s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(8) { animation-delay: .40s; }
.ab-ob.is-in .ab-ob__spokes line:nth-child(9) { animation-delay: .45s; }
@keyframes obDraw { to { stroke-dashoffset: 0; } }

/* —— 中心 —— */
.ab-ob__core {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: clamp(150px, 11.6vw, 176px);
  aspect-ratio: 1;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center;
  background: var(--c-paper);
  border: 1px solid rgba(48, 174, 36, .26);
  box-shadow: 0 10px 28px rgba(24, 107, 40, .07);
  z-index: 2;
}
.ab-ob__core-t {
  font-size: clamp(1.2rem, 1.5vw, 1.54rem);
  font-weight: 800;
  letter-spacing: .12em;
  text-indent: .12em;
  color: var(--c-brand-700);
  animation: obBreath 6s ease-in-out infinite;
}
@keyframes obBreath { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.028); } }

.ab-ob__pulse {
  position: absolute;
  inset: -13px;
  border-radius: 50%;
  border: 1px solid rgba(48, 174, 36, .13);
  animation: obPulse 5s ease-out infinite;
  pointer-events: none;
}
.ab-ob__pulse--2 { animation-delay: 2.5s; }
@keyframes obPulse {
  0% { transform: scale(1); opacity: 0; }
  25% { opacity: .9; }
  100% { transform: scale(1.3); opacity: 0; }
}

/* —— 节点 —— */
.ab-ob__node {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: 74px;
  height: 74px;
  transform: translate(-50%, -50%);
  z-index: 3;
}
.ab-ob__ico {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  border-radius: 21px;
  background: var(--c-paper);
  border: 1px solid rgba(16, 40, 24, .08);
  color: var(--c-brand-600);
  box-shadow: 0 8px 20px rgba(24, 107, 40, .07);
  transition: transform .45s var(--e-out), box-shadow .45s var(--e-out),
              border-color .45s var(--e-out), color .45s var(--e-out), background .45s var(--e-out);
}
.ab-ob__ico svg { width: 39px; height: 39px; display: block; }
.ab-ob__node:hover .ab-ob__ico {
  transform: translateY(-4px);
  background: #FBFEF8;
  border-color: rgba(48, 174, 36, .45);
  box-shadow: 0 16px 34px rgba(24, 107, 40, .14);
  color: var(--c-brand-700);
}
.ab-ob__t {
  position: absolute;
  left: 50%;
  top: 82px;
  transform: translateX(-50%);
  width: 178px;
  text-align: center;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
  color: var(--c-ink);
  white-space: nowrap;
  transition: color .4s var(--e-out);
}
.ab-ob__node:hover .ab-ob__t { color: var(--c-brand-700); }

/* 浮现：从中心向外依次亮起 */
@keyframes obNodeIn {
  from { opacity: 0; transform: translate(-50%, calc(-50% + 16px)); }
  to { opacity: 1; transform: translate(-50%, -50%); }
}
.ab-ob.is-in .ab-ob__node {
  animation: obNodeIn .8s cubic-bezier(.2, .7, .2, 1) backwards;
  animation-delay: calc(var(--i) * 55ms);
}

@media (prefers-reduced-motion: reduce) {
  .ab-ob__orbit, .ab-ob__pulse, .ab-ob__core-t { animation: none; }
  .ab-ob.is-in .ab-ob__node, .ab-ob.is-in .ab-ob__spokes line { animation: none; }
  .ab-ob__spokes line { stroke-dashoffset: 0; }
}

/* —— 平板：三列卡片 —— */
@media (max-width: 1040px) {
  #theory { min-height: 0; }
  .ab-ob__stage {
    aspect-ratio: auto;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
  .ab-ob__wires, .ab-ob__core { display: none; }
  .ab-ob__node {
    position: static;
    transform: none;
    width: auto;
    height: auto;
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 16px 18px;
    border: 1px solid var(--c-line);
    border-radius: 16px;
    background: var(--c-paper);
  }
  .ab-ob__ico {
    position: static;
    inset: auto;
    width: 42px;
    height: 42px;
    flex: none;
    border: 0;
    border-radius: 12px;
    background: rgba(48, 174, 36, .07);
    box-shadow: none;
  }
  .ab-ob__ico svg { width: 24px; height: 24px; }
  .ab-ob__t {
    position: static;
    transform: none;
    width: auto;
    text-align: left;
    white-space: normal;
    font-size: .95rem;
    top: auto;
  }
  .ab-ob.is-in .ab-ob__node { animation-name: obFadeIn; }
}

@keyframes obFadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

/* —— 手机：竖排列表 —— */
@media (max-width: 700px) {
  #theory { padding-top: 56px; padding-bottom: 56px; }
  .ab-ob__stage { grid-template-columns: 1fr; gap: 0; }
  .ab-ob__node {
    border: 0;
    border-top: 1px solid rgba(16, 40, 24, .09);
    border-radius: 0;
    padding: 15px 2px;
    gap: 13px;
    background: transparent;
  }
  .ab-ob__node:last-child { border-bottom: 1px solid var(--c-line); }
  .ab-ob__ico { width: 38px; height: 38px; }
}

/* 2026-11-06 · 理论区：浅绿底 + 图谱放大，吃掉上下空白 */
#theory {
  background: var(--c-mist);
  min-height: 0;
  padding-block: var(--pad-section);
}
.ab-ob__stage { width: min(1180px, 100%); }
.ab-ob__orbit { stroke: rgba(48, 174, 36, .32); }
.ab-ob__ico { border-color: rgba(16, 40, 24, .085); box-shadow: 0 6px 16px rgba(24, 107, 40, .07); }

/* 2026-11-06 · 理论区中心改为品牌图形 */
.ab-ob__core-logo {
  width: 62%;
  height: auto;
  display: block;
  animation: obBreath 6s ease-in-out infinite;
}
