@charset "UTF-8";

/* 1. すべての要素でサイズ計算を直感的に（borderを含める） */
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* 2. ブラウザ固有の余白とスタイルをリセット（伝統的リセットの継承） */
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, main, menu, nav, output, ruby, section, summary, time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    font-size: 100%;
    font: inherit;
    vertical-align: baseline;
}

/* 3. HTML5要素の表示保証 */
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
    display: block;
}

/* 4. タイポグラフィと読みやすさの調整 */
body {
    line-height: 1.5; /* 読みやすい行間 */
    min-height: 100vh; /* 画面いっぱいの高さを確保 */
    -webkit-font-smoothing: antialiased; /* フォントを滑らかに */
    text-rendering: optimizeSpeed;
}

ol, ul {
    list-style: none;
}

/* 長い英単語やURLのはみ出し防止 */
p, h1, h2, h3, h4, h5, h6 {
    overflow-wrap: break-word;
}

/* 5. 画像・メディアのレスポンシブ対応 */
img, picture, video, canvas, svg {
    display: block; /* 下の隙間を消す */
    max-width: 100%; /* 親を突き抜けない */
    height: auto;
}

/* 6. フォーム要素の使い勝手を向上 */
input, button, textarea, select {
    font: inherit; /* 親のフォントを継承 */
}

button {
    cursor: pointer; /* クリックできることを明示 */
    background: none;
    border: none;
    padding: 0;
}

/* 7. テーブルの調整 */
table {
    border-collapse: collapse;
    border-spacing: 0;
}

/* 8. アクセシビリティ：フォーカス時の視認性 */
:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}