/* ============================================================
   跃点烟花官网 V2 视觉 · 第一部分（header + hero）+ 第二部分（全链路特性）
   + 第三部分（行业挑战）+ 企微弹窗
   设计稿：PC 2:19 / 2:84 / 2:105 / 2:129（1920 基准）
           移动 26:498 / 20:65 / 20:86 / 26:782（750 倍稿，实现值 ÷ 2）

   适配策略（2026-11-04 定稿）：
   · 桌面 / 移动的唯一判据 = assets/device.js 的 UA 检测
     （手机 UA 或 iPad 判定 → <html class="device-mobile">）。
     不使用任何媒体查询宽度断点 —— Windows 触屏本（pointer:coarse 误报）、
     高缩放比（150%/175% 压窄视口）都会让宽度/指针判定失真。
   · 移动规则全部以 html.device-mobile 前缀书写（见文件末尾）。
   · 本文件当前仅用于 index.html，后续页面逐步接入。
   ============================================================ */

/* ---------- 字体（阿里巴巴普惠体 2.0 / 阿里妈妈数黑体，均可免费商用） ---------- */
@font-face{font-family:"Alibaba PuHuiTi 2.0";font-style:normal;font-weight:400;
  src:url("fonts/AlibabaPuHuiTi-2-55-Regular.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Alibaba PuHuiTi 2.0";font-style:normal;font-weight:500;
  src:url("fonts/AlibabaPuHuiTi-2-65-Medium.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Alibaba PuHuiTi 2.0";font-style:normal;font-weight:600;
  src:url("fonts/AlibabaPuHuiTi-2-75-SemiBold.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Alibaba PuHuiTi 2.0";font-style:normal;font-weight:700;
  src:url("fonts/AlibabaPuHuiTi-2-85-Bold.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Alibaba PuHuiTi 2.0";font-style:normal;font-weight:1000;
  src:url("fonts/AlibabaPuHuiTi-2-115-Black.woff2") format("woff2");font-display:swap}
@font-face{font-family:"Alimama ShuHeiTi";font-style:normal;font-weight:700;
  src:url("fonts/AlimamaShuHeiTi-Bold.woff2") format("woff2");font-display:swap}

:root{
  --v2-orange:#ff7800;
  --v2-white:#ffffff;
  --v2-text:#f8f8f8;
  --v2-radius:8px;
  --v2-sans:"Alibaba PuHuiTi 2.0","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  --v2-display:"Alimama ShuHeiTi","Alibaba PuHuiTi 2.0","Noto Sans SC","PingFang SC",sans-serif;
}

/* 移动端点击不出现系统蓝色高亮/蒙层（iOS/Android WebKit 的 tap highlight），
   全站可点元素（导航链接、汉堡、预约演示、卡片按钮、轮播按钮等）一次性覆盖 */
*{-webkit-tap-highlight-color:transparent}

/* ---------- 跨文档视图过渡（View Transitions） ----------
   页面间跳转时浏览器对文档做交叉淡入；header 单独命名后成为独立快照，
   两侧几何完全一致 → 视觉上纹丝不动，只有下方内容切换。
   仅 Chromium 126+/Safari 18.2+ 生效，其余浏览器忽略这些声明，退化为普通跳转。 */
@view-transition{navigation:auto}
.v2-header{view-transition-name:site-header}

/* ---------- 顶部导航（PC，全站共用） ----------
   设计稿 19:407（首页）与 19:2549（关于我们）是同一个 header 组件：
   item 高 66 = 文字 36 + 8 gap + 2 track，左右各 16 padding；
   整体在 102 高 header 内下移 36 → 文字顶 36、底 72，track 80-82；
   item 宽 = 文字宽 + 32（4 字 127 / 2 字 80） */
/* 悬浮页（首屏深色 hero）用 fixed：滚走不跟随页面。浅底页见 .v2-header--light
   （sticky，保留 102px / 51px 占位）。两端共用 .is-hidden / .is-scrolled 两个
   滚动态，逻辑在 assets/scroll-header.js。 */
.v2-header{position:fixed;top:0;left:0;right:0;z-index:20;font-family:var(--v2-sans);
  transition:transform .32s cubic-bezier(.4,0,.2,1),background-color .25s ease,
    box-shadow .25s ease}
.v2-header.is-hidden{transform:translateY(-100%)}
@media (prefers-reduced-motion:reduce){.v2-header{transition:none}}
/* 深色页滚过 header 高度后补同色系底：白字压到浅色内容上会看不清 */
.v2-header.is-scrolled:not(.v2-header--light){background:rgba(28,28,28,.86);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  box-shadow:0 1px 0 rgba(255,255,255,.08)}
.v2-header__inner{position:relative;max-width:1920px;margin:0 auto;
  height:clamp(72px,5.31vw,102px);padding:0 clamp(24px,6.25vw,120px);
  display:flex;align-items:center;gap:clamp(16px,1.67vw,32px)}
.v2-brand{display:flex;align-items:center;gap:clamp(10px,.83vw,16px);flex:0 0 auto}
.v2-brand img{display:block}
.v2-brand__hooptech{width:clamp(120px,9.9vw,190px);height:auto}
.v2-brand__divider{width:1px;height:clamp(18px,1.56vw,30px);opacity:.55}
.v2-brand__yuedian{height:clamp(30px,2.5vw,48px);width:auto}

.v2-nav{flex:1 1 0;min-width:0;display:flex;align-items:flex-start;justify-content:center;
  flex-wrap:wrap;gap:32px;height:100%}
/* 竖向 flex：文字在上、track 在下；track 宽度天然等于文字宽（= content box 宽），
   且不再用绝对定位，不受 header 高度变化影响 */
.v2-nav a{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  height:100%;box-sizing:border-box;gap:clamp(4px,.42vw,8px);
  padding:clamp(26px,1.875vw,36px) clamp(10px,.83vw,16px) 0;
  color:var(--v2-text);font-size:clamp(17px,1.25vw,24px);font-weight:500;line-height:1.5;
  white-space:nowrap;transition:color .15s}
.v2-nav a:hover{color:#fff}
.v2-nav a.on{color:var(--v2-orange)}
.v2-nav a.on::after{content:"";width:100%;height:2px;border-radius:1px;background:var(--v2-orange)}

/* 浅底页变体（内页首屏为白底）：header 由悬浮改为占位，字与 LOGO 换深色。
   只加一个类即可复用整套双端导航，不再为单页重写 */
.v2-header--light{position:sticky;top:0;background:#fff}
.v2-header--light.is-scrolled{box-shadow:0 1px 0 rgba(0,0,0,.07)}
.v2-header--light .v2-brand img.v2-brand__hooptech:not(.v2-brand__hooptech--dark){display:none}
.v2-header--light .v2-brand img.v2-brand__hooptech--dark{display:block}
.v2-header--light .v2-nav a{color:#212121}
.v2-header--light .v2-nav a:hover{color:#212121}
.v2-header--light .v2-nav a.on{color:var(--v2-orange)}

.v2-header__demo{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  height:clamp(44px,2.81vw,54px);padding:0 clamp(18px,1.67vw,32px);border-radius:var(--v2-radius);
  background:var(--v2-orange);color:var(--v2-text);font-size:clamp(15px,1.04vw,20px);
  font-weight:700;line-height:1.5;white-space:nowrap;cursor:pointer;transition:.2s}
.v2-header__demo:hover{filter:brightness(1.07)}

.v2-burger{display:none}

/* ---------- Hero（PC） ---------- */
.v2-hero{position:relative;min-height:clamp(560px,47.5vw,912px);overflow:hidden;
  font-family:var(--v2-sans);color:var(--v2-text)}
.v2-hero__bg{position:absolute;inset:0;z-index:0;
  background:url("img/hero-bg.webp") no-repeat center/cover}
/* 产品图：右侧 52.08%（1920 基准=1000px）；窄视口自动收窄避让文字，
   max(0px,…) 防止极窄窗口下出现负宽度导致声明失效回退 auto 溢出 */
.v2-hero__product{position:absolute;top:0;right:0;z-index:1;
  width:max(0px,min(52.08%,calc(100% - 700px)));max-width:1000px;height:100%;
  object-fit:cover;object-position:right center}
.v2-hero__firework{display:none}
.v2-hero__content{position:relative;z-index:2;max-width:1920px;margin:0 auto;
  padding:clamp(130px,9.79vw,188px) clamp(24px,6.25vw,120px) clamp(48px,5.1vw,98px)}

.v2-hero__badge{margin:0 0 clamp(10px,.83vw,16px);color:var(--v2-orange);
  font-size:clamp(24px,1.67vw,32px);font-weight:1000;line-height:1.5}
.v2-hero__title{margin:0 0 clamp(28px,3.33vw,64px);font-family:var(--v2-display);
  font-weight:700;color:var(--v2-white)}
.v2-hero__title .line{display:block;font-size:clamp(36px,2.92vw,56px);line-height:1.5}
.v2-hero__title .line em{font-style:normal;color:var(--v2-orange);margin-left:clamp(14px,1.25vw,24px)}
.v2-hero__lead{margin:0 0 clamp(28px,3.33vw,64px);color:var(--v2-white);
  font-size:clamp(17px,1.25vw,24px);font-weight:500;line-height:1.5}
.v2-hero__cta{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(16px,1.67vw,32px)}

.v2-btn{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  border-radius:var(--v2-radius);white-space:nowrap;transition:.2s;font-family:var(--v2-sans)}
.v2-btn--primary{gap:clamp(5px,.42vw,8px);height:clamp(62px,4.27vw,82px);
  padding:0 clamp(28px,2.5vw,48px);background:var(--v2-orange);color:var(--v2-text);
  font-size:clamp(20px,1.46vw,28px);font-weight:500;line-height:1.5}
.v2-btn--primary img{width:clamp(22px,1.67vw,32px);height:auto}
.v2-btn--primary:hover{filter:brightness(1.07)}
.v2-btn--ghost{position:relative;isolation:isolate;height:clamp(62px,4.27vw,82px);
  padding:0 clamp(28px,2.5vw,48px);color:var(--v2-white);
  font-size:clamp(18px,1.46vw,28px);font-weight:600;line-height:1.5}
.v2-btn--ghost::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  border:1.5px solid var(--v2-white);border-radius:var(--v2-radius)}
.v2-btn--ghost:hover{background:rgba(255,255,255,.12)}

/* ---------- 第二部分：全链路特性（PC） ----------
   设计稿 2:84（1920×646 白底）：标题组（灰副题 + 数黑体主标题 + 地球装饰图）
   + 三张特性卡片（等分 flex，图标 + 名称 + 描述） */
.v2-intro{position:relative;overflow:hidden;background:#fff;
  padding:clamp(56px,4.17vw,80px) clamp(48px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(24px,2.5vw,48px);
  font-family:var(--v2-sans)}
.v2-intro__bg{position:absolute;top:5.31vw;left:0;z-index:0;width:100%;height:auto;
  opacity:.4;pointer-events:none}
.v2-intro__head{position:relative;z-index:1;display:flex;flex-direction:column;
  align-items:center;gap:4px;text-align:center}
.v2-intro__sub{margin:0;color:#a2a2a2;font-size:clamp(20px,1.88vw,36px);
  font-weight:500;line-height:1.5}
.v2-intro__title{margin:0;color:#212121;font-family:var(--v2-display);font-weight:700;
  font-size:clamp(24px,2.5vw,48px);line-height:1.5}
.v2-intro__cards{position:relative;z-index:1;margin:0;padding:0 clamp(16px,3.33vw,64px);
  display:flex;gap:clamp(16px,3.33vw,64px);list-style:none}
.v2-intro__card{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;
  gap:4px;padding:clamp(16px,1.25vw,24px) 0;border-radius:clamp(10px,.83vw,16px);
  background:#fff}
.v2-intro__icon{width:clamp(64px,8.33vw,160px);height:auto;flex:0 0 auto}
.v2-intro__text{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.v2-intro__name{margin:0;color:#212121;font-size:clamp(17px,1.67vw,32px);
  font-weight:700;line-height:1.5}
.v2-intro__desc{margin:0;color:#212121;font-size:clamp(14px,1.25vw,24px);
  font-weight:400;line-height:1.5}

/* ---------- 第三部分：行业挑战（PC） ----------
   设计稿 2:105（1920×973 白底）：橙色眉标 + 数黑体主标题 + 灰描述（居中头）
   + 2×2 挑战卡（#FAFBFE 底、内部 2px #EEE 分隔线、右上角序号水印） */
.v2-challenge{background:#fff;padding:clamp(56px,4.17vw,80px) clamp(48px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(24px,2.5vw,48px);font-family:var(--v2-sans)}
.v2-challenge__head{display:flex;flex-direction:column;align-items:center;
  gap:clamp(8px,.83vw,16px);text-align:center}
.v2-challenge__kicker{margin:0;color:var(--v2-orange);font-size:clamp(12px,1.04vw,20px);
  font-weight:600;line-height:1.25}
.v2-challenge__title{margin:0;color:#212121;font-family:var(--v2-display);font-weight:700;
  font-size:clamp(24px,2.5vw,48px);line-height:1.5}
.v2-challenge__desc{margin:0;color:#a2a2a2;font-size:clamp(13px,1.04vw,20px);
  font-weight:400;line-height:1.5}
.v2-challenge__grid{margin:0;padding:0;list-style:none;display:grid;
  grid-template-columns:1fr 1fr}
.v2-challenge__card{position:relative;display:flex;flex-direction:column;
  gap:clamp(12px,1.25vw,24px);padding:clamp(24px,2.5vw,48px);background:#fafbfe;
  overflow:hidden}
.v2-challenge__card--c1,.v2-challenge__card--c2{min-height:clamp(180px,14.06vw,270px)}
.v2-challenge__card--c3,.v2-challenge__card--c4{min-height:clamp(200px,15.94vw,306px)}
.v2-challenge__card--c1{border-right:1px solid #eee;border-bottom:1px solid #eee}
.v2-challenge__card--c2{border-left:1px solid #eee;border-bottom:1px solid #eee}
.v2-challenge__card--c3{border-right:1px solid #eee;border-top:1px solid #eee}
.v2-challenge__card--c4{border-left:1px solid #eee;border-top:1px solid #eee}
.v2-challenge__num{position:absolute;right:clamp(12px,1.25vw,24px);top:0;
  width:clamp(100px,10.42vw,200px);height:auto;z-index:1;pointer-events:none}
.v2-challenge__name{margin:0;color:#212121;font-size:clamp(17px,1.46vw,28px);
  font-weight:600;line-height:1.5;position:relative;z-index:2}
.v2-challenge__text{margin:0;color:#6f6f6f;font-size:clamp(14px,1.25vw,24px);
  font-weight:400;line-height:1.5;text-align:justify;position:relative;z-index:2}

/* ---------- 企微弹窗（设计稿 6:103：494×664 票券风卡片 + 底部圆形关闭钮） ----------
   卡片背景 SVG：顶部浅橙渐白 + 左右两侧撕票口锯齿；二维码为文字占位待替换
   尺寸策略：设计稿为最大值。--u 为比例基准，取「宽约束 (100vw-48)/494、
   高约束 (100vh-140)/760、1px」三者最小 → 任何视口都整体等比缩放，
   撕线/渐变分界/缺口与设计稿的相对位置恒定。
   弹窗打开时锁页面滚动（滚动条占位消失，100vw 与 fixed 定位恢复一致，居中不偏移） */
body:has(#wx-open:checked){overflow:hidden}
.wx2-wrap{--u:min(1px,calc((100vw - 48px)/494),calc((100vh - 140px)/760));position:relative;z-index:1;
  display:flex;flex-direction:column;align-items:center;gap:calc(32*var(--u));
  font-family:var(--v2-sans)}
/* 桌面窄窗口（>480）：宽约束多留呼吸空间，卡片不顶满 padding */
@media (min-width:481px){
  .wx2-wrap{--u:min(1px,calc((100vw - 96px)/494),calc((100vh - 140px)/760))}
}
.wx2-card{position:relative;width:min(calc(494*var(--u)),100%);
  min-height:calc(664*var(--u));
  padding:calc(40*var(--u)) calc(32*var(--u)) calc(32*var(--u));
  display:flex;flex-direction:column;align-items:center;text-align:center;
  border-radius:calc(8*var(--u));
  box-shadow:0 26px 60px rgba(9,22,44,.38);
  background:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNDk0IDY2NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjQ5NC4wMDAwMDAiIGhlaWdodD0iNjY0LjAwMDAwMCIgZmlsbD0ibm9uZSIgY3VzdG9tRnJhbWU9IiMwMDAwMDAiPgoJPGRlZnM+CgkJPGxpbmVhckdyYWRpZW50IGlkPSJwYWludF9saW5lYXJfMCIgeDE9IjI0Ny4wMDAwOTIiIHgyPSIyNDYuOTk5NzU2IiB5MT0iNjY0LjAwMDA2MSIgeTI9IjAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KCQkJPHN0b3Agc3RvcC1jb2xvcj0icmdiKDI1NSwyMzIsMjIxKSIgb2Zmc2V0PSIwIiBzdG9wLW9wYWNpdHk9IjEiIC8+CgkJCTxzdG9wIHN0b3AtY29sb3I9InJnYigyNTUsMjU1LDI1NSkiIG9mZnNldD0iMC4zNTY4NTUyMTQiIHN0b3Atb3BhY2l0eT0iMSIgLz4KCQkJPHN0b3Agc3RvcC1jb2xvcj0icmdiKDI1NSwyNTUsMjU1KSIgb2Zmc2V0PSIxIiBzdG9wLW9wYWNpdHk9IjEiIC8+CgkJPC9saW5lYXJHcmFkaWVudD4KCTwvZGVmcz4KCTxwYXRoIGlkPSLlh4/ljrvpobblsYIiIGQ9Ik00ODYgMEw4IDBDMy41ODE3MiAwIDAgMy41ODE3MiAwIDhMMCA0MTUuMDA1QzYuNjI3NDIgNDE1LjAwNSAxMiA0MjAuMzc3IDEyIDQyNy4wMDVDMTIgNDMzLjYzMiA2LjYyNzQyIDQzOS4wMDUgMCA0MzkuMDA1TDAgNjU2QzAgNjYwLjQxOCAzLjU4MTcyIDY2NCA4IDY2NEw0ODYgNjY0QzQ5MC40MTggNjY0IDQ5NCA2NjAuNDE4IDQ5NCA2NTZMNDk0IDQ0MS4wMDVDNDg3LjM3MyA0NDEuMDA1IDQ4MiA0MzUuNjMyIDQ4MiA0MjkuMDA1QzQ4MiA0MjIuMzc3IDQ4Ny4zNzMgNDE3LjAwNSA0OTQgNDE3LjAwNUw0OTQgOEM0OTQgMy41ODE3MiA0OTAuNDE4IDAgNDg2IDBaTTQ4MiA0MjkuMDA1TDQ4MiA0MjcuMDA1TDQ4MC4wMDggNDI3LjAwNUw0ODAuMDA4IDQyOS4wMDVMNDgyIDQyOS4wMDVaTTEyIDQyNy4wMDVMMTMuOTkxNSA0MjcuMDA1TDEzLjk5MTUgNDI5LjAwNUwxMiA0MjkuMDA1TDEyIDQyNy4wMDVaTTE3Ljk3NDYgNDI5LjAwNUwyMS45NTc2IDQyOS4wMDVMMjEuOTU3NiA0MjcuMDA1TDE3Ljk3NDYgNDI3LjAwNUwxNy45NzQ2IDQyOS4wMDVaTTI1Ljk0MDcgNDI5LjAwNUwyOS45MjM3IDQyOS4wMDVMMjkuOTIzNyA0MjcuMDA1TDI1Ljk0MDcgNDI3LjAwNUwyNS45NDA3IDQyOS4wMDVaTTMzLjkwNjggNDI5LjAwNUwzNy44ODk4IDQyOS4wMDVMMzcuODg5OCA0MjcuMDA1TDMzLjkwNjggNDI3LjAwNUwzMy45MDY4IDQyOS4wMDVaTTQxLjg3MjkgNDI5LjAwNUw0NS44NTU5IDQyOS4wMDVMNDUuODU1OSA0MjcuMDA1TDQxLjg3MjkgNDI3LjAwNUw0MS44NzI5IDQyOS4wMDVaTTQ5LjgzOSA0MjkuMDA1TDUzLjgyMjEgNDI5LjAwNUw1My44MjIxIDQyNy4wMDVMNDkuODM5IDQyNy4wMDVMNDkuODM5IDQyOS4wMDVaTTU3LjgwNTEgNDI5LjAwNUw2MS43ODgxIDQyOS4wMDVMNjEuNzg4MSA0MjcuMDA1TDU3LjgwNTEgNDI3LjAwNUw1Ny44MDUxIDQyOS4wMDVaTTY1Ljc3MTIgNDI5LjAwNUw2OS43NTQyIDQyOS4wMDVMNjkuNzU0MiA0MjcuMDA1TDY1Ljc3MTIgNDI3LjAwNUw2NS43NzEyIDQyOS4wMDVaTTczLjczNzMgNDI5LjAwNUw3Ny43MjAzIDQyOS4wMDVMNzcuNzIwMyA0MjcuMDA1TDczLjczNzMgNDI3LjAwNUw3My43MzczIDQyOS4wMDVaTTgxLjcwMzQgNDI5LjAwNUw4NS42ODY0IDQyOS4wMDVMODUuNjg2NCA0MjcuMDA1TDgxLjcwMzQgNDI3LjAwNUw4MS43MDM0IDQyOS4wMDVaTTg5LjY2OTUgNDI5LjAwNUw5My42NTI2IDQyOS4wMDVMOTMuNjUyNiA0MjcuMDA1TDg5LjY2OTUgNDI3LjAwNUw4OS42Njk1IDQyOS4wMDVaTTk3LjYzNTYgNDI5LjAwNUwxMDEuNjE5IDQyOS4wMDVMMTAxLjYxOSA0MjcuMDA1TDk3LjYzNTYgNDI3LjAwNUw5Ny42MzU2IDQyOS4wMDVaTTEwNS42MDIgNDI5LjAwNUwxMDkuNTg1IDQyOS4wMDVMMTA5LjU4NSA0MjcuMDA1TDEwNS42MDIgNDI3LjAwNUwxMDUuNjAyIDQyOS4wMDVaTTExMy41NjggNDI5LjAwNUwxMTcuNTUxIDQyOS4wMDVMMTE3LjU1MSA0MjcuMDA1TDExMy41NjggNDI3LjAwNUwxMTMuNTY4IDQyOS4wMDVaTTEyMS41MzQgNDI5LjAwNUwxMjUuNTE3IDQyOS4wMDVMMTI1LjUxNyA0MjcuMDA1TDEyMS41MzQgNDI3LjAwNUwxMjEuNTM0IDQyOS4wMDVaTTEyOS41IDQyOS4wMDVMMTMzLjQ4MyA0MjkuMDA1TDEzMy40ODMgNDI3LjAwNUwxMjkuNSA0MjcuMDA1TDEyOS41IDQyOS4wMDVaTTEzNy40NjYgNDI5LjAwNUwxNDEuNDQ5IDQyOS4wMDVMMTQxLjQ0OSA0MjcuMDA1TDEzNy40NjYgNDI3LjAwNUwxMzcuNDY2IDQyOS4wMDVaTTE0NS40MzIgNDI5LjAwNUwxNDkuNDE1IDQyOS4wMDVMMTQ5LjQxNSA0MjcuMDA1TDE0NS40MzIgNDI3LjAwNUwxNDUuNDMyIDQyOS4wMDVaTTE1My4zOTggNDI5LjAwNUwxNTcuMzgxIDQyOS4wMDVMMTU3LjM4MSA0MjcuMDA1TDE1My4zOTggNDI3LjAwNUwxNTMuMzk4IDQyOS4wMDVaTTE2MS4zNjQgNDI5LjAwNUwxNjUuMzQ3IDQyOS4wMDVMMTY1LjM0NyA0MjcuMDA1TDE2MS4zNjQgNDI3LjAwNUwxNjEuMzY0IDQyOS4wMDVaTTE2OS4zMzEgNDI5LjAwNUwxNzMuMzE0IDQyOS4wMDVMMTczLjMxNCA0MjcuMDA1TDE2OS4zMzEgNDI3LjAwNUwxNjkuMzMxIDQyOS4wMDVaTTE3Ny4yOTcgNDI5LjAwNUwxODEuMjggNDI5LjAwNUwxODEuMjggNDI3LjAwNUwxNzcuMjk3IDQyNy4wMDVMMTc3LjI5NyA0MjkuMDA1Wk0xODUuMjYzIDQyOS4wMDVMMTg5LjI0NiA0MjkuMDA1TDE4OS4yNDYgNDI3LjAwNUwxODUuMjYzIDQyNy4wMDVMMTg1LjI2MyA0MjkuMDA1Wk0xOTMuMjI5IDQyOS4wMDVMMTk3LjIxMiA0MjkuMDA1TDE5Ny4yMTIgNDI3LjAwNUwxOTMuMjI5IDQyNy4wMDVMMTkzLjIyOSA0MjkuMDA1Wk0yMDEuMTk1IDQyOS4wMDVMMjA1LjE3OCA0MjkuMDA1TDIwNS4xNzggNDI3LjAwNUwyMDEuMTk1IDQyNy4wMDVMMjAxLjE5NSA0MjkuMDA1Wk0yMDkuMTYxIDQyOS4wMDVMMjEzLjE0NCA0MjkuMDA1TDIxMy4xNDQgNDI3LjAwNUwyMDkuMTYxIDQyNy4wMDVMMjA5LjE2MSA0MjkuMDA1Wk0yMTcuMTI3IDQyOS4wMDVMMjIxLjExIDQyOS4wMDVMMjIxLjExIDQyNy4wMDVMMjE3LjEyNyA0MjcuMDA1TDIxNy4xMjcgNDI5LjAwNVpNMjI1LjA5MyA0MjkuMDA1TDIyOS4wNzYgNDI5LjAwNUwyMjkuMDc2IDQyNy4wMDVMMjI1LjA5MyA0MjcuMDA1TDIyNS4wOTMgNDI5LjAwNVpNMjMzLjA1OSA0MjkuMDA1TDIzNy4wNDIgNDI5LjAwNUwyMzcuMDQyIDQyNy4wMDVMMjMzLjA1OSA0MjcuMDA1TDIzMy4wNTkgNDI5LjAwNVpNMjQxLjAyNSA0MjkuMDA1TDI0NS4wMDggNDI5LjAwNUwyNDUuMDA4IDQyNy4wMDVMMjQxLjAyNSA0MjcuMDA1TDI0MS4wMjUgNDI5LjAwNVpNMjQ4Ljk5MiA0MjkuMDA1TDI1Mi45NzUgNDI5LjAwNUwyNTIuOTc1IDQyNy4wMDVMMjQ4Ljk5MiA0MjcuMDA1TDI0OC45OTIgNDI5LjAwNVpNMjU2Ljk1OCA0MjkuMDA1TDI2MC45NDEgNDI5LjAwNUwyNjAuOTQxIDQyNy4wMDVMMjU2Ljk1OCA0MjcuMDA1TDI1Ni45NTggNDI5LjAwNVpNMjY0LjkyNCA0MjkuMDA1TDI2OC45MDcgNDI5LjAwNUwyNjguOTA3IDQyNy4wMDVMMjY0LjkyNCA0MjcuMDA1TDI2NC45MjQgNDI5LjAwNVpNMjcyLjg5IDQyOS4wMDVMMjc2Ljg3MyA0MjkuMDA1TDI3Ni44NzMgNDI3LjAwNUwyNzIuODkgNDI3LjAwNUwyNzIuODkgNDI5LjAwNVpNMjgwLjg1NiA0MjkuMDA1TDI4NC44MzkgNDI5LjAwNUwyODQuODM5IDQyNy4wMDVMMjgwLjg1NiA0MjcuMDA1TDI4MC44NTYgNDI5LjAwNVpNMjg4LjgyMiA0MjkuMDA1TDI5Mi44MDUgNDI5LjAwNUwyOTIuODA1IDQyNy4wMDVMMjg4LjgyMiA0MjcuMDA1TDI4OC44MjIgNDI5LjAwNVpNMjk2Ljc4OCA0MjkuMDA1TDMwMC43NzEgNDI5LjAwNUwzMDAuNzcxIDQyNy4wMDVMMjk2Ljc4OCA0MjcuMDA1TDI5Ni43ODggNDI5LjAwNVpNMzA0Ljc1NCA0MjkuMDA1TDMwOC43MzcgNDI5LjAwNUwzMDguNzM3IDQyNy4wMDVMMzA0Ljc1NCA0MjcuMDA1TDMwNC43NTQgNDI5LjAwNVpNMzEyLjcyIDQyOS4wMDVMMzE2LjcwMyA0MjkuMDA1TDMxNi43MDMgNDI3LjAwNUwzMTIuNzIgNDI3LjAwNUwzMTIuNzIgNDI5LjAwNVpNMzIwLjY4NiA0MjkuMDA1TDMyNC42NjkgNDI5LjAwNUwzMjQuNjY5IDQyNy4wMDVMMzIwLjY4NiA0MjcuMDA1TDMyMC42ODYgNDI5LjAwNVpNMzI4LjY1MyA0MjkuMDA1TDMzMi42MzYgNDI5LjAwNUwzMzIuNjM2IDQyNy4wMDVMMzI4LjY1MyA0MjcuMDA1TDMyOC42NTMgNDI5LjAwNVpNMzM2LjYxOSA0MjkuMDA1TDM0MC42MDIgNDI5LjAwNUwzNDAuNjAyIDQyNy4wMDVMMzM2LjYxOSA0MjcuMDA1TDMzNi42MTkgNDI5LjAwNVpNMzQ0LjU4NSA0MjkuMDA1TDM0OC41NjggNDI5LjAwNUwzNDguNTY4IDQyNy4wMDVMMzQ0LjU4NSA0MjcuMDA1TDM0NC41ODUgNDI5LjAwNVpNMzUyLjU1MSA0MjkuMDA1TDM1Ni41MzQgNDI5LjAwNUwzNTYuNTM0IDQyNy4wMDVMMzUyLjU1MSA0MjcuMDA1TDM1Mi41NTEgNDI5LjAwNVpNMzYwLjUxNyA0MjkuMDA1TDM2NC41IDQyOS4wMDVMMzY0LjUgNDI3LjAwNUwzNjAuNTE3IDQyNy4wMDVMMzYwLjUxNyA0MjkuMDA1Wk0zNjguNDgzIDQyOS4wMDVMMzcyLjQ2NiA0MjkuMDA1TDM3Mi40NjYgNDI3LjAwNUwzNjguNDgzIDQyNy4wMDVMMzY4LjQ4MyA0MjkuMDA1Wk0zNzYuNDQ5IDQyOS4wMDVMMzgwLjQzMiA0MjkuMDA1TDM4MC40MzIgNDI3LjAwNUwzNzYuNDQ5IDQyNy4wMDVMMzc2LjQ0OSA0MjkuMDA1Wk0zODQuNDE1IDQyOS4wMDVMMzg4LjM5OCA0MjkuMDA1TDM4OC4zOTggNDI3LjAwNUwzODQuNDE1IDQyNy4wMDVMMzg0LjQxNSA0MjkuMDA1Wk0zOTIuMzgxIDQyOS4wMDVMMzk2LjM2NCA0MjkuMDA1TDM5Ni4zNjQgNDI3LjAwNUwzOTIuMzgxIDQyNy4wMDVMMzkyLjM4MSA0MjkuMDA1Wk00MDAuMzQ3IDQyOS4wMDVMNDA0LjMzMSA0MjkuMDA1TDQwNC4zMzEgNDI3LjAwNUw0MDAuMzQ3IDQyNy4wMDVMNDAwLjM0NyA0MjkuMDA1Wk00MDguMzE0IDQyOS4wMDVMNDEyLjI5NyA0MjkuMDA1TDQxMi4yOTcgNDI3LjAwNUw0MDguMzE0IDQyNy4wMDVMNDA4LjMxNCA0MjkuMDA1Wk00MTYuMjggNDI5LjAwNUw0MjAuMjYzIDQyOS4wMDVMNDIwLjI2MyA0MjcuMDA1TDQxNi4yOCA0MjcuMDA1TDQxNi4yOCA0MjkuMDA1Wk00MjQuMjQ2IDQyOS4wMDVMNDI4LjIyOSA0MjkuMDA1TDQyOC4yMjkgNDI3LjAwNUw0MjQuMjQ2IDQyNy4wMDVMNDI0LjI0NiA0MjkuMDA1Wk00MzIuMjEyIDQyOS4wMDVMNDM2LjE5NSA0MjkuMDA1TDQzNi4xOTUgNDI3LjAwNUw0MzIuMjEyIDQyNy4wMDVMNDMyLjIxMiA0MjkuMDA1Wk00NDAuMTc4IDQyOS4wMDVMNDQ0LjE2MSA0MjkuMDA1TDQ0NC4xNjEgNDI3LjAwNUw0NDAuMTc4IDQyNy4wMDVMNDQwLjE3OCA0MjkuMDA1Wk00NDguMTQ0IDQyOS4wMDVMNDUyLjEyNyA0MjkuMDA1TDQ1Mi4xMjcgNDI3LjAwNUw0NDguMTQ0IDQyNy4wMDVMNDQ4LjE0NCA0MjkuMDA1Wk00NTYuMTEgNDI5LjAwNUw0NjAuMDkzIDQyOS4wMDVMNDYwLjA5MyA0MjcuMDA1TDQ1Ni4xMSA0MjcuMDA1TDQ1Ni4xMSA0MjkuMDA1Wk00NjQuMDc2IDQyOS4wMDVMNDY4LjA1OSA0MjkuMDA1TDQ2OC4wNTkgNDI3LjAwNUw0NjQuMDc2IDQyNy4wMDVMNDY0LjA3NiA0MjkuMDA1Wk00NzIuMDQyIDQyOS4wMDVMNDc2LjAyNSA0MjkuMDA1TDQ3Ni4wMjUgNDI3LjAwNUw0NzIuMDQyIDQyNy4wMDVMNDcyLjA0MiA0MjkuMDA1WiIgZmlsbD0idXJsKCNwYWludF9saW5lYXJfMCkiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdHJhbnNmb3JtPSJtYXRyaXgoLTEsMCwwLC0xLDQ5NCw2NjQpIiAvPgo8L3N2Zz4K") center/100% 100% no-repeat border-box}
  /* SVG 自带：顶部浅橙渐白（分界=撕线处）、撕票虚线缝、左右对称半圆缺口——
     挖空处不放 background-color，直接透出半透明遮罩（真透明） */
.wx2-deco{position:absolute;top:calc(164*var(--u));left:47%;width:calc(160*var(--u));
  height:auto;pointer-events:none}
.wx2-title{margin:0 0 calc(16*var(--u));color:#212121;font-family:var(--v2-display);
  font-weight:700;font-size:calc(32*var(--u));line-height:1.5}
.wx2-note{margin:0 0 calc(104*var(--u));color:#212121;font-size:calc(20*var(--u));
  font-weight:400;line-height:1.5}
.wx2-note .hl{color:var(--v2-orange)}
.wx2-note b{font-weight:700}
.wx2-rule{display:flex;align-items:center;gap:calc(16*var(--u));max-width:100%;
  margin:0 0 calc(16*var(--u))}
.wx2-rule i{width:calc(16.5*var(--u));height:1px;background:#212121;flex:0 0 auto}
.wx2-rule p{margin:0;color:#212121;font-size:calc(24*var(--u));font-weight:500;
  line-height:1.5;white-space:nowrap}
.wx2-rule b{color:var(--v2-orange);font-weight:700}
/* 企业微信二维码：480×480 源图按 240 方显示（2x），四角裁 8 圆角 */
.wx2-qr{width:calc(240*var(--u));height:calc(240*var(--u));margin:0 0 calc(16*var(--u));
  border-radius:calc(8*var(--u));background:#fff;display:block;object-fit:cover}
.wx2-tip{margin:0;color:#6f6f6f;font-size:calc(18*var(--u));font-weight:500;line-height:1.55}
.wx2-close{width:calc(64*var(--u));height:calc(64*var(--u));
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:opacity .15s}
.wx2-close:hover{opacity:.75}
.wx2-close img{width:100%;height:100%;display:block;pointer-events:none}

/* ---------- 第四部分：企业形态方案（PC） ----------
   设计稿正稿 2:129（画板内，top:2597）：区块 padding 80/120、gap 48；
   卡片行 2:135（gap 32、居中）：三张 539×746 卡（(1680-64)/3）顶对齐平铺，
   #333 由卡自身承底、无光晕/无暗带；卡内 padding 48、头部到组区 64（hot 48）、
   标题 36/54、组间距 32、对勾 30 齐右、底部白底按钮 64 高吸底（顶 634）。
   注：24:1141 是画板外草稿副本（top:-35959），其 480×610/padding 32·24 为移动端
   规格 ×2，易与移动端 UI 混淆，仅作早期色值采样来源，几何以 2:129 为准
   + 居中头（橙 kicker + 数黑体标题 + 白副题）
   + AI 条幅（#333 底、4px 橙渐变描边、右上角橙标、chips + 白底按钮）
   + 底部两个居中文字链接；左右上角 32% 透明度烟花装饰（z 轴在卡片之下）
   文案修正：设计稿中集团卡与贸易卡的副题/功能组内容互换（笔误），
   按业务语义归位——集团=集团管控/业财融合/决策大脑，贸易=业务协同/出海合规/流向管控 */
.v2-sol{position:relative;overflow:hidden;background:#1c1c1c;
  padding:clamp(48px,4.17vw,80px) clamp(24px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(24px,2.5vw,48px);
  font-family:var(--v2-sans)}
.v2-sol__deco{position:absolute;z-index:0;pointer-events:none;opacity:.32}
.v2-sol__deco--left{left:clamp(12px,2.19vw,42px);top:clamp(32px,4.17vw,80px);
  width:clamp(200px,25vw,480px);height:auto}
.v2-sol__deco--right{right:0;top:clamp(32px,4.17vw,80px);
  width:clamp(140px,16.67vw,320px);height:auto}
.v2-sol__head{position:relative;z-index:1;display:flex;flex-direction:column;
  align-items:center;gap:clamp(8px,.83vw,16px);text-align:center}
.v2-sol__kicker{margin:0;color:var(--v2-orange);font-size:clamp(12px,1.04vw,20px);
  font-weight:600;line-height:1.25}
.v2-sol__title{margin:0;color:var(--v2-white);font-family:var(--v2-display);
  font-weight:700;font-size:clamp(24px,2.5vw,48px);line-height:1.5}
.v2-sol__desc{margin:0;color:var(--v2-white);font-size:clamp(14px,1.46vw,28px);
  font-weight:400;line-height:1.5}
/* 卡片行（2026-11-05 改版 V2）：整行 = 一张大卡片，::before 铺满行做 #333 底板，
   三卡等高平排且同色 #333 —— 卡间 gap 落在底板上，看不出缝隙，视觉是一块卡片分三区。
   悬停某卡：整张卡上浮 64（translateY，尺寸不变、底边也随之上移，下方露出底板）
   + 橙色渐变淡入（::before opacity 过渡）。
   宽度仍均分区块内容宽（1920 下 = (1680-64)/3 = 538.67 ≈ 设计 539），卡高 746 起。 */
.v2-sol__row{position:relative;z-index:1;
  display:flex;align-items:stretch;justify-content:center;
  gap:clamp(16px,1.67vw,32px);
  /* 顶部预留 64 的悬停上探空间（原设计容器 810 = 卡 746 + 64），否则悬停卡会压住副标题 */
  padding-top:clamp(32px,3.33vw,64px)}
/* 大卡片底板：与卡片同色，卡缝 #333 连续；顶边与卡片顶对齐（让出上探区），
   悬停卡上探的那段落在区块底色 #1c1c1c 上 */
.v2-sol__row::before{content:"";position:absolute;z-index:-1;
  top:clamp(32px,3.33vw,64px);left:0;right:0;bottom:0;
  background:#333;border-radius:clamp(12px,1.25vw,24px)}
.v2-sol__card{position:relative;isolation:isolate;
  flex:1 1 0;min-width:0;box-sizing:border-box;
  min-height:clamp(500px,38.85vw,746px);
  display:flex;flex-direction:column;
  padding:clamp(24px,2.5vw,48px);
  background:#333;border-radius:clamp(12px,1.25vw,24px);
  transition:transform .25s ease}
/* 悬停：整张卡上浮 64（1920 设计值），卡片尺寸/内部布局不变，底边随之上移露出底板 */
.v2-sol__card:hover{transform:translateY(calc(-1 * clamp(32px,3.33vw,64px)))}
/* 悬停后卡片整体上移，鼠标若停在原底部 64px 带内会掉出卡片 → 反复进出抖动。
   ::after 用 top:100% 补一块同高命中区（随卡片上移后正好覆盖原底部 64px），
   仅在已悬停时接住指针，静止时不扩大感应范围。 */
.v2-sol__card::after{content:"";position:absolute;left:0;right:0;top:100%;
  height:clamp(32px,3.33vw,64px);pointer-events:none}
.v2-sol__card:hover::after{pointer-events:auto}
/* 悬停高亮层：渐变按 24:1141 导出图采样（顶部浅 #FFA95D → 底部饱和 #FF7800，
   内边距净区 y58=FFA85B / y350=FE7F0C）；用伪元素承载才能做 opacity 过渡
   （渐变本身无法 transition）。卡片 isolation:isolate 自成层叠上下文，
   ::before 用 z-index:-1 落在「卡片背景之上、内容之下」，不会盖住文字。
   DSL 的 #FF7800 光晕在导出图不可见，用户确认原设计无黄影 —— 不加 box-shadow。 */
.v2-sol__card::before{content:"";position:absolute;inset:0;z-index:-1;
  border-radius:inherit;pointer-events:none;
  background:linear-gradient(180deg,#ffa95d,#ff7800);
  opacity:0;transition:opacity .25s ease}
.v2-sol__card:hover::before{opacity:1}
/* 2:138 容器47：gap 24；标题 2:140 = 36/54 数黑体；标签 2:142 = 24/36 右对齐。
   头部到组区：导出图三卡一律 48（正稿实测副题末行→组头首行 ink 间隙
   侧卡 60 / hot 卡 61，等价 48 段距），组区到按钮由 auto 吸底（2:180 顶 634）。
   曾被误设为 64 导致两侧卡组区整体下移 16px（2026-11-04 像素比对修正） */
.v2-sol__card-head{display:flex;flex-direction:column;gap:clamp(12px,1.25vw,24px);
  margin-bottom:clamp(24px,2.5vw,48px)}
.v2-sol__card-top{display:flex;align-items:flex-start;gap:clamp(12px,1.25vw,24px)}
.v2-sol__card-title{margin:0;flex:1 1 auto;color:var(--v2-white);
  font-family:var(--v2-display);font-weight:700;
  font-size:clamp(20px,1.875vw,36px);line-height:1.5}
/* 标签与标题首行「我是」同行：行高 54 vs 36，顶对齐 + (54-36)/2=9px 垂直居中于首行 */
.v2-sol__card-label{margin:clamp(5px,.47vw,9px) 0 0;flex:0 0 auto;align-self:flex-start;
  color:#6f6f6f;font-size:clamp(12px,1.25vw,24px);font-weight:500;line-height:1.5;
  text-align:right}
.v2-sol__card:hover .v2-sol__card-label{color:#ffe1c7}
/* 2:143 副题 = 24/36 加粗 */
.v2-sol__card-pitch{margin:0;color:var(--v2-white);
  font-size:clamp(12px,1.25vw,24px);font-weight:700;line-height:1.5}
/* 组合45（2:144）：组与组 gap 32；组内 组合44 gap 10/16 */
.v2-sol__groups{display:flex;flex-direction:column;gap:clamp(16px,1.67vw,32px)}
.v2-sol__group{display:flex;flex-direction:column;gap:clamp(6px,.63vw,12px)}
/* 组头：2:147/2:148 —— 对勾 30px 与组右缘齐平（x=413，组宽 443），不再内缩 */
.v2-sol__group-head{display:flex;align-items:center;justify-content:space-between;
  gap:clamp(6px,.63vw,12px)}
.v2-sol__group-head h4{margin:0;flex:1 1 auto;color:var(--v2-white);
  font-size:clamp(10px,1.04vw,20px);font-weight:700;line-height:1.5}
/* 对勾 SVG viewBox 30×30：1920 下必须真 30px（旧写法 .83vw 只有 15.9px，偏小一半） */
.v2-sol__check{flex:0 0 auto;width:clamp(15px,1.5625vw,30px);
  height:clamp(15px,1.5625vw,30px)}
.v2-sol__pills{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;
  gap:clamp(5px,.52vw,10px) clamp(8px,.83vw,16px)}
/* 设计稿 pill 盒高 32（文字 24 + padding 8，1px 描边内绘吃掉 1px padding）
   → CSS 等价 padding 3px 11px + border 1px，总高 32 与设计逐像素闭合 */
.v2-sol__pills li{display:inline-flex;align-items:center;justify-content:center;
  padding:clamp(2px,.16vw,3px) clamp(6px,.57vw,11px);border:1px solid #6f6f6f;
  border-radius:999px;color:#c6c6c6;
  font-size:clamp(8px,.83vw,16px);font-weight:700;line-height:1.5;white-space:nowrap}
.v2-sol__card:hover .v2-sol__pills li{border-color:#ffe1c7;color:#f0f0f0}
.v2-sol__more{margin-top:auto;display:flex;align-items:center;justify-content:center;
  gap:clamp(4px,.42vw,8px);height:clamp(44px,3.33vw,64px);
  padding:0 clamp(24px,3.33vw,64px);background:#fff;
  border-radius:clamp(10px,.83vw,16px);color:var(--v2-orange);
  font-size:clamp(12px,1.04vw,20px);font-weight:700;line-height:1.5;
  white-space:nowrap;transition:filter .2s}
.v2-sol__more img{width:clamp(15px,1.25vw,24px);height:auto}
/* 卡内按钮同样随视口等比（1920 设计值：高 64、padding 0 64、radius 16、
   字号 20、icon 24），这样任意宽度下卡片内部比例与 2:137 一致 */
.v2-sol__card .v2-sol__more{flex:0 0 auto;height:clamp(32px,3.33vw,64px);
  padding:0 clamp(32px,3.33vw,64px);gap:clamp(4px,.42vw,8px);
  border-radius:clamp(8px,.83vw,16px);font-size:clamp(10px,1.04vw,20px)}
.v2-sol__card .v2-sol__more img{width:clamp(12px,1.25vw,24px)}
.v2-sol__more:hover{filter:brightness(.94)}
/* AI 条幅：透明 border + 双层 background 实现圆角渐变描边（border-image 不支持圆角） */
.v2-sol__ai{--bw:clamp(2px,.21vw,4px);position:relative;z-index:1;
  border:var(--bw) solid transparent;border-radius:clamp(12px,1.25vw,24px);
  background:linear-gradient(#333,#333) padding-box,
    linear-gradient(180deg,#ff7800,#ffa95d) border-box;
  padding:clamp(24px,2.5vw,48px);display:flex;flex-direction:column;
  gap:clamp(24px,2.5vw,48px)}
.v2-sol__ai-ribbon{position:absolute;top:calc(-1*var(--bw));right:calc(-1*var(--bw));
  margin:0;padding:clamp(8px,.83vw,16px) clamp(20px,2.5vw,48px);background:#ffa555;
  border-radius:0 clamp(12px,1.25vw,24px) 0 clamp(12px,1.25vw,24px);
  color:#fff;font-size:clamp(12px,1.04vw,20px);font-weight:700;line-height:1.5}
.v2-sol__ai-head{display:flex;flex-direction:column;gap:clamp(12px,1.25vw,24px)}
.v2-sol__ai-title{margin:0;color:var(--v2-white);font-family:var(--v2-display);
  font-weight:700;font-size:clamp(20px,1.88vw,36px);line-height:1.5}
.v2-sol__ai-title em{font-style:normal;color:transparent;
  background:linear-gradient(180deg,#ff7800,#ffa95d);
  -webkit-background-clip:text;background-clip:text}
.v2-sol__ai-desc{margin:0;color:var(--v2-white);
  font-size:clamp(14px,1.25vw,24px);font-weight:700;line-height:1.5}
.v2-sol__ai-foot{display:flex;align-items:center;gap:clamp(20px,2.5vw,48px)}
.v2-sol__ai-chips{margin:0;padding:0;list-style:none;flex:1 1 auto;min-width:0;
  display:flex;flex-wrap:wrap;gap:clamp(8px,.83vw,16px) clamp(12px,1.25vw,24px)}
.v2-sol__ai-chips li{display:inline-flex;align-items:center;justify-content:center;
  padding:clamp(6px,.63vw,12px);border:1px solid #fff;border-radius:clamp(3px,.21vw,4px);
  color:#fff;font-size:clamp(11px,.94vw,18px);font-weight:700;line-height:1.5;
  white-space:nowrap}
.v2-sol__more--inline{margin-top:0;flex:0 0 auto}
.v2-sol__links{position:relative;z-index:1;display:flex;flex-wrap:wrap;
  align-items:center;justify-content:center;gap:clamp(20px,3.33vw,64px)}
.v2-sol__links a{display:inline-flex;align-items:center;gap:clamp(4px,.42vw,8px);
  color:var(--v2-white);font-size:clamp(14px,1.25vw,24px);font-weight:400;
  line-height:1.5;text-decoration:none;transition:color .15s}
.v2-sol__links a img{width:clamp(22px,1.88vw,36px);height:auto}
.v2-sol__links a:hover{color:var(--v2-orange)}
/* 轮播按钮仅移动端显示（设计稿 24:1141 PC 行无箭头：溢出时拖动/触控板滚动） */
.v2-sol__nav{display:none}

/* ============================================================
   第五部分：合规底座与单证（TRACEABILITY & DOCUMENTS）
   PC 设计稿 37:414（1920×1285）：
   · 容器 padding 80 / 120，纵向 4 段，段间 48
   · 头部 213 = 25 + 16 + 72 + 16 + 84（kicker 20/25 600 橙 / 标题 48/72 数黑体 / 副题 28/42 灰 2 行）
   · 主体 698：左列 560（上下 padding 32、块间 32、块内 gap 8）+
            右列 1120（800×520 截图居中，左右各留 160）
   · 底部 118 = 42 + 16 + 60（caption 28/42 500 / note 20/30 #A2A2A2 2 行）
   · 背景：180deg #FFEEDA → #F9FBFD(55.41%) → #FFF
   · 装饰：右上橙星轨 1000×667（右贴边、顶贴边）、左下橙光斑 800×533（左贴边、底贴边）
          opacity .7，均位于内容之下
   ============================================================ */
.v2-std{position:relative;overflow:hidden;
  background:linear-gradient(180deg,#ffeada 0%,#f9fbfd 55.41%,#fff 100%);
  padding:clamp(48px,4.17vw,80px) clamp(24px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(24px,2.5vw,48px);
  font-family:var(--v2-sans)}
.v2-std__deco{position:absolute;z-index:0;pointer-events:none;opacity:.7}
.v2-std__deco--top{top:0;right:0;width:clamp(480px,52.08vw,1000px);height:auto}
.v2-std__deco--star{left:0;bottom:0;width:clamp(384px,41.67vw,800px);height:auto}
.v2-std__head{position:relative;z-index:1;display:flex;flex-direction:column;
  align-items:center;gap:clamp(8px,.83vw,16px);text-align:center}
.v2-std__kicker{margin:0;color:var(--v2-orange);font-size:clamp(12px,1.04vw,20px);
  font-weight:600;line-height:1.25}
/* 数黑体在 Chrome 的垂直度量比 Pixso 高 5px（1920 实测：设计稿字墨 y139..184、
   浏览器 y134..180，宽度几乎相同 907/906 —— 同一字体，仅基线落位差）。
   用 translateY 补正（不影响 213 的头部高度），随视口等比 5/1920=0.26vw */
.v2-std__title{margin:0;color:#212121;font-family:var(--v2-display);
  font-weight:700;font-size:clamp(24px,2.5vw,48px);line-height:1.5;
  transform:translateY(clamp(2px,.26vw,5px))}
.v2-std__lead{margin:0;color:#6f6f6f;font-size:clamp(14px,1.46vw,28px);
  font-weight:400;line-height:1.5}
/* 左列 560 在 1920 = 1680 内容宽的 1/3，右列吃掉剩余 1120（不用 gap，靠右列内 padding 让位） */
.v2-std__body{position:relative;z-index:1;display:flex;align-items:center}
.v2-std__list{flex:0 0 auto;width:clamp(280px,29.17vw,560px);
  padding:clamp(16px,1.67vw,32px) 0;
  display:flex;flex-direction:column;gap:clamp(16px,1.67vw,32px)}
/* 设计稿三块文案的文本框统一 517 宽（列宽 560 留 43 右侧余量）：
   正是这个 517 让每块正文都断成 3 行（190 = 48+8+36+8+90）；
   若放开到 560，「现场移动办公」只剩 2 行、整段矮 30px */
.v2-std__item{display:flex;flex-direction:column;gap:clamp(4px,.42vw,8px);
  max-width:clamp(258px,26.93vw,517px)}
.v2-std__item-title{margin:0;color:var(--v2-orange);
  font-size:clamp(16px,1.67vw,32px);font-weight:700;line-height:1.5}
.v2-std__item-sub{margin:0;color:#212121;
  font-size:clamp(13px,1.25vw,24px);font-weight:700;line-height:1.5}
.v2-std__item-text{margin:0;color:#6f6f6f;
  font-size:clamp(13px,1.04vw,20px);font-weight:500;line-height:1.5}
.v2-std__shot{flex:1 1 auto;min-width:0;
  display:flex;align-items:center;justify-content:center;
  padding:0 clamp(16px,3.33vw,64px)}
.v2-std__shot img{display:block;width:clamp(400px,41.67vw,800px);height:auto}
.v2-std__foot{position:relative;z-index:1;display:flex;flex-direction:column;
  align-items:center;gap:clamp(8px,.83vw,16px);text-align:center}
.v2-std__caption{margin:0;color:#212121;
  font-size:clamp(14px,1.46vw,28px);font-weight:500;line-height:1.5}
.v2-std__note{margin:0;color:#a2a2a2;
  font-size:clamp(12px,1.04vw,20px);font-weight:400;line-height:1.5}

/* ============================================================
   移动端规则（唯一判据：<html class="device-mobile">，由 assets/device.js
   按 UA 写入 —— 手机 / iPad（含 iPadOS 桌面 UA、任意横竖方向）。
   PC 任何情况下不会命中，宽度不参与判定。
   设计值 = 移动设计稿（750 宽）÷ 2
   ============================================================ */
/* 移动端顶部导航统一白底：首页（深色 hero）原本透明、滚过 51px 后变深灰毛玻璃，
   内页靠 .v2-header--light 变白。现两端统一白底深字 —— LOGO 切深色版、
   汉堡与菜单文字 #212121，滚动前后不再变色，只留 1px 分隔线 */
html.device-mobile .v2-header{background:#fff;box-shadow:0 1px 0 rgba(0,0,0,.07)}
html.device-mobile .v2-header.is-scrolled:not(.v2-header--light){background:#fff;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:0 1px 0 rgba(0,0,0,.07)}
html.device-mobile .v2-brand img.v2-brand__hooptech--dark{display:block}
html.device-mobile .v2-brand img.v2-brand__hooptech:not(.v2-brand__hooptech--dark){display:none}

html.device-mobile .v2-header__inner{height:51px;padding:0 20px;gap:12px}
html.device-mobile .v2-brand{gap:8px}
html.device-mobile .v2-brand__hooptech{width:95px}
html.device-mobile .v2-brand__divider{height:15px}
html.device-mobile .v2-brand__yuedian{height:24px}

/* 抽屉展开态 = 设计稿 19:1463：白底、12px 深字、#E6E6E6 虚线分隔（虚线 4px 段 / 4px 空） */
/* 绝对定位包含块 = header__inner 的填充盒（已含 20px 左右 padding、全宽 375）：
   用 left/right:0 即可铺满视口，不能写 -20px（会向右溢出 20px 引发页面横向滚动）；
   内 padding 20 与原本 -20+40 的落位一致（菜单文字仍在 20px 处） */
html.device-mobile .v2-nav{display:flex;position:absolute;top:100%;left:0;right:0;z-index:40;
  flex-direction:column;align-items:stretch;gap:12px;height:auto;
  background:#fff;padding:12px 20px;
  visibility:hidden;opacity:0;transform:translateY(-6px);pointer-events:none;
  transition:opacity .2s ease,transform .2s ease,visibility 0s linear .2s}
html.device-mobile .nav-toggle:checked ~ .v2-nav{visibility:visible;opacity:1;transform:none;
  pointer-events:auto;transition:opacity .2s ease,transform .2s ease,visibility 0s linear 0s}
html.device-mobile .v2-nav a{flex-direction:row;justify-content:flex-start;gap:0;
  height:auto;padding:0;font-size:12px;color:#212121;
  font-weight:500;line-height:1.75}
html.device-mobile .v2-nav a:not(:last-child){position:relative;padding-bottom:12px}
html.device-mobile .v2-nav a:not(:last-child)::before{content:"";position:absolute;left:0;right:0;bottom:0;
  height:1px;background:repeating-linear-gradient(90deg,#e6e6e6 0 4px,transparent 4px 8px)}
html.device-mobile .v2-nav a.on{color:#212121}
html.device-mobile .v2-nav a.on::after{display:none}
html.device-mobile .v2-nav .chev{display:none}

/* 展开时头部变白、logo 切换为深字版（设计稿 19:1463 头部为白底） */
.v2-brand img.v2-brand__hooptech--dark{display:none}
html.device-mobile .v2-header__inner:has(.nav-toggle:checked){background:#fff;
  transition:background-color .2s ease}
html.device-mobile .v2-header__inner:has(.nav-toggle:checked) .v2-brand__hooptech--dark{display:block}
html.device-mobile .v2-header__inner:has(.nav-toggle:checked) .v2-brand__hooptech:not(.v2-brand__hooptech--dark){display:none}

html.device-mobile .v2-header__demo{height:30px;padding:0 12px;font-size:12px;border-radius:4px;
  margin-left:auto}

html.device-mobile .v2-burger{display:flex;position:relative;width:38px;height:34px;flex:0 0 auto;
  align-items:center;justify-content:center;cursor:pointer;border-radius:8px}
html.device-mobile .v2-burger span{position:absolute;left:9px;right:9px;height:2px;border-radius:2px;
  background:#212121;transition:transform .2s,opacity .2s,top .2s}
/* 浅底页（内页）汉堡为深色，展开态规则见下方 nav-toggle */
html.device-mobile .v2-header--light .v2-burger span{background:#212121}
html.device-mobile .v2-burger span:nth-child(1){top:10px}
html.device-mobile .v2-burger span:nth-child(2){top:16px}
html.device-mobile .v2-burger span:nth-child(3){top:22px}
html.device-mobile .nav-toggle:checked ~ .v2-burger span{background:#212121}
html.device-mobile .nav-toggle:checked ~ .v2-burger span:nth-child(1){top:16px;transform:rotate(45deg)}
html.device-mobile .nav-toggle:checked ~ .v2-burger span:nth-child(2){opacity:0}
html.device-mobile .nav-toggle:checked ~ .v2-burger span:nth-child(3){top:16px;transform:rotate(-45deg)}

/* 移动端 hero 用独立竖构图（设计稿 107:661，1200×900，按 750 宽居中裁切）：
   横版 1920 图在窄屏会把烟花主体裁掉 */
html.device-mobile .v2-hero__bg{background-image:url("img/hero-bg-mobile.webp")}
html.device-mobile .v2-hero{min-height:450px}
html.device-mobile .v2-hero__product{display:none}
html.device-mobile .v2-hero__firework{display:block;position:absolute;left:12.6%;bottom:0;z-index:1;
  height:150px;width:auto}
html.device-mobile .v2-hero__content{display:flex;flex-direction:column;align-items:center;
  padding:71px 20px 0;text-align:center}
html.device-mobile .v2-hero__badge{margin:0 0 8px;font-size:12px}
html.device-mobile .v2-hero__title{margin:0 0 16px}
html.device-mobile .v2-hero__title .line{font-size:20px;line-height:1.5}
html.device-mobile .v2-hero__title .line em{margin-left:12px}
html.device-mobile .v2-hero__lead{margin:0 0 16px;font-size:12px;line-height:1.5}
html.device-mobile .v2-hero__cta{gap:16px}
html.device-mobile .v2-btn--primary{gap:4px;height:41px;padding:0 24px;font-size:14px;border-radius:4px}
html.device-mobile .v2-btn--primary img{width:16px}
html.device-mobile .v2-btn--ghost{height:41px;padding:0 24px;font-size:14px;border-radius:4px}
html.device-mobile .v2-btn--ghost::after{border-width:1px;border-radius:4px}

/* ---------- 第二部分移动端规则（设计稿 20:65，750 宽 ÷ 2） ---------- */
html.device-mobile .v2-intro{padding:20px;gap:12px}
html.device-mobile .v2-intro__bg{top:71px;height:151px;object-fit:cover}
html.device-mobile .v2-intro__head{gap:4px}
html.device-mobile .v2-intro__sub{font-size:18px;line-height:1.5}
html.device-mobile .v2-intro__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-intro__cards{padding:0;gap:8px}
html.device-mobile .v2-intro__card{gap:4px;padding:12px 0;border-radius:8px}
html.device-mobile .v2-intro__icon{width:40px}
html.device-mobile .v2-intro__name{font-size:14px;line-height:1.5}
html.device-mobile .v2-intro__desc{font-size:12px;line-height:1.5}

/* ---------- 第三部分移动端规则（设计稿 20:86，750 宽 ÷ 2） ---------- */
html.device-mobile .v2-challenge{padding:20px;gap:12px}
html.device-mobile .v2-challenge__head{gap:4px}
html.device-mobile .v2-challenge__kicker{font-size:10px;line-height:1.25}
html.device-mobile .v2-challenge__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-challenge__desc{font-size:10px;line-height:1.5}
html.device-mobile .v2-challenge__grid{grid-template-columns:1fr 1fr}
html.device-mobile .v2-challenge__card{gap:6px;padding:12px}
html.device-mobile .v2-challenge__card--c1,html.device-mobile .v2-challenge__card--c2{min-height:159px}
html.device-mobile .v2-challenge__card--c3,html.device-mobile .v2-challenge__card--c4{min-height:195px}
html.device-mobile .v2-challenge__card--c1,html.device-mobile .v2-challenge__card--c2{border-width:1px}
html.device-mobile .v2-challenge__card--c3,html.device-mobile .v2-challenge__card--c4{border-width:1px}
html.device-mobile .v2-challenge__num{right:0;width:100px}
html.device-mobile .v2-challenge__name{font-size:14px;line-height:1.5}
html.device-mobile .v2-challenge__text{font-size:12px;line-height:1.5}

/* ---------- 第四部分移动端规则（设计稿 26:782，750 宽 ÷ 2） ----------
   三卡改横向滚动轮播：row 破格成全宽滚动视口（margin 0 -20px + padding 0 20px，
   首尾卡与内容 20px 边距对齐）、隐藏滚动条、scroll-snap 居中吸附；
   初始位置由 body 末内联脚本把 hot 卡滚动居中，
   .v2-sol__nav 两按钮（设计稿 26:924，48÷2=24 圆钮内 8×1 白横线）步进滚动一卡宽 */
html.device-mobile .v2-sol{padding:20px;gap:12px}
html.device-mobile .v2-sol__deco--left{left:21px;top:40px;width:240px}
html.device-mobile .v2-sol__deco--right{right:0;top:40px;width:160px}
html.device-mobile .v2-sol__head{gap:8px}
html.device-mobile .v2-sol__kicker{font-size:10px;line-height:1.25}
html.device-mobile .v2-sol__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-sol__desc{font-size:12px;line-height:1.5}
/* 左右留白 = (视口 - 卡宽 240) / 2，首尾两张也能滚到正中间（scroll-snap-align:center 才有效）；
   下限 20 防止极窄屏出现负 padding */
html.device-mobile .v2-sol__row{gap:16px;background:none;border-radius:0;
  margin:0 -20px;padding:0 max(20px, calc((100vw - 240px) / 2));
  overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none;justify-content:flex-start;align-items:stretch}
html.device-mobile .v2-sol__row::-webkit-scrollbar{display:none}
/* 移动端是横向滚动条带，不要 PC 的整行底板，也不做悬停上探 */
html.device-mobile .v2-sol__row::before{display:none}
/* 移动端无 hover：由 index.html 脚本把 --hot 挂到「最靠近视口中心」的那张卡上，
   居中卡显示橙渐变、两侧回落 #333；滚动时实时切换（scroll 事件 + rAF 节流） */
html.device-mobile .v2-sol__card--hot::before{opacity:1}
/* 触摸会让 :hover 粘住（点过之后一直保持），侧卡被点就整块变橙、文字也变浅，
   和「只有居中的 hot 卡发光」冲突。非 hot 卡在移动端忽略 hover 的底色与文字色 */
html.device-mobile .v2-sol__card:not(.v2-sol__card--hot):hover::before{opacity:0}
html.device-mobile .v2-sol__card:not(.v2-sol__card--hot):hover .v2-sol__card-label{color:#6f6f6f}
html.device-mobile .v2-sol__card:not(.v2-sol__card--hot):hover .v2-sol__pills li{border-color:#6f6f6f;color:#c6c6c6}
html.device-mobile .v2-sol__card--hot .v2-sol__card-label{color:#ffe1c7}
html.device-mobile .v2-sol__card--hot .v2-sol__pills li{border-color:#ffe1c7;color:#f0f0f0}
html.device-mobile .v2-sol__card:hover{transform:none}
html.device-mobile .v2-sol__card::after{display:none}
/* 移动端卡（26:788/26:834/26:880：480÷2=240 宽、radius 24÷2=12、padding 16/12，
   三卡均有填充：左/右 #333、hot 橙渐变）→ 背景沿用基样式，高度自适应 + 行 stretch 等高；
   首尾 auto margin 归零（不溢出宽度下保持左起） */
html.device-mobile .v2-sol__card{flex:0 0 240px;width:240px;height:auto;min-height:0;
  gap:12px;padding:16px 12px;margin-top:0;align-self:auto;
  border-radius:12px;scroll-snap-align:center}
html.device-mobile .v2-sol__card:first-child{margin-left:0}
html.device-mobile .v2-sol__card:last-child{margin-right:0}
html.device-mobile .v2-sol__card-head{gap:6px;margin-bottom:0}
html.device-mobile .v2-sol__card-top{gap:12px}
html.device-mobile .v2-sol__card-title{font-size:16px;line-height:1.5}
/* 标题行高 24 vs 标签行高 18：顶对齐后偏移 (24-18)/2=3px 垂直居中于「我是」首行 */
html.device-mobile .v2-sol__card-label{margin-top:3px;font-size:12px;line-height:1.5}
html.device-mobile .v2-sol__card-pitch{font-size:12px;line-height:1.5}
html.device-mobile .v2-sol__groups{gap:8px}
html.device-mobile .v2-sol__group{gap:6px}
html.device-mobile .v2-sol__group-head{padding-right:0}
html.device-mobile .v2-sol__group-head h4{font-size:10px;line-height:1.5}
html.device-mobile .v2-sol__check{width:15px}
html.device-mobile .v2-sol__pills{gap:5px 8px}
html.device-mobile .v2-sol__pills li{padding:2px 6px;border-radius:999px;
  font-size:8px;line-height:1.5}
html.device-mobile .v2-sol__more{height:32px;padding:0 32px;gap:4px;border-radius:8px;
  font-size:10px;line-height:1.5}
html.device-mobile .v2-sol__more img{width:7.5px}
/* 轮播按钮组（26:925/26:926：实例外框 48÷2=24 为透明占位，可见圆 = 内椭圆
   40÷2=20 由 1px #6F6F6F 描边承担（::before inset 2px 画圆，button 只作点击区）；
   icon = icon_font 箭头「直线 577」16×5÷2=8×2.5，实心三角头+长杆（左←右→），
   设计稿源字形为「左」「右」icon_font（20:405/20:408），HTML 内联同形 SVG */
html.device-mobile .v2-sol__nav{display:flex;align-items:center;justify-content:center;gap:32px}
html.device-mobile .v2-sol__nav-btn{position:relative;width:24px;height:24px;
  padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;
  background:none;border:0;outline:0;
  -webkit-tap-highlight-color:transparent}
html.device-mobile .v2-sol__nav-btn::before{content:"";position:absolute;inset:2px;
  border:1px solid #6f6f6f;border-radius:50%;transition:border-color .15s}
html.device-mobile .v2-sol__nav-btn svg{position:relative;width:8px;height:2.5px;
  display:block}
html.device-mobile .v2-sol__nav-btn:hover::before{border-color:#fff}
/* AI 条幅（26:928：670÷2=335 宽、描边 4÷2=2、padding 40/24/32/24 ÷2、
   角标圆角 [0,24,0,24]÷2） */
html.device-mobile .v2-sol__ai{--bw:2px;gap:12px;padding:20px 12px 16px;border-radius:12px}
html.device-mobile .v2-sol__ai-ribbon{padding:4px 12px;border-radius:0 12px 0 12px;
  font-size:10px;line-height:1.5}
html.device-mobile .v2-sol__ai-head{gap:6px}
html.device-mobile .v2-sol__ai-title{font-size:16px;line-height:1.5}
/* 移动稿主标题为上下两行独立文本（26:933 白 + 26:934 渐变）：em 断行复刻 */
html.device-mobile .v2-sol__ai-title em{display:block}
html.device-mobile .v2-sol__ai-desc{font-size:12px;line-height:1.5}
html.device-mobile .v2-sol__ai-foot{flex-direction:column;gap:12px}
/* 移动稿 107:78-89（750）：五个胶囊排 2+2+1，每格 295÷2 等宽、格间距 16÷2=8，
   第五个通栏 606÷2；文字居中，宽度不随文字浮动 */
html.device-mobile .v2-sol__ai-chips{display:grid;grid-template-columns:repeat(2,1fr);
  gap:8px;width:100%}
html.device-mobile .v2-sol__ai-chips li{padding:6px;border-radius:2px;
  font-size:9px;line-height:1.5}
html.device-mobile .v2-sol__ai-chips li:last-child{grid-column:1 / -1}
html.device-mobile .v2-sol__more--inline{width:100%;gap:8px}
html.device-mobile .v2-sol__more--inline img{width:8px}
/* 底部链接（26:950/26:955：24px/36 ÷2 + icon 36÷2，两行竖排区块 gap 已 12） */
html.device-mobile .v2-sol__links{flex-direction:column;gap:12px}
html.device-mobile .v2-sol__links a{font-size:12px;line-height:1.5;gap:4px}
html.device-mobile .v2-sol__links a img{width:18px}


/* ============================================================
   第六部分：客户案例（CUSTOMER STORIES）
   PC 设计稿 8:806（1920×1359）：
   · 容器 padding 80/120、纵向 gap 48、白底
   · 头部 185 = 25 + 16 + 144（kicker 20/25 600 橙 + 数黑体 48/72 两行）
   · 数据行 184 = 132 + 4 + 48（88/132 700 橙数字 + 32/48 数黑体 700 #6F6F6F 标签，
     三列各 517、gap 64 = 1680）
   · 案例行 734：两列各 808（gap 64）= 图 808×600（radius 8）
     + 卡片 744×278 上移 144 压图；卡片 radius 16、4px 白描边、
     斜向 115deg #FDF7F1 → #FFFEFD、阴影 0 4 24 #EEE、padding 64/64/32/64、块间 32
     （278 = 64 + 108 三行正文 + 32 + 42 + 32）；引号水印 104×104 钉在 32/24 且在文字之下
   · 合计 80+185+48+184+48+734+80 = 1359
   ============================================================ */
.v2-cs{background:#fff;padding:clamp(40px,4.17vw,80px) clamp(20px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(24px,2.5vw,48px);
  font-family:var(--v2-sans)}
.v2-cs__head{display:flex;flex-direction:column;align-items:center;
  gap:clamp(8px,.83vw,16px);text-align:center}
.v2-cs__kicker{margin:0;color:var(--v2-orange);
  font-size:clamp(12px,1.04vw,20px);font-weight:600;line-height:1.25}
/* 数黑体在 Chrome 的垂直度量比 Pixso 高约 0.104×字号（48 → 5px、32 → 3px）：
   title / stat 标签都是数黑体，用 translateY 补正落位，不影响行高盒 */
.v2-cs__title{margin:0;color:#212121;font-family:var(--v2-display);
  font-weight:700;font-size:clamp(24px,2.5vw,48px);line-height:1.5;
  transform:translateY(clamp(2px,.26vw,5px))}
/* 三列数据：flex 等分 + gap 64，等价于设计稿每列 517 */
.v2-cs__stats{display:flex;align-items:flex-start;gap:clamp(16px,3.33vw,64px)}
.v2-cs__stat{flex:1 1 0;min-width:0;display:flex;flex-direction:column;
  align-items:center;gap:clamp(2px,.21vw,4px);text-align:center}
.v2-cs__stat strong{color:var(--v2-orange);font-weight:700;
  font-size:clamp(40px,4.58vw,88px);line-height:1.5}
.v2-cs__stat span{color:#6f6f6f;font-family:var(--v2-display);font-weight:700;
  font-size:clamp(16px,1.67vw,32px);line-height:1.5;
  transform:translateY(clamp(1px,.16vw,3px))}
/* 两则案例：列宽 (1680-64)/2 = 808，卡片 744 = 100% - 64 */
.v2-cs__cases{display:flex;align-items:flex-start;gap:clamp(16px,3.33vw,64px)}
.v2-cs__case{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center}
.v2-cs__media{width:100%;aspect-ratio:808/600;border-radius:clamp(4px,.42vw,8px);
  overflow:hidden;background:#c4c4c4}
.v2-cs__media img{display:block;width:100%;height:100%;object-fit:cover}
/* 移动稿是另一套浅色场景图，默认隐藏，device-mobile 下互换
   （选择器加一级类名压过上面的 .v2-cs__media img，否则 display:block 会赢） */
.v2-cs__media .v2-cs__img--mb{display:none}
/* 卡片：稿中 744×278 的描边不计入尺寸，故 border-box 下把 padding 各减 4px
   （60/60/28 + 4 描边 = 稿的 64/64/32，正文宽 616、卡片高 278 才对得上） */
.v2-cs__card{position:relative;margin:calc(-144 / 808 * 100%) 0 0;
  width:calc(100% - clamp(16px,3.33vw,64px));
  border:clamp(2px,.21vw,4px) solid #fff;border-radius:clamp(8px,.83vw,16px);
  box-shadow:0 clamp(2px,.21vw,4px) clamp(12px,1.25vw,24px) #eee;
  background:linear-gradient(115deg,#fdf7f1 0%,#fffefd 100%);
  padding:clamp(30px,3.13vw,60px) clamp(30px,3.13vw,60px) clamp(14px,1.46vw,28px);
  display:flex;flex-direction:column;gap:clamp(16px,1.67vw,32px)}
/* 引号水印：稿中 104×104 钉在卡片外框 32/24，CSS 绝对定位以 padding box 为基准，
   减掉 4px 描边即 28/20；z-index 0 让它压在文字之下（稿中也是文字盖住引号） */
.v2-cs__mark{position:absolute;left:calc(clamp(2px,.21vw,4px) * 7);top:calc(clamp(2px,.21vw,4px) * 5);
  width:clamp(52px,5.42vw,104px);height:auto;z-index:0}
.v2-cs__text{position:relative;z-index:1;margin:0;color:#6f6f6f;text-align:justify;
  font-size:clamp(12px,1.25vw,24px);font-weight:500;line-height:1.5}
/* 署名行：稿中该行固定 42 高（正文行高 36 撑不到，卡片 278 需要它补齐 6px） */
.v2-cs__by{position:relative;z-index:1;display:flex;align-items:center;
  justify-content:flex-end;gap:clamp(8px,.83vw,16px);
  min-height:clamp(21px,2.19vw,42px);
  color:#6f6f6f;font-size:clamp(12px,1.25vw,24px);font-weight:400;line-height:1.5}
.v2-cs__dash{width:clamp(24px,2.5vw,48px);height:clamp(1.5px,.13vw,2.5px);
  background:#6f6f6f;flex:0 0 auto}

/* ============================================================
   第七部分：专属交付服务（EXCLUSIVE SERVICE）
   PC 设计稿 10:1（1920×1409）：
   · 容器 padding 80/120、纵向 gap 48、白底
   · 头部 229 = 25 + 16 + 72 + 16 + 42 + 16 + 42
     （kicker 20/25 橙 + 数黑体 48/72 标题 + 两段 28/42 #6F6F6F 副题）
   · 网格 972 = 3 行 308 + 行间 24 ×2；每行两卡 828（= (1680-24)/2，列 gap 24）
   · 卡 828×308：底色 #FAFBFE、无圆角、无描边/阴影
     左文字区 548（padding 48、块间 24）：
       序号 20/30 #6F6F6F + 8 + 标题 28/42 #212121 + 24 + 正文 24/36 两端对齐
       （正文宽 452 = 548 - 48×2，正是稿里「3 行」的断行宽度）
     右插图 280×210 垂直居中（x=548 = 828 - 280，y=49 = (308-210)/2）
   ============================================================ */
.v2-svc{background:#fff;padding:clamp(40px,4.17vw,80px) clamp(20px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(24px,2.5vw,48px);font-family:var(--v2-sans)}
.v2-svc__head{display:flex;flex-direction:column;align-items:center;
  gap:clamp(8px,.83vw,16px);text-align:center}
.v2-svc__kicker{margin:0;color:var(--v2-orange);
  font-size:clamp(12px,1.04vw,20px);font-weight:600;line-height:1.25}
/* 数黑体在 Chrome 的垂直度量比 Pixso 高约 0.104×字号，translateY 补正落位 */
.v2-svc__title{margin:0;color:#212121;font-family:var(--v2-display);font-weight:700;
  font-size:clamp(24px,2.5vw,48px);line-height:1.5;
  transform:translateY(clamp(2px,.26vw,5px))}
/* 稿中两段副题是独立文本、段间 16（视觉行距 58 大于 42 行高），故按两段排 */
.v2-svc__lead{margin:0;color:#6f6f6f;font-size:clamp(14px,1.46vw,28px);line-height:1.5}
/* 行列 gap 同为 24（10:7 容器与 10:8 行容器的 gap 都是 spacing/24） */
.v2-svc__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(12px,1.25vw,24px)}
/* 悬停浮起（左上方向）：transform 不参与布局，位移量落在行/列 gap 24 内不会碰到相邻卡；
   光源在左上，故阴影偏右下（x、y 双向正偏移）；
   PC 限定 html:not(.device-mobile)，移动端不挂 hover（否则点一下会粘住浮起态） */
.v2-svc__item{position:relative;display:flex;align-items:center;background:#fafbfe;
  min-height:clamp(154px,16.04vw,308px);
  transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease}
html:not(.device-mobile) .v2-svc__item:hover{z-index:1;
  transform:translate(clamp(-10px,-.52vw,-4px),clamp(-10px,-.52vw,-4px));
  box-shadow:clamp(4px,.62vw,12px) clamp(8px,1.25vw,24px) clamp(16px,2.08vw,40px) rgba(33,33,33,.1)}
.v2-svc__main{flex:1 1 auto;min-width:0;align-self:stretch;
  display:flex;flex-direction:column;gap:clamp(12px,1.25vw,24px);
  padding:clamp(24px,2.5vw,48px)}
/* 序号在上、标题在下的竖排（稿中 容器753 为 VERTICAL、块间 8）；
   PC 不可点，鼠标样式保持默认，chevron 隐藏 */
.v2-svc__row{display:flex;flex-direction:column;align-items:flex-start;position:relative;
  gap:clamp(4px,.42vw,8px);width:100%;padding:0;border:0;background:none;
  font:inherit;color:inherit;text-align:left;cursor:default}
.v2-svc__no{color:#6f6f6f;font-weight:700;
  font-size:clamp(12px,1.04vw,20px);line-height:1.5}
.v2-svc__name{color:#212121;font-weight:700;
  font-size:clamp(14px,1.46vw,28px);line-height:1.5}
.v2-svc__desc{margin:0;color:#6f6f6f;text-align:justify;
  font-size:clamp(12px,1.25vw,24px);line-height:1.5}
/* 插图：560×420 的 2 倍图，版位 280×210（4:3），不参与伸缩 */
.v2-svc__pic{flex:0 0 auto;display:block;width:clamp(140px,14.58vw,280px);
  height:auto;aspect-ratio:4/3}
/* 阶段标签（稿 10:407 / 24:2998）：只有 01「构建基座」与 04「长效赋能」两个，
   虚线圈标 95×32。PC 落在名称行右下（row 高 80、tag 32 → bottom 0 即名称底边），
   移动端回到标题右侧 4（稿 8 ÷ 2）、行高 14 撑到 16 高（稿 32 ÷ 2） */
.v2-svc__tag{position:absolute;right:0;bottom:0;
  border:1px dashed var(--v2-orange);border-radius:4px;padding:1px 10px;
  color:var(--v2-orange);font-weight:700;white-space:nowrap;
  font-size:clamp(11px,.94vw,18px);line-height:1.556}
.v2-svc__chev{display:none}

/* ============================================================
   第八部分：常见问题（COMMON QUESTIONS）
   PC 设计稿 47:1449（1920×819 折叠）/ 47:1499（1920×1259 展开）
   · 容器 padding 80/120、纵向 gap 48、白底
   · 头部 113 = 25 + 16 + 72（kicker 20/25 橙 + 数黑体 48/72 标题）
   · 列表 gap 32：折叠 5×42 + 9×32 = 498（整段 819）；展开 5×130 + 9×32 = 938（整段 1259）
   · 行 1680 = 序号 29 + 32 + 问题 1555 + 32 + 图标 32
     序号 24/42 #6F6F6F；问题 28/42（折叠 500、展开 700）
   · 答案 24/36 #6F6F6F 两端对齐：左缩进 61（29+32）、右留 64（32+32）→ 1555 宽
   · 展开项 130 = 42 + 16 + 72；图标「+ / −」18×18 细线居中于 32 框
   ============================================================ */
.v2-faq{--fq-no:clamp(14px,1.51vw,29px);--fq-gap:clamp(16px,1.67vw,32px);
  --fq-icon:clamp(16px,1.67vw,32px);
  background:#fff;padding:clamp(40px,4.17vw,80px) clamp(20px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(24px,2.5vw,48px);font-family:var(--v2-sans)}
/* 头部左对齐（稿中 kicker / 标题的 TEXT 盒都是 1680 满宽、文字默认左起 120） */
.v2-faq__head{display:flex;flex-direction:column;align-items:flex-start;
  gap:clamp(8px,.83vw,16px);text-align:left}
.v2-faq__kicker{margin:0;color:var(--v2-orange);
  font-size:clamp(12px,1.04vw,20px);font-weight:600;line-height:1.25}
/* 数黑体的垂直度量比 Pixso 高约 0.104×字号，translateY 补正落位 */
.v2-faq__title{margin:0;color:#212121;font-family:var(--v2-display);font-weight:700;
  font-size:clamp(24px,2.5vw,48px);line-height:1.5;
  transform:translateY(clamp(2px,.26vw,5px))}
.v2-faq__list{display:flex;flex-direction:column;gap:clamp(16px,1.67vw,32px)}
/* 问题行与答案之间 16（稿中 130 = 42 + 16 + 72；系数取 .834vw 让 1920 落到 16.0，
   5 项累加才不会把整段拉短 1px） */
.v2-faq__item{display:flex;flex-direction:column;gap:clamp(8px,.834vw,16px)}
/* 行高由问题文本决定；序号与图标各自对齐（序号顶对齐、图标在行内垂直居中） */
.v2-faq__row{display:flex;align-items:flex-start;gap:var(--fq-gap);
  width:100%;padding:0;border:0;background:none;font:inherit;color:inherit;
  text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.v2-faq__no{flex:0 0 var(--fq-no);color:#6f6f6f;font-weight:700;
  font-size:clamp(12px,1.25vw,24px);line-height:1.75}
/* 问题标题：折叠/展开统一 Medium 500（稿中展开态 47:1507 是 Bold 700，与折叠态
   47:1456 Medium 500 不一致，按用户要求统一为同一粗细，展开时不再变粗） */
.v2-faq__q{flex:1 1 auto;min-width:0;color:#212121;font-weight:500;
  font-size:clamp(14px,1.46vw,28px);line-height:1.5}
/* 图标：手绘「柳叶」笔画（折叠 47:1457 / 展开 47:1509），按 8 倍导出图逐列实测——
   笔画长 24.25、最粗处 4.4（半宽 2.2）落在中段、两端收成尖（即两头细中间粗），
   整体逆时针 9°（横线右端上扬、竖线上端左偏），色 #212121。
   横线常驻，竖线由同一图形旋转 90° 得到，展开时缩没 → 「−」。
   稿中图标顶部对齐（DFL y=0），不是行内垂直居中 */
.v2-faq__icon{position:relative;flex:0 0 var(--fq-icon);align-self:flex-start;
  height:var(--fq-icon)}
.v2-faq__icon::before,.v2-faq__icon::after{content:"";position:absolute;inset:0;
  background:url("img/v2-faq-line.svg") no-repeat center/contain}
.v2-faq__icon::after{transform:rotate(90deg);transform-origin:50% 50%;
  transition:transform .25s ease,opacity .25s ease}
.v2-faq__item.is-open .v2-faq__icon::after{transform:rotate(90deg) scale(0);opacity:0}
.v2-faq__a{display:none;
  padding-left:calc(var(--fq-no) + var(--fq-gap));
  padding-right:calc(var(--fq-gap) + var(--fq-icon))}
.v2-faq__item.is-open .v2-faq__a{display:block}
.v2-faq__a p{margin:0;color:#6f6f6f;text-align:justify;
  font-size:clamp(12px,1.25vw,24px);line-height:1.5}
/* 虚线：1680 宽、#E6E6E6、8 划 8 空、2px 粗（每条问题后都有，含最后一条）。
   稿中该实例是 LINE、布局高度 0.001，靠 ::after 画线，避免 5 条线把整段撑高 10px */
.v2-faq__line{position:relative;flex:0 0 auto;height:0}
.v2-faq__line::after{content:"";position:absolute;left:0;right:0;top:0;
  height:clamp(1px,.11vw,2px);
  background-image:repeating-linear-gradient(90deg,
    #e6e6e6 0 clamp(4px,.42vw,8px),transparent clamp(4px,.42vw,8px) clamp(4px,.84vw,8px))}
/* ---------- 第五部分移动端规则（设计稿 37:441，750 宽 ÷ 2）
   整段 710.5 = padding 20 + 头部 142.5 + 12 + 主体 394 + 12 + 底部 110 + 20
   · 头部：kicker 10/12.5 + 8 + 标题 20/30 两行 + 8 + 副题 12/18 三行
   · 主体 394 = 三块文案 232（每块 68 = 21+2+15+2+28，块间 8，列表底部 12）
            + 截图区 162（外层左右各 32，图 250×162 居中）
   · 底部 110 = caption 12/18 两行 36 + 8 + note 9/14 四行 56
   · 与 PC 最大差异：三块文案由左对齐改居中，字号整体收敛，装饰改为右上 187.5×105、
     左下 210×140（距底 52） */
html.device-mobile .v2-std{padding:20px;gap:12px}
html.device-mobile .v2-std__deco--top{width:187.5px;height:105px;object-fit:cover}
html.device-mobile .v2-std__deco--star{left:0;bottom:52px;width:210px;height:140px}
html.device-mobile .v2-std__head{gap:8px}
html.device-mobile .v2-std__kicker{font-size:10px;line-height:1.25}
html.device-mobile .v2-std__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-std__lead{font-size:12px;line-height:1.5}
html.device-mobile .v2-std__body{flex-direction:column;align-items:stretch;gap:0}
html.device-mobile .v2-std__list{width:100%;padding:0 0 12px;gap:8px}
/* 只改 text-align，不给 align-items:center —— 否则 p 变 shrink-to-fit，断行会跟着变 */
html.device-mobile .v2-std__item{max-width:none;gap:2px;text-align:center}
html.device-mobile .v2-std__item-title{font-size:14px;line-height:1.5}
html.device-mobile .v2-std__item-sub{font-size:10px;line-height:1.5}
html.device-mobile .v2-std__item-text{font-size:9px;line-height:14px}
html.device-mobile .v2-std__shot{width:100%;padding:0 32px}
html.device-mobile .v2-std__shot img{width:250px;margin:0 auto}
/* 设计稿底部容器是 FIXED 220（内容只占 200），补 min-height 让整段高度命中 710.5 */
html.device-mobile .v2-std__foot{gap:8px;min-height:110px}
html.device-mobile .v2-std__caption{font-size:12px;line-height:1.5}
html.device-mobile .v2-std__note{font-size:9px;line-height:14px}

/* ---------- 第六部分移动端规则（设计稿 20:253，750 宽 ÷ 2 = 375）
   整段 853.5 = padding 20 + 头部 110.5 + 12 + 数据行 56 + 12 + 案例区 623 + 20
   · 头部：kicker 10/12.5 + 8 + 标题 20/30 三行（标题自带 <br>，第二句自然折两行）
   · 数据行 56 = 数字 24/36 + 2 + 标签 12/18，三列 gap 32
   · 案例区 623 = 两则 307.5 + 8；每则 = 场景图 300×222.5 居中
     + 卡片 335 上移 72（radius 8 / 2px 白描边 / padding 32·16 / 块间 16，
       157 = 32 + 72 四行正文 + 16 + 21 署名 + 16）；引号水印 52×52 钉 14/10
   · 场景图换成移动稿的浅色素材（PC 深色版隐藏） */
html.device-mobile .v2-cs{padding:20px;gap:12px}
html.device-mobile .v2-cs__head{gap:8px}
html.device-mobile .v2-cs__kicker{font-size:10px;line-height:1.25}
html.device-mobile .v2-cs__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-cs__stats{gap:32px}
html.device-mobile .v2-cs__stat{gap:2px}
html.device-mobile .v2-cs__stat strong{font-size:24px;line-height:1.5}
html.device-mobile .v2-cs__stat span{font-size:12px;line-height:1.5}
html.device-mobile .v2-cs__cases{flex-direction:column;gap:8px}
html.device-mobile .v2-cs__case{width:100%}
html.device-mobile .v2-cs__media{width:300px;aspect-ratio:600/445;border-radius:4px}
html.device-mobile .v2-cs__media .v2-cs__img--pc{display:none}
html.device-mobile .v2-cs__media .v2-cs__img--mb{display:block}
html.device-mobile .v2-cs__card{width:100%;margin-top:-72px;border-width:2px;
  border-radius:8px;padding:30px 30px 14px;gap:16px;
  box-shadow:0 2px 12px #eee}
html.device-mobile .v2-cs__mark{left:14px;top:10px;width:52px}
html.device-mobile .v2-cs__text{font-size:12px;line-height:1.5}
html.device-mobile .v2-cs__by{min-height:21px;gap:8px;font-size:12px;line-height:1.5}
html.device-mobile .v2-cs__dash{width:24px;height:1.5px}

/* ---------- 第七部分移动端规则（设计稿 20:286 折叠态 / 20:1114 全展开态，750 宽 ÷ 2）
   折叠态整段 552.5 = padding 20 + 头部 150.5 + 12 + 卡片区 350 + 20
   · 头部 150.5 = kicker 12.5 + 8 + 标题 20/30 两行 60 + 8 + 副题 12/18 两行 36 + 8 + 18
   · 卡片区 350 = 展开 105 + 折叠 45×5 + gap 4×5
   · 展开卡 105 = padding 12 + 标题行 21 + 6 + 正文 12/18 三行 54 + 12，右侧图 100×75 居中
   · 折叠卡 45 = padding 12 + 标题行 21 + 12，仅留序号 + 标题 + chevron
   · 与 PC 差异：标题行改成横排（序号 12 宽 + 12 + 标题 + chevron 8），卡 radius 2（稿 4） */
html.device-mobile .v2-svc{padding:20px;gap:12px}
html.device-mobile .v2-svc__head{gap:8px}
html.device-mobile .v2-svc__kicker{font-size:10px;line-height:1.25}
html.device-mobile .v2-svc__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-svc__lead{font-size:12px;line-height:1.5}
html.device-mobile .v2-svc__list{grid-template-columns:1fr;gap:4px}
html.device-mobile .v2-svc__item{min-height:0;border-radius:2px}
html.device-mobile .v2-svc__main{padding:12px;gap:6px}
html.device-mobile .v2-svc__row{flex-direction:row;align-items:center;gap:12px;
  cursor:pointer;-webkit-tap-highlight-color:transparent}
html.device-mobile .v2-svc__no{flex:0 0 auto;font-size:10px;line-height:1.5}
html.device-mobile .v2-svc__name{flex:1 1 auto;min-width:0;
  font-size:14px;line-height:1.5}
/* 移动端标签回到标题右侧 4、与文字垂直居中；用 inline-block 而非改 name 的 display，
   避免影响首页 / 关于我们页复用同一组件的长标题换行 */
html.device-mobile .v2-svc__tag{position:static;display:inline-block;
  vertical-align:middle;margin-left:4px;
  padding:0 4px;border-radius:2px;font-size:9px;line-height:14px}
html.device-mobile .v2-svc__chev{display:block;flex:0 0 auto;width:8px;height:8px;
  color:#333;transition:transform .2s ease}
html.device-mobile .v2-svc__item.is-open .v2-svc__chev{transform:rotate(180deg)}
html.device-mobile .v2-svc__desc{display:none;font-size:12px;line-height:1.5}
html.device-mobile .v2-svc__item.is-open .v2-svc__desc{display:block}
html.device-mobile .v2-svc__pic{display:none;width:100px;aspect-ratio:4/3}
html.device-mobile .v2-svc__item.is-open .v2-svc__pic{display:block}

/* ---------- 第八部分移动端规则（设计稿 20:332 折叠态 / 47:1549 全展开态，750 宽 ÷ 2）
   折叠整段 372.5 = padding 20 + 头部 50.5（12.5 + 8 + 30）+ 12 + 列表 270（5×36 + 9×12）+ 20
   行 = 序号 14.5 + 16 + 问题 + 16 + 图标 16；序号 10/18、问题 12/18（折叠 500 / 展开 700）
   答案 10/15 两端对齐，左缩进 30.5（= 14.5+16）、右留 32（= 16+16）→ 宽 272.5；行间 8
   展开项 104 = 36(问题两行) + 8 + 60(答案四行)；第 3 项 119（答案五行）；第 5 项 86 = 18+8+60 */
html.device-mobile .v2-faq{--fq-no:14.5px;--fq-gap:16px;--fq-icon:16px;
  padding:20px;gap:12px}
html.device-mobile .v2-faq__head{gap:8px}
html.device-mobile .v2-faq__kicker{font-size:10px;line-height:1.25}
html.device-mobile .v2-faq__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-faq__list{gap:12px}
html.device-mobile .v2-faq__item{gap:8px}
html.device-mobile .v2-faq__no{font-size:10px;line-height:1.8}
html.device-mobile .v2-faq__q{font-size:12px;line-height:1.5}
html.device-mobile .v2-faq__a p{font-size:10px;line-height:1.5}
html.device-mobile .v2-faq__line::after{height:1px}

/* ---------- 第九部分：底部转化 CTA（PC 设计稿 2:419 / 移动 20:372，750 宽 ÷ 2）
   区块 1920×551：白底 + 光束图（opacity .66，STRETCH 铺满）、padding 80/120、
   纵向 gap 48、全部居中
   = 80 + 113(标题组) + 48 + 100(副标题组) + 48 + 82(按钮) + 80
   标题组 113 = kicker 20/25 橙 600 + 16 + 数黑体 48/72 700 #212121
   副标题组 100 = 28/42 500 #6F6F6F + 16 + 28/42
   按钮行 gap 64：预约演示 247（#FF7800、叶形圆角 TL/BR 8 TR/BL 36、padding 20/48、
     gap 8、文字 28/42 500 #F8F8F8 + 32 箭头）
     添加 企业微信 获取方案 386（绿渐变 93°、radius 999、padding 20/48、文字 28/42 600 #FFF）
   ============================================================ */
.v2-cta{position:relative;isolation:isolate;overflow:hidden;background:#fff;
  padding:clamp(40px,4.17vw,80px) clamp(20px,6.25vw,120px);
  display:flex;flex-direction:column;align-items:center;gap:clamp(24px,2.5vw,48px);
  font-family:var(--v2-sans);text-align:center}
/* 光束装饰图铺满整段（稿中 1920×551、imageScaleMode=STRETCH → fill 才是稿中效果，
   1920/1440/1280 容器比例与图同为 3.48 所以与 cover 无差别，移动端压扁才与稿一致） */
.v2-cta__bg{position:absolute;inset:0;z-index:-1;display:block;
  width:100%;height:100%;object-fit:fill;opacity:.66;pointer-events:none}
.v2-cta__head{display:flex;flex-direction:column;align-items:center;
  gap:clamp(8px,.83vw,16px)}
.v2-cta__kicker{margin:0;color:var(--v2-orange);
  font-size:clamp(10px,1.04vw,20px);font-weight:600;line-height:1.25}
/* 同第八部分：数黑体垂直度量比 Pixso 高约 0.104×字号，translateY 补正落位 */
.v2-cta__title{margin:0;color:#212121;font-family:var(--v2-display);font-weight:700;
  font-size:clamp(20px,2.5vw,48px);line-height:1.5;
  transform:translateY(clamp(2px,.26vw,5px))}
.v2-cta__desc{display:flex;flex-direction:column;gap:clamp(8px,.83vw,16px)}
.v2-cta__desc p{margin:0;color:#6f6f6f;font-weight:500;
  font-size:clamp(12px,1.46vw,28px);line-height:1.5}
.v2-cta__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:clamp(16px,3.33vw,64px)}
.v2-cta__btn{display:inline-flex;align-items:center;justify-content:center;
  height:clamp(30px,4.27vw,82px);padding:0 clamp(12px,2.5vw,48px);cursor:pointer;
  white-space:nowrap;transition:.2s;line-height:1.5;
  font-size:clamp(12px,1.46vw,28px);font-family:var(--v2-sans)}
.v2-cta__btn--demo{gap:clamp(4px,.42vw,8px);font-weight:500;
  border-radius:clamp(2px,.42vw,8px) clamp(12px,1.88vw,36px);
  background:var(--v2-orange);color:var(--v2-text)}
/* 图标是 32 正方形（DSL 2:1356 框 32）；写死宽高，避免 SVG 懒加载前的 height:auto
   算出 0 高把箭头吃掉 */
.v2-cta__btn--demo img{width:clamp(16px,1.67vw,32px);height:clamp(16px,1.67vw,32px)}
.v2-cta__btn--demo:hover{filter:brightness(1.07)}
.v2-cta__btn--wx{border-radius:999px;font-weight:600;color:#fff;
  background:linear-gradient(93deg,#68cda0 0%,#87d379 60.3%,#bcd886 100%)}
.v2-cta__btn--wx:hover{filter:brightness(1.04)}

/* ---------- 第九部分移动端规则（设计稿 20:372，750 宽 ÷ 2）
   整段 188.5 = padding 20 + 头部 50.5（12.5 + 8 + 30）+ 12 + 副标题组 44（18 + 8 + 18）
              + 12 + 按钮行 30 + 20
   按钮：padding 12/24→6/12、gap 8→4、icon 32→16、文字 24/36→12/18、叶形圆角 4/24→2/12 */
html.device-mobile .v2-cta{padding:20px;gap:12px}
html.device-mobile .v2-cta__head{gap:8px}
html.device-mobile .v2-cta__kicker{font-size:10px;line-height:1.25}
html.device-mobile .v2-cta__title{font-size:20px;line-height:1.5}
html.device-mobile .v2-cta__desc{gap:8px}
html.device-mobile .v2-cta__desc p{font-size:12px;line-height:1.5}
html.device-mobile .v2-cta__row{gap:16px}
html.device-mobile .v2-cta__btn{height:30px;padding:0 12px;font-size:12px}
html.device-mobile .v2-cta__btn--demo{gap:4px;border-radius:2px 12px}
html.device-mobile .v2-cta__btn--demo img{width:16px}

/* ---------- 第十部分：页脚（PC 设计稿 2:444 / 移动 20:388，750 宽 ÷ 2）
   区块 1920×379（底 #1C1C1C）：padding 80/120、纵向 gap 80
   = 80 + 112(品牌+导航行) + 80 + 27(版权行) + 80
   品牌+导航行：横向 gap 64、顶部对齐
     品牌组 112 = LOGO 197×60 + 16 + 副标 24/36 500 #DDDDDD
     导航组右对齐、gap 32、padding 24/0，链接 20/30 500 #DDDDDD
   版权行 27 = 左文案 18/27 400 #FFFFFF（撑满）+ 右 ICP 同规格右对齐
   ============================================================ */
.v2-footer{background:#1c1c1c;
  padding:clamp(40px,4.17vw,80px) clamp(20px,6.25vw,120px);
  display:flex;flex-direction:column;gap:clamp(20px,4.17vw,80px);
  font-family:var(--v2-sans)}
.v2-footer__top{display:flex;align-items:flex-start;gap:clamp(24px,3.33vw,64px)}
.v2-footer__brand{display:flex;flex-direction:column;align-items:flex-start;
  gap:clamp(8px,.83vw,16px);flex:0 0 auto}
/* LOGO 原始比例 197:60（2 倍导出图 395×120），宽度随缩放、高度自适应 */
.v2-footer__logo{display:block;width:clamp(100px,10.26vw,197px);height:auto}
.v2-footer__slogan{margin:0;color:#ddd;font-weight:500;
  font-size:clamp(12px,1.25vw,24px);line-height:1.5}
/* 导航整体靠右（稿中 itemHoriAlign=MAX），链接在组顶 +24 */
.v2-footer__nav{display:flex;flex-wrap:wrap;justify-content:flex-end;
  align-items:flex-start;gap:clamp(16px,1.67vw,32px);margin-left:auto;
  padding:clamp(12px,1.25vw,24px) 0}
.v2-footer__nav a{color:#ddd;font-weight:500;text-decoration:none;
  font-size:clamp(10px,1.04vw,20px);line-height:1.5;transition:color .2s}
.v2-footer__nav a:hover{color:#fff}
.v2-footer__bottom{display:flex;justify-content:space-between;align-items:center;
  gap:clamp(12px,1.25vw,24px);flex-wrap:wrap}
.v2-footer__copy{margin:0;color:#fff;font-weight:400;
  font-size:clamp(9px,.94vw,18px);line-height:1.5}
/* 右侧「Copyright + 备案号」同排：79:40 里两个 text 紧邻（572 + 181 = 753），无额外间距 */
.v2-footer__legal{display:flex;align-items:center;flex-wrap:wrap;margin:0;
  color:#fff;font-weight:400;
  font-size:clamp(9px,.94vw,18px);line-height:1.5}
/* 79:40 / 79:378 的备案号都是 textDecoration=underline，颜色与版权文字同为 #FFF */
.v2-footer__icp{color:#fff;text-decoration:underline;text-underline-offset:2px;
  transition:color .2s}
.v2-footer__icp:hover{color:var(--v2-orange)}

/* ---------- 第十部分移动端规则（设计稿 20:388，750 宽 ÷ 2）
   整段 176.5 = padding 20 + 容器 111 + 12 + 版权行 13.5 + 20
   容器 111 = 品牌组 56（LOGO 100×30 + 8 + 副标 12/18）+ 16 + 导航 39（12 + 15 + 12）
   品牌与导航由横向改纵向（稿中为上下两块），导航改左对齐 */
html.device-mobile .v2-footer{padding:20px;gap:12px}
html.device-mobile .v2-footer__top{flex-direction:column;align-items:flex-start;gap:16px}
html.device-mobile .v2-footer__brand{gap:8px}
html.device-mobile .v2-footer__logo{width:100px}
html.device-mobile .v2-footer__slogan{font-size:12px;line-height:1.5}
html.device-mobile .v2-footer__nav{width:100%;margin-left:0;justify-content:flex-start;
  gap:16px;padding:12px 0}
html.device-mobile .v2-footer__nav a{font-size:10px;line-height:1.5}
html.device-mobile .v2-footer__copy,html.device-mobile .v2-footer__legal{
  font-size:9px;line-height:1.5}
/* 79:378 版权区三行竖排居中：3 × 13.5 + 2 × 8 = 56.5（= 稿 113 ÷ 2） */
html.device-mobile .v2-footer__bottom{flex-direction:column;align-items:center;
  gap:8px;text-align:center}
html.device-mobile .v2-footer__legal{flex-direction:column;align-items:center;gap:8px}
