@charset "utf-8";
/* CSS Document */



html,body{
  font-size:62.5%;/*16px × 62.5% = 10px*/
	font-weight: 500;
	font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
	color: #333;
}
h1,h2{
	font-weight: 700;
}

a{
	color: #333;
}

#wrapper{
	/*overflow: hidden;*/
	width: 100%;
	position: relative;
}

.over_hide{
	overflow: hidden;
}

.mincho{
	font-family: "游明朝体", YuMincho, "游明朝 Medium", "Yu Mincho Medium", "游明朝", "Yu Mincho", 'Noto Serif JP', sans-serif;
}

.en{
	font-family: 'Raleway', "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
}

.upper{
	text-transform: uppercase;
}

	.btn{
		width: 188px;
		height: 45px;
	}

	.btn a{
		display: block;
		background-color: #2ABCA2;
		font-size: 1.4rem;
		color: #fff;
		border: 1px solid #2ABCA2;
		border-radius: 23px;
		line-height: 45px;
		text-align: center;
		transition: all 0.3s ease 0s;
		    letter-spacing: 2px;
	}

	.btn a:hover{
		background-color: #fff;
		color: #2ABCA2;
	}
	/* Youtubeの埋め込み */

.movie-wrap {
	position: relative;
	padding-bottom: 56.25%; /*アスペクト比 16:9の場合の縦幅*/
	height: 0;
	overflow: hidden;
}

.movie-wrap iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}





/*------------------------------------------------------------------------
	PC
------------------------------------------------------------------------*/



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


	body{
		min-width: 1140px;
		letter-spacing: 0.03em;
	}

	.inner{
		width: 1340px;
		margin: 0 auto;
	}

	.inner2{
		width: 1240px;
		margin: 0 auto;
	}

	.inner3{
		width: 1140px;
		margin: 0 auto;
	}

	.pc_none{
		display: none;
	}

	.title{
		display: inline-block;
		border-top: 1px solid #707070;
		padding-top: 30px;
	}

	.title h2{
		font-size: 3.4rem;
		font-weight: 700;
	}

	.title h2,
	.title span{
		display: inline-block;
		letter-spacing: 2px;
	}

	.title span{
		font-size: 1.4rem;
		font-weight: 700;
		letter-spacing: 1.5px;
	}






/*--------------------------------------
	背景縦ライン
--------------------------------------*/
	.bg_line{
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: -3;
	}

	.bg_line *{
		width: 1px;
		height: 100%;
		background-color: #cecece;
		opacity: 0.35;
		position: absolute;
		top: 0;
	}

	.bg_line .line_1{
		left: 3.4%;
	}

	.bg_line .line_2{
		left: 26.8%;
	}

	.bg_line .line_3{
		left: 50%;
	}

	.bg_line .line_4{
		right: 26.8%;
	}

	.bg_line .line_5{
		right: 3.4%;
	}



/*--------------------------------------
	ローディング
--------------------------------------*/
	.loading{
		background-color: #5CB9A3;
		width: 100%;
		height: 100vh;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 999;
	}

	.loading>div{
		width: 180px;
		height: auto;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
	}

	.loading img{
		width: 180px;
		height: auto;
	}

	.loading .progress{
		background-color: rgba(255,255,255,0.4); /* #707070 */
		width: 100%;
		height: 1px;
		position: relative;
		margin-top: 35px;
	}

	.loading .progress div{
		content: "";
		display: block;
		background-color: #FFFFFF;
		width: 0%;
		height: 1px;
		position: absolute;
		top: 0;
		left: 0;
		transition: all 1.5s ease 0s;
	}

	.loading .progress div.start{
		width: 100%;
	}





/*--------------------------------------
	header
--------------------------------------*/
	header{
		box-shadow: 0 0 30px rgba(0,0,0,0.1);
		background-color: rgba(255,255,255,1);
		width: 100%;
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		z-index: 990;
		transition: all 0.3s ease 0s;
	}

	body.scroll header.menu_show,
	header.menu_show{
    background-color: transparent;
    box-shadow: none;
	}

	header .inner{
		display: flex;
		align-items: center;
		height: 100px;
		width: 90%;
	}

	header h1.logo{
		display: none;
	}

	header .logo,
	header .logo img{
		width: 180px;
		height: auto;
	}

	header a{
		transition: opacity 0.3s ease 0s;
	}

	header a:hover{
		opacity: 0.5;
	}

	/* js */
	header.menu_show nav{
		visibility: hidden;
	}

	header nav{
		visibility: visible;
		margin-left: auto;
		margin-right: 60px;
	}

	header nav ul{
		display: flex;
	}

	header nav ul li a{
		display: block;
		text-align: center;
		padding: 0 25px;
		letter-spacing: 0.2em;
	}

	header nav ul li a span{
		display: block;
		font-size: 1.2rem;
	}

	header nav ul li a span.en,
	#menu .right nav ul li a span.en{
		text-transform: uppercase;
	}


	header button.menu_btn{
		background-color: #2ABCA2;
		border: 1px solid #fff;
		border-radius: 50%;
		width: 50px;
		height: 50px;
		position: relative;
	}

	header button.menu_btn div{
		width: 20px;
		height: 10px;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
	}

	header button.menu_btn div::before,
	header button.menu_btn div::after{
		content: "";
		display: block;
		background-color: #fff;
		width: 20px;
		height: 1px;
		position: absolute;
		transition: all 0.3s ease 0s;
	}

	header button.menu_btn div::before{
		top: 0;
		left: 0;
	}

	header button.menu_btn div::after{
		bottom: 0;
		left: 0;
	}

	header button.menu_btn.click{
		background-color: #2ABCA2;
		border: 1px solid #fff;
	}

	header button.menu_btn.click div::before,
	header button.menu_btn.click div::after{
		background-color: #fff;
		top: 50%;
		left: 50%;
		bottom: auto;
	}

	header button.menu_btn.click div::before{
		transform: translate(-50%,-50%) rotate(45deg);
	}

	header button.menu_btn.click div::after{
		transform: translate(-50%,-50%) rotate(-45deg);
	}


	header .nav_first {
	  position: relative;
	}
	header nav_first a {
	  transition: all 0.2s ease;
	  display: block;
	}
	header .nav_first a:hover {
	  transition: all 0.2s ease;
	}

	body.no_scroll 	header  .nav_second li a{
		background-color:transparent;

	}

      header .nav_second {
	  visibility: hidden;
	  opacity: 0;
	  z-index: 1;
	  position: absolute;
	  top: 40px;
	  width: 100%;
	  transition: all 0.2s ease;
	  display:block;
	}

	header .nav_second li a {
	  display: block;
	  transition: all 0.2s ease;
	  padding:10px 0;
      background-color:#fff;
	}

	header .nav_second li a:hover {
	  transition: all 0.2s ease;
      opacity:1;
      background-color:#eee;
	}

	header .nav_first:hover .nav_second {
	  top: 69px;
	  visibility: visible;
	  opacity: 1;
	}






/*--------------------------------------
	menu
--------------------------------------*/
	#menu{
		display: none;
		width: 100%;
		height: 100vh;
		background-color: rgba(0,0,0,0.5);
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		z-index: 980;
	}

	#menu *{
		color: #707070;
	}

	#menu a{
		transition: opacity 0.3s ease 0s;
	}

	#menu a:hover{
		opacity: 0.5;
	}

	#menu .m_container{
		width: 100%;
		max-width: 561px;
		height: 100vh;
		padding-top: 13%;
		background-color: #fff;
		z-index: 1000;
		margin-left: auto;
		position: relative;
	}
	

        #menu .m_container .left{
                width: 100%;
	        background-color: #2ABCA2;
		position: relative;
	        padding-top: 18px;
		padding-bottom: 18px;
		color: #fff;
        }

	#menu .left p.c_name{
		font-size: 1.4rem;
		font-weight: 700;
	}

	#menu .left p{
		font-size: 1.1rem;
		margin-bottom: 5px;
	}

	#menu .left .sns{
		display: flex;
	}

	#menu .left .sns .img_wrap,
	#menu .left .sns .img_wrap img{
		width: 20px;
		height: auto;
	}

	#menu .left .sns .img_wrap{
		margin: 20px 10px 40px 0;
	}

	#menu .left a.privacy{
		display: block;
    font-size: 0.9rem;
    position: absolute;
    bottom: 50px;
    left: 50%;
    transform: translateX(-50%);
	}

	#menu .right nav ul{
		display: flex;
		flex-wrap: wrap;
		width: 600px;
	}

	#menu .right nav ul li{
		width: 177px;
		margin: 0 0 37px 82px;
	}

	#menu .right nav ul li:nth-of-type(even){
		margin-left: 48px;
	}

	#menu .right nav ul li a{
		display: block;
	}

	#menu .right nav ul li a span{
		display: block;
	}

	#menu .right nav ul li a span.en{
		font-size: 2.3rem;
    	font-weight: 600;
    	letter-spacing: 2px;
	}

	#menu .right nav ul li a span.ja{
		font-size: 2rem;
	}

	#menu .c_info{
		display: flex;
		justify-content: space-between;
	    width: 330px;
    margin: 10% 0 0 125px;
	}

	#menu small{
		display: block;
		font-size: 0.9rem;
		position: absolute;
		bottom: 10px;
		left: 50%;
		transform: translateX(-50%);
	}






/*--------------------------------------
	ページトップ
--------------------------------------*/
	.page_top{
		opacity: 0;
		visibility: hidden;
		width: 50px;
		height: 50px;
		border-radius: 50%;
		overflow: hidden;
		position: fixed;
		right: 5px;
		bottom: 5px;
		transition: all 0.3s ease 0s;
	}

	.page_top.show{
		opacity: 1;
		visibility: visible;
	}

	.page_top:hover{
		opacity: 0.5;
	}

	.page_top a{
		display: block;
		background-color: rgba(205,205,205,0.80);
		width: 100%;
		height: 100%;
	}

	.page_top a::after{
		content: "";
		display: block;
		width: 15px;
		height: 15px;
		border-left: 5px solid #fff;
		border-top: 5px solid #fff;
		position: absolute;
		top: 40%;
		left: 50%;
		transform: translateX(-50%) rotate(45deg);
	}

	/*--------------------------------------
	footer お問い合わせ
	--------------------------------------*/
	.f_contact{
		margin-bottom: 223px;
		width: 100%;
		max-width: 949px;
		padding: 0 10px;
		display: flex;
    	justify-content: space-between;
    	flex-wrap: wrap;
    	padding-left: 200px;
	}

	.f_contact .title_en h2{
		margin-bottom: 45px;
	}

	.f_contact .title_en span.bg_text {
		top: -0.7em;
	}

	/*--------------------------------------
		footer
	--------------------------------------*/
	footer .flex{
		display: flex;
		color: #fff;
	}

	footer .left{
		width: 38%;
		min-width: 542px;
		background-color: #2ABCA2;
		position: relative;
		padding-top: 171px;
		padding-bottom: 18px;
	}

	footer .left::before{
		content: '';
		display: block;
		background-color: #2ABCA2;
		position: absolute;
		width: 100%;
		top: -97px;
		right: 0;
	}

	footer .img_wrap{
		width: 211px;
		margin: auto;
		display: block;
	}

	footer .img_wrap img{
		width: 100%;
	}

	footer .text{
		width: 100%;
		padding-top: 20px;
	}

	footer .c_info{
		display: flex;
		max-width: 300px;
		width: 100%;
		margin: auto;
	}

	footer .c_name{
		font-size: 1.4rem;
		font-weight: 700;
		padding-right: 20px;
	}

	footer .ad{
		margin-bottom: 41px;
	}

	footer .ad p{
		font-size: 0.9rem;
		margin-bottom: 10px;
	}

	footer small{
		text-align: center;
		display: block;
	}

	footer .right{
		width: 62%;
		min-width: 898px;
		background-color: #417C72;
		padding: 56px 0 18px 40px;
	}

	footer .right nav{
		max-width: 758px;
		width: 100%;
	}

	footer a{
		color: #fff;
	}

	footer .nav_first{
		display: flex;
		justify-content: space-between;
		margin-bottom: 100px;
		letter-spacing: 0.2em;
	}

	footer .nav_first li>a{
		padding-bottom: 15px;
		display: block;
	}

	footer .nav_first li a .en,
	footer .nav_first li a .ja{
		font-size: 1.2rem;
		display: block;
		text-transform: uppercase;
		text-align: center;
	}

	footer .nav_second{
		padding-top: 15px;
		border-top: 1px solid #B2B2B2;
	}

	footer .nav_second a{
		color: #B2B2B2;
	}

	footer .f_bottom{
		padding-top: 31px;
		border-top: 1px solid #B2B2B2;
		margin-left: 69px;
		max-width: 675px;
		width: 100%;
	}
	footer .f_bottom a{
		padding-right: 20px;
	}

}


@media screen and (min-width:1440px){
	footer .right nav{
		margin-left: 10%;
	}

	footer .f_bottom{
		margin-left: 10%;
	}
}

@media screen and (min-width: 768px){
.br-sp {display: none; }
}

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




/*------------------------------------------------------------------------
	SP
------------------------------------------------------------------------*/



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



	.inner,
	.inner2,
	.inner3{
		width: 95%;
		padding: 0 5px;
		margin: 0 auto;
	}

	.sp_none{
		display: none;
	}

	.title::before{
		content: "";
		display: block;
		width: 185px;
		height: 1px;
		background-color: #707070;
		position: absolute;
		top: 0;
		left: 0;
	}

	.title{
		position: relative;
		padding-top: 30px;
	}

	.title h2{
		font-size: 2.4rem;
		font-weight: 700;
		letter-spacing: 2px;
	}

	.title span{
		font-size: 1.4rem;
		font-weight: 700;
		letter-spacing: 1.5px;
	}

	.btn{
		width: 188px;
		height: 45px;
	}

	.btn a{
		display: block;
		background-color: #2ABCA2;
		font-size: 1.4rem;
		color: #fff;
		border: 1px solid #2ABCA2;
		border-radius: 23px;
		line-height: 45px;
		text-align: center;
		transition: all 0.3s ease 0s;
	}

	.btn a:hover{
		background-color: #fff;
		color: #2ABCA2;
	}


/*--------------------------------------
	背景縦ライン(SP)
--------------------------------------*/
	.bg_line{
		width: 100%;
		height: 100%;
		position: absolute;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: -3;
	}

	.bg_line *{
		width: 1px;
		height: 100%;
		background-color: #cecece;
		opacity: 0.35;
		position: absolute;
		top: 0;
	}

	.bg_line .line_1{
		left: 5%;
	}

	.bg_line .line_2{
		left:35%;
	}

	.bg_line .line_3{
		right: 35%;
	}

	.bg_line .line_5{
		right: 5%;
	}



/*--------------------------------------
	ローディング(SP)
--------------------------------------*/
	.loading{
		background-color: #5CB9A3;
		width: 100%;
		height: 100vh;
		position: fixed;
		top: 0;
		right: 0;
		bottom: 0;
		left: 0;
		z-index: 999;
	}

	.loading>div{
		width: 180px;
		height: auto;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
	}

	.loading img{
		width: 180px;
		height: auto;
	}

	.loading .progress{
		background-color: rgba(112,112,112,0.4); /* #707070 */
		width: 100%;
		height: 1px;
		position: relative;
		margin-top: 35px;
	}

	.loading .progress div{
		content: "";
		display: block;
		background-color: #fff;
		width: 0%;
		height: 1px;
		position: absolute;
		top: 0;
		left: 0;
		transition: all 1.5s ease 0s;
	}

	.loading .progress div.start{
		width: 100%;
	}




/*--------------------------------------
	header(SP)
--------------------------------------*/
	header{
		box-shadow: 0 0 30px rgba(0,0,0,0.1);
		background-color: rgba(255,255,255,1);
		width: 100%;
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		z-index: 990;
		transition: all 0.3s ease 0s;
	}

	/* js */
	body.scroll header.menu_show,
	header.menu_show{
		background-color: #fff;
		box-shadow: none;
	}

	header .inner{
		display: flex;
		align-items: center;
		height: 60px;
	}

	header h1.logo{
		display: none;
	}

	header .logo,
	header .logo img{
    	width: 170px;
    	height: auto;
    	margin: 0px 0 0px -5px;
	}

	header a{
		transition: opacity 0.3s ease 0s;
	}

	header a:hover{
		opacity: 0.5;
	}

	header nav{
		display: none;
	}

	#menu .right nav ul li a span.en{
		text-transform: uppercase;
	}


	header button.menu_btn{
		background-color: #2ABCA2;
		border: 1px solid #fff;
		border-radius: 50%;
		width: 50px;
		height: 50px;
		position: relative;
		margin-left: auto;
	}

	header button.menu_btn div{
		width: 20px;
		height: 10px;
		position: absolute;
		top: 50%;
		left: 50%;
		transform: translate(-50%,-50%);
	}

	header button.menu_btn div::before,
	header button.menu_btn div::after{
		content: "";
		display: block;
		background-color: #fff;
		width: 20px;
		height: 1px;
		position: absolute;
		transition: all 0.3s ease 0s;
	}

	header button.menu_btn div::before{
		top: 0;
		left: 0;
	}

	header button.menu_btn div::after{
		bottom: 0;
		left: 0;
	}

	header button.menu_btn.click{
		background-color: #2ABCA2;
		border: 1px solid #fff;
	}

	header button.menu_btn.click div::before,
	header button.menu_btn.click div::after{
		background-color: #fff;
		top: 50%;
		left: 50%;
		bottom: auto;
	}

	header button.menu_btn.click div::before{
		transform: translate(-50%,-50%) rotate(45deg);
	}

	header button.menu_btn.click div::after{
		transform: translate(-50%,-50%) rotate(-45deg);
	}




/*--------------------------------------
	menu(SP)
--------------------------------------*/
#menu{
	display: none;
	width: 100%;
	height: 100vh;
	background-color: rgba(0,0,0,0.5);
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 980;
}

#menu *{
	color: #707070;
}

#menu a{
	transition: opacity 0.3s ease 0s;
}

#menu a:hover{
	opacity: 0.5;
}

#menu .m_container{
	width: 100%;
	max-width: 561px;
	height: 100vh;
	padding: 40% 0 0;
	background-color: #fff;
	z-index: 1000;
	margin-left: auto;
	position: relative;
	overflow: auto;
}


#menu .m_container .left{
 	width: 100%;
	background-color: #2ABCA2;
        position: relative;
        padding-top: 18px;
	padding-bottom: 18px;
	color: #fff;
}

#menu .left p.c_name{
	font-size: 1.4rem;
	font-weight: 700;
}

#menu .left p{
	font-size: 1.1rem;
	margin-bottom: 5px;
}

#menu .left .sns{
	display: flex;
}

#menu .left .sns .img_wrap,
#menu .left .sns .img_wrap img{
	width: 20px;
	height: auto;
}

#menu .left .sns .img_wrap{
	margin: 20px 10px 40px 0;
}

#menu .left a.privacy{
	display: block;
	font-size: 0.9rem;
	text-align: center;
	margin-top: 30px;
}

#menu .right nav ul{
	display: flex;
	flex-wrap: wrap;
}

#menu .right nav ul li{
	width: 50%;
	margin-bottom: 30px;
}

#menu .right nav ul li a{
	display: block;
}

#menu .right nav ul li a span{
	display: block;
}

#menu .right nav ul li a span.en{
	font-size: 2.3rem;
		font-weight: 600;
		letter-spacing: 2px;
}

#menu .right nav ul li a span.ja{
	font-size: 2rem;
}

#menu .c_info{
	display: flex;
	justify-content: space-between;
	width: 320px;
	margin: 40% auto 0;
	align-items: center;
}

#menu small{
	display: block;
	font-size: 0.9rem;
	text-align: center;
	padding-top: 20px;
}








/*--------------------------------------
	ページトップ(SP)
--------------------------------------*/
	.page_top{
		opacity: 0;
		visibility: hidden;
		width: 40px;
		height: 40px;
		border-radius: 50%;
		overflow: hidden;
		position: fixed;
		right: 0px;
		bottom: 0px;
		transition: all 0.3s ease 0s;
	}

	.page_top.show{
		opacity: 1;
		visibility: visible;
	}

	.page_top:hover{
		opacity: 0.5;
	}

	.page_top a{
		display: block;
		background-color: rgba(205,205,205,0.80);
		width: 100%;
		height: 100%;
	}

	.page_top a::after{
		content: "";
		display: block;
		width: 10px;
		height: 10px;
		border-left: 3px solid #fff;
		border-top: 3px solid #fff;
		position: absolute;
		top: 40%;
		left: 50%;
		transform: translateX(-50%) rotate(45deg);
	}

	/*--------------------------------------
	footer お問い合わせ
	--------------------------------------*/
	.f_contact{
		max-width: 604px;
		padding: 0 10px;
		margin-bottom: 60px;
	}

	.f_contact .title_en{
		margin-bottom:100px;
	}

	.f_contact .title_en h2{
		margin-bottom: 45px;
	}

	.f_contact .title_en span.bg_text {
		top: -0.7em;
	}


	/*--------------------------------------
		footer(SP)
	--------------------------------------*/
	footer .left{
		width: 100%;
		background-color: #2ABCA2;
		position: relative;
		padding-top: 35px;
		padding-bottom: 18px;
		color: #fff;
	}

	footer .img_wrap{
		width: 211px;
		margin: auto;
		display: block;
	}

	footer .img_wrap img{
		width: 100%;
	}

	footer .text{
		width: 100%;
		padding-top: 17px;
	}

	footer .c_info{
		display: flex;
    justify-content: center;
		max-width: 330px;
		width: 100%;
		margin: 0 auto;
	}

	footer .c_name{
		font-size: 1.4rem;
		font-weight: 700;
		padding-right: 20px;
	}

	footer .ad{
		margin-bottom: 41px;
	}

	footer .ad p{
		font-size: 0.9rem;
		margin-bottom: 10px;
		letter-spacing: 1px;
	}
	footer .lang{
		margin-bottom:10px;
		text-align:center;
	}
	footer .lang a{
    font-size: 1.5rem;
		color:#fff;
	}

	footer small{
		text-align: center;
		display: block;
	}

	footer .right{
		display: none;
	}



}




















