/* ==========================================================
   OKAYCHAT™ — RODAPÉ GLOBAL
========================================================== */

.site-footer {
  position: relative;
  overflow: hidden;
  padding: 74px 0 24px;
  color: rgba(255,255,255,.72);
  background: #08090d;
}

.site-footer::before {
  position: absolute;
  top: -230px;
  right: -120px;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(239,0,184,.16), transparent 68%);
  content: "";
  pointer-events: none;
}

.site-footer::after {
  position: absolute;
  bottom: -260px;
  left: -140px;
  width: 560px;
  height: 560px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(17,103,245,.14), transparent 68%);
  content: "";
  pointer-events: none;
}

.site-footer__top,
.site-footer__bottom {
  position: relative;
  z-index: 1;
}

.site-footer__top {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(540px, 1.5fr);
  gap: clamp(56px, 8vw, 120px);
  padding-bottom: 54px;
}

.site-footer__brand {
  max-width: 390px;
}

.site-footer__logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 850;
  letter-spacing: -.05em;
}

.site-footer__logo img {
  width: 46px;
  height: 46px;
}

.site-footer__logo sup {
  margin-left: 2px;
  font-size: .45em;
  vertical-align: super;
}

.site-footer__brand p {
  margin-top: 20px;
  color: rgba(255,255,255,.58);
  line-height: 1.65;
}

.site-footer__brand .btn {
  margin-top: 28px;
  box-shadow: 0 16px 38px rgba(239,0,184,.22);
}

.site-footer__links {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 34px;
}

.site-footer__links > div {
  display: grid;
  align-content: start;
  gap: 11px;
}

.site-footer__links strong {
  margin-bottom: 8px;
  color: #fff;
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.site-footer__links a {
  color: rgba(255,255,255,.58);
  font-size: .86rem;
  transition: color 160ms ease, transform 160ms ease;
}

.site-footer__links a:hover {
  color: #fff;
  transform: translateX(3px);
}

.site-footer__bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,.10);
  font-size: .76rem;
}

.site-footer__bottom div {
  display: flex;
  gap: 22px;
}

.site-footer__bottom a {
  color: rgba(255,255,255,.55);
}

.site-footer__bottom a:hover {
  color: #fff;
}

@media (max-width: 980px) {
  .site-footer__top {
    grid-template-columns: 1fr;
  }

  .site-footer__links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 580px) {
  .site-footer {
    padding-top: 56px;
  }

  .site-footer__links {
    grid-template-columns: 1fr;
  }

  .site-footer__bottom {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* ==========================================================
   SPR-046 — AJUSTE PONTUAL 03
   Brilho do CTA de demonstração
========================================================== */

.site-footer__brand .btn--primary {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.28);
  background: linear-gradient(135deg, #fb14c2 0%, #e500ae 48%, #b828e6 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 16px 38px rgba(239,0,184,.22);
}

.site-footer__brand .btn--primary::before {
  position: absolute;
  inset: 1px 10% auto;
  z-index: -1;
  height: 46%;
  border-radius: inherit;
  background: linear-gradient(180deg, rgba(255,255,255,.28), transparent);
  content: "";
  pointer-events: none;
}

.site-footer__brand .btn--primary::after {
  position: absolute;
  top: -80%;
  left: -42%;
  width: 32%;
  height: 260%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.42), transparent);
  content: "";
  pointer-events: none;
  transform: rotate(18deg);
  transition: left 650ms cubic-bezier(.2,.75,.25,1);
}

.site-footer__brand .btn--primary:hover::after,
.site-footer__brand .btn--primary:focus-visible::after {
  left: 118%;
}
