@import url("guipo-tokens.css");

.gs-interface {
  width: min(100% - 2rem, var(--gs-max));
  margin-inline: auto;
}

.gs-footer {
  background: var(--gs-bg-deep);
  color: var(--gs-text-muted);
  padding: 0.65rem 0 0.35rem;
  font-family: var(--gs-font);
}

.gs-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 0.85fr 0.85fr;
  gap: 0.35rem 2rem;
  margin-bottom: 0.15rem;
  align-items: start;
}

.gs-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin: 0;
  padding: 0;
  gap: 0;
  line-height: normal;
}

.gs-footer__brand img {
  display: block;
  width: auto;
  height: auto;
  max-height: var(--gs-footer-logo-h, calc(var(--gs-header-h) + 12px));
  max-width: 158px;
  margin: 0 auto;
}

.gs-footer__brand p {
  font-size: 0.76rem;
  max-width: 26ch;
  margin: 0.35rem 0 0;
  padding: 0;
  line-height: 1.35;
}

.gs-footer__nav,
.gs-footer__contact {
  padding-top: calc((var(--gs-footer-logo-h, calc(var(--gs-header-h) + 12px)) - 1.15em) / 2);
}

.gs-footer h4 {
  color: var(--gs-text);
  font-size: 0.72rem;
  font-weight: 600;
  margin: 0 0 0.35rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  line-height: 1.15;
}

.gs-footer ul {
  list-style: none;
  display: grid;
  gap: 0.28rem;
  margin: 0;
  padding: 0;
}

.gs-footer__nav ul {
  grid-template-columns: 1fr 1fr;
  column-gap: 1rem;
  row-gap: 0.28rem;
}

.gs-footer__contact ul {
  grid-template-columns: 1fr;
}

.gs-footer a {
  color: var(--gs-text-muted);
  text-decoration: none;
  font-size: 0.8rem;
  transition: color var(--gs-ease);
}

.gs-footer a:hover {
  color: var(--gs-gold);
}

.gs-footer__bottom {
  border-top: 1px solid var(--gs-border);
  padding-top: 0.28rem;
  padding-bottom: 0.15rem;
  text-align: center;
  font-size: 0.68rem;
}

.gs-footer__bottom p {
  margin: 0;
}

@media (max-width: 960px) {
  .gs-interface {
    width: min(100% - 1.25rem, var(--gs-max));
  }

  .gs-footer__grid {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    text-align: center;
  }

  .gs-footer__nav,
  .gs-footer__contact {
    padding-top: 0;
    justify-self: center;
  }

  .gs-footer__nav ul {
    justify-items: center;
  }
}

@media (max-width: 820px) {
  :root {
    --gs-header-h: 64px;
  }

  .gs-footer {
    padding: 0 0 0.1rem;
  }

  .gs-footer__grid {
    gap: 0.45rem;
    margin-bottom: 0.15rem;
  }

  .gs-footer__brand p {
    max-width: none;
    margin-top: 0.25rem;
    font-size: 0.74rem;
  }

  .gs-footer__brand img {
    max-height: calc(var(--gs-header-h) + 10px);
    max-width: 132px;
    margin: 0 auto;
  }
}

@media (max-width: 480px) {
  .gs-interface {
    width: min(100% - 1rem, var(--gs-max));
  }
}
