/* ===== 首页 v2（原型风格） ===== */
/* Hero 轮播 + 视差：首页铺满视口（导航叠在 Hero 上） */
.hero-carousel {
  position: relative;
  height: 100vh;
  height: 100dvh;
  min-height: 560px;
  overflow: hidden;
  background: #000;
}
.hero-parallax {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  /* 比 section 多出视差行程，translateY 上移时仍盖住底边，不露黑底 */
  height: calc(100% + 160px);
  z-index: 1;
  will-change: transform;
}
.hero-carousel .slides { position: absolute; inset: 0; }
/* 每张 Banner 独立底部径向光晕（色相轮转，结构同原型） */
.hero-carousel .slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 0.8s ease;
  background: #000;
}
.hero-carousel .slide.active { opacity: 1; }
/* 有轮播图：整屏 cover；无图沿用 data-grad 底部光晕 */
.hero-carousel .slide.has-cover {
  background-color: #111;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}
/* 纯图片 Banner：静态 cover，不做缩放动效 */
.hero-carousel .slide.has-cover:not(.has-video) {
  background-size: 0 0;
}
.hero-carousel .slide.has-cover:not(.has-video)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* 覆盖 hero-v2 全局 .hero-has-cover::before 黑蒙层，保证封面图可见 */
  background-color: transparent !important;
  background-image: inherit !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  opacity: 1 !important;
  display: block !important;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .hero-carousel .slide.has-cover:not(.has-video)::before {
    transform: none;
    animation: none !important;
  }
}
.hero-carousel .slide.has-cover::after {
  display: none;
}
/* 无封面图：渐变直接画在 slide 上（移动端去视频后也能看见，不依赖 ::after） */
.hero-carousel .slide:not(.has-cover) {
  background-color: #050510;
  background-image: var(--hero-glow);
  background-repeat: no-repeat;
  background-size: 160% 140%;
  background-position: 50% 110%;
}
.hero-carousel .slide:not(.has-cover)::after {
  display: none;
}
.hero-carousel .slide.has-video .slide-video {
  position: absolute;
  inset: 0;
  z-index: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  background: #000;
  pointer-events: none;
}
.hero-carousel .slide.has-video.has-cover::after {
  display: none;
}
/* 移动端：不播视频，只用轮播图/视频封面；无图则露出上面的渐变底 */
@media (max-width: 768px) {
  .hero-carousel .slide-video {
    display: none !important;
  }
}
.hero-carousel .slide-hit {
  display: none !important;
  pointer-events: none !important;
}
/* 切换时立刻藏旧文案，避免与下一张叠字/叠按钮 */
.hero-carousel .slide:not(.active) .slide-content {
  visibility: hidden;
  pointer-events: none;
}
.hero-carousel .slide::after {
  content: "";
  position: absolute;
  /* 勿用负 left/right：会撑出横向滚动条 */
  left: 0;
  right: 0;
  bottom: -10%;
  top: 32%;
  height: auto;
  z-index: 0;
  pointer-events: none;
  background: var(--hero-glow);
  filter: blur(32px);
  opacity: 1;
  transform: translateZ(0);
}
.hero-carousel .slide-overlay {
  display: none !important;
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: transparent;
}
/* 首页 Banner 不再叠半透明黑蒙层，封面图原色展示 */
.hero-carousel .slide.has-cover:not(.hero-on-light) > .slide-overlay,
.hero-carousel .slide.has-cover.hero-on-light > .slide-overlay {
  display: none !important;
}
/* 每张 Banner 独立底部光晕色相（data-grad 0–7 轮转） */
.hero-carousel .slide[data-grad="0"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(20, 80, 255, 1) 0%, rgba(40, 110, 255, 0.72) 28%, rgba(40, 90, 220, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(210, 60, 255, 1) 0%, rgba(180, 50, 240, 0.72) 28%, rgba(150, 40, 210, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(90, 90, 255, 0.38) 0%, rgba(130, 80, 230, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide[data-grad="1"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(0, 180, 220, 1) 0%, rgba(20, 160, 210, 0.72) 28%, rgba(10, 120, 180, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(120, 60, 255, 1) 0%, rgba(100, 50, 230, 0.72) 28%, rgba(80, 40, 200, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(60, 140, 240, 0.38) 0%, rgba(90, 80, 220, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide[data-grad="2"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(255, 70, 90, 1) 0%, rgba(230, 50, 70, 0.72) 28%, rgba(195, 13, 35, 0.32) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(255, 140, 40, 1) 0%, rgba(240, 110, 30, 0.72) 28%, rgba(200, 80, 20, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(240, 90, 60, 0.38) 0%, rgba(220, 70, 50, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide[data-grad="3"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(20, 200, 120, 1) 0%, rgba(30, 170, 100, 0.72) 28%, rgba(20, 130, 80, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(40, 120, 255, 1) 0%, rgba(30, 100, 230, 0.72) 28%, rgba(20, 80, 200, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(40, 160, 180, 0.38) 0%, rgba(50, 130, 210, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide[data-grad="4"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(255, 50, 180, 1) 0%, rgba(230, 40, 160, 0.72) 28%, rgba(190, 30, 130, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(80, 60, 255, 1) 0%, rgba(60, 50, 230, 0.72) 28%, rgba(50, 40, 200, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(160, 70, 220, 0.38) 0%, rgba(120, 60, 210, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide[data-grad="5"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(255, 180, 40, 1) 0%, rgba(240, 150, 30, 0.72) 28%, rgba(200, 110, 20, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(195, 13, 35, 1) 0%, rgba(170, 20, 40, 0.72) 28%, rgba(130, 15, 30, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(220, 100, 50, 0.38) 0%, rgba(200, 60, 40, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide[data-grad="6"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(60, 160, 255, 1) 0%, rgba(50, 140, 240, 0.72) 28%, rgba(40, 110, 210, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(255, 100, 160, 1) 0%, rgba(240, 80, 140, 0.72) 28%, rgba(210, 60, 120, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(140, 120, 230, 0.38) 0%, rgba(160, 100, 200, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide[data-grad="7"] {
  --hero-glow:
    radial-gradient(ellipse 110% 130% at 0% 100%, rgba(140, 50, 255, 1) 0%, rgba(120, 40, 230, 0.72) 28%, rgba(90, 30, 200, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 110% 130% at 100% 100%, rgba(0, 220, 200, 1) 0%, rgba(20, 190, 180, 0.72) 28%, rgba(10, 150, 140, 0.28) 52%, transparent 72%),
    radial-gradient(ellipse 80% 100% at 50% 100%, rgba(80, 130, 230, 0.38) 0%, rgba(50, 170, 190, 0.18) 42%, transparent 68%);
}
.hero-carousel .slide-content {
  position: relative;
  z-index: 2;
  /* 全宽；左边距对齐设计稿红线（左箭头右侧再留空） */
  max-width: none;
  width: 100%;
  margin: 0;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  /* +108px：在旧版补偿基础上再下移一截，贴近视觉中部 */
  padding: calc(22vh + 108px) 48px 48px calc(32px + 48px + 96px);
  color: #fff;
  box-sizing: border-box;
  pointer-events: none;
}
.hero-carousel .slide-content .slide-btn {
  pointer-events: auto;
}
/* 标题 / 描述 / 按钮：顶对齐固定起点，换行只向下伸展，整块不往上跑 */
.hero-carousel .slide-stack {
  display: grid;
  grid-template-rows: auto auto auto;
  align-items: start;
  width: 100%;
  max-width: 680px;
}
.hero-carousel .slide-stack .slide-title,
.hero-carousel .slide-content h1.slide-title,
.hero-carousel .slide-content p.slide-title {
  margin: 0;
  padding: 0;
  color: #fff;
  letter-spacing: 0.01em;
  line-height: 1.15;
  font-weight: 700;
  text-shadow: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  align-self: start;
  width: 100%;
  min-height: calc(40px * 1.15);
  box-sizing: border-box;
}
.hero-carousel .slide-stack .slide-desc,
.hero-carousel .slide-content p.slide-desc {
  margin: 0;
  padding: 12px 0 0;
  line-height: 1.7;
  max-width: 720px;
  color: rgba(255,255,255,0.92);
  text-shadow: none;
  display: -webkit-box !important;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  align-self: start;
  width: 100%;
  min-height: calc(18px * 1.7 + 12px);
  box-sizing: border-box;
  word-break: break-word;
}
.hero-carousel .slide-stack .slide-cta {
  display: flex;
  align-items: flex-start;
  padding-top: 18px;
  box-sizing: border-box;
  width: 100%;
  min-height: 0;
  min-width: 0;
}
.hero-carousel .slide-stack .slide-btn,
.hero-carousel .slide-btn {
  margin-top: 0;
  min-width: 0;
  box-sizing: border-box;
  /* inline-flex 无法可靠省略纯文本，改 block + ellipsis */
  display: block !important;
  width: fit-content;
  max-width: min(100%, 360px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: center;
}
/* .slide-btn red CTA + hover sweep in type-v2.css */
.hero-carousel .carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: rgba(0, 0, 0, 0.38);
  color: #fff;
  font-size: 0;
  line-height: 0;
  padding: 0;
  margin: 0;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s, visibility 0.25s, background 0.2s, border-color 0.2s, transform 0.2s;
  z-index: 5;
  -webkit-appearance: none;
  appearance: none;
  overflow: hidden;
}
.hero-carousel .carousel-arrow::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 16px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14.71 5.29a1 1 0 0 1 0 1.42L9.41 12l5.3 5.29a1 1 0 0 1-1.42 1.42l-6-6a1 1 0 0 1 0-1.42l6-6a1 1 0 0 1 1.42 0z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14.71 5.29a1 1 0 0 1 0 1.42L9.41 12l5.3 5.29a1 1 0 0 1-1.42 1.42l-6-6a1 1 0 0 1 0-1.42l6-6a1 1 0 0 1 1.42 0z'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translate(-50%, -50%);
}
.hero-carousel .carousel-arrow.next::before { transform: translate(-50%, -50%) scaleX(-1); }
.hero-carousel:hover .carousel-arrow,
.hero-carousel:focus-within .carousel-arrow {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.hero-carousel .carousel-arrow.prev { left: 32px; }
.hero-carousel .carousel-arrow.next { right: 32px; }
.hero-carousel .carousel-arrow:hover {
  background: rgba(195, 13, 35, 0.92);
  border-color: rgba(195, 13, 35, 0.92);
}
.carousel-dots { position: absolute; bottom: 26px; left: 50%; transform: translateX(-50%); display: flex; gap: 10px; z-index: 5; }
.carousel-dots .dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(180, 150, 230, 0.55); cursor: pointer; transition: all 0.25s; }
.carousel-dots .dot.active { background: #fff; width: 28px; height: 8px; border-radius: 4px; }
/* 通用区块 */
.home-section { max-width: var(--site-maxw); margin: 0 auto; padding: 88px 0 24px; }
.home-section-head { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; margin-bottom: 36px; min-height: 40px; gap: 8px; }
.home-section-lead { margin: 0; text-align: center; line-height: 1.75; letter-spacing: 0.02em; }
.home-section-title { text-align: center; /* size/weight/color via type-v2 */ }
.home-section-title .bar { display: block; width: 36px; height: 3px; background: #c30d23; border-radius: 2px; margin: 0 auto 14px; }
.home-section-title .cnt { display: block; font-size: inherit; font-weight: inherit; color: inherit; margin-top: 0; line-height: inherit; letter-spacing: inherit; }
.home-section-more { position: absolute; right: 0; top: 50%; transform: translateY(-50%); }
.home-section-foot { text-align: right; margin-top: 20px; }
/* view-all / more-link chip style in cards-v2 */
/* 产品中心：折叠扇 */
.home-products-section {
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 72px 0 40px;
  position: relative;
  background: #fff;
  box-sizing: border-box;
}
.home-products-head,
.home-products-section .product-fold-wrap {
  max-width: var(--site-maxw);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
.home-products-head {
  margin-bottom: 22px;
  min-height: 0;
}
.home-products-head .home-section-lead {
  line-height: 1.75;
  letter-spacing: 0.02em;
}
.home-products-head .home-section-title .cnt {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
  margin-top: 0;
  letter-spacing: inherit;
}
.product-fold-wrap {
  position: relative;
}
.product-fold {
  position: relative;
  display: flex;
  gap: 4px; /* ~1mm 卡片间隔 */
  width: 100%;
  height: 520px;
  align-items: stretch;
  background: transparent;
  overflow: hidden;
  border-radius: var(--av-radius-card, 4px);
}
.home-products-foot {
  position: static;
  display: flex;
  justify-content: flex-end;
  margin: 16px 0 0;
  pointer-events: auto;
}
/* home-products-all chip 样式见 cards-v2 */
/*
  全程用 flex-grow 比例铺满容器，禁止 max-width / 固定 basis，
  避免切换时子项宽度之和 < 100% → 右侧黑边 + 抖动。
  收起约 19%（~220px@1200），展开约 43%。
*/
.product-fold--four .pf-item {
  flex: 1.2 0 0%;
  min-width: 0;
  max-width: none;
  transition: flex-grow 0.42s cubic-bezier(0.33, 1, 0.68, 1);
}
.product-fold--four .pf-item.is-active {
  flex-grow: 2.4;
}
.pf-item {
  position: relative;
  overflow: hidden;
  cursor: pointer;
  flex: 1 0 0%;
  min-width: 0;
}
.pf-item.is-active {
  z-index: 2;
  cursor: default;
}
.pf-item:not(.is-active):focus-visible {
  outline: 2px solid #c30d23;
  outline-offset: -2px;
  z-index: 3;
}
.pf-panel {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background-color: #0c1a2e;
  background-image: var(--pf-bg);
  background-size: cover;
  background-position: center;
}
/* 收起列 hover 用遮罩提亮；不用 filter（避免影响子级） */
.pf-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(255, 255, 255, 0.1);
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}
.pf-item:not(.is-active):hover .pf-panel::after {
  opacity: 1;
}
.pf-item.is-active .pf-panel::after {
  opacity: 0;
  transition: opacity 0.25s ease;
}
.pf-panel.is-empty {
  background-image: none;
}
.pf-panel.is-empty[data-grad="0"] {
  background:
    radial-gradient(ellipse 70% 80% at 78% 18%, rgba(195,13,35,.42), transparent 56%),
    radial-gradient(ellipse 50% 60% at 12% 88%, rgba(40,20,80,.45), transparent 55%),
    linear-gradient(160deg, #1a1018 0%, #3a0d14 48%, #6e141b 100%);
}
.pf-panel.is-empty[data-grad="1"] {
  background:
    radial-gradient(ellipse 65% 75% at 22% 20%, rgba(30,70,140,.38), transparent 55%),
    radial-gradient(ellipse 55% 70% at 88% 82%, rgba(195,13,35,.28), transparent 52%),
    linear-gradient(160deg, #0c121c 0%, #121a2c 50%, #1a1520 100%);
}
.pf-panel.is-empty[data-grad="2"] {
  background:
    radial-gradient(ellipse 60% 70% at 80% 30%, rgba(20,90,120,.36), transparent 55%),
    radial-gradient(ellipse 50% 55% at 10% 80%, rgba(195,13,35,.22), transparent 50%),
    linear-gradient(165deg, #0e141c 0%, #152028 55%, #1c1418 100%);
}
.pf-panel.is-empty[data-grad="3"] {
  background:
    radial-gradient(ellipse 70% 70% at 30% 25%, rgba(90,40,20,.35), transparent 55%),
    radial-gradient(ellipse 55% 65% at 85% 75%, rgba(195,13,35,.34), transparent 52%),
    linear-gradient(155deg, #141018 0%, #241418 50%, #3a1014 100%);
}
.pf-panel.is-empty[data-grad="4"] {
  background:
    radial-gradient(ellipse 60% 70% at 70% 20%, rgba(40,50,110,.4), transparent 55%),
    radial-gradient(ellipse 50% 60% at 15% 85%, rgba(195,13,35,.26), transparent 50%),
    linear-gradient(160deg, #10141c 0%, #181428 52%, #201018 100%);
}
.pf-panel.is-empty[data-grad="5"] {
  background:
    radial-gradient(ellipse 65% 75% at 25% 30%, rgba(60,30,90,.4), transparent 55%),
    radial-gradient(ellipse 55% 70% at 90% 80%, rgba(195,13,35,.3), transparent 52%),
    linear-gradient(160deg, #0c1018 0%, #161020 48%, #281018 100%);
}
.pf-shade {
  display: block;
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* 左上角起 45° 斜向右下渐隐 */
  background: linear-gradient(
    135deg,
    rgba(8, 12, 22, 0.62) 0%,
    rgba(8, 12, 22, 0.28) 26%,
    rgba(8, 12, 22, 0.06) 48%,
    transparent 62%
  );
}
/* 兜底：旧缓存 HTML 若仍带「查看更多」则强制隐藏 */
.pf-more {
  display: none !important;
}
.pf-body {
  position: relative;
  z-index: 1;
  height: 100%;
  /* 与收起态 .pf-title 顶距同一值，四列标题水平对齐 */
  padding: 52px 40px 44px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  box-sizing: border-box;
}
.pf-item:not(.is-active) .pf-body {
  padding: 0;
  align-items: stretch;
  justify-content: flex-start;
}
/* 标题只用 .pf-title：始终 absolute + max-content；位移由 JS FLIP（避免第1卡向右展开时居中标题先右漂再回弹） */
.pf-label {
  display: none !important;
}
.pf-title {
  display: block;
  margin: 0;
  box-sizing: border-box;
  color: #fff;
  text-decoration: none;
  letter-spacing: 0.02em;
  line-height: 1.4;
  position: absolute;
  z-index: 2;
  top: 0;
  left: 50%;
  width: max-content;
  max-width: calc(100% - 28px);
  padding: 52px 0 0;
  text-align: center;
  transform: translate3d(-50%, 0, 0);
  pointer-events: none;
  overflow: hidden;
  transition: none;
}
.pf-title-text,
h3.pf-title-text {
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;

  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  line-height: 1.4;
  max-height: 2.8em;
  /* 遮住下一行顶部 1px 残影（webkit-line-clamp 常见问题） */
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 1px), transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 1px), transparent 100%);
}
.pf-item:not(.is-active) .pf-title {
  left: 50%;
  width: max-content;
  max-width: calc(100% - 28px);
  padding: 52px 0 0;
  text-align: center;
  transform: translate3d(-50%, 0, 0);
  pointer-events: none;
  max-height: calc(52px + 4.05em);
  overflow: hidden;
}
.pf-item:not(.is-active) .pf-title-text,
h3.pf-title-text {
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;

  -webkit-line-clamp: 3;
  line-clamp: 3;
  max-height: 4.05em;
}
.pf-item.is-active .pf-title {
  left: 40px;
  width: max-content;
  /* 展开瞬间面板仍接近收起宽度：若用 100%-80 会比收起态更窄，长标题先折行再撑回一行 → 闪一下 */
  max-width: calc(100% - 28px);
  min-width: max-content;
  padding: 52px 0 0;
  margin: 0;
  text-align: left;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
  max-height: calc(52px + 2.8em);
  overflow: hidden;
}
.pf-item.is-active .pf-title-text,
h3.pf-title-text {
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;

  -webkit-line-clamp: 2;
  line-clamp: 2;
  max-height: 2.8em;
}
.pf-item.is-active .pf-title:hover {
  color: #ffd0d5;
}
.pf-item.is-active .pf-title:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 4px;
}
/* 展开动画期间：pills 占位但透明，避免与居中标题叠在一起 */
.pf-item.is-active.is-activating .pf-pills {
  opacity: 0 !important;
  visibility: hidden !important;
  transform: translateY(10px) !important;
  pointer-events: none !important;
  transition: none !important;
}
.pf-pills {
  display: none;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px);
  pointer-events: none;
  transition:
    opacity 0.38s cubic-bezier(0.33, 1, 0.68, 1),
    transform 0.38s cubic-bezier(0.33, 1, 0.68, 1),
    visibility 0s linear 0.4s;
  width: max-content;
  max-width: min(100%, 320px);
  max-height: calc(100% - 88px);
  overflow: auto;
  scrollbar-width: thin;
}
/* 系列 >10：每列最多 10 项，纵向填满后自动加列；列宽随文本，左对齐 */
.pf-pills--cols {
  display: none;
  grid-auto-flow: column;
  grid-template-rows: repeat(10, auto);
  grid-auto-columns: max-content;
  justify-content: start;
  justify-items: start;
  align-content: start;
  gap: 10px 32px;
  width: max-content;
  max-width: 100%;
  max-height: none;
  overflow: hidden;
  scrollbar-width: auto;
}
.pf-pills--cols .pf-pill {
  width: max-content;
  max-width: none;
  height: auto;
  min-height: 0;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: var(--av-fs-caption, 13px);
  line-height: 1.3;
  white-space: nowrap;
  text-align: left;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  overflow: hidden;
  box-sizing: border-box;
}
.pf-pill-text {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}
.pf-item.is-active .pf-body {
  isolation: isolate;
}
.pf-item.is-active .pf-pills {
  display: flex;
  /* 标题改为 absolute 后，用顶距占位（原 title margin-bottom 20px + 两行高） */
  margin-top: calc(2.8em + 20px);
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
  pointer-events: auto;
  flex: 0 1 auto;
  min-height: 0;
  transition:
    opacity 0.38s cubic-bezier(0.33, 1, 0.68, 1) 0.04s,
    transform 0.38s cubic-bezier(0.33, 1, 0.68, 1) 0.04s,
    visibility 0s;
}
.pf-item.is-active .pf-pills.pf-pills--cols {
  display: grid;
  grid-auto-flow: column;
  grid-template-rows: repeat(10, auto);
  grid-auto-columns: max-content;
  justify-content: start;
  justify-items: start;
  width: max-content;
  column-gap: 32px;
  row-gap: 10px;
}
.pf-item:not(.is-active) .pf-pills {
  display: none;
  visibility: hidden;
  transform: translateY(8px);
  pointer-events: none;
  transition: none;
}
.pf-pill {
  position: relative;
  z-index: 0;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  width: max-content;
  min-width: 0;
  height: auto;
  min-height: 0;
  max-width: 100%;
  padding: 4px 10px;
  border: none;
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  font-size: var(--av-fs-caption, 13px);
  font-weight: var(--av-fw-regular, 400);
  line-height: 1.35;
  letter-spacing: 0.01em;
  background: rgba(0, 0, 0, 0.42);
  box-shadow: none;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
  overflow: hidden;
  text-align: left;
  box-sizing: border-box;
  white-space: nowrap;
}
.pf-pill:hover {
  color: #fff;
  background: rgba(0, 0, 0, 0.55);
  box-shadow: none;
}
.pf-pill:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .pf-item,
  .product-fold--four .pf-item,
  .pf-panel,
  .pf-label,
  .pf-title,
  .pf-pills,
  .pf-pill {
    transition: none !important;
  }
}
@media (max-width: 1100px) {
  .product-fold { height: 460px; }
  .product-fold--four .pf-item { flex: 1.1 0 0%; }
  .product-fold--four .pf-item.is-active { flex-grow: 2.1; }
  /* pf-title size via type-v2 card role */
  .pf-item:not(.is-active) .pf-title {
    padding: 44px 0 0;
    max-height: calc(44px + 4.05em);
  }
  .pf-item.is-active .pf-title {
    left: 28px;
    width: max-content;
    max-width: calc(100% - 28px);
    min-width: max-content;
    padding: 44px 0 0;
    max-height: calc(44px + 2.8em);
  }
  .pf-body { padding: 44px 28px 36px; }
  .home-products-foot { margin-top: 14px; }
}
@media (max-width: 900px) {
  .product-fold-wrap { padding-bottom: 0; }
  /* 移动端：2×2 卡片网格（无 hover，整块点进分类页） */
  .product-fold,
  .product-fold--four {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    height: auto;
    background: transparent;
    overflow: visible;
  }
  .pf-item,
  .pf-item.is-active,
  .product-fold--four .pf-item,
  .product-fold--four .pf-item.is-active,
  .product-fold--four .pf-item:not(.is-active) {
    flex: none !important;
    width: auto;
    min-width: 0;
    max-width: none;
    aspect-ratio: 1 / 1;
    min-height: 0;
    border-radius: var(--av-radius-card, 4px);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    will-change: auto;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  }
  .pf-item:active {
    transform: scale(0.98);
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.1);
  }
  .pf-panel {
    min-height: 0;
    height: 100%;
  }
  .pf-panel::after {
    opacity: 0 !important;
  }
  .pf-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(
      to top,
      rgba(8, 12, 22, 0.82) 0%,
      rgba(8, 12, 22, 0.38) 42%,
      rgba(8, 12, 22, 0.08) 68%,
      transparent 100%
    );
  }
  .pf-label { display: none !important; }
  .pf-item:not(.is-active) .pf-panel,
  .pf-item.is-active .pf-panel { filter: none; }
  .pf-item:not(.is-active) .pf-body,
  .pf-item.is-active .pf-body {
    position: relative;
    z-index: 1;
    height: 100%;
    padding: 12px 12px 14px;
    align-items: flex-start;
    justify-content: flex-end;
    box-sizing: border-box;
  }
  .pf-item:not(.is-active) .pf-title,
  .pf-item.is-active .pf-title {
    position: static;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    clip: auto;
    overflow: hidden;
    white-space: normal;
    /* size/weight via type-v2 .pf-title-text card role */
    line-height: 1.35;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    transition: none;
    text-align: left;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
  }
  .pf-item:not(.is-active) .pf-title-text,
  .pf-item.is-active .pf-title-text,
h3.pf-title-text {
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    line-height: 1.3;
    max-height: 2.6em;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
    overflow-wrap: anywhere;
  }
  /* 2×2 矮卡：压掉 type-v2「Card+4」放大，避免「非IP光纤分布式」撑破 */
  .home-products-section .pf-title-text,
  .home-products-section h3.pf-title-text {
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
  }
  .pf-pills,
  .pf-item.is-active .pf-pills,
  .pf-item.is-active .pf-pills.pf-pills--cols {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .home-products-foot {
    margin-top: 16px;
    justify-content: center;
  }
}
/* 行业方案：视差背景 + 四卡横排（透明描边，整卡可点） */
.home-sol-section {
  position: relative;
  max-width: none;
  width: 100%;
  margin: 0;
  padding: 108px 0 96px;
  box-sizing: border-box;
  isolation: isolate;
  min-height: 640px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: visible;
  /* 浅色区块：去掉地球底图，用冷灰渐变 */
  background-color: #f8fafc;
  background-image:
    linear-gradient(180deg, #f8fafc 0%, #f1f5f9 48%, #eef2f7 100%);
}
.home-sol-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  /* 极淡品牌色光晕，避免整块发灰 */
  background:
    radial-gradient(ellipse 70% 55% at 12% 18%, rgba(195, 13, 35, 0.04) 0%, transparent 62%),
    radial-gradient(ellipse 60% 50% at 88% 82%, rgba(51, 65, 85, 0.05) 0%, transparent 58%);
}
.home-sol-section > * {
  position: relative;
  z-index: 1;
}
.home-sol-section .home-section-lead {
  text-shadow: none;
}
.home-sol-section .home-section-title {
  text-shadow: none;
}
.home-sol-section .home-section-title .cnt {
  color: inherit;
  font-weight: inherit;
  text-shadow: none;
}
.home-sol-section .home-section-title .bar {
  background: #c30d23;
}
.home-sol-section .home-section-head {
  max-width: var(--site-maxw);
  width: 100%;
  margin: 0 auto 40px;
  padding: 0;
  box-sizing: border-box;
}
.home-sol-section .home-section-more {
  right: 0;
}
.home-sol-carousel {
  --home-sol-nav-size: 42px;
  --home-sol-nav-gap: 24px; /* 箭头外缘 ↔ 卡片区间距 */
  --home-sol-gutter: calc(var(--home-sol-nav-size) + var(--home-sol-nav-gap));
  /* 主体卡片区 --site-maxw，两侧 gutter 放箭头 */
  max-width: calc(var(--site-maxw) + 2 * var(--home-sol-gutter));
  width: 100%;
  margin: 0 auto;
  padding: 0 var(--home-sol-gutter);
  box-sizing: border-box;
  position: relative;
  overflow: visible;
}
.home-sol-viewport {
  /* hover: translateY(-4px) + box-shadow → 仅纵向 bleed；横向 0，避免邻卡露边/被裁切感 */
  --home-sol-hover-pad-y: 44px;
  --home-sol-hover-pad-x: 0px;
  width: calc(100% + 2 * var(--home-sol-hover-pad-x));
  max-width: calc(var(--site-maxw) + 2 * var(--home-sol-hover-pad-x));
  margin-left: calc(-1 * var(--home-sol-hover-pad-x));
  margin-right: calc(-1 * var(--home-sol-hover-pad-x));
  margin-top: calc(-1 * var(--home-sol-hover-pad-y));
  margin-bottom: calc(-1 * var(--home-sol-hover-pad-y));
  min-width: 0;
  overflow: hidden;
  /* pan-y：竖滑仍交给页面；横滑由 JS touchmove preventDefault 接管（微信 Pointer 不可靠） */
  touch-action: pan-y pinch-zoom;
  cursor: grab;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  padding: var(--home-sol-hover-pad-y) var(--home-sol-hover-pad-x);
  box-sizing: border-box;
}
.home-sol-viewport.is-dragging {
  cursor: grabbing;
  touch-action: none;
}
/* 拖拽中勿禁卡片 pointer-events：iOS 微信若丢 touchend 会永久点不了 */
.home-sol-track {
  display: flex;
  gap: 20px;
  align-items: stretch;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform;
}
.home-sol-track.is-resetting {
  transition: none !important;
}
.home-sol-track .home-sol-card {
  flex: 0 0 auto;
  box-sizing: border-box;
}
.home-sol-nav {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: var(--home-sol-nav-size);
  height: var(--home-sol-nav-size);
  margin-top: calc(var(--home-sol-nav-size) / -2);
  border-radius: 50%;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(4px);
  backdrop-filter: blur(4px);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  cursor: pointer;
  color: #334155;
  padding: 0;
  transition:
    background 0.25s ease,
    border-color 0.25s ease,
    box-shadow 0.25s ease;
}
.home-sol-nav.prev {
  left: 0;
}
.home-sol-nav.next {
  right: 0;
}
.home-sol-nav::before {
  content: '';
  position: absolute;
  left: 50%;
  top: 50%;
  width: 14px;
  height: 14px;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14.71 5.29a1 1 0 0 1 0 1.42L9.41 12l5.3 5.29a1 1 0 0 1-1.42 1.42l-6-6a1 1 0 0 1 0-1.42l6-6a1 1 0 0 1 1.42 0z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14.71 5.29a1 1 0 0 1 0 1.42L9.41 12l5.3 5.29a1 1 0 0 1-1.42 1.42l-6-6a1 1 0 0 1 0-1.42l6-6a1 1 0 0 1 1.42 0z'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translate(-50%, -50%);
}
.home-sol-nav.next::before {
  transform: translate(-50%, -50%) scaleX(-1);
}
.home-sol-nav:hover,
.home-sol-nav:focus-visible {
  background: #fff;
  border-color: rgba(15, 23, 42, 0.2);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08);
  outline: none;
}
/* 方案轮播指示点 — 对齐 Banner .carousel-dots */
.home-sol-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
  min-height: 10px;
  flex: 0 0 auto;
}
.home-sol-dots[hidden],
.home-sol-dots:empty {
  display: none;
  margin: 0;
  min-height: 0;
}
.home-sol-dots .dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(51, 65, 85, 0.22);
  cursor: pointer;
  transition: width 0.25s, background 0.25s, border-radius 0.25s;
}
.home-sol-dots .dot.active {
  background: #c30d23;
  width: 28px;
  height: 8px;
  border-radius: 4px;
}
.home-sol-dots .dot:focus-visible {
  outline: 2px solid #334155;
  outline-offset: 3px;
}
.home-sol-card {
  position: relative;
  display: block;
  aspect-ratio: 9 / 10;
  min-height: 0;
  padding: 0;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: var(--av-radius-card, 4px);
  /* 阴影不裁切；媒体圆角由 .home-sol-thumb 负责 */
  overflow: visible;
  text-decoration: none;
  color: #0f172a;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05);
  transition:
    border-color 0.25s ease,
    transform 0.25s ease,
    box-shadow 0.25s ease;
  isolation: isolate;
}
.home-sol-thumb {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 56%;
  z-index: 0;
  background: #fff;
  overflow: hidden;
  border-radius: 0 0 var(--av-radius-card, 4px) var(--av-radius-card, 4px);
}
.home-sol-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
  pointer-events: none;
  opacity: 1;
  filter: saturate(0.92) contrast(0.98);
  transform: scale(1);
  transition:
    transform 0.45s ease,
    filter 0.35s ease;
  /* 顶部羽化更高；下半段更早实色，底部更实 */
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(0, 0, 0, 0.04) 6%,
    rgba(0, 0, 0, 0.14) 14%,
    rgba(0, 0, 0, 0.3) 24%,
    rgba(0, 0, 0, 0.5) 34%,
    rgba(0, 0, 0, 0.72) 44%,
    rgba(0, 0, 0, 0.9) 54%,
    #000 60%,
    #000 100%
  );
  mask-image: linear-gradient(
    to bottom,
    transparent 0%,
    rgba(0, 0, 0, 0.04) 6%,
    rgba(0, 0, 0, 0.14) 14%,
    rgba(0, 0, 0, 0.3) 24%,
    rgba(0, 0, 0, 0.5) 34%,
    rgba(0, 0, 0, 0.72) 44%,
    rgba(0, 0, 0, 0.9) 54%,
    #000 60%,
    #000 100%
  );
}
.home-sol-card.is-empty .home-sol-thumb {
  background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}
.home-sol-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  /* 白底更早收；渐隐区上移；底部更透让配图更实 */
  background: linear-gradient(
    to bottom,
    #fff 0%,
    #fff 32%,
    rgba(255, 255, 255, 0.97) 38%,
    rgba(255, 255, 255, 0.9) 44%,
    rgba(255, 255, 255, 0.78) 52%,
    rgba(255, 255, 255, 0.58) 60%,
    rgba(255, 255, 255, 0.36) 70%,
    rgba(255, 255, 255, 0.18) 80%,
    rgba(255, 255, 255, 0.06) 90%,
    rgba(255, 255, 255, 0) 100%
  );
}
.home-sol-body {
  position: absolute;
  inset: 0;
  z-index: 2;
  /* 标题/简介再下移约 60px；按钮仍绝对定位保持原位 */
  padding: 104px 24px 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 10px;
  pointer-events: none;
  box-sizing: border-box;
  overflow: hidden;
  min-width: 0;
}
.home-sol-hover {
  display: none;
}
.home-sol-more {
  position: absolute;
  left: 50%;
  top: 48%;
  z-index: 4;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 0;
  padding: 8px 22px;
  border: none;
  border-radius: 4px;
  background: #c30d23;
  color: #fff;
  line-height: 1.4;
  white-space: nowrap;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
  transition:
    background 0.2s ease,
    transform 0.25s ease;
}
.home-sol-card-t {
  margin: 0;
  width: 100%;
  max-width: 100%;
  line-height: 1.45;
  letter-spacing: 0.02em;
  text-align: center;
  text-shadow: none;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}
.home-sol-card-d {
  margin: 0;
  width: 100%;
  max-width: 100%;
  line-height: 1.75;
  text-align: center;
  text-shadow: none;
  display: -webkit-box !important;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  white-space: normal;
}
.home-sol-card-d br {
  display: inline;
}
/* 仅精细指针悬停；触屏 sticky :hover 会抬卡/红边/缩放入画，横滑时错位且卡顿 */
@media (hover: hover) and (pointer: fine) {
  .home-sol-card:hover,
  .home-sol-card:focus-visible {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
    border-color: rgba(195, 13, 35, 0.35);
    outline: none;
  }
  .home-sol-card:hover .home-sol-thumb img,
  .home-sol-card:focus-visible .home-sol-thumb img {
    filter: saturate(1) contrast(1);
    transform: scale(1.06);
  }
}
@media (prefers-reduced-motion: reduce) {
  .home-sol-card {
    transition: none !important;
  }
  .home-sol-card:hover,
  .home-sol-card:focus-visible {
    transform: none;
  }
  .home-sol-thumb img {
    transition: none !important;
  }
  .home-sol-card:hover .home-sol-thumb img,
  .home-sol-card:focus-visible .home-sol-thumb img {
    transform: none;
  }
  .home-sol-more {
    transition: none !important;
  }
}
/* 新闻区块 */
.home-news-section {
  background: #fff;
  max-width: none;
  padding: 88px 0 48px;
}
.home-news-inner { max-width: var(--site-maxw); margin: 0 auto; padding: 0; }
.home-news-wrap {
  display: grid;
  grid-template-columns: 453px minmax(0, 1fr);
  grid-template-rows: 503px;
  gap: 24px;
  align-items: end;
  min-width: 0;
}
.home-news-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: 1fr 1fr;
  gap: 24px;
  min-width: 0;
  height: 100%;
  min-height: 0;
  align-self: end;
}
.home-news-card {
  display: flex;
  flex-direction: column;
  padding: 24px;
  background: #fff;
  border-radius: 4px;
  text-decoration: none;
  color: inherit;
  position: relative;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: none;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
  height: 100%;
  min-height: 0;
}
/* 列表缩略图仅移动端展示，PC 保持原卡片文案布局 */
.home-news-card .news-card-img { display: none; }
.home-news-card .news-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
}
.home-news-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
  border-color: rgba(195, 13, 35, 0.35);
}
.home-news-card .tag, .feature-body .tag {
  align-self: flex-start;
  max-width: 100%;
  background: #c30d23;
  padding: 3px 8px;
  border-radius: 2px;
  margin-bottom: 14px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}
.home-news-card h3, .home-news-card h4, .feature-body h3, .feature-body h4 {
  line-height: var(--av-lh-h2, 1.45);
  margin: 0 0 10px;
  min-width: 0;
  max-width: 100%;
  /* 固定占满两行高度，单行标题时简介仍与邻卡对齐 */
  height: calc(var(--av-fs-card, 18px) * var(--av-lh-h2, 1.45) * 2);
  max-height: calc(var(--av-fs-card, 18px) * var(--av-lh-h2, 1.45) * 2);
  box-sizing: content-box;
  flex: 0 0 auto;
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.home-news-card .summary, .feature-body .summary {
  line-height: 1.7;
  margin-bottom: 14px;
  flex: 1;
  min-width: 0;
  max-width: 100%;
  display: -webkit-box !important;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  overflow-wrap: anywhere;
}
.home-news-card .date, .feature-body .date { /* caption via type-v2 */ }
/* 左精选卡：453×503，上文下图（无负 margin 叠字），类方案卡气质 */
.news-feature {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 453px;
  height: 503px;
  padding: 0;
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  position: relative;
  text-decoration: none;
  color: inherit;
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: none;
  transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
  min-width: 0;
  box-sizing: border-box;
  align-self: stretch;
  justify-self: start;
}
.news-feature:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
  border-color: rgba(195, 13, 35, 0.35);
}
.news-feature .feature-body {
  position: relative;
  z-index: 2;
  order: 1;
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  padding: 24px 24px 16px;
  margin-top: 0;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  background: #fff;
}
.news-feature .feature-body .date {
  margin-top: 12px;
}
.news-feature .feature-img {
  position: relative;
  z-index: 1;
  order: 2;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  background: #eef1f5;
}
.news-feature .feature-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  vertical-align: top;
}
.news-feature .feature-img::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 42%;
  background: linear-gradient(to bottom, #fff 0%, rgba(255, 255, 255, 0.85) 28%, rgba(255, 255, 255, 0) 100%);
  pointer-events: none;
}
/* feature tag/title/summary/date colors via type-v2 (dark-tag exception included) */
.home-news-footer { text-align: right; margin-top: 16px; }
/* 工程案例 */
.home-cases-section {
  position: relative;
  max-width: none;
  padding: 88px 0 0;
  background: #fff;
  color: inherit;
}
.home-cases-section .home-section-head {
  max-width: var(--site-maxw);
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
/* tabs / 精选卡同宽撑满 --site-maxw，不再用内边距把卡片挤窄 */
.home-cases-tabs,
.home-cases-feature,
.home-cases-dots {
  max-width: var(--site-maxw);
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}
.home-cases-tabs-rail {
  position: relative;
  display: flex;
  align-items: stretch;
  width: 100%;
  max-width: var(--site-maxw);
  margin: 0 auto;
  box-sizing: border-box;
  min-width: 0;
}
.home-cases-tabs {
  display: block;
  flex: 1 1 auto;
  width: auto;
  max-width: none;
  margin: 0;
  padding-bottom: 0;
  border-bottom: 1px solid rgba(15, 23, 42, 0.08);
  box-sizing: border-box;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  min-width: 0;
  text-align: center; /* 配合 inline-flex 内层居中 */
}
.home-cases-tabs::-webkit-scrollbar { display: none; height: 0; }
/* 内层：未溢出时整组居中；超出时随内容变宽可横滑 */
.home-cases-tabs-inner {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: center;
  gap: 0;
  width: max-content;
  min-width: 100%;
  max-width: none;
  margin: 0 auto;
  vertical-align: top;
  box-sizing: border-box;
}
/* 行业 Tab 横滑：扁平尖括号（非圆钮，避免与下方案例卡圆箭头混淆） */
.home-cases-tabs-nav {
  flex: 0 0 auto;
  align-self: center;
  width: 22px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  position: relative;
  z-index: 2;
  box-shadow: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}
.home-cases-tabs-nav:hover:not(:disabled) {
  color: #c30d23;
}
.home-cases-tabs-nav:disabled {
  opacity: 0.28;
  cursor: default;
}
.home-cases-tabs-nav[hidden] {
  display: none !important;
}
.home-cases-tabs-nav::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 9px;
  height: 9px;
  margin: 0;
  border: none;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  box-sizing: border-box;
  background: transparent;
}
.home-cases-tabs-nav.prev::before {
  transform: translate(-35%, -50%) rotate(135deg);
}
.home-cases-tabs-nav.next::before {
  transform: translate(-65%, -50%) rotate(-45deg);
}
/* 标题白底；行业 Tab + 轮播同一灰底（无 Tab 下白缝） */
.home-cases-headband {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  background: #fff;
}
.home-cases-stage {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 28px;
  box-sizing: border-box;
  isolation: isolate;
  background-color: #f1f5f9;
  background-image:
    linear-gradient(180deg, #f8fafc 0%, #f1f5f9 42%, #e8eef5 100%);
}
.home-cases-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 55% at 12% 18%, rgba(195, 13, 35, 0.04) 0%, transparent 62%),
    radial-gradient(ellipse 60% 50% at 88% 82%, rgba(51, 65, 85, 0.05) 0%, transparent 58%);
}
.home-cases-stage > * {
  position: relative;
  z-index: 1;
}
.home-cases-stage .home-cases-tabs {
  margin-bottom: 0;
  padding-top: 4px;
}
.home-cases-stage .home-cases-feature {
  /* Tab 到卡片可视间距 ≈ 18px（viewport 顶垫另计阴影 bleed） */
  padding-top: 18px;
}
.home-cases-tab {
  flex: 0 0 auto;
  min-width: 0;
  border: none;
  background: transparent;
  padding: 8px 14px 12px;
  font-size: var(--av-fs-btn, 14px);
  line-height: 1.35;
  color: var(--av-color-muted, #555555);
  cursor: pointer;
  position: relative;
  font-weight: var(--av-fw-bold, 700);
  text-align: center;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  transition: color 0.25s ease;
}
.home-cases-tab.is-active { color: var(--av-color-title, #282323); font-weight: var(--av-fw-bold, 700); }
.home-cases-tab:hover { color: var(--av-color-title, #282323); }
.home-cases-tab::after {
  content: '';
  position: absolute; left: 12%; right: 12%; bottom: -1px;
  height: 2px; background: #c30d23;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
.home-cases-tab.is-active::after { transform: scaleX(1); }
.home-cases-feature {
  position: relative;
  display: block;
  margin-bottom: 0;
  overflow: visible;
}
.home-cases-viewport {
  /* hover 阴影：底/侧留 bleed；顶不垫，避免 Tab 下空隙被撑大 */
  --home-cases-hover-pad-y: 28px;
  --home-cases-hover-pad-x: 0px;
  width: 100%;
  margin-left: calc(-1 * var(--home-cases-hover-pad-x));
  margin-right: calc(-1 * var(--home-cases-hover-pad-x));
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  /* 竖滑交给页面；横滑由 JS touchmove 接管（微信 Pointer 不可靠） */
  touch-action: pan-y pinch-zoom;
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
  padding: 0 var(--home-cases-hover-pad-x) var(--home-cases-hover-pad-y);
  box-sizing: border-box;
}
.home-cases-viewport.is-swipe-dragging {
  cursor: grabbing;
  touch-action: none;
}
/* 同上：勿在拖拽态禁卡片点击，避免 iOS 微信卡死 */
.home-cases-track {
  display: flex;
  align-items: stretch;
  gap: 20px;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
/* 仅在滑动动画期间提升图层，避免 9 张大图长期占 GPU */
.home-cases-track.is-animating {
  will-change: transform;
}
.home-cases-track.is-resetting {
  transition: none;
  will-change: auto;
}
/* 轮播指示点 — 对齐 Banner .carousel-dots，置于精选卡下方独立一行 */
.home-cases-dots {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  margin-bottom: 8px;
  min-height: 10px;
  flex: 0 0 auto;
}
.home-cases-dots:empty {
  display: none;
  margin: 0;
  min-height: 0;
}
.home-cases-dots .dot {
  width: 8px;
  height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(40, 35, 35, 0.2);
  cursor: pointer;
  transition: width 0.25s, background 0.25s, border-radius 0.25s;
}
.home-cases-dots .dot.active {
  background: #c30d23;
  width: 28px;
  height: 8px;
  border-radius: 4px;
}
.home-cases-dots .dot:focus-visible {
  outline: 2px solid #c30d23;
  outline-offset: 3px;
}
/* 箭头在卡片外侧，不占内容宽、不压卡片 */
.home-cases-nav {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 42px;
  height: 42px;
  margin-top: -21px;
  border-radius: 50%;
  border: 1px solid rgba(15,23,42,0.12);
  background: #fff;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(15,23,42,0.08);
  transition: background 0.2s, border-color 0.2s, color 0.2s;
}
.home-cases-nav.prev { left: -56px; right: auto; }
.home-cases-nav.next { left: auto; right: -56px; }
/* 视口 ≤ site-maxw+箭头外伸：箭头改贴内沿，避免整页出现横向滚动条 */
@media (max-width: 1400px) {
  .home-cases-nav.prev { left: 8px; }
  .home-cases-nav.next { right: 8px; }
}
.home-cases-nav::before {
  content: '';
  position: absolute; left: 50%; top: 50%;
  width: 14px; height: 14px;
  background: #282323;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14.71 5.29a1 1 0 0 1 0 1.42L9.41 12l5.3 5.29a1 1 0 0 1-1.42 1.42l-6-6a1 1 0 0 1 0-1.42l6-6a1 1 0 0 1 1.42 0z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M14.71 5.29a1 1 0 0 1 0 1.42L9.41 12l5.3 5.29a1 1 0 0 1-1.42 1.42l-6-6a1 1 0 0 1 0-1.42l6-6a1 1 0 0 1 1.42 0z'/%3E%3C/svg%3E") center / contain no-repeat;
  transform: translate(-50%, -50%);
}
.home-cases-nav.next::before { transform: translate(-50%, -50%) scaleX(-1); }
.home-cases-nav:hover { background: #c30d23; border-color: #c30d23; }
.home-cases-nav:hover::before { background: #fff; }
.home-cases-feature-card {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  grid-template-rows: minmax(0, 1fr);
  align-items: stretch;
  flex: 0 0 auto;
  box-sizing: border-box;
  height: 340px;
  min-height: 340px;
  max-height: 340px;
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 10px 30px rgba(15,23,42,0.08);
  border: 1px solid rgba(15,23,42,0.06);
  position: relative;
  z-index: 0;
}
.home-cases-feature-card:hover {
  z-index: 2;
}
@keyframes homeCaseInNext {
  from { opacity: 0; transform: translateX(22px); }
  to { opacity: 1; transform: none; }
}
@keyframes homeCaseInPrev {
  from { opacity: 0; transform: translateX(-22px); }
  to { opacity: 1; transform: none; }
}
@keyframes homeCaseInTab {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .home-cases-track,
  .home-cases-tab::after { transition: none; }
}
.home-cases-feature-body {
  /* grid + align-content：整块文案在白底区内垂直居中（避免 flex 子项撑开后仍顶对齐） */
  padding: 28px 24px;
  display: grid;
  align-content: center;
  align-content: safe center;
  align-items: start;
  justify-items: start;
  gap: 0;
  height: 100%;
  min-height: 0;
  align-self: stretch;
  overflow: hidden;
  box-sizing: border-box;
}
.home-cases-feature-body h3 {
  margin: 0 0 12px;
  line-height: 1.5;
  letter-spacing: 0.06em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  max-width: 100%;
}
.home-cases-feature-date {
  display: block;
  margin: -4px 0 12px;
  line-height: 1.4;
  letter-spacing: 0.04em;
  font-style: normal;
  max-width: 100%;
}
.home-cases-feature-body p {
  margin: 0 0 18px;
  line-height: 1.7;
  letter-spacing: 0.02em;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 0;
  max-width: 100%;
}
.home-cases-feature-link {
  /* chip 样式见 cards-v2；与上文案成组居中，不再 margin-top:auto 沉底 */
  margin-top: 0;
  justify-self: start;
}
.home-cases-feature-media {
  height: 100%;
  min-height: 0;
  background-color: #2a0e14;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
  background-image:
    radial-gradient(ellipse 70% 80% at 78% 18%, rgba(195, 13, 35, 0.5), transparent 56%),
    radial-gradient(ellipse 55% 70% at 12% 88%, rgba(40, 20, 80, 0.42), transparent 55%),
    linear-gradient(160deg, #1a1018 0%, #3a0d14 48%, #6e141b 100%);
  overflow: hidden;
}
.home-cases-feature-media > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border: 0;
  /* 禁止 content-visibility：屏外卡会被跳过解码，切进来才出图 */
}
.home-cases-feature-media.is-empty {
  background-image:
    radial-gradient(ellipse 70% 80% at 78% 18%, rgba(195, 13, 35, 0.5), transparent 56%),
    radial-gradient(ellipse 55% 70% at 12% 88%, rgba(40, 20, 80, 0.42), transparent 55%),
    linear-gradient(160deg, #1a1018 0%, #3a0d14 48%, #6e141b 100%) !important;
}
.home-cases-feature-media.is-empty[data-grad="1"] {
  background-image:
    radial-gradient(ellipse 80% 70% at 22% 20%, rgba(195, 13, 35, 0.46), transparent 58%),
    radial-gradient(ellipse 65% 75% at 88% 82%, rgba(90, 20, 40, 0.4), transparent 52%),
    linear-gradient(155deg, #140c12 0%, #4a1018 52%, #2a0c14 100%) !important;
}
.home-cases-feature-media.is-empty[data-grad="2"] {
  background-image:
    radial-gradient(ellipse 75% 80% at 80% 16%, rgba(220, 40, 70, 0.4), transparent 56%),
    radial-gradient(ellipse 55% 65% at 16% 90%, rgba(195, 13, 35, 0.32), transparent 55%),
    linear-gradient(148deg, #1c1016 0%, #5a1420 50%, #241018 100%) !important;
}
.home-cases-feature-media.is-empty[data-grad="3"] {
  background-image:
    radial-gradient(ellipse 70% 75% at 70% 24%, rgba(195, 13, 35, 0.38), transparent 58%),
    radial-gradient(ellipse 60% 70% at 18% 78%, rgba(80, 20, 50, 0.4), transparent 54%),
    linear-gradient(160deg, #120c14 0%, #3a101c 48%, #6e141b 100%) !important;
}
.home-cases-feature-media.is-empty[data-grad="4"] {
  background-image:
    radial-gradient(ellipse 85% 70% at 16% 18%, rgba(255, 70, 90, 0.28), transparent 55%),
    radial-gradient(ellipse 70% 80% at 86% 86%, rgba(195, 13, 35, 0.42), transparent 52%),
    linear-gradient(165deg, #1a1014 0%, #4e121c 50%, #2c0e16 100%) !important;
}
@media (prefers-reduced-motion: reduce) {
  .hero-parallax { transform: none !important; }
}
/* 底部 CTA 红条：底色按设计稿左暗右亮取样还原（图 + 多层渐变兜底） */
.home-cta-strip {
  position: relative;
  margin-top: 0;
  color: #fff;
  overflow: hidden;
  background-color: #170707;
  background-image:
    radial-gradient(ellipse 70% 140% at 92% 50%, rgba(255, 60, 40, 0.28) 0%, rgba(180, 20, 16, 0.12) 35%, transparent 68%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.18) 0%, transparent 42%, transparent 58%, rgba(0, 0, 0, 0.14) 100%),
    linear-gradient(
      90deg,
      #560c0b 0%,
      #350709 5%,
      #220509 10%,
      #170708 16%,
      #180809 22%,
      #210c0b 28%,
      #2c0f0b 35%,
      #38100e 40%,
      #44130f 45%,
      #511411 50%,
      #5f1512 55%,
      #6e1614 60%,
      #7e1814 65%,
      #901915 70%,
      #9f1815 75%,
      #af1716 80%,
      #bc1616 85%,
      #c71717 90%,
      #ce1817 95%,
      #d41d15 100%
    );
  background-size: cover;
  background-position: center;
  border-top: none;
}
.home-cta-strip::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background: url('/dist/images/home/home-cta-bg.png') center / cover no-repeat;
  pointer-events: none;
}
.home-cta-strip-inner {
  position: relative;
  z-index: 1;
  max-width: var(--site-maxw);
  width: 100%;
  margin: 0 auto;
  height: 143px;
  padding: 0 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  box-sizing: border-box;
}
.home-cta-strip h2 {
  margin: 0;
  color: #fff !important; /* dark surface: keep light text over type-v2 title color */
  letter-spacing: 0.02em;
  line-height: 1.4;
}
.home-cta-strip-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 28px;
  border: 1px solid rgba(255, 255, 255, 0.85);
  border-radius: 4px;
  color: #fff;
  text-decoration: none;
  font-size: var(--av-fs-btn, 14px);
  font-weight: var(--av-fw-regular, 400);
  white-space: nowrap;
  flex-shrink: 0;
  box-sizing: border-box;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
  background: transparent;
  min-height: 0;
}
.home-cta-strip-btn:hover { background: #fff; color: #c30d23; }
.empty-state { text-align: center; padding: 48px 16px; /* color via type-v2 muted/body */ }
.empty-state .icon { font-size: 32px; margin-bottom: 12px; }
.empty-state h3,
.empty-state .empty-state-title { margin: 0 0 8px; font-size: inherit; /* weight/color via type roles */ }
/* 响应式 */
@media (max-width: 1100px) {
  .home-sol-track { gap: 16px; }
  .home-sol-body { padding: 100px 16px 24px; }
  .home-sol-more { padding: 7px 18px; }
  .home-news-wrap {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    align-items: stretch;
  }
  .home-news-grid {
    height: auto;
    grid-template-rows: auto;
    /* 覆盖 PC 的 align-self:end，避免竖排后列表右偏错位 */
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .news-feature {
    width: 100%;
    max-width: 453px;
    height: auto;
    aspect-ratio: 453 / 503;
    max-height: none;
    justify-self: center;
    align-self: center;
  }
  .home-cases-feature-card {
    grid-template-columns: 1fr;
    height: auto;
    min-height: 0;
    max-height: none;
  }
  .home-cases-feature-media {
    height: 180px;
    min-height: 180px;
    order: -1;
  }
  .home-cases-track {
    gap: 16px;
  }
}
@media (max-width: 900px) {
  .home-news-inner,
  .home-cases-section .home-section-head { padding-left: 24px; padding-right: 24px; }
  .home-cases-tabs,
  .home-cases-feature { padding-left: 0; padding-right: 0; }
  .home-cases-nav.prev { left: -12px; }
  .home-cases-nav.next { right: -12px; }
  .home-products-head,
  .home-products-section .product-fold-wrap { padding-left: 24px; padding-right: 24px; }
  .home-sol-section .home-section-head { padding: 0 24px; }
  .home-sol-section .home-section-more { right: 24px; }
  .home-sol-carousel {
    --home-sol-nav-gap: 12px;
    --home-sol-gutter: calc(var(--home-sol-nav-size) + var(--home-sol-nav-gap));
    padding: 0 var(--home-sol-gutter);
  }
  .home-news-wrap { gap: 18px; }
  .home-news-grid { gap: 18px; }
  .home-news-card { padding: 20px; }
  .home-news-card .summary { -webkit-line-clamp: 3; }
  .news-feature .feature-body { padding: 20px; }
  .hero-carousel .slide-stack {
    grid-template-rows: auto auto auto;
  }
  .hero-carousel .slide-stack .slide-title,
  .hero-carousel .slide-content h1.slide-title,
  .hero-carousel .slide-content p.slide-title { font-size: 36px; min-height: calc(36px * 1.15); }
  .hero-carousel .slide-stack .slide-desc,
  .hero-carousel .slide-content p.slide-desc { padding-top: 10px; min-height: calc(16px * 1.7 + 10px); }
  .home-cta-strip-inner { flex-direction: column; text-align: center; height: auto; min-height: 143px; padding: 28px 24px; }
  /* home-cta-strip h2 size via type-v2 */
  .home-section-more { position: static; transform: none; margin-top: 8px; }
}
@media (max-width: 768px) {
  /* 首页 Banner：关掉视差加高，否则 slides 比可视区高 160px，flex-end 文案被 overflow 裁掉 */
  .hero-parallax {
    height: 100%;
    transform: none !important;
    will-change: auto;
  }
  .hero-carousel {
    /* 移动端压矮 Banner（对齐图2），文案顶对齐 */
    height: clamp(250px, 36vh, 300px);
    min-height: 250px;
    max-height: 300px;
  }
  .hero-carousel .slide.has-cover:not(.has-video)::before {
    background-position: 72% 40% !important;
  }
  /* 移动端：左→右深色渐变蒙层（参考科达首页，衬白字标题） */
  .hero-carousel .slide::after,
  .hero-carousel .slide.has-cover::after,
  .hero-carousel .slide.has-cover:not(.hero-on-light)::after,
  .hero-carousel .slide.has-cover.hero-on-light::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    height: auto !important;
    z-index: 1 !important;
    pointer-events: none !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    background: linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.88) 0%,
      rgba(0, 0, 0, 0.72) 26%,
      rgba(0, 0, 0, 0.42) 48%,
      rgba(0, 0, 0, 0.12) 70%,
      rgba(0, 0, 0, 0) 86%
    ) !important;
  }
  .hero-carousel .slide.has-cover > .slide-overlay,
  .hero-carousel .slide-overlay {
    display: none !important;
  }
  .hero-carousel .slide-content {
    height: 100%;
    justify-content: flex-start;
    /* 顶距让过固定导航，文案落在红框位置 */
    padding: 68px 16px 36px;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
  }
  .hero-carousel .slide-stack {
    max-width: none;
  }
  .hero-carousel .slide-stack .slide-title,
  .hero-carousel .slide-content h1.slide-title,
  .hero-carousel .slide-content p.slide-title,
  .hero-carousel .slide-stack .slide-title.hero-title--gradient,
  .hero-carousel .slide-content h1.slide-title.hero-title--gradient {
    /* 压过 type-v2 / 渐变标题；移动端统一白字衬左渐变 */
    font-size: clamp(18px, 4.8vw, 24px) !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
    letter-spacing: 0.01em !important;
    min-height: 0;
    -webkit-line-clamp: 2;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35) !important;
  }
  /* 移动端：恢复 Banner 副标题；白字配合左渐变（压过 CMS 色 / hero-on-light） */
  .hero-carousel .slide-stack .slide-desc,
  .hero-carousel .slide-content p.slide-desc,
  .hero-carousel .slide.hero-on-light .slide-stack .slide-desc,
  .hero-carousel .slide.hero-on-light .slide-content .slide-desc,
  .hero-carousel .slide.hero-on-light p.slide-desc,
  .hero-carousel .slide-stack.has-cms-title-color .slide-desc,
  .hero-carousel .slide.hero-on-light .slide-stack.has-cms-title-color .slide-desc {
    display: -webkit-box !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.02em !important;
    padding-top: 8px !important;
    margin: 0 !important;
    min-height: 0 !important;
    max-width: 50% !important;
    width: 50% !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    -webkit-box-orient: vertical !important;
    color: rgba(255, 255, 255, 0.92) !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3) !important;
  }
  /* 移动端：去掉「了解更多」按钮 */
  .hero-carousel .slide-stack .slide-cta,
  .hero-carousel .slide-stack .slide-btn,
  .hero-carousel .slide-btn {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }
  /* 底图偏亮：渐变已衬白字，取消强制深色字 */
  .hero-carousel .slide.hero-on-light .slide-stack .slide-title,
  .hero-carousel .slide.hero-on-light .slide-content .slide-title,
  .hero-carousel .slide.hero-on-light .slide-stack .slide-desc,
  .hero-carousel .slide.hero-on-light .slide-content .slide-desc {
    color: #fff !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35) !important;
  }
  .hero-carousel .carousel-arrow {
    display: none;
  }
  .carousel-dots {
    bottom: 10px;
    gap: 6px;
  }
  .carousel-dots .dot {
    width: 6px;
    height: 6px;
  }
  .carousel-dots .dot.active {
    width: 18px;
    height: 6px;
  }
  /* 轮播区：iOS/微信 WKWebView 上 pan-y 常不把横滑交给 JS；narrow 用 none + JS 接管 */
  .hero-carousel,
  .home-sol-viewport,
  .home-cases-viewport {
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
  }
  .hero-carousel.is-swipe-dragging,
  .home-sol-viewport.is-dragging,
  .home-cases-viewport.is-swipe-dragging {
    touch-action: none;
  }
  .home-section { padding: 56px 16px 16px; }
  /* 首页各区块主标题 / 栏目标题：再小一号 */
  body.is-home .home-section-title,
  body.is-home .home-products-head .home-section-title,
  body.is-home .home-sol-section .home-section-title,
  body.is-home .home-news-section .home-section-title,
  body.is-home .home-cases-section .home-section-title,
  body.is-home .home-section-title .cnt,
  body.is-home h2.home-section-title {
    font-size: 16px !important;
    line-height: 1.35 !important;
  }
  body.is-home .home-section-lead,
  body.is-home .home-products-head .home-section-lead,
  body.is-home .home-sol-section .home-section-lead,
  body.is-home .home-news-section .home-section-lead,
  body.is-home .home-cases-section .home-section-lead {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }
  body.is-home .home-products-section .pf-title-text,
  body.is-home .home-products-section h3.pf-title-text {
    font-size: 12px !important;
  }
  body.is-home .home-cta-strip h2 {
    font-size: 16px !important;
  }
  /* 产品中心：Banner 加高后板块下移；收紧区内边距 + 压矮卡片，保证「全部产品」落在首屏 */
  .home-products-section { padding: 24px 0 18px; }
  .home-products-head {
    margin-bottom: 12px;
    gap: 4px;
  }
  .home-products-head .home-section-title .bar {
    margin-bottom: 8px;
  }
  .home-products-head,
  .home-products-section .product-fold-wrap { padding-left: 16px; padding-right: 16px; }
  .product-fold,
  .product-fold--four { gap: 8px; }
  .pf-item,
  .pf-item.is-active,
  .product-fold--four .pf-item,
  .product-fold--four .pf-item.is-active,
  .product-fold--four .pf-item:not(.is-active) {
    aspect-ratio: auto;
    height: clamp(96px, 26vw, 118px);
    min-height: 96px;
  }
  /* pf-title size via type-v2 card role；字号在 ≤900 已压到 13px */
  .pf-item:not(.is-active) .pf-body,
  .pf-item.is-active .pf-body { padding: 8px 10px 10px; }
  .pf-item:not(.is-active) .pf-title,
  .pf-item.is-active .pf-title {
    -webkit-line-clamp: 2;
    line-clamp: 2;
    max-height: 2.6em;
  }
  .home-products-section .pf-title-text,
  .home-products-section h3.pf-title-text {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }
  .home-products-foot {
    margin-top: 12px;
    padding-bottom: 4px;
  }
  /* 矮屏手机：Banner 不低于产品中心 280，卡片再压一点保证按钮入首屏 */
  @media (max-height: 700px) {
    .hero-carousel {
      height: clamp(300px, 46vh, 360px);
      min-height: 300px;
    }
    .home-products-section { padding: 16px 0 12px; }
    .home-products-head { margin-bottom: 8px; }
    .pf-item,
    .pf-item.is-active,
    .product-fold--four .pf-item,
    .product-fold--four .pf-item.is-active,
    .product-fold--four .pf-item:not(.is-active) {
      height: 90px;
      min-height: 90px;
    }
    .home-products-foot { margin-top: 10px; }
  }
  .home-sol-section { padding: 64px 0 48px; min-height: 0; }
  .home-sol-section .home-section-head { padding: 0 16px; margin-bottom: 20px; }
  .home-sol-section .home-section-more { right: 16px; }
  /* 移动端：去掉左右箭头，改用底部指示点（避免盖住卡片） */
  .home-sol-carousel {
    --home-sol-nav-size: 0px;
    --home-sol-nav-gap: 0px;
    --home-sol-gutter: 16px;
    padding: 0 var(--home-sol-gutter);
  }
  .home-sol-nav {
    display: none !important;
  }
  .home-sol-viewport {
    --home-sol-hover-pad-y: 8px;
    --home-sol-hover-pad-x: 0px;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-height: 300px;
  }
  /* 须与 home-v2.js currentGap()=0 一致；否则 translate 按 0 算、布局仍 12px → 左裁右露邻卡 */
  .home-sol-track { gap: 0 !important; }
  .home-sol-card {
    aspect-ratio: 16 / 10;
    min-height: 300px;
    max-height: 380px;
  }
  /* 触屏无 hover：禁位移/红边/图放大；关掉 transition 避免点按蒙版文字闪一下 */
  .home-sol-card,
  .home-sol-card:hover,
  .home-sol-card:focus,
  .home-sol-card:focus-visible,
  .home-sol-card:active {
    transform: none !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05) !important;
    border-color: rgba(15, 23, 42, 0.08) !important;
    outline: none !important;
    transition: none !important;
    -webkit-tap-highlight-color: transparent;
  }
  .home-sol-card:hover .home-sol-thumb img,
  .home-sol-card:focus .home-sol-thumb img,
  .home-sol-card:focus-visible .home-sol-thumb img,
  .home-sol-card:active .home-sol-thumb img,
  .home-sol-thumb img {
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
  .home-sol-shade,
  .home-sol-body,
  .home-sol-more,
  .home-sol-card-t,
  .home-sol-card-d {
    transition: none !important;
  }
  .home-sol-thumb {
    inset: 0;
    height: auto;
    border-radius: inherit;
    background: #e8eef5;
  }
  .home-sol-thumb img {
    -webkit-mask-image: none;
    mask-image: none;
    filter: none;
    opacity: 1;
  }
  .home-sol-shade {
    background: linear-gradient(
      to top,
      rgba(15, 23, 42, 0.55) 0%,
      rgba(15, 23, 42, 0.48) 35%,
      rgba(15, 23, 42, 0.42) 55%,
      rgba(15, 23, 42, 0.35) 100%
    );
  }
  .home-sol-body {
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px 16px;
    gap: 8px;
  }
  .home-sol-section .home-sol-card-t {
    color: #fff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .home-sol-section .home-sol-card-d {
    color: rgba(255, 255, 255, 0.9) !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .home-sol-more {
    position: relative;
    left: auto;
    top: auto;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    align-self: center;
    margin-top: 4px;
    padding: 7px 16px;
    font-size: 13px;
  }
  .home-sol-dots {
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
  }
  /* 新闻资讯：移动端左图右文列表（去掉标签；不影响 PC） */
  .home-news-section { padding: 36px 0 20px; }
  .home-news-inner { padding: 0 16px; }
  .home-news-section .home-section-head { margin-bottom: 12px; }
  .home-news-wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
  }
  .home-news-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
  }
  /* 精选 + 前 3 条 = 共 4 卡，缩短板块高度 */
  .home-news-grid .home-news-card:nth-child(n + 4) {
    display: none !important;
  }
  .news-feature,
  .home-news-card {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
    align-self: stretch !important;
    padding: 10px 0;
    border: none;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    overflow: visible;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    max-width: none !important;
    width: 100% !important;
    min-height: 0;
    justify-self: stretch;
  }
  .news-feature:hover,
  .home-news-card:hover {
    transform: none;
    box-shadow: none;
    border-color: rgba(15, 23, 42, 0.08);
  }
  .home-news-card:nth-child(3) { border-bottom: none; }
  .news-feature .feature-img,
  .home-news-card .news-card-img {
    display: block;
    order: 0;
    width: 104px;
    min-width: 104px;
    max-width: 104px;
    flex: none;
    aspect-ratio: 16 / 10;
    border-radius: 4px;
    overflow: hidden;
    background: #eef1f5;
    align-self: center;
  }
  .news-feature .feature-img img,
  .home-news-card .news-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
  }
  .news-feature .feature-img::after { display: none; }
  .news-feature .feature-body,
  .home-news-card .news-card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: stretch;
    order: 0;
    gap: 6px;
    margin: 0;
    margin-top: 0;
    padding: 1px 0;
    min-width: 0;
    min-height: 100%;
    height: auto;
    background: transparent;
  }
  .home-news-card .tag,
  .news-feature .feature-body .tag {
    display: none !important;
  }
  .home-news-section .home-news-card h3,
  .home-news-section .home-news-card h4,
  .home-news-section .feature-body h3,
  .home-news-section .feature-body h4 {
    line-height: 1.4 !important;
    letter-spacing: 0;
    margin: 0;
    height: calc(2 * 1.4em);
    max-height: calc(2 * 1.4em);
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .home-news-card .date,
  .news-feature .feature-body .date {
    margin-top: auto;
    white-space: nowrap;
    align-self: flex-start;
  }
  .home-news-section .home-news-card .summary,
  .home-news-section .feature-body .summary {
    display: none !important;
  }
  .home-news-footer {
    text-align: center;
    margin-top: 14px;
  }
  .home-cases-section { padding: 40px 0 0; }
  .home-cases-section .home-section-head { padding-left: 16px; padding-right: 16px; margin-bottom: 20px; }
  .home-cases-tabs,
  .home-cases-feature { padding-left: 16px; padding-right: 16px; }
  .home-cases-headband {
    min-width: 0;
    max-width: 100%;
  }
  .home-cases-stage {
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
  }
  .home-cases-tabs-rail {
    min-width: 0 !important;
    max-width: 100%;
    width: 100%;
    overflow: visible;
  }
  /* 外层只负责裁切滚动；禁止 center，否则左侧 Tab（如 AI甄选）被裁且 scrollLeft 到不了 */
  .home-cases-tabs {
    display: block !important;
    flex: 1 1 auto !important;
    flex-wrap: nowrap;
    justify-content: unset !important;
    align-items: stretch;
    gap: 0;
    margin-bottom: 0;
    box-sizing: border-box;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
    scrollbar-width: none;
    scroll-padding-inline: 12px;
    text-align: left !important;
  }
  .home-cases-tabs-inner {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch;
    width: max-content !important;
    min-width: 100%;
    max-width: none !important;
    gap: 0;
    margin: 0;
    vertical-align: top;
  }
  .home-cases-tabs::-webkit-scrollbar { display: none; }
  .home-cases-tab {
    flex: 0 0 auto !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
    min-width: max-content !important;
    max-width: none !important;
    width: auto !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    padding-left: 4px;
    padding-right: 4px;
    min-height: 36px;
    touch-action: pan-x pan-y;
  }
  /* 移动端工程案例：上图下文紧凑卡（方案1），不影响 PC 左右分栏 */
  .home-cases-feature-card {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  .home-cases-feature-media {
    order: -1;
    width: 100%;
    height: 168px !important;
    min-height: 168px !important;
    max-height: 168px !important;
    flex: 0 0 168px;
  }
  .home-cases-feature-body {
    padding: 14px 16px 16px !important;
    display: grid;
    align-content: start;
    flex: 1 1 auto;
    height: auto;
  }
  .home-cases-feature-body h3 {
    margin: 0 0 6px !important;
    letter-spacing: 0.02em;
  }
  .home-cases-feature-date {
    margin: 0 0 8px !important;
    font-size: 12px;
  }
  .home-cases-feature-body p {
    margin: 0 0 10px !important;
    line-height: 1.55;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    flex: 0 1 auto;
  }
  .home-cases-feature-link {
    margin-top: 0;
  }
  .home-cases-dots {
    margin-top: 12px;
  }
  .home-cases-nav { display: none; }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-card {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body {
    padding: 14px 16px 16px !important;
  }
  /* thumb-name caption via type-v2 */
  .home-section-head { flex-direction: column; gap: 10px; }
}
@media (max-width: 520px) {
  .news-feature,
  .home-news-card { grid-template-columns: 96px minmax(0, 1fr); gap: 10px; }
  .news-feature .feature-img,
  .home-news-card .news-card-img { width: 96px; }
}
/* 刷新落位前遮住首页，防止先露出 Banner 再跳屏 */
html.home-boot-hold body.is-home {
  opacity: 0 !important;
}
html.home-boot-ready body.is-home {
  opacity: 1 !important;
}

/* ===== 首页滚动渐现（整块区域从无到有；0.7s / 25px，匀速感更强的 ease-in-out） ===== */
/* 桌面首页：在 JS 加 home-reveal 之前就先藏住，避免刷新 FOUC「先亮再灭再渐现」 */
@media (min-width: 1024px) {
  body.is-home .home-products-section.home-panel:not(.is-inview),
  body.is-home .home-sol-section.home-panel:not(.is-inview),
  body.is-home .home-news-section.home-panel:not(.is-inview),
  body.is-home #homeCasesPanel.home-panel:not(.is-inview) {
    opacity: 0;
    transform: translateY(25px);
    pointer-events: none;
  }
  body.is-home .home-products-section.home-panel.is-inview,
  body.is-home .home-sol-section.home-panel.is-inview,
  body.is-home .home-news-section.home-panel.is-inview,
  body.is-home #homeCasesPanel.home-panel.is-inview {
    opacity: 1;
    transform: none;
    transition:
      opacity 0.7s ease-in-out,
      transform 0.7s ease-in-out;
    pointer-events: auto;
  }
  /* 分屏：保留透明度渐现；禁止 translateY，避免吸附坐标被抬高导致底边露边 */
  body.is-home.has-home-fullpage .home-products-section.home-panel:not(.is-inview),
  body.is-home.has-home-fullpage .home-sol-section.home-panel:not(.is-inview),
  body.is-home.has-home-fullpage .home-news-section.home-panel:not(.is-inview),
  body.is-home.has-home-fullpage #homeCasesPanel.home-panel:not(.is-inview),
  body.is-home.has-home-fullpage .home-products-section.home-panel.is-inview,
  body.is-home.has-home-fullpage .home-sol-section.home-panel.is-inview,
  body.is-home.has-home-fullpage .home-news-section.home-panel.is-inview,
  body.is-home.has-home-fullpage #homeCasesPanel.home-panel.is-inview {
    transform: none;
  }
}
.home-reveal.home-reveal-self:not(.is-inview) {
  opacity: 0 !important;
  transform: translateY(25px);
  transition:
    opacity 0.7s ease-in-out,
    transform 0.7s ease-in-out;
  /* 禁止长期 will-change：整屏 + 多张背景图会常驻巨大合成层，滚入工程案例时掉帧 */
  will-change: auto;
  pointer-events: none;
}
.home-reveal.home-reveal-self.is-inview {
  opacity: 1 !important;
  transform: none;
  transition:
    opacity 0.7s ease-in-out,
    transform 0.7s ease-in-out;
  will-change: auto;
  pointer-events: auto;
}
/*
 * 手机/平板（含苹果微信 WKWebView）：不要用「未渐现 → pointer-events:none」。
 * iOS 上 IntersectionObserver + rootMargin% 经常迟迟不进 is-inview，
 * 会出现「看得见/等一会」或「永远滑不动也点不动」。
 */
@media (max-width: 1023px) {
  .home-reveal.home-reveal-self:not(.is-inview),
  .home-reveal.home-reveal-self.is-inview {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    pointer-events: auto !important;
  }
}
body.is-home.has-home-fullpage .home-reveal.home-reveal-self:not(.is-inview),
body.is-home.has-home-fullpage .home-reveal.home-reveal-self.is-inview {
  transform: none !important;
}
/* 分屏：统一短渐现（仅 opacity，无 translateY） */
body.is-home.has-home-fullpage .home-reveal.home-reveal-self:not(.is-inview),
body.is-home.has-home-fullpage .home-reveal.home-reveal-self.is-inview {
  transition: opacity 0.35s ease-out;
}
/*
 * #homeCasesPanel 在上方 media 里写了 0.7s（含 ID），会压过通用 0.35s，
 * 导致工程案例屏比产品/方案/新闻明显更慢；此处用同级 ID 对齐短渐现。
 */
body.is-home.has-home-fullpage #homeCasesPanel.home-panel:not(.is-inview),
body.is-home.has-home-fullpage #homeCasesPanel.home-panel.is-inview,
body.is-home.has-home-fullpage #homeCasesPanel.home-reveal:not(.is-inview),
body.is-home.has-home-fullpage #homeCasesPanel.home-reveal.is-inview {
  transition: opacity 0.35s ease-out !important;
  transform: none !important;
}
/* 渐现期间限制重绘范围，减轻多张案例封面同时淡入的卡顿 */
body.is-home.has-home-fullpage #homeCasesPanel.home-panel {
  contain: layout paint;
}
/* 离屏案例卡：减少预解码压力（克隆卡仍占位，但不强迫持续合成） */
/* 克隆卡也要完整解码，切环时会立刻进入视口 */
body.is-home.has-home-fullpage #homeCasesPanel .home-cases-feature-card.is-clone .home-cases-feature-media {
  content-visibility: visible;
}
.home-reveal .home-reveal-item {
  opacity: inherit;
  transform: none;
  transition: none;
  will-change: auto;
}
.home-reveal .pf-item.is-active .pf-pill {
  will-change: auto;
}
.home-reveal .pf-item:not(.is-active) .pf-pills {
  display: none !important;
  opacity: 0 !important;
  transform: translateY(10px) !important;
}
.home-reveal .pf-item.is-active.is-activating .pf-pills {
  opacity: 0 !important;
  transform: translateY(10px) !important;
}
@media (prefers-reduced-motion: reduce) {
  body.is-home .home-products-section.home-panel:not(.is-inview),
  body.is-home .home-sol-section.home-panel:not(.is-inview),
  body.is-home .home-news-section.home-panel:not(.is-inview),
  body.is-home #homeCasesPanel.home-panel:not(.is-inview),
  body.is-home .home-products-section.home-panel.is-inview,
  body.is-home .home-sol-section.home-panel.is-inview,
  body.is-home .home-news-section.home-panel.is-inview,
  body.is-home #homeCasesPanel.home-panel.is-inview,
  .home-reveal.home-reveal-self:not(.is-inview),
  .home-reveal.home-reveal-self.is-inview,
  .home-reveal .home-reveal-item {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    pointer-events: auto !important;
  }
}

/* ===== 首页桌面分屏（home-fullpage.js） ===== */
body.is-home.has-home-fullpage {
  --home-nav-h: 64px;
  --home-fold-h: 520px;
  --home-case-feature-h: 340px;
  --home-panel-h: 100vh;
  --home-panel-h: 100dvh;
  scroll-behavior: auto;
}
html.has-home-fullpage {
  scroll-behavior: auto;
}
body.is-home.has-home-fullpage .home-panel {
  box-sizing: border-box;
  overflow: hidden;
  height: var(--home-panel-h);
  min-height: var(--home-panel-h);
  max-height: var(--home-panel-h);
}
/* Hero：保持原 22vh 文案区，不压缩 padding */
body.is-home.has-home-fullpage .hero-carousel {
  height: var(--home-panel-h);
  min-height: var(--home-panel-h);
  max-height: var(--home-panel-h);
  overflow: hidden;
}
/* 分屏吸附滚动下关闭视差，避免切屏过程露出 Banner 黑底 */
body.is-home.has-home-fullpage .hero-parallax {
  height: 100%;
  transform: none !important;
  will-change: auto;
}
body.is-home.has-home-fullpage .hero-carousel .slide-content {
  justify-content: flex-start;
  padding: calc(22vh + 108px) 48px 48px calc(32px + 48px + 96px);
}
/* 产品中心：折叠扇固定 520px，整块垂直居中、不拉伸 */
body.is-home.has-home-fullpage .home-products-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  padding: 48px 0 32px;
}
body.is-home.has-home-fullpage .home-products-head {
  flex: 0 0 auto;
  margin-bottom: 22px;
}
body.is-home.has-home-fullpage .home-products-section .product-fold-wrap {
  flex: 0 0 auto;
  height: auto;
}
body.is-home.has-home-fullpage .home-products-section .product-fold {
  flex: 0 0 auto;
  height: var(--home-fold-h);
  min-height: var(--home-fold-h);
  max-height: var(--home-fold-h);
}
body.is-home.has-home-fullpage .home-products-foot {
  flex: 0 0 auto;
  margin-top: 16px;
}
/* 行业方案：恢复卡片原高度，carousel 不撑满；允许 hover 阴影溢出面板 */
body.is-home.has-home-fullpage .home-sol-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 0;
  padding: 60px 0 56px;
  overflow: visible;
}
body.is-home.has-home-fullpage .home-sol-section.home-panel {
  overflow: visible;
}
/* 矮/窄笔记本：方案区禁止横向撑破 */
@media (max-width: 1400px) {
  body.is-home.has-home-fullpage .home-sol-section,
  body.is-home.has-home-fullpage .home-sol-section.home-panel {
    overflow-x: hidden;
  }
  body.is-home .home-sol-carousel {
    max-width: 100%;
  }
}
body.is-home.has-home-fullpage .home-sol-section .home-section-head {
  flex: 0 0 auto;
  margin-bottom: 40px;
}
body.is-home.has-home-fullpage .home-sol-carousel {
  flex: 0 0 auto;
}
/* 新闻资讯：密排一屏，控制图高与间距，左侧大卡吃满拉伸高度 */
body.is-home.has-home-fullpage .home-news-section {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px 0 28px;
}
body.is-home.has-home-fullpage .home-news-inner {
  flex: 0 0 auto;
  max-height: none;
  width: 100%;
}
body.is-home.has-home-fullpage .home-news-section .home-section-head {
  flex: 0 0 auto;
  margin-bottom: 20px;
}
body.is-home.has-home-fullpage .home-news-wrap {
  flex: 0 0 auto;
  gap: 16px;
  grid-template-columns: 453px minmax(0, 1fr);
  grid-template-rows: 503px;
  align-items: end;
}
body.is-home.has-home-fullpage .home-news-grid {
  gap: 16px;
  height: 100%;
}
body.is-home.has-home-fullpage .home-news-card {
  padding: 16px 18px;
}
body.is-home.has-home-fullpage .home-news-card .tag,
body.is-home.has-home-fullpage .feature-body .tag {
  margin-bottom: 8px;
}
body.is-home.has-home-fullpage .home-news-card h3,
body.is-home.has-home-fullpage .home-news-card h4,
body.is-home.has-home-fullpage .feature-body h4 {
  margin-bottom: 6px;
  height: calc(var(--av-fs-card, 18px) * var(--av-lh-h2, 1.45) * 2);
  max-height: calc(var(--av-fs-card, 18px) * var(--av-lh-h2, 1.45) * 2);
  display: -webkit-box !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
}
body.is-home.has-home-fullpage .home-news-card .summary,
body.is-home.has-home-fullpage .feature-body .summary {
  margin-bottom: 10px;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  flex: 0 1 auto;
}
body.is-home.has-home-fullpage .news-feature {
  width: 100%;
  max-width: 453px;
  height: 100%;
  min-height: 0;
}
body.is-home.has-home-fullpage .news-feature .feature-img {
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
body.is-home.has-home-fullpage .news-feature .feature-img img {
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: center;
}
body.is-home.has-home-fullpage .news-feature .feature-body {
  flex: 0 0 auto;
  margin-top: 0;
  padding: 22px 22px 14px;
  min-height: 0;
  background: #fff;
}
body.is-home.has-home-fullpage .news-feature .feature-body .date {
  margin-top: 10px;
}
body.is-home.has-home-fullpage .home-news-footer {
  flex: 0 0 auto;
  margin-top: 12px;
}
/* 工程案例分屏面板：标题上白留白、灰底 stage 向下铺满（勿上下等分都露白） */
body.is-home.has-home-fullpage .home-cases-section {
  padding: 0;
}
body.is-home.has-home-fullpage .home-cases-panel {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  /* 顶垫导航高度后，剩余区域上下等分留白 */
  padding: var(--home-nav-h, 64px) 0 0;
  box-sizing: border-box;
  --home-case-feature-h: 340px;
  background: #fff;
}
/* 上方留白：白底；PC 顶距约 140px（flex 分配，非写死 margin-top） */
body.is-home.has-home-fullpage .home-cases-panel::before {
  content: "";
  flex: 1.2 1 0;
  min-height: 0;
  max-height: 140px;
  pointer-events: none;
  background: #fff;
}
/* 标题区白底 */
body.is-home.has-home-fullpage .home-cases-panel .home-cases-headband {
  flex: 0 0 auto;
  padding: 0;
  background: #fff;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-dots {
  margin-top: 8px;
  margin-bottom: 0;
}
body.is-home.has-home-fullpage .home-cases-panel .home-section-head {
  flex: 0 0 auto;
  margin-bottom: 16px;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-tabs {
  flex: 0 0 auto;
  margin-bottom: 0;
}
/* Tab + 轮播灰底；flex 更大，吸收下方留白 */
body.is-home.has-home-fullpage .home-cases-panel .home-cases-stage {
  flex: 2.8 1 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  padding: 0 0 20px;
  background-color: #f1f5f9;
  background-image:
    linear-gradient(180deg, #f8fafc 0%, #f1f5f9 42%, #e8eef5 100%);
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-stage::before {
  display: block;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature {
  flex: 0 0 auto;
  margin-bottom: 0;
  overflow: visible;
  padding-top: 18px;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-card {
  height: var(--home-case-feature-h);
  min-height: var(--home-case-feature-h);
  max-height: var(--home-case-feature-h);
  grid-template-rows: minmax(0, 1fr);
  align-items: stretch;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body {
  padding: 24px 22px;
  display: grid;
  align-content: center;
  align-content: safe center;
  align-items: start;
  justify-items: start;
  height: 100%;
  align-self: stretch;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body h3 {
  margin-bottom: 10px;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body p {
  margin-bottom: 14px;
  -webkit-line-clamp: 4;
  line-clamp: 4;
}
body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-link {
  margin-top: 0;
}

/*
 * 笔记本分屏密度（真机 1080p 内容区常在 860–980，旧 ≤900 易打不中）
 * L1 ≤1000 · L2 ≤800 · L3 ≤640（含 ~522）
 * 从 L1 起藏 lead/卡描述，扇区高度硬压，避免底部裁切。
 */
@media (min-width: 1024px) and (max-width: 1440px) and (max-height: 900px) {
  body.is-home.has-home-fullpage {
    --home-laptop-gutter: 56px;
    --home-fold-h: 360px;
    --home-case-feature-h: 240px;
    --home-news-h: 360px;
    --home-nav-clear: var(--av-nav-h, 52px);
    --home-banner-pad-l: calc(32px + 48px + 40px);
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-content {
    padding: var(--home-nav-clear) var(--home-laptop-gutter) 28px
      var(--home-banner-pad-l, calc(32px + 48px + 40px));
    justify-content: center;
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-stack .slide-title,
  body.is-home.has-home-fullpage .hero-carousel .slide-content h1.slide-title {
    font-size: clamp(26px, 3vw, 36px);
    font-weight: 700;
    line-height: 1.2;
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-stack .slide-desc,
  body.is-home.has-home-fullpage .hero-carousel .slide-content .slide-desc {
    font-size: 14px;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    max-width: min(520px, 48vw);
    margin-top: 8px;
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-cta { margin-top: 12px; }
  body.is-home.has-home-fullpage .hero-carousel .slide { background-position: center top; }
  body.is-home.has-home-fullpage .home-products-section,
  body.is-home.has-home-fullpage .home-sol-section,
  body.is-home.has-home-fullpage .home-news-section {
    padding: var(--home-nav-clear) var(--home-laptop-gutter) 12px;
    box-sizing: border-box;
    justify-content: flex-start;
  }
  /* 工程案例：灰底通栏（左右不留白）；标题区自带 gutter */
  body.is-home.has-home-fullpage .home-cases-panel {
    padding: var(--home-nav-clear) 0 0;
    box-sizing: border-box;
    justify-content: flex-start;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-headband {
    padding-left: var(--home-laptop-gutter, 24px);
    padding-right: var(--home-laptop-gutter, 24px);
    box-sizing: border-box;
  }
  body.is-home.has-home-fullpage .home-cases-panel::before {
    content: "";
    flex: 0.55 1 0;
    min-height: 12px;
    max-height: 8vh;
    background: #fff;
    pointer-events: none;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-stage {
    flex: 3.6 1 0;
    min-height: 0;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 48px 10px;
    box-sizing: border-box;
    background-color: #f1f5f9;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-section-lead {
    display: block !important;
  }
  body.is-home.has-home-fullpage .home-products-head,
  body.is-home.has-home-fullpage .home-sol-section .home-section-head,
  body.is-home.has-home-fullpage .home-news-section .home-section-head,
  body.is-home.has-home-fullpage .home-cases-panel .home-section-head {
    margin-bottom: 8px;
    min-height: 0;
  }
  body.is-home.has-home-fullpage .home-news-section .home-section-lead {
    display: none !important;
  }
  /* 工程案例副标题（lead）笔记本分屏仍展示 */
  body.is-home.has-home-fullpage .home-cases-panel .home-section-lead {
    display: block !important;
  }
  body.is-home.has-home-fullpage .home-products-foot { margin-top: 8px; }
  body.is-home.has-home-fullpage .home-products-section .product-fold {
    height: var(--home-fold-h);
    min-height: max(300px, var(--home-fold-h));
    max-height: var(--home-fold-h);
  }
  /* notebook-only: 5 series per column (PC keeps 10) */
  body.is-home.has-home-fullpage .pf-item.is-active .pf-pills.pf-pills--cols {
    grid-template-rows: repeat(5, auto);
    column-gap: 24px;
    row-gap: 8px;
  }
  body.is-home.has-home-fullpage .product-fold--four .pf-item {
    transition: flex-grow 0.42s cubic-bezier(0.33, 1, 0.68, 1) !important;
  }
  body.is-home.has-home-fullpage .pf-item.is-active .pf-pills {
    transition:
      opacity 0.38s cubic-bezier(0.33, 1, 0.68, 1) 0.04s,
      transform 0.38s cubic-bezier(0.33, 1, 0.68, 1) 0.04s,
      visibility 0s linear 0s !important;
  }
  body.is-home.has-home-fullpage .pf-pills {
    max-height: calc(var(--home-fold-h) - 72px);
    gap: 6px;
  }
  body.is-home.has-home-fullpage .home-sol-section,
  body.is-home.has-home-fullpage .home-sol-section.home-panel {
    overflow: hidden !important;
  }
  body.is-home.has-home-fullpage .home-sol-card {
    aspect-ratio: 16 / 11;
    min-height: 300px;
    max-height: none;
    height: auto;
  }
  body.is-home.has-home-fullpage .home-sol-viewport {
    --home-sol-hover-pad-y: 6px;
    margin-top: 0;
    margin-bottom: 0;
    padding-top: 6px;
    padding-bottom: 6px;
  }
  body.is-home.has-home-fullpage .home-news-wrap {
    gap: 16px;
    grid-template-columns: min(340px, 30vw) minmax(0, 1fr);
    grid-template-rows: var(--home-news-h, 360px);
    align-items: stretch;
    height: var(--home-news-h, 360px);
  }
  body.is-home.has-home-fullpage .home-news-grid {
    gap: 12px;
    height: 100%;
    grid-template-rows: 1fr 1fr;
    align-self: stretch;
  }
  body.is-home.has-home-fullpage .home-news-card { padding: 14px 16px; height: 100%; }
  body.is-home.has-home-fullpage .news-feature {
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    align-self: stretch;
    overflow: hidden;
  }
  body.is-home.has-home-fullpage .news-feature .feature-img {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
  body.is-home.has-home-fullpage .news-feature .feature-img img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
  }
  body.is-home.has-home-fullpage .news-feature .feature-body {
    margin-top: 0;
    padding: 10px 12px 8px;
    background: #fff;
  }
  body.is-home.has-home-fullpage .home-news-footer { margin-top: 4px; }
  body.is-home.has-home-fullpage .home-cases-panel {
    --home-case-feature-h: 200px;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-headband {
    padding: 0;
    box-sizing: border-box;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-tabs { margin-bottom: 0; }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-stage {
    padding: 0 0 8px;
    box-sizing: border-box;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body { padding: 10px 12px; }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body p {
    -webkit-line-clamp: 3;
    line-clamp: 3;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-dots { margin-top: 4px; }
  body.is-home.has-home-fullpage .home-panel { overflow: hidden !important; }
  body.is-home.has-home-fullpage .home-panel.home-panel--scroll {
    overflow-x: hidden !important;
    overflow-y: hidden !important;
  }
  body.is-home.has-home-fullpage .hero-carousel.home-panel { overflow: hidden !important; }
}


/* notebook: keep fold fan animation even if OS asks to reduce motion */
@media (min-width: 1024px) and (max-width: 1440px) and (max-height: 900px) and (prefers-reduced-motion: reduce) {
  body.is-home.has-home-fullpage .product-fold--four .pf-item {
    transition: flex-grow 0.42s cubic-bezier(0.33, 1, 0.68, 1) !important;
  }
  body.is-home.has-home-fullpage .pf-item.is-active .pf-pills {
    transition:
      opacity 0.38s cubic-bezier(0.33, 1, 0.68, 1) 0.04s,
      transform 0.38s cubic-bezier(0.33, 1, 0.68, 1) 0.04s,
      visibility 0s linear 0s !important;
  }
}

@media (min-width: 1024px) and (max-width: 1440px) and (max-height: 700px) {
  body.is-home.has-home-fullpage {
    --home-laptop-gutter: 48px;
    --home-fold-h: 300px;
    --home-case-feature-h: 200px;
    --home-news-h: 300px;
    --home-nav-clear: var(--av-nav-h, 48px);
    --home-banner-pad-l: calc(28px + 40px + 32px);
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-content {
    padding: var(--home-nav-clear) var(--home-laptop-gutter) 20px
      var(--home-banner-pad-l);
    justify-content: center;
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-stack .slide-title,
  body.is-home.has-home-fullpage .hero-carousel .slide-content h1.slide-title {
    font-size: clamp(22px, 2.8vw, 30px);
  }
  body.is-home.has-home-fullpage .home-products-section,
  body.is-home.has-home-fullpage .home-sol-section,
  body.is-home.has-home-fullpage .home-news-section {
    padding: var(--home-nav-clear) var(--home-laptop-gutter) 8px;
  }
  body.is-home.has-home-fullpage .home-products-head,
  body.is-home.has-home-fullpage .home-sol-section .home-section-head,
  body.is-home.has-home-fullpage .home-news-section .home-section-head { margin-bottom: 4px; }
  body.is-home.has-home-fullpage .home-sol-card {
    min-height: 300px;
    max-height: none;
    height: auto;
  }
  body.is-home.has-home-fullpage .home-news-wrap {
    grid-template-columns: min(300px, 28vw) minmax(0, 1fr);
    grid-template-rows: var(--home-news-h, 300px);
    height: var(--home-news-h, 300px);
    align-items: stretch;
    gap: 12px;
  }
  body.is-home.has-home-fullpage .home-news-grid {
    height: 100%;
    grid-template-rows: 1fr 1fr;
    gap: 10px;
  }
  body.is-home.has-home-fullpage .news-feature {
    max-width: none;
    height: 100%;
    max-height: none;
  }
  body.is-home.has-home-fullpage .news-feature .feature-img img {
    height: 100%;
    max-height: none;
    object-fit: cover;
  }
  body.is-home.has-home-fullpage .home-cases-panel { --home-case-feature-h: 200px; }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-stage {
    padding: 0 0 6px;
  }
}

@media (min-width: 1024px) and (max-width: 1440px) and (max-height: 580px) {
  body.is-home.has-home-fullpage {
    --home-laptop-gutter: 48px;
    --home-fold-h: 300px;
    --home-case-feature-h: 188px;
    --home-news-h: 250px;
    --home-nav-clear: var(--av-nav-h, 44px);
    --home-banner-pad-l: calc(24px + 36px + 28px);
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-content {
    padding: var(--home-nav-clear) var(--home-laptop-gutter) 16px
      var(--home-banner-pad-l);
    justify-content: center;
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-stack .slide-title,
  body.is-home.has-home-fullpage .hero-carousel .slide-content h1.slide-title {
    font-size: clamp(18px, 2.2vw, 24px);
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-stack .slide-desc,
  body.is-home.has-home-fullpage .hero-carousel .slide-content .slide-desc {
    font-size: 13px;
    margin-top: 4px;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-cta { margin-top: 8px; }
  body.is-home.has-home-fullpage .home-products-section,
  body.is-home.has-home-fullpage .home-sol-section,
  body.is-home.has-home-fullpage .home-news-section {
    padding: var(--home-nav-clear) var(--home-laptop-gutter) 6px;
  }
  body.is-home.has-home-fullpage .pf-pills {
    max-height: calc(var(--home-fold-h) - 48px);
    gap: 4px;
  }
  body.is-home.has-home-fullpage .home-sol-card {
    min-height: 300px;
    max-height: none;
    height: auto;
  }
  body.is-home.has-home-fullpage .home-news-wrap {
    grid-template-columns: min(240px, 26vw) minmax(0, 1fr);
    grid-template-rows: var(--home-news-h, 250px);
    height: var(--home-news-h, 250px);
    align-items: stretch;
    gap: 10px;
  }
  body.is-home.has-home-fullpage .home-news-grid {
    height: 100%;
    grid-template-rows: 1fr 1fr;
    gap: 8px;
  }
  body.is-home.has-home-fullpage .news-feature {
    max-width: none;
    height: 100%;
    max-height: none;
  }
  body.is-home.has-home-fullpage .news-feature .feature-img img {
    height: 100%;
    max-height: none;
    object-fit: cover;
  }
  body.is-home.has-home-fullpage .home-news-card { padding: 10px 12px; height: 100%; }
  body.is-home.has-home-fullpage .home-news-card h3,
  body.is-home.has-home-fullpage .home-news-card h4,
  body.is-home.has-home-fullpage .feature-body h4 {
    font-size: 13px;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  body.is-home.has-home-fullpage .home-cases-panel { --home-case-feature-h: 188px; }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body { padding: 6px 10px; }
}
/* GEO：仅供 aria-labelledby 关联的隐藏标题 */
.geo-sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* GEO semantic wrappers: expose article in HTML without breaking flex/grid */
.home-sol-card-article,
.home-news-card-article,
.news-feature-article,
.home-cases-feature-article {
  display: contents;
}
/* 分区标题：只清 UA margin；字号/字重交给 type-v2（与关于页 tl-hist__title 同阶） */
.home-section-head .home-section-title,
h2.home-section-title {
  margin: 0;
  padding: 0;
}

/* av-fold-mobile */
/* Dual/triple fold. Excludes 1920 desktop and 16:10/3:2 laptops (max-aspect 29/20 ≈ 1.45). Mid-band 769–1199 bridges phone↔fold. */
@media (min-width: 1200px) and (max-width: 1650px) and (min-aspect-ratio: 4/3) and (max-aspect-ratio: 29/20),
       (min-width: 769px) and (max-width: 1199px) and (max-aspect-ratio: 3/2),
       (min-width: 769px) and (max-width: 1200px) and (max-aspect-ratio: 3/4),
       (spanning: single-fold-vertical),
       (spanning: single-fold-horizontal),
       (horizontal-viewport-segments: 2),
       (horizontal-viewport-segments: 3),
       (vertical-viewport-segments: 2),
       (vertical-viewport-segments: 3) {

  .hero-carousel .slide-video {
    display: none !important;
  }


  .product-fold-wrap { padding-bottom: 0; }
  /* 移动端：2×2 卡片网格（无 hover，整块点进分类页） */
  .product-fold,
  .product-fold--four {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    height: auto;
    background: transparent;
    overflow: visible;
  }
  .pf-item,
  .pf-item.is-active,
  .product-fold--four .pf-item,
  .product-fold--four .pf-item.is-active,
  .product-fold--four .pf-item:not(.is-active) {
    flex: none !important;
    width: auto;
    min-width: 0;
    max-width: none;
    aspect-ratio: 1 / 1;
    min-height: 0;
    border-radius: var(--av-radius-card, 4px);
    overflow: hidden;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    will-change: auto;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  }
  .pf-item:active {
    transform: scale(0.98);
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.1);
  }
  .pf-panel {
    min-height: 0;
    height: 100%;
  }
  .pf-panel::after {
    opacity: 0 !important;
  }
  .pf-panel::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background: linear-gradient(
      to top,
      rgba(8, 12, 22, 0.82) 0%,
      rgba(8, 12, 22, 0.38) 42%,
      rgba(8, 12, 22, 0.08) 68%,
      transparent 100%
    );
  }
  .pf-label { display: none !important; }
  .pf-item:not(.is-active) .pf-panel,
  .pf-item.is-active .pf-panel { filter: none; }
  .pf-item:not(.is-active) .pf-body,
  .pf-item.is-active .pf-body {
    position: relative;
    z-index: 1;
    height: 100%;
    padding: 12px 12px 14px;
    align-items: flex-start;
    justify-content: flex-end;
    box-sizing: border-box;
  }
  .pf-item:not(.is-active) .pf-title,
  .pf-item.is-active .pf-title {
    position: static;
    width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    clip: auto;
    overflow: hidden;
    white-space: normal;
    /* size/weight via type-v2 .pf-title-text card role */
    line-height: 1.35;
    opacity: 1;
    transform: none;
    pointer-events: auto;
    transition: none;
    text-align: left;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.45);
  }
  .pf-item:not(.is-active) .pf-title-text,
  .pf-item.is-active .pf-title-text,
h3.pf-title-text {
  margin: 0;
  padding: 0;
  font: inherit;
  color: inherit;
  letter-spacing: inherit;

    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    line-height: 1.3;
    max-height: 2.6em;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
    overflow-wrap: anywhere;
  }
  /* 2×2 矮卡：压掉 type-v2「Card+4」放大，避免「非IP光纤分布式」撑破 */
  .home-products-section .pf-title-text,
  .home-products-section h3.pf-title-text {
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
  }
  .pf-pills,
  .pf-item.is-active .pf-pills,
  .pf-item.is-active .pf-pills.pf-pills--cols {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
  }
  .home-products-foot {
    margin-top: 16px;
    justify-content: center;
  }


  .home-news-inner,
  .home-cases-section .home-section-head { padding-left: 24px; padding-right: 24px; }
  .home-cases-tabs,
  .home-cases-feature { padding-left: 0; padding-right: 0; }
  .home-cases-nav.prev { left: -12px; }
  .home-cases-nav.next { right: -12px; }
  .home-products-head,
  .home-products-section .product-fold-wrap { padding-left: 24px; padding-right: 24px; }
  .home-sol-section .home-section-head { padding: 0 24px; }
  .home-sol-section .home-section-more { right: 24px; }
  .home-sol-carousel {
    --home-sol-nav-gap: 12px;
    --home-sol-gutter: calc(var(--home-sol-nav-size) + var(--home-sol-nav-gap));
    padding: 0 var(--home-sol-gutter);
  }
  .home-news-wrap { gap: 18px; }
  .home-news-grid { gap: 18px; }
  .home-news-card { padding: 20px; }
  .home-news-card .summary { -webkit-line-clamp: 3; }
  .news-feature .feature-body { padding: 20px; }
  .hero-carousel .slide-stack {
    grid-template-rows: auto auto auto;
  }
  .hero-carousel .slide-stack .slide-title,
  .hero-carousel .slide-content h1.slide-title,
  .hero-carousel .slide-content p.slide-title { font-size: 36px; min-height: calc(36px * 1.15); }
  .hero-carousel .slide-stack .slide-desc,
  .hero-carousel .slide-content p.slide-desc { padding-top: 10px; min-height: calc(16px * 1.7 + 10px); }
  .home-cta-strip-inner { flex-direction: column; text-align: center; height: auto; min-height: 143px; padding: 28px 24px; }
  /* home-cta-strip h2 size via type-v2 */
  .home-section-more { position: static; transform: none; margin-top: 8px; }


  /* 首页 Banner：关掉视差加高，否则 slides 比可视区高 160px，flex-end 文案被 overflow 裁掉 */
  .hero-parallax {
    height: 100%;
    transform: none !important;
    will-change: auto;
  }
  .hero-carousel {
    /* 移动端压矮 Banner（对齐图2），文案顶对齐 */
    height: clamp(250px, 36vh, 300px);
    min-height: 250px;
    max-height: 300px;
  }
  .hero-carousel .slide.has-cover:not(.has-video)::before {
    background-position: 72% 40% !important;
  }
  /* 移动端：左→右深色渐变蒙层（参考科达首页，衬白字标题） */
  .hero-carousel .slide::after,
  .hero-carousel .slide.has-cover::after,
  .hero-carousel .slide.has-cover:not(.hero-on-light)::after,
  .hero-carousel .slide.has-cover.hero-on-light::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    right: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    height: auto !important;
    z-index: 1 !important;
    pointer-events: none !important;
    filter: none !important;
    opacity: 1 !important;
    transform: none !important;
    background: linear-gradient(
      90deg,
      rgba(0, 0, 0, 0.88) 0%,
      rgba(0, 0, 0, 0.72) 26%,
      rgba(0, 0, 0, 0.42) 48%,
      rgba(0, 0, 0, 0.12) 70%,
      rgba(0, 0, 0, 0) 86%
    ) !important;
  }
  .hero-carousel .slide.has-cover > .slide-overlay,
  .hero-carousel .slide-overlay {
    display: none !important;
  }
  .hero-carousel .slide-content {
    height: 100%;
    justify-content: flex-start;
    /* 顶距让过固定导航，文案落在红框位置 */
    padding: 68px 16px 36px;
    box-sizing: border-box;
    position: relative;
    z-index: 2;
  }
  .hero-carousel .slide-stack {
    max-width: none;
  }
  .hero-carousel .slide-stack .slide-title,
  .hero-carousel .slide-content h1.slide-title,
  .hero-carousel .slide-content p.slide-title,
  .hero-carousel .slide-stack .slide-title.hero-title--gradient,
  .hero-carousel .slide-content h1.slide-title.hero-title--gradient {
    /* 压过 type-v2 / 渐变标题；移动端统一白字衬左渐变 */
    font-size: clamp(18px, 4.8vw, 24px) !important;
    font-weight: 700 !important;
    line-height: 1.22 !important;
    letter-spacing: 0.01em !important;
    min-height: 0;
    -webkit-line-clamp: 2;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35) !important;
  }
  /* 移动端：恢复 Banner 副标题；白字配合左渐变（压过 CMS 色 / hero-on-light） */
  .hero-carousel .slide-stack .slide-desc,
  .hero-carousel .slide-content p.slide-desc,
  .hero-carousel .slide.hero-on-light .slide-stack .slide-desc,
  .hero-carousel .slide.hero-on-light .slide-content .slide-desc,
  .hero-carousel .slide.hero-on-light p.slide-desc,
  .hero-carousel .slide-stack.has-cms-title-color .slide-desc,
  .hero-carousel .slide.hero-on-light .slide-stack.has-cms-title-color .slide-desc {
    display: -webkit-box !important;
    visibility: visible !important;
    height: auto !important;
    max-height: none !important;
    overflow: hidden !important;
    font-size: 13px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0.02em !important;
    padding-top: 8px !important;
    margin: 0 !important;
    min-height: 0 !important;
    max-width: 50% !important;
    width: 50% !important;
    -webkit-line-clamp: 4 !important;
    line-clamp: 4 !important;
    -webkit-box-orient: vertical !important;
    color: rgba(255, 255, 255, 0.92) !important;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.3) !important;
  }
  /* 移动端：去掉「了解更多」按钮 */
  .hero-carousel .slide-stack .slide-cta,
  .hero-carousel .slide-stack .slide-btn,
  .hero-carousel .slide-btn {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    pointer-events: none !important;
  }
  /* 底图偏亮：渐变已衬白字，取消强制深色字 */
  .hero-carousel .slide.hero-on-light .slide-stack .slide-title,
  .hero-carousel .slide.hero-on-light .slide-content .slide-title,
  .hero-carousel .slide.hero-on-light .slide-stack .slide-desc,
  .hero-carousel .slide.hero-on-light .slide-content .slide-desc {
    color: #fff !important;
    text-shadow: 0 1px 10px rgba(0, 0, 0, 0.35) !important;
  }
  .hero-carousel .carousel-arrow {
    display: none;
  }
  .carousel-dots {
    bottom: 10px;
    gap: 6px;
  }
  .carousel-dots .dot {
    width: 6px;
    height: 6px;
  }
  .carousel-dots .dot.active {
    width: 18px;
    height: 6px;
  }
  /* 轮播区：iOS/微信 WKWebView 上 pan-y 常不把横滑交给 JS；narrow 用 none + JS 接管 */
  .hero-carousel,
  .home-sol-viewport,
  .home-cases-viewport {
    touch-action: none;
    -webkit-user-select: none;
    user-select: none;
  }
  .hero-carousel.is-swipe-dragging,
  .home-sol-viewport.is-dragging,
  .home-cases-viewport.is-swipe-dragging {
    touch-action: none;
  }
  .home-section { padding: 56px 16px 16px; }
  /* 首页各区块主标题 / 栏目标题：再小一号 */
  body.is-home .home-section-title,
  body.is-home .home-products-head .home-section-title,
  body.is-home .home-sol-section .home-section-title,
  body.is-home .home-news-section .home-section-title,
  body.is-home .home-cases-section .home-section-title,
  body.is-home .home-section-title .cnt,
  body.is-home h2.home-section-title {
    font-size: 16px !important;
    line-height: 1.35 !important;
  }
  body.is-home .home-section-lead,
  body.is-home .home-products-head .home-section-lead,
  body.is-home .home-sol-section .home-section-lead,
  body.is-home .home-news-section .home-section-lead,
  body.is-home .home-cases-section .home-section-lead {
    font-size: 12px !important;
    line-height: 1.45 !important;
  }
  body.is-home .home-products-section .pf-title-text,
  body.is-home .home-products-section h3.pf-title-text {
    font-size: 12px !important;
  }
  body.is-home .home-cta-strip h2 {
    font-size: 16px !important;
  }
  /* 产品中心：Banner 加高后板块下移；收紧区内边距 + 压矮卡片，保证「全部产品」落在首屏 */
  .home-products-section { padding: 24px 0 18px; }
  .home-products-head {
    margin-bottom: 12px;
    gap: 4px;
  }
  .home-products-head .home-section-title .bar {
    margin-bottom: 8px;
  }
  .home-products-head,
  .home-products-section .product-fold-wrap { padding-left: 16px; padding-right: 16px; }
  .product-fold,
  .product-fold--four { gap: 8px; }
  .pf-item,
  .pf-item.is-active,
  .product-fold--four .pf-item,
  .product-fold--four .pf-item.is-active,
  .product-fold--four .pf-item:not(.is-active) {
    aspect-ratio: auto;
    height: clamp(96px, 26vw, 118px);
    min-height: 96px;
  }
  /* pf-title size via type-v2 card role；字号在 ≤900 已压到 13px */
  .pf-item:not(.is-active) .pf-body,
  .pf-item.is-active .pf-body { padding: 8px 10px 10px; }
  .pf-item:not(.is-active) .pf-title,
  .pf-item.is-active .pf-title {
    -webkit-line-clamp: 2;
    line-clamp: 2;
    max-height: 2.6em;
  }
  .home-products-section .pf-title-text,
  .home-products-section h3.pf-title-text {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }
  .home-products-foot {
    margin-top: 12px;
    padding-bottom: 4px;
  }
  /* 矮屏手机：Banner 不低于产品中心 280，卡片再压一点保证按钮入首屏 */
  @media (max-height: 700px) {
    .hero-carousel {
      height: clamp(300px, 46vh, 360px);
      min-height: 300px;
    }
    .home-products-section { padding: 16px 0 12px; }
    .home-products-head { margin-bottom: 8px; }
    .pf-item,
    .pf-item.is-active,
    .product-fold--four .pf-item,
    .product-fold--four .pf-item.is-active,
    .product-fold--four .pf-item:not(.is-active) {
      height: 90px;
      min-height: 90px;
    }
    .home-products-foot { margin-top: 10px; }
  }
  .home-sol-section { padding: 64px 0 48px; min-height: 0; }
  .home-sol-section .home-section-head { padding: 0 16px; margin-bottom: 20px; }
  .home-sol-section .home-section-more { right: 16px; }
  /* 移动端：去掉左右箭头，改用底部指示点（避免盖住卡片） */
  .home-sol-carousel {
    --home-sol-nav-size: 0px;
    --home-sol-nav-gap: 0px;
    --home-sol-gutter: 16px;
    padding: 0 var(--home-sol-gutter);
  }
  .home-sol-nav {
    display: none !important;
  }
  .home-sol-viewport {
    --home-sol-hover-pad-y: 8px;
    --home-sol-hover-pad-x: 0px;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    min-height: 300px;
  }
  /* 须与 home-v2.js currentGap()=0 一致；否则 translate 按 0 算、布局仍 12px → 左裁右露邻卡 */
  .home-sol-track { gap: 0 !important; }
  .home-sol-card {
    aspect-ratio: 16 / 10;
    min-height: 300px;
    max-height: 380px;
  }
  /* 触屏无 hover：禁位移/红边/图放大；关掉 transition 避免点按蒙版文字闪一下 */
  .home-sol-card,
  .home-sol-card:hover,
  .home-sol-card:focus,
  .home-sol-card:focus-visible,
  .home-sol-card:active {
    transform: none !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05) !important;
    border-color: rgba(15, 23, 42, 0.08) !important;
    outline: none !important;
    transition: none !important;
    -webkit-tap-highlight-color: transparent;
  }
  .home-sol-card:hover .home-sol-thumb img,
  .home-sol-card:focus .home-sol-thumb img,
  .home-sol-card:focus-visible .home-sol-thumb img,
  .home-sol-card:active .home-sol-thumb img,
  .home-sol-thumb img {
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
  .home-sol-shade,
  .home-sol-body,
  .home-sol-more,
  .home-sol-card-t,
  .home-sol-card-d {
    transition: none !important;
  }
  .home-sol-thumb {
    inset: 0;
    height: auto;
    border-radius: inherit;
    background: #e8eef5;
  }
  .home-sol-thumb img {
    -webkit-mask-image: none;
    mask-image: none;
    filter: none;
    opacity: 1;
  }
  .home-sol-shade {
    background: linear-gradient(
      to top,
      rgba(15, 23, 42, 0.55) 0%,
      rgba(15, 23, 42, 0.48) 35%,
      rgba(15, 23, 42, 0.42) 55%,
      rgba(15, 23, 42, 0.35) 100%
    );
  }
  .home-sol-body {
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 20px 16px;
    gap: 8px;
  }
  .home-sol-section .home-sol-card-t {
    color: #fff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.35);
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .home-sol-section .home-sol-card-d {
    color: rgba(255, 255, 255, 0.9) !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .home-sol-more {
    position: relative;
    left: auto;
    top: auto;
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
    align-self: center;
    margin-top: 4px;
    padding: 7px 16px;
    font-size: 13px;
  }
  .home-sol-dots {
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 14px;
  }
  /* 新闻资讯：移动端左图右文列表（去掉标签；不影响 PC） */
  .home-news-section { padding: 36px 0 20px; }
  .home-news-inner { padding: 0 16px; }
  .home-news-section .home-section-head { margin-bottom: 12px; }
  .home-news-wrap {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-items: stretch;
  }
  .home-news-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    align-self: stretch !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
  }
  /* 精选 + 前 3 条 = 共 4 卡，缩短板块高度 */
  .home-news-grid .home-news-card:nth-child(n + 4) {
    display: none !important;
  }
  .news-feature,
  .home-news-card {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 10px;
    align-items: stretch;
    align-self: stretch !important;
    padding: 10px 0;
    border: none;
    border-bottom: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    overflow: visible;
    height: auto;
    max-height: none;
    aspect-ratio: auto;
    max-width: none !important;
    width: 100% !important;
    min-height: 0;
    justify-self: stretch;
  }
  .news-feature:hover,
  .home-news-card:hover {
    transform: none;
    box-shadow: none;
    border-color: rgba(15, 23, 42, 0.08);
  }
  .home-news-card:nth-child(3) { border-bottom: none; }
  .news-feature .feature-img,
  .home-news-card .news-card-img {
    display: block;
    order: 0;
    width: 104px;
    min-width: 104px;
    max-width: 104px;
    flex: none;
    aspect-ratio: 16 / 10;
    border-radius: 4px;
    overflow: hidden;
    background: #eef1f5;
    align-self: center;
  }
  .news-feature .feature-img img,
  .home-news-card .news-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
  }
  .news-feature .feature-img::after { display: none; }
  .news-feature .feature-body,
  .home-news-card .news-card-body {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: stretch;
    order: 0;
    gap: 6px;
    margin: 0;
    margin-top: 0;
    padding: 1px 0;
    min-width: 0;
    min-height: 100%;
    height: auto;
    background: transparent;
  }
  .home-news-card .tag,
  .news-feature .feature-body .tag {
    display: none !important;
  }
  .home-news-section .home-news-card h3,
  .home-news-section .home-news-card h4,
  .home-news-section .feature-body h3,
  .home-news-section .feature-body h4 {
    line-height: 1.4 !important;
    letter-spacing: 0;
    margin: 0;
    height: calc(2 * 1.4em);
    max-height: calc(2 * 1.4em);
    display: -webkit-box !important;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .home-news-card .date,
  .news-feature .feature-body .date {
    margin-top: auto;
    white-space: nowrap;
    align-self: flex-start;
  }
  .home-news-section .home-news-card .summary,
  .home-news-section .feature-body .summary {
    display: none !important;
  }
  .home-news-footer {
    text-align: center;
    margin-top: 14px;
  }
  .home-cases-section { padding: 40px 0 0; }
  .home-cases-section .home-section-head { padding-left: 16px; padding-right: 16px; margin-bottom: 20px; }
  .home-cases-tabs,
  .home-cases-feature { padding-left: 16px; padding-right: 16px; }
  .home-cases-headband {
    min-width: 0;
    max-width: 100%;
  }
  .home-cases-stage {
    min-width: 0;
    max-width: 100%;
    overflow-x: hidden;
  }
  .home-cases-tabs-rail {
    min-width: 0 !important;
    max-width: 100%;
    width: 100%;
    overflow: visible;
  }
  /* 外层只负责裁切滚动；禁止 center，否则左侧 Tab（如 AI甄选）被裁且 scrollLeft 到不了 */
  .home-cases-tabs {
    display: block !important;
    flex: 1 1 auto !important;
    flex-wrap: nowrap;
    justify-content: unset !important;
    align-items: stretch;
    gap: 0;
    margin-bottom: 0;
    box-sizing: border-box;
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
    touch-action: pan-x;
    scrollbar-width: none;
    scroll-padding-inline: 12px;
    text-align: left !important;
  }
  .home-cases-tabs-inner {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch;
    width: max-content !important;
    min-width: 100%;
    max-width: none !important;
    gap: 0;
    margin: 0;
    vertical-align: top;
  }
  .home-cases-tabs::-webkit-scrollbar { display: none; }
  .home-cases-tab {
    flex: 0 0 auto !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
    min-width: max-content !important;
    max-width: none !important;
    width: auto !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    padding-left: 4px;
    padding-right: 4px;
    min-height: 36px;
    touch-action: pan-x pan-y;
  }
  /* 移动端工程案例：上图下文紧凑卡（方案1），不影响 PC 左右分栏 */
  .home-cases-feature-card {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  .home-cases-feature-media {
    order: -1;
    width: 100%;
    height: 168px !important;
    min-height: 168px !important;
    max-height: 168px !important;
    flex: 0 0 168px;
  }
  .home-cases-feature-body {
    padding: 14px 16px 16px !important;
    display: grid;
    align-content: start;
    flex: 1 1 auto;
    height: auto;
  }
  .home-cases-feature-body h3 {
    margin: 0 0 6px !important;
    letter-spacing: 0.02em;
  }
  .home-cases-feature-date {
    margin: 0 0 8px !important;
    font-size: 12px;
  }
  .home-cases-feature-body p {
    margin: 0 0 10px !important;
    line-height: 1.55;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    flex: 0 1 auto;
  }
  .home-cases-feature-link {
    margin-top: 0;
  }
  .home-cases-dots {
    margin-top: 12px;
  }
  .home-cases-nav { display: none; }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-card {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
  }
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body {
    padding: 14px 16px 16px !important;
  }
  /* thumb-name caption via type-v2 */
  .home-section-head { flex-direction: column; gap: 10px; }

  html.has-home-fullpage,
  body.is-home.has-home-fullpage {
    height: auto !important;
    max-height: none !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
  }
  body.is-home.has-home-fullpage .home-panel {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }
  body.is-home.has-home-fullpage .hero-carousel {
    height: clamp(250px, 36vh, 300px) !important;
    min-height: 250px !important;
    max-height: 300px !important;
    overflow: hidden !important;
  }
  body.is-home.has-home-fullpage .hero-carousel .slide-content {
    justify-content: flex-start !important;
    padding: 68px 16px 36px !important;
  }
}

/* notebook width only: 5 series/col (no max-height; PC keeps 10) */
@media (min-width: 1024px) and (max-width: 1440px) {
  body.is-home.has-home-fullpage .pf-item.is-active .pf-pills,
  body.is-home.has-home-fullpage .pf-item.is-active .pf-pills.pf-pills--cols,
  body.is-home .pf-item.is-active .pf-pills,
  body.is-home .pf-item.is-active .pf-pills.pf-pills--cols {
    display: grid !important;
    grid-auto-flow: column !important;
    grid-template-rows: repeat(5, auto) !important;
    grid-auto-columns: max-content !important;
    justify-content: start !important;
    justify-items: start !important;
    align-content: start !important;
    width: max-content !important;
    max-width: 100% !important;
    column-gap: 24px !important;
    row-gap: 8px !important;
  }
}

/* notebook width: industry solution cards min-height 300px */
@media (min-width: 1024px) and (max-width: 1440px) {
  body.is-home .home-sol-card,
  body.is-home.has-home-fullpage .home-sol-card {
    min-height: 300px !important;
    max-height: none !important;
    height: auto !important;
  }
}


/* notebook: engineering case cards min-height 188px */
@media (min-width: 1024px) and (max-width: 1440px) {
  body.is-home .home-cases-feature-card,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-card {
    height: max(188px, var(--home-case-feature-h, 188px)) !important;
    min-height: 188px !important;
    max-height: max(188px, var(--home-case-feature-h, 188px)) !important;
  }
}


/* notebook: cases intro 3-line clamp; kill webkit 4th-line ghost */
@media (min-width: 1024px) and (max-width: 1440px) {
  body.is-home .home-cases-feature-body p,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body p {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.7 !important;
    max-height: calc(1.7em * 3) !important;
    flex: 0 0 auto !important;
    min-height: 0 !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 1px), transparent 100%) !important;
    mask-image: linear-gradient(to bottom, #000 0%, #000 calc(100% - 1px), transparent 100%) !important;
    cursor: help;
  }
}

/* notebook news: left height == right 2 rows (134*2+12=280); footer visible; max-width 1600 for ~1485 laptops */
@media (min-width: 1024px) and (max-width: 1600px) {
  body.is-home {
    --home-news-card-h: 134px;
    --home-news-grid-gap: 12px;
    --home-news-h: 280px; /* 134 + 12 + 134 — avoid calc(var*2) not applying */
  }
  body.is-home.has-home-fullpage {
    --home-news-h: 280px;
  }
  body.is-home .home-news-section,
  body.is-home.has-home-fullpage .home-news-section,
  body.is-home .home-news-section.home-panel,
  body.is-home.has-home-fullpage .home-news-section.home-panel {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  body.is-home .home-news-inner,
  body.is-home.has-home-fullpage .home-news-inner {
    display: flex !important;
    flex-direction: column !important;
    flex: 0 1 auto !important;
    min-height: 0 !important;
    max-height: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  body.is-home .home-news-wrap,
  body.is-home.has-home-fullpage .home-news-wrap {
    display: grid !important;
    grid-template-columns: min(340px, 30vw) minmax(0, 1fr) !important;
    grid-template-rows: 280px !important;
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
    gap: 16px !important;
    align-items: stretch !important;
    flex: 0 0 auto !important;
    box-sizing: border-box !important;
  }
  body.is-home .home-news-grid,
  body.is-home.has-home-fullpage .home-news-grid {
    display: grid !important;
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
    gap: 12px !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-rows: 134px 134px !important;
    align-self: stretch !important;
    align-content: start !important;
    box-sizing: border-box !important;
  }
  body.is-home .home-news-card,
  body.is-home.has-home-fullpage .home-news-card {
    height: 134px !important;
    min-height: 134px !important;
    max-height: 134px !important;
    box-sizing: border-box !important;
  }
  body.is-home .news-feature,
  body.is-home.has-home-fullpage .news-feature {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: none !important;
    height: 280px !important;
    min-height: 280px !important;
    max-height: 280px !important;
    aspect-ratio: auto !important;
    align-self: stretch !important;
    justify-self: stretch !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  body.is-home .news-feature .feature-img,
  body.is-home.has-home-fullpage .news-feature .feature-img {
    flex: 1 1 auto !important;
    min-height: 0 !important;
  }
  body.is-home .news-feature .feature-img img,
  body.is-home.has-home-fullpage .news-feature .feature-img img {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
  }
  body.is-home .home-news-footer,
  body.is-home.has-home-fullpage .home-news-footer {
    position: relative !important;
    z-index: 5 !important;
    flex: 0 0 auto !important;
    margin-top: 12px !important;
    overflow: visible !important;
  }
  body.is-home .home-news-footer .view-all {
    position: relative !important;
    z-index: 6 !important;
    display: inline-flex !important;
  }
}

/* notebook: homepage sol card CTA smaller (1099x522 L3 included) */
@media (min-width: 1024px) and (max-width: 1600px) {
  body.is-home .home-sol-more,
  body.is-home.has-home-fullpage .home-sol-more {
    padding: 5px 12px !important;
    font-size: 13px !important;
    line-height: 1.3 !important;
    border-radius: 3px !important;
    min-height: 0 !important;
  }
}

/* PC 工程案例：文案区撑满卡片高度并整块垂直居中（压过中间层遗留 flex 顶对齐） */
@media (min-width: 901px) {
  body.is-home .home-cases-feature-card,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-card,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-feature-card {
    grid-template-rows: minmax(0, 1fr) !important;
    align-items: stretch !important;
  }
  body.is-home .home-cases-feature-body,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-feature-body {
    display: grid !important;
    align-content: center !important;
    align-content: safe center !important;
    align-items: start !important;
    justify-items: start !important;
    height: 100% !important;
    align-self: stretch !important;
    box-sizing: border-box !important;
  }
  body.is-home .home-cases-feature-link,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-link {
    margin-top: 0 !important;
  }
}


/* 面板模式：行业 Tab 等量占宽（PC / 笔记本；折叠屏由 fold-adapt 改为横滑+滑钮） */
body.is-home.has-home-fullpage .home-cases-tabs-rail {
  width: 100%;
  max-width: var(--site-maxw);
  margin-left: auto;
  margin-right: auto;
}
body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs-nav {
  display: none !important;
}
body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs-nav[hidden] {
  display: none !important;
}
body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs,
body.is-home.has-home-fullpage .home-cases-panel .home-cases-tabs,
body.is-home.has-home-fullpage #homeCasesPanel .home-cases-tabs {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  flex: 1 1 auto !important;
  overflow: hidden !important;
  text-align: left !important;
  justify-content: unset !important;
  gap: 0 !important;
}
body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs-inner,
body.is-home.has-home-fullpage .home-cases-panel .home-cases-tabs-inner,
body.is-home.has-home-fullpage #homeCasesPanel .home-cases-tabs-inner {
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  gap: 0 !important;
  box-sizing: border-box !important;
}
body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tab,
body.is-home.has-home-fullpage .home-cases-panel .home-cases-tab,
body.is-home.has-home-fullpage #homeCasesPanel .home-cases-tab {
  flex: 1 1 0 !important;
  flex-grow: 1 !important;
  flex-shrink: 1 !important;
  flex-basis: 0 !important;
  min-width: 0 !important;
  max-width: none !important;
  width: auto !important;
  padding-left: 2px !important;
  padding-right: 2px !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* 窄屏：分屏「等分 Tab + overflow:hidden」会裁掉 AI甄选；改为真实横滑 */
@media (max-width: 900px) {
  body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs-nav {
    display: block !important;
  }
  body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs-nav[hidden] {
    display: none !important;
  }
  body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-tabs,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-tabs {
    display: block !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    text-align: left !important;
    width: auto !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }
  body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tabs-inner,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-tabs-inner,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-tabs-inner {
    display: inline-flex !important;
    justify-content: flex-start !important;
    width: max-content !important;
    min-width: 100% !important;
    max-width: none !important;
  }
  body.is-home.has-home-fullpage .home-cases-tabs-rail .home-cases-tab,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-tab,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-tab {
    flex: 0 0 auto !important;
    flex-grow: 0 !important;
    flex-shrink: 0 !important;
    min-width: max-content !important;
    overflow: visible !important;
    text-overflow: clip !important;
    padding-left: 4px !important;
    padding-right: 4px !important;
  }
}

/* ===== 移动端 / 面板窄屏：工程案例「查看详情」不挡文案；方案卡仅指示点 ===== */
@media (max-width: 900px) {
  body.is-home .home-cases-feature-card,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-card,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-feature-card {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
  }
  body.is-home .home-cases-feature-body,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-feature-body {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    align-content: flex-start !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    gap: 8px !important;
    padding: 14px 16px 16px !important;
    position: relative !important;
  }
  body.is-home .home-cases-feature-body h3,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body h3 {
    margin: 0 !important;
    flex: 0 0 auto !important;
  }
  body.is-home .home-cases-feature-date,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-date {
    margin: 0 !important;
    flex: 0 0 auto !important;
  }
  body.is-home .home-cases-feature-body p,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-body p,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-feature-body p {
    position: static !important;
    margin: 0 !important;
    flex: 0 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    -webkit-line-clamp: 3 !important;
    line-clamp: 3 !important;
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  body.is-home .home-cases-feature-link,
  body.is-home.has-home-fullpage .home-cases-feature-link,
  body.is-home.has-home-fullpage .home-cases-panel .home-cases-feature-link,
  body.is-home.has-home-fullpage #homeCasesPanel .home-cases-feature-link {
    position: static !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    top: auto !important;
    margin: 4px 0 0 !important;
    flex: 0 0 auto !important;
    align-self: flex-start !important;
    z-index: auto !important;
    transform: none !important;
  }

  body.is-home .home-sol-nav,
  body.is-home.has-home-fullpage .home-sol-nav {
    display: none !important;
  }
  body.is-home .home-sol-dots,
  body.is-home.has-home-fullpage .home-sol-dots {
    display: flex !important;
    justify-content: center !important;
    margin-top: 14px !important;
  }
}
