/* 木村広報設計室 日本語組版・折返し補正 2026-08-08 */

html[lang="ja"] body {
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
}

/* 意味単位を途中で切らない */
.jp-keep {
  white-space: nowrap;
}

/* 編集者が指定した見出し行はPC/FHD/4Kで保持 */
.editorial-line {
  display: inline-block;
  white-space: nowrap;
}

/* サービス詳細ページ：見出し列が狭すぎて日本語名を割らない */
@media (min-width: 901px) {
  .services-page .price-section-inner {
    grid-template-columns: minmax(300px, .48fr) minmax(0, 1.28fr);
  }

  .services-page .price-section h2 {
    white-space: nowrap;
  }

  .services-page .services-page-hero h1 {
    width: min(100%, 1180px);
    max-width: none;
    font-size: clamp(46px, 5.1vw, 82px);
  }

  .services-page .production-conditions header {
    grid-template-columns: minmax(260px, .42fr) minmax(620px, 1.18fr);
  }

  .services-page .production-conditions h2 {
    font-size: clamp(36px, 4.0vw, 60px);
  }

  .services-page .contact-inner {
    width: min(100%, 1500px);
  }

  .services-page .contact-title {
    max-width: none;
    font-size: clamp(42px, 4.1vw, 70px);
  }
}

/* 既存の日本語本文・説明文は単語単位ではなく自然な禁則処理へ */
.hero-note,
.service-overview-desc,
.services-page-lead,
.price-row p,
.condition-grid p,
.condition-note p,
.contact-intro {
  line-break: strict;
  word-break: normal;
  overflow-wrap: break-word;
  text-wrap: pretty;
}

/* 見出しは孤立1〜2字を避ける */
.services-page h1,
.services-page h2,
.service-overview-head h2,
.contact-title {
  line-break: strict;
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: balance;
}

/* タブレット以下では固定行を解除し、画面幅を優先 */
@media (max-width: 900px) {
  .editorial-line {
    white-space: normal;
  }

  .services-page .price-section h2 {
    white-space: normal;
  }
}

/* 小型端末では長い固有名詞だけ必要に応じて折返し可能にする */
@media (max-width: 360px) {
  .jp-keep {
    white-space: normal;
  }
}
/* 2026-08-13 — Home contact semantic lineation
   Text is composed before implementation; mobile line breaks follow semantic roles,
   not browser auto-wrapping. */
.home-contact .contact-intro-line{display:inline}
@media (max-width:560px){
  .home-contact .contact-title{line-break:strict;word-break:normal;overflow-wrap:normal;text-wrap:initial}
  .home-contact .contact-title-line{display:inline-block;white-space:nowrap}
  .home-contact .contact-intro{max-width:none;line-break:strict;word-break:normal;overflow-wrap:normal;text-wrap:initial}
  .home-contact .contact-intro-line{display:block;white-space:nowrap}
}
/* HOME-CONTACT-LEFT-READING-20260814
   Mobile: read the consultation copy from a stable left edge.
   The heading is two semantic sentences, not a centered shape. */
@media (max-width:560px){
  .home-contact{
    text-align:left;
  }
  .home-contact .contact-inner{
    width:100%;
    max-width:none;
  }
  .home-contact .contact-title{
    margin:0;
    max-width:none;
    text-align:left;
    font-size:clamp(19px,6vw,27px);
    line-height:1.9;
    letter-spacing:.015em;
    line-break:strict;
    word-break:normal;
    overflow-wrap:normal;
    text-wrap:initial;
  }
  .home-contact .contact-title-line{
    display:block;
    white-space:nowrap;
  }
  .home-contact .contact-intro{
    margin-left:0;
    margin-right:0;
    max-width:none;
    text-align:left;
  }
  .home-contact .contact-intro-line{
    display:block;
    white-space:nowrap;
  }
}
/* HOME-CONTACT-THREE-UNITS-LEFT-READING-20260814 */
@media (max-width:560px){
  .home-contact{
    text-align:center;
  }
  .home-contact .contact-title,
  .home-contact .contact-intro{
    text-align:left;
  }
  .home-contact .contact-intro-line{
    display:block;
    white-space:normal;
  }
}

/* HOME-CONTACT-DESKTOP-SEMANTIC-LINEATION-20260815
   Desktop/tablet: keep the home consultation heading and intro in authored
   semantic units instead of allowing browser auto-wrap to create orphaned
   fragments such as 「ま」 or 「は30分まで無料です。」. */
@media (min-width:561px){
  .home-contact .contact-title-line{
    display:block;
    white-space:nowrap;
  }
  .home-contact .contact-intro-line{
    display:block;
    white-space:nowrap;
  }
}
