/* Fußzeile A (Automagically): immer dunkel, auch im hellen Farbschema. */
.ft { position: relative; margin-top: auto; padding: 34px 40px 32px; background: #0c0c0e; color: #a8a29b; font-family: "DM Sans", system-ui, sans-serif; }
.ft-in { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px 26px; }
.ft-wrap { padding-inline: 16px; }
.ft-wrap .ft-in { max-width: 1088px; margin: 0 auto; }
.ft-brand { display: flex; align-items: center; gap: 12px; }
.ft-by { font-size: 15px; color: #a8a29b; text-decoration: none; }
.ft-by b { color: #fafaf8; font-weight: 600; border-bottom: 1px solid rgba(250, 250, 248, .25); }
a.ft-by:hover b { border-bottom-color: rgba(250, 250, 248, .6); }
.ft-links { display: flex; flex-wrap: wrap; gap: 8px 26px; font-size: 13.5px; }
.ft-links a { color: #8f897d; text-decoration: none; padding-block: 8px; }
.ft-links a:hover { color: #fafaf8; text-decoration: underline; text-underline-offset: 4px; }
.ft a:focus-visible { outline: 2px solid #fafaf8; outline-offset: 3px; border-radius: 4px; }
.ft-shim { position: absolute; left: 0; right: 0; top: 0; height: 2px; background: linear-gradient(90deg, transparent 0%, #e84a8a 30%, #f97316 50%, transparent 70%); background-size: 220% 100%; animation: ft-shim 4s linear infinite; }
@keyframes ft-shim { 0% { background-position: 120% 0; } 100% { background-position: -120% 0; } }
@media (prefers-reduced-motion: reduce) { .ft-shim { animation: none; background-position: 50% 0; } }
@media (max-width: 520px) { .ft { padding: 28px 20px; } .ft-wrap { padding-inline: 16px; } }

/* Seiten, deren Fußzeile unten klebt, auch wenn der Inhalt kurz ist */
.has-ft { min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column; }
.has-ft > main { flex: 1 0 auto; width: 100%; }
