/* 首页专属样式：7 个 sections；通用件（页头/页脚/右悬浮）已抽 common.css */

/* 首页图层区块统一使用阿里普惠体；仅覆盖 hx-* 区块，不改共享页头/页脚及全局 body */
.hx-carousel,
.hx-notice,
.hx-about,
.hx-products,
.hx-strength,
.hx-customers,
.hx-news {
  font-family: 'AlibabaPuHuiTi-3', Inter, -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

/* ============ 轮播 hx-carousel（1920 定宽居中裁边 v3：以 HomeCarousel.vue 原案为准） ============ */
/* v2 流式 stage 回退原因：slide inset:0 全幅＋背景 cover center 对称裁，字却锚在流式 stage 固定 left，
   两种收缩基准不一致，窄屏字景脱钩（1400 下漂移 260px）；v3 字景锁死同一 1920 盒，跟旧站一致。
   坐标（组宽 1920，组相对即盒内坐标，无需减 360）：
   组38标题(246,239)/副标题(246,339)/按钮(249,396)，组412标题(242,239)/副标题(241,339)照原样用；
   品牌 slide 盒内居中（717.5+484/2≈960），left:50%+translateX(-50%)，随盒一起对称裁，零脱钩；
   圆点在 section 内 50% 居中（= 盒中心），与背景相对关系恒定。
   裁量验算（每侧 (1920−W)/2）：1600 零裁；1400 裁 260/侧，标题剩 −14（3.5%）、live −18（4.3%）、按钮 −11（5%文案无损）；
   1200 横滚布局视口裁 360/侧，标题裁 114（28%，略超 1/4，已上报，旧站同行为，字景相对位置仍一致）。
   固定高度改 min-height；层叠靠 DOM 顺序，不加 z-index；不加 media；
   hooks（#homeCarousel/.hx-carousel__slide/__dot/is-active/data-link/data-dot）不动，模板/home.js 不动 */
.hx-carousel {
  position: relative;
  width: 100%;
  min-height: 632px;
  overflow: hidden;
}

/* slides 全幅铺满，无圆角；0.6s 淡入淡出 */
.hx-carousel__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.6s ease, visibility 0s linear 0.6s;
  pointer-events: none;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

.hx-carousel__slide.is-active {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.6s ease, visibility 0s;
  pointer-events: auto;
  cursor: pointer;
}

/* 1920 定宽坐标盒：left:50%+translateX(-50%) 居中，section overflow:hidden 对称裁边（跟旧站轮播一致）；
   字与背景锁死在同一 1920 盒：背景 cover center 对称中心 = slide 中心 = 盒中心（居中后重合），
   任何宽度下字景相对位置与 1920 像素级一致；cashier/live 固定 left 是盒内坐标，不动 */
.hx-carousel__stage {
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  width: 1920px;
  max-width: none;
  min-height: 632px;
  margin: 0;
}

/* 标题基类：56px/68 行，左对齐不换行；位置颜色按主题 */
.hx-carousel__title {
  position: absolute;
  margin: 0;
  font-size: 56px;
  line-height: 68px;
  font-weight: 400;
  text-align: left;
  white-space: nowrap;
}

/* 组38：标题(246,239,405×68) #FFF */
.hx-carousel__slide--cashier .hx-carousel__title {
  left: 246px;
  top: 239px;
  width: 405px;
  min-height: 68px;
  color: #fff;
}

/* 组412：标题(242,239,415×68) #153B78 */
.hx-carousel__slide--live .hx-carousel__title {
  left: 242px;
  top: 239px;
  width: 415px;
  min-height: 68px;
  color: #153b78;
}

/* 品牌 slide：标题(717.5,242,484×63) 52px #FFF 居中（717.5+484/2≈960，即 1920 中心，改 50%+translate 保窄屏仍居中） */
.hx-carousel__slide--brand .hx-carousel__title {
  left: 50%;
  top: 242px;
  transform: translateX(-50%);
  width: 484px;
  min-height: 63px;
  font-size: 52px;
  line-height: 63px;
  letter-spacing: 0.0385em;
  text-align: center;
  color: #fff;
}

/* 副标题基类：25px/30 行，左对齐不换行 */
.hx-carousel__sub {
  position: absolute;
  margin: 0;
  font-size: 25px;
  line-height: 30px;
  font-weight: 400;
  text-align: left;
  white-space: nowrap;
}

/* 组38：副标题(246,339,350×30) #FFF */
.hx-carousel__slide--cashier .hx-carousel__sub {
  left: 246px;
  top: 339px;
  width: 350px;
  min-height: 30px;
  color: #fff;
}

/* 组412：副标题(241,339,379×30) #153B78 */
.hx-carousel__slide--live .hx-carousel__sub {
  left: 241px;
  top: 339px;
  width: 379px;
  min-height: 30px;
  color: #153b78;
}

/* 品牌 slide：副标题(683.5,327,553×27) 22px #FFF .9 居中（683.5+553/2≈960，改 50%+translate） */
.hx-carousel__slide--brand .hx-carousel__sub {
  left: 50%;
  top: 327px;
  transform: translateX(-50%);
  width: 553px;
  min-height: 27px;
  font-size: 22px;
  line-height: 27px;
  text-align: center;
  color: #fff;
  opacity: 0.9;
}

/* 按钮：220×52 白底 r26；纯视觉，整张 slide 可点（高改 min-height） */
.hx-carousel__btn {
  position: absolute;
  left: 249px;
  top: 396px;
  width: 220px;
  min-height: 52px;
  border-radius: 26px;
  background: #fff;
  display: block;
}

/* 品牌 slide：按钮(850,380)（850+220/2=960 居中，改 50%+translate） */
.hx-carousel__slide--brand .hx-carousel__btn {
  left: 50%;
  transform: translateX(-50%);
  top: 380px;
}

/* 按钮文案：68×21 17px #2563C8 居中（(220-68)/2，(52-21)/2，高改 min-height） */
.hx-carousel__btn-text {
  position: absolute;
  left: 76px;
  top: 15.5px;
  width: 68px;
  min-height: 21px;
  font-size: 17px;
  line-height: 21px;
  font-weight: 400;
  text-align: center;
  color: #2563c8;
  white-space: nowrap;
}

/* 圆点：底部居中（50%+translate，窄屏仍居中），未激活 8px 半透明白圆，激活 24px 白胶囊；DOM 在 slides 之后自然盖住，不加 z-index */
.hx-carousel__dots {
  position: absolute;
  left: 50%;
  bottom: 16px;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
}

.hx-carousel__dot {
  width: 8px;
  height: 8px;
  border: 0;
  border-radius: 999px;
  padding: 0;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.55);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.25);
  transition: width 0.3s ease, background 0.3s ease;
}

.hx-carousel__dot.is-active {
  width: 24px;
  background: #fff;
}

/* ============ 公告 hx-notice（去图层化 v2：以 HomeNotice.vue 原案为准） ============ */
/* 坐标换算（页面 = Figma x − 158；内容列相对 = 页面 − 360）：
   组40 Figma(158,632,1920×64)全幅条，组相对即页面相对；三段文本改内容列相对
   0/498/937（原 360/858/1297 各减 360，宽 343/283/268 不变），由新增 __content 承接；
   stage 删 1920 定宽改 width:100%+max-width:1920px 居中；固定高度改 min-height；
   左蓝条锚 stage 左缘，用 top:0+bottom:0 拉满（64 下与原 4×64 一致）；
   无 z-index（靠 DOM 顺序）；不加任何 media（<=1200 靠 body 横滚） */
.hx-notice {
  width: 100%;
  min-height: 64px;
  background: #deeaff;
}

.hx-notice__stage {
  position: relative;
  width: 100%;
  max-width: 1920px;
  min-height: 64px;
  margin: 0 auto;
}

/* 左蓝条：宽 4，拉满 stage 高（原 0,0 4×64，64 下视觉一致） */
.hx-notice__stage::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: #2563c8;
}

/* 内容列：宽 1200 居中（替代原 1920 stage 坐标系，三段文本改内容列相对值） */
.hx-notice__content {
  position: relative;
  width: 100%;
  max-width: 1200px;
  min-height: 64px;
  margin: 0 auto;
}

/* 公告文本：y25 h18（高改 min-height），14px #333333；动态标题长度不一，加 ellipsis 还原原案字面 ... 观感 */
.hx-notice__item {
  position: absolute;
  top: 25px;
  min-height: 18px;
  margin: 0;
  font-size: 14px;
  line-height: 18px;
  font-weight: 400;
  color: #333;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* 公告跳转：整条可点进 /news/:id，颜色继承，hover 变蓝 */
.hx-notice__link {
  color: inherit;
  text-decoration: none;
}

.hx-notice__item:hover .hx-notice__link {
  color: #1890ff;
}

/* ============ 介绍 hx-about（语义化 v2：底色上 section；hero 双层原图；正文嵌卡） ============ */
/* 坐标换算（页面相对 = Figma x - 158；内容列相对 = 页面相对 - 360）：
   内容列：Figma x518 宽1200 → 页面 x360 宽1200 → 内容列相对 0，max-width:1200px 居中；
   白卡：Figma x518 宽945 → 页面 x360 → 内容列相对 left:0；
   配图：Figma x948 宽770 → 页面 x790 → 内容列相对 left:430（430+770=1200，图右=内容列右）；
   hero 全幅：原 left:-158px宽2297px 的外扩在 1920 视口下裁掉后可见区等同 stage 100%，故改 width:100% left:0（cover 居中视觉一致）；
   层叠：photo 在 DOM 先、card 在后，card 盖住 photo 左部 515px（945-430）是原本设计，不加 z-index；标题组在 hero 上，z-index:2 保留 */
.hx-about {
  width: 100%;
  min-height: 751px;
  background: #fff;
  scroll-margin-top: 88px;
}

.hx-about__stage {
  position: relative;
  width: 100%;
  max-width: 1920px;
  min-height: 751px;
  margin: 0 auto;
  overflow: hidden;
}

/* 组外标题：居中（50%+translate，窄屏仍居中），相对模块 y67，34px 白 */
.hx-about__title {
  position: absolute;
  left: 50%;
  top: 67px;
  transform: translateX(-50%);
  margin: 0;
  font-size: 34px;
  font-weight: 400;
  line-height: 41px;
  text-align: center;
  color: #fff;
  white-space: normal;
  z-index: 2;
}

/* 组外副标题：居中，相对模块 y121，17px 白 */
.hx-about__subtitle {
  position: absolute;
  left: 50%;
  top: 121px;
  transform: translateX(-50%);
  margin: 0;
  font-size: 17px;
  line-height: 21px;
  font-weight: 400;
  text-align: center;
  color: #fff;
  white-space: normal;
  z-index: 2;
}

/* hero 双层原图（对标 Nuxt HomeAbout：__bgimg 城市实拍 + __overlay 浅蓝波浪蒙版，波浪在蒙版图自身）；
   容器 100%×513，宽改 100%（原 2297px 外扩裁剪后可见一致） */
.hx-about__hero {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 513px;
  overflow: hidden;
}

.hx-about__hero-bg {
  position: absolute;
  inset: 0;
  background: url('/images/home/about-mask.jpg') center / cover no-repeat;
}

.hx-about__hero-mask {
  position: absolute;
  inset: 0;
  opacity: 0.8;
  background: url('/images/home/about-bg-custom.jpg') center / cover no-repeat;
}

/* 内容列：宽 1200 居中（替代原 group 的 -158/2297 坐标系，卡片/配图改为内容列相对值） */
.hx-about__content {
  position: absolute;
  left: 50%;
  top: 0;
  transform: translateX(-50%);
  width: 100%;
  max-width: 1200px;
  min-height: 751px;
}

/* 白卡：Figma 518,277 945×378 → 内容列相对 left:0 top:277（高改 min-height 防换行撑破） */
.hx-about__card {
  position: absolute;
  left: 0;
  top: 277px;
  width: 945px;
  min-height: 378px;
  box-sizing: border-box;
  padding: 89px 54px 89px 64px;
  background: rgba(255, 255, 255, 0.92);
}

/* 正文嵌卡：20px/50px #000，内容宽 827（945-64-54）自然撑满；
   pre-line 保留原因：原文案靠源码换行分 4 行（50px 行高 ×4 + 上下 padding 89×2 = 378），去不掉 */
.hx-about__text {
  margin: 0;
  font-size: 20px;
  line-height: 50px;
  font-weight: 400;
  color: #000;
  white-space: pre-line;
}

/* 公司建筑照：Figma 948,208 770×511 r20 → 内容列相对 left:430 top:208（装饰层，保留 absolute；DOM 在卡前，卡盖住其左部 515px） */
.hx-about__photo-side {
  position: absolute;
  left: 430px;
  top: 208px;
  width: 770px;
  height: 511px;
  border-radius: 20px;
  overflow: hidden;
  background: url('/images/home/about-3-878.jpg') center / cover no-repeat;
}

/* 旧站策略：>1200 白边先缩、内容 1200 居中；<=1200 无断点，靠 body{min-width:1200px} 横滚保 1:1 */

/* ============ 产品 hx-products（流式 v3 方案B：以 HomeProducts.vue 原案坐标为准） ============ */
/* v2 病根：content(absolute)里全 absolute，模块高全靠 min-height:2806 硬撑；cases top:1951 写死，
   筛选剩 4 张时空 800px 白洞。v3 文档流自上而下：标题→副标题→筛选条→横幅→卡片区 grid→cases 自然跟随。
   高度账：内容实体 2707＋顶 35＋底 64 ＝ 2806 ✓满员 1:1（99 系上下合计 35+64，非全给 bottom）；
   bg-hero/mask 保留 top:1724（bottom:0 ⟺ top:1999，差 275px 错位）；模块/stage 保留 min-height:2806 保底；
   筛选后内容变矮，cases 紧跟 grid（margin-top:63），stage 靠 min-height 保底，无白洞。
   层叠靠 DOM 顺序，不加 z-index；不加任何 media（<=1200 靠 body 横滚） */
.hx-products {
  position: relative;
  width: 100%;
  min-height: 2806px;
  margin: 0 auto;
  font-family: 'AlibabaPuHuiTi-3', Inter, -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif;
}

/* 全幅 stage：100%+max-width:1920px 居中（bg 绝对层定位祖先，min-height 保底，JS 按内容实高覆盖）；
   overflow:hidden clamp 绝对背景，防止筛选后极端高度下背景溢出压到下一模块 */
.hx-products__stage {
  position: relative;
  width: 100%;
  max-width: 1920px;
  min-height: 2806px;
  margin: 0 auto;
  overflow: hidden;
}

/* a75b1f67 背景（选 B 盒定宽）：盒 1920×1724 cover 同图，1920 下与改前逐像素同；
   窄屏盒 1920 居中（left:50%+translate），靠 stage overflow:hidden 对称裁边，图案不缩小；
   top:0/height 不动，JS 不碰此层 */
.hx-products__bg-a75b1f67 {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 1920px;
  height: 1724px;
  background: url('/images/home/product-bg-a75b1f67.png') center / cover no-repeat;
}

/* 飞机背景（选 B 盒定宽）：图 4032×2688，1920 下 cover 实渲染 1920×1280，盒定宽后 cover 语义保留、
   1920 下逐像素一致；只改宽定位，top 由 home.js 按 H−1082 驱动（top 与 left 正交，基准 stage 不变），不动 JS */
.hx-products__bg-hero {
  position: absolute;
  top: 1724px;
  left: 50%;
  transform: translateX(-50%);
  width: 1920px;
  height: 807px;
  background: url('/images/home/product-bg-hero.jpg') center / cover no-repeat;
}

/* 飞机背景蓝色叠加：rgba(95,152,243,.4)，纯色层跟飞机层同宽（1920 居中），top 同由 JS 驱动 */
.hx-products__bg-hero-mask {
  position: absolute;
  top: 1724px;
  left: 50%;
  transform: translateX(-50%);
  width: 1920px;
  height: 807px;
  background: rgba(95, 152, 243, 0.4);
}

/* 内容列：正常流，宽 1200 居中，padding-top:35（原 top:35）＋padding-bottom:64（原底白边）；
   position:relative（无偏移无 z-index，不脱离文档流）：三背景是 absolute 定位层，static 内容会被盖住，
   relative 把内容抬到定位层，靠 DOM 顺序（背景先、内容后）压住背景 */
.hx-products__content {
  position: relative;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 35px 0 64px;
}

/* 标题：流式居中（原中心 601≈600），34px #1A2332 */
.hx-products__title {
  margin: 0;
  font-size: 34px;
  line-height: 41px;
  font-weight: 400;
  color: #1a2332;
  text-align: center;
  white-space: nowrap;
}

/* 副标题：流式居中，margin-top:13（54−41），17px #888888 */
.hx-products__subtitle {
  margin: 13px 0 0;
  font-size: 17px;
  line-height: 21px;
  font-weight: 400;
  color: #888888;
  text-align: center;
  white-space: nowrap;
}

/* 筛选条：flex 横排，margin-top:66（141−54−21），高 74，垂直居中即原 top:20/19/28 */
.hx-products__filter {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  height: 74px;
  margin: 66px 0 0;
  padding: 0 42px;
  box-sizing: border-box;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}

.hx-products__filter-label {
  font-size: 14px;
  line-height: 17px;
  font-weight: 400;
  color: #333333;
  white-space: nowrap;
}

/* 按用途组推右齐（原右缘 1155.92＋右 pad 42，auto margin 恰好右齐） */
.hx-products__filter-label--use {
  margin-left: auto;
}

.hx-products__pill {
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 17px;
  background: #f5f5f5;
  font-size: 14px;
  line-height: 34px;
  font-weight: 400;
  color: #666666;
  text-align: center;
  cursor: pointer;
  white-space: nowrap;
  font-family: inherit;
}

.hx-products__pill.is-active {
  background: #2563c8;
  color: #fff;
}

/* 横幅：流式块，margin-top:32（247−141−74），1200×458（内部 absolute 不动，需 relative 定位上下文） */
/* 横幅底图水印裁切：图 3488×1280，水印右下约 x3250+/y1180+；盒 1200×458 固定（body 横滚锁 1200，一次算死）。
   原 center/cover：scale=max(1200/3488,458/1280)=0.358，渲染 1248×458，可视 x67..3421 → 水印漏入。
   现手写 1395px 512px（scale 0.40，+11.8%）＋left center：可视 x0..1200/0.4=0..3000，
   右缘 3000＜3200（距水印 250px 余量），纵 center 裁后 y67..1213；左缘多露 0..67，主体（手机/骑手/建筑）保留；
   文案系 HTML 覆盖层（左 x56 起），只动背景，文字零影响 */
.hx-products__hero {
  position: relative;
  margin: 32px 0 0;
  width: 1200px;
  height: 458px;
  border-radius: 14px;
  overflow: hidden;
  background: url('/images/home/prod-banner-77968c.png') left center / cover no-repeat;
  background-size: 108% auto;
}

.hx-products__hero-title {
  position: absolute;
  left: 55.92px;
  top: 112px;
  width: 428px;
  height: 73px;
  margin: 0;
  font-size: 60px;
  line-height: 73px;
  font-weight: 400;
  color: #1a1a2e;
  white-space: nowrap;
}

.hx-products__hero-desc {
  position: absolute;
  left: 55.92px;
  top: 208px;
  width: 303px;
  height: 24px;
  margin: 0;
  font-size: 20px;
  line-height: 24px;
  font-weight: 400;
  color: #1890ff;
  white-space: nowrap;
}

.hx-products__hero-platform {
  position: absolute;
  left: 55.92px;
  top: 251px;
  width: 214px;
  height: 22px;
  margin: 0;
  font-size: 18px;
  line-height: 22px;
  font-weight: 400;
  color: #1a1a2e;
  white-space: nowrap;
}

.hx-products__hero-btn {
  position: absolute;
  left: 55.92px;
  top: 291px;
  width: 187px;
  height: 61px;
  border-radius: 32px;
  background: #fff;
  text-decoration: none;
  display: block;
}

.hx-products__hero-btn-text {
  position: absolute;
  left: 40px;
  top: 19px;
  width: 108px;
  height: 22px;
  font-size: 18px;
  line-height: 22px;
  font-weight: 400;
  color: #1890ff;
  text-align: center;
  white-space: nowrap;
}

/* 卡片区 grid：4 列×284px，列间距 21px（305−284），行间距 25px（1129−737−367），
   4×284+3×21=1199 居中；margin-top:32（737−247−458）；筛选 display:none 后自动重排，cases 紧跟 */
.hx-products__grid {
  display: grid;
  grid-template-columns: repeat(4, 284px);
  column-gap: 21px;
  row-gap: 25px;
  justify-content: center;
  margin: 32px 0 0;
}

.hx-products__card {
  position: relative;
  width: 284px;
  height: 367px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hx-products__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 24px rgba(37, 99, 200, 0.25);
}

.hx-products__card-icon {
  position: absolute;
  left: 114px;
  top: 48px;
  width: 56px;
  height: 56px;
  border-radius: 14px;
  background: rgba(37, 99, 200, .2);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hx-products__card-icon img {
  display: block;
  object-fit: contain;
}

.hx-products__card-title {
  position: absolute;
  top: 121px;
  height: 22px;
  font-size: 18px;
  line-height: 22px;
  font-weight: 400;
  color: #1a2332;
  white-space: nowrap;
}

.hx-products__card-desc {
  position: absolute;
  top: 178px;
  font-size: 14px;
  line-height: 20px;
  font-weight: 400;
  color: #888888;
  text-align: center;
  white-space: nowrap;
}

.hx-products__card-line {
  position: absolute;
  left: 53px;
  top: 161px;
  width: 178px;
  height: 1px;
  background: #2563c8;
}

.hx-products__card-support {
  position: absolute;
  left: 114px;
  top: 222px;
  height: 17px;
  font-size: 14px;
  line-height: 17px;
  font-weight: 400;
  color: #2563c8;
  white-space: nowrap;
}

.hx-products__card-tag {
  position: absolute;
  top: 257px;
  width: 46px;
  height: 24px;
  border-radius: 4px;
  background: #ebf3ff;
  font-size: 11px;
  line-height: 24px;
  font-weight: 400;
  color: #2563c8;
  text-align: center;
  white-space: nowrap;
}

.hx-products__card-btn {
  position: absolute;
  top: 297px;
  width: 110px;
  height: 38px;
  border-radius: 8px;
  font-size: 14px;
  line-height: 38px;
  font-weight: 400;
  text-align: center;
  cursor: pointer;
  font-family: inherit;
  white-space: nowrap;
  padding: 0;
}

.hx-products__card-btn--ghost {
  left: 25px;
  background: #fff;
  border: 1.5px solid #2563c8;
  color: #2563c8;
  box-sizing: border-box;
}

.hx-products__card-btn--solid {
  left: 149px;
  background: #2563c8;
  border: 1.5px solid #2563c8;
  color: #fff;
  box-sizing: border-box;
}

/* 案例卡容器：流式 flex，margin-top:63（1951−737−1151，紧跟卡区，无白洞），gap:11px（原缝 11/11） */
.hx-products__cases {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  margin: 63px 0 0;
}

.hx-cases__card {
  position: relative;
  background: #ffffff;
  border-radius: 14px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  overflow: hidden;
}

/* 中卡：450×756（DOM 顺序左/中/右即 flex 顺序，left 定位删除） */
.hx-cases__card--center {
  width: 450px;
  height: 756px;
}

/* 左卡：364×611，top:73 改 margin-top:73 */
.hx-cases__card--left {
  margin-top: 73px;
  width: 364px;
  height: 611px;
}

/* 右卡：364×611，同上 */
.hx-cases__card--right {
  margin-top: 73px;
  width: 364px;
  height: 611px;
}

/* 案例图水印裁切（包 div 真裁版）：图均为 2240×1888，水印右下约 x2050+/y1800+；
   病根修正：img scale(1.08) 后视觉 373.7 向下 spill 进正文区（body 顶 346/280），卡片 overflow:hidden
   只管卡外边，不管 img 框边——此前“卡 overflow 兜住”假设作废；现 imgbox 定尺寸＋overflow:hidden 真裁。
   可视窗口验算保持成立：中 y83..1677、侧 y82..1678，水印出局；origin 50% 0 以上缘为轴，头顶对齐不变。
   圆角从 img 搬到盒上（避免双圆角）；img 改 width/height:100%＋cover 填盒再整体 scale */
.hx-cases__imgbox {
  overflow: hidden;
  border-radius: 14px 14px 0 0;
}

.hx-cases__imgbox--center {
  width: 450px;
  height: 346px;
}

.hx-cases__imgbox--side {
  width: 364px;
  height: 280px;
}

.hx-cases__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.08);
  transform-origin: 50% 0;
}

.hx-cases__body {
  position: relative;
}

.hx-cases__body--center {
  height: 410px;
}

.hx-cases__body--side {
  height: 331px;
}

/* 标题 #2A25BF，Regular 400 */
.hx-cases__title {
  position: absolute;
  margin: 0;
  color: #2a25bf;
  font-weight: 400;
}

.hx-cases__title--center {
  top: 43px;
  left: 40px;
  width: 224px;
  height: 39px;
  font-size: 32px;
  line-height: 39px;
  white-space: nowrap;
}

.hx-cases__title--side {
  top: 35px;
  left: 32px;
  width: 74px;
  height: 30px;
  font-size: 25px;
  line-height: 30px;
  white-space: nowrap;
}

.hx-cases__title--robot {
  width: 175px;
}

.hx-cases__bar {
  position: absolute;
  background: #8699f8;
  border-radius: 12px;
}

.hx-cases__bar--center {
  top: 93px;
  left: 40px;
  width: 224px;
  height: 8px;
}

.hx-cases__bar--side {
  top: 76px;
  left: 32px;
  width: 73px;
  height: 6px;
}

.hx-cases__bar--robot {
  width: 175px;
}

.hx-cases__text {
  position: absolute;
  margin: 0;
  color: #666666;
  white-space: pre-line;
}

.hx-cases__text--center {
  top: 129px;
  left: 40px;
  width: 360px;
  height: 200px;
  font-size: 24px;
  line-height: 40px;
}

.hx-cases__text--side {
  top: 103px;
  left: 32px;
  width: 285px;
  height: 128px;
  font-size: 19px;
  line-height: 32px;
}

/* ============ 资质 hx-strength（去图层化 v2：以 HomeStrength.vue 原案为准） ============ */
/* 坐标换算（页面 = Figma x − 158；内容列相对 = 页面 − 360）：
   组206(@x158,1920×678)，组相对即页面相对；描边卡(360,36)→内容列(0,36) /
   中图(619,59)→(259,59) / 四宫格(1001,63)→(641,63，641+559=1200 格右齐内容列右）；
   中图压卡右缘 25px 是原案设计，DOM 顺序 card→hero→grid 保持覆盖，不加 z-index；
   stage 删 1920 定宽改 width:100%+max-width:1920px 居中，新增 __content（1200 居中）承接卡/图/格；
   固定高度改 min-height；不加任何 media（<=1200 靠 body 横滚） */
/* 实力底（选 A 尺寸锁死）：图 4032×2688，1920 下 cover 实渲染 1920×1280（scale 0.476），
   手写 1920px auto 即 1920×1280，position center 同，中央 678 显示区逐像素一致；
   窄屏背景 1920 定宽相对 section（W）center，超 border-box 部分不绘制 = 纯裁边，图案元素不缩小；
   不动模板（背景仍画 section 上） */
.hx-strength {
  width: 100%;
  min-height: 678px;
  background: url('/images/home/strength-bg.jpg') center / 1920px auto no-repeat;
}

.hx-strength__stage {
  position: relative;
  width: 100%;
  max-width: 1920px;
  min-height: 678px;
  margin: 0 auto;
}

/* 内容列：宽 1200 居中（替代原 1920 stage 坐标系，卡/图/格改内容列相对值） */
.hx-strength__content {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  width: 100%;
  max-width: 1200px;
  min-height: 678px;
}

/* 左侧描边卡：内容列相对(0,36) 284×606，10px 描边（高改 min-height） */
.hx-strength__card {
  position: absolute;
  left: 0;
  top: 36px;
  width: 284px;
  min-height: 606px;
  background: transparent;
  border: 10px solid #2563c8;
  border-radius: 14px;
  box-sizing: border-box;
}

/* 卡内竖条：x400 y236 10×64 */
.hx-strength__card-bar {
  position: absolute;
  left: 30px;
  top: 190px;
  width: 10px;
  height: 64px;
  background: #2563c8;
}

/* 「资质 / 与实力」40px/50px #000 */
.hx-strength__card-title {
  position: absolute;
  left: 64px;
  top: 182px;
  width: 120px;
  height: 100px;
  margin: 0;
  font-size: 40px;
  line-height: 50px;
  font-weight: 400;
  color: #000;
  white-space: pre-line;
}

/* 「十年深耕 / 值得信赖的合作伙伴」16px/24px #888 */
.hx-strength__card-desc {
  position: absolute;
  left: 30px;
  top: 365px;
  width: 144px;
  height: 48px;
  margin: 0;
  font-size: 16px;
  line-height: 24px;
  color: #888;
  white-space: pre-line;
}

/* 中图：内容列相对(259,59) 338×560 r14（压卡右缘 25px 是原案设计，DOM 在卡后自然盖住） */
.hx-strength__hero {
  position: absolute;
  left: 259px;
  top: 59px;
  width: 338px;
  height: 560px;
  border-radius: 14px;
  overflow: hidden;
  background: url('/images/home/hero-3-1017.jpg') center / cover no-repeat;
}

/* 右侧四宫格容器：内容列相对(641,63) 559×560，格间距15 */
.hx-strength__grid {
  position: absolute;
  left: 641px;
  top: 63px;
  width: 559px;
  height: 560px;
}

.hx-strength__cell {
  position: absolute;
  width: 272px;
  height: 272px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hx-strength__cell:hover {
  transform: translateY(-6px);
}

.hx-strength__cell--1 {
  left: 0;
  top: 0;
}

.hx-strength__cell--2 {
  left: 287px;
  top: 0;
}

.hx-strength__cell--3 {
  left: 0;
  top: 288px;
}

.hx-strength__cell--4 {
  left: 287px;
  top: 288px;
}

/* 格内上图：272×173，上圆角14 */
.hx-strength__cell-img {
  position: absolute;
  left: 0;
  top: 0;
  width: 272px;
  height: 173px;
  border-radius: 14px 14px 0 0;
  background: url('/images/home/strength-cell.jpg') center / cover no-repeat;
}

/* 格内下条：272×99，下圆角14，180deg 渐变 */
.hx-strength__cell-band {
  position: absolute;
  left: 0;
  top: 173px;
  width: 272px;
  height: 99px;
  border-radius: 0 0 14px 14px;
  background: linear-gradient(180deg, #266cde, #1d55af);
}

/* 图标：相对格精确坐标 */
.hx-strength__cell-icon {
  position: absolute;
  object-fit: contain;
  user-select: none;
}

/* 格内文字：20px/24px 白 */
.hx-strength__cell-text {
  position: absolute;
  top: 211px;
  height: 24px;
  margin: 0;
  font-size: 20px;
  line-height: 24px;
  color: #fff;
  text-align: center;
  white-space: nowrap;
}

.hx-strength__cell--1 .hx-strength__cell-text {
  left: 47px;
  width: 180px;
}

.hx-strength__cell--2 .hx-strength__cell-text {
  left: 77px;
  width: 120px;
}

.hx-strength__cell--3 .hx-strength__cell-text {
  left: 57px;
  width: 160px;
}

.hx-strength__cell--4 .hx-strength__cell-text {
  left: 38px;
  width: 200px;
}

/* ============ 客户 hx-customers（去图层化 v2：以 HomeCustomers.vue 原案为准） ============ */
/* 坐标换算（页面 = Figma x − 158；内容列相对 = 页面 − 360）：
   组207 Figma(518,4964,1200×561) → 页面(360,35) → 内容列相对(0,0)，卡片/圆环已是内容列相对坐标，
   照原样用（列 475/726/977，977+223=1200 右齐；行 154/261/368/475，475+73=548≤561）；
   本模块无 1920 全幅背景/装饰，section 本身 width:100% 即全幅包裹，不新增 stage；
   __content 已是宽 1200 margin-auto 居中（margin-top:35 即模块内 y35）；
   标题中心 597.56≈600、副标题中心 596.56≈600，改 left:50%+translateX(-50%) 保窄屏仍居中；
   固定高度改 min-height；层叠靠 DOM 顺序，无 z-index；不加任何 media（<=1200 靠 body 横滚） */
.hx-customers {
  width: 100%;
  min-height: 660px;
}

/* 内容列：y35，1200×561 居中（margin-top:35 即相对模块 y35） */
.hx-customers__content {
  position: relative;
  width: 1200px;
  min-height: 561px;
  margin: 35px auto 0;
}

/* 标题：34px #1A2332（512.56+170/2≈600 居中，改 50%+translate） */
.hx-customers__title {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  width: 170px;
  height: 41px;
  margin: 0;
  font-size: 34px;
  font-weight: 400;
  line-height: 41px;
  text-align: center;
  color: #1a2332;
}

/* 副标题：17px #888888（520.06+153/2≈600 居中，改 50%+translate） */
.hx-customers__subtitle {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 54px;
  width: 153px;
  height: 21px;
  margin: 0;
  font-size: 17px;
  line-height: 21px;
  text-align: center;
  color: #888;
}

/* 大圆：420×420，外阴影 */
.hx-customers__circle {
  position: absolute;
  left: 0;
  top: 141px;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: url('/images/home/customer-circle.jpg') center / cover no-repeat;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
}

/* 内圆：119×119 白，内阴影；正中心（验算 (420−119)/2=150.5 两轴，原案 left:149.83/top:119 y 上偏 31.5px，
   用户已确认取正中心；用 50%+translate 两轴天然精确，与标题居中手法统一） */
.hx-customers__circle-inner {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 119px;
  height: 119px;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 3px 10px rgba(0, 0, 0, 0.16);
}

/* 列容器：absolute 定位三列（x=475/726/977，977+223=1200 右齐），top:154；
   列高 4×73+3×34=394，154+394=548≤561 与原底一致 */
.hx-customers__col {
  position: absolute;
  top: 154px;
  width: 223px;
}

.hx-customers__col--1 {
  left: 475px;
}

.hx-customers__col--2 {
  left: 726px;
}

.hx-customers__col--3 {
  left: 977px;
}

/* 卡：列内正常流（relative 保 logo/卡名定位上下文），首张 top:0，其余 margin-top:34（261−154−73）；
   白 r14，阴影；hover 上浮 */
.hx-customers__card {
  position: relative;
  width: 223px;
  height: 73px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hx-customers__card + .hx-customers__card {
  margin-top: 34px;
}

.hx-customers__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 22px rgba(37, 99, 200, 0.22);
}

/* logo：48×48 r34，坐标相对卡 */
.hx-customers__card-logo {
  position: absolute;
  width: 48px;
  height: 48px;
  object-fit: cover;
  border-radius: 34px;
}

/* 卡名：18px/22px #000 居中，坐标相对卡 */
.hx-customers__card-name {
  position: absolute;
  margin: 0;
  font-size: 18px;
  line-height: 22px;
  color: #000;
  text-align: center;
  overflow: hidden;
}

.hx-customers__card--double .hx-customers__card-name {
  white-space: pre-line;
}

/* ============ 新闻 hx-news（去图层化 v2：以 HomeNews.vue 原案为准） ============ */
/* 坐标换算（页面 = Figma x − 158；内容列相对 = 页面 − 360）：
   组外标题 Figma(1050,5624)→页面(892,35)，中心 892+136/2=960（1920 中心）；
   组外副标题 Figma(1033,5678)→页面(875,89)，中心 875+170/2=960；
   两者改 left:50%+translateX(-50%) 保窄屏仍居中；
   组213 Figma(518,5765,1200×584)→页面(360,176)：1920 下 (1920−1200)/2=360 与原 left:360px 一致，
   改 left:50%+translate＋width:100%+max-width:1200px（窄屏仍居中，横滚布局 1200 下 left:0 保 1:1）；
   组内 hero/小卡已是内容列相对，照原样用；section/stage/group 高改 min-height，stage 删 1920 定宽；
   层叠靠 DOM 顺序（bg 先、stage 后），不加 z-index；不加任何 media（<=1200 靠 body 横滚） */
.hx-news {
  position: relative;
  width: 100%;
  min-height: 856px;
}

/* 背景图片：页面(0,0) 1920×436 全幅（选 A 尺寸锁死）：图 1920×600，1920 下 cover 实渲染即 1920×600
   （scale 1），手写 1920px auto 逐像素一致，中央 436 显示区同；盒仍 left:0/width:100% 跟视口，
   窄屏背景 1920 定宽 center，超盒部分不绘制 = 纯裁边 */
.hx-news__bg {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 436px;
  background: url('/images/home/section-bg-10276.jpg') center / 1920px auto no-repeat;
}

/* 全幅 stage：100%+max-width:1920px 居中（替代原 1920 定宽坐标框） */
.hx-news__stage {
  position: relative;
  width: 100%;
  max-width: 1920px;
  min-height: 856px;
  margin: 0 auto;
}

/* 组外标题：y35，34px #1A2332（892+136/2=960 居中，改 50%+translate） */
.hx-news__title {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 35px;
  width: 136px;
  height: 41px;
  margin: 0;
  font-size: 34px;
  font-weight: 400;
  line-height: 41px;
  text-align: center;
  color: #1a2332;
}

/* 组外副标题：y89，17px #888888（875+170/2=960 居中，改 50%+translate） */
.hx-news__subtitle {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 89px;
  width: 170px;
  height: 21px;
  margin: 0;
  font-size: 17px;
  line-height: 21px;
  text-align: center;
  color: #888;
}

/* 组213容器：y176，1200×584 居中（1920 下居中 left=(1920−1200)/2=360 与原值一致，高改 min-height） */
.hx-news__group {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 176px;
  width: 100%;
  max-width: 1200px;
  min-height: 584px;
}

/* 大图卡底图：0,0 686×584 r12 */
.hx-news__hero {
  position: absolute;
  left: 0;
  top: 0;
  width: 686px;
  height: 584px;
  border-radius: 12px;
  overflow: hidden;
  background: url('/images/home/news-main.png') center / cover no-repeat;
}

/* 大图下白条：0,367 686×217，下圆角12 */
.hx-news__hero-mask {
  position: absolute;
  left: 0;
  top: 367px;
  width: 686px;
  height: 217px;
  border-radius: 0 0 12px 12px;
  background: rgba(255, 255, 255, 0.8);
}

/* 蓝徽章：40,395 183×58 r12 */
.hx-news__hero-badge {
  position: absolute;
  left: 40px;
  top: 395px;
  width: 183px;
  height: 58px;
  border-radius: 12px;
  background: #2563c8;
  font-size: 24px;
  line-height: 58px;
  text-align: center;
  color: #fff;
}

/* 大标题：40,472 28px #1A2332 */
.hx-news__hero-title {
  position: absolute;
  left: 40px;
  top: 472px;
  width: 448px;
  height: 34px;
  margin: 0;
  font-size: 28px;
  line-height: 34px;
  color: #1a2332;
  white-space: nowrap;
}

/* 日期：40,527 24px #AAAAAA */
.hx-news__hero-date {
  position: absolute;
  left: 40px;
  top: 527px;
  width: 136px;
  height: 29px;
  margin: 0;
  font-size: 24px;
  line-height: 29px;
  color: #aaa;
}

/* 右侧卡：x712 488×184 白 r12 阴影；hover 上浮 */
.hx-news__card {
  position: absolute;
  left: 712px;
  width: 488px;
  height: 184px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hx-news__card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 22px rgba(37, 99, 200, 0.22);
}

.hx-news__card--1 {
  top: 0;
}

.hx-news__card--2 {
  top: 200px;
}

.hx-news__card--3 {
  top: 400px;
}

/* 卡左侧条：0,0 23×184，左圆角12 */
.hx-news__card-side {
  position: absolute;
  left: 0;
  top: 0;
  width: 23px;
  height: 184px;
  border-radius: 12px 0 0 12px;
  background: #247cf1;
}

/* 图标占位：39,24 130×44 */
.hx-news__card-icon {
  position: absolute;
  left: 39px;
  top: 24px;
  width: 130px;
  height: 44px;
}

/* 徽章字：20px 白居中（相对卡） */
.hx-news__card-badge {
  position: absolute;
  left: 25px;
  top: 10px;
  width: 80px;
  height: 24px;
  font-size: 20px;
  line-height: 24px;
  text-align: center;
  color: #fff;
}

/* 卡标题：39,86 24px #1A2332 */
.hx-news__card-title {
  position: absolute;
  left: 39px;
  top: 86px;
  height: 29px;
  margin: 0;
  font-size: 24px;
  line-height: 29px;
  color: #1a2332;
  white-space: nowrap;
}

/* 卡日期：39,135 20px #AAAAAA（仅第一卡有） */
.hx-news__card-date {
  position: absolute;
  left: 39px;
  top: 135px;
  width: 113px;
  height: 24px;
  margin: 0;
  font-size: 20px;
  line-height: 24px;
  color: #aaa;
}
