/* =========================================================
   六翼官网 V2.4 覆盖层 —— 15 个公开介绍页统一暖米白版（B 级候选）
   说明：只做覆盖，不改 site.css / converged.css 既有规则。
   本文件被 index / wings / privacy / terms / support / zhujiao /
   capabilities / teachers / about / pricing / modelpool / cooperation /
   shop / xueban / product 共 15 页引用（页面 body 加 v2-page 开关）；
   7 个工作台页不引用、不受影响。改动后必须升 ?v= 版本号防浏览器缓存。
   2026-08-13 按品牌令牌「亮色暖米白版」：
   奶油底 + 珊瑚橙行动 + 科技蓝辅助，收敛文字色与字号层级；
   V2.4 追加 13 页接入规则，全 .v2-page 前缀；hero 相关绑定
   .sw-hero--space（13 页共用），不命中 index/wings（--wings 家族）。
   ========================================================= */

:root {
  /* 品牌令牌 */
  --v2-bg: #fffaf5;                 /* 页底 · 奶油 */
  --v2-bg-soft: #f8efe6;            /* 暖分区 */
  --v2-title: #10223c;              /* 大标题 */
  --v2-ink: #172033;                /* 正文标题 */
  --v2-body: #5f6a78;               /* 副文 */
  --v2-muted: #647892;              /* 弱化 */
  --v2-orange: #b84d22;             /* 行动橙（C2.11 加深：小字/链接/序号达 WCAG AA，白底≥5:1） */
  --v2-orange-grad: linear-gradient(135deg, #c45029 0%, #ad3e1a 100%);  /* 主按钮渐变加深：白字≥4.5:1 */
  --v2-orange-soft: #ffe3d6;
  --v2-blue: #2d65d7;               /* 科技蓝 */
  --v2-blue-bright: #168bff;
  --v2-cyan: #36c7ff;
  --v2-line: #eadbce;               /* 暖描边 */
  --v2-line-soft: #dccbbb;
  --v2-title-grad: linear-gradient(135deg, #1a2740 0%, #2d65d7 48%, #ef8d6d 100%);
  --v2-shadow-sm: 0 18px 45px rgba(31, 43, 61, .08);
  --v2-shadow-md: 0 22px 50px rgba(64, 94, 145, .10);
  --v2-shadow-cta: 0 18px 34px rgba(239, 141, 107, .24);
  --v2-radius-sm: 16px;
  --v2-radius-md: 22px;
  --v2-radius-lg: 28px;
  /* 沿用节奏令牌 */
  --v2-section-y: clamp(52px, 6vw, 80px);
  --v2-heading-gap: 38px;
}

/* ---- 页面底色：奶油底 ---- */
.v2-page { background: var(--v2-bg); }
.v2-page .sw-section--gray { background: var(--v2-bg-soft); }

/* ---- 页面级节奏压缩（只作用于加载本文件的页面） ---- */
.v2-page .sw-section { padding: var(--v2-section-y) 0; }
.v2-page .sw-heading { margin-bottom: var(--v2-heading-gap); }
.v2-page .sw-heading h2 {
  font-size: clamp(30px, 3.4vw, 46px);
  line-height: 1.18;
  letter-spacing: .3px;
  color: var(--v2-title);
}
.v2-page .sw-heading p { font-size: 16px; color: var(--v2-body); line-height: 1.86; }

/* ---- 卡片质感：发丝描边 + 柔和阴影（保留 hover 抬升） ---- */
.v2-page .sw-hp-wcard,
.v2-page .sw-pcard,
.v2-page .sw-card,
.v2-page .sw-stat-card {
  border: 1px solid var(--v2-line);
  box-shadow: var(--v2-shadow-sm);
}
.v2-page .sw-hp-wcard:hover,
.v2-page .sw-pcard:hover,
.v2-page .sw-card:hover,
.v2-page .sw-stat-card:hover {
  box-shadow: var(--v2-shadow-md);
  transform: translateY(-3px);
}

/* ---- 徽章统一：白底细边 + 科技蓝字（眉标胶囊，参照 sx-eyebrow） ---- */
.v2-page .sw-badge--c,
.v2-page .sw-badge--indigo,
.v2-page .sw-badge--orange,
.v2-page .sw-badge--green,
.v2-page .sw-badge--purple {
  background: rgba(255, 255, 255, .72);
  border: 1px solid var(--v2-line);
  color: var(--v2-blue);
}
.v2-page .sw-badge--green { color: #278d62; }

/* ---- 按钮两档化（主=橙渐变，次=白底蓝描边） ---- */
.v2-page .sw-btn--grad {
  background: var(--v2-orange-grad);
  color: #fff;
  border: none;
  box-shadow: var(--v2-shadow-cta);
}
.v2-page .sw-btn--grad:hover { transform: translateY(-1px); }
.v2-page .sw-btn--indigo,
.v2-page .sw-btn--ghost {
  background: #fff;
  color: var(--v2-blue);
  border: 1.5px solid rgba(45, 101, 215, .36);
  box-shadow: none;
}
.v2-page .sw-btn--indigo:hover,
.v2-page .sw-btn--ghost:hover { color: var(--v2-blue); border-color: var(--v2-blue); transform: translateY(-1px); }

/* 大标题第二行：深→蓝→橙 品牌渐变 */
.sw-hero--wings .sw-hero-title .grad,
.sw-hero--wings h1 .grad {
  background: var(--v2-title-grad);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ================= 首屏：六翼导航大盘点 ================= */
.sw-hero--wings { padding: clamp(56px, 7vw, 88px) 0 clamp(44px, 5vw, 64px); }
.sw-hero-wings { position: relative; z-index: 1; }
.sw-hero-wings-head { max-width: 840px; margin: 0 auto 34px; text-align: center; }
.sw-hero-wings-head .sw-hero-cta { justify-content: center; }

/* 大标题：收敛字号，桌面第二行整句一行放下；窄屏自然换行、不被裁剪 */
.v2-page .sw-hero-title {
  font-size: clamp(30px, 4vw, 42px);
  line-height: 1.14;
  color: var(--v2-title);
}
/* 给 hero 文案列腾宽（仅桌面）：媒体列 40%→36%、间距 56→40，让渐变句整句一行放下 */
@media (min-width: 901px) {
  .v2-page .sw-hero--wings .sw-hero-inner { gap: 40px; }
  .v2-page .sw-hero--wings .sw-hero--media-right .sw-hero-media { width: 36%; }
}
.v2-page .sw-hero-sub { font-size: 18px; color: var(--v2-body); max-width: 640px; line-height: 1.86; }

/* 六翼地图：3 列紧凑横卡（统一卡片，去彩色强调边） */
.sw-wings-map {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  max-width: 1120px;
  margin: 0 auto;
}
.sw-wings-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 18px;
  background: #fff;
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-radius-sm);
  box-shadow: var(--v2-shadow-sm);
  transition: transform .25s, box-shadow .25s;
  color: inherit;
  text-decoration: none;
}
.sw-wings-item:hover { transform: translateY(-3px); box-shadow: var(--v2-shadow-md); }
.sw-wings-num {
  flex: 0 0 auto;
  font-family: var(--sw-mono);
  font-size: 13px;
  font-weight: 800;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--v2-orange);
  background: var(--v2-orange-soft);
}
.sw-wings-body { min-width: 0; }
.v2-page .sw-wings-item h3, .v2-page .sw-wings-item h2 { font-size: 16px; font-weight: 800; margin: 0 0 3px; color: var(--v2-ink); }
.sw-wings-item p { font-size: 13px; color: var(--v2-body); line-height: 1.6; margin: 0; }
.sw-wings-tag { display: inline-block; margin-top: 6px; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 99px; }
.sw-wings-tag--green { background: #e7f7ef; color: #278d62; }
.sw-wings-tag--violet { background: var(--v2-orange-soft); color: var(--v2-orange); }
.sw-wings-arrow { margin-left: auto; font-size: 16px; color: var(--v2-muted); transition: transform .25s, color .25s; }
.sw-wings-item:hover .sw-wings-arrow { transform: translateX(4px); color: var(--v2-orange); }

/* 信任行 */
.v2-trust { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 22px; margin: 24px 0 0; list-style: none; padding: 0; }
.v2-trust li { position: relative; padding-left: 20px; font-size: 13px; color: var(--v2-body); }
.v2-trust li::before {
  content: "✓"; position: absolute; left: 0; width: 15px; height: 15px; border-radius: 50%;
  background: var(--v2-orange-soft); color: var(--v2-orange);
  font-size: 10px; font-weight: 800; display: flex; align-items: center; justify-content: center;
}

/* ================= 双产品带：暖米白渐变底 ================= */
.v2-page .sw-hp-gradband { background: linear-gradient(180deg, #fffaf5 0%, #f8efe6 100%); }
.v2-page .sw-pcard {
  background: #fff;
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-radius-md);
  box-shadow: var(--v2-shadow-sm);
}
.v2-page .sw-pcard .desc { color: var(--v2-body); }
.v2-page .sw-pcard .pills span { color: var(--v2-body); border-color: var(--v2-line); background: #fdf8f2; }
.v2-page .sw-pcard .top small { color: var(--v2-muted); }
.v2-page .sw-pcard.o .sub { color: var(--v2-orange); }
.v2-page .sw-pcard.b .sub { color: var(--v2-blue); }
.v2-page .sw-pcard .top .lab { color: var(--v2-orange); background: var(--v2-orange-soft); }
.v2-page .sw-pcard.b .top .lab { color: var(--v2-blue); background: rgba(45, 101, 215, .1); }

/* ================= 算力底座：暖米白底 + 深蓝科技面板 ================= */
.v2-page .sw-section--engine { background: var(--v2-bg-soft); }
.v2-page .sw-section--engine > .sw-container {
  background: linear-gradient(150deg, #14203c 0%, #0f1a30 100%);
  border-radius: var(--v2-radius-lg);
  padding: clamp(40px, 5vw, 56px) clamp(20px, 4vw, 40px);
  box-shadow: var(--v2-shadow-md);
}
.v2-page .sw-section--engine .sw-heading h2 { color: #fff; }
.v2-page .sw-section--engine .sw-heading p { color: #b9c2da; }
.v2-page .sw-section--engine .sw-heading h2 .sw-grad-text {
  background: linear-gradient(90deg, #7ea2ff 0%, #36c7ff 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.v2-page .sw-section--engine .sw-badge { background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); color: #fff; }
.v2-page .sw-stats--engine { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.v2-page .sw-stats--engine .sw-stat-card {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--v2-radius-sm);
  padding: 20px 16px;
  text-align: center;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transition: transform .25s, background .25s;
}
.v2-page .sw-stats--engine .sw-stat-card:hover { transform: translateY(-4px); background: rgba(255, 255, 255, .09); }
.v2-page .sw-stats--engine .sw-stat-card .ico { color: #7ea2ff; margin-bottom: 8px; display: grid; place-items: center; }
.v2-page .sw-stats--engine .sw-stat-card .ico svg { width: 24px; height: 24px; stroke: currentColor; }
.v2-page .sw-stats--engine .sw-stat-card b { color: #fff; font-size: 18px; display: block; margin: 0 0 2px; background: none; -webkit-background-clip: initial; background-clip: initial; }
.v2-page .sw-stats--engine .sw-stat-card span { color: #a9b4d0; font-size: 12.5px; }

.v2-page .sw-engine-partners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 18px; }
.v2-page .sw-engine-partner {
  display: flex; gap: 12px; align-items: flex-start;
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .12);
  border-radius: var(--v2-radius-sm); padding: 16px 18px; transition: transform .25s, background .25s;
}
.v2-page .sw-engine-partner:hover { transform: translateY(-3px); background: rgba(255, 255, 255, .08); }
.v2-page .sw-engine-partner .sw-engine-ico { color: #7ea2ff; margin-top: 2px; display: grid; place-items: center; }
.v2-page .sw-engine-partner .sw-engine-ico svg { width: 22px; height: 22px; stroke: currentColor; }
.v2-page .sw-engine-partner b { color: #fff; font-size: 15px; display: block; margin-bottom: 4px; }
.v2-page .sw-engine-partner p { color: #b9c2da; font-size: 13px; line-height: 1.7; margin: 0; }
.v2-page .sw-section--engine .sw-cta-actions .sw-btn--grad { box-shadow: var(--v2-shadow-cta); }
.v2-page .sw-section--engine .sw-cta-actions .sw-btn--ghost-dark:hover { border-color: #fff; background: rgba(255, 255, 255, .1); }

/* ================= 价格区：白卡统一细边 ================= */
.v2-page .sw-price { border: 1px solid var(--v2-line); box-shadow: var(--v2-shadow-sm); }
.v2-page .sw-price--hot.sw-card--gborder { border: 1.5px solid var(--v2-orange); background: #fff; }
.v2-page .sw-price--hot .sw-pill--orange { background: var(--v2-orange-grad); color: #fff; border: none; }

/* ================= 底部 CTA：暖米白卡 + 品牌渐变标题 + 橙主按钮 ================= */
.v2-page .sw-cta--brand {
  background: linear-gradient(180deg, #fffaf5 0%, #fdf4ea 100%);
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-radius-lg);
  box-shadow: var(--v2-shadow-sm);
  color: var(--v2-title);
}
.v2-page .sw-cta--brand h2 { color: var(--v2-title); }
.v2-page .sw-cta--brand h2 .sw-grad-text {
  background: var(--v2-title-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.v2-page .sw-cta--brand p { color: var(--v2-body); }
.v2-page .sw-cta--brand::before {
  background-image: radial-gradient(rgba(239, 141, 107, .18) 1px, transparent 1px);
  background-size: 26px 26px; opacity: .6;
}
.v2-page .sw-cta--brand::after { background: radial-gradient(circle, rgba(239, 141, 107, .28), transparent 70%); }
.v2-page .sw-cta--brand .sw-btn--orange {
  background: var(--v2-orange-grad); color: #fff;
  box-shadow: var(--v2-shadow-cta); border: none;
}
.v2-page .sw-cta--brand .sw-btn--white { background: #fff; color: var(--v2-blue); border: 1.5px solid rgba(45, 101, 215, .36); }
.v2-page .sw-cta--brand .sw-btn--outline { border: 1.5px solid rgba(101, 103, 124, .4); color: var(--v2-body); background: transparent; }
.v2-page .sw-cta--brand .sw-btn--outline:hover { background: rgba(239, 141, 107, .08); }

/* ================= wings 页：六翼详情卡 ================= */
.sw-hp-carrier { margin: 14px 0 0; list-style: none; padding: 0; }
.sw-hp-carrier li {
  position: relative;
  font-size: 13px; color: var(--v2-body);
  padding-left: 18px; line-height: 1.7; margin: 5px 0;
}
.sw-hp-carrier li::before { content: "✓"; position: absolute; left: 0; top: 0; color: var(--v2-orange); font-weight: 800; }

/* 详情卡：统一图标蓝、pos 橙、顶部条橙（去彩虹色） */
.v2-page .sw-hp-wcard { --wc: var(--v2-orange); }
.v2-page .sw-hp-wcard::before { background: var(--v2-orange); opacity: .8; }
.v2-page .sw-hp-ico { --c: var(--v2-blue); --bg: rgba(45, 101, 215, .1); border-color: rgba(45, 101, 215, .14); }
.v2-page .sw-hp-ico svg { stroke: var(--v2-blue); }
.v2-page .sw-hp-pos { color: var(--v2-orange); }
.v2-page .sw-hp-pain { color: var(--v2-ink); }
.v2-page .sw-hp-pain::before { background: var(--v2-orange); }
.v2-page .sw-hp-land { color: var(--v2-body); border-top-color: var(--v2-line); }
.v2-page .sw-hp-num { color: var(--v2-muted); opacity: .5; }
.v2-page .sw-hp-wcard h3 { font-size: 18px; font-weight: 800; color: var(--v2-ink); margin-bottom: 10px; }
.v2-page .sw-hp-wcard p { font-size: 14px; color: var(--v2-body); line-height: 1.7; }
.v2-page .sw-hp-go { color: var(--v2-orange); font-weight: 800; }

/* 六翼速跳导航 */
.sw-wings-jump { display: flex; justify-content: center; gap: 8px; margin-top: 18px; flex-wrap: wrap; }
.sw-wings-jump a {
  width: 42px; height: 42px; border-radius: 12px;
  display: grid; place-items: center;
  font-family: var(--sw-mono); font-weight: 800; font-size: 14px;
  color: var(--v2-body); background: #fff;
  border: 1px solid var(--v2-line); box-shadow: var(--v2-shadow-sm);
  transition: transform .2s, color .2s, border-color .2s;
}
.sw-wings-jump a:hover { transform: translateY(-2px); color: var(--v2-blue); border-color: var(--v2-blue); }

/* 体系总逻辑：暖米白面板统一细边 */
.v2-page .sw-panel--grad {
  background: linear-gradient(180deg, #fff 0%, #fdf6ee 100%);
  border: 1px solid var(--v2-line);
  box-shadow: var(--v2-shadow-sm);
}
.v2-page .sw-panel--grad .flow span { color: var(--v2-body); border-color: var(--v2-line); background: #fff; }

@media (max-width: 900px) {
  .sw-wings-map { grid-template-columns: 1fr 1fr; }
  .sw-hero-wings-head { text-align: left; }
  .sw-hero-wings-head .sw-hero-cta { justify-content: flex-start; }
  .v2-trust { justify-content: flex-start; }
}
@media (max-width: 560px) {
  .sw-wings-map { grid-template-columns: 1fr; }
  /* 手机模型卡在窄屏跟随容器收窄，避免右缘被裁 */
  .sw-hero--wings .sw-device { width: min(356px, calc(100vw - 48px)); }
}

/* ---- 动效降级：减少动态效果时关闭呼吸光晕 ---- */
@media (prefers-reduced-motion: reduce) {
  .sw-hero--wings .sw-c2-beam,
  .sw-hero--wings .sw-c2-beam2 { animation: none; }
}
/* 不支持毛玻璃时回退实底 */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .v2-page .sw-stats--engine .sw-stat-card { background: rgba(22, 31, 56, .85); }
}

/* =========================================================
   V2.4 扩展：13 个公开介绍页统一接入暖米白版
   规则全 .v2-page 前缀；hero 相关绑定 .sw-hero--space，
   不命中 index/wings（--wings 家族）。改动后必须升 ?v= 版本号。
   ========================================================= */

/* :root 安全令牌重映射（仅 3 个；已核不改变 index/wings 视觉） */
.v2-page {
  --sw-orange: #ef8d6d;
  --sw-orange-light: #f1a081;
  --sw-grad-soft: linear-gradient(135deg, rgba(239,141,107,.12), rgba(255,227,214,.10));
}

/* ---- 通用：13 页 hero / CTA / 渐变主卡 ---- */
.v2-page .sw-hero--space .sw-hero-sub { opacity: 1; color: var(--v2-body); }
.v2-page .sw-hero-desc { font-size: 17px; line-height: 1.85; color: var(--v2-body); }
.v2-page .sw-hero--space .sw-hero-title .sw-grad-text,
.v2-page .sw-hero--space h1 .grad {
  background: var(--v2-title-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.v2-page .sw-hero--space .sw-hero-badge {
  background: #fff; border: 1px solid var(--v2-line); color: var(--v2-blue);
  font-family: inherit; letter-spacing: 0; box-shadow: var(--v2-shadow-sm);
}
/* hero 白按钮两档化：首个（若是白）→ 橙渐变主按钮；后续 → 白底橙字次按钮 */
.v2-page .sw-hero--space .sw-btn--white { background: #fff; color: var(--v2-orange); border: 1.5px solid rgba(239,141,107,.4); }
.v2-page .sw-hero--space .sw-btn--white:hover { border-color: var(--v2-orange); }
.v2-page .sw-hero-cta > .sw-btn--white:first-child { background: var(--v2-orange-grad); color: #fff; border: none; box-shadow: var(--v2-shadow-cta); }
.v2-page .sw-hero-cta > .sw-btn--white:first-child:hover { transform: translateY(-1px); }
/* 底部大 CTA：蓝渐变 → 橙渐变（:not(--brand) 保护 index/wings） */
.v2-page .sw-cta:not(.sw-cta--brand) { background: var(--v2-orange-grad); }
.v2-page .sw-cta:not(.sw-cta--brand) .sw-btn--white,
.v2-page .sw-cta:not(.sw-cta--brand) .sw-btn--dark { background: #fff; color: var(--v2-orange); border: 1px solid rgba(239,141,107,.35); box-shadow: var(--v2-shadow-sm); }
/* 渐变主卡（pricing 主卡等）→ 橙渐变 */
.v2-page .sw-card--grad { background: var(--v2-orange-grad); border: none; }
/* 徽章补全 blue / gray：白底细边蓝字 */
.v2-page .sw-badge--blue,
.v2-page .sw-badge--gray { background: rgba(255,255,255,.72); border: 1px solid var(--v2-line); color: var(--v2-blue); }

/* ---- shop：暖米白 hero + 白卡 + 深蓝 Agent 面板 ---- */
.v2-page .sw-shop-hero {
  background: linear-gradient(160deg, #fffaf5 0%, #fdf4ea 55%, #fff7f0 100%);
  border-bottom: 1px solid var(--v2-line);
  padding: clamp(56px, 7vw, 88px) 0 clamp(44px, 5vw, 64px);
}
.v2-page .sw-shop-hero h1 { font-size: clamp(30px, 4vw, 42px); }
.v2-page .sw-shop-hero .sw-shop-sub { color: var(--v2-body); }
.v2-page .sw-card--shop { background: #fff; border: 1px solid var(--v2-line); box-shadow: var(--v2-shadow-sm); }
.v2-page .sw-card--shop::before { display: none; }
.v2-page .sw-agents {
  background: linear-gradient(150deg, #14203c 0%, #0f1a30 100%);
  border-radius: var(--v2-radius-lg);
  padding: clamp(40px, 5vw, 56px) clamp(20px, 4vw, 40px);
  box-shadow: var(--v2-shadow-md);
}
.v2-page .sw-agents .sw-heading h2 { color: #fff; }
.v2-page .sw-agents .sw-heading p { color: #b9c2da; }
.v2-page .sw-agents .sw-card--dark { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); border-radius: var(--v2-radius-sm); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.v2-page .sw-agents .sw-card--dark h3 { color: #fff; }
.v2-page .sw-agents .sw-badge--orange { background: rgba(239,141,107,.18); color: #ffd9c4; }
.v2-page .sw-trust-chip { background: #fff; border-color: var(--v2-line); color: var(--v2-ink); box-shadow: var(--v2-shadow-sm); }
.v2-page .sw-step-num { background: var(--v2-orange-soft); color: var(--v2-orange); }

/* ---- zhujiao：浅色 hero 说明句 + 次按钮白底暖边 ---- */
.v2-page .sw-hero--zhujiao .sw-hero-desc { color: var(--v2-body); }
.v2-page .sw-hero--zhujiao .sw-btn--outline-light { border: 1px solid var(--v2-line); color: var(--v2-ink); background: #fff; box-shadow: var(--v2-shadow-sm); }
.v2-page .sw-hero--zhujiao .sw-btn--outline-light:hover { color: var(--v2-blue); border-color: var(--v2-blue); transform: translateY(-1px); }

/* ---- capabilities：状态徽章语义色收敛 ---- */
.v2-page .cap-status--live { background: rgba(39,141,98,.12); color: #278d62; }
.v2-page .cap-status--beta { background: rgba(239,141,107,.14); color: #d9684a; }
.v2-page .cap-status--plan { background: rgba(100,120,146,.12); color: #647892; }
.v2-page .cap-note { color: var(--v2-muted); border-top-color: var(--v2-line); }

/* ---- teachers：去彩虹色，蓝 / 绿 / 橙收敛 ---- */
.v2-page .tag--main,
.v2-page .tag--path,
.v2-page .tag--campus { background: rgba(45,101,215,.10); color: #2d65d7; }
.v2-page .tag--quality { background: rgba(39,141,98,.12); color: #278d62; }
.v2-page .tag--motivation { background: rgba(239,141,107,.12); color: #d9684a; }
.v2-page .tag--status { background: rgba(239,141,107,.16); color: #d9684a; }
.v2-page .stars { color: #f0b34a; }
.v2-page .agent-icon { background: var(--v2-orange-soft); }
.v2-page .adviser-box { background: linear-gradient(135deg, rgba(239,141,107,.08), rgba(255,227,214,.06)); }
.v2-page .adviser-box b { color: var(--v2-orange); }
.v2-page .adviser-box span { color: #c05a3a; }
.v2-page .agent-quote blockquote { border-left-color: var(--v2-orange); }

/* ---- pricing：优惠绿收敛 + 橙角标 ---- */
.v2-page .px-save { color: #278d62; }
.v2-page .sw-card--grad .px-save { color: #ffe3c9; }
.v2-page .px-save2 { background: #e7f7ef; color: #1f7a4d; }
.v2-page .px-banner { background: #e7f7ef; border-color: #b9e6cf; color: #1f7a4d; }
.v2-page .px-badge-corner { background: var(--v2-orange-grad); box-shadow: var(--v2-shadow-cta); }
.v2-page .px-row-hl { background: rgba(239,141,107,.10); }

/* ---- xueban：五层统一白底暖边 + 暖底橙字角标 ---- */
.v2-page .sw-layer--orange,
.v2-page .sw-layer--blue,
.v2-page .sw-layer--teal,
.v2-page .sw-layer--sky,
.v2-page .sw-layer--slate { background: #fff; border: 1px solid var(--v2-line); box-shadow: var(--v2-shadow-sm); }
.v2-page .sw-layer-badge--orange,
.v2-page .sw-layer-badge--blue,
.v2-page .sw-layer-badge--teal,
.v2-page .sw-layer-badge--sky,
.v2-page .sw-layer-badge--slate { background: var(--v2-orange-soft); color: var(--v2-orange); }
.v2-page .sw-cap { border: 1px solid var(--v2-line); box-shadow: var(--v2-shadow-sm); }
.v2-page .sw-cap-tick { background: rgba(39,141,98,.12); color: #278d62; }

/* ---- product：架构层 / 方案卡 / 案例统一白底暖边，标题蓝 label 橙，痛点暖橙 ---- */
.v2-page .sw-layer--purple,
.v2-page .sw-layer--blue,
.v2-page .sw-layer--orange,
.v2-page .sw-layer--green { background: #fff; border-color: var(--v2-line); }
.v2-page .sw-layer--purple h3,
.v2-page .sw-layer--blue h3,
.v2-page .sw-layer--orange h3,
.v2-page .sw-layer--green h3 { color: var(--v2-blue); }
.v2-page .sw-jump-card { border-color: rgba(239,141,107,.4); }
.v2-page .sw-jump-card--dark { background: #fff; color: var(--v2-ink); border-color: var(--v2-line); box-shadow: var(--v2-shadow-sm); }
.v2-page .sw-jump-card--dark .arr { color: var(--v2-orange); }
.v2-page .sw-sol-card--orange,
.v2-page .sw-sol-card--blue,
.v2-page .sw-sol-card--purple { background: #fff; border-color: var(--v2-line); }
.v2-page .sw-sol-card--orange .sw-sol-title,
.v2-page .sw-sol-card--blue .sw-sol-title,
.v2-page .sw-sol-card--purple .sw-sol-title { color: var(--v2-blue); }
.v2-page .sw-sol-card .chk { color: #278d62; }
.v2-page .sw-case--orange,
.v2-page .sw-case--blue,
.v2-page .sw-case--purple { background: #fff; border-color: var(--v2-line); }
.v2-page .sw-case--orange .sw-case-label,
.v2-page .sw-case--blue .sw-case-label,
.v2-page .sw-case--purple .sw-case-label { color: var(--v2-orange); }
.v2-page .sw-pain-item { background: #fdf3ee; }
.v2-page .sw-pain-num { background: #ffd9c2; color: var(--v2-orange); }
.v2-page .sw-stage-ico--orange { background: var(--v2-orange-grad); }
.v2-page .sw-stage-ico--blue,
.v2-page .sw-stage-ico--purple { background: linear-gradient(135deg, #60a5fa 0%, #2d65d7 100%); }
.v2-page .sw-stage-grade--orange { color: var(--v2-orange); }
.v2-page .sw-stage-grade--blue,
.v2-page .sw-stage-grade--purple { color: var(--v2-blue); }
.v2-page .sw-score .before { color: var(--v2-orange); }
.v2-page .sw-score .after { color: #278d62; }

/* ---- modelpool：科技蓝图标 + 暖底蓝字 code + 白底暖边芯片 ---- */
.v2-page .gw-head .ic { background: linear-gradient(135deg, #2d65d7 0%, #168bff 100%); }
.v2-page .gw-row code { background: #fdf3ee; color: var(--v2-blue); }
.v2-page .mp-model-chip { background: #fff; border-color: var(--v2-line); box-shadow: var(--v2-shadow-sm); }

/* ---- about / support / cooperation 收尾 ---- */
.v2-page .about-slogan { background: linear-gradient(135deg, #f1a081 0%, #ee8967 100%); box-shadow: var(--v2-shadow-cta); }
.v2-page .coop-tag { color: var(--v2-orange); background: var(--v2-orange-soft); }
.v2-page .sw-contact-card .val,
.v2-page .sw-contact-card .hl { color: var(--v2-orange); }
.v2-page .sw-faq-group-title::before { background: var(--v2-orange); }

/* =========================================================
   V2.5 扩展：wings.html 整页重设计（零重复叙事）
   新增两枚组件：sw-breadcrumb（面包屑）、sw-wings-chain（首屏一字导览链）。
   改动后必须升 ?v= 版本号。
   ========================================================= */

/* 面包屑：Hero 顶部「← 首页」弱化小字，hover 转橙 */
.v2-page .sw-breadcrumb {
  display: inline-flex; align-items: center; gap: 4px;
  font-size: 13px; color: var(--v2-muted); margin-bottom: 18px;
}
.v2-page .sw-breadcrumb a { color: var(--v2-blue); font-weight: 600; text-decoration: none; }
.v2-page .sw-breadcrumb a:hover { color: var(--v2-orange); }

/* 首屏六翼一字导览链：胶囊 = 序号圆 + 单字，胶囊间 → 分隔；窄屏折行并隐藏分隔 */
.v2-page .sw-wings-chain {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 8px; max-width: 840px; margin: 30px auto 0;
}
.v2-page .sw-wings-chain a {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 16px 6px 8px; background: #fff;
  border: 1px solid var(--v2-line); border-radius: 999px;
  color: var(--v2-ink); font-weight: 700; font-size: 15px;
  box-shadow: var(--v2-shadow-sm); text-decoration: none;
  transition: transform .25s, color .25s, border-color .25s;
}
.v2-page .sw-wings-chain a:hover { transform: translateY(-3px); border-color: var(--v2-orange); color: var(--v2-orange); }
.v2-page .sw-wings-chain .sw-wings-num { width: 26px; height: 26px; font-size: 12px; }
.v2-page .sw-wings-chain .sw-wings-sep { color: var(--v2-muted); font-size: 14px; }
@media (max-width: 720px) {
  .v2-page .sw-wings-chain { gap: 6px; }
  .v2-page .sw-wings-chain .sw-wings-sep { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .v2-page .sw-wings-chain a { transition: none; }
}

/* =========================================================
   V2.6 扩展：wings.html 大厂级 UI 改良（巨幅首屏 + 六翼唯一列出）
   首屏：巨幅声明标题 + 副句居中；六翼网格：序号加粗、落地标签与正文留呼吸。
   改动后必须升 ?v= 版本号。
   ========================================================= */

/* 首屏巨幅声明：比 v2 默认 42px 提档，Apple 式大留白 */
.wings-page .sw-hero--wings .sw-hero-title { font-size: clamp(40px, 5.6vw, 62px); line-height: 1.1; }
/* 首屏副句在居中巨幅标题下水平居中（默认 max-width:640px 会靠左） */
.wings-page .sw-hero-wings-head .sw-hero-sub { margin: 0 auto; }
/* 六翼卡序号：圆内字号加粗增大，更醒目 */
.wings-page .sw-wings-item .sw-wings-num { font-size: 16px; font-weight: 800; }
/* 「已落地 · 真实数据」标签：独占一行，与价值句之间留呼吸 */
.wings-page .sw-wings-item .sw-wings-tag { display: block; width: fit-content; margin: 4px 0 8px; }
/* 收尾 CTA 弱化链接行：蓝字加粗、去下划线，hover 转橙 */
.wings-page .sw-cta--brand .sw-muted a { color: var(--v2-blue); font-weight: 600; text-decoration: none; }
.wings-page .sw-cta--brand .sw-muted a:hover { color: var(--v2-orange); }
/* 窄屏：时代深蓝三卡改纵向堆叠，避免挤成细条 */
@media (max-width: 720px) {
  .wings-page .sw-engine-partners { grid-template-columns: 1fr; }
}

/* =========================================================
   V2.9 扩展：打字机循环推广到各板块页首屏大标题（统一方案）
   全 CSS 实现、零脚本。接入方式：标题容器加 class="t-type" 并内联
   style="--n:字数"，逐字包 <span class="t-char" style="--i:N">，
   行尾加 <span class="t-caret">。单套共享 @keyframes + 每字
   animation-delay(--i*50ms) + 按 --n 自适应的动画时长（字数不同，
   循环周期自动匹配，N≤38 均满足 maxOffset+68%*T<T 的空白约束）。
   关键坑（workflow 对抗核验实测 + Chromium a56f0623 提交）：
   background-clip:text 渐变父容器下，子字 opacity 动画已失效
   （opacity:0 的字仍以明亮渐变字形亮显），故揭示机制改用
   visibility 硬切（实测有效、不产生 stacking context），渐变
   留在父容器 .grad / .sw-grad-text 不动、双前缀裁切保留。
   光标并入同周期 tCaretLoop（整句全亮才出现、清空即消失、停留期闪 2 次）。
   系统「减弱动态效果」时全字直显 + 隐光标。改动后必须升 ?v= 版本号。
   ========================================================= */
.t-type .t-char {
  visibility: hidden;
  animation-name: tType;
  animation-duration: calc((var(--n) - 1) * 120ms + 1760ms);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-delay: calc(var(--i) * 50ms);
  animation-fill-mode: both;
}
@keyframes tType {
  0%   { visibility: hidden; }
  0.2% { visibility: hidden; }
  0.3% { visibility: visible; }
  62%  { visibility: visible; }
  68%  { visibility: hidden; }
  100% { visibility: hidden; }
}
.t-type .t-caret {
  display: inline-block;
  width: 3px; height: 0.85em;
  margin-left: 3px; vertical-align: baseline;
  background: var(--v2-orange);
  border-radius: 2px;
  opacity: 0;
  visibility: hidden;
  animation-name: tCaretLoop;
  animation-duration: calc((var(--n) - 1) * 120ms + 1760ms);
  animation-timing-function: linear;
  animation-iteration-count: infinite;
  animation-fill-mode: both;
}
@keyframes tCaretLoop {
  0%    { opacity: 0; visibility: hidden; }
  30%   { opacity: 0; visibility: hidden; }
  30.5% { opacity: 1; visibility: visible; }
  44%   { opacity: 0; }
  56%   { opacity: 1; }
  62%   { opacity: 0; visibility: hidden; }
  100%  { opacity: 0; visibility: hidden; }
}
@media (max-width: 720px) {
  .wings-page .sw-hero--wings .sw-hero-title { font-size: clamp(25px, 8vw, 40px); }
}
@media (prefers-reduced-motion: reduce) {
  .t-type .t-char { animation: none; visibility: visible; opacity: 1; }
  .t-type .t-caret { animation: none; display: none; }
}

/* =========================================================
   V2.10 扩展：其余板块页对标 wings 大厂级视觉精修
   用户确认方案：现有结构精修（不改版式/文案/锚点/打字机）+
   卡片图标统一白底彩边。机制：11 个目标页 body 追加 v2-sec
   （wings 为基准页不加）；index 加入 v2-sec 但共享规则用
   :not(.index-page) 保护其价格卡/首屏媒体布局不被改动。
   纯 CSS、零新增脚本；进场动画复用 site-preview.js 的
   revealStaticContent（候选构建已内置）。改动后必须升 ?v= 版本号。
   ========================================================= */

/* ---- P1 巨幅首屏标题：对标 wings 的巨幅 H1（index 首屏右侧有媒体，保持 42px 档） ---- */
.v2-sec:not(.index-page) .sw-hero--space .sw-hero-title {
  font-size: clamp(34px, 4.6vw, 50px);
  line-height: 1.12;
  letter-spacing: .01em;
}
.v2-sec .sw-shop-hero h1 { font-size: clamp(34px, 4.6vw, 48px); line-height: 1.15; }
@media (max-width: 720px) {
  .v2-sec:not(.index-page) .sw-hero--space .sw-hero-title { font-size: clamp(26px, 7.5vw, 38px); line-height: 1.18; }
  .v2-sec .sw-shop-hero h1 { font-size: clamp(26px, 7.5vw, 36px); }
}

/* ---- P1 首屏媒体图：统一大圆角 + 发丝描边 + 柔和投影（zhujiao 保留专属品牌蓝投影） ---- */
.v2-sec:not(.zhujiao-page) .sw-hero-media > img {
  border-radius: 28px;
  border: 1px solid var(--v2-line);
  box-shadow: var(--v2-shadow-md);
}

/* ---- P1 居中首屏（support 等）徽章微光晕 ---- */
.v2-sec .sw-hero-inner--center .sw-hero-badge { box-shadow: 0 12px 28px -12px rgba(239,141,107,.4); }

/* ---- P2 卡片图标统一：白底 + 1.5px 彩边 + 轻投影（对标 wings 白卡图标） ---- */
.v2-sec .sw-card-icon,
.v2-sec .agent-icon,
.v2-sec .sw-cap-ico {
  background: #fff;
  border: 1.5px solid rgba(239,141,107,.45);
  box-shadow: 0 8px 18px -10px rgba(31,43,61,.16);
}
.v2-sec .sw-ic-indigo { border-color: rgba(79,109,245,.4); color: #4f6df5; }
.v2-sec .sw-ic-green  { border-color: rgba(16,185,129,.4); color: #059669; }
.v2-sec .sw-ic-purple { border-color: rgba(147,51,234,.35); color: #9333ea; }
.v2-sec .sw-ic-sky    { border-color: rgba(14,165,233,.4); color: #0ea5e9; }

/* ---- P2 卡片 / 容器统一大圆角（index 价格卡、shop 商品卡保持原设计） ---- */
.v2-sec:not(.index-page):not(.shop-page) .sw-card,
.v2-sec .sw-cap,
.v2-sec .sw-pain-item,
.v2-sec .sw-sol-card,
.v2-sec .sw-case { border-radius: var(--v2-radius-md); }

/* ---- P2 内容卡密度收紧：更疏朗内边距 + 收紧的标题 / 正文层级 ---- */
.v2-sec:not(.index-page):not(.shop-page) .sw-card { padding: 28px 24px; }
.v2-sec:not(.index-page):not(.shop-page) .sw-card h3 { font-size: 17px; line-height: 1.35; }
.v2-sec:not(.index-page):not(.shop-page) .sw-card p { font-size: 14px; line-height: 1.7; color: var(--v2-body); }

/* ---- P3 product 深蓝引擎面板：暖米白区块内嵌深蓝面板（对标 wings engine） ---- */
.product-page .sw-section--dark { background: var(--v2-bg); }
.product-page .sw-section--dark > .sw-container {
  background: linear-gradient(160deg, #16233f 0%, #1d2f52 100%);
  border-radius: var(--v2-radius-lg);
  padding-top: 56px;
  padding-bottom: 56px;
  box-shadow: 0 30px 60px -24px rgba(22,35,63,.55);
}
.product-page .sw-section--dark .sw-heading--light h2 { color: #fff; }
.product-page .sw-section--dark .sw-heading--light p { color: #aab6cf; }
.product-page .sw-section--dark .sw-card--dark {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--v2-radius-md);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  transition: transform .25s, background .25s;
}
.product-page .sw-section--dark .sw-card--dark:hover { transform: translateY(-4px); background: rgba(255,255,255,.09); }
.product-page .sw-section--dark .sw-card--dark h3 { color: #fff; }
.product-page .sw-section--dark .sw-card--dark p { color: #c3cde1; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .product-page .sw-section--dark .sw-card--dark { background: rgba(30,48,84,.92); }
}

/* ---- P4 状态徽章胶囊化 ---- */
.v2-sec .sw-cap-tick,
.v2-sec .cap-status,
.v2-sec .mp-model-chip { border-radius: 999px; }

/* ---- P5 CTA / 联系卡 / 流程卡 大厂化 ---- */
.v2-sec .sw-cta:not(.sw-cta--brand) { border-radius: var(--v2-radius-lg); box-shadow: var(--v2-shadow-cta); }
.v2-sec .sw-contact-card { border-radius: var(--v2-radius-lg); transition: transform .25s, box-shadow .25s; }
.v2-sec .sw-contact-card:hover { transform: translateY(-3px); box-shadow: var(--v2-shadow-md); }
.v2-sec .sw-flow .step { transition: transform .25s, box-shadow .25s; }
.v2-sec .sw-flow .step:hover { transform: translateY(-3px); box-shadow: var(--v2-shadow-md); }
.v2-sec .sw-flow .step b { color: var(--v2-ink); }

/* ---- 各页页级细节 ---- */
/* product：架构层大圆角 + 悬停抬升；跳转卡大圆角；学段切换胶囊 */
.product-page .sw-layer { border-radius: var(--v2-radius-md); transition: transform .25s, box-shadow .25s; }
.product-page .sw-layer:hover { transform: translateY(-2px); box-shadow: var(--v2-shadow-md); }
.product-page .sw-jump-card { border-radius: 999px; padding: 10px 20px; }
.product-page .sw-stage-tab { border-radius: 999px; }
.product-page .sw-pain-item { background: #fdf3ee; }
/* xueban：五层大圆角 + 悬停抬升 */
.xueban-page .sw-layer { border-radius: var(--v2-radius-md); transition: transform .25s, box-shadow .25s; }
.xueban-page .sw-layer:hover { transform: translateY(-2px); box-shadow: var(--v2-shadow-md); }
/* teachers：筛选条大圆角 + Agent 卡图标悬停描边 */
.teachers-page .filter-bar { border-radius: 20px; }
.teachers-page .agent-icon { transition: transform .25s, border-color .25s; }
.teachers-page .agent-card:hover .agent-icon { transform: translateY(-2px); border-color: var(--v2-orange); }
/* cooperation：合作对象标签留白 */
.cooperation-page .coop-tag { padding: 4px 14px; }
/* about：使命宣言大圆角 */
.about-page .about-slogan { border-radius: var(--v2-radius-lg); }

/* ---- P6 index 六翼地图进场错峰（上方区域，构建后 revealStaticContent 即刻触发） ---- */
.v2-sec .sw-wings-map .sw-hp-reveal { transition-delay: 0s; }
.v2-sec .sw-wings-map .sw-hp-reveal:nth-child(2) { transition-delay: .06s; }
.v2-sec .sw-wings-map .sw-hp-reveal:nth-child(3) { transition-delay: .12s; }
.v2-sec .sw-wings-map .sw-hp-reveal:nth-child(4) { transition-delay: .18s; }
.v2-sec .sw-wings-map .sw-hp-reveal:nth-child(5) { transition-delay: .24s; }
.v2-sec .sw-wings-map .sw-hp-reveal:nth-child(6) { transition-delay: .30s; }
@media (prefers-reduced-motion: reduce) {
  .v2-sec .sw-wings-map .sw-hp-reveal { transition: none; opacity: 1; transform: none; }
}

/* =========================================================
   V2.11 无障碍与稳健加固（V2.10 对抗审查 8 条确认修复）
   用户拍板：主按钮橙色加深到白字达标；展示卡悬停保留。
   已做：--v2-orange 小字加深 + --v2-orange-grad 主按钮渐变
   加深（见 :root 令牌）。本块补：绿字小徽章加深、减弱动态
   关闭全部悬停动效、全站 v2 页键盘焦点态。纯 CSS 零脚本，
   改动后必须升 ?v= 版本号。
   ========================================================= */

/* 绿字小徽章 / 状态文字加深一档到 AA（#278d62 ≈4.1:1 → #1f7d54 ≈5.1:1） */
.v2-page .sw-badge--green,
.v2-page .sw-wings-tag--green,
.v2-page .cap-status--live,
.v2-page .tag--quality,
.v2-page .px-save,
.v2-page .sw-cap-tick,
.v2-page .sw-sol-card .chk,
.v2-page .sw-score .after { color: #1f7d54; }

/* 减弱动态效果：关闭全部悬停上浮/阴影过渡（含 site.css 基底卡片与 wings 箭头） */
@media (prefers-reduced-motion: reduce) {
  .v2-sec .sw-contact-card,
  .v2-sec .sw-flow .step,
  .v2-sec .sw-card,
  .v2-sec .sw-pcard,
  .v2-sec .sw-hp-wcard,
  .v2-sec .sw-stat-card,
  .v2-sec .sw-card--shop,
  .product-page .sw-layer,
  .xueban-page .sw-layer,
  .product-page .sw-section--dark .sw-card--dark,
  .teachers-page .agent-icon { transition: none; }
  .v2-sec .sw-contact-card:hover,
  .v2-sec .sw-flow .step:hover,
  .v2-sec .sw-card:hover,
  .v2-sec .sw-pcard:hover,
  .v2-sec .sw-hp-wcard:hover,
  .v2-sec .sw-stat-card:hover,
  .v2-sec .sw-card--shop:hover,
  .product-page .sw-layer:hover,
  .xueban-page .sw-layer:hover,
  .product-page .sw-section--dark .sw-card--dark:hover,
  .teachers-page .agent-card:hover .agent-icon,
  .v2-page .sw-wings-item:hover .sw-wings-arrow { transform: none; }
}

/* 键盘焦点态：v2 页链接/按钮/输入/可聚焦元素统一可见焦点环（品牌蓝，白底对比≥5:1） */
.v2-page a:focus-visible,
.v2-page button:focus-visible,
.v2-page input:focus-visible,
.v2-page select:focus-visible,
.v2-page textarea:focus-visible,
.v2-page [tabindex]:focus-visible {
  outline: 3px solid var(--v2-blue);
  outline-offset: 2px;
  border-radius: 8px;
}

/* =========================================================
   V2.12 板块页一致性收口（41-agent 逐页审计确认的残留色差）
   说明：首屏冷色浅蓝紫 hero 为 index/wings/13 页共用现状
   （仅 shop 是暖色 hero 例外），彼此一致，本轮不改 hero。
   纯 CSS 零脚本，改动后必须升 ?v= 版本号。
   ========================================================= */

/* index 双产品带 · 助教站卡主按钮：旧靛紫渐变 → 橙渐变（0,5,0 压过 site.css 0,3,0） */
.v2-page .sw-pcard .acts .sw-btn--white {
  background: var(--v2-orange-grad);
  color: #fff;
  border: none;
  box-shadow: var(--v2-shadow-cta);
}

/* index 热点价格卡 ¥19,800：靛紫渐变文字 → 橙渐变文字 */
.v2-page .sw-price--hot .amount {
  background: var(--v2-orange-grad);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}

/* modelpool 网关分隔线：冷灰蓝 #e2e8f0 → 暖描边 */
.v2-page .gw-row { border-bottom-color: var(--v2-line); }

/* teachers 能力筛选条：冷灰蓝描边 → 暖描边（并入既有圆角规则） */
.teachers-page .filter-bar { border-color: var(--v2-line); }

/* about / support / cooperation 联系卡：冷灰底无描边 → 白底暖边（卡片统一模式） */
.v2-page .sw-contact-card {
  background: #fff;
  border: 1px solid var(--v2-line);
  box-shadow: var(--v2-shadow-sm);
}
.v2-page .sw-contact-card p { color: var(--v2-muted); }

/* about 正文段落：行高 1.9 → 1.7、石板灰 → 正文墨 */
.v2-page .about-text p { color: var(--v2-body); line-height: 1.7; }

/* support 售后流程 1/2/3 数字圈：蓝→青渐变 → 行动橙 */
.v2-sec .sw-flow .step .n { background: var(--v2-orange-grad); }

/* support 梯度面板标题：浅三文鱼橙 → 墨色（仅改色，不动字号层级） */
.v2-page .sw-panel--grad h3 { color: var(--v2-ink); }

/* support 售后 6 卡 .sw-card--soft：冷灰底 → 白底 */
.v2-page .sw-card--soft { background: #fff; }

/* shop / zhujiao 卡内 ✓ 对勾：品牌蓝 → 状态绿（设计系统对勾语义） */
.v2-page .sw-card ul.sw-tick li::before { color: #1f7d54; }

/* =========================================================
   V2.13 合作页首屏标题文案升级（用户文案，--n 19→29）
   文案：和六翼一起，把前沿AI创新教育
        和优质教育资源，带到更多课堂（第二行渐变）
   手机 360 下 29 字自然折成 4 行，针对性收窄回 2 行；
   仅命中 cooperation 页（.cooperation-page 前缀），
   不影响其他 11 页首屏标题字号。
   ========================================================= */
@media (max-width: 720px) {
  .v2-page.cooperation-page .sw-hero--space .sw-hero-title { font-size: clamp(19px, 5.8vw, 22px); line-height: 1.3; }
}

/* =========================================================
   V2.14 六翼详情页（wing-*.html 共 6 页，从六翼地图点入）
   每翼独立页面，共享一套「高大上」详情组件：
   wing-hero（巨幅标题+序号眉标+面包屑）、wing-quote（一句
   话金句）、wing-points/wing-card（能力卡）、wing-tiles（小
   能力块）、wing-ladder（纵向进阶阶梯/阶段）、wing-flow（闭
   环流程胶囊）、wing-base（深蓝引擎底座）、六翼速跳（复用
   sw-wings-map）。组件类名带 wing- 前缀，仅存在于 6 个详情
   页，不影响其余 15 页。改动后必须升 ?v= 版本号。
   ========================================================= */

/* 详情页字体显示层：装有优质宋体（Noto Serif SC / 思源宋体 / 华文宋体）
   时标题走宋体书卷气，未装则回落无衬线，保证两套系统都好看 */
.wing-detail-page {
  --v2-display: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", var(--sw-font);
}

/* ---- 详情 Hero：暖米白渐变 + 巨幅居中标题 ---- */
.wing-detail-page .sw-hero--space {
  background: linear-gradient(180deg, #fffaf5 0%, #f8efe6 100%);
  border-bottom: 1px solid var(--v2-line);
  padding: clamp(56px, 7vw, 84px) 0 clamp(40px, 5vw, 56px);
}
.wing-detail-page.v2-sec .sw-hero--space .sw-hero-title {
  font-family: var(--v2-display);
  font-size: clamp(38px, 5.2vw, 60px);
  line-height: 1.12;
  letter-spacing: .01em;
}
.wing-detail-page .sw-hero-inner--center .sw-hero-sub {
  margin: 16px auto 0;
  max-width: 700px;
  font-size: 17px;
}
.wing-detail-page .sw-hero-badge { letter-spacing: .04em; }
.wing-detail-page .sw-hero--space .sw-wings-tag--green {
  display: inline-block;
  width: fit-content;
  margin: 18px auto 0;
  font-size: 12px;
}
@media (max-width: 720px) {
  .wing-detail-page.v2-sec .sw-hero--space .sw-hero-title { font-size: clamp(26px, 7vw, 38px); }
  .wing-detail-page .sw-hero-inner--center .sw-hero-sub { font-size: 15px; }
}
.wing-breadcrumb { margin: 0 0 16px; font-size: 13px; color: var(--v2-muted); }
.wing-breadcrumb a { color: var(--v2-blue); font-weight: 600; text-decoration: none; }
.wing-breadcrumb a:hover { color: var(--v2-orange); }

/* ---- 一句话金句：左橙线 + 引号 编辑风 ---- */
.wing-quote {
  position: relative;
  max-width: 860px;
  margin: 0 auto;
  padding: 22px 30px 22px 46px;
  border-left: 3px solid var(--v2-orange);
  border-radius: 0 var(--v2-radius-md) var(--v2-radius-md) 0;
  background: linear-gradient(90deg, rgba(239,141,107,.10), rgba(255,255,255,0));
  font-family: var(--v2-display);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  line-height: 1.7;
  color: var(--v2-title);
}
.wing-quote::before {
  content: "“";
  position: absolute; left: 14px; top: -4px;
  font-size: 44px; font-weight: 800; color: var(--v2-orange); opacity: .45;
  font-family: Georgia, "Times New Roman", serif;
}
@media (max-width: 560px) { .wing-quote { padding: 18px 20px 18px 38px; } }

/* ---- 能力卡 ---- */
.wing-points { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.wing-points--2 { grid-template-columns: repeat(2, 1fr); }
.wing-points--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) { .wing-points, .wing-points--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .wing-points, .wing-points--2, .wing-points--4 { grid-template-columns: 1fr; } }
.wing-card {
  background: #fff;
  border: 1px solid var(--v2-line);
  border-radius: var(--v2-radius-md);
  box-shadow: var(--v2-shadow-sm);
  padding: 26px 24px;
  transition: transform .25s, box-shadow .25s;
}
.wing-card:hover { transform: translateY(-4px); box-shadow: var(--v2-shadow-md); }
.wing-card .n {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 32px; height: 32px; padding: 0 9px; border-radius: 99px;
  background: var(--v2-orange-soft); color: var(--v2-orange);
  font-family: var(--sw-mono); font-weight: 800; font-size: 13px;
  margin-bottom: 14px; letter-spacing: .02em;
}
.wing-card h3 { font-size: 17px; font-weight: 800; color: var(--v2-ink); margin: 0 0 8px; line-height: 1.4; }
.wing-card p { font-size: 14px; line-height: 1.75; color: var(--v2-body); margin: 0; }

/* ---- 小能力块（八能力 / 四赛道等） ---- */
.wing-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
@media (max-width: 900px) { .wing-tiles { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .wing-tiles { grid-template-columns: 1fr; } }
.wing-tile {
  display: flex; align-items: center; gap: 10px;
  background: #fff; border: 1px solid var(--v2-line); border-radius: var(--v2-radius-sm);
  box-shadow: var(--v2-shadow-sm); padding: 14px 16px;
  font-size: 14px; font-weight: 700; color: var(--v2-ink);
  transition: transform .25s, border-color .25s;
}
.wing-tile:hover { transform: translateY(-2px); border-color: var(--v2-orange); }
.wing-tile::before { content: "✓"; color: #1f7d54; font-weight: 800; font-size: 14px; }

/* ---- 纵向进阶阶梯（四层金字塔 / 分学段） ---- */
.wing-ladder { max-width: 780px; margin: 0 auto; }
.wing-ladder .step { position: relative; display: flex; gap: 20px; padding: 0 0 18px; }
.wing-ladder .step:last-child { padding-bottom: 0; }
.wing-ladder .step::before {
  content: ""; position: absolute; left: 22px; top: 50px; bottom: -2px;
  width: 2px; background: linear-gradient(180deg, var(--v2-orange), var(--v2-line));
}
.wing-ladder .step:last-child::before { display: none; }
.wing-ladder .num {
  flex: 0 0 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center; position: relative; z-index: 1;
  background: var(--v2-orange-grad); color: #fff;
  font-family: var(--sw-mono); font-weight: 800; font-size: 15px;
  box-shadow: var(--v2-shadow-cta);
}
.wing-ladder .body {
  flex: 1; background: #fff; border: 1px solid var(--v2-line);
  border-radius: var(--v2-radius-md); box-shadow: var(--v2-shadow-sm);
  padding: 18px 24px; transition: transform .25s, box-shadow .25s;
}
.wing-ladder .body:hover { transform: translateY(-2px); box-shadow: var(--v2-shadow-md); }
.wing-ladder .body h3 { font-size: 17px; font-weight: 800; color: var(--v2-blue); margin: 0 0 6px; }
.wing-ladder .body p { font-size: 14px; line-height: 1.75; color: var(--v2-body); margin: 0; }

/* ---- 闭环流程胶囊 ---- */
.wing-flow { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; max-width: 1000px; margin: 0 auto; }
.wing-flow .f {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 18px; background: #fff; border: 1px solid var(--v2-line);
  border-radius: 999px; box-shadow: var(--v2-shadow-sm);
  font-weight: 700; font-size: 15px; color: var(--v2-ink);
}
.wing-flow .f .n { color: var(--v2-orange); font-family: var(--sw-mono); font-weight: 800; font-size: 13px; }

/* ---- 深蓝引擎底座（成长底座 / 数据与合规） ---- */
.wing-base { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
@media (max-width: 900px) { .wing-base { grid-template-columns: 1fr; } }
.wing-base .b {
  background: rgba(255, 255, 255, .06);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--v2-radius-sm);
  padding: 20px 22px;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  transition: transform .25s, background .25s;
}
.wing-base .b:hover { transform: translateY(-3px); background: rgba(255, 255, 255, .09); }
.wing-base .b h4 { color: #fff; font-size: 15px; font-weight: 800; margin: 0 0 8px; display: flex; align-items: center; gap: 8px; }
.wing-base .b h4 .ic { color: #7ea2ff; font-size: 18px; }
.wing-base .b p { color: #b9c2da; font-size: 13px; line-height: 1.75; margin: 0; }

/* ---- 六翼速跳：复用六翼地图 ---- */
.wing-detail-page .sw-wings-map { margin-top: 4px; }
.wing-jump-hint { text-align: center; font-size: 13px; color: var(--v2-muted); margin-top: 16px; }

/* 减弱动态：详情页组件关闭悬停/进场过渡 */
@media (prefers-reduced-motion: reduce) {
  .wing-detail-page .wing-card,
  .wing-detail-page .wing-tile,
  .wing-detail-page .wing-ladder .body,
  .wing-detail-page .wing-base .b { transition: none; }
  .wing-detail-page .wing-card:hover,
  .wing-detail-page .wing-tile:hover,
  .wing-detail-page .wing-ladder .body:hover,
  .wing-detail-page .wing-base .b:hover { transform: none; }
}

/* =========================================================
   C2.16 全面优化：移动端/平板适配 + 浏览器兼容加固
   根因（用户反馈"手机平板打开变形、有些浏览器打不开"）：
   ① 正文默认 opacity:0，只有 site.js 成功运行时才加 .is-in 显示；
      脚本被拦/旧浏览器解析失败 → 整页空白像"打不开"。
   ② site.js 用了箭头函数/模板串等新语法，旧浏览器整段解析失败。
   ③ index 的 sw-engine-partners 手机端仍 3 列（只有 wings 页有单列规则）。
   方案：
   - 正文默认可见；仅当脚本成功给 <html> 打上 sw-js 标记后才走淡入动画。
   - 打字机同理：无 sw-js 时标题全字直显（不打字），避免空白标题。
   - engine-partners 全 v2 页 ≤720px 单列（修 index 手机变形）。
   - 卡片/标题溢出兜底 + 装饰光晕小屏收缩 + body 横向裁切兜底。
   site-preview.js 已同步升级（ES5 + sw-js + 分项 try/catch + 兜底定时器）。
   改动后必须升 ?v= 版本号。C2.15 → C2.16。
   ========================================================= */

/* ---- ① 内容默认可见，脚本成功后才淡入 ---- */
.sw-hp-reveal { opacity: 1; transform: none; }
html.sw-js .sw-hp-reveal {
  opacity: 0; transform: translateY(28px);
  transition: opacity .6s ease, transform .6s ease;
}
html.sw-js .sw-hp-reveal.is-in { opacity: 1; transform: translateY(0); }

/* ---- ② 打字机兜底：无 sw-js（脚本被拦/解析失败）时全字直显 ---- */
html:not(.sw-js) .t-type .t-char { visibility: visible; animation: none; opacity: 1; }
html:not(.sw-js) .t-type .t-caret { display: none; }

/* ---- ③ 深蓝三卡 ≤720px 单列（修 index 手机端变形；wings 已有同规则，幂等） ---- */
@media (max-width: 720px) {
  .v2-page .sw-engine-partners { grid-template-columns: 1fr; }
}

/* ---- ④ 卡片/标题长文本溢出兜底（真机衬线字体实测字宽更宽，防撑破） ---- */
.v2-page .sw-card, .v2-page .sw-pcard, .v2-page .sw-price,
.v2-page .sw-cta, .v2-page .sw-hero-title,
.wing-detail-page .wing-card, .wing-detail-page .wing-tile,
.wing-detail-page .wing-ladder .body, .wing-detail-page .wing-quote {
  overflow-wrap: break-word; word-wrap: break-word;
}

/* ---- ⑤ 装饰光晕小屏收缩 + 全站横向裁切兜底（光晕被绝对定位裁切，不产生滚动条） ---- */
@media (max-width: 720px) {
  .sw-c2-beam { width: 220px; height: 220px; right: -70px; top: -80px; filter: blur(44px); }
  .sw-c2-beam2 { width: 220px; height: 220px; left: -60px; bottom: -70px; filter: blur(40px); }
}
html, body { max-width: 100%; overflow-x: clip; }
@supports not (overflow-x: clip) { html, body { overflow-x: hidden; } }
