@charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Marcellus&family=Noto+Sans+JP:wght@100..900&display=swap');
/*
SP ～519px
tab 520px～959px
pc 960px～
*/



/* --- スマホ・PC共通：クラスが付いた時のヘッダー要素の変化 --- */

/* 1. ハンバーガーメニューの枠と文字色 */
header.is-highlighted .hum_menu {
    border-color: #333333;
    color: #333333;
}

/* 2. ハンバーガーメニューの三本線（before/after） */
header.is-highlighted .hum_menu .hum_menu_line::before,
header.is-highlighted .hum_menu .hum_menu_line::after {
    background-color: #333333;
}

/* PC用：is-highlightedがついた時に黒くする */
@media screen and (min-width: 960px) {
    header.is-highlighted nav a {
        color: #333333 !important;
        /* 強制的に上書き */
    }

    /* ロゴ画像なども変える必要がある場合はここに追記 */
}



header {
    position: fixed;
    width: 100%;
    padding-top: 8px;
    padding-left: 8px;
    padding-right: 8px;
    top: 0;
    z-index: 100000;
}

/* スマホ時のメニュー展開アニメーションの調整 */
header nav {
    background-color: #FFA550;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;

    display: flex;
    /* 中央寄せにするため */
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 0;

    /* 動きの演出 */
    transition: all 0.5s ease;
    transform: translateY(-100%);
    /* 最初は画面の上に隠しておく */

    padding-top: 80px;
    padding-left: 80px;
    padding-right: 80px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* クラス「on」がついた時（展開時） */
header.on nav {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    /* 画面内にスッと降りてくる */
    pointer-events: auto;
}

/* ハンバーガーメニュー展開時画面スクロールを止める */
/* body.noscroll {
    overflow: hidden;
} */



/* ナビゲーション内のリスト調整 */
header nav ul {
    text-align: center;
}

header nav a {
    color: #F5F2EB;
    text-decoration: none;
    border-bottom: 2px dotted #F5F2EB;
    font-size: 24px;
    /* スマホで見やすいサイズに調整 */
    line-height: 3;
    display: block;
    border-bottom: none;
    /* ドット線を消すとおしゃれになります */
}

header .header_inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

header .header_inner h1 {
    width: 200px;
}

header .hum_menu {
    border: 1px solid #F5F2EB;
    color: #F5F2EB;
    padding: 8px;
    display: flex;
    align-items: center;
    gap: 8px;
    z-index: 10;
    mix-blend-mode: difference;
    cursor: pointer;
    z-index: 1000001;
    /* nav(100000)よりさらに上に */
    position: relative;
}

header .hum_menu .hum_menu_line::before,
header .hum_menu .hum_menu_line::after {
    content: "";
    display: block;
    width: 20px;
    height: 2px;
    background-color: #F5F2EB;
    transition: 0.3s;
}

header .hum_menu .hum_menu_line::before {
    transform: translateY(-2px);
}

header .hum_menu .hum_menu_line::after {
    transform: translateY(4px);
}

header.on .hum_menu .hum_menu_line::before {
    transform: translateY(2px) rotate(45deg);
}

header.on .hum_menu .hum_menu_line::after {
    transform: translateY(0) rotate(-45deg);
}

footer {
    background-color: #1C1C1C;
    color: #F5F2EB;
    text-align: center;
    padding: 20px;
}

.logo-l {
    margin-left: auto;
    margin-right: auto;
}

address {
    font-style: normal;
    font-size: 14px;
    margin-top: 24px;
    margin-bottom: 24px;
    line-height: 2rem;
}


@media screen and (min-width:960px) {

    header .hum_menu {
        display: none;
    }


    header nav {
        transform: none;
        visibility: visible;
        opacity: 1;
        position: static;
        width: auto;
        height: auto;
        display: block;
        background-color: transparent;
        padding: 0;
        pointer-events: all;
    }


    header nav ul {
        display: flex;
        gap: 20px;
    }

    header nav a {
        font-size: 40px;
        border-bottom: none;
        line-height: 1;
        color: #F5F2EB;
    }

    header .header_inner {
        padding-left: 50px;
        padding-right: 50px;
    }

    a:hover {
        opacity: 0.5;
    }

    .gnav-list li a {
        display: block;
        font-size: 18px;
        color: #F5F2EB;
        text-decoration: none;
    }

    .gnav-list li span {
        font-size: 14px;
        display: block;
    }

    footer {
        background-color: #1C1C1C;
        color: #F5F2EB;
        text-align: center;
        padding: 20px;
    }

    .logo-l {
        margin-left: auto;
        margin-right: auto;
    }

    address {
        font-style: normal;
        font-size: 14px;
        margin-top: 24px;
        margin-bottom: 24px;
        line-height: 2rem;
    }

}

/*==========min-width:960pxここまで================*/



/* スマホ表示（画面幅が959px以下の時） */
@media screen and (max-width: 959px) {

    /* About, News, Access のコンテナを縦並び・中央揃えにする */
    .about-container,
    .news-container,
    .access-container {
        display: flex;
        flex-direction: column;
        /* 縦に並べる */
        align-items: center;
        /* 子要素を中央に寄せる */
        text-align: center;
        /* テキスト自体を中央に寄せる */
    }

    /* 各要素の横幅を100%にして、文字が中央に来るようにする */
    .about-text,
    .about-image,
    .news-text,
    .news-image,
    .access-info,
    .access-map {
        width: 100% !important;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    /* 見出しや文章に余白を調整（必要に応じて） */
    .about-text p,
    .news-text p,
    .access-info p {
        padding: 0 20px;
        /* 画面端に文字がくっつかないように */
    }
}