@charset "utf-8";


/*==================================================
  Common
==================================================*/
html{
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0;
}
/*
	12px：.75rem
	14px：.875rem
	16px：1rem
	18px：1.125rem
	20px：1.25rem
	24px：1.5rem
*/



body{
	font-family: 'Open Sans', 'Roboto', 'Noto Sans JP', 'メイリオ', Meiryo, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
	font-weight: 400;
	font-size: 1rem;
	line-height: 1.5;
	color: #333333;
	width: 100%;
	height: 100%;
	min-height: 100vh;
	margin: 0;
	padding: 0;
}
body.no-scroll{
	overflow: hidden;
}


img{
	border: none;
	vertical-align: bottom;
}


li{
	list-style: none;
}


a{
	text-decoration: none;
}




/*==================================================
  Wrapper
==================================================*/
#wrapper{
	background-color: #ffffff;
	width: 100%;
	min-height: 100vh;
	margin: 0;
	padding: 0;
	position: relative;
}


#loader{
	background-color: #ffffff;
	width: 100%;
	height: 100vh;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 9998;
}


#loader div{
	width: 80px;
	height: 80px;
	margin-top: -40px;
	margin-left: -40px;
	position: fixed;
	top: 50%;
	left: 50%;
	z-index: 9999;
}




/*==================================================
  Header
==================================================*/
header{
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}


.header_inner{
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	position: relative;
}


.logo{
	width: 300px;
	margin: 0;
	padding: 0;
	position: absolute;
	top: 20px;
	right: 20px;
}
.logo a{
	display: block;
	margin: 0;
	padding: 0;
}
.logo img{
	display: block;
	width: 100%;
	margin: 0;
	padding: 0;
}


.cover{
	width: 100%;
	margin: 0;
	padding: 0;
}
.cover img{
	width: 100%;
	margin: 0;
	padding: 0;
}




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

	.logo{
		width: 240px;
		top: 15px;
		right: 15px;
	}

}




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

	.logo{
		width: 100px;
		top: 5px;
		right: 5px;
	}

}




/*==================================================
  GrobalNavi
==================================================*/
#gnavi{
}




/*==================================================
  Main
==================================================*/
main{
	width: 100%;
	margin: 0;
	padding: 0;
}


section{
	width: 100%;
	margin: 0;
	padding: 50px 0;
}




/* Info */
.info_inner{
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
	box-sizing: border-box;
	text-align: center;
}


.info_inner h2{
	font-weight: 700;
	font-size: 2.5rem;
	line-height: 1.5;
	color: #000000;
	margin: 0;
	padding: 0 0 32px 0;
}


.info_inner p{
	font-weight: 400;
	font-size: 1.5rem;
	line-height: 1.5;
	margin: 0;
	padding: 8px 0;
}
.info_inner p span{
	font-weight: 700;
	color: #01448e;
	padding: 0;
}




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

	.info_inner{
		padding: 0 24px;
	}


	.info_inner h2{
		font-size: 2.25rem;
	}

}




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

	.info_inner h2{
		font-size: 1.25rem;
		padding: 0 0 24px 0;
	}


	.info_inner p{
		font-size: 1.0rem;
		padding: 4px 0;
	}

}




/* Movie */
#movie{
	width: 100%;
	margin: 0;
	padding: 0;
}


#movie h3{
	display: flex;
	align-items: center;
	max-width: 1000px;
	margin: 0 auto;
	padding: 16px 0;
	border-top: solid 1px #d2bca8;
	border-bottom: solid 1px #d2bca8;
}
#movie h3 img{
	width: 80px;
	margin: 0;
	padding: 0 16px;
	position: relative;
	top: 6px;
}
#movie h3 span{
	font-weight: 700;
	font-size: 1.75rem;
	line-height: 1.3;
	letter-spacing: 0.05em;
	color: #333333;
	padding: 0;
}


.movie_inner{
	background: linear-gradient(to bottom,
		transparent 50%,
		#f7f1eb 50%
	);
	width: 100%;
	margin: 0;
	padding: 8px 0;
}

.movie_inner .yt_wrap{
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
}

.movie_inner .yt_wrap iframe{
	aspect-ratio: 16 / 9;
	width: 100%;
	height: auto;
}




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

	#movie{
		padding: 0 10px;
		box-sizing: border-box;
	}

}




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

	#movie h3{
		padding: 10px;
	}
	#movie h3 img{
		width: 60px;
		padding: 0 10px 0 0;
	}
	#movie h3 span{
		font-size: 1.25rem;
		padding: 0;
	}

}




/* Flow */
#flow{
	background-color: #f7f1eb;
	width: 100%;
	margin: 0;
	padding: 8px 0 40px 0;
}


.flow_inner{
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
}


.flow_inner h3{
	background-color: #01448e;
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.5;
	color: #ffffff;
	margin: 0;
	padding: 8px;
	border-radius: 8px;
	text-align: center;
}

.flow_inner h4{
	background-color: #01448e;
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1.5;
	color: #ffffff;
	margin: 0;
	padding: 8px;
	border-radius: 8px;
	text-align: center;
}


.flow_box{
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 8px 0;
}
.flow_box img{
	width: calc(100% / 3);
	aspect-ratio: 1 / 1;
	margin: 0;
	padding: 0;
}




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

	.flow_inner{
		padding: 0 24px;
	}

}




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

	.flow_inner h4{
		font-size: 1.25rem;
	}

}




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

	.flow_inner{
		padding: 0 16px;
	}


	.flow_inner h3{
		font-size: 1.25rem;
	}

	.flow_inner h4{
		font-size: 1.0rem;
	}

}




/* Inquiry */
.footer_contact{
	background: url(../images/footer_contact_bg.jpg) no-repeat center center;
	background-size: cover;
	width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}


.footer_contact_overlay{
	background-color: rgba(255,255,255,.25);
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 60px 40px;
	box-sizing: border-box;
}


.footer_contact_inner{
	width: 100%;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0;
	text-align: center;
}


.footer_contact_inner h3{
	font-weight: 700;
	font-size: 2.0rem;
	line-height: 1.5;
	letter-spacing: 0.1em;
	color: #01448e;
	margin: 0;
	padding: 0;
}


.footer_contact_text{
	width: 100%;
	margin: 0;
	padding: 24px 0;
}
.footer_contact_text p{
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.5;
	color: #000000;
	margin: 0;
	padding: 4px 0;
}


.footer_contact_box{
	display: flex;
	flex-wrap: wrap;
	width: 100%;
	margin: 0;
	padding: 0;
	border: solid 2px #01448e;
	box-sizing: border-box;
}


.footer_contact_tel,
.footer_contact_email{
	width: 50%;
	margin: 0;
	padding: 24px;
	box-sizing: border-box;
}
.footer_contact_tel h4,
.footer_contact_email h4{
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.0;
	color: #01448e;
	margin: 0;
	padding: 4px 0;
}


.footer_contact_tel_num{
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	margin: 0;
	padding: 16px 0;
}
.footer_contact_tel_num a{
	display: inline-block;
	font-family: 'Josefin Sans';
	font-weight: 400;
	font-size: 2.6rem;
	line-height: 1.0;
	color: #01448e;
	margin: 0;
	padding: 0;
}
.footer_contact_tel_num i{
	font-size: 2.5rem;
	padding: 0 8px 0 0;
}
.footer_contact_tel_num a:hover{
	color: #ff6600;
}


.footer_contact_biz_hours{
	display: inline-block;
	font-weight: 700;
	font-size: .875rem;
	line-height: 1.0;
	color: #01448e;
	margin: 0;
	padding: 8px 32px;
	border: solid 1px #01448e;
}


.footer_contact_email_btn{
	margin: 0;
	padding: 16px 0 0 0;
}
.footer_contact_email_btn a{
	display: inline-block;
	font-weight: 700;
	font-size: 1.25rem;
	line-height: 1.0;
	color: #01448e;
	margin: 0;
	padding: 24px 48px;
	border: solid 1px #01448e;
}
.footer_contact_email_btn a i{
	font-size: 1.5rem;
	padding: 0 8px 0 0;
}
.footer_contact_email_btn a:hover{
	background-color: rgba(255,255,255,.5);
	color: #ff6600;
}




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

	.footer_contact_tel_num{
		padding: 8px 0;
	}
	.footer_contact_tel_num a{
		font-size: 2.2rem;
	}
	.footer_contact_tel_num i{
		font-size: 2rem;
		padding: 0 8px 0 0;
	}
	.footer_contact_biz_hours{
		font-size: .875rem;
		padding: 8px 16px;
	}

	.footer_contact_email_btn{
		padding: 8px 0 0 0;
	}
	.footer_contact_email_btn a{
		font-size: 1rem;
		padding: 24px 32px;
	}
	.footer_contact_email_btn a i{
		font-size: 1.25rem;
		padding: 0 8px 0 0;
	}

}




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

	.footer_contact_overlay{
		padding: 48px 24px;
	}
	.footer_contact_inner h3{
		font-size: 1.25rem;
	}
	.footer_contact_text{
		padding: 16px 0;
	}
	.footer_contact_text p{
		font-size: 1.0rem;
	}

	.footer_contact_tel,
	.footer_contact_email{
		width: 100%;
	}
	.footer_contact_email{
		border-top: dotted 2px rgba(255,255,255,.4);
	}

}


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

	.footer_contact_tel_num a{
		font-size: 2rem;
	}
	.footer_contact_tel_num i{
		font-size: 1.75rem;
	}
	.footer_contact_biz_hours{
		font-size: .75rem;
	}

	.footer_contact_email_btn a{
		font-size: .875rem;
		padding: 24px;
	}
	.footer_contact_email_btn a i{
		font-size: 1rem;
	}

}




/*==================================================
  Footer
==================================================*/
footer{
	background-color: #01448e;
	width: 100%;
	margin: 0;
	padding: 0;
	position: relative;
	bottom: 0;
	left: 0;
}


.footer_inner{
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 40px;
	box-sizing: border-box;
}


.footer_info{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	width: 100%;
	margin: 0;
	padding: 0;
}


.footer_info_company{
	width: 50%;
	margin: 0;
	padding: 0;
}

.footer_info_company .footer_logo{
	display: inline-block;
	width: 300px;
	margin: 0;
	padding: 0 0 16px 0;
}
.footer_info_company .footer_logo img{
	width: 100%;
}

.footer_info_company h3{
	font-weight: 700;
	font-size: 16px;
	line-height: 1.0;
	color: #ffffff;
	width: 300px;
	margin: 0;
	padding: 0;
	text-align: center;
}

.footer_info_company p{
	font-size: 14px;
	line-height: 1.7;
	color: #ffffff;
	width: 300px;
	margin: 0;
	padding: 5px 0;
	text-align: center;
}


.footer_info_service{
	width: 50%;
	margin: 0;
	padding: 0;
}

.footer_info_service h4{
	font-weight: 400;
	font-size: 14px;
	line-height: 1.0;
	color: #ffffff;
	margin: 0;
	padding: 0;
}

.footer_info_service h5{
	font-weight: 700;
	font-size: 14px;
	line-height: 1.0;
	color: #ffffff;
	margin: 0;
	padding: 10px 0 0 0;
}
.footer_info_service h5 i{
	padding: 0 5px 0 0;
}

.footer_info_service p{
	font-size: 13px;
	line-height: 1.5;
	color: #ffffff;
	margin: 0;
	padding: 5px 0;
}
.footer_info_service p span{
	font-size: 12px;
	padding: 0 0 0 3px;
}


#copyright{
	width: 100%;
	margin: 0;
	padding: 0;
}
#copyright p{
	background-color: rgba(255,255,255,.75);
	font-weight: 700;
	font-size: .75rem;
	line-height: 3.0;
	color: #666666;
	margin: 0;
	padding: 0;
	text-align: center;
}




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

	.footer_inner{
	}

	.footer_info{
		width: 100%;
		margin: 0;
		padding: 40px 0 0 0;
		border-top: dotted 1px #999999;
		text-align: center;
	}


	.footer_info_company{
		width: 100%;
		padding: 0 0 32px 0;
	}
	.footer_info_company h3{
		width: 100%;
	}
	.footer_info_company p{
		width: 100%;
	}


	.footer_info_service{
		width: 100%;
	}

}




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

	.footer_inner{
		padding: 16px 16px 32px 16px;
	}

}




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

	.footer_info_company .footer_logo{
		width: 260px;
	}

	.footer_info_service p{
		font-size: 12px;
	}
	.footer_info_service p span{
		font-size: 11px;
	}

	.footer_inner{
		padding: 16px 8px 32px 8px;
	}

}
