@charset "utf-8";

.SP{display:none !important;}
@media only screen and (max-width:768px){
	.PC{display:none !important;}
	.SP{display:block !important;}
}

/******************************************************/
/* ローディング */
/******************************************************/

.loading {
  /*ローディング画面の縦横幅を画面いっぱいになるように指定*/
  width: 100vw;
  height: 100vh;
  /*ローディング画面の表示位置を固定*/
  position: fixed;
  top: 0;
  left: 0;
  background: #f9f7f3;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  /*ローディング画面を0.5秒かけて非表示にする*/
  transition: all 0.5s linear;
  z-index: 500;
}

/*ローディング画面を非表示にする*/
.loading.loaded {
  /*0.5秒かけてopacityを0にする*/
  opacity: 0;
  visibility: hidden;
}

.loading-text {
  color: #216e92;
  font-size: 70%;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0;
  margin-top: 5px;
}

.spinner {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 3px solid #b7ddee;
  border-left-color: #1381b4; 
  /* アニメーションを1秒かけて実行 */
  animation: spinner-rotation 1s linear infinite;
}

/* アニメーションの設定 */
@keyframes spinner-rotation {
  0% {
    transform: rotate(0);
  }
  100% {
    transform: rotate(360deg);
  }
}


/*slider*/
.slider {
  pointer-events: none;
}

sup{
	font-size: 0.8em;
	vertical-align: top;
}

/******************************************************************
base
******************************************************************/
@media screen and (max-width: 768px) {
	body { font-size: 0.9rem; line-height: 2; }
	body main { font-size: 0.85rem; line-height: 1.5; }
	/*Android*/
	html.android body main{ font-size: 0.7rem; line-height: 1.2; }
 }

a { color: #3865e0; text-decoration: none; }
h1, h2 { line-height: 2.2; }
h3 { line-height: 2.3; }
h4 { line-height: 2.4; }
img { max-width: 100%; height: auto; vertical-align: middle; -webkit-backface-visibility: hidden; }
hr { display: block; height: 1px; border: 0; border-top: 1px solid #B5C1CC; }
button, input, optgroup, select, textarea { color: #000000; line-height: inherit; }

html{
	animation: fadein 3s forwards; 
	height: -webkit-fill-available;
}
@keyframes fadein {
	0% {opacity: 0}
	100% {opacity: 1}
}

body{
	background: #e9f0fa;
	overflow-x: hidden;
	min-height: 100dvh;
}
   

@media only screen and (max-width:768px){
	body{
		background: url(../img/body_bg_sp.webp) no-repeat left top  #eaeef1;
		background-size: 100%;
		overflow-x: hidden;
	}
	
}


@media only screen and (max-width:768px){
	a.btn{
		width: 80%;
		padding: 15px 15px 13px 15px;
		font-size: 100%;
	}
}

.slider{
	pointer-events: none;
}



/******************************************************************
wrapper
******************************************************************/
.wrapper{
	overflow-x: hidden!important;
}

/******************************************************************
header
******************************************************************/
header{
	display: flex;
	position: fixed;
	top:0;
	z-index: 15;
	width: 100%;
	padding: 20px 25px 0 25px;
	box-sizing: border-box;
	justify-content:space-between;
}

.head_left{
	width:150px ;
}

.head_right{
	display: flex;
	justify-content:flex-start;
	align-items: center;
	font-size: 90%;
	margin-top: -20px;
	font-family: helvetica;
	letter-spacing: 0.02em;
}

.head_right a{
	color: #919191;
	font-style: italic;
}

.head_right a:hover{
	color: #053e66;
}

a.active{
	font-weight: bold;
	color: #053e66;
}



@media only screen and (max-width:768px){
	header{
		padding: 10px 5px 0 15px;
	}

	.head_left{
		width:100px;
		margin-top: 0;
	}

	.head_right{
		font-size: 100%;
		margin: 0 10px 0 0;
	}

}


/******************************************************************
main
******************************************************************/
main{
	background:url("../img/main_bg.webp") no-repeat bottom center #dee6f6;
	background-size: cover;	
	height: 100dvh;
	position: relative;
}


.flow_lead{
	padding-top: 11vw;
	writing-mode: vertical-rl;
	margin: 0 auto 0 auto;
	font-size: 1vw;
	font-weight: 600;
	letter-spacing: 0.5em;
	line-height: 3.5vw;
}

.flow_lead h1{
	font-weight: 500;
	display: block;
	font-size: 200%;
	margin-left: 2vw;
}


/*flow_txt*/

.flow_txt {
	position: absolute;
	bottom: 3.2vw;
	right: 3.2vw;
}

.flow_txt img{
	width: 45vw;
}


@media only screen and (max-width:768px){

	main{
		background:url("../img/main_bg_sp.webp") no-repeat bottom center #dee6f6;
		background-size: cover;	
	}


	.flow_lead{
		padding-top: 36vw!important;
		box-sizing: border-box;
		font-size: 90%;
		line-height: 200%;
	}
	
	.flow_txt {
		bottom: 23vw;
		left: 7vw;
		margin: 0 auto;
	}

	.flow_txt img{
		width: 65vw;
	}

	

	/*flow_txt*/

	.ft01{
		font-size: 220%;
		top:20.5%;
		left:24%;
	}

	.ft02{
		width: 100%;
		font-size: 150%;
		top:27%;
		left:75%;
	}

	@supports(-webkit-touch-callout: none){
		main{
			height: -webkit-fill-available;
		}
	}

}


/******************************************************************
content
******************************************************************/

.content{
	box-sizing: border-box;
}



h2.cont{
	font-size: 3.2vw;
	font-weight: 200;
	line-height: 170%;
	letter-spacing: 0.05em;
	
}

h2.cont span{
	display: block;
	font-size: 5.2vw;
	letter-spacing: 0.1em;
}


.cont_title_wrapper{
	padding:7vw 10vw;
	display: flex;
	justify-content: space-between;
}


.cont_title_wrapper .tit_right{
	letter-spacing: 0.3em;
	line-height: 260%;
	font-size: 1.2vw;
	font-weight: 500;
	margin-top: 2.5vw;
}

.cont_title_set{
	display: flex;
	align-items:end;
}

.cont_h2_en{
	margin:0 0 -6px 10px!important;
	font-size: 130%;
	line-height: 140%;
	letter-spacing: 0.01em;
	 background: linear-gradient(180deg, rgba(114, 136, 185, 1), rgba(213, 235, 245, 0.62));
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
}


.title_read{
	line-height: 200%;
	font-size: 1.3vw;
	letter-spacing: 0.05em;
	margin: 60px 0 60px 0;
}

.site_set h3{
	color: #465c7a;
	font-size: 1.5vw;
	font-style: italic;
	line-height: 1.2vw;
	border-bottom: 1px solid #6b81a1;
	margin-bottom: 60px;
}


.site_set_inner{
	display: flex;
	justify-content: space-between;
}


.site_set_inner p{
	width: 40%;
}

.site_set_inner p img{
	box-shadow: 0px 7px 25px 0px rgba(122, 139, 158, 0.35);
}



dl.site_link{
	width: 55%;
	letter-spacing: 0.1em;
	position: relative;
}

dl.site_link dt{
	font-size: 160%;
	margin-bottom: 20px;
	
	letter-spacing: 0.2em;
}

dl.site_link dd{
	line-height: 250%;
}

dl.site_link dd a.btn_set{
	position: absolute;
	right: 0;
	margin-top: 40px;
}

a.btn_set{
	line-height: 250%;
	color: #fff;
	text-align: center;
	display: block;
	width: 300px;
	padding: 10px;
	letter-spacing: 0.1em;
	background:#6795d4;
	box-sizing: border-box;
	transition: .2s;
	position: relative;
}


	a.btn_set:hover {
		background-color: #294baa;
		transition: .2s;
	}



/* cont_2set */
.cont_2set{
	position: relative;
	padding-left: 10vw;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 5vw;
	font-size: 95%;
	line-height: 280%;
	letter-spacing: 0.3em;
}

.cont_2set.rev{
	margin-top: 30vw;
	padding:0 10vw 0 0;

}

.cont_2set .rev01{
	order: 1;
}

.cont_2set .rev02{
	order: 2;
}

.cont_2set .ct01{
	width: 40%;
}

.cont_2set .ct02{
	width: 55%;
	box-sizing: border-box;
}

.ct02 video{
	width: 100%;
	vertical-align: bottom;
}


.cont_2set .ct03{
	width: 60%;
}


.cap{
	font-size: 80%;
	letter-spacing: 0.02em;
}


.mt_area{
	position: relative;
	background:url("../img/bg_mt.jpg") no-repeat top center #eaeef1;
	background-size: 100%;
	height: 50vw;
}


.mt_area img{
	max-width:419px;
	width: 25vw;
}


.mt_area .mt01{
	position: absolute;
	left:3vw;
	top: 6vw;
}

.mt_area .mt02{
	position: absolute;
	left: 23vw;
	top: 0vw;
}

.mt_area .mt03{
	position: absolute;
	right: 11vw;
	top: 5vw;
}



.cont_2set.harfbox .ct02{
	width: 45%;
}

.cont_2set.harfbox a{
	margin: auto;
}


.ct02_read{
	margin-bottom: 65px;
	font-size: 120%;
}



.new{
	display: inline-block;
	font-size: 60%;
	background-image: linear-gradient(90deg, rgba(224, 108, 75, 1), rgba(223, 81, 81, 1));
	color: #fff;
	letter-spacing: 0.05em;
	font-weight: 700;
	padding: 10px 15px 10px 15px;
	box-sizing: border-box;
	margin: 0 20px 0 0;
	line-height: 100%;
	vertical-align: 4px;
}

@media only screen and (max-width:768px){


	.cont_inner{
		max-width: 100%;
	}

	h2.cont{
		font-size: 120%;
		line-height: 175%;
	}

	h2.cont span{
		font-size: 160%;
	}



	.cont_h2_en{
		margin-bottom: 0!important;
		font-size: 90%;
		line-height: 130%;
	}
	.cont_h2_en span{
		font-size: 150%;
	}


	.cont03 .cont_h2_en{
		margin: 0!important;
	}

	.title_read{
		line-height: 180%;
		font-size: 100%;
		margin: 20px 0 30px 0;
	}


	.site_set h3{
		font-size: 100%;
		line-height: 80%;
		margin-bottom: 30px;
	}


	.cont_title_wrapper{
		padding:25px;
		display: block;
	}




	.site_set_inner{
		display: block;
	}

	.site_set_inner p{
		width: 100%
	}

	dl.site_link{
		width: 100%;
	}

	dl.site_link dt{
		font-size: 130%;
		margin: 25px 0 15px 0 ;
		line-height: 150%;
	}

	dl.site_link dd{
		line-height: 200%;
	}

	dl.site_link dd a.btn_set{
		position: relative;
		margin-top: 20px;
	}

	a.btn_set{
		line-height: 250%;
		width: 100%;
		padding: 5px;
	}



	/* cont_2set */
	.cont_2set{
		display: block;
		margin-bottom: 30px;
		font-size: 100%;
		line-height: 200%;
		padding:0 25px 0 25px;
	}

	

	.cont_2set.rev{
		margin-top: 0;
		padding:0 25px 0 25px;
	}


	.cont_2set .ct01{
		width: 100%;
		margin-bottom: 20px;
	}

	.cont_2set .ct02{
		width: 100%;
	}

	.cont_2set .ct03{
		width: 100%;
	}

	.cont_2set.last{
		margin-bottom: 0;
	}

	.ct02_read{
		margin-bottom: 20px;
		font-size: 100%;
	}

	
	.cont_2set.last .ct02{
		margin:20px 0 15px 0;
	}

	.cont_2set.last .ct01{
		margin-bottom: 0;
	}


	.new{
		padding: 7px 10px 7px 10px;
		margin: 0 auto 10px auto;
		line-height: 100%;
		vertical-align: 4px;
		width: 120px;
	}




}




/******************************************************************
cont01
******************************************************************/

.content.cont01{
	background:url("../img/cont01_bg.webp") no-repeat top center #eaeef1;
	background-size: 100%;
}


@media only screen and (max-width:768px){


}





/******************************************************************
cont02
******************************************************************/
.content.cont02{
	background:url("../img/cont02_bg.webp") no-repeat top center #eaeef1;
	background-size: 100%;
}


.content.cont02 .cont_inner{
	background:url("../img/bg_ground.jpg") no-repeat left 88vw;
	background-size: 100%;
}

.bg_copy{
	position: absolute;	
	right: 2vw;
	top:108vw;
}

.bg_copy img{
	width: 70%;
}


.cont02 .cont_h2_en{
	margin-left: -65px;
}


.content.cont02 .cont_title_set{
	margin-bottom: 40vw;
}



h3.cont02_title{
	color: #000;
	font-size: 1.9vw;
	margin-bottom: 30px;
	line-height: 200%;
	letter-spacing: 0.3em;
	font-weight: 500;
}


@media only screen and (max-width:768px){

	.content.cont02{
		background:url("../img/cont02_bg_sp.webp") no-repeat center 25vw #eaeef1;
		background-size: 100%;
	}

	.cont_title_wrapper .tit_right{
		letter-spacing: 0.3em;
		line-height: 200%;
		font-size: 85%;
		font-weight: 500;
		margin: 6vw 0 0 0;
	}

	.cont02 .cont_title_wrapper .tit_right{
		margin: 6vw 0 39vw 0;
	}



	.content.cont02 .cont_inner{
		background:none;
	}

	.content.cont02 .cont_title_set{
		margin-bottom: 0;
	}

	h3.cont02_title{
		font-size: 120%;
		margin-bottom: 10px;
		line-height: 150%;
	}

	.bg_copy{
		display: none;
	}


}


/******************************************************************
cont03
******************************************************************/
.content.cont03{
	background:url("../img/cont03_bg.webp") no-repeat top center #eaeef1;
	background-size: 100%;
}


.cont03 .cont_title_set{
	padding:7vw 10vw;
	display: block;
	text-align: center;
}


.cont03 .cont{
	margin-bottom: 0!important;
}

.cont03 .read{
	text-align: center;
	font-size: 140%;
	letter-spacing: 0.3em;
	margin-bottom: 5vw;
}

.cont03 h2.co3_tit{
	font-size: 200%;
	text-align: center;
	letter-spacing: 0.05em;
	color: #284371;
	margin-bottom: 5vw;
}

.tit_small{
	color: #000;
	font-size: 70%;
}

/* cont_2set */
.cont03 .cont_2set{
	align-items:flex-start;
	margin-bottom: 5vw!important;
}

.cont03 .rev{
	margin: 0;
}
.cont03 .ct01{
	width: 30%;
}

.cont03 .ct02{
	width: 65%;
}

.cont03 .cont_title_set{
	font-size: 130%;
}

.cont03 .cont_h2_en{
	font-size: 70%;
}


.cont03 .rev .ct01{
	order: 2;
}

.cont03 .rev .ct02{
	order: 1;
}

.spec{
	margin-top: 20px;
	background: #f2f5f7;
	font-size: 90%;
	padding: 15px 20px 15px 20px;
	box-sizing: border-box;
	line-height: 150%;
	letter-spacing: 0.2em;
}

.spec dl{
	display: flex;
	margin-bottom: 5px;
}

.spec dl dt{
	width: 27%;
}

.spec dl dd{
	width: 73%;
}


a.more_btn{
	display: block;
	color: #fff;
	background: #1a3347;
	border-radius: 20px;
	text-align: center;
	font-size: 90%;
	letter-spacing: 0.05em;
	width: 150px;
	padding: 7px;
	line-height: 140%;
	margin-top: 15px;
	transition: .2s;
}

a.more_btn:hover{
	background: #2b5e88;
}


a.btn_ticket{
	font-size: 100%;
	color: #283e6d;
	position: fixed;
	left: 0;
	bottom: 50px;
	display: block;
	background:rgba(255,255,255,0.7);
	z-index: 100;
	padding: 10px;
	width: 200px;
	text-align: center;
	box-shadow: 0px 5px 15px 0px rgba(202, 211, 222, 1);
	line-height: 120%;
	letter-spacing: 0.15em;
	transition: .2s;
}

a.btn_ticket:hover{
	background:rgba(255,255,255,0.2);
}

a.btn_ticket span{
	display: block;
	font-size: 60%;
	letter-spacing: 0.05em;
}

@media screen and (max-width: 768px) {
	a.btn_ticket{
		left: 0;
		bottom: 0;
		padding: 10px;
		box-sizing: border-box;
		width: 100%;
		box-shadow: none;
		background:rgba(255,255,255,0.8);
	}

	/* cont_2set */
	.cont03 .cont_2set{
		margin-bottom: 50px!important;
	}

	.cont03 .cont_2set:last-child{
		margin-bottom: 25px!important;
	}



	.cont03 .rev{
		margin: 0;
	}
	.cont03 .ct01{
		width: 100%;
	}

	.cont03 .ct02{
		width: 100%;
	}

	.cont03 .read{
		font-size: 90%;
		line-height: 180%;
		padding: 0 25px 0 25px;
		margin-bottom: 30px;
	}

	.cont03 h2.co3_tit{
		font-size: 160%;
		text-align: center;
		letter-spacing: 0.05em;
		color: #284371;
		margin-bottom: 5vw;
		padding: 0 25px;
		line-height: 160%;
	}

	.cont03 h2.co3_tit span{
		display: block;
	}

	.tit_small{
		font-size: 60%;
	}

	a.more_btn{
		margin: 15px auto 0 auto;
	}


.spec dl{
	display: block;
	margin-bottom: 10px;
}

.spec dl dt{
	width: 100%;
	margin-bottom: 5px;
}

.spec dl dd{
	width: 100%;
}


}


/******************************************************************
footer
******************************************************************/
footer{
	background:url("../img/foot_bg.webp") no-repeat bottom center #eaeef1;
	background-size: cover;
	padding: 19vw 0 20vw 0;
	text-align: center;
}

.flogo{
	font-size: 200%;
	letter-spacing: 0.2em;
	font-style: italic;
	padding:0 80px 25px 80px;
	margin: 0 auto;
}

.copy{
	font-size: 80%;
	margin-top: 35px;
	line-height: 160%;
}

footer ul{
	display: flex;
	justify-content:center;
	gap: 20px;
	margin: 30px 0 60px 0;
}

footer ul li{
	width: 10%;
}

footer ul li img{
	width: 100%;
}


@media screen and (max-width: 768px) {
	footer{
		padding: 50px 0 200px 0;
	}
	
	.flogo{
		font-size: 130%;
		width: 80%;
		padding:0 0 0 0;
	}

	footer ul{
		gap: 0px;
		margin: 30px 0 30px 0;
	}

	footer ul li{
		width: 25%;
	}
	
	.copy{
		font-size: 60%;
		padding: 0 30px 0 30px;
		margin-top: 35px;
	}
}
