.site-footer {
  display: block;
  padding: 0;
  color: var(--ink);
  background: var(--paper);
}

.footer-navigation {
  padding: 32px 28px 28px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
}

.footer-navigation-heading {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 16px;
  margin-bottom: 17px;
}

.footer-navigation-heading h2 {
  margin: 3px 0 0;
  font: 500 21px/1.5 "Yu Mincho", serif;
}

.footer-navigation-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-navigation-list a {
  display: grid;
  grid-template-columns: 23px minmax(0, 1fr);
  gap: 5px;
  align-items: center;
  min-height: 46px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  color: var(--ink);
  background: #fffdf7;
  font: 12px/1.3 "Yu Gothic", sans-serif;
  text-decoration: none;
}

.footer-navigation-number {
  color: var(--blue-dark);
  font: 10px "Courier New", monospace;
}

.footer-navigation-list a:hover,
.footer-navigation-list a:focus-visible {
  border-color: var(--blue-dark);
  background: var(--mint);
}

.footer-navigation-list a.is-current {
  border-color: var(--orange-dark);
  background: var(--pink);
}

.footer-navigation-list a.is-current .footer-navigation-number {
  color: var(--orange-dark);
}

.footer-navigation-list small {
  grid-column: 2;
  color: var(--orange-dark);
  font: 9px "Courier New", monospace;
  letter-spacing: .04em;
}

.footer-meta {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px 22px;
  padding: 18px 28px;
  color: #465657;
  background: var(--mint);
  font: 9px "Courier New", monospace;
}

.footer-meta p { margin: 0; }

@media (max-width: 580px) {
  .footer-navigation { padding: 28px 18px 22px; }
  .footer-navigation-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-navigation-list a { min-height: 50px; padding: 9px 8px; }
  .footer-meta { align-items: center; padding: 17px 18px; }
  .footer-meta p:nth-child(2) { display: block; }
}
