        /* ---------------------------------- */
        /* アニメーション用キーフレーム         */
        /* ---------------------------------- */
        /* フェードイン（下から上へスライドしながら出現）*/
        @keyframes slide-in-from-top {
            0% {
                opacity: 0;
                transform: translateY(-30px);
            }

            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }

        @keyframes fade-in-up {
            0% {
                opacity: 0;
                transform: translateY(30px);
            }

            100% {
                opacity: 1;
                transform: translateY(0);
            }
        }



        body {
            letter-spacing: 0.2em;
            font-family: 'Roboto', 'Noto Sans JP', sans-serif;
            margin: 0;
            padding-top: 80px;
            background-color: #ffffff;
            color: #222222;
            line-height: 1.6;
            overflow-x: hidden;
            /* 横方向のスクロールバーを非表示 */
        }

        a {
            color: #1a3a6e;
            text-decoration: none;
            transition: color 0.3s;
        }

        a:hover {
            color: #000000;
        }

        .scroll-fade2 {
            opacity: 0;
            transform: translateY(30px);
            /* 出現アニメーションにバネのような効果を追加 */
            transition: opacity 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275), transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        .scroll-fade2.active {
            opacity: 1;
            color: #000000;
            transform: translateY(0);
        }

        .page-hero {
            background-color: #ffffff;
            padding: 110px 10px 10px;
            text-align: center;
            border-bottom: 5px solid #1a3a6e;
        }

        .page-hero h1 {
            letter-spacing: 0.1em;
            font-size: 3.5em;
            margin: 0;
            color: #000000;
            text-transform: uppercase;
            opacity: 0;
            animation: slide-in-from-top 1s ease-out forwards;
            /* 初回アニメーション */
        }

        .page-hero p {
            letter-spacing: 0.1em;
            font-size: 1.3em;
            color: #000000;
            margin-top: 10px;
            opacity: 0;
            animation: fade-in-up 1s ease-out 0.5s forwards;
            /* 遅延させて出現 */
        }

        .section {
            padding: 80px 50px;
            max-width: 1000px;
            margin: 0 auto;
            text-align: left;
        }

        .section.dark {
            background-color: #ffffff;
        }

        .section h2 {
            font-size: 2.2em;
            margin-bottom: 50px;
            color: #ffffff;
            position: relative;
            text-align: center;
            display: block;
            /* scroll-fadeを適用するため */
        }

        .section h2::after {
            content: '';
            display: block;
            width: 80px;
            height: 3px;
            background-color: #1a3a6e;
            margin: 10px auto 0;
        }

        .voice-section {
            padding: 60px 20px;
            max-width: 1000px;
            margin: 0 auto;
        }

        .voice-title {
            letter-spacing: 0.1em;
            font-size: 2.4em;
            font-weight: bold;
            text-align: center;
            color: #1a3a6e;
            margin-bottom: 20px;
        }

        .voice-intro {
            text-align: center;
            font-size: 1.1em;
            color: #555;
            margin-bottom: 50px;
            line-height: 1.8;
        }

        .voice-entry img {
            width: 40%;
            max-width: 280px;
            border-radius: 50%;
            /* ← 丸く表示 */
            border: 4px solid #1a3a6e1f;
            /* ← 淡い枠線 */
            object-fit: cover;
            transition: transform 0.6s ease, box-shadow 0.6s ease;
        }

        .voice-entry img:hover {
            transform: scale(1.05);
            box-shadow: 0 8px 20px rgba(26, 58, 110, 0.25);
        }

        /* --- インタビュー交互レイアウト --- */
        .voice-entry {
            display: flex;
            gap: 30px;
            align-items: center;
            flex-wrap: wrap;
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 6px 16px rgba(26, 58, 110, 0.08);
            padding: 30px;
            margin-bottom: 60px;
            overflow: hidden;
        }

        .voice-entry img {
            width: 40%;
            max-width: 280px;
            /* 高さも同じ比率に保つため固定比率にする */
            aspect-ratio: 1 / 1;
            border-radius: 50%;
            /* 真円に */
            overflow: hidden;
            /* はみ出し部分を隠す */
            border: 4px solid #1a3a6e1f;
            object-fit: cover;
            /* 画像をコンテナいっぱいに、歪ませずにフィットさせる */
            object-position: center;
            /* 中心を基準にトリミング */
            transition: transform 0.6s ease, box-shadow 0.6s ease;
        }

        /* 偶数番目は左右反転 */
        .voice-entry:nth-child(even) {
            flex-direction: row-reverse;
            background-color: #f8faff;
            /* 淡い青背景でアクセント */
        }

        /* テキスト部分 */
        .voice-text {
            flex: 1;
            min-width: 250px;
        }

        .voice-text h3 {
            font-size: 1.4em;
            color: #1a3a6e;
            margin-bottom: 10px;
        }

        .voice-text p {
            font-size: 1em;
            line-height: 1.8;
            color: #444;
        }

        /* --- スクロールフェードアニメーション（ゆっくり＋上方向） --- */
        .scroll-fade {
            opacity: 0;
            transform: translateY(50px);
            transition: opacity 1.2s cubic-bezier(0.25, 0.8, 0.25, 1),
                transform 1.2s cubic-bezier(0.25, 0.8, 0.25, 1);
        }

        .scroll-fade.active {
            opacity: 1;
            transform: translateY(0);
        }

        /* --- モバイル対応 --- */
        @media screen and (max-width: 768px) {
            .voice-entry {
                flex-direction: column;
                text-align: center;
            }

            .voice-entry:nth-child(even) {
                flex-direction: column;
                background-color: #fff;
                /* スマホでは背景色統一 */
            }

            .voice-entry img {
                width: 100%;
                max-width: 240px;
                margin-bottom: 20px;
            }

            .voice-text {
                text-align: left;
            }

            .page-hero {
                padding: 100px 20px 20px;
            }

            .page-hero h1 {
                font-size: 2.1em;
            }

            .page-hero p {
                font-size: 1em;
            }
        }