/* Shared footer — columns share one top and one bottom line */
.site-footer {
  background: var(--navy-deep, #071f38);
  color: rgba(255, 255, 255, 0.88);
  padding-top: 1.75rem;
}

.site-footer .container.site-footer__grid,
.site-footer__grid {
  display: grid !important;
  grid-template-columns: minmax(10.5rem, 1.1fr) repeat(4, minmax(0, 0.95fr)) minmax(16.5rem, 1.55fr) !important;
  column-gap: 1rem !important;
  row-gap: 1.25rem !important;
  align-items: stretch !important;
  padding-bottom: 1.5rem !important;
  width: min(100% - 2.5rem, var(--container, 1180px)) !important;
  margin-inline: auto !important;
}

.site-footer__brand {
  min-width: 0;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.75rem !important;
}

.site-footer .logo--footer {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.55rem !important;
  text-decoration: none !important;
  max-width: 100%;
  height: 48px !important;
  flex-shrink: 0 !important;
}

.site-footer .logo--footer .logo__img {
  display: none !important;
}

.site-footer .logo--footer .logo__text {
  display: flex !important;
  flex-direction: column !important;
  line-height: 1.1 !important;
  min-width: 0;
}

.site-footer .logo--footer .logo__text strong {
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  color: var(--white, #fff) !important;
}

.site-footer .logo--footer .logo__text > span {
  font-size: 0.68rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
  color: var(--white, #fff) !important;
  white-space: nowrap !important;
}

.site-footer .logo--footer .logo__tm {
  color: #ff5a6a !important;
  font-size: 0.55em !important;
  font-weight: 700 !important;
  margin-left: 0.1rem !important;
}

.site-footer__brand p {
  margin: 0 !important;
  font-size: 0.84rem !important;
  color: rgba(255, 255, 255, 0.68) !important;
  line-height: 1.55 !important;
  max-width: 16.5rem !important;
}

.site-footer__social {
  display: flex !important;
  gap: 0.45rem !important;
  flex-wrap: wrap;
  margin-top: auto !important;
}

.site-footer__social a {
  width: 2rem !important;
  height: 2rem !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.08) !important;
  display: grid !important;
  place-items: center !important;
  color: var(--white, #fff) !important;
  font-size: 0.78rem !important;
  transition: background 0.2s ease, color 0.2s ease;
}

.site-footer__social a:hover {
  background: var(--green, #1a7a4c) !important;
  color: var(--white, #fff) !important;
}

.site-footer__col {
  min-width: 0;
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
}

.site-footer__col h3 {
  font-family: var(--display, Outfit, Manrope, system-ui, sans-serif) !important;
  font-size: 0.92rem !important;
  color: var(--white, #fff) !important;
  margin: 0 0 0.75rem !important;
  padding: 0 !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  word-spacing: normal !important;
  line-height: 1.2 !important;
  height: 48px !important;
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  white-space: nowrap !important;
}

.site-footer__col ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0.4rem !important;
}

.site-footer__col li {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  min-height: 0 !important;
  line-height: 1.4 !important;
}

.site-footer__col a {
  font-size: 0.86rem !important;
  color: rgba(255, 255, 255, 0.72) !important;
  text-decoration: none !important;
  line-height: 1.4 !important;
  letter-spacing: normal !important;
  word-spacing: normal !important;
  display: inline !important;
  transition: color 0.2s ease;
}

.site-footer__col a:hover {
  color: #9fe0bc !important;
}

.site-footer__contact {
  gap: 0.65rem !important;
}

.site-footer__contact li {
  display: grid !important;
  grid-template-columns: 1rem minmax(0, 1fr) !important;
  column-gap: 0.6rem !important;
  align-items: start !important;
  font-size: 0.84rem !important;
  color: rgba(255, 255, 255, 0.72) !important;
  line-height: 1.45 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.site-footer__contact li > a {
  display: contents !important;
}

.site-footer__contact i {
  color: #7dcf9f !important;
  width: 1rem !important;
  margin-top: 0.2rem !important;
  flex-shrink: 0 !important;
  text-align: center !important;
  font-size: 0.78rem !important;
  line-height: 1 !important;
}

.site-footer__contact span {
  display: block !important;
  min-width: 0 !important;
  color: rgba(255, 255, 255, 0.72) !important;
  line-height: 1.45 !important;
}

.site-footer__contact .footer__address > span {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 0.1rem !important;
  line-height: 1.45 !important;
  min-width: 0 !important;
}

.site-footer__contact .footer__address-line {
  display: block !important;
  width: 100% !important;
  white-space: nowrap !important;
  line-height: 1.45 !important;
  overflow: visible !important;
}

.site-footer__contact .footer__hours {
  display: block !important;
  line-height: 1.45 !important;
}

.site-footer__contact strong {
  display: block !important;
  color: #9fe0bc !important;
  font-weight: 700 !important;
  margin-bottom: 0.15rem !important;
  line-height: 1.3 !important;
}

.site-footer__contact a {
  color: rgba(255, 255, 255, 0.72) !important;
  font-size: 0.84rem !important;
  text-decoration: none !important;
}

.site-footer__contact a span {
  transition: color 0.2s ease;
}

.site-footer__contact a:hover span {
  color: #9fe0bc !important;
}

.site-footer__contact .footer__hours {
  white-space: normal !important;
}

.site-footer__bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  padding: 0.9rem 0 1rem;
}

.site-footer__bottom-inner {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 0.75rem !important;
  font-size: 0.82rem !important;
  color: rgba(255, 255, 255, 0.55) !important;
  width: min(100% - 2.5rem, var(--container, 1180px)) !important;
  margin-inline: auto !important;
}

.site-footer__bottom-inner > p:first-child {
  margin: 0 !important;
  justify-self: start !important;
}

.site-footer__bottom-inner .footer__credit {
  flex: none !important;
  width: auto !important;
  margin: 0 !important;
  text-align: center !important;
  justify-self: center !important;
  white-space: nowrap !important;
}

.site-footer__bottom-inner .footer__credit a {
  color: #9fe0bc !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}

.site-footer__bottom-inner .footer__credit a:hover {
  color: #fff !important;
  text-decoration: underline !important;
}

.site-footer__bottom nav {
  display: flex !important;
  gap: 1rem !important;
  justify-self: end !important;
  flex-wrap: wrap;
}

.site-footer__bottom a {
  color: inherit;
  text-decoration: none;
}

.site-footer__bottom a:hover {
  color: #9fe0bc;
}

@media (max-width: 1100px) {
  .site-footer .container.site-footer__grid,
  .site-footer__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    column-gap: 1.25rem !important;
  }

  .site-footer__brand {
    grid-column: 1 / -1;
  }

  .site-footer__col h3 {
    white-space: normal !important;
  }

  .site-footer__contact .footer__address-line {
    white-space: normal !important;
  }
}

@media (max-width: 700px) {
  .site-footer .container.site-footer__grid,
  .site-footer__grid {
    grid-template-columns: 1fr 1fr !important;
  }

  .site-footer__brand,
  .site-footer__col:last-child {
    grid-column: 1 / -1;
  }

  .site-footer__bottom-inner {
    grid-template-columns: 1fr !important;
    justify-items: start !important;
  }

  .site-footer__bottom-inner > p:first-child,
  .site-footer__bottom-inner .footer__credit,
  .site-footer__bottom nav {
    justify-self: start !important;
    text-align: left !important;
  }
}
