/* Flag menu for the hero's game-language picker (js/lang_flags.js). */
.m2-lang-flag { display: inline-flex; margin-left: 6px; }
.m2-flag { width: 21px; height: 14px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(255,255,255,.2); display: block; flex: none; }
.pixel-split-lang[aria-expanded="true"] .pixel-split-arrow { transform: rotate(180deg); }
.pixel-split-lang:focus-visible { outline: 2px solid #fee055; outline-offset: -4px; }
.m2-langmenu { position: absolute; z-index: 20; top: calc(100% + 8px); right: -2px; width: 440px; max-width: calc(100vw - 32px);
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 8px;
  background: #0b0820; border: 2px solid #fee055; border-radius: 10px; box-shadow: 0 18px 40px rgba(0,0,0,.6); }
.m2-langmenu[hidden] { display: none; }
.m2-langmenu.up { top: auto; bottom: calc(100% + 8px); }
.m2-langmenu button { display: flex; align-items: center; justify-content: flex-start; gap: 8px; width: 100%; padding: 8px 10px; margin: 0;
  background: none; border: 1px solid transparent; border-radius: 6px; box-shadow: none; transform: none;
  font-family: 'Noto Sans', system-ui, sans-serif; font-size: 13px; font-weight: 600; letter-spacing: 0; text-transform: none; color: #e6e8f2; text-align: left; }
.m2-langmenu button span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.m2-langmenu button:hover, .m2-langmenu button:focus-visible { background: rgba(254,224,85,.12); border-color: rgba(254,224,85,.35); color: #fff; transform: none; box-shadow: none; outline: none; }
.m2-langmenu button.on { background: rgba(254,224,85,.18); border-color: #fee055; color: #fee055; }
@media (max-width: 480px) {
  .m2-langmenu { right: 0; left: 0; width: auto; max-width: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .m2-lang-flag { margin-left: 4px; }
}
