/*
 * vt-fonts.css - VT theme: fonts and font weights.          (2026-11, infra)
 *
 * Linked only when the server flag vtTheme is true (BrandAdvice.java -> mobileFrame/header.jsp and
 * user2Frame/header.jsp). Every rule is scoped to <html class="vt ...">, so with vtTheme=false nothing here
 * is loaded or applied. The header script also adds a surface class: "vt-mts" (WTS/MTS pages, plusasset css)
 * or "vt-hts" (HTS CEF pages, neo css).  Rollback = vtTheme false (or remove the <link>).
 *
 * 1. Digits: family "VTNum" covers ONLY 0-9 + , - . / : %  (unicode-range). Sources: the PC's own GulimChe /
 *    Gulim (Windows), else /webflow/fonts/vt/vtnum-fallback.woff2 = Nanum Gothic Coding digits (OFL; mono,
 *    0.5em like GulimChe). Letters and Hangul fall through to the next families of the stack.
 *    Only one face (400) on purpose: bold digits are synthesised, exactly like GulimChe on Windows.
 * 2. Text: Roboto (self-hosted variable latin woff2, OFL; one face, weights 100-900 - see section 2), then
 *    Malgun Gothic (Windows), Apple SD Gothic Neo (macOS/iOS), Noto Sans KR (the web font the WTS/MTS header
 *    already loads; Android).
 * 3. font-family is forced on every element with !important (beats page <style> blocks and inline styles),
 *    with a LOW specificity (html.vt * = 0,1,1) so theme agents can still override one element with
 *    "html.vt .x { font-family: ... !important }". Icon-font elements get their own family back right after.
 *    Icon-font exclusion list (checked 2026-11-05 over the WTS/MTS/HTS pages):
 *      [class^="w-icon-"], [class*=" w-icon-"]   webflow-icons (webflow.css, itself !important) - restored below
 *    No other icon font is used by these pages: Font Awesome / bootstrap-icons live only in the admin css
 *    (app.min.css, vendor.min.css), and every ".icon.w-embed" is an inline <svg> (no font).
 *    Pseudo-elements are not matched by "*"; they inherit from their element.
 *    Known side effect of the spec'd range: prose punctuation (". , : - /") is also drawn half-width
 *    monospaced ("forever ."). Opt-in fix per element: font-family: var(--vt-font-prose) - same digits,
 *    proportional punctuation (family VTDigits = 0-9 only). Not applied anywhere by default.
 * 4. Weight caps ("clean, not heavy-bold"): 700/bold -> 500, 800/900/bolder -> 600; b, strong, h1-h6 -> 600;
 *    label, optgroup -> 500. Each cap mirrors one original declaration with the SAME specificity
 *    (":where(html.vt...)" adds none) and wins only because this file is linked after the stylesheet, so a
 *    weight that is lighter today is never raised. Caps are per surface because plusasset.css and neo.css
 *    disagree (e.g. .c_table is 500 in plusasset, 700 in neo). Sizes are never changed here.
 *    Not capped (inline / JS, kept as emphasis): noticeList.jsp:127 and user2/notice.jsp:140 "font-weight:bold"
 *    (important notices), user2/login.jsp:33 fontWeight="700" (login-stuck message).
 * Theme agents: override any of this in vt-tokens / vt-*-base / vt-*-order (linked later) with a selector of
 * equal or higher specificity; digits must keep var(--vt-font) so they stay GulimChe.
 * Korean family names are written as CSS escapes so the file is pure ASCII:
 *   \AD74\B9BC\CCB4 = GulimChe (Korean name), \AD74\B9BC = Gulim, \B9D1\C740\0020\ACE0\B515 = Malgun Gothic.
 */

/* ---------- 1. digits ---------- */
@font-face {
  font-family: 'VTNum';
  src: local('GulimChe'), local('\AD74\B9BC\CCB4'), local('Gulim'), local('\AD74\B9BC'),
       url(/webflow/fonts/vt/vtnum-fallback.woff2) format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0025, U+002B-002F, U+0030-003A;
}
/* opt-in (see 3.): the same digits without the punctuation, for prose blocks */
@font-face {
  font-family: 'VTDigits';
  src: local('GulimChe'), local('\AD74\B9BC\CCB4'), local('Gulim'), local('\AD74\B9BC'),
       url(/webflow/fonts/vt/vtnum-fallback.woff2) format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  unicode-range: U+0030-0039;
}

/* ---------- 2. Roboto: ONE face over the variable latin woff2 (wght axis 100-900) ---------- */
/* F6 (phase 4): this used to be three single-weight faces (400 / 500 / 700) over the same variable file, so CSS
   font matching sent weight 600 to the 700 face and Latin text rendered at 700 (owner rule: 600 is the maximum).
   One face with the range 100 900 makes the browser set wght = the requested weight (600 renders as 600).
   The variable file is the only source on purpose: a static local Roboto inside a range face is drawn at its own
   weight for EVERY requested weight (Chrome applies neither wght nor synthetic bold to it - measured, phase-4
   fontprobe: 400 = 500 = 600 = 700), so the old local('Roboto'...) candidates are not listed. Same file, same
   unicode-range, same font-display as before. */
@font-face {
  font-family: 'Roboto';
  src: url(/webflow/fonts/vt/roboto-latin-var.woff2) format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- 3. stacks + apply ---------- */
html.vt {
  --vt-font: 'VTNum', Roboto, 'Malgun Gothic', '\B9D1\C740\0020\ACE0\B515', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
  --vt-font-text: Roboto, 'Malgun Gothic', '\B9D1\C740\0020\ACE0\B515', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
  --vt-font-prose: 'VTDigits', Roboto, 'Malgun Gothic', '\B9D1\C740\0020\ACE0\B515', 'Apple SD Gothic Neo', 'Noto Sans KR', sans-serif;
}
html.vt body,
html.vt * {
  font-family: var(--vt-font) !important;
}
/* icon fonts keep their family (same value webflow.css sets, now winning over the rule above) */
html.vt [class^="w-icon-"],
html.vt [class*=" w-icon-"] {
  font-family: 'webflow-icons' !important;
}

/* ---------- 4. weight caps ---------- */
/* element defaults from normalize.css / webflow.css (specificity 0,0,1, same as theirs) */
:where(html.vt) b,
:where(html.vt) strong,
:where(html.vt) h1,
:where(html.vt) h2,
:where(html.vt) h3,
:where(html.vt) h4,
:where(html.vt) h5,
:where(html.vt) h6 {
  font-weight: 600;
}
:where(html.vt) label,
:where(html.vt) optgroup {
  font-weight: 500;
}
/* WTS/MTS (plusasset.webflow.css): 35 rules */
:where(html.vt.vt-mts) .btn,
:where(html.vt.vt-mts) .side_btn,
:where(html.vt.vt-mts) .btn2,
:where(html.vt.vt-mts) .chart_title,
:where(html.vt.vt-mts) .title,
:where(html.vt.vt-mts) .info_title,
:where(html.vt.vt-mts) .result_title,
:where(html.vt.vt-mts) .result_num,
:where(html.vt.vt-mts) .result_txt,
:where(html.vt.vt-mts) .pop_title,
:where(html.vt.vt-mts) .btn3,
:where(html.vt.vt-mts) .chart_tradebtn2,
:where(html.vt.vt-mts) .chart_btn1_2,
:where(html.vt.vt-mts) .chart_btn2_2,
:where(html.vt.vt-mts) .c_chart_top2,
:where(html.vt.vt-mts) .c_info_box2,
:where(html.vt.vt-mts) .chart_label_2,
:where(html.vt.vt-mts) .c_b_btn_2,
:where(html.vt.vt-mts) .c_b_btn2_2,
:where(html.vt.vt-mts) .c_chart_listtop_2,
:where(html.vt.vt-mts) .c_chart_scroll_2,
:where(html.vt.vt-mts) .c_table1,
:where(html.vt.vt-mts) .c_count_area,
:where(html.vt.vt-mts) .input_l_box,
:where(html.vt.vt-mts) .login_itemtxt1,
:where(html.vt.vt-mts) .login_btn,
:where(html.vt.vt-mts) .select_btn_title,
:where(html.vt.vt-mts) .g_menubtn,
:where(html.vt.vt-mts) .chart_title2,
:where(html.vt.vt-mts) .terms_btn {
  font-weight: 500;
}
:where(html.vt.vt-mts) .login_txt,
:where(html.vt.vt-mts) .login_title,
:where(html.vt.vt-mts) .general_title {
  font-weight: 600;
}
@media screen and (max-width: 991px) {
  :where(html.vt.vt-mts) .btn_cal.tick,
  :where(html.vt.vt-mts) .btn_cal._3 {
    font-weight: 500;
  }
}
/* HTS (neo-...webflow.css): 39 rules */
:where(html.vt.vt-hts) .btn,
:where(html.vt.vt-hts) .side_btn,
:where(html.vt.vt-hts) .btn2,
:where(html.vt.vt-hts) .title,
:where(html.vt.vt-hts) .result_title,
:where(html.vt.vt-hts) .result_num,
:where(html.vt.vt-hts) .result_txt,
:where(html.vt.vt-hts) .pop_title,
:where(html.vt.vt-hts) .btn3,
:where(html.vt.vt-hts) .c_info_box2,
:where(html.vt.vt-hts) .c_b_btn_2,
:where(html.vt.vt-hts) .chart_btn1_2,
:where(html.vt.vt-hts) .c_count_area,
:where(html.vt.vt-hts) .c_chart_list3_2.line,
:where(html.vt.vt-hts) .c_table,
:where(html.vt.vt-hts) .c_chart_listtop_2,
:where(html.vt.vt-hts) .c_table1,
:where(html.vt.vt-hts) .chart_tradebtn2,
:where(html.vt.vt-hts) .chart_btn2_2,
:where(html.vt.vt-hts) .c_chart_top2,
:where(html.vt.vt-hts) .chart_label_2,
:where(html.vt.vt-hts) .c_b_btn2_2,
:where(html.vt.vt-hts) .chart_title2,
:where(html.vt.vt-hts) .login_btn,
:where(html.vt.vt-hts) .login_itemtxt1,
:where(html.vt.vt-hts) .input_l_box,
:where(html.vt.vt-hts) .g_menubtn,
:where(html.vt.vt-hts) .select_btn_title,
:where(html.vt.vt-hts) .login_title2,
:where(html.vt.vt-hts) .login_title2_2,
:where(html.vt.vt-hts) .cv_btn,
:where(html.vt.vt-hts) .ui_pop_btn,
:where(html.vt.vt-hts) .terms_title,
:where(html.vt.vt-hts) .terms_box2,
:where(html.vt.vt-hts) .terms_btn {
  font-weight: 500;
}
:where(html.vt.vt-hts) .login_txt,
:where(html.vt.vt-hts) .login_title,
:where(html.vt.vt-hts) .general_title,
:where(html.vt.vt-hts) .cv_titlebox:hover {
  font-weight: 600;
}
