@charset "utf-8";
/* CSS Document */
html {
    overflow-y: scroll;
    font-size: 100%;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
}
body {
	position: relative;
    word-wrap: break-word;
	margin: 0;
	padding: 0;
}
table{
	border-collapse:collapse;
	border-spacing:0
}
input,select{
	vertical-align:middle
}
a{
	margin: 0;
	padding: 0;
	font-size: 100%;
	vertical-align: baseline;
	background: transparent;
	text-decoration: none;
}
/* box-sizing */
* {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}
ul, dl{
	margin: 0;
	padding: 0;
	list-style: none;
}
/* 全幅ラップ */
.overall_wrap {
	margin: 0 calc(50% - 50vw);
	padding: 0 calc(50vw - 50%);
	overflow: hidden;
}
/* グーグルマップiframeレスポンシブ */
.google-map {
	position: relative;
	width: 100%;
	height: 0;
	padding-bottom: 43.6%;
	overflow: hidden;
}
.google-map iframe {
	position: absolute;
	left: 0;
	width: 100%;
	height: 100%;
}


/* Font Style */
html{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 400;
	font-size: 16px;
	font-size: 100%;
}
h1{
	font-family: ten-mincho-text, serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.25rem;
	letter-spacing: .025em;
	text-align: center;
	line-height: 1;
	margin-top: 14px;
}
h1 span{
	font-size: 2.625rem;
	color: #0091b3;
}
.invitation h2{
	font-family: ten-mincho-text, serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.5rem;
	letter-spacing: .025em;
	color: #333;
}
.invitation h2 span{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 1.25rem;
	letter-spacing: .1em;
}
.invitation_02 h2{
	margin-top: 0;
	color: #fff!important;
	text-shadow: 0 0 30px rgba(255,255,255,1);
}
.invitation_02 h2 span{
	text-shadow: none;
}

#solution h2{
	font-family: ten-mincho-text, serif;
	font-weight: 400;
	font-style: normal;
	font-size: 2.25rem;
	letter-spacing: .05em;
	color: #cc0000;
	line-height: 1.25;
	text-align: center;
}
#solution h2 span{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 1.5rem;
	letter-spacing: .05em;
	color: #333;
}
#solution h3{
	font-family: ten-mincho-text, serif;
	font-weight: 400;
	font-style: normal;
	font-size: 1.5rem;
	letter-spacing: 0;
	color: #0091b3;
	text-align: center;
	margin-top: 56px;
}
#solution h3 span{
	background: linear-gradient(transparent 70%, #ffff99 60%);
}
#solution p{
	width: 200px;
	text-align: left;
	margin: 0 auto;
}
.qoute{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 1.5rem;
	text-align: center;
	letter-spacing: .05em;
	color: #333;
}
#about h2{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 2rem;
	letter-spacing: .05em;
	color: #fff;
	line-height: 1;
}
#about h2 span{
	font-family: 'Oswald', sans-serif;
	font-weight: 400;
	font-size: 1.25rem;
	letter-spacing: .1em;
}
#about p{
	color: #fff;
	line-height: 2;
}
#contents h2,#facility h2,#flow h2,#future h2{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 2rem;
	letter-spacing: .05em;
	text-align: center
}
#tour h2{
    font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 2rem;
	letter-spacing: .05em;
}
#contents h2 span,#facility h2 span,#flow h2 span,#tour h2 span,#future h2 span{
	font-family: 'Oswald', sans-serif;
	font-weight: 400;
	font-size: 1.25rem;
	letter-spacing: .1em;
	color: #0091b3;
}
.contents_txt h3{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 1.25rem;
	color: #333;
}
.facility_wrap h3{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 1.25rem;
	letter-spacing: .05em;
	color: #0091b3;
}
p.caution{
	font-size: 0.875rem;
	color: #999;
	line-height: 1.5;
	padding-left: 1rem;
}
p.caution:before{
	content: "※";
	margin-left: -1rem;
}
.flow_box h3{
	font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-size: 1.5rem;
	letter-spacing: .05em;
	color: #0091b3;
}
.flow_box p{
	text-align: left;
}

/* Page Setting */
section{
	margin: 0;
	padding: 0;
}
.inner_wrap{
	max-width: 1200px;
	width: 100%;
	margin: 0 auto;
	position: relative;
}
@media screen and (max-width:1200px){
	.inner_wrap{
		padding: 0 5%;
	}
}
.header_wrap{
	position: relative;
	display: flex;
	justify-content: space-between;
	height: 75px;
}
.header_logo{
	width: 184px;
	padding-top: 12px;
}
.header_slogan{
	width: calc(100% - 184px);
}
.header_wrap_sp{
	padding: 12px 0;
}
#main_visual_new{
	position: relative;
	background: no-repeat url(../img/bg_main_new.jpg) 70% 50%;
	background-size: cover;
	
}
#main_visual_new>.inner_wrap{
    position: relative;
    height: calc(70vh);
}

.main_catch_pc{
	position: absolute;
	top: 50%;
	left: 1rem;
	transform: translateY(-50%);
	transform: -webkit-translateY(-50%);
}
.main_catch_pc a{
    display: block;
    margin: 2rem 0;
}
.main_catch_sp{
    display: none;
}
@media screen and (max-width:980px){
	#main_visual_new{
        background: no-repeat url(../img/fv_catch_sp.jpg) center center;
        background-size: cover;
        height: 70vw;
    }
    #main_visual_new>.inner_wrap{
	   display: none;
    }
    .main_catch_sp{
        display: block;
        position: relative;
    }
    .main_catch_sp>a{
        display: block;
        text-align: center;
        padding-top: 50vw;
        z-index: 99;
    }
    .main_catch_sp>a>img{
        width: 70%;
    }
}
#main_visual{
	position: relative;
	background: no-repeat url(../img/bg_main.jpg) center bottom;
	background-size: cover;
	height: calc(100vh - 75px);
}
@media screen and (max-width:750px){
	#main_visual{height: calc(50vh - 75px);}
}
.visual_copyright{
	position: absolute;
	right: 0;
	bottom: 0;
	font-size: 12px;
	font-weight: 700;
	color: #fff;
	text-align: right;
}
#solution {
	background: #f2f2f2;
	padding: 80px 0;
}
.solution_wrap{
	display: flex;
	flex-wrap: wrap;
	justify-content: space-around;
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
}
.problem_box{
	position: relative;
	max-width: 319px;
	width: 33%;
	background: #fff;
	border-radius: 8px;
	margin: 20px auto;
}
@media screen and (max-width:750px){
	#solution{padding: 40px 0;}
	.sp_problem_box{width: 45%;}
}
.problem_frame{
	position: relative;
	top: -6px;
	left: -6px;
	width: 100%;
	border: 2px solid #0091b3;
	border-radius: 8px;
	min-height: 329px;
}
.problem_frame:after{
	content: url("../img/problem_box_under.png");
	position: absolute;
	bottom: -33px;
	left: calc(50% - 28px);
}
.problem01 p:after{
	content: url("../img/p_icon_01.png");
	position: absolute;
	left: calc(50% - 28px);
	bottom: 50px;
}
.problem02 p:after{
	content: url("../img/p_icon_02.png");
	position: absolute;
	left: calc(50% - 28px);
	bottom: 50px;
}
.problem03 p:after{
	content: url("../img/p_icon_03.png");
	position: absolute;
	left: calc(50% - 28px);
	bottom: 50px;
}
.problem04 p:after{
	content: url("../img/p_icon_04.png");
	position: absolute;
	left: calc(50% - 28px);
	bottom: 50px;
}
.problem05 p:after{
	content: url("../img/p_icon_05.png");
	position: absolute;
	left: calc(50% - 28px);
	bottom: 50px;
}
.problem06 p:after{
	content: url("../img/p_icon_06.png");
	position: absolute;
	left: calc(50% - 28px);
	bottom: 50px;
}
.qoute{
	position: relative;
	margin: 60px auto 40px;
}
.qoute:before{
	position: absolute;
	content: url("../img/qoute_left.png");
	top: -20px;
	margin-left: -160px;
}
.qoute:after{
	position: absolute;
	content: url("../img/qoute_right.png");
	bottom: -20px;
	margin-left: 30px;
}
.invitation{
	position: relative;
}
.invitation a{
	display: block;
}
.invitation_01{
	text-align: center;
	padding: 58px 0 78px;
}
.invitation_01 .invitation:after{
	content: url("../img/after_invitaion01.png");
	position: absolute;
	top: -48px;
	left: calc(50% + 150px);
}
.invitation_02{
	background-image: linear-gradient( -45deg, rgb(8,52,90) 0%, rgb(1,4,43) 100%);
	text-align: center;
	padding: 58px 0 78px;
}
.invitation_02 .invitation:after{
	content: url("../img/after_invitaion02.png");
	position: absolute;
	top: -78px;
	left: calc(50% + 150px);
}
.invitation_under{
    color: #fff;
}
.invitation_under span{
    color: #ffff00;
    font-size: 1.25rem;
}
@media screen and (max-width:750px){
	.invitation_01{padding: 12px 0 48px;}
	.invitation_01 .invitation:after,.invitation_02 .invitation:after{content: none;}
	.invitation_02{padding: 0 0 32px;}
	.invitation_02 img{position: relative;top: -16px;}
}
#future{
    padding: 40px 0;
}
.future_txt p{
    text-align: center;
    font-size: 1.2rem;
    font-weight: 500;
    line-height: 1.8;
}
.future_txt{
    margin-bottom: 6rem;
}
@media screen and (max-width:750px){
	.future_txt {
		margin-bottom: 0;
	}
}
.future_cta_wrap{
    position: relative;
    width: 100%;
    background: #0091b3;
    text-align: center;
    line-height: 0;
    height: 180px;
}
.future_cta_wrap>a{
    position: absolute;
    bottom: 0;
    left: calc(50% - 293px);
}
#future>.sp_only{
    line-height: 0;
}
#future>.sp_only img{
    width: 100%;
}
@media screen and (max-width:750px){
    #future{padding: 40px 0 0;}
    .future_txt p{text-align: left;font-size: 1rem;}
}
#about{
	background-image: linear-gradient( -90deg, rgb(222,228,241) 0%, rgb(232,249,248) 100%);
	padding: 160px 0;
}
.about_wrap{
	display: flex;
	justify-content: space-around;
}
.about_logo{
	text-align: center;
	width: calc(1005 - 600px);
}
.about_logo img{
	width: 100%;
	max-width: 316px;
}
.about_txt{
	max-width: 600px;
	width: 100%;
}
.about_txt h2,.about_txt p{
	color: #0091b2!important;
}
@media screen and (max-width:1100px){
	.about_logo{width: 40%;}
	.about_txt{width: 60%;}
}
@media screen and (max-width:980px){
	.about_logo{width: 100%;}
	.about_txt{width: 100%;}
}
@media screen and (max-width:750px){
	#about{padding: 15vh 0;}
}
#contents{
	padding: 78px 0;
}
.contents_wrap{
    width: 100%;
    max-width: 994px;
    margin: 0 auto;
}
.contents_box{
    display: flex;
	width: 100%;
}
.contents_box:nth-child(even){
    flex-direction: row-reverse;
}
.contents_pic{
    width: 50%;
}
.contents_pic img{
	width: 80%;
	max-width: 412px;
}
.contents_txt{
    width: 50%;
}
.contents_box:nth-child(even) div.contents_pic{
    text-align: right;
}
@media screen and (max-width:750px){
    .contents_box{
        flex-wrap: wrap;
        margin: 18px auto;
    }
    .contents_box:nth-child(even){
    }
    .contents_pic{
        width: 100%;
        text-align: center;
    }
    .contents_pic img{
        width: 100%;
        max-width: 412px;
    }
    .contents_txt{
        width: 100%;
    }
    .contents_box:nth-child(even) div.contents_pic{
        text-align: center;
    }
}
#tour{padding: 100px 0;}
.tour_wrap{
    position: relative;
}
.tour_wrap_bg{
    position: absolute;
    right: 2rem;
    width: 90%;
    height: calc(100% + 4rem);
    background: #f8f8f8;
    z-index: 1;
}
.flex_wrap{
    position: relative;
    align-items:flex-start;
    z-index: 10;
    display: flex;
}
.tour_txt{
    width: 55%;
    padding-right: 4rem;
}
.tour_pic{
    position: relative;
    margin-top: -2rem;
    line-height: 0;
    width: 45%;
    box-shadow: 0 0 40px 10px rgba(0,0,0,.16);
}
.tour_pic img{
    width: 100%;
}
@media screen and (max-width:750px){
	#tour{padding: 40px 0;}
    .flex_wrap{flex-wrap: wrap;}
    .tour_wrap_bg{
        width: 90%;
        right: 0;
        left: 0;
        margin: auto;
        height: calc(100% + 2rem);
    }
    .tour_txt{width: 100%;padding-right: 0;}
    .tour_pic{width: 100%;margin-top: 2rem;box-shadow: 0 0 20px 5px rgba(0,0,0,.16);}
}
.facility_wrap{
	position: relative;
	border-top: 1px solid #ccc;
}
.facility_wrap:before{
	content: "";
	position: absolute;
	top: -1px;
	width: 170px;
	height: 1px;
	background: #0091b3;
	z-index: 10;
}
.facility_wrap{
	display: flex;
}
.facility_wrap .left{
	width: 170px;
}
.facility_wrap .right{
	padding: .5rem 0 1.25rem 1.25rem;
	width: 100%;
}
.facility_wrap .access_wrap{
	display: flex;
	justify-content: space-between;
}
.facility_wrap .map_img{
	width: 100%;
	max-width: 582px;
}
.facility_wrap dl{
	display: flex;
	margin: 1rem 0 1.25rem 1.25rem;
}
.facility_wrap dt{
	font-weight: 500;
	min-width: 120px;
}
.facility_wrap dd{
	font-weight: 400;
}
@media screen and (max-width:750px){
	#facility{padding: 40px 0;}
	.facility_wrap{flex-wrap: wrap;padding: 0 0 24px;}
	.facility_wrap .left{width: 100%;}
	.facility_wrap .right{padding: 0;}
	.facility_wrap .access_wrap{flex-flow: column-reverse;flex-wrap: wrap;}
	.facility_wrap dl{display: block;margin: 0 0 16px;}
	.facility_wrap dd{padding: 0;margin: 0}
	.bcoz_a_bad_designer{margin-top: 0;}
}
#flow{
	background: #f2f2f2;
	padding: 58px 0 78px;
}
.flow_wrap{
	display: flex;
	justify-content: space-around;
}
.flow_box{
	background: #fff;
	width: 30%;
	text-align: center;
	padding: 40px;
}

.flow_box img{
	width: 100%;
	max-width: 376px;
}
@media screen and (max-width:750px){
	.flow_wrap{flex-wrap: wrap;}
	.flow_box{width: 100%;margin-bottom: 24px;}
}
footer{
	position: relative;
	border-top: 4px solid #00a6d2;
	font-size: 14px;
	padding: 24px 0;
}
.footer_wrap{
	display: flex;
	justify-content: space-between;
}
.footer_txt{
	text-align: right;
}
.footer_txt a{
	text-decoration: none;
	color: #333;
}
.copyright{
	font-size: 12px;
}
@media screen and (max-width:750px){
	footer{margin-bottom: env(safe-area-inset-bottom)}
	.footer_wrap{flex-wrap: wrap;flex-flow: column-reverse;text-align: center;}
	.footer_txt{text-align: center;}
	.footer_logo{margin-top: 20px;}
}
@media screen and (max-width:380px){
	.visual_copyright{
		font-size: 10px;
	}
	footer{font-size: 12px}
	.copyright{font-size: 10px;}
}
.modal_bnr{
	position: fixed;
	top: 150px;
	right: 0;
	width: 350px;
	height: 130px;
	z-index: 9999;
	background: #0091b3;
}
.modal_inner{
	position: relative;
	display: flex;
}
.modal_pic{
	position: relative;
	top: -23px;
}
.modal_txt{
	position: relative;
	top: 0;
	left: -16px;
}
.modal_txt p{
	width: 230px;
	font-weight: 500;
	color: #fff;
	margin-bottom: 4px;
	letter-spacing: -0.025rem
}
.modal_close{
	position: absolute;
	right: 25px;
	top: -26px;
	cursor: pointer;
}
/* Utillity Setting */
.center{text-align: center;}
.sp_only {display: none;}
.sp_fluid{
	width: 100%;
	max-width: 750px;
}
@media screen and (max-width:750px){
    .sp_only{display: block!important;}
    .pc_only{display: none!important;}
}
.m0{margin: 0!important;}
.mb10{margin-bottom: 10px!important;}
.mb20{margin-bottom: 20px!important;}
.mb40{margin-bottom: 40px!important;}
.mb60{margin-bottom: 60px!important;}
.mt0{margin-top: 0!important;}
.mt20{margin-top: 20px!important;}
.mt40{margin-top: 40px!important;}
.mt60{margin-top: 60px!important;}
.pt20{padding-top: 20px!important;}
.pt40{padding-top: 40px!important;}
.pt60{padding-top: 60px!important;}
.pb20{padding-bottom: 20px!important;}
.pb40{padding-bottom: 40px!important;}
.pb60{padding-bottom: 60px!important;}
.pl-s{padding-left: 8px!important;}
.pl-m{padding-left: 16px!important;}
.pl-l{padding-left: 32px!important;}