.language-switcher {
  position: relative;
  z-index: 6;
}

.language-switcher summary {
  min-width: 72px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.2);
  color: rgba(255,255,255,.86);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  cursor: pointer;
  list-style: none;
  transition: border-color .25s, color .25s, background .25s;
}

.language-switcher summary::-webkit-details-marker { display: none; }
.language-switcher summary:hover,
.language-switcher[open] summary { border-color: #fcbe2b; color: #fcbe2b; background: rgba(252,190,43,.06); }
.language-switcher summary svg:last-child { transition: transform .25s ease; }
.language-switcher[open] summary svg:last-child { transform: rotate(180deg); }

.language-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 188px;
  padding: 8px;
  background: #11110f;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 22px 50px rgba(0,0,0,.38);
  transform-origin: top right;
  animation: languageMenuIn .22s ease both;
}

.language-menu::before {
  content: "";
  position: absolute;
  right: 22px;
  top: -5px;
  width: 9px;
  height: 9px;
  background: #11110f;
  border-left: 1px solid rgba(255,255,255,.16);
  border-top: 1px solid rgba(255,255,255,.16);
  transform: rotate(45deg);
}

.language-menu a,
.language-menu button {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  min-height: 42px;
  padding: 0 10px;
  color: rgba(255,255,255,.7);
  font-size: 12px;
  transition: background .2s, color .2s;
}

.language-menu button {
  width: 100%;
  border: 0;
  background: transparent;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.language-menu a + a,
.language-menu button + button { border-top: 1px solid rgba(255,255,255,.08); }
.language-menu a:hover,
.language-menu a[aria-current="true"],
.language-menu button:hover,
.language-menu button[aria-current="true"] { color: #fff; background: rgba(252,190,43,.1); }
.language-menu a[aria-current="true"] b,
.language-menu button[aria-current="true"] b { color: #fcbe2b; }
.language-menu b { font-size: 10px; letter-spacing: .13em; }
.language-menu span { font-weight: 400; letter-spacing: .02em; }

html.jpr-i18n-pending body { opacity: 0; }
body { transition: opacity .18s ease; }
main,
.site-footer { transition: opacity .18s ease, transform .18s ease; }
body.jpr-language-switching main,
body.jpr-language-switching .site-footer { opacity: .35; transform: translateY(2px); }

@media (prefers-reduced-motion: reduce) {
  body,
  main,
  .site-footer { transition: none !important; }
}

@keyframes languageMenuIn {
  from { opacity: 0; transform: translateY(-7px) scale(.98); }
  to { opacity: 1; transform: none; }
}

@media (min-width: 1121px) {
  .header-inner { grid-template-columns: 150px 1fr auto auto; gap: 24px; }
}

@media (min-width: 901px) and (max-width: 1120px) {
  .header-inner { grid-template-columns: 115px 1fr auto auto; gap: 14px; }
  .language-switcher summary { min-width: 64px; padding-inline: 8px; }
}

@media (max-width: 900px) {
  .header-inner { grid-template-columns: 1fr auto auto; gap: 8px; }
  .language-switcher summary { min-width: 62px; height: 38px; padding-inline: 8px; }
  .language-menu { right: -46px; width: 178px; }
  .language-menu::before { right: 65px; }
}

@media (max-width: 390px) {
  .language-switcher summary { min-width: 54px; gap: 5px; }
  .language-switcher summary svg:first-child { display: none; }
}
