/* Conecta Frontend Shell v2.58.3.1 — canonical Portal Footer */
.cc-portal-footer {
  width: 100% !important;
  max-width: none !important;
  margin: var(--cc-shell-content-footer-gap, var(--conecta-global-footer-gap, 84px)) 0 0 !important;
  box-sizing: border-box !important;
  background: #3C5937 !important;
  color: #ffffff !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/*
 * The Frontend Shell owns the shared portal vertical rhythm. Modules do not
 * invent footer spacing; a responsive shell token keeps the footer compact on mobile.
 */
body.cc-shell--portal.conecta-colibri-page .cc-portal-footer,
body.cc-shell--portal:has(.conecta-app) .cc-portal-footer {
  margin-top: var(--cc-shell-content-footer-gap, var(--conecta-global-footer-gap, 84px)) !important;
}

@media (max-width: 767px) {
  .conecta-global-footer__column h3 {
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(214, 235, 198, .42);
  }
}

@media (max-width: 700px) {
  body.cc-shell--portal.conecta-colibri-page .cc-portal-footer,
  body.cc-shell--portal:has(.conecta-app) .cc-portal-footer {
    margin-top: var(--cc-shell-content-footer-gap, var(--conecta-global-footer-gap-mobile, 52px)) !important;
  }
}

.conecta-global-footer,
.conecta-global-footer * {
  box-sizing: border-box !important;
}

.conecta-global-footer__inner {
  width: min(calc(100% - 64px), 1280px) !important;
  max-width: 1280px !important;
  margin: 0 auto !important;
  padding: 52px 0 34px !important;
  display: grid !important;
  grid-template-columns: minmax(250px, 0.92fr) minmax(0, 1.95fr) !important;
  gap: 48px !important;
  align-items: start !important;
}

.conecta-global-footer__brand {
  display: grid !important;
  gap: 12px !important;
  min-width: 0 !important;
}

.conecta-global-footer__logo {
  display: block !important;
  width: auto !important;
  width: var(--conecta-global-footer-logo-width, 180px) !important;
  max-width: 320px !important;
  max-height: 84px !important;
  object-fit: contain !important;
  margin: 0 0 8px !important;
  filter: none !important;
  opacity: 1 !important;
}

.conecta-global-footer__logo-placeholder {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: fit-content !important;
  min-width: 122px !important;
  min-height: 50px !important;
  padding: 0 22px !important;
  border-radius: 16px !important;
  background: rgba(255,255,255,.11) !important;
  color: #ffffff !important;
  font-family: Montserrat, var(--conecta-title-font, sans-serif) !important;
  font-size: 18px !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
}

.conecta-global-footer h2,
.conecta-global-footer h3,
.conecta-global-footer p,
.conecta-global-footer span,
.conecta-global-footer a,
.conecta-global-footer li {
  color: inherit !important;
  font-family: var(--conecta-text-font, Montserrat, sans-serif) !important;
}

.conecta-global-footer h2,
.conecta-global-footer__column h3 {
  margin: 0 0 14px !important;
  color: #ffffff !important;
  font-family: Montserrat, var(--conecta-title-font, sans-serif) !important;
  font-size: 18px !important;
  line-height: 1.3 !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

.conecta-global-footer p {
  margin: 0 !important;
  max-width: 390px !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  font-weight: 400 !important;
  color: rgba(255,255,255,.84) !important;
}

.conecta-global-footer__business-info {
  color: rgba(255,255,255,.72) !important;
}

.conecta-global-footer__socials {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 14px !important;
  margin-top: 8px !important;
  align-items: center !important;
}

.conecta-global-footer__socials a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 24px !important;
  height: 24px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255,255,255,.84) !important;
  text-decoration: none !important;
  transition: color .18s ease, transform .18s ease, opacity .18s ease !important;
}

.conecta-global-footer__socials a svg {
  display: block !important;
  width: 20px !important;
  height: 20px !important;
}

.conecta-global-footer__socials a:hover,
.conecta-global-footer__socials a:focus {
  background: transparent !important;
  color: #D6A900 !important;
  transform: translateY(-2px) !important;
  outline: none !important;
}

.conecta-global-footer__columns {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 34px !important;
  min-width: 0 !important;
}

.conecta-global-footer__column ul {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  display: grid !important;
  gap: 10px !important;
}

.conecta-global-footer__column a,
.conecta-global-footer__legal a {
  position: relative !important;
  display: inline-flex !important;
  width: fit-content !important;
  color: rgba(255,255,255,.82) !important;
  text-decoration: none !important;
  font-size: 14px !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
  transition: color .18s ease, transform .18s ease !important;
}

.conecta-global-footer__column a::after,
.conecta-global-footer__legal a::after {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  right: auto !important;
  bottom: -4px !important;
  width: 0 !important;
  height: 1px !important;
  background: #D6A900 !important;
  border-radius: 999px !important;
  transition: width .18s ease !important;
}

.conecta-global-footer__column a:hover,
.conecta-global-footer__column a:focus,
.conecta-global-footer__legal a:hover,
.conecta-global-footer__legal a:focus {
  color: #D6A900 !important;
  text-decoration: none !important;
  transform: translateX(3px) !important;
  outline: none !important;
}

.conecta-global-footer__column a:hover::after,
.conecta-global-footer__column a:focus::after,
.conecta-global-footer__legal a:hover::after,
.conecta-global-footer__legal a:focus::after,
.conecta-global-footer__column a.is-active::after,
.conecta-global-footer__legal a.is-active::after {
  width: 100% !important;
}

.conecta-global-footer__column a.is-active,
.conecta-global-footer__legal a.is-active {
  color: #D6A900 !important;
  text-decoration: none !important;
}

.conecta-global-footer__bottom {
  grid-column: 1 / -1 !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 20px !important;
  margin-top: 30px !important;
  padding-top: 24px !important;
  border-top: 1px solid rgba(255,255,255,.18) !important;
  color: rgba(255,255,255,.78) !important;
}

.conecta-global-footer__legal {
  display: flex !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.conecta-global-footer__bottom span,
.conecta-global-footer__legal a {
  font-size: 14px !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;
}

.conecta-global-footer + .conecta-footer {
  display: none !important;
}

@media (max-width: 1100px) {
  .conecta-global-footer__inner {
    grid-template-columns: 1fr !important;
    gap: 34px !important;
  }
  .conecta-global-footer__columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .conecta-global-footer__inner {
    width: calc(100% - (var(--cc-shell-page-gutter, 16px) * 2)) !important;
    padding: 38px 0 calc(28px + var(--cc-shell-mobile-safe-bottom, env(safe-area-inset-bottom, 0px))) !important;
    gap: 28px !important;
  }
  .conecta-global-footer__columns {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 22px !important;
  }
  .conecta-global-footer__bottom {
    align-items: flex-start !important;
    flex-direction: column !important;
    gap: 12px !important;
    margin-top: 22px !important;
    padding-top: 20px !important;
  }
}
