/* 認証フローとマイページで共用する4言語メニュー。 */
.language-menu[hidden]{display:none}
.language-menu{
  position:fixed;
  z-index:220;
  top:60px;
  right:12px;
  width:172px;
  padding:4px;
  border:1px solid var(--line2);
  border-radius:var(--radius-app-control);
  background:var(--card);
  box-shadow:var(--shadow-float);
}
.language-menu button{
  width:100%;
  min-height:44px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 12px;
  border-radius:calc(var(--radius-app-control) - 2px);
  color:var(--ink2);
  font-size:1.3rem;
  font-weight:500;
  text-align:left;
  white-space:nowrap;
}
.language-menu button span:first-child{
  font-family:var(--font-latin),var(--font);
  color:var(--ink3);
  font-size:var(--fs-xs);
  font-weight:600;
}
.language-menu button[aria-checked="true"]{
  background:var(--primary-soft);
  color:var(--primary-deep);
}
.language-menu button[aria-checked="true"]::after{
  content:"";
  width:7px;
  height:4px;
  border-left:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg) translateY(-1px);
}
@media (hover:hover) and (pointer:fine){
  .language-menu button:hover{background:var(--color-soft-blue)}
}
.app-bar-side.language-toggle:active,
.language-menu button:active{
  opacity:.68;
  transform:none;
  box-shadow:none;
}
.app-bar-side.language-toggle:focus-visible,
.language-menu button:focus-visible{
  outline:none;
  box-shadow:none;
}
.language-menu button:focus-visible{background:var(--color-soft-blue)}
.language-menu button[aria-checked="true"]:focus-visible{background:var(--primary-soft)}
.app-bar-side.language-toggle[disabled],
.language-menu button[disabled]{
  opacity:.45;
  cursor:not-allowed;
}
html[lang="en"] body.app{
  font-family:var(--font-latin),var(--font);
}
@media (prefers-reduced-motion:reduce){
  .app-bar-side.language-toggle,.language-menu button{transition:none}
}

/* 2026-08-17 · display preferences, verification code, and optical alignment */
.language-menu{width:176px}
.language-menu button{
  display:grid;
  grid-template-columns:24px minmax(0,1fr) 12px;
  align-items:center;
  justify-content:initial;
  column-gap:10px;
  padding:0 12px;
}
.language-menu .language-flag{display:block;width:22px;height:22px}
.language-menu .language-label{grid-column:2;color:inherit;font:inherit;text-align:left}
.language-menu button[aria-checked="true"]::after{grid-column:3;justify-self:center}

html[lang="ko"]{--font:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic","Noto Sans JP",system-ui,sans-serif}
html[lang="zh-CN"]{--font:"Noto Sans SC","PingFang SC","Microsoft YaHei","Noto Sans JP",system-ui,sans-serif}
html[lang="ko"] body,html[lang="zh-CN"] body{word-break:keep-all;overflow-wrap:anywhere}
html[lang="zh-CN"] body{word-break:normal}
/* 認証ヘッダーでは既存のログインリンクの右側に置く。 */
.auth-language-toggle{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;padding:0;border-radius:var(--radius-app-control);color:var(--ink2);background:transparent}
.auth-language-toggle svg{display:block;width:22px;height:22px}
.auth-language-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
.auth-language-toggle:active{opacity:.68}
.auth-language-toggle[aria-expanded="true"]{background:var(--primary-soft)}
html:not([lang="ja"]) .auth-page .auth-title{word-break:normal;overflow-wrap:anywhere;text-wrap:balance}
html[lang="ko"] .auth-page .auth-title{word-break:keep-all}   /* 韓国語は語（空白で区切った単位）の途中で折らない */
html:not([lang="ja"]) .auth-page .stepper-track li{word-break:normal;overflow-wrap:anywhere}
html:not([lang="ja"]) .auth-page .auth-consent label{word-break:normal;overflow-wrap:anywhere}
/* Keep each translated document title whole; only Japanese retains its authored line break.
   The English prefix precedes the links in DOM order as well as visually. */
.register-consent-copy{min-width:0}
.consent-prefix-en{display:none}
html[lang="en"] .consent-prefix-en{display:inline;white-space:nowrap}
html:not([lang="ja"]) .register-consent-copy{word-break:normal;overflow-wrap:normal}
html:not([lang="ja"]) .register-consent-copy .consent-document,
html:not([lang="ja"]) .register-consent-copy .consent-suffix{display:inline-block;white-space:nowrap}
html:not([lang="ja"]) .register-consent-copy .consent-break-ja{display:none}
html[lang="en"] .register-consent-copy .consent-suffix{display:none}
html[lang="en"] .register-consent-copy,html[lang="en"] .register-consent-copy a{letter-spacing:0}   /* 360pxで「I agree to Important Information ·」を1行に（字間0.15pxぶん足りなかった） */
html[lang="ko"] .register-consent-copy .consent-ending,
html[lang="zh-CN"] .register-consent-copy .consent-ending{display:inline-block;white-space:nowrap}
html[lang="en"] .auth-page .header-cta{letter-spacing:0}
@media(max-width:359px){.auth-page .site-header-inner{gap:10px}.auth-page .header-actions{gap:4px}}
