/*
  TOP / Web制作 / 業務改善 / 会社概要など共通の文章組版。
  小さな見出し領域に固定改行と自動折り返しが重なる問題を解消。
  画像・紙面・ヘッダー・フォーム・TOPのファーストビューは維持する。
*/
body[data-lh-flow-page] main :is(h2,h3){
  line-break:strict;
  word-break:normal;
  overflow-wrap:break-word;
  text-wrap:balance;
}
body[data-lh-flow-page] main p{
  line-break:strict;
  overflow-wrap:break-word;
  text-wrap:pretty;
}
/* 紙面中の区切り用 <br> は、任意の画面幅で必ず折り返す指定から解放する。
   ヒーローのコピー・引用・モバイル専用改行は意図した演出なので対象外。 */
body[data-lh-flow-page] main :is(h2,h3) br:not(.mobile-only){
  display:none;
}
body[data-lh-flow-page] main p:not(.lhc-hero-lead):not(.lhc-hero-intro):not(.lhc-pullquote):not(.bi-note-title) br:not(.mobile-only){
  display:none;
}
/* 下層ページは960px幅の中で見出し+説明文を二分割していたため、
   見出しの文字数に対して横幅と書体が釣り合っていなかった。 */
@media(min-width:1101px){
  body[data-lh-flow-page="improvement"] main .memory-heading{
    grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
    gap:clamp(20px,2.2vw,34px);
  }
  body[data-lh-flow-page="improvement"] main .bi-section-intro{
    grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);
    gap:clamp(20px,2.2vw,34px);
  }
  body[data-lh-flow-page="web"] main .works-heading{
    gap:clamp(18px,2vw,32px);
  }
  body[data-lh-flow-page="web"] main .works-heading h2{
    flex-shrink:1;
    min-width:0;
  }
  body[data-lh-flow-page="web"] main .price-grid{
    grid-template-columns:minmax(0,1fr) minmax(250px,43%);
    gap:clamp(18px,2.2vw,32px);
  }
}
body[data-lh-flow-page="improvement"] main.business-page h2{
  font-size:clamp(29px,2.6vw,36px);
  line-height:1.6;
  letter-spacing:.02em;
}
body[data-lh-flow-page="web"] main h2{
  font-size:clamp(29px,2.7vw,37px);
  line-height:1.6;
  letter-spacing:.025em;
}
body[data-lh-flow-page="web"] main .faq-grid{
  grid-template-columns:minmax(0,34%) minmax(0,1fr);
  gap:clamp(18px,3vw,38px);
}
/* 本文が狭くなる幅では見出しと説明を上下に分ける。
   サイドメニューの位置、ページ最大幅960pxは変えない。 */
@media(min-width:761px) and (max-width:1100px){
  body[data-lh-flow-page="improvement"] main .memory-heading,
  body[data-lh-flow-page="improvement"] main .bi-section-intro{
    grid-template-columns:minmax(0,1fr);
    gap:18px;
  }
  body[data-lh-flow-page="web"] main .works-heading{
    flex-direction:column;
    align-items:flex-start;
    gap:12px;
  }
  body[data-lh-flow-page="web"] main .faq-grid{
    grid-template-columns:minmax(0,1fr);
    gap:24px;
  }
  body[data-lh-flow-page="web"] main .price-grid{
    grid-template-columns:minmax(0,1fr);
    gap:26px;
  }
}
@media(max-width:760px){
  body[data-lh-flow-page="improvement"] main.business-page h2,
  body[data-lh-flow-page="web"] main h2{
    font-size:clamp(25px,6.8vw,31px);
    line-height:1.58;
    letter-spacing:.015em;
  }
  body[data-lh-flow-page="web"] main .works-heading h2{
    white-space:normal;
  }
}
/* 行頭の句読点防止・動作を減らす端末では追加の演出は行わない。 */
