/* Local SVG flags: no dependency on operating-system emoji fonts. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.wv-language-menu { position: relative; display: inline-block; flex: 0 0 auto; margin: 0; color: #243149; font: inherit; }
.wv-language-menu[open] { z-index: 60; }
.wv-language-menu > summary {
    display: flex; align-items: center; gap: 7px; min-height: 44px; max-width: 190px;
    padding: 0 12px; border: 1px solid #cbdcf3; border-radius: 13px;
    background: #fff; color: #243149; font: inherit; font-size: 14px; font-weight: 750;
    list-style: none; cursor: pointer; white-space: nowrap; box-sizing: border-box;
}
.wv-language-menu > summary::-webkit-details-marker { display: none; }
.wv-language-menu > summary::marker { content: ''; }
.wv-language-name { overflow: hidden; text-overflow: ellipsis; }
.wv-language-short { display: none; }
.wv-language-chevron { flex: 0 0 12px; margin-left: auto; }
.wv-language-menu .wv-language-flag { display: block; width: 20px; height: 15px; min-width: 20px; max-width: none; flex: 0 0 20px; object-fit: contain; border-radius: 2px; box-shadow: 0 0 0 1px rgba(100,116,139,.25); }
.wv-language-options {
    position: absolute; z-index: 110; top: calc(100% + 8px); right: 0;
    width: 240px; max-width: calc(100vw - 22px); max-height: min(400px, 65vh);
    overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain;
    padding: 6px; box-sizing: border-box; border: 1px solid #cbdcf3; border-radius: 14px;
    background: #fff; color: #243149; box-shadow: 0 14px 40px rgba(15,23,42,.18);
}
.wv-language-menu:not([open]) > .wv-language-options { display: none; }
.wv-language-options ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 3px; }
.wv-language-options li { margin: 0; padding: 0; }
.wv-language-menu .wv-language-options a {
    display: grid; grid-template-columns: 20px minmax(0,1fr) 16px; gap: 10px; align-items: center;
    min-height: 44px; padding: 9px; box-sizing: border-box; border-radius: 9px;
    background: transparent; color: #243149; text-decoration: none; font: inherit;
    font-size: 14px; font-weight: 650; line-height: 1.4; white-space: normal; overflow-wrap: anywhere;
}
.wv-language-code { font-size: 10px; font-weight: 800; text-align: center; }
.wv-language-menu[open] > summary, .wv-language-menu > summary:hover,
.wv-language-menu .wv-language-options a:hover, .wv-language-menu .wv-language-options a[aria-current="true"] { background: #edf5ff; color: #155abd; }
.wv-language-menu :focus-visible { outline: 2px solid #1769e0; outline-offset: 2px; }
html[data-wv-theme="dark"] .wv-language-menu > summary,
html[data-wv-theme="dark"] .wv-language-menu .wv-language-options { background: #141e2f; border-color: #354963; color: #e6edf7; }
html[data-wv-theme="dark"] .wv-language-menu .wv-language-options a { color: #e6edf7; }
html[data-wv-theme="dark"] .wv-language-menu[open] > summary,
html[data-wv-theme="dark"] .wv-language-menu > summary:hover,
html[data-wv-theme="dark"] .wv-language-menu .wv-language-options a:hover,
html[data-wv-theme="dark"] .wv-language-menu .wv-language-options a[aria-current="true"] { background: #192a42; color: #93c5fd; }
html[data-wv-theme="dark"] .wv-language-menu :focus-visible { outline-color: #93c5fd; }
/* Authentication layouts position this control near the left edge. */
.wv-auth-language .wv-language-options { left: 0; right: auto; top: auto; bottom: calc(100% + 8px); }
@media (max-width: 760px) {
    .wgh .wgh__actions > .wv-language-menu { position: static; width: 96px; flex: 0 0 96px; }
    .wgh .wv-language-menu > summary { width: 96px; max-width: 96px; gap: 6px; padding: 0 8px; font-size: 12px; }
    .wgh .wv-language-menu > summary .wv-language-name { display: none; }
    .wgh .wv-language-menu > summary .wv-language-short { display: inline; }
    .wgh .wv-language-options { right: 0; left: auto; }
}
@media print { .wv-language-menu { display: none !important; } }
