/* 各章を1画面に収め、スクロールを止めると章の頭に揃える。ブラウザ標準のスナップで、操作は乗っ取らない。?off=pages で従来の連続スクロールへ戻す。 */
@media (min-width: 821px) and (min-height: 700px) {
  html:not(.off-pages) { scroll-snap-type: y mandatory; }
  html:not(.off-pages) .cover { scroll-snap-align: start; }
  html:not(.off-pages) main > section.wrap {
    min-height: 100svh; box-sizing: border-box;
    display: flex; flex-direction: column; justify-content: center;
    padding-top: 48px; padding-bottom: 56px;
    scroll-snap-align: start; scroll-margin-top: 0;
  }
  /* 電話案内と奥付で最後の1画面。 */
  html:not(.off-pages) .call {
    min-height: calc(100svh - 86px); box-sizing: border-box; margin-top: 0;
    display: flex; flex-direction: column; justify-content: center; align-items: center;
    scroll-snap-align: start; scroll-margin-top: 0;
  }
  html:not(.off-pages) footer { scroll-snap-align: none; }
}
/* 高さ700〜799pxでは行間の余白を詰め、業務・概要の章も1画面に収める。文字の大きさは変えない。 */
@media (min-width: 821px) and (min-height: 700px) and (max-height: 799px) {
  html:not(.off-pages) main > section.wrap { padding-top: 32px; padding-bottom: 32px; }
  html:not(.off-pages) .sec-head { margin-bottom: 30px; }
  html:not(.off-pages) .works li { padding-top: 20px; padding-bottom: 18px; }
  html:not(.off-pages) .works h3 { margin-bottom: 6px; }
  html:not(.off-pages) .spec th, html:not(.off-pages) .spec td { padding-top: 12px; padding-bottom: 12px; }
  html:not(.off-pages) .spec th { padding-top: 17px; }
  html:not(.off-pages) .call { padding-top: 64px; padding-bottom: 56px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-snap-type: none; } }
