/* Roboto 700, self-hosted Google Fonts Latin/Vietnamese subsets; see assets/roboto-OFL.txt. */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(./assets/roboto-bold-vietnamese.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: 'Roboto';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url(./assets/roboto-bold-latin.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;
}
/* Office keeps the incumbent R.W.H shell and presents the complete parent-site content. */
body.office-page { margin:0; min-width:0; background:#fff; color:#333; }
.office-page #container { padding:0 70px 0 0; overflow:clip; }
.office-page #gHeader.office-header { position:relative; z-index:1; min-height:0; width:auto; height:auto; padding:72px 7.2% 0; background:#fff; }
.office-header-inner { display:grid; grid-template-columns:1fr 1fr; position:relative; min-height:188px; align-items:start; }
.office-page .office-header .hLogo { width:157px; display:block; }
.office-page .office-header .hLogo img { width:100%; height:auto; display:block; filter:brightness(0); }
.office-title { margin:0; max-width:calc(100% - 145px); color:#111; font:300 28px/1.45 Roboto,Arial,sans-serif; letter-spacing:.015em; text-transform:uppercase; }
.office-shortcuts { position:absolute; top:0; right:0; display:grid; gap:6px; text-transform:uppercase; }
.office-shortcuts a { display:flex; align-items:center; gap:7px; min-height:26px; color:#222; font:400 12px/1.6 Roboto,Arial,sans-serif; letter-spacing:.08em; }
.office-shortcuts a { white-space:nowrap; flex-shrink:0; }
.office-shortcuts a::before { flex-shrink:0; content:''; width:6px; height:1px; background:#888; }
.office-shortcuts a[aria-current] { color:#757575; }
.office-page #main.office-main { padding:0 7.2% 128px; background:#fff; }
.office-page .meunRBox { width:70px; height:100dvh; right:0; padding:0; background:#292929; z-index:11; }
.office-page .menuBox.rwh-menu { background:#292929; }
.office-page .meunRBox .menu { top:13px; right:13px; width:44px; height:44px; }
.office-page .meunRBox .menu .top { top:15px; }
.office-page .meunRBox .menu .bottom { top:25px; }
.office-page .meunRBox .menu span { left:12px; width:20px; }
.office-rail-label { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); writing-mode:vertical-rl; color:#ccc; font:300 13px/1 Roboto,Arial,sans-serif; letter-spacing:.08em; text-transform:uppercase; pointer-events:none; }
.office-page.menu-open .office-title,.office-page.menu-open .office-shortcuts,.office-page.menu-open .office-rail-label { visibility:hidden; }
.office-page > .language-switch { top:15px; right:90px; text-shadow:none; background:#fff; }
.office-page > .language-switch button { color:#555; }
.office-page > .language-switch button[aria-pressed=true],.office-page > .language-switch button:hover { color:#111; }
.office-page.menu-open > .language-switch button { color:#ccc; }
.office-page.menu-open > .language-switch { background:#292929; }
.office-page.menu-open > .language-switch button[aria-pressed=true] { color:#fff; }
.office-page a:focus-visible,.office-page > .language-switch button:focus-visible { outline:1px solid #333; outline-offset:4px; }
.office-page .menuBox a:focus-visible,.office-page #gFooter a:focus-visible,.office-page.menu-open > .language-switch button:focus-visible { outline-color:#fff; }
.office-page #gFooter .fInner { padding-right:7.2%; }
.office-page ::selection { background:#333; color:#fff; }
@media(min-width:768px) and (max-width:1000px) {
  .office-page #gHeader.office-header { padding-top:80px; }
  .office-header-inner { min-height:190px; }
  .office-title { font-size:24px; max-width:100%; }
  .office-shortcuts { top:60px; left:54%; right:auto; display:flex; flex-wrap:nowrap; gap:8px 14px; }
  .office-shortcuts a { min-height:44px; font-size:11px; }
}


/* Complete parent Office content; typography and interface colors stay R.W.H. */
.office-page #gHeader.office-header { border:0; box-shadow:none; }
.office-header-inner { min-height:154px; }
.office-content,.office-main { font-family:Roboto,Arial,sans-serif; }
.office-page .office-main h2,.office-page .office-main h3 { color:#111; font-family:Roboto,Arial,sans-serif; font-weight:300; letter-spacing:.015em; }
.office-page .office-main h2 { margin:0 0 28px; font-size:26px; line-height:1.45; }
.office-page .office-main h3 { margin:0 0 14px; font-size:18px; line-height:1.5; }
.office-main p,.office-main dl,.office-main li { font:400 14px/1.95 Roboto,Arial,sans-serif; letter-spacing:.015em; }
.office-main a { color:#333; }
.office-main a:hover { color:#111; opacity:1; text-decoration:underline; text-underline-offset:5px; }
.office-intro { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1fr) minmax(0,1.35fr); align-items:start; gap:32px; }
.office-page .office-main .office-company { font-size:38px; line-height:1.2; font-weight:400; letter-spacing:.035em; margin:0 0 36px; }
.office-company span { display:block; font-size:25px; font-weight:300; margin-top:8px; }
.office-person { margin-bottom:30px; }
.office-person p,.office-person a { font-size:14px; line-height:1.8; }

.office-team > a { display:inline-block; margin-bottom:14px; font-size:18px; line-height:1.5; font-weight:300; }
.office-team li { margin-bottom:2px; }
.office-team li a,.office-team li span { display:inline-flex; align-items:center; min-height:32px; }
.office-portrait { margin:84px 0 0; }
.office-main figure img { display:block; width:100%; height:auto; }
.office-map { margin:0; }
.office-map figcaption { margin-top:12px; font:400 11px/1.7 Roboto,Arial,sans-serif; color:#666; }
.office-editorial { width:76%; max-width:76ch; margin:110px auto 0; }
/* Match the reference's centered text block and compact biography rhythm. */
@media(min-width:1001px) {
  .office-editorial { width:100%; max-width:900px; }
  .office-editorial p,.office-editorial dl,.office-editorial li { font-size:16px; line-height:1.65; }
  .office-page .office-editorial section + section { margin-top:56px; }
  .office-editorial .office-career-row { margin-bottom:8px; }
  .office-editorial .office-career-row:last-child { margin-bottom:0; }
}
.office-editorial section + section { margin-top:72px; }
.office-editorial p { margin:0 0 16px; }
.office-founder h3 { margin-top:28px!important; }
.office-career { margin-top:24px; }
.office-career-row { display:grid; grid-template-columns:105px minmax(0,1fr); gap:16px; margin-bottom:12px; }
.office-career dt { font-variant-numeric:tabular-nums; }
.office-career dd { margin:0; }
.office-editorial .office-values { font-weight:500; }
.office-signature { width:180px; max-width:45%; margin:36px 0 0 auto; }
.office-dream { text-align:center; padding-top:24px; }
.office-services { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:56px; }
.office-services h3 { text-transform:uppercase; }
.office-services .office-service-company { font-weight:500; }
.office-services p { max-width:33ch; margin:0 auto 16px; }
.office-partners { margin-top:88px; border-top:1px solid #ddd; padding-top:48px; }
.office-partners-heading { display:flex; flex-direction:column; align-items:center; gap:0; margin-bottom:32px; }
.office-page .office-main .office-partners-heading h2 { margin-bottom:14px; }
.office-partner-strips { display:grid; gap:28px; }
.office-partner-strip:focus-visible { outline:1px solid #333; outline-offset:6px; }
.office-partner-strip { min-width:0; max-width:100%; overflow-x:auto; padding-bottom:12px; background:#fff; scrollbar-color:#888 #f0f0f0; scrollbar-width:thin; }
.office-partner-strip img { display:block; width:auto; max-width:none; height:112px; }
.office-partner-strip:nth-child(2) img { height:135px; }
@media(min-width:768px) and (max-width:1000px) {
  .office-intro { grid-template-columns:1fr 1.1fr; gap:36px 28px; }
  .office-map { grid-column:1/-1; width:min(76%,540px); justify-self:center; }
  .office-editorial { width:90%; margin-top:80px; }
  .office-services { gap:28px; }
}


/* Typographic hierarchy: meaningful paragraphs, complete names and clear facts. */
.office-page .office-main h2 { text-wrap:balance; font-weight:700; }
.office-page .office-main h3 { font-weight:700; text-wrap:balance; }
.office-person h3 { max-width:none; margin-bottom:10px!important; }
.office-person > a,.office-person > p { font-weight:500; text-wrap:balance; }
.office-main strong { font-weight:500; }
[data-office-rich="officeContent.founderIntro"] strong { white-space:nowrap; }

.office-services article { display:grid; grid-template-rows:auto 1fr auto; }
.office-editorial p { text-wrap:pretty; }
.office-career-row { grid-template-columns:100px minmax(0,1fr); gap:24px; margin-bottom:16px; }
.office-career dt { color:#111; }
.office-services { gap:48px; }
.office-services .office-service-company { min-height:0; max-width:34ch; margin-bottom:20px; text-wrap:balance; }
.office-service-company strong { white-space:nowrap; }
.office-services .office-service-list { display:grid; gap:4px; margin:0; padding:0; }
.office-service-list li { text-wrap:balance; }
.office-partner-track { display:flex; width:max-content; }
.office-partner-group { flex:none; padding-right:64px; }
.office-partner-strip.is-animated { overflow:hidden; padding-bottom:0; mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent); }
.office-partner-strip.is-animated .office-partner-track { will-change:transform; }
.office-partner-copy[hidden] { display:none; }

@media(prefers-reduced-motion:reduce) {
  .office-partner-copy { display:none; }
  .office-partner-strip { overflow-x:auto; }
}

/* Mobile follows the source order: leadership, portrait, map, prose, centered services. */
@media(max-width:767px) {
  .office-page #container { padding-right:44px; }
  .office-page #gHeader.office-header { padding:24px 20px 0; }
  .office-header-inner { grid-template-columns:1fr; gap:18px; min-height:0; padding-bottom:28px; }
  .office-page .office-header .hLogo { width:128px; }
  .office-title { max-width:100%; font-size:24px; }
  .office-shortcuts { position:static; display:flex; flex-wrap:nowrap; align-items:center; width:100%; gap:0 10px; margin-top:-4px; }
  .office-shortcuts a { min-height:44px; font-size:11px; letter-spacing:.03em; }
  .office-page #main.office-main { padding:0 20px 72px; }
  .office-page .meunRBox { width:44px; }
  .office-page .meunRBox .menu { top:8px; right:0; }
  .office-rail-label { font-size:11px; }
  .office-page > .language-switch { top:8px; right:54px; }
  .office-page > .language-switch button { width:40px; min-height:44px; }
  .office-page #gFooter .fInner { padding-left:20px; padding-right:20px; }

  .office-main p,.office-main dl,.office-main li { font-size:16px; line-height:1.75; }
  .office-page .office-main h2 { font-size:23px; line-height:1.4; margin-bottom:20px; }
  .office-page .office-main h3 { font-size:18px; }
  .office-intro { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); grid-template-areas:"company company" "founder portrait" "board portrait" "teams teams" "map map"; gap:24px 16px; align-items:start; }
  .office-leadership { display:contents; }
  .office-page .office-main .office-company { grid-area:company; display:flex; align-items:baseline; gap:8px; font-size:28px; margin:0 0 4px; }
  .office-company span { display:inline; font-size:18px; margin:0; }
  .office-person { margin:0; min-width:0; }
  .office-person:nth-child(2) { grid-area:founder; }
  .office-person:nth-child(3) { grid-area:board; }
  .office-page .office-main .office-person h3 { font-size:15px; line-height:1.5; margin-bottom:8px!important; }
  .office-person > a,.office-person > p { display:block; margin:0; font-size:14px; line-height:1.6; font-weight:500; white-space:normal; }
  .office-portrait { grid-area:portrait; width:100%; max-width:180px; margin:0; justify-self:end; }
  .office-team { grid-area:teams; margin-top:4px; }
  .office-team > a { margin-bottom:12px; font-size:18px; }
  .office-team ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; margin:0; }
  .office-team li { margin:0; min-width:0; font-size:14px; line-height:1.5; }
  .office-team li a,.office-team li > span { display:block; min-height:32px; }
  .office-map { grid-area:map; width:100%; max-width:460px; margin:12px auto 0; }
  .office-map figcaption { margin-top:8px; font-size:12px; line-height:1.6; }

  .office-editorial { width:100%; margin-top:40px; }
  .office-editorial section + section { margin-top:44px; }
  .office-founder h3 { margin-top:24px!important; }
  .office-career-row { grid-template-columns:minmax(0,1fr); gap:4px; margin-bottom:20px; }
  .office-signature { width:140px; max-width:50%; margin:32px auto 0; }
  .office-dream { text-align:center; padding-top:16px; }
  .office-services { grid-template-columns:1fr; gap:88px; margin-top:56px; }
  .office-services article { display:block; border:0; padding:0; }
  .office-page .office-services h3 { font-size:23px; margin-bottom:24px; }
  .office-services .office-service-company { max-width:none; margin:0 0 24px; font-weight:700; text-wrap:wrap; }
  .office-services .office-service-list { display:block; }
  .office-service-list li { display:inline; }
  .office-service-list li + li::before { content:", "; }
  .office-services article:last-child .office-service-list li + li::before { content:" "; }
  .office-service-list li { text-wrap:wrap; }
  .office-partners { margin-top:44px; padding-top:28px; }
  .office-partners-heading { margin-bottom:20px; }
  .office-partner-strips { gap:16px; }
  .office-partner-strip img { height:72px; }
  .office-partner-strip:nth-child(2) img { height:86px; }
  .office-partner-group { padding-right:32px; }
}

@media(max-width:359px) {
  .office-shortcuts a { font-size:10px; letter-spacing:.01em; }
}

/* Static bilingual Office: original Vietnamese followed by its English translation. */
.office-translation { display:block; margin-top:.55em; font-weight:400; }
.office-main h2 .office-translation,.office-main h3 .office-translation { font-size:.8em; font-weight:700; }
.office-person h3 span { display:inline; }
.office-services .office-service-list { display:block; max-width:none; }
.office-team .office-translation { font-size:.9em; margin-top:3px; }
.office-career .office-translation { margin-top:6px; }

/* Align bilingual prose edges while retaining natural spacing on final lines. */
.office-founder > p,.office-philosophy > p { text-align:justify; text-align-last:start; text-justify:inter-word; text-wrap:wrap; }
.office-founder > p > span[lang],.office-philosophy > p > span[lang] { display:block; }
.office-editorial [lang="en"] { hyphens:auto; }
.office-career dd { text-align:start; }
