/* Language-specific typography and layout safeguards. */
html:lang(ja) body {
  font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic",
    Meiryo, sans-serif;
  letter-spacing: 0;
}

html:lang(en) body {
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  letter-spacing: 0;
}

html:lang(ja) .service-visual svg text,
html:lang(en) .service-visual svg text {
  font-family: inherit;
}

.site-language-select {
  min-width: 88px;
  max-width: 120px;
}

.site-nav {
  row-gap: 6px;
}

.site-nav a,
.footer-links a,
.btn,
.site-footer p,
.site-footer .footer-contact {
  overflow-wrap: anywhere;
}

html:lang(en) .profile > div {
  grid-template-columns: minmax(112px, 0.42fr) minmax(0, 1fr) !important;
}

@media (max-width: 760px) {
  .topbar {
    display: block !important;
  }

  .topbar .wrap {
    display: flex !important;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px !important;
    padding: 7px 14px !important;
    text-align: center;
  }

  .topbar .wrap > span,
  .topbar .wrap > span:last-child,
  .topbar .wrap span:last-child {
    display: flex !important;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
    max-width: 100%;
    text-align: center;
  }

  .topbar .wrap > span:first-child {
    line-height: 1.5;
  }

  .site-language-select {
    min-height: 30px;
    font-size: 12px;
  }

  .site-nav a {
    white-space: normal;
    line-height: 1.45;
  }
}

@media (max-width: 420px) {
  .topbar .wrap > span:first-child {
    font-size: 10px;
  }

  html:lang(en) .company-information-panel .profile > div {
    grid-template-columns: minmax(96px, 0.38fr) minmax(0, 1fr) !important;
    gap: 8px !important;
  }
}
