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

/* common class
---------------------------------------------------------------------------- */

/* calc(px / 3.75 * 1vw) */

* {
  box-sizing: border-box;
}
main{
	min-height: 100vh;
}

body {
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: unset;
  word-wrap: break-word;
  min-width: 100%;
  background: #fff;
  color: #231815;
  word-break: break-word;
  font-family: "Noto Sans JP", sans-serif;
  font-feature-settings: "palt";
  font-weight: 400;
}

img {
  width: auto;
  max-width: 100%;
}

ul li, ol li {
  list-style-type: none;
}

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

}

/* header -------------------------------------------------------------------------*/
header {
	background: #e4f4e9;
	padding: 24px 20px;
	min-width: 1280px;
	width: 100%;
	@media only screen and (max-width: 767.99px) {
		min-width: 0;
		padding: 0 calc(24 / 3.75 * 1vw);
		position: fixed;
		top: 0;
		left: 0;
		z-index: 999900;
	}
	.header-inner {
		width: 1152px;
		margin: 0 auto;
		display: flex;
		justify-content: space-between;
		@media only screen and (max-width: 767.99px) {
			width: 100%;
			align-items: center;
			height: calc(50 / 3.75 * 1vw)
		}
		h1{
			width: 130px;
			@media only screen and (max-width: 767.99px) {
				width: calc(85 / 3.75 * 1vw);
			}
		}
	}
}

/* header sp menu */
@media only screen and (max-width: 767.99px) {
	.header-inner .sp-btn {
		display: flex;
		width: calc(20 / 3.75 * 1vw);
		height: calc(16 / 3.75 * 1vw);
		background: url("../../images/sp_menu_open_btn.svg") center center/contain no-repeat;
		transition: .2s ease;
	}
	.header-inner .sp-btn.is-open {
		background: url("../../images/sp_menu_close_btn.svg") center center/contain no-repeat;
	}
	.header-inner .sp-menu {
		position: fixed;
		top: calc(50 / 3.75 * 1vw);
		left: 0;
		width: 100%;
		background: #48b36f;
		padding: calc(50 / 3.75 * 1vw) 0 0;
		overflow: hidden;
		opacity: 0;
		transition: .2s ease;
		pointer-events: none;
		ul{
			li{
				width: 100%;
				height: calc(50 / 3.75 * 1vw);
				padding-left: calc(60 / 3.75 * 1vw);
				color: #fff;
				font-size: calc(25 / 3.75 * 1vw);
				font-weight: 700;
				display: flex;
				align-items: center;
				&.bg-w{
					background: rgba(255,255,255,.2);
				}
				&.adj-mb{
					margin-bottom: calc(50 / 3.75 * 1vw);
				}
				a{
					width: 100%;
					height: 100%;
					display: flex;
					align-items: center;
					img{
						height: calc(23 / 3.75 * 1vw);
					}
				}
			}
			&::after{
				content: "";
				display: block;
				width: 100%;
				height: calc(50 / 3.75 * 1vw);
				background: rgba(255,255,255,.2);
			}
		}
	}
	.header-inner .sp-menu.is-active {
		opacity: 1;
		overflow: visible;
		pointer-events: all;
	}
}

/* footer -------------------------------------------------------------------------*/
.btn-fixed {
    position: fixed;
    right: 20px;
    bottom: 120px;
    width: 60px;
    height: 60px;
    background: #00B2DD url(../../images/icn_totop.png) center center / contain no-repeat;
    transition: .2s ease;
    opacity: 0;
    pointer-events: none;
	z-index: 999999;
	@media only screen and (max-width: 767.99px) {
		right: calc(24 / 3.75 * 1vw);
		bottom: calc(24 / 3.75 * 1vw);
		width: calc(40 / 3.75 * 1vw);
		height: calc(40 / 3.75 * 1vw);
	}
}
.btn-fixed.is-show {
    opacity: 1;
    pointer-events: all;
}
footer{
	width: 100%;
	.footer-inner{
		width: 1080px;
		margin: 0 auto;;
		height: 100px;
		display: flex;
		align-items: center;
		@media only screen and (max-width: 767.99px) {
			width: 100%;
			height: calc(120 / 3.75 * 1vw);
			flex-direction: column;
			align-items: flex-start;
			justify-content: center;
			padding: 0 calc(24 / 3.75 * 1vw);
		}
		p{
			width: 175px;
			margin-right: 36px;
			@media only screen and (max-width: 767.99px) {
				width: calc(113 / 3.75 * 1vw);
				margin: 0 0 calc(6 / 3.75 * 1vw);
			}
		}
		address{
			font-size: 18px;
			line-height: 28px;
			@media only screen and (max-width: 767.99px) {
				font-size: calc(12 / 3.75 * 1vw);
				line-height: calc(17 / 3.75 * 1vw);
				font-weight: 500;
			}
		}
	}
}

/* common layout -------------------------------------------------------------------------*/
.l-inner-wrap{
	width: 1080px;
	margin: 0 auto;
	@media only screen and (max-width: 767.99px) {
		width: 100%;
	}
}

/* common parts -------------------------------------------------------------------------*/
.p-type01{
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 38px;
	font-weight: 700;
	@media only screen and (max-width: 767.99px) {
		font-size: calc(20 / 3.75 * 1vw);
		justify-content: space-between;
	}
	&::before,&::after{
		content: "";
		background: url(../../images/icn_plus_3.svg) center center / contain no-repeat;
		width: 120px;
		height: 36px;
		margin: 0 25px;
		@media only screen and (max-width: 767.99px) {
			background: url(../../images/icn_plus_sp.svg) center center / contain no-repeat;
			width: calc(48 / 3.75 * 1vw);
			height: calc(22 / 3.75 * 1vw);
			margin: 0;
		}
	}
}

/* blk-mv -------------------------------------------------------------------------*/
.blk-mv{
	background: #e4f4e9;
	margin-bottom: 131px;
	@media only screen and (max-width: 767.99px) {
		margin-bottom: calc(60 / 3.75 * 1vw);
	}
	.mv-inner{
		width: 1152px;
		margin: 0 auto;
		position: relative;
		padding-bottom: 35px;
		@media only screen and (max-width: 767.99px) {
			padding-top: calc(74 / 3.75 * 1vw);
			width: 100%;
			padding-bottom: calc(20 / 3.75 * 1vw);
		}
		h2{
			background: #48b36f;
			width: 1060px;
			padding: 30px;
			@media only screen and (max-width: 767.99px) {
				width: calc(350 / 3.75 * 1vw);
				padding: calc(20 / 3.75 * 1vw) calc(25 / 3.75 * 1vw);
			}
			img{
				width: 553px;
				@media only screen and (max-width: 767.99px) {
					width: calc(200 / 3.75 * 1vw);
				}
			}
		}
		.info-box{
			border-left: 1px solid #231815;
			background: linear-gradient( to right , #e5e5e6 35px , transparent 35px , transparent 100%);
			margin-left: 35px;
			width: 600px;
			@media only screen and (max-width: 767.99px) {
				margin-left: calc(25 / 3.75 * 1vw);
				width: calc(100% - calc(50 / 3.75 * 1vw));
			}
			.sub-lead{
				padding: 40px 0 40px 16px;
				img{
					width: 556px;
					@media only screen and (max-width: 767.99px) {
						width: calc(195 / 3.75 * 1vw);
					}
				}
			}
			.schedule{
				padding: 0 0 20px 16px;
				img{
					width: 545px;
					@media only screen and (max-width: 767.99px) {
						width: calc(313 / 3.75 * 1vw);
					}
				}
			}
			.test-schedule{
				border-top: 1px solid #231815;
				padding: 16px 0 0 16px;
				img{
					width: 582px;
					@media only screen and (max-width: 767.99px) {
						width: calc(279 / 3.75 * 1vw);
					}
				}
			}
		}
		figure{
			position: absolute;
			img{
				filter: drop-shadow(8px 8px 0px rgba(35,25,24,.2));
				@media only screen and (max-width: 767.99px) {
					filter: drop-shadow(calc(4 / 3.75 * 1vw) calc(4 / 3.75 * 1vw) 0px rgba(35,25,24,.2));
				}
			}
			&.img01{
				width: 466px;
				top: -30px;
				left: 661px;
				@media only screen and (max-width: 767.99px) {
					width: calc(154 / 3.75 * 1vw);
					top: calc(53 / 3.75 * 1vw);
					left: auto;
					right: calc(10 / 3.75 * 1vw);
				}
			}
			&.img02{
				width: 251px;
				top: 312px;
				left: 625px;
				@media only screen and (max-width: 767.99px) {
					width: calc(100 / 3.75 * 1vw);
					top: calc(178 / 3.75 * 1vw);
					left: calc(235 / 3.75 * 1vw);
				}
			}
			&.img03{
				width: 251px;
				top: 290px;
				left: 910px;
				@media only screen and (max-width: 767.99px) {
					width: calc(100 / 3.75 * 1vw);
					top: calc(261 / 3.75 * 1vw);
					left: calc(257 / 3.75 * 1vw);
				}
			}
			&.img04{
				width: 251px;
				bottom: -55px;
				left: 812px;
				@media only screen and (max-width: 767.99px) {
					width: calc(100 / 3.75 * 1vw);
					top: calc(350 / 3.75 * 1vw);
					left: calc(215 / 3.75 * 1vw);
				}
			}
		}
	}
}
.mv-notic{
	font-size: 14px;
	line-height: 21px;
	font-weight: 300;
	padding: 18px 10px 50px;
	@media only screen and (max-width: 767.99px) {
		font-size: calc(12 / 3.75 * 1vw);
		line-height: calc(22 / 3.75 * 1vw);
		padding: calc(10 / 3.75 * 1vw) calc(25 / 3.75 * 1vw) calc(53 / 3.75 * 1vw);
	}
}


/* contents -------------------------------------------------------------------------*/
.cont-wrap{
	padding-bottom: 80px;
	@media only screen and (max-width: 767.99px) {
		padding: 0 calc(25 / 3.75 * 1vw) calc(95 / 3.75 * 1vw);
	}
	.p-type01{
		margin-bottom: 54px;
	}
	.flx-box{
		margin: 66px 0;
		display: flex;
		justify-content: space-between;
		column-gap: 80px;
		@media only screen and (max-width: 767.99px) {
			flex-direction: column;
			column-gap: normal;
			row-gap: calc(33 / 3.75 * 1vw);
			margin: calc(33 / 3.75 * 1vw) 0;
		}
	}
	.cont-box{
		position: relative;
		display: block;
		transition: .2s ease;
		&:hover{
			@media only screen and (min-width: 768px) {
				opacity: .7;
			}
		}
		.bg img{
			filter: drop-shadow(8px 8px 0px rgba(35,25,24,.2));
		}
		.lead-txt{
			position: absolute;
			font-size: 22px;
			line-height: 37px;
			font-weight: 700;
			padding-left: 20px;
			left: 0;
			@media only screen and (max-width: 767.99px) {
				font-size: calc(17 / 3.75 * 1vw);
				line-height: calc(27 / 3.75 * 1vw);
				padding-left: calc(14 / 3.75 * 1vw);
			}
		}
		.sub-lead{
			position: absolute;
			font-size: 16px;
			line-height: 28px;
			font-weight: 400;
			padding-left: 20px;
			left: 0;
			@media only screen and (max-width: 767.99px) {
				font-size: calc(11 / 3.75 * 1vw);
				line-height: calc(20 / 3.75 * 1vw);
				padding-left: calc(14 / 3.75 * 1vw);
			}
		}
		&.blk01{
			.lead-txt{
				top: 310px;
				@media only screen and (max-width: 767.99px) {
					top: calc(214 / 3.75 * 1vw);
				}
			}
			.sub-lead{
				bottom: 20px;
				@media only screen and (max-width: 767.99px) {
					bottom: auto;
					top: calc(430 / 3.75 * 1vw);
				}
			}
		}
		&.blk02{
			.lead-txt{
				top: 320px;
				@media only screen and (max-width: 767.99px) {
					top: calc(214 / 3.75 * 1vw);
				}
			}
			.sub-lead{
				top: 490px;
				@media only screen and (max-width: 767.99px) {
					bottom: auto;
					top: calc(370 / 3.75 * 1vw);
				}
			}
		}
		&.blk03{
			.lead-txt{
				top: 320px;
				@media only screen and (max-width: 767.99px) {
					top: calc(214 / 3.75 * 1vw);
				}
			}
			.sub-lead{
				top: 490px;
				@media only screen and (max-width: 767.99px) {
					bottom: auto;
					top: calc(360 / 3.75 * 1vw);
				}
			}
		}
		&.blk04{
			.lead-txt{
				top: 262px;
				@media only screen and (max-width: 767.99px) {
					top: calc(210 / 3.75 * 1vw);

				}
			}
			.sub-lead{
				bottom: 14px;
				@media only screen and (max-width: 767.99px) {
					bottom: auto;
					top: calc(345 / 3.75 * 1vw);
				}
			}
		}
	}
}


/* aside -------------------------------------------------------------------------*/
aside{
	background: #e4f4e9;
	padding: 114px 0 78px;
	@media only screen and (max-width: 767.99px) {
		padding: calc(46 / 3.75 * 1vw) calc(24 / 3.75 * 1vw) calc(40 / 3.75 * 1vw);
	}
	.l-inner-wrap{
		position: relative;
		figure{
			width: 130px;
			position: absolute;
			top: -30px;
			left: 35px;
			@media only screen and (max-width: 767.99px) {
				width: calc(94 / 3.75 * 1vw);
				top: calc(-111 / 3.75 * 1vw);
				left:  calc(50% - calc(47 / 3.75 * 1vw)) ;
			}
		}
		.p-type01{
			margin-bottom: 95px;
			@media only screen and (max-width: 767.99px) {
				margin-bottom: calc(36 / 3.75 * 1vw);
			}
		}
		dl.title{
			width: 100%;
			display: flex;
			font-size: 21px;
			padding-left: 28px;
			@media only screen and (max-width: 767.99px) {
				font-size: calc(13 / 3.75 * 1vw);
				padding-left: calc(8 / 3.75 * 1vw);
			}
			dt,dd{
				border-left: 2px solid #231815;
				padding-left: 15px;
				height: 30px;
				display: flex;
				align-items: center;
				font-weight: 500;
				padding-bottom: .2em;
				@media only screen and (max-width: 767.99px) {
					border-left: calc(2 / 3.75 * 1vw) solid #231815;
					padding-left: calc(8 / 3.75 * 1vw);
					height: calc(18 / 3.75 * 1vw);
				}
			}
			dt{
				width: 195px;
				@media only screen and (max-width: 767.99px) {
					width: calc(145 / 3.75 * 1vw);
				}
			}
		}
		.flx-box{
			display: flex;
			flex-direction: column;
			row-gap: 15px;
			@media only screen and (max-width: 767.99px) {
				row-gap: calc(13 / 3.75 * 1vw);
			}
			dl.corse-box {
				width: 100%;
				display: flex;
				height: 60px;
				@media only screen and (max-width: 767.99px) {
					height: auto;
					align-items: stretch;
					min-height: calc(45 / 3.75 * 1vw);
					overflow: hidden;
				}
				&.box01{
					background: #eeefef;
				}
				&.box02{
					background: #e7e8e8;
				}
				&.box03{
					background: #e0e1e1;
				}
				&.box04{
					background: #d9dada;
				}
				&.box05{
					background: #d2d2d3;
				}
				dt{
					height: 100%;
					width: 225px;
					background: url(../../images/prt_cross.svg) right center / contain no-repeat;
					display: flex;
					flex-direction: column;
					justify-content: center;
					padding-left: 30px;
					font-size: 21px;
					@media only screen and (max-width: 767.99px) {
						height: auto;
						justify-content: flex-start;
						font-size: calc(13 / 3.75 * 1vw);
						background: url(../../images/prt_cross_sp.svg) right top / calc(45 / 3.75 * 1vw) auto no-repeat;
						width: calc(145 / 3.75 * 1vw);
						padding: calc(10 / 3.75 * 1vw) 0 0 calc(10 / 3.75 * 1vw);
						&.spbg02{
							background: url(../../images/prt_cross_sp02.svg) right center / auto 100% no-repeat;
						}
					}
					span{
						font-size: 16px;
						@media only screen and (max-width: 767.99px) {
							
							font-size: calc(12 / 3.75 * 1vw);
						}
					}
				}
				dd{
					flex: 1;
					display: flex;
					align-items: center;
					padding-left: 16px;
					font-size: 21px;
					font-weight: 700;
					@media only screen and (max-width: 767.99px) {
						padding: calc(8 / 3.75 * 1vw);
						font-size: calc(14 / 3.75 * 1vw);
						flex-direction: column;
						justify-content: center;
						align-items: flex-start;
					}
					.two-row{
						display: flex;
						flex-direction: column;
						.fs-s{
							font-size: 16px;
							@media only screen and (max-width: 767.99px) {
								font-size: calc(12 / 3.75 * 1vw);
							}
						}
					}
					.slash{
						display: flex;
						align-items: center;
						@media only screen and (max-width: 767.99px) {
							border-top: 1px solid #707070;
							width: 100%;
							padding-top: calc(10 / 3.75 * 1vw);
							margin-top: calc(10 / 3.75 * 1vw);
						}
						&::before{
							content: "";
							display: block;
							background: url(../../images/icn_slush.svg) center center / contain no-repeat;
							width: 19px;
							height: 34px;
							margin: 0 12px;
							@media only screen and (max-width: 767.99px) {
								content: none;
							}
						}
					}
				}
				
			}
		}
		.link-box{
			display: flex;
			justify-content: center;
			a{
				width: 500px;
				transition: .2s ease;
				margin-top: 75px;
				@media only screen and (min-width: 768px) {
					&:hover{
						opacity: .7;
					}
				}
				@media only screen and (max-width: 767.99px) {
					margin-top: calc(38 / 3.75 * 1vw);
					width: 100%;
				}
			}
		}
	}
}