/* Webフォント最適化 */
@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 400;
    font-display: swap;  /* フォントロード中に代替フォントを表示 */
    src: local('Noto Sans Japanese Regular'),
         local('NotoSansJP-Regular'),
         url('https://fonts.gstatic.com/s/notosansjp/v52/-F62fjtqLzI2JPCgQBnw7HFow2oe2EcP5pp0erwTqsSWs9Jezazjcb4.0.woff2') format('woff2'),
         url('https://fonts.gstatic.com/s/notosansjp/v52/-F62fjtqLzI2JPCgQBnw7HFowwII2lcnIrI-q4oQvKQ.woff') format('woff');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+3000-30FF, U+4E00-9FFF;
}

@font-face {
    font-family: 'Noto Sans JP';
    font-style: normal;
    font-weight: 700;
    font-display: swap;  /* フォントロード中に代替フォントを表示 */
    src: local('Noto Sans Japanese Bold'),
         local('NotoSansJP-Bold'),
         url('https://fonts.gstatic.com/s/notosansjp/v52/-F6pfjtqLzI2JPCgQBnw7HFQei0q1X1aBdO2cKj0s5tZ.woff2') format('woff2'),
         url('https://fonts.gstatic.com/s/notosansjp/v52/-F6pfjtqLzI2JPCgQBnw7HFQei0q131nj-otFQ.woff') format('woff');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD, U+3000-30FF, U+4E00-9FFF;
}

/* Font Awesome のサブセット */
@font-face {
    font-family: 'Font Awesome 5 Subset';
    font-style: normal;
    font-weight: 400;
    font-display: block;  /* Iconフォントはswapより表示を優先 */
    src: url('../fonts/fa-subset.woff2') format('woff2');
}

/* システムフォントフォールバック */
:root {
    --font-primary: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-heading: 'Noto Sans JP', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* フォント使用例 */
body {
    font-family: var(--font-primary);
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
}

/* フォント使用の最適化ヒント */
.optimize-text {
    /* サイズ調整で再レンダリングを防ぐ */
    font-size: 16px;
    line-height: 1.5;
    /* 文字間隔の最適化 */
    letter-spacing: -0.01em;
    /* アンチエイリアス処理 */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* フォントのサブピクセルレンダリング */
    text-rendering: optimizeLegibility;
}

/* テキスト表示の最適化 */
.no-text-overflow {
    /* 画面外への文字はみ出しを防止 */
    overflow-wrap: break-word;
    word-wrap: break-word;
    /* ハイフネーション */
    hyphens: auto;
} 