@charset "utf-8";



/* ------------------------------
mv
------------------------------ */
#mv{
	position: relative;
    margin-bottom: 55px;
    z-index: 2;
}
#mv .inner{
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    height: 100%;
    z-index: 5;
}
#mv .mv-img{
    width: 100%;
    max-width: 1386px;
    margin: 0 auto;
}
#mv .mv_txt_wrap{
    position: absolute;
    bottom: -80px;
    left: 0;
    right: 0;
    margin: 0 auto;
    width: 100%;
    max-width: 1500px;
    display: flex;
    justify-content: space-between;
    z-index: 2;
}
#mv .mv_txt_wrap p:last-of-type{ margin-top: 50px;}


@media screen and (max-width : 1024px){
    #mv .mv_txt_wrap p img{
        width: 100%;
        height: auto;
    }
    #mv .mv_txt_wrap p{
        width: 60%;
        max-width: 820px;
    }
    #mv .mv_txt_wrap p:last-of-type {
        width: 30%;
        max-width: 367px;
    }

}
@media screen and (max-width : 767px){
    #mv{
        width: 92%;
        margin: 0 auto 10% auto;
    }
    #mv .inner{
        position: absolute;
        left: 0;
        right: 0;
        top: 0;
        bottom: 0;
        margin: auto;
        height: 100%;
        z-index: 5;
    }
    #mv .mv-img{
        width: 100%;
    }
    #mv .mv_txt_wrap{
        bottom: -14%;
        max-width: inherit;
        display: block;
    }
    #mv .mv_txt_wrap p{
        width: 100%;
        max-width: 860px;
    }
    #mv .mv_txt_wrap p:last-of-type {
        width: 55%;
        max-width: 367px;
        margin: 0 0 0 auto;
    }
    #mv .mv_txt_wrap p:last-of-type{ margin-top: 55%;}

}

/* ------------------------------
front_wrap
------------------------------ */
.front_wrap{ margin-bottom: 65px;}

.front_wrap .front_slider div{
    margin: 0 7px;
}
.front_wrap .front_slider img{
    width: 100%;
    height: auto;
}

@media screen and (max-width : 767px){
    .front_wrap{ margin-bottom: 10%;}
    .front_wrap .front_slider div{
        margin: 0 2px;
    }
}
/* ------------------------------
index-sec-event
------------------------------ */
.index-sec-event{
    padding: 90px 0 45px 0;
    background: #e9e9e9;
    box-sizing: border-box;
}
.index-sec-event .inner{
    display: flex;
    align-items: flex-start;
}
.index-sec-event .sec_ttl_wrap{
    width: 12%;
    max-width: 130px;
}
.sec_ttl_wrap .sec_ttl span{
    display: block;
    margin-top: 20px;
    font-size: 1.4rem;
    font-weight: 700;
}
.index-sec-event .sec_ttl_wrap .btn_wrap{
    margin-top: 40px;
}

.index-sec-event .post_wrap{
    width: 88%;
    padding-left: 120px;
    display: flex;
    flex-wrap: wrap;
    box-sizing: border-box;
}
.post-event.post_wrap .post{
    width: 50%;
    margin-bottom: 55px;

}
.post-event.post_wrap .post a{
    display: flex;
    transition: .4s;
}
.post-event.post_wrap .post a:hover{ opacity: .7;}

.post-event.post_wrap .post .post-img{
    width: 40%;
    max-width: 183px;
    height: 141px;
}
.post-event.post_wrap .post .post-txt{
    width: 60%;
    padding:0 25px;
    box-sizing: border-box;
}
.post .post-cat{
    display: inline-block;
    text-align: center;
    font-size: 1.4rem;
    color: #FFF;
    background: #2d2d2d;
    padding: 4px 8px 5px 8px;
    margin-bottom: 13px;
    box-sizing: border-box;
	word-break : break-all;
}
.post .post-date,
.post .post-time,
.post .post-location{
    font-size: 1.4rem;
    line-height: 1.714;
	word-break : break-all;
}

@media screen and (max-width : 767px){
    .index-sec-event{
        padding: 12% 0 1% 0;
    }
    .index-sec-event .inner{
        display: block;
    }
    .index-sec-event .sec_ttl_wrap{
        width: 100%;
        max-width: inherit;
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 10%;
    }
    .sec_ttl_wrap .sec_ttl{
        width: 69%;
    }
    .sec_ttl_wrap .sec_ttl span{
        margin-top: 4%;
        font-size: 3.333vw;
    }
    .index-sec-event .sec_ttl_wrap .btn_wrap{
        margin-top: 0;
    }

    .index-sec-event .post_wrap{
        width: 100%;
        padding-left: 0;
        display: block;
    }
    .post-event.post_wrap .post{
        width: 100%;
        margin-bottom: 12%;
    }

    .post-event.post_wrap .post .post-img{
        width: 40%;
        max-width: inherit;
        height: 28vw;
    }
    .post-event.post_wrap .post .post-txt{
        width: 60%;
        padding:0 0 0 4%;
        box-sizing: border-box;
    }
    .post .post-cat{
        display: inline-block;
        font-size: 2.917vw;
        padding: 4px 8px 7px 8px;
        margin-bottom: 7px;
    }
    .post .post-date,
    .post .post-time,
    .post .post-location{
        font-size: 3.333vw;
    }
    .post-event.post_wrap .post:nth-last-of-type(2),
    .post-event.post_wrap .post:last-of-type{ display: none;}
}

/* ------------------------------
index-sec-works
------------------------------ */
.index-sec-works{
    padding: 90px 0 90px 0;
}

.index-sec-works .sec_ttl_wrap{
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 50px;
}
.index-sec-works .sec_ttl{}
.index-sec-works .btn_wrap{
    width: 32%;
    max-width: 130px;
}

.index-sec-works .post_wrap.post-works{
    display: flex;
    flex-wrap: wrap;
}
.post_wrap.post-works .post{
    width: calc(98.5% / 4);
    margin: 0 .5% .5% 0;
    transition: .4s;
}
.post_wrap.post-works .post:nth-of-type(4n){ margin-right: 0;}

.post-works .post .post-img{
    position: relative;
    height: 304px;
    transition: .4s;
}
.post-works .post.new .post-img:before{
    position: absolute;
    left: 25px;
    top: 0;
    display: block;
    content: '';
    background: url("../img/top/ico_new.png") no-repeat center center;
    background-size: 100% auto;
    width: 51px;
    height: 60px;
}

.post-works .post .post-txt{
    padding: 20px 20px 40px 20px;
    box-sizing: border-box;
}
.post-works .post .post-txt .post-ttl{
    font-size: 1.4rem;
    font-weight: 700;
	word-break : break-all;
}
.post-works .post .post-txt .post-date{
    font-size: 1.2rem;
    margin-top: 5px;
}
.post_wrap.post-works .post:hover{
    background: #f2f2f2;
}
.post_wrap.post-works .post:hover .post-img{
    opacity: .7;
}
@media screen and (max-width : 767px){
    .index-sec-works{
        padding: 12% 0 4% 0;
    }

    .index-sec-works .sec_ttl_wrap{
        align-items: flex-start;
        margin-bottom: 10%;
    }

    .index-sec-works .btn_wrap{
        width: 31%;
        max-width: inherit;
    }

    .post_wrap.post-works .post{
        width: 49%;
        margin: 0 2% 4% 0;
    }
    .post_wrap.post-works .post:nth-of-type(4n){ margin-right: 2%;}
    .post_wrap.post-works .post:nth-of-type(2n){ margin-right: 0;}
    .post-works .post .post-img{
        height: 33.6vw;
    }
    .post-works .post.new .post-img:before{
        left: 6%;
        width: 9vw;
        height: 11vw;
    }
    .post-works .post .post-txt{
        padding: 4% 3%;
        box-sizing: border-box;
    }
    .post-works .post .post-txt .post-ttl{
        font-size: 3.125vw;
        letter-spacing: 0;
    }
    .post-works .post .post-txt .post-date{
        font-size: 3.125vw;
        margin-top: 2px;
    }


}
/* ------------------------------
index-sec-news
------------------------------ */
.index-sec-news{
    padding: 195px 0 200px 0;
    background: #2d2d2d;
    box-sizing: border-box;
}
.index-sec-news .sec_ttl_wrap .sec_ttl span{ color: #FFF;}
.index-sec-news .inner{
    display: flex;
    justify-content: space-between;
}

.index-sec-news .sec_ttl_wrap{
    width: 103px;
}
.index-sec-news .post-news{
    width: calc(88% - 103px);
    padding-left: 15%;
    padding-right: 4%;
    box-sizing: border-box;
}

.post-news .post{
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
}
.post-news .post+.post{ margin-top: 13px;}
.post-news .post .post-date{
    margin-right: 20px;
    width: 140px;
    text-align: right;
}
.post-news .post .post-date,
.post-news .post .post-ttl{
    color: #FFF;
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.714;
	word-break : break-all;
}
.post-news .post .post-ttl:hover{ text-decoration: underline;}
.post-news .post.new .post-date{
    position: relative;
    box-sizing: border-box;
}
.post-news .post.new .post-date:before{
    position: absolute;
    top: 3px;
    left: 0;
    display: inline-block;
    vertical-align: middle;
    margin-right: 20px;
    content: '';
    background: url("../img/top/ico_new02.png") no-repeat center center;
    background-size: 100% auto;
    width: 30px;
    height: 17px;
}
.post-news .post .post-ttl{
    width: calc(100% - 140px);
}
.index-sec-news .btn_wrap.pc{
    display: flex !important;
    align-items: flex-end;
    width: 12%;
    max-width: 130px;
}

@media screen and (max-width : 767px){
    .index-sec-news{
        padding: 12% 0 16% 0;
    }

    .index-sec-news .inner{
        display: block;
    }
    .index-sec-news .sec_ttl_wrap{
        width: auto;
        display: flex;
        justify-content: space-between;
        align-items: flex-start;
        margin-bottom: 10%;
    }
    .index-sec-news .post-news{
        width: 100%;
        padding-left: 0;
        padding-right: 0;
    }
    .post-news .post{
        position: relative;
        display: block;
        border-bottom: 1px solid #FFF;
        padding-bottom: 3%;
        padding-right: 7%;
        box-sizing: border-box;
    }
    .post-news .post:after{
        position: absolute;
        right: 1%;
        top: 50%;
        transform: translateY(-100%);
        display: block;
        content: '>';
        font-size: 3.75vw;
        color: #FFF;
        font-weight: 700;
    }

    .post-news .post+.post{ margin-top: 3%;}
    .post-news .post .post-date{
        margin-right: 0;
        padding-left: 0;
        width: 100%;
        font-size: 2.917vw !important;
        text-align: left;
    }

    .post-news .post .post-date,
    .post-news .post .post-ttl{
        font-size: 3.75vw;
    }
    .post-news .post .post-ttl{
        display: block;
        width: 100%;
        max-width: 100%;
        letter-spacing: 0;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    .post-news .post.new .post-date:before{
        display: none;
    }
    .index-sec-news .btn_wrap.sp{
        width: 31%;
        max-width: inherit;
    }
    .index-sec-news .btn_wrap.pc{
        display: none !important;
    }

}

/* ------------------------------
index-sec-about
------------------------------ */
.index-sec-about{
    position: relative;
    background: url("../img/top/bg_about.jpg") no-repeat center center;
    background-size: cover;
    padding: 96px 0;
    box-sizing: border-box;
}
.index-sec-about .box{
    position: relative;
    width: 52%;
    max-width: 561px;
    padding: 65px 40px;
    background: #FFF;
    box-sizing: border-box;
}
.index-sec-about .box h2{
    text-align: center;
    font-size: 4.2rem;
    letter-spacing: -.35rem;
    line-height: 1.73;
    margin: 0 -10px 30px -10px;
}
.index-sec-about .box .text01{
    text-align: center;
    font-size: 1.6rem;
    line-height: 1.875;
}
.index-sec-about .box .text02{
    text-align: center;
    margin-top: 25px;
    padding-top: 25px;
    border-top: .5px solid #2d2d2d;
    font-size: 1.4rem;
    line-height: 2.14;
    box-sizing: border-box;
}

.index-sec-about .box .btn_wrap{
    position: absolute;
    left: 0;
    right: 0;
    bottom: -25px;
    margin: 0 auto;
}
.index-sec-about .box .btn_wrap .btn{
    max-width: 384px;
    font-size: 1.8rem;
    padding: 18px 5px 20px 5px;
    margin: 0 auto;
}

@media screen and (max-width : 767px){
    .index-sec-about{
        background: url("../img/top/bg_about_sp.jpg") no-repeat center top;
        background-size: 100% auto;
        padding: 55% 0 6% 0;
    }
    .index-sec-about .box{
        position: relative;
        width: 100%;
        max-width: inherit;
        margin: 0 auto;
        padding: 10% 6.5%;
    }
    .index-sec-about .box h2{
        font-size: 5vw;
        letter-spacing: 0;
        margin: 0 -10px 5% -10px;
    }
    .index-sec-about .box .text01{
        font-size: 3.333vw;
        line-height: 1.875;
    }
    .index-sec-about .box .text02{
        margin-top: 4%;
        padding-top: 4%;
        line-height: 1.875;
        font-size: 3.333vw;
    }

    .index-sec-about .box .btn_wrap{
        position: relative;
        bottom: 0;
        margin: 8% auto 0 auto;
    }
    .index-sec-about .box .btn_wrap .btn{
        width: 80%;
        max-width: inherit;
        font-size: 2.917vw;
        padding: 3.5vw 15px 3.8vw 15px;
    }

}




