/* One visual box for every flag, independent of SVG/image intrinsic ratios. */
.language-switcher .lang-flag,
.language-switcher .lang-flag:hover,
.language-switcher .lang-flag.active {
    display: block;
    flex: 0 0 28px;
    width: 28px;
    height: 21px;
    padding: 0;
    line-height: 0;
    overflow: hidden;
    border-radius: 2px;
    transform: none;
    box-sizing: border-box;
}
.language-switcher .lang-flag svg,
.language-switcher .lang-flag img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.language-switcher .lang-flag.active {
    outline: 2px solid #b47c57;
    outline-offset: 3px;
}
.language-switcher .lang-flag:focus-visible {
    outline: 2px solid #167888;
    outline-offset: 3px;
}
@media (max-width: 767px) {
    .language-switcher .lang-flag,
    .language-switcher .lang-flag:hover,
    .language-switcher .lang-flag.active {
        width: 24px;
        height: 18px;
        flex-basis: 24px;
    }
    /* Six flags must not overlap the branding in narrow public headers. */
    .gw-signin .gw-signin-header { min-height: 108px; padding-right: 0; padding-bottom: 38px; }
    .gw-signin .language-switcher { top: 67px; right: 18px; gap: 8px; }
    .gw-info-page .gw-public-header { min-height: 108px; align-items: flex-start; padding-top: 18px; padding-right: 18px; }
    .gw-info-page .language-switcher { top: 69px; right: 18px; gap: 8px; }
    .gw-info-page .scroll-container { height: calc(100dvh - 108px); }
}
