/* Shared, keyboard-accessible native selector; flag art stays sharp on Windows too. */
.site-language {
  position: absolute;
  z-index: 5;
  top: 50%;
  right: calc(clamp(1rem, 4vw, 3rem) + clamp(3.25rem, 5.5vw, 4.75rem) + 0.7rem);
  transform: translateY(-50%);
  width: 48px;
  height: 36px;
  border: 1px solid rgba(180, 220, 255, 0.46);
  border-radius: 5px;
  background: #06141b;
  box-sizing: border-box;
}
.site-language-flag { display: flex; align-items: center; height: 100%; padding: 5px 12px 5px 5px; box-sizing: border-box; }
.site-language-flag svg { display: block; width: 100%; height: auto; }
.site-language::after { content: ''; position: absolute; right: 4px; top: 15px; border: 3px solid transparent; border-top-color: #d5f2ff; pointer-events: none; }
.site-language select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; font: 16px system-ui, sans-serif; }
.site-language:focus-within { outline: 2px solid #8ee9ff; outline-offset: 3px; }
.has-site-language .section-header { position: relative; }
.has-site-language .section-nav { flex-wrap: wrap; }
html:not([lang="en"]) .section-tagline-line { width: auto; max-width: 100%; white-space: normal; }
html:not([lang="en"]) .footer-legal-link { white-space: normal; overflow-wrap: anywhere; max-width: 100%; }
html:not([lang="en"]) .footer-legal-link--privacy { text-align: left; }
html:not([lang="en"]) .footer-legal-link--impressum { text-align: right; }
@media (min-width: 56.25em) {
  /* Keep long localized navigation out of the wordmark and flag/tesseract lanes. */
  .has-site-language .section-header > nav { max-width: 46%; }
  .has-site-language .section-brand { max-width: 22%; }
  .has-site-language .section-tagline { max-width: 100%; }
  .has-site-language.legal-page .section-header { display: flex; }
  .has-site-language.legal-page .section-brand { position: absolute; transform: translateY(-50%); }
  .has-site-language.legal-page .section-header > nav { position: absolute; transform: translate(-50%, -50%); }
}
html[data-page="home"] .site-language { position: fixed; top: max(12px, env(safe-area-inset-top)); right: max(16px, env(safe-area-inset-right)); transform: none; z-index: 20; }
.language-edge-handle, .language-edge-panel { display: none; }
@media (max-width: 56.249em) {
  .has-site-language .section-header { padding-top: 0; }
  html .has-site-language .site-language {
    position: fixed; top: var(--edge-top, 50%); bottom: auto;
    right: env(safe-area-inset-right, 0px); left: auto;
    width: 36px; height: 44px; transform: none; z-index: 30;
    border-radius: 9px 0 0 9px;
  }
  .has-site-language .site-language[data-edge="left"] {
    left: env(safe-area-inset-left, 0px); right: auto; border-radius: 0 9px 9px 0;
  }
  .site-language-flag { padding: 6px; }
  .site-language::after { display: none; }
  .site-language select { pointer-events: none; }
  .language-edge-handle {
    display: block; position: absolute; inset: -1px 0 auto auto; width: 44px; height: 44px;
    border: 0; border-radius: inherit; background: transparent; touch-action: none; cursor: grab;
  }
  .language-edge-handle:focus-visible { outline: 2px solid #8ee9ff; outline-offset: -3px; }
  [data-edge="left"] .language-edge-handle { left: 0; right: auto; }
  .language-edge-panel:not([hidden]) {
    display: grid; position: fixed; z-index: 31; right: 42px; width: min(240px, calc(100vw - 60px));
    overflow-y: auto; overscroll-behavior: contain; padding: 6px;
    border: 1px solid #8bbacb; border-radius: 8px; background: #06141b; box-sizing: border-box;
  }
  .language-edge-panel[data-edge="left"] { left: 42px; right: auto; }
  .language-edge-panel button {
    min-height: 44px; padding: 8px 12px; border: 0; color: #e5faff; background: transparent;
    font: 16px system-ui, sans-serif; text-align: start; cursor: pointer;
  }
  .language-edge-panel button[aria-pressed="true"] { background: #164559; }
  .language-edge-panel button:focus-visible { outline: 2px solid #8ee9ff; outline-offset: -2px; }
}
@media (forced-colors: active) and (min-width: 56.25em) {
  .site-language { width: 8rem; }
  .site-language select { opacity: 1; }
}
@media (forced-colors: active) and (max-width: 56.249em) {
  .language-edge-handle { border: 1px solid ButtonText; }
  .language-edge-panel button[aria-pressed="true"] { border: 2px solid Highlight; }
}
