/* Charviso CN typography system v2 — loaded after imported page styles. */
:root {
  --cv-font-sans: "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", "Hiragino Sans GB", Arial, sans-serif;
  --cv-font-display: "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  --cv-text-size: 16px;
  --cv-leading: 1.78;
  --cv-heading-track: -0.025em;
}

html {
  font-size: 16px !important;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body,
button,
input,
select,
textarea {
  font-family: var(--cv-font-sans) !important;
  font-optical-sizing: auto;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

body {
  font-size: var(--cv-text-size) !important;
  line-height: var(--cv-leading) !important;
  letter-spacing: 0 !important;
}

h1, h2, h3, h4, h5, h6,
.cvu-hero h1,
.cvu-stage h2,
.cvs-hero h1,
.section-head h2,
.article h1,
.article h2 {
  font-family: var(--cv-font-display) !important;
  font-style: normal !important;
  text-wrap: balance;
  overflow-wrap: break-word;
  word-break: normal;
}

h1,
.cvu-hero h1,
.cvs-hero h1,
[class*="hero"] h1,
[class*="Hero"] h1 {
  font-size: clamp(2.75rem, 5.5vw, 5.5rem) !important;
  font-weight: 650 !important;
  line-height: 1.1 !important;
  letter-spacing: var(--cv-heading-track) !important;
}

h2,
.cvu-stage h2,
.section-head h2,
[class*="section"] > h2,
[class*="section"] > div > h2,
[class*="cta"] h2 {
  font-size: clamp(2rem, 3.7vw, 3.75rem) !important;
  font-weight: 620 !important;
  line-height: 1.16 !important;
  letter-spacing: -0.02em !important;
}

h3 {
  font-size: clamp(1.25rem, 1.8vw, 1.65rem) !important;
  font-weight: 620 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.012em !important;
}

h4, h5, h6 {
  line-height: 1.45 !important;
  letter-spacing: 0 !important;
}

p,
li,
dd,
blockquote,
.article p,
.article li,
.cvu-stage-copy p,
.section-head p {
  line-height: 1.78 !important;
  letter-spacing: 0.008em !important;
}

p {
  margin-block-start: 0;
  margin-block-end: 1em;
}

.article,
.entry-content,
.post-content,
.fusion-text,
.cvu-stage-copy,
.section-head {
  hanging-punctuation: first last;
}

.article p,
.article li,
.entry-content > p,
.post-content > p {
  font-size: 1rem !important;
  line-height: 1.85 !important;
}

.menu,
.menu a,
nav,
nav a,
.cvs-menu,
.cvs-menu a,
.fusion-main-menu a {
  font-family: var(--cv-font-sans) !important;
  font-size: 14px !important;
  font-weight: 560 !important;
  line-height: 1.5 !important;
  letter-spacing: 0.025em !important;
  white-space: nowrap;
}

.eyebrow,
.cvu-stage-label,
.cvu-product small,
.cvu-industry small,
.card-copy p,
.info p,
.stat span,
.step p,
.footer a,
.footer p,
.bottom,
figcaption,
small {
  font-family: var(--cv-font-sans) !important;
  line-height: 1.65 !important;
  letter-spacing: 0.015em !important;
}

.cvu-product span,
.cvu-industry span,
.card-copy h3,
.info h3 {
  font-family: var(--cv-font-sans) !important;
  font-weight: 620 !important;
  line-height: 1.42 !important;
  letter-spacing: 0 !important;
}

.button,
.cta,
.cvs-button,
button,
input[type="button"],
input[type="submit"] {
  font-family: var(--cv-font-sans) !important;
  font-size: 14px !important;
  font-weight: 620 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.015em !important;
}

/* Legacy Avada pages carry extremely tight per-component headings. */
.fusion-responsive-typography-calculated,
.fusion-title-heading,
.title-heading-left,
[class*="hero"] h1,
[class*="hero"] h2,
[class*="section"] h2,
[class*="cta"] h2 {
  line-height: 1.16 !important;
  letter-spacing: -0.02em !important;
}

[class*="hero"] h1 {
  font-size: clamp(2.75rem, 5.5vw, 5.5rem) !important;
  max-width: 15ch;
}

[class*="section"] h2,
[class*="cta"] h2 {
  font-size: clamp(2rem, 3.7vw, 3.75rem) !important;
}

/* Short UI roles need compact leading; they are not reading copy. */
.menu a,
nav a,
.button,
.cta,
.cvs-button,
button,
[class*="arrow"],
.cvcn-hp {
  line-height: 1.5 !important;
}

/* Imported snapshots include an obsolete Avada footer after the new footer. */
.fusion-tb-footer.fusion-footer,
.fusion-footer-widget-area,
.fusion-footer-copyright-area {
  display: none !important;
}

/* Honeypot stays outside the visual and accessibility flow. */
.cvcn-hp {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

img.lazyload,
img.lazyloading,
img.lazyloaded {
  max-width: 100% !important;
}

input,
select,
textarea {
  font-size: 16px !important;
  line-height: 1.55 !important;
}

.stat strong,
table,
.numeric {
  font-variant-numeric: tabular-nums;
}

@media (max-width: 900px) {
  h1,
  .cvu-hero h1,
  .cvs-hero h1,
  [class*="hero"] h1 {
    font-size: clamp(2.4rem, 9vw, 4.5rem) !important;
    line-height: 1.12 !important;
    letter-spacing: -0.022em !important;
  }

  h2,
  .cvu-stage h2,
  .section-head h2,
  [class*="section"] h2,
  [class*="cta"] h2 {
    font-size: clamp(1.85rem, 7vw, 3.25rem) !important;
    line-height: 1.2 !important;
    letter-spacing: -0.015em !important;
  }
}

@media (max-width: 600px) {
  body { line-height: 1.75 !important; }

  h1,
  .cvu-hero h1,
  .cvs-hero h1,
  [class*="hero"] h1 {
    font-size: clamp(2.15rem, 10.5vw, 3.2rem) !important;
    line-height: 1.15 !important;
    letter-spacing: -0.018em !important;
  }

  h2,
  .cvu-stage h2,
  .section-head h2,
  [class*="section"] h2,
  [class*="cta"] h2 {
    font-size: clamp(1.75rem, 8vw, 2.55rem) !important;
    line-height: 1.22 !important;
    letter-spacing: -0.012em !important;
  }

  h3 { line-height: 1.4 !important; }

  p,
  li,
  dd,
  blockquote,
  .article p,
  .article li,
  .cvu-stage-copy p,
  .section-head p {
    line-height: 1.75 !important;
    letter-spacing: 0.006em !important;
  }

  .menu,
  .menu a,
  nav,
  nav a,
  .cvs-menu,
  .cvs-menu a,
  .fusion-main-menu a {
    font-size: 15px !important;
    line-height: 1.55 !important;
  }

  [class*="hero"] h1 { max-width: 12ch; }

  .cvx-product,
  .cvx-story,
  .cvn-filter-row,
  [class*="card-grid"],
  [class*="product-grid"] {
    max-width: 100% !important;
  }

  .cvx-product,
  .cvx-story {
    min-width: 0 !important;
  }

  .cvn-filter-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
  }
}
