
/* =========================================================
   KBRIDGE UNIFIED TYPOGRAPHY SYSTEM
   Same visual role = same font size across every page.
   Keep this file loaded LAST.
========================================================= */
:root{
  --kb-fs-caption:11px;
  --kb-fs-small:12px;
  --kb-fs-control:13px;
  --kb-fs-body:14px;
  --kb-fs-body-lg:15px;
  --kb-fs-card-title:18px;
  --kb-fs-section:28px;
  --kb-fs-page:42px;
  --kb-lh-tight:1.28;
  --kb-lh-title:1.38;
  --kb-lh-body:1.72;
}

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
body,
button,
input,
select,
textarea{
  font-family:Pretendard,"Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif!important;
}
body{
  font-size:var(--kb-fs-body)!important;
  line-height:var(--kb-lh-body)!important;
  letter-spacing:-.018em!important;
}
p,li,dd,dt,address{
  font-size:var(--kb-fs-body)!important;
  line-height:var(--kb-lh-body)!important;
}
small,
.eyebrow,
.kicker,
.tool-kicker,
.tool-shell-title small,
.field-help,
.help,
.hint,
.note,
.caption,
.meta,
.post-meta,
.article-meta,
.footer-bottom{
  font-size:var(--kb-fs-caption)!important;
  line-height:1.55!important;
}

/* Header / navigation */
.header,
.header-inner{
  font-size:var(--kb-fs-control)!important;
}
.brand-copy strong,
.brand strong{
  font-size:14px!important;
  line-height:1!important;
}
.nav,
.nav>a,
.nav-dropdown-toggle,
.header-btn,
.header-link{
  font-size:var(--kb-fs-control)!important;
  line-height:1!important;
}
.nav-dropdown-menu a{
  font-size:13px!important;
  line-height:1.35!important;
}
.nav-dropdown-menu a span{
  font-size:11px!important;
  line-height:1.45!important;
}
.mobile-nav>a,
.mobile-nav-group a{
  font-size:14px!important;
  line-height:1.4!important;
}
.mobile-nav-label{
  font-size:11px!important;
}

/* Page hero titles */
.hero h1,
.tool-hero h1,
.blog-hero h1,
.article-hero h1,
.article-header h1,
main > .hero h1,
main h1{
  font-size:var(--kb-fs-page)!important;
  line-height:1.18!important;
  letter-spacing:-.048em!important;
  font-weight:800!important;
}
.hero-desc,
.hero p,
.tool-hero p,
.blog-hero p,
.article-lead,
.article-hero p{
  font-size:var(--kb-fs-body-lg)!important;
  line-height:1.78!important;
}

/* Section headings */
main h2{
  font-size:var(--kb-fs-section)!important;
  line-height:var(--kb-lh-title)!important;
  letter-spacing:-.035em!important;
  font-weight:800!important;
}
main h3{
  font-size:var(--kb-fs-card-title)!important;
  line-height:1.45!important;
  letter-spacing:-.026em!important;
  font-weight:800!important;
}

/* Tool and form card headings */
.tool-shell-title strong{
  font-size:17px!important;
  line-height:1.35!important;
}
.native-card-head h2,
.result-head h2,
.nt-card > h2,
.nt-card-head h2,
.nt-section-head h2,
.form-card h3,
.dialog-head h2,
.vehicle-title h2,
.post-body h2,
.blog-body h3,
.aside-card h3,
.aside-cta h3{
  font-size:var(--kb-fs-card-title)!important;
  line-height:1.42!important;
  letter-spacing:-.024em!important;
}
.native-card-head small,
.result-head small,
.step-label{
  font-size:var(--kb-fs-caption)!important;
}

/* Labels and controls */
label,
.field label,
.vehicle-field label,
.nt-field label,
.form-field label,
.form-group label,
legend{
  font-size:var(--kb-fs-small)!important;
  line-height:1.45!important;
  font-weight:800!important;
}
input,
select,
textarea{
  font-size:var(--kb-fs-control)!important;
  line-height:1.4!important;
}
button,
.btn,
.nt-btn,
.native-btn,
.header-btn,
.promo-cta,
.strength-link,
.tool-open,
.reset-filter,
.top-btn,
.kb-top-button{
  font-size:var(--kb-fs-control)!important;
  line-height:1.2!important;
}
.type-filter button,
.pallet-toggle button,
.charge-chip span,
.filter-chips button,
.filter-tabs button,
.category-tabs button,
.tab-btn,
.chip,
.badge,
.tag{
  font-size:var(--kb-fs-small)!important;
  line-height:1.2!important;
}

/* Card / result content */
.metric strong,
.hero-stat strong,
.result-value,
.result-card strong,
.summary-value,
.total-value,
.amount,
.price,
.pallet-count b{
  line-height:1.15!important;
}
.metric span,
.hero-stat span,
.result-card span,
.summary-row span,
.vehicle-specs span,
.vehicle-title p{
  font-size:var(--kb-fs-small)!important;
  line-height:1.5!important;
}
.metric strong{
  font-size:24px!important;
}
.hero-stat strong{
  font-size:18px!important;
}
.result-card strong,
.summary-value,
.total-value{
  font-size:20px!important;
}
.vehicle-specs b,
.summary-row b,
.result-row b{
  font-size:13px!important;
  line-height:1.45!important;
}

/* Tables */
table,
th,
td{
  font-size:13px!important;
  line-height:1.5!important;
}
th{
  font-size:12px!important;
  font-weight:800!important;
}

/* Main-page special cards */
.promo-card h3,
.transport-copy h3,
.navy-copy h3,
.strength-kpi-copy h3,
.trust-copy h3{
  font-size:19px!important;
  line-height:1.42!important;
}
.promo-card p,
.transport-copy p,
.navy-copy p,
.strength-kpi-copy p,
.trust-copy p{
  font-size:14px!important;
  line-height:1.72!important;
}

/* Blog */
.blog-summary h2,
.blog-section > .container > h2,
.faq-wrap > h2{
  font-size:var(--kb-fs-section)!important;
}
.post-body h2,
.blog-card h3{
  font-size:18px!important;
  line-height:1.45!important;
}
.post-body p,
.blog-card p{
  font-size:14px!important;
  line-height:1.7!important;
}
.article-body{
  font-size:15px!important;
  line-height:1.85!important;
}
.article-body p,
.article-body li{
  font-size:15px!important;
  line-height:1.85!important;
}
.article-body h2{
  font-size:24px!important;
  line-height:1.42!important;
}
.article-body h3{
  font-size:18px!important;
  line-height:1.45!important;
}

/* Footer */
.footer,
.footer p,
.footer li,
.footer a{
  font-size:12px!important;
  line-height:1.65!important;
}
.footer h4{
  font-size:13px!important;
  line-height:1.35!important;
}

/* Mobile hierarchy */
@media(max-width:760px){
  :root{
    --kb-fs-body:14px;
    --kb-fs-body-lg:14px;
    --kb-fs-page:32px;
    --kb-fs-section:24px;
    --kb-fs-card-title:17px;
  }
  .hero h1,
  .tool-hero h1,
  .blog-hero h1,
  .article-hero h1,
  .article-header h1,
  main h1{
    font-size:32px!important;
    line-height:1.22!important;
  }
  main h2{
    font-size:24px!important;
  }
  .article-body h2{
    font-size:22px!important;
  }
  .metric strong{
    font-size:22px!important;
  }
}
