footer.footer-has-business {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) auto;
  gap: 26px 40px;
}

.footer-business-cta {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 28px;
  width: 100%;
  padding: 0 0 30px;
  border-bottom: 1px solid rgba(255, 242, 224, .18);
  align-items: end;
}

footer .footer-business-cta > div { display: block; }

footer .footer-business-kicker {
  margin: 0 0 10px;
  color: #ffc21c;
  font: 10px "DM Mono", monospace;
  letter-spacing: 1.3px;
}

footer .footer-business-cta h2 {
  margin: 0 0 9px;
  color: #fff2e0;
  font: 700 30px/1.3 "Noto Serif TC", serif;
}

footer .footer-business-description {
  max-width: 620px;
  margin: 0;
  color: #cfc5bc;
  font: 13px/1.8 "Noto Sans TC", sans-serif;
}

footer .footer-business-button {
  display: inline-flex;
  min-height: 48px;
  padding: 13px 18px;
  background: #a44b2f;
  color: #fff;
  font: 700 13px "Noto Sans TC", sans-serif;
  align-items: center;
  gap: 24px;
}

footer .footer-business-button span { color: #ffc21c; font-size: 19px; }
footer .footer-business-button:hover { background: #8d3e28; }
footer .footer-business-button:focus-visible { outline: 3px solid #ffc21c; outline-offset: 3px; }
footer.footer-has-business > p { justify-self: center; align-self: center; }
footer.footer-has-business > div:last-child { align-self: center; }

@media (max-width: 850px) {
  footer.footer-has-business { grid-template-columns: 1fr; gap: 20px; }
  .footer-business-cta { grid-column: 1; display: block; padding-bottom: 26px; }
  footer .footer-business-cta h2 { font-size: 27px; }
  footer .footer-business-button { width: 100%; margin-top: 20px; justify-content: space-between; }
  footer.footer-has-business > p { justify-self: start; }
}
