@charset "utf-8";

/* ==========================================================
   ハンバーガーメニュー（モバイル用フルスクリーン表示）
========================================================== */
@media (max-width: 800px) {

    /* 1. ハンバーガーボタン（開くボタン） */
    .toggle-menu-button {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        width: 36px;
        height: 24px;
        background-color: transparent;
        border: none;
        cursor: pointer;
        padding: 0;
        outline: none;
        z-index: 1001;
        position: relative;
    }

    /* 3本のバーの基本スタイル */
    .toggle-menu-button span {
        display: block;
        width: 100%;
        height: 2px;
        background-color: #ffffff;
        border-radius: 2px;
        transition: transform 0.3s ease, opacity 0.3s ease, background-color 0.3s ease;
        transform-origin: center;
    }

    /* 2. フルスクリーンメニューの土台 */
    .header-site-menu {
        position: fixed;
        top: 0;
        left: 0;
        width: 100vw;
        height: 100vh;
        background-color: rgba(43, 43, 43, 0.95);
        display: flex;
        flex-direction: column;
        align-items: center;

        /* ★画面上部に余白を作成 */
        padding-top: 80px;
        padding-bottom: 40px;
        overflow-y: auto;
        /* 項目が多く画面から溢れた場合もスクロール可能に */

        z-index: 1000;

        /* アニメーション用の初期状態 */
        opacity: 0;
        visibility: hidden;
        transition: opacity 0.3s ease, visibility 0.3s ease;
    }

    /* クラスが追加された時（表示状態） */
    .header-site-menu.is-show {
        opacity: 1;
        visibility: visible;
    }

    /* 閉じるボタン（×ボタン） */
    .menu-close-button {
        position: absolute;
        top: 20px;
        right: 20px;
        width: 50px;
        height: 50px;
        background-color: transparent;
        border: none;
        color: #ffffff;
        font-size: 40px;
        line-height: 1;
        cursor: pointer;
        outline: none;
        transition: transform 0.2s ease;
    }

    /* 閉じるボタンのタップアニメーション */
    .menu-close-button:active {
        transform: scale(0.8);
    }

    /* メニューリストのレイアウト */
    .site-menu ul {
        display: flex;
        flex-direction: column;
        text-align: center;
        padding: 0;
        width: 100%;
    }

    .site-menu li {
        margin: 10px 0;
    }

    /* リンクのスタイルとタップアニメーション */
    .site-menu li a {
        display: block;
        padding: 12px 30px;
        font-family: 'Noto Sans JP', sans-serif;
        /*[cite: 26] */
        font-weight: bold;
        /*[cite: 26] */
        font-size: 18px;
        color: #ffffff;
        text-decoration: none;
        border-radius: 8px;
        transition: transform 0.2s ease, background-color 0.2s ease;
    }

    /* タップ（クリック）時のふわっと縮むアニメーション */
    .site-menu li a:active,
    .site-menu li a:hover {
        transform: scale(0.95);
        background-color: rgba(255, 255, 255, 0.1);
    }

    /* 【アニメーション】メニューが開いたときの「×」変形 */
    .header-site-menu.is-show~.header-inner .toggle-menu-button span:nth-child(1),
    .toggle-menu-button.is-active span:nth-child(1) {
        transform: translateY(11px) rotate(45deg);
    }

    .header-site-menu.is-show~.header-inner .toggle-menu-button span:nth-child(2),
    .toggle-menu-button.is-active span:nth-child(2) {
        opacity: 0;
    }

    .header-site-menu.is-show~.header-inner .toggle-menu-button span:nth-child(3),
    .toggle-menu-button.is-active span:nth-child(3) {
        transform: translateY(-11px) rotate(-45deg);
    }
}