/* Web Kai — contact: fit viewport + readable type (loads last) */

/* max-width / padding tuned in webkai-contact-fit.css */

.section--contact .section-inner--contact {
  padding-top: clamp(8px, 1.2vh, 14px) !important;
  padding-bottom: clamp(8px, 1.2vh, 12px) !important;
}

.section--contact .contact-panel {
  padding: clamp(20px, 2.8vw, 28px) clamp(20px, 3.2vw, 30px) clamp(18px, 2.4vw, 24px) !important;
}

/* Japanese: keep-all (site default) — do not force normal/break-all */
.section--contact .section-body,
.section--contact .contact-copy .section-body,
.section--contact .footer-name,
.section--contact .footer-scope,
.section--contact .footer-copy {
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  line-break: strict !important;
  text-wrap: pretty !important;
  -webkit-line-break: after-white-space;
}

.section--contact .contact-copy .section-body {
  text-wrap: balance;
  max-width: 100%;
}

.section--contact .footer-scope {
  white-space: nowrap;
}

.section--contact .footer-name {
  white-space: nowrap;
}

.section--contact .contact-panel__lead .mask-title,
.section--contact .contact-panel__lead .mask-title > span {
  overflow: visible !important;
  word-break: keep-all;
  white-space: nowrap;
}

.section--contact .section-label {
  font-size: 0.58rem !important;
  margin-bottom: 8px !important;
}

.section--contact .section-title {
  margin-bottom: 10px !important;
}

.section--contact .section-title-text,
.section--contact .mask-title > span {
  font-size: clamp(1.22rem, 2.2vw, 1.52rem) !important;
  line-height: 1.34 !important;
  letter-spacing: 0.04em !important;
}

.section--contact .section-body {
  font-size: clamp(0.94rem, 1.85vw, 1.02rem) !important;
  line-height: 1.78 !important;
}

.contact-panel__aside {
  margin-top: clamp(18px, 2.4vh, 24px) !important;
  padding-top: clamp(16px, 2vh, 22px) !important;
}

.section--contact .contact-list {
  gap: clamp(16px, 2vh, 22px) !important;
}

.section--contact .contact-item {
  padding-bottom: clamp(14px, 1.8vh, 20px) !important;
}

.section--contact .contact-item dt {
  font-size: 0.68rem !important;
  margin-bottom: 7px !important;
}

.section--contact .contact-item dd {
  font-size: clamp(0.98rem, 2vw, 1.06rem) !important;
  line-height: 1.5 !important;
  word-break: keep-all !important;
  overflow-wrap: normal !important;
}

.section--contact .contact-link,
.section--contact .contact-link--email,
.section--contact .contact-link.business-text {
  word-break: keep-all !important;
  overflow-wrap: normal !important;
  white-space: nowrap !important;
}

.contact-panel__foot {
  margin-top: clamp(18px, 2.4vh, 24px) !important;
  padding-top: clamp(16px, 2vh, 22px) !important;
  padding-bottom: 6px !important;
}

.section--contact .footer-inner-wrap {
  gap: clamp(4px, 0.8vh, 8px) !important;
}

.section--contact .footer-brand {
  gap: 10px !important;
}

.section--contact .footer-brand .brand-logo {
  width: 34px !important;
  height: 34px !important;
}

.section--contact .footer-brand > span {
  font-size: 0.88rem !important;
}

.section--contact .footer-name,
.section--contact .footer-scope {
  font-size: clamp(0.8rem, 1.7vw, 0.9rem) !important;
  line-height: 1.52 !important;
}

.section--contact .footer-copy {
  font-size: 0.76rem !important;
  margin-top: 3px !important;
}

/* Short viewport only — slight tighten, still larger than before */
@media (max-height: 820px) {
  .section--contact .contact-panel {
    padding: 18px 22px 16px !important;
  }

  .section--contact .mask-title > span {
    font-size: clamp(1.16rem, 2vw, 1.42rem) !important;
  }

  .contact-panel__aside,
  .contact-panel__foot {
    margin-top: 16px !important;
    padding-top: 14px !important;
  }
}

@media (max-width: 900px) {
  .section--contact {
    padding-top: calc(var(--header-h) + 12px) !important;
  }
}

@media (max-width: 640px) {
  .section--contact .footer-scope,
  .section--contact .footer-name {
    white-space: normal;
  }

  .section--contact .contact-link,
  .section--contact .contact-link--email {
    white-space: normal !important;
    overflow-wrap: break-word !important;
  }
}
