/* Shared Vietnamese line rhythm for static pages and assessment results. */
body :is(h1,h2,h3,h4,p,li,summary,legend,label,button,a,dt,dd,small) {
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}
body :is(h1,h2,h3,h4,legend,summary) { text-wrap: balance; }
body :is(.intro h1,.bridge-card h1,.reg-intro h1,.welcome h1,.station-intro h1,.result h1,.document-header h1) { line-height: 1.14; }
body :is(p,li,dd,small,label) { text-wrap: pretty; }
body :is(button,.primary-button,.secondary-button,.btn,.fd-button) {
  max-width: 100%;
  white-space: normal;
  text-wrap: balance;
  line-height: 1.5;
  text-align: center;
}
body :is(.brand,.topbar,.fm-topbar,.bridge-topbar,.reg-topbar) { flex-wrap: wrap; gap: 12px; }
body :is(.choice > span,.signal-group summary > span:first-child) { overflow-wrap: normal; }
body :is(.fm-hero,.fm-two-col,.fm-output-grid,.fm-process,.fm-fit-grid,.fm-boundary,.fm-package,.fm-package-grid,.fm-journey-intro,.fm-journey-list,.fm-scope-heading,.fm-scope-grid,.intro-grid,.document-grid) > * { min-width: 0; }
body .ic-phrase { white-space: nowrap; }
body .fm-hero { grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr); gap: clamp(32px,4vw,56px); padding: clamp(40px,5vw,64px); }
body .fm-hero h1 { font-size: clamp(2.8rem,5.2vw,4.65rem); line-height: 1.13; max-width: 100%; }
body .fm-hero-statement { font-size: clamp(1.25rem,2vw,1.65rem); line-height: 1.5; }
body .fm-offer-card { padding: clamp(24px,2.5vw,32px); }
body .offer-price { flex-wrap: wrap; align-items: baseline; }
body .offer-price b { white-space: nowrap; }
body .offer-price span { text-wrap: pretty; }
body .fm-link-button { gap: 8px; }
body .fm-link-button span { margin-left: 0; }
body .fm-offer-card .fm-link-button { flex-wrap: wrap; column-gap: .35em; row-gap: 0; }
body .fm-offer-card .fm-link-button .ic-phrase { white-space: nowrap; }
@media (max-width: 960px) {
  body .fm-hero { grid-template-columns: minmax(0,1fr); padding: 48px 36px; }
  body .fm-offer-card { width: 100%; max-width: 560px; }
  body .fm-process, body .fm-boundary, body .fm-package, body .fm-journey-intro, body .fm-scope-heading { grid-template-columns: minmax(0,1fr); }
  body .fm-package-note { grid-column: 1; margin-top: 0; }
  body .welcome { grid-template-columns: minmax(0,1fr); }
  body .welcome h1 { font-size: clamp(2.8rem,5.2vw,4.65rem); }
}
@media (max-width: 620px) {
  body .fm-hero { padding: 36px 20px; }
  body :is(.intro h1,.bridge-card h1,.reg-intro h1,.welcome h1,.station-intro h1,.result h1,.document-header h1) { font-size: clamp(2.1rem,9.8vw,3.2rem); }
  body .fm-hero :is(.fm-actions,.fm-offer-card) .fm-link-button { font-size: .95rem; }
  body .fm-offer-card .fm-link-button > span { max-width: 100%; }
  body .fm-hero h1 { font-size: clamp(2.3rem,10.8vw,3.65rem); line-height: 1.16; }
  body .fm-hero-statement { font-size: 1.25rem; }
  body .fm-offer-card { padding: 26px 20px; }
  body .offer-price { flex-direction: column; }
  body :is(.primary-button,.secondary-button,.btn,.fd-button) { padding-left: 16px; padding-right: 16px; }
  body .fm-link-button { flex-wrap: wrap; }
  body .fm-hero .fm-actions { align-items: stretch; flex-direction: column; }
}
