/* Keep each language column directly below its own trigger, at the same width. */
.site-header .lang-switcher,
.site-header .site-header__mobile-lang-switcher {
  position: relative;
  --language-flag-padding: 9px;
}
/* A common inset keeps every flag directly below the selected flag,
   independent of the width of EN, IT, 中文 or the caret. */
.site-header .lang-switcher__summary,
.site-header .site-header__mobile-lang-summary {
  justify-content: flex-start;
  padding-inline: var(--language-flag-padding);
}
.site-header .lang-switcher__menu,
.site-header .site-header__mobile-lang-menu {
  position: absolute;
  inset-inline-start: 0;
  inset-inline-end: auto;
  top: calc(100% + 4px);
  width: 100%;
  min-width: 0;
  max-width: none;
  box-sizing: border-box;
  margin: 0;
  padding: 4px;
  max-height: min(440px, 70dvh);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.site-header .lang-switcher__menu .lang-switcher__item,
.site-header .site-header__mobile-lang-menu .site-header__mobile-lang-option {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  width: 100%;
  min-height: 32px;
  box-sizing: border-box;
  gap: 4px;
  padding: 4px calc(var(--language-flag-padding) - 4px);
  white-space: nowrap;
}
@media (max-width: 520px) {
  .site-header .site-header__mobile-lang-switcher {
    --language-flag-padding: 8px;
  }
}
@media (max-width: 360px) {
  .site-header .site-header__mobile-lang-switcher {
    --language-flag-padding: 7px;
  }
}
.site-header .lang-switcher__menu img,
.site-header .site-header__mobile-lang-menu img {
  flex-shrink: 0;
}
@media (max-width: 1180px) {
  .site-header .site-header__mobile-lang-menu .site-header__mobile-lang-option {
    min-height: 36px;
  }
}
