@charset "UTF-8";
/* 2024年版モダンリセットCSS */

:root {
  --color-text: #333;
  --color-background: #fff;
  --color-link: #005fcc;
  --color-link-hover: #004bb5;
  --color-focus: #005fcc;
  --color-focus-visible: #ffcc00;
  --font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --spacing-unit: 1rem;
}

html, body, h1, h2, h3, h4, h5, h6, p, ul, ol, li, figure, blockquote, table, th, td {
  margin: 0;
  padding: 0;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}
html {
  font-size: 16px; /* ベースフォントサイズ */
  line-height: 1.5;
  -webkit-text-size-adjust: 100%; /* モバイルでのフォントサイズ調整を無効化 */
  scroll-behavior: smooth; /* スムーズスクロールをデフォルトに */
}

body {
  margin: 0;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  color: var(--color-text, #333);
  background-color: var(--color-background, #fff);
  min-height: 100vh; /* 全画面の高さを確保 */
  text-rendering: optimizeSpeed; /* パフォーマンスを最適化 */
}

img,
picture,
video,
canvas,
svg {
  display: block; /* デフォルトのインライン表示をブロックに変更 */
  max-width: 100%; /* 幅を親要素に合わせる */
  height: auto; /* 縦横比を維持 */
}

input,
button,
textarea,
select {
  font: inherit; /* フォントを親要素に継承 */
  color: inherit;
  background: none;
  border: none;
  outline: none; /* デフォルトのスタイルを初期化 */
}

a {
  text-decoration: none;
  color: inherit; /* リンクの色を継承 */
  cursor: pointer;
}

nav ul,
nav ol {
  list-style: none; /* リストのスタイルを初期化 */
}

table {
  border-collapse: collapse; /* セルの隙間を除去 */
  width: 100%; /* テーブルの幅を親要素に合わせる */
}

button {
  cursor: pointer;
}

textarea {
  resize: none; /* デフォルトのリサイズを無効化 */
}

:focus {
  outline: 2px solid var(--color-focus, #005fcc); /* フォーカス時の視覚的なアクセント */
  outline-offset: 2px;
}

:focus-visible {
  outline: 3px solid var(--color-focus-visible, #ffcc00); /* 視覚的なフォーカス表示 */
  outline-offset: 3px;
}

::placeholder {
  color: #aaa; /* プレースホルダーの色を調整 */
  opacity: 1; /* 透明度を確保 */
}

@media (prefers-color-scheme: dark) {
  body {
    background-color: #121212;
    color: #e0e0e0;
  }

  a {
    color: #90caf9; /* ダークモード時のリンク色 */
  }
  ::placeholder {
    color: #666;
  }
}

