@charset "utf-8";

/* ------------------------------
index-sec-works
------------------------------ */
.index-sec-works .sec_ttl{
    text-align: center;
    font-size: 1.8rem;
    font-weight: 700;
    margin-bottom: 30px;
}
.index-sec-works .keyword_list_wrap{
    display: flex;
    justify-content: center;
    align-items: flex-start;
}
.index-sec-works .keyword_list_wrap li{
    width: 12%;
    max-width: 120px;
    margin-bottom: 8px;
}
.index-sec-works .keyword_list_wrap li+li{ margin-left: 8px;}
.index-sec-works .keyword_list_wrap li a{
    display: block;
    text-align: center;
    font-size: 1.4rem;
    background: #e9e9e9;
    padding: 4px 5px 5px 5px;
    box-sizing: border-box;
    transition: .4s;
	word-break : break-all;
}
.index-sec-works .keyword_list_wrap li:hover a,
.index-sec-works .keyword_list_wrap li.current a{ background: #2d2d2d; color: #FFF;}

.index-sec-works .post_wrap.post-works{
    margin: 80px 0;
    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: 33vw;
    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{
    position: relative;
    padding: 40px 38px 65px 35px;
    box-sizing: border-box;
}
.post-works .post .post-txt:after{
    position: absolute;
    display: block;
    content: '';
    right: 25px;
    top: 50%;
    margin-top: -7px;
    width: 14px;
    height: 14px;
    border-top: 1px solid #2d2d2d;
    border-right: 1px solid #2d2d2d;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.post-works .post .post-txt .post-ttl{
    font-size: 1.8rem;
    font-weight: 700;
	word-break : break-all;
}
.post-works .post .post-txt .post-date{
    position: relative;
    font-size: 1.2rem;
    margin-top: 5px;
	word-break : break-all;
}
.post_wrap.post-works .post:hover{
    background: #f2f2f2;
}
.post_wrap.post-works .post:hover .post-img{
    opacity: .7;
}

@media screen and (max-width : 768px){
    .post-works .post .post-img{ height: 51vw;}
}
@media screen and (max-width : 767px){
    .index-sec-works .sec_ttl{
        font-size: 3.75vw;
        margin-bottom: 6%;
    }
    .index-sec-works .keyword_list_wrap{
        flex-wrap: wrap;
    }
    .index-sec-works .keyword_list_wrap li{
        width: 32%;
        max-width: inherit;
        margin: 2px;
    }
    .index-sec-works .keyword_list_wrap li+li{ margin-left: 2px;}
    .index-sec-works .keyword_list_wrap li a{
        font-size: 3.333vw;
        padding: 4px 5px 5px 5px;
    }

    .index-sec-works .post_wrap.post-works{ margin: 8% 0;}
    .post_wrap.post-works .post{
        width: 49.5%;
        margin: 0 1% 1% 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: 67.6vw;
    }
    .post-works .post.new .post-img:before{
        left: 6%;
        width: 9vw;
        height: 11vw;
    }
    .post-works .post .post-txt{
        padding: 8% 30% 20% 8%;
        box-sizing: border-box;
    }
    .post-works .post .post-txt:after{
        right: 6%;
        top: 50%;
        margin-top: -1.3vw;
        width: 2.6vw;
        height: 2.6vw;
    }
    .post-works .post .post-txt .post-ttl{
        font-size: 3.75vw;
        letter-spacing: 0;
    }
    .post-works .post .post-txt .post-date{
        font-size: 3.125vw;
        left: 8%;
        bottom: 16%;
    }

}

/* ------------------------------
sec-works_detail
------------------------------ */
.sec-works_detail .main_img{
    position: relative;
    height: 44vw;
    z-index: 1;
}

.sec-works_detail .post-head{
    position: relative;
    top: -55px;
    width: 92%;
    max-width: 1030px;
    margin: 0 auto;
    background: #FFF;
    padding: 60px 20px;
    box-sizing: border-box;
    z-index: 2;
}
.sec-works_detail .post-head .post-ttl{
    text-align: center;
    font-size: 2.6rem;
    font-weight: 700;
    margin-bottom: 20px;
	word-break : break-all;
}
.sec-works_detail .post-head .post-subttl{
    text-align: center;
    font-size: 1.6rem;
}
.sec-works_detail .post-head .keyword_list{
    margin-top: 35px;
    margin-bottom: 30px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
}
.sec-works_detail .post-head .keyword_list li{
    width: 13%;
    max-width: 120px;
    font-size: 1.4rem;
    letter-spacing: 0;
    background: #e9e9e9;
    text-align: center;
    padding: 2px 3px 4px 3px;
    margin-bottom: 4px;
    box-sizing: border-box;
	word-break : break-all;
}
.sec-works_detail .post-head .keyword_list li+li{ margin-left: 6px;}

.sec-works_detail .post-head p{
    text-align: center;
    font-size: 1.6rem;
    line-height: 1.875;
	word-break : break-all;
}
.gallery_wrap{ margin-bottom: 90px;}
.gallery_wrap h2{ margin-bottom: 30px;}

.gallery_wrap .gallery_before,
.gallery_wrap .gallery_after{
    display: flex;
    flex-wrap: wrap;
}
.gallery_wrap .gallery_before a,
.gallery_wrap .gallery_after a{
    position: relative;
    display: block;
    width: 33%;
    max-width: 390px;
    height: 270px;
    margin-right: .5%;
    margin-bottom: .5%;
    transition: .4s;
}
.gallery_wrap .gallery_before a:before,
.gallery_wrap .gallery_after a:before{
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
    display: block;
    content: '';
    background: url("../img/works/ico_popup.png") no-repeat center center;
    background-size: 100% auto;
    width: 51px;
    height: 51px;
    opacity: 0;
    transition: .4s;
}

.gallery_wrap .gallery_before a:nth-of-type(3n),
.gallery_wrap .gallery_after a:nth-of-type(3n){ margin-right: 0;}

.gallery_wrap .gallery_before a:hover,
.gallery_wrap .gallery_after a:hover{
    opacity: .7;
}
.gallery_wrap .gallery_before a:hover:before,
.gallery_wrap .gallery_after a:hover:before{
    opacity: 1;
}

/* mfp-content */

.mfp-bg{
    background: rgba(0,0,0,.8);
}
.mfp-container {
    padding-left: 60px;
    padding-right: 60px;
}
img.mfp-img{
    padding: 0 0 40px 0 !important;
}
.mfp-counter{
    margin-top: 25px;
    text-align: center;
    left: 0;
    font-size: 1.5rem;
    font-weight: 500;
}
.mfp-close{
    top: -55px;
    width: 32px !important;
    height: 44px;
    margin: 0 0 20px 0;
    opacity: 1;
    z-index: 99 !important;
    cursor: pointer !important;
}
.mfp-close:before,
.mfp-close:after{
    display: block;
    content: '';
    width: 25px;
    height: 2px;
    background: #FFF;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);

}
.mfp-close:after{
    margin-top: -2px;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

.gallery-arrow{
  position: absolute;
  top: 50%;
  margin-top: -15px;
  display: block;
  width: 20px;
  height: 20px;
  text-align: center;
  line-height: 20px;
  cursor: pointer;
}
.gallery-arrow-left{
  left: 50%;
}
.gallery-arrow-left:before{
    display: block;
    content: '';
    width: 16px;
    height: 16px;
    border-bottom: 2px solid #FFF;
    border-left: 2px solid #FFF;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.gallery-arrow-right{
  right: 50%;
}
.gallery-arrow-right:before{
    display: block;
    content: '';
    width: 16px;
    height: 16px;
    border-top: 2px solid #FFF;
    border-right: 2px solid #FFF;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}

.mfp-fade01.mfp-wrap .mfp-content {
	opacity: 0;
	transition: all 0.4s ease-out;
}
.mfp-fade01.mfp-wrap.mfp-ready .mfp-content {
	opacity: 1;
}
.mfp-fade01.mfp-wrap.mfp-removing .mfp-content {
	opacity: 0;
}

.sec-works_detail .btn_wrap{
    margin: 0 auto 90px auto;
    width: 100%;
    max-width: 290px;
}
.sec-works_detail .btn_wrap .btn{
    max-width: inherit;
    font-size: 1.8rem;
    padding: 17px 5px 21px 5px;
}


@media screen and (max-width : 767px){
    .sec-works_detail .main_img{
        position: relative;
        width: 92%;
        margin: 0 auto;
        height: auto;
        z-index: 1;
    }
    .sec-works_detail .post-head{
        top: 0;
        width: 92%;
        max-width: inherit;
        margin: 5% auto 14% auto;
        padding: 0;
    }
    .sec-works_detail .post-head .post-ttl{
        text-align: left;
        font-size: 5.833vw;
        margin-bottom: 4%;
    }
    .sec-works_detail .post-head .post-subttl{
        text-align: left;
        font-size: 3.75vw;
    }
    .sec-works_detail .post-head .keyword_list{
        margin-top: 5%;
        margin-bottom: 5%;
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    .sec-works_detail .post-head .keyword_list li{
        width: auto;
        max-width: inherit;
        font-size: 3.75vw;
        padding: 2px 10px 4px 10px;
        margin-bottom: 2px;
    }
    .sec-works_detail .post-head .keyword_list li+li{ margin-left: 2px;}

    .sec-works_detail .post-head p{
        text-align: left;
        font-size: 3.75vw;
        letter-spacing: 0;
    }
    .gallery_wrap{ margin-bottom: 10%;}
    .gallery_wrap h2{ margin-bottom: 5%;}

    .gallery_wrap .gallery_before,
    .gallery_wrap .gallery_after{
        display: flex;
        flex-wrap: wrap;
    }
    .gallery_wrap .gallery_before a,
    .gallery_wrap .gallery_after a{
        width: 33%;
        max-width: inherit;
        height: 20vw;
    }
    .gallery_wrap .gallery_before a:before,
    .gallery_wrap .gallery_after a:before{
        width: 6vw;
        height: 6vw;
    }


    /* mfp-content */
    .mfp-container {
        padding: 12% 6%;
    }
    img.mfp-img{
        width: 100%;
        padding: 0 !important;
    }
    .mfp-bottom-bar{ margin-top: 3vw;}
    .mfp-counter{
        margin-top: 0;
        font-size: 3.75vw;
    }
    .mfp-close{
        top: -9vw;
        width: 7vw !important;
        height: 8vw;
        margin: 0;
    }
    .mfp-close:before,
    .mfp-close:after{
        width: 6vw;
    }
    .mfp-close:after{
        margin-top: -2px;
    }
    .mfp-figure:after{ display: none;}
    .gallery-arrow{
      margin-top: 0;
        margin-left: 0 !important;
        margin-right: 0 !important;
        top: 50%;
      width: 4vw;
      height: 4vw;
      line-height: 4vw;
      z-index: 9999;
    }
    .gallery-arrow-left{
      left: 7%;
    }
    .gallery-arrow-left:before{
        width: 2.4vw;
        height: 2.4vw;
    }
    .gallery-arrow-right{
      right: 7%;
    }
    .gallery-arrow-right:before{
        width: 2.4vw;
        height: 2.4vw;
    }

    .sec-works_detail .btn_wrap{
        margin: 0 auto 14% auto;
        width: 68%;
        max-width: inherit;
    }
    .sec-works_detail .btn_wrap .btn{
        font-size: 3.75vw;;
        padding: 14px 5px 18px 5px;
    }
}

@media screen and (max-width : 414px){
    .mfp-container {
        padding: 6% 6%;
    }
    .gallery-arrow{
        top: 50%;
    }
}
