/* ===== Footer (Variante 16a) ===== */
body > .aes-footer {
  --ft-ink: #f5f8fb;
  --ft-cyan: #62bdf0;
  --ft-cyan-strong: #01b0ef;
  --ft-on-cyan: #06121c;
  --ft-slate-300: #b1c0cc;
  --ft-slate-450: #8395a4;
  --ft-line: rgba(255, 255, 255, .105);
  position: relative;
  overflow: hidden;
  padding: 104px 0 12px;
  border-top: 1px solid var(--ft-line);
  background: radial-gradient(ellipse 55% 45% at 50% 28%, rgba(1, 176, 239, .11), transparent 70%), linear-gradient(180deg, transparent, #050b12 180px);
  color: var(--ft-ink);
  font-family: "DM Sans", sans-serif;
}
.aes-footer::before {
  content: "";
  position: absolute; inset: 0 0 auto 0; height: 1px;
  background: linear-gradient(90deg, transparent, rgba(98, 189, 240, .6), transparent);
}
.aes-footer a { color: var(--ft-ink); text-decoration: none; transition: color .25s; }
.aes-footer a:hover { color: var(--ft-cyan); }
.aes-footer a:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

/* Claim + Logo (Logo vertikal mittig zwischen den zwei Zeilen) */
.aes-footer__top { display: flex; align-items: center; gap: 72px; padding-right: 140px; }
.aes-footer__claim { margin: 0; font: 700 4.4rem/.98 Sora, sans-serif; letter-spacing: -.055em; }
.aes-footer__claim em { font-style: normal; color: var(--ft-cyan); }
.aes-footer__logo { display: block; flex: none; width: 170px; height: auto; margin-left: auto; }

.aes-footer__rule { height: 1px; margin: 72px 0 56px; background: var(--ft-line); }

/* Spalten */
.aes-footer__cols {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, .8fr) minmax(0, 1.05fr) minmax(0, 1.35fr);
  gap: 48px;
}
.aes-footer__col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.aes-footer__label { margin: 0; font: 600 .72rem/1.2 Sora, sans-serif; letter-spacing: .16em; text-transform: uppercase; color: var(--ft-slate-450); }
.aes-footer__text { margin: 0; max-width: 300px; font-size: .98rem; line-height: 1.6; color: var(--ft-slate-300); text-wrap: pretty; }
.aes-footer__links { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.aes-footer__address { font-style: normal; line-height: 1.55; color: var(--ft-slate-300); }
.aes-footer__uid { font-size: .9rem; color: var(--ft-slate-450); }

/* Social-Logos: drei gleich breite Pillen, zusammen so breit wie der WhatsApp-Button */
.aes-footer__social { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.aes-footer__social a {
  display: grid; place-items: center; height: 48px;
  border: 1px solid var(--ft-line); border-radius: 999px;
  transition: background .25s, border-color .25s, color .25s, transform .25s;
}
.aes-footer__social a:hover { background: var(--ft-cyan-strong); border-color: var(--ft-cyan-strong); color: var(--ft-on-cyan); transform: translateY(-2px); }

/* Icons über Maske, Farbe = currentColor */
.aes-footer__icon { display: block; flex: none; width: 19px; height: 19px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
.aes-footer__icon--instagram { --ico: url("/assets/icons/instagram.svg"); }
.aes-footer__icon--linkedin { --ico: url("/assets/icons/linkedin.svg"); }
.aes-footer__icon--tiktok { --ico: url("/assets/icons/tiktok.svg"); }
.aes-footer__icon--whatsapp { --ico: url("/assets/icons/whatsapp.svg"); width: 20px; height: 20px; }

/* WhatsApp-Button */
.aes-footer a.aes-footer__whatsapp {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  margin-top: 18px; padding: 14px 16px;
  border-radius: 999px;
  background: #25d366; color: #06121c;
  font: 600 .9rem/1.2 Sora, sans-serif; white-space: nowrap;
  box-shadow: 0 12px 32px rgba(37, 211, 102, .22);
  transition: transform .25s, box-shadow .25s;
}
.aes-footer a.aes-footer__whatsapp:hover { color: #06121c; transform: translateY(-2px); box-shadow: 0 16px 40px rgba(37, 211, 102, .32); }

/* Unterste Zeile */
.aes-footer__bottom { display: flex; align-items: center; gap: 28px; margin-top: 72px; padding: 22px 0; border-top: 1px solid var(--ft-line); }
.aes-footer__copy { margin-right: auto; font-size: .85rem; color: var(--ft-slate-450); }
.aes-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 28px; }
.aes-footer__legal a { font-size: .85rem; color: var(--ft-slate-300); }
.aes-footer a.aes-footer__top-btn {
  display: grid; place-items: center; flex: none;
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--ft-line);
  transition: background .25s, border-color .25s, color .25s;
}
.aes-footer a.aes-footer__top-btn:hover { background: var(--ft-cyan-strong); border-color: var(--ft-cyan-strong); color: var(--ft-on-cyan); }

/* Tablet */
@media (max-width: 1100px) {
  .aes-footer__top { padding-right: 40px; gap: 36px; }
  .aes-footer__logo { width: clamp(112px, 14vw, 170px); }
  .aes-footer__claim { font-size: clamp(2rem, 5.5vw, 3.6rem); }
  .aes-footer__cols { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 40px 48px; }
  .aes-footer__col--social { max-width: 340px; }
}

/* Mobile */
@media (max-width: 640px) {
  .aes-footer { padding: 72px 0 10px; }
  .aes-footer__top { gap: 22px; padding-right: 10px; }
  .aes-footer__claim { font-size: clamp(1.6rem, 6.6vw, 2.6rem); line-height: 1; }
  .aes-footer__logo { width: 88px; }
  .aes-footer__rule { margin: 40px 0 32px; }
  .aes-footer__cols { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .aes-footer__col { gap: 12px; }
  .aes-footer__links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; }
  .aes-footer__col--social { max-width: none; }
  .aes-footer__social { gap: 8px; }
  .aes-footer__social a { height: 46px; }
  .aes-footer__icon { width: 18px; height: 18px; }
  .aes-footer a.aes-footer__whatsapp { font-size: .95rem; }
  .aes-footer__bottom { flex-wrap: wrap; gap: 6px 18px; margin-top: 44px; padding: 18px 0; }
  .aes-footer__copy { order: 2; flex-basis: calc(100% - 64px); margin: 0; font-size: .8rem; }
  .aes-footer__legal { order: 1; flex-basis: calc(100% - 64px); gap: 6px 18px; }
  .aes-footer__legal a { font-size: .82rem; }
  .aes-footer a.aes-footer__top-btn { order: 3; margin-left: auto; margin-top: -40px; }
}

@media (prefers-reduced-motion: reduce) {
  .aes-footer * { transition: none !important; }
}

/* Bestehende Cookie-Auswahl und gut erreichbare Footer-Links. */
.aes-footer__legal .privacy-settings { font-size: .85rem; color: var(--ft-slate-300); }
.aes-footer__links a, .aes-footer__col > a, .aes-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }
.aes-footer__links { gap: 0; }
.aes-footer__col > a { overflow-wrap: anywhere; }
@media (max-width: 640px) { .aes-footer__legal { flex-basis: 100%; } .aes-footer__legal .privacy-settings { font-size: .82rem; } .aes-footer__links { gap: 0 16px; } }
@media (max-width: 360px) { .aes-footer__top { gap: 14px; padding-right: 0; } .aes-footer__claim { font-size: 1.45rem; } .aes-footer__logo { width: 64px; } .aes-footer a.aes-footer__whatsapp { font-size: .78rem; padding-inline: 12px; gap: 8px; } }

/* Mobile Abschlusszeile ohne überlappenden Nach-oben-Button. */
@media (max-width: 640px) {
  body > .aes-footer { padding-top: 72px; }
  .aes-footer__bottom { display: grid; grid-template-columns: minmax(0,1fr) 44px; gap: 16px 12px; }
  .aes-footer__legal { grid-column: 1 / -1; order: initial; }
  .aes-footer__copy { grid-column: 1; grid-row: 2; order: initial; }
  .aes-footer a.aes-footer__top-btn { grid-column: 2; grid-row: 2; order: initial; margin: 0; }
}
