/* Shared footer layout for all German and English pages. */
footer.site-footer .site-footer-inner {
  /* The rounded page wrapper overlaps the footer by 6rem. */
  padding: 8rem clamp(1rem, 4vw, 4rem) 1.4rem;
}

footer.site-footer .site-footer-nav {
  width: min(90rem, 100%);
  display: grid;
  grid-template-columns: 1.15fr 1fr 1.3fr 1fr 0.85fr;
  gap: 2rem clamp(1.5rem, 3vw, 3rem);
  align-items: start;
  margin: 3.5rem auto 3rem;
  text-align: left;
}

footer.site-footer .site-footer-column {
  min-width: 0;
  width: 100%;
  text-align: left;
}

footer.site-footer .site-footer-column h3 {
  font-size: clamp(1.2rem, 1.6vw, 1.6rem);
  line-height: 1.2;
  margin: 0 0 0.9rem;
}

footer.site-footer .site-footer-column li {
  margin: 0 0 0.55rem;
}

footer.site-footer .site-footer-column a {
  max-width: 100%;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

footer.site-footer .site-footer-language {
  font-size: 0.7em;
  white-space: nowrap;
  opacity: 0.75;
}

@media (min-width: 769px) and (max-width: 1100px) {
  footer.site-footer .site-footer-nav {
    grid-template-columns: 1fr 1fr 1.2fr;
  }
}

@media (max-width: 768px) {
  footer.site-footer .site-footer-inner {
    /* Keep headings below the mobile wrapper's 3rem overlap. */
    padding: 4.5rem 1rem calc(1rem + env(safe-area-inset-bottom));
  }

  footer.site-footer .site-footer-nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.75rem 1.25rem;
    margin: 0 0 1.75rem;
  }

  footer.site-footer .site-footer-column h3 {
    font-size: 1.25rem;
    margin-bottom: 0.65rem;
  }

  footer.site-footer .site-footer-column a {
    font-size: 0.95rem;
  }

  footer.site-footer .site-footer-regions {
    grid-column: 1 / -1;
  }

  footer.site-footer .site-footer-regions ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 1.25rem;
  }

  footer.site-footer .site-footer-social-links {
    justify-content: flex-start;
  }
}
