/* Responsive header safeguards shared by the German and English homepages.
   Keep the navigation within the viewport, including browser zoom and tablets. */
.site-header .header-inner {
  max-width: 1600px;
  padding-inline: clamp(1.25rem, 2.4vw, 2.5rem);
}
.site-header .logo {
  flex-shrink: 0;
}
.site-header .nav {
  flex-shrink: 0;
}

/* Retain the full navigation on wide desktops without wasting space. */
@media (min-width: 1281px) and (max-width: 1700px) {
  .site-header .header-inner { gap: 0.85rem; }
  .site-header .logo { font-size: 0.88rem; letter-spacing: 0.09em; }
  .site-header .nav { gap: clamp(0.65rem, 1vw, 1rem); font-size: 0.75rem; letter-spacing: 0.09em; }
}

/* The previous 820px breakpoint was too late: the full menu overflowed
   at laptop widths and enlarged browser text/zoom. */
@media (max-width: 1280px) {
  .site-header .header-inner { height: 3.5rem; }
  .site-header .menu-toggle { display: inline-block; margin-left: auto; }
  .site-header .nav {
    position: fixed;
    top: 3.5rem;
    left: 0;
    right: 0;
    z-index: 101;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 0.5rem max(1.25rem, calc((100vw - 1040px) / 2)) 1rem;
    background: #F7F5F2;
    border-top: 1px solid #E3E0DA;
    border-bottom: 1px solid #E3E0DA;
    max-height: calc(100vh - 3.5rem);
    max-height: calc(100dvh - 3.5rem);
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .site-header .nav.is-open { display: flex; }
  .site-header .nav a {
    padding: 0.7rem 0;
    font-size: 0.9rem;
    letter-spacing: 0.1em;
  }
  .site-header .nav a::after { display: none; }
  .site-header .nav .nav-cta,
  .site-header .nav .lang-switch {
    width: auto;
    margin-top: 0;
    text-align: left;
  }
}
