/*
 * File: app-footer.css
 * Descripción: Estilos del footer auto-ocultable (sticky + transiciones).
 * Mantiene la estética vigente y mejora el comportamiento dinámico.
 */

:root {
  --app-footer-peek-height: 0.75rem;
}

.has-app-footer {
  position: relative;
  min-height: 100vh;
  min-height: 100dvh;
}

.has-app-footer #appFooter {
  margin-top: auto;
}

.app-footer {
  will-change: transform, opacity;

  position: relative;
  z-index: 1100; /* sobre tooltips/toasts */
  transform: translate3d(0, 0, 0);

  width: 100%;

  opacity: 1;

  visibility: visible;
  pointer-events: auto;
  backface-visibility: hidden;
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 260ms ease,
    visibility 0s linear 0s;
}

.app-footer > .wizard-container {
  max-width: var(--wizard-shell-max-width);
  margin-inline: auto;
  padding-left: var(--wizard-shell-padding-inline);
  padding-right: var(--wizard-shell-padding-inline);
}

.app-footer.is-hidden {
  transform: translate3d(0, calc(100% + 0.5rem), 0);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  border-top-color: transparent;
  transition: transform 240ms cubic-bezier(0.4, 0, 0.2, 1),
    opacity 200ms ease,
    visibility 0s linear 240ms;
}

.app-footer.app-footer--peek.is-hidden {
  transform: translateY(calc(100% - var(--app-footer-peek-height)));
  opacity: 0.4;
}

.app-footer.app-footer--peek:hover,
.app-footer.app-footer--peek:focus-within {
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

@media (min-width: 768px) {
  body.wizard-db-down #appFooter {
    transform: translateY(100%);
    opacity: 0;
    pointer-events: none;
  }
}

.scroll-sentinel {
  pointer-events: none;
  position: relative;
  width: 100%;
  height: 1px;
  visibility: hidden;
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  .app-footer {
    transition: none;
  }
}

@media (max-width: 767px) {
  body.has-app-footer #appFooter {
    display: none;
  }
}

@supports not (position: sticky) {
  .app-footer {
    position: fixed;
  }

  .has-app-footer {
    padding-bottom: min(30vh, 16rem);
  }
}
