/* ============================================================
   new.css —— 官网「新设计」聚合样式(CMS 模板专用)
   ------------------------------------------------------------
   来源(web/src):
     1. styles/tokens.css        —— 设计系统 CSS 变量(原样)
     2. styles/base.css          —— 全局基础 + 通用工具类(原样)
     3. 各 .vue 的 <style scoped> —— 去掉 scoped 包裹、保留选择器、
       :deep() 展开为后代选择器、跨文件重复规则去重
   组织顺序: 全局基础 → 首页组件 → v2 → aq → product → 布局
   说明: 类名/结构与原 .vue 一致,便于 .ftl 模板对齐。
   ============================================================ */


/* ============================================================
   PART 0-1  设计系统 Tokens(源自 MasterGo 设计稿 JOYSUCH-首页)
   ============================================================ */
:root {
  /* ---------- 颜色 ---------- */
  --color-primary: #0b69b3;          /* 寻息-蓝 主色 */
  --color-primary-light: #38a7ff;    /* 方案/能力标签蓝 */
  --color-health-green: #3daba4;     /* 大健康-绿 */
  --color-accent-orange: #ff7038;    /* 产品标签橙 */
  --color-title: #333333;            /* 标题-黑 */
  --color-body: #666666;             /* 正文-灰 */
  --color-muted: #999999;            /* 次要说明 */
  --color-white: #ffffff;
  --color-bg-soft: #f2f5f4;          /* 浅背景(能力卡图区) */
  --color-bg-soft-2: #f2f5f6;        /* 浅背景(新闻区) */
  --color-dark: #262626;             /* 页脚深底 */
  --color-border: #cdcdcd;

  /* ---------- 字体 ---------- */
  --font-family-zh: 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB',
    'Helvetica Neue', Arial, sans-serif;
  --font-family-en: 'Inter', 'Helvetica Neue', Arial, sans-serif;

  /* ---------- 字号 ---------- */
  --font-size-xs: 12px;
  --font-size-sm: 14px;
  --font-size-md: 15px;
  --font-size-base: 16px;
  --font-size-lg: 18px;
  --font-size-xl: 20px;
  --font-size-xxl: 32px;
  --font-size-hero: 46px;
  --font-size-stat: 60px;

  /* ---------- 行高 ---------- */
  --line-height-xs: 18px;
  --line-height-sm: 21px;
  --line-height-base: 24px;
  --line-height-md: 26px;
  --line-height-lg: 42px;
  --line-height-hero: 61px;
  --line-height-stat: 79px;

  /* ---------- 间距 ---------- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;

  /* ---------- 布局 ---------- */
  --container-width: 1200px;
  --navbar-height: 70px;

  /* ---------- 圆角 ---------- */
  --radius-sm: 6px;

  /* ---------- 阴影 / 渐变 ---------- */
  --gradient-card: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.7) 100%);
}


/* ============================================================
   PART 0-2  全局基础样式 + 通用工具类
   ============================================================ */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  padding: 0;
}

body {
  font-family: var(--font-family-zh);
  font-size: var(--font-size-base);
  color: var(--color-body);
  background: var(--color-white);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,
h2,
h3,
h4,
h5,
h6,
p {
  margin: 0;
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

button {
  font-family: inherit;
  border: none;
  cursor: pointer;
}

input,
textarea {
  font-family: inherit;
}

/* ---------- 布局容器 ---------- */
.container {
  width: 100%;
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0 24px;
}

/* ---------- 区块标题 ---------- */
.section-title {
  font-size: var(--font-size-xxl);
  font-weight: 700;
  line-height: var(--line-height-lg);
  letter-spacing: 3.84px;
  color: var(--color-title);
  text-align: center;
}

/* ---------- 帮助类 ---------- */
.text-center {
  text-align: center;
}

.relative {
  position: relative;
}

.overflow-hidden {
  overflow: hidden;
}


/* ============================================================
   PART 1  首页组件(HomeView + ui 组件)
   ============================================================ */

/* ---------- UI 组件 ---------- */

/* AppButton.vue */
.app-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 30px;
  padding: 0 16px;
  border-radius: var(--radius-sm);
  font-size: var(--font-size-sm);
  line-height: 22px;
  transition: opacity 0.2s ease;
}

.app-button:hover {
  opacity: 0.85;
}

.app-button--light {
  background: var(--color-white);
  color: var(--color-primary);
}

.app-button--primary {
  background: var(--color-primary);
  color: var(--color-white);
}

/* Badge.vue */
.badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--radius-sm);
  color: var(--color-white);
  font-size: var(--font-size-xs);
  font-weight: 400;
  white-space: nowrap;
}

.badge--card {
  width: 70px;
  height: 20px;
  line-height: 22px;
}

.badge--inline {
  padding: 0 10px;
  height: 20px;
  line-height: 22px;
}

/* SectionTitle.vue(公共部分 + 移动端缩放;--white 见 ServiceGrid) */
@media (max-width: 768px) {
  .section-title {
    font-size: 24px;
    line-height: 34px;
    letter-spacing: 2px;
  }
}

/* ---------- HeroBanner.vue ---------- */
.hero {
  position: relative;
  height: 750px;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
}

.hero__inner {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  align-items: center;
}

.hero__content {
  max-width: 660px;
}

.hero__title {
  font-size: var(--font-size-hero);
  font-weight: 700;
  line-height: var(--line-height-hero);
  color: var(--color-white);
  margin-bottom: 12px;
}

/* 第3个banner(小巨人): 金色标题 */
.hero__title--giant {
  font-size: 46px;
  font-weight: 700;
  line-height: normal;
  letter-spacing: normal;
  color: #FFE2A6;
}

.hero__subtitle {
  font-size: var(--font-size-base);
  line-height: 30px;
  letter-spacing: 1.28px;
  color: var(--color-white);
  margin-bottom: 32px;
}

/* 2026-09-14: Banner-02(医位通) 第三行特性文案 —— 按设计稿 Banner-02 补上
   （此前页面 HTML 与背景图 banner-mediot.png 里都没有这行） */
.hero__features {
  font-size: var(--font-size-base);
  line-height: 30px;
  letter-spacing: 1.28px;
  color: var(--color-white);
  margin-bottom: 32px;
}
/* 换行点只在移动端生效（按移动端设计：断在「强大平台底座 |」之后） */
.hero__features-br { display: none; }
/* 有特性行时，副标题与它紧贴，整体与按钮的间距保持原样 */
.hero-slide--mediot .hero__subtitle { margin-bottom: 6px; }

/* 第2个banner(医位通/大健康): 按钮文字用品牌青 #3DABA4 */
.hero-slide:nth-child(2) .hero__cta {
  color: #3DABA4;
}

.hero__dots {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 56px;
  z-index: 1;
  display: flex;
  justify-content: center;
  gap: 20px;
}

.hero__dot {
  width: 80px;
  height: 4px;
  background: var(--color-white);
  opacity: 0.3;
  cursor: pointer;
  padding: 8px 0;
  background-clip: content-box;
  box-sizing: content-box;
  transition: opacity .2s;
}

.hero__dot.is-active {
  opacity: 1;
}

@media (max-width: 992px) {
  .hero {
    height: 560px;
  }
}

@media (max-width: 768px) {
  .hero {
    height: 395px;
  }

  .hero__content {
    max-width: 260px;
    margin-left: 30px;
  }

  .hero__title {
    font-size: 27px;
    line-height: 36px;
    margin-bottom: 12px;
  }

  /* 第3个banner(小巨人)移动端: 27px 金色 居中 + 上对齐/整宽居中(按设计) */
  .hero__title--giant {
    font-size: 27px;
    line-height: 36px;
    text-align: center;
  }

  .hero-slide--giant .hero__inner {
    align-items: flex-start;
    padding-top: 46px;
  }

  .hero-slide--giant .hero__content {
    flex: 1 0 auto;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
  }

  .hero__subtitle {
    font-size: 12px;
    line-height: 30px;
    letter-spacing: 0.96px;
    margin-bottom: 30px;
  }

  /* 2026-09-14: Banner-02(医位通) 移动端按设计稿：整体居中 + 特性行两行 + 按钮贴横幅底部 */
  .hero-slide--mediot .hero__inner { align-items: flex-start; padding-top: 46px; }
  .hero-slide--mediot .hero__content {
    position: relative;
    flex: 1 0 auto;
    width: 100%;
    max-width: 100%;
    margin-left: 0;
    height: 100%;
    text-align: center;
  }
  .hero__features-br { display: inline; }
  .hero-slide--mediot .hero__cta {
    position: absolute;
    left: 50%;
    bottom: 80px;
    transform: translateX(-50%);
  }
  /* 2026-09-14: Banner-02 特性行（移动端同样补，字号随副标题） */
  .hero__features {
    font-size: 12px;
    line-height: 22px;
    letter-spacing: 0.96px;
    margin-bottom: 30px;
  }
  .hero-slide--mediot .hero__subtitle { margin-bottom: 4px; }

  .hero__dots {
    bottom: 32px;
  }

  .hero__dot {
    width: 40px;
  }
}

/* ---------- SolutionGrid.vue ---------- */
/* 首页设计稿正文五区内容宽 1297(nav/hero 仍 1200) */
.home .solutions .container,
.home .capabilities .container,
.home .services .container,
.home .stats .container,
.home .news .container {
  max-width: 1345px;
}

.solutions {
  background: var(--color-white);
  padding: 50px 0 13px;
}

.solutions__title {
  margin-bottom: 43px;
}

/* PC 标题一行(br 隐藏); 移动端两行(br 生效) */
@media (min-width: 769px) {
  .solutions__title br {
    display: none;
  }
}

.solutions__large {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 628px));
  gap: 26px;
  justify-content: center;
  margin-bottom: 26px;
}

.solutions__small {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 410px));
  gap: 26px;
  justify-content: center;
}

.solution-card {
  position: relative;
  overflow: hidden;
  border-radius: 2px;
  display: block;
  text-decoration: none;
  color: inherit;
}

.solution-card--large {
  aspect-ratio: 628 / 410;
}

.solution-card--small {
  aspect-ratio: 1 / 1;
}

.solution-card__media {
  position: absolute;
  inset: 0;
}

.solution-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.solution-card__overlay {
  position: absolute;
  inset: 0;
  background: var(--gradient-card);
}

.solution-card__body {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 8px;
  padding: 26px;
}

.solution-card__title {
  font-size: var(--font-size-lg);
  font-weight: 700;
  line-height: 23px;
  color: var(--color-white);
}

.solution-card__desc {
  font-size: var(--font-size-md);
  line-height: 22px;
  color: var(--color-white);
}

@media (max-width: 992px) {
  .solutions__large {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .solutions__small {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .solution-card__body {
    padding: 18px;
  }
}

@media (max-width: 768px) {
  .solutions {
    padding: 32px 0 40px;
  }

  .solutions__title {
    font-size: 22px;
    line-height: 35px;
    letter-spacing: 0.5px;
    margin-bottom: 28px;
  }

  .solutions__large,
  .solutions__small {
    grid-template-columns: 1fr;
    margin-bottom: 16px;
    gap: 16px;
  }

  /* 移动端:灰底卡 + 上图下文 + 深色文字(非桌面白字叠图) */
  .solution-card {
    background: #f5f5f5;
    border-radius: 0;
  }

  .solution-card--large,
  .solution-card--small {
    aspect-ratio: auto;
    height: auto;
    padding-bottom: 0;
  }

  .solution-card__media {
    position: relative;
    height: 138px;
    background: #b3b3b3;
  }

  .solution-card__overlay {
    display: none;
  }

  .solution-card__body {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 12px 20px 16px;
  }

  .solution-card__title {
    font-size: 12px;
    line-height: 23px;
    color: var(--color-title);
  }

  .solution-card__desc {
    font-size: 10px;
    line-height: 22px;
    color: var(--color-body);
  }
}

/* ---------- CapabilityGrid.vue ---------- */
.capabilities {
  background: var(--color-white);
  padding: 50px 0 88px;
}

.capabilities__title {
  margin-bottom: 60px;
}

.capabilities__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 305px));
  gap: 25px;
  justify-content: center;
}

.cap-card {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  overflow: hidden;
}

.cap-card.is-highlighted {
  border-color: var(--color-primary);
}

.cap-card__media {
  position: relative;
  height: 305px;
  background: var(--color-bg-soft);
  overflow: hidden;
}

.cap-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 图片缺失时的占位(后续替换真实图片) */
.cap-card__placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #dcecf8 0%, #f2f5f4 100%);
}

.cap-card__en {
  position: absolute;
  top: 20px;
  left: 0;
  right: 0;
  text-align: center;
  font-family: var(--font-family-en);
  font-size: var(--font-size-xs);
  font-weight: 500;
  letter-spacing: 1px;
  color: #999999;
}

.cap-card.is-highlighted .cap-card__en {
  color: var(--color-primary);
}

.cap-card__info {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-align: center;
  padding: 20px 24px 30px;
}

.cap-card__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: var(--line-height-md);
  letter-spacing: 2.4px;
  color: var(--color-title);
  margin-bottom: 16px;
}

.cap-card.is-highlighted .cap-card__title {
  color: var(--color-primary);
}

.cap-card__subtitle {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-xs);
  letter-spacing: 1.68px;
  color: var(--color-body);
}

@media (max-width: 992px) {
  .capabilities__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .capabilities {
    padding: 32px 0 40px;
  }

  .capabilities__title {
    font-size: 22px;
    line-height: 35px;
    letter-spacing: 0.5px;
    margin-bottom: 28px;
  }

  /* 移动端:横向滚动画廊 */
  .capabilities__grid {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding: 0 30px 12px;
    scrollbar-width: none;
  }

  .capabilities__grid::-webkit-scrollbar {
    display: none;
  }

  .cap-card {
    flex: 0 0 305px;
    scroll-snap-align: start;
  }
}

/* ---------- ServiceGrid.vue(含 section-title--white) ---------- */
.section-title--white {
  color: var(--color-white);
}

.services {
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  padding: 50px 0 88px;
}

.services__title {
  margin-bottom: 80px;
  color: var(--color-white);
}

/* PC 标题一行(br 隐藏); 移动端两行(br 生效) */
@media (min-width: 769px) {
  .services__title br {
    display: none;
  }
}

.services__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 200px));
  gap: 60px 100px;
  justify-content: center;
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 24px;
}

.service-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 26px;
  padding: 20px 0 9px;
}

.service-item__icon {
  width: 79px;
  height: 79px;
  object-fit: cover;
}

.service-item__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: var(--line-height-md);
  letter-spacing: 2.4px;
  color: var(--color-white);
  text-align: center;
}

@media (max-width: 992px) {
  .services__grid {
    grid-template-columns: repeat(2, minmax(0, 200px));
    gap: 48px 60px;
  }
}

@media (max-width: 768px) {
  .services {
    padding: 32px 0 40px;
  }

  .services__title {
    font-size: 22px;
    line-height: 35px;
    letter-spacing: 0.5px;
    margin-bottom: 28px;
  }

  .services__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 38px 36px;
    max-width: 315px;
    padding: 0 30px;
  }

  .service-item {
    padding: 0;
    gap: 12px;
  }

  .service-item__icon {
    width: 48px;
    height: 48px;
  }

  .service-item__title {
    font-size: 13px;
    line-height: 17px;
    letter-spacing: 0.5px;
    font-weight: 700;
  }
}

/* ---------- StatGrid.vue ---------- */
.stats {
  background: var(--color-white);
  padding: 50px 0 86px;
}

.stats__title {
  margin-bottom: 62px;
}

/* PC 标题一行(br 隐藏); 移动端两行(br 生效) */
@media (min-width: 769px) {
  .stats__title br {
    display: none;
  }
}

.stats__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 305px));
  gap: 25px;
  justify-content: center;
}

.stat-card {
  position: relative;
  height: 480px;
  overflow: hidden;
}

.stat-card__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.stat-card__content {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  padding-top: 52px;
}

.stat-card__label {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-base);
  letter-spacing: 2.16px;
  color: var(--color-body);
}

.stat-card__value {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.stat-card__num {
  font-size: var(--font-size-stat);
  font-weight: 700;
  line-height: var(--line-height-stat);
  color: var(--color-title);
}

.stat-card__unit {
  font-size: var(--font-size-md);
  line-height: 20px;
  color: var(--color-title);
}

/* 移动版默认隐藏 */
.stats__mobile {
  display: none;
}

@media (max-width: 992px) {
  .stats__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}

@media (max-width: 768px) {
  .stats {
    padding: 32px 0 40px;
  }

  .stats__title {
    font-size: 20px;
    line-height: 32px;
    letter-spacing: 0.5px;
    margin-bottom: 28px;
  }

  /* 桌面网格隐藏,移动列表显示 */
  .stats__grid {
    display: none;
  }

  .stats__mobile {
    display: flex;
    flex-direction: column;
    gap: 30px;
    max-width: 315px;
    margin: 0 auto;
  }

  .stat-mobile {
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  .stat-mobile__label {
    font-size: 10px;
    line-height: 13px;
    letter-spacing: 1.2px;
    color: var(--color-body);
  }

  .stat-mobile__value {
    display: flex;
    align-items: baseline;
    gap: 6px;
  }

  .stat-mobile__num {
    font-size: 30px;
    font-weight: 700;
    line-height: 40px;
    color: var(--color-title);
  }

  .stat-mobile__unit {
    font-size: 10px;
    line-height: 13px;
    letter-spacing: 1.2px;
    color: var(--color-body);
  }

  .stat-mobile__desc {
    font-size: 11px;
    line-height: 1.5;
    letter-spacing: 0.88px;
    color: var(--color-body);
  }

  .stat-mobile__img {
    width: 100%;
    height: auto;
    aspect-ratio: 315 / 82;
    object-fit: cover;
  }
}

/* ---------- NewsSection.vue(:deep 已展开为后代选择器) ---------- */
.news {
  background: var(--color-bg-soft-2);
  padding: 50px 0 40px;
  margin-bottom: 38px;
}

.news__title {
  margin-bottom: 60px;
}

.news__body {
  display: flex;
  align-items: stretch;
  gap: 0;
  justify-content: center;
  max-width: 1282px;
  margin: 0 auto;
}

.news__cover {
  flex: 0 0 auto;
  width: 800px;
  overflow: hidden;
}

.news__cover img {
  width: 100%;
  aspect-ratio: 800 / 450;
  object-fit: cover;
}

.news__list {
  flex: 1;
  min-width: 0;
  background: var(--color-white);
  padding: 0;
  display: flex;
  flex-direction: column;
}

.news__item {
  flex: 1;
  min-height: 0;
  padding: 18px 20px 14px;
  border-bottom: 1px solid #A2A2A2;
}

.news__item:hover {
  background: #ebebeb;
}

.news__item-title {
  font-size: var(--font-size-lg);
  font-weight: 700;
  line-height: var(--line-height-base);
  color: var(--color-title);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 10px;
}

.news__item-title a {
  color: var(--color-title);
  text-decoration: none;
}

.news__item-title a:hover {
  color: #0b69b3;
}

.news__item-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.news__item-date {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-xs);
  color: var(--color-title);
}

.news__more {
  flex: 0 0 auto;
  padding: 14px 20px 8px;
  text-align: right;
  font-size: var(--font-size-lg);
  line-height: var(--line-height-base);
  color: #999999;
}

@media (max-width: 992px) {
  .news__body {
    flex-direction: column;
    align-items: stretch;
  }

  .news__cover {
    width: 100%;
  }
}

@media (max-width: 768px) {
  .news {
    padding: 32px 0 40px;
    margin-bottom: 0;
  }

  .news__title {
    font-size: 22px;
    line-height: 35px;
    letter-spacing: 0.5px;
    margin-bottom: 28px;
  }

  .news__body {
    max-width: 315px;
    margin: 0 auto;
    gap: 0;
  }

  .news__cover {
    width: 100%;
    margin-bottom: 0;
  }

  .news__cover img {
    aspect-ratio: 315 / 177;
  }

  .news__list {
    padding: 0;
    background: var(--color-white);
  }

  .news__item {
    padding: 12px 20px 10px;
  }

  /* 移动端: 首条不置灰(移动端无 hover, 不需模拟 PC 悬停态) */
  .news__item:first-child {
    background: transparent;
    border-bottom: 1px solid #A2A2A2;
  }

  .news__item-title {
    font-size: 12px;
    line-height: 16px;
    margin-bottom: 6px;
  }

  .news__item-date {
    font-size: 8px;
    line-height: 11px;
  }

  .news__more {
    font-size: 15px;
    line-height: 20px;
  }

  /* 移动端新闻标签缩小(原 :deep(.badge--inline)) */
  /* 移动端 meta: 标签+日期同行靠左(设计: 日期挨着标签) */
  .news__item-meta {
    justify-content: flex-start;
    gap: 12px;
  }

  .news__item-meta .badge {
    width: auto;
    height: 15px;
    padding: 0 10px;
    font-size: 10px;
    line-height: 22px;
  }
}


/* ============================================================
   PART 2  工业智能体 v2(HomeV2 + V2Navbar + V2Footer)
   ============================================================ */

/* ---------- HomeV2.vue ---------- */
.home-v2 {
  background: var(--color-white);
}

.home-v2 .container {
  max-width: 1200px;
}

/* Banner */
.v2-hero {
  position: relative;
  height: 750px;
  overflow: hidden;
}

.v2-hero__bg {
  position: absolute;
  inset: 0;
}

.v2-hero__bg-img {
  position: absolute;
  left: -236px;
  top: -245px;
  width: 2202px;
  height: 1239px;
  object-fit: cover;
}

.v2-hero__agent {
  position: absolute;
  right: -121px;
  bottom: -62px;
  width: 2041px;
  height: 874px;
  object-fit: cover;
}

.v2-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #efeeF2 0%, rgba(239, 238, 242, 0) 100%);
}

.v2-hero__inner {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.v2-hero__title {
  max-width: 660px;
  font-size: var(--font-size-hero);
  font-weight: 700;
  line-height: var(--line-height-hero);
  color: var(--color-title);
  margin-bottom: 20px;
}

.v2-hero__subtitle {
  font-size: var(--font-size-base);
  line-height: 30px;
  letter-spacing: 1.28px;
  color: var(--color-title);
}

/* 预测性维护智能体 */
.v2-predictive {
  padding: 50px 0 19px;
  background: #f6f6f6;
}

/* 设计稿正文三区内容宽 1300(nav 仍 1200) */
.v2-predictive .container,
.v2-spatiotemporal .container,
.v2-advantages .container {
  max-width: 1348px;
}

.v2-predictive__intro {
  margin: 16px auto 56px;
  max-width: 1200px;
  text-align: center;
  font-size: var(--font-size-base);
  line-height: 21px;
  letter-spacing: 1.92px;
  color: var(--color-body);
}

.v2-predictive__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-bottom: 69px;
}

.v2-feature {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 28px;
  min-height: 181px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
}

.v2-feature__icon {
  width: 56px;
  height: 56px;
  flex: none;
  color: var(--color-primary);
}

.v2-feature__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  letter-spacing: 2.4px;
  color: var(--color-title);
  margin-bottom: 8px;
}

.v2-feature__desc {
  font-size: var(--font-size-sm);
  line-height: 1.46;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

/* 数据指标条 */
.v2-stats-bar {
  display: flex;
  justify-content: space-around;
  align-items: center;
  max-width: 1300px;
  margin: 0 auto;
  padding: 37px 32px;
  background: #f2f5fb;
  border: 1px solid #a9cee7;
}

.v2-stats-bar__item {
  text-align: center;
  position: relative;
}

.v2-stats-bar__item.has-divider::before {
  content: '';
  position: absolute;
  left: -90px;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 80px;
  background: #a9cee7;
}

.v2-stats-bar__value {
  font-size: 64px;
  font-weight: 700;
  line-height: 84px;
  color: var(--color-primary);
}

.v2-stats-bar__label {
  font-size: var(--font-size-sm);
  color: var(--color-body);
}

/* 时空智能体 */
.v2-spatiotemporal {
  padding: 50px 0 76px;
  background: var(--color-white);
}

.v2-st__intro {
  margin: 16px auto 66px;
  max-width: 1152px;
  text-align: center;
  font-size: 14px;
  line-height: 21px;
  letter-spacing: 1.92px;
  color: var(--color-body);
}

/* 移动端独立 5 行 intro(默认隐藏 PC 版) */
.v2-st__intro--m {
  display: none;
}

.v2-st__body {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 35px;
}

.v2-st__col {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 66px;
  max-width: 340px;
}

.v2-st__col--left {
  align-items: flex-end;
}

.v2-st__col--right {
  align-items: flex-start;
}

.v2-st__center {
  flex: 0 0 638px;
}

.v2-st__center img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.v2-st-card {
  width: 100%;
  padding: 32px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  box-shadow: 0 8px 10px rgba(0, 0, 0, 0.1);
}

.v2-st-card__icon {
  width: 90px;
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #0b69b3 0%, #3994dc 100%);
  border-radius: var(--radius-sm);
  margin-bottom: 20px;
}

.v2-st-card__icon img {
  width: 44px;
  height: 44px;
}

/* PNG 图标自带渐变底盒,不再套 CSS 渐变 */
.v2-st-card.is-png-icon .v2-st-card__icon {
  background: none;
  border-radius: 0;
  width: 90px;
  height: 90px;
  overflow: hidden;
}

.v2-st-card.is-png-icon .v2-st-card__icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius-sm);
}

.v2-st-card__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  color: var(--color-title);
  margin-bottom: 8px;
}

.v2-st-card__desc {
  font-size: var(--font-size-sm);
  line-height: 18px;
  letter-spacing: 1.12px;
  color: var(--color-body);
}

/* 差异化优势 */
.v2-advantages {
  padding: 50px 0 64px;
  background: #f6f6f6;
}

.v2-advantages__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
  margin-top: 62px;
}

.v2-advantage {
  display: flex;
  align-items: stretch;
  background: var(--color-white);
  border: 1px solid var(--color-border);
}

.v2-advantage__img {
  width: 340px;
  height: 179px;
  flex: none;
  object-fit: cover;
  background: #a9cee7;
}

.v2-advantage__text {
  padding: 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.v2-advantage__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  color: var(--color-title);
  margin-bottom: 12px;
}

.v2-advantage__desc {
  font-size: var(--font-size-sm);
  line-height: 1.5;
  color: var(--color-body);
}

/* 联系我们 */
.v2-contact {
  padding: 80px 0 101px;
  background: #f6f6f6;
}

.v2-contact__inner {
  max-width: 1140px;
}

.v2-contact__title {
  text-align: center;
  font-size: var(--font-size-xxl);
  font-weight: 700;
  letter-spacing: 3.84px;
  line-height: 43px;
  color: var(--color-title);
  margin-bottom: 49px;
}

.v2-contact__form {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 60px;
  max-width: 1200px;
  margin: 0 auto;
}

.v2-form-field__label {
  display: block;
  font-size: var(--font-size-sm);
  line-height: 19px;
  color: var(--color-body);
  margin-bottom: 10px;
}

.v2-form-field input {
  width: 100%;
  height: 46px;
  padding: 0 15px;
  border: 1px solid #ccc;
  background: var(--color-white);
  font-size: var(--font-size-base);
  color: var(--color-title);
}

.v2-form-field input::placeholder {
  color: #999999;
}

.v2-contact__submit {
  grid-column: span 2;
  justify-self: center;
  width: 360px;
  height: 32px;
  margin-top: 40px;
  background: #0a61b9;
  color: var(--color-white);
  font-size: var(--font-size-base);
  border-radius: 2px;
}

@media (max-width: 992px) {
  .v2-predictive__cards,
  .v2-advantages__grid {
    grid-template-columns: 1fr;
  }

  .v2-st__body {
    flex-direction: column;
    gap: 24px;
  }

  .v2-st__col {
    max-width: 100%;
    width: 100%;
    align-items: stretch;
    gap: 16px;
  }

  .v2-st__center {
    flex: none;
    width: 100%;
    max-width: 335px;
    margin: 0 auto;
  }
}

@media (max-width: 768px) {
  .v2-hero {
    height: 395px;
  }

  /* 移动端独立 banner 图 + 深色标题 */
  .v2-hero__bg-img {
    left: 0;
    top: 0;
    width: 100%;
    height: 414px;
    object-fit: cover;
  }

  .v2-hero__agent,
  .v2-hero__overlay {
    display: none;
  }

  .v2-hero__inner {
    align-items: center;
    justify-content: flex-start;
    padding-top: 48px;
  }

  .v2-hero__title {
    font-size: 27px;
    line-height: 36px;
    text-align: center;
    margin-bottom: 8px;
  }

  .v2-hero__subtitle {
    font-size: 12px;
    line-height: 30px;
    letter-spacing: 0.96px;
    text-align: center;
  }

  /* 预测性维护:单列卡片 */
  .v2-predictive {
    padding: 32px 0 40px;
  }

  .v2-predictive__title,
  .v2-predictive h2 {
    font-size: 22px;
  }

  .v2-predictive__intro {
    font-size: 14px;
    line-height: 28px;
    letter-spacing: 1.68px;
    margin: 16px auto 32px;
    text-align: left;
  }

  .v2-predictive__cards {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .v2-feature {
    padding: 23px;
    gap: 20px;
    min-height: 0;
  }

  .v2-feature__icon {
    width: 68px;
    height: 68px;
    flex: none;
  }

  .v2-feature__title {
    font-size: 16px;
    letter-spacing: 1.92px;
  }

  .v2-feature__desc {
    font-size: 12px;
    letter-spacing: 1.44px;
  }

  /* 数据指标条:单行 3 列(同卡片宽) */
  .v2-stats-bar {
    width: 100%;
    padding: 14px 0;
    margin: 0;
    justify-content: space-evenly;
  }

  .v2-stats-bar__value {
    font-size: 30px;
    line-height: 40px;
  }

  .v2-stats-bar__label {
    font-size: 12px;
    letter-spacing: 1.44px;
  }

  .v2-stats-bar__item.has-divider::before {
    display: block;
    left: -32px;
    height: 66px;
  }

  /* 时空智能体:单列堆叠(卡=图标左+文字右, 138px) */
  .v2-st__col {
    gap: 8px;
  }

  /* ftl 无 __text 包裹层,用 grid 实现 icon 跨两行,避免 title 竖排 */
  .v2-st-card {
    display: grid;
    grid-template-columns: 68px 1fr;
    column-gap: 20px;
    align-items: start;
    padding: 23px 20px 33px;
  }

  .v2-st-card__icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    align-self: start;
    width: 68px;
    height: 68px;
  }

  .v2-st-card__title {
    grid-column: 2;
    grid-row: 1;
  }

  .v2-st-card__desc {
    grid-column: 2;
    grid-row: 2;
  }

  .v2-st-card__icon img {
    width: 50px;
    height: 50px;
  }

  /* 移动端 PNG 图标卡:盒内缩放 */
  .v2-st-card.is-png-icon .v2-st-card__icon {
    width: 68px;
    height: 68px;
  }

  .v2-st-card__text {
    flex: 1;
    min-width: 0;
  }

  .v2-st-card__title {
    font-size: 16px;
    letter-spacing: 1.92px;
  }

  .v2-st-card__desc {
    font-size: 12px;
    letter-spacing: 1.44px;
    line-height: 18px;
    margin-top: 0;
  }

  /* 移动端: st intro 用 5 行版, 隐藏 PC 版 */
  .v2-st__intro--pc {
    display: none;
  }
  .v2-st__intro--m {
    display: block;
  }

  /* 差异化优势:单列上图下文 */
  .v2-advantages {
    padding: 32px 0 40px;
  }

  .v2-advantages h2 {
    font-size: 22px;
  }

  .v2-advantages__grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 31px;
  }

  .v2-advantage {
    flex-direction: column;
  }

  .v2-advantage__img {
    width: 100%;
    height: 178px;
    object-fit: cover;
    object-position: center;
  }

  .v2-advantage__title {
    font-size: 16px;
    letter-spacing: 1.92px;
  }

  .v2-advantage__desc {
    font-size: 12px;
    letter-spacing: 1.44px;
  }

  /* 时空智能体:中央图提到卡前(intro→中图→4卡) */
  .v2-st__center {
    order: -1;
  }

  /* 差异化优势:白底无边框 */
  .v2-advantages {
    background: #ffffff;
  }
  .v2-advantage {
    border: none;
  }

  /* 数据指标条:与设计一致(已334, 微调间距) */
  .v2-stats-bar {
    padding: 14px 0;
  }

  /* 联系我们:单列表单 */
  .v2-contact {
    padding: 32px 0 40px;
  }

  .v2-contact__title {
    font-size: 23px;
    line-height: 30px;
    margin-bottom: 14px;
  }

  .v2-contact__form {
    grid-template-columns: 1fr;
    max-width: 313px;
    gap: 15px;
  }

  .v2-form-field input,
  .v2-form-field select {
    height: 27px;
    padding: 0 15px;
    font-size: 12px;
  }

  .v2-form-field__label {
    font-size: 10px;
    line-height: 13px;
    margin-bottom: 4px;
  }

  .v2-contact__submit {
    grid-column: span 1;
    width: 120px;
    height: 24px;
    margin: 20px auto 0;
    font-size: 12px;
    line-height: 16px;
  }
}

/* ---------- V2Navbar.vue ---------- */
.v2-navbar {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--navbar-height);
  background: var(--color-white);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.v2-navbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.v2-navbar__logo-img {
  height: 30px;
  width: auto;
}

.v2-navbar__nav {
  display: flex;
  align-items: center;
  gap: 32px;
}

.v2-navbar__link {
  font-size: var(--font-size-base);
  color: var(--color-title);
  line-height: var(--line-height-sm);
  white-space: nowrap;
  transition: color 0.2s ease;
}

.v2-navbar__link:hover,
.v2-navbar__link.is-active {
  color: var(--color-primary);
  font-weight: 700;
}

@media (max-width: 1200px) {
  .v2-navbar__nav {
    gap: 20px;
  }
}

@media (max-width: 992px) {
  .v2-navbar__nav {
    gap: 14px;
  }

  .v2-navbar__link {
    font-size: 14px;
  }
}

@media (max-width: 768px) {
  .v2-navbar__inner {
    justify-content: center;
  }

  .v2-navbar__nav {
    display: none;
  }
}

/* ---------- V2Footer.vue ---------- */
.v2-footer {
  background: var(--color-dark);
  color: var(--color-white);
}

.v2-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 24px 0;
}

.v2-footer__cols {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 40px;
}

.v2-footer__title {
  font-size: var(--font-size-base);
  font-weight: 700;
  line-height: var(--line-height-sm);
  margin-bottom: 20px;
}

.v2-footer__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.v2-footer__link {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: var(--line-height-sm);
  transition: color 0.2s ease;
}

.v2-footer__link:hover {
  color: var(--color-white);
}

.v2-footer__phone {
  font-size: 32px;
  font-weight: 700;
  line-height: var(--line-height-lg);
  color: var(--color-white);
}

.v2-footer__social {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.v2-footer__social-icon {
  width: 32px;
  height: 32px;
  background: var(--color-muted);
  border-radius: var(--radius-sm);
}

.v2-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 24px 0 30px;
  margin-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.v2-footer__logo {
  width: 182px;
  height: 18px;
}

.v2-footer__divider {
  width: 30px;
  height: 0;
  border-top: 1px solid var(--color-muted);
}

.v2-footer__copyright {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: var(--line-height-sm);
}

@media (max-width: 992px) {
  .v2-footer__cols {
    gap: 28px;
  }
}

@media (max-width: 768px) {
  .v2-footer__inner {
    padding: 40px 30px 0;
  }

  .v2-footer__cols {
    flex-direction: column;
    gap: 24px;
  }

  .v2-footer__bottom {
    flex-direction: column;
    gap: 10px;
    text-align: center;
  }

  .v2-footer__copyright {
    font-size: 13px;
  }
}


/* ============================================================
   PART 3  符合AQ(AqView.vue)
   ============================================================ */
.aq {
  background: var(--color-white);
  font-family: var(--font-family-zh);
}

.aq-title {
  font-size: 32px;
  font-weight: 700;
  line-height: 42px;
  letter-spacing: 3.84px;
  color: var(--color-title);
  text-align: center;
  padding-top: 50px;
}

/* 导航栏 */
.aq-nav {
  height: 70px;
  background: var(--color-white);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.aq-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  height: 100%;
  margin: 0 auto;
  padding: 0 24px;
}

.aq-nav__logo {
  height: 21px;
}

.aq-nav__menu {
  display: flex;
  gap: 32px;
}

.aq-nav__item {
  font-size: var(--font-size-base);
  color: var(--color-title);
  line-height: 21px;
  cursor: pointer;
}

/* Banner */
.aq-hero {
  position: relative;
  height: 750px;
  overflow: hidden;
}

.aq-hero__bg {
  position: absolute;
  left: -265px;
  top: -32px;
  width: 2260px;
  height: 959px;
  object-fit: cover;
  max-width: none;
}

.aq-hero__overlay {
  position: absolute;
  inset: 0;
}

.aq-hero__content {
  position: relative;
  z-index: 1;
  max-width: 660px;
  margin-left: 360px;
  padding-top: 290px;
}

.aq-hero__title {
  font-size: var(--font-size-hero);
  font-weight: 700;
  line-height: var(--line-height-hero);
  color: var(--color-white);
  margin-bottom: 12px;
}

.aq-hero__subtitle {
  font-size: var(--font-size-base);
  line-height: 30px;
  letter-spacing: 1.28px;
  color: var(--color-white);
}

/* 政策背景 */
.aq-policy {
  /* MasterGo 28:1281: policy block ends at y=1611 (height 791). */
  padding-bottom: 20px;
  background: #f6f6f6;
}

.aq-policy__docs {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: 40px;
  margin-top: 40px;
}

.aq-policy__doc {
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.15);
  object-fit: cover;
  height: 230px;
}

.aq-policy__docs img:nth-child(1) {
  width: 233px;
  height: 148px;
  align-self: flex-end;
}

.aq-policy__timeline {
  display: flex;
  justify-content: center;
  gap: 40px; /* 与 .aq-policy__docs 的 gap 保持一致，保证文字与上方图片逐列对齐 */
  margin-top: 50px;
}

/* 时间线每列宽度 = 上方对应法规图的实际渲染宽度（图片高 230px，宽度按原始比例）
   这样两组的"总宽 + 逐列宽"完全一致，文字自然居中于图片下方。
   ⚠️ 若以后替换法规图，需按新图比例同步更新这里的 5 个宽度。 */
.aq-policy__node {
  text-align: center;
  position: relative;
}

.aq-policy__node:nth-child(1) { width: 233px; } /* 图 4b3a6161… 1275x806 → 233px（CSS 亦固定） */
.aq-policy__node:nth-child(2) { width: 163px; } /* 图 9a416ced… 1240x1754 */
.aq-policy__node:nth-child(3) { width: 194px; } /* 图 8a67ac81…  975x1153 */
.aq-policy__node:nth-child(4) { width: 164px; } /* 图 30f27ea3…  750x1050 */
.aq-policy__node:nth-child(5) { width: 161px; } /* 图 0bfe71a4…  752x1074 */

.aq-policy__dot {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  display: inline-block;
  margin-bottom: 8px;
}

.aq-policy__date {
  font-size: var(--font-size-base);
  font-weight: 700;
  line-height: 21px;
  color: var(--color-title);
}

.aq-policy__law {
  font-size: var(--font-size-sm);
  line-height: 18px;
  letter-spacing: 1.68px;
  color: var(--color-body);
  margin-top: 6px;
}

.aq-policy__organ {
  font-size: var(--font-size-sm);
  font-weight: 700;
  line-height: 18px;
  letter-spacing: 1.68px;
  color: var(--color-title);
  margin-top: 6px;
}

.aq-policy__implement {
  font-size: var(--font-size-xs);
  font-weight: 700;
  line-height: 16px;
  letter-spacing: 1.44px;
  color: #214aa7;
  margin-top: 4px;
}

.aq-policy__demands {
  display: flex;
  justify-content: center;
  gap: 20px;
  margin-top: 60px;
}

.aq-demand {
  display: flex;
  gap: 0;
  width: 313px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
}

.aq-demand__bar {
  width: 8px;
  height: 100px;
  flex: none;
  margin-top: 14px;
}

.aq-demand__body {
  padding: 19px 20px 20px;
}

.aq-demand__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  color: var(--color-title);
  margin-bottom: 10px;
}

.aq-demand__desc {
  font-size: var(--font-size-sm);
  line-height: 1.5;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

/* 应对方案 */
.aq-solutions {
  background: #f6f6f6;
  padding-bottom: 60px;
}

/* MasterGo 28:1281 desktop block heights: 415 / 571 / 589px. */
.aq-solutions > .aq-block:nth-child(2) {
  padding-bottom: 93px;
}

.aq-solutions > .aq-block:nth-child(3) {
  padding-bottom: 73px;
}

.aq-solutions > .aq-block:nth-child(4) {
  padding-bottom: 123px;
}

.aq-block {
  background: var(--color-white);
  max-width: 1300px;
  margin: 60px auto 0;
  padding: 24px 0 48px;
}

.aq-block__title {
  font-size: 22px;
  font-weight: 700;
  line-height: 29px;
  letter-spacing: 2.64px;
  color: var(--color-title);
  text-align: center;
  margin-bottom: 30px;
}

/* 问题1:方案卡 */
.aq-sol-cards {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.aq-sol-card {
  width: 260px;
  padding: 24px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  position: relative;
  min-height: 236px;
}

.aq-sol-card.is-highlighted {
  background: var(--color-primary);
  border-color: var(--color-primary);
}

/* 高亮态由 .is-highlighted 派生（不再依赖 HTML 里写死的 is-white）
   —— 这样 hover / 滚动切换高亮时，文字颜色会自动跟随。
   transition 让切换平滑。 */
.aq-sol-card {
  transition: background 0.25s ease, border-color 0.25s ease;
}

.aq-sol-card.is-highlighted .aq-sol-card__num,
.aq-sol-card.is-highlighted .aq-sol-card__title {
  color: var(--color-white);
  transition: color 0.25s ease;
}

.aq-sol-card.is-highlighted .aq-sol-card__desc {
  color: rgba(255, 255, 255, 0.8);
  transition: color 0.25s ease;
}

/* 高亮时图标也要变白：图标是独立 SVG（fill 写死为 #0B69B3），蓝底上看不见。
   用 filter 把任意颜色转纯白（brightness(0)=纯黑 → invert(1)=纯白），
   比内联 SVG 改 currentColor 省 ~55KB，且换图标无需改样式。 */
.aq-sol-card.is-highlighted .aq-sol-card__icon {
  filter: brightness(0) invert(1);
  transition: filter 0.25s ease;
}

.aq-sol-card__num {
  font-size: 48px;
  font-weight: 700;
  letter-spacing: 5.76px;
  color: var(--color-primary);
  transition: color 0.25s ease;
}

.aq-sol-card__num.is-white {
  color: var(--color-white);
}

.aq-sol-card__icon {
  position: absolute;
  right: 24px;
  top: 24px;
  width: 80px;
  height: 80px;
}

.aq-sol-card__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  color: var(--color-title);
  margin: 16px 0 8px;
}

.aq-sol-card__title.is-white {
  color: var(--color-white);
}

.aq-sol-card__desc {
  font-size: var(--font-size-sm);
  line-height: 1.5;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

.aq-sol-card__desc.is-white {
  color: rgba(255, 255, 255, 0.8);
}

/* 问题2:红橙/黄蓝 */
.aq-upgrade {
  display: flex;
  justify-content: center;
  gap: 20px;
}

.aq-upgrade__img {
  flex: 0 0 700px;
  overflow: hidden;
}

.aq-upgrade__img img {
  width: 100%;
  height: 415px;
  object-fit: cover;
}

.aq-upgrade__panel {
  flex: 0 0 388px;
  background: #f9fafc;
  padding: 40px 30px;
}

.aq-upgrade__row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}

.aq-upgrade__bar {
  width: 6px;
  height: 52px;
  flex: none;
  border-radius: 3px;
}

.aq-upgrade__label {
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: 2.4px;
  color: var(--color-title);
}

.aq-upgrade__points {
  margin-top: 16px;
  color: var(--color-body);
  font-size: var(--font-size-base);
  line-height: 1.8;
  letter-spacing: 1.92px;
}

/* 问题3:升级改造 */
.aq-nonstop {
  display: flex;
  justify-content: center;
  gap: 30px;
}

.aq-nonstop__card {
  width: 320px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  padding: 24px 24px 32px;
}

.aq-nonstop__card.is-highlighted {
  border-color: var(--color-primary);
}

/* 同 aq-sol-card：高亮态由 .is-highlighted 派生，hover / 滚动切换时颜色自动跟随 */
.aq-nonstop__card {
  transition: border-color 0.25s ease;
}

.aq-nonstop__card.is-highlighted .aq-nonstop__title {
  color: var(--color-primary);
  transition: color 0.25s ease;
}

.aq-nonstop__card.is-highlighted .aq-nonstop__desc {
  color: var(--color-title);
  transition: color 0.25s ease;
}

.aq-nonstop__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  color: var(--color-title);
  margin-bottom: 16px;
  transition: color 0.25s ease;
}

.aq-nonstop__title.is-primary {
  color: var(--color-primary);
}

.aq-nonstop__img {
  width: 200px;
  height: 200px;
  object-fit: cover;
  margin: 0 auto 16px;
}

.aq-nonstop__desc {
  font-size: var(--font-size-sm);
  line-height: 1.5;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

.aq-nonstop__desc.is-title {
  color: var(--color-title);
}

/* 新AQ认证案例 */
.aq-case {
  background: #f6f6f6;
  padding: 60px 0 42px;
  text-align: center;
}

.aq-case__title {
  font-size: var(--font-size-xxl);
  font-weight: 700;
  line-height: 42px;
  letter-spacing: 3.84px;
}

.aq-case__highlight {
  color: var(--color-primary);
}

.aq-case__suffix {
  color: var(--color-title);
}

.aq-case__subtitle {
  font-size: var(--font-size-base);
  line-height: 21px;
  letter-spacing: 1.92px;
  color: var(--color-title);
  margin: 16px 0 40px;
}

.aq-case__img {
  width: 1300px;
  max-width: 90%;
  margin: 0 auto;
  object-fit: cover;
}

/* 联系我们 */
.aq-contact {
  background: #f6f6f6;
  padding: 80px 0 101px;
}

.aq-contact__title {
  font-size: var(--font-size-xxl);
  font-weight: 700;
  line-height: 43px;
  color: var(--color-title);
  text-align: center;
  margin-bottom: 49px;
}

.aq-contact__form {
  display: grid;
  grid-template-columns: repeat(2, 570px);
  gap: 40px;
  justify-content: center;
  max-width: 1200px;
  margin: 0 auto;
}

.aq-field__label {
  display: block;
  font-size: var(--font-size-sm);
  line-height: 19px;
  color: var(--color-body);
  margin-bottom: 10px;
}

.aq-field__input {
  width: 100%;
  height: 46px;
  padding: 0 15px;
  border: 1px solid #ccc;
  background: var(--color-white);
  font-size: var(--font-size-base);
  color: var(--color-title);
}

.aq-field__input::placeholder {
  color: #999999;
}

/* 省/市 下拉框:与 input 一致的外观(无原生箭头,如设计) */
select.v2-form-field__input, select.aq-field__input,
.v2-form-field select, .aq-field select {
  width: 100%;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #ccc;
  background: var(--color-white);
  color: var(--color-body);
  font-size: var(--font-size-sm);
  box-sizing: border-box;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  font-family: inherit;
  cursor: pointer;
}

.aq-contact__submit {
  grid-column: span 2;
  justify-self: center;
  width: 360px;
  height: 32px;
  margin-top: 40px;
  background: #0a61b9;
  color: var(--color-white);
  font-size: var(--font-size-base);
  border-radius: 2px;
}

/* 底部栏 */
.aq-footer {
  background: var(--color-dark);
  color: var(--color-white);
}

.aq-footer__cols {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 24px 0;
}

.aq-footer__title {
  font-size: var(--font-size-base);
  font-weight: 700;
  line-height: 21px;
  margin-bottom: 20px;
}

.aq-footer__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.aq-footer__list li {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: 21px;
}

.aq-footer__phone {
  font-size: 32px;
  font-weight: 700;
  line-height: 42px;
  color: var(--color-white);
}

.aq-footer__social {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.aq-footer__social-icon {
  width: 32px;
  height: 32px;
  background: var(--color-muted);
  border-radius: var(--radius-sm);
}

.aq-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 24px 0 30px;
  margin-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.aq-footer__logo {
  width: 182px;
  height: 18px;
}

.aq-footer__divider {
  width: 30px;
  height: 0;
  border-top: 1px solid var(--color-muted);
}

.aq-footer__copyright {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: 21px;
}

/* 移动端响应式 */
@media (max-width: 1200px) {
  .aq-hero__content {
    margin-left: 40px;
    padding-top: 200px;
  }

  .aq-policy__docs {
    gap: 16px;
  }

  .aq-policy__timeline {
    flex-wrap: wrap;
    gap: 20px;
  }

  .aq-policy__demands {
    flex-wrap: wrap;
  }

  .aq-sol-cards {
    flex-wrap: wrap;
  }

  .aq-upgrade {
    flex-wrap: wrap;
  }

  .aq-upgrade__img {
    flex: none;
    width: 100%;
  }

  .aq-upgrade__panel {
    flex: none;
    width: 100%;
  }

  .aq-nonstop {
    flex-wrap: wrap;
  }

  .aq-contact__form {
    grid-template-columns: 1fr;
    padding: 0 24px;
  }

  .aq-contact__submit {
    grid-column: span 1;
    width: 100%;
  }
}

@media (max-width: 768px) {
  .navbar {
    height: 55px;
    /* 2026-09-14: 原来只压了 height 没改这个变量，而菜单面板是 top: var(--navbar-height)，
       于是移动端面板从 70px 开始，表头(55px) 与面板之间露出 15px 的 Hero 缝 —— 用户报的「有间隔」 */
    --navbar-height: 55px;
  }

  .aq-nav__menu {
    display: none;
  }

  .aq-hero {
    height: 395px;
  }

  .aq-hero__bg {
    left: -555px;
    top: 0;
    width: 930px;
    height: 395px;
  }

  .aq-hero__content {
    margin-left: 30px;
    padding-top: 150px;
  }

  .aq-hero__title {
    font-size: 28px;
    line-height: 38px;
  }

  .aq-title {
    font-size: 22px;
    line-height: 34px;
    letter-spacing: 1px;
    padding: 32px 16px 0;
  }

  /* MasterGo mobile 28:0771: policy section is a compact two-column timeline. */
  .aq-policy {
    position: relative;
    height: 1257px;
    padding: 0;
    overflow: hidden;
  }

  .aq-policy__docs {
    position: absolute;
    left: 30px;
    top: 128px;
    width: 110px;
    height: 710px;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: 0;
  }

  .aq-policy__docs img {
    width: 110px;
    height: 132px;
    object-fit: contain;
  }

  .aq-policy__docs img:nth-child(1) {
    width: 110px;
    height: 70px;
  }

  .aq-policy__timeline {
    position: absolute;
    right: 30px;
    top: 128px;
    width: 205px;
    height: 710px;
    margin: 0;
    padding: 12px 14px;
    flex-direction: column;
    align-items: stretch;
    justify-content: space-between;
    gap: 0;
    background: #34a9df;
  }

  .aq-policy__node {
    width: 100%;
    min-height: 124px;
    text-align: left;
  }

  .aq-policy__dot {
    display: none;
  }

  .aq-policy__date,
  .aq-policy__law,
  .aq-policy__organ,
  .aq-policy__implement {
    margin-top: 2px;
    font-size: 10px;
    line-height: 1.35;
    letter-spacing: 0;
  }

  .aq-policy__date,
  .aq-policy__organ,
  .aq-policy__implement {
    color: #064d86;
    font-weight: 700;
  }

  .aq-policy__law {
    color: #ffffff;
  }

  .aq-policy__demands {
    position: absolute;
    left: 30px;
    bottom: 30px;
    width: 315px;
    height: 368px;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(2, minmax(0, 1fr));
    gap: 4px;
  }

  .aq-demand {
    width: 100%;
    height: 182px;
    min-width: 0;
  }

  .aq-demand__bar {
    width: 5px;
    height: 58px;
    margin-top: 12px;
  }

  .aq-demand__body {
    padding: 14px 10px;
  }

  .aq-demand__title {
    margin-bottom: 6px;
    font-size: 14px;
  }

  .aq-demand__desc {
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0;
  }

  .aq-solutions {
    position: relative;
    height: 1920px;
    padding: 0;
    overflow: hidden;
  }

  .aq-solutions > .aq-title {
    padding-top: 34px;
  }

  .aq-block {
    position: absolute;
    left: 30px;
    width: 315px;
    margin: 0;
    padding: 16px 12px;
  }

  .aq-solutions > .aq-block:nth-child(2) {
    top: 128px;
    height: 650px;
    padding-bottom: 16px;
  }

  .aq-solutions > .aq-block:nth-child(3) {
    top: 810px;
    height: 550px;
    padding-bottom: 16px;
  }

  .aq-solutions > .aq-block:nth-child(4) {
    top: 1392px;
    height: 494px;
    padding-bottom: 16px;
  }

  .aq-block__title {
    margin-bottom: 16px;
    font-size: 14px;
    line-height: 1.55;
    letter-spacing: 0;
  }

  .aq-sol-cards {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .aq-sol-card {
    width: 100%;
    min-height: 0;
    height: 125px;
    padding: 12px 14px;
  }

  .aq-sol-card__num {
    font-size: 28px;
    letter-spacing: 2px;
  }

  .aq-sol-card__icon {
    top: 12px;
    right: 14px;
    width: 45px;
    height: 45px;
  }

  .aq-sol-card__title {
    margin: 4px 0;
    font-size: 14px;
  }

  .aq-sol-card__desc {
    font-size: 10px;
    line-height: 1.4;
    letter-spacing: 0;
  }

  .aq-upgrade {
    display: block;
  }

  .aq-upgrade__img {
    width: 100%;
    height: 197px;
  }

  .aq-upgrade__img img {
    height: 197px;
  }

  .aq-upgrade__panel {
    width: 100%;
    padding: 14px 18px;
  }

  .aq-upgrade__row {
    margin-bottom: 8px;
  }

  .aq-upgrade__bar {
    height: 36px;
  }

  .aq-upgrade__label {
    font-size: 13px;
    letter-spacing: 0;
  }

  .aq-upgrade__points {
    margin-top: 8px;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0;
  }

  .aq-nonstop {
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .aq-nonstop__card {
    width: 100%;
    height: 125px;
    padding: 10px 12px;
    display: grid;
    grid-template-columns: 88px 1fr;
    grid-template-rows: auto 1fr;
    column-gap: 10px;
  }

  .aq-nonstop__title {
    grid-column: 2;
    margin: 0 0 4px;
    font-size: 13px;
  }

  .aq-nonstop__img {
    grid-column: 1;
    grid-row: 1 / span 2;
    width: 88px;
    height: 88px;
    margin: 8px 0 0;
  }

  .aq-nonstop__desc {
    grid-column: 2;
    font-size: 9px;
    line-height: 1.4;
    letter-spacing: 0;
  }

  .aq-case {
    height: 1550px;
    padding: 58px 0 0;
  }

  .aq-case__title {
    font-size: 22px;
    line-height: 1.6;
    letter-spacing: 0;
  }

  .aq-case__title span {
    display: block;
  }

  .aq-case__subtitle {
    margin: 8px 30px 22px;
    font-size: 10px;
    line-height: 1.5;
    letter-spacing: 0;
  }

  .aq-case__picture {
    display: block;
    width: 315px;
    margin: 0 auto;
  }

  .aq-case__img {
    display: block;
    width: 315px;
    max-width: none;
    height: 1303px;
    object-fit: cover;
  }

  /* The approved mobile design ends with the test table, then footer. */
  .aq-contact {
    display: none;
  }

  .footer { min-height: 0; } /* 2026-09-14: 原 697px(抄 AQ 移动稿) 造成首页页脚下方 172px 死区 */

  .aq-footer__cols {
    flex-direction: column;
    padding-top: 40px;
  }

  .aq-footer__bottom {
    flex-direction: column;
    text-align: center;
    padding: 20px 24px 24px;
  }
}


/* ============================================================
   PART 4  产品中心-预测性维护(ProductView.vue)
   ============================================================ */
.product {
  background: var(--color-white);
  font-family: var(--font-family-zh);
}

.prod-title {
  font-size: 32px;
  font-weight: 700;
  line-height: 42px;
  letter-spacing: 3.84px;
  color: var(--color-title);
  text-align: center;
  padding-top: 50px;
}

.prod-section {
  padding-bottom: 0;
  overflow: hidden;
}

.prod-section--gray {
  background: #f6f6f6;
}

.prod-mobile-snapshot {
  display: none;
}

/* 导航 */
.prod-nav {
  height: 70px;
  background: var(--color-white);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.prod-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  max-width: 1200px;
  height: 100%;
  margin: 0 auto;
  padding: 0 24px;
}

.prod-nav__logo {
  height: 21px;
}

.prod-nav__menu {
  display: flex;
  gap: 32px;
}

.prod-nav__item {
  font-size: var(--font-size-base);
  color: var(--color-title);
  line-height: 21px;
  cursor: pointer;
}

/* Banner */
.prod-hero {
  position: relative;
  height: 750px;
  overflow: hidden;
}

.prod-hero__snapshot,
.prod-hero__snapshot img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.prod-hero__snapshot {
  z-index: 0;
}

.prod-hero__content {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.prod-hero__title {
  font-size: var(--font-size-hero);
  font-weight: 700;
  line-height: var(--line-height-hero);
  color: var(--color-title);
  margin-bottom: 12px;
}

.prod-hero__subtitle {
  font-size: var(--font-size-base);
  line-height: 30px;
  letter-spacing: 1.28px;
  color: var(--color-title);
}

/* 方案概述 */
.prod-overview {
  height: 251px;
}

.prod-overview__text {
  max-width: 1200px;
  margin: 16px auto 0;
  padding: 0 24px;
}

.prod-overview__p {
  font-size: var(--font-size-base);
  line-height: 21px;
  letter-spacing: 1.92px;
  color: var(--color-body);
  text-align: center;
  margin-bottom: 0;
}

/* 核心价值 */
.prod-values {
  height: 810px;
}

.prod-values__grid {
  display: grid;
  /* Keep the 634px design width on wide screens while allowing the grid to
     shrink on medium desktops (e.g. 1280px viewports) without overflowing. */
  width: min(1300px, calc(100% - 48px));
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px;
  justify-content: center;
  margin: 50px auto 0;
}

.prod-value {
  display: flex;
  align-items: center;
  gap: 40px;
  height: 181px;
  padding: 40px 56px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
}

.prod-value__icon {
  width: 90px;
  height: 90px;
  flex: none;
  color: var(--color-primary);
}

.prod-value__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 26px;
  letter-spacing: 2.4px;
  color: var(--color-title);
  margin-bottom: 8px;
}

.prod-value__desc {
  font-size: var(--font-size-sm);
  line-height: 1.46;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

/* 系统架构 */
.prod-architecture {
  height: 1080px;
}

.prod-arch__img {
  display: block;
  width: 1300px;
  max-width: 90%;
  margin: 36px auto 0;
}

/* 核心算法能力 */
.prod-algorithm {
  height: 909px;
}

.prod-algo__intro {
  max-width: 900px;
  margin: 16px auto 0;
  text-align: center;
  font-size: var(--font-size-base);
  line-height: 21px;
  letter-spacing: 1.92px;
  color: var(--color-body);
}

.prod-algo__body {
  position: relative;
  width: min(1300px, calc(100% - 48px));
  height: 638px;
  margin: 65px auto 0;
}

.prod-algo__col {
  display: contents;
}

.prod-algo-card {
  position: absolute;
  width: 260px;
  height: 286px;
  padding: 32px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  box-shadow: 0 8px 10px rgba(0, 0, 0, 0.1);
}

.prod-algo__body > .prod-algo__col:first-child .prod-algo-card:first-child {
  left: 0;
  top: 0;
}

.prod-algo__body > .prod-algo__col:first-child .prod-algo-card:last-child {
  right: 0;
  top: 0;
}

.prod-algo__body > .prod-algo__col:last-child .prod-algo-card:first-child {
  left: 0;
  bottom: 0;
}

.prod-algo__body > .prod-algo__col:last-child .prod-algo-card:last-child {
  right: 0;
  bottom: 0;
}

.prod-algo-card__icon {
  width: 90px;
  height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, #0b69b3 0%, #3994dc 100%);
  border-radius: var(--radius-sm);
  margin-bottom: 20px;
}

.prod-algo-card__icon img {
  width: 64px;
  height: 64px;
}

.prod-algo-card__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 26px;
  letter-spacing: 2.4px;
  color: var(--color-title);
  margin-bottom: 8px;
}

.prod-algo-card__desc {
  font-size: var(--font-size-sm);
  line-height: 18px;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

.prod-algo__center {
  position: absolute;
  left: 50%;
  top: 0;
  width: 638px;
  height: 638px;
  transform: translateX(-50%);
}

.prod-algo__center img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* 独特优势 */
.prod-advantage {
  position: relative;
  height: 910px;
}

.prod-advantage__snapshot,
.prod-advantage__snapshot img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.prod-advantage__snapshot {
  z-index: 0;
}

.prod-advantage > :not(.prod-advantage__snapshot) {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.prod-adv__pills {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 100px;
  margin-top: 506px;
}

.prod-adv__pill {
  padding: 8px 30px;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 29px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  font-size: 22px;
  line-height: 29px;
  letter-spacing: 2.64px;
  color: var(--color-primary);
}

.prod-adv__pill.is-main {
  padding: 12px 40px;
  font-size: 28px;
  font-weight: 700;
  line-height: 37px;
  letter-spacing: 3.36px;
}

.prod-adv__subtitle {
  text-align: center;
  font-size: 22px;
  font-weight: 700;
  line-height: 29px;
  letter-spacing: 2.64px;
  color: var(--color-title);
  margin-top: 90px;
}

.prod-adv__text {
  max-width: 832px;
  margin: 12px auto 0;
  padding: 0 24px;
}

.prod-adv__p {
  font-size: var(--font-size-base);
  line-height: 21px;
  letter-spacing: 1.92px;
  color: var(--color-body);
  text-align: center;
  margin-bottom: 8px;
}

/* 产品矩阵 */
.prod-matrix-section {
  height: 600px;
}

.prod-matrix {
  display: flex;
  justify-content: center;
  gap: 26px;
  margin-top: 58px;
}

.prod-matrix__card {
  width: 305px;
  height: 390px;
  padding: 32px 24px;
  background: var(--color-white);
  border: 1px solid var(--color-border);
  position: relative;
}

.prod-matrix__card.is-highlighted {
  border-color: var(--color-primary);
}

.prod-matrix__label {
  font-family: var(--font-family-en);
  font-size: 12px;
  font-weight: 500;
  line-height: 20px;
  letter-spacing: 1px;
  color: #999999;
}

.prod-matrix__card.is-highlighted .prod-matrix__label {
  color: #a9cee7;
}

.prod-matrix__title {
  font-size: var(--font-size-xl);
  font-weight: 700;
  line-height: 26px;
  letter-spacing: 2.4px;
  color: var(--color-title);
  margin: 8px 0;
}

.prod-matrix__card.is-highlighted .prod-matrix__title {
  color: var(--color-primary);
}

.prod-matrix__desc {
  font-size: var(--font-size-sm);
  line-height: 1.6;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

.prod-matrix__card.is-highlighted .prod-matrix__desc {
  color: var(--color-primary);
}

.prod-matrix__list {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.prod-matrix__list li {
  font-size: var(--font-size-sm);
  line-height: 1.6;
  letter-spacing: 1.68px;
  color: var(--color-body);
}

/* 项目案例 */
.prod-cases {
  height: 739px;
}

.prod-cases .prod-title {
  padding-top: 0;
}

.prod-cases__main {
  position: relative;
  width: 1200px;
  max-width: 90%;
  height: 347px;
  margin: 38px auto 0;
  overflow: hidden;
}

.prod-cases__main-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.prod-cases__main-body {
  position: relative;
  padding: 40px 60px;
}

.prod-cases__main-title {
  font-size: 26px;
  font-weight: 700;
  line-height: 34px;
  letter-spacing: 3.12px;
  color: var(--color-white);
  margin-bottom: 16px;
}

.prod-cases__main-desc {
  max-width: 700px;
  font-size: var(--font-size-sm);
  line-height: 1.6;
  letter-spacing: 1.68px;
  color: var(--color-white);
}

.prod-cases__grid {
  display: flex;
  justify-content: center;
  gap: 13px;
  margin-top: 14px;
}

.prod-cases__item {
  position: relative;
  width: 290px;
  height: 190px;
  overflow: hidden;
}

.prod-cases__item-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.prod-cases__item-name {
  position: relative;
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  line-height: 24px;
  letter-spacing: 2.16px;
  color: var(--color-white);
  padding-top: 83px;
}

/* 底部栏 */
.prod-footer {
  background: var(--color-dark);
  color: var(--color-white);
}

.prod-footer__cols {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 24px 0;
}

.prod-footer__title {
  font-size: var(--font-size-base);
  font-weight: 700;
  line-height: 21px;
  margin-bottom: 20px;
}

.prod-footer__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.prod-footer__list li {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: 21px;
}

.prod-footer__phone {
  font-size: 32px;
  font-weight: 700;
  line-height: 42px;
  color: var(--color-white);
}

.prod-footer__social {
  display: flex;
  gap: 8px;
  margin-top: 16px;
}

.prod-footer__social-icon {
  width: 32px;
  height: 32px;
  background: var(--color-muted);
  border-radius: var(--radius-sm);
}

.prod-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 24px 0 30px;
  margin-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.prod-footer__logo {
  width: 182px;
  height: 18px;
}

.prod-footer__divider {
  width: 30px;
  height: 0;
  border-top: 1px solid var(--color-muted);
}

.prod-footer__copyright {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: 21px;
}

/* 响应式 */
@media (max-width: 1200px) {
  .prod-hero__content {
    margin-left: 40px;
    padding-top: 200px;
  }

  .prod-values__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .prod-algo__body {
    flex-wrap: wrap;
  }

  .prod-algo__center {
    flex: none;
    width: 100%;
    max-width: 480px;
  }

  .prod-algo__col {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
  }

  .prod-algo-card {
    width: calc(50% - 15px);
  }

  .prod-matrix {
    flex-wrap: wrap;
  }

  .prod-cases__grid {
    flex-wrap: wrap;
  }
}

@media (max-width: 768px) {
  .prod-nav__menu {
    display: none;
  }

  .prod-hero {
    height: 480px;
  }

  .prod-hero__content {
    margin-left: 24px;
    padding-top: 120px;
  }

  .prod-hero__title {
    font-size: 28px;
    line-height: 38px;
  }

  .prod-title {
    font-size: 22px;
    line-height: 34px;
    letter-spacing: 1px;
    padding: 32px 16px 0;
  }

  .prod-values__grid {
    grid-template-columns: 1fr;
  }

  .prod-value {
    flex-direction: column;
    align-items: flex-start;
  }

  .prod-algo-card {
    width: 100%;
  }

  .prod-adv__pills {
    flex-wrap: wrap;
    gap: 20px;
  }

  .prod-adv__pill.is-main {
    font-size: 22px;
  }

  .prod-matrix {
    flex-direction: column;
    align-items: center;
  }

  .prod-matrix__card {
    width: 90%;
  }

  .prod-cases__main-body {
    padding: 20px;
  }

  .prod-cases__main-desc {
    font-size: 13px;
  }

  .prod-cases__grid {
    flex-direction: column;
    align-items: center;
  }

  .prod-footer__cols {
    flex-direction: column;
    padding-top: 40px;
  }

  .prod-footer__bottom {
    flex-direction: column;
    text-align: center;
    padding: 20px 24px 24px;
  }
}

/* MasterGo 移动稿是独立的 375px 画板（总高 6569px），并非桌面稿的
   普通单列重排。正文使用逐段 2x 设计快照保证字体、图形和区块比例一致；
   原语义内容保留为可访问文本，不参与移动端视觉排版。 */
@media (max-width: 768px) {
  .prod-hero {
    height: auto;
    aspect-ratio: 375 / 395;
  }

  .prod-hero__snapshot,
  .prod-hero__snapshot img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .product .prod-section:not(.prod-advantage) {
    height: auto;
    min-height: 0;
    padding: 0;
    background: #fff;
  }

  .product .prod-mobile-snapshot {
    display: block;
    width: 100%;
    height: auto;
  }

  .product .prod-section:not(.prod-advantage) > :not(.prod-mobile-snapshot) {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }

  .product .prod-advantage {
    height: auto;
    aspect-ratio: 375 / 575;
    padding: 0;
    background: #fff;
  }

  .product .prod-advantage__snapshot,
  .product .prod-advantage__snapshot img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
}


/* ============================================================
   PART 5  全局布局(Navbar.vue + Footer.vue + App.vue)
   ============================================================ */

/* ---------- App.vue ---------- */
.app {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.app__main {
  flex: 1;
}

/* ---------- Navbar.vue(全局导航) ---------- */
.navbar {
  position: sticky;
  top: 0;
  z-index: 100;
  height: var(--navbar-height);
  background: var(--color-white);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.navbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.navbar__logo {
  display: flex;
  align-items: center;
}

.navbar__logo-img {
  height: 22px;
  width: auto;
}

.navbar__nav {
  display: flex;
  align-items: center;
  gap: 40px;
}

.navbar__item {
  position: relative;
}

.navbar__link {
  display: block;
  font-size: var(--font-size-base);
  color: var(--color-title);
  line-height: var(--line-height-sm);
  padding: 24px 0 23px;
  transition: color 0.2s ease;
}

.navbar__link:hover,
.navbar__link.is-active {
  color: var(--color-primary);
  font-weight: 700;
}

/* 设计稿高亮下划线(2px 主色) */
.navbar__link.is-active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: var(--color-primary);
}

/* 下拉 */
.navbar__dropdown {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  min-width: 180px;
  background: var(--color-white);
  box-shadow: none;
  border: none;
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
  z-index: 110;
}

.navbar__dropdown.is-open {
  opacity: 1;
  visibility: visible;
}

.navbar__dropdown-link {
  display: block;
  padding: 10px 24px; text-align: center;
  font-size: var(--font-size-base);
  color: #999999;
  white-space: nowrap;
  transition: color 0.2s ease, background 0.2s ease;
}

.navbar__dropdown-link:hover {
  color: var(--color-primary);
  background: var(--color-bg-soft);
}

.navbar__toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  padding: 6px;
  background: transparent;
}

.navbar__toggle span {
  display: block;
  height: 2px;
  background: var(--color-title);
  transition: transform 0.25s ease, opacity 0.25s ease;
}

/* 汉堡动画 */
.navbar__toggle.is-active span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.navbar__toggle.is-active span:nth-child(2) {
  opacity: 0;
}

.navbar__toggle.is-active span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

@media (max-width: 768px) {
  .navbar__toggle {
    display: flex;
  }

  .navbar__nav {
    position: absolute;
    top: var(--navbar-height);
    left: 0;
    right: 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    background: var(--color-white);
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
    padding: 0 24px;
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
  }

  .navbar__nav.is-open {
    max-height: 400px;
  }

  .navbar__item {
    width: 100%;
  }

  .navbar__link {
    width: 100%;
    padding: 14px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
  }

  .navbar__link.is-active::after {
    display: none;
  }

  /* 移动端:点击大项右侧箭头展开下拉 */
  .navbar__item {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
  }

  .navbar__link {
    flex: 1;
    width: auto;
    padding: 14px 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
  }

  .navbar__link.is-active::after {
    display: none;
  }

  .navbar__mobile-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 48px;
    background: transparent;
    border: none;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04);
  }

  .navbar__mobile-toggle span {
    display: block;
    width: 10px;
    height: 10px;
    border-right: 2px solid var(--color-body);
    border-bottom: 2px solid var(--color-body);
    transform: rotate(45deg);
    transition: transform 0.25s ease;
  }

  .navbar__mobile-toggle.is-open span {
    transform: rotate(-135deg);
  }

  .navbar__dropdown { position: static; transform: none; opacity: 1; visibility: visible; box-shadow: none; border: none; padding: 0 0 8px 16px; flex-basis: 100%; display: block; width: 100%; max-height: 0; overflow: hidden; transition: max-height 0.25s ease; } /* 2026-09-14: display:none 不能过渡 → 改 max-height 动画 */

  .navbar__dropdown.is-open { max-height: 200px; }

  .navbar__dropdown-link {
    padding: 8px 0;
    font-size: var(--font-size-base);
    color: var(--color-body);
    white-space: normal;
    text-align: left;
  }
}

/* 桌面隐藏移动端箭头 */
@media (min-width: 769px) {
  .navbar__mobile-toggle {
    display: none;
  }
}

/* ---------- Footer.vue(全局页脚) ---------- */
.footer {
  background: var(--color-dark);
  color: var(--color-white);
}

.footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 24px 0;
}

.footer__cols {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 40px;
}

.footer__col-title {
  font-size: var(--font-size-base);
  font-weight: 700;
  line-height: var(--line-height-sm);
  margin-bottom: 20px;
}

.footer__col-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer__col-link {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: var(--line-height-sm);
  transition: color 0.2s ease;
}

.footer__col-link:hover {
  color: var(--color-white);
}

.footer__phone {
  font-size: 32px;
  font-weight: 700;
  line-height: var(--line-height-lg);
  color: var(--color-white);
}

.footer__arrow {
  display: none;
}

.footer__bottom {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  padding: 24px 0 30px;
  margin-top: 32px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.footer__bottom-logo {
  width: 182px;
  height: 18px;
}

.footer__bottom-divider {
  width: 30px;
  height: 0;
  border-top: 1px solid var(--color-muted);
}

.footer__copyright {
  font-size: var(--font-size-base);
  color: #999999;
  line-height: var(--line-height-sm);
}

@media (max-width: 992px) {
  .footer__cols {
    gap: 28px;
  }
}

@media (max-width: 768px) {
  .footer__inner {
    padding: 40px 30px 0;
  }

  .footer__cols {
    flex-direction: column;
    gap: 0;
  }

  /* 手风琴:每组一行大项,可点击展开 */
  .footer__col {
    width: 100%;
    border-bottom: 1px solid rgba(153, 153, 153, 0.5);
    cursor: pointer;
  }

  .footer__col-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 16px;
    margin: 0;
    padding: 16px 0;
  }

  .footer__arrow {
    display: inline-block;
    font-size: 12px;
    color: #999999;
    transition: transform 0.25s ease;
  }

  .footer__col.is-open .footer__arrow {
    transform: rotate(90deg);
  }

  .footer__col-list {
    max-height: 0;
    overflow: hidden;
    gap: 0;
    transition: max-height 0.3s ease;
  }

  .footer__col.is-open .footer__col-list {
    max-height: 300px;
  }

  .footer__col-link {
    display: block;
    padding: 8px 0;
  }

  /* 联系我们列保持展开 */
  .footer__col--contact .footer__col-list {
    max-height: none;
    overflow: visible;
  }

  .footer__phone {
    font-size: 22px;
    line-height: 29px;
    padding-bottom: 8px;
  }

  .footer__bottom {
    flex-direction: column;
    gap: 10px;
    text-align: center;
    margin-top: 24px;
    padding: 20px 0 24px;
  }

  .footer__copyright {
    font-size: 13px;
    line-height: 1.6;
  }
}
/* 首页能力卡整卡素材(design切图 305x480) */
.capabilities__grid .cap-card__full {
  width: 100%;
  height: auto;
  aspect-ratio: 305 / 480;
  object-fit: cover;
  border-radius: 2px;
}
/* --- 首页 Hero 轮播 --- */
.hero-slides { position: relative; height: 100%; width: 100%; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; background-size: cover; background-position: center; background-repeat: no-repeat; }
.hero-slide.is-active { opacity: 1; }
.hero-slide--mediot { background-image: url('../asset/newsite/banner-mediot.jpg'); }
.hero-slide--giant { background-image: url('../asset/newsite/banner-giant.png'); }
/* 移动端 banner 专属图(放在桌面规则之后,才能覆盖成功) */
@media (max-width: 768px) {
  .hero-slide--mediot { background-image: url('../asset/newsite/banner-mediot-m.jpg'); }
  .hero-slide--giant { background-image: url('../asset/newsite/banner-giant-m.png'); }
}
.hero__arrow { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 46px; height: 46px; border-radius: 50%; background: rgba(255,255,255,.18); color: #fff; font-size: 26px; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.hero__arrow--prev { left: 24px; }
.hero__arrow--next { right: 24px; }
.hero__arrow:hover { background: rgba(255,255,255,.35); }
@media (max-width: 768px) { .hero__arrow { width: 32px; height: 32px; font-size: 18px; } }
/* --- 底部栏(PC 行列式 + 移动手风琴, 按设计 5:14255/15:5318) --- */
.footer { background: #262626; color: #fff; }
.footer__inner { max-width: 1200px; margin: 0 auto; padding: 60px 24px 0; }
.footer__main { display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; }
.footer__cols { display: flex; gap: 48px; flex-wrap: nowrap; }
.footer__group-head { margin-bottom: 20px; }
.footer__group-title { color: #fff; font-size: 16px; font-weight: 700; line-height: 21px; }
.footer__group-arrow { display: none; color: #fff; font-size: 12px; }
.footer__group-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.footer__group-link { color: #999; font-size: 16px; line-height: 21px; transition: color .2s; }
.footer__group-link:hover { color: #fff; }
.footer__contact { border-left: 1px solid #999; padding-left: 40px; align-self: stretch; }
.footer__contact-title { color: #fff; font-size: 16px; font-weight: 700; margin: 0; }
.footer__contact-phone { color: #fff; font-size: 32px; font-weight: 700; margin: 14px 0 0; }
.footer__bottom { display: flex; justify-content: center; align-items: center; gap: 20px; border-top: 1px solid #999; padding: 32px 0 20px; }
.footer__bottom-logo { width: 182px; height: 18px; }
.footer__bottom-divider { width: 30px; height: 0; border-top: 1px solid #999; }
.footer__copyright { color: #999; font-size: 16px; }
/* PC 版权单行(br 隐藏); 移动端 3 行(br 生效) */
@media (min-width: 769px) {
  .footer__copyright br { display: none; }
}
@media (max-width: 768px) {
  .footer__inner { padding: 40px 30px 24px; }
  .footer__main { flex-direction: column; align-items: stretch; gap: 0; }
  .footer__cols { flex-direction: column; gap: 0; width: 100%; }
  .footer__group { border-bottom: 1px solid #999; padding: 14px 0; width: 100%; }
  .footer__group-head { display: flex; justify-content: space-between; align-items: center; cursor: pointer; margin: 0; }
  .footer__group-arrow { display: inline-block; transition: transform .25s; }
  .footer__group-list { display: flex; max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }   /* 2026-09-14: 同上，让手风琴有展开动画 */
  .footer__group.open .footer__group-list { max-height: 400px; }
  .footer__group.open .footer__group-arrow { transform: rotate(180deg); }
  .footer__group.open .footer__group-head { margin-bottom: 12px; }
  .footer__contact { border-left: none; padding: 20px 0; text-align: center; }
  .footer__contact-phone { font-size: 22px; }
  .footer__bottom { flex-direction: column-reverse; gap: 14px; border-top: none; }
  .footer__bottom-divider { width: 100%; }
}
/* --- 移动端导航: logo 缩小 + 下拉大项箭头(问题3) --- */
@media (max-width: 768px) {
  .navbar { height: 55px; --navbar-height: 55px; }
  .navbar__logo-img { height: 22px; }
  .navbar__item:has(> .navbar__dropdown) > .navbar__link { display: flex; align-items: center; justify-content: space-between; }
  .navbar__item:has(> .navbar__dropdown) > .navbar__link::after {
    content: ''; width: 8px; height: 8px; margin-right: 6px;
    border-right: 2px solid var(--color-body); border-bottom: 2px solid var(--color-body);
    transform: rotate(45deg); transition: transform .25s;
  }
  .navbar__item:has(> .navbar__dropdown.is-open) > .navbar__link::after { transform: rotate(-135deg); }
}
/* --- 移动端页脚: 联系我们居中 + 版权3行居中(问题2) --- */
@media (max-width: 768px) {
  .footer__contact { text-align: center; align-items: center; }
  .footer__copyright { text-align: center; white-space: normal; }
}
/* --- 四大核心能力 结构化卡(描边卡+图标区+EN标签+标题+副标题) --- */
.capabilities__grid { grid-template-columns: repeat(4, minmax(0, 305px)); gap: 16px; justify-content: center; }
.capability-card {
  background: #fff;
  border: 1px solid #CDCDCD;
  border-radius: 2px;
  overflow: hidden;
  padding: 20px 22px 26px;
  display: flex;
  flex-direction: column;
  height: 480px;
}
.capability-card.is-active { border-color: #0B69B3; }
.capability-card__en { color: #999; font-size: 12px; letter-spacing: 1px; text-align: center; margin-bottom: 12px; }
.capability-card.is-active .capability-card__en { color: #0B69B3; }
.capability-card__media { height: 305px; background: #F2F5F4; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.capability-card__media img { width: 100%; height: 100%; object-fit: contain; }
.capability-card__title { text-align: center; font-size: 20px; font-weight: 700; line-height: 26px; color: #333; margin: 18px 0 8px; }
.capability-card.is-active .capability-card__title { color: #0B69B3; }

/* ============================================================
   AQ 官方移动端设计稿（750px @2x，CSS 基准 375 × 5874）
   独立移动 DOM，避免桌面组件在窄屏下强制压缩造成比例失真。
   ============================================================ */
.m-page { display: none; }

@media (max-width: 768px) {
  body:has(> .m-page) { overflow-x: hidden; }
  body > .aq { display: none; }
  .m-page {
    display: block;
    width: 375px;
    height: 5874px;
    background: #F6F6F6;
    position: absolute;
    left: 0;
    top: 0;
    transform-origin: 0 0;
    font-family: var(--font-family-zh);
  }

  .m-top { position: relative; height: 55px; background: #FFFFFF; }
  .m-top img { position: absolute; left: 0; top: 0; width: 375px; max-width: none; }
  .m-menu-toggle { position: absolute; right: 16px; top: 10px; z-index: 12; width: 40px; height: 35px; padding: 0; background: transparent; }
  .m-menu { display: none; position: absolute; left: 0; top: 55px; z-index: 11; width: 375px; padding: 8px 30px 14px; background: #FFFFFF; box-shadow: 0 8px 16px rgba(0,0,0,.12); }
  .m-menu.is-open { display: grid; }
  .m-menu a { color: #333333; font-size: 16px; line-height: 44px; border-bottom: 1px solid rgba(0,0,0,.08); }

  .m-banner { width: 375px; height: 395px; position: relative; overflow: hidden; }
  .m-banner > img { position: absolute; left: -112px; top: 0; width: 930px; height: 395px; max-width: none; object-fit: cover; z-index: 0; }
  .m-banner-mask { width: 375px; height: 395px; background: linear-gradient(90deg, rgba(0,82,147,.5) 0%, rgba(0,82,147,.7) 28%, rgba(0,82,147,0) 100%); position: absolute; left: 0; top: 0; z-index: 1; }
  .m-banner-text { width: 260px; height: 110px; position: absolute; left: 30px; top: 143px; z-index: 2; }
  .m-banner-text h1 { color: #FFFFFF; font-size: 27px; font-weight: 700; line-height: 36px; }
  .m-banner-sub { color: #FFFFFF; font-size: 12px; line-height: 30px; letter-spacing: .96px; position: absolute; left: 0; bottom: 0; }

  .m-sec-title { color: #333333; font-size: 22px; font-weight: 700; line-height: 1.6; text-align: center; position: absolute; left: 30px; right: 30px; top: 25px; }

  .m-policy .m-sec-inner { position: relative; width: 375px; height: 1257px; background: #FFFFFF; }
  .m-policy-tl { position: absolute; left: 30px; top: 128px; width: 315px; height: 710px; }
  .m-policy-imgs { position: absolute; left: 0; top: 0; width: 315px; height: 710px; }
  .m-policy-imgs img { box-shadow: 0 3px 10px rgba(0,0,0,.15); object-fit: cover; position: absolute; left: 0; width: 94px; }
  .m-policy-imgs img:nth-child(1) { top: 0; height: 59.53px; z-index: 0; }
  .m-policy-imgs img:nth-child(2) { top: 87.53px; height: 133.46px; z-index: 1; }
  .m-policy-imgs img:nth-child(3) { top: 249px; height: 111.41px; z-index: 2; }
  .m-policy-imgs img:nth-child(4) { top: 388.4px; height: 133.46px; z-index: 3; }
  .m-policy-imgs img:nth-child(5) { top: 549.85px; height: 133.46px; z-index: 4; }
  .m-policy-line { position: absolute; left: 114px; top: 0; z-index: 5; }
  .m-policy-line img { width: 2px; height: 710px; max-width: none; }
  .m-policy .m-circle { position: absolute; left: 110px; z-index: 6; }
  .m-policy .m-circle.c1 { top: 26px; }
  .m-policy .m-circle.c2 { top: 150px; }
  .m-policy .m-circle.c3 { top: 301px; }
  .m-policy .m-circle.c4 { top: 451px; }
  .m-policy .m-circle.c5 { top: 613px; }
  .m-policy-item { width: 181px; height: 90px; position: absolute; right: 0; overflow: hidden; }
  .m-policy-item .date { color: #333333; font-size: 12px; font-weight: 700; line-height: 16px; position: absolute; left: 1px; top: 0; }
  .m-policy-item .doc { color: #666666; font-size: 10px; line-height: 13px; letter-spacing: .5px; position: absolute; left: 0; right: 0; top: 22px; }
  .m-policy-item .org { color: #333333; font-size: 12px; font-weight: 700; line-height: 16px; letter-spacing: 1.44px; position: absolute; left: 1px; right: 0; bottom: 0; }
  .m-policy-item .impl { color: #214AA7; font-size: 11px; font-weight: 700; line-height: 15px; letter-spacing: 1.32px; position: absolute; left: 1px; top: 52px; }
  .m-policy-item.pt1 { top: 22px; }
  .m-policy-item.pt2 { top: 146px; }
  .m-policy-item.pt3 { top: 301px; }
  .m-policy-item.pt4 { top: 447px; }
  .m-policy-item.pt5 { top: 609px; }

  .m-req-grid { position: absolute; left: 30px; top: 987px; width: 315px; height: 368px; }
  .m-req-card { width: 154px; height: 180px; background: #FFFFFF; border: 1px solid #CDCDCD; position: absolute; overflow: hidden; }
  .m-req-card h3 { color: #333333; font-size: 16px; font-weight: 700; line-height: 21px; position: absolute; left: 28px; top: 18px; }
  .m-req-card p { color: #666666; font-size: 12px; line-height: 16px; letter-spacing: 1.44px; position: absolute; left: 28px; right: 8px; top: 68px; }
  .m-req-card .bar { width: 8px; height: 140px; position: absolute; left: 0; top: 20px; }
  .m-req-card:nth-of-type(1) { left: 0; top: 0; }
  .m-req-card:nth-of-type(1) .bar { background: #0B69B3; }
  .m-req-card:nth-of-type(2) { left: 161px; top: 0; }
  .m-req-card:nth-of-type(2) .bar { background: #214BA7; }
  .m-req-card:nth-of-type(3) { left: 0; top: 188px; }
  .m-req-card:nth-of-type(3) .bar { background: #0B69B3; }
  .m-req-card:nth-of-type(4) { left: 161px; top: 188px; }
  .m-req-card:nth-of-type(4) .bar { background: #214BA7; }

  .m-solution { position: relative; width: 375px; height: 1920px; background: #FFFFFF; margin-top: 0; }
  .m-sol-box { width: 315px; background: #FFFFFF; position: absolute; left: 30px; overflow: hidden; }
  .m-sol-box h2 { color: #333333; font-size: 16px; font-weight: 700; line-height: 1.6; text-align: center; position: absolute; left: 23px; right: 23px; top: 20px; }
  .m-sol-1 { top: 128px; height: 650px; }
  .m-step-card { width: 272px; height: 122px; background: #FFFFFF; border: 1px solid #CDCDCD; position: absolute; left: 22px; overflow: hidden; }
  .m-step-card h3 { color: #333333; font-size: 20px; font-weight: 700; line-height: 26px; letter-spacing: 2.4px; position: absolute; left: 92px; top: 17px; }
  .m-step-card .num { color: #0B69B3; font-size: 20px; font-weight: 700; line-height: 26px; letter-spacing: 2.4px; position: absolute; left: 23px; top: 18px; }
  .m-step-card p { color: #666666; font-size: 12px; line-height: 16px; letter-spacing: 1.44px; position: absolute; left: 92px; right: 10px; top: 56px; }
  .m-step-card .icon { position: absolute; left: 19px; top: 56px; }
  .m-step-card:nth-of-type(1) { top: 99px; }
  .m-step-card:nth-of-type(2) { top: 233px; }
  .m-step-card:nth-of-type(3) { top: 367px; }
  .m-step-card:nth-of-type(4) { top: 501px; }
  /* 移动端滚动激活态（由 aq.ftl 里的滚动监听切换 .is-highlighted：取最靠近视口中心的那张）
     ⚠️ 用 background-color 而非 background 简写：原规则是 background 简写，
        简写对简写会被解析顺序压制，导致高亮底色不生效。 */
  .m-step-card { transition: background-color 0.25s ease, border-color 0.25s ease; }
  .m-step-card.is-highlighted { background-color: #0B69B3; border-color: #0B69B3; }
  .m-step-card.is-highlighted h3,
  .m-step-card.is-highlighted .num { color: #FFFFFF; }
  .m-step-card.is-highlighted p { color: rgba(255, 255, 255, 0.8); }
  .m-step-card.is-highlighted .icon img { filter: brightness(0) invert(1); }

  .m-sol-2 { top: 810px; height: 550px; }
  .m-sol-2-img { width: 272px; height: 152px; position: absolute; left: 22px; top: 117px; overflow: hidden; }
  .m-sol-2-img img { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 351.27px; height: 196.62px; max-width: none; object-fit: cover; }
  .m-sol-2-panel { width: 272px; height: 256px; background: #F9FAFC; position: absolute; left: 23px; top: 269px; overflow: hidden; }
  .m-sol-2-panel-inner { display: flex; flex-direction: column; gap: 18px; position: absolute; left: 54px; top: 35px; }
  .m-sol-2-item { width: 206px; height: 42px; position: relative; }
  .m-sol-2-item p { color: #333333; font-size: 16px; font-weight: 700; line-height: 1.3; letter-spacing: 1.92px; position: absolute; left: 21px; top: 0; }
  .m-sol-2-item .bar { width: 6px; height: 40px; border-radius: 3px; position: absolute; left: 0; top: 2px; }
  .m-sol-2-item:nth-of-type(1) .bar { background: linear-gradient(180deg, #D32020 0%, #FF8000 100%); }
  .m-sol-2-item:nth-of-type(2) .bar { background: linear-gradient(180deg, #0B69B3 0%, #20ACD3 100%); }
  .m-sol-2-list { color: #666666; font-size: 12px; line-height: 1.8; letter-spacing: 1.44px; }

  .m-sol-3 { top: 1392px; height: 494px; }
  .m-zone-card { width: 272px; height: 122px; background: #FFFFFF; border: 1px solid #CDCDCD; position: absolute; left: 23px; overflow: hidden; }
  .m-zone-card img { position: absolute; left: 10px; top: 15px; width: 92px; height: 92px; object-fit: cover; }
  .m-zone-card h3 { color: #333333; font-size: 16px; font-weight: 700; line-height: 21px; letter-spacing: 1.92px; position: absolute; left: 110px; top: 15px; }
  .m-zone-card p { color: #666666; font-size: 12px; line-height: 16px; letter-spacing: 1.44px; position: absolute; left: 110px; right: 10px; top: 44px; }
  .m-zone-card:nth-of-type(1) { top: 73px; }
  .m-zone-card:nth-of-type(2) { top: 211px; }
  .m-zone-card:nth-of-type(3) { top: 349px; }
  /* 移动端滚动激活态 */
  .m-zone-card { transition: border-color 0.25s ease; }
  .m-zone-card.is-highlighted { border-color: #0B69B3; }
  .m-zone-card.is-highlighted h3 { color: #0B69B3; }
  .m-zone-card.is-highlighted p { color: #333333; }

  .m-case { position: relative; width: 375px; height: 1550px; background: #FFFFFF; }
  .m-case-title { text-align: center; position: absolute; left: 30px; right: 30px; top: 25px; }
  .m-case-title .hl { color: #0B69B3; }
  .m-case-title .t { color: #333333; }
  .m-case-title span { font-size: 22px; font-weight: 700; line-height: 1.6; }
  .m-case-sub { color: #333333; font-size: 16px; line-height: 21px; letter-spacing: 1.92px; text-align: center; position: absolute; left: 30px; right: 30px; top: 104px; }
  .m-case-img { position: absolute; left: 50%; transform: translateX(-50%); top: 198px; width: 315px; height: 1302.55px; max-width: none; object-fit: cover; z-index: 3; }

  .m-footer { width: 375px; height: 697px; background: #262626; position: relative; overflow: hidden; }
  .m-footer-links { width: 315px; position: absolute; left: 30px; top: 40px; display: flex; flex-direction: column; gap: 20px; }
  .m-flink { display: block; position: relative; height: 24px; }
  .m-flink > span:first-child { color: #FFFFFF; font-size: 16px; line-height: 21px; position: absolute; left: 0; top: 2px; }
  .m-flink .arrow { color: #FFFFFF; font-size: 20px; line-height: 20px; position: absolute; right: 0; top: -2px; }
  .m-flink .divider { width: 315px; height: 0; border-bottom: 1px solid #999999; position: absolute; left: 0; top: 43px; }
  .m-footer-contact { position: absolute; left: 0; right: 0; bottom: 261px; text-align: center; }
  .m-footer-contact .ct { color: #FFFFFF; font-size: 16px; line-height: 21px; display: block; }
  .m-footer-contact .tel { color: #FFFFFF; font-size: 22px; font-weight: 700; line-height: 29px; display: block; margin-top: 11px; }
  .m-footer-copy { color: #999999; font-size: 16px; line-height: 21px; text-align: center; position: absolute; left: 0; right: 0; bottom: 106px; }
  .m-footer-line { width: 315px; height: 0; border-bottom: 1px solid #999999; position: absolute; left: 30px; bottom: 78px; }
  .m-footer-logo { position: absolute; left: 97px; top: 647px; }
}
.capability-card__subtitle { text-align: center; font-size: 14px; color: #666; line-height: 18px; }
@media (max-width: 768px) {
  /* 移动端:4卡横向滑动 + snap */
  .capabilities__grid {
    display: flex;
    justify-content: flex-start;
    gap: 16px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scroll-snap-type: x mandatory;
    padding: 4px 30px 12px;
    scrollbar-width: none;
  }
  .capabilities__grid::-webkit-scrollbar { display: none; }
  .capability-card {
    flex: 0 0 305px;
    height: 480px;
    scroll-snap-align: start;
  }
  .capability-card__title { margin-top: auto; }
}

/* 移动端分段指示条(选中段为蓝,其余小灰点)  [仅移动端; PC 隐藏] */
.capabilities__progress { display: none; }
@media (max-width: 768px) {
  .capabilities__progress {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin: 26px auto 0;
  }
  .capabilities__seg {
    width: 8px;
    height: 8px;
    border-radius: 4px;
    background: #c9c9c9;
    transition: width .2s ease, background .2s ease;
  }
  .capabilities__seg.is-active {
    width: 34px;
    background: #0B69B3;
  }
}
/* --- 四大核心能力 PC 对齐设计: 图标区305x305 cover, 标题#333, 仅第3张蓝 --- */
.capability-card__media { height: 305px; }
.capability-card__media img { object-fit: cover; }
.capability-card__en { color: #999; }
.capability-card__title { color: #333; }
.capability-card.is-active .capability-card__en { color: #0B69B3; }
.capability-card.is-active .capability-card__title { color: #0B69B3; }
