/* Shared footer. Separate component classes keep every page visually identical. */
.page .site-footer {
  --color-text:#f5f4ef;
  --color-muted:#aab4c8;
  --color-muted-strong:#c3cad9;
  --color-focus:#c6d0ff;
  position:relative;
  background:radial-gradient(ellipse at 82% 0,rgba(86,73,148,.16),transparent 53%),#0b0f19;
  color:#f5f4ef;
  border-top:1px solid rgba(220,225,243,.1);
}
.tfa-footer__wrap { width:min(89%,80rem); margin-inline:auto; }
.tfa-footer__brand {
  display:flex; align-items:center; justify-content:space-between; gap:2rem;
  padding-block:1.5rem; border-bottom:1px solid rgba(220,225,243,.12);
}
.tfa-footer__logo { display:block; flex-shrink:0; width:208px; max-width:100%; margin:-1.5rem 0; }
.tfa-footer__logo img { display:block; width:100%; height:auto; object-fit:contain; filter:none; transform:none; }
.tfa-footer__brand > p { margin:0; color:#c3cad9; font-family:var(--font-display); font-size:clamp(1.2rem,2.8vw,2.2rem); line-height:1.4; letter-spacing:-.025em; text-align:center; }
.tfa-footer__directory { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,5rem); padding-block:2.5rem; }
.tfa-footer__directory > * { min-width:0; }
.tfa-footer__navigation { max-width:28rem; }
.tfa-footer__contact { width:min(100%,28rem); justify-self:end; }
.site-footer .tfa-footer__label { margin:0 0 1rem; color:#aab4c8; font-family:var(--font-sans); font-size:.75rem; font-weight:500; line-height:1.5; letter-spacing:.09em; text-transform:uppercase; }
.tfa-footer__navigation ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1.5rem; list-style:none; margin:0; padding:0; }
.tfa-footer__navigation a { display:inline-flex; align-items:center; min-height:44px; color:#e0e4ee; font-size:.9375rem; text-decoration:none; }
.tfa-footer__email { display:inline-flex; align-items:center; min-height:44px; color:#f5f4ef; font-size:clamp(1.1rem,1.65vw,1.5rem); letter-spacing:-.025em; text-decoration:none; overflow-wrap:anywhere; }
.tfa-footer__contact > p { margin:1rem 0 0; color:#aab4c8; font-size:.875rem; line-height:1.7; }
.tfa-footer__cta {
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  min-height:3rem; margin-top:1.5rem; padding:.75rem 1.5rem; border:1px solid #f5f4ef; border-radius:999px;
  background:#f5f4ef; color:#161d31; font-size:.9375rem; font-weight:600; line-height:1.4;
  text-decoration:none; transition:background 180ms ease,box-shadow 180ms ease;
}
.tfa-footer__cta:hover { background:#e1e5fa; border-color:#e1e5fa; color:#161d31; box-shadow:0 .4rem 1.5rem #afbaf51c; }
.tfa-footer__bottom { display:grid; grid-template-columns:minmax(0,1fr) auto auto; align-items:center; gap:1rem 2rem; padding-block:1rem; border-top:1px solid rgba(220,225,243,.16); }
.tfa-footer__bottom p { margin:0; color:#aab4c8; font-size:.75rem; white-space:nowrap; }
.tfa-footer__legal,.tfa-footer__utilities { display:flex; align-items:center; gap:1.5rem; }
.tfa-footer__legal a,.tfa-footer__utilities button,.tfa-footer__top { display:inline-flex; align-items:center; min-height:44px; padding:0; color:#c3cad9; background:none; border:0; font:inherit; font-size:.8125rem; text-decoration:none; white-space:nowrap; }
.tfa-footer__utilities button:disabled { color:#8792a8; cursor:not-allowed; }
.tfa-footer__navigation a:hover,.tfa-footer__email:hover,.tfa-footer__legal a:hover,.tfa-footer__top:hover { color:#fff; text-decoration:underline; text-underline-offset:.3em; }
.site-footer a:focus-visible,.site-footer button:focus-visible { outline:2px solid #c6d0ff; outline-offset:5px; border-radius:3px; }
.tfa-footer__cta:focus-visible { border-radius:999px; }
@media (max-width:900px) {
  .page--preisrechner:has(.pc-mobile-total:not([hidden])) .tfa-footer__bottom { padding-bottom:calc(7rem + env(safe-area-inset-bottom)); }
}
@media (max-width:760px) {
  .tfa-footer__bottom { grid-template-columns:auto minmax(0,1fr); gap:0 1rem; }
  .tfa-footer__utilities { grid-column:1 / -1; grid-row:1; justify-content:space-between; padding-bottom:.5rem; margin-bottom:.5rem; border-bottom:1px solid rgba(220,225,243,.1); }
  .tfa-footer__legal { justify-content:flex-end; gap:1rem; }
  .tfa-footer__legal a { font-size:.75rem; }
}
@media (max-width:600px) {
  .tfa-footer__wrap { width:calc(100% - 2.5rem); }
  .tfa-footer__brand { gap:.75rem; padding-block:1rem; }
  .tfa-footer__logo { width:clamp(7.75rem,38vw,10rem); margin-block:-1rem; }
  .tfa-footer__brand > p { font-size:clamp(.875rem,3.8vw,1.125rem); line-height:1.5; }
  .tfa-footer__directory { grid-template-columns:1fr; padding-block:1.75rem 2rem; gap:1.75rem; }
  .tfa-footer__contact { width:100%; justify-self:stretch; }
  .tfa-footer__navigation ul { max-width:25rem; }
  .site-footer .tfa-footer__label { margin-bottom:.5rem; }
  .tfa-footer__email { font-size:1.25rem; }
  .tfa-footer__contact > p { margin-top:.5rem; }
  .tfa-footer__cta { margin-top:1.25rem; }
  .tfa-footer__bottom { column-gap:.75rem; padding-block:.5rem; }
  .tfa-footer__legal { gap:.75rem; }
  .tfa-footer__bottom p { font-size:.6875rem; }
}
@media (prefers-reduced-motion:reduce) {
  .tfa-footer__cta { transition:none; }
}
