/* -------------------- */
/* CSS Reset / Normalize */
/* -------------------- */

/* 全ての要素にbox-sizing: border-box; を適用 */
/* これにより、paddingとborderがwidth/heightに含まれるようになり、レイアウト計算がしやすくなる */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* bodyのデフォルトマージンを削除し、フルハイトを確保 */
body {
    margin: 0;
    min-height: 100vh;
    /* ビューポートの高さ全体を最低限確保 */
    line-height: 1.5;
    /* 行の高さを設定 */
    -webkit-font-smoothing: antialiased;
    /* フォントのアンチエイリアシングを改善 (WebKit系ブラウザ) */
    text-rendering: optimizeLegibility;
    /* テキストのレンダリング品質を改善 */
}

.scrollbar-hidden {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

.scrollbar-hidden::-webkit-scrollbar {
    display: none;
}

/* 画像や動画などのメディア要素が親要素からはみ出さないように調整 */
img,
picture,
video,
canvas,
svg {
    display: block;
}

/* フォーム要素のフォントを親要素から継承させる */
input,
button,
textarea,
select {
    font: inherit;
}

/* 見出し要素のデフォルトマージンを削除 */
h1,
h2,
h3,
h4,
h5,
h6 {
    margin-top: 0;
    margin-bottom: 0;
}

summary {
    display: block;
    list-style: none;
}

.summary::-webkit-details-marker {
    /* Safari-デフォルトの三角形を削除*/
    display: none;
}

/* 段落のデフォルトマージンを削除 */
p {
    margin-top: 0;
    margin-bottom: 0;
}

/* リストのデフォルトマージン・パディングを削除（必要であれば） */
ul,
ol {
    margin-top: 0;
    margin-bottom: 0;
    padding-left: 0;
    list-style: none;
    /* リストの箇条書きマークを削除 */
}

/* aタグのデフォルトのテキスト装飾をリセット */
a {
    text-decoration: none;
    color: inherit;
    /* 親要素から色を継承 */
}

/* ボタンのデフォルトスタイルをリセット */
button {
    background-color: transparent;
    border: none;
    padding: 0;
    cursor: pointer;
}

/* テキストエリアのリサイズハンドルを無効化（必要であれば） */
textarea {
    resize: vertical;
    /* 垂直方向のみリサイズ可能にする、または none */
}

/* Focusable elements (a, button, input, textarea, select) should be made to outline when they are focused, in an accessible way. */
/* アクセシビリティのため、フォーカス時のアウトラインは残すか、代替手段を提供する */
:focus-visible {
    outline: 2px solid Highlight;
    /* あるいは、独自のフォーカススタイル */
    outline-offset: 2px;
}