/* ==========================================================================
   lp-reset.css — minimal, LP向けの軽量リセット（フル版）
   目的: 余白の初期化 / ボックスモデル統一 / 画像やフォームの素直な挙動
         モバイル配慮 / よく使うメディアと number 入力の最小整形を同梱
   --------------------------------------------------------------------------
   注意:
   - JSのスムーススクロール(GSAP等)を使う場合は、htmlの scroll-behavior を削除
   - 強い標準化は避け、副作用を小さく保つ方針
   ========================================================================== */

/* 0) UA拡大抑制・タップハイライト・ボックスモデル統一 */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth; /* JSで制御するなら削除 */
}

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

/* 1) 余白リセット（特異性を上げない :where を使用） */
:where(body, h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd) {
  margin: 0;
}

/* 2) ベースタイポ・高さ */
body {
  min-height: 100dvh;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* 3) リスト */
:where(ul, ol) {
  list-style: none;
  padding: 0;
  margin: 0;
}

/* 4) 画像・メディア（静止系） */
img,
svg,
canvas {
  display: block; /* 画像下の隙間防止・インラインの影響排除 */
  max-width: 100%; /* 親幅にフィット */
  height: auto; /* アスペクト維持 */
}
svg {
  fill: currentColor; /* アイコンを文字色で着色しやすく */
}

/* 5) 埋め込みメディア（動画・音声・iframe） */
video,
audio {
  display: block;
  max-width: 100%;
  height: auto; /* video の比率維持 */
}
audio {
  width: 100%;
} /* 横幅合わせが多い前提 */
iframe {
  display: block;
  max-width: 100%;
  border: 0; /* 余計な枠線の念のため除去 */
}

/* 必要時のみ使う可変比率ユーティリティ（任意）
     - 使う要素に .ratio-16x9 を付与し、子のiframe/videoを直下に置く */
.ratio-16x9 {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
}
.ratio-16x9 > iframe,
.ratio-16x9 > video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

/* 6) アンカー */
a {
  text-decoration: none;
  color: inherit;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0.08);
}

/* 7) ボタン・フォーム（最小限） */
button,
input,
select,
textarea {
  font: inherit; /* フォントを継承 */
  color: inherit;
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
}
button {
  cursor: pointer;
}
input[type="search"] {
  -webkit-appearance: none;
  appearance: none;
}
textarea {
  resize: vertical; /* 横リサイズ無効 */
}

/* 7-1) number のスピンボタン削除（Chrome/Edge/Safari/Firefox 対応） */
input[type="number"] {
  -moz-appearance: textfield; /* Firefox */
  appearance: textfield; /* 近代ブラウザ */
}
input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none; /* Chrome/Edge/Safari */
  margin: 0;
}

/* 8) テーブル（価格表など） */
table {
  border-collapse: collapse;
  border-spacing: 0;
  width: 100%;
}
