/* The complete footer stays in the document flow on desktop, mobile and in-app. */
body.futpepi-has-footer { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
body.futpepi-has-footer > :is(main, section, .futpepi-masthead) { width: 100%; }
.futpepi-footer { flex-shrink: 0; width: 100%; margin-top: auto; background: #000; color: #a8aaa5; font: 400 12px/1.6 var(--fp-font, "Segoe UI", sans-serif); }
.futpepi-footer-inner { display: grid; grid-template-columns: minmax(0, 1fr) 220px minmax(0, 1fr); grid-template-areas: "social brand legal"; align-items: center; gap: 8px 30px; max-width: 1100px; margin: 0 auto; padding: 30px 26px 34px; }
.settings-page .futpepi-footer-inner { max-width: 1240px; }
.futpepi-footer p { margin: 0; font-family: inherit; }
.futpepi-footer-social { grid-area: social; }
.futpepi-social-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0; padding: 0; list-style: none; }
.futpepi-social-links li { margin: 0; padding: 0; }
.futpepi-social-links li::before, .futpepi-social-links li::after { content: none; display: none; }
.futpepi-social-links .futpepi-social-link { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid #3b3e37; border-radius: 10px; background: transparent; transition: background-color .15s ease, border-color .15s ease; }
.futpepi-social-link img { display: block; width: 22px; height: 22px; object-fit: contain; filter: brightness(0) invert(1); }
.futpepi-social-links .futpepi-social-link:hover { background: #242821; border-color: #777d70; }
.futpepi-footer-brand { grid-area: brand; text-align: center; }
.futpepi-footer-brand > img { display: block; width: 88px; height: 88px; margin: 0 auto; object-fit: contain; }
.futpepi-footer-legal { grid-area: legal; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0 9px; }
.futpepi-footer .futpepi-footer-legal a { display: inline-flex; align-items: center; min-height: 44px; color: #a8aaa5; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; text-decoration-color: #666b60; transition: color .15s ease, text-decoration-color .15s ease; }
.futpepi-footer .futpepi-footer-legal a:hover { color: #fff; text-decoration-color: currentColor; }
.futpepi-footer a:focus-visible { outline: 3px solid #d5f034; outline-offset: 4px; border-radius: 3px; }
#contact, .legalPage h1[id] { scroll-margin-top: 24px; }
/* Logins keep the form centered, with the shared footer outside the form. */
body.futpepi-login-page { height: auto; margin: 0; padding-top: env(safe-area-inset-top); }
.futpepi-login-main { display: flex; flex: 1 0 auto; align-items: center; justify-content: center; padding: 32px max(20px, env(safe-area-inset-right)) 40px max(20px, env(safe-area-inset-left)); }
.futpepi-login-main .centered-div { width: 100%; max-width: 480px; }
@media (max-width: 759px) {
  .futpepi-footer .futpepi-footer-inner {
    grid-template-columns: 76px minmax(0, 1fr);
    grid-template-areas: "brand social" "legal legal";
    gap: 4px 20px; max-width: 440px;
    padding: 16px max(24px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
  }
  .futpepi-footer-brand > img { width: 76px; height: 76px; }
  .futpepi-footer-social { justify-self: center; }
  .futpepi-footer-legal { justify-content: center; margin-top: 8px; border-top: 1px solid #292c25; padding-top: 4px; }
  .app-mode .futpepi-footer .futpepi-footer-inner { padding-bottom: 12px; }
  .futpepi-login-main { padding-top: 24px; padding-bottom: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .futpepi-social-links .futpepi-social-link, .futpepi-footer .futpepi-footer-legal a { transition: none; }
}
