/* home.css — 首页模块样式与动效（配合 index.css），资源相对本文件：../images ../icons */
[v-cloak] { display: none !important; }

/* ── Hero 轮播 ── */
.hero-carousel { height: 400px; background: #01183c; }
.hero-content { pointer-events: none; }
.hero-copy { padding-top: 76px; max-width: 742px; }
.hero-title { margin: 0; color: #fff; font-size: 52px; line-height: 72px; font-weight: 600; }
.hero-description { max-width: 683px; margin: 8px 0 0; color: rgba(255,255,255,.85); font-size: 20px; line-height: 32px; font-weight: 400; }
.hero-actions { display: flex; align-items: center; gap: 16px; margin-top: 56px; pointer-events: auto; }
.hero-actions a {  height: 48px; padding: 8px 24px; gap: 8px; font-size: 16px; line-height: 24px; }
.hero-slide:not(.is-active):not(.is-moving) { visibility: hidden; }
.hero-glow{position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 34% 70% at 76% 52%,rgba(18,104,206,.34) 0%,rgba(14,84,180,.16) 45%,rgba(10,60,150,0) 75%),
    radial-gradient(ellipse 30% 60% at 54% 86%,rgba(16,92,196,.14) 0%,rgba(16,92,196,0) 70%),
    radial-gradient(ellipse 36% 80% at 16% 8%,rgba(24,108,206,.12) 0%,rgba(24,108,206,0) 70%),
    linear-gradient(150deg,rgba(20,96,200,0) 38%,rgba(20,96,200,.08) 55%,rgba(20,96,200,0) 72%),
    linear-gradient(90deg,#000d2c 0%,#011a40 58%,#01183c 100%);
  }

@media (min-width: 1024px) {
  .hero-content { width: calc(100% - 192px); }
}
@media (max-width: 1023px) {
  .hero-carousel { height: auto; min-height: 400px; height: 4.6rem; }
  .hero-copy { padding: 52px 0 88px; max-width: 680px; }
  .hero-title { font-size: clamp(28px,4.6vw,44px); line-height: 1.45; }
  .hero-description { margin-top: 16px; font-size: 16px; line-height: 26px; }
  .hero-actions { margin-top: 28px; }
  .hero-arrow { display: none; }
}
@media (max-width: 479px) { .hero-actions a { width: auto; padding: 8px 16px; } }
.hero-slide { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.hero-slide.is-active { pointer-events: auto; z-index: 1; }
.hero-media-parallax { position: absolute; inset: 0; }

/* 1920 × 400 的设计画布居中裁切，视频帧绘制在右侧 900 × 506 的 canvas。
 * 遮罩半径必须显式指定为宽高各 50%，确保四边透明；默认 farthest-corner 会留下矩形接缝。 */
.hero-tcplayer-wrap { position: absolute; inset: 0; pointer-events: none; overflow: hidden; }
.hero-tcplayer-wrap .video-js, .hero-tcplayer-wrap video { width: 100%; height: 100%; }
.hero-tcplayer-wrap .vjs-tech, .hero-tcplayer-wrap .vjs-poster { object-fit: cover; background-size: cover; }
.hero-tcplayer-wrap .vjs-control-bar, .hero-tcplayer-wrap .vjs-big-play-button { display: none !important; }
.hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.hero-media-overlay { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90.645deg, rgba(3,39,63,.29) 10.285%, rgba(3,39,63,.03) 71.174%); }
.hero-arrow { position: absolute; top: 50%; margin-top: -24px; width: 58.5px; height: 48px; padding: 0; background: transparent; border: 0; cursor: pointer; z-index: 3; }
.hero-arrow-prev { left: clamp(24px, calc((100vw - 1920px) / 2 + 214px), 214px); }
.hero-arrow-next { right: clamp(24px, calc((100vw - 1920px) / 2 + 214px), 214px); }
.hero-arrow img, .hero-arrow-ring { position: absolute; left: 0; top: 0; width: 58.5px; height: 48px; }
.hero-arrow-hover, .hero-arrow-ring { opacity: 0; }
.hero-arrow-ring { left: 5px; top: 0; width: 48px; height: 48px; border: 2px dashed rgba(255,255,255,.45); border-radius: 50%; }
.hero-arrow:hover .hero-arrow-default { opacity: 0; }
.hero-arrow:hover .hero-arrow-hover, .hero-arrow:hover .hero-arrow-ring { opacity: 1; }

.hero-pagination { position: absolute; bottom: 32px; left: 0; width: 100%; display: flex; justify-content: center; gap: 16px; z-index: 4; }
.hero-dot { position: relative; width: 30px; height: 30px; padding: 0; background: transparent; border: 0; border-radius: 50%; cursor: pointer; }
.hero-dot::before { content: ""; position: absolute; inset: 0; border: 2px solid rgba(255,255,255,.2); border-radius: 50%; opacity: 0; }
.hero-dot::after { content: ""; position: absolute; left: 11px; top: 11px; width: 8px; height: 8px; background: #fff; border-radius: 50%; }
.hero-dot svg { display: block; fill: none; stroke: #fff; stroke-width: 2px; stroke-dasharray: 100; stroke-dashoffset: 0; transform: rotate(-90deg); }
.hero-dot.is-active::before { opacity: 1; }

.hero-carousel:focus-visible, .hero-carousel a:focus-visible, .hero-carousel button:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

.hero-controls { position: absolute; inset: 0; z-index: 3; pointer-events: none; }
.hero-controls .hero-arrow, .hero-controls .hero-dot { pointer-events: auto; }

/* ── 数据指标 ── */
.metric-plus { filter: drop-shadow(.35px 0 0 #fff) drop-shadow(-.35px 0 0 #fff) drop-shadow(0 .35px 0 #fff) drop-shadow(0 -.35px 0 #fff); }
.metric-suffix-year { margin-left: 4px; }
.metric-value strong { font-variant-numeric: tabular-nums; }

/* ── 服务卡片 + 通用显现动效 ── */

.service-card, .why-card, .success-card { border-radius: 8px; background: #fff; }
.service-card { overflow: hidden; transition: translate 220ms ease, box-shadow 220ms ease; }

.service-card:hover { translate: 0 -5px; box-shadow: 0 12px 28px rgba(3,39,63,.08); }
.service-card:hover h3 { color: #00aedf; }
.service-card-media { height: 216px; -webkit-mask-image: url("../icons/1083-4715-647a9.svg"); mask-image: url("../icons/1083-4715-647a9.svg"); }
.service-card-media img { width: 100%; height: 100%; object-fit: cover; }
.service-card-body { padding: 24px; padding-top: 20px; }
.service-card-body h3 { font-size: 20px; line-height: 32px; font-weight: 600; color: #000; margin: 0; transition: color 220ms ease; }
.service-card-body p { margin: 4px 0 0; height: 48px; overflow: hidden; font-size: 16px; line-height: 26px; color: rgba(0,0,0,.8); }
.service-more { display: inline-flex; align-items: center; gap: 11px; margin-top: 14px; color: #00aedf; font-size: 16px; font-weight: 500; text-decoration: none; }
.service-more img { transition: translate 220ms ease; }
.service-more:hover img { translate: 4px 0; }

/* ── 典型案例（人体热点） ── */
.case-fields { background: rgba(0, 42, 94, 1) }
.case-fields-texture { position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: url("../images/home-solution-bg.webp") center / 100% auto no-repeat; mix-blend-mode: lighten; opacity: .8; pointer-events: none; }
.case-body { overflow: visible; }
.case-body-img { display: block; mix-blend-mode: lighten; }
.case-hotspot { position: absolute; width: 32px; height: 32px; padding: 0; background: transparent; border: 0; border-radius: 50%; cursor: pointer; z-index: 5; transform: translate(-50%,-50%); }
.case-hotspot::before { content: ""; position: absolute; left: 7px; top: 7px; width: 18px; height: 18px; border: 3px solid #2cc0e9; background: #fff; border-radius: 50%; box-sizing: border-box; }
.case-hotspot.is-active::before { left: 2px; top: 2px; width: 28px; height: 28px; border: 0; background: rgba(255,255,255,.33); }
.case-hotspot.is-active::after { content: ""; position: absolute; left: 7px; top: 7px; width: 18px; height: 18px; background: #1ed6ff; border-radius: 50%; }
.case-ripple { opacity: 0; position: absolute; inset: 2px; border-radius: 50%; background: rgba(255,255,255,.2);  pointer-events: none; }

.case-label { position: absolute; white-space: nowrap; color: #fff; font: 400 20px/32px "PingFang SC", sans-serif; -webkit-font-smoothing: antialiased; transition: opacity .15s ease; }
.case-label.is-hidden { opacity: 0; }
.case-label { padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
.case-label.is-hidden { pointer-events: none; }
.case-label:focus-visible, .case-hotspot:focus-visible { outline: 2px solid #2cc0e9; outline-offset: 5px; }
.solution-news-panel { margin-top: 24px; }
.solution-category { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 56px; padding: 16px 0; border-bottom: 1px solid #169edc; }
.solution-category h3 { margin: 0; color: #fff; font-size: 16px; font-weight: 500; line-height: 24px; }
.solution-category .case-row-pill { flex: none; background: #169edc; }
.solution-news-list { margin: 0; padding: 0; list-style: none; }
.solution-news-list li { border-bottom: 1px solid rgba(255,255,255,.1); }
.solution-news-list li:last-child { border-bottom: 0; }
.solution-news-link { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 16px 0; color: rgba(255,255,255,.9); font-size: 16px; line-height: 24px; transition: color 180ms ease; }
.solution-news-link img { flex: none; width: 6px; height: 6px; }
.solution-news-link span { min-width: 0; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
a.solution-news-link:hover { color: #2cc0e9; }
a.solution-news-link:focus-visible { outline: 2px solid #2cc0e9; outline-offset: 4px; }
.solution-news-empty { margin: 0; padding: 24px 0; color: rgba(255,255,255,.65); font-size: 16px; }
@media (prefers-reduced-motion: reduce) { .solution-news-link { transition: none; } }
.case-preview-beam { position: absolute; pointer-events: none; z-index: 4; }
.case-preview { position: absolute; width: 200px; height: 150px; padding: 6px; background: #fff; border-radius: 8px; z-index: 6;  }
.case-preview-inner { position: relative; width: 188px; height: 138px; border-radius: 4px; overflow: hidden; }
.case-preview img { width: 188px; height: 138px; object-fit: cover; }
.case-preview p { position: absolute; bottom: 0; left: 0; width: 100%; height: 38px; background: #2cc0e9; color: #fff; text-align: center; font: 600 20px/38px "PingFang SC", sans-serif; white-space: nowrap; }
.case-row { position: relative; border-bottom: 1px solid rgba(255,255,255,.1); transition: background .3s ease; }
.case-row::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: #2cc0e9; transform: scaleX(0); transform-origin: left; transition: transform .3s ease-out; }
.case-row.is-active { background: linear-gradient(to bottom, rgba(0,174,223,0) 58.6%, rgba(0,174,223,.29) 100%); }
.case-row.is-active::after { transform: scaleX(1); }
.case-row.is-active .case-row-name { font-weight: 600; }
.case-row.is-active .case-row-pill { background: #2cc0e9; }
.case-row-pill { display: inline-flex; align-items: center; justify-content: center; height: 20px; padding: 0 10px; border-radius: 27px; background: rgba(44,192,233,.19); color: #fff; font-size: 12px; font-weight: 600; }
.case-leader { position: absolute; pointer-events: none; z-index: 2; transition: opacity .15s ease; }
.case-leader.is-hidden { opacity: 0; }
.case-row:first-child { border-top: 1px solid rgba(255,255,255,.1); }
.case-more-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 142px; height: 48px; padding: 8px 24px; background: #00aedf; border-radius: 2px; color: #fff; font-size: 16px; font-weight: 600; line-height: 24px; transition: translate 200ms ease, box-shadow 200ms ease; }
.case-more-btn:hover { translate: 0 -3px; box-shadow: 0 8px 20px rgba(0,174,223,.35); }
.case-more-btn img { width: 22px; height: 22px; }
/* ── 成功案例 ── */
.success-section { padding: 40px 0; background: #fff; isolation: isolate; }
.success-section .success-heading { margin: 0; padding: 0; color: #169edc; font-weight: 600; letter-spacing: 1.8px; }
.success-overlay { position: absolute; inset: 0; z-index: -1; pointer-events: none; background: rgba(227, 245, 252, 0.6); }
.success-section > .success-more-btn { position: relative; z-index: 2; }
/* 与 5174 一致：整屏纹理固定于视口，模块裁切与浅蓝遮罩随页面滚动。 */
.success-bg { position: absolute; inset: 0; z-index: -2; pointer-events: none; background: url("../images/exp-share-bg.webp") center / cover no-repeat fixed; }
@media (prefers-reduced-motion: reduce) { .success-bg { background-attachment: scroll; } }
.success-carousel { overflow: hidden; margin-top: 20px; margin-bottom: 8px; padding: 12px 24px 32px; }
/* 与 5174 一样由外层留白容器裁切，内层不截断卡片上移和阴影。 */
.success-carousel .success-swiper { overflow: visible; }
/* 保留模块 104px 顶部留白，只收紧标题与卡片间距；含轮播顶部 12px 留白，共 40px。 */
@media (min-width: 1024px) {
  .success-section { padding-top: 104px; padding-bottom: 80px; }
  .success-section .success-heading { font-size: 36px; line-height: 56px; }
  .success-carousel { margin-top: 28px; margin-bottom: 72px; }
}
.success-card { position: relative; height: 256px; padding: 24px; border: 1px solid rgba(77, 198, 233, .5); font-family: "PingFang SC", sans-serif; transition: translate 220ms ease, box-shadow 220ms ease; }

.success-card:hover { translate: 0 -5px; box-shadow: 0 12px 28px rgba(3,39,63,.08); }
.success-card:hover h3 { color: #00aedf; }
.success-card h3 { margin: 0; height: 60px; font-size: 20px; line-height: 30px; font-weight: 600; color: #000; transition: color 220ms ease; }
.success-tag { height: 24px; padding: 5px 8px; border-radius: 2px; background: rgba(245,245,245,.84); color: rgba(0,0,0,.5); font-size: 12px; font-weight: 500; margin-top:4px  }
.success-description { position: absolute; left: 24px; top: 132px; width: 336px; max-width: calc(100% - 48px); font-size: 16px; line-height: 26px; color: rgba(0,0,0,.8); }
.success-card h3, .success-description { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
.success-description { max-height: 52px; }
.success-details { position: absolute; left: 24px; top: 212px; display: flex; align-items: center; gap: 11px; color: #00aedf; font-size: 16px; font-weight: 500; }
.success-controls { position: absolute; inset: 0; pointer-events: none; }
.success-arrow { position: absolute; top: 308px; width: 40px; height: 40px; border-radius: 50%; padding: 8px; background: white; border: 0; pointer-events: auto; cursor: pointer; transition: background-color 200ms ease; z-index: 10; }
.success-prev { left: calc(50% - 680px); }
.success-next { left: auto; right: calc(50% - 680px); }
.success-arrow span { display: block; width: 24px; height: 24px; background: rgba(22, 158, 220, 1); -webkit-mask: url("../icons/1083-5207-a9584.svg") center/24px 24px no-repeat; mask: url("../icons/1083-5207-a9584.svg") center/24px 24px no-repeat; }
.success-next span { transform: scaleX(-1); }
.success-arrow:hover { background: #2cc0e9; }
.success-arrow:hover span { background: white; }
.success-more-btn { display: flex; align-items: center; justify-content: center; gap: 8px; width: 142px; height: 48px; margin: 0 auto; border: 1px solid rgba(0, 174, 223, 1); border-radius: 2px; color: rgba(0, 174, 223, 1); font-size: 16px; font-weight: 600; line-height: 24px; text-decoration: none; }

.success-more-btn img {  transition: transform 220ms ease, filter 220ms ease; }
.success-more-btn:hover { background: #00aedf; color: #fff; }
.success-more-btn:hover img { transform: translateX(3px); filter: brightness(0) invert(1); }

/* ── 为什么选择我们 ── */
.why-section {
  background-color: rgba(22, 158, 220, 0.05);
}
.why-section::before, .why-section::after { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; background-repeat: no-repeat; background-attachment: fixed; background-size: min(1920px, 100vw) auto;  }
@media (prefers-reduced-motion: reduce) {
  .why-section::before, .why-section::after { background-attachment: scroll; }
}
.why-card { flex: 1; padding: 24px; background: transparent; transition: background-color 220ms ease; position: relative; }

.why-card:hover { background: #fff; }
.why-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: #cceff9; pointer-events: none; transition: opacity 220ms ease; }
.why-card:hover::before, .why-card:hover h3::before { opacity: 0; }
.why-card h3 { margin: 16px 0 8px; position: relative; padding-left: 14px; font-size: 20px; line-height: 32px; font-weight: 600; color: #000; }
.why-card h3::before { content: ""; position: absolute; left: -25px; top: 8px; width: 2px; height: 32px; background: #00aedf; transition: opacity 220ms ease; }
.why-card p { margin: 0; font-size: 16px; line-height: 26px; color: rgba(0,0,0,.8); }
.why-icon { position: relative; width: 72px; height: 72px; }
.why-icon img { position: absolute; inset: 0; width: 72px; height: 72px; transition: opacity 220ms ease; }
.why-icon-hover { opacity: 0; }
.why-card:hover .why-icon-normal { opacity: 0; }
.why-card:hover .why-icon-hover { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .why-card, .service-card, .success-card, .success-more-btn { opacity: 1; transform: none;  } }

/* ── 资讯与活动：对齐 5174 常显信息栏、独立入场及 hover ── */
.news-layout { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; margin-top: 40px; }
.news-col-left { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.news-image-card { position: relative; width: 100%; background: #eaf7fc; aspect-ratio: 576 / 328; border-radius: 8px; overflow: hidden; display: block; cursor: pointer; transition: transform 220ms ease, box-shadow 220ms ease; }
.news-image-card:is(:hover,:focus-visible) { transform: translateY(-5px); box-shadow: 0 12px 28px rgba(3,39,63,.08); }
.news-photo { position: absolute; display: block; max-width: none; object-fit: cover; object-position: center; }
.news-col-left > :first-child .news-photo { left: -5.556%; top: -3.963%; width: 108.681%; height: 107.622%; }
.news-col-left > :nth-child(2) .news-photo { left: -2.265%; top: -1.524%; width: 104.53%; height: 103.049%; }
.news-image-overlay { position: absolute; left: 0; right: 0; bottom: 0; height: 80px; padding: 10px 13px; border-radius: 0 0 8px 8px; background: linear-gradient(90.79deg,#34b1f0 16.46%,#169edc 107.15%); pointer-events: none; }
.news-image-title { position: absolute; left: 13px; right: 13px; top: 10px; margin: 0; color: #fff; font-size: 20px; font-weight: 600; line-height: 38px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.news-image-date { position: absolute; display: block; left: 24px; right: 13px; top: 46px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; margin: 0; color: #fff; font-size: 14px; font-weight: 500; line-height: 24px; }
.news-list { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.news-list-item { position: relative; display: flex; flex-direction: column; gap: 4px; min-width: 0; padding: 0 0 12px; border-bottom: 1px solid rgba(0,0,0,.08); text-decoration: none; }
.news-list-item::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; background: rgba(22,158,220,.4); transform: scaleX(0); transform-origin: left center; transition: transform 750ms linear; pointer-events: none; }
.news-list-item:is(:hover,:focus-visible)::after { transform: scaleX(1); }
.news-list-item:is(:hover,:focus-visible) .news-title { color: #169edc; }
.news-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; margin: 0; font-size: 20px; line-height: 30.6px; font-weight: 600; color: #000; transition: color 220ms ease; }
.news-date { display: block; flex-shrink: 0; margin: 0; font-size: 14px; line-height: 26px; font-weight: 500; color: rgba(0,0,0,.4); }
.news-list-item:last-child { border-bottom: 0; }
#NewsSection .news-reveal { min-width: 0; }
#NewsSection a:focus-visible, #NewsSection .news-image-card:focus-visible { outline: 2px solid #169edc; outline-offset: 4px; }
@media (min-width: 1024px) {
  .news-layout { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 48px; margin-top: 40px; }
}
@media (min-width: 1024px) {
  .news-list { min-height: 680px; justify-content: space-between; }
}
@media (max-width: 639px) {
  .news-image-overlay { height: 72px; }
  .news-image-title { top: 8px; font-size: 16px; line-height: 32px; }
  .news-image-date { left: 13px; top: 40px; font-size: 12px; }
  .news-title { font-size: 16px; line-height: 26px; }
  .news-date { font-size: 12px; line-height: 22px; }
}
@media (prefers-reduced-motion: reduce) {
  #NewsSection .news-reveal { opacity: 1; transform: none; transition: none; }
  .news-image-card { transition: none; }
  .news-image-card:is(:hover,:focus-visible) { transform: none; }
}

/* ── 合作伙伴 customer_layout — CSS 照 cirs-en-web 参考站原样 ── */
.customer_layout .swiper-slide {
  width: 2.86rem;
  height: 100%;
  overflow: visible;
}
/* ── 我们的客户 + 联系我们 共享背景（对齐 5174 原型） ── */
.partners-contact-background {
  position: relative;
  isolation: isolate;
  background: #fff;
  overflow: hidden;
}
.partners-contact-background::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1015px;
  z-index: -1;
  pointer-events: none;
  background: url("../images/partners-contact/figma-texture.jpg") center / cover no-repeat fixed;
  -webkit-mask-image: url("../images/partners-contact/figma-mask.svg");
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-image: url("../images/partners-contact/figma-mask.svg");
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
}
.partners-contact-background #PartnersSection,
.partners-contact-background #ContactSection { background: rgba(255,255,255,.75); }
@media (prefers-reduced-motion: reduce) {
  .partners-contact-background::before { background-attachment: scroll; }
}
@media (min-width: 1180px) {
  .customer_layout .swiper-slide {
    width: 180px;
    height: 100%;
    overflow: visible;
  }
}
.customer_layout .swiper .swiper-wrapper { transition-timing-function: linear; }
.customer_layout .swiper { width: 100vw; overflow: visible; }

/* ── 联系我们（Figma 1218:6985，1200 × 612 面板，表单 384 × 564） ── */
#ContactSection { --contact-blue: #169edc; }
#contact-title { color: var(--contact-blue); letter-spacing: 0; font-weight: 600; }
.contact-panel { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) 384px; align-items: start; gap: 24px; margin-top: 40px; padding: 24px; overflow: hidden; border-radius: 12px; }
.contact-panel-bg { position: absolute; inset: 0; background: linear-gradient(72.325deg, rgba(229,247,252,.51) 8.9432%, #e5f7fc 130.62%); }
.contact-deco-globe { position: absolute; left: calc(100% - 770.9px); top: -377.415px; width: 1042.278px; height: 1022.732px; display: grid; place-items: center; opacity: .3; pointer-events: none; }
.contact-deco-globe::before { content: ""; width: 564.28px; height: 897.163px; background: url("../images/1083-5326-23d3d.webp") 64.27px 0 / 500px 800px no-repeat; transform: rotate(-47.38deg) scaleY(-1); }
.contact-locations { isolation: isolate; position: relative; min-width: 0; display: flex; flex-direction: column; gap: 24px; }
.contact-map { position: relative; min-height: 0; flex: none; }
.contact-map-stage { position: absolute; left: -15px; top: -23px; width: 870px; height: 463px; }
.contact-map-img { display: block; width: 100%; height: auto; }
.contact-map-markers { position: absolute; left: 0; top: 0; width: calc(100% * 800 / 870); height: calc(100% * 426 / 463); }
.contact-flag { position: absolute; z-index: 1; isolation: isolate; display: flex; align-items: center; gap: 6px; height: 36px; padding: 0 14.5px; border: 1.5px solid transparent; border-radius: 23px; background: #fff; box-shadow: 0 4px 4.9px rgba(0,124,138,.21); font-family: inherit; font-size: 16px; line-height: 27px; color: rgba(0,0,0,.8); white-space: nowrap; cursor: pointer; transform: translate(-50%,-50%); transition: border-color 220ms ease, color 220ms ease, box-shadow 220ms ease; }
.contact-flag:hover { border-color: rgba(0,174,223,.55); box-shadow: 0 4px 12px rgba(0,124,138,.25); }
.contact-flag:focus-visible { outline: 2px solid #007697; outline-offset: 4px; }
.contact-flag.is-active { z-index: 2; border-color: #00aedf; color: #00aedf; font-weight: 600; box-shadow: 0 4px 12px rgba(0,174,223,.24); }
.contact-map-point { position: absolute; left: 50%; top: -26px; width: 32px; height: 32px; box-sizing: border-box; border: 8px solid #fff; border-radius: 50%; background: #99e1f1; transform: translate(-50%, -50%); transition: background-color 220ms ease; }
.contact-flag.is-active .contact-map-point { background: #00aedf; outline: 1.5px solid #00aedf; outline-offset: 2px; }
.contact-point-glow { position: absolute; inset: -6px; border-radius: 50%; pointer-events: none; }
.contact-point-glow i { position: absolute; inset: -2px; border: 1px solid rgba(0,174,223,.48); border-radius: 50%; background: rgba(0,174,223,.12); box-shadow: 0 0 12px rgba(0,174,223,.25); opacity: 0;  }

@media (prefers-reduced-motion: reduce) {
  .contact-flag, .contact-map-point { transition: none; }

  .contact-point-glow i:first-child { opacity: .4; box-shadow: 0 0 16px rgba(0,174,223,.3); }
}
.contact-flag-icon { width: 18px; height: 18px; border-radius: 50%; object-fit: cover; }
.contact-offices { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.contact-location-cards { display: grid; gap: 16px; }
.contact-locations-empty { margin: 0; padding: 16px; color: #666; font-size: 14px; }
.contact-office { min-width: 0; min-height: 168px; padding: 16px; border-radius: 8px; background: rgba(255,255,255,.65); backdrop-filter: blur(13.05px); -webkit-backdrop-filter: blur(13.05px); }
.contact-office-head { display: flex; align-items: center; gap: 9px; }
.contact-office-head img { flex-shrink: 0; }
.contact-office-head h3 { margin: 0; font-size: 18px; line-height: 25px; font-weight: 500; }
.contact-office-addr { overflow-wrap: anywhere; min-height: 40px; margin: 11px 0 0; font-size: 12px; line-height: 20px; }
.contact-office-tel, .contact-office-mail { margin: 8px 0 0; font-size: 12px; line-height: 22px; }
.contact-office a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.contact-office a:hover { color: #007697; text-decoration: underline; }
.contact-form { position: relative; display: flex; flex-direction: column; gap: 16px; align-self: start; min-width: 0; padding: 24px; background: #fff; border-radius: 8px; }
.contact-field { display: block; min-width: 0; }
.contact-field span { display: block; font-size: 14px; line-height: 24px; margin-bottom: 4px; }
.contact-field .field-input { display: block; height: 40px; padding: 7px 15px; font-size: 14px; line-height: 24px; }
.contact-field .contact-notes { height: 88px; resize: vertical; min-height: 88px; }
.contact-field > label { display: block; font-size: 14px; line-height: 24px; margin-bottom: 4px; }
.contact-captcha-row { display: flex; align-items: stretch; gap: 8px; }
.contact-captcha-row .field-input { flex: 1; min-width: 0; width: 0; }
.contact-captcha-refresh { min-height: 40px; display: flex; align-items: center; justify-content: center; padding: 0; border: 1px solid rgba(0,0,0,.15); border-radius: 4px; background: #fff; color: #169edc; cursor: pointer; }
.contact-captcha-refresh img { display: block; width: 100%; height: 38px; object-fit: contain; }
.contact-captcha-refresh span { margin: 0; }
.contact-captcha-refresh:focus-visible { outline: 2px solid #169edc; outline-offset: 2px; }
.contact-captcha-error { margin: 6px 0 0; font-size: 12px; color: #b42318; }
.contact-submit:disabled, .contact-captcha-refresh:disabled { opacity: .6; cursor: wait; }
.contact-submit { width: 100%; height: 48px; border: 0; border-radius: 2px; background: var(--contact-blue); color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; transition: background-color 180ms ease, box-shadow 180ms ease; }
.contact-submit:hover { background: #078bc7; box-shadow: 0 6px 16px rgba(22,158,220,.2); }
.contact-submit:focus-visible, .contact-office a:focus-visible { outline: 2px solid #007697; outline-offset: 3px; }
.contact-status { margin: 0; font-size: 12px; line-height: 20px; color: #007697; }
@media (max-width: 1199px) {
  .contact-panel { grid-template-columns: minmax(0, 1fr); margin-top: .4rem; padding: .24rem; gap: 24px; border-radius: 8px; }
  .contact-locations { gap: 16px; }
  .contact-map { flex: none; min-height: 0; }
  .contact-map-stage { position: relative; left: auto; top: auto; width: 100%; height: auto; aspect-ratio: 870 / 463; }
  .contact-form { width: 100%; }
}
/* 小屏将网点放到地图下方，保留可点击区域并避免胶囊互相遮挡。 */
@media (max-width: 639px) {
  .contact-map-stage { aspect-ratio: auto; }
  .contact-map-markers { position: relative; width: 100%; height: auto; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: -8px; }
  .contact-flag { position: relative; left: auto !important; top: auto !important; transform: none; min-height: 44px; padding: 0 12px; font-size: 14px; }
  .contact-map-point { display: none; }
  .contact-offices { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .contact-office-addr { min-height: 0; }
  .contact-form { padding: 20px; }
  .contact-field .field-input { height: 44px; font-size: 16px; }
  .contact-field .contact-notes { height: 88px; }
  .contact-deco-globe { opacity: .15; }
}

/* ── 订阅条 ── */
.subscription { background: linear-gradient(90.684deg,#34b1f0 16.522%,#169edc 107.06%); }
/* 5174 订阅区仅左侧纹理，右侧二维码保持静态。 */
.subscription-background { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.subscription-edge { position: absolute; top: 0; height: 308px; mix-blend-mode: screen; pointer-events: none; overflow: hidden; mask-mode: alpha; mask-repeat: no-repeat; -webkit-mask-repeat: no-repeat; }
/* 5174 的左侧纹理从屏幕最左侧开始，独立于居中的 1200px 内容安全区。 */
.subscription-edge-left { left: 0; width: 1200px; transform: rotate(180deg); -webkit-mask-image: url("../icons/1083-5459-541e4.svg"); mask-image: url("../icons/1083-5459-541e4.svg"); -webkit-mask-size: 1200px 308px; mask-size: 1200px 308px; }
.subscription-edge-left::before { content: ""; position: absolute; left: 0; top: 0; width: 899px; height: 506px; transform-origin: 0 0; background: url("../images/1083-5459-6abe4.webp") 0 0 / 100% 100% no-repeat; transform: matrix(-1,0,0,-1,1208,407); }
.subscription-title { margin: 0; font-size: 0.4rem; line-height: 0.56rem; font-weight: 700; letter-spacing: 1.6px; color: #fff; }
@media (min-width: 1200px) { .subscription-title { font-size: 32px; line-height: 48px; } }
.subscription-contact strong { font-weight: 600; }
.subscription-form { display: flex; align-items: center; width: 588px; max-width: 100%; height: 48px; border-radius: 4px; background: #fff; }
.subscription-field { flex: 1; display: flex; align-items: center; gap: 8px; padding: 0 12px; }
.subscription-field input { flex: 1; min-width: 0; height: 24px; padding: 0; border: 0; background: transparent; font-size: 16px; color: #000; outline-offset: 4px; }
.subscription-field input::placeholder { color: rgba(0,0,0,.4); }
.subscription-submit { flex: none; width: 96px; height: 40px; margin-right: 4px; border: 0; border-radius: 4px; background: #2cc0e9; color: #fff; font-size: 16px; font-weight: 600; cursor: pointer; }
.subscription-status { position: absolute; left: 0; top: 56px; margin: 0; font-size: 12px; color: #fff; white-space: nowrap; }
.subscription-qr-box { width: 120px; height: 120px; padding: 8px; border-radius: 8px; background: #fff; }
.subscription-qr-box img { width: 104px; height: 104px; object-fit: contain; }
.subscription-qr p { margin: 8px 0 0; text-align: center; font-size: 14px; line-height: 24px; font-weight: 500; color: #fff; }
.subscription-qr { display: flex; flex-direction: column; }

/* Latest Figma floating consultation (1274:16055 / 1274:16062 / 1274:24423 / 1274:22378 / 1274:22251).
 * Whole group: 56px column, 8px from the right; its centre sits at 60% of the viewport height (slightly below the middle).
 * Expanded (default): 105px tools + 7px gap + 160×273 panel = 385px. Collapsed: tools + 8px gap + 56px button = 169px.
 * Motion kept from the previous version: 360ms cubic-bezier(.2,.76,.24,1) morph from the round button,
 * 220ms panel fade, button lift on hover, QR fade/slide. */
.floating-consultation{position:fixed;right:8px;top:60%;z-index:100;width:56px;height:169px;transform:translateY(-50%);font-family:"PingFang SC","Microsoft YaHei",sans-serif;transition:height 360ms cubic-bezier(.2,.76,.24,1)}
.floating-consultation.is-expanded{height:385px}
/* 爱番番位于组件内，沿用 5174 的 160×273 面板和公共插件动效。 */
#FloatingConsultation [data-md-consultation-open] { display: block !important; box-sizing: border-box; }
#FloatingConsultation [data-md-consultation-open="false"] { visibility: hidden !important; pointer-events: none !important; }
.floating-consultation-panel.native-consultation-panel { width: max-content; height: auto; background: transparent; box-shadow: none; }
#FloatingConsultation .embed-group-icon { background-color: #169edc !important; }
#FloatingConsultation .online-consultation-close { position: absolute; top: 120px; right: 6px; z-index: 3; display: flex; align-items: center; justify-content: center; width: 20px; height: 20px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.online-consultation-close img { width: 16px; height: 16px; }
.online-consultation-close:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.floating-consultation button{padding:0;border:0;background:transparent;cursor:pointer}

.floating-tools{position:absolute;right:0;top:0;width:56px;height:105px;border-radius:53px;background:#fff;box-shadow:0 7px 20px 2px rgba(0,0,0,.04)}
.floating-tools button{position:absolute;left:0;width:56px;height:52px;display:flex;justify-content:center;transition:transform 200ms ease}
.floating-tools button:first-child{top:0;padding-top:16px}
.floating-tools button:last-child{top:53px;padding-top:12px}
.floating-tools button:hover{transform:translateY(-2px)}
.floating-tools img{width:24px;height:24px}
.floating-tools-divider{position:absolute;left:16px;top:52px;width:24px;height:1px;background:rgba(0,0,0,.05)}

.floating-consultation-toggle{position:absolute;right:0;top:113px;width:56px;height:56px;border-radius:53px;display:flex;align-items:center;justify-content:center;background:#16a0de!important;box-shadow:0 5px 13.1px 1px rgba(7,122,189,.32);transition:opacity 180ms ease,transform 360ms cubic-bezier(.2,.76,.24,1),visibility 0s 180ms}
.floating-consultation-toggle:hover{translate:0 -3px}
.floating-consultation.is-expanded .floating-consultation-toggle{opacity:0;visibility:hidden;transform:scale(.75);pointer-events:none}
.floating-consultation.is-collapsed .floating-consultation-toggle{opacity:1;visibility:visible;transform:scale(1);transition-delay:140ms,0ms,0ms}
.floating-consultation.is-collapsed .floating-consultation-toggle:hover{translate:0 -3px}

/* Panel morphs out of the round button (its centre is 28px from the panel's top-right). */
.floating-consultation-panel{position:absolute;right:0;top:112px;width:160px;height:273px;border-radius:4px;background:#16a0de;box-shadow:0 4px 9.3px rgba(0,56,89,.13);opacity:0;visibility:hidden;transform:scale(.36,.2);transform-origin:calc(100% - 28px) 28px;transition:opacity 220ms ease,transform 360ms cubic-bezier(.2,.76,.24,1),visibility 0s 360ms}
.floating-consultation-panel.is-open{opacity:1;visibility:visible;transform:scale(1);transition-delay:0s}
.floating-consultation-panel header{position:absolute;left:8px;top:10px;display:flex;align-items:center;gap:6px;height:16px}
.floating-consultation-panel h2{margin:0;color:#fff;font-size:14px;font-weight:600;line-height:16px;white-space:nowrap}
.floating-consultation-panel header button{position:absolute;left:128px;top:-2px;width:16px;height:16px}
.floating-consultation-panel header button img{width:16px;height:16px}
.floating-consultation-panel nav{position:absolute;left:8px;top:34px;width:144px}
.floating-consultation-panel nav button{width:144px;height:33px;display:flex;align-items:center;gap:4px;padding:8px;background:#fff;border-bottom:1px solid rgba(0,0,0,.08);color:rgba(0,0,0,.8);text-align:left;transition:color 180ms ease,background 180ms ease}
.floating-consultation-panel nav button:first-child{border-radius:2px 2px 0 0}
.floating-consultation-panel nav button:last-child{height:32px;border-bottom:0;border-radius:0 0 2px 2px}
.floating-consultation-panel nav button:hover{background:#f0f9fc;color:#169edc}
.floating-consultation-panel nav span{width:113px;font-size:12px;font-weight:400;line-height:16px;white-space:nowrap}
.floating-consultation-panel nav img{width:16px;height:16px}

/* WeChat bubble (Figma 微信 1306:41766 — Rectangle 3311 101×116 incl. its shadow), one 80px code. */
.floating-qr{position:absolute;left:-127px;top:1px;width:140.456px;height:156px;background:url('../icons/floating/qr-bubble-single.svg') 0 0/140.456px 156px no-repeat;opacity:0;visibility:hidden;transform:translateX(8px);transition:opacity 200ms ease,transform 200ms ease,visibility 200ms;z-index:2}
.floating-qr.is-open{opacity:1;visibility:visible;transform:none}
.floating-qr figure{position:absolute;top:21px;width:80px;margin:0}
.floating-qr figure{left:28px}
.floating-qr img{width:80px;height:80px;object-fit:cover}
.floating-qr figcaption{margin-top:8px;height:12px;color:rgba(0,0,0,.7);font-size:12px;line-height:12px;text-align:center;white-space:nowrap}

/* 5174 dialog placement and motion; production form retains its captcha row. */
.consult-dialog-backdrop{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.5);font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.consult-dialog{position:relative;width:384px;height:530px;border-radius:8px;background:#fff;}
.consult-dialog header{height:57px;border-bottom:1px solid rgba(0,0,0,.15)}
.consult-dialog h2{position:absolute;left:24px;top:18px;margin:0;font-size:20px;font-weight:500;line-height:24px;color:#000}
.consult-dialog-close{position:absolute;left:336px;top:18px;width:24px;height:24px;padding:0;background:transparent;cursor:pointer}
.consult-dialog-close img{width:24px;height:24px}

/* Page-wide button radius (refinements.css) must not override these shapes. */
#FloatingConsultation .floating-tools button{border-radius:53px}
#ConsultDialog .consult-dialog-close{border-radius:0}
#ConsultDialog :is(input,textarea):focus-visible{outline:none}
@media(max-width:600px){.floating-consultation{right:8px}.floating-qr{left:-127px}}
@media(prefers-reduced-motion:reduce){.floating-consultation,.floating-consultation *,.consult-dialog-backdrop,.consult-dialog{transition:none!important;animation:none!important}}

/* Shared form adds the production captcha row (84px) to the reference dialog. */
.consult-dialog-backdrop { padding: 16px; }
.consult-dialog { --contact-blue: #169edc; width: min(384px,100%); height: auto; max-height: calc(100dvh - 32px); overflow: auto; }
.consult-dialog header { position: relative; }
.consult-dialog-close { left: auto; right: 24px; }
.consult-dialog > .contact-form { width: 100%; padding: 17px 24px 24px; gap: 16px; border-radius: 0; }
.consult-dialog .contact-captcha-row { gap: 8px; }
.consult-dialog .contact-captcha-refresh { flex-basis: 120px; border: 0; border-radius: 2px; }
.consult-dialog .contact-captcha-refresh img { height: 40px; }
.consult-dialog .contact-field .contact-notes { resize: none; }
.consult-dialog .contact-submit { transition: transform 220ms ease, box-shadow 220ms ease; }
.consult-dialog .contact-submit:is(:hover,:focus-visible) { background: #169edc; transform: translateY(-3px); box-shadow: 0 8px 18px rgba(22,158,220,.18); }
.consult-dialog .contact-submit:active { transform: translateY(0); box-shadow: none; }
.consult-dialog :is(input,textarea):focus-visible { outline: 2px solid #169edc; outline-offset: 2px; }
.floating-consultation, .floating-consultation-panel, .floating-consultation-toggle, .floating-qr { transition: none !important; }
#FloatingConsultation .floating-tools-btn.is-active { background: #f0f9fc; }


@media (prefers-reduced-motion: reduce) {
  .floating-consultation * { transition: none !important; }
  .hero-slide, .hero-media-parallax { transition: none; }

  .hero-dot.is-active svg {  stroke-dashoffset: 0; }

  .case-label { transition: none; }
  .customer_layout .swiper .swiper-wrapper { transition: none; }
  .news-list-item::after { transition: none; }
}

/* ── 页脚：1200px 版心，品牌 / 服务 / 案例 / 联系四列 ── */
.site-footer { background: #03273f; color: rgba(255,255,255,.8); }
.footer-main { padding-top: 72px; padding-bottom: 40px; }
.footer-products { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; margin-bottom: 72px; }
.footer-products img { display: block; width: 100%; height: auto; aspect-ratio: 226 / 100; object-fit: contain; transition: transform 280ms cubic-bezier(.2,.76,.24,1), box-shadow 280ms ease, filter 280ms ease; }
@media (hover: hover) and (pointer: fine) {
  .footer-products img:hover { transform: translateY(-6px) scale(1.025); box-shadow: 0 14px 28px rgba(0,0,0,.24), 0 0 0 1px rgba(255,255,255,.18); filter: brightness(1.06); }
}
@media (prefers-reduced-motion: reduce) {
  .footer-products img { transition: none; }
  .footer-products img:hover { transform: none; }
}
.footer-grid { display: grid; grid-template-columns: 362px 202px 234px minmax(0, 1fr); column-gap: 24px; }
.footer-brand { margin-right: 32px; }
.footer-brand, .footer-column { min-width: 0; }
.footer-logo { display: block; width: 80px; height: 26px; }
.footer-intro { margin: 24px 0 0; font-size: 14px; line-height: 26px; }
.footer-contact { margin-left: 0; }
.footer-address { display: flex; flex-direction: column; }
.footer-list li { overflow-wrap: anywhere; }
.footer-list p { margin: 0; }
.footer-list p + p { margin-top: 12px; }
.footer-copyright { background: rgba(255,255,255,.07); padding: 13px 0; font-size: 12px; line-height: 22px; color: rgba(255,255,255,.7); }
.footer-copyright a { margin-left: 8px; color: inherit; }
.footer-copyright a:hover { color: #fff; }
.site-footer a:focus-visible { outline: 2px solid #2cc0e9; outline-offset: 4px; }
@media (max-width: 1199px) {
  .footer-main { padding-top: 36px; padding-bottom: 32px; }
  .footer-products { gap: 12px; margin-bottom: 36px; }
  .footer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 32px 24px; }
  .footer-brand { grid-column: 1 / -1; max-width: 660px; margin-right: 0; }
  .footer-contact { margin-left: 0; }
}
@media (max-width: 639px) {
  .footer-products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 20px; }
  .footer-contact { grid-column: 1 / -1; }
  .footer-intro { margin-top: 16px; }
  .footer-copyright a { display: block; margin-left: 0; }
}

.footer-h3 { margin: 0 0 24px; font-size: 14px; line-height: 22px; font-weight: 500; color: #fff; }
.footer-list { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 12px; color: rgba(255,255,255,.8); font-size: 14px; line-height: 22px; }
.footer-list a { color: inherit; text-decoration: none; }
.footer-list a:hover { color: #fff; }
/* CMS 公司介绍可能自带 rem 字号和两端对齐，小屏统一按页脚正文呈现。 */
@media (max-width: 1023px) {
  .footer-intro,
  .footer-intro * { font-size: 14px !important; line-height: 24px !important; letter-spacing: normal !important; word-spacing: normal !important; text-align: left !important; }
  .footer-intro { margin-top: 16px; overflow-wrap: anywhere; }
  .footer-intro p { margin: 0 0 12px !important; }
  .footer-intro > :last-child { margin-bottom: 0 !important; }
}

/* 5174 联系我们：地点选中后更新地址卡；保留真实 CMS 表单及验证码。 */
.contact-flag { transform: none; padding: 0 16px; box-shadow: none; }
.contact-flag.is-active { box-shadow: 0 4px 4.9px rgba(0,124,138,.21); }
.contact-map-point { left: var(--dot-left, 50%); top: var(--dot-top, -38px); transform: none; pointer-events: none; }
.contact-flag:hover { color: #00aedf; }

.contact-office { transition: transform 220ms ease; }
.contact-office:hover { transform: translateY(-5px); }
.contact-office:hover h3 { color: #169edc; }
.contact-office:hover .contact-office-head img { filter: invert(51%) sepia(89%) saturate(1443%) hue-rotate(162deg); }
.contact-location-card { position: relative; min-height: 170px; padding: 24px; border-radius: 4px; background: rgba(255,255,255,.65); backdrop-filter: blur(13.05px); }
.contact-location-card h3 { display: flex; align-items: center; gap: 7px; margin: 0; color: #000; font-size: 18px; font-weight: 600; line-height: 27px; }
.contact-location-card h3 img { flex: none; width: 24px; height: 24px; }
.contact-location-card ul { display: flex; flex-direction: column; gap: 8px; margin: 16px 0 0; padding: 0; list-style: none; }
.contact-location-card li { display: flex; align-items: flex-start; gap: 9px; color: #000; font-size: 14px; line-height: 22px; overflow-wrap: anywhere; }
.contact-location-card li img { flex: none; width: 18px; height: 18px; margin-top: 2px; }
.contact-submit { transition: transform 220ms ease,box-shadow 220ms ease,background 220ms ease; }
.contact-submit:hover:not(:disabled) { transform: translateY(-3px); box-shadow: 0 8px 18px rgba(22,158,220,.18); }

/* 订阅区：左公众号、右企业微信，136px 白底二维码。 */
.subscription-qr-box { width: 136px; height: 136px; padding: 6px; border-radius: 0; }
.subscription-qr-box img { width: 124px; height: 124px; }
.subscription-qr p { font-size: 14px; line-height: 20px; font-weight: 400; }
@media (min-width: 1024px) {
  #SubscriptionSection > .section-shell { padding-top: 72px; padding-bottom: 72px; }
  .subscription-form { margin-top: 29px; }
  .subscription-title { font-size: 32px; line-height: 48px; }
  .subscription-qrs { gap: 32px; }
}
/* 平台图片与 5174 一致，27 秒匀速无缝轮播，hover 暂停。 */
.footer-products { display: block; overflow: hidden; }
.footer-products-track { display: flex; width: max-content;  }
.footer-products-set { display: flex; flex: none; gap: 17.5px; padding-right: 17.5px; }
.footer-product { flex: none; width: 226px; height: 100px; transition: transform 220ms ease,box-shadow 220ms ease; }
.footer-products img { width: 226px; height: 100px; }

.footer-product:hover { transform: translateY(-4px); box-shadow: 0 10px 22px rgba(0,0,0,.28); }
.footer-products img:hover { transform: none; box-shadow: none; filter: none; }

@media (max-width: 767px) {
  .contact-flag { transform: none; }
  .contact-location-card { padding: 20px 16px; }
  .subscription-qr-box { width: 120px; height: 120px; }
  .subscription-qr-box img { width: 108px; height: 108px; }
}
@media (prefers-reduced-motion: reduce) {

  .footer-products-set[aria-hidden="true"] { display: none; }
  .footer-products-set { flex-wrap: wrap; }
  .footer-products-track { width: auto; }
  .footer-product,.contact-office,.contact-submit { transition: none; }

}
/* 按设计稿保留地图纵向空间；地址超过一排时，面板随内容自然增高。 */
@media (min-width: 1200px) {
  .contact-panel { min-height: 612px; }
  .contact-locations { min-height: 564px; }
  .contact-map { height: 372px; }
  .contact-panel > .contact-form { min-height: 564px; }
}
.contact-panel > .contact-form > .contact-field,
.contact-panel > .contact-form > .contact-submit { flex-shrink: 0; }
.contact-panel .contact-submit { line-height: 24px; }
.contact-panel .contact-location-card { min-height: 168px; padding: 20px 24px; border-radius: 8px; }
@media (max-width: 639px) {
  .contact-panel .contact-captcha-refresh { flex-basis: 104px; min-height: 44px; }
  .contact-panel .contact-office { min-height: 0; }
}

/* 移动端隐藏整组客服，并覆盖第三方菜单异步挂载前的位置。 */
@media (max-width: 1023px) {
  #FloatingConsultation,
  #aff-im-root .embed-icon,
  .aff-im-root .embed-icon { display: none !important; }

  #ServicesSection .section-title,
  #CaseFieldsSection .section-title,
  #SuccessCasesSection .section-title { font-size: clamp(18px, 4.8vw, 26px); line-height: 1.5; letter-spacing: .5px; }
  .service-card-body { padding: 16px 20px 20px; }
  .service-card-body h3 { font-size: 18px; line-height: 27px; overflow-wrap: anywhere; }
  .service-card-body p { height: 44px; font-size: 14px; line-height: 22px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .service-more { margin-top: 12px; font-size: 14px; line-height: 22px; }

  .solution-content > p { font-size: 14px; line-height: 22px; }
  .solution-category h3 { font-size: 15px; line-height: 24px; }
  .solution-news-link { min-height: 48px; padding: 12px 0; font-size: 14px; line-height: 22px; }
  .solution-news-empty { font-size: 14px; line-height: 22px; }
  .case-label { font-size: clamp(11px, 2.8vw, 16px); line-height: 1.5; }
  .case-preview { width: clamp(100px, 26vw, 180px); height: auto; padding: 4px; }
  .case-preview-inner { width: 100%; height: auto; aspect-ratio: 188 / 138; }
  .case-preview img { width: 100%; height: 100%; }
  .case-preview p { height: 28px; margin: 0; font-size: 13px; line-height: 28px; }

  .success-carousel { padding-right: 8px; padding-left: 8px; }
  .success-card { display: flex; flex-direction: column; height: 244px; padding: 20px; }
  .success-card h3 { flex-shrink: 0; height: 52px; font-size: 17px; line-height: 26px; }
  .success-tag { align-self: flex-start; flex-shrink: 0; max-width: 100%; height: auto; padding: 3px 8px; font-size: 12px; line-height: 18px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .success-description { position: static; width: auto; max-width: none; max-height: 44px; margin: 12px 0 0; font-size: 14px; line-height: 22px; }
  .success-details { position: static; margin-top: auto; padding-top: 12px; font-size: 14px; line-height: 22px; }
  .success-more-btn { width: 128px; height: 44px; font-size: 14px; line-height: 22px; }
}

@media (max-width: 767px) {
  .hero-copy { padding: 44px 0 72px; }
  .hero-title { font-size: clamp(22px, 6vw, 28px); line-height: 1.4; overflow-wrap: anywhere; }
  .hero-description { margin-top: 12px; font-size: 14px; line-height: 23px; overflow-wrap: anywhere; }
  .hero-actions { flex-wrap: wrap; gap: 12px; margin-top: 24px; }
  .hero-actions a { height: 44px; padding: 8px 16px; font-size: 14px; line-height: 22px; }
  .hero-actions img { width: 18px; height: 18px; }
}

/* 主站订阅流程：使用医疗器械站 primary。 */
.md-subscription-backdrop { position: fixed; inset: 0; z-index: 2000; display: flex; align-items: center; justify-content: center; overflow-y: auto; padding: 24px; background: rgba(0,0,0,.5); }
.md-subscription-dialog { position: relative; width: 800px; max-width: 100%; max-height: calc(100dvh - 48px); overflow-y: auto; padding: 50px; border-radius: 8px; background: #fff; color: #000; }
.md-subscription-dialog h2 { margin: 0; padding-right: 24px; font-size: 24px; line-height: 34px; font-weight: 600; }
.md-subscription-close { position: absolute; top: 12px; right: 16px; width: 32px; height: 32px; padding: 0; border: 0; background: transparent; color: #666; font: 28px/32px sans-serif; cursor: pointer; }
.md-subscription-sectors { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px 20px; margin-top: 40px; }
.md-subscription-sector { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 8px; min-height: 50px; padding: 10px 18px; border: 1px solid #d6d6d6; border-radius: 2px; font-size: 16px; line-height: 24px; cursor: pointer; }
.md-subscription-sector input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.md-subscription-sector i { flex: none; display: grid; place-items: center; width: 20px; height: 20px; border: 1px solid #d6d6d6; border-radius: 2px; }
.md-subscription-sector:has(input:checked) { border-color: #169edc; }
.md-subscription-sector input:checked ~ i { border-color: #169edc; background: #169edc; }
.md-subscription-sector input:checked ~ i::after { content: '✓'; color: #fff; font-style: normal; font-size: 14px; }
.md-subscription-sector:focus-within, .md-subscription-confirm:focus-visible { outline: 2px solid #169edc; outline-offset: 3px; }
.md-subscription-confirm { border: 0; border-radius: 999px; background: #169edc; color: #fff; font-size: 18px; line-height: 24px; font-weight: 600; cursor: pointer; display: block; width: 170px; height: 44px; margin: 48px auto 0; }
.md-subscription-confirm:disabled { opacity: .6; cursor: wait; }
.md-subscription-error { margin: 16px 0 0; color: #b42318; font-size: 14px; line-height: 22px; }
@media (max-width: 767px) {
  .md-subscription-dialog { padding: 32px 20px; }
  .md-subscription-dialog h2 { font-size: 20px; line-height: 28px; }
  .md-subscription-sectors { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 24px; }
  .md-subscription-sector { padding: 10px; font-size: 14px; }
  .md-subscription-confirm { margin-top: 28px; font-size: 16px; }
}
