.site-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 18px 32px;
  padding: 28px max(4.25vw, 24px);
  background: var(--yellow);
  color: var(--primary);
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 600;
  text-transform: uppercase;
}

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

.footer-mail {
  justify-self: start;
  text-decoration: underline 2px transparent;
  text-underline-offset: 5px;
  transition: text-decoration-color 180ms ease;
}

.footer-mail:hover {
  text-decoration-color: currentColor;
}

.footer-socials {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
}

/* Plain icons, as in the menu, that switch on like the logo's bulb: a dark
   disc fills up from below, the icon lights yellow and three rays pop out. */
.footer-socials a {
  position: relative;
  display: grid;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 50%;
  color: var(--primary);
  transition: color 250ms ease;
}

.footer-socials a::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: var(--primary);
  clip-path: circle(0 at 50% 100%);
  transition: clip-path 450ms var(--ease-out);
}

.footer-socials a::after {
  content: "";
  position: absolute;
  bottom: calc(100% + 2px);
  left: 50%;
  width: 26px;
  height: 11px;
  background: var(--primary);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 11'%3E%3Cpath d='M13 1.5v7M4 3.5l3.5 5M22 3.5l-3.5 5' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 11'%3E%3Cpath d='M13 1.5v7M4 3.5l3.5 5M22 3.5l-3.5 5' stroke='%23000' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
  opacity: 0;
  transform: translate(-50%, 6px) scale(.4);
  transform-origin: 50% 100%;
  transition: opacity 200ms ease, transform 200ms ease;
}

.footer-socials svg {
  position: relative;
  width: 24px;
  height: 24px;
  transition: transform 450ms cubic-bezier(.34, 1.56, .64, 1);
}

.footer-socials a:hover,
.footer-socials a:focus-visible {
  color: var(--yellow);
}

.footer-socials a:hover::before,
.footer-socials a:focus-visible::before {
  clip-path: circle(72% at 50% 100%);
}

.footer-socials a:hover::after,
.footer-socials a:focus-visible::after {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
  transition: opacity 200ms ease 150ms, transform 500ms cubic-bezier(.34, 1.56, .64, 1) 150ms;
}

.footer-socials a:hover svg,
.footer-socials a:focus-visible svg {
  transform: rotate(-10deg) scale(1.08);
}

@media (prefers-reduced-motion: reduce) {
  .footer-socials a::before,
  .footer-socials a::after,
  .footer-socials svg {
    transition: none !important;
  }
}

.footer-tagline {
  justify-self: end;
}

@media (max-width: 680px) {
  .site-footer {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    padding: 28px 20px;
    font-size: 1.05rem;
    text-align: center;
  }

  .footer-mail,
  .footer-tagline {
    justify-self: center;
  }
}
