.site-footer {
  --footer-copy: color-mix(in srgb, var(--white) 85%, var(--slate));
  --footer-rule: color-mix(in srgb, var(--white) 23%, var(--slate));
  padding: clamp(2.25rem, 4.2vw, 4.6rem) var(--gutter) clamp(1.2rem, 2vw, 2rem);
  background: var(--slate);
  color: var(--footer-copy);
  font-size: clamp(0.84rem, 1.05vw, 1rem);
}

.footer__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: clamp(1.5rem, 2.65vw, 2.75rem) clamp(0.8rem, 3vw, 3.25rem);
}

.footer__identity,
.footer__contact { grid-column: 1 / -1; }

.footer__brand {
  display: inline-block;
  max-width: 100%;
  padding: 0.7rem 0.9rem;
  border-radius: 0.55rem;
  background: var(--white);
}

.footer__brand img { width: clamp(8.85rem, 12vw, 12.25rem); height: auto; }
.footer__identity p { max-width: 34ch; margin-block: 0.75rem 0.9rem; }
.footer__cta { max-width: 100%; }

.footer__title {
  margin: 0 0 0.55rem;
  color: var(--white);
  font: 700 clamp(0.95rem, 1.33vw, 1.25rem)/1.25 var(--font-title);
}

.footer__link {
  display: inline-flex;
  min-block-size: 2.75rem;
  align-items: center;
  max-width: 100%;
  padding-block: 0.24rem;
  text-decoration-line: underline;
  text-decoration-color: transparent;
  text-underline-offset: 0.22em;
  transition: color var(--motion), text-decoration-color var(--motion);
}

.footer__link:focus-visible {
  color: var(--white);
  text-decoration-color: var(--yellow);
}

@media (hover: hover) and (pointer: fine) {
  .footer__link:hover {
    color: var(--white);
    text-decoration-color: var(--yellow);
  }
}

.site-footer :focus-visible { outline-color: var(--yellow); }

.footer__contact address { font-style: normal; }

.footer__coordinates {
  display: grid;
  gap: 0.65rem;
  margin-top: 0.85rem;
}

.footer__coordinates li {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: start;
}

.footer__coordinates .icon {
  width: 1.1rem;
  height: 1.1rem;
  margin-top: 0.16rem;
  color: var(--yellow);
}

.footer__label {
  display: block;
  color: var(--white);
  font-size: 0.86em;
  font-weight: 600;
}

.footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem 2rem;
  margin-top: clamp(1.5rem, 3.25vw, 3.35rem);
  padding-top: clamp(0.75rem, 1.5vw, 1.2rem);
  border-top: 1px solid var(--footer-rule);
  font-size: clamp(0.76rem, 0.89vw, 0.88rem);
}

.footer__notice { max-width: 83ch; }
.footer__credit .footer__link { color: var(--yellow); font-weight: 600; }

@media (max-width: 479px) {
  .footer__cta { width: 100%; }
}

@media (min-width: 640px) {
  .footer__identity,
  .footer__contact { grid-column: auto; }

  .footer__link { min-block-size: 2.35rem; }
}

@media (min-width: 1024px) {
  .footer__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1.1fr) minmax(0, 0.8fr) minmax(0, 0.95fr); }
  .footer__contact { margin-inline-start: min(0px, calc(var(--gutter) - 4rem)); }
  .footer__phone { justify-self: start; }
}
