/* 短牛科技官网原型 · 公共样式
   色值取自《短牛科技 VI 设计规范》：品牌红 #d22323、深灰 #343434 / #323334、浅底 #ebe9e8 */

:root {
  --red: #d22323;
  --red-dark: #b51c1c;
  --ink: #343434;
  --ink-2: #5a5a5a;
  --ink-3: #7f8080;
  --dark: #1d1e20;
  --dark-2: #26282b;
  --dark-3: #323334;
  --line: #e2e0df;
  --paper: #ffffff;
  --paper-2: #f5f4f3;
  --paper-3: #ebe9e8;
  --detect: #3ddc84;       /* 识别框色，只用于"AI 在看什么"的视觉隐喻 */
  --radius: 10px;
  --wrap: 1280px;
  --hero-canvas: 1760px;
  --header-h: 68px;
  --font: "PingFang SC", "HarmonyOS Sans SC", "Source Han Sans SC", "Noto Sans CJK SC", "Microsoft YaHei", system-ui, sans-serif;
  --num: "DIN Alternate", "Bahnschrift", "Roboto Condensed", var(--font);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 12px); }
body {
  margin: 0;
  font-family: var(--font);
  color: var(--ink);
  background: var(--paper);
  line-height: 1.7;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}
img, video { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { margin: 0; line-height: 1.3; font-weight: 600; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

.wrap { width: min(var(--wrap), calc(100% - 48px)); margin-inline: auto; min-width: 0; }

/* ---------- 按钮 ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  height: 44px; padding: 0 22px; border-radius: 6px;
  font-size: 15px; font-weight: 500; cursor: pointer;
  border: 1px solid transparent; transition: background .2s, color .2s, border-color .2s;
  white-space: nowrap;
}
.btn--primary { background: var(--red); color: #fff; }
.btn--primary:hover { background: var(--red-dark); }
.btn--ghost { border-color: rgba(255,255,255,.45); color: #fff; }
.btn--ghost:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.btn--line { border-color: var(--ink); color: var(--ink); }
.btn--line:hover { background: var(--ink); color: #fff; }
.btn--sm { height: 36px; padding: 0 16px; font-size: 14px; }
.link-arrow { color: var(--red); font-weight: 500; font-size: 15px; display: inline-flex; gap: 6px; align-items: center; }
.link-arrow::after { content: "→"; transition: transform .2s; }
.link-arrow:hover::after { transform: translateX(4px); }

/* ---------- 页头 ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50;
  height: var(--header-h);
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(1.4) blur(8px);
  border-bottom: 1px solid var(--line);
}
.site-header .wrap { height: 100%; display: flex; align-items: center; gap: 28px; }
.site-header .logo img { height: 34px; width: auto; }
.nav { display: flex; align-items: stretch; height: 100%; gap: 4px; margin-left: auto; }
.nav > li { position: relative; display: flex; }
.nav > li > a {
  display: flex; align-items: center; padding: 0 14px; font-size: 15px; color: var(--ink);
  border-bottom: 2px solid transparent; transition: color .2s, border-color .2s;
}
.nav > li > a:hover, .nav > li.is-active > a { color: var(--red); }
.nav > li.is-active > a { border-bottom-color: var(--red); }
.nav .has-sub > a::after { content: ""; width: 6px; height: 6px; margin-left: 6px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) translateY(-2px); opacity: .6; }
.subnav {
  position: absolute; top: 100%; left: 0; min-width: 220px;
  background: #fff; border: 1px solid var(--line); border-top: 2px solid var(--red);
  box-shadow: 0 12px 32px rgba(0,0,0,.1); border-radius: 0 0 8px 8px;
  padding: 8px 0; opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s, transform .18s, visibility .18s;
}
.has-sub:hover .subnav, .has-sub:focus-within .subnav { opacity: 1; visibility: visible; transform: none; }
.subnav a { display: block; padding: 9px 20px; font-size: 14px; color: var(--ink-2); white-space: nowrap; } /* 桌面下拉菜单单行显示，菜单宽度随最长项（英文项较长）自动加宽 */
.subnav a:hover { background: var(--paper-2); color: var(--red); }
.subnav a.is-key::before { content: "★"; color: var(--red); font-size: 11px; margin-right: 6px; }
.subnav .soon { color: var(--ink-3); }
.subnav .soon::after { content: "待建"; font-size: 11px; margin-left: 8px; padding: 1px 6px; border-radius: 3px; background: var(--paper-3); color: var(--ink-3); }
.header-cta { margin-left: 8px; }
/* 中英文切换：桌面在菜单与咨询按钮之间，手机在菜单按钮左侧 */
.lang-switch { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 32px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; font-size: 13px; font-weight: 600; color: var(--ink-2); letter-spacing: .5px; white-space: nowrap; transition: color .2s, border-color .2s; }
.lang-switch:hover, .lang-switch:focus-visible { color: var(--red); border-color: var(--red); }
/* 英文页：图标用 2–3 个字母缩写，字号略小 */
html[lang="en"] .duo__icon { font-size: 13px; letter-spacing: 0; }

.menu-btn { display: none; margin-left: auto; width: 40px; height: 40px; border: 0; background: none; cursor: pointer; padding: 8px; }
.menu-btn span { display: block; height: 2px; background: var(--ink); margin: 6px 0; transition: transform .2s, opacity .2s; }

/* ---------- 通用区块 ---------- */
.section { padding: 96px 0; }
.section--tight { padding: 64px 0; }
.section--gray { background: var(--paper-2); }
.section--dark { background: var(--dark); color: #e9e9ea; }
.section--dark .section-head p { color: #a9abae; }
.section-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; margin-bottom: 48px; }
.section-head h2 { font-size: 34px; letter-spacing: .5px; }
.section-head p { color: var(--ink-2); margin-top: 12px; max-width: 640px; }
.title-lg { font-size: clamp(26px, 3.2vw, 34px); }
.eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; letter-spacing: 2px; color: var(--red); font-weight: 600; margin-bottom: 14px; }
.eyebrow::before { content: ""; width: 18px; height: 2px; background: var(--red); }
.tag { display: inline-block; font-size: 12px; padding: 2px 8px; border-radius: 3px; background: var(--paper-3); color: var(--ink-2); }
.tag--red { background: rgba(210,35,35,.1); color: var(--red); }
.tag--dark { background: rgba(255,255,255,.12); color: #fff; }
.muted { color: var(--ink-3); }
.small { font-size: 13px; }
.grid { display: grid; gap: 24px; }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }

/* ---------- 首屏 ---------- */
.hero {
  position: relative; overflow: hidden; color: #fff;
  min-height: calc(100vh - var(--header-h)); max-height: 860px;
  display: flex; align-items: center; background: var(--dark);
  padding: 56px 0 128px;   /* 底部留出三大业务方向卡片上浮的位置 */
}
.hero__bg { position: absolute; inset: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,19,21,.94) 0%, rgba(18,19,21,.72) 45%, rgba(18,19,21,.2) 100%); }
.hero .wrap { position: relative; z-index: 2; }
.hero__kicker { font-size: 14px; letter-spacing: 3px; color: #ff6b6b; margin-bottom: 20px; }
.hero h1 { font-size: 52px; letter-spacing: 2px; font-weight: 700; }
.hero h1 em { font-style: normal; color: var(--red); }
.hero__sub { font-size: 19px; color: #c9cbce; margin: 22px 0 36px; max-width: 620px; }
.hero__actions { display: flex; gap: 14px; flex-wrap: wrap; }
.hero__meta { display: flex; gap: 28px; margin-top: 56px; font-size: 14px; color: #a9abae; flex-wrap: wrap; }
.hero__meta b { display: block; font-family: var(--num); font-size: 30px; color: #fff; font-weight: 600; line-height: 1.2; }

/* 识别框动效：示意"AI 在看什么" */
.detect-layer { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
.detect-box {
  position: absolute; border: 2px solid var(--detect); border-radius: 2px;
  box-shadow: 0 0 0 1px rgba(0,0,0,.25), 0 0 18px rgba(61,220,132,.35);
  opacity: 0; animation: detect 6s infinite;
}
.detect-box span {
  position: absolute; left: -2px; top: -24px; white-space: nowrap;
  background: var(--detect); color: #0d2b1a; font-size: 12px; font-weight: 600; padding: 2px 8px;
  font-family: var(--num);
}
.detect-box--warn { border-color: #ffb020; box-shadow: 0 0 18px rgba(255,176,32,.45); }
.detect-box--warn span { background: #ffb020; }
@keyframes detect {
  0%, 8% { opacity: 0; transform: scale(1.08); }
  14%, 78% { opacity: 1; transform: none; }
  86%, 100% { opacity: 0; }
}
.scanline { position: absolute; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, rgba(61,220,132,.7), transparent); animation: scan 4.5s linear infinite; z-index: 1; }
@keyframes scan { from { top: 0; } to { top: 100%; } }

/* ---------- 首屏 xhero：共用图片外壳与历史 WebGL 样式 ----------
   当前首页五屏与无人机频道使用生成示意图；园区、地形及视频墙方案留存备查。 */
.xhero { position: relative; overflow: hidden; color: #fff; background: #05070b; min-height: clamp(680px, calc(100svh - var(--header-h)), 840px); display: flex; align-items: center; padding: 56px 0 150px; isolation: isolate; }
.xhero__stage { position: absolute; inset: 0; z-index: 0; }
#hero > .xhero__stage[data-hero-background] { opacity: 0; filter: blur(4px); transition: opacity 1.2s cubic-bezier(.22,.61,.36,1), filter 1.25s ease; pointer-events: none; }
#hero > .xhero__stage[data-hero-background].is-on { opacity: 1; filter: blur(0); }
/* 文字与图片共用页面中轴；宽屏背景使用有限画幅，避免随视口无限放大。 */
.xhero__stage--training > img, .xhero__stage--vision > img, .xhero__stage--drone > img, .xhero__stage--capabilities > img, .xhero__stage--software > img { position: absolute; left: 50%; transform: translateX(-50%); width: min(100%, var(--hero-canvas)); height: 100%; object-fit: cover; object-position: center; }
/* 写实动态背景：与写实静图同位叠放，开始播放（.is-playing）且处于写实风格时才淡入；未播放时静图兜底。 */
.xhero__stage > .xhero__motion { position: absolute; left: 50%; transform: translateX(-50%); width: min(100%, var(--hero-canvas)); height: 100%; object-fit: cover; object-position: center; opacity: 0; transition: opacity .8s ease; pointer-events: none; }
[data-visual-style="realistic"] .xhero__stage > .xhero__motion.is-playing { opacity: var(--hero-image-opacity, 1); }
.xhero__stage canvas { width: 100%; height: 100%; display: block; opacity: 0; transition: opacity 1.2s ease; }
.xhero__stage.is-ready canvas { opacity: 1; }
.xhero__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity 1.2s ease; }
.xhero__stage.is-ready .xhero__poster { opacity: 0; }
.xhero__labels { position: absolute; inset: 0; pointer-events: none; }
.xhero__shade { position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(5,7,11,.92) 0%, rgba(5,7,11,.62) 34%, rgba(5,7,11,0) 56%), linear-gradient(0deg, rgba(5,7,11,.9) 0%, rgba(5,7,11,0) 22%); }
.xhero .wrap { position: relative; z-index: 2; }
.xhero__badge { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.04); backdrop-filter: blur(6px); font-size: 13px; letter-spacing: 2px; color: #d9dde2; margin-bottom: 26px; }
.xhero__badge i { width: 8px; height: 8px; border-radius: 50%; background: #ff3b30; box-shadow: 0 0 0 0 rgba(255,59,48,.7); animation: livedot 1.8s infinite; }
@keyframes livedot { 0% { box-shadow: 0 0 0 0 rgba(255,59,48,.65); } 70% { box-shadow: 0 0 0 9px rgba(255,59,48,0); } 100% { box-shadow: 0 0 0 0 rgba(255,59,48,0); } }
.xhero h1 { font-size: clamp(36px, 5vw, 64px); line-height: 1.15; font-weight: 700; letter-spacing: 1px; text-shadow: 0 4px 30px rgba(0,0,0,.5); }
.xhero h1 .grad { background: linear-gradient(100deg, #ff6a5a 0%, #ff3b30 40%, #ffb199 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.xhero__sub { font-size: 18px; color: #b8bec6; margin: 22px 0 32px; max-width: 580px; line-height: 1.8; }
.xhero .btn--primary { box-shadow: 0 10px 30px rgba(210,35,35,.45); }
.xhero .btn--ghost { background: rgba(255,255,255,.05); backdrop-filter: blur(6px); }
.xhero__metrics { display: flex; gap: 0; margin-top: 40px; width: fit-content; border: 1px solid rgba(255,255,255,.1); border-radius: 12px; background: rgba(10,14,20,.55); backdrop-filter: blur(10px); }
.xhero__metrics div { padding: 14px 26px; font-size: 13px; color: #9aa3ad; }
.xhero__metrics div + div { border-left: 1px solid rgba(255,255,255,.08); }
.xhero__metrics b { display: block; font-family: var(--num); font-size: 28px; color: #fff; font-weight: 600; line-height: 1.2; }
.xhero__metrics b small { font-size: 15px; color: #ff6a5a; margin-left: 2px; }
.xhero__tag { position: absolute; right: 24px; top: 20px; z-index: 2; font-size: 11px; letter-spacing: 1px; color: rgba(255,255,255,.4); border: 1px solid rgba(255,255,255,.15); padding: 2px 8px; border-radius: 3px; }

/* 首屏五屏切换，同格叠放，容器高度取最高一屏 */
.xhero__training-note { max-width: 580px; margin-top: 16px; }
.xslides { display: grid; }
.xslide { grid-area: 1 / 1; align-self: center; opacity: 0; visibility: hidden; transform: translateY(16px); transition: opacity .5s, transform .5s, visibility 0s .5s; }
.xslide.is-on { opacity: 1; visibility: visible; transform: none; transition: opacity .6s .12s, transform .6s .12s, visibility 0s; }
/* 场景交叉渐变 + 文案依次显影；首帧不播放扫光。 */
#hero .xslide { transform: none; transition: opacity .25s ease, visibility 0s .25s; }
#hero .xslide.is-on { transition: opacity .7s .16s ease, visibility 0s; }
#hero .xslide > * { opacity: 0; transform: translateY(18px); filter: blur(5px); transition: opacity .2s ease, transform .25s ease, filter .2s ease; }
#hero .xslide.is-on > * { opacity: 1; transform: none; filter: blur(0); transition: opacity .7s var(--reveal-delay, .2s) ease, transform .85s var(--reveal-delay, .2s) cubic-bezier(.16,1,.3,1), filter .7s var(--reveal-delay, .2s) ease; }
#hero .xslide > :nth-child(2) { --reveal-delay: .28s; }
#hero .xslide > :nth-child(3) { --reveal-delay: .36s; }
#hero .xslide > :nth-child(4) { --reveal-delay: .44s; }
#hero .xslide > :nth-child(n+5) { --reveal-delay: .52s; }
#hero::before, #hero::after { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: min(100%, var(--hero-canvas)); pointer-events: none; z-index: 1; opacity: 0; }
#hero::before { background: linear-gradient(110deg, transparent 38%, rgba(255,65,45,.04) 46%, rgba(255,170,140,.22) 50%, rgba(255,65,45,.04) 54%, transparent 62%); mix-blend-mode: screen; transform: translateX(-50%); }
#hero::after { transform: translateX(-50%); background-image: linear-gradient(rgba(255,104,82,.13) 1px, transparent 1px), linear-gradient(90deg, rgba(255,104,82,.1) 1px, transparent 1px); background-size: 64px 64px; mask-image: radial-gradient(ellipse at 65% 48%, #000, transparent 68%); -webkit-mask-image: radial-gradient(ellipse at 65% 48%, #000, transparent 68%); }
#hero.is-switching::before { animation: hero-light-sweep 1.3s cubic-bezier(.22,.61,.36,1) both; }
#hero.is-switching::after { animation: hero-grid-reveal 1.25s ease both; }
@keyframes hero-light-sweep { 0% { opacity: 0; transform: translateX(-115%); } 30% { opacity: .85; } 65% { opacity: .6; } 100% { opacity: 0; transform: translateX(15%); } }
@keyframes hero-grid-reveal { 0%, 100% { opacity: 0; } 35% { opacity: .55; } 65% { opacity: .2; } }
.xslide .xchain { margin-top: 36px; }
.xcontrols { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; margin-top: 32px; }
.xdots { display: flex; gap: 10px; min-width: 0; }
.xcontrols__actions { display: flex; align-items: center; gap: 8px; }
.xcontrols__arrow, .xcontrols__toggle { min-height: 40px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #dfe4e9; background: rgba(10,14,20,.6); font: inherit; font-size: 13px; cursor: pointer; }
.xcontrols__arrow { width: 40px; font-size: 20px; }
.xcontrols__toggle { padding: 8px 14px; min-width: 92px; }
.xcontrols__arrow:hover, .xcontrols__toggle:hover { border-color: #ff5a4a; color: #fff; }
.xcontrols button:focus-visible { outline: 2px solid #ff8a7a; outline-offset: 4px; }
.xcontrols__status { width: 100%; color: #9aa3ad; font-size: 12px; margin: 0; }
.xdots__btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; gap: 8px; font: inherit; font-size: 13px; color: #b8bec6; padding: 8px 16px 9px 12px; border-radius: 999px; border: 1px solid rgba(255,255,255,.16); background: rgba(10,14,20,.5); backdrop-filter: blur(8px); cursor: pointer; transition: color .2s, border-color .2s; }
.xdots__btn span { font-family: var(--num); font-weight: 700; color: rgba(255,255,255,.35); }
.xdots__btn:hover { color: #fff; border-color: rgba(255,255,255,.35); }
.xdots__btn.is-on { color: #fff; border-color: rgba(255,90,74,.6); }
.xdots__btn.is-on span { color: #ff5a4a; }
/* 自动轮播时，当前按钮底部有一条进度线 */
.xdots__btn i { position: absolute; left: 0; bottom: 0; height: 2px; width: 0; background: #ff5a4a; }
.xdots.has-progress .xdots__btn.is-on i { animation: xprogress var(--xdur, 9s) linear forwards; }
.xdots.is-paused .xdots__btn.is-on i { animation-play-state: paused; }
@keyframes xprogress { from { width: 0; } to { width: 100%; } }
@media (max-width: 640px) {
  .xslide { align-self: end; }
  .xcontrols { margin-top: 20px; gap: 12px; }
  .xdots { width: 100%; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
  .xdots__btn { grid-column: span 2; justify-content: center; gap: 4px; padding: 10px 6px; min-height: 44px; font-size: 12px; }
  .xdots__btn:nth-last-child(-n+2) { grid-column: span 3; }
  .xcontrols__arrow, .xcontrols__toggle { min-height: 44px; }
  .xcontrols__arrow { width: 44px; }
  /* 手机端第二屏：能力链收成一行，只留序号、名称与角色，两屏高度接近 */
  .xslide .xchain { margin-top: 22px; grid-template-columns: 1fr 22px 1fr 22px 1fr; gap: 0; }
  .xslide .xchain__item { padding: 12px 10px; gap: 4px; }
  .xslide .xchain__item p, .xslide .xchain__links { display: none; }
  .xslide .xchain__head { flex-direction: column; align-items: flex-start; gap: 4px; }
  .xslide .xchain__no { font-size: 16px; }
  .xslide .xchain__head b { font-size: 15px; letter-spacing: 0; }
  .xslide .xchain__head em { font-size: 11px; letter-spacing: 0; }
  .xslide .xchain__core-label { display: none; }
  .xslide .xchain__arrow { height: auto; }
  .xslide .xchain__arrow::before { left: 3px; right: 3px; top: 50%; bottom: auto; width: auto; height: 1px; background: linear-gradient(90deg, rgba(255,90,74,.15), rgba(255,90,74,.7)); }
  .xslide .xchain__arrow::after { left: auto; right: 2px; top: 50%; bottom: auto; transform: translateY(-50%) rotate(45deg); }
  .xslide .xchain__arrow span { display: none; }
  .xhero h1 { font-size: 30px; }
}
@media (max-width: 640px) {
  #hero .xslide > * { transform: translateY(10px); filter: none; }
  #hero .xslide.is-on > * { transform: none; filter: none; }
  #hero::after { background-size: 40px 40px; }
}
@media (prefers-reduced-motion: reduce) {
  .xslide, .xslide.is-on, #hero .xslide, #hero .xslide.is-on, #hero .xslide > *, #hero .xslide.is-on > * { transition: none; transform: none; filter: none; }
  #hero::before, #hero::after { display: none; animation: none; }
}
@media (max-width: 400px) {
  #hero .xdots__btn span { display: none; }
  #hero .xdots__btn { white-space: nowrap; }
}

/* 较矮的桌面窗口也能看到切换控制，不让能力链把按钮挤到首屏以下。 */
@media (min-width: 901px) and (max-height: 800px) {
  #hero { padding: 28px 0 100px; }
  #hero h1 { font-size: clamp(36px, 4vw, 52px); line-height: 1.1; }
  #hero .xhero__badge { margin-bottom: 18px; }
  #hero .xhero__sub { font-size: 16px; line-height: 1.65; max-width: 660px; margin: 16px 0 22px; }
  #hero .xhero__metrics { margin-top: 24px; }
  #hero .xhero__metrics div { padding: 10px 22px; }
  #hero .xslide .xchain { margin-top: 24px; }
  #hero .xchain__item { padding: 14px 16px; }
  #hero .xcontrols { margin-top: 24px; gap: 12px 16px; }
  #hero .xcontrols__status { width: auto; }
}

/* 首屏能力链：工业智能（做项目）→ 行业软件（做产品）→ 技术输出（传能力） */
.xchain { display: grid; grid-template-columns: 1.15fr 88px 1fr 88px 1fr; align-items: stretch; }
.xchain__item { position: relative; padding: 18px 20px 16px; border-radius: 12px; background: rgba(12,16,22,.62); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(12px); display: flex; flex-direction: column; gap: 8px; transition: border-color .25s, background .25s, transform .25s; }
.xchain__item:hover { border-color: rgba(255,255,255,.32); background: rgba(16,21,28,.78); transform: translateY(-2px); }
.xchain__item--core { border-color: rgba(255,74,61,.55); box-shadow: 0 0 0 1px rgba(255,74,61,.15), 0 18px 48px rgba(210,35,35,.18); }
.xchain__item--core:hover { border-color: rgba(255,90,74,.85); }
.xchain__head { display: flex; align-items: center; gap: 12px; color: #fff; }
.xchain__no { font-family: var(--num); font-size: 26px; font-weight: 700; color: rgba(255,255,255,.28); line-height: 1; }
.xchain__item--core .xchain__no { color: #ff5a4a; }
.xchain__head b { display: block; font-size: 20px; letter-spacing: 1px; }
.xchain__head em { display: block; font-style: normal; font-size: 12px; color: #ff8a7a; letter-spacing: 1px; margin-top: 2px; }
.xchain__item:not(.xchain__item--core) .xchain__head em { color: #9fb3c4; }
.xchain__item p { font-size: 13px; color: #a9b0b8; }
.xchain__links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 4px; }
.xchain__links a { font-size: 12px; color: #dfe4e9; padding: 3px 9px; border-radius: 999px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.04); }
.xchain__links a:hover { border-color: #ff5a4a; color: #fff; background: rgba(210,35,35,.25); }
/* 板块之间的连线：一颗光点从左向右流动，表示经验与能力的流向 */
.xchain__arrow { position: relative; display: flex; align-items: center; justify-content: center; }
.xchain__arrow::before { content: ""; position: absolute; left: 8px; right: 8px; top: 50%; height: 1px; background: linear-gradient(90deg, rgba(255,90,74,.15), rgba(255,90,74,.7)); }
.xchain__arrow::after { content: ""; position: absolute; right: 6px; top: 50%; width: 7px; height: 7px; border: solid #ff5a4a; border-width: 1px 1px 0 0; transform: translateY(-50%) rotate(45deg); }
.xchain__arrow span { position: relative; z-index: 1; font-size: 11px; letter-spacing: 1px; color: #ffb3a8; background: #0a0d12; padding: 2px 6px; border-radius: 3px; transform: translateY(-14px); white-space: nowrap; }
.xchain__arrow > span::after { content: ""; position: absolute; left: -30px; top: 22px; width: 6px; height: 6px; border-radius: 50%; background: #ff5a4a; box-shadow: 0 0 10px #ff5a4a; animation: chainflow 2.4s ease-in-out infinite; }
.xchain__arrow + .xchain__item + .xchain__arrow > span::after { animation-delay: 1.2s; }
@keyframes chainflow { 0% { transform: translateX(0); opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { transform: translateX(84px); opacity: 0; } }
@media (max-width: 1080px) {
  .xchain { grid-template-columns: 1fr 56px 1fr 56px 1fr; }
  .xchain__arrow span { font-size: 10px; padding: 1px 3px; }
  .xchain__arrow > span::after { display: none; }
}
@media (max-width: 860px) {
  /* 平板：仍横排三段，去掉说明文字与连线标签，控制首屏高度 */
  .xchain { grid-template-columns: 1fr 36px 1fr 36px 1fr; }
  .xchain__item { padding: 14px 14px 12px; }
  .xchain__item p, .xchain__arrow span { display: none; }
  .xchain__head b { font-size: 17px; }
  .xchain__no { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) { .xchain__arrow > span::after { animation: none; display: none; } }

/* 频道页首屏：比首页矮，下方没有上浮卡片 */
.xhero--channel { min-height: 0; height: clamp(560px, calc(100vh - var(--header-h) - 96px), 760px); padding: 40px 0 56px; align-items: center; }
.xhero--drone { height: auto; min-height: clamp(560px, calc(100vh - var(--header-h) - 96px), 760px); max-height: none; }
.xhero--channel h1 { font-size: clamp(32px, 4vw, 52px); }
.xhero--channel .crumbs { margin-bottom: 24px; }
.xhero--channel .xhero__tag { top: 20px; bottom: auto; }

/* 场景内跟随三维坐标的 HUD 标签 */
.hud-tag { position: absolute; left: 0; top: 0; display: flex; align-items: center; gap: 7px; white-space: nowrap; font-size: 12px; color: #e8edf2; padding: 4px 10px 4px 8px; margin: -14px 0 0 -6px; border-radius: 3px; background: rgba(8,12,18,.72); border: 1px solid rgba(143,211,255,.35); backdrop-filter: blur(4px); opacity: 0; transition: opacity .3s; will-change: transform; }  /* 首帧前不显示，由 hero.js 按位置开启 */
.hud-tag::before { content: ""; position: absolute; left: 6px; top: 100%; width: 1px; height: 18px; background: linear-gradient(rgba(143,211,255,.6), transparent); }
.hud-tag i { width: 6px; height: 6px; border-radius: 50%; background: #3ddc84; box-shadow: 0 0 8px #3ddc84; }
.hud-tag--warn { border-color: rgba(255,90,74,.6); }
.hud-tag--warn i { background: #ff4a3d; box-shadow: 0 0 8px #ff4a3d; animation: blink 1s infinite; }
.hud-tag--uav { border-color: rgba(255,255,255,.4); }
.hud-tag--uav i { background: #fff; box-shadow: 0 0 8px #fff; }
.hud-tag--nest i { background: #ff4a3d; box-shadow: 0 0 8px #ff4a3d; }
@keyframes blink { 50% { opacity: .25; } }

/* 截取海报图用（?snap）：只留三维画面 */
.hero-snap .xhero > :not(.xhero__stage), .hero-snap .xhero > :not(.xhero__stage) *, .hero-snap .note-toggle, .hero-snap .pillars { visibility: hidden !important; }
.hero-snap .xhero__poster { display: none; }

@media (max-width: 900px) {
  .xhero__shade { background: linear-gradient(0deg, rgba(5,7,11,.97) 0%, rgba(5,7,11,.9) 50%, rgba(5,7,11,.15) 72%, rgba(5,7,11,0)); }
  .hud-tag { font-size: 11px; }
}
@media (max-width: 640px) {
  .xhero { min-height: 820px; max-height: none; padding: 260px 0 110px; align-items: flex-end; }
  .xhero__stage--training > img, .xhero__stage--vision > img, .xhero__stage--drone > img, .xhero__stage--capabilities > img, .xhero__stage--software > img { object-position: 76% center; filter: brightness(.65); }
  .xhero__stage > .xhero__motion { display: none; }
  .xhero__stage--drone > img { object-position: 84% center; }
  #hero { padding-top: 160px; }
  .xhero__sub { font-size: 15px; margin: 18px 0 26px; }
  .xhero__metrics { margin-top: 32px; width: 100%; }
  .xhero__metrics div { padding: 10px 14px; flex: 1; }
  .xhero__metrics b { font-size: 22px; }
  #hero .xhero__metrics div { min-width: 0; padding: 10px 8px; font-size: 12px; }
  #hero .xhero__metrics b { font-size: clamp(15px, 4vw, 20px); white-space: nowrap; }
  .xhero__tag { top: 16px; bottom: auto; right: 16px; }
  .xhero--channel { height: auto; min-height: 720px; padding: 0 0 48px; align-items: flex-end; }
  .xhero--drone .xhero__badge { font-size: 11px; letter-spacing: .5px; gap: 8px; }
  .xhero--channel .xhero__tag { bottom: auto; }
}
@media (prefers-reduced-motion: reduce) {
  #hero > .xhero__stage[data-hero-background] { transition: none; }
  .xhero__badge i { animation: none; }
}

/* ---------- 三大业务方向 ---------- */
.pillars { margin-top: -72px; position: relative; z-index: 5; }
.pillar {
  background: #fff; border-radius: var(--radius); padding: 32px 30px 28px;
  box-shadow: 0 18px 48px rgba(0,0,0,.08); border-top: 3px solid var(--ink);
  display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s;
}
.pillar:hover { transform: translateY(-4px); box-shadow: 0 24px 56px rgba(0,0,0,.12); }
.pillar--core { border-top-color: var(--red); }
.pillar__no { font-family: var(--num); font-size: 13px; color: var(--ink-3); letter-spacing: 2px; }
.pillar h3 { font-size: 24px; margin: 6px 0 10px; }
.pillar > p { color: var(--ink-2); font-size: 15px; min-height: 52px; }
.pillar ul { margin: 20px 0 24px; display: grid; gap: 10px; }
.pillar li a { display: flex; justify-content: space-between; align-items: center; font-size: 15px; padding: 10px 14px; background: var(--paper-2); border-radius: 6px; transition: background .2s, color .2s; }
.pillar li a:hover { background: var(--paper-3); color: var(--red); }
.pillar li a .tag--red { font-size: 11px; }
.pillar .link-arrow { margin-top: auto; }

/* 首页：专业能力名称为主，通俗解释作为常驻小字。 */
.home-capabilities { margin-bottom: 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.home-capability { padding: 22px 24px; border: 1px solid rgba(255,255,255,.13); border-top: 2px solid var(--red); border-radius: var(--radius); background: rgba(255,255,255,.025); }
.home-capability h3 { font-size: 21px; color: #f3f4f5; }
.home-capability p { margin-top: 10px; font-size: 15px; color: #c3c7cc; }
.home-capability small { display: block; margin-top: 12px; font-size: 12px; color: #969da6; }
.home-capabilities__scope { margin: 16px 0 28px; font-size: 13px; color: #a9abae; }
.cta .home-form-hint { font-size: 13px; }
@media (max-width: 640px) { .home-capabilities { grid-template-columns: 1fr; gap: 12px; } .home-capability { padding: 18px 20px; } }

/* 视觉 AI：专业分层为主，通俗解释常驻，不随原型批注开关隐藏。 */
.vision-layer { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 14px 0 18px; }
.vision-layer small { color: #b8bec6; font-size: 13px; }
.vision-plain { display: block; margin-top: 12px; font-size: 12px; color: var(--ink-3); }
.layer-col:last-child .vision-plain { color: #b8bec6; }
.layer-col:last-child h3 small { color: #ffab9e; }

/* 无人机频道与详情：通俗解释作为常驻小字，与原型批注分别管理。 */
.plain-aside { display: block; margin-top: 12px; font-size: 13px; line-height: 1.65; color: var(--ink-3); }
.section--dark .plain-aside { color: #b8bec6; }
.xhero .plain-aside, .page-hero .plain-aside { color: #b8bec6; margin: -16px 0 24px; }
.plain-aside--section { margin: 0 0 18px; }
.ccard__body .spec-note { font-size: 12px; line-height: 1.65; color: var(--ink-3); }
.loop-lg { margin-top: 12px; }
.mode .plain-aside { margin: 10px 0 0; }
.detail .plain-aside--section + p { margin-top: 12px; }

/* ---------- 场景卡片 ---------- */
.scene-card {
  background: var(--dark-2); color: #e9e9ea; border-radius: var(--radius); overflow: hidden;
  display: flex; flex-direction: column; border: 1px solid rgba(255,255,255,.06);
  transition: transform .25s, border-color .25s;
}
.section:not(.section--dark) .scene-card { background: #fff; color: var(--ink); border-color: var(--line); }
.scene-card:hover { transform: translateY(-4px); border-color: rgba(210,35,35,.6); }
.scene-card__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #000; }
.scene-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.scene-card:hover .scene-card__img img { transform: scale(1.05); }
.scene-card__img .tag { position: absolute; left: 12px; top: 12px; background: rgba(0,0,0,.6); color: #fff; backdrop-filter: blur(4px); }
.scene-card__img .layer { left: auto; right: 12px; }
.scene-card__body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.scene-card h3 { font-size: 18px; }
.scene-card p { font-size: 14px; color: #a9abae; }
.section:not(.section--dark) .scene-card p { color: var(--ink-2); }
.scene-card__metric { margin-top: auto; padding-top: 12px; border-top: 1px dashed rgba(255,255,255,.14); display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.section:not(.section--dark) .scene-card__metric { border-top-color: var(--line); }
.scene-card__metric b { font-family: var(--num); font-size: 26px; color: #ff5a5a; font-weight: 600; }
.section:not(.section--dark) .scene-card__metric b { color: var(--red); }
.scene-card__metric span { font-size: 13px; }
.scene-card__cond { font-size: 12px; color: #7f8183; min-height: 5.1em; line-height: 1.7; }
.scene-card__tags { display: flex; flex-wrap: wrap; gap: 8px; padding: 20px 20px 0; }
.scene-card__tags .tag { font-size: 12px; }
.scene-card__source { font-size: 11px; color: var(--ink-3); padding-top: 4px; }
.scene-card.is-hidden { display: none; }
.scroller { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 72px) / 4); gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
.scroller > * { scroll-snap-align: start; }
.scroller::-webkit-scrollbar { height: 6px; }
.scroller::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 3px; }

/* ---------- 价值三层 ---------- */
.layers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.layer-col { padding: 36px 32px; position: relative; background: #fff; }
.layer-col + .layer-col { border-left: 1px solid var(--line); }
.layer-col:last-child { background: var(--dark-3); color: #fff; }
.layer-col:last-child p, .layer-col:last-child li { color: #c9cbce; }
.layer-col__no { font-family: var(--num); font-size: 48px; color: var(--paper-3); font-weight: 700; line-height: 1; }
.layer-col:last-child .layer-col__no { color: rgba(255,255,255,.12); }
.layer-col h3 { font-size: 22px; margin: 14px 0 10px; }
.layer-col h3 small { display: block; font-size: 13px; color: var(--red); font-weight: 500; margin-top: 4px; }
.layer-col p { color: var(--ink-2); font-size: 15px; }
.layer-col ul { margin-top: 18px; display: grid; gap: 8px; }
.layer-col li { font-size: 14px; color: var(--ink-2); padding-left: 16px; position: relative; }
.layer-col li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; background: var(--red); }
.layer-col li a:hover { color: var(--red); }

/* ---------- 无人机闭环 ---------- */
.drone { display: grid; grid-template-columns: 1.05fr 1fr; gap: 56px; align-items: start; }
.drone__media { position: relative; border-radius: var(--radius); overflow: hidden; }
.drone__media img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.drone__media .float {
  position: absolute; right: 16px; bottom: 16px; width: 44%; border-radius: 8px; overflow: hidden;
  border: 2px solid rgba(255,255,255,.85); box-shadow: 0 12px 32px rgba(0,0,0,.4);
}
.drone__media .float img { aspect-ratio: 4 / 3; }
.loop { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 32px 0; counter-reset: step; }
.loop li { position: relative; text-align: center; font-size: 14px; padding: 16px 4px 12px; background: rgba(255,255,255,.05); border-radius: 6px; border: 1px solid rgba(255,255,255,.08); }
.loop li::before { counter-increment: step; content: "0" counter(step); display: block; font-family: var(--num); font-size: 20px; color: #ff5a5a; font-weight: 600; }
.loop li:not(:last-child)::after { content: "›"; position: absolute; right: -9px; top: 50%; transform: translateY(-50%); color: #ff5a5a; font-size: 18px; z-index: 1; }
.loop li { animation: loop-glow 7.5s infinite; }
.loop li:nth-child(2) { animation-delay: 1.5s; } .loop li:nth-child(3) { animation-delay: 3s; }
.loop li:nth-child(4) { animation-delay: 4.5s; } .loop li:nth-child(5) { animation-delay: 6s; }
@keyframes loop-glow { 0%, 18% { border-color: rgba(210,35,35,.9); background: rgba(210,35,35,.16); } 22%, 100% { border-color: rgba(255,255,255,.08); background: rgba(255,255,255,.05); } }
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { font-size: 13px; padding: 6px 12px; border-radius: 20px; border: 1px solid rgba(255,255,255,.18); color: #d6d7d9; }
.section:not(.section--dark) .chip { border-color: var(--line); color: var(--ink-2); background: #fff; }
/* 筛选按钮：选择器需高于上面 .section:not(.section--dark) .chip 的优先级 */
.section button.chip { cursor: pointer; font-family: inherit; background: #fff; }
.section button.chip:hover { border-color: var(--red); color: var(--red); }
.section:not(.section--dark) button.chip.is-on { background: var(--red); border-color: var(--red); color: #fff; }

/* ---------- 数字条 ---------- */
.stats { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { padding: 8px 28px; border-left: 1px solid var(--line); }
.stat:first-child { border-left: 0; padding-left: 0; }
.stat b { font-family: var(--num); font-size: 46px; font-weight: 600; color: var(--ink); line-height: 1.1; }
.stat b sup { font-size: 18px; color: var(--red); margin-left: 2px; vertical-align: super; }
.stat b small { font-size: 18px; margin-left: 4px; font-weight: 500; }
.stat p { color: var(--ink-2); font-size: 15px; margin-top: 6px; }
.stat cite { display: block; font-style: normal; font-size: 12px; color: var(--ink-3); margin-top: 4px; }

/* ---------- AI 培训 ---------- */
.training { display: grid; grid-template-columns: 1fr 1.4fr; gap: 56px; align-items: start; }
.tiers { display: grid; gap: 14px; }
.tier { display: grid; grid-template-columns: 92px 1fr auto; gap: 20px; align-items: center; padding: 22px 24px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); transition: border-color .2s, box-shadow .2s; }
.tier:hover { border-color: var(--red); box-shadow: 0 10px 28px rgba(0,0,0,.06); }
.tier__lv { font-size: 20px; font-weight: 700; color: var(--red); }
.tier__lv small { display: block; font-size: 12px; color: var(--ink-3); font-weight: 400; }
.tier h4 { font-size: 16px; }
.tier p { font-size: 14px; color: var(--ink-2); margin-top: 4px; }
.tier .tag { white-space: nowrap; }
/* 英文层级名（Development 等）比中文三字宽：加宽首列并略缩字号，避免压到课程标题 */
html[lang="en"] .tier { grid-template-columns: 120px 1fr auto; }
html[lang="en"] .tier__lv { font-size: 18px; line-height: 1.3; }
.path { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 28px; font-size: 14px; }
.path span { padding: 6px 12px; background: var(--paper-3); border-radius: 4px; }
.path i { font-style: normal; color: var(--red); }

/* ---------- 软件与工坊 ---------- */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.duo__card { border-radius: var(--radius); padding: 36px; background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 14px; }
.duo__card h3 { font-size: 24px; }
.duo__card > p { color: var(--ink-2); }
.duo__items { display: grid; gap: 12px; margin: 8px 0 12px; }
.duo__item { display: grid; grid-template-columns: 44px 1fr; gap: 14px; align-items: start; padding: 14px; border-radius: 8px; background: var(--paper-2); }
.duo__item:hover { background: var(--paper-3); }
.duo__icon { width: 44px; height: 44px; border-radius: 8px; background: var(--ink); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 16px; }
.duo__item h4 { font-size: 16px; }
.duo__item p { font-size: 13px; color: var(--ink-2); }
.duo__card .link-arrow { margin-top: auto; }

/* ---------- 案例 ---------- */
.case { padding: 28px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 10px; transition: border-color .2s; }
.case:hover { border-color: var(--red); }
.case h3 { font-size: 18px; }
.case p { font-size: 14px; color: var(--ink-2); }
.case__nums { display: flex; gap: 20px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); flex-wrap: wrap; }
.case__nums b { font-family: var(--num); font-size: 22px; color: var(--red); display: block; line-height: 1.2; }
.case__nums span { font-size: 12px; color: var(--ink-3); }

/* ---------- 咨询表单 ---------- */
.cta { background: var(--dark-3); color: #fff; }
.cta .wrap { display: grid; grid-template-columns: 1fr 1.2fr; gap: 56px; align-items: start; }
.cta h2 { font-size: 32px; }
.cta p { color: #b9bbbe; margin-top: 14px; }
.cta__contact { margin-top: 28px; display: grid; gap: 8px; font-size: 15px; color: #d6d7d9; }
.cta__contact b { font-family: var(--num); font-size: 26px; color: #fff; }
.form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.grid > *, .cta .wrap > *, .form > * { min-width: 0; }
.form .full { grid-column: 1 / -1; }
.form label { display: grid; gap: 6px; font-size: 13px; color: #b9bbbe; }
.form input, .form select, .form textarea {
  min-width: 0; max-width: 100%; font: inherit; font-size: 15px; color: #fff; background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.16); border-radius: 6px; padding: 11px 14px; outline: none;
}
.form textarea { min-height: 92px; resize: vertical; }
.form select option { color: var(--ink); }
.form input:focus, .form select:focus, .form textarea:focus { border-color: var(--red); background: rgba(255,255,255,.1); }
.form .agree { display: flex; align-items: center; gap: 8px; font-size: 13px; }
.form .agree a { color: #fff; text-decoration: underline; }
.form__msg { grid-column: 1 / -1; font-size: 14px; color: var(--detect); min-height: 20px; }
/* 浅色底表单 */
.form--light { background: #fff; padding: 28px; border-radius: var(--radius); border: 1px solid var(--line); }
.form--light label { color: var(--ink-2); }
.form--light input, .form--light select, .form--light textarea { color: var(--ink); background: var(--paper-2); border-color: var(--line); }
.form--light input:focus, .form--light select:focus, .form--light textarea:focus { background: #fff; }
.form--light .agree a { color: var(--ink); }
.form--light .form__msg { color: #1f8a4c; }

/* ---------- 页脚 ---------- */
.site-footer { background: var(--dark); color: #a9abae; font-size: 14px; padding: 64px 0 72px; }
.footer-top { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 32px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.08); }
.footer-brand img { height: 32px; filter: brightness(0) invert(1); opacity: .92; }
.footer-brand { min-width: 0; }
.footer-brand img { display: block; width: auto; max-width: 100%; }
.footer-contact { display: grid; gap: 10px; margin: 24px 0 0; line-height: 1.6; }
.footer-contact > div { display: grid; grid-template-columns: 2em minmax(0, 1fr); gap: 12px; }
.footer-contact dt { color: #7f8183; }
.footer-contact dd { margin: 0; overflow-wrap: anywhere; }
.footer-contact__address dd { color: #929598; line-height: 1.6; }
.footer-contact__address dd span { display: block; }
.footer-contact--en > div { grid-template-columns: 4em minmax(0, 1fr); }
.footer-contact a:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.site-footer h4 { color: #fff; font-size: 15px; margin-bottom: 14px; }
.site-footer li { margin: 8px 0; }
.site-footer a:hover { color: #fff; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 24px; font-size: 13px; flex-wrap: wrap; color: #7f8183; }
.footer-bottom .placeholder { border: 1px dashed rgba(255,255,255,.2); padding: 0 6px; border-radius: 3px; }

/* ---------- 频道/详情页 ---------- */
.page-hero { position: relative; background: var(--dark); color: #fff; padding: 48px 0; overflow: hidden; }
.page-hero__bg { position: absolute; inset: 0; }
.page-hero__bg img, .page-hero__bg video { position: absolute; left: 50%; transform: translateX(-50%); width: min(100%, var(--hero-canvas)); height: 100%; object-fit: cover; opacity: .38; }
@media (min-width: 1761px) {
  .xhero__stage > img, .xhero__stage > .xhero__motion, .page-hero__bg img, .page-hero__bg video {
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  }
}
.page-hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,19,21,.95), rgba(18,19,21,.6) 60%, rgba(18,19,21,.35)); }
/* 遮罩跟随有限图片画幅，超宽屏下保持相同明暗关系。 */
.xhero__shade, .page-hero__bg::after { left: 50%; right: auto; width: min(100%, var(--hero-canvas)); transform: translateX(-50%); }
.page-hero .wrap { position: relative; z-index: 2; }
.page-hero h1 { font-size: 44px; font-weight: 700; letter-spacing: 1px; }
.page-hero__sub { font-size: 18px; color: #c9cbce; margin: 18px 0 32px; max-width: 680px; }
/* 重点工业与培训频道沿用首页的沉浸式首屏风格。 */
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) { background: #05070b; }
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .page-hero__bg img { opacity: 1; object-position: center; }
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .page-hero__bg::after { background: linear-gradient(90deg, rgba(5,7,11,.94), rgba(5,7,11,.7) 38%, rgba(5,7,11,.12) 76%), linear-gradient(0deg, rgba(5,7,11,.65), transparent 35%); }
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) h1 { font-size: clamp(36px, 4.4vw, 56px); line-height: 1.2; }
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) h1 span { background: linear-gradient(100deg, #ff6a5a, #ff3b30 40%, #ffb199); -webkit-background-clip: text; background-clip: text; color: transparent; }
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .page-hero__sub, :is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .note { max-width: 580px; }
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .btn--primary { box-shadow: 0 10px 30px rgba(210,35,35,.35); }
:is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .btn--ghost { background: rgba(255,255,255,.05); backdrop-filter: blur(6px); }
@media (max-width: 640px) {
  :is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .page-hero__bg img { object-position: 76% center; filter: brightness(.65); }
  :is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) .page-hero__bg::after { background: linear-gradient(0deg, rgba(5,7,11,.97), rgba(5,7,11,.72) 55%, rgba(5,7,11,.2)); }
  :is(.page-hero--training, .page-hero--vision, .page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--solutions, .page-hero--forge, .page-hero--cases, .page-hero--about, .page-hero--software) h1 { font-size: 30px; }
}
.crumbs { font-size: 13px; color: #a9abae; margin-bottom: 22px; display: flex; gap: 8px; flex-wrap: wrap; }
.crumbs a:hover { color: #fff; }
.crumbs > :not(:first-child)::before { content: "/"; margin-right: 8px; opacity: .5; }
.subbar { position: sticky; top: var(--header-h); z-index: 40; background: #fff; border-bottom: 1px solid var(--line); }
.subbar .wrap { display: flex; gap: 4px; overflow-x: auto; }
.subbar a { padding: 14px 16px; font-size: 14px; color: var(--ink-2); white-space: nowrap; border-bottom: 2px solid transparent; }
.subbar a:hover { color: var(--red); }
.subbar a.is-active { color: var(--red); border-bottom-color: var(--red); }

.arch { display: grid; gap: 10px; }
.arch__row { display: grid; grid-template-columns: 150px 1fr; gap: 10px; }
.arch__label { background: var(--ink); color: #fff; border-radius: 6px; padding: 16px; display: flex; flex-direction: column; justify-content: center; }
.arch__label b { font-size: 16px; }
.arch__label small { font-size: 12px; color: #b9bbbe; }
.arch__row:last-child .arch__label { background: var(--red); }
.arch__cells { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; }
.arch__cells div { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 14px; font-size: 14px; text-align: center; display: grid; place-items: center; }
/* 分层架构网格：同一张图各层共用等宽列（arch--cols-4 / 5 / 8），单元格上下对齐；
   8 列图中只有 4 项的层用 .arch__wide 占两列。窄屏依次退为 4 列、2 列，奇数项的最后一格占满一行。 */
.arch[class*="arch--cols-"] .arch__cells { grid-template-columns: repeat(var(--arch-cols), minmax(0, 1fr)); }
.arch[class*="arch--cols-"] .arch__cells div { min-height: 80px; padding: 12px 10px; line-height: 1.45; }
/* 换行时机：中文只在 HTML 中 <wbr> 标出的词组边界换行（如"统一控制 | 与任务调度"），斜杠、加号留在行尾；
   多行时左右均衡，避免末行只剩一两个字；实在放不下才允许任意处断开。 */
.arch[class*="arch--cols-"] .arch__cells div { word-break: keep-all; overflow-wrap: anywhere; text-wrap: balance; hyphens: manual; }
.arch--cols-4 { --arch-cols: 4; }
.arch--cols-5 { --arch-cols: 5; }
.arch--cols-8 { --arch-cols: 8; }
.arch--cols-8 .arch__cells .arch__wide { grid-column: span 2; }
/* 英文层名较长：桌面加宽层名列，避免层名换行把整行撑高。 */
@media (min-width: 901px) { html[lang="en"] .arch[class*="arch--cols-"] .arch__row { grid-template-columns: 210px 1fr; } }
@media (max-width: 1280px) {
  .arch--cols-8 { --arch-cols: 4; }
  .arch--cols-8 .arch__cells .arch__wide { grid-column: auto; }
}
@media (max-width: 900px) {
  .arch[class*="arch--cols-"] .arch__row { grid-template-columns: 1fr; }
  .arch[class*="arch--cols-"] .arch__cells div { min-height: 68px; }
  html[lang="en"] .arch[class*="arch--cols-"] .arch__cells div { font-size: 13px; }
  .arch[class*="arch--cols-"] .arch__label { flex-direction: row; align-items: baseline; gap: 10px; padding: 10px 14px; }
}
@media (max-width: 640px) {
  .arch[class*="arch--cols-"] { --arch-cols: 2; }
  .arch[class*="arch--cols-"] .arch__cells > div:last-child:nth-child(odd) { grid-column: 1 / -1; }
}

.hw { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.hw__item { padding: 26px 22px; border-radius: var(--radius); background: var(--dark-2); border: 1px solid rgba(255,255,255,.06); }
.hw__item b { font-family: var(--num); font-size: 15px; color: #ff5a5a; letter-spacing: 1px; }
.hw__item h4 { font-size: 17px; margin: 10px 0 8px; color: #fff; }
.hw__item p { font-size: 14px; color: #a9abae; }

.steps { display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; counter-reset: s; }
.steps li { position: relative; padding: 24px 18px; background: #fff; border-radius: var(--radius); border: 1px solid var(--line); }
.steps li::before { counter-increment: s; content: "STEP 0" counter(s); font-family: var(--num); font-size: 12px; color: var(--red); letter-spacing: 1px; }
.steps h4 { font-size: 17px; margin: 8px 0 6px; }
.steps p { font-size: 13px; color: var(--ink-2); }

.deploy { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.deploy__item { padding: 28px; border-radius: var(--radius); border: 1px solid var(--line); background: #fff; }
.deploy__item h4 { font-size: 18px; margin-bottom: 8px; }
.deploy__item p { font-size: 14px; color: var(--ink-2); }
.deploy__item ul { margin-top: 14px; display: grid; gap: 6px; font-size: 13px; color: var(--ink-2); }
.deploy__item li::before { content: "· "; color: var(--red); font-weight: 700; }

.filter-bar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 28px; align-items: center; }
.filter-bar .label { font-size: 14px; color: var(--ink-3); margin-right: 6px; }
.more-scenes { margin-top: 40px; padding: 28px; border-radius: var(--radius); background: #fff; border: 1px dashed var(--line); }
.more-scenes h4 { font-size: 16px; margin-bottom: 14px; }
.more-scenes .chips { gap: 8px; }

/* 场景详情 */
.detail { display: grid; grid-template-columns: 1fr 340px; gap: 48px; align-items: start; }
.detail h2 { font-size: 26px; margin: 0 0 18px; }
.detail section + section { margin-top: 56px; }
.pain { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.pain div { padding: 22px; border-radius: var(--radius); background: var(--paper-2); }
.pain b { display: block; font-size: 16px; margin-bottom: 6px; }
.pain p { font-size: 14px; color: var(--ink-2); }
.gallery { display: grid; grid-template-columns: 2fr 1fr; grid-template-rows: 1fr 1fr; gap: 12px; }
.gallery figure { margin: 0; position: relative; border-radius: 8px; overflow: hidden; background: #000; }
.gallery figure:first-child { grid-row: span 2; }
.gallery img, .gallery video { width: 100%; height: 100%; object-fit: cover; min-height: 140px; }
.gallery figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 22px 12px 8px; font-size: 12px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.75)); }
.detect-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-top: 20px; }
.detect-list div { padding: 16px; border-radius: 8px; border: 1px solid var(--line); }
.detect-list b { font-size: 15px; display: block; }
.detect-list span { font-size: 13px; color: var(--ink-2); }
table.spec { width: 100%; border-collapse: collapse; font-size: 14px; }
table.spec th, table.spec td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; }
table.spec thead th { background: var(--ink); color: #fff; font-weight: 600; }
table.spec tbody th { font-weight: 600; }
table.spec td.num { font-family: var(--num); font-size: 17px; color: var(--red); font-weight: 600; }
.spec-note { font-size: 13px; color: var(--ink-3); margin-top: 10px; }
.values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.values div { padding: 22px; border-left: 3px solid var(--red); background: var(--paper-2); border-radius: 0 8px 8px 0; }
.values b { display: block; margin-bottom: 6px; }
.values p { font-size: 14px; color: var(--ink-2); }
.landing { padding: 28px; border-radius: var(--radius); background: var(--dark-3); color: #e9e9ea; display: grid; grid-template-columns: repeat(3, auto) 1fr; gap: 36px; align-items: center; }
.landing b { font-family: var(--num); font-size: 40px; color: #fff; display: block; line-height: 1.1; }
.landing span { font-size: 13px; color: #a9abae; }
.landing p { font-size: 14px; color: #c9cbce; }
.aside { position: sticky; top: calc(var(--header-h) + 24px); display: grid; gap: 16px; }
.aside__card { padding: 24px; border-radius: var(--radius); border: 1px solid var(--line); background: #fff; }
.aside__card h4 { font-size: 16px; margin-bottom: 12px; }
.aside__card p { font-size: 14px; color: var(--ink-2); }
.aside__card--cta { background: var(--red); color: #fff; border: 0; }
.aside__card--cta p { color: rgba(255,255,255,.85); margin-bottom: 16px; }
.aside__card--cta .btn { background: #fff; color: var(--red); width: 100%; justify-content: center; }
.aside__links a { display: flex; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.aside__links a:last-child { border-bottom: 0; }
.aside__links a:hover { color: var(--red); }

/* ---------- 无人机 / AI 培训频道组件 ---------- */
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-top: 40px; }
.kpi { padding: 22px; border-radius: var(--radius); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); }
.section:not(.section--dark) .kpi { background: #fff; border-color: var(--line); }
.kpi b { font-family: var(--num); font-size: 32px; color: #ff5a5a; font-weight: 600; display: block; line-height: 1.2; }
.section:not(.section--dark) .kpi b { color: var(--red); }
.kpi span { font-size: 14px; display: block; margin-top: 4px; }
.kpi small { font-size: 12px; color: var(--ink-3); display: block; margin-top: 4px; }
.loop-lg { --loop-gap: 32px; display: grid; grid-template-columns: repeat(5, 1fr); gap: var(--loop-gap); counter-reset: step; }
.loop-lg li { position: relative; padding: 24px 20px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.loop-lg li::before { counter-increment: step; content: "0" counter(step); font-family: var(--num); font-size: 28px; font-weight: 700; color: var(--red); display: block; line-height: 1; margin-bottom: 12px; }
/* 箭头居中放在卡片间距里，不压边框；间距 32px、箭头宽 18px。 */
.loop-lg li:not(:last-child)::after { content: "→"; position: absolute; top: 30px; right: calc(var(--loop-gap) / -2 - 9px); width: 18px; text-align: center; color: var(--red); font-weight: 700; line-height: 1; }
.loop-lg h4 { font-size: 17px; margin-bottom: 6px; }
.loop-lg p { font-size: 13px; color: var(--ink-2); }
/* 步骤说明：中文在标点（，、）处换行，不在词中断开；放不下时才任意断开。下方紧跟的指标卡与步骤卡同一间距。 */
.loop-lg h4, .loop-lg p { word-break: keep-all; overflow-wrap: anywhere; text-wrap: pretty; }
.loop-lg + .kpis { gap: 32px; }
.media-split { display: grid; grid-template-columns: 1.15fr 1fr; gap: 48px; align-items: start; }
.media-split--rev { grid-template-columns: 1fr 1.15fr; }
.shot { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); box-shadow: 0 18px 40px rgba(0,0,0,.12); background: #000; }
.shot img, .shot video { width: 100%; display: block; }
.shot + .shot { margin-top: 16px; }
.shot-cap { font-size: 12px; color: var(--ink-3); margin-top: 8px; }
.feat { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.feat div { padding: 18px; border-radius: 8px; background: var(--paper-2); }
.feat b { display: block; font-size: 15px; margin-bottom: 4px; }
.feat p { font-size: 13px; color: var(--ink-2); }
.section--gray .feat div, .section--gray .pain div { background: #fff; }
.design-list { margin-top: 22px; display: grid; gap: 10px; }
.design-list li { padding: 12px 14px 12px 16px; border-left: 3px solid var(--red); background: #fff; border-radius: 0 6px 6px 0; font-size: 14px; color: var(--ink-2); }
.design-list b { color: var(--ink); }
.scene-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.scene-tile { padding: 22px 18px; border-radius: var(--radius); background: var(--dark-2); border: 1px solid rgba(255,255,255,.06); display: flex; flex-direction: column; gap: 8px; transition: border-color .2s, transform .2s; }
.scene-tile:hover { border-color: rgba(210,35,35,.7); transform: translateY(-3px); }
.scene-tile .no { font-family: var(--num); font-size: 13px; color: #ff5a5a; letter-spacing: 1px; }
.scene-tile h4 { font-size: 17px; color: #fff; }
.scene-tile p { font-size: 13px; color: #a9abae; line-height: 1.65; }
.scene-tile .obj { margin-top: auto; padding-top: 10px; border-top: 1px dashed rgba(255,255,255,.12); font-size: 12px; color: #8a8c8f; }
.modes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.mode { padding: 30px 28px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; gap: 12px; }
.mode--hl { border: 2px solid var(--red); }
.mode__tag { font-family: var(--num); font-size: 13px; color: var(--red); letter-spacing: 1px; font-weight: 600; }
.mode h3 { font-size: 22px; }
.mode__lead { font-size: 15px; color: var(--ink-2); }
.mode dl { margin: 6px 0 0; display: grid; gap: 10px; }
.mode dt { font-size: 12px; color: var(--ink-3); }
.mode dd { margin: 2px 0 0; font-size: 14px; }
.mode__foot { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--line); font-size: 13px; color: var(--ink-2); }
.phases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 24px; }
.phase { padding: 22px 24px; border-radius: var(--radius); background: var(--dark-3); color: #e9e9ea; }
.phase b { font-family: var(--num); font-size: 26px; color: #fff; display: block; }
.phase span { font-size: 13px; color: #ff8080; }
.phase p { font-size: 14px; color: #b9bbbe; margin-top: 8px; }
.compliance { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.compliance div { padding: 22px; border-radius: var(--radius); border: 1px solid var(--line); background: #fff; }
.compliance b { display: block; font-size: 16px; margin-bottom: 8px; }
.compliance p { font-size: 13px; color: var(--ink-2); }

.courses { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
/* 用 subgrid 让同一行卡片的表头与正文各自对齐，标题折行时表头一起变高 */
.course { border-radius: var(--radius); background: #fff; border: 1px solid var(--line); overflow: hidden; display: grid; grid-template-rows: subgrid; grid-row: span 2; gap: 0; }
.course__head { padding: 26px 26px 20px; background: var(--ink); color: #fff; }
.course:nth-child(2) .course__head { background: var(--dark-3); }
.course:nth-child(3) .course__head { background: var(--red); }
.course__head small { font-size: 12px; letter-spacing: 2px; opacity: .75; }
.course__head h3 { font-size: 24px; margin: 6px 0 4px; }
.course__head p { font-size: 14px; opacity: .85; }
.course__body { padding: 22px 26px 26px; display: flex; flex-direction: column; gap: 16px; flex: 1; }
.course__body h4 { font-size: 13px; color: var(--ink-3); font-weight: 500; margin-bottom: 8px; }
.course__body li { font-size: 14px; padding-left: 16px; position: relative; margin: 6px 0; }
.course__body li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; background: var(--red); }
.course__meta { margin-top: auto; display: flex; gap: 8px; flex-wrap: wrap; }
.diff { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.diff div { padding: 28px; border-radius: var(--radius); background: var(--dark-2); border: 1px solid rgba(255,255,255,.06); }
.diff b { font-family: var(--num); font-size: 14px; color: #ff5a5a; letter-spacing: 1px; }
.diff h4 { font-size: 19px; color: #fff; margin: 10px 0 8px; }
.diff p { font-size: 14px; color: #a9abae; }
.formats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.format { padding: 24px; border-radius: var(--radius); border: 1px solid var(--line); background: #fff; }
.format h4 { font-size: 17px; margin-bottom: 4px; }
.format .dur { font-family: var(--num); font-size: 22px; color: var(--red); font-weight: 600; margin: 8px 0; display: block; }
.format p { font-size: 13px; color: var(--ink-2); }
.works { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin-top: 20px; }
.works figure { margin: 0; border-radius: 8px; overflow: hidden; position: relative; background: #000; aspect-ratio: 16 / 9; }
.works img, .works video { width: 100%; height: 100%; object-fit: cover; }
.works figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 12px 8px; font-size: 12px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.78)); }
.faq { display: grid; gap: 12px; max-width: 880px; }
.faq details { border: 1px solid var(--line); border-radius: 8px; background: #fff; padding: 0 22px; }
.faq summary { cursor: pointer; padding: 18px 0; font-weight: 600; list-style: none; display: flex; justify-content: space-between; gap: 16px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; color: var(--red); font-size: 20px; line-height: 1; }
.faq details[open] summary::after { content: "−"; }
.faq details p { padding: 0 0 18px; color: var(--ink-2); font-size: 15px; }
.teachers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.teacher { padding: 24px; border-radius: var(--radius); border: 1px dashed var(--line); background: #fff; display: grid; grid-template-columns: 64px 1fr; gap: 16px; align-items: center; }
.teacher__avatar { width: 64px; height: 64px; border-radius: 50%; background: var(--paper-3); display: grid; place-items: center; color: var(--ink-3); font-size: 12px; }
.teacher h4 { font-size: 16px; }
.teacher p { font-size: 13px; color: var(--ink-2); }

@media (max-width: 1080px) {
  .scene-grid { grid-template-columns: repeat(3, 1fr); }
  .loop-lg { --loop-gap: 16px; grid-template-columns: repeat(3, 1fr); }
  .loop-lg li:not(:last-child)::after { display: none; }
  .loop-lg + .kpis { gap: 16px; }
  .compliance, .formats { grid-template-columns: repeat(2, 1fr); }
  .kpis { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 860px) {
  .media-split, .media-split--rev, .modes, .courses, .diff, .phases, .teachers { grid-template-columns: 1fr; }
  .scene-grid, .works { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .scene-grid, .loop-lg, .feat, .compliance, .formats, .works { grid-template-columns: 1fr; }
  .kpi b { font-size: 26px; }
}

/* ---------- 产品页 / 关于 / 联系 / 法律文本 ---------- */
.page-hero--light { background: linear-gradient(135deg, #f5f4f3 0%, #ebe9e8 100%); color: var(--ink); }
.page-hero--light .page-hero__sub { color: var(--ink-2); }
.page-hero--light .plain-aside { color: var(--ink-3); }
.page-hero--light .crumbs { color: var(--ink-3); }
.page-hero--light .crumbs a:hover { color: var(--red); }
.page-hero--light .btn--ghost { border-color: var(--ink); color: var(--ink); }
.page-hero--light .btn--ghost:hover { background: var(--ink); color: #fff; }
.product-hero { display: grid; grid-template-columns: 1fr 1.25fr; gap: 48px; align-items: center; }
.product-hero .shot { transform: perspective(1600px) rotateY(-6deg); }
.product-badge { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; }
.product-badge i { width: 44px; height: 44px; border-radius: 10px; background: #2f6f86; color: #fff; display: grid; place-items: center; font-style: normal; font-weight: 700; font-size: 20px; }
.product-badge span { font-size: 14px; color: var(--ink-2); line-height: 1.4; }
.product-badge b { display: block; font-size: 16px; color: var(--ink); }
.tabs-feature { display: grid; grid-template-columns: 300px 1fr; gap: 32px; align-items: start; }
.tabs-feature__list { display: grid; gap: 8px; }
.tabs-feature__list button { text-align: left; font: inherit; padding: 16px 18px; border-radius: 8px; border: 1px solid var(--line); background: #fff; cursor: pointer; transition: border-color .2s, background .2s; }
.tabs-feature__list button b { display: block; font-size: 16px; }
.tabs-feature__list button span { font-size: 13px; color: var(--ink-2); }
.tabs-feature__list button.is-on { border-color: var(--red); background: rgba(210,35,35,.04); box-shadow: inset 3px 0 0 var(--red); }
.tabs-feature__panel { display: none; }
.tabs-feature__panel.is-on { display: block; }
.tabs-feature__panel ul { margin-top: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 20px; }
.tabs-feature__panel li { font-size: 14px; color: var(--ink-2); padding-left: 16px; position: relative; }
.tabs-feature__panel li::before { content: ""; position: absolute; left: 0; top: 10px; width: 6px; height: 6px; background: var(--red); }
table.spec td.c, table.spec th.c { text-align: center; }
table.spec .yes { color: #1f8a4c; font-weight: 600; }
table.spec .no { color: var(--ink-3); }
table.spec tr.price td { font-family: var(--num); font-size: 18px; font-weight: 600; color: var(--ink); }
table.spec tr.quote th, table.spec tr.quote td { border-bottom: 0; padding-top: 18px; vertical-align: middle; }
/* 手机：版本对比表收紧内边距与按钮，首列保留 5 个字宽，避免逐字换行或表格超出屏幕。 */
@media (max-width: 640px) {
  table.spec:has(tr.quote) th, table.spec:has(tr.quote) td { padding: 10px 6px; }
  table.spec:has(tr.quote) tbody th { min-width: 5.5em; }
  table.spec tr.quote .btn { height: 32px; padding: 0 8px; font-size: 13px; }
}
/* 规范换行的说明表（spec--wrap）：首列只在"/"之后换行，内容在顿号、分号处换行，不在词中断开；手机上每行改为上下排列。 */
table.spec--wrap th, table.spec--wrap td { word-break: keep-all; overflow-wrap: anywhere; text-wrap: pretty; }
@media (min-width: 641px) { table.spec--wrap tbody th { white-space: nowrap; } }
@media (max-width: 640px) {
  table.spec--wrap thead { display: none; }
  table.spec--wrap tr, table.spec--wrap th, table.spec--wrap td { display: block; }
  table.spec--wrap tbody th { padding: 14px 0 2px; border-bottom: 0; }
  table.spec--wrap tbody td { padding: 0 0 14px; }
}
/* 联系页：段落避免末行孤字，标题各行均衡。 */
.page-hero--contact .page-hero__sub, .page-hero--contact ~ section p { text-wrap: balance; }
.page-hero--contact h1, .page-hero--contact ~ section h2 { text-wrap: balance; }
.info-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.info-card { padding: 24px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.info-card small { font-size: 13px; color: var(--ink-3); display: block; margin-bottom: 8px; }
.info-card b { font-size: 18px; display: block; line-height: 1.5; overflow-wrap: anywhere; }
/* 中文地址只在两段之间换行；英文地址按单词换行（不再用 break-all 拆开单词，邮箱等长串由 overflow-wrap 兜底）。 */
[data-company="office_address"] .addr-part { white-space: nowrap; }
.info-card p { font-size: 13px; color: var(--ink-2); margin-top: 6px; }
.facts { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 2px solid var(--ink); }
.facts div { padding: 20px 20px 20px 0; border-bottom: 1px solid var(--line); }
.facts small { font-size: 13px; color: var(--ink-3); display: block; }
.facts b { font-size: 17px; display: block; margin-top: 4px; }
.caps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cap { padding: 28px; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); }
.cap b { font-family: var(--num); font-size: 14px; color: var(--red); letter-spacing: 1px; }
.cap h3 { font-size: 19px; margin: 8px 0 10px; }
.cap p { font-size: 14px; color: var(--ink-2); }
.chain { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 8px; }
.chain div { padding: 22px; text-align: center; background: var(--dark-3); color: #fff; position: relative; }
.chain div:nth-child(2) { background: #3c3d3f; } .chain div:nth-child(3) { background: #46474a; } .chain div:nth-child(4) { background: var(--red); }
.chain b { font-size: 22px; display: block; }
.chain span { font-size: 13px; color: rgba(255,255,255,.75); }
.ip-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ip { display: grid; grid-template-columns: 64px 1fr auto; gap: 16px; align-items: center; padding: 16px 20px; border-radius: 8px; background: #fff; border: 1px solid var(--line); }
.ip__year { font-family: var(--num); font-size: 22px; font-weight: 600; color: var(--red); }
.ip h4 { font-size: 15px; }
.ip p { font-size: 12px; color: var(--ink-3); }
.placeholder-box { padding: 40px; border-radius: var(--radius); border: 2px dashed var(--line); text-align: center; color: var(--ink-3); background: #fff; }
.map-box { aspect-ratio: 16 / 9; border-radius: var(--radius); background: repeating-linear-gradient(45deg, #efeeec 0 12px, #f5f4f3 12px 24px); display: grid; place-items: center; color: var(--ink-3); border: 1px solid var(--line); text-align: center; padding: 20px; }
.directions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.direction { border-radius: var(--radius); overflow: hidden; background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; transition: transform .25s, box-shadow .25s; }
.direction:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(0,0,0,.08); }
.direction__img { aspect-ratio: 16 / 9; background: var(--dark-2); overflow: hidden; }
.direction__img img { width: 100%; height: 100%; object-fit: cover; }
.direction__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.direction__body h3 { font-size: 21px; }
.direction__body p { font-size: 14px; color: var(--ink-2); }
.direction__body .link-arrow { margin-top: auto; }
.prose { max-width: 820px; }
.prose h2 { font-size: 22px; margin: 40px 0 14px; padding-top: 8px; }
.prose h3 { font-size: 17px; margin: 22px 0 8px; }
.prose p, .prose li { color: var(--ink-2); font-size: 15px; line-height: 1.9; }
.prose p + p { margin-top: 10px; }
.prose ul { margin: 8px 0 8px 1.2em; list-style: disc; }
.prose ol { margin: 8px 0 8px 1.4em; list-style: decimal; }
.prose table { margin: 12px 0; }
.prose .meta { font-size: 14px; color: var(--ink-3); }
.toc { position: sticky; top: calc(var(--header-h) + 24px); font-size: 14px; display: grid; gap: 6px; }
.toc a { color: var(--ink-2); padding: 4px 0 4px 12px; border-left: 2px solid var(--line); }
.toc a:hover { color: var(--red); border-left-color: var(--red); }
.legal { display: grid; grid-template-columns: 220px 1fr; gap: 56px; align-items: start; }

@media (max-width: 1080px) {
  .info-cards { grid-template-columns: repeat(2, 1fr); }
  .tabs-feature { grid-template-columns: 1fr; }
  .tabs-feature__list { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .product-hero, .directions, .caps, .ip-list, .legal { grid-template-columns: 1fr; }
  .product-hero .shot { transform: none; }
  .chain { grid-template-columns: repeat(2, 1fr); }
  .toc { display: none; }
}
@media (max-width: 640px) {
  .info-cards, .facts, .tabs-feature__list, .tabs-feature__panel ul { grid-template-columns: 1fr; }
  .ip { grid-template-columns: 52px 1fr; }
  .ip .tag { grid-column: 2; justify-self: start; }
}

/* ---------- 行业解决方案 ---------- */
.sol-nav { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.sol-nav a { padding: 9px 18px; border-radius: 999px; border: 1px solid rgba(255,255,255,.3); color: #fff; font-size: 14px; background: rgba(255,255,255,.06); backdrop-filter: blur(4px); }
.sol-nav a:hover { border-color: var(--red); background: var(--red); }
.sol { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: start; }
.sol--rev { grid-template-columns: 1fr 1.1fr; }
.sol__lead { color: var(--ink-2); margin-top: 16px; font-size: 16px; }
.sol__mods { display: grid; gap: 12px; }
.sol__mods .shot { margin-bottom: 8px; }
.sol__mods .shot img { aspect-ratio: 16 / 9; object-fit: cover; }
.section--gray .duo__item { background: #fff; }
/* 联系页咨询方向卡：点击即在表单中选中该方向；悬停与选中用品牌红描边，右侧箭头提示可选。 */
.consult-list { display: grid; gap: 10px; }
.consult-item { grid-template-columns: 44px minmax(0, 1fr) 20px; align-items: center; border: 1px solid var(--line); transition: border-color .2s, box-shadow .2s, background .2s; }
.consult-item::after { content: "→"; color: var(--ink-3); font-weight: 700; justify-self: end; transition: color .2s, transform .2s; }
.consult-item h4 { margin-bottom: 2px; word-break: keep-all; }
.consult-item p { word-break: keep-all; overflow-wrap: anywhere; text-wrap: pretty; }
.section--gray .consult-item:hover { background: #fff; border-color: var(--red); box-shadow: 0 8px 22px rgba(0,0,0,.06); }
.consult-item:hover::after { color: var(--red); transform: translateX(2px); }
.consult-item.is-selected { border-color: var(--red); box-shadow: inset 3px 0 0 var(--red); }
.consult-item.is-selected .duo__icon { background: var(--red); }
.consult-item.is-selected::after { content: "✓"; color: var(--red); }
.coal { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.coal > div { padding: 20px 18px; border-radius: var(--radius); background: var(--dark-2); border: 1px solid rgba(255,255,255,.06); }
.coal b { display: block; font-size: 18px; color: #fff; padding-bottom: 10px; margin-bottom: 10px; border-bottom: 2px solid var(--red); }
.coal li { font-size: 13px; color: #b9bbbe; padding: 5px 0; border-bottom: 1px dashed rgba(255,255,255,.08); line-height: 1.5; }
.coal li:last-child { border-bottom: 0; }
@media (max-width: 1080px) { .coal { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 860px) { .sol, .sol--rev { grid-template-columns: 1fr; gap: 32px; } .sol--rev .sol__mods { order: 2; } }
@media (max-width: 640px) { .coal { grid-template-columns: 1fr 1fr; } }

/* ---------- 客户案例 ---------- */
.ccards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ccard { display: flex; flex-direction: column; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); overflow: hidden; transition: transform .2s, box-shadow .2s, border-color .2s; }
.ccard--link:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0,0,0,.08); border-color: var(--red); }
.ccard--text { border-top: 3px solid var(--ink); }
.ccard__img { aspect-ratio: 16 / 10; overflow: hidden; background: var(--dark-2); }
.ccard__img img { width: 100%; height: 100%; object-fit: cover; }
.ccard__body { padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ccard__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.ccard h3 { font-size: 18px; }
.ccard p { font-size: 14px; color: var(--ink-2); }
.ccard .case__nums { padding-top: 12px; }
.ccard__foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding-top: 12px; border-top: 1px solid var(--line); margin-top: auto; }
.ccard__role { font-size: 12px; color: var(--ink-3); }
.ccard__role--own { color: #1f7a44; font-weight: 600; }
.ccard__role--own::before { content: "● "; }
.ccard.is-hidden, .crow.is-hidden { display: none; }
.clist { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 32px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 6px 24px; }
.crow { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.crow b { font-weight: 600; }
.crow span { color: var(--ink-3); font-size: 12px; white-space: nowrap; }
@media (max-width: 860px) { .clist { grid-template-columns: 1fr; } .crow { flex-direction: column; gap: 2px; } }
.case-meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius); margin-top: 28px; max-width: 900px; }
.case-meta div { padding: 14px 18px; }
.case-meta div + div { border-left: 1px solid rgba(255,255,255,.14); }
.case-meta small { display: block; font-size: 12px; color: #a9abae; }
.case-meta b { font-size: 15px; color: #fff; font-weight: 500; }
@media (max-width: 1080px) { .ccards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .ccards, .case-meta { grid-template-columns: 1fr; } .case-meta div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.14); } }

/* ---------- 新闻与洞察 ---------- */
.nfeatured { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 8px; }
.nlist { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.ncard { display: flex; flex-direction: column; border-radius: var(--radius); background: #fff; border: 1px solid var(--line); overflow: hidden; transition: transform .2s, box-shadow .2s, border-color .2s; }
.ncard:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(0,0,0,.08); border-color: var(--red); }
.ncard__img { aspect-ratio: 16 / 8; overflow: hidden; background: var(--dark-2); }
.ncard__img img { width: 100%; height: 100%; object-fit: cover; }
.ncard__body { padding: 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.ncard__meta { display: flex; gap: 10px; align-items: center; font-size: 13px; color: var(--ink-3); font-family: var(--num); }
.ncard h3 { font-size: 18px; line-height: 1.45; }
.nfeatured .ncard h3 { font-size: 22px; }
.ncard p { font-size: 14px; color: var(--ink-2); }
.ncard .link-arrow { margin-top: auto; font-size: 14px; }
.ncard.is-hidden { display: none; }
.npager { display: flex; justify-content: center; gap: 8px; margin-top: 36px; font-size: 14px; }
.npager span { min-width: 36px; height: 36px; padding: 0 12px; border-radius: 6px; border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink-2); background: #fff; }
.npager .is-on { background: var(--ink); color: #fff; border-color: var(--ink); }
/* 新闻与洞察文章：与案例详情一致——深色首屏（封面作背景）+ 全站宽度正文与侧栏。 */
.article__tags { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.article__tags .tag { white-space: nowrap; }
.article__body { min-width: 0; }
.article__cover { margin: 0 0 8px; }
.article__cover img { width: 100%; border-radius: var(--radius); aspect-ratio: 16 / 8; object-fit: cover; }
.article__cover figcaption { font-size: 13px; color: var(--ink-3); margin-top: 8px; }
.article .prose { max-width: none; padding-bottom: 8px; }
.article .prose h2 { font-size: 24px; margin: 44px 0 14px; }
.article .prose p, .article .prose li { font-size: 16px; }
.article .prose + .note { margin-top: 32px; }
@media (max-width: 1080px) { .nlist { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .nfeatured, .nlist { grid-template-columns: 1fr; } }

/* ---------- 列数修饰类：放在组件规则之后，并带自己的断点，避免内联样式挡住响应式 ---------- */
.g1 { grid-template-columns: 1fr; }
.g2 { grid-template-columns: repeat(2, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1080px) { .g4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 860px) { .g3 { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .g4 { grid-template-columns: 1fr; } }

/* ---------- 原型批注：标出需确认或尚未实现的地方，正式站删除 ---------- */
.note {
  display: block; position: relative; margin: 14px 0; padding: 10px 14px 10px 40px;
  background: #fff8db; border: 1px solid #f0d77a; border-radius: 6px;
  font-size: 13px; line-height: 1.6; color: #6b5300; text-align: left; font-weight: 400;
}
.note::before { content: "批注"; position: absolute; left: 8px; top: 10px; font-size: 11px; font-weight: 700; color: #8a6d00; writing-mode: horizontal-tb; }
.note--inline { display: inline-block; margin: 0 0 0 8px; padding: 1px 8px; font-size: 12px; vertical-align: middle; }
.note--inline::before { display: none; }
body.hide-notes .note { display: none !important; }
.note-toggle {
  position: fixed; right: 18px; bottom: 18px; z-index: 60;
  background: #fff8db; color: #6b5300; border: 1px solid #f0d77a; border-radius: 20px;
  padding: 8px 16px; font: inherit; font-size: 13px; cursor: pointer; box-shadow: 0 6px 18px rgba(0,0,0,.12);
}

/* ---------- 课程与无人机场景详情 ---------- */
.detail-modules { display: grid; gap: 16px; }
.detail-module { padding: 24px; background: var(--paper-2); border-left: 3px solid var(--red); border-radius: 0 8px 8px 0; }
.detail-module h3 { margin: 6px 0 10px; font-size: 19px; }
.detail-module p { color: var(--ink-2); font-size: 15px; }
.detail-list { display: grid; gap: 12px; }
.detail-list li { position: relative; padding-left: 20px; }
.detail-list li::before { content: ""; position: absolute; left: 0; top: .7em; width: 6px; height: 6px; background: var(--red); border-radius: 50%; }
.detail-page .detail > div, .detail-page .form > label { min-width: 0; }
.detail-page .form input, .detail-page .form select, .detail-page .form textarea { width: 100%; min-width: 0; }
.detail-page .form .agree input { width: auto; }
.detail-page .page-hero .note { max-width: 780px; }
.detail-page .detail section > p + p { margin-top: 14px; }
.detail-page .detail .chips { margin-top: 16px; }
.course__detail { margin-top: auto; padding-top: 8px; }

.scene-figure { margin: 0 0 24px; }
.scene-figure img { display: block; width: 100%; height: auto; border-radius: var(--radius); }
.scene-figure figcaption { margin-top: 10px; font-size: 13px; color: var(--ink-3); }
.mode__detail { margin: 18px 0; }
.more-scenes a.chip:hover, .more-scenes a.chip:focus-visible { border-color: var(--red); color: var(--red); }

/* ---------- 响应式 ---------- */
@media (max-width: 1080px) {
  .nav, .header-cta { display: none; }
  .menu-btn { display: block; }
  .lang-switch { margin-left: auto; }
  .lang-switch ~ .menu-btn { margin-left: 4px; }
  /* backdrop-filter 会让页头成为 fixed 子元素的定位容器，展开菜单时必须去掉 */
  body.menu-open { overflow: hidden; }
  body.menu-open .site-header { backdrop-filter: none; background: #fff; }
  body.menu-open .nav {
    display: flex; flex-direction: column; position: fixed; top: var(--header-h); left: 0; right: 0; bottom: 0;
    background: #fff; height: auto; padding: 12px 24px 40px; overflow-y: auto; gap: 0;
  }
  body.menu-open .nav > li { flex-direction: column; border-bottom: 1px solid var(--line); }
  body.menu-open .nav > li > a { padding: 16px 0; border: 0; }
  body.menu-open .subnav { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 12px; }
  body.menu-open .subnav a { white-space: normal; }
  body.menu-open .menu-btn span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  body.menu-open .menu-btn span:nth-child(2) { opacity: 0; }
  body.menu-open .menu-btn span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .scroller { grid-auto-columns: calc((100% - 24px) / 2.2); }
  .footer-top { grid-template-columns: 1fr 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
  .detail { grid-template-columns: 1fr; }
  .aside { position: static; grid-template-columns: 1fr 1fr; }
  .hw { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 860px) {
  .grid-3, .grid-4, .layers, .duo, .deploy, .values, .pain { grid-template-columns: 1fr; }
  .layer-col + .layer-col { border-left: 0; border-top: 1px solid var(--line); }
  .drone, .training, .cta .wrap { grid-template-columns: 1fr; gap: 36px; }
  .stats { grid-template-columns: repeat(2, 1fr); row-gap: 28px; }
  .stat:nth-child(3) { border-left: 0; padding-left: 0; }
  .landing { grid-template-columns: repeat(3, 1fr); }
  .landing p { grid-column: 1 / -1; }
  .section-head { flex-direction: column; align-items: flex-start; gap: 16px; }
}
@media (max-width: 640px) {
  :root { --header-h: 60px; }
  body { font-size: 15px; }
  .wrap { width: calc(100% - 32px); }
  .section { padding: 64px 0; }
  .section-head h2 { font-size: 26px; }
  .hero { min-height: auto; padding: 72px 0 120px; }
  .hero h1 { font-size: 32px; }
  .hero__sub { font-size: 16px; }
  .hero__meta { gap: 20px; margin-top: 36px; }
  .hero__meta b { font-size: 24px; }
  .page-hero { padding: 36px 0 40px; }
  .page-hero h1 { font-size: 30px; }
  .page-hero__sub { font-size: 16px; }
  .scroller { grid-auto-columns: 82%; }
  .title-lg br { display: none; }
  .loop { gap: 4px; }
  .loop li { font-size: 12px; padding: 10px 2px 8px; }
  .loop li::before { font-size: 16px; }
  .loop li:not(:last-child)::after { display: none; }
  .stat b { font-size: 34px; }
  .tier { grid-template-columns: 1fr; gap: 6px; } html[lang="en"] .tier { grid-template-columns: 1fr; }
  .form { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .gallery { grid-template-columns: 1fr; grid-template-rows: auto; }
  .gallery figure:first-child { grid-row: auto; }
  .aside { grid-template-columns: 1fr; }
  .hw, .steps { grid-template-columns: 1fr; }
  .arch__row { grid-template-columns: 1fr; }
  .landing { grid-template-columns: 1fr 1fr; }
  .detect-box span { font-size: 10px; }
}

/* 子页面背景退为低饱和度环境纹理，首页轮播保持原来的表现力。 */
.page-hero .page-hero__bg :is(img, video),
.xhero--channel .xhero__stage > img {
  opacity: .30;
  filter: saturate(.18) contrast(.85) brightness(.85);
}

/* 子页简介采用紧凑信息区，背景只作衬底；首页轮播不受影响。 */
:is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) {
  display: flex; align-items: center;
  min-height: 480px; height: auto; max-height: none; padding: 40px 0;
}
:is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) h1 { font-size: clamp(30px, 3.6vw, 44px); line-height: 1.2; }
:is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) .crumbs { margin-bottom: 18px; }
:is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) .eyebrow { margin-bottom: 12px; }
.industrial-channel-hero .xhero__badge { font-size: 12px; letter-spacing: 1px; padding: 6px 12px; margin-bottom: 16px; }
:is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) :is(.page-hero__sub, .xhero__sub) { font-size: 16px; line-height: 1.75; margin: 16px 0 24px; }
:is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) .plain-aside { margin: -8px 0 20px; }
@media (max-width: 640px) {
  :is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) { min-height: 0; padding: 36px 0 40px; align-items: center; }
  :is(.industrial-channel-hero, .page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) h1 { font-size: 30px; }
  .industrial-channel-hero .xhero__badge { font-size: 10px; letter-spacing: .3px; padding: 6px 10px; }
}

/* 保持原铺满尺度，只移动取景位置；不缩小成右侧完整插图。 */
.industrial-channel-hero .page-hero__bg img,
:is(.page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) .page-hero__bg img,
.industrial-channel-hero .xhero__stage > img {
  object-fit: cover; object-position: center var(--intro-focus-y, 35%);
}
.page-hero--vision { --intro-focus-y: 30%; }
.xhero--drone { --intro-focus-y: 18%; }
.page-hero--iiot { --intro-focus-y: 40%; }
.page-hero--twin { --intro-focus-y: 35%; }
.page-hero--integration { --intro-focus-y: 30%; }
.page-hero--solutions { --intro-focus-y: 45%; }
.page-hero--training { --intro-focus-y: 65%; }
@media (max-width: 900px) {
  .industrial-channel-hero .page-hero__bg img,
  :is(.page-hero--training, .page-hero--forge, .page-hero--cases, .page-hero--about) .page-hero__bg img,
  .industrial-channel-hero .xhero__stage > img { object-position: 76% var(--intro-focus-y, 35%); }
  .xhero--drone.industrial-channel-hero .xhero__stage > img { object-position: 84% var(--intro-focus-y); }
}

.page-hero--forge { --intro-focus-y: 55%; }

.page-hero--cases { --intro-focus-y: 45%; }
.page-hero--about { --intro-focus-y: 45%; }

/* 案例摘要数据保持紧凑，手机两列展示，避免把简介区撑成整屏。 */
.page-hero--cases .kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.page-hero--cases .kpi { min-width: 0; padding: 10px 14px; }
.page-hero--cases .kpi b { font-size: 28px; }
.page-hero--cases .kpi span { font-size: 13px; }
@media (max-width: 860px) {
  .page-hero--cases .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .page-hero--cases .kpi b { font-size: 26px; }
  .page-hero--cases .kpi span { font-size: 12px; }
}

/* 学生作品只列两项，使用静音选段展示，区别于教程及制作过程素材。 */
.student-works__intro { max-width: 860px; margin-top: 12px; color: var(--ink-2); font-size: 15px; }
.works.works--student { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.works--student figcaption { padding: 30px 16px 12px; font-size: 16px; }
.works--student figcaption small { display: block; margin-top: 2px; font-size: 12px; color: #d4d6d9; }
@media (max-width: 640px) {
  .works.works--student { grid-template-columns: 1fr; gap: 16px; }
  .works--student figcaption { font-size: 14px; padding: 24px 12px 10px; }
}

/* 三门培训课程沿用频道首屏，仅按各自主体调整纵向取景。 */
.page-hero--course-ai-strategy { --intro-focus-y: 55%; }
.page-hero--course-workplace-aigc { --intro-focus-y: 50%; }
.page-hero--course-llm-vision-development { --intro-focus-y: 45%; }

/* 区块标题：操作与标题对齐，说明独占下一行，补充信息采用小字。 */
.section-head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: 32px; row-gap: 12px; margin-bottom: 32px; }
.section-head__heading { min-width: 0; grid-column: 1; grid-row: 1; }
.section-head__heading h2 { text-wrap: balance; }
.section-head > :is(a, button) { grid-column: 2; grid-row: 1; justify-self: end; align-self: end; white-space: nowrap; }
.section-head__description { grid-column: 1 / -1; grid-row: 2; min-width: 0; max-width: 1040px; display: grid; gap: 8px; }
.section-head__description p { margin: 0; max-width: none; }
.section-head__description .section-head__lead { font-size: 16px; line-height: 1.75; }
.section-head__description .section-head__detail,
.section-head__description .plain-aside { margin: 0; font-size: 13px; line-height: 1.7; color: var(--ink-3); }
.section--dark .section-head__description :is(.section-head__detail, .plain-aside) { color: #a9abae; }
@media (max-width: 860px) {
  .section-head { grid-template-columns: minmax(0, 1fr); row-gap: 14px; }
  .section-head > :is(a, button) { grid-column: 1; grid-row: 2; justify-self: start; }
  .section-head:has(.section-head__description) > :is(a, button) { grid-row: 3; }
  .section-head__description { grid-column: 1; grid-row: 2; }
}


/* 标题下只显示简明主说明，功能边界与待确认项进入批注。 */
.section-head__review { grid-column: 1 / -1; }
.section-head__review:has(> .note:first-child) { min-width: 0; }
.hide-notes .section-head__review { display: none; }
.section-head__review .note { margin: 0; max-width: none; }
.section-head__review .note + .note { margin-top: 8px; }

/* 信息图标位于标题下方说明文字末尾，浮层独立于原型批注开关。 */
.info-tip-source, .section-head__review[hidden] { display: none !important; }
.info-tip { position: relative; margin: 0 0 0 2px; vertical-align: -0.15em; display: inline-flex; align-items: center; justify-content: center; width: 14px; height: 14px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: #80858c; cursor: pointer; font: inherit; font-size: 14px; line-height: 1; flex-shrink: 0; }
.info-tip svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; }
.info-tip:hover, .info-tip[aria-expanded="true"] { color: var(--red, #d91d22); background: rgba(215, 29, 34, .07); }
.info-tip:focus-visible { outline: 2px solid var(--red, #d91d22); outline-offset: 3px; }
:is(.section--dark, .xhero) .info-tip { color: #a9adb3; }
:is(.section--dark, .xhero) .info-tip:hover, :is(.section--dark, .xhero) .info-tip[aria-expanded="true"] { color: var(--red, #d91d22); background: rgba(210, 35, 35, .08); }
.info-popover { position: fixed; z-index: 10000; box-sizing: border-box; width: max-content; max-width: min(360px, calc(100vw - 16px)); max-height: calc(100vh - 16px); overflow: auto; padding: 15px 18px; border: 1px solid rgba(60, 66, 75, .14); border-radius: 10px; background: #fff; color: #555d67; box-shadow: 0 8px 28px rgba(0, 0, 0, .16); font-size: 13px; line-height: 1.8; text-align: left; }
.info-popover[hidden] { display: none; }
.info-popover p { margin: 0; color: inherit; font-size: inherit; line-height: inherit; }
.info-popover p + p { margin-top: 8px; }

.info-tip-tail { white-space: nowrap; }
.info-tip::before { content: ""; position: absolute; inset: -5px; border-radius: 50%; }
.ccard--link { position: relative; }
.ccard__target { color: inherit; text-decoration: none; }
.ccard__target::after { content: ""; position: absolute; inset: 0; }
.ccard .info-tip { z-index: 1; }
.ccard__target:focus-visible { outline: 2px solid var(--red, #d91d22); outline-offset: 3px; }

.info-tip-tail--punctuation .info-tip { margin-left: -2px; }

/* 三大业务方向：定制文字链接置于栏目标题右侧，产品入口另起一行。 */
.xchain__heading-row { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 4px 12px; min-width: 0; }
.xchain__service-link { flex-shrink: 0; margin: 6px 0 0 auto; color: #c4cbd3; font-size: 12px; line-height: 1.6; white-space: nowrap; text-underline-offset: 3px; }
.xchain__service-link:hover { color: #fff; text-decoration: underline; }
.xchain__service-link:focus-visible { outline: 2px solid #ff8a7a; outline-offset: 3px; }
.xchain__links--products { margin-top: auto; padding-top: 4px; }
.xchain__links--products a { white-space: nowrap; }
@media (min-width: 641px) and (max-width: 1080px) {
  .xchain__links--products { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 640px) {
  .xslide .xchain__service-link { display: none; }
}

/* 新闻与联系页：缺少合适实拍时采用低对比渐变，保留原有首屏尺寸。 */
.page-hero--subtle {
  --subtle-light: 99, 121, 139;
  color: #f3f4f5;
  background:
    radial-gradient(ellipse at 86% 26%, rgba(var(--subtle-light), .18), transparent 64%),
    linear-gradient(112deg, #15181c 0%, #20242a 58%, #292d32 100%);
}
.page-hero--contact { --subtle-light: 139, 105, 96; }
.page-hero--subtle .crumbs { color: #aeb4bd; }
.page-hero--subtle .crumbs a:hover { color: #fff; }
.page-hero--subtle .eyebrow { color: #e9968d; }
.page-hero--subtle .page-hero__sub { color: #c4c9d0; }

/* 首页两套背景独立共存，风格切换只改变图片，不调整文案和当前屏次。 */
[data-visual-style] [data-image-style] { transition: opacity .8s ease; }
[data-visual-style] [data-image-style="tech"] { opacity: var(--hero-image-opacity, 1); }
[data-visual-style] [data-image-style="realistic"] { opacity: 0; }
[data-visual-style="realistic"] [data-image-style="tech"] { opacity: 0; }
[data-visual-style="realistic"] [data-image-style="realistic"] { opacity: var(--hero-image-opacity, 1); }
/* 写实偏好在首屏绘制前生效；初始化不播放科技到写实的过渡。 */
/* 写实偏好：<head> 的 hero-style-boot.js 在首帧前写入 html[data-hero-style]，科技图从首帧起不显示；
   写实图加 .is-loaded（加载完成）后才淡入，加载期间只见深色底。首帧计算不触发过渡，所以首屏不会出现科技图。 */
html[data-hero-style="realistic"] [data-visual-style] [data-image-style="tech"] { opacity: 0; }
html[data-hero-style="realistic"] [data-visual-style] [data-image-style="realistic"] { opacity: 0; }
html[data-hero-style="realistic"] [data-visual-style] [data-image-style="realistic"].is-loaded { opacity: var(--hero-image-opacity, 1); }
.hero-style-switch { appearance: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; flex: 0 0 40px; margin-left: auto; padding: 9px; border: 0; border-radius: 0; background: transparent; color: #c8cdd4; cursor: pointer; transition: color .2s ease; }
.hero-style-switch[hidden] { display: none; }
.hero-style-switch svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.hero-style-switch [data-style-icon="tech"] { display: none; }
.hero-style-switch[data-current-style="realistic"] [data-style-icon="realistic"] { display: none; }
.hero-style-switch[data-current-style="realistic"] [data-style-icon="tech"] { display: block; }
.hero-style-switch:hover { color: #fff; }
.hero-style-switch[aria-busy="true"] { cursor: progress; }
.hero-style-status:empty { display: none; }
.hero-style-status { width: 100%; font-size: 12px; color: #e5b7b2; }
@media (max-width: 860px) { .hero-style-switch { margin-left: 0; } }
@media (max-width: 640px) { .hero-style-switch { width: 44px; height: 44px; flex-basis: 44px; margin: 0 auto; } }
@media (prefers-reduced-motion: reduce) { [data-visual-style] [data-image-style] { transition: none; } .xhero__stage > .xhero__motion { display: none; } }

/* 频道首屏沿用首页切换控件；保留低高度、弱化背景与原取景尺度。 */
:is(.page-hero, .xhero--channel)[data-visual-style] { --hero-image-opacity: .30; }
:is(.page-hero, .xhero--channel)[data-visual-style] .hero-style-switch { margin: 0 0 0 4px; align-self: center; }
:is(.page-hero, .xhero--channel)[data-visual-style] .hero-style-status { display: block; margin-top: 8px; }
:is(.page-hero, .xhero--channel)[data-visual-style] .hero-style-status:empty { display: none; }

/* 覆盖频道原有图片弱化规则，确保两套图片不会同时显现。 */
:is(.page-hero, .xhero--channel)[data-visual-style] [data-image-style="tech"] { opacity: var(--hero-image-opacity); }
:is(.page-hero, .xhero--channel)[data-visual-style] [data-image-style="realistic"] { opacity: 0; }
:is(.page-hero, .xhero--channel)[data-visual-style="realistic"] [data-image-style="tech"] { opacity: 0; }
:is(.page-hero, .xhero--channel)[data-visual-style="realistic"] [data-image-style="realistic"] { opacity: var(--hero-image-opacity); }

/* 工业频道手机端为双操作与风格图标预留同行空间，保留44px点击高度。 */
@media (max-width: 640px) {
  :is(.page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--forge)[data-visual-style] .hero__actions { gap: 10px; }
  :is(.page-hero--iiot, .page-hero--twin, .page-hero--integration, .page-hero--forge)[data-visual-style] .hero__actions .btn { font-size: 14px; padding-inline: 12px; }
}

/* 行业入口在手机端适当收紧，为风格图标留在同一组内。 */
@media (max-width: 640px) {
  .page-hero--solutions[data-visual-style] .sol-nav { gap: 8px; }
  .page-hero--solutions[data-visual-style] .sol-nav a { padding-inline: 12px; }
  .page-hero--solutions[data-visual-style] .sol-nav .hero-style-switch { margin: 0; }
}

/* 无主操作按钮的公司/案例栏目，风格入口不增加首屏高度。 */
.hero-style-tools { position: absolute; right: 0; bottom: 0; }
.page-hero--drone-cooperation { background: #05070b; --intro-focus-y: 18%; }
.page-hero--drone-cooperation .page-hero__bg img { object-position: center var(--intro-focus-y); }
@media (max-width: 900px) {
  .page-hero--drone-cooperation .page-hero__bg img { object-position: 84% var(--intro-focus-y); }
}
@media (max-width: 640px) {
  .hero-style-tools { top: 0; bottom: auto; }
  :is(.page-hero--about, .page-hero--cases)[data-visual-style] .crumbs { padding-right: 52px; }
}

/* 物联网实训产品：完整名称入口与配套资源展示。 */
.subnav--forge { min-width: 280px; }
.subnav a.is-product { color: var(--red); font-weight: 600; white-space: nowrap; }
.iot-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.iot-stats > div { padding: 20px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); }
.iot-stats b { display: block; color: var(--red); font-size: 34px; line-height: 1.15; margin-bottom: 10px; }
.iot-stats span { display: block; color: var(--ink); font-size: 15px; }
.iot-stats small { display: block; color: var(--ink-3); font-size: 12px; margin-top: 6px; }
.iot-feature { display: grid; grid-template-columns: 1.1fr 1fr; gap: 40px; align-items: center; }
.iot-feature h3 { font-size: 23px; margin-bottom: 12px; }
.iot-feature > div > p { color: var(--ink-2); margin-bottom: 24px; }
.iot-feature .iot-stats { gap: 10px; margin-bottom: 26px; }
.iot-feature .iot-stats > div { padding: 16px 12px; }
.iot-feature__image { display: block; background: #fff; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.iot-feature__image img { display: block; width: 100%; max-height: 380px; object-fit: contain; padding: 14px; }
.iot-project__image { display: flex; align-items: center; justify-content: center; height: 220px; margin: -8px -8px 20px; background: #fff; border: 1px solid var(--line); border-radius: 6px; }
.iot-project__image img { width: 100%; height: 100%; object-fit: contain; padding: 8px; }
.iot-text-link { display: inline-block; color: var(--red); font-size: 14px; font-weight: 500; margin-top: 18px; }
.iot-text-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.iot-checks { margin-top: 28px; padding: 24px; background: var(--paper); border: 1px solid var(--line); border-radius: 8px; }
.iot-checks h3 { margin-bottom: 12px; font-size: 19px; }
.iot-checks ul { padding-left: 20px; list-style: disc; color: var(--ink-2); }
.iot-checks li + li { margin-top: 8px; }
.iot-checks p { color: var(--ink-2); }
.iot-checks .chips { margin-top: 16px; }
.ccard[id] { scroll-margin-top: 90px; }
@media (max-width: 900px) { .iot-feature { grid-template-columns: 1fr; gap: 24px; } }
@media (max-width: 640px) {
  .subnav--forge { min-width: 0; }
  .iot-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .iot-stats > div { padding: 16px; }
  .iot-stats b { font-size: 30px; }
  .iot-feature h3 { font-size: 20px; }
  .iot-project__image { height: 240px; }
}
@media (max-width: 640px) { .iot-training-page .grid-2 { grid-template-columns: 1fr; } }

/* 工坊业务方向与四个子栏目一致，独立控制响应式布局。 */
.directions--forge { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.directions--forge .direction__body { padding: 22px; }
.directions--forge .direction__body h3 { min-height: 2.8em; line-height: 1.4; }
.directions--forge .iot-text-link { margin-top: auto; padding-top: 6px; }
@media (max-width: 1100px) {
  .directions--forge { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .directions--forge { grid-template-columns: 1fr; }
  .directions--forge .direction__body h3 { min-height: 0; }
}

/* 场景库与客户案例共用分页，每页显示实际网格的一排卡片。 */
.catalog-scroll-target { scroll-margin-top: 140px; }
.catalog-pagination { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: 32px; }
.catalog-pagination[hidden] { display: none; }
.catalog-page { min-width: 38px; height: 38px; padding: 0 12px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: var(--ink-2); font: inherit; font-size: 14px; cursor: pointer; }
.catalog-page:hover:not(:disabled), .catalog-page:focus-visible { border-color: var(--red); color: var(--red); }
.catalog-page.is-on { background: var(--red); border-color: var(--red); color: #fff; }
.catalog-page:disabled { opacity: .4; cursor: default; }
.catalog-page-gap { padding: 0 3px; color: var(--ink-3); }

/* 保密场景试版：能力说明与生成素材标识始终可见。 */
.capability-disclosure { padding: 18px 20px; border-left: 3px solid var(--red); background: #f6f4f2; color: var(--ink-2); font-size: 14px; line-height: 1.9; margin: 0 0 22px; }
.capability-visual { margin: 0 0 24px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.capability-visual img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.capability-visual figcaption { padding: 12px 16px; background: #f6f4f2; color: var(--ink-2); font-size: 13px; }

.capability-gallery { margin-bottom: 12px; }
.capability-gallery img { display: block; }
.capability-caption { margin: 0 0 24px; color: var(--ink-3); font-size: 13px; line-height: 1.8; }

/* 场景详情首屏：成组分类与清晰的图文层次。 */
.page-hero:has(.scene-hero-meta) { padding: 28px 0 38px; background: #111820; }
.page-hero:has(.scene-hero-meta) .crumbs { margin-bottom: 28px; font-size: 12px; color: #929ba5; }
.scene-hero-meta { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 5px 9px; border: 1px solid rgba(255,255,255,.15); border-radius: 5px; background: rgba(255,255,255,.045); color: #c8cdd3; font-size: 12px; line-height: 1.6; }
.scene-hero-meta > p { margin: 0; }
.scene-hero-meta .vision-layer { display: flex; align-items: center; margin: 0; gap: 0; }
.scene-hero-meta .vision-layer::before { content: ""; height: 11px; width: 1px; background: rgba(255,255,255,.22); margin-right: 8px; }
.scene-hero-meta .tag, .scene-hero-meta .eyebrow { padding: 0; margin: 0; background: none; border: 0; border-radius: 0; color: inherit; font: inherit; letter-spacing: 0; }
.scene-hero-meta .eyebrow::before { content: none; display: none; }
.scene-hero-meta .vision-layer .tag { color: #f0d1cc; }
.page-hero:has(.scene-hero-meta) h1 { font-size: clamp(30px, 3.5vw, 44px); line-height: 1.2; letter-spacing: .5px; max-width: 680px; }
.page-hero:has(.scene-hero-meta) .page-hero__sub { max-width: 570px; font-size: 16px; line-height: 1.85; color: #b9c1ca; margin: 18px 0 24px; }
.page-hero:has(.scene-hero-meta) .btn--primary { padding: 11px 22px; font-size: 14px; border-radius: 5px; }
.page-hero:has(.scene-hero-meta) .page-hero__bg img { left: auto; right: 0; transform: none; width: 66%; opacity: .85; filter: saturate(.6) brightness(.75); object-position: center; }
.page-hero:has(.scene-hero-meta) .page-hero__bg::after { left: 0; right: 0; width: 100%; transform: none; background: linear-gradient(90deg, #111820 0%, #111820 32%, rgba(17,24,32,.86) 47%, rgba(17,24,32,.08) 85%); }
@media (max-width: 640px) {
  .page-hero:has(.scene-hero-meta) { padding: 24px 0 30px; }
  .page-hero:has(.scene-hero-meta) .crumbs { margin-bottom: 22px; }
  .page-hero:has(.scene-hero-meta) .page-hero__sub { font-size: 15px; }
  .page-hero:has(.scene-hero-meta) .page-hero__bg img { width: 100%; opacity: .35; }
  .page-hero:has(.scene-hero-meta) .page-hero__bg::after { background: linear-gradient(90deg, rgba(17,24,32,.96), rgba(17,24,32,.6)); }
}

.drone-disclosure { margin: 28px 0 0; }
.drone-confidentiality { color: #a9abae; font-size: 13px; line-height: 1.8; margin: 14px 0 20px; padding-left: 12px; border-left: 2px solid rgba(255,255,255,.25); }

/* 首页无人机展示：标题、等高双图、流程与场景共用对齐网格。 */
.drone-showcase { padding-top: 0; }
.drone-showcase__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; margin-bottom: 28px; }
.drone-showcase__head h2 { font-size: clamp(26px, 2.8vw, 34px); line-height: 1.35; }
.drone-showcase__head p { margin: 14px 0 0; max-width: 780px; color: #a9abae; font-size: 15px; line-height: 1.8; }
.drone-showcase__actions { display: flex; gap: 10px; flex-shrink: 0; }
.drone-showcase__actions .btn { font-size: 14px; padding: 10px 18px; }
.drone-showcase__visuals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.drone-showcase__card { display: block; min-width: 0; overflow: hidden; border: 1px solid #364047; border-radius: 8px; background: #171e24; transition: border-color .2s; }
.drone-showcase__card:hover { border-color: #7f9ba9; }
.drone-showcase__card > img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: center 40%; }
.drone-showcase__card > div { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 16px 20px; border-top: 1px solid #364047; }
.drone-showcase__card small { display: block; color: #8b9ca6; font-size: 10px; letter-spacing: 1px; margin-bottom: 4px; }
.drone-showcase__card b { font-size: 16px; color: #e7ecef; font-weight: 500; }
.drone-showcase__flow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); list-style: none; padding: 20px 0; margin: 24px 0 0; border-top: 1px solid #383a3d; border-bottom: 1px solid #383a3d; }
.drone-showcase__flow li { display: flex; align-items: center; gap: 12px; color: #cbd0d5; font-size: 14px; padding-left: 20px; border-left: 1px solid #383a3d; }
.drone-showcase__flow li:first-child { padding-left: 0; border-left: 0; }
.drone-showcase__flow li span { color: #bdc9d0; font-size: 12px; font-family: var(--num); }
.drone-showcase__scope { display: flex; align-items: baseline; gap: 24px; margin-top: 20px; font-size: 13px; }
.drone-showcase__scope > b { flex-shrink: 0; color: #d3d7db; font-weight: 500; }
.drone-showcase__scope p { display: flex; flex-wrap: wrap; gap: 8px 0; margin: 0; color: #969da4; }
.drone-showcase__scope p span + span::before { content: "/"; color: #535a61; padding: 0 12px; }
.drone-showcase__disclosure { font-size: 12px; line-height: 1.8; color: #7e868e; margin: 16px 0 0; }
@media (max-width: 980px) {
 .drone-showcase__head { align-items: flex-start; flex-direction: column; gap: 18px; }
}
@media (max-width: 640px) {
 .drone-showcase__visuals { grid-template-columns: 1fr; gap: 16px; }
 .drone-showcase__card > div { padding: 14px 16px; }
 .drone-showcase__flow { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 0; }
 .drone-showcase__flow li { padding-left: 10px; gap: 7px; font-size: 12px; }
 .drone-showcase__flow li:nth-child(4) { padding-left: 0; border-left: 0; }
 .drone-showcase__scope { flex-direction: column; gap: 8px; }
}

/* 首页软件与工坊：简介、项目行、说明与入口统一对齐。 */
#software .duo__card { padding: 28px; gap: 0; }
#software .duo__card h3 { margin: 0 0 12px; }
#software .duo__card > p { font-size: 14px; line-height: 1.7; margin: 0 0 22px; }
#software .duo__items { grid-auto-rows: 78px; gap: 10px; margin: 0 0 22px; align-content: start; }
#software .duo__item { grid-template-columns: 40px minmax(0, 1fr); gap: 12px; align-items: center; padding: 12px; border-radius: 6px; }
#software .duo__item > div { min-width: 0; }
#software .duo__icon { width: 40px; height: 40px; border-radius: 6px; font-size: 15px; }
#software .duo__item h4 { margin: 0 0 4px; font-size: 15px; line-height: 1.4; }
#software .duo__item p { margin: 0; font-size: 12px; line-height: 1.6; }
#software .duo__entry { margin-top: auto; color: var(--red); font-size: 14px; font-weight: 500; align-self: flex-start; }
@media (max-width: 640px) {
 #software .duo__card { padding: 22px; }
 #software .duo__items { grid-auto-rows: minmax(78px, auto); }
}

#software .duo__card > p[data-info-note] { display: none; }
.duo__item--info { position: relative; }
.duo__item--info h4 > a::after { content: ""; position: absolute; inset: 0; }
.duo__item--info .info-tip { z-index: 1; }

/* 首页咨询：两列顶端对齐，联系方式与表单采用统一行距。 */
.home-contact .wrap { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: start; gap: 64px; }
.home-contact h2 { font-size: clamp(26px, 2.8vw, 32px); line-height: 1.35; }
.home-contact__intro > p { font-size: 15px; line-height: 1.85; max-width: 500px; margin: 18px 0 0; }
:is(.home-contact__details, .cta__details) { margin: 32px 0 0; }
:is(.home-contact__details, .cta__details) > div { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 18px; align-items: baseline; padding: 14px 0; border-top: 1px solid rgba(255,255,255,.12); }
:is(.home-contact__details, .cta__details) dt { color: #969ba1; font-size: 13px; }
:is(.home-contact__details, .cta__details) dd { margin: 0; color: #d5d8dc; font-size: 14px; line-height: 1.8; overflow-wrap: anywhere; }
:is(.home-contact__details, .cta__details) :is(.home-contact__phone, .cta__phone) { font-family: var(--num); font-size: 24px; color: #fff; line-height: 1.4; }
.home-contact__form { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 16px; }
.home-contact__form label { gap: 6px; }
.home-contact__form :is(input:not([type="checkbox"]), select) { height: 44px; min-width: 0; }
.home-contact__form textarea { min-height: 116px; }
.home-contact__form .agree { margin-top: 2px; flex-wrap: wrap; gap: 6px; line-height: 1.6; }
.home-contact__form .agree input { width: 15px; height: 15px; margin: 0 3px 0 0; }
.home-contact__action { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid rgba(255,255,255,.12); padding-top: 18px; }
.home-contact .home-contact__action p { font-size: 12px; line-height: 1.8; margin: 0; max-width: 320px; color: #a2a7ad; }
.home-contact__action .btn { flex-shrink: 0; font-size: 14px; padding: 11px 18px; }
.home-contact__action .btn:disabled { background: #555a60; border-color: #666c72; color: #c4c8cd; cursor: not-allowed; }
.home-contact__form .form__msg:empty { display: none; }
@media (max-width: 860px) {
 .home-contact .wrap { grid-template-columns: 1fr; gap: 36px; }
}
@media (max-width: 480px) {
 .home-contact__form { grid-template-columns: 1fr; }
 .home-contact__action { align-items: flex-start; flex-direction: column; }
 :is(.home-contact__details, .cta__details) > div { grid-template-columns: 64px minmax(0, 1fr); gap: 12px; }
}

/* 统一表单下拉菜单，展开面板不再调用系统选项样式。 */
.form-select { position: relative; min-width: 0; --select-surface: #34383d; --select-ink: #eef0f2; --select-muted: #b9bbbe; --select-border: rgba(255,255,255,.18); --select-hover: rgba(255,255,255,.07); }
.form-select__native { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: 0 !important; opacity: 0; pointer-events: none; overflow: hidden; }
.form-select__trigger { position: relative; display: flex; align-items: center; width: 100%; min-width: 0; height: 44px; padding: 10px 40px 10px 14px; border: 1px solid var(--select-border); border-radius: 6px; color: var(--select-ink); background: rgba(255,255,255,.06); font: inherit; font-size: 15px; line-height: 1.5; text-align: left; cursor: pointer; }
.form-select__trigger span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.form-select__trigger::after { content: ""; position: absolute; right: 16px; top: 16px; width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform .15s; opacity: .7; }
.form-select.is-open .form-select__trigger::after { transform: translateY(4px) rotate(225deg); }
.form-select__trigger.is-placeholder { color: var(--select-muted); }
.form-select__trigger:hover { border-color: #92989f; }
.form-select__trigger:focus-visible, .form-select.is-open .form-select__trigger, .form-select__trigger[aria-invalid="true"] { outline: none; border-color: var(--red); }
.form-select.is-open { z-index: 60; }
.form-select__menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); max-height: 244px; overflow-y: auto; overscroll-behavior: contain; padding: 6px; border: 1px solid var(--select-border); border-radius: 8px; background: var(--select-surface); color: var(--select-ink); box-shadow: 0 12px 32px rgba(0,0,0,.24); scrollbar-width: thin; scrollbar-color: #737980 transparent; }
.form-select__menu[hidden] { display: none; }
.form-select__option { padding: 10px 12px; border-radius: 4px; font-size: 14px; line-height: 1.5; cursor: pointer; }
.form-select__option:hover, .form-select__option.is-active { background: var(--select-hover); }
.form-select__option[aria-selected="true"] { background: rgba(210,35,35,.15); color: #ffb9b3; }
.form-select__option[aria-disabled="true"] { opacity: .4; cursor: not-allowed; }
.form--light .form-select { --select-surface: #fff; --select-ink: var(--ink); --select-muted: var(--ink-3); --select-border: var(--line); --select-hover: var(--paper-2); }
.form--light .form-select__trigger { background: var(--paper-2); }
.form--light .form-select__option[aria-selected="true"] { color: var(--red); }

.foreign-scene-lead { margin: 0 0 20px; color: var(--ink-2); font-size: 14px; line-height: 1.8; }


/* 客户保密说明始终明示；普通补充信息使用统一的句末图标和弹层。 */
.confidentiality-notice { margin: 20px 0 24px; padding: 16px 20px; border-left: 3px solid var(--red); background: #f6f4f2; color: var(--ink-2); font-size: 13px; line-height: 1.9; }
.confidentiality-notice > b { display: block; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.confidentiality-notice > p { margin: 0; font: inherit; color: inherit; }
.section--dark .confidentiality-notice { background: rgba(255,255,255,.04); color: #aeb4bb; }
.section--dark .confidentiality-notice > b { color: #dce0e5; }
.drone-showcase .confidentiality-notice { margin: 20px 0 0; }

/* 项目卡片中的合并场景入口，沿用正文样式。 */
.ccard__scenario-link { font-size: 12px; }
.ccard__scenario-link a { position: relative; z-index: 1; color: var(--red); }

.scene-card .case-business-label { font-size: 12px; color: var(--ink-3); }
.scene-card.ccard .scene-card__source { font-size: 11px; color: var(--ink-3); }

/* ---------- 发布版 1.0.3：原型批注不显示；咨询表单改为邮件 / 电话咨询区块 ---------- */
.note, .note-toggle { display: none !important; }
.note.info-note--plain { display: block !important; margin: 14px 0 0; padding: 0; background: none; border: 0; font-size: 13px; line-height: 1.7; color: inherit; opacity: .7; }
.note.info-note--plain::before { display: none; }
.section-head__review:has(> .info-note--plain) { display: block !important; }
.consult-mail { padding: 32px; border: 1px solid rgba(255,255,255,.14); border-radius: var(--radius); background: rgba(255,255,255,.04); }
.consult-mail__label { display: inline-block; font-size: 13px; font-weight: 600; letter-spacing: .08em; color: var(--red); }
.cta .consult-mail__lead, .consult-mail__lead { margin: 12px 0 0; font-size: 15px; line-height: 1.8; color: #d5d8dc; }
.consult-mail__list { display: grid; gap: 10px; margin: 20px 0 0; padding: 18px 0 0; border-top: 1px solid rgba(255,255,255,.12); }
.consult-mail__list li { position: relative; padding-left: 18px; font-size: 14px; line-height: 1.7; color: #b9bbbe; }
.consult-mail__list li::before { content: ""; position: absolute; left: 0; top: .72em; width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.consult-mail__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.consult-mail--light { background: #fff; border-color: var(--line); }
.consult-mail--light .consult-mail__lead { color: var(--ink-2); }
.consult-mail--light .consult-mail__list { border-top-color: var(--line); }
.consult-mail--light .consult-mail__list li { color: var(--ink-2); }
.site-footer .footer-bottom a[href^="https://beian"] { white-space: nowrap; }
@media (max-width: 640px) { .consult-mail { padding: 24px 20px; } .consult-mail__actions .btn { flex: 1 1 100%; justify-content: center; } }
