/* CSS Document */


#fv {
	padding: 0 20px;
	box-sizing: border-box;
	max-width: 1440px;
  margin: auto;
	position: relative;
}
#fv .img {
	max-width: 980px;
}
#fv .img img {
	border-radius: 20px;
}
#fv .title {
	max-width: 520px;
  background: rgba(255,255,255, .9);
  padding: 60px 40px;
  box-sizing: border-box;
	position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
}
#fv .title h2 {
	font-size: 220%;
  line-height: 1.2;
	letter-spacing: 2px;
	color: #70BC5C;
	margin: 0 0 15px;
}
#fv .title p {
	font-size: 105%;
	font-weight: 500;
	line-height: 2;
	text-align: justify;
}



#purpose {
	padding: 80px 0 40px;
}
#purpose .inner {
	max-width: 1040px;
  display: flex;
  gap: 80px;
	position: relative;
}
#purpose .inner::before,
#purpose .inner::after {
	content: '';
	position: absolute;
	border-radius: 100%;
  z-index: -1;
}
#purpose .inner::before {
	width: 700px;
  height: 700px;
  background: #FEFAF2;
  top: -160%;
  left: 33%;
}
#purpose .inner::after {
	width: 100px;
  height: 100px;
  background: #F1D5E1;
  top: -38%;
  left: 97%;
}
#purpose .txt,
#purpose .img {
	width: 50%;
}
#purpose .txt h2 {
	font-size: 220%;
	line-height: 1.4;
	margin: 20px 0;
}
#purpose .txt h2 span {
	color: #F19DB5;
}
#purpose .txt h2 .col {
	color: #EB9B71;
}
#purpose .txt p {
	text-align: justify;
}
#purpose .img img {
	border-radius: 20px;
}



#facilityList {
	padding: 200px 0 150px;
	background: #F1F9F2;
	position: relative;
}
#facilityList::before,
#facilityList::after {
	content: url("../module/img/bg_wave.svg");
	width: 100%;
	line-height: 0;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
}
#facilityList::before {
	top: -1px;
	transform: translateX(-50%) scaleY(-1);
}
#facilityList::after {
	bottom: -1px;
	transform: translateX(-50%) scaleX(-1);
}
#facilityList .inner {
	position: relative;
}
#facilityList .banner {
	width: 200px;
  position: absolute;
  top: -130px;
  right: 0;
}
#facilityList h2 {
	font-size: 200%;
  line-height: 1.4;
  letter-spacing: 4px;
  text-align: center;
  color: #70BC5C;
  margin: 0 0 80px;
  position: relative;
}
#facilityList h2::after {
	content: '';
  border-bottom: 4px dotted #70BC5C;
  width: 170px;
  position: absolute;
  bottom: -15px;
  left: 50%;
  transform: translateX(-50%);
}


#facilityList .facility {
  margin: 60px 0;
	background: #fff;
	border: 4px solid #C1DDC2;
	border-radius: 15px;
	padding: 5px;
	display: flex;
}
#facilityList .facility:first-of-type {
  margin-top: 100px;
}
#facilityList .facility .img {
	width: 50%;
}
#facilityList .facility .img img {
	border-radius: 10px 0 0 10px;
}
#facilityList .facility .txt {
	width: 50%;
	line-height: 1.6;
	padding: 20px 30px;
  box-sizing: border-box;
}
#facilityList .facility .txt h3 {
	line-height: 1.5;
	display: flex;
	flex-direction: column;
	border-bottom: 4px dotted #70BC5C;
	color: #70BC5C;
	padding: 0 0 10px;
  margin: 0 0 15px;
}
#facilityList .facility .txt h3 strong {
	font-size: 160%;
}
#facilityList .facility .txt h3 strong span {
	font-size: 17px;
  margin-left: 20px;
}
#facilityList .facility .txt .info {
	font-size: 96%;
	font-weight: 500;
	text-align: justify;
}
#facilityList .facility .txt dl {
	font-size: 90%;
	margin: 20px 0 30px;
	display: flex;
  flex-wrap: wrap;
}
#facilityList .facility .txt dl dt {
	width: 105px;
}
#facilityList .facility .txt dl dd {
	width: calc(100% - 105px);
	text-align: justify;
}
#facilityList .facility .txt .more {
	text-align: center;
}
#facilityList .facility .txt .more a {
	color: #70BC5C;
	border-color: #70BC5C;
}
#facilityList .facility .txt .more a::after {
	content: none;
}


#contact {
	padding: 0 0 80px;
}
#contact .banner {
	max-width: 560px;
  margin: auto;
}






@media screen and (max-width: 480px) {
  
	#fv .img img {
		border-radius: 15px;
		aspect-ratio: 3/2;
    width: 100%;
    object-fit: cover;
	}
	#fv .title {
		background: none;
		padding: 20px 0;
		position: static;
		transform: unset;
	}
	#fv .title h2 {
		font-size: 180%;
		text-align: center;
		margin: 0 0 10px;
	}
	
	#purpose {
		padding: 40px 0 80px;
		overflow-x: clip;
	}
	#purpose .inner {
		flex-direction: column-reverse;
		gap: 10px;
	}
	#purpose .inner::before {
		width: 300px;
		height: 300px;
		top: -90%;
		left: 25%;
	}
	#purpose .inner::after {
		width: 60px;
		height: 60px;
		top: -10%;
		left: 73%;
	}
	#purpose .txt,
	#purpose .img {
		width: 100%;
	}
	#purpose .img img {
		border-radius: 15px;
		aspect-ratio: 3/2;
    width: 100%;
    object-fit: cover;
	}
	#purpose .txt h2 {
		font-size: 180%;
		text-align: center;
		margin: 10px 0;
	}
	
	
	#facilityList {
		padding: 80px 0 60px;
	}
	#facilityList .banner {
		display: none;
	}
	#facilityList h2 {
		font-size: 160%;
		margin: 0 0 40px;
	}
	#facilityList h2::after {
		width: 140px;
		bottom: -10px;
	}
	
	
	#facilityList .facility {
		flex-direction: column;
		margin: 40px 0;
		border: 3px solid #C1DDC2;
  	border-radius: 10px;
	}
	#facilityList .facility:first-of-type {
		margin-top: 50px;
	}
	#facilityList .facility .img {
		width: 100%;
	}
	#facilityList .facility .img img {
		border-radius: 5px 5px 0 0;
		aspect-ratio: 4/3;
    width: 100%;
    object-fit: cover;
	}
	#facilityList .facility .txt {
		width: 100%;
		padding: 15px 10px 30px;
	}
	#facilityList .facility .txt h3 strong span {
		font-size: 14px;
		margin-left: 10px;
	}
	#facilityList .facility .txt dl {
		margin: 20px 0 30px;
	}
	#facilityList .facility .txt dl dt {
		width: 70px;
	}
	#facilityList .facility .txt dl dd {
		width: calc(100% - 70px);
	}
	
	#contact {
		padding: 40px 0;
	}
	#contact .banner {
		max-width: 200px;
	}
	
	
	
	
	
	
	
	
	
}
