@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/be-vietnam-pro-vietnamese-400-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/be-vietnam-pro-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:400;src:url(fonts/be-vietnam-pro-latin-400-normal.woff2) format('woff2');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}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:600;src:url(fonts/be-vietnam-pro-vietnamese-600-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:600;src:url(fonts/be-vietnam-pro-latin-ext-600-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:600;src:url(fonts/be-vietnam-pro-latin-600-normal.woff2) format('woff2');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}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:700;src:url(fonts/be-vietnam-pro-vietnamese-700-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:700;src:url(fonts/be-vietnam-pro-latin-ext-700-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:700;src:url(fonts/be-vietnam-pro-latin-700-normal.woff2) format('woff2');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}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:800;src:url(fonts/be-vietnam-pro-vietnamese-800-normal.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:800;src:url(fonts/be-vietnam-pro-latin-ext-800-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Be Vietnam Pro';font-style:normal;font-display:swap;font-weight:800;src:url(fonts/be-vietnam-pro-latin-800-normal.woff2) format('woff2');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}
/* Readability layer for Vietnamese text — loaded last on every page.
   Goals: font built for Vietnamese diacritics, no negative tracking, no ALL CAPS,
   generous line-height, min 15px for any UI text, 17–18px body, high contrast. */
:root{--vn:"Be Vietnam Pro",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
html{-webkit-text-size-adjust:100%}
body,body *,body *::before,body *::after{font-family:var(--vn)!important}
body{font-size:18px!important;line-height:1.7!important;-webkit-font-smoothing:auto!important;text-rendering:optimizeLegibility}

/* ---------- headings: room for stacked accents (Ẩ, Ắ, Ặ, Ở…) ---------- */
h1,h2,h3,h4,summary{letter-spacing:0!important;text-transform:none!important}
h1{font-size:clamp(31px,4.3vw,54px)!important;line-height:1.25!important;font-weight:800!important}
h2{font-size:clamp(26px,3.1vw,40px)!important;line-height:1.3!important;font-weight:800!important}
h3{font-size:clamp(19px,1.7vw,23px)!important;line-height:1.38!important;font-weight:700!important}
.hero h1{max-width:100%!important;font-size:clamp(34px,3.7vw,52px)!important;overflow-wrap:break-word}
/* small headings used as labels */
.box h2,.toc h2,.footer h3,.related h2{font-size:17px!important;line-height:1.4!important}
.related h2{font-size:22px!important}
.cta h2{font-size:clamp(26px,3.2vw,40px)!important;line-height:1.3!important}
.proof strong,.intro-card__number,.step__num,.spec-item span{letter-spacing:0!important;line-height:1.15!important}
.brand,.brand__copy,.brand__copy strong{line-height:1.25!important;letter-spacing:0!important}
.brand small,.brand__copy small{font-size:14px!important;letter-spacing:.01em!important;text-transform:none!important;line-height:1.35!important;font-weight:600!important}

/* ---------- body copy ---------- */
p,li,dd,td,summary,details p{line-height:1.7!important}
.layout .content,.article .content,.content{font-size:18px!important}
.answer{font-size:18px!important;line-height:1.65!important}
.hero__lead,.hero p,.section-head p,.service p,.step p,.answer p,details p,.knowledge-card p,.spec-item p,
.contact-panel__side>p,.contact-panel__main>p,.answer-block__summary,.footer__about,.service__points,.service__points li,.note,.case p,.defs dd{
  font-size:17px!important;line-height:1.7!important}
summary{font-size:19px!important;line-height:1.45!important;font-weight:700!important}

/* ---------- UI labels: no tiny caps, no wide tracking ---------- */
.topbar,.kicker,.section-head__eyebrow,.service__index,.proof span,.hero__badge small,.project-card__caption small,.knowledge-card__tag,
.contact-panel__label,.text-link,.service__scope,.service__scope strong,.service-assurance__item strong,.service-assurance__item small,
.contact-panel__step strong,.contact-panel__phone,.map-address,.answer-block__meta,.footer__bottom,.footer ul,.eyebrow,.byline,.crumbs,
figcaption,.hero-meta span,.chips li,.hub-card span,.lightbox__count,.spec-visual__label,.service-strip a,.service-strip span,.box,.box p,
.toc li a,.pager a,.content th,.content td,.faq details p{
  font-size:15px!important;letter-spacing:.01em!important;text-transform:none!important;line-height:1.5!important}
.content td,.content th{font-size:16px!important;line-height:1.55!important}
.content th{font-weight:700!important}
.kicker,.eyebrow,.section-head__eyebrow,.service__index,.knowledge-card__tag,.contact-panel__label{font-weight:700!important;line-height:1.35!important;width:auto!important;max-width:100%}
.hub-card strong{font-size:19px!important;line-height:1.35!important}

/* ---------- navigation & buttons ---------- */
.nav__links,.nav__links a,.navlinks,.navlinks a{font-size:15px!important;letter-spacing:0!important;text-transform:none!important;font-weight:700!important}
.nav__links{gap:22px!important}
.btn,.menu-toggle,.mobile-cta a,.cbar a,.contact-panel__phone{font-size:16px!important;letter-spacing:0!important;text-transform:none!important;font-weight:700!important;line-height:1.3!important}
.btn{min-height:50px!important;padding:0 22px!important;text-align:center}
.mobile-cta a{font-size:15px!important}

/* ---------- contrast on dark backgrounds ---------- */
.hero__lead,.hero p,.answer-block__summary,.answer p,.spec-item p,.proof span,.topbar,.lightbox__count,.answer-block__meta,
.section--dark .section-head p,.footer,.footer p,.footer li,.footer span{color:rgba(255,255,255,.9)!important}
.footer a{color:#fff!important}
.footer,.footer .container,.footer span,.footer a{font-size:15px!important;line-height:1.6!important}
.hero__copy::before,.hero__visual::before,.map-frame::before{letter-spacing:.04em!important}

/* ---------- mobile ---------- */
@media (max-width:780px){
  body{font-size:17px!important}
  .layout .content,.article .content,.content,.answer{font-size:17px!important}
  h1{font-size:clamp(28px,7.6vw,36px)!important}
  h2{font-size:clamp(24px,6.4vw,30px)!important}
  .hero h1{font-size:clamp(29px,7.8vw,38px)!important}
  .nav .btn{font-size:14px!important;padding:0 14px!important;white-space:nowrap}
  .cbar a{font-size:15px!important}
  .header .brand small{display:none!important}
  .header .brand{font-size:17px!important}
}
