/* Page shells share alignment; illustrations may intentionally extend full bleed.
   Width and gutter follow the steps in tokens.css (80rem, 20 · 32 · 48px). */
.wrap,
body > main,
.uhrstark-page main,
.uhrschnell-page main {
  width: min(var(--layout-max), calc(100% - var(--layout-gutter) * 2));
  max-width: none;
  margin-inline: auto;
  padding-inline: 0;
}
.site-footer {
  display: block;
  width: 100%;
  max-width: none;
  margin: 4rem 0 0;
  padding: var(--space-7) 0;
  border-top: var(--border-thin) solid var(--separator);
  background: var(--surface-subtle);
  color: var(--text-secondary);
  font-size: var(--fs-small);
  line-height: 1.8;
  overflow-wrap: break-word;
}
.footer-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4) var(--space-6);
  width: min(var(--layout-max), calc(100% - var(--layout-gutter) * 2));
  margin-inline: auto;
}
.footer-inner > * { min-width: 0; }
.site-footer .brand { display: block; font: 500 1.875rem/1.2 var(--font-display); text-decoration: none; color: var(--text); }
.site-footer p { margin: 0; font-size: var(--fs-small); }
.footer-links { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); width: 100%; }
.footer-links a { display: inline-flex; align-items: center; min-height: var(--control-min); font-size: .9375rem; text-decoration: underline; text-underline-offset: 0.2em; }
