/* ============================================================
 * mobile.css · 官网移动端适配 (响应式 · 全站可复用)
 * 页面重排锁在 768px 内；导航在 960px 起切换，避免窄桌面链接互相覆盖。
 * 链接顺序: 必须在各页内联 <style> / 外链 assets/*.css 之后 (</head> 前)。
 * 配套 JS: assets/mobile-nav.js (注入 .nav-burger / .mnav-*)。
 * 试点: winshang-yyt.html (2026-06-29) → 验收后铺其余产品子页。
 * ============================================================ */

/* 汉堡按钮 + 抽屉默认隐藏 (桌面端)。JS 在所有视口都注入抽屉 DOM, 故须在 @media 外兜底隐藏, 否则桌面页尾露出无样式抽屉文本 */
.nav-burger { display: none; }
.mnav-drawer, .mnav-overlay { display: none; }

@media (max-width: 960px) {
  .nav .nav-menu { display: none !important; }
  .nav .nav-inner > .nav-cta,
  .nav .megamenu .nav-cta { display: none !important; }
  .nav .nav-inner { display: flex; align-items: center; gap: 12px; padding-left: 20px; padding-right: 20px; }
  .nav .brand { flex: 0 0 auto; }
  .nav-burger {
    display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
    margin-left: auto; width: 42px; height: 42px; padding: 9px 8px;
    background: transparent; border: 0; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  .nav-burger span {
    display: block; height: 2px; width: 100%; border-radius: 2px;
    background: var(--brand-blue-deep, #0049FF); transition: transform .25s ease, opacity .2s ease;
  }
  .nav-burger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-burger.active span:nth-child(2) { opacity: 0; }
  .nav-burger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .mnav-overlay {
    display: block; position: fixed; inset: 0; z-index: 998; background: rgba(12, 22, 48, .42);
    opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease;
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  }
  .mnav-overlay.open { opacity: 1; visibility: visible; }
  .mnav-drawer {
    position: fixed; top: 0; right: 0; z-index: 999;
    width: min(84vw, 360px); height: 100%; background: #fff;
    box-shadow: -12px 0 40px rgba(0, 30, 90, .18);
    transform: translateX(100%); transition: transform .28s cubic-bezier(.4, 0, .2, 1);
    display: flex; flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch;
  }
  .mnav-drawer.open { transform: translateX(0); }
}

@media (max-width: 768px) {

  /* ===== 0. 全局防横向溢出 (用 clip 而非 hidden: 不创建滚动容器, 不破坏纵向/惯性滚动) ===== */
  html, body { overflow-x: clip; max-width: 100%; }
  img { max-width: 100%; }

  /* ===== 1. 顶栏 → 汉堡 ===== */
  .nav .nav-menu { display: none !important; }
  .nav .nav-inner > .nav-cta,
  .nav .megamenu .nav-cta { display: none !important; }
  .nav .nav-inner { display: flex; align-items: center; gap: 12px; padding-left: 16px; padding-right: 16px; }
  .nav .brand { flex: 0 0 auto; }
  .nav .brand img { height: 30px; width: auto; }

  .nav-burger {
    display: inline-flex; flex-direction: column; justify-content: center; gap: 5px;
    margin-left: auto; width: 42px; height: 42px; padding: 9px 8px;
    background: transparent; border: 0; cursor: pointer; -webkit-tap-highlight-color: transparent;
  }
  .nav-burger span {
    display: block; height: 2px; width: 100%; border-radius: 2px;
    background: var(--brand-blue-deep, #0049FF); transition: transform .25s ease, opacity .2s ease;
  }
  .nav-burger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav-burger.active span:nth-child(2) { opacity: 0; }
  .nav-burger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  /* ===== 2. 侧滑抽屉 ===== */
  .mnav-overlay {
    display: block; position: fixed; inset: 0; z-index: 998; background: rgba(12, 22, 48, .42);
    opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease;
    -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  }
  .mnav-overlay.open { opacity: 1; visibility: visible; }
  .mnav-drawer {
    position: fixed; top: 0; right: 0; z-index: 999;
    width: min(84vw, 340px); height: 100%; background: #fff;
    box-shadow: -12px 0 40px rgba(0, 30, 90, .18);
    transform: translateX(100%); transition: transform .28s cubic-bezier(.4, 0, .2, 1);
    display: flex; flex-direction: column; overflow-y: auto; -webkit-overflow-scrolling: touch;
  }
  .mnav-drawer.open { transform: translateX(0); }

  .mnav-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 18px; border-bottom: 1px solid rgba(0, 30, 90, .08);
    position: sticky; top: 0; background: #fff; z-index: 1;
  }
  .mnav-title { font-weight: 700; font-size: 16px; color: var(--text-ink, #0c1630); }
  .mnav-close {
    width: 34px; height: 34px; border: 0; background: transparent;
    font-size: 28px; line-height: 1; color: var(--text-ink-mute, #5a6478); cursor: pointer;
  }

  .mnav-list { padding: 8px 0; flex: 1 1 auto; }
  .mnav-row {
    display: flex; align-items: center; justify-content: space-between; width: 100%;
    padding: 14px 18px; font-size: 15.5px; font-weight: 600; text-align: left;
    color: var(--text-ink, #0c1630); background: transparent; border: 0; cursor: pointer;
    text-decoration: none; box-sizing: border-box;
  }
  .mnav-caret { transition: transform .22s ease; color: var(--text-ink-mute, #8a93a6); }
  .mnav-group.expanded .mnav-caret { transform: rotate(180deg); }
  .mnav-sub {
    max-height: 0; overflow: hidden; transition: max-height .3s ease; background: rgba(0, 73, 255, .035);
  }
  .mnav-group.expanded .mnav-sub { max-height: 640px; }
  .mnav-sub a {
    display: block; padding: 11px 18px 11px 32px; font-size: 14px; font-weight: 500;
    color: var(--text-ink-mute, #4a5568); text-decoration: none;
    border-top: 1px solid rgba(0, 30, 90, .05);
  }
  .mnav-sub a:active { background: rgba(0, 73, 255, .08); }

  .mnav-cta { padding: 16px 18px 24px; border-top: 1px solid rgba(0, 30, 90, .08); }
  .mnav-cta .btn { width: 100%; justify-content: center; }

  /* ===== 3. 满屏化 section 解锁 (移动端不锁视口高, 改自然流) ===== */
  body.ws-fullscreen > section { min-height: auto !important; }
  body.ws-fullscreen > section.ws-hero,
  body.ws-fullscreen > section.uh { min-height: auto !important; }
  body.ws-fullscreen > section.ws-sec,
  body.ws-fullscreen > section.partner-wall-section,
  body.ws-fullscreen > section.cs-sec,
  body.ws-fullscreen > section.s4-section,
  body.ws-fullscreen > section.s2-section,
  body.ws-fullscreen > section.cmi-sec,
  body.ws-fullscreen > section.hr-sec {
    padding-top: 48px !important; padding-bottom: 48px !important;
    padding-left: 16px !important; padding-right: 16px !important;
  }

  /* ===== 4. 通用内容容器收窄 ===== */
  .ws-sec-inner, .wsx-wrap, .ix1-stage, .ix1-panel, .ix1-left, .ix1-right, .ix1-mock {
    max-width: 100% !important; width: 100% !important; box-sizing: border-box;
  }
  .ws-sec-inner { padding-left: 4px; padding-right: 4px; }

  /* ===== 5. 多列布局 → 折叠 ===== */
  .ix1-panel { grid-template-columns: 1fr !important; gap: 24px !important; }
  .ix1-features { grid-template-columns: 1fr !important; }
  .ix1-kpi {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
    margin-bottom: 14px !important;
  }
  .ix1-kpi-cell {
    display: grid !important;
    grid-template-columns: minmax(58px, auto) minmax(0, 1fr) minmax(36px, auto) !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    min-width: 0 !important;
  }
  .ix1-kpi-cell .k,
  .ix1-kpi-cell .v,
  .ix1-kpi-cell .d {
    margin: 0 !important;
    min-width: 0 !important;
  }
  .ix1-kpi-cell .v {
    display: block !important;
    font-size: 17px !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  .ix1-kpi-cell .d {
    text-align: right !important;
    white-space: normal !important;
  }
  .ix1-tabs,
  .ix1-tabs.cols-2, .ix1-tabs.cols-3, .ix1-tabs.cols-4,
  .ix1-tabs.cols-5, .ix1-tabs.cols-6, .ix1-tabs.cols-7 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    max-width: 100% !important; gap: 8px !important; margin-bottom: 28px !important;
  }
  /* tab 文案在窄格里允许换行, 否则 nowrap 撑出横向溢出 */
  .ix1-tab-zh, .ix1-tab-en, .ix1-tab .ix1-tab-zh, .ix1-tab .ix1-tab-en {
    white-space: normal !important;
  }
  .ws-hero-inner { grid-template-columns: 1fr !important; gap: 32px !important; }
  .ws-hero-stats { grid-template-columns: repeat(2, 1fr) !important; gap: 20px !important; }

  /* ===== 6. Hero: 裁掉溢出的装饰球 + 浮卡, 字号收一档 ===== */
  .ws-hero, .ws-hero-blobs, .ws-hero-bg, .ws-hero-mesh { overflow: hidden !important; }
  .ws-hero-mockup, .ws-hero-visual, .ws-hero-mocks { display: none !important; }   /* 桌面悬浮产品仪表盘 mock 在窄屏溢出且价值低, 隐藏 */
  .ws-hero-title, h1.ws-hero-title { font-size: clamp(34px, 12vw, 52px) !important; line-height: 1.08 !important; }
  .ws-hero-lead, .ws-hero-sub { font-size: 15px !important; }
  .ws-hero-cta { flex-wrap: wrap; gap: 12px !important; }
  .ws-hero-cta .btn { width: 100%; justify-content: center; }

  /* ===== 7. 区块标题/正文降一档 ===== */
  .ws-sec-title { font-size: 24px !important; line-height: 1.2 !important; }
  .ws-sec-sub { font-size: 14px !important; }

  /* ===== 8. trust / kpi / 合作墙 ===== */
  .ws-trust-row, .hero-trust { flex-wrap: wrap; }
  .wsx-kpi, .wsx-trust-grid { grid-template-columns: repeat(2, 1fr) !important; }
  .partner-wall-grid, .pw-grid { grid-template-columns: repeat(3, 1fr) !important; }
}

/* 极窄屏 (≤420px) 再收一档: 多列 tab 单列 */
@media (max-width: 420px) {
  .ix1-tabs,
  .ix1-tabs.cols-2, .ix1-tabs.cols-3, .ix1-tabs.cols-4,
  .ix1-tabs.cols-5, .ix1-tabs.cols-6, .ix1-tabs.cols-7 {
    grid-template-columns: 1fr !important;
  }
  .ws-hero-stats { grid-template-columns: 1fr !important; }
  .partner-wall-grid, .pw-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

/* 非 yyt 子页统一用 .uh 作 hero, 裁掉装饰球溢出 (与 .ws-hero 同理) */
@media (max-width: 768px) {
  section.uh, .uh-blobs, .uh-bg, .uh-mesh { overflow: hidden !important; }
}

/* ============================================================
 * 全站子页专属折叠 (2026-06-29 全站铺开 · 静态审计产出, 已逐页实跑核查)
 * ============================================================ */
@media (max-width: 768px) {
  /* about.html */
  body.ws-fullscreen.ws-about .s6-strip {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 0 !important;
  }
  
  body.ws-fullscreen.ws-about .abt-eco-head {
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 12px !important;
  }
  
  body.ws-fullscreen.ws-about .abt-eco-head .b {
  white-space: normal !important;
  word-break: break-word !important;
  }
  
  body.ws-fullscreen.ws-about .abt-scene-grid {
  grid-template-columns: 1fr !important;
  }
  /* brand-solutions.html */
  body.ws-fullscreen.ws-industry .s6-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 24px !important; }
  /* cases.html */
  body.ws-fullscreen.ws-cases .ca-hero-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
  body.ws-fullscreen.ws-cases .ca-hl-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  body.ws-fullscreen.ws-cases #gov .ca-case-card .gov-stack { grid-template-columns: 1fr !important; gap: 8px !important; }
  body.ws-fullscreen.ws-cases #venue .ca-case-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
  body.ws-fullscreen.ws-cases #venue .ca-case-card.ca-card-shot,
  body.ws-fullscreen.ws-cases #venue .ca-case-card.ca-card-shot:nth-child(-n+2) { grid-template-columns: 1fr !important; gap: 10px !important; }
  body.ws-fullscreen.ws-cases #brand .ca-case-grid { grid-template-columns: 1fr !important; gap: 10px !important; }
  body.ws-fullscreen.ws-cases #partners .ca-pwall-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  body.ws-fullscreen.ws-cases #partners .ca-pwall-group:last-of-type .ca-pwall-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 8px !important; }
  /* city-brain.html */
  body.ws-fullscreen.ws-custom .cs-value-grid {
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  }
  
  body.ws-fullscreen.ws-custom .cs-report-grid,
  body.ws-fullscreen.ws-custom .cb-report-grid {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  }
  /* cmi.html */
  body.ws-fullscreen.ws-cmi .cmi-pain-grid{grid-template-columns:1fr!important;}
  body.ws-fullscreen.ws-cmi .cmi-overview-grid{grid-template-columns:1fr!important;}
  body.ws-fullscreen.ws-cmi .cmi-auto-list{grid-template-columns:1fr!important;}
  body.ws-fullscreen.ws-cmi .cmi-mod-list{grid-template-columns:1fr!important;}
  body.ws-fullscreen.ws-cmi .cmi-analysis-grid{grid-template-columns:1fr!important;}
  body.ws-fullscreen.ws-cmi .cmi-finance-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.ws-fullscreen.ws-cmi .cmi-mobile-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.ws-fullscreen.ws-cmi .cmi-feature-grid{grid-template-columns:1fr!important;}
  body.ws-fullscreen.ws-cmi .cmi-service-grid{grid-template-columns:1fr!important;}
  body.ws-fullscreen.ws-cmi .cmi-security-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  body.ws-fullscreen.ws-cmi .cmi-impl-flow .if-step .s-n{white-space:normal!important;}
  body.ws-fullscreen.ws-cmi .cmi-case-tags span{white-space:normal!important;}
  /* data-api.html */
  /* 375px 手机端避免横向溢出 - data-api.html 补充规则 */
  body.ws-fullscreen.ws-custom .cs-levels {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 12px !important;
  }
  
  body.ws-fullscreen.ws-custom #foundation .cs-levels {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 12px !important;
  }
  
  body.ws-fullscreen.ws-custom #capability .cs-func3-grid {
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  }
  /* data-assets.html */
  body.dd-scope-snap .dd-scope .db-rail {
  grid-template-columns: 1fr !important;
  gap: 8px !important;
  }
  
  body.dd-scope-snap .dd-scope .ticker-cols,
  body.dd-scope-snap .dd-scope .trow {
  grid-template-columns: 1fr auto auto !important;
  gap: 6px !important;
  }
  
  body.dd-scope-snap .dd-scope .trow .val,
  body.dd-scope-snap .dd-scope .delta {
  white-space: normal !important;
  font-size: 12px !important;
  }
  
  body.dd-scope-snap .dd-scope .src-col .sc-head .tt {
  min-width: 0 !important;
  }
  
  body.dd-scope-snap .dd-scope .src-col .sc-head .tt b {
  word-break: break-word !important;
  line-height: 1.3 !important;
  }
  /* gov-solutions.html */
  body.ws-fullscreen.ws-industry .bs-pain-grid {
  grid-template-columns: 1fr !important;
  gap: 16px !important;
  }
  
  body.ws-fullscreen.ws-industry .bs-eng-detail-grid--5 {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  }
  
  body.ws-fullscreen.ws-industry .bs-eng-loop--flow {
  flex-wrap: wrap !important;
  white-space: normal !important;
  overflow-x: visible !important;
  }
  
  body.ws-fullscreen.ws-industry .s6-strip {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 20px !important;
  }
  
  body.ws-fullscreen.ws-industry .bs-eng-track {
  flex-wrap: wrap !important;
  gap: 8px !important;
  }
  
  body.ws-fullscreen.ws-industry .bs-eng-step {
  min-width: 0 !important;
  flex: 0 1 calc(50% - 4px) !important;
  }
  
  body.ws-fullscreen.ws-industry .bs-eng-arrow {
  display: none !important;
  }
  /* group-brand.html */
  body.ws-fullscreen.ws-custom .gb-case-wall { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  /* hr-solutions.html */
  /* ===== HR 赢才页面 · 多列网格单列化 (375px 风险修复) ===== */
  
  /* 双列品牌卡 → 单列 */
  body.ws-fullscreen.ws-hr .hr-brand-grid {
  grid-template-columns: 1fr !important;
  }
  
  /* 四列/两列优势卡 → 单列 */
  body.ws-fullscreen.ws-hr .hr-adv-grid,
  body.ws-fullscreen.ws-hr .hr-adv-grid.compact {
  grid-template-columns: 1fr !important;
  }
  
  /* 双列深度卡 → 单列 */
  body.ws-fullscreen.ws-hr .hr-sol-grid {
  grid-template-columns: 1fr !important;
  }
  
  /* 三列阶段卡 → 单列 */
  body.ws-fullscreen.ws-hr .hr-stage-grid {
  grid-template-columns: 1fr !important;
  }
  
  /* 四列培训卡 → 两列 (375px 下可勉强显示，但 420px 以下建议单列) */
  body.ws-fullscreen.ws-hr .hr-train-grid {
  grid-template-columns: repeat(2, 1fr) !important;
  }
  
  /* 三列猎聘卡 → 单列 */
  body.ws-fullscreen.ws-hr .hr-hunt-grid {
  grid-template-columns: 1fr !important;
  }
  
  /* 三列案例卡 → 单列 */
  body.ws-fullscreen.ws-hr .hr-case-grid {
  grid-template-columns: 1fr !important;
  }
  
  /* 双列模块清单 → 单列 */
  body.ws-fullscreen.ws-hr .hr-mod-list {
  grid-template-columns: 1fr !important;
  }
  /* influence-events.html */
  body.ws-fullscreen.ws-inf .uh-foot {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  padding: 16px !important;
  }
  body.ws-fullscreen.ws-inf .uh-foot .uf {
  padding: 8px 16px !important;
  }
  body.ws-fullscreen.ws-inf .inf-highlights {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  /* influence-marketing.html */
  /* 375px 手机适配补充 — 页面专用网格折叠 */
  /* fs-flow: 5列 → 2列 (中等屏) → 1列 (375px) */
  body.ws-fullscreen.ws-inf .fs-flow {
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 8px !important;
  }
  
  /* fs-phase-grid: 3列 → 1列 */
  body.ws-fullscreen.ws-inf .fs-phase-grid {
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  }
  
  /* fs-ent-grid: 2列 → 1列 */
  body.ws-fullscreen.ws-inf .fs-ent-grid {
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  }
  
  /* fs-hero-flow: 5列 → 1列 (375px 无法横排5步) */
  body.ws-fullscreen.ws-inf .fs-hero-flow {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  }
  
  /* fs-hero-seg: 3列数据 → 1列 */
  body.ws-fullscreen.ws-inf .fs-hero-seg {
  grid-template-columns: 1fr !important;
  gap: 10px !important;
  }
  
  /* fs-gov-grid: 3列能力卡 → 1列 */
  body.ws-fullscreen.ws-inf .fs-gov-grid {
  grid-template-columns: 1fr !important;
  gap: 14px !important;
  }
  
  /* fs-ent-flow: 5轨 (1fr auto 1fr auto 1fr) → 单列 */
  body.ws-fullscreen.ws-inf .fs-ent-flow {
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  }
  /* influence-media.html */
  /* 375px 手机横向溢出风险 — 补充 mobile.css 的不足 */
  body.ws-fullscreen.ws-inf #wechat .inf-wx-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  
  body.ws-fullscreen.ws-inf #wechat .fs-inf-sxs {
  grid-template-columns: 1fr !important;
  }
  
  .inf-vmatrix-stats {
  grid-template-columns: 1fr !important;
  }
  
  .inf-vchips {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  
  body.ws-fullscreen.ws-inf #video .inf-vchips {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  
  .inf-spread-grid {
  grid-template-columns: 1fr !important;
  }
  
  .inf-spread-kpis {
  grid-template-columns: 1fr !important;
  }
  
  .inf-stat-grid-pc {
  grid-template-columns: 1fr !important;
  }
  /* influence-rankings.html */
  body.ws-fullscreen.ws-inf .inf-capmx { grid-template-columns: 1fr !important; }
  body.ws-fullscreen.ws-inf .inf-rank-hero { grid-template-columns: 1fr !important; }
  body.ws-fullscreen.ws-inf .uh-foot { grid-template-columns: 1fr !important; gap: 0 !important; }
  /* influence-research.html */
  /* 影响力研究页 (influence-research.html) 375px 移动端适配补充 — 在 mobile.css 后追加 */
  /* .uh-foot: 560px 规则的 repeat(2,1fr) 在 375px 仍可能挤压，改为单列 */
  body.ws-fullscreen.ws-inf > section.uh .uh-foot {
  grid-template-columns: 1fr !important;
  gap: 12px 0 !important;
  padding: 16px 12px !important;
  }
  body.ws-fullscreen.ws-inf > section.uh .uh-foot .uf {
  padding: 4px 12px !important;
  }
  body.ws-fullscreen.ws-inf > section.uh .uh-foot .uf + .uf::before {
  display: none !important;
  }
  
  /* .inf-loop-flow .node: 禁用 nowrap，允许换行并减少 padding */
  .inf-loop-flow .node {
  white-space: normal !important;
  padding: 8px 12px !important;
  font-size: 13px !important;
  }
  
  /* #reports .inf-sec-head h2: 强制取消 nowrap (如果被继承) */
  #reports .inf-sec-head h2 {
  white-space: normal !important;
  }
  /* mi.html */
  /* 移动端 375px 适配修复 — MI 闪购页 */
  
  /* 修复 1: 城市网格在 375px 需单列 */
  body.ws-mi .mi-city-grid {
  grid-template-columns: 1fr !important;
  }
  /* 修复 2: 场景赋能左右两列在 375px 需单列，且右列容器须重置定宽 */
  body.ws-mi #scenes .mi-scene-layout {
  grid-template-columns: 1fr !important;
  gap: 24px !important;
  }
  body.ws-mi #scenes .mi-scene-layout > .s2-mock,
  body.ws-mi #scenes .mi-scene-layout > div:last-child {
  width: auto !important;
  max-width: none !important;
  }
  body.ws-mi #scenes .s2-mock .body {
  min-height: auto !important;
  }
  /* 修复 3: Tab 标签在 375px 允许换行 */
  body.ws-industry #scenes .ix1-tabs.cols-4 .ix1-tab-zh {
  white-space: normal !important;
  }
  /* venue-solutions.html */
  body.ws-fullscreen.ws-industry > section#ops .ws-sec-title {
  white-space: normal !important;
  }
  /* vip.html */
  .wb-field-row {
  grid-template-columns: 1fr !important;
  }
  .vip-hero svg.arc {
  right: 0 !important;
  bottom: -6% !important;
  width: min(72%, 280px) !important;
  }
  /* winshang-city-map.html */
  body.ws-fullscreen.ws-product .cm-db-tabs{flex-wrap:wrap !important;}
  body.ws-fullscreen.ws-product .cm-db-tab{white-space:normal !important;}
  body.ws-fullscreen.ws-product .cm-gov-cities-grid{grid-template-columns:1fr !important;}
  body.ws-fullscreen.ws-product .cm-report-card .ribbon{
  right: 10px !important;
  top: 12px !important;
  padding: 5px 12px !important;
  border-radius: 999px !important;
  letter-spacing: .08em !important;
  transform: none !important;
  }
  /* winshang-demo.html */
  /* 375px 手机适配 · 补充 mobile.css 未覆盖区间 */
  /* ix2-carousel: 单张卡片铺满 + 禁负边距bleed */
  body.ws-home-fs .ix2-carousel {
  margin: 0 !important;
  padding: 8px 0 24px !important;
  }
  body.ws-home-fs .ix2-card {
  flex: 0 0 100% !important;
  min-width: unset !important;
  min-height: auto !important;
  }
  body.ws-home-fs .ix2-track {
  gap: 0 !important;
  }
  
  /* ix1-tabs: 超窄屏 (≤640px) 改单列 */
  body.ws-home-fs .ix1-tabs {
  grid-template-columns: 1fr !important;
  }
  /* yzxz.html */
  body.ws-fullscreen.ws-product.ws-industry .sys-mod-feats { grid-template-columns: 1fr !important; }
  body.ws-fullscreen.ws-product.ws-industry .data-mock-hint { grid-template-columns: 1fr !important; }
  body.ws-fullscreen.ws-product.ws-industry .dash3 { grid-template-columns: 1fr !important; }
  body.ws-fullscreen.ws-product.ws-industry .pain-solve { grid-template-columns: 1fr !important; }
}

@media (max-width: 420px) {
  /* brand-solutions.html */
  body.ws-fullscreen.ws-industry .s6-strip { grid-template-columns: 1fr !important; }
  /* data-api.html */
  body.ws-fullscreen.ws-custom .cs-levels,
  body.ws-fullscreen.ws-custom #foundation .cs-levels {
  grid-template-columns: 1fr !important;
  }
  /* gov-solutions.html */
  body.ws-fullscreen.ws-industry .s6-strip {
  grid-template-columns: 1fr !important;
  }
  
  body.ws-fullscreen.ws-industry .bs-eng-step {
  flex: 0 1 100% !important;
  }
  /* hr-solutions.html */
  /* ≤420px 极窄屏: 培训卡继续单列化 */
  body.ws-fullscreen.ws-hr .hr-train-grid {
  grid-template-columns: 1fr !important;
  }
  /* influence-events.html */
  body.ws-fullscreen.ws-inf .uh-foot {
  grid-template-columns: 1fr !important;
  }
  body.ws-fullscreen.ws-inf .inf-highlights {
  grid-template-columns: 1fr !important;
  }
  /* influence-marketing.html */
  /* 极窄屏 375px 再收一档 */
  body.ws-fullscreen.ws-inf .fs-flow {
  grid-template-columns: 1fr !important;
  }
}
/* ============================================================
 * 批次实跑核查补丁 (2026-06-29 · iframe 探测 375px 发现)
 * ============================================================ */
@media (max-width: 768px) {
  /* .uh hero 通用两列 → 单列 (about/data-api/group-brand 等所有 .uh 页, 被源码顺序盖掉的强制纠正) */
  .uh-inner { grid-template-columns: 1fr !important; gap: 28px !important; }
  .uh-left, .uh-visual, .uh-copy, .uh-media { min-width: 0 !important; max-width: 100% !important; width: auto !important; }
  .uh-visual img, .uh-visual svg, .uh-visual canvas { max-width: 100% !important; height: auto !important; }
  section.uh { overflow: hidden !important; }   /* 裁掉 hero 装饰球 (.hb/.uh-blob 等) */

  /* about · 荣誉墙 3 列 → 2 列 (内联无移动折叠) */
  body.ws-about #honors .honors-grid { grid-template-columns: repeat(2, 1fr) !important; max-width: 100% !important; }
}
@media (max-width: 420px) {
  body.ws-about #honors .honors-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 768px) {
  /* grid item min-width:auto 撑爆修复: hero 子列允许收缩 + 文案换行 (demo/city-map ws-hero-left 495px 根因) */
  .ws-hero-left, .ws-hero-right, .ws-hero-visual, .ws-hero-copy, .ws-hero-main > * { min-width: 0 !important; max-width: 100% !important; }
  .ws-hero-eyebrow, .uh-eyebrow, .cm-h1, .ws-hero-left .line, .ws-hero-title .line { white-space: normal !important; overflow-wrap: anywhere; }
  .ws-hero-stats, .ws-hero-stats.stats-6 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .ws-mock-stage, .ws-hero-right .dl-map-img-wrap, .ws-hero-right img { max-width: 100% !important; }

  /* 通用 s6-strip 折叠 (invest-capital 等 ws-custom 页 s6-cell) */
  .s6-strip { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }

  /* 图表/截图类等比缩 (yzxz sys-mod-shot 等) */
  .sys-mod-shot, .ix1-tab-fig img, .ix1-tab-fig, .s2-mock img { max-width: 100% !important; height: auto !important; }
}
@media (max-width: 420px) {
  .ws-hero-stats, .ws-hero-stats.stats-6 { grid-template-columns: 1fr !important; }
  .s6-strip { grid-template-columns: 1fr !important; }
}

@media (max-width: 768px) {
  /* .uh hero 统计行 (4列显式网格 ~427px) → 2 列 (data-api 等所有 uh 页) */
  .uh-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  /* 首页 ix2 Tab 式轮播: tab 行换行避免 13px 溢出 (轮播本身 overflow:hidden + tab 切卡, 功能正常) */
  body.ws-home-fs .ix2-tabbar { flex-wrap: wrap !important; }
  /* yzxz 模块截图容器裁掉边缘溢出 */
  .ix1-tab-fig { overflow: hidden !important; }
}
@media (max-width: 420px) {
  .uh-stats { grid-template-columns: 1fr !important; }
}

/* ============================================================
 * 移动端最终收口 (2026-06-29 · 首屏 / 二维码 / 图表 / 页脚)
 * ============================================================ */
@media (max-width: 768px) {
  body.ws-fullscreen.ws-inf > section.uh {
    padding-top: max(176px, calc(var(--nav-h, 72px) + 96px)) !important;
  }
  .nav-burger {
    background: rgba(255,255,255,.86);
    border: 1px solid rgba(0,73,255,.14);
    border-radius: 999px;
    box-shadow: 0 10px 24px -18px rgba(0,73,255,.55), inset 0 1px 0 rgba(255,255,255,.9);
  }
  .nav-burger span { height: 2.5px; }

  body.ws-home-fs .ws-hero {
    padding: 44px 20px 52px !important;
  }
  body.ws-home-fs .ws-hero-inner {
    max-width: 100% !important;
    gap: 0 !important;
  }
  body.ws-home-fs .ws-hero-eyebrow {
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
    gap: 8px;
    padding: 8px 12px;
    font-size: 11px;
    line-height: 1.45;
    letter-spacing: .1em;
    margin-bottom: 22px;
  }
  body.ws-home-fs .ws-hero h1 {
    font-size: clamp(39px, 11.4vw, 48px) !important;
    line-height: 1.08 !important;
    letter-spacing: -0.025em !important;
    margin-bottom: 24px !important;
  }
  body.ws-home-fs .ws-hero-sub {
    max-width: 100% !important;
    font-size: 14.5px !important;
    line-height: 1.78 !important;
    margin-bottom: 28px !important;
  }
  body.ws-home-fs .ws-hero-ctas {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 12px !important;
    margin-bottom: 28px !important;
  }
  body.ws-home-fs .ws-hero-ctas .btn {
    width: 100%;
    min-width: 0;
    height: 54px;
    padding-left: 12px;
    padding-right: 12px;
    justify-content: center;
    white-space: nowrap;
    font-size: 15px;
  }
  body.ws-home-fs .ws-hero-stats,
  body.ws-home-fs .ws-hero-stats.stats-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 12px !important;
    border: 1px solid rgba(0,73,255,.12) !important;
    border-radius: 18px;
    background: rgba(255,255,255,.56);
    -webkit-backdrop-filter: blur(10px) saturate(130%);
    backdrop-filter: blur(10px) saturate(130%);
  }
  body.ws-home-fs .ws-hero-stat {
    min-width: 0;
    padding: 14px 12px !important;
    border: 1px solid rgba(0,73,255,.1) !important;
    border-radius: 14px;
    background: linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,.64));
  }
  body.ws-home-fs .ws-hero-stat .v {
    display: flex;
    align-items: baseline;
    gap: 4px;
    white-space: nowrap;
  }
  body.ws-home-fs .ws-hero-stat .cnt {
    font-size: clamp(30px, 9.3vw, 36px) !important;
    line-height: .95;
    letter-spacing: -0.04em;
  }
  body.ws-home-fs .ws-hero-stat .u {
    font-size: 11px !important;
    line-height: 1;
    white-space: nowrap;
    color: var(--brand-blue-deep, #0049FF);
    font-weight: 800;
  }
  body.ws-home-fs .ws-hero-stat .l {
    margin-top: 8px !important;
    font-size: 12px !important;
    line-height: 1.35;
    color: var(--text-ink-mute, #6B7280);
  }
  body.ws-home-fs .ix2-carousel {
    margin: 0 !important;
    padding: 8px 0 24px !important;
    overflow: hidden !important;
  }
  body.ws-home-fs .ix2-track {
    gap: 20px !important;
  }
  body.ws-home-fs .ix2-card {
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  body.ws-fullscreen.ws-inf #wechat .inf-wx-grid {
    gap: 12px !important;
  }
  body.ws-fullscreen.ws-inf #wechat .inf-wx-card {
    min-height: 184px !important;
    padding: 12px 8px !important;
    justify-content: flex-start !important;
  }
  body.ws-fullscreen.ws-inf #wechat .inf-wx-card img {
    width: 96px !important;
    height: 96px !important;
  }
  body.ws-fullscreen.ws-inf #video .inf-vchip {
    min-height: 168px !important;
    padding: 12px 8px !important;
  }
  body.ws-fullscreen.ws-inf #video .inf-vchip img {
    width: 96px !important;
    height: 96px !important;
  }
  body.ws-fullscreen.ws-inf #video .inf-vchip-tx span {
    font-size: 12px !important;
  }
  body.ws-fullscreen.ws-inf #video .inf-vchip-tx em {
    font-size: 10px !important;
  }

  #system .ix1-tab-fig,
  #system .sys-mod-shot,
  #data .ix1-tab-fig {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
  }

  .site-footer {
    padding: 34px 20px 26px !important;
  }
  .sf-inner {
    grid-template-columns: 1fr !important;
    gap: 26px !important;
    padding-bottom: 28px !important;
  }
  .sf-brand p { max-width: 100% !important; }
  .site-footer .sf-brand .logo-c,
  .sf-brand .logo-c { width: auto !important; max-width: none !important; object-fit: contain !important; }
  .sf-col h5 { margin-bottom: 12px !important; }
  .sf-col ul { gap: 8px !important; }
  .sf-bottom {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 14px !important;
    letter-spacing: .04em !important;
    word-break: break-word;
  }
  .sf-bottom .links {
    flex-wrap: wrap !important;
    gap: 12px 18px !important;
  }
}

@media (max-width: 420px) {
  body.ws-home-fs .ws-hero-ctas {
    grid-template-columns: 1fr 1fr !important;
  }
  body.ws-home-fs .ws-hero-ctas .btn {
    font-size: 14px;
  }
  body.ws-home-fs .ws-hero-stats,
  body.ws-home-fs .ws-hero-stats.stats-6 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 768px) {
  body.dd-scope-snap .dd-scope .band:has(.db-detail) {
    padding: 42px 0 !important;
  }
  body.dd-scope-snap .dd-scope .db-detail,
  body.dd-scope-snap .dd-scope .db-detail.rev {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 18px !important;
    min-height: 0 !important;
  }
  body.dd-scope-snap .dd-scope .db-detail.rev > .left,
  body.dd-scope-snap .dd-scope .db-detail.rev > .ticker {
    order: initial !important;
  }
  body.dd-scope-snap .dd-scope .db-detail .left,
  body.dd-scope-snap .dd-scope .db-detail .ticker {
    width: 100% !important;
    min-width: 0 !important;
  }
  body.dd-scope-snap .dd-scope .db-detail .ticker {
    height: auto !important;
    min-height: 360px !important;
  }
  body.dd-scope-snap .dd-scope .dd-head {
    gap: 12px !important;
  }
  body.dd-scope-snap .dd-scope .dd-no {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
    font-size: 21px !important;
  }
  body.dd-scope-snap .dd-scope .dd-titles h3 {
    font-size: 30px !important;
    line-height: 1.16 !important;
  }
  body.dd-scope-snap .dd-scope .dd-sub {
    font-size: 14.5px !important;
    line-height: 1.7 !important;
  }
  body.dd-scope-snap .dd-scope .dg-head .t small {
    display: block !important;
    margin-left: 0 !important;
    margin-top: 4px !important;
    line-height: 1.45 !important;
    white-space: normal !important;
  }
  body.dd-scope-snap .dd-scope .ticker-head {
    align-items: flex-start !important;
    gap: 12px !important;
  }
  body.dd-scope-snap .dd-scope .ticker-head .sync {
    max-width: 58% !important;
    text-align: right !important;
    white-space: normal !important;
  }
  body.dd-scope-snap .dd-scope .ticker-cols,
  body.dd-scope-snap .dd-scope .trow {
    grid-template-columns: minmax(0, 1fr) minmax(54px, auto) minmax(52px, auto) !important;
    gap: 8px !important;
  }
  body.dd-scope-snap .dd-scope .trow .lbl {
    min-width: 0 !important;
  }
  body.dd-scope-snap .dd-scope .trow .val,
  body.dd-scope-snap .dd-scope .delta {
    display: inline-flex !important;
    align-items: baseline !important;
    justify-content: flex-end !important;
    gap: 2px !important;
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }
  body.dd-scope-snap .dd-scope .delta .ar {
    display: inline !important;
    flex: 0 0 auto !important;
  }
  body.dd-scope-snap .dd-scope .trow .lbl .nm,
  body.dd-scope-snap .dd-scope .trow .lbl .meta {
    white-space: normal !important;
  }
}

@media (max-width: 420px) {
  body.dd-scope-snap .dd-scope .ticker-head {
    flex-direction: column !important;
  }
  body.dd-scope-snap .dd-scope .ticker-head .sync {
    max-width: 100% !important;
    text-align: left !important;
  }
  body.dd-scope-snap .dd-scope .ticker-cols,
  body.dd-scope-snap .dd-scope .trow {
    grid-template-columns: minmax(0, 1fr) 58px 58px !important;
  }
}

/* ============================================================
 * 文字完整显示 (2026-06-29 · 移动端禁 nowrap 截断, 标题/导语全部换行)
 * 根因: 桌面为单行美观给标题设 white-space:nowrap, 窄屏被 overflow-x:clip 切掉
 * ============================================================ */
@media (max-width: 768px) {
  h1, h2, h3, h4, h5,
  .ws-sec-title, .ws-sec-sub, .ws-sec-eyebrow,
  .h-title, .h-sub, .eyebrow, .dd-eyebrow, .dd-sub, .dd-titles h3,
  .uh-eyebrow, .uh-sub, .cm-h1, .wsx-head, .wsx-sub,
  .inf-sec-head, .inf-sec-head h2,
  [class*="title"], [class*="eyebrow"], [class*="sec-head"] {
    white-space: normal !important;
    overflow-wrap: break-word;
    word-break: break-word;
  }
  /* 超大标题窄屏收一档, 避免溢出 */
  .ws-sec-title { font-size: clamp(20px, 5.6vw, 26px) !important; line-height: 1.25 !important; }
  .h-title, .dd-titles h3, .cm-h1, .wsx-head { font-size: clamp(22px, 6.2vw, 30px) !important; line-height: 1.2 !important; }
  .uh-title, .uh h1 { font-size: clamp(26px, 8vw, 38px) !important; line-height: 1.12 !important; }
}

/* —— 页面专属 nowrap 长文本放开 (2026-06-29 全站审计产出) —— */
@media (max-width: 768px) {
  body.ws-fullscreen.ws-about .abt-ch-qri .qn { white-space: normal !important; overflow-wrap: break-word; }
  body.ws-fullscreen.ws-product #advantages .scn-ztag,
  body.ws-fullscreen.ws-product #advantages .scn-cities .scn-cline { white-space: normal !important; overflow-wrap: break-word; }
  body.dd-scope-snap .dd-scope #governance .governance-title em { white-space: normal !important; overflow-wrap: break-word; }
  body.dd-scope-snap .dd-scope .gscroll-row .gn b,
  body.dd-scope-snap .dd-scope .gscroll-row .gn span { white-space: normal !important; overflow-wrap: break-word; }
  body.ws-fullscreen.ws-inf #wechat .inf-wx-card .topic,
  body.ws-fullscreen.ws-inf .inf-vchip-tx span { white-space: normal !important; overflow-wrap: break-word; }
  .vtitle { white-space: normal !important; overflow-wrap: break-word; }
}

/* ============================================================
 * footer-v1.0 desktop fallback hardening (2026-07-09)
 * 目的：兜底 Chrome 下偶发旧规则覆盖，强制保持图二结构
 * ============================================================ */
.site-footer .sf-inner {
  display: grid !important;
  grid-template-columns: minmax(286px, 360px) minmax(0, 1fr) !important;
  grid-template-areas: "brand right" !important;
  align-items: stretch !important;
}
.site-footer .sf-right {
  grid-area: right !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
}
.site-footer .sf-nav-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}
.site-footer .sf-product-strip {
  display: block !important;
  width: 100% !important;
}
.site-footer .sf-product-groups--strip {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
.site-footer .sf-qr-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
.site-footer .sf-brand .logo-c {
  height: 32px !important;
  width: auto !important;
  max-width: none !important;
  object-fit: contain !important;
}

@media (max-width: 920px) {
  .site-footer .sf-inner {
    grid-template-columns: 1fr !important;
    grid-template-areas: "brand" "right" !important;
  }
  .site-footer .sf-nav-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .site-footer .sf-product-groups--strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 480px) {
  .site-footer .sf-product-groups--strip { grid-template-columns: 1fr !important; }
  .site-footer .sf-qr-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
}

/* Product-page mobile hardening: several pages use flex heroes or late desktop
   grid overrides that need a stronger, shared mobile contract. */
@media (max-width: 768px) {
  .uh-inner { flex-direction: column !important; align-items: stretch !important; }
  .uh-left, .uh-visual { width: 100% !important; min-width: 0 !important; }
  .uh-ctas { width: 100% !important; min-width: 0 !important; flex-wrap: wrap !important; }
  .uh-ctas .btn { max-width: 100% !important; white-space: normal !important; }

  .cmi-security-grid,
  body.ws-fullscreen.ws-cmi #cases .cmi-modules-grid {
    grid-template-columns: 1fr !important;
  }
  .cmi-security-card,
  .cmi-module-card,
  .cmi-case-tags { min-width: 0 !important; }

  #scene-1 .ix1-panel.active {
    grid-template-columns: minmax(0, 1fr) !important;
  }
  #scene-1 .ix1-left,
  #scene-1 .ix1-right,
  #scene-1 .ix1-bars,
  #scene-1 .ix1-bar-row { min-width: 0 !important; width: 100% !important; }
}
