/* Gia Phu information website typography. No logo or icon selectors. */
:root {
  --gpt-body: 'GPE Inter', system-ui, sans-serif;
  --gpt-heading: 'GPE Montserrat', system-ui, sans-serif;
  --gpt-h1: clamp(2rem, 1.5rem + 2vw, 3rem);
  --gpt-h2: clamp(1.5rem, 1.25rem + 1vw, 2rem);
  --gpt-h3: clamp(1.125rem, 1rem + .5vw, 1.375rem);
  --gpt-copy: clamp(1rem, .95rem + .2vw, 1.125rem);
  --gpt-lead: clamp(1.125rem, 1.05rem + .3vw, 1.25rem);
  --gpt-ui: 1rem;
  --gpt-small: .9375rem;
  --gpt-regular: 400; --gpt-medium: 500; --gpt-semibold: 600; --gpt-bold: 700;
  --gpt-copy-line: 1.75; --gpt-ui-line: 1.5; --gpt-heading-line: 1.35;
  --gpt-paragraph-gap: 1em; --gpt-section-before: 1.6em; --gpt-heading-after: .55em;
}
html body {font-family:var(--gpt-body)!important; font-size:var(--gpt-copy); line-height:var(--gpt-copy-line); letter-spacing:normal; font-weight:var(--gpt-regular)}
body #main :is(p,li,dt,dd,blockquote,td,summary,label,input,select,textarea,button),
body #footer :is(p,li,span,small,a),
body #gpe-site-header :is(a,p,small,strong,button) {
  font-family:var(--gpt-body)!important;
}
body #main :is(p,li,dt,dd,blockquote) {
  font-size:var(--gpt-copy)!important; font-weight:var(--gpt-regular)!important;
  line-height:var(--gpt-copy-line)!important; letter-spacing:normal!important;
  text-transform:none!important;
}
body #main :is(h1,h2,h3,h4,h5,h6),body #footer :is(h2,h3,h4),body #gpe-site-header h3 {
  font-family:var(--gpt-heading)!important; font-weight:var(--gpt-semibold)!important;
  letter-spacing:normal!important; text-transform:none!important;
  height:auto!important; overflow:visible; overflow-wrap:break-word;
  margin-bottom:var(--gpt-heading-after);
}
body #main h1 {font-size:var(--gpt-h1)!important; font-weight:var(--gpt-bold)!important; line-height:1.3!important}
body #main h2 {font-size:var(--gpt-h2)!important; line-height:var(--gpt-heading-line)!important}
body #main h3 {font-size:var(--gpt-h3)!important; line-height:1.4!important}
body #main :is(h4,h5,h6) {font-size:1rem!important; line-height:1.4!important}
body #main :is(.entry-content,.entry-summary) :is(h2,h3,h4,h5,h6) {margin-top:var(--gpt-section-before)}
body #main :is(.entry-content,.entry-summary) p {margin-bottom:var(--gpt-paragraph-gap); text-align:left}
body.single-post #main .entry-content {max-width:68ch; margin-inline:auto}
body #main :is(.gpd-intro,.gph-lead,.gpe11-lead,.lead,.is-style-lead) {font-size:var(--gpt-lead)!important; line-height:1.65!important}
body #main :is(a.button,button,input,select,textarea,label,summary),body #gpe-site-header :is(a,button) {
  font-size:var(--gpt-ui)!important; line-height:var(--gpt-ui-line)!important;
  letter-spacing:normal!important; text-transform:none!important;
}
body #main :is(a.button,button,label,summary),body #gpe-site-header :is(a,button) {font-weight:var(--gpt-medium)!important}
body #main :is(a.button,button) {height:auto; white-space:normal!important}
body #main :is(strong,b,th),body #footer :is(strong,b) {font-weight:var(--gpt-semibold)!important}
body #main :is(th,td) {font-family:var(--gpt-body)!important; font-size:1rem!important; line-height:1.6!important; font-variant-numeric:tabular-nums; letter-spacing:normal!important}
body #main :is(small,figcaption,.wp-caption-text,.gpd-tag,.gpe11-overline),body #footer small,body #gpe-site-header :is(small,.gpm-panel-head) {
  font-family:var(--gpt-body)!important; font-size:var(--gpt-small)!important;
  font-weight:var(--gpt-regular)!important; line-height:1.6!important;
  letter-spacing:normal!important; text-transform:none!important;
}
/* Explicit numeric column classes only; mixed text columns stay left aligned. */
body #main :is(td,th):is(.amount,.price,.numeric,.number,.text-right) {text-align:right}
/* Text links use the UI face. Exclude icon fonts and image logos explicitly. */
html body :is(#main,#footer,#gpe-site-header) a:not([class*="icon"]):not([class*="logo"]) {font-family:var(--gpt-body)!important; font-weight:var(--gpt-medium)!important; letter-spacing:normal!important}
html body #main :is(.gph-btn,.gpd-actions a,.gpe11-btn,.gos-btn,.gpx-btn,.button) {font-size:var(--gpt-ui)!important; line-height:var(--gpt-ui-line)!important; font-weight:var(--gpt-medium)!important; white-space:normal!important; height:auto!important}
html body :is(#main,#footer,#gpe-site-header) span:not([class*="icon"]):not([class*="logo"]):not([class^="fa"]):not([class*=" fa"]) {font-family:inherit!important; font-weight:inherit}
html body #main :is(h1,h2,h3,h4,h5,h6) :is(a,span) {font-family:var(--gpt-heading)!important; font-weight:inherit!important; line-height:inherit!important; letter-spacing:normal!important}
html body #main :is(.gph-eyebrow,.gpcr-eyebrow,.gph-kicker,.gpe11-kicker,.gpd-overline,.gpd-tag) {font-size:var(--gpt-small)!important; font-weight:var(--gpt-medium)!important; line-height:1.6!important; letter-spacing:normal!important; text-transform:none!important}
html body #footer :is(p,li,address) {font-size:1rem!important; line-height:1.75!important; font-weight:var(--gpt-regular)!important; letter-spacing:normal!important}
html body #footer :is(h2,h3) {font-size:1.125rem!important; line-height:1.4!important}
/* Secondary text on pale cards: at least 4.5:1 on the actual light backgrounds. */
html body #main :is(.gpf-assurance,.gper-placeholder) small {color:#53657d!important}
/* Limit long reading paragraphs without constraining section grids or tables. */
html body #main :is(.gs-about-copy,.gs-prose,.gs-article,.article-inner) p {max-width:72ch}
/* Let the existing header and contact controls grow when text is enlarged. */
html body #gpe-site-header :is(.gpe-nav-wrap,.gpe-desktop-nav,.gpe-nav-list,.gpe-nav-list>li,.gpe-nav-list>li>a) {height:auto!important}
html body #gpe-site-header .gpe-nav-wrap {min-height:76px}
html body #gpe-site-header summary {font-family:var(--gpt-body)!important;font-size:var(--gpt-ui)!important;font-weight:var(--gpt-medium)!important;line-height:1.5!important;letter-spacing:normal!important}
html body #gpe-floating-contact {font-family:var(--gpt-body)!important;width:11.125rem}
html body #gpe-floating-contact a {height:auto!important;min-height:54px}
html body #gpe-floating-contact strong {font-family:var(--gpt-body)!important;font-size:.875rem!important;font-weight:600!important;letter-spacing:normal!important;line-height:1.5!important}
html body #gpe-floating-contact small {font-family:var(--gpt-body)!important;font-size:.875rem!important;font-weight:400!important;white-space:normal!important;line-height:1.5!important}
@media(max-width:600px){html body #gpe-floating-contact{width:auto}}
html body #gpe-floating-contact :is(span,strong,small) {height:auto!important;min-height:0;max-height:none!important;grid-template-rows:none!important}
html body #gpe-floating-contact span {display:block!important}
html body #main :is(h1,h2,h3,h4,h5,h6,p) {-webkit-line-clamp:unset!important;max-height:none!important}
@media(min-width:901px){
 html body #gpe-site-header .gpe-nav-wrap {flex-wrap:wrap!important}
 html body #gpe-site-header .gpe-nav-logo {flex:0 0 auto!important}
 html body #gpe-site-header .gpe-desktop-nav {min-width:0;flex:1 1 36rem!important}
 html body #gpe-site-header .gpe-nav-list {flex-wrap:wrap!important;row-gap:.25rem}
}
@media(max-width:900px){html body #gpe-site-header .gpe-nav-wrap {min-height:65px}}
html body #gpe-site-header .gpm-guides .gpe-nav-parent>a {font-family:var(--gpt-body)!important;font-size:var(--gpt-ui)!important;line-height:1.5!important;font-weight:500!important;letter-spacing:normal!important}
@media(max-width:600px){
 html body #footer {padding-bottom:calc(7rem + env(safe-area-inset-bottom))}
 html body #top-link {bottom:calc(7.5rem + env(safe-area-inset-bottom))!important}
}
html body #main a[class*="btn"] {font-size:var(--gpt-ui)!important;line-height:var(--gpt-ui-line)!important;white-space:normal!important;height:auto!important}
/* Header repair: keep the language selector in the menu row, never an orphan row. */
@media(min-width:901px) and (max-width:1439px){
 html body #gpe-site-header .gpe-nav-wrap {display:grid!important;grid-template-columns:auto 1fr;gap:.25rem 1rem;padding-block:.5rem}
 html body #gpe-site-header .gpe-nav-logo {grid-column:1;grid-row:1}
 html body #gpe-site-header .gpe-nav-cta {grid-column:2;grid-row:1;justify-self:end}
 html body #gpe-site-header .gpe-desktop-nav {grid-column:1/-1;grid-row:2;width:100%}
 html body #gpe-site-header .gpe-nav-list {justify-content:flex-start!important;gap:.25rem 1rem!important}
}
@media(min-width:1440px){
 html body #gpe-site-header .gpe-nav-wrap {flex-wrap:nowrap!important}
 html body #gpe-site-header .gpe-desktop-nav {flex:1 1 auto!important}
 html body #gpe-site-header .gpe-nav-list {justify-content:flex-start!important;gap:.25rem .65rem!important}
}
/* Anchor the routes dropdown to its trigger after responsive text reflows. */
html body #gpe-site-header .gpe-desktop-nav .gpr21-menu {position:relative!important}
html body #gpe-site-header .gpe-desktop-nav .gpr21-dropdown {left:0!important;top:100%!important;transform:none!important}
/* Homepage layout repair — 2026-10-08. Scoped to the existing home components. */
html body .gph .gph-wrap {width:calc(100% - 3rem)!important;max-width:75rem!important;margin-inline:auto!important}
html body .gph .gph-hero-fullbleed {background:#062b51!important;padding:0!important;overflow:hidden}
html body .gph .gph-hero-fullbleed .gph-hero-grid {grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:3rem!important;min-height:0!important;padding:3.5rem 0 2.5rem!important;align-items:center}
html body .gph .gph-hero-fullbleed .gph-hero-copy {max-width:36rem;width:100%;padding:0!important}
html body .gph .gph-hero-fullbleed .gph-full-media {inset:0 0 0 46%!important;width:54%!important;height:100%!important;z-index:-2!important}
html body .gph .gph-hero-fullbleed .gph-full-media img {object-fit:cover!important;object-position:85% center!important}
html body .gph .gph-hero-fullbleed:after {z-index:-1!important;background:linear-gradient(90deg,#062b51 0%,#062b51 42%,rgba(6,43,81,.7) 52%,rgba(6,43,81,.12) 68%,transparent 82%)!important}
html body .gph .gph-hero-fullbleed>.gph-wrap {position:relative;z-index:2}
html body .gph .gph-hero-fullbleed .gph-eyebrow {margin-bottom:1rem!important}
html body .gph .gph-hero-fullbleed h1 {margin:0 0 1rem!important;text-shadow:none!important}
html body .gph .gph-hero-fullbleed .gph-hero-copy>p {max-width:42ch;color:#f1f6fc!important;margin:0!important}
html body .gph .gph-hero-actions {margin-top:1.5rem!important;gap:.75rem!important;flex-wrap:wrap}
html body .gph .gph-hero-services {grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:1rem 1.5rem!important;margin-top:1.5rem!important;padding-top:1.5rem!important}
html body .gph .gph-hero-services>div {flex-direction:row!important;align-items:center!important;gap:.625rem!important;min-width:0}
html body .gph .gph-hero-services b {font-size:.9375rem!important;line-height:1.5!important}
html body .gph .gph-hero-services small {color:#e2ecf7!important}
html body .gph .gph-hero-service-icon {flex:0 0 2.625rem}
html body .gph .gpcr-quick {margin:0!important;padding:1rem 0!important;border-top:1px solid #ffffff38;gap:1.5rem;flex-wrap:wrap}
html body .gph .gph-section {padding:4rem 0!important}
html body .gph .gph-head {gap:2rem!important;margin-bottom:2rem!important}
@media(min-width:901px){html body #gpe-site-header .gpe-nav-wrap{width:calc(100% - 3rem)!important;max-width:90rem!important;margin-inline:auto!important}}
@media(min-width:901px) and (max-width:1599px){
 html body #gpe-site-header .gpe-nav-wrap{display:grid!important;grid-template-columns:auto 1fr;gap:0 1rem;padding-block:.375rem!important}
 html body #gpe-site-header .gpe-nav-logo{grid-column:1;grid-row:1}
 html body #gpe-site-header .gpe-nav-cta{grid-column:2;grid-row:1;justify-self:end}
 html body #gpe-site-header .gpe-desktop-nav{grid-column:1/-1;grid-row:2;width:100%}
 html body #gpe-site-header .gpe-nav-list{justify-content:flex-start!important;gap:0 1rem!important}
 html body #gpe-site-header .gpe-nav-list>li>a,html body #gpe-site-header .gpe-nav-list>li>details>summary{padding-block:.5rem!important}
}
@media(min-width:1600px){html body #gpe-site-header .gpe-nav-wrap{display:flex!important;flex-wrap:nowrap!important}html body #gpe-site-header .gpe-nav-list{gap:.25rem .625rem!important}}
@media(max-width:900px){
 html body .gph .gph-hero-fullbleed{display:flex;flex-direction:column}
 html body .gph .gph-hero-fullbleed>.gph-wrap{order:1}
 html body .gph .gph-hero-fullbleed .gph-hero-grid{grid-template-columns:1fr!important;gap:0!important;padding:2.5rem 0 1.5rem!important}
 html body .gph .gph-hero-fullbleed .gph-hero-copy{max-width:42rem}
 html body .gph .gph-hero-clearspace{display:none!important}
 html body .gph .gph-hero-fullbleed .gph-full-media{position:relative!important;inset:auto!important;order:2;width:100%!important;height:16rem!important;z-index:0!important}
 html body .gph .gph-hero-fullbleed .gph-full-media img{object-position:85% 50%!important}
 html body .gph .gph-hero-fullbleed:after{display:none!important}
 html body .gph .gph-section{padding:3rem 0!important}
 html body .gph .gph-head{flex-direction:column;align-items:flex-start;gap:1rem!important}
}
@media(max-width:520px){html body .gph .gph-wrap{width:calc(100% - 2.5rem)!important}html body .gph .gph-hero-fullbleed .gph-hero-grid{padding-top:2rem!important}html body .gph .gph-hero-services{gap:1rem .75rem!important}html body .gph .gpcr-quick{gap:.5rem 1rem}html body .gph .gph-hero-fullbleed .gph-full-media{height:13rem!important}}
