/* ===========================================================
   中文排版适配补丁
   原站行高是按 Roobert 拉丁字母调的（多处 < 1），中文字身框更高，
   直接沿用会导致行与行重叠、按钮文字被切。此处仅放宽行高，不动其它设计。
   =========================================================== */

/* 大标题：原 line-height 0.9 / 0.94，中文会上下行重叠 */
.is-h-l { line-height: 1.08; }
.is-h-m { line-height: 1.14; }
.is-h-64, .is-article-h1 { line-height: 1.14; }

/* 按钮与小号说明文字：原 line-height 0.89，中文字形被上下切掉 */
.primary-button,
.primary-button.is-navbar,
.secondary-button,
.is-caption { line-height: 1.3; }

/* 导航栏只剩「预约产品演示」一个按钮后的定位修正。
   原设计里靠前面的「了解产品」按钮（.is-helpdesk，带 margin-left:auto）把这组推到右侧，
   而 .is-navbar.is-open-contact 本身是 margin-left:0。移除「了解产品」后按钮会掉到最左、
   压在 logo 上。原站在 ≤767px（了解产品被隐藏时）就是用 margin-left:auto 解决的，
   这里把同样的写法提升到全部宽度生效。 */
.primary-button.is-navbar.is-open-contact { margin-left: auto; }

/* 汉堡菜单里的跳转项已全部移除，面板只剩公司信息与社交图标、基本是空的，
   因此连同汉堡按钮一起隐藏。社交图标在页脚仍保留。
   若之后要恢复菜单，删掉这一条即可。 */
.navbar_menu-button,
.navbar_menu-wrapper { display: none !important; }

/* 中文断行规则。
   注意：不要加 text-wrap: pretty —— 它与 GSAP SplitText（把每个字拆成独立 span）
   叠加会触发反复的多遍换行计算，页面永远无法进入稳定渲染状态。 */
body { line-break: strict; }

/* ===========================================================
   标题与正文字号重整
   =========================================================== */

/* 滚动卡标题（可见度概览 / 真实问题体系 / 同口径持续复测）不再换行。
   原 max-width 18rem = 288px，而 56px 字号下 7 个中文字要 392px，必然折成两行。
   放宽到 25rem = 400px；父容器实测 565px，装得下。
   小断点字号会随根字号缩下去，25rem 同样够用，所以不用再写媒体查询。 */
.is-h-m.is-max { max-width: 25rem; }

/* 正文 .is-t-m 原本 24px（@1440），比它自己的小标签 .is-b-l 18px 还大一号，
   在案例卡里主次颠倒、整段也显得压迫。收到 0.84 倍 ≈ 20px。
   用 calc 乘变量而不是写死 px，是为了保住原本随视口流动的字号；
   行高是 em 单位，会跟着一起收，不用单独调。 */
.is-t-m { font-size: calc(var(--title-medium--font-size) * 0.84); }

/* 滚动渐显段落（data-highlight-text）的换行修正。
   站点 JS 会把这类段落拆成「词组 div + 逐字 div」，并全部设成 display:inline-block。
   问题出在「词组盒」是原子的：剩余宽度装不下整个词组，它就整块甩到下一行，
   首行于是凭空短一大截（实测 12 字 / 25 字 / 14 字，还把逗号顶到了行首）。

   三种改法实测对比（1440px，容器 512px）：
     全 inline-block（现状）   3 行 12/25/14   行首有逗号
     全 inline                2 行 12/39      右侧溢出 259px —— 中文字之间没了断行点
     词组 inline + 逐字 inline-block   2 行 26/25   不溢出、行首无标点  <- 采用

   词组盒改 inline 去掉原子性，逐字盒保留 inline-block 才能在任意中文字之间断行。
   渐显动画只改 color、不依赖 inline-block，所以不受影响。 */
p[data-highlight-text] > div { display: inline !important; }
p[data-highlight-text] > div > div { display: inline-block !important; }

/* 同一批段落限个行宽。
   ~991px 那档容器有 927px 宽，一行能塞 50 个中文字，远超舒适阅读长度，
   而且刚好多出半个字，把末尾的句号挤成了「50 字 + 孤零零一个句号」的孤行。
   32rem 在 1440px 下正好等于它现在的 512px（这档不变），只收窄 991 那一档。 */
p[data-highlight-text] { max-width: 32rem; }

/* Keep the selected copy centered before and after SplitText runs. */
p.is-centered-copy {
  align-self: center;
  width: 100%;
  margin-inline: auto;
  text-align: center;
}

/* Keep the text-based scenario artwork visible at every image-container ratio. */
.home-cs_item-img.is-geo-scenario {
  object-fit: contain;
  background-color: #f0f3f7;
}

/* Reviewed semantic icons for section labels. The wrapper width remains
   controlled by the existing Webflow reveal animation. */
.section_pill-icon-wrapper > .section-feature-icon {
  width: 2rem;
  height: 2rem;
  flex: 0 0 2rem;
  color: #001530;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.section_pill-icon-wrapper > .section-feature-icon .accent {
  color: #006fff;
  stroke: #006fff;
}

.section_pill-icon-wrapper > .section-feature-icon .accent-fill {
  fill: #006fff;
  stroke: #006fff;
}

.section_pill-icon-wrapper.is-white > .section-feature-icon {
  color: #fff;
}

.section_pill-icon-wrapper.is-white > .section-feature-icon .accent,
.section_pill-icon-wrapper.is-white > .section-feature-icon .accent-fill {
  color: #63a9ff;
  fill: #63a9ff;
  stroke: #63a9ff;
}
