/* PR-VIBECURB-06 · Etapa 14 — Footer institucional. */

.vb-footer .vb-footer__brand,
.vb-footer .vb-footer__brand-lockup > *,
.vb-footer .vb-footer__brand > p,
.vb-footer .vb-footer__grid > nav,
.vb-footer .vb-footer__grid > nav > *,
.vb-footer .vb-footer__contact,
.vb-footer .vb-footer__contact > *,
.vb-footer .vb-footer__bottom {
  will-change: opacity, translate, scale;
}

.vb-footer {
  position: relative;
  overflow: clip;
}

.vb-footer::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--vb-teal-bright), transparent);
  transform-origin: center;
  scale: 0 1;
  transition: scale 820ms var(--vb-ease-out) 100ms;
}

html.vb-js.vb-motion-ready .vb-footer.is-footer-motion-entered::before {
  scale: 1 1;
}

.vb-footer .vb-footer__brand-lockup {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  padding-bottom: .85rem;
}

.vb-footer .vb-footer__brand-lockup::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: rgba(94, 234, 212, .62);
  transform-origin: left center;
  scale: 0 1;
  transition: scale 620ms var(--vb-ease-out) 160ms;
}

html.vb-js.vb-motion-ready .vb-footer.is-footer-brand-entered .vb-footer__brand-lockup::after {
  scale: 1 1;
}

.vb-footer .vb-footer__brand-lockup img.vb-motion-item,
.vb-footer .vb-footer__brand-lockup span.vb-motion-item {
  clip-path: none;
  overflow: visible;
}

.vb-footer .vb-footer__grid > nav,
.vb-footer .vb-footer__contact {
  position: relative;
  padding-top: .8rem;
}

.vb-footer .vb-footer__grid > nav::before,
.vb-footer .vb-footer__contact::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(242, 236, 221, .18);
  transform-origin: left center;
  scale: 0 1;
  transition: scale var(--vb-rhythm-line, 500ms) var(--vb-ease-out) var(--vb-footer-column-line-delay, 140ms);
}

html.vb-js.vb-motion-ready .vb-footer .vb-footer__grid > nav.is-footer-column-entered::before,
html.vb-js.vb-motion-ready .vb-footer .vb-footer__contact.is-footer-column-entered::before {
  scale: 1 1;
}

.vb-footer .vb-footer__grid a.vb-motion-item {
  transition-property: color, background-size, opacity, translate;
  transition-duration:
    var(--vb-motion-fast),
    var(--vb-motion-control),
    var(--vb-motion-duration),
    var(--vb-motion-duration);
}

.vb-footer .vb-footer__bottom {
  position: relative;
  margin-top: 2.2rem;
  padding-top: 1.15rem;
}

.vb-footer .vb-footer__bottom::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(242, 236, 221, .22);
  transform-origin: left center;
  scale: 0 1;
  transition: scale 720ms var(--vb-ease-out) 100ms;
}

html.vb-js.vb-motion-ready .vb-footer.is-footer-bottom-entered .vb-footer__bottom::before {
  scale: 1 1;
}

@media (max-width: 820px) {
  .vb-footer .vb-footer__grid > nav,
  .vb-footer .vb-footer__contact {
    transform-origin: left top;
  }
}

@media (prefers-reduced-motion: reduce) {
  .vb-footer::before,
  .vb-footer .vb-footer__brand-lockup::after,
  .vb-footer .vb-footer__grid > nav::before,
  .vb-footer .vb-footer__contact::before,
  .vb-footer .vb-footer__grid a,
  .vb-footer .vb-footer__bottom::before {
    transition: none;
  }

  html.vb-js.vb-motion-ready .vb-footer::before,
  html.vb-js.vb-motion-ready .vb-footer .vb-footer__brand-lockup::after,
  html.vb-js.vb-motion-ready .vb-footer .vb-footer__grid > nav::before,
  html.vb-js.vb-motion-ready .vb-footer .vb-footer__contact::before,
  html.vb-js.vb-motion-ready .vb-footer .vb-footer__bottom::before {
    scale: 1 1;
  }
}
