
/*** visual ***/
.mv{
	position: relative;
}
.mv img{
	width: 100%;
}
.mv_content{
	position: absolute;
	left: 0px;
	right: 0px;
	top: 0px;
	bottom: 0px;
	display: flex;
	justify-content: center;
	align-items: center;
}
.mv_content .text_wrap{
	text-align: center;
	color: #FFFFFF;
	text-shadow: 0px 0px 30px rgba(0,0,0,0.3);
	position: relative;
	z-index: 1;
}
.mv_content .scroll{
	position: absolute;
	left: 50%;
	bottom: 40px;
	transform: translate3d(-50%,0,0);
}
.experience{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 180px;
	height: 180px;
	border-radius: 100%;
	background-color: #004bd7;
	font-size: 1.25rem;
	color: #FFFFFF;
	text-align: center;
	line-height: 1.5;
	position: absolute;
	right: -50px;
	top: -120px;
	z-index: -1;
}
.mv_text01{
	font-size: 3.88rem;
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 1.34;
	margin-bottom: 20px;
}
.mv_text02{
	font-style: italic;
	font-size: 1.5rem;
	font-weight: 200;
	letter-spacing: 0.12em;
	line-height: 1.5;
}

@media (max-width: 1160px) {
	.experience{
		width: 90px;
		height: 90px;
		font-size: 0.71rem;
		right: -30px;
		top: -50px;
	}
	.mv_text01{
		font-size: 5.6vw;	
		margin-bottom: 20px;
	}
	.mv_text02{
		font-size: 2.2vw;
	}

}

	.header{
	  position: fixed;
	  height: 80px;
	  width: 100%;
	  z-index: 100;
	}
@media (max-width: 768px) {
	.experience{
		width: 90px;
		height: 90px;
		font-size: 0.71rem;
		right: -30px;
		top: -50px;
	}
	.mv_text01{
		font-size: 8.6vw;	
		margin-bottom: 20px;
	}
	.mv_text02{
		font-size: 2.8vw;
	}
	.header{
	  position: fixed;
	  height: 80px;
	  width: 100%;
	  z-index: 100;
	}
}


/*** price ***/
.balloon{
	text-align: center;
	margin-bottom: 40px;
}
.balloon_label{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	height: 46px;
	background-color: #004bd7;
	border-radius: 23px;
	padding: 0px 25px;
	font-size: 1rem;
	font-weight: 500;
	color: #FFFFFF;
	letter-spacing: 0.12em;
	position: relative;
}
.balloon_label:after{
	content: "";
	display: inline-block;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 20px 10px 0 10px;
	border-color: #004bd7 transparent transparent transparent;
	position: absolute;
	left: 50%;
	bottom: -10px;
	transform: translate3d(-50%,0,0);
}
.price_table{
	width: 100%;
	border: 1px solid #000000;
	margin-bottom: 120px;
}
.price_table caption{
	font-size: 1.5rem;
	text-align: center;
	margin-bottom: 30px;
}
.price_table caption:before{
	content: "";
	display: inline-block;
	width: 70px;
	height: 1px;
	background-color: #000000;
	line-height: 0;
	vertical-align: middle;
	margin-right: 20px;
}
.price_table caption:after{
	content: "";
	display: inline-block;
	width: 70px;
	height: 1px;
	background-color: #000000;
	line-height: 0;
	vertical-align: middle;
	margin-left: 20px;
}
.price_table thead tr{
	background-color: #ebebeb;
}
.price_table tr{
	border-bottom: 1px solid #a0a0a0;
}
.price_table tbody tr:last-child{
	border-bottom: none;
}
.price_table th{
	padding: 20px 10px;
	text-align: center;
	font-weight: normal;
}
.price_table td{
	background-color: #FFFFFF;
	padding: 20px 10px;
	text-align: center;
}
.price_table thead th{
	font-size: 1rem;
	position: relative;
}
.price_table tbody th{
	background-color: #ebebeb;
	font-size: 1.13rem;
	width: 30%;
}
.price_table tbody td.before{
	font-size: 1.25rem;
	width: 35%;
}
.price_table tbody td.after{
	font-size: 1.88rem;
	font-weight: 600;
	width: 35%;
}
.price_table thead th.after{
	border-left: 8px solid #f05050;
	border-top: 8px solid #f05050;
	border-right: 8px solid #f05050;
}
.price_table tbody td.after{
	border-left: 8px solid #f05050;
	border-right: 8px solid #f05050;
}
.price_table tbody tr:last-child td.after{
	border-bottom: 8px solid #f05050;
}
.price_table .limited{
	font-size: 1.13rem;
	font-weight: 500;
	line-height: 1.25;
	color: #f05050;
	position: absolute;
	bottom: 100%;
	left: 0px;
	right: 0px;
	text-align: center;
	margin-bottom: 15px;
}

@media (max-width: 768px) {
	.price_table{
		margin-bottom: 50px;
	}
	.price_table caption{
		margin-bottom: 40px;
	}
	.price_table th,
	.price_table td{
		padding: 10px 5px;
	}
	.price_table tbody th{
		font-size: 0.94rem;
		width: 23%;
	}
	.price_table tbody td.before{
		font-size: 1rem;
		width: 29%;
	}
	.price_table tbody td.after{
		font-size: 1.5rem;
		width: 48%;
	}
	.price_table .limited{
		font-size: 0.8rem;
	}
}


/*** menu_list ***/
ul.menu_list{
	padding: 30px;
}
ul.menu_list li{
	border-bottom: 1px solid #000000;
	padding: 20px 0px;
	width: 440px;
	max-width: 100%;
}
ul.menu_list li .title{
	font-size: 0.88rem;
	font-weight: 600;
}
ul.menu_list li .title:not(:first-child){
	margin-top: 10px;
}
ul.menu_list li p{
	font-size: 0.69rem;
	color: #a0a0a0;
}

@media (max-width: 768px) {
	ul.menu_list{
		padding: 0px;
	}
}


/*** price ***/
.media_text_block{
	display: flex;
	align-items: center;
}
.media_text_block .thumb_wrap{
	width: 50%;
}
.media_text_block .thumb_wrap .thumb{
	margin-left: -240px;
}
.media_text_block .text_wrap{
	flex: 1;
	margin-left: 10%;
}
.media_text_block.reverse .thumb_wrap{
	order: 2;
}
.media_text_block.reverse .thumb_wrap .thumb{
	margin-left: 0px;
	margin-right: -240px;
}
.media_text_block.reverse .text_wrap{
	margin-left: 0px;
	margin-right: 10%;
}

@media (max-width: 1600px) {
	.media_text_block .thumb_wrap .thumb{
		margin-left: calc( (100vw - 1080px) / -2 );
	}
	.media_text_block.reverse .thumb_wrap .thumb{
		margin-left: 0px;
		margin-right: calc( (100vw - 1080px) / -2 );
	}
}
@media (max-width: 1160px) {
	.media_text_block .thumb_wrap .thumb{
		margin-left: -40px;
	}
	.media_text_block .text_wrap{
		margin-left: 40px;
	}
	.media_text_block.reverse .thumb_wrap .thumb{
		margin-left: 0px;
		margin-right: -40px;
	}
	.media_text_block.reverse .text_wrap{
		margin-left: 0px;
		margin-right: 40px;
	}
}
@media (max-width: 768px) {
	.media_text_block{
		display: block;
	}
	.media_text_block .thumb_wrap{
		width: 100%;
		margin-bottom: 10px;
	}
	.media_text_block .thumb_wrap .thumb{
		margin-left: 0px;
	}
	.media_text_block .text_wrap{
		margin-left: 0px;
	}
	.media_text_block.reverse .thumb_wrap .thumb{
		margin-right: 0px;
	}
	.media_text_block.reverse .text_wrap{
		margin-right: 0px;
	}
}



/*** top_reason ***/
#top_reason .num{
	margin-bottom: 20px;
}
#top_reason .title{
	font-size: 1.88rem;
	font-weight: 600;
	line-height: 1.73;
	margin-bottom: 20px;
}
#top_reason p{
	font-size: 1rem;
	line-height: 2.25;
}
#top_reason .media_text_block:not(:last-child){
	margin-bottom: 100px;
}

@media (max-width: 768px) {
	#top_reason .media_text_block:not(:last-child){
		margin-bottom: 50px;
	}
	#top_reason .title{
		font-size: 1.5rem;
	}
}


/** spend_list ***/
.bg_plaid {
	background-color: #f2f2f2;
	background-image: linear-gradient(-90deg, #e8e8e8 5%, transparent 5%), linear-gradient(#e8e8e8 5%, transparent 5%);
	background-size: 16px 16px;
	background-position: center 8px;
}
.spend_list .box{
	display: flex;
	align-items: center;
	column-gap: 80px;
	background-color: #FFFFFF;
	padding: 60px 60px;
}
.spend_list .box .thumb_wrap{
	width: 50%;
}
.spend_list .box .text_wrap{
	flex: 1;
}
.spend_list .box:nth-child(odd) .thumb_wrap{
	order: 2;
}
.spend_list .box:not(:last-child){
	margin-bottom: 30px;
	position: relative;
}
.spend_list .box:not(:last-child):after{
	content: "";
	display: inline-block;
	width: 8px;
	height: 30px;
	background-color: transparent;
	background-image: radial-gradient(#004bd7 2px, transparent 2px);
	background-size: 8px 8px;
	position: absolute;
	left: 50%;
	top: 100%;
	transform: translate3d(-50%,0,0);
}

.spend_list .num{
	margin-bottom: 30px;
}
.spend_list .num_label{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-size: 0.88rem;
	font-weight: 500;
	color: #FFFFFF;
	height: 36px;
	letter-spacing: 0.14em;
	background-color: #004bd7;
	border-radius: 18px;
	padding: 0px 25px;
}
.spend_list .title{
	font-size: 1.63rem;
	font-weight: 600;
	line-height: 1.76;
	margin-bottom: 15px;
}
.spend_list p{
	font-size: 1rem;
	line-height: 2.25;
}

@media (max-width: 768px) {
	.spend_list .box{
		display: block;
		padding: 20px;
	}
	.spend_list .box .thumb_wrap{
		width: 100%;
		margin-bottom: 20px;
	}
	.spend_list .title{
		font-size: 1.5rem;
	}
}


/*** access ***/
.access_root{
	margin-bottom: 30px;
}
#top_access h3,
#top_access p,
#top_access li{
	font-size: 0.88rem;
	line-height: 2;
}
/*** number_list ***/
ol.number_list {
list-style-type: none;
counter-reset: number;/* カウンターを初期化 */
}
ol.number_list li {
position: relative;
	padding-left: 1.5em;
}
/* beforeでカウンターを作成 */
ol.number_list li::before {
	content: counter(number);
	counter-increment: number;
	padding: 0 0.2em;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 85%;
	width: 1.4em;
	height: 1.4em;
	border: 1px solid currentColor;
	border-radius: 50%;
	position: absolute;
	left: 0px;
	top: 0.5em;
}


/*** faq ***/
.faq_list dl{
	display: block;
	background-color: #FFFFFF;
	padding: 40px;
}
.faq_list dl:not(:last-child){
	margin-bottom: 4px;
}
.faq_list dl dt{
	font-size: 1.38rem;
	line-height: 1.5;
	margin-bottom: 20px;
	padding-left: 40px;
	position: relative;
}
.faq_list dl dt:before{
	content: "Q.";
	position: absolute;
	left: 0px;
}
.faq_list dl dd{
	font-size: 1rem;
	line-height: 2;
	padding-left: 40px;
	position: relative;
}
.faq_list dl dd:before{
	content: "A.";
	font-size: 1.38rem;
	line-height: 1.2;
	color: #dc5b5b;
	position: absolute;
	left: 0px;
}

@media (max-width: 768px) {
	.faq_list dl{
		padding: 30px 20px;
	}
	.faq_list dl dt,
	.faq_list dl dd{
		padding-left: 30px;
	}
}


/**** btn_bottom_contact ***/
.btn_bottom_contact{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	max-width: 100%;
	width: 600px;
	border: 1px solid #FFFFFF;
	font-size: 1.5rem;
	color: #FFFFFF;
	height: 120px;
}

@media (max-width: 768px) {
	.btn_bottom_contact{
		height: 80px;
	}
}



.table_style01{
	width: 100%;
	border-top: 1px solid #c8c8c8;
}
.table_style01 th,
.table_style01 td{
	padding: 25px 25px;
	border-bottom: 1px solid #c8c8c8;
}
.table_style01 th{
	width: 200px;
	font-size: 1rem;
	font-weight: normal;
	letter-spacing: 0.01em;
	vertical-align: middle;
	position: relative;
}
.table_style01 th .required{
	display: inline-flex;
	justify-content: center;
	align-items: center;
	width: 44px;
	height: 22px;
	background-color: #9b0a0a;
	font-size: 0.81rem;
	font-weight: bold;
	color: #FFFFFF;
	letter-spacing: 0.02em;
	text-indent: 0.02em;
	position: absolute;
	right: 25px;
	top: 50%;
	transform: translate3d(0,-50%,0);
}

h2{
  text-align: center;
  margin-bottom: 30px;
  color: #00a0e9;
  font-size: 28px;
}

@media (max-width: 768px) {
	.table_style01,
	.table_style01 tbody,
	.table_style01 tr,
	.table_style01 th,
	.table_style01 td{
		display: block;
		width: auto;
	}
	.table_style01 th{
		border: none;
	}
	.table_style01 th,
	.table_style01 td{
		padding: 15px;
	}

}

