/* 公開画面共通。本文は自然な折り返し、短い見出しは行末の孤立を避ける。
   商品カードの1行省略・金額・入力値・印刷帳票のルールは変更しない。 */
body { line-break: strict; }
body :where(main p, main li, main dd, .notice, .terms-modal__body p) {
  word-break: normal;
  overflow-wrap: break-word;
  text-wrap: pretty;
}
body :where(h1, h2, h3, h4, summary) { text-wrap: balance; }
/* 対応ブラウザでは日本語の文節を優先。非対応時も上の禁則と通常改行で読める。 */
@supports (word-break: auto-phrase) {
  body :where(main p, main li, main dd, h1, h2, h3, h4, summary,
    .notice, .terms-modal__body p) { word-break: auto-phrase; }
}
body .section-title__main { overflow-wrap: break-word; }
.mikawa-readable-label { min-width: 0; max-width: 100%; }
.mikawa-text-unit {
  display: inline-block;
  max-width: 100%;
  vertical-align: baseline;
  word-break: normal;
  overflow-wrap: break-word;
}
body .site-footer--unified .site-footer__nav a {
  overflow-wrap: break-word;
  text-wrap: balance;
}
body :where(.shop-content-lead, .contact-lead, .login-card__register-text,
  .register-card__login-text, .login-2fa-notice__title, .lostpw-form__label,
  .shop-guide-summary dd, .shop-guide-flow h3, .shop-guide-faq summary) {
  text-wrap: balance;
}
/* 「ログ／イン」やリンクだけの一文字落ちを防ぐ。 */
body :where(.register-card__login-link, .login-card__register-link,
  .lostpw-card__login-link, .lostpw-back-login) { display: inline-block; }
body :where(.shop-content-actions .btn, .account-confirmation__card .btn) {
  max-width: 100%;
  white-space: normal;
  text-wrap: balance;
}
/* ラベルと必須表示は横幅に応じてまとまりごとに折り返す。 */
body :where(.register-form__required, .login-form__required) { white-space: nowrap; }
@media (max-width: 420px) {
  body .shop-guide-flow li { grid-template-columns: 30px minmax(0, 1fr); }
  body .shop-guide-faq summary { padding-right: 48px; }
}
