@charset "UTF-8";

/* ================================================ */
/* Base*/
/* ================================================ */

html {
    overflow: auto;
    scroll-behavior: smooth;
}

body {
    color: #6C1F1F;
    background-color: #fff;
    padding: 0;
    text-align: left;
    height: auto;
    font-size: 16px;
    font-family: 'Noto Sans JP', 'Yu Gothic Medium', '游ゴシック Medium', YuGothic, '游ゴシック体', 'ヒラギノ角ゴ Pro W3', 'メイリオ', sans-serif;
    overflow: hidden;
    position: relative;
}

/*++++++++++++++++++++++++++
	Link : Text
++++++++++++++++++++++++++*/
a {
    color: #6C1F1F;
}

/*++++++++++++++++++++++++++
	font
++++++++++++++++++++++++++*/

.gothic {
    font-family: 'Noto Sans JP', 'Yu Gothic Medium', '游ゴシック Medium', YuGothic, '游ゴシック体', 'ヒラギノ角ゴ Pro W3', 'メイリオ', sans-serif;
}

.mincho {
    font-family: 'Noto Serif JP', '游明朝', 'Yu Mincho', YuMincho, 'Hiragino Mincho Pro', serif;
}


/*++++++++++++++++++++++++++
	切り替え
++++++++++++++++++++++++++*/
@media screen and (min-width: 600px) {
    .pc {
        display: block;
    }

    .sp {
        display: none;
    }
}

@media screen and (max-width: 600px) {
    .pc {
        display: none;
    }

    .sp {
        display: block;
    }
}


/*++++++++++++++++++++++++++
共通
++++++++++++++++++++++++++*/
.clear_both {
    clear: both;
}

.indent {
    text-indent: -1em;
    padding-left: 1em;
}

.spacer50 {
    padding-bottom: 50px;
}

.spacer50 {
    padding-bottom: 50px;
}

h2 {
    color: #6C1F1F;
    font-size: clamp(30px, 4.6vw, 45px);
    text-align: center;
    font-weight: bold;
    border-bottom: 1px solid #6C1F1F;
    display: inline-block;
    margin: 0 auto 50px;
}

h2 span {
    font-size: clamp(14px, 4.6vw, 18px);
    font-weight: normal;
    display: block;
}

h3 {
    color: #6C1F1F;
    font-size: clamp(18px, 4.6vw, 22px);
    text-align: center;
    margin: 0 auto 10px;
}

h4 {
    color: #6C1F1F;
    font-size: clamp(16px, 4.6vw, 18px);
    text-align: left;
    margin: 0 auto 10px;
}




/*++++++++++++++++++++++++++
entry_btn
++++++++++++++++++++++++++*/
#entry_btn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: clamp(100px, 15vw, 170px);
    z-index: 100;
}

#entry_btn .entry_pc {
    display: block;
}

#entry_btn .entry_sp {
    display: none;
}

#entry_btn .entry_txt {
    text-align: center;
    margin: 20px 0 0;
}

@media screen and (max-width: 600px) {
    #entry_btn {
        position: fixed;
        bottom: 0;
        right: -1%;
        left: -1%;
        width: 102%;
    }

    #entry_btn .entry_pc {
        display: none;
    }

    #entry_btn .entry_sp {
        display: block;
        width: 100%;
    }

}

/*++++++++++++++++++++++++++
mainvisual
++++++++++++++++++++++++++*/
#mainvisual {
    width: 100%;
    aspect-ratio: 7 / 4;
    background-image: url(../images/main_pc.jpg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center center;
    background-color: #FEF338;
    position: relative;
}

#mainvisual .nbslogo {
    position: absolute;
    top: 3%;
    left: 3%;
    width: clamp(80px, 15vw, 160px);
}

#mainvisual .teikyo {
    position: absolute;
    bottom: 3%;
    right: 3%;
    font-size: clamp(13px, 4.6vw, 13px);
    color: #005DAB;
}




@media screen and (max-width: 600px) {
    #mainvisual {
        width: 100%;
        aspect-ratio: 390 / 705;
        background-image: url(../images/main_sp.png);
        background-size: cover;
        background-repeat: no-repeat;
        background-position: center center;
        background-color: #FEF338;
        position: relative;
    }

    #mainvisual .teikyo {
        bottom: 5%;
        left: 4%;
    }

}

/*++++++++++++++++++++++++++
menu
++++++++++++++++++++++++++*/
menu {
    width: 100%;
    position: fixed;
    padding: 0 0 0 160px;
    top: 20px;
    right: 20px;
    z-index: 20;
    display: block;
}

menu .menu_wrap {
    max-width: 700px;
    width: 95%;
    background-color: #fff;
    opacity: 0.9;
    padding: 10px 20px;
    margin: 0 0 0 auto;
    border-radius: 8px;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-around;
}

menu a.menu_link {
    width: 32%;
    font-size: clamp(12px, 1.6vw, 16px);
    text-align: center;
}

@media screen and (max-width: 600px) {
    menu {
        display: none;
    }
}





/*++++++++++++++++++++++++++
gaiyo
++++++++++++++++++++++++++*/
#gaiyo {
    width: 100%;
    background-image: url(../images/bk_yellow.svg);
    background-size: 100% auto;
    background-position: top 0px center;
    background-repeat: no-repeat;
    text-align: center;
    padding: 15% 0 0 0;
    position: relative;
}

#gaiyo .bk_enogu01 {
    display: block;
    position: absolute;
    top: -2%;
    left: -0%;
    width: clamp(100px, 40vw, 300px);
}

#gaiyo .bk_enogu02 {
    display: block;
    position: absolute;
    top: -1%;
    right: -1%;
    width: clamp(100px, 40vw, 500px);
}

#gaiyo .bk_enogu03 {
    display: block;
    position: absolute;
    top: 45%;
    left: -5%;
    width: clamp(150px, 30vw, 500px);
    z-index: -0;
}

#gaiyo .bk_enogu04 {
    display: block;
    position: absolute;
    top: 70%;
    right: 0%;
    width: clamp(80px, 30vw, 400px);
    z-index: 0;
}

#gaiyo .bk_enogu05 {
    display: block;
    position: absolute;
    top: 90%;
    left: -5%;
    width: clamp(150px, 30vw, 430px);
    z-index: -1;
}




/*--------------------------------------
    スライド
---------------------------------------*/
.slideinLeft {
    opacity: 0;
}

.slideinLeft.animate {
    opacity: 1;
    animation: slideinLeft 1.5s forwards;
    animation-iteration-count: 1;
}

@keyframes slideinLeft {
    0% {
        transform: translate(-100%, -100%);
    }

    100% {
        transform: translateX(0);
    }
}

.slideinRight {
    opacity: 0;
}

.slideinRight.animate {
    opacity: 1;
    animation: slideinRight 1.5s forwards;
    animation-iteration-count: 1;
}

@keyframes slideinRight {
    0% {
        transform: translate(100%, -100%);
    }

    100% {
        transform: translateX(0);
    }
}




@media screen and (max-width: 600px) {
    #gaiyo {
        background-position: top 0px center;
    }

    #gaiyo .bk_enogu01 {
        display: none;
    }

    #gaiyo .bk_enogu02 {
        display: none;
    }

    #gaiyo .bk_enogu03 {
        z-index: -1;
    }

    #gaiyo .bk_enogu04 {
        top: 50%;
        right: -10%;
        z-index: -1;
    }

    #gaiyo .bk_enogu05 {
        top: 75%;
        right: -10%;
    }
}


#gaiyo .gaiyo_midashi {
    max-width: 350px;
    width: 95%;
    margin: 0 auto 15px;
    background-color: #005DAB;
    color: #fff;
    font-size: clamp(18px, 4.6vw, 20px);
    font-weight: bold;
    padding: 10px;
    line-height: 1em;
    border-radius: 100vh;
}

#gaiyo .gaiyo_txt1 {
    width: 95%;
    margin: 0 auto 15px;
    color: #005DAB;
    font-size: clamp(25px, 4.6vw, 40px);
    font-weight: bold;
    line-height: 1.3em;
}

#gaiyo .gaiyo_txt1 span {
    font-size: clamp(20px, 4.6vw, 25px);
}

#gaiyo .gaiyo_txt2 {
    width: 95%;
    margin: 0 auto 15px;
    color: #005DAB;
    font-size: clamp(16px, 4.6vw, 18px);
    line-height: 1.8em;
}

#gaiyo .youtube {
    max-width: 800px;
    width: 95%;
    margin: 0 auto 50px;
    aspect-ratio: 16 / 9;
}

#gaiyo .youtube iframe {
    width: 100%;
    height: 100%;
}

#gaiyo .youtube p {
    text-align: right;
    font-size: 14px;
    margin: 5px 0 0 0;
}

rt {
    margin: 0 0 -10px;
}


/*++++++++++++++++++++++++++
nyusho
++++++++++++++++++++++++++*/
#nyusho {
    width: 100%;
    background-image: url(../images/bk_nami.svg);
    background-size: 100% auto;
    background-position: top 0px center;
    background-repeat: no-repeat;
    background-color: #FFF8E5;
    padding: 10% 0 10% 0;
    margin: 0 auto 0;
    text-align: center;
    position: relative;
}

#nyusho .illust01 {
    position: absolute;
    width: clamp(70px, 15vw, 180px);
    top: 80px;
    left: 10%;
}

#nyusho .illust02 {
    position: absolute;
    width: clamp(70px, 15vw, 190px);
    top: 80px;
    right: 10%;
}

#nyusho .nyusho_wrap {
    max-width: 1000px;
    width: 95%;
    margin: 0 auto 30px;
    padding: 20px;
    border-radius: 8px;
    background-color: #FFE3B7;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
    position: relative;
    align-items: center;
}

#nyusho .nyusho_wrap_left {
    width: 200px;
}

#nyusho .nyusho_wrap_right {
    width: 77%;
    text-align: left;
}

#nyusho .mark {
    width: clamp(130px, 15vw, 200px);
    margin: 0 auto 10px;
}

#nyusho .nyusho_wrap_txt1 {
    font-size: clamp(28px, 4.6vw, 40px);
    font-weight: bold;
    color: #6C1F1F;
    display: inline-block;
    margin: 0 0 20px;
}

#nyusho .nyusho_wrap_txt1 span {
    font-size: clamp(14px, 4.6vw, 16px);
    font-weight: normal;
    display: block;
    border-top: 1px solid #6C1F1F;
}

#nyusho .nyusho_wrap_txt2 {
    font-size: clamp(28px, 4.6vw, 38px);
    font-weight: bold;
    color: #6C1F1F;
    margin: 0 0 10px;
    text-indent: -1em;
    padding-left: 1em;
}

#nyusho .nyusho_wrap_txt2 span {
    font-size: clamp(14px, 4.6vw, 20px);
    font-weight: normal;
    padding-left: 1em;
}
#nyusho .nyusho_wrap_txt2 em {
    font-size: clamp(13px, 4.6vw, 15px);
    font-weight: normal;
    padding-left: 1em;
    display: block;
        padding-left: 2.2rem;
}

#nyusho .nyusho_wrap_txt3 {
    font-size: clamp(18px, 4.6vw, 28px);
    color: #6C1F1F;
    text-align: center;
}

#nyusho .shinkansen_photo {
    width: clamp(280px, 45vw, 460px);
    margin: 0 0 0;
}

#nyusho .shinkansen_photo p {
    font-size: 13px;
    text-align: right;
}

#nyusho .illust_book {
    position: absolute;
    width: clamp(90px, 15vw, 150px);
    bottom: 20px;
    right: 2%;
    display: block;
}

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


    #nyusho .nyusho_wrap_txt2 span {
        font-size: clamp(14px, 4.6vw, 20px);
        font-weight: normal;
        display: block;
        padding-left: 1em;
    }

}

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

    #nyusho .nyusho_wrap {
        flex-wrap: wrap;
    }


    #nyusho .nyusho_wrap_left {
        width: 100%;
    }

    #nyusho .nyusho_wrap_right {
        display: inline-block;
        text-align: left;
        margin: 0 auto;
        width: auto;
        max-width: 100%;
    }


    #nyusho .illust01 {
        top: 50px;
        left: 5%;
    }

    #nyusho .illust02 {
        top: 50px;
        right: 5%;
    }

    #nyusho .illust_book {
        display: none;
    }

}



/*++++++++++++++++++++++++++
tenji
++++++++++++++++++++++++++*/
#tenji {
    width: 100%;
    background-color: #FFF8E5;
    padding: 5% 0 5% 0;
    margin: 0 auto 0;
    text-align: center;
    position: relative;
}

#tenji .tenji_wrap {
    color: #6C1F1F;
    max-width: 1000px;
    width: 95%;
    margin: 0 auto 50px;
    padding: 0 0 0 0;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
}

#tenji .tenji_wrap>* {
    width: 49%;
    margin: 0 0 20px;
}

#tenji .tenji_wrap p {
    text-align: right;
    font-size: clamp(14px, 4.6vw, 15px);
}

#tenji .tenji_txt {
    width: 100%;
    text-indent: -1em;
    padding-left: 1em;
    font-size: clamp(16px, 4.6vw, 20px);
    margin: 0 0 10px;
    text-align: left;
}




/*++++++++++++++++++++++++++
apply
++++++++++++++++++++++++++*/
#apply {
    background-image: url(../images/bk_nami2.svg);
    background-size: 100% auto;
    background-position: bottom 0px center;
    background-repeat: no-repeat;
    width: 100%;
    background-color: #FFF8E5;
    padding: 5% 0 15% 0;
    margin: 0 auto 0;
    text-align: center;
    position: relative;
}

#apply .apply_wrap {
    color: #6C1F1F;
    max-width: 1000px;
    width: 95%;
    margin: 0 auto 50px;
    padding: 0 0 0 0;
}

#apply .apply_wrap p {
    text-align: left;
    margin: 0 auto 10px;
    padding: 0 0 0 0;
    line-height: 1.6em;
    font-size: 16px;
}

#apply .txt2 p {
    font-size: 15px;
}



/*++++++++++++++++++++++++++
movie
++++++++++++++++++++++++++*/
#movie {
    width: 100%;
    background-image: url(../images/bk_nami2.svg);
    background-size: 100% auto;
    background-position: bottom 0px center;
    background-repeat: no-repeat;
    background-color: #FFF8E5;
    padding: 0 0 13% 0;
    margin: 0 auto 0;
    text-align: center;
    position: relative;
}

#movie .youtube {
    max-width: 800px;
    width: 95%;
    margin: auto;
    aspect-ratio: 16 / 9;
}

#movie .youtube iframe {
    width: 100%;
    height: 100%;
}


/*++++++++++++++++++++++++++
entry
++++++++++++++++++++++++++*/
#entry {
    max-width: 1000px;
    width: 95%;
    padding: 5% 0 10% 0;
    margin: 0 auto 0;
    text-align: center;
    position: relative;
}

/*++++++++++++++++++++++++++
sponsor
++++++++++++++++++++++++++*/
#sponsor {
    max-width: 1100px;
    width: 95%;
    padding: 5% 0 10px 0;
    margin: 0 auto 0;
    text-align: left;
    position: relative;
}

#sponsor .inline {
    display: inline-block;
    margin: 0 20px 0 0;
}

#sponsor .sponsor_logo {
    display: flex;
    align-items: center;
    /* 縦中央揃え */
    gap: 10px;
    /* テキストと画像の間隔 */
    margin: 0 auto 15px;
    flex-wrap: nowrap;
    min-height: 40px;
    /* 高さをある程度揃える（必要に応じて調整） */
}

#sponsor .sponsor_logo span {
    color: #6C1F1F;
    font-size: clamp(14px, 4.6vw, 16px);
    white-space: nowrap;
    flex-shrink: 0;
    width: 5em;
}

#sponsor .tokudai img {
    max-width: 250px;
    /* 高さを統一する（必要なら調整） */
    height: auto;
    width: auto;
    display: block;
    border: 1px solid #e5e5e5;
}

#sponsor .dai img {
    max-width: 200px;
    /* 高さを統一する（必要なら調整） */
    height: auto;
    width: auto;
    display: block;
    border: 1px solid #e5e5e5;
}
#sponsor .small img {
    max-width: 110px;
    /* 高さを統一する（必要なら調整） */
    height: auto;
    width: auto;
    display: block;
    border: 1px solid #e5e5e5;
}

#sponsor .sponsor_txt1 {
    color: #6C1F1F;
    font-size: clamp(14px, 4.6vw, 16px);
    text-align: left;
    margin: 0 auto 0;
    padding: 0 0 10px;
}


#sponsor .sponsor_txt2 {
    font-size: 15px;
    line-height: 1.6em;
}

#sponsor .pagetop {
    display: block;
    margin: 50px auto;
    text-align: center;
}

#sponsor .sponsor_illust {
    max-width: 1000px;
    width: 95%;
    margin: 0 0 0;
}

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

#sponsor .sponsor_logo span {
    font-size: 14px;
}

#sponsor .sponsor_txt1 {
    font-size: 14px;
}


}




/*++++++++++++++++++++++++++
footer
++++++++++++++++++++++++++*/
footer {
    background-image: url(../images/footer_bk.svg);
    background-position: top -1px center;
    background-repeat: no-repeat;
    background-size: 100% auto;
    background-color: #69D1F0;
    width: 102%;
    padding: 8% 0 50px 0;
    margin: 0 0 0;
    text-align: center;
    position: relative;
    color: #ffffff;
}


footer .footer_nbslogo {
    margin: 0 auto 30px;
    width: clamp(80px, 15vw, 160px);
}


footer .footer_txt1 {
    font-size: clamp(18px, 4.6vw, 22px);
    margin: 0 auto 20px;
}

footer .footer_txt2 {
    font-size: clamp(14px, 4.6vw, 16px);
    margin: 0 auto 20px;
}

footer .footer_txt3 {
    font-size: clamp(10px, 4.6vw, 12px);
    margin: 0 auto 20px;
}

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

    footer {
        background-size: 100% auto;
        padding: 8% 0 150px 0;
    }

}







/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
    transition: 0.8s ease-in-out;
    transform: translateY(30px);
    opacity: 0;
}

.scroll_up.on {
    transform: translateY(0);
    opacity: 1.0;
}

.timing02 {
    transition-delay: .2s;
}

.timing03 {
    transition-delay: .4s;
}

.timing04 {
    transition-delay: .6s;
}

.timing05 {
    transition-delay: .8s;
}