@charset "utf-8";
/* **********************
  全体
********************** */
html{
    font-size: 62.5%;
    box-sizing: border-box;
}

*, *:before, *:after {
  box-sizing: inherit;
}

body{
	font-family: 'Montserrat', sans-serif;
	-webkit-text-size-adjust: none;
    font-size: 18px;
    font-size: 1.8rem;
    color: #000;
    line-height: 1.5;
}

h1, h2, h3, h4, h5, h6{
    color: #000;
}

/* Clearfix */
.clearfix {
 *zoom: 1;
}
.clearfix:before, .clearfix:after {
	display: table;
	content: "";
	line-height: 0;
}
.clearfix:after {
	clear: both;
}

a{
    color: #000;
}

img{vertical-align: bottom;}


.container{
    width: 1200px;
    margin: auto;
}

.inner{
    padding: 0 100px;
}

main{
    display: block;
    background: #fff;
    padding-top: 100px;
    padding-bottom: 130px;
}


.arrow{
    width: 60px;
    height: 2px;
    background: #fff;
    display: inline-block;
    vertical-align: middle;
    position: relative;
    margin-left: 20px;
    position: absolute;
    bottom: 10px;
}

.arrow:after{
    content: "";
    height: 20px;
    width: 2px;
    background: #fff;
    transform: rotate(132deg);
    position: absolute;
    right: 7px;
    bottom: -2px;
}


@keyframes arrowAnimate {
  0%   {width: 60px;}
  50%  {width: 80px;}
  100% {width: 60px;}
}

p{
    line-height: 1.8;
}

.more_btn{
    text-align: center;
    margin-top: 50px;
}

.more_btn a{
    position: relative;
    font-size: 2.2rem;
    font-weight: 600;
    text-decoration: none;
    min-width: 300px;
    padding: 20px 10px;
    display: inline-block;
    border-image: linear-gradient(to left, #66cdaa 0%, #7fffd4 100%);
    border-image-slice: 1;
    border-width: 5px;
    border-style: solid;
    box-sizing: content-box;
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    transition: all 0.3s ease-in;
}


.more_btn a:after{
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    border-image: linear-gradient(to left, #ffd700 0%, #f4a460 100%);
    border-image-slice: 1;
    border-width: 5px;
    border-style: solid;
    left: -15px;
    top: -15px;
    transition: all 0.3s ease-in-out;
}

.more_btn a:hover{
    background: #d8fef1;
    color: #000;
    
}

.more_btn a:hover:after{
    background: rgba(245,176,37, 0.3);
}

.firstLetter{
    color: #f4a460;
}


@media only screen and (max-width: 1024px){
    .container{
        width: 100%;
    }
    
    .inner{
        padding: 0;
    }
    
    .sp_inner{
        padding-left: 3%;
        padding-right: 3%;
    }
    
}

@media only screen and (max-width: 767px){
    html {
        font-size: 50.5%;;
    }
}


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

header{
    position: relative;
}

header:after{
    content: "";
    position: absolute;
    width: 100%;
    height: 4px;
    background: url(../assets/images/gradient_border.png) no-repeat center bottom;
    background-size: 100% 100%;
    bottom: 0;
}

header .container{
    position: relative;
}

header .menu_wrap{
    position: absolute;
    right: 0;
    top: 40px;
}

header .menu_btn{
    width: 100px;
    height: 100px;
    background: #000;
    border-radius:50px;
    overflow: hidden;
    text-align: center;
    color: #fff;
    font-size: 1.2rem;
    padding-top: 23px;
    cursor: pointer;
}

header .menu_btn span{
    width: 30px;
    height: 4px;
    background: #fff;
    display: block;
    margin: 5px auto auto;
}

header .menu_wrap .menu_nav{
    position: absolute;
    right: 0;
    top: 0;
    background: #fff;
    z-index: 10;
    width: 230px;
    overflow: hidden;
    display: none;
}

header .menu_wrap .menu_nav nav{
    padding: 20px 30px 30px 30px;
    width: 230px;
}

header .menu_wrap nav ul{
    padding: 0;
    list-style: none;
    margin: 70px 0 0 0;
    clear: both;
}

header .menu_wrap nav .close{
    float: right;
    font-size: 1.2rem;
    display: inline-block;
    text-align: center;
    cursor: pointer;
    padding-bottom: 13px;
}

header .menu_wrap nav .close span{
    width: 27px;
    height: 2px;
    background: #000;
    display: block;
    margin: auto;
}

header .menu_wrap nav .close span:nth-child(1){
    transform: rotate(45deg);
    position: relative;
    margin-top: 11px;
}

header .menu_wrap nav .close span:nth-child(2){
    transform: rotate(135deg);
    margin-top: -1px;
}
header .menu_wrap nav ul li{
    margin: 30px 0;
}

header .menu_wrap nav ul li a{
    text-decoration: none;
    font-weight: 700;
    font-size: 2.4rem;
    color: #000;
}

header .menu_wrap nav ul li span,
header .menu_wrap nav ul li a:hover{
    color: #f4a460;
    font-weight: 700;
    font-size: 2.4rem;
}

header .scroll{
    -webkit-transform: rotate(90deg);
    -moz-transform: rotate(90deg);
    -ms-transform: rotate(90deg);
    -o-transform: rotate(90deg);
    font-size: 3rem;
    font-weight: 600;
    display: inline-block;
    color: #fff;
    position: absolute;
    right: -30px;
    top: 520px;
}

header .scroll .arrow{
    margin-left: 20px;
    position: absolute;
    bottom: 21px;
    left: 85px;
    animation: arrowAnimate 2s infinite ease-in-out;
}


.subpage .main_visual{
    height: 400px;
    background: url(../assets/images/img_main_under.png) no-repeat center;
    background-size: cover;
}

.subpage .main_visual .bigTtl{
    color: #fff;
    font-size: 10rem;
    padding: 230px 0 0 0;
    margin: 0;
    font-weight: 600;
    line-height: 1.5;
}

.subpage .main_visual .bigTtl span{
    color: #f4a460;
}


@media only screen and (max-width: 1024px){
    header .scroll{
        display: none;
    }
    
    header .menu_wrap{
        right: 3%;
    }
    
    .subpage .main_visual .bigTtl{
        font-size: 10vw;
    }
}

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

    .subpage .main_visual{
        background: url(../assets/images/img_main_sp.png) no-repeat center;
        background-size: cover;
        padding-bottom: 10vw;
        height: auto;
    }
    
    .subpage .main_visual h1{
        padding-top: 15vw;
    }
}



/* **********************
  フッター
********************** */
footer .contact_area{
    background: url(../assets/images/bg_contact.png) no-repeat center;
    background-size: cover;
    padding: 110px 0;
    text-align: center;
}

footer .contact_area h2{
    text-align: center;
    font-size: 7rem;
    font-weight: 600;
    position: relative;
    padding-bottom: 35px;
    margin: 0 auto 30px auto;
}

footer .contact_area h2:after{
    content: "";
    background: url(../assets/images/ttl_border.png) no-repeat center;
    width: 120px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

footer .contact_area h2 .firstLetter{
    font-size: 8.2rem;
}

footer .contact_area h2 .subTtl{
    display: block;
    font-size: 2rem;
}

footer .footer_main{
    background: #000 url(../assets/images/gradient_border.png) no-repeat center top;
    background-size: 100% auto;
    padding-top: 4px;
    color: #fff;
    text-align: center;
}

footer .footer_main .container{
    padding-top: 90px;
    padding-bottom: 90px;
}

footer .footer_main .company{
    font-size: 2.4rem;
    font-weight: bold;
}

footer .footer_main .address{
    font-size: 1.5rem;
}

footer .footer_main .copyright{
    font-size: 1.4rem;
}

/* **********************
  記事一覧
********************** */
.article_list > div{
    display: block;
    border-bottom: 1px solid #cccccc;
    padding: 30px 0;
    font-size: 0;
}

.article_list > div a{
    text-decoration: none;
    color: #000;
}

.article_list > div a:hover{
    text-decoration: underline;
}

.article_list > div .img,
.article_list > div .txt{
    display: inline-block;
    vertical-align: top;
}

.article_list > div .img{
    width: 100px;
    height: 60px;
    position: relative;
    margin-right: 30px;
    margin-top: 5px;
}

.article_list > div .img a:hover{
    opacity: 0.6;
}

.article_list > div .img img{
    position: absolute;
    height: 60px;
    width: auto;
    max-width: initial;
    left: -50%;
    right: -50%;
    top: 0;
    bottom: 0;
    margin: auto;
}

.article_list > div .txt{
    width: calc(100% - 130px);
    font-size: 1.6rem;
}

.article_list > div .txt .date,
.article_list > div .txt .cat{
    font-size: 1.4rem;
}

.article_list > div .txt .cat a{
    color: #f4a460;
}

.article_list > div .txt p{
    margin: 8px 0 0 0;
}

.article_list > div .txt .tag_list{
    padding: 0;
    margin: 0;
    list-style: none;
}

.article_list > div .txt .tag_list li{
    display: inline-block;
    margin-right: 10px;
}

.article_list > div .txt .tag_list li a{
    font-size: 1.3rem;
    color: #f4a460;
}

.article_list > div .txt .tag_list li a:hover{
    text-decoration: underline;
}



/* **********************
  固定ページ
********************** */


.single-page .page-content h1{
    text-align: center;
    font-size: 4rem;
    font-weight: 600;
    position: relative;
    padding-bottom: 35px;
    margin: 0 auto 50px auto;
}

.single-page .page-content h1:after{
    content: "";
    background: url(../assets/images/ttl_border.png) no-repeat center;
    width: 120px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

.single-page .page-content .bordered{
    position: relative;
    font-weight: bold;
    font-size: 2.4rem;
    padding: 0 90px;
    display: inline;
}

.single-page .page-content .bordered:before{
    content: "";
    width: 100%;
    height: 1px;
    background: #000;
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

.single-page .page-content .bordered span{
    background: #fff;
    display: inline-block;
    position: relative;
    padding: 0 10px;
}

.single-page .page-content p.big{
    font-size: 2.2rem;
    font-weight: bold;
}

main.single-page{
    padding-top: 0;
    padding-bottom: 0;
}

.single-page .page-content section{
    padding-top: 90px;
    padding-bottom: 90px;
}

.animate_cont{
    opacity: 0;
}

.animate_cont.fade_in{
    position: relative;
    top: 50px;
    transition: all 0.5s ease-in;
}

.animate_cont.fade_in_left{
    position: relative;
    left: -50px;
    transition: all 0.5s ease-in;
}

.animate_cont.fade_in_left{
    position: relative;
    right: -50px;
    transition: all 0.5s ease-in;
}

.animate_cont.fade_in.on{
    -webkit-animation: 2s bottom_to_top ease-in-out forwards;
    animation: 2s bottom_to_top ease-in-out forwards;
}

.animate_cont.fade_in_left.on{
    -webkit-animation: 2s left_to_right ease-in-out forwards;
    animation: 2s left_to_right ease-in-out forwards;
}

.animate_cont.fade_in_right.on{
    -webkit-animation: 2s right_to_left ease-in-out forwards;
    animation: 2s right_to_left ease-in-out forwards;
}

@keyframes bottom_to_top{
    0% {
        opacity: 0;
        top: 50px;
    }
    100% {
        opacity: 1;
        top: 0;
    }
}

@keyframes left_to_right{
    0% {
        opacity: 0;
        left: -50px;
    }
    100% {
        opacity: 1;
        left: 0;
    }
}

@keyframes right_to_left{
    0% {
        opacity: 0;
        right: -50px;
    }
    100% {
        opacity: 1;
        right: 0;
    }
}


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

    .single-page .page-content .bordered{
        padding: 0 10%;
    }
}

/* aboutus */
#aboutus .container{
    padding-left: 100px;
    padding-right: 100px; 
}

#aboutus table{
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 80px;
}

#aboutus table th,
#aboutus table td{
    border: 1px solid #cccccc;
    vertical-align: middle;
    padding: 25px 50px;
    text-align: left;
}

#aboutus table th{
    background: #000;
    color: #fff;
    font-weight: 600;
    width: 250px;
}

#aboutus table td{
    font-size: 1.6rem;
}

#aboutus table td ul{
    padding: 0;
    margin-left: 15px;
    margin-bottom: 0;
}

#aboutus table td ul li{
    margin-bottom: 10px;
}

#aboutus iframe{
    border: 1px solid #cccccc;
}


@media only screen and (max-width: 1024px){
    #aboutus .container{
        padding-left: 3%;
        padding-right: 3%;
    }

}

@media only screen and (max-width: 767px){
    #aboutus .container{
        padding-left: 3%;
        padding-right: 3%;
    }
    
    #aboutus table th, #aboutus table td{
        padding: 4%;
    }
    
    #aboutus table th{
        width: 30%;
    }
    
}



/* service */
#service .page-content .container{
    text-align: center;
}

.service_list{
    display: flex;
    flex-wrap: wrap;
}

.service_list > div{
    flex: 1 0 48%;
    margin-top: 5%;
    border: 1px solid #cccccc;
    padding-bottom: 20px;
}

.service_list > div:nth-child(2n){
    margin-left: 4%;
}

.service_list > div img{
    width: 100%;
    height: auto;
}

.service_list > div p{
    padding: 0 50px;
    text-align: left;
}

.service_list > div p.big{
    padding: 0;
    text-align: center;
}


#service .voice{
    background: #f1f1f1;
    overflow-x: hidden;
}

#service .voice h2{
    text-align: center;
    font-size: 7rem;
    font-weight: 600;
    position: relative;
    padding-bottom: 35px;
    margin: 0 auto 30px auto;
}

#service .voice h2:after{
    content: "";
    background: url(../assets/images/ttl_border.png) no-repeat center;
    width: 120px;
    height: 4px;
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
}

#service .voice h2 .firstLetter{
    font-size: 8.2rem;
    color: #f4a460;
}

#service .voice h2 .subTtl{
    display: block;
    font-size: 2rem;
}

#service .single_voice{
    font-size: 0;
    margin: 40px auto;
}

#service .single_voice .img,
#service .single_voice .txt{
    display: inline-block;
    vertical-align: middle;
}

#service .single_voice .img{
    width: 120px;
    margin-right: 40px;
}

#service .single_voice:nth-child(2n) .img{
    margin-right: 0;
    margin-left: 40px;
}

#service .single_voice .txt{
    width: calc(100% - 160px);
    background: #fff;
    font-size: 1.8rem;
    text-align: left;
    padding: 30px 40px;
    font-weight: bold;
    border-radius: 5px;
    position: relative;
}

#service .single_voice .txt:after {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: 0;
	height: 0;
    border: 13px solid transparent;
    border-right-color: #ffffff;
    border-left: 0;
    margin-top: -13px;
    margin-left: -13px;
}

#service .single_voice:nth-child(2n) .txt:after {
	content: '';
	position: absolute;
	right: 0;
	top: 50%;
	width: 0;
	height: 0;
	border: 13px solid transparent;
	border-left-color: #ffffff;
    border-right-color: transparent;
	border-right: 0;
	margin-top: -13px;
	margin-right: -13px;
    margin-left: initial;
    left: initial;
}

#service .single_voice .txt span{
    font-weight: normal;
}

@media only screen and (max-width: 767px){
    
    .service_list > div p,
    .service_list > div p.big{
        padding: 0 3%;
    }
    
    #service .single_voice .txt{
        padding: 5%;
    }

    .service_list,
    .service_list > div{
        display: block;
    }

    .service_list > div:nth-child(2n){
        margin-left: 0;
    }

}


/* contact */
#contact .page-content section{
    text-align: center;
}

#contact .wpcf7-form{
    padding: 0 100px;
    margin-top: 50px;
}

#contact .form_wrap{
    position: relative;
    border: 1px solid #cccccc;
    padding: 40px 40px 80px 40px;
}

#contact .form_wrap:before{
    content: "";
    background:#f4a460;
    width: 4px;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    margin: auto;
}

#contact .form_wrap table{
    width: 100%;
    font-size: 1.8rem;
}

#contact .form_wrap table th,
#contact .form_wrap table td{
    padding: 20px;
    vertical-align: middle;
}

#contact .form_wrap table th{
    width: 200px;
    text-align: right;
}

#contact .form_wrap table th span{
    font-size: 1.2rem;
    display: block;
    color: #cc0000;
}

#contact .form_wrap input[type="text"],
#contact .form_wrap input[type="email"],
#contact .form_wrap input[type="tel"],
#contact .form_wrap textarea{
    width: 100%;
    border: 1px solid #cccccc;
    font-size: 16px;
    padding: 10px;
}

#contact .form_wrap .submit_wrap{
    text-align: center;
    margin-top: 50px;
}

#contact .form_wrap .submit_wrap button{
    position: relative;
    font-size: 2.2rem;
    font-weight: 600;
    text-decoration: none;
    min-width: 300px;
    padding: 20px 10px;
    display: inline-block;
    border-image: linear-gradient(to left, #66cdaa 0%, #7fffd4 100%);
    border-image-slice: 1;
    border-width: 5px;
    border-style: solid;
    box-sizing: content-box;
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box;
    transition: all 0.3s ease-in;
    font-family: 'Montserrat', sans-serif;
    background: #fff;
}


#contact .form_wrap .submit_wrap button:after{
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    border-image: linear-gradient(to left, #ffd700 0%, #f4a460 100%);
    border-image-slice: 1;
    border-width: 5px;
    border-style: solid;
    left: -15px;
    top: -15px;
    transition: all 0.3s ease-in-out;
}

#contact .form_wrap .submit_wrap button:hover{
    background: #d8fef1;
    color: #000;
    
}

#contact .form_wrap .submit_wrap button:hover:after{
    background: rgba(245,176,37, 0.3);
}


@media only screen and (max-width: 767px){
    
    #contact .wpcf7-form {
        padding: 0;
    }

    #contact .form_wrap table table,
    #contact .form_wrap table th,
    #contact .form_wrap table tr,
    #contact .form_wrap table td,
    #contact .form_wrap table tbody{
        display: block;
        width: 100%;
        text-align: left;
    }

    #contact .form_wrap table th{
        padding: 0;
    }

    #contact .form_wrap table th span{
        display: inline-block;
        margin-left: 10px;
    }

    #contact .form_wrap table td{
        padding: 10px 0 30px 0;
    }

    #contact .form_wrap .submit_wrap button{
        min-width: 0;
        width: 80%;
        margin: auto;
        display: block;
    }

}


/* **********************
  サイドバー
********************** */
aside{
    width: 30%;
    float: right;
}

aside h4{
    position: relative;
    text-align: center;
    padding-bottom: 25px;
    font-size: 3rem;
    margin: 0;
}

aside h4:after{
    content: "";
    background: url(../assets/images/gradient_border.png) no-repeat center;
    background-size: 100% 100%;
    width: 100%;
    height: 4px;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    position: absolute;
}

aside .side_widget{
    margin-bottom: 100px;
}

aside .category_list{
    list-style: none;
    margin: 0;
    padding: 0;
}

aside .category_list li{
    display: block;
    border-bottom: 1px solid #ccc;
}

aside .category_list li a{
    padding: 15px 20px;
    color: #000;
    text-decoration: none;
    display: block;
}


@media only screen and (max-width: 767px){
    
    aside{
        float: none;
        width: 100%;
        margin-top: 100px;
    }

}


/* **********************
  アーカイブ
********************** */


.archive-blog section{
    width: 62%;
    float: left;
}

@media only screen and (max-width: 767px){
    
    .archive-blog section{
        float: none;
        width: 100%;
    }

}



/* **********************
  ブログページ
********************** */

.single-blog section{
    width: 62%;
    float: left;
}


.single-blog h1{
    font-size: 2.6rem;
}

.single-blog h2{
    font-size: 2.4rem;
    position: relative;
    padding-bottom: 20px;
}

.single-blog h2:after{
    content: "";
    background: url(../assets/images/gradient_border.png) no-repeat center;
    background-size: 100% 100%;
    width: 100%;
    height: 2px;
    bottom: 0;
    left: 0;
    right: 0;
    margin: auto;
    position: absolute;
}

.single-blog h3{
    font-size: 2.2rem;
}

.single-blog h3:before{
    content: "";
    width: 20px;
    height: 2px;
    background: #f4a460;
    display: inline-block;
    margin-right: 20px;
    vertical-align: middle;
    
}

.single-post .featured_img{
    margin-bottom: 30px;
}

.single-blog a{
    color: #f4a460;
    text-decoration: underline;
}

.single-blog p{
    font-size: 1.6rem;
}

.single-blog .date,
.single-blog .cat{
    font-size: 1.4rem;
}

@media only screen and (max-width: 767px){
    
    .single-blog section{
        float: none;
        width: 100%;
    }

}
