/* ==========================================================================
   Modern reset（Josh Comeau / Andy Bell 系）+ TFM 用トッピング
   ========================================================================== */

*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  min-height: 100dvh;                /* 100vh のモバイル・アドレスバー問題を回避 */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img, picture, video, canvas, svg {
  display: block;
  max-width: 100%;
  height: auto;                      /* max-width 発動時もアスペクト比維持 */
}

input, button, textarea, select {
  font: inherit;
  color: inherit;
}

/* text-wrap: pretty は使わない（2026-09-25 iPhone SE / Safari で発覚）。
   Chrome は「最後の数行の泣き別れだけ」直すのに対し、**Safari は段落全体を
   組み直す**実装なので、日本語だと行が 7 割くらいで折り返って右が大きく空く。
   同じ HTML がブラウザごとに別の位置で改行されるため、カンプ合わせが成立しない。 */
h1, h2, h3, h4, h5, h6 { text-wrap: balance; }   /* 見出しは短いので差が出にくい */

ul, ol { list-style: none; }

a { text-decoration: none; color: inherit; }

table { border-collapse: collapse; border-spacing: 0; }

button {
  background: none;
  border: none;
  cursor: pointer;
  appearance: none;
}

/* 固定ヘッダー分、アンカー着地位置を下げる（値は案件でヘッダー高に合わせる） */
:where(section, [id]) {
  scroll-margin-top: 8rem;
}
