/* ═══════════ 设计令牌（Dobot US 白蓝主题 · Inter 自托管无衬线） ═══════════ */
/* Inter 可变字体（latin 子集，400-700 一份文件；中文回退系统字体），替代 Google Fonts 外链 */
@font-face{font-family:'Inter';font-style:normal;font-weight:400 700;font-display:swap;src:url('../fonts/inter-var.woff2') format('woff2')}
:root{
  --bg:#ffffff;
  --bg-2:#f4f7fb;
  --panel:#ffffff;
  --panel-2:#f0f4f8;
  --ink:#1a1a2e;
  --ink-2:#32373c;
  --g500:#6b7280;
  --g400:#9ca3af;
  --accent:#003390;       /* ARS|DOBOT 联合 LOGO 皇家蓝（品牌主色） */
  --accent-2:#1f63c4;     /* 亮皇家蓝（hover 态） */
  --accent-dim:rgba(0,51,144,.10);
  --accent-line:rgba(0,51,144,.35);
  --accent-ghost:rgba(0,51,144,.14);  /* 方案A：区头幽灵大编号颜色 */
  --tech:#00d084;       /* dobot accent green */
  --line:rgba(0,0,0,.08);
  --hover-bg:#f7fafd;     /* 方案A：列表行/卡片 hover 底色 */
  --container:1200px;
  --radius:8px;           /* 方案A：圆角收敛（图片/媒体 8px，文字类元素 0） */
  --font:'Inter',-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --sec-gap:56px;         /* 方案A：区块纵向节奏收敛（原 110px） */
  --ease-out:cubic-bezier(.16,1,.3,1);
  --banner-h:460px;       /* 2026-09-28 横幅与首页 Hero 等高统一：下限跟随首页文案栏自然高（实测 452-459），≥1200 全部页面等高；
                             唯一例外 education 文案最长（自然高 516-523）自然上浮；901-1199 档为 450。原 530/520 档整体比首页高约 70px，已弃 */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.75;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.container{max-width:var(--container);margin:0 auto;padding:0 32px}

/* ═══════════ 通用：小节标题 / 按钮 ═══════════ */
.eyebrow{display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--accent)}
.sec-head{max-width:760px;margin-bottom:40px}
.sec-head h2,.va-head h3{font-size:clamp(22px,2vw,28px);font-weight:650;letter-spacing:-.01em;line-height:1.2;margin-top:0}
.sec-head .desc{margin-top:16px;color:var(--g500);font-size:13.5px}
.sec-head--center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head--center .eyebrow{justify-content:center}
.sec-head--center .eyebrow::before{display:none}
.sec-head--center .eyebrow::after{content:"";width:34px;height:1px;background:var(--accent)}
/* 方案A 区头③ 幽灵大编号（折中版）：编号+主标题同行基线对齐，副标题固定第二行左对齐；
   显式覆盖基础 .sec-head 的纵向堆叠（flex-direction:row 必须显式声明，否则编号/标题/副标题仍纵向排列） */
.va-head{display:flex;flex-direction:row;align-items:baseline;flex-wrap:wrap;column-gap:20px;row-gap:8px;margin-bottom:40px}
.va-head .no{font-size:52px;line-height:1;font-weight:700;letter-spacing:-.01em;color:var(--accent-ghost);flex:none}
.va-head h3{width:auto;flex:0 1 auto;min-width:0}
.va-head .lead{flex:1 1 100%;width:auto;margin-top:0;font-size:13.5px;color:var(--g500);max-width:640px}
/* 居中变体（Why Us 等无编号居中区头）：编号隐藏，标题水平居中 */
.va-head.va-head--center{justify-content:center;margin-left:auto;margin-right:auto}
.va-head.va-head--center h3{text-align:center}
/* 方案A：区头标题单行兜底（≥1200px 桌面；≤1200px 允许自然折行；overflow:hidden 裁剪防溢出，禁用 ellipsis） */
@media (min-width:1200px){
  .va-hero-copy h1,.va-head h3{white-space:nowrap;overflow:hidden}
}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 28px;border-radius:2px;font-size:15px;font-weight:600;letter-spacing:.02em;transition:background .25s var(--ease-out),border-color .25s,color .25s;border:1px solid transparent;cursor:pointer}
.btn-accent{background:var(--accent);color:#ffffff}
.btn-accent:hover{background:var(--accent-2)}
.btn-ghost{border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
.btn .arr{transition:transform .25s var(--ease-out)}
.btn:hover .arr{transform:translateX(4px)}
.play-ico{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1.5px solid currentColor;border-radius:50%;font-size:8px;padding-left:2px}

/* ═══════════ 顶部导航 ═══════════ */
.header{position:sticky;top:0;z-index:100;background:#ffffff;border-bottom:1px solid var(--line);transition:box-shadow .3s}
.header.scrolled{box-shadow:0 8px 32px rgba(0,0,0,.10)}
/* 导航高度与 LOGO 尺寸：定高 84px/43px 不随滚动收缩（2026-10-07 用户反馈取消高矮动画）——
   104px 高态下 57px 高的 ARS|DOBOT 横版 LOGO 宽约 305px，挤压一级导航触发 More 收纳；
   43px 高 LOGO 宽约 230px，1200px 容器内 7 个一级栏目 + 右侧操作区一屏放下。
   scrolled 类现仅驱动 .header 底部投影，无任何高度/尺寸响应 */
.nav{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{display:inline-flex;align-items:center}
.logo img{height:43px;width:auto;transition:filter .3s}
.logo:hover img{filter:brightness(1.14)}
/* 滚动进度线（header 底缘，随全页滚动 scaleX；方案A 去渐变，实色 accent） */
.scroll-progress{position:absolute;left:0;bottom:-1px;height:2px;width:100%;z-index:101;background:var(--accent);transform:scaleX(0);transform-origin:0 50%;pointer-events:none}
.nav-links{display:flex;align-items:center;gap:34px}
.nav-links>li{position:relative}
.nav-links a{font-size:14.5px;font-weight:500;color:var(--ink-2);transition:color .2s}
/* hover 反馈：字色→accent（原 ink-2→ink 变化弱到近乎无感）——导航悬停不再死板 */
.nav-links a:hover{color:var(--accent)}
.nav-links a.active{color:var(--ink)}
/* 悬停/激活共用一根 2px accent 直角下划线（方案A 去圆角/渐变）：默认 scaleX(0)，hover/active 自左展开（hover 预演选中态） */
.nav-links>li>a{position:relative}
.nav-links>li>a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .3s var(--ease-out)}
.nav-links>li>a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
/* z-index 102：进度条(101)之上——下拉面板探入页头下缘区域，进度条可见（已滚动）时会横穿面板顶部 */
.nav-dropdown{position:absolute;top:calc(100% + 16px);left:-16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:10px;min-width:168px;opacity:0;visibility:hidden;transform:translateY(6px);transition:all .25s var(--ease-out);box-shadow:0 20px 48px rgba(0,0,0,.14);z-index:102}
/* 下拉与触发行 16px 空隙的隐形桥：指针下移穿越空隙不丢 li:hover，防下拉闪烁闭合（≤900 抽屉态不需要，见断点块） */
.nav-dropdown::before{content:"";position:absolute;left:0;right:0;top:-17px;height:17px}
.nav-links>li:hover .nav-dropdown{opacity:1;visibility:visible;transform:translateY(0)}
.nav-dropdown a{display:block;padding:9px 14px;border-radius:8px;font-size:14px;transition:background .2s,color .2s,padding-left .25s var(--ease-out)}
/* 菜单项 hover：淡蓝底 + accent 字色 + 左移滑入（与页脚列表滑线 hover 同语言）；active 标记当前子栏目 */
.nav-dropdown a:hover{background:var(--accent-dim);color:var(--accent);padding-left:20px}
.nav-dropdown a.active{background:var(--accent-dim);color:var(--accent);font-weight:600}
.nav-right{display:flex;align-items:center;gap:20px}
.lang-switch{font-size:13px;color:var(--g500);font-weight:600;letter-spacing:.06em;white-space:nowrap}
.lang-switch b{color:var(--accent)}
.lang-switch .lang-other{color:var(--g500);transition:color .2s}
.lang-switch .lang-other:hover{color:var(--accent)}
.nav-right .btn{padding:11px 24px;font-size:13.5px}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.nav-toggle span{width:22px;height:2px;background:var(--ink);transition:all .25s var(--ease-out)}
.nav-toggle.active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.active span:nth-child(2){opacity:0}
.nav-toggle.active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ═══════════ Hero（方案A：va-hero 双栏 + 中缝竖分割 + 底部 hairline 收边） ═══════════ */
.hero{position:relative;background:var(--bg)}
.va-hero{display:grid;grid-template-columns:1.12fr .88fr;border-bottom:1px solid var(--line);min-height:var(--banner-h)}
/* 横幅左栏（2026-09-20 空间利用率优化）：非等宽间距节奏 16/24/46——标题组内收紧、
   标题→描述拉开、CTA 前留最大呼吸；上下 padding 64→56 抵消间距增量，横幅总高基本不变。
   2026-09-28 挂 min-height 后对齐内页文案栏（2026-09-23 先例）flex 列居中 */
.va-hero-copy{padding:56px 48px;border-right:1px solid var(--line);min-width:0;display:flex;flex-direction:column;justify-content:center}
.va-hero-copy .eyebrow::before{width:34px}
/* Hero 标题收敛（方案A 定稿取值，多轮实测保证英文单行；层级有意低于内页 page-hero——首页视觉主角是右栏媒体区与 accent-line 副行） */
.va-hero-copy h1{font-size:clamp(26px,2.4vw,34px);line-height:1.14;letter-spacing:-.015em;margin-top:16px;font-weight:650;color:var(--ink)}
.va-hero-copy h1 .accent-line{display:block;color:var(--accent);font-size:.85em;font-weight:650}
.va-hero-copy .hero-sub{margin-top:24px;max-width:520px;color:var(--g500);font-size:15px;line-height:1.9}
.va-hero-copy .hero-sub b{color:var(--ink-2);font-weight:600}
.va-hero-actions{margin-top:30px;display:flex;flex-wrap:wrap;gap:14px}
/* 右栏媒体：图片/轮播纵向撑满与左栏文案等高（不留底部空档），aspect-ratio 退为单列态与最小高度基准；
   右下角 serial 蓝底白字角标：有横幅时读当前帧标题（tpl 渲染 + site.js 轮播联动），无横幅回退静态铭牌 */
/* 画廊式 Hero（2026-09-19 定稿）：纵向 flex——底部缩略图导航条贴底补位 */
.va-hero-fig{position:relative;display:flex;flex-direction:column;align-self:stretch;min-width:0;background:var(--panel-2)}   /* min-width:0：阻断 swiper slide（flex-shrink:0）经 min-content 撑爆 1fr 轨道的正反馈 */
.va-hero-fig .hero-media{position:relative;margin:0;flex:1 1 auto;aspect-ratio:16/10;min-height:0;overflow:hidden}
.va-hero-fig .hero-stage{position:relative;height:100%}
.va-hero-fig .hero-stage .mask-img{position:absolute;inset:0}
.va-hero-fig .hero-stage .mask-img img{width:100%;height:100%;object-fit:cover}
.va-hero-fig .hero-stage>img{width:100%;height:100%;object-fit:cover}
/* 左上角 serial 蓝底白字角标（2026-09-24 复位：右下角方案试用后还原）：有横幅时读当前帧标题（tpl 渲染 + site.js 轮播联动），
   无横幅回退静态铭牌 */
.va-hero-fig .serial{position:absolute;left:0;top:0;z-index:6;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--accent);color:#fff;font-size:11px;font-weight:600;letter-spacing:.2em;padding:6px 14px}
/* Hero 横幅轮播（2026-09-24 Swiper 改造）：位移式切换替代纯 fade，移动端支持滑动跟手；
   .swiper/.swiper-wrapper/.swiper-slide 布局由 swiper-bundle.min.css 接管，此处仅约束尺寸与媒体填充 */
.hero-carousel{position:relative;width:100%;height:100%;min-height:inherit;overflow:hidden}
.hero-frame{height:100%}
.hero-frame img,.hero-frame video{display:block;width:100%;height:100%;object-fit:cover}
.hero-frame.swiper-slide-active img{animation:kenBurns 22s ease-in-out infinite alternate}
@keyframes kenBurns{from{transform:scale(1) translate(0,0)}to{transform:scale(1.075) translate(-1.4%,1.6%)}}
/* 翻页箭头已移除（2026-09-24 评估：参考 Apple/Stripe 等官网 hero 轮播惯例，大图自动轮播不放两侧箭头，
   翻页交互收敛为 指示条点击 + 移动端滑动手势 + 键盘方向键 + 自动轮播） */
/* 底部分段导航条：多图时呈现，每帧一段通栏短横条（当前段 accent 实色，其余浅蓝），点击直达；
   bullets 由 Swiper pagination renderBullet 生成（swiper-pagination-bullet 类），no-JS 下隐藏空条 */
html:not(.has-js) .hero-dashes{display:none}
.hero-dashes{display:flex;gap:8px;padding:14px 16px;background:#ffffff;border-top:1px solid var(--line)}
.hero-dashes button{flex:1;height:4px;padding:0;border:none;border-radius:0;background:var(--accent-dim);cursor:pointer;transition:background .25s,height .2s}
.hero-dashes button:hover{background:var(--accent-line)}
.hero-dashes button.swiper-pagination-bullet-active{background:var(--accent);height:5px}

/* ═══════════ 区块通用 ═══════════ */
.section{padding:var(--sec-gap) 0}
.section--panel{background:var(--bg-2)}
/* 方案A 分栏区块：56px 纵向节奏 + 底部 hairline 收边（≤900px 内边距收敛见响应式段） */
.va-sec{padding:var(--sec-gap) 0;border-bottom:1px solid var(--line)}
/* 锚点定位补偿：sticky 导航(104px/收起84px)+进度线(2px)，防止圆点导航/导航链接跳转后内容被头部遮挡 */
section[id],main[id],footer[id]{scroll-margin-top:112px}

/* ═══════════ 01 平台产品（方案A：棚拍白底基准——去卡片编辑式，hover 仅图片亮度提升） ═══════════ */
/* 分组头：组间 hairline 分隔（与 productList 系列分组的 series-section 分隔线同一语言） */
.group-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:56px 0 28px;padding-top:48px;border-top:1px solid var(--line)}
.group-head:first-of-type{margin-top:0;padding-top:0;border-top:0}
.group-head .group-va-head{margin-bottom:0}
.page-hero h1 .accent-line{display:block}
/* 小 ghost 按钮（group-head / sec-more 用） */
.btn.btn-ghost.btn-sm{padding:10px 22px;font-size:13.5px;border:1px solid var(--line);background:transparent;color:var(--ink-2);border-radius:2px;transition:border-color .25s,color .25s,background .25s}
.btn.btn-ghost.btn-sm:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}
/* 方案区底部查看全部 */
.sec-more{display:flex;justify-content:center;margin-top:52px}
.p-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 26px}
/* 产品小卡去卡片化（v2.14 方案A 编辑式统一）：文字无卡片容器（5.4 棚拍基准），
   图块 --panel-2 底直角；图走 reveal--mask 遮罩滑出（p-fig 兼作 mask-img），卡内文字 reveal-sub 级联 */
.p-card{position:relative}
.p-card .p-fig{position:relative;overflow:hidden;aspect-ratio:1/0.9;background:var(--panel-2)}
.p-card img{width:100%;height:100%;object-fit:cover;transition:filter .3s}
/* hover 仅图片轻微亮度提升（棚拍基准；禁止 scale 放大） */
.p-card:hover img{filter:brightness(1.03)}
.p-card .p-body{padding:16px 0 0}
.p-card h4{font-size:16.5px;font-weight:650;letter-spacing:.01em;line-height:1.45;min-height:calc(1.45em*2);transition:color .2s}
.p-card h4 .model{color:var(--accent);font-variant-numeric:tabular-nums}
.p-card p{margin-top:8px;font-size:13.5px;color:var(--g500);line-height:1.7;min-height:calc(1.7em*3)}
.p-card .p-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;font-weight:600;color:var(--ink-2);transition:color .2s}
.p-card .p-link::after{content:"";position:absolute;inset:0;z-index:1}
.p-card:hover .p-link{color:var(--accent)}
.p-card:hover h4{color:var(--accent)}
.p-card:hover .p-link .arr{transform:translateX(4px)}
.p-card .p-link .arr{transition:transform .25s var(--ease-out)}

/* ═══════════ 02 解决方案 / 实验室（方案A 行式列表：编号列 + 标题描述 + 右侧缩略图，行间 hairline） ═══════════ */
/* 行 hover 底色不贴文字：行内左右 padding 留白（--row-inset，≤900px 16px / ≤560px 12px），
   与 5.3 course-card / 5.6 event-card 同款处理——内容左缘随行盒内缩，hairline 仍按容器内容宽 */
.sol-list{border-top:1px solid var(--line);--row-inset:24px}
.sol-row{position:relative;display:grid;grid-template-columns:88px 1fr 300px;column-gap:28px;align-items:center;padding:30px var(--row-inset);border-bottom:1px solid var(--line);transition:background .25s}
.sol-row:hover{background:var(--hover-bg)}
/* 幽灵编号列 */
.sol-no{font-size:40px;font-weight:700;line-height:1;color:var(--accent-ghost);font-variant-numeric:tabular-nums;pointer-events:none}
.sol-body{min-width:0;padding:0}
.sol-body h3{font-size:17px;font-weight:650;letter-spacing:.01em;color:var(--ink)}
.sol-body>p{margin-top:8px;color:var(--g500);font-size:13px;line-height:1.7;max-width:560px}
.sol-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sol-tags span{font-size:11.5px;letter-spacing:.04em;color:var(--ink-2);border:1px solid var(--line);padding:3px 10px;transition:border-color .25s,color .25s}
.sol-row:hover .sol-tags span{border-color:var(--accent-line);color:var(--accent-2)}
.sol-body .sol-link{position:relative;align-self:flex-start;display:inline-flex;align-items:center;gap:7px;margin-top:14px;font-size:12.5px;font-weight:600;color:var(--accent);transition:color .25s}
.sol-body .sol-link .arr{transition:transform .25s var(--ease-out)}
.sol-row:hover .sol-link{color:var(--accent-2)}
.sol-row:hover .sol-link .arr{transform:translateX(4px)}
/* 右侧缩略图（--panel-2 底兜底：contentThumb 缺失/过曝时版面不空） */
.sol-fig{width:300px;aspect-ratio:16/10;overflow:hidden;background:var(--panel-2);position:relative}
.sol-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* 整行可点击：透明链接铺满（hover 底色 + 链接跳转） */
.sol-row .sol-card-link{position:absolute;inset:0;z-index:2}
/* 无图规格行（Robotics Labs：右侧规格面板顶替图位） */
.sol-row--noimg{grid-template-columns:88px 1fr 300px}
.sol-row--solo{grid-template-columns:88px 1fr}
/* "Applies to" 勾选清单（有图/无图两种行共用） */
.sol-applies{margin-top:12px}
.sol-applies h4,.sol-spec h4{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--g400)}
.sol-applies li{position:relative;padding-left:22px;margin-top:6px;font-size:13px;color:var(--ink-2);line-height:1.6}
.sol-applies li::before{content:"";position:absolute;left:0;top:4px;width:13px;height:13px;border-radius:0;background:var(--accent-dim)}
.sol-applies li::after{content:"";position:absolute;left:3.5px;top:7.5px;width:5.5px;height:3px;border-left:1.5px solid var(--accent);border-bottom:1.5px solid var(--accent);transform:rotate(-45deg)}
/* 右侧规格面板：交付模式徽标 + 设备清单（hairline 面板，去阴影） */
.sol-spec{align-self:center;background:var(--panel-2);border:1px solid var(--line);padding:20px 22px}
.sol-spec-mode{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-dim);padding:3px 10px}
.sol-spec h4{margin-top:14px}
.sol-spec li{position:relative;padding-left:14px;margin-top:6px;font-size:12.5px;color:var(--g500);line-height:1.6}
.sol-spec li::before{content:"";position:absolute;left:0;top:.6em;width:4px;height:4px;background:var(--accent)}

/* ═══════════ 03 数据统计（滚动计数；方案A 扁平 hairline 带） ═══════════ */
.records-band{position:relative;overflow:hidden;background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.records-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.record{padding:48px 24px;border-left:1px solid var(--line);text-align:center}
.record:first-child{border-left:0}
.record .num{font-size:clamp(44px,4.6vw,64px);font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.05;color:var(--accent)}
.record .num small{font-size:.5em;font-weight:600}
.record .label{margin-top:12px;font-size:13.5px;color:var(--g500);letter-spacing:.03em}
/* 数字错峰弹入（滚动进入视口时触发，配合 counter 滚动计数） */
.record.in .num{animation:numPop .8s var(--ease-out) both;animation-delay:calc(var(--i,0)*140ms)}
@keyframes numPop{from{opacity:0;transform:translateY(26px) scale(.86)}to{opacity:1;transform:none}}

/* ═══════════ CTA（栏目页收尾条：白底 + 上下 hairline，去光晕） ═══════════ */
.cta{position:relative;text-align:center;padding:96px 0;background:var(--bg);border-bottom:1px solid var(--line)}
.cta h2{position:relative;font-size:clamp(22px,2.2vw,30px);font-weight:650;letter-spacing:-.01em}
.cta p{position:relative;margin:16px auto 0;max-width:540px;color:var(--g500);font-size:14.5px}
.cta .btn{position:relative;margin-top:32px}

/* ═══════════ 页脚（方案A F1 浅色编辑式：--bg-2 底 + 列间 hairline 竖线 + kicker 标签） ═══════════ */
.footer{position:relative;background:var(--bg-2);color:var(--ink-2);border-top:1px solid var(--line)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.25fr;padding:52px 0 44px}
.footer-grid>div{padding:0 32px;border-left:1px solid var(--line)}
.footer-grid>div:first-child{padding-left:0;border-left:0}
/* Brand 列：蓝色版联合 LOGO + 定位语 + Authorised Partner 徽章（白底胶囊——全站直角语言唯一圆角例外，vf1 定稿） */
.footer .f-brand .logo{margin-bottom:0;display:inline-flex}
.footer .logo img{height:44px;width:auto}
.f-brand p{margin-top:16px;font-size:13px;color:var(--g500);line-height:1.75;max-width:300px}
.f-badge{display:inline-flex;align-items:center;gap:9px;margin-top:16px;padding:5px 14px 5px 6px;border:1px solid rgba(0,51,144,.28);border-radius:999px;background:#fff}
.f-badge b{font-size:10px;letter-spacing:.06em;background:var(--accent);color:#fff;border-radius:999px;padding:3px 9px}
.f-badge span{font-size:10.5px;font-weight:600;letter-spacing:.14em;color:var(--accent)}
/* 列标题：accent 短横线 + 深色大写字（与灰色列表文字拉开层次） */
.footer h5{display:flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);font-weight:700;margin-bottom:20px}
.footer h5::before{content:"";flex:none;width:16px;height:2px;background:var(--accent)}
/* 分组叠放列（Products + Company） */
.footer .grp+.grp{margin-top:26px}
.footer ul{list-style:none;padding:0;margin:0}
.footer li{margin-bottom:12px;font-size:13.5px;color:var(--ink-2)}
/* 列表链接 hover：accent 短线滑入推字 + 变色（contact 列不参与，走下方独立交互） */
.footer li a{color:var(--ink-2);text-decoration:none;transition:color .18s var(--ease-out)}
.footer li a:hover{color:var(--accent)}
.footer ul:not(.f-contact) li a::before{content:"";display:inline-block;vertical-align:middle;width:0;height:2px;background:var(--accent);transition:width .22s var(--ease-out),margin-right .22s var(--ease-out)}
.footer ul:not(.f-contact) li a:hover::before{width:10px;margin-right:8px}
/* Contact 列：li 与 a 同 gap 保证四行图标-文字间距统一；文字颜色与导航列一致；
   地址/电话整行可点复制（.f-copy + data-copy，"已复制"气泡由 .copied::after 呈现），WhatsApp/Email 保持链接跳转 */
.footer .f-contact li{position:relative;display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--ink-2);line-height:1.7}
.footer .f-contact a{display:flex;gap:12px;align-items:flex-start;color:inherit;transition:color .18s var(--ease-out),transform .25s var(--ease-out)}
.footer .f-contact a:hover{color:var(--accent);transform:translateX(4px)}
.footer .f-copy{cursor:pointer;transition:color .18s var(--ease-out),transform .25s var(--ease-out)}
.footer .f-copy:hover{color:var(--accent);transform:translateX(4px)}
/* hover 行尾可交互提示（复制行「复制」/外链行「↗」淡入右滑）——须置于 .copied 气泡规则之前：两者同特异性，
   点击复制后气泡整体覆盖提示（content/定位/配色），气泡补 opacity:1 抵消提示的默认 opacity:0 */
.footer .f-copy::after{content:"复制";flex:none;align-self:center;font-size:11px;letter-spacing:.05em;color:var(--accent);opacity:0;transform:translateX(-4px);transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}
.footer .f-contact a::after{content:"→";flex:none;align-self:center;font-size:12px;line-height:1;color:var(--accent);opacity:0;transform:translateX(-4px);transition:opacity .22s var(--ease-out),transform .22s var(--ease-out)}
.footer .f-copy:hover::after,.footer .f-contact a:hover::after{opacity:1;transform:none}
.footer .f-copy.copied::after{content:attr(data-tip);position:absolute;left:24px;bottom:calc(100% + 4px);background:var(--ink);color:#fff;font-size:11px;line-height:1;padding:6px 9px;white-space:nowrap;z-index:6;opacity:1;transform:none;animation:ftCopy .18s var(--ease-out)}
@keyframes ftCopy{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.footer .f-contact .ico{flex:0 0 auto;width:1.1em;height:1.1em;margin-top:.26em;color:var(--accent);fill:none;transition:transform .25s var(--ease-out),color .18s var(--ease-out)}
.footer .f-copy:hover .ico,.footer .f-contact a:hover .ico{color:var(--accent-2);transform:scale(1.18)}
/* 底部条：白底 + 上 hairline（左版权 / 右 ICP + Back to top） */
.footer-bottom{background:var(--bg);border-top:1px solid var(--line);font-size:12.5px;color:var(--g400)}
.footer-bottom .container{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:20px;padding-bottom:20px}
.footer-bottom .r{display:flex;gap:22px;align-items:center}
.footer-bottom a{color:var(--g500)}
.footer-bottom a:hover{color:var(--accent)}

/* ═══════════ Header 搜索（icon + pop form） ═══════════ */
.nav-search{position:relative}
.search-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;background:transparent;border:0;cursor:pointer;color:var(--ink-2);transition:background .2s,color .2s}
.search-toggle:hover{background:var(--panel-2);color:var(--accent)}
.search-toggle svg{width:18px;height:18px}
.search-pop{position:absolute;right:0;top:calc(100% + 14px);width:360px;background:#ffffff;border:1px solid var(--line);border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.12);padding:14px;display:flex;gap:10px;opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .22s var(--ease-out),transform .22s var(--ease-out);z-index:102}
.search-pop[aria-hidden="false"]{opacity:1;transform:none;pointer-events:auto}
.search-pop input{flex:1;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:8px;font-size:14px;background:var(--bg-2);outline:none;transition:border-color .2s}
.search-pop input:focus{border-color:var(--accent)}

/* ═══════════ 滚动揭示（fail-open：仅 has-js 会话隐藏，JS 异常时 catch 全量显示） ═══════════ */
/* 方案A：基础入场位移收敛 28px → 18px（0.8s ease-out，--i 70ms 错峰），用于纯文字块/Stats 等无媒体元素 */
.has-js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out);transition-delay:calc(var(--i,0)*70ms)}
.has-js .reveal.in{opacity:1;transform:none}

/* 图片遮罩滑出（方案二「遮罩滑升」）：容器随 .reveal 体系触发，img 遮罩内滑出；scale 预放大防露边；
   filter 过渡保留给 hover 亮度微调（错峰 delay 仅作用于 transform） */
.has-js .reveal--mask .mask-img{overflow:hidden}
.has-js .reveal--mask .mask-img>img{transform:translateY(112%) scale(1.06);transition:transform 1s var(--ease-out) calc(var(--i,0)*110ms),filter .3s}
.has-js .reveal--mask.in .mask-img>img{transform:none}
/* 次级元素错峰淡入：依赖父级 .in 级联（图先文后主次），无需单独 observe */
.has-js .reveal-sub{opacity:0;transform:translateY(16px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:calc(.3s + var(--i,0)*80ms)}
.has-js .in .reveal-sub,.has-js .reveal-sub.in{opacity:1;transform:none}
/* 上滚反向入场（2026-09-28）：JS 按滚动方向在入场前挂 .rev，初始位移翻转到上方——上滚回看时
   元素/图片遮罩/次级文字从上缘向下落入，与滚动方向同向；:not(.in) 保证 .in 后规则退出，
   同时使其优先级压过初始态规则，放置位置与书写顺序无关 */
.has-js .reveal.rev:not(.in){transform:translateY(-18px)}
.has-js .reveal--mask.rev:not(.in) .mask-img>img{transform:translateY(-112%) scale(1.06)}
.has-js .rev:not(.in) .reveal-sub:not(.in){transform:translateY(-16px)}
/* 入场冻结（freeze）：翻转初始态（挂/摘 .rev）必须关着过渡做——开着过渡翻转，翻转本身会生成一个
   中间过渡，后续 .in 的过渡起点按规范取其 t≈0 的当前值（旧位置），方向翻转失效；
   视口外回退产生的在途回程过渡同样在入场时被 freeze 掐断，保证起点干净 */
.has-js .freeze,.has-js .freeze .mask-img>img,.has-js .freeze .reveal-sub{transition:none}

/* ═══════════ 方案A：章节标题遮罩逐行揭示 + 金线生长（.lines 复用 .reveal 的 .in 触发，fail-open） ═══════════ */
.has-js .lines{opacity:1;transform:none;transition:none}
.has-js .lines .mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.has-js .lines .mask>span{display:block;transform:translateY(115%);transition:transform .85s var(--ease-out)}
.has-js .lines.in .mask>span{transform:none}
.has-js .lines .eyebrow .mask>span{transition-delay:0s}
.has-js .lines h2 .mask>span{transition-delay:.09s}
.has-js .lines .desc .mask>span{transition-delay:.18s}
.has-js .lines h1 .mask>span{transition-delay:.09s}
.has-js .lines h1 .accent-line .mask>span{transition-delay:.18s}
.has-js .lines .hero-sub .mask>span{transition-delay:.26s}
.has-js .lines .hero-actions .mask>span{transition-delay:.34s}
.has-js .lines .hero-actions .mask>span{display:flex;gap:14px;flex-wrap:wrap}
.has-js .lines .eyebrow::before{width:0;transition:width .55s var(--ease-out) .12s}
.has-js .lines.in .eyebrow::before{width:34px}
.has-js .sec-head--center.lines .eyebrow::after{width:0;transition:width .55s var(--ease-out) .12s}
.has-js .sec-head--center.lines.in .eyebrow::after{width:34px}

/* ═══════════ 方案C：右侧章节圆点导航（桌面端；方案A 微调：6px 方点直角语言，激活实心 accent，去玻璃拟态底座） ═══════════ */
.dot-nav{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;align-items:center;gap:16px;padding:16px 10px;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:0 4px 14px rgba(13,32,58,.10)}
.dot-nav::before,.dot-nav::after{content:"";position:absolute;left:50%;top:23px;bottom:23px;width:2px;transform:translateX(-50%);pointer-events:none}
.dot-nav::before{background:rgba(0,51,144,.12)}
.dot-nav::after{background:var(--accent);transform:translateX(-50%) scaleY(var(--dn-progress,0));transform-origin:50% 0}
.dot-nav a{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;width:14px;height:14px}
.dot-nav a i{width:6px;height:6px;background:rgba(0,51,144,.32);box-shadow:0 0 0 3px rgba(255,255,255,.9);transition:background .25s,box-shadow .25s}
.dot-nav a span{position:absolute;right:calc(100% + 12px);top:50%;font-size:12px;font-weight:600;color:var(--ink);letter-spacing:.08em;background:#ffffff;border:1px solid var(--line);padding:4px 12px;white-space:nowrap;opacity:0;transform:translate(6px,-50%);transition:opacity .25s,transform .25s;pointer-events:none}
.dot-nav a:hover span,.dot-nav a:focus-visible span{opacity:1;transform:translate(0,-50%)}
.dot-nav a:hover i{background:var(--accent-2)}
.dot-nav a.active i{background:var(--accent)}
.dot-nav a.active span{color:var(--accent)}

/* ═══════════ 动效降级（reduced-motion） ═══════════ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
  .rise{animation:none}
  .has-js .reveal{opacity:1;transform:none;transition:none}
  .has-js .lines .mask>span{transform:none;transition:none}
  .has-js .lines .eyebrow::before,.has-js .sec-head--center.lines .eyebrow::after{width:34px;transition:none}
  /* 新增组件（遮罩滑出/次级错峰）归位：内容直接可见 */
  .has-js .reveal--mask .mask-img>img{transform:none;transition:none}
  .has-js .reveal-sub{opacity:1;transform:none;transition:none}
  /* .rev 反向初始位移（比上方归位规则优先级高）同样归位，防止 reduce 下内容停留在偏移态 */
  .has-js .reveal.rev:not(.in){transform:none}
  .has-js .reveal--mask.rev:not(.in) .mask-img>img{transform:none}
  .has-js .rev:not(.in) .reveal-sub:not(.in){transform:none}
}

/* ═══════════ 响应式（方案A 断点归并：1200 / 900 / 560 三档） ═══════════ */
/* 901–1199px 小桌面：双栏保持，内边距收敛 */
@media (max-width:1199px){
  .va-hero-copy{padding:40px 24px}
  /* 内页 hero 文案栏同步收敛（与首页同节奏） */
  .page-hero-grid>div:first-child{padding:40px 24px}
  /* .va-why 901–1199 收两列与 .va-why-item 去右线的规则原在此处，因早段媒体块被后段
     基础规则（同特异性、源码靠后）覆盖而从未生效，已迁至「方案A 组件响应式」≤1199 段生效 */
}
/* ≤900px 平板/大手机：双栏全部转单列；导航转抽屉 */
@media (max-width:900px){
  .container{padding:0 24px}
  .dot-nav{display:none}
  .nav{height:72px}
  .logo img{height:29px}
  /* 导航抽屉（原 760px 断点归并至 900px）；top 与定高 72px 对齐 */
  .nav-links,.lang-switch{display:none}
  .nav-links.open{display:flex;position:absolute;top:72px;left:0;right:0;background:#ffffff;flex-direction:column;align-items:stretch;gap:0;padding:8px 20px 16px;border-bottom:1px solid var(--line);box-shadow:0 32px 64px rgba(0,0,0,.22);z-index:102}
  body:has(.nav-links.open)::after{content:"";position:fixed;inset:0;z-index:99;background:rgba(16,24,39,.34);pointer-events:none}
  .nav-links.open>li{padding:4px 0}
  /* 抽屉态无 hover 概念：顶层下划线与下拉空隙桥全部关闭（触屏点击不落死区）；active 以 accent 字色指示 */
  .nav-links>li>a::after{display:none}
  .nav-links.open>li>a.active{color:var(--accent)}
  .nav-dropdown::before{display:none}
  .nav-dropdown{position:static;opacity:1;visibility:visible;transform:none;border:0;box-shadow:none;padding:0 0 0 16px;min-width:0;background:transparent}
  .nav-toggle{display:flex}
  .nav-right{gap:14px}
  .nav-right .btn{padding:10px 18px;font-size:12.5px}
  /* 搜索弹出框：窄屏改贴 header 全宽下拉（原 right:0;360px 以 40px 按钮为锚会向左溢出视口） */
  .nav-search{position:static}
  .search-pop{left:0;right:0;width:auto;max-width:none;top:100%;border-radius:0;border-left:0;border-right:0}
  /* Hero 转单列：copy 先、图后 */
  .va-hero{grid-template-columns:1fr}
  /* v2.20 修复（11.2 存量挂账项）：.hero-media aspect-ratio 在网格拉伸下撑宽轨道，390px 横向溢出，min-width:0 收敛 */
  .va-hero-copy,.va-hero-fig{min-width:0;max-width:100%}
  .va-hero-copy{padding:40px 20px;border-right:0}
  .va-hero-fig{min-height:0}
  .va-hero-fig .hero-media{min-height:240px;max-width:100%}
  /* 区头：编号缩至 28px（仍与标题同行基线对齐） */
  .va-head{column-gap:12px;row-gap:6px}
  .va-head .no{font-size:28px}
  /* 产品 2 列 */
  .p-grid{grid-template-columns:repeat(2,1fr)}
  /* 方案/实验室行：编号列收窄，缩略图转次行；hover 外扩量随容器 padding 收敛 */
  .sol-row{grid-template-columns:56px 1fr;row-gap:14px;--row-inset:16px;padding:24px var(--row-inset)}
  .sol-no{font-size:28px}
  .sol-fig{grid-column:2;width:100%}
  .sol-row--solo{grid-template-columns:56px 1fr}
  .sol-row--noimg .sol-spec{grid-column:2}
  /* 数据带 2 列 */
  .records-grid{grid-template-columns:repeat(2,1fr)}
  .record{padding:36px 16px}
  .record:nth-child(odd){border-left:0}
  .record:nth-child(n+3){border-top:1px solid var(--line)}
  /* 参数带（数据带 2 列；内页 hero 折叠规则已移至 .page-hero-grid 基础规则之后，见 458 行下方） */
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat{padding:32px 16px}
  .stat:nth-child(odd){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .acc-grid{grid-template-columns:repeat(3,1fr)}
  .tier-grid{grid-template-columns:repeat(2,1fr)}
  .news-grid{grid-template-columns:repeat(2,1fr)}
  .news-featured{grid-template-columns:1fr}
  .news-featured .nf-fig{min-height:260px}
  .about-grid{grid-template-columns:1fr;gap:40px}
  .values-grid{grid-template-columns:repeat(2,1fr)}
  .pack-grid{grid-template-columns:repeat(2,1fr)}
  .list-grid,.list-grid.cols-3{grid-template-columns:1fr}
  /* .contact-grid/.feature-grid/.form-panel/.va-feat 的 ≤900 折叠规则原在此处，因早段媒体块
     被后段同特异性基础规则覆盖而从未生效（contact 页 390 宽 808px 横向溢出根因），
     已迁至文件尾「响应式补偿块」（基础规则之后） */
  .va-feat-figs{gap:10px}
  /* CTA 条转纵向 */
  /* 页脚四列塌缩两列（奇数列去左竖线） */
  .footer-grid{grid-template-columns:1fr 1fr;gap:32px;padding:40px 0 36px}
  .footer-grid>div{padding:0 0 0 20px}
  .footer-grid>div:nth-child(odd){border-left:0;padding-left:0}
}
/* ≤560px 手机：全单列、padding 20px */
@media (max-width:560px){
  .container{padding:0 20px}
  .nav{height:62px}
  .logo img{height:24px}
  .nav-links.open{top:62px}
  .va-hero-copy{padding:36px 20px}
  .hero-actions .btn{width:100%}
  .p-grid{grid-template-columns:1fr}
  .sol-row{grid-template-columns:44px 1fr;--row-inset:12px}
  .sol-no{font-size:24px}
  .records-grid{grid-template-columns:1fr 1fr}
  .record{padding:28px 10px}
  .record .num{font-size:clamp(34px,10vw,44px)}
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat .num{font-size:32px}
  .stat .label{font-size:12px}
  .acc-grid{grid-template-columns:repeat(2,1fr)}
  .tier-grid{grid-template-columns:1fr}
  .news-grid{grid-template-columns:1fr}
  .news-featured .nf-body{padding:28px 22px}
  .values-grid{grid-template-columns:1fr}
  .pack-grid{grid-template-columns:1fr}
  /* .form-grid ≤560 单列规则原在此处，被后段基础规则覆盖失效，已迁至文件尾补偿块 */
  .footer-grid{grid-template-columns:1fr;gap:28px;padding:36px 0 32px}
  .footer-grid>div{border-left:0;padding-left:0}
  .footer .logo img{height:32px}
  .footer-bottom{padding-left:20px;padding-right:20px}
}

/* ═══════════ 内页共享：面包屑 / 页面 Hero / 参数带 ═══════════
   2026-09-20 横幅统一化：内页 hero 与首页 .va-hero 严格同构——
   同栅格（1.12fr/.88fr、无 gap、文案栏右 hairline）、同字号阶梯（h1 34px 档 / 副描述 15px）、
   同 eyebrow 短横线（34×1 accent）、同非等宽间距节奏（16/24/46）。
   crumbs 颜色与父级跳转保留，字号对齐首页小字标准（12px）。 */
.hero-eyebrow{display:flex;align-items:center;gap:14px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-weight:600}
/* 标题前标记统一为首页同款 34px 短横线（原 3px 圆点废弃，.dot 仅作旧标记兼容隐藏） */
.hero-eyebrow::before{content:"";width:34px;height:1px;background:var(--accent)}
.hero-eyebrow .dot{display:none}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:46px}
.page-hero{position:relative;background:var(--bg)}
/* hero 下沿 hairline 收边（方案A 去渐变） */
.page-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--line)}
.page-hero-grid{position:relative;display:grid;grid-template-columns:1.12fr .88fr;align-items:stretch;min-height:var(--banner-h)}
@media (max-width:1199px){:root{--banner-h:450px}}
/* 2026-09-23 文案栏垂直居中：统一高度后短文案页（events/contact）文字挤在顶部、下方大片留白，
   视觉上像被右图撑高；改 flex 列居中让左右视觉重量平衡。crumbs 为绝对定位钉顶，不参与 flex */
.page-hero-grid>div:first-child{padding:56px 48px;border-right:1px solid var(--line);min-width:0;display:flex;flex-direction:column;justify-content:center}
.crumbs{font-size:12px;color:var(--g400);margin-bottom:20px}
.crumbs a{color:var(--g500);transition:color .2s}
.crumbs a:hover{color:var(--accent)}
.crumbs .sep{margin:0 9px;color:var(--g400)}
/* 首页同款字号阶梯：h1 clamp(26,2.4vw,34)/1.14 + accent 副行 .85em；hero-sub 15px g500 */
.page-hero h1{font-size:clamp(26px,2.4vw,34px);font-weight:650;letter-spacing:-.015em;line-height:1.14;margin-top:16px;font-variant-numeric:tabular-nums}
.page-hero h1 .accent-line{display:block;color:var(--accent);font-size:.85em;font-weight:650}
.page-hero .hero-sub{font-size:15px;font-weight:400;color:var(--g500);margin-top:24px;letter-spacing:0;line-height:1.9;max-width:520px}
.page-hero .hero-desc{margin-top:12px;max-width:520px;color:var(--g500);font-size:15px;line-height:1.85}
/* 中文 balance 断行保留（不改变字号/间距，仅避免末行孤字） */
html[lang="zh-CN"] .page-hero h1,html[lang="zh-CN"] .page-hero .hero-desc{text-wrap:balance}
/* 右栏图片：与首页 va-hero-fig 同构——直角、无投影、顶边对齐。
   2026-09-22 图片防变形：img 改绝对填充，图片固有高度不再参与栅格行高——真实照片（4:3/竖构图）
   此前会把横幅撑到远超文案栏高度，页与页高矮不一；现横幅高度=左栏文案与 --banner-h 下限取大，跨页等高 */
.page-fig{position:relative;display:flex;flex-direction:column;min-width:0;background:var(--panel-2);overflow:hidden}
.page-fig>img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
/* 图片内角标（左下角，同首页 .serial 徽标语言）：产品详情标题内嵌用 */
.fig-title{position:absolute;left:0;bottom:0;z-index:6;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--accent);color:#fff;font-size:11px;font-weight:600;letter-spacing:.2em;padding:6px 14px}
/* ≤900px hero 双栏转单列（copy 先、图后）：内边距对齐首页移动端（40px 20px、去中缝线） */
@media (max-width:900px){
  .page-hero-grid{grid-template-columns:1fr;min-height:0}
  .page-hero-grid>div:first-child{padding:40px 20px;border-right:0}
  .page-fig{max-width:560px;aspect-ratio:16/10}
  /* 产品详情图集是"主图+缩略图条"纵向组合：比例框会经 min-height 传递出最小宽（240×1.6=384 撑破 390 视口），
     改回 auto 高度由内容（图集 flex）撑 */
  .page-fig.pd-gallery{aspect-ratio:auto;min-height:240px}
}
/* 栏目页（ph-cat）与详情页统一走基座栅格，不再单独收窄列比（原 1.1fr/.9fr 废弃）；
   移动端栏目占位图无信息量，单列折叠后隐藏、不占首屏 */
@media (max-width:900px){
  .page-hero-grid.ph-cat .page-fig{display:none}
}
/* 详情页面包屑贴导航（2026-09-20 审查改造）：绝对定位挂在文案栏 padding 区顶部，出流不挤压
   eyebrow——eyebrow 与首页 .va-hero 各断点严格对齐；单行省略防三级长面包屑折行与 eyebrow 相撞 */
.page-hero-grid>div:first-child{position:relative}
.page-hero-grid .crumbs{position:absolute;top:16px;left:48px;right:48px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1199px){
  .page-hero-grid .crumbs{top:12px;left:24px;right:24px}
}
@media (max-width:900px){
  .page-hero-grid .crumbs{top:12px;left:20px;right:20px}
}
/* ≤560 文案栏 padding 对齐首页 .va-hero-copy 移动端（36px 20px，消存量 4px 偏差） */
@media (max-width:560px){
  .page-hero-grid>div:first-child{padding:36px 20px}
  .page-hero-grid .crumbs{top:10px}
}
/* 参数亮点带（hairline + 品牌蓝数字，扁平） */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:48px 32px;border-left:1px solid var(--line);text-align:center}
.stat:first-child{border-left:0;padding-left:0}
.stat .num{font-size:clamp(32px,3.4vw,48px);font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1;color:var(--accent)}
.stat .num small{font-size:.52em;font-weight:600}
.stat .label{margin-top:10px;font-size:14px;color:var(--g500)}

/* ═══════════ 内页共享：特性图文 / 规格对比表 / 配置增强 ═══════════ */
.feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px 64px}
.feature-item img{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius);filter:saturate(.96)}
.feature-item h3{font-size:20px;font-weight:600;margin-top:24px;letter-spacing:.01em}
.feature-item p{margin-top:10px;color:var(--g500);font-size:15px;max-width:480px}
.spec-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.table-wrap{overflow-x:auto}
.spec-table{width:100%;border-collapse:collapse;min-width:640px;font-size:15px}
.spec-table thead th{background:var(--panel-2);color:var(--accent);text-align:left;padding:18px 24px;font-weight:600;font-size:15px;white-space:nowrap;letter-spacing:.04em}
.spec-table thead th .th-sub{display:block;font-size:12px;font-weight:400;color:var(--g500);margin-top:3px;letter-spacing:.05em}
.spec-table tbody td{padding:14px 24px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.spec-table tbody tr:last-child td{border-bottom:0}
.spec-table tbody tr:nth-child(even){background:rgba(0,0,0,.03)}
.spec-table tbody tr{transition:background .2s}
.spec-table tbody tr:hover{background:var(--accent-dim)}
.spec-table td:first-child{font-weight:600;color:var(--ink);width:26%}
.spec-table td.dim{color:var(--g400);text-align:center}
.spec-note{margin-top:18px;font-size:13px;color:var(--g500)}
.group-label{text-align:center;font-size:12.5px;letter-spacing:.22em;color:var(--g500);font-weight:600;text-transform:uppercase;margin:72px 0 36px}
.group-label:first-of-type{margin-top:0}
.group-label::before,.group-label::after{content:"——";margin:0 16px;color:var(--g400);letter-spacing:0}
.acc-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:20px}
.acc-card{background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:border-color .3s}
.acc-card:hover{border-color:var(--accent-line)}
.acc-card img{width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--bg-2)}
.acc-card .acc-body{padding:16px 18px 20px}
.acc-card h4{font-size:15px;font-weight:600}
.acc-card p{font-size:13px;color:var(--g500);margin-top:6px;line-height:1.6}
.acc-card .fit{display:inline-block;margin-top:10px;font-size:11px;letter-spacing:.06em;color:var(--accent);border:1px solid var(--accent-line);border-radius:999px;padding:2px 10px}
.tier-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.tier-card{background:var(--panel);border:1px solid var(--line);padding:28px 24px;display:flex;flex-direction:column;transition:border-color .3s}
.tier-card:hover{border-color:var(--accent-line)}
.tier-card .tier-name{font-size:17px;font-weight:600}
.tier-card .tier-pos{font-size:13.5px;color:var(--g500);margin-top:8px;flex:1}
.tier-card .tier-link{margin-top:22px;font-size:13.5px;font-weight:600;color:var(--ink-2);transition:color .2s}
.tier-card .tier-link:hover{color:var(--accent)}
.tier-card--hot{background:var(--panel-2);border-color:var(--accent-line)}
.tier-card--hot .tier-name{color:var(--accent-2)}
.hot-badge{display:inline-block;background:var(--accent);color:#ffffff;font-size:11px;font-weight:600;letter-spacing:.08em;padding:3px 12px;margin-bottom:14px;align-self:flex-start}
.list-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 56px}
.list-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.list-item{border-top:2px solid var(--accent);padding-top:20px}
.list-item h4{font-size:17px;font-weight:600}
.list-item p{margin-top:10px;font-size:14px;color:var(--g500);line-height:1.7}
.list-item .note{display:block;margin-top:14px;font-size:12.5px;color:var(--g500)}
.list-item a{display:inline-block;margin-top:14px;font-size:13.5px;font-weight:600;color:var(--ink-2);transition:color .2s}
.list-item a:hover{color:var(--accent)}

/* ═══════════ 内页共享：列表页 / 新闻 / 时间线 / 表单 ═══════════ */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.news-card{background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:border-color .3s}
.news-card:hover{border-color:var(--accent-line)}
.news-card .p-fig{overflow:hidden;aspect-ratio:16/9}
.news-card img{width:100%;height:100%;object-fit:cover;transition:filter .3s}
.news-card:hover img{filter:brightness(1.03)}
.news-card .p-body{padding:20px 22px 24px}
.news-card .n-date{font-size:12px;letter-spacing:.14em;color:var(--accent);font-weight:600}
.news-card h4{font-size:16.5px;font-weight:600;margin-top:8px;line-height:1.5}
.news-card p{margin-top:8px;font-size:13.5px;color:var(--g500);line-height:1.7}
.news-card .p-link{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:13px;font-weight:600;color:var(--ink-2);transition:color .2s}
.news-card:hover .p-link{color:var(--accent)}
.news-featured{display:grid;grid-template-columns:1.2fr 1fr;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-bottom:36px}
.news-featured .nf-fig{overflow:hidden;min-height:320px}
.news-featured img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}
.news-featured:hover img{transform:scale(1.04)}
.news-featured .nf-body{padding:44px 48px;display:flex;flex-direction:column;justify-content:center}
.article{max-width:760px;margin:0 auto}
.article .a-meta{font-size:13px;color:var(--g500);letter-spacing:.08em}
.article h1{font-size:clamp(30px,4vw,44px);font-weight:600;line-height:1.3;margin-top:16px;letter-spacing:-.01em}
.article .a-lead{margin-top:20px;font-size:17px;color:var(--ink-2);line-height:1.9}
.article .a-fig{margin:36px 0;border-radius:var(--radius);overflow:hidden}
.article p{margin-top:22px;color:var(--g500);font-size:16px;line-height:1.95}
.article h2{margin-top:48px;font-size:24px;font-weight:600;color:var(--ink)}
.article blockquote{margin-top:28px;padding:20px 26px;border-left:3px solid var(--accent);background:var(--panel);border-radius:0 var(--radius) var(--radius) 0;color:var(--ink-2);font-size:15.5px}
/* 旧时间线样式已由方案A 行式里程碑（编号列+内容列+hairline）替代，见文末组件段 */
.form-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:44px 48px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 22px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.field--full{grid-column:1/-1}
.field label{font-size:13.5px;font-weight:600;color:var(--ink-2)}
.field label b,.f-sub b{color:#c0392b;margin-left:2px}
.field input,.field select,.field textarea{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:13px 16px;font-size:14.5px;color:var(--ink);font-family:var(--font);transition:border-color .25s,box-shadow .25s;-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--g500) 50%),linear-gradient(135deg,var(--g500) 50%,transparent 50%);background-position:calc(100% - 21px) 50%,calc(100% - 15px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-dim)}
.field.err input,.field.err select,.field.err textarea{border-color:#e05d5d}
.field .msg{font-size:12.5px;color:#e08585;display:none}
.field.err .msg{display:block}
.form-foot{display:flex;align-items:center;gap:18px;margin-top:28px}
.form-tip{font-size:13px;color:var(--g500)}
.form-ok{display:none;margin-top:24px;border:1px solid var(--accent-line);background:var(--accent-dim);border-radius:12px;padding:18px 22px;color:var(--accent-2);font-size:14.5px}
.form-ok.show{display:flex}
.contact-aside{display:flex;flex-direction:column;gap:22px}
.contact-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:28px 30px}
.contact-card h4{font-size:16px;font-weight:600;margin-bottom:14px}
.contact-card li{font-size:14px;color:var(--ink-2);line-height:1.9}

/* ═══════════ 内页响应式已统一归并至文件头部 1200/900/560 三档断点 ═══════════ */

/* ═══════════ SVG 图标（全站禁用 emoji 作图标素材） ═══════════ */
.ico{display:inline-block;width:1.05em;height:1.05em;flex-shrink:0;vertical-align:-.14em}
.ico-stroke{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ico-fill{fill:currentColor}
.contact-card li{display:flex;gap:10px;align-items:flex-start}
.contact-card li .ico{margin-top:.32em;color:var(--accent)}
.contact-grid>.contact-aside{--i:1}
.form-ok.show{gap:12px;align-items:flex-start}
.form-ok .ico{margin-top:.3em}

/* ═══════════ 动画增强（方案A 清理：标题下划线描绘/卡片高光扫过已随去装饰移除） ═══════════ */
/* Hero 媒体舞台去除 figure 默认外边距 */
.hero-media{margin:0}


/* ═══════════ 内页组件样式（自参考站精准移植：仅缺失组件，色系映射皇家蓝） ═══════════ */


.video-wrap{max-width:880px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px}

.video-wrap video{display:block;width:100%;aspect-ratio:16/9;border-radius:calc(var(--radius) - 6px);background:#000}


.series-section{padding-top:34px;padding-bottom:8px}

.series-section + .series-section{border-top:1px solid var(--line)}

.series-head{margin-bottom:8px}




.feature-grid.rich-content{display:block}

.feature-grid.rich-content>p{margin:0 0 30px;max-width:780px;font-size:16px;color:var(--ink-2);line-height:1.9}

.feature-grid.rich-content>ul{display:grid;grid-template-columns:1fr 1fr;gap:18px;counter-reset:feat;margin:0;padding:0}

.feature-grid.rich-content>ul>li{counter-increment:feat;position:relative;background:var(--panel);border:1px solid var(--line);border-top:2px solid var(--accent-line);border-radius:var(--radius);padding:24px 24px 24px 74px;margin:0;font-size:14.5px;color:var(--g500);line-height:1.8;transition:transform .3s var(--ease-out),border-color .3s,box-shadow .3s}

.feature-grid.rich-content>ul>li:hover{transform:translateY(-4px);border-top-color:var(--accent);box-shadow:0 16px 40px rgba(15,30,60,.12)}

.feature-grid.rich-content>ul>li::before{content:counter(feat, decimal-leading-zero);position:absolute;left:24px;top:22px;width:auto;height:auto;background:none;border-radius:0;font-size:24px;font-weight:800;line-height:1.1;color:transparent;-webkit-text-stroke:1px rgba(0,51,144,.5);font-variant-numeric:tabular-nums}

.feature-grid.rich-content>ul>li:last-child:nth-child(odd){grid-column:1/-1}



.cc-head{margin-bottom:14px}

.cc-head h4{margin-bottom:6px}

.cc-sub{font-size:12.5px;color:var(--g500);letter-spacing:.02em}

.cc-list{display:flex;flex-direction:column;gap:8px}

.cc-row{display:flex;align-items:center;gap:13px;width:100%;padding:11px 12px;background:none;border:1px solid transparent;border-radius:11px;font:inherit;color:inherit;text-align:left;text-decoration:none;cursor:pointer;transition:background .25s,border-color .25s,transform .25s var(--ease-out)}

.cc-row:hover{background:var(--accent-dim);border-color:var(--accent-line);transform:translateX(3px)}

.cc-ico{flex:0 0 auto;width:38px;height:38px;border-radius:10px;background:rgba(0,51,144,.10);border:1px solid var(--accent-line);display:inline-flex;align-items:center;justify-content:center;color:var(--accent);transition:color .25s,background .25s}

.cc-ico .ico{width:17px;height:17px}

.cc-row:hover .cc-ico{color:var(--accent-2);background:rgba(0,51,144,.16)}

.cc-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}

.cc-label{font-size:11px;letter-spacing:.16em;color:var(--g500)}

.cc-value{font-size:14px;font-weight:600;color:var(--ink-2);line-height:1.5;word-break:break-all}

.cc-value--wrap{word-break:break-word;font-weight:500}

.cc-go{flex:0 0 auto;color:var(--g500);font-size:14px;transition:transform .25s var(--ease-out),color .25s}

.cc-row:hover .cc-go{color:var(--accent);transform:translateX(3px)}

.cc-copy{flex:0 0 auto;font-size:11.5px;color:var(--g500);border:1px solid var(--line);border-radius:999px;padding:3px 11px;transition:color .2s,border-color .2s,background .2s}

.cc-row:hover .cc-copy{color:var(--accent);border-color:var(--accent-line)}

.cc-copy.copied{color:#ffffff;background:var(--accent);border-color:transparent}


.entry-list{display:flex;flex-direction:column;gap:6px}

.entry-list li{display:block;padding:0;border:0}

.entry-link{display:flex;align-items:center;gap:11px;width:100%;padding:12px 14px;border-radius:10px;color:var(--ink-2);font-size:14px;font-weight:500;transition:background .25s,color .25s}

.entry-link .ico{width:15px;height:15px;color:var(--accent)}

.entry-arr{margin-left:auto;color:var(--g500);font-size:14px;transition:transform .25s var(--ease-out),color .25s}

.entry-link:hover{background:var(--accent-dim);color:var(--accent)}

.entry-link:hover .entry-arr{color:var(--accent);transform:translateX(4px)}

/* 快速咨询入口（2026-09-20 Quick Links 重设计）：每项带 ?type= 直达预填表单对应咨询类型 */
.entry-note{margin:-4px 0 12px;font-size:12.5px;line-height:1.7;color:var(--g500)}
#inquiryForm{scroll-margin-top:112px}




.soon{position:absolute;top:14px;left:14px;z-index:2;background:var(--accent);color:#ffffff;font-size:11px;font-weight:700;letter-spacing:.08em;padding:4px 12px}


.rich-content{color:var(--g500);font-size:15px;line-height:1.9}

.rich-content ul{margin:14px 0;display:grid;gap:8px}

.rich-content li{position:relative;padding-left:22px}

.rich-content li::before{content:"";position:absolute;left:2px;top:.72em;width:6px;height:6px;border-radius:2px;background:var(--accent)}

.rich-content img{border-radius:var(--radius);margin:18px 0;max-height:520px}


.about-grid{display:grid;grid-template-columns:1.05fr .9fr;gap:64px;align-items:center}

.about-grid .a-fig img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:var(--radius);box-shadow:0 40px 100px rgba(15,30,60,.14)}


.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}

.value-card{position:relative;background:var(--panel);border:1px solid var(--line);padding:30px 28px;transition:border-color .3s}

.value-card:hover{border-color:var(--accent-line)}

.value-card h4{font-size:17px;font-weight:700;padding-right:48px;line-height:1.45}

.value-card p{margin-top:12px;font-size:13.5px;color:var(--g500);line-height:1.8}

.v-no{position:absolute;top:22px;right:22px;font-size:34px;font-weight:800;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(0,51,144,.4);font-variant-numeric:tabular-nums;pointer-events:none}


.block-row{display:grid;grid-template-columns:76px 1fr;gap:24px;padding:30px 0;border-bottom:1px solid var(--line);align-items:start}

.block-row:last-child{border-bottom:0}

.block-row .b-no{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:13px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}

.block-row h3{font-size:19px;font-weight:700}

.block-row p{margin-top:8px;color:var(--g500);font-size:14.5px;line-height:1.85;max-width:720px}

/* 实验室详情「适用场景」：三列 hairline 网格（2026-09-20 选型定稿，Why Us 同语言）——
   取消小项编号避免与区头主编号混淆；>3 条自动换行多排；≤900px 塌单列；
   v2.14：方点改与文字同行 inline-block + vertical-align:middle 垂直居中（用户定稿） */
.scn-grid{display:grid;grid-template-columns:repeat(3,1fr);row-gap:36px}

.scn-cell{padding:6px 26px 8px;border-left:1px solid var(--line);font-size:14.5px;line-height:1.75;color:var(--ink-2)}

.scn-cell:first-child{border-left:0;padding-left:0}

.scn-cell::before{content:"";display:inline-block;width:8px;height:8px;background:var(--accent);margin-right:12px;vertical-align:middle}

/* ≤900px 塌单列（须置于基础规则之后，防同特异性覆盖） */
@media (max-width:900px){
  .scn-grid{grid-template-columns:1fr;row-gap:0}
  .scn-cell{border-left:0;padding:0 0 20px}
  .scn-cell:last-child{padding-bottom:0}
}

/* 实验室详情「设备配置」：2×2 hairline 网格（2026-09-20 v2.14 用户定稿，象限分格）——
   方点与文字同行垂直居中（与 scn-cell 同语言）；任意条目数可退化（>4 自动多排，行界靠 :nth-child(n+3) 顶线）；
   .edu-points 保留给 educationIndex 不受影响；≤900px 塌单列 */
.eq-grid{display:grid;grid-template-columns:1fr 1fr}

.eq-grid li{padding:18px 28px;border-left:1px solid var(--line);font-size:14.5px;line-height:1.75;color:var(--ink-2)}

.eq-grid li::before{content:"";display:inline-block;width:8px;height:8px;background:var(--accent);margin-right:12px;vertical-align:middle}

.eq-grid li:nth-child(odd){border-left:0;padding-left:0}

.eq-grid li:nth-child(n+3){border-top:1px solid var(--line)}

@media (max-width:900px){
  .eq-grid{grid-template-columns:1fr}
  .eq-grid li{border-left:0;padding:16px 0}
  .eq-grid li:nth-child(n+2){border-top:1px solid var(--line)}
  .eq-grid li:first-child{padding-top:0}
  .eq-grid li:last-child{padding-bottom:0}
}


.m-card{position:relative;background:var(--panel);border:1px solid var(--line);overflow:hidden;transition:border-color .3s}

.m-card:hover{border-color:var(--accent-line)}

.m-card .p-fig{aspect-ratio:16/10;overflow:hidden}

.m-card .p-fig img{width:100%;height:100%;object-fit:cover;transition:filter .3s}

.m-card:hover .p-fig img{filter:brightness(1.03)}

.m-card .p-body{padding:22px 24px 26px}

.m-card h4{font-size:16.5px;font-weight:700}

.m-card p{margin-top:8px;font-size:13.5px;color:var(--g500);line-height:1.7}


.contact-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:start}

.submit-wrap{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin-top:44px;padding-top:28px;border-top:1px solid var(--line)}
/* 提交说明统一换到按钮下一行（两站一致，不随按钮/文案宽度挤到同排） */
.submit-wrap .form-tip{flex-basis:100%}

.f-sub{margin-top:8px;font-size:13.5px;color:var(--g500)}


.compat-section{display:none}

.compat-section:has(.p-card){display:block}

.compat-group{display:none}

.compat-group:has(.p-card){display:block}

.compat-group .group-label{margin-top:56px}

.compat-group:first-of-type .group-label{margin-top:0}


.pack-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 20px}

.pack-item{display:flex;gap:11px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:13px 16px;font-size:14px;color:var(--ink-2)}

.pack-item .ico{color:var(--accent);flex:0 0 auto}

/* 产品详情页提示条（套餐须搭配主机等注意事项） */
.note-callout p{display:flex;gap:12px;align-items:flex-start;max-width:760px;margin:0 auto;padding:16px 22px;border:1px solid var(--accent-line);background:var(--accent-dim);border-radius:12px;color:var(--accent-2);font-size:14.5px;line-height:1.75}
.note-callout .ico{flex:0 0 auto;margin-top:.3em}


.lightbox{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;background:rgba(5,5,5,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:56px}

.lightbox.open{display:flex}

.lightbox img{max-width:min(1080px,86vw);max-height:82vh;border-radius:var(--radius);box-shadow:0 60px 160px rgba(0,0,0,.85);animation:lbIn .3s var(--ease-out)}

.lightbox .lb-btn{position:absolute;display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:50%;background:rgba(255,255,255,.06);border:1px solid var(--line);color:var(--ink);font-size:20px;cursor:pointer;transition:background .2s,border-color .2s}

.lightbox .lb-btn:hover{background:rgba(0,51,144,.14);border-color:var(--accent-line);color:var(--accent)}

.lightbox .lb-close{top:22px;right:26px;font-size:22px}

.lightbox .lb-prev{left:26px;top:50%;transform:translateY(-50%)}

.lightbox .lb-next{right:26px;top:50%;transform:translateY(-50%)}

.lightbox .lb-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);font-size:12.5px;letter-spacing:.14em;color:var(--g500);font-variant-numeric:tabular-nums}


/* 卡片 hover 高光扫过已随方案A 去装饰移除 */

/* ═══════════ 内页组件响应式：rich-content 归并至 1200/900/560 三档断点。
   ⚠ contact/form 的折叠规则在本文件尾「响应式补偿块」（必须置于基础规则之后；
   早段 900/560 段的同名规则会被本文件后段基础规则覆盖，新组件响应式须紧跟自己的基础规则写） ═══════════ */
@media (max-width:900px){
  .feature-grid.rich-content>ul{grid-template-columns:1fr}
}
@media (max-width:560px){
  .feature-grid.rich-content>ul>li{padding:20px 20px 20px 64px}
  .block-row{grid-template-columns:48px 1fr;gap:16px;padding:24px 0}
  .block-row .b-no{width:26px;height:26px;font-size:12px}
  .lightbox{padding:20px}
  .lightbox .lb-prev{left:10px}
  .lightbox .lb-next{right:10px}
  .submit-wrap{margin-top:34px;padding-top:24px}
}
/* ═══════════ 产品详情：图集（主图 + 缩略图条；2026-09-20 横幅统一化：
   主图随 hero 满高拉伸（图集态因缩略图条略小于满高），缩略图条对齐首页 hero-dashes 白底 hairline 条） ═══════════ */
.pd-gallery .gallery-main{position:relative;flex:1 1 auto;min-height:0;overflow:hidden;background:var(--panel-2)}
.pd-gallery .gallery-main .mask-img{position:absolute;inset:0}
.pd-gallery .gallery-main .mask-img img{width:100%;height:100%;object-fit:cover}
.pd-gallery .gallery-thumbs{flex:0 0 auto;display:flex;gap:10px;padding:12px 14px;background:#ffffff;border-top:1px solid var(--line);overflow-x:auto}
.pd-gallery .gallery-thumbs img{width:72px;height:72px;flex:0 0 auto;object-fit:cover;border:1px solid var(--line);cursor:pointer;opacity:.62;box-shadow:none;transition:opacity .2s,border-color .2s,transform .2s}
.pd-gallery .gallery-thumbs img:hover{opacity:1;transform:translateY(-2px)}
.pd-gallery .gallery-thumbs img.active{border-color:var(--accent);opacity:1}

/* ═══════════ Serve：五等分竖栏（方案B 定稿 2026-09-19：桌面 5 列等宽，
   列内首行=图标砖 + 右侧主标题（两者顶部对齐），描述文字第二行通栏铺满列宽并靠左对齐
   （英文描述较长，左对齐 + 全列宽行的断行最自然）；列间 hairline 竖线，hover 列底色且右下角浮现箭头；
   无 href 的列保持惰性、隐藏箭头） ═══════════ */
.s-sprite{position:absolute;width:0;height:0;overflow:hidden}
.serve-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.serve-col{position:relative;display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:start;min-width:0;padding:30px 22px 36px;border-right:1px solid var(--line);transition:background .25s}
.serve-col:last-child{border-right:none}
.serve-col:hover{background:var(--hover-bg)}
.serve-col .s-tile{grid-column:1;grid-row:1;display:flex;align-items:center;justify-content:center;width:52px;height:52px;background:var(--accent-dim);color:var(--accent);margin:0;transition:color .3s}
.serve-col:hover .s-tile{color:var(--accent-2)}
.serve-col .s-tile svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.serve-col h4{grid-column:2;grid-row:1;margin-top:2px;font-size:15.5px;font-weight:650;line-height:1.4;color:var(--ink)}
.serve-col p{grid-column:1 / -1;margin-top:16px;font-size:12.5px;color:var(--g500);line-height:1.7}
.serve-col .s-go{position:absolute;right:20px;bottom:22px;font-size:13px;color:var(--accent);opacity:0;transform:translateX(-4px);transition:opacity .25s,transform .25s}
.serve-col:hover .s-go{opacity:1;transform:none}
.serve-col:not([href]) .s-go{display:none}

/* ═══════════ 方案A 组件：Business 2×2 横向图文卡（左图右文，hairline 分格；编号+标题同行底部基线对齐） ═══════════ */
.va-biz2{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.va-biz2-item{display:grid;grid-template-columns:200px 1fr;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .25s}
.va-biz2-item:hover{background:var(--hover-bg)}
.va-biz2-item .fig{min-height:180px;background:var(--panel-2);position:relative;overflow:hidden}
/* 2026-09-22 图片防变形：绝对填充，竖图固有高度不再撑高卡片行（行高只由文字与 180px 下限决定） */
.va-biz2-item .fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.va-biz2-item .body{padding:22px 26px;display:flex;flex-direction:column;justify-content:center}
.va-biz2-item .trow{display:flex;align-items:baseline;column-gap:10px}
.va-biz2-item .no{font-size:13px;color:var(--g400);font-weight:700;letter-spacing:.08em}
.va-biz2-item h4{font-size:17px;font-weight:650;margin-top:0}
.va-biz2-item p{font-size:13px;color:var(--g500);margin-top:8px;line-height:1.7}
/* Explore sits right (align-self:flex-end), underline removed; card hover lifts the label colour and slides the arrow (2026-09-28) */
.va-biz2-item .link{display:inline-flex;align-items:center;column-gap:6px;margin-top:12px;font-size:12.5px;font-weight:600;color:var(--accent);align-self:flex-end;transition:color .2s var(--ease-out)}
.va-biz2-item .link .arr{transition:transform .25s var(--ease-out)}
.va-biz2-item:hover .link{color:var(--accent-2)}
.va-biz2-item:hover .link .arr{transform:translateX(5px)}

/* ═══════════ 方案A 组件：Why Us 三列 hairline 分栏（去卡片） ═══════════ */
.why-band{background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:var(--sec-gap) 0}
.va-why{display:grid;grid-template-columns:repeat(3,1fr)}
.va-why-item{padding:8px 24px;border-right:1px solid var(--line)}
.va-why-item:last-child{border-right:none}
.va-why-item .kw{font-size:13px;letter-spacing:.18em;color:var(--accent);font-weight:700;text-transform:uppercase}
.va-why-item p{font-size:13px;color:var(--g500);margin-top:8px;line-height:1.75}

/* ═══════════ 方案A 组件：Featured 大小图堆叠 + 行式规格表 ═══════════ */
.va-feat{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.va-feat-copy h4{font-size:clamp(24px,2.2vw,30px);font-weight:650;letter-spacing:-.01em;color:var(--ink)}
.va-feat-copy .feat-lead{margin-top:16px;font-size:14.5px;color:var(--ink-2);line-height:1.8}
.va-feat-copy .feat-sub{margin-top:18px;font-size:13.5px;color:var(--g500);line-height:1.8}
/* 行式规格表：上下 hairline、行内左型号右类型（去 chip 徽章） */
.va-specs{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.va-specs .cell{padding:14px 16px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .25s}
.va-specs .cell:hover{background:var(--hover-bg)}
.va-specs .cell b{display:block;font-size:19px;font-weight:650;letter-spacing:-.01em;color:var(--ink);line-height:1.2}
.va-specs .cell span{display:block;margin-top:2px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--g400)}
.feat-note{margin-top:20px;font-size:13px;color:var(--g500);line-height:1.8}
.feat-note b{display:block;color:var(--accent);font-weight:600}
.feat-note span{display:block}
.va-feat-copy .btn{margin-top:18px}
/* 2×2 model image grid (finalized 2026-09-20): four 1:1 cells with always-on captions, one-to-one with the Go2/B2/G1/H1 va-specs cells */
.va-feat-figs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.va-feat-figs .fig-wrap{position:relative;margin:0;overflow:hidden}
.va-feat-figs .fig-cell{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:var(--panel-2);box-shadow:0 12px 28px rgba(13,32,58,.12)}
.va-feat-figs figcaption{position:absolute;left:0;bottom:0;padding:26px 14px 10px;width:100%;background:linear-gradient(180deg,transparent,rgba(13,32,58,.62));color:#fff;font-size:12px;letter-spacing:.06em;z-index:1}
/* 空数据整块占位：四张型号图全未配置时，一张默认占位图覆盖整个 2×2 区域（多图按实渲染规则） */
.va-feat-figs .fig-wrap--solo{grid-column:1/-1}

/* ═══════════ 方案A 组件：照片墙 P2 不规则拼贴（1 主图 2×2 + 4 辅图 + 通栏横条，caption 常显） ═══════════ */
.pw-p2{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:150px;gap:14px}
.pw-p2 .ph{position:relative;margin:0;overflow:hidden;border-radius:8px;background:var(--panel-2)}
.pw-p2 .ph.big{grid-column:span 2;grid-row:span 2}
.pw-p2 .ph.wide{grid-column:1/-1}
/* 空数据整块占位：photoWall 无任何实图时，一张默认占位图覆盖整个拼贴区域 */
.pw-p2 .ph--solo{grid-column:1/-1;grid-row:span 3}
.pw-p2 .ph img{width:100%;height:100%;object-fit:cover}
.pw-p2 .ph figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 10px;background:linear-gradient(180deg,transparent,rgba(13,32,58,.62));color:#fff;font-size:12px}
/* 降级 P3 编辑行式（cards > 6 张）：3 列等比 16/10，caption 移出图外（幽灵编号 + 小字），图面零遮挡 */
.pw-p3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pw-p3 .ph{margin:0}
.pw-p3 .ph .im{overflow:hidden;border-radius:8px;aspect-ratio:16/10;background:var(--panel-2)}
.pw-p3 .ph img{width:100%;height:100%;object-fit:cover}
.pw-p3 .ph figcaption{margin-top:10px;font-size:12px;color:var(--g500);display:flex;gap:10px;align-items:baseline;line-height:1.5}
.pw-p3 .ph figcaption i{font-style:normal;color:var(--accent-ghost);font-weight:700;font-size:11px;letter-spacing:.08em;flex:none}
.pw-p3 .ph--solo{grid-column:1/-1}

/* ═══════════ Partner — Certificate of Authorisation（v2.11 授权证书展陈：去背景水印，双线框证书卡收紧，
     下方说明左文右 CTA 同行排版，版块整体高度收敛） ═══════════ */
.cert-band{position:relative;overflow:hidden;background:var(--bg-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0 60px}
.cert-eyebrow{position:relative;z-index:1;text-align:center}
.cert-eyebrow-in{display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.cert-eyebrow-in::before,.cert-eyebrow-in::after{content:"";width:34px;height:1px;background:var(--accent)}
.cert-band .container>.reveal:nth-child(2){--i:1}
.cert-band .container>.reveal:nth-child(3){--i:2}
/* 证书卡：外白卡 + 内蓝线双线框；阴影为方案A「文字卡片无阴影」规则的已确认例外（用户选型定稿） */
.auth-cert{position:relative;z-index:1;max-width:860px;margin:36px auto 0;background:#fff;border:1px solid var(--line);padding:11px;box-shadow:0 30px 70px rgba(0,51,144,.12)}
.auth-cert-in{position:relative;border:1px solid var(--accent-line);padding:38px 56px 36px;text-align:center}
.auth-cert-in .ct{position:absolute;width:14px;height:14px;border:1.5px solid var(--accent)}
.auth-cert-in .ct1{top:7px;left:7px;border-right:0;border-bottom:0}
.auth-cert-in .ct2{top:7px;right:7px;border-left:0;border-bottom:0}
.auth-cert-in .ct3{bottom:7px;left:7px;border-right:0;border-top:0}
.auth-cert-in .ct4{bottom:7px;right:7px;border-left:0;border-top:0}
.cert-logo{height:34px;width:auto;margin:0 auto}
.cert-cap{margin-top:20px;font-size:11px;font-weight:700;letter-spacing:.34em;text-transform:uppercase;color:var(--accent)}
.auth-cert-in h3{margin-top:10px;font-size:clamp(22px,2.4vw,30px);font-weight:700;letter-spacing:-.015em;line-height:1.15;color:var(--ink)}
.cert-rule{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px auto 0;max-width:420px}
.cert-rule::before,.cert-rule::after{content:"";flex:1;height:1px;background:var(--line)}
.cert-rule span{width:7px;height:7px;background:var(--accent);transform:rotate(45deg)}
/* v2.12：签署行整体撤除（卡顶 logo+标题已承载签发方与授权关系），承诺行升级为卡底收口条（菱形分隔呼应饰线） */
.cert-facts{margin-top:20px;display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--g500);font-weight:600}
.cert-facts span+span::before{content:"";display:inline-block;width:5px;height:5px;background:var(--accent);transform:rotate(45deg);margin-right:16px}
/* 证书下方：左授权说明双栏 + 右 Contact Us（CTA 职能，v2.4 定稿由 Partner 承担），同行排版 */
.cert-below{position:relative;z-index:1;max-width:1080px;margin:30px auto 0;display:flex;align-items:center;gap:44px;text-align:left}
.cert-cols{flex:1;columns:2;column-gap:44px;text-align:left;color:var(--ink-2);font-size:14px;line-height:1.85}
.cert-cols p+p{margin-top:14px}
.cert-cta{margin:0;flex:none}

/* ═══════════ Education 课程：编号条目行（去卡片，course-no 左栏索引列） ═══════════ */
.course-list{border-top:1px solid var(--line)}
.course-card{position:relative;display:grid;grid-template-columns:88px 1fr;column-gap:28px;padding:30px 24px;border-bottom:1px solid var(--line);transition:background .25s}
.course-card:hover{background:var(--hover-bg)}
.course-no{width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:13px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;pointer-events:none;align-self:start;transition:background .25s}
.course-card:hover .course-no{background:var(--accent-2)}
.course-card h3{font-size:17px;font-weight:650;line-height:1.4;color:var(--ink)}
/* 人群标签（年龄/难度）：直角小标签 */
.course-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.course-tags span{font-size:11.5px;letter-spacing:.04em;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line);padding:3px 10px}
/* 详情页 hero 元信息标签（courseDetail / eventDetail） */
.course-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.page-hero .course-meta{margin-top:20px}
.course-meta span{font-size:12px;letter-spacing:.03em;color:var(--ink-2);background:var(--panel-2);border:1px solid var(--line);padding:4px 12px}
.course-meta span.cm-price{color:var(--accent);font-weight:600;background:var(--accent-dim);border-color:var(--accent-line)}
.course-card .course-desc{margin-top:12px;font-size:13px;color:var(--g500);line-height:1.75;max-width:720px}
/* 收获小节：虚线分区 + 小节标签 */
.course-gain{margin-top:14px;padding-top:14px;border-top:1px dashed var(--line)}
.gain-label{display:flex;align-items:center;gap:12px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;color:var(--accent)}
.gain-label::after{content:"";flex:1;max-width:180px;height:1px;background:var(--line)}
.course-gets{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px 26px}
.course-gets li{position:relative;padding-left:16px;font-size:13px;color:var(--ink-2);line-height:1.8}
.course-gets li::before{content:"";position:absolute;left:2px;top:.66em;width:6px;height:6px;background:var(--accent)}
/* 底栏：课时弱化、价格突出 */
.course-foot{margin-top:14px;padding-top:14px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap}
.course-duration{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--g400)}
.course-duration svg{width:13px;height:13px;flex:none;fill:none;stroke:var(--g400);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.course-buy{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.course-price{font-size:17px;font-weight:700;color:var(--accent);letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.course-buy .btn{flex:none}
.edu-table-wrap{overflow-x:auto;border:1px solid var(--line);background:var(--panel)}
.edu-points{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 28px;max-width:860px}
.edu-points li{position:relative;padding-left:30px;font-size:15px;color:var(--ink-2);line-height:1.8}
.edu-points li::before{content:"";position:absolute;left:0;top:.42em;width:16px;height:16px;background:var(--accent)}
.edu-points li::after{content:"";position:absolute;left:5px;top:calc(.42em + 2px);width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.faq-list{max-width:860px;margin:0 auto}
.faq-item{border:0;border-bottom:1px solid var(--line);background:transparent;margin-bottom:0}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 4px;font-weight:600;font-size:15.5px;color:var(--ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary .fx{flex:0 0 auto;width:22px;height:22px;border:1px solid var(--accent-line);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;transition:transform .3s var(--ease-out),background .3s}
.faq-item[open] summary .fx{transform:rotate(45deg);background:var(--accent-dim)}
.faq-item .faq-a{padding:0 4px 22px;color:var(--g500);font-size:14px;line-height:1.85}

/* ═══════════ Robot Events：编辑式条目（日期块左栏固定宽 + 右栏内容，hairline 分隔） ═══════════ */
.event-list{border-top:1px solid var(--line)}
.event-card{position:relative;display:grid;grid-template-columns:128px 1fr;column-gap:28px;padding:28px 24px;border-bottom:1px solid var(--line);transition:background .25s}
.event-card:hover{background:var(--hover-bg)}
.event-meta{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.event-date{display:flex;flex-direction:column;line-height:1}
.event-date b{font-size:38px;font-weight:650;letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums}
.event-date span{margin-top:6px;font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--g500);white-space:nowrap}
.event-tag{font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent-line);padding:3px 10px;background:var(--accent-dim)}
.event-card h3{font-size:17px;font-weight:650;line-height:1.45;letter-spacing:-.005em;color:var(--ink)}
.event-card .event-desc{margin-top:10px;font-size:13px;color:var(--g500);line-height:1.8;max-width:720px}
.event-foot{display:flex;align-items:center;gap:14px;margin-top:14px}
.event-venue{display:flex;align-items:flex-start;gap:7px;min-width:0;font-size:12.5px;color:var(--g500);line-height:1.5}
.event-venue .ico{width:1.05em;height:1.05em;flex:0 0 auto;margin-top:.2em;color:var(--accent);fill:none}
.event-venue span{min-width:0}
.event-card .p-link{display:inline-flex;align-items:center;gap:6px;margin-left:auto;font-size:12.5px;font-weight:600;color:var(--accent)}
.event-card .p-link .arr{transition:transform .25s var(--ease-out)}
.event-card:hover .p-link{color:var(--accent-2)}
.event-card:hover .p-link .arr{transform:translateX(4px)}

/* ═══════════ 里程碑时间线（方案A 行式：编号列 + 内容列 + hairline） ═══════════ */
.timeline{position:relative;margin-top:0;padding-left:0;border-top:1px solid var(--line)}
.timeline::before{content:none}
.tl-item{position:relative;display:grid;grid-template-columns:120px 1fr;column-gap:28px;padding:22px 0;border-bottom:1px solid var(--line)}
.tl-item::before{content:none}
.tl-item .tl-year{font-size:22px;font-weight:650;color:var(--accent);letter-spacing:.02em;font-variant-numeric:tabular-nums;line-height:1.2}
.tl-item h4{font-size:16px;font-weight:650;margin-top:0;color:var(--ink)}
.tl-item p{margin-top:6px;font-size:13px;color:var(--g500);max-width:640px;line-height:1.75}

/* ═══════════ 方案A 补充：正文限宽 / 产品详情图集 hairline / 顶部导航不折行（v21b 保留项） ═══════════ */
.rich-content{max-width:880px}
.rich-content p{margin:14px 0;font-size:15px;color:var(--g500);line-height:1.9}
.rich-content b{color:var(--ink-2)}
/* 长栏目名不折行：根因修复 nowrap；配合收窄间距与字号，导航在 1200px 容器内单行从容排布 */
.nav-links{gap:28px}
.nav-links a{font-size:14px;white-space:nowrap}
/* 方案区卡片网格（solutionDetail Composition） */
.m-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}
/* 产品详情特性清单（feature-grid li 内联样式迁入） */
.feature-grid{margin-top:8px}
.feature-grid li strong{display:block;font-size:16px;color:var(--ink);margin-bottom:4px}
.feature-grid li p{margin:6px 0 0;font-size:14.5px;line-height:1.8;white-space:pre-line}
.feature-grid li img{display:block;width:100%;border-radius:8px;margin:0 0 10px}
/* 教育页 Beyond 文案 / CTA 附注（educationIndex 内联迁入） */
.edu-intro-copy{max-width:880px}
.edu-intro-copy p{margin:16px 0 0;font-size:15px;color:var(--g500);line-height:1.9}
.edu-intro-copy p+p{margin-top:12px}
.edu-why-title{display:flex;align-items:center;gap:14px;margin:56px 0 20px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--accent)}
.edu-why-title::before{content:"";width:34px;height:1px;background:var(--accent)}
.edu-why{display:grid;grid-template-columns:repeat(3,1fr)}
.edu-why .edu-why-2{--i:1}
.edu-why .edu-why-3{--i:2}
.cta-btn-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin-top:42px}
.edu-why .va-why-item{padding:20px 24px 20px 0}
.edu-why .va-why-item + .va-why-item{padding-left:24px}
.cta-note{margin:34px auto 0;max-width:640px;font-size:12px;line-height:1.8;color:var(--g400)}
/* 搜索页（search.html 内联迁入；结果列表 hairline 行式） */
.search-main{padding:96px 0 90px;min-height:60vh}
.search-title{font-size:clamp(22px,2vw,28px);font-weight:650;margin-top:12px}
.search-kw{color:var(--accent)}
.search-note{color:var(--g500);padding:40px 0}
.search-total{padding:0 0 18px;font-size:13px}
.search-box{display:flex;gap:10px;margin:24px 0 32px;max-width:640px}
.search-box input{flex:1;background:var(--bg-2);border:1px solid var(--line);padding:12px 16px;color:var(--ink);font-size:14.5px;outline:none;transition:border-color .2s}
.search-box input:focus{border-color:var(--accent)}
.search-result-list{border-top:1px solid var(--line)}
.result-item{display:block;padding:18px 16px;border-bottom:1px solid var(--line);color:var(--ink-2);text-decoration:none;transition:background .25s}
.result-item:hover{background:var(--hover-bg)}
.result-item h4{font-size:15.5px;font-weight:650;color:var(--ink)}
.result-item p{margin-top:6px;font-size:13px;color:var(--g500)}
/* 搜索命中高亮（检索服务回填的 <mark class="search-hl">，品牌蓝淡底） */
.result-item mark{background:rgba(0,51,144,.10);color:var(--accent);font-weight:700;border-radius:3px;padding:0 2px}
/* 列表分页条（_common pager 片段与 search 分页共用；方案A 直角化） */
.pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:56px;flex-wrap:wrap}
.pagination a,.pagination span{min-width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0 14px;border:1px solid var(--line);color:var(--ink-2);font-size:14px;text-decoration:none;transition:border-color .2s,color .2s,background .2s}
.pagination a:hover{border-color:var(--accent);color:var(--accent)}
.pagination .active{background:var(--accent);border-color:var(--accent);color:#ffffff;font-weight:700}
/* 表格：hairline 行式（去斑马纹，hover 行底色） */
.spec-table tbody tr:nth-child(even){background:transparent}
.spec-table tbody tr:hover{background:var(--hover-bg)}
/* 表单控件聚焦：2px accent 描边 */
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
/* 产品详情图集（hairline 化）：主图随横幅统一去投影/去圆角 */
.pd-gallery .gallery-thumbs img{border:1px solid var(--line)}

/* ═══════════ 方案A 模板公共类（内联样式外置承接） ═══════════ */
/* 简单内页 page-hero（无右图栅格的标题型 hero）统一内边距 */
.ph-simple{padding-top:36px;padding-bottom:64px}
/* 内容未找到兜底（详情模板 _content == null 分支） */
.content-missing{padding:160px 0;text-align:center}
.content-missing a{color:var(--accent)}
/* 空数据提示 */
.empty-tip{padding:48px 0;text-align:center;color:var(--g500);font-size:14.5px}
/* 版块导语段（contentCards intros 等） */
.section-intro{max-width:880px;color:var(--g500);font-size:14.5px;line-height:1.9;margin-bottom:28px}
/* about-grid 右栏图错峰 / group-more（View all） */
.about-grid>div:nth-child(2){--i:1}
.group-more{white-space:nowrap}

/* ═══════════ 方案A 组件响应式（并入 1200/900/560 断点体系） ═══════════ */
@media (max-width:1199px){
  .va-why{grid-template-columns:repeat(2,1fr)}
  .va-why .va-why-item,.edu-why .va-why-item{border-right:0;border-bottom:1px solid var(--line);padding:20px 0}
  .edu-why .va-why-item + .va-why-item{padding-left:0}
  .edu-why{grid-template-columns:repeat(2,1fr)}
  .edu-why .va-why-item:nth-child(3){grid-column:1/-1}
}
@media (max-width:900px){
  .serve-cols{grid-template-columns:1fr}
  .serve-col{border-right:none;border-bottom:1px solid var(--line)}
  .serve-col .s-go{opacity:1;transform:none}
  .va-biz2{grid-template-columns:1fr;border-left:none}
  .va-biz2-item{grid-template-columns:1fr}
  .va-biz2-item .fig{min-height:0;aspect-ratio:16/9}
  .va-why,.edu-why{grid-template-columns:1fr}
  .pw-p2{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px}
  .pw-p2 .ph.big{grid-column:span 2;grid-row:span 2}
  .pw-p3{grid-template-columns:repeat(2,1fr)}
  .va-feat{grid-template-columns:1fr}
  .cert-band{padding:64px 0 56px}
  .auth-cert-in{padding:44px 30px}
  .cert-facts{gap:14px 16px}
  .cert-below{display:block;text-align:center}
  .cert-cols{columns:1}
  .cert-cta{margin-top:24px}
  .course-card{grid-template-columns:56px 1fr;column-gap:18px;padding:26px 20px}
  .course-no{width:28px;height:28px;font-size:12px}
  .event-card{grid-template-columns:112px 1fr;column-gap:18px;padding:24px 20px}
  .event-date b{font-size:30px}
  .timeline .tl-item{grid-template-columns:88px 1fr;column-gap:18px}
  .tl-item .tl-year{font-size:18px}
  .edu-points{grid-template-columns:1fr}
}
@media (max-width:560px){
  .cert-logo{height:28px}
  .cert-facts span+span::before{display:none}
  .va-biz2-item .body{padding:18px 20px}
  .pw-p2{grid-template-columns:1fr;grid-auto-rows:auto}
  .pw-p2 .ph{grid-column:auto;grid-row:auto;aspect-ratio:16/10}
  .pw-p2 .ph--solo{grid-row:auto}
  .pw-p2 .ph.wide{grid-column:auto}
  .pw-p3{grid-template-columns:1fr}
  .va-feat-figs{gap:8px}
  .course-card{grid-template-columns:44px 1fr;padding:22px 16px}
  .course-no{width:26px;height:26px;font-size:12px}
  .event-card{grid-template-columns:1fr;row-gap:10px;padding:20px 16px}
  .event-meta{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:14px}
  .event-foot{flex-wrap:wrap;gap:10px}
  .event-card .p-link{margin-left:auto}
  .timeline .tl-item{grid-template-columns:64px 1fr}
}

/* ═══════════ About 页重设计（2026-09-21）：01 简介编辑式双栏（左区头 sticky + 右富文本，横幅图不再于正文重复）+
   02 能力版块（serve-cols--4 四等分 icon tile 竖栏，同首页 Serve 语言；替代原统计数据带） ═══════════ */
.about-edit{display:grid;grid-template-columns:minmax(200px,.42fr) minmax(0,1fr);column-gap:56px;align-items:start}
.about-edit .sec-head{position:sticky;top:96px}
.about-edit .rich-content{max-width:760px}
.serve-cols--4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1199px){
  .about-edit{column-gap:40px}
}
@media (max-width:900px){
  .about-edit{grid-template-columns:1fr;row-gap:0}
  .about-edit .sec-head{position:static}
  .serve-cols.serve-cols--4{grid-template-columns:1fr 1fr}
  .serve-cols--4 .serve-col{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
  .serve-cols--4 .serve-col:nth-of-type(2n){border-right:0}
  .serve-cols--4 .serve-col:nth-last-child(-n+2){border-bottom:0}
}
@media (max-width:560px){
  .serve-cols.serve-cols--4{grid-template-columns:1fr}
  .serve-cols--4 .serve-col{border-right:0;border-bottom:1px solid var(--line)}
  .serve-cols--4 .serve-col:last-child{border-bottom:0}
}

/* ═══════════ 产品栏目三页编辑式统一（v2.14：platformIndex / productList / productDetail） ═══════════ */
/* 小卡 hover 按 5.4 棚拍基准仅图片亮度提升 + 标题/链接变色（不加大底色块，避免网格内浮块感） */
/* ── 详情页 Hero：字号/栅格随全站横幅统一（2026-09-20，原 30–44px 收敛档与 64px gap 废弃）；
   图集主图随 hero 满高（直角、无投影），产品标题以 .fig-title 徽标内嵌图片左下角 ── */
.ph-product h1{font-size:clamp(26px,2.4vw,34px);line-height:1.14}
/* ── Why Choose It：三列 hairline 分栏（去描边卡片，同 va-why 语言），描边大编号改小型索引 ── */
.values-grid{gap:0}
.value-card{background:transparent;border:0;border-right:1px solid var(--line);padding:8px 28px;transition:background .25s}
.value-card:first-child{padding-left:0}
.value-card:last-child{border-right:0;padding-right:0}
.value-card:hover{background:transparent}
.v-no{position:static;display:block;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--g400);-webkit-text-stroke:0}
.value-card h4{padding-right:0}
/* ── Video：去描边框（媒体直角，区块底色由 section--panel 承担） ── */
.video-wrap{max-width:880px;margin:0 auto;background:transparent;border:0;padding:0}
.video-wrap video{border-radius:0}
/* ── Features：去卡片化——编号条目 + hairline 顶线（去描边盒/悬浮位移/描边大数字） ── */
.feature-grid.rich-content>ul{gap:0 56px}
.feature-grid.rich-content>ul>li{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:24px 0 30px;transition:none}
.feature-grid.rich-content>ul>li:hover{transform:none;border-top-color:var(--accent);box-shadow:none}
.feature-grid.rich-content>ul>li::before{position:static;display:block;margin-bottom:14px;font-size:13px;font-weight:700;line-height:1;letter-spacing:.08em;color:var(--g400);-webkit-text-stroke:0}
/* 2026-09-22 图片防变形：容器锁 16:10 + cover——运营混传任意比例图时卡片等高不参差 */
.feature-grid li .mask-img{position:relative;overflow:hidden;background:var(--panel-2);aspect-ratio:16/10}
.feature-grid li .mask-img img{width:100%;height:100%;object-fit:cover;border-radius:0}
/* ── 规格参数表 hairline 行式（5.7；pd-specs 作用域隔离 courseDetail/educationIndex 的共用表） ── */
.pd-specs .spec-card{background:transparent;border:0;border-radius:0;overflow:visible}
.pd-specs .spec-table thead th{background:transparent;color:var(--g400);font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--line)}
.pd-specs .spec-table{min-width:560px}
/* 选购提示直角化 */
.note-callout p{border-radius:0}
/* ── In the Box：装箱清单行式（去描边圆角盒，hairline 行分隔） ── */
.pack-grid{gap:0 44px}
.pack-item{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 2px;font-size:14px;color:var(--ink-2)}
/* ── 组标签 kicker 化（去「——」装饰线，与 cert-eyebrow/eyebrow 短横线同一语言） ── */
.group-label{display:flex;align-items:center;justify-content:center;gap:16px;text-align:left;margin:64px 0 32px}
.group-label::before,.group-label::after{content:"";width:34px;height:1px;background:var(--accent);margin:0;letter-spacing:0}
.compat-group .group-label{margin-top:56px}
/* ── 配件卡去框（同 p-card 语言：图块直角 + 文字外置） ── */
.acc-grid{gap:28px 24px}
.acc-card{background:transparent;border:0;transition:none}
.acc-card:hover{border-color:transparent}
.acc-card img{border-radius:0}
.acc-card .acc-body{padding:14px 0 0}
.acc-card h4{transition:color .2s}
.acc-card:hover h4{color:var(--accent)}
/* 软件模块 / 培训条目：accent 粗顶线收敛为 hairline */
.list-item{border-top:1px solid var(--line);padding-top:18px}
/* 响应式（并入 1200/900/560 体系；作用域内覆盖早前断点规则） */
@media (max-width:1199px){
  .values-grid{grid-template-columns:1fr}
  .value-card{border-right:0;border-bottom:1px solid var(--line);padding:20px 0}
  .value-card:first-child{padding-left:0}
  .value-card:last-child{border-bottom:0}
  .feature-grid.rich-content>ul{gap:0 40px}
}
/* 参数带/装箱/配件/列表条目的移动端塌缩：与上方 page-hero-grid 存量修复同理，
   早前响应式块中的折叠规则被其后同特异性基础规则覆盖而失效，此处置于基础规则之后补齐 */
@media (max-width:900px){
  .stats-grid{grid-template-columns:repeat(2,1fr)}
  .stat{padding:32px 16px}
  .stat:nth-child(odd){border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--line)}
  .pack-grid{grid-template-columns:repeat(2,1fr)}
  .acc-grid{grid-template-columns:repeat(3,1fr)}
  .list-grid,.list-grid.cols-3{grid-template-columns:1fr}
  .pd-gallery .gallery-thumbs img{width:60px;height:60px}
  /* contact 表单区 / 产品详情 Features / 首页 Featured 堆叠：早前头部 ≤900 段的折叠规则
     被上方同特异性基础规则覆盖而失效（contact 页 390 宽 808px 横向溢出根因），此处补齐生效 */
  .contact-grid{grid-template-columns:1fr}
  .feature-grid{grid-template-columns:1fr}
  .form-panel{padding:32px 24px}
  .va-feat{gap:40px}
}
@media (max-width:560px){
  .stats-grid{grid-template-columns:1fr 1fr}
  .stat{padding:28px 10px}
  .stat .num{font-size:32px}
  .stat .label{font-size:12px}
  .pack-grid{grid-template-columns:1fr;gap:0 24px}
  .acc-grid{grid-template-columns:repeat(2,1fr);gap:24px 16px}
  .form-grid{grid-template-columns:1fr}
}

/* ═══════════ Broken-image placeholder (image-missing.svg, swapped in by the site.js
   broken-image fallback module): ═══════════
   component-level img rules are object-fit:cover with higher specificity (e.g. .va-feat-figs .fig-cell);
   cover would crop the caption text, so contain is forced here; background matches the SVG gradient */
img.img-missing{object-fit:contain !important;background:#eef1f5}

/* ═══════════ AI Teaching Kits 栏目页（tpl/aiKitIndex.html，2026-09-28 方案A 章节长卷）═══════════
   hero 主视频卡（海报+播放按钮，点击展开控件走 HLS）、场景左右交替行（循环视频 IO 门控见 site.js） */
.aitk-video-card{position:relative;border-radius:var(--radius);overflow:hidden;background:#0b1533;aspect-ratio:16/10;width:100%;min-width:0;align-self:center;height:auto;box-shadow:0 24px 48px rgba(0,51,144,.16)}
.aitk-video-card video{width:100%;height:100%;object-fit:cover;display:block}
.aitk-video-card .aitk-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border:0;cursor:pointer;background:rgba(11,21,51,.25);width:100%;transition:background .25s}
.aitk-video-card .aitk-play:hover{background:rgba(11,21,51,.05)}
.aitk-video-card .aitk-play span{width:72px;height:72px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(0,51,144,.4)}
.aitk-video-card .aitk-play svg{width:26px;height:26px;fill:#fff;margin-left:4px}
.aitk-media{position:relative;border-radius:var(--radius);overflow:hidden;background:#0b1533;aspect-ratio:16/9}
.aitk-media video{width:100%;height:100%;object-fit:cover;display:block}
/* 概述行封面图填充（platformIndex 落地页型子栏目概述行复用 aitk-media 装 img，2026-09-30） */
.aitk-media img{width:100%;height:100%;object-fit:cover;display:block}
.aitk-row{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}
.aitk-row + .aitk-row{margin-top:var(--sec-gap)}
.aitk-row.flip .aitk-media{order:2}
.aitk-copy .aitk-tag{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:10px}
.aitk-copy h3{font-size:26px;line-height:1.3;color:var(--ink);margin-bottom:14px}
.aitk-copy p{color:var(--ink-2);line-height:1.85;font-size:15px}
.aitk-overview-title{max-width:760px;margin-bottom:18px}
.aitk-overview-desc{max-width:760px;color:var(--ink-2);line-height:1.9;margin-bottom:40px}
.aitk-lead{max-width:720px;color:var(--ink-2);line-height:1.9;margin-bottom:40px}
.aitk-note{font-size:12px;color:var(--g400);margin-top:40px;line-height:1.6}
@media (max-width:900px){
  .aitk-row{grid-template-columns:1fr;gap:24px}
  .aitk-row.flip .aitk-media{order:0}
  .aitk-copy h3{font-size:22px}
}

/* ═══ Magician Go 栏目页（tpl/magicianGoIndex.html，2026-10-03） ═══ */
/* 介绍区海报回落：视频未上传时 video-wrap 内以 img 展示海报（上传视频后即切回 video；直角口径同 .video-wrap video） */
.video-wrap img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--panel-2)}
/* 软件下载区（预留板块：software 三字段全空时整节不渲染，后台填写即显示） */
.mg-dl{max-width:880px;margin-top:4px;border-top:1px solid var(--line)}
.mg-dl-row{display:grid;grid-template-columns:auto auto 1fr auto;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}
.mg-dl-ver{font-weight:600;color:var(--ink);font-size:15px;white-space:nowrap}
.mg-dl-date{font-size:13px;color:var(--g400);white-space:nowrap}
.mg-dl-desc{font-size:13px;color:var(--ink-2);line-height:1.7;min-width:0}
.mg-dl-row .btn{white-space:nowrap}
@media (max-width:768px){
  .mg-dl-row{grid-template-columns:1fr auto;row-gap:6px}
  .mg-dl-desc{grid-column:1/-1}
}
