/* Cross-language additions to the approved Chinese design. */
.contact-dock {
  top: 50%;
  bottom: auto;
  transform: translateY(-50%);
}
.contact-dock[hidden] { display: none !important; }
.contact-dock .contact-dock__close {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  margin: 10px auto 0;
  padding: 0;
  border: 1px solid #d7e2f5;
  border-radius: 50%;
  color: #667085;
  background: #fff;
  box-shadow: 0 3px 10px #1e3a6014;
  cursor: pointer;
}
.contact-dock .contact-dock__close:hover { color: #2563eb; background: #eef4ff; }
.contact-dock .contact-dock__close:focus-visible,
.site-header a:focus-visible,
.site-header summary:focus-visible { outline: 2px solid #2563eb; outline-offset: 3px; }
/* The close button sits beneath the menu without shifting the menu's center. */
.contact-dock { margin-top: 21px; }
.contact-dock__qr { bottom: 100px; }

html:not([lang="zh-CN"]) h1,
html:not([lang="zh-CN"]) h2,
html:not([lang="zh-CN"]) h3 { text-wrap: balance; }
html:not([lang="zh-CN"]) .page-hero h1 { font-size: clamp(36px, 3.5vw, 50px); line-height: 1.18; }
html:not([lang="zh-CN"]) .hero h1 { font-size: clamp(38px, 3.8vw, 54px); line-height: 1.18; }
html[lang="vi"] .hero h1 { font-size: clamp(38px, 3.35vw, 48px); }
/* Longer translated labels must not overlap the neighboring floating card. */
html:not([lang="zh-CN"]) .float-card.card-b { bottom: 210px; }
html:not([lang="zh-CN"]) .hero-copy { min-width: 0; }
html:not([lang="zh-CN"]) .hero-lead { line-height: 1.65; }
html:not([lang="zh-CN"]) .hero-copy .eyebrow { letter-spacing: 0; }
html:not([lang="zh-CN"]) .inline-cta-actions,
html:not([lang="zh-CN"]) .method-actions { flex-wrap: wrap; }
html:not([lang="zh-CN"]) .c5a-review .hero-copy h1,
html:not([lang="zh-CN"]) .cra-review .hero-copy h1 { flex-wrap: wrap; }
html:not([lang="zh-CN"]) .c5a-review .hero-copy h1 > .gradient-text,
html:not([lang="zh-CN"]) .cra-review .hero-copy h1 > .gradient-text { flex-basis: 100%; }
html:not([lang="zh-CN"]) .stage-tab { white-space: normal; line-height: 1.4; min-width: 0; }
html:not([lang="zh-CN"]) .step-card h3 { line-height: 1.4; }
html:not([lang="zh-CN"]) .solution-questions .execution-point { height: auto; }
html:not([lang="zh-CN"]) .outcome-image-card figcaption strong { font-size: 21px; line-height: 1.4; }
.preview-language-note { margin: 12px 0 0; color: #667085; font-size: 13px; line-height: 1.5; }
.evidence-image-card .preview-language-note { margin: 0; padding: 10px 16px; background: #fff; }

/* Policy text uses a document surface, independent of the agency photo section. */
.policy-page > .page-hero + .section { background: #fff; color: #17181b; }
.policy-page > .page-hero + .section::before,
.policy-page > .page-hero + .section::after { content: none; }
.policy-page > .section > .container { max-width: 860px; }
.policy-page .section-head { text-align: left; margin: 36px 0; }
.policy-page .section-head h2 { font-size: 28px; line-height: 1.35; }
.policy-page .section-head p { max-width: none; margin: 12px 0 0; color: #475467; line-height: 1.8; }
.policy-page > .section > .container > p { color: #475467; }

/* Keep all navigation destinations accessible in narrow desktop windows. */
@media (min-width: 761px) and (max-width: 1180px) {
  .site-header .nav-wrap { gap: 16px; }
  .site-header .brand-logo { width: 164px; }
  .site-header .main-nav { display: flex; gap: 16px; margin-left: auto; font-size: 14px; }
  .site-header .nav-actions { gap: 8px; }
  .site-header .nav-actions .button { padding: 9px 12px; font-size: 14px; }
  .site-header .nav-actions .language { padding: 8px; font-size: 14px; }
  .site-header .container { width: calc(100% - 48px); }
  .journey { grid-template-columns: repeat(5, minmax(0, 1fr)); overflow: visible; }
  .journey-item { min-width: 0; }
}
/* On smaller windows, retain a compact second navigation row. */
@media (max-width: 900px) {
  .site-header { height: auto; }
  .site-header .nav-wrap { display: flex; flex-wrap: wrap; gap: 0 12px; padding-top: 10px; }
  .site-header .nav-actions { margin-left: auto; }
  .site-header .main-nav { display: flex; order: 3; flex: 1 0 100%; justify-content: space-between; gap: 12px; font-size: 13px; }
  .site-header .main-nav a { padding: 12px 0; }
  .site-header .main-nav a.active::after { bottom: 6px; }
  .site-header .brand-logo { width: 140px; }
}
@media (max-width: 760px) {
  .contact-dock { top: 50%; bottom: auto; }
  .contact-dock__qr { position: absolute; right: calc(100% + 8px); bottom: 90px; }
  html:not([lang="zh-CN"]) .page-hero h1 { font-size: 36px; }
  .policy-page > .section > .container { width: calc(100% - 48px); }
}
