/* Isolated rules: keep page content and mega-menu columns unchanged. */
#site-header .site-language-menu { position: relative; flex: 0 0 32px; font: 13px/1.5 system-ui,sans-serif; color: inherit; }
#site-header .site-language-menu > summary { display: flex; align-items: center; justify-content: center; width: 32px; height: 40px; cursor: pointer; list-style: none; border-radius: 6px; }
#site-header .site-language-menu > summary::-webkit-details-marker { display: none; }
#site-header .site-language-menu > summary svg { display: block; width: 21px; height: 21px; }
#site-header .site-language-menu > summary:hover, #site-header .site-language-menu[open] > summary { background: #ffffff14; }
#site-header .site-language-menu :focus-visible { outline: 2px solid #0071e3; outline-offset: 3px; }
#site-header .site-language-menu .site-language-options { position: absolute; top: calc(100% + 8px); right: 0; z-index: 99520; display: grid; min-width: 150px; padding: 6px; color: #151a1f; background: #f6f7f8; border: 1px solid #d9dee3; border-radius: 8px; box-shadow: 0 8px 24px #0002; }
#site-header .site-language-options a { display: block; padding: 10px 12px; border-radius: 4px; white-space: nowrap; color: inherit; text-decoration: none; }
#site-header .site-language-options a:hover { background: #e9ecef; }
#site-header .site-language-options a[aria-current] { color: #0071e3; font-weight: 600; }
@media(max-width:980px) {
  #site-header .site-language-menu { margin-left: auto; }
}

/* Keep the menu and language control together at the original right edge.
   The auto margin absorbs free space before the menu, not between the controls. */
@media(min-width:981px) {
  #site-header .nav:has(.site-language-menu) > :is(.nav-links,.homepage-nav-links) {
    margin-inline-start: auto;
  }
}

@media(max-width:1279px) {
  html:is([data-site-locale="en"],[data-site-locale="ja"]) #site-header .site-language-menu {
    margin-inline-start: auto;
  }
}
