/*
 * INSVISION typography system.
 *
 * Purpose:
 * - keep the site on a free, system-first font stack with no font downloads;
 * - normalize headings, body copy, and button text after legacy page bundles;
 * - avoid broad icon/span overrides that can break SVG or icon-font UI.
 */

/* ==== Section 39 â r25y24dg START (font-fallback: single-source override) ==== */
/*
  Single-source override for thefastfile/thefastimg hosted @font-face
  rules. Each family below was previously loaded from an external host
  that 403s from our HK ECS, blocking render until font timeout (~15-20s)
  on CN /about/ etc. We re-declare each family with `src: local(...)` so
  the browser finds a system fallback immediately and never issues the
  external request.

  Discipline: this is the ONE place we fix Dongli-native CSS issues.
  Do NOT edit per-page /css/*.min.css or /assets/css/*.min.css; those are
  one-shot exports that regenerate whenever the site-builder exports, and
  any regex edit we make there will be lost and/or have subtle side
  effects (see r25y24df â AlphaScan visual regression, 2026-04-22).
*/
@font-face {
    font-family: "pingfangsc-medium_0";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "poppins-bold";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "poppins-light";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "poppins-medium";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "poppins-regular";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "poppins-semibold";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-ä¸­ç²-ç®";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-ä¸­ç²-ç¹";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-ä¸­é»-ç®";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-ä¸­é»-ç¹";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-å-ç®";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-å-ç¹";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-çº¤ç»-ç®";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-çº¤ç»-ç¹";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-ç»-ç®";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
@font-face {
    font-family: "è¹æ¹é»ä½-ç»-ç¹";
    src: local("PingFang SC"), local("Microsoft YaHei"), local("Arial"), local("sans-serif");
    font-display: swap;
}
/* ==== Section 39 â r25y24dg END ==== */

:root {
    --insv-type-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", Arial, sans-serif;
    --insv-type-color-heading: #202938;
    --insv-type-color-body: #2f3a4a;
    --insv-type-line-heading: 1.28;
    --insv-type-line-body: 1.82;
    --insv-type-size-section-title: 30px;
    --insv-type-size-detail-title: 34px;
    --insv-type-size-detail-title-mobile: 26px;
    --insv-type-size-detail-h2: 26px;
    --insv-type-size-detail-h2-mobile: 22px;
    --insv-type-size-detail-h3: 20px;
    --insv-type-size-detail-h3-mobile: 18px;
    --insv-type-size-panel-title: 18px;
    --insv-type-size-eyebrow: 12px;
    --insv-type-size-breadcrumb: 13px;
    --insv-type-size-chip: 12px;
}

body {
    font-family: var(--insv-type-font-sans);
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Typography-level SEO helper: keep generated H1 readable to crawlers without
   changing the visible layout. */
.insv-visually-hidden-h1 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* global.css sets `.reset_style, body { word-break: break-all }`.
   Restore a bilingual default so English words and buttons do not split letter by letter. */
body,
.reset_style,
.reset_style p,
.reset_style h1, .reset_style h2, .reset_style h3, .reset_style h4, .reset_style h5, .reset_style h6,
.reset_style a,
.reset_style span,
.reset_style li,
.reset_style div {
    word-break: normal !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
}

body :where(h1, h2, h3, h4, h5, h6, p, li, dt, dd, label, button, input, select, textarea, figcaption),
body :where([class*="e_h1-"], [class*="e_h2-"], [class*="e_text-"], [class*="e_richText-"], [class*="e_formBtn-"]) {
    font-family: var(--insv-type-font-sans) !important;
    letter-spacing: 0;
}

body :where(button, input, select, textarea) {
    font-family: var(--insv-type-font-sans) !important;
}

body :where(
    button,
    input[type="button"],
    input[type="submit"],
    .insv-home-localized-hero__button,
    .insv-floating-contact__action,
    .insv-case-product__button,
    .insv-case-nav-back,
    .news-detail-pager__back,
    .e_button-7,
    .e_formBtn-6
) {
    font-family: var(--insv-type-font-sans) !important;
    font-weight: 700;
    letter-spacing: 0;
}

body :where(
    .e_button-7 span,
    .e_formBtn-6 span,
    .p_menu1Item a,
    .p_menu2Item a,
    .e_languageNew-36 .p_current,
    .e_languageNew-36 .p_item
) {
    font-family: var(--insv-type-font-sans) !important;
    letter-spacing: 0;
}

body.home .e_h1-42 {
    font-family: var(--insv-type-font-sans) !important;
    line-height: 1.22 !important;
    letter-spacing: 0 !important;
}
