.btn {
  min-height: 56px;
  gap: 1.25rem;
  padding: 5px 5px 5px 1.2rem;
}

.btn b {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
}

.hero-bottom {
  display: grid;
  grid-template-columns: max-content max-content minmax(0, 1fr);
  align-items: center;
  gap: 1.5rem;
  min-width: 0;
}

.hero-bottom .line-link {
  min-width: max-content;
}

.hero-bottom .tag-row {
  min-width: 0;
  justify-content: flex-end;
}

.menu-links a.is-current {
  transform: none;
}

.menu-links a.is-current:hover {
  transform: translateX(1rem);
}

.footer-brand {
  min-height: clamp(210px, 24vw, 390px);
  overflow: visible;
}

.footer-brand .brand-mark {
  transform-origin: 50% 50%;
  animation: footer-logo-drift 5.5s var(--ease) infinite alternate;
}

@keyframes footer-logo-drift {
  0% { transform: translate3d(0, -10%, 0) rotate(-5deg); }
  100% { transform: translate3d(10%, 12%, 0) rotate(7deg); }
}

@media (max-width: 900px) and (min-width: 601px) {
  .hero-bottom {
    grid-template-columns: max-content minmax(0, 1fr);
  }

  .hero-bottom .tag-row {
    grid-column: 1 / -1;
    justify-content: flex-start;
    margin-left: 0;
  }
}

@media (max-width: 1180px) and (min-width: 901px) {
  .hero-bottom {
    grid-template-columns: max-content minmax(0, 1fr);
  }

  .hero-bottom .tag-row {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

@media (max-width: 600px) {
  .hero-bottom {
    display: flex;
    align-items: stretch;
    flex-direction: column;
  }

  .hero-bottom .line-link {
    min-width: 0;
  }

  .hero-bottom .tag-row {
    justify-content: flex-start;
  }

  .footer-brand {
    min-height: 190px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .footer-brand .brand-mark {
    animation: none;
  }
}
