/* ============================================================
   VNYC Type System 2026 v2 — unified ALL-LATO typography.
   High-specificity (:not(#_)) so it wins over inline .class h2
   rules. One font (Lato), proportional scale, bold display.
   ============================================================ */
:root{
  --vnyc-font-display:'Lato',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
  --vnyc-font-body:var(--vnyc-font-display);
  --ln-font-display:var(--vnyc-font-display);
  --ln-font-body:var(--vnyc-font-display);
  --brand-font:var(--vnyc-font-display);
  --body-font:var(--vnyc-font-display);
}
html[lang="zh"]{--vnyc-font-display:'Noto Sans SC','Lato',sans-serif}
html[lang="ko"]{--vnyc-font-display:'Noto Sans KR','Lato',sans-serif}

/* base font everywhere */
body, p, li, a, span, div, input, button, textarea, select,
h1, h2, h3, h4, h5, h6, .eyebrow, .lead, .ey, blockquote{
  font-family:var(--vnyc-font-display) !important;
}
body{ font-size:16px !important; line-height:1.7 !important; font-weight:400; }
.lead{ font-size:clamp(1.04rem,1.4vw,1.16rem) !important; line-height:1.72 !important; font-weight:400 !important; }
p{ line-height:1.7; }

/* ── Unified scale + BOLD display, high specificity wins over inline ── */
h1:not(#_):not(#__), .hero h1:not(#_):not(#__){
  font-size:clamp(2.3rem, 5.2vw, 3.7rem) !important;
  font-weight:900 !important; line-height:1.08 !important;
  letter-spacing:-.028em !important; font-style:normal !important;
  font-family:'Lato',-apple-system,sans-serif !important;
}
h2:not(#_):not(#__){
  font-size:clamp(1.7rem, 3.4vw, 2.5rem) !important;
  font-weight:900 !important; line-height:1.16 !important;
  letter-spacing:-.02em !important; font-style:normal !important;
  font-family:'Lato',-apple-system,sans-serif !important;
}
h3:not(#_):not(#__),
.value-v2__title:not(#_):not(#__), .about-value-card h3:not(#_):not(#__),
.svc-hub-card h3:not(#_):not(#__), .petal h3:not(#_):not(#__), .pk-mv-card h3:not(#_):not(#__){
  font-size:clamp(1.2rem, 1.7vw, 1.5rem) !important;
  font-weight:800 !important; line-height:1.3 !important;
  letter-spacing:-.008em !important; font-style:normal !important;
  font-family:'Lato',-apple-system,sans-serif !important;
}
h4:not(#_):not(#__){
  font-size:1.05rem !important; font-weight:700 !important;
  line-height:1.45 !important; letter-spacing:.02em !important;
  font-family:'Lato',-apple-system,sans-serif !important;
}
h5:not(#_){ font-size:.92rem !important; font-weight:700 !important; }

/* eyebrow / kicker consistent */
.eyebrow:not(#_), .ey:not(#_), .pk-mv-card .k:not(#_){
  font-weight:800 !important; letter-spacing:.2em !important;
  text-transform:uppercase !important; font-size:.8rem !important; font-style:normal !important;
}

h1 strong, h2 strong, h3 strong{ font-weight:900 !important; }

/* ───────────────────────────────────────────────────────────
   CONTRAST GUARD (v108) — fix white-on-white & too-light text
   ─────────────────────────────────────────────────────────── */

/* About → Vision/Mission: the legacy rule `#vision [data-erp-bind]{color:#fff}`
   was designed for an old navy-background layout, but the bound <p> now lives
   inside white `.about-mv-card` cards → white-on-white. Force readable navy.
   Specificity 1,1,1 beats the buggy 1,1,0 rule; !important + load-order seals it. */
#vision .about-mv-card p,
.about-mv-section .about-mv-card p,
.about-mv-card p[data-erp-bind]{
  color:#33475b !important;
  -webkit-text-fill-color:#33475b !important;
  font-style:normal !important;
}

/* Roadmap progress-bar labels were slate-300 (#cbd5e1) on white → ~44 contrast,
   unreadable at 9px. Bump to slate-500 for legibility. */
.rm-prog-label:not(#_){ color:#64748b !important; }
