/* Shared typography for the three locales on the Owner review pages. */
:where(main, [data-kp-site-header], .kp-footer, .lm-footer, #kp-consent)
  :where(h1, h2, h3, h4, p, li, label, dt, dd, summary, button, a, small) {
  word-break: normal;
  overflow-wrap: normal;
}
:is(main, [data-kp-site-header], .kp-footer, .lm-footer, #kp-consent)
  :is(h1, h2, h3, h4, summary, button, label, [role="tab"]) {
  text-wrap: balance;
}
:is(main, .kp-footer, .lm-footer, #kp-consent) :is(p, li, dd, small) {
  text-wrap: pretty;
}
:lang(ja) :is(main, [data-kp-site-header], .kp-footer, .lm-footer, #kp-consent) {
  line-break: strict;
}
@supports (word-break: auto-phrase) {
  html:lang(ja) :is(main, [data-kp-site-header], .kp-footer, .lm-footer, #kp-consent)
    :is(h1, h2, h3, p, li, label, dt, summary, button, a, small, .sv-leadline, .sv-slant) {
    word-break: auto-phrase;
  }
}
html:lang(th) :is(main, [data-kp-site-header], .kp-footer, .lm-footer, #kp-consent) {
  font-family: "Noto Sans Thai", Thonburi, "Leelawadee UI", system-ui, sans-serif;
  line-break: auto;
}
html:lang(th) :is(main, .kp-footer, .lm-footer, #kp-consent)
  :is(h1, h2, h3, h4, p, li, dd, dt, small, label, summary, button) {
  letter-spacing: normal;
  word-break: normal;
}
html:lang(th) :is(main, #kp-consent) :is(p, dd, label, small) { line-height: 1.65; }
html:lang(th) :is(main, #kp-consent) :is(h1, h2, h3, summary, button) { line-height: 1.36; }

:is(.sv-page, #kinpass-c) :is(.sv-button, .sv-inline, .showcase-link, .p-option-submit, .p-cta-button) {
  min-inline-size: 0;
  max-inline-size: 100%;
  text-wrap: balance;
}
:is(.sv-page, #kinpass-c) :is(.sv-button, .showcase-link, .p-option-submit, .p-cta-button) svg { flex: none; }
:is(.sv-page, #kinpass-c) :is(.sv-copy, .showcase-copy, .p-option-quote, .p-plan-price, .sv-step-copy) { min-inline-size: 0; }
.sv-page .sv-copy h1 { overflow-wrap: normal; }
.sv-page :is(.sv-leadline, .sv-slant) { max-inline-size: 100%; text-wrap: balance; }
.sv-page .sv-slant { transform: rotate(-2deg); }
.sv-page .sv-step-copy { text-wrap: balance; }
.sv-page .sv-flow li { min-inline-size: 0; }
.sv-page :is(.sv-offer-start, .kp-price-token),
#kinpass-c .kp-price-token { white-space: nowrap; word-break: normal; }
#kinpass-c :is(.p-plan-price p, .p-option-quote) { line-height: 1.25; }
#kinpass-c :is(.p-title, .p-title strong, .showcase-copy h3, .showcase-tabs button) { text-wrap: balance; }
#kinpass-c .p-home-final h2 strong { max-inline-size: 100%; }

.kp-contact .kp-contact-hero h1 { overflow-wrap: normal; }
.kp-contact :is(.kp-contact-field, .kp-contact-form, .kp-contact-review div, .kp-contact-actions) { min-inline-size: 0; }
.kp-contact :is(.kp-contact-button,.kp-contact-back) { max-inline-size: 100%; white-space: normal; justify-content: center; }
.kp-contact .kp-contact-consent { align-items: start; }
.kp-contact .kp-contact-consent input { flex: none; margin-block-start: .35em; }
.kp-contact :is(.kp-contact-review dd, .kp-contact-receipt) { overflow-wrap: anywhere; }
.privacy-copy :is(h1, h2) { text-wrap: balance; }
.privacy-copy :is(p, li) { text-wrap: pretty; }
:is(.kp-footer, .lm-footer) :is(a, button) { white-space: normal; }

@media (max-width: 600px) {
  .sv-page .sv-copy h1 { font-size: clamp(1.85rem, 7.7vw, 2.55rem); }
  html:not(:lang(ja)) .sv-page .sv-copy h1 { font-size: clamp(1.72rem, 7vw, 2.3rem); }
  .sv-page .sv-slant { transform: none; }
  #kinpass-c :is(.p-title, .p-title strong) { letter-spacing: -.025em; }
  #kinpass-c .showcase-tabs [role="tab"] { min-inline-size: 0; white-space: normal; }
  .kp-contact .kp-contact-hero { grid-template-columns: minmax(0, 1fr) clamp(54px, 17vw, 78px); }
  .kp-contact .kp-contact-hero h1 { font-size: clamp(1.35rem, 5.6vw, 1.85rem); }
  .kp-contact .kp-contact-actions { align-items: stretch; }
  .kp-contact .kp-contact-actions > button { flex: 1 1 11rem; }
}
@media (max-width: 359px) {
  #kinpass-c .p-plan-price p { font-size: clamp(1.05rem, 6.2vw, 1.4rem); }
  .sv-page .sv-category { letter-spacing: normal; }
  [data-kp-site-header] :is(.kp-header-current, button, summary) { letter-spacing: normal; }
}
@media (min-width: 761px) {
  html:lang(en) .sv-page .sv-copy h1 { font-size: clamp(2.35rem, 4.45vw, 4.2rem); }
}
