@charset "UTF-8";

a {
    text-decoration: none;
}

img {
    vertical-align: bottom;
}

/* -------------------- */

.flex_sb {
    display: flex;
    justify-content: space-between;
}

.flex_c {
    display: flex;
    justify-content: center;
}

.wrap {
    max-width: 1000px;
    width: calc(100% - 40px);
    margin: 0 auto;
}

/* ---------
ヘッダー
------------ */

.sb_header {
    position: sticky;
    top: 0;
    z-index: 100;
    background-color: #f7f0eb;
    padding: 5px 0;
    align-items: center;
    border-bottom: 1px solid #6999c9;
}

.sb_header .flex_sb{
    align-items: center;
}

.sb_nav a {
    display: inline-block;
    color: #6999c9;
    font-weight: bold;
    position: relative;
    font-size: 14px;
    margin-left: 30px;
}

.sb_nav a::after {
    position: absolute;
    left: 0;
    content: '';
    width: 100%;
    height: 2px;
    background: #6999c9;
    bottom: -1px;
    transform: scale(0, 1);
    transform-origin: right top;
    /*変形（アンダーラインの伸長）の原点がaタグ（各メニュー）の右端*/
    transition: transform 0.3s;
    /*変形の時間*/
}

a:hover::after {
    transform: scale(1, 1);
    /*ホバー後、x軸方向に1（相対値）伸長*/
    transform-origin: left top;
    /*左から右に向かう*/
}

/* ---------------------------------- */


#buttons {
    text-align: center;
}


button {
    width: 18%;
    font-size: 1em;
    margin-right: 10px;
    display: block;
    color: #ffffff;
    padding: 10px 25px;
    background: #9FAFAA;
    border-radius: 20px;
    border: none;
    display: inline-block;
    cursor: pointer;
    font-weight: 800;
}

button a {
    font-size: 14px;

}

#buttons button:last-child {
    margin-right: 0;
}

button:focus {
    outline: none;
}



.filter_btn_red {
    background-color: #fc9e8b;
}

.filter_btn_green {
    background-color: #c8d39b;
}

.filter_btn_yellow {
    background-color: #e2c483;
}

.filter_btn_red:hover {}


/* ----------------------- */

#list {
    display: flex;
    gap: 40px;
    margin-top: 70px;
    flex-wrap: wrap;

}

#list li {
    width: calc((100% - 80px) /3);
    padding: 20px;
}



#list .text_date {
    color: #2e5e7e;
    font-size: 18px;
    margin-top: 15px;
}

#list .text_title {
    font-size: 16px;
    font-weight: 900;
    margin-top: 3px;
    padding-bottom: 5px;
    border-bottom: 1px solid #cec9c5;
}

#list .text_explanation {
    font-size: 14px;
    font-weight: 200;
    margin-top: 5px;
}

#list .text_annotation {
    font-size: 10px;
    margin-top: 8px;
}






/* ---------
event_box1
--------- */

.event_box1 {
    background-color: #fff;
    align-items: center;
    border: 2px solid #c8d39b;
    box-shadow: 0 0 3px -1px #cec9c5;
}


/* ---------
event_box2
--------- */
.event_box2 {
    background-color: #fff;
    align-items: center;
    border: 2px solid #fc9e8b;
    box-shadow: 0 0 3px -1px #cec9c5;
    text-align: center;
}


/* ---------
event_box3
--------- */

.event_box3 {
    background-color: #fff;
    border: 2px solid #e2c483;
    box-shadow: 0 0 3px -1px #cec9c5;
    text-align: center;
    align-items: center;
}




/* ----------- */
/* ボタンを下揃えにするための記述 */
#list li {
    display: flex;
    flex-direction: column;
}

/* ----------- */



.text_box {
    text-align: left;
    margin-bottom: 15px;
}

.btn_detail {
    margin-top: auto;
}

.btn_detail a {
    display: inline-block;
    padding: 5px 15px;
    border: 1px solid #443a36;
    border-radius: 20px;
    font-size: 11px;
    text-align: center;
    color: #443a36;
    transition: .3s;
    font-weight: 600;
    letter-spacing: 1px;
}

.btn_detail a:hover {
    padding: 5px 15px;
    border: 1px solid #443a36;
    background: #443a36;
    border-radius: 20px;
    font-size: 11px;
    text-align: center;
    margin-top: auto;
    color: #fff;
}



/* -------
戻るボタン
--------- */

.toTop {
    text-align: right;
    display: block;
}

.toTop img {
    cursor: pointer;
    opacity: 0.4;
    position: fixed;
    bottom: 2%;
    right: 3%;
    transition: all 0.3s;
}

.toTop img:hover {
    opacity: 1;
}

.logo_768 {
    display: none;
    margin-top: 15px;
}

@media screen and (max-width:768px) {

    .sb_header {
        display: none;
    }

    /* ----------ハンバーガー--------------- */
    .logo_768 {
        display: block;
        text-align: center;
        padding-top: 20px;
    }

    .logo_768 img{
        max-width: 90px;
        width: 100%;
    }

    .sb_header {
        display: none;
    }

    .sb_header {
        display: none;
    }

    #g-nav {
        display: block;
    }

    .hmb_nav .flex_sb {
        display: block;
    }

    /* ------------------ */

    .sb_header {
        display: none;
    }

    .hmb_nav a {
        display: inline-block;
        color: #6999c9;
        font-weight: bold;
        position: relative;
        font-size: 14px;
    }

    .hmb_nav a:hover {
        color: #fff;
    }

    /* ------------------ */




    #g-nav {
        /*position:fixed;にし、z-indexの数値を大きくして前面へ*/
        position: fixed;
        z-index: 999;
        /*ナビのスタート位置と形状*/
        top: -120%;
        left: 0;
        width: 100%;
        height: calc((100vh / 2) + 50px);
        /*ナビの高さ*/
        background: #cce5ff;
        border-radius: 0 0 60% 60%;
        /*動き*/
        transition: all 0.6s;
    }

    #g-nav.panelactive {
        top: 0;
    }

    /*アクティブクラスがついたら位置を0に*/
    #g-nav.panelactive {
        top: 0;
    }

    /*ナビゲーションの縦スクロール*/
    #g-nav.panelactive #g-nav-list {
        /*ナビの数が増えた場合縦スクロール*/
        position: fixed;
        z-index: 999;
        width: 100%;
        height: 100vh;
        /*表示する高さ*/
        overflow: auto;
        -webkit-overflow-scrolling: touch;
    }

    /*ナビゲーション*/
    #g-nav ul {
        /*ナビゲーション天地中央揃え*/
        position: absolute;
        z-index: 999;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
    }

    /*リストのレイアウト設定*/

    #g-nav li {
        list-style: none;
        text-align: center;
    }

    #g-nav li a {
        color: #6999c9;
        text-decoration: none;
        padding: 8px;
        display: block;
        text-transform: uppercase;
        letter-spacing: 0.1em;
        font-weight: bold;
    }



    /*========= ボタンのためのCSS ===============*/
    .openbtn1 {
        position: fixed;
        z-index: 9999;
        /*ボタンを最前面に*/
        top: 10px;
        right: 10px;
        cursor: pointer;
        width: 50px;
        height: 50px;
        /* border: 1px solid #f7f0eb; */
        border-radius: 50%;
        background-color: #6999c9;
    }

    /*×に変化*/
    .openbtn1 span {
        display: inline-block;
        transition: all .4s;
        position: absolute;
        left: 14px;
        height: 3px;
        border-radius: 2px;
        background-color: #f7f0eb;
        width: 45%;
    }

    .openbtn1 span:nth-of-type(1) {
        top: 15px;
    }

    .openbtn1 span:nth-of-type(2) {
        top: 23px;
    }

    .openbtn1 span:nth-of-type(3) {
        top: 31px;
    }

    .openbtn1.active span:nth-of-type(1) {
        top: 18px;
        left: 18px;
        transform: translateY(6px) rotate(-45deg);
        width: 30%;
    }

    .openbtn1.active span:nth-of-type(2) {
        opacity: 0;
    }

    .openbtn1.active span:nth-of-type(3) {
        top: 30px;
        left: 18px;
        transform: translateY(-6px) rotate(45deg);
        width: 30%;
    }

}

@media screen and (max-width:768px) {
    #list {
        display: block;
    }

    #list li {
        width: 300px;
        padding: 20px;
        margin: auto;
        margin-bottom: 30px;
    }

    button{
        width: 100%;
        font-size: 12px;
        margin-bottom: 15px;
    }

    #buttons {
        margin: 20px auto 0;
        display: inline-flex;
        flex-direction: column;
    }

    main{
        text-align: center;
    }

    .wrap{
        max-width: 1000px;
        width: calc(100% - 80px);
        margin: auto;
    }
    
    .fix_heder_wrap{
        max-width: 1000px;
        width: calc(100% - 80px);
        margin: auto;
    }
}