/* ============================================================
   BilinPets 比邻宠物 · 官网样式 v4
   设计基准：Ardot 画布「网站设计」733233598607814 定稿
   视觉语言：承接 RN 端 MD3 青绿体系
   主色 #006A60 · 深色段 #0A3D36 · 六模块色循环
   字体 Noto Sans SC（中文）+ Manrope（数字/拉丁）
   圆角 20 · 柔散阴影 · 呼吸感留白
   角色页通过 data-theme 切换主色
   ============================================================ */

/* ---------- 字体 ---------- */
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('../fonts/pjs-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url('../fonts/pjs-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ---------- 设计 token ---------- */
:root {
  /* 主色：承接 RN 端 MD3 */
  --brand: #006A60;
  --brand-press: #005248;
  --brand-ink: #0A4A42;
  --brand-soft: #EAF4F0;
  --brand-soft-2: #F0F9F7;
  --brand-on: #FFFFFF;
  --brand-lift: #2BB8A8;

  /* 深色段（Hero / CTA / AI 段） */
  --deep-1: #0A3D36;
  --deep-2: #0B4A41;
  --deep-3: #0E5A50;
  --deep-on: #FFFFFF;
  --deep-muted: #A8CFC9;
  --deep-line: rgba(42, 184, 168, .28);
  --deep-soft: #14413A;

  /* 中性 */
  --ink: #1F2933;
  --ink-2: #3C4947;
  --muted: #667085;
  --weak: #98A2B3;
  --hair: #E7EBEC;
  --hair-2: #EFF2F2;
  --page: #F8F9FB;
  --surface: #FFFFFF;
  --surface-2: #F7F9F9;
  --foot-bg: #0C1614;
  --foot-line: rgba(255, 255, 255, .1);
  --foot-muted: #7FAFA7;
  --foot-dim: #5C7A75;

  /* 六模块色（对齐 RN tokens.ts） */
  --mod-medical: #2F80ED;
  --mod-medical-soft: #F0F9FF;
  --mod-insurance: #4F46E5;
  --mod-insurance-soft: #EEF2FF;
  --mod-mall: #DC2626;
  --mod-mall-soft: #FEF2F2;
  --mod-community: #EA580C;
  --mod-community-soft: #FFF7ED;
  --mod-welfare: #16A34A;
  --mod-welfare-soft: #F0FDF4;
  --mod-cert: #7C3AED;
  --mod-cert-soft: #EDE9FE;

  /* 角色页主题色（由 data-theme 覆盖） */
  --theme: var(--brand);
  --theme-ink: var(--brand-ink);
  --theme-soft: var(--brand-soft);
  --theme-on: #FFFFFF;

  /* 圆角 */
  --r-lg: 26px;
  --r-md: 20px;
  --r-sm: 14px;
  --r-xs: 10px;
  --r-pill: 999px;

  /* 柔散阴影 */
  --sh-1: 0 1px 2px rgba(28, 39, 38, .04);
  --sh-2: 0 2px 8px rgba(28, 39, 38, .05), 0 14px 32px -18px rgba(28, 39, 38, .14);
  --sh-3: 0 4px 12px rgba(28, 39, 38, .06), 0 24px 56px -22px rgba(28, 39, 38, .16);
  --sh-lift: 0 8px 24px rgba(0, 106, 96, .18), 0 24px 48px -24px rgba(0, 106, 96, .22);

  /* 布局 */
  --wrap: 1200px;
  --gut: 40px;

  --font-cn: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', sans-serif;
  --font-num: 'Manrope', var(--font-cn);
}

/* ---------- 重置 ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--page);
  color: var(--ink);
  font-family: var(--font-cn);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; border: 0; background: none; cursor: pointer; }
h1, h2, h3, h4, p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

.num { font-family: var(--font-num); font-weight: 700; letter-spacing: -.02em; }

/* ---------- 主题切换 ---------- */
[data-theme='medical'] {
  --theme: #2F80ED; --theme-ink: #0B3A5D;
  --theme-soft: #F0F9FF; --theme-on: #FFFFFF;
  --sh-lift: 0 8px 24px rgba(43, 108, 176, .2), 0 24px 48px -24px rgba(43, 108, 176, .24);
}
[data-theme='insurance'] {
  --theme: #4F46E5; --theme-ink: #312E81;
  --theme-soft: #EEF2FF; --theme-on: #FFFFFF;
  --sh-lift: 0 8px 24px rgba(79, 70, 229, .2), 0 24px 48px -24px rgba(79, 70, 229, .24);
}
[data-theme='welfare'] {
  --theme: #15803D; --theme-ink: #14532D;
  --theme-soft: #DCFCE7; --theme-on: #FFFFFF;
  --sh-lift: 0 8px 24px rgba(21, 128, 61, .2), 0 24px 48px -24px rgba(21, 128, 61, .24);
}
[data-theme='government'] {
  --theme: #6D28D9; --theme-ink: #3B2278;
  --theme-soft: #EDE9FE; --theme-on: #FFFFFF;
  --sh-lift: 0 8px 24px rgba(109, 40, 217, .2), 0 24px 48px -24px rgba(109, 40, 217, .24);
}

/* 投资页：深墨+金，唯一跳出模块色体系 */
[data-theme='investor'] {
  --theme: #C9A227; --theme-ink: #1C1917;
  --theme-soft: #2A2214; --theme-on: #1C1917;
  --page: #0C0A09;
  --surface: #14110D;
  --surface-2: #1F1A14;
  --ink: #FFFFFF;
  --ink-2: #D9D2C8;
  --muted: #A8A099;
  --weak: #7A7168;
  --hair: #2A241E;
  --hair-2: #1F1A14;
  --brand-soft: #2A2214;
  --brand-lift: #E8C766;
  --brand: #E8C766;
  --brand-ink: #1C1917;
  --deep-1: #0C0A09; --deep-2: #14110D; --deep-3: #1A1611;
  --deep-muted: #B8AFA4;
  --deep-soft: #1F1A14;
  --deep-line: rgba(201, 162, 39, .24);
  --foot-bg: #080706;
  --foot-line: rgba(201, 162, 39, .16);
  --foot-muted: #7A7168;
  --foot-dim: #5A5248;
  --mod-medical-soft: #1A1611; --mod-insurance-soft: #1A1611;
  --mod-mall-soft: #1A1611; --mod-community-soft: #1A1611;
  --mod-welfare-soft: #1A1611; --mod-cert-soft: #1A1611;
  --sh-1: 0 1px 2px rgba(0, 0, 0, .3);
  --sh-2: 0 2px 8px rgba(0, 0, 0, .35), 0 14px 32px -18px rgba(0, 0, 0, .5);
  --sh-3: 0 4px 12px rgba(0, 0, 0, .4), 0 24px 56px -22px rgba(0, 0, 0, .55);
  --sh-lift: 0 8px 24px rgba(201, 162, 39, .16), 0 24px 48px -24px rgba(201, 162, 39, .2);
}

/* ---------- 容器 ---------- */
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 40px; }
@media (max-width: 1280px) { .wrap { padding: 0 32px; } }
@media (max-width: 720px) { .wrap { padding: 0 20px; } }

/* ---------- 顶栏 ---------- */
/* 顶栏 sticky，锚点跳转需留出净空，否则目标会被压在栏下 */
html { scroll-padding-top: 92px; }
section[id], [id='ai'], [id='roles'] { scroll-margin-top: 92px; }

.hdr {
  position: sticky; top: 0; z-index: 60;
  background: var(--surface);
  border-bottom: 1px solid var(--hair);
}
.hdr__in { display: flex; align-items: center; gap: 40px; height: 76px; }
.hdr__brand { display: flex; align-items: center; gap: 10px; flex: none; }
/* 品牌标：正式 logo（炭黑狗 + 亮绿猫，源的图形区域是竖构图 252×307）。
   源图四周有 18% 留白，直接按方块显示会显得小一圈，所以用裁切过的 logo-mark.png，
   按高度给尺寸、宽度自适应。 */
.hdr__mark { height: 36px; width: auto; flex: none; }
/* 深色主题的页头（投资页 surface=#14110D）：炭黑狗头会隐形，给白圆角片托底。
   box-sizing:content-box 让 padding 加在 26px 内容高度之外，总高仍是 36px。 */
[data-theme='investor'] .hdr__mark {
  height: 26px; padding: 5px 6px; box-sizing: content-box;
  background: #FFFFFF; border-radius: 10px;
}
.hdr__name { font-size: 19px; font-weight: 700; color: var(--ink); letter-spacing: -.02em; }
.hdr__cn { font-size: 13px; font-weight: 500; color: var(--weak); }
.hdr__nav { display: flex; align-items: center; gap: 32px; margin-left: auto; }
.hdr__link { font-size: 15px; font-weight: 500; color: var(--ink-2); transition: color .18s; }
.hdr__link:hover { color: var(--theme); }
.hdr__link[aria-current='page'] { color: var(--theme); font-weight: 600; }
.hdr__act { display: flex; align-items: center; gap: 22px; }
.hdr__sign {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 15px; font-weight: 500; color: var(--muted);
  transition: color .18s;
}
.hdr__sign:hover, .hdr__drop--sign.is-open > .hdr__sign { color: var(--theme); }
.hdr__sign .hdr__caret { width: 11px; height: 11px; }
.hdr__drop--sign .hdr__caret { transition: transform .22s; }
.hdr__drop--sign.is-open .hdr__caret { transform: rotate(180deg); }

/* 登录下拉：靠右对齐，单列，宽度收窄。
   基础规则 .hdr__drop.is-open .hdr__menu 带 translateX(-50%) 居中（同为 3 个类时会
   靠书写顺序取胜，很脆弱）。这里统一用双类 .hdr__menu--sign 提级压过它。 */
.hdr__menu.hdr__menu--sign { left: auto; right: 0; transform: translateY(-6px); width: 320px; }
.hdr__drop.is-open .hdr__menu.hdr__menu--sign,
.hdr__drop--sign.is-open .hdr__menu { transform: translateY(0); }

/* ---------- 服务对象下拉 ---------- */
.hdr__drop { position: relative; }
.hdr__dropbtn {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 15px; font-weight: 500; color: var(--ink-2);
  transition: color .18s;
}
.hdr__dropbtn:hover, .hdr__drop.is-open > .hdr__dropbtn { color: var(--theme); }
/* 当前页属于「服务对象」时，顶层入口保持激活态 */
.hdr__drop.is-current > .hdr__dropbtn { color: var(--theme); font-weight: 600; }
.hdr__caret { width: 12px; height: 12px; transition: transform .22s; }
.hdr__drop.is-open .hdr__caret { transform: rotate(180deg); }

.hdr__menu {
  position: absolute; top: calc(100% + 14px); left: 50%;
  width: 660px; transform: translateX(-50%) translateY(-6px);
  padding: 18px;
  background: var(--surface);
  border: 1px solid var(--hair);
  border-radius: var(--r-md);
  box-shadow: var(--sh-3);
  /* 必须完全不透明：面板会压在深色 Hero 上，半透会让底下大标题透出来干扰阅读 */
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .2s, transform .2s, visibility .2s;
}
/* 补齐按钮与面板之间的 14px 间隙，避免鼠标移入面板时误判为离开 */
.hdr__menu::before { content: ''; position: absolute; left: 0; right: 0; top: -15px; height: 15px; }
.hdr__drop.is-open .hdr__menu { opacity: 1; visibility: visible; pointer-events: auto; transform: translateX(-50%) translateY(0); }
.hdr__menuhead {
  padding: 2px 8px 14px; margin-bottom: 12px;
  border-bottom: 1px solid var(--hair-2);
  font-size: 12px; font-weight: 600; letter-spacing: .04em;
  color: var(--weak); text-transform: uppercase;
}
/* 关键：全局重置只清了 list-style，li 仍是 list-item（会收缩到内容最小宽）。
   下拉面板的 li 必须显式改为块级，否则窄面板里文本列被压到逐字竖排。 */
.hdr__menulist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.hdr__menulist > li { display: block; min-width: 0; }
/* 单列变体：与基础规则同特异性，靠书写顺序取胜（放前面会被覆盖） */
.hdr__menulist.hdr__menulist--1 { grid-template-columns: minmax(0, 1fr); }
/* 两列：色点占第 1 列，名称与描述同处第 2 列（纵向叠放）。
   若把描述放进第 3 列，窄面板下会被挤到极窄宽度而逐字竖排。 */
.hdr__menuitem {
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 11px;
  align-items: start;
  padding: 11px 12px; border-radius: var(--r-xs);
  transition: background-color .16s;
}
.hdr__menuitem:hover { background: var(--surface-2); }
.hdr__menuitem[aria-current='page'] { background: var(--theme-soft); }
.hdr__dot { width: 8px; height: 8px; margin-top: 7px; border-radius: 50%; background: var(--theme); flex: none; }
.hdr__dot.is-user { background: #006A60; }
.hdr__dot.is-merchant { background: var(--mod-mall); }
.hdr__dot.is-hospital { background: var(--mod-medical); }
.hdr__dot.is-insurance { background: var(--mod-insurance); }
.hdr__dot.is-welfare { background: var(--mod-welfare); }
.hdr__dot.is-gov { background: var(--mod-cert); }
.hdr__dot.is-investor { background: #C9A227; }
.hdr__menuitem[aria-current='page'] .hdr__dot { box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme) 22%, transparent); }
.hdr__menuname { grid-column: 2; font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.3; min-width: 0; }
.hdr__menudesc { grid-column: 2; font-size: 12.5px; color: var(--muted); line-height: 1.45; min-width: 0; }
.hdr__menuftr { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--hair-2); }
.hdr__menuftr a {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 0 8px; font-size: 13.5px; font-weight: 600; color: var(--theme);
}
.hdr__menuftr a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 汉堡与移动面板 ---------- */
.hdr__burger {
  display: none; width: 42px; height: 42px; border-radius: var(--r-xs);
  color: var(--ink); place-items: center;
  border: 1px solid var(--hair); background: var(--surface-2);
}
.hdr__burger:hover { color: var(--theme); border-color: var(--theme); }

.hdr__panel {
  display: none; border-top: 1px solid var(--hair);
  background: var(--surface);
  max-height: calc(100vh - 76px); overflow-y: auto;
}
.hdr__panel.is-open { display: block; }
.hdr__panelin { padding: 18px 40px 28px; display: flex; flex-direction: column; gap: 20px; }
.hdr__panelgroup { display: flex; flex-direction: column; }
.hdr__paneltitle {
  padding: 0 0 10px; font-size: 12px; font-weight: 600;
  letter-spacing: .04em; color: var(--weak); text-transform: uppercase;
}
.hdr__panellist { display: flex; flex-direction: column; }
.hdr__panelitem {
  display: flex; align-items: center; gap: 10px;
  padding: 13px 4px; border-bottom: 1px solid var(--hair-2);
  font-size: 15.5px; font-weight: 500; color: var(--ink);
}
.hdr__panelitem:last-child { border-bottom: 0; }
.hdr__panelitem[aria-current='page'] { color: var(--theme); font-weight: 600; }
.hdr__panelitem .hdr__dot { margin-top: 0; flex: none; }
.hdr__panelitem span { display: flex; flex-direction: column; min-width: 0; }
.hdr__panelitem small { font-weight: 400; color: var(--weak); font-size: 13px; line-height: 1.45; }
.hdr__panelcta { display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }
.hdr__panelcta .btn { justify-content: center; }

@media (max-width: 1080px) {
  .hdr__nav, .hdr__sign { display: none; }
  .hdr__burger { display: grid; margin-left: auto; }
  .hdr__act { margin-left: auto; }
  .hdr__in { gap: 16px; }
}
@media (max-width: 560px) {
  .hdr__panelin { padding: 16px 20px 24px; }
  .hdr__act .btn { display: none; }
}

/* ---------- 左右分栏（FAQ / 说明 + 内容） ----------
   统一治理原先散落在 HTML 里的 grid-template-columns:400px 1fr 内联硬编码，
   窄屏下必须降为单列，否则 400px 定宽列会直接撑破视口。 */
.split { display: grid; grid-template-columns: minmax(0, 400px) minmax(0, 1fr); gap: 80px; align-items: start; }
.split-gap-70 { gap: 70px; }
.split-gap-0 { gap: 0; }
/* 投资页回报模拟器卡：深色描边 + 圆角 + 裁剪，两栏等高 */
.simcard { background: #14110D; border: 1px solid rgba(201, 162, 39, .22); border-radius: var(--r-md); overflow: hidden; }
@media (max-width: 980px) {
  .split { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .simcard { gap: 0; }
}

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 16px 28px; border-radius: var(--r-pill);
  font-size: 16px; font-weight: 600; line-height: 1;
  transition: transform .18s, box-shadow .18s, background-color .18s;
  white-space: nowrap;
}
.btn--primary { background: var(--theme); color: var(--theme-on); box-shadow: var(--sh-lift); }
.btn--primary:hover { transform: translateY(-1px); }
.btn--ghost { border: 1.5px solid var(--hair); background: var(--surface); color: var(--ink); }
.btn--ghost:hover { border-color: var(--weak); }
.btn--on-dark { background: #fff; color: #0A4A42; box-shadow: 0 8px 24px rgba(0, 0, 0, .2); }
[data-theme='medical'] .btn--on-dark { color: #0B3A5D; }
[data-theme='insurance'] .btn--on-dark { color: #2E2A7A; }
.btn--outline-dark { border: 1.5px solid var(--deep-line); color: #fff; background: transparent; }
.btn--outline-dark:hover { border-color: rgba(255, 255, 255, .4); }
.btn--sm { padding: 11px 22px; font-size: 15px; }
.btn__arrow { width: 18px; height: 18px; flex: none; }

/* ---------- 段落通用 ---------- */
.sec { padding: 96px 0; }
.sec--tight { padding: 88px 0; }
.sec--page { background: var(--page); }
.sec--surface { background: var(--surface); }
.sec--tint { background: var(--surface-2); }
.sec--deep { background: var(--deep-1); color: #fff; }

.sec__eyebrow {
  font-size: 13px; font-weight: 600; letter-spacing: 1.2px;
  color: var(--theme); margin-bottom: 16px;
}
.sec--deep .sec__eyebrow, [data-theme='investor'] .sec__eyebrow { color: #E8C766; }
.sec__title {
  font-size: 40px; font-weight: 700; line-height: 1.35;
  letter-spacing: -.02em; color: var(--ink); margin-bottom: 16px;
}
.sec__title--sm { font-size: 36px; }
.sec__lede {
  font-size: 17px; line-height: 1.78; color: var(--muted);
  max-width: 840px; margin-bottom: 44px;
}
.sec--deep .sec__title { color: #fff; }
.sec--deep .sec__lede { color: var(--deep-muted); }

/* ---------- 首屏 ---------- */
.hero { padding: 88px 0; }
.hero--page { background: var(--surface); }
.hero--brand { background: linear-gradient(135deg, var(--deep-1) 0%, var(--deep-2) 55%, var(--deep-3) 100%); }
[data-theme='investor'] .hero--brand { background: linear-gradient(135deg, #0F0D0B 0%, #161310 55%, #211D17 100%); }
.hero__in { display: grid; grid-template-columns: 1fr 440px; gap: 80px; align-items: center; }
.hero__copy { display: flex; flex-direction: column; gap: 26px; }
.hero__badge {
  display: inline-flex; align-items: center; gap: 9px; align-self: flex-start;
  padding: 8px 16px 8px 14px; border-radius: var(--r-pill);
  background: rgba(42, 184, 168, .18);
}
.hero__badge i { width: 7px; height: 7px; border-radius: 50%; background: #5EEAD4; flex: none; }
.hero__badge span { font-size: 13px; font-weight: 500; color: #A7F0E4; }
[data-theme='medical'] .hero__badge { background: rgba(47, 128, 237, .2); }
[data-theme='medical'] .hero__badge span { color: #BFDBFE; }
[data-theme='insurance'] .hero__badge { background: rgba(129, 140, 248, .22); }
[data-theme='insurance'] .hero__badge span { color: #C7D2FE; }
[data-theme='welfare'] .hero__badge { background: rgba(34, 197, 94, .2); }
[data-theme='welfare'] .hero__badge span { color: #BBF7D0; }
[data-theme='government'] .hero__badge { background: rgba(167, 139, 250, .22); }
[data-theme='government'] .hero__badge span { color: #DDD6FE; }
[data-theme='investor'] .hero__badge { background: rgba(201, 162, 39, .16); }
[data-theme='investor'] .hero__badge span { color: #E8C766; }
[data-theme='investor'] .hero__badge i { background: #E8C766; }

.hero__title {
  font-size: 48px; font-weight: 700; line-height: 1.36;
  letter-spacing: -.025em; color: #fff;
}
.hero__lede { font-size: 17px; line-height: 1.78; color: #B6D9D3; }
[data-theme='medical'] .hero__lede { color: #AFD6F2; }
[data-theme='insurance'] .hero__lede { color: #C7D2FE; }
[data-theme='welfare'] .hero__lede { color: #BFE8CE; }
[data-theme='government'] .hero__lede { color: #D6CCF5; }
[data-theme='investor'] .hero__lede { color: #B8AFA4; }
.hero__acts { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }

/* 首屏核心承诺条 */
.hero__points { display: flex; flex-direction: column; gap: 13px; padding-top: 8px; }
.hero__point { display: flex; align-items: center; gap: 11px; font-size: 15px; font-weight: 500; color: #D3EFEA; }
[data-theme='medical'] .hero__point { color: #DCEBFA; }
[data-theme='insurance'] .hero__point { color: #E0E7FF; }
[data-theme='government'] .hero__point { color: #E4DEF8; }
.hero__check {
  width: 20px; height: 20px; border-radius: 50%; flex: none;
  display: grid; place-items: center; background: rgba(42, 184, 168, .22);
}
.hero__check svg { width: 13px; height: 13px; color: #5EEAD4; }
[data-theme='medical'] .hero__check { background: rgba(47, 128, 237, .28); }
[data-theme='medical'] .hero__check svg { color: #93C5FD; }
[data-theme='insurance'] .hero__check { background: rgba(129, 140, 248, .28); }
[data-theme='insurance'] .hero__check svg { color: #A5B4FC; }
[data-theme='government'] .hero__check { background: rgba(167, 139, 250, .3); }
[data-theme='government'] .hero__check svg { color: #C4B5FD; }
[data-theme='investor'] .hero__check { background: rgba(201, 162, 39, .22); }
[data-theme='investor'] .hero__check svg { color: #E8C766; }

/* 首屏信任条 */
.hero__trust { display: flex; align-items: center; gap: 28px; padding-top: 8px; flex-wrap: wrap; }
.hero__trust li { font-size: 14px; font-weight: 500; color: #8FC4BD; }

@media (max-width: 1080px) {
  .hero__in { grid-template-columns: 1fr; gap: 48px; }
  .hero__title { font-size: 40px; }
  .sec__title { font-size: 32px; }
  .sec__lede { font-size: 16px; }
}

/* ---------- 实物展示卡 ---------- */
.showcase {
  background: #fff; border-radius: var(--r-lg); padding: 28px;
  box-shadow: var(--sh-3); justify-self: center; width: 100%; max-width: 440px;
}
.showcase--phone { max-width: 300px; }
.showcase--chat, .showcase--board { max-width: 420px; }
.showcase__top { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.showcase__label { font-size: 12px; font-weight: 500; color: var(--weak); }
.showcase__id { font-size: 19px; font-weight: 700; color: #1F2933; letter-spacing: .02em; }
.showcase__seal {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; border-radius: var(--r-pill);
  background: var(--brand-soft);
  font-size: 12px; font-weight: 600; color: var(--brand);
}
.showcase__hr { height: 1px; background: #EFF2F2; margin: 20px 0; }
.showcase__foot {
  display: flex; align-items: center; gap: 8px;
  margin-top: 18px; padding-top: 16px; border-top: 1px solid #EFF2F2;
  font-size: 12px; color: var(--weak);
}
.showcase__foot svg { width: 15px; height: 15px; flex: none; }

/* 档案卡 */
.filecard__pet { display: flex; align-items: center; gap: 13px; margin-bottom: 20px; }
.filecard__avatar { width: 52px; height: 52px; border-radius: 50%; flex: none; object-fit: cover; }
.filecard__name { font-size: 16px; font-weight: 700; color: #1F2933; }
.filecard__meta { font-size: 13px; color: #667085; }
.filecard__recs { display: flex; flex-direction: column; gap: 12px; }
.filecard__rec { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 14px; background: #F7F9F9; }
.filecard__ricon { width: 30px; height: 30px; border-radius: 50%; flex: none; display: grid; place-items: center; }
.filecard__ricon svg { width: 16px; height: 16px; }
.filecard__rt { font-size: 14px; font-weight: 600; color: #1F2933; }
.filecard__rd { font-size: 12px; color: #98A2B3; }

/* ---------- 生命年轮（首页档案卡动效） ----------
   记录条目在切换阶段时做「淡出上移 → 淡入」，配合年轮填充与年龄递进，
   讲的是同一只宠物的时间在往前走，而不是轮播切页。 */
.liferail { position: relative; margin: 2px 0 20px; padding-top: 3px; }
.liferail__track {
  position: relative; height: 2px; border-radius: 2px;
  background: #E7EBEC; overflow: hidden;
}
.liferail__fill {
  position: absolute; inset: 0 auto 0 0; width: 100%;
  background: linear-gradient(90deg, #2BB8A8, #006A60);
  border-radius: 2px;
  transform-origin: left center;
  transform: scaleX(1);
}
.liferail__dots { display: flex; justify-content: space-between; margin-top: -7px; }
.liferail__dot {
  width: 12px; height: 12px; border-radius: 50%;
  background: #fff; border: 2px solid #E7EBEC;
  transition: border-color .45s ease, background-color .45s ease, transform .45s ease;
}
.liferail__dot.is-done { border-color: #2BB8A8; background: #2BB8A8; }
.liferail__dot.is-now {
  border-color: #006A60; background: #fff;
  transform: scale(1.25);
  box-shadow: 0 0 0 4px rgba(43, 184, 168, .18);
}
.liferail__stage {
  margin-top: 12px; font-size: 12px; font-weight: 600;
  color: #0E8577; letter-spacing: .01em;
}

/* 记录条目进出：向上位移 + 透明度，避免整块硬切 */
.filecard__recs[data-life-recs] .filecard__rec {
  transition: opacity .42s ease, transform .42s ease;
}
.filecard__rec.is-out { opacity: 0; transform: translateY(-8px); }
.filecard__rec.is-in { animation: recIn .5s cubic-bezier(.22, .68, .36, 1) both; }
@keyframes recIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 年龄数字滚动时的高度稳定 */
.filecard__meta [data-life-age] { display: inline-block; min-width: 8.5em; }

/* 悬停暂停：把鼠标放在卡片上时停止自动播放 */
.showcase--life:hover .liferail__fill { transition: transform .8s linear; }

@media (prefers-reduced-motion: reduce) {
  .liferail__fill { transition: none; }
  .filecard__recs[data-life-recs] .filecard__rec,
  .liferail__dot { transition: none; }
  .filecard__rec.is-in { animation: none; }
}

.filecard__ai {
  display: flex; align-items: center; gap: 11px;
  margin-top: 18px; padding: 14px 18px; border-radius: 18px;
  background: rgba(255, 255, 255, .14); border: 1px solid rgba(42, 184, 168, .32);
}
.filecard__ai-icon { width: 32px; height: 32px; border-radius: 50%; flex: none; background: #2BB8A8; display: grid; place-items: center; }
.filecard__ai-icon svg { width: 18px; height: 18px; }
.filecard__ai-t { font-size: 13px; font-weight: 500; color: #D3EFEA; }

/* 手机示意 */
.phone__bar {
  height: 40px; background: #F2F4F6;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 20px; font-size: 13px; font-weight: 600; color: #1F2933;
  margin: -28px -28px 18px;
}
.phone__body { display: flex; flex-direction: column; gap: 12px; }
.phone__greet { font-size: 15px; font-weight: 700; color: #1F2933; }
.phone__greetmeta { font-size: 11px; color: #98A2B3; margin-top: 2px; }
.phone__card { padding: 14px; border-radius: 16px; background: #EAF4F0; }
.phone__cardt { font-size: 13px; font-weight: 700; color: #0A5A50; }
.phone__cardd { font-size: 11px; line-height: 1.6; color: #3C6B65; margin-top: 3px; }
.phone__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.phone__cell { padding: 11px 8px; border-radius: 12px; text-align: center; font-size: 11px; font-weight: 600; }

/* 病历卡 / 救助卡 / 协作看板通用 */
.showcase__pet { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.showcase__avatar { width: 46px; height: 46px; border-radius: 50%; flex: none; display: grid; place-items: center; }
.showcase__avatar svg { width: 26px; height: 26px; }
.showcase__petname { font-size: 16px; font-weight: 700; color: #1F2933; }
.showcase__petmeta { font-size: 12px; color: #98A2B3; }
.showcase__recs { display: flex; flex-direction: column; gap: 11px; }
.showcase__rec { padding: 13px 15px; border-radius: 13px; }
.showcase__rl { font-size: 11px; font-weight: 600; margin-bottom: 3px; }
.showcase__rt { font-size: 13px; line-height: 1.6; color: #1F2933; }

.showcase__stats { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.showcase__stats--3 { grid-template-columns: repeat(3, 1fr); }
.showcase__st { display: flex; flex-direction: column; gap: 5px; }
.showcase__st + .showcase__st { padding-left: 16px; border-left: 1px solid #EFF2F2; }
.showcase__sl { font-size: 12px; color: #98A2B3; }
.showcase__sn { font-size: 22px; font-weight: 700; color: #1F2933; letter-spacing: -.02em; }
.showcase__sd { font-size: 11px; color: #98A2B3; }

.showcase__box { padding: 16px 18px; border-radius: 16px; background: #F7F9F9; margin-bottom: 16px; }
.showcase__boxt { font-size: 13px; font-weight: 600; color: #3C4947; margin-bottom: 11px; }
.showcase__row { display: flex; align-items: center; gap: 11px; padding: 7px 0; }
.showcase__dot {
  width: 22px; height: 22px; border-radius: 50%; flex: none;
  display: grid; place-items: center; font-size: 12px; font-weight: 700;
}
.showcase__rowt { font-size: 13px; font-weight: 600; color: #1F2933; }
.showcase__rowd { font-size: 11px; color: #98A2B3; }

.showcase__perm { display: flex; align-items: center; gap: 10px; padding: 7px 0; }
.showcase__permi { width: 18px; height: 18px; border-radius: 50%; flex: none; display: grid; place-items: center; }
.showcase__permi svg { width: 12px; height: 12px; }
.showcase__permt { font-size: 13px; color: #4B5563; }
.showcase__audit {
  display: flex; align-items: center; gap: 10px;
  padding: 12px 14px; border-radius: 12px;
  font-size: 11px; line-height: 1.6;
}
.showcase__audit svg { width: 16px; height: 16px; flex: none; }

/* 四端一体结构图 */
.arch__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.arch__title { font-size: 16px; font-weight: 700; }
.arch__badge { padding: 6px 12px; border-radius: var(--r-pill); font-size: 12px; font-weight: 600; }
.arch__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.arch__node {
  padding: 14px 10px; border-radius: 14px; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 7px;
  font-size: 13px; font-weight: 600;
}
.arch__node svg { width: 22px; height: 22px; }
.arch__link { display: flex; align-items: center; justify-content: center; gap: 12px; padding: 10px 0; font-size: 12px; }
.arch__link svg { width: 16px; height: 16px; flex: none; }
.arch__core { padding: 18px 20px; border-radius: 16px; }
.arch__corel { font-size: 12px; font-weight: 700; letter-spacing: .08em; margin-bottom: 10px; }
.arch__coret { font-size: 14px; line-height: 1.72; }
.arch__foot {
  display: flex; align-items: center; gap: 9px;
  margin-top: 16px; padding: 13px 14px; border-radius: 12px;
  font-size: 12px; line-height: 1.6;
}
.arch__foot svg { width: 16px; height: 16px; flex: none; }

/* 经营看板 */
.board__chart { padding: 18px; border-radius: 16px; background: #F7F9F9; }
.board__chartt { font-size: 13px; font-weight: 600; color: #3C4947; margin-bottom: 12px; }
.board__bars { display: flex; align-items: flex-end; gap: 12px; height: 96px; }
.board__bar { flex: 1; display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; align-items: center; }
.board__bar i { display: block; width: 100%; border-radius: 5px 5px 0 0; }
.board__bar b { font-size: 11px; font-weight: 400; color: #98A2B3; }

/* 对话演示 */
.chat__head { display: flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.chat__avatar { width: 32px; height: 32px; border-radius: 50%; flex: none; display: grid; place-items: center; }
.chat__avatar svg { width: 18px; height: 18px; }
.chat__name { font-size: 15px; font-weight: 700; color: #1F2933; }
.chat__status { font-size: 12px; color: #667085; }
.chat__body { display: flex; flex-direction: column; gap: 12px; }
.chat__bub { padding: 13px 16px; border-radius: 18px; font-size: 14px; line-height: 1.6; }
.chat__bub--me { color: #fff; border-bottom-right-radius: 6px; }
.chat__bub--ai { background: #fff; border: 1px solid #E7EBEC; color: #1F2933; }
.chat__plan { padding: 14px; border-radius: 14px; display: flex; flex-direction: column; gap: 10px; }
.chat__planl { font-size: 11px; font-weight: 700; letter-spacing: .06em; }
.chat__plant { font-size: 13px; font-weight: 600; line-height: 1.6; }
.chat__planb { display: flex; gap: 9px; }
.chat__planb button { flex: 1; padding: 10px; border-radius: 10px; font-size: 13px; font-weight: 600; }
.chat__note { font-size: 12px; line-height: 1.65; margin-top: 14px; }

/* 无 JS 降级：noscript 里给出可执行的替代路径（发邮件） */
.noscript-fallback {
  display: block; margin: 0 0 80px;
  padding: 40px; border-radius: var(--r-lg);
  background: var(--surface-2); border: 1px solid var(--hair);
}
.noscript-fallback h2 { font-size: 24px; font-weight: 700; color: var(--ink); margin-bottom: 12px; }
.noscript-fallback p { font-size: 15px; line-height: 1.8; color: var(--muted); }
.noscript-fallback b { color: var(--theme); }

/* ---------- 通用弹窗（机构入驻表单） ---------- */
/* 默认（无 JS）：弹窗容器不展示，由 <noscript> 里的降级入口引导到页内表单区块 */
.modal {
  position: fixed; inset: 0; z-index: 90;
  display: none; place-items: start center;
  padding: 40px 20px;
  overflow-y: auto;
}
/* JS 接管后才变成真正的浮层 */
.modal.is-ready { display: grid; }
/* hidden 必须压过上面的 display:grid（双类提级，不依赖书写顺序） */
.modal[hidden],
.modal.is-ready[hidden] { display: none; }
.modal__mask { position: fixed; inset: 0; background: rgba(10, 20, 18, .62); backdrop-filter: blur(4px); }
.modal__win {
  position: relative; z-index: 1;
  width: 100%; max-width: 780px;
  margin: auto;
  animation: modalIn .28s cubic-bezier(.22, .68, .36, 1) both;
}
@keyframes modalIn {
  from { opacity: 0; transform: translateY(18px) scale(.985); }
  to   { opacity: 1; transform: translateY(0) scale(1); }
}
.modal__x {
  position: absolute; top: 16px; right: 16px; z-index: 2;
  width: 38px; height: 38px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--surface-2); color: var(--muted);
  border: 1px solid var(--hair);
  transition: background-color .18s, color .18s;
}
.modal__x:hover { background: var(--hair); color: var(--ink); }
.modal__x svg { width: 18px; height: 18px; }

/* 弹窗内的表单：自身不再是 section，去掉外层留白 */
.modal .apply { box-shadow: var(--sh-3); }

@media (max-width: 720px) {
  .modal { padding: 0; place-items: stretch; }
  .modal__win { max-width: none; min-height: 100vh; margin: 0; }
  .modal .apply { border-radius: 0; border: 0; min-height: 100vh; align-content: flex-start; }
  .modal__x { position: fixed; top: 12px; right: 12px; background: var(--surface); box-shadow: var(--sh-2); }
  .modal .apply__title { padding-right: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .modal__win { animation: none; }
}

/* ---------- 审核进度查询（status.js） ---------- */
.modal__win--narrow { max-width: 620px; }

.statusq, .statusr { background: var(--surface); border-radius: var(--r-lg); box-shadow: var(--sh-3); }
.statusq { padding: 40px; }
.statusq__title { font-size: 24px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.statusq__lede { font-size: 14.5px; line-height: 1.75; color: var(--muted); margin: 10px 0 24px; }
.statusq .apply__grid { margin-bottom: 4px; }
/* 栅格下面的短信说明，跟最后一个字段拉开距离 */
.statusq .apply__grid + .apply__note { margin-top: 16px; }
.statusq .apply__foot { margin-top: 24px; }

/* 结果态 */
.statusr { padding: 40px; }
/* 结果面板里的反馈条：面板本身已有 40px 内边距，条自身不再重复加。
   右边多让出 28px，避开绝对定位的关闭按钮（它压在面板右上角）。 */
.statusr > .applyfb:first-child { margin-bottom: 20px; margin-right: 28px; }
.statusr__head { display: flex; align-items: flex-start; gap: 15px; margin-bottom: 28px; }
.statusr__tag {
  flex: none; padding: 8px 15px; border-radius: var(--r-pill);
  font-size: 13px; font-weight: 700; white-space: nowrap;
  background: var(--surface-2); color: var(--muted);
}
.statusr__tag.is-wait  { background: #FEF2F2; color: #991B1B; }
.statusr__tag.is-doing { background: var(--theme-soft); color: var(--theme-ink); }
.statusr__tag.is-warn  { background: #FFFBEB; color: #92400E; }
.statusr__tag.is-ok    { background: var(--theme-soft); color: var(--theme-ink); }
.statusr__tag.is-bad   { background: #FEF2F2; color: #991B1B; }
.statusr__org { font-size: 21px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.statusr__meta { font-size: 13.5px; line-height: 1.65; color: var(--muted); margin-top: 6px; }

/* 进度时间线 */
.statusr__steps { list-style: none; margin: 0 0 4px; padding: 0; }
.statusr__step {
  display: grid; grid-template-columns: auto minmax(0, 1fr);
  gap: 15px; position: relative; padding-bottom: 22px;
}
.statusr__step:last-child { padding-bottom: 0; }
/* 竖线：除最后一项都画到下一项 */
.statusr__step:not(:last-child)::before {
  content: ''; position: absolute;
  left: 6px; top: 18px; bottom: 0; width: 2px;
  background: var(--hair);
}
.statusr__step.is-done:not(:last-child)::before { background: var(--theme); }
.statusr__dot {
  width: 14px; height: 14px; margin-top: 4px; border-radius: 50%;
  background: var(--surface); border: 2px solid var(--hair); position: relative; z-index: 1;
}
.statusr__step.is-done .statusr__dot { background: var(--theme); border-color: var(--theme); }
.statusr__step.is-now .statusr__dot {
  border-color: var(--theme); background: var(--surface);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--theme) 18%, transparent);
}
.statusr__body { min-width: 0; }
.statusr__st { font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.5; }
.statusr__step.is-todo .statusr__st { color: var(--weak); font-weight: 500; }
.statusr__sn { font-size: 13.5px; line-height: 1.65; color: var(--muted); margin-top: 4px; }

@media (max-width: 720px) {
  .statusq, .statusr { padding: 28px 20px; }
  .statusq__title { font-size: 20px; padding-right: 44px; }
  .statusr__org { font-size: 18px; }
  .statusr__head { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .statusr__dot { transition: none; }
}

/* ---------- 营业执照上传 ---------- */
.upload {
  position: relative;
  border: 1.5px dashed var(--hair);
  border-radius: var(--r-xs);
  background: var(--surface-2);
  padding: 18px;
  transition: border-color .18s, background-color .18s;
}
.upload:hover { border-color: var(--theme); }
.upload.is-drag { border-color: var(--theme); background: var(--theme-soft); }
.upload.is-bad { border-color: #DC2626; background: #FEF2F2; }

.upload__pick {
  display: flex; align-items: center; gap: 14px;
  cursor: pointer;
}
.upload__ico {
  width: 46px; height: 46px; flex: none;
  border-radius: var(--r-xs);
  background: var(--surface); border: 1px solid var(--hair);
  display: grid; place-items: center; color: var(--theme);
}
.upload__ico svg { width: 22px; height: 22px; }
.upload__txt { min-width: 0; flex: 1; }
.upload__t {
  display: block; font-size: 14.5px; font-weight: 600; color: var(--ink); line-height: 1.45;
}
.upload__t u { color: var(--theme); text-decoration: none; }
.upload__d { display: block; font-size: 12.5px; color: var(--weak); line-height: 1.5; margin-top: 3px; }
/* 隐藏原生 file 输入，但保留可访问性 */
.upload input[type=file] {
  position: absolute; width: 1px; height: 1px;
  opacity: 0; pointer-events: none;
}
/* 键盘可达：input 聚焦时让容器显形 */
.upload input[type=file]:focus-visible + .upload__pick .upload__ico {
  outline: 2px solid var(--theme); outline-offset: 2px;
}

/* 已选文件 */
.upload__file {
  display: none;
  align-items: center; gap: 13px;
  margin-top: 14px; padding-top: 14px;
  border-top: 1px solid var(--hair);
}
.upload.has-file .upload__file { display: flex; }
.upload.has-file .upload__pick { padding: 2px 2px 0; }
.upload__thumb {
  width: 56px; height: 56px; flex: none;
  border-radius: 10px; overflow: hidden;
  background: var(--surface); border: 1px solid var(--hair);
  display: grid; place-items: center; color: var(--muted);
}
.upload__thumb img { width: 100%; height: 100%; object-fit: cover; }
.upload__thumb svg { width: 24px; height: 24px; }
.upload__meta { flex: 1; min-width: 0; }
.upload__name {
  font-size: 14px; font-weight: 600; color: var(--ink);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.upload__size { font-size: 12.5px; color: var(--weak); margin-top: 3px; }
/* 上传进度 */
.upload__bar {
  height: 4px; margin-top: 8px;
  border-radius: 2px; background: var(--hair); overflow: hidden;
}
.upload__bar i {
  display: block; height: 100%; width: 0%;
  border-radius: 2px; background: var(--theme);
  transition: width .2s;
}
.upload__acts { display: flex; gap: 8px; flex: none; }
.upload__mini {
  height: 32px; padding: 0 13px;
  border-radius: var(--r-pill); border: 1px solid var(--hair);
  background: var(--surface); color: var(--ink-2);
  font-size: 13px; font-weight: 600; font-family: inherit;
  transition: background-color .18s, border-color .18s, color .18s;
}
.upload__mini:hover { border-color: var(--theme); color: var(--theme); }
.upload__mini--del:hover { border-color: #DC2626; color: #DC2626; }

@media (max-width: 560px) {
  .upload { padding: 15px; }
  .upload__file { flex-wrap: wrap; }
  .upload__acts { width: 100%; }
  .upload__mini { flex: 1; }
}

/* ---------- 机构入驻申请表 ---------- */
.apply { background: var(--surface-2); border: 1px solid var(--hair); border-radius: var(--r-lg); padding: 40px; }
.apply__head { margin-bottom: 28px; }
.apply__title { font-size: 26px; font-weight: 700; color: var(--ink); line-height: 1.35; }
.apply__lede { font-size: 15px; line-height: 1.75; color: var(--muted); margin-top: 10px; }
.apply__tag {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 7px 14px; border-radius: var(--r-pill);
  background: var(--theme-soft); font-size: 13px; font-weight: 600; color: var(--theme);
  margin-bottom: 14px;
}
.apply__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 22px; }
/* 单列版：双类提级，避免被上面的两列规则/窄屏规则按书写顺序盖掉 */
.apply__grid.apply__grid--one { grid-template-columns: minmax(0, 1fr); }
.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.field--full { grid-column: 1 / -1; }
.field > label { font-size: 14px; font-weight: 600; color: var(--ink-2); }
.field > label i { color: var(--theme); font-style: normal; margin-left: 2px; }
.field > label .field__opt {
  margin-left: 8px; padding: 2px 8px; border-radius: var(--r-pill);
  background: var(--surface-2); color: var(--weak);
  font-size: 11.5px; font-weight: 500; font-style: normal;
}
.field input, .field textarea, .field select {
  width: 100%; padding: 13px 15px;
  border: 1px solid var(--hair); border-radius: var(--r-xs);
  background: var(--surface); color: var(--ink);
  font-family: inherit; font-size: 15px; line-height: 1.5;
  transition: border-color .18s, box-shadow .18s;
}
.field textarea { resize: vertical; min-height: 92px; }
.field input::placeholder, .field textarea::placeholder { color: var(--weak); }
.field input:focus, .field textarea:focus, .field select:focus {
  outline: none; border-color: var(--theme);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--theme) 16%, transparent);
}
.field input.is-bad, .field textarea.is-bad { border-color: #DC2626; }
.field input.is-bad:focus, .field textarea.is-bad:focus { box-shadow: 0 0 0 3px rgba(220, 38, 38, .14); }
.field__hint { font-size: 12.5px; color: var(--weak); line-height: 1.5; }
.field__err { font-size: 12.5px; color: #DC2626; min-height: 0; }
.field__err:empty { display: none; }

/* 图形验证码 + 短信验证码 */
.cap { display: grid; grid-template-columns: minmax(0, 1fr) 148px; gap: 12px; align-items: start; }
.cap__img {
  height: 52px; border: 1px solid var(--hair); border-radius: var(--r-xs);
  background: var(--surface-2); cursor: pointer; overflow: hidden;
  display: grid; place-items: center;
}
.cap__img img { width: 100%; height: 100%; object-fit: cover; }
.cap__img.is-loading { opacity: .5; }
.sms { display: grid; grid-template-columns: minmax(0, 1fr) 140px; gap: 12px; }
.sms button {
  height: 52px; padding: 0 12px; border-radius: var(--r-xs);
  border: 1px solid var(--theme); background: var(--surface); color: var(--theme);
  font-size: 14px; font-weight: 600; white-space: nowrap;
  transition: background-color .18s, color .18s;
}
.sms button:hover:not(:disabled) { background: var(--theme); color: var(--theme-on); }
.sms button:disabled { opacity: .5; cursor: not-allowed; }

.consent { display: flex; align-items: flex-start; gap: 11px; }
.consent input { width: 19px; height: 19px; margin: 2px 0 0; accent-color: var(--theme); flex: none; }
.consent label { font-size: 14px; line-height: 1.65; color: var(--ink-2); }

.apply__foot { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 26px; }
.apply__foot .btn { border: 0; }
.apply__foot .btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.apply__note { font-size: 13px; color: var(--weak); line-height: 1.6; }
/* 反馈条独占一行（flex 容器里给它 100% 宽），否则会跟提交按钮并排、互相挤压 */
.apply__foot .applyfb { flex: 0 0 100%; margin-top: -2px; }

.aprmsg { margin-bottom: 22px; padding: 14px 16px; border-radius: var(--r-xs); font-size: 14px; line-height: 1.6; }
.aprmsg--bad { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.aprmsg--ok { background: var(--theme-soft); color: var(--theme-ink); border: 1px solid color-mix(in srgb, var(--theme) 30%, transparent); }

/* 就地反馈条：位置就在提交按钮正上方，点提交时视线所在处。
   顶部的 .aprmsg 汇总条在长表单里会滚出视口，不能只靠它。 */
.applyfb {
  display: flex; gap: 10px; align-items: flex-start;
  margin-bottom: 16px; padding: 13px 15px;
  border-radius: var(--r-xs); font-size: 14px; line-height: 1.6;
  animation: fbIn .22s cubic-bezier(.22, .68, .36, 1) both;
}
.applyfb:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.applyfb__ic { flex: none; width: 18px; height: 18px; margin-top: 1px; }
.applyfb__ic svg { width: 100%; height: 100%; display: block; }
.applyfb__tx { flex: 1; min-width: 0; }
.applyfb--bad { background: #FEF2F2; color: #991B1B; border: 1px solid #FECACA; }
.applyfb--ok { background: var(--theme-soft); color: var(--theme-ink); border: 1px solid color-mix(in srgb, var(--theme) 30%, transparent); }
/* 处理中：中性灰蓝，不惊吓也不误导为成功 */
.applyfb--wait { background: var(--surface-2); color: var(--ink-2); border: 1px solid var(--hair); }
.applyfb--wait .applyfb__ic { animation: fbSpin 1.1s linear infinite; }
@keyframes fbIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@keyframes fbSpin { to { transform: rotate(360deg); } }
/* 读屏软件不需要动画 */
@media (prefers-reduced-motion: reduce) {
  .applyfb { animation: none; }
  .applyfb--wait .applyfb__ic { animation: none; }
}
/* 宽屏上反馈条不撑满整行，避免一行短字拉出很宽的色块 */
@media (min-width: 721px) { .applyfb { max-width: 640px; } }

/* 提交成功 */
.apdone { text-align: center; padding: 56px 32px; }
.apdone__ic {
  width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 22px;
  display: grid; place-items: center; background: var(--theme-soft); color: var(--theme);
}
.apdone__ic svg { width: 32px; height: 32px; }
.apdone__t { font-size: 24px; font-weight: 700; color: var(--ink); }
.apdone__d { font-size: 15px; line-height: 1.8; color: var(--muted); margin-top: 12px; }
.apdone__no {
  display: inline-block; margin-top: 18px; padding: 9px 18px;
  border-radius: var(--r-pill); background: var(--surface-2);
  font-family: var(--font-num); font-size: 15px; font-weight: 700; color: var(--ink);
}
.apdone__next { margin-top: 26px; display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

@media (max-width: 900px) {
  .apply { padding: 30px 24px; }
  .apply__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .cap { grid-template-columns: minmax(0, 1fr) 132px; }
}
@media (max-width: 560px) {
  .apply { padding: 24px 18px; border-radius: var(--r-md); }
  .apply__title { font-size: 21px; }
  .sms { grid-template-columns: minmax(0, 1fr); }
  .sms button { height: 46px; }
  .cap { grid-template-columns: minmax(0, 1fr); }
  .cap__img { height: 60px; }
}

/* ---------- 下载二维码（download.html） ---------- */
.qrbox {
  width: 248px; height: 248px; margin: 0 auto;
  border: 1px solid #E5EAEA; border-radius: 16px;
  background: #fff; padding: 6px; overflow: hidden;
}
.qrbox__canvas, .qrbox canvas, .qrbox svg { display: block; width: 100% !important; height: 100% !important; }
.qrbox img { display: block; width: 100%; height: 100%; }

/* 卡片内的小二维码（Android 安装包直链） */
.tile__qr {
  display: flex; align-items: center; gap: 12px;
  margin-top: 14px; padding-top: 14px;
  border-top: 1px solid var(--hair);
}
.tile__qr[hidden] { display: none; }
.tile__qrbox {
  width: 92px; height: 92px; flex: none;
  padding: 5px; border-radius: 10px;
  background: #fff; border: 1px solid var(--hair);
  display: block; overflow: hidden;
}
.tile__qrbox svg { display: block; width: 100%; height: 100%; }
.tile__qrnote { min-width: 0; font-size: 12.5px; line-height: 1.6; color: var(--weak); }
.tile__qrnote b { display: block; font-size: 13.5px; font-weight: 600; color: var(--ink); margin-bottom: 3px; }

@media (max-width: 560px) {
  .tile__qrbox { width: 78px; height: 78px; }
}

/* ---------- AI 能力切换台（首页） ---------- */
.aiswitch__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 32px; flex-wrap: wrap; margin-bottom: 34px;
}
.aiswitch__head > div:first-child { max-width: 640px; }
.aiswitch__head .sec__title { margin-top: 12px; }
.aiswitch__stage {
  flex: none; padding: 9px 16px; border-radius: var(--r-pill);
  background: rgba(42, 184, 168, .12);
  font-size: 13px; font-weight: 600; color: #5EEAD4;
}

/* 角色切换轨 */
.aiswitch__rail { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.aiswitch__tab {
  display: inline-flex; align-items: center; gap: 9px;
  padding: 12px 20px; border-radius: var(--r-pill);
  background: rgba(255, 255, 255, .05);
  border: 1px solid rgba(255, 255, 255, .12);
  font-size: 15px; font-weight: 600; color: var(--deep-muted);
  transition: background-color .22s, border-color .22s, color .22s;
}
.aiswitch__tab .hdr__dot { margin-top: 0; }
.aiswitch__tab:hover { background: rgba(255, 255, 255, .09); color: #fff; }
.aiswitch__tab.is-on { background: rgba(42, 184, 168, .18); border-color: rgba(42, 184, 168, .5); color: #fff; }

/* 面板：左能力卡阵 + 右问答示例 */
.aiswitch__panel { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 32px; align-items: start; }
.aiswitch__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }

.aiswitch__card {
  padding: 22px 20px; border-radius: var(--r-md);
  background: rgba(255, 255, 255, .045);
  border: 1px solid rgba(255, 255, 255, .09);
  min-width: 0;
  /* 切换时旧卡淡出上移、新卡错峰淡入；与年轮同一套语言 */
  transition: opacity .4s ease, transform .4s ease;
}
.aiswitch__card.is-out { opacity: 0; transform: translateY(-8px); }
.aiswitch__card.is-in { animation: aiCardIn .5s cubic-bezier(.22, .68, .36, 1) both; }
@keyframes aiCardIn {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.aiswitch__ico {
  width: 36px; height: 36px; border-radius: 11px; flex: none;
  display: grid; place-items: center; margin-bottom: 14px;
}
.aiswitch__ico svg { width: 19px; height: 19px; }
.aiswitch__t { font-size: 16px; font-weight: 700; color: #fff; margin-bottom: 7px; }
.aiswitch__d { font-size: 13.5px; line-height: 1.7; color: var(--deep-muted); }

/* 问答区随角色换内容时也要过渡 */
.aiswitch__chat { max-width: 400px; }
.aiswitch__chat .chat__bub,
.aiswitch__chat .chat__plan,
.aiswitch__chat .chat__status { transition: opacity .34s ease; }
.aiswitch__chat.is-swapping .chat__bub,
.aiswitch__chat.is-swapping .chat__plan,
.aiswitch__chat.is-swapping .chat__status { opacity: 0; }

@media (max-width: 1080px) {
  .aiswitch__panel { grid-template-columns: minmax(0, 1fr); }
  .aiswitch__chat { max-width: 100%; }
}
@media (max-width: 720px) {
  .aiswitch__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aiswitch__head { gap: 18px; }
}
@media (max-width: 480px) {
  .aiswitch__cards { grid-template-columns: minmax(0, 1fr); }
  .aiswitch__tab { padding: 11px 16px; font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .aiswitch__card, .aiswitch__chat .chat__bub, .aiswitch__chat .chat__plan, .aiswitch__chat .chat__status { transition: none; }
  .aiswitch__card.is-in { animation: none; }
}

/* ---------- 概览数据条 ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--surface); border-block: 1px solid var(--hair); }
.stats__item { padding: 44px 40px; }
.stats__item + .stats__item { border-left: 1px solid var(--hair); }
.stats__n { display: flex; align-items: baseline; gap: 3px; margin-bottom: 5px; }
.stats__v { font-size: 46px; font-weight: 800; color: var(--brand); letter-spacing: -.03em; }
.stats__u { font-size: 17px; font-weight: 600; color: var(--brand); }
.stats__t { font-size: 16px; font-weight: 600; color: var(--ink); margin-bottom: 5px; }
.stats__d { font-size: 13px; line-height: 1.55; color: var(--muted); }
@media (max-width: 900px) {
  .stats { grid-template-columns: repeat(2, 1fr); }
  .stats__item { padding: 28px 24px; }
  .stats__item + .stats__item { border-left: 0; }
  .stats__item:nth-child(even) { border-left: 1px solid var(--hair); }
  .stats__item:nth-child(n+3) { border-top: 1px solid var(--hair); }
  .stats__v { font-size: 34px; }
}

/* ---------- 网格 ---------- */
.grid { display: grid; gap: 24px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.grid--5 { grid-template-columns: repeat(5, 1fr); }
.grid--tight { gap: 20px; }
@media (max-width: 1080px) {
  .grid--5 { grid-template-columns: repeat(3, 1fr); }
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
  .grid--2, .grid--3, .grid--4, .grid--5 { grid-template-columns: 1fr; }
}

/* ---------- 卡片 ---------- */
.tile {
  background: var(--surface); border-radius: var(--r-md);
  border: 1px solid var(--hair); padding: 28px; box-shadow: var(--sh-1);
  display: flex; flex-direction: column; gap: 16px;
}
.tile--lg { padding: 30px; }
.tile--tint { background: var(--surface-2); }
.tile--lift { box-shadow: var(--sh-2); border-color: transparent; }
.tile--hl { border-color: var(--theme); }
.tile__icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; flex: none; }
.tile__icon svg { width: 24px; height: 24px; }
.tile__t { font-size: 19px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.tile__t--sm { font-size: 17px; }
.tile__d { font-size: 14px; line-height: 1.72; color: var(--muted); }
.tile__link { display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 600; color: var(--theme); }
.tile__link svg { width: 16px; height: 16px; }

/* 彩色图标底 */
.is-medical { background: var(--mod-medical-soft); } .is-medical svg { color: var(--mod-medical); }
.is-insurance { background: var(--mod-insurance-soft); } .is-insurance svg { color: var(--mod-insurance); }
.is-mall { background: var(--mod-mall-soft); } .is-mall svg { color: var(--mod-mall); }
.is-community { background: var(--mod-community-soft); } .is-community svg { color: var(--mod-community); }
.is-welfare { background: var(--mod-welfare-soft); } .is-welfare svg { color: var(--mod-welfare); }
.is-cert { background: var(--mod-cert-soft); } .is-cert svg { color: var(--mod-cert); }
.is-brand { background: var(--brand-soft); } .is-brand svg { color: var(--brand); }
.is-neutral { background: var(--surface-2); } .is-neutral svg { color: var(--ink-2); }
.is-warn { background: #FEF3C7; } .is-warn svg { color: #B45309; }
.is-danger { background: var(--mod-mall-soft); } .is-danger svg { color: var(--mod-mall); }
.is-ok { background: var(--mod-welfare-soft); } .is-ok svg { color: var(--mod-welfare); }
.is-info { background: var(--mod-medical-soft); } .is-info svg { color: var(--mod-medical); }
.is-certbg { background: var(--mod-cert-soft); } .is-certbg svg { color: var(--mod-cert); }
.is-neutralbg { background: var(--surface-2); } .is-neutralbg svg { color: #475569; }
.is-deepblue { background: #E0F2FE; } .is-deepblue svg { color: #0284C7; }
.is-orange { background: var(--mod-community-soft); } .is-orange svg { color: var(--mod-community); }
.is-pink { background: var(--mod-mall-soft); } .is-pink svg { color: var(--mod-mall); }

.tt-medical { color: var(--mod-medical); }
.tt-insurance { color: var(--mod-insurance); }
.tt-mall { color: var(--mod-mall); }
.tt-community { color: var(--mod-community); }
.tt-welfare { color: var(--mod-welfare); }
.tt-cert { color: var(--mod-cert); }

/* ---------- 标签 ---------- */
.pill {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 13px; border-radius: var(--r-pill);
  font-size: 12px; font-weight: 600; line-height: 1.4;
  background: var(--theme-soft); color: var(--theme);
}
.pill--sm { padding: 5px 11px; font-size: 11px; }
.pill--solid { background: var(--theme); color: #fff; }
.pill--plain { background: var(--surface-2); color: var(--ink-2); }
.pill--medical { background: var(--mod-medical-soft); color: var(--mod-medical); }
.pill--insurance { background: var(--mod-insurance-soft); color: var(--mod-insurance); }
.pill--mall { background: var(--mod-mall-soft); color: var(--mod-mall); }
.pill--community { background: var(--mod-community-soft); color: var(--mod-community); }
.pill--welfare { background: var(--mod-welfare-soft); color: var(--mod-welfare); }
.pill--cert { background: var(--mod-cert-soft); color: var(--mod-cert); }
.pill--warn { background: #FEF3C7; color: #B45309; }
.pill--danger { background: var(--mod-mall-soft); color: var(--mod-mall); }
.pill--ok { background: var(--mod-welfare-soft); color: var(--mod-welfare); }
.pill--on-dark { background: var(--brand-lift); color: #1A4A42; }

/* ---------- 三问（档案卷宗） ---------- */
.qa { display: flex; flex-direction: column; gap: 20px; }
.qa__item { display: grid; grid-template-columns: 108px 1fr; background: var(--surface); border: 1px solid var(--hair); border-radius: var(--r-md); overflow: hidden; }
.qa__num { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; background: #0A3D36; padding: 30px 0; }
.qa__num b { font-size: 30px; font-weight: 800; color: #5EEAD4; letter-spacing: -.02em; }
.qa__body { padding: 32px 36px; display: flex; flex-direction: column; gap: 12px; }
.qa__body--media { display: grid; grid-template-columns: 1fr 340px; gap: 32px; align-items: center; }
.qa__q { font-size: 24px; font-weight: 700; color: var(--ink); }
.qa__a { font-size: 15px; line-height: 1.8; color: var(--muted); }
.qa__tags { display: flex; flex-wrap: wrap; gap: 10px; }
.qa__media { height: 250px; }
.qa__media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) {
  .qa__item { grid-template-columns: 1fr; }
  .qa__num { flex-direction: row; padding: 18px 24px; }
  .qa__body { padding: 24px; }
  .qa__body--media { grid-template-columns: 1fr; }
  .qa__media { height: 200px; }
}

/* ---------- 交替能力模块 ---------- */
.alt { display: flex; flex-direction: column; gap: 88px; padding-top: 56px; }
.alt__item { display: grid; grid-template-columns: 1fr 480px; gap: 70px; align-items: center; }
.alt__item--rev { grid-template-columns: 480px 1fr; }
.alt__item--rev .alt__text { order: 2; }
.alt__item--rev .alt__media { order: 1; }
.alt__text { display: flex; flex-direction: column; gap: 18px; }
.alt__title { font-size: 32px; font-weight: 700; line-height: 1.38; letter-spacing: -.02em; color: var(--ink); }
.alt__desc { font-size: 15px; line-height: 1.85; color: var(--muted); }
.alt__points { display: flex; flex-direction: column; gap: 11px; padding-top: 6px; }
.alt__point { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ink-2); }
.alt__check { width: 18px; height: 18px; border-radius: 50%; flex: none; background: var(--theme-soft); display: grid; place-items: center; }
.alt__check svg { width: 12px; height: 12px; color: var(--theme); }
.alt__media { border-radius: var(--r-md); overflow: hidden; height: 340px; }
.alt__media img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1080px) {
  .alt { gap: 56px; }
  .alt__item, .alt__item--rev { grid-template-columns: 1fr; gap: 28px; }
  .alt__item--rev .alt__text { order: 1; }
  .alt__item--rev .alt__media { order: 2; }
  .alt__title { font-size: 26px; }
  .alt__media { height: 260px; }
}

/* ---------- AI 段 ---------- */
.ai__card { display: flex; flex-direction: column; gap: 16px; border-radius: var(--r-md); padding: 28px; background: var(--surface-2); border: 1px solid var(--hair); }
.ai__card--tint { background: var(--theme-soft); border-color: transparent; }
.ai__t { font-size: 19px; font-weight: 700; line-height: 1.4; color: var(--ink); }
.ai__d { font-size: 14px; line-height: 1.72; color: var(--muted); }
.ai__note {
  align-self: flex-start; margin-top: auto;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px; border-radius: var(--r-pill);
  font-size: 11px; font-weight: 600; line-height: 1.4;
  background: var(--theme); color: #fff;
}
.ai__note--ok { background: var(--mod-welfare-soft); color: var(--mod-welfare); }
.ai__note--warn { background: #FEF3C7; color: #92400E; }
.ai__note--danger { background: var(--mod-mall-soft); color: var(--mod-mall); }
.ai__note--plain { background: var(--surface); color: var(--theme); border: 1px solid var(--theme); }

.ai__bound {
  display: flex; align-items: flex-start; gap: 11px;
  padding: 16px 18px; border-radius: var(--r-sm);
  font-size: 14px; line-height: 1.65;
}
.ai__bound svg { width: 18px; height: 18px; flex: none; margin-top: 2px; }
.ai__bound--brand { background: var(--brand-soft); color: var(--brand-ink); }
.ai__bound--brand svg { color: var(--brand); }
.ai__bound--danger { background: var(--mod-mall-soft); color: #991B1B; border: 1.5px solid rgba(220, 38, 38, .3); font-weight: 600; }
.ai__bound--danger svg { color: var(--mod-mall); }
.ai__bound--warn { background: #FEF3C7; color: #92400E; font-weight: 600; }
.ai__bound--warn svg { color: #B45309; }

.ai__facts { display: grid; grid-template-columns: repeat(4, 1fr); border-radius: var(--r-md); overflow: hidden; background: var(--surface-2); border: 1px solid var(--hair); }
.ai__fact { padding: 20px 24px; }
.ai__fact + .ai__fact { border-left: 1px solid var(--hair); }
.ai__factt { font-size: 14px; font-weight: 600; color: var(--ink); margin-bottom: 4px; }
.ai__factd { font-size: 13px; color: var(--muted); line-height: 1.6; }
@media (max-width: 900px) {
  .ai__facts { grid-template-columns: repeat(2, 1fr); }
  .ai__fact:nth-child(even) { border-left: 0; }
  .ai__fact:nth-child(n+3) { border-top: 1px solid var(--hair); }
}

/* AI 深色段（首页） */
.sec--deep .ai__card { background: rgba(42, 184, 168, .08); border-color: rgba(42, 184, 168, .22); }
.sec--deep .ai__t { color: #fff; }
.sec--deep .ai__d { color: var(--deep-muted); }
.sec--deep .ai__note { background: var(--brand-lift); color: #0A3D36; }
.sec--deep .ai__fact { background: transparent; }
.sec--deep .ai__facts { background: rgba(42, 184, 168, .08); border-color: rgba(42, 184, 168, .22); }
.sec--deep .ai__fact + .ai__fact { border-left-color: rgba(42, 184, 168, .22); }
.sec--deep .ai__factt { color: #fff; }
.sec--deep .ai__factd { color: #8FC4BD; }
.sec--deep .ai__bound { background: rgba(0, 0, 0, .2); color: var(--deep-muted); }
.sec--deep .ai__bound svg { color: var(--brand-lift); }

/* ---------- 流程步骤 ---------- */
.flow { display: grid; grid-template-columns: repeat(5, 1fr); }
.flow--4 { grid-template-columns: repeat(4, 1fr); }
.flow__step { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.flow__n { width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; font-size: 17px; font-weight: 800; background: var(--theme-soft); color: var(--theme); }
.flow__n--done { background: var(--theme); color: #fff; }
.flow__t { font-size: 17px; font-weight: 700; color: var(--ink); }
.flow__d { font-size: 14px; line-height: 1.64; color: var(--muted); max-width: 220px; }
@media (max-width: 900px) { .flow, .flow--4 { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; } }

/* 投资页工程指标条：四栏等分，栏间以竖线分隔（深墨金主题） */
.statbar { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.statbar > div { min-width: 0; }
.statbar > div + div { border-left: 1px solid var(--hair); padding-left: 28px; }
.statbar > div:first-child { padding-right: 28px; }
@media (max-width: 1080px) { .statbar { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 0; }
  .statbar > div:nth-child(odd) { border-left: 0; padding-left: 0; }
  .statbar > div:nth-child(even) { padding-left: 28px; } }
@media (max-width: 560px) { .statbar { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .statbar > div { border-left: 0 !important; padding-left: 0 !important; padding-right: 0 !important;
    padding-top: 24px; border-top: 1px solid var(--hair); }
  .statbar > div:first-child { padding-top: 0; border-top: 0; } }

/* ---------- 边界对照 ---------- */
.bd { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
/* 四列变体（保险页）：由类控制而非内联 style，否则会盖掉这里的降列 */
.bd--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1080px) { .bd, .bd--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px)  { .bd, .bd--4 { grid-template-columns: minmax(0, 1fr); } }
.bd__card { border-radius: var(--r-md); padding: 26px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.bd__t { font-size: 19px; font-weight: 700; color: var(--ink); }
.bd__d { font-size: 14px; line-height: 1.72; }
.bd--do { background: var(--mod-medical-soft); } .bd--do .bd__d { color: #4A6B8A; }
.bd--dont { background: var(--mod-mall-soft); } .bd--dont .bd__d { color: #8A3A3A; }
.bd--how { background: var(--mod-welfare-soft); } .bd--how .bd__d { color: #3F7A5E; }
.bd--ins { background: var(--mod-insurance-soft); } .bd--ins .bd__d { color: #4A4A8A; }
.bd--purple { background: var(--mod-cert-soft); } .bd--purple .bd__d { color: #5B21B6; }
.bd--orange { background: var(--mod-community-soft); } .bd--orange .bd__d { color: #9A3412; }
.bd--yellow { background: #FEF3C7; } .bd--yellow .bd__d { color: #8A5A20; }
.bd--sky { background: #E0F2FE; } .bd--sky .bd__d { color: #0C4A6E; }
.bd--green { background: var(--mod-welfare-soft); } .bd--green .bd__d { color: #14532D; }
@media (max-width: 900px) { .bd { grid-template-columns: 1fr; } }

/* ---------- 顾虑 ---------- */
.worry { display: flex; flex-direction: column; gap: 16px; }
.worry__item { border-radius: 16px; padding: 24px 26px; background: var(--surface); border: 1px solid var(--hair); display: flex; flex-direction: column; gap: 9px; }
.worry__item--promise { background: var(--brand-soft); border-color: rgba(42, 184, 168, .3); }
.worry__q { font-size: 19px; font-weight: 700; color: var(--ink); }
.worry__item--promise .worry__q { color: var(--brand-ink); }
.worry__a { font-size: 14px; line-height: 1.78; color: var(--muted); }
.worry__item--promise .worry__a { color: #3C6B65; }
.worry__lead { display: flex; align-items: flex-start; gap: 11px; padding: 18px; border-radius: var(--r-sm); background: var(--brand-soft); font-size: 14px; line-height: 1.64; color: var(--brand-ink); }
.worry__lead svg { width: 18px; height: 18px; flex: none; margin-top: 2px; color: var(--brand); }

/* ---------- 业态标签 ---------- */
.htags { display: flex; flex-wrap: wrap; gap: 16px; }
.htag { display: flex; align-items: center; gap: 12px; padding: 18px 20px; border-radius: var(--r-sm); background: var(--surface); border: 1px solid var(--hair); font-size: 15px; font-weight: 600; color: var(--ink); }
.htag i { width: 38px; height: 38px; border-radius: 11px; flex: none; display: grid; place-items: center; }
.htag i svg { width: 19px; height: 19px; }

/* ---------- FAQ ---------- */
.faq { display: flex; flex-direction: column; gap: 12px; }
.faq__item { background: var(--surface-2); border-radius: var(--r-sm); overflow: hidden; }
.faq__q { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; padding: 20px 24px; text-align: left; font-size: 17px; font-weight: 600; color: var(--ink); }
.faq__ico { width: 20px; height: 20px; flex: none; color: var(--theme); transition: transform .22s; }
.faq__a { padding: 0 24px 20px; font-size: 14px; line-height: 1.72; color: var(--muted); }
.faq__item.is-open .faq__ico { transform: rotate(180deg); }
.faq__a[hidden] { display: none; }
.sec--surface .faq__item { background: var(--surface-2); }
.faq--line .faq__item { background: var(--surface); border: 1px solid var(--hair); }

/* ---------- CTA ---------- */
.cta { padding: 88px 0; text-align: center; }
.cta--brand { background: linear-gradient(180deg, var(--deep-1) 0%, #0D5049 100%); }
.cta__in { display: flex; flex-direction: column; align-items: center; gap: 26px; }
.cta__title { font-size: 40px; font-weight: 700; line-height: 1.35; letter-spacing: -.02em; color: #fff; }
.cta__lede { font-size: 17px; line-height: 1.76; color: var(--deep-muted); max-width: 720px; }
.cta__acts { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; justify-content: center; }
.cta__note { font-size: 13px; line-height: 1.7; color: #7FAFA7; }
[data-theme='medical'] .cta__lede { color: #AFD6F2; }
[data-theme='medical'] .cta__note { color: #7FA8CC; }
[data-theme='insurance'] .cta__lede { color: #C7D2FE; }
[data-theme='insurance'] .cta__note { color: #8B93D8; }
[data-theme='welfare'] .cta__lede { color: #BFE8CE; }
[data-theme='welfare'] .cta__note { color: #8FC9AA; }
[data-theme='government'] .cta__lede { color: #D6CCF5; }
[data-theme='government'] .cta__note { color: #A897D9; }
[data-theme='investor'] .cta__lede { color: #B8AFA4; }
[data-theme='investor'] .cta__note { color: var(--foot-dim); }

/* ---------- 页脚 ---------- */
.ftr { background: var(--foot-bg); color: #fff; padding: 64px 0 40px; }
.ftr__in { display: flex; flex-direction: column; gap: 40px; }
.ftr__top { display: grid; grid-template-columns: 1fr auto auto; gap: 80px; }
.ftr__brand { display: flex; flex-direction: column; gap: 14px; }
.ftr__logo { display: flex; align-items: center; gap: 10px; }
/* 页脚在深色底上，同样用白圆角片托住 logo（炭黑狗头在 --foot-bg 上等于隐形） */
.ftr__mark {
  height: 20px; width: auto; padding: 5px 6px; box-sizing: content-box;
  background: #FFFFFF; border-radius: 9px; flex: none;
}
.ftr__name { font-size: 17px; font-weight: 700; }
.ftr__slogan { font-size: 14px; color: var(--foot-muted); }
.ftr__col { display: flex; flex-direction: column; gap: 12px; }
.ftr__colt { font-size: 13px; font-weight: 600; color: #fff; margin-bottom: 2px; }
.ftr__link { font-size: 14px; color: var(--foot-muted); transition: color .18s; }
.ftr__link:hover { color: #fff; }
.ftr__bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 28px; border-top: 1px solid var(--foot-line); flex-wrap: wrap; }
.ftr__copy { font-size: 13px; color: var(--foot-dim); }
.ftr__legal { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }
.ftr__legal a { font-size: 13px; color: var(--foot-muted); }
.ftr__legal a:hover { color: #fff; }
@media (max-width: 900px) { .ftr__top { grid-template-columns: 1fr; gap: 32px; } }

/* ---------- 辅助 ---------- */
.mt-a { margin-top: auto; }
.tc { text-align: center; }
.muted { color: var(--muted); }
.sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
:focus-visible { outline: 2px solid var(--theme); outline-offset: 3px; border-radius: 4px; }
