/* Language-specific typography and elastic controls, using the existing design tokens. */
.lang-panel { width: min(22rem, calc(100vw - 2 * var(--gutter))); max-height: calc(100svh - var(--header-h) - 2rem); overflow-y: auto; }
.lang-panel .menu-n { min-width: 3.25rem; flex: none; }
.lang-panel .menu-text { min-width: 0; }
.lang-panel a { min-height: 2.75rem; align-items: center; }
.mobile-langs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .25rem 1rem; }
.mobile-langs a { display: flex; align-items: center; min-height: 2.75rem; overflow-wrap: anywhere; }
.footer-langs a { overflow-wrap: anywhere; }
.choice, .field, .menu-text, .footer-col, .start-copy { min-width: 0; }
.choice span, .field label, .prose, .faq-a { overflow-wrap: anywhere; }
html:not([lang="en"]) :is(.btn, .wl-btn) { white-space: normal; text-align: center; max-width: 100%; }
html:not([lang="en"]) :is(.t-display, .t-h1, .t-h2, .gx-h, .wl-h, .wl-h1, .wl-note-h, .hero-title) { overflow-wrap: break-word; }
html.nv-on:not([lang="en"]) .hero-copy .t-display { min-width: 0; max-width: 100%; }
html.nv-on:not([lang="en"]) .hl-a { white-space: normal; }
/* Full-width Japanese glyphs use the existing H1 token. With 1.3 leading their
   line box matches the Latin display rhythm, without shrinking other locales. */
html.nv-on[lang="ja"] .hero-copy .t-display { font-size: var(--t-h1); }
@media (max-width: 899px) {
  /* Keep both Japanese hero actions on their existing row, reserving room for
     the Raven above the copy. Font size and 50 px touch height stay unchanged. */
  html[lang="ja"] .ch-hero .hero-actions .btn--lg { padding-inline: 1rem; }
}
html[lang="ja"] {
  --font-display: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
  --font-body: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", "Meiryo", "Noto Sans CJK JP", "Noto Sans JP", sans-serif;
  line-break: strict; word-break: normal; overflow-wrap: break-word;
}
html[lang="ja"] :is(.t-display, .t-h1, .t-h2, .gx-h, .gx-h1, .wl-h, .wl-h1, .wl-note-h, .hero-title) { line-height: 1.3; letter-spacing: 0; }
html[lang="ja"] :is(.t-h3, .nv-eyebrow, .move-title, .lstep-title, .gx-system h3, .module-title, .gap-q, .gap-q b) { line-height: 1.4; letter-spacing: 0; }
html[lang="ja"] :is(.t-label, .mobile-label, .gx-ev b, .gx-rules-title, .gx-system dt, .gx-events b, .wl-more dt) { letter-spacing: .02em; }
html[lang="ja"] :is(p, .t-lead, .gx-p, .wl-lead) { line-height: 1.75; }
