/* Language links are real URLs and remain usable without JavaScript. */
.language-switch { display: flex; align-items: center; gap: 2px; margin-left: auto; flex-shrink: 0; }
.language-switch a { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; min-height: 44px; font: .8125rem/1 var(--sans); text-decoration: none; color: var(--muted); }
.language-switch [aria-current="true"] { color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .4em; }
.language-switch a:hover { color: var(--ink); text-decoration: underline; }
.language-entry { max-width: 48rem; padding-block: 12vh; }
.language-entry > img { width: 180px; margin-bottom: 4rem; }
.language-entry p { margin-block: 1.5rem 2rem; }
.language-entry nav { display: flex; gap: 1rem; flex-wrap: wrap; }
html[lang="de"] h1 { overflow-wrap: normal; hyphens: auto; }
@media (max-width: 47.99rem) {
  .header-inner { gap: .5rem; }
  .header .brand img { width: clamp(104px, 32vw, 142px); }
  .mobile-menu summary { gap: .5rem; }
}
@media (min-width: 64rem) {
  .language-switch { margin-left: 0; }
  .desktop-nav { margin-left: auto; gap: 1.25rem; }
}

/* Persistent navigation; anchors retain the shared header scroll offset. */
.header { position: sticky; top: 0; }
@media (min-width: 48rem) and (max-width: 63.99rem) {
  .mobile-menu nav { max-height: calc(100dvh - 84px); }
}
@media (min-width: 64rem) {
  .contents { top: 8rem; }
  .legal-contents { max-height: calc(100dvh - 10rem); }
}
/* Long German legal headings must fit even the smallest supported viewport. */
html[lang="de"] .legal-copy h2,
html[lang="de"] .legal-contents a { hyphens: auto; overflow-wrap: anywhere; }
