/* 统一站点导航 / 移动端抽屉 / 表单提示
   替代原先依赖 bundle.js 的行为（bundle 在子页面一直是 404，从未生效） */

/* 预渲染快照里残留的 framer-motion 初始态（opacity:0 / translate）
   这些区块原先依赖 React 入场动画才显示，但 bundle 在子页面一直 404，
   导致每页约 20 个区块永久不可见。这里直接强制显示。 */
[style*="opacity: 0"] { opacity: 1 !important; transform: none !important; }
[style*="opacity:0"] { opacity: 1 !important; transform: none !important; }

.nx-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 60;
  padding: 16px 0;
  background: transparent;
  transition: background .25s ease, box-shadow .25s ease, padding .25s ease;
}
.nx-header.is-solid {
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 1px 0 rgba(15, 23, 42, .08);
  padding: 10px 0;
}
.nx-wrap {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.nx-brand { display: grid; align-items: center; text-decoration: none; }

/* 品牌区直接用方案里的「横版组合」整图（图标 + 纳新国际教育 / NEXAGAIN）。
   深浅两版叠在同一格里，用 opacity 切换而不是 display 切换 ——
   display 切换会让图片在切回的瞬间重新解码，实测会闪一下空白或出现破图占位。 */
.nx-brand-logo {
  grid-area: 1 / 1;
  height: 52px; width: auto; display: block;
  flex: none;
  transition: opacity .2s ease;
}
.nx-brand-logo--light { opacity: 0; }

.nx-header:not(.is-solid):not(.nx-header--solid) .nx-brand-logo--dark { opacity: 0; }
.nx-header:not(.is-solid):not(.nx-header--solid) .nx-brand-logo--light { opacity: 1; }
.nx-nav { display: flex; align-items: center; gap: 2px; }
.nx-nav-link {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 8px 13px; border: 0; background: none; cursor: pointer;
  font-family: inherit; font-size: 14px; font-weight: 500; line-height: 1.6;
  color: #fff; white-space: nowrap; text-decoration: none;
  transition: color .2s;
}
.nx-nav-link:hover { color: #3b82f6; }
.nx-dd { position: relative; }
.nx-dd-panel {
  position: absolute; top: calc(100% + 6px); left: 0; min-width: 210px;
  background: #fff; border-radius: 12px; padding: 8px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .16);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility .18s;
}
.nx-dd:hover .nx-dd-panel,
.nx-dd:focus-within .nx-dd-panel { opacity: 1; visibility: visible; transform: none; }
.nx-dd-panel a {
  display: block; padding: 10px 14px; border-radius: 8px;
  font-size: 14px; color: #0f172a; text-decoration: none; white-space: nowrap;
}
.nx-dd-panel a:hover { background: #eff6ff; color: #1d4ed8; }
.nx-right { display: flex; align-items: center; gap: 16px; }
.nx-phone {
  display: flex; align-items: center; gap: 6px;
  font-size: 14px; font-weight: 500; color: #fff;
  text-decoration: none; white-space: nowrap; transition: color .25s;
}
.nx-cta {
  padding: 9px 20px; border-radius: 999px; background: #2563eb;
  color: #fff !important; font-size: 14px; font-weight: 500;
  text-decoration: none; white-space: nowrap; transition: background .2s;
}
.nx-cta:hover { background: #1d4ed8; }
.nx-burger {
  display: none; padding: 8px; border: 0; background: none;
  color: #fff; cursor: pointer; line-height: 0; transition: color .25s;
}

.nx-header.is-solid .nx-brand-title,
.nx-header.is-solid .nx-nav-link,
.nx-header.is-solid .nx-phone,
.nx-header.is-solid .nx-burger { color: #0f172a; }
.nx-header.is-solid .nx-brand-sub { color: #64748b; }

/* 常亮白底变体：用于浅色背景的手写静态页（不随滚动变化，占据文档流） */
.nx-header--solid {
  position: sticky;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 1px 0 rgba(15, 23, 42, .08);
  padding: 10px 0;
}
.nx-header--solid .nx-brand-title,
.nx-header--solid .nx-nav-link,
.nx-header--solid .nx-phone,
.nx-header--solid .nx-burger { color: #0f172a; }
.nx-header--solid .nx-brand-sub { color: #64748b; }
/* 当前页高亮：透明头部（首页深色首屏）上必须用白色，
   否则蓝字压在蓝色 hero 上几乎不可读；白底头部才用品牌蓝。 */
.nx-nav-link[aria-current="page"],
.nx-nav-link.is-active { color: #fff; }

.nx-header.is-solid .nx-nav-link[aria-current="page"],
.nx-header.is-solid .nx-nav-link.is-active,
.nx-header--solid .nx-nav-link[aria-current="page"],
.nx-header--solid .nx-nav-link.is-active { color: #2563eb; }

.nx-header--solid .nx-nav-link:hover { color: #2563eb; }

@media (max-width: 1023px) {
  .nx-nav, .nx-right { display: none; }
  .nx-burger { display: block; }
  .nx-header { padding: 10px 0; }
  .nx-brand-logo { height: 38px; }
  .nx-footer-brand img { height: 76px; }
}

/* 移动端横向溢出兜底：预渲染页里有若干 nowrap / 固定宽度区块会撑破视口 */
html, body { max-width: 100%; overflow-x: hidden; }
img, svg, video, iframe { max-width: 100%; }

.nx-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; width: min(300px, 80vw);
  background: #fff; z-index: 100; padding: 20px 20px 40px; overflow-y: auto;
  overscroll-behavior: contain;
  transform: translateX(100%); transition: transform .28s ease;
  box-shadow: -20px 0 50px rgba(15, 23, 42, .18);
}
/* 抽屉展开时用 100vmax 扩散阴影自绘全屏暗色底。
   原先独立 .nx-overlay 元素在部分浏览器/合成层下计算样式正确但不绘制，
   改为由抽屉自身投影绘制，不依赖任何额外堆叠上下文。 */
.nx-drawer.open {
  transform: none;
  box-shadow: -20px 0 50px rgba(15, 23, 42, .18), 0 0 0 100vmax rgba(15, 23, 42, .45);
}
.nx-drawer-head {
  display: flex; align-items: center; justify-content: space-between;
  padding-bottom: 12px; border-bottom: 1px solid #e8eef6; margin-bottom: 6px;
}
.nx-drawer-head strong { font-size: 15px; color: #0f172a; }
.nx-drawer-close {
  border: 0; background: #f1f5f9; border-radius: 8px; width: 32px; height: 32px;
  font-size: 18px; line-height: 1; color: #334155; cursor: pointer;
}
.nx-drawer a {
  display: block; padding: 13px 4px; font-size: 15px; color: #0f172a;
  text-decoration: none; border-bottom: 1px solid #f1f5f9;
}
.nx-drawer a.nx-sub { padding-left: 18px; font-size: 14px; color: #475569; }
.nx-drawer .nx-drawer-cta {
  margin-top: 18px; text-align: center; background: #2563eb;
  color: #fff; border-radius: 10px; border: 0;
}
/* 纯点击热区：视觉上的暗色底已由 .nx-drawer.open 的扩散阴影绘制，
   这里只负责“点空白处关闭”，因此保持完全透明且位于抽屉之下 */
.nx-overlay {
  position: fixed;
  top: 0; right: 0; bottom: 0; left: 0;
  background: transparent;
  z-index: 90;
  display: none;
}
.nx-overlay.open { display: block; }

.nx-form-note {
  margin: 0 0 12px; padding: 10px 14px; border-radius: 10px;
  background: #eff6ff; color: #1e40af; font-size: 13px; line-height: 1.6;
}

/* ============================================================
   全站排版层级（Typography Scale）
   ------------------------------------------------------------
   问题背景：站点由两套 CSS 拼成 —— styles.css（手写页）与
   Tailwind 快照（React 预渲染页）。两边各有一套字号，导致
   h1 出现 48/60/70 三种值，正文出现 10~30px 共九种值，
   视觉上「标题过大、正文过小」。这里用一套统一阶梯收敛。
   本文件是全站最后加载的样式表，故同权重规则自然覆盖前者；
   Tailwind 工具类权重更高，标题类规则用 !important 兜底。
   ============================================================ */

:root {
  /* 字号阶梯：桌面端 46 / 30 / 21 / 18 / 16 / 14 / 13 */
  --fs-h1:    clamp(29px, 3.15vw, 46px);
  --fs-h2:    clamp(22px, 2.05vw, 30px);
  --fs-h3:    clamp(17.5px, 1.45vw, 21px);
  --fs-h4:    clamp(16px, 1.2vw, 18px);
  --fs-lead:  clamp(16px, 1.28vw, 18px);
  --fs-body:  16px;
  --fs-small: 14px;
  --fs-label: 13px;
  --fs-micro: 12.5px;

  /* 行高：中文正文需要更松的呼吸感 */
  --lh-h1: 1.24;
  --lh-h2: 1.36;
  --lh-h3: 1.5;
  --lh-body: 1.9;
}

/* ---------- 1. 标题：统一阶梯，并放宽中文字距 ---------- */
/* 用 h1[class] 这类 (0,1,1) 选择器，才能压过 Tailwind 的 .text-5xl (0,1,0)；
   否则预渲染页的 h1 会被工具类降级成 34px，与手写页的 46px 不一致 */
h1,
h1[class],
.hero-copy h1,
.page-hero h1,
.hero h1 {
  font-size: var(--fs-h1) !important;
  line-height: var(--lh-h1) !important;
  /* 原为 -.06em，对中文相当于每字挤压 4px，字会粘连；收紧到几乎为零 */
  letter-spacing: -0.01em !important;
  font-weight: 800 !important;
}

h2,
h2[class],
.section-head h2,
.split-copy h2,
.evidence-section h2,
.faq-teaser h2,
.final-cta h2,
.content-block h2 {
  font-size: var(--fs-h2) !important;
  line-height: var(--lh-h2) !important;
  letter-spacing: -0.01em !important;
}

h3,
h3[class],
.service-card h3 {
  font-size: var(--fs-h3) !important;
  line-height: var(--lh-h3) !important;
  letter-spacing: 0 !important;
}

h4,
h4[class] {
  font-size: var(--fs-h4) !important;
  line-height: 1.55 !important;
  letter-spacing: 0 !important;
}

/* ---------- 2. 正文：统一 16px / 1.9 ---------- */
body {
  font-size: var(--fs-body);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.content-block p,
.content-block li,
.split-copy p:not(.eyebrow),
.evidence-section p:not(.eyebrow),
.hero-lede,
.lede {
  font-size: var(--fs-body) !important;
  line-height: var(--lh-body) !important;
}

.lede,
.hero-lede {
  font-size: var(--fs-lead) !important;
  line-height: 1.8 !important;
}

/* ---------- 3. 小字：原 10/11/12px 全部抬到 13px 以上 ---------- */
.eyebrow,
.breadcrumb,
.section-index,
.footer-label,
.footer-bottom,
.rail-kicker,
.rail-links > span,
.card-number,
.hero-proof,
.metrics span,
.faq-grid span,
.visual-card span,
.contact-panel span,
.contact-label {
  font-size: var(--fs-label) !important;
  line-height: 1.55 !important;
}

.site-footer a,
.rail-links a,
.rail-card a,
.rail-card p,
.source-note p,
.contact-panel p,
.service-card p,
.check-list li,
.faq-grid strong,
.section-head > p,
.footer-note,
.text-link {
  font-size: var(--fs-small) !important;
  line-height: 1.75 !important;
}

.source-note strong,
.visual-card small {
  font-size: var(--fs-small) !important;
}

.nx-brand-sub,
.brand small {
  font-size: var(--fs-micro) !important;
}

/* ---------- 4. 按钮：13px 偏小，抬到 15px ---------- */
.button,
.nav-cta {
  font-size: 15px !important;
  letter-spacing: 0 !important;
}

/* ---------- 5. 卡片标题：比正文高一级，但不喧宾夺主 ---------- */
.rail-card strong {
  font-size: 20px !important;
  line-height: 1.4 !important;
}

.visual-card strong {
  font-size: 24px !important;
  line-height: 1.3 !important;
}

/* 数据类数字统一到一档，避免 24/30/42 三种大小并存 */
.metrics strong {
  font-size: 40px !important;
  line-height: 1.1 !important;
}

/* ---------- 6. Tailwind 快照页：把工具类收敛到同一阶梯 ---------- */
/* 学校详情页等预渲染页只有工具类，元素选择器权重不够，这里按类覆盖 */
.text-xs { font-size: var(--fs-micro) !important; line-height: 1.6 !important; }
.text-sm { font-size: var(--fs-label) !important; line-height: 1.7 !important; }
.text-base { font-size: var(--fs-body) !important; line-height: var(--lh-body) !important; }
.text-lg { font-size: var(--fs-lead) !important; line-height: 1.75 !important; }
.text-xl { font-size: 20px !important; line-height: 1.6 !important; }
.text-2xl { font-size: 24px !important; line-height: 1.45 !important; }
.text-3xl { font-size: 26px !important; line-height: 1.4 !important; }
.text-4xl { font-size: 30px !important; line-height: 1.35 !important; }
.text-5xl { font-size: 34px !important; line-height: 1.3 !important; }
.text-6xl { font-size: 38px !important; line-height: 1.25 !important; }

/* ---------- 7. 移动端：整体降一档，但正文不再低于 15.5px ---------- */
@media (max-width: 680px) {
  :root {
    --fs-h1: 29px;
    --fs-h2: 23px;
    --fs-h3: 18px;
    --fs-h4: 16.5px;
    --fs-lead: 16px;
    --fs-body: 15.5px;
    --fs-small: 14px;
    --fs-label: 12.5px;
    --fs-micro: 12px;
  }

  .page-hero h1,
  .hero-copy h1,
  h1 { font-size: 29px !important; line-height: 1.32 !important; }

  h2,
  .section-head h2,
  .split-copy h2,
  .evidence-section h2,
  .final-cta h2,
  .content-block h2 { font-size: 23px !important; line-height: 1.4 !important; }

  .content-block p,
  .content-block li { line-height: 1.85 !important; }

  .metrics strong { font-size: 32px !important; }

  .text-4xl, .text-5xl, .text-6xl { font-size: 27px !important; line-height: 1.35 !important; }
  .text-3xl { font-size: 22px !important; }
  .text-2xl { font-size: 20px !important; }
}

/* ---------- 8. 首页统计数字：原来 24 / 26 / 38 三档并存，收敛为两档 ---------- */
.stat-num {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  margin: 0 0 6px;
}

.stat-num--accent { color: #2563eb; }

/* 深色成就区：整组数字放大一档，作为视觉落点 */
.stat-num--lg {
  font-size: 44px;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 8px;
}

@media (max-width: 680px) {
  .stat-num { font-size: 24px; }
  .stat-num--lg { font-size: 30px; }
}

/* ============================================================
   统一页脚（nx-footer）
   ------------------------------------------------------------
   原 83 个 React 预渲染页用的是另一套 Tailwind 页脚：
   栏目写着「学生公寓 / 课外补习 / 监护人服务 / 接送机服务」，
   且全是不可点击的 <span>；「关于我们」指向 /#about 这类已失效
   的锚点；社交图标全部 href="/"。与新定位冲突且是死交互。
   这里用 nx- 前缀重写一套，不依赖 styles.css，任何页都能用。
   ============================================================ */

.nx-footer {
  background: #091322;
  color: #c6d1df;
  padding: 64px 0 24px;
  font-size: var(--fs-small, 14px);
  line-height: 1.75;
}

.nx-footer-inner {
  width: min(1160px, calc(100% - 48px));
  margin: 0 auto;
  display: grid;
  grid-template-columns: 2.1fr 1fr 1fr 1.1fr;
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.nx-footer-brand a {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  margin-bottom: 18px;
}

.nx-footer-brand img {
  height: 92px;
  width: auto;
  object-fit: contain;
  flex: none;
}

.nx-footer-brand strong {
  display: block;
  font-size: 17px;
  font-weight: 800;
  letter-spacing: .05em;
  line-height: 1.2;
  color: #fff;
}

.nx-footer-brand small {
  display: block;
  margin-top: 3px;
  font-size: var(--fs-micro, 12.5px);
  letter-spacing: .06em;
  color: #aab8ca;
}

.nx-footer-brand p {
  margin: 0;
  color: #93a3b8;
  font-size: var(--fs-small, 14px);
  line-height: 1.85;
}

.nx-footer-label {
  margin: 0 0 14px;
  font-size: var(--fs-label, 13px);
  letter-spacing: .1em;
  color: #76a9ff;
  font-weight: 500;
}

.nx-footer-col a {
  display: block;
  color: #c6d1df;
  font-size: var(--fs-small, 14px);
  padding: 5px 0;
  text-decoration: none;
  transition: color .18s;
}

.nx-footer-col a:hover { color: #fff; }

.nx-footer-qr {
  margin-top: 14px;
  width: 96px;
  height: 96px;
  object-fit: contain;
  border-radius: 8px;
  background: #fff;
  padding: 5px;
}

.nx-footer-bottom {
  width: min(1160px, calc(100% - 48px));
  margin: 0 auto;
  padding-top: 20px;
  font-size: var(--fs-label, 13px);
  color: #738399;
}

@media (max-width: 980px) {
  .nx-footer-inner { grid-template-columns: 1fr 1fr; gap: 36px; }
  .nx-footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .nx-footer { padding: 44px 0 20px; }
  .nx-footer-inner { grid-template-columns: 1fr; gap: 30px; padding-bottom: 32px; }
  .nx-footer-inner,
  .nx-footer-bottom { width: calc(100% - 32px); }
}

/* 首页首屏第二行标题：原 text-blue-300 压在蓝色 hero 上对比度不足，提亮一档 */
.hero-title .text-blue-300,
.hero-title > span.text-blue-300 { color: #dbeafe !important; }

/* ============================================================
   首页「企业家家庭教育规划」横幅
   ------------------------------------------------------------
   React 快照里这段只有 .family-education-banner 一个类名，但全站
   CSS 里没有任何定义，导致 div/span/strong/small/b 全是内联元素，
   挤成一行小字。这里补成蓝底渐变的通栏卡片。
   ============================================================ */

.family-education-banner {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 36px;
  width: min(1160px, calc(100% - 48px));
  margin: 0 auto;
  padding: 34px 44px;
  border-radius: 20px;
  background:
    radial-gradient(120% 140% at 88% 0%, rgba(255, 255, 255, .22), transparent 55%),
    linear-gradient(118deg, #0a3a9e 0%, #1769e0 58%, #2f86f6 100%);
  color: #fff;
  text-decoration: none;
  overflow: hidden;
  box-shadow: 0 20px 48px rgba(23, 105, 224, .28);
  transition: transform .22s ease, box-shadow .22s ease;
}

.family-education-banner:hover {
  transform: translateY(-3px);
  box-shadow: 0 26px 60px rgba(23, 105, 224, .34);
}

/* 右侧装饰圆环，呼应首页 hero 的视觉语言 */
.family-education-banner::after {
  content: '';
  position: absolute;
  right: -70px;
  top: -70px;
  width: 260px;
  height: 260px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 50%;
  pointer-events: none;
}

.family-education-banner > div {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.family-kicker {
  display: block;
  font-size: 13px;
  letter-spacing: .14em;
  color: #b9d4ff;
  margin-bottom: 12px;
  font-weight: 500;
}

.family-education-banner strong {
  display: block;
  font-size: clamp(21px, 2.1vw, 28px);
  font-weight: 800;
  line-height: 1.32;
  letter-spacing: -.01em;
}

.family-education-banner small {
  display: block;
  margin-top: 12px;
  font-size: 15px;
  line-height: 1.7;
  color: #d3e4ff;
}

.family-education-banner b {
  position: relative;
  z-index: 1;
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 15px 26px;
  border-radius: 999px;
  background: #fff;
  color: #1769e0;
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 8px 20px rgba(6, 40, 110, .22);
}

@media (max-width: 760px) {
  .family-education-banner {
    flex-direction: column;
    align-items: flex-start;
    gap: 22px;
    padding: 26px 24px;
    width: calc(100% - 32px);
  }
  .family-education-banner small { font-size: 14px; }
  .family-education-banner b { padding: 13px 22px; font-size: 14px; }
}

/* ---------- 首页合作院校：真实校徽 ---------- */
/* 原来 4 张卡片共用同一个学士帽图标，等于没有品牌信息；
   assets/logos 里本来就有真校徽，这里放大到 88px 让它成为卡片主体 */
.partner-logo {
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 6px auto 18px;
  padding: 6px;
}

.partner-logo img {
  max-height: 100%;
  max-width: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
}

@media (max-width: 680px) {
  .partner-logo { height: 68px; }
}

/* ---------- 学校目录：真实校徽墙 ---------- */
.logo-wall {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 26px;
}

.logo-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 22px 14px 18px;
  background: #fff;
  border: 1px solid var(--line, #dfe5ec);
  border-radius: 14px;
  text-decoration: none;
  text-align: center;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.logo-card:hover {
  transform: translateY(-3px);
  border-color: #bcd3f5;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .1);
}

.logo-card-media {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 88px;
  width: 100%;
  margin-bottom: 12px;
}

.logo-card-media img {
  width: 100%;
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
}

.logo-card strong {
  font-size: 14px;
  font-weight: 600;
  color: #0b1728;
  line-height: 1.45;
}

.logo-card small {
  font-size: 12.5px;
  color: #7b8a9e;
}

@media (max-width: 900px) {
  .logo-wall { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 560px) {
  .logo-wall { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .logo-card { padding: 16px 10px 14px; }
  .logo-card-media { height: 64px; }
}

/* ---------- FAQ 折叠列表（原生 details，无需 JS） ---------- */
.faq-accordion {
  margin-top: 24px;
  border-top: 1px solid var(--line, #dfe5ec);
}

.faq-item {
  border-bottom: 1px solid var(--line, #dfe5ec);
}

.faq-item summary {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 20px 40px 20px 0;
  position: relative;
  cursor: pointer;
  list-style: none;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.6;
  color: #0b1728;
  transition: color .18s;
}

.faq-item summary::-webkit-details-marker { display: none; }

.faq-item summary:hover { color: #1769e0; }

/* 右侧 +/− 指示符 */
.faq-item summary::after {
  content: '';
  position: absolute;
  right: 8px;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  background:
    linear-gradient(#1769e0, #1769e0) center / 12px 2px no-repeat,
    linear-gradient(#1769e0, #1769e0) center / 2px 12px no-repeat;
  transition: transform .22s ease;
}

.faq-item[open] summary::after { transform: rotate(45deg); }

.faq-item .faq-a {
  padding: 0 40px 22px 0;
}

.faq-item .faq-a p {
  margin: 0;
  font-size: 16px;
  line-height: 1.9;
  color: #536279;
}

.faq-more {
  margin: 22px 0 0;
  font-size: 14px;
}

.faq-more a {
  color: #1769e0;
  font-weight: 600;
}

/* ---------- 资讯列表：文章卡片 ---------- */
.article-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 24px;
}

.article-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px;
  background: #fff;
  border: 1px solid var(--line, #dfe5ec);
  border-radius: 14px;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.article-card:hover {
  transform: translateY(-3px);
  border-color: #bcd3f5;
  box-shadow: 0 14px 30px rgba(15, 23, 42, .1);
}

.article-tag {
  display: inline-block;
  align-self: flex-start;
  padding: 4px 12px;
  border-radius: 999px;
  background: #eef4ff;
  color: #1769e0;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
}

.article-card h3 {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.45;
  color: #0b1728;
  margin: 4px 0 0;
}

.article-date {
  font-size: 13px;
  color: #9aa3b2;
  margin: 0;
}

.article-excerpt {
  font-size: 14.5px;
  line-height: 1.7;
  color: #536279;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.article-more {
  font-size: 14px;
  font-weight: 600;
  color: #1769e0;
  margin-top: 4px;
}

.article-card:hover .article-more {
  color: #0a3a9e;
}

@media (max-width: 1020px) {
  .article-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
  .article-grid { grid-template-columns: 1fr; }
  .article-card { padding: 18px; }
}
