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

section:not(:last-of-type) {
	margin-bottom: 80px;
}
section .container {
	max-width: 944px;
	width: calc(100% - 40px);
	margin-inline: auto;
}
@media screen and (max-width: 768px) {
	section:not(:last-of-type) {
		margin-bottom: 40px;
	}
}

/*h2*/
section h2 {
	position: relative;
	font-size: 28px;
	line-height: 1.3;
	margin-bottom: 40px;
	padding-bottom: 16px;
}
section h2:before,
section h2:after {
	content: "";
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	height: 1px;
}
section h2:before {
	background-color: #CCD9D4;
	width: 100%;
}
section h2:after {
	background-color: #033824;
	width: 120px;
}
@media screen and (max-width: 768px) {
	section h2 {
		font-size: 20px;
		margin-bottom: 24px;
	}
}

/*h3.g-h*/
section h3.g-h {
	position: relative;
	font-size: 22px;
	margin-bottom: 24px;
	padding-bottom: 16px;
}
section h3.g-h:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	background-color: #033824;
	width: 56px;
	height: 2px;
}
@media screen and (max-width: 768px) {
	section h3.g-h {
		font-size: 18px;
	}
}

/*ul*/
section ul {
	margin-left: 24px;
}
@media screen and (max-width: 768px) {}

/*table*/
section table {
	margin-bottom: 40px;
}
section table th,
section table td {
	border: none;
	border-bottom: 1px solid #CCD9D4;
	border-top: 1px solid #CCD9D4;
	padding: 16px 0;
}
section table th {
	position: relative;
	width: 24%;
	padding-right: 16px;
}
section table th:after {
	content: "";
	position: absolute;
	top: 8px;
	right: 0;
	bottom: 8px;
	border-right: 1px solid #CCD9D4;
}
section table td {
	padding-left: 16px;
}
@media screen and (max-width: 768px) {
	section table {
		margin-bottom: 24px;
	}
}

/*.btn*/
.btn a {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #EDF5F0;
	border-radius: 28px;
	max-width: 280px;
	width: 100%;
	height: 56px;
	margin: 0 auto;
}
.btn.register a {
	border: 1px solid #e6002d;
	background-color: #fff;
	color: #e6002d;
}
@media screen and (max-width: 768px) {
	.btn a {
		border-radius: 24px;
		max-width: 240px;
		height: 48px;
	}
}


/*------------------------------------
#intro
------------------------------------*/
#intro {
	margin-bottom: 120px;
}
#intro img {
	margin-bottom: 64px;
}
#intro h2 {
	font-size: 36px;
	text-align: center;
	padding: 0;
}
#intro h2:before,
#intro h2:after {
	content: none;
}
#intro .txt {
	max-width: 640px;
	margin: 0 auto;
}
#intro .txt p {
	line-height: 2;
}
#intro .txt p:not(:last-child) {
	margin-bottom: 24px;
}
@media screen and (max-width: 768px) {
	#intro {
		margin-bottom: 64px;
	}
	#intro img {
		margin-bottom: 56px;
	}
	#intro h2 {
		font-size: 22px;
	}
}

/*.member__inner*/
.member__inner {
	margin-top: 70px;
}
.member__inner dt {
	font-size: 24px;
	font-weight: 700;
	text-align: center;
	margin-bottom: 15px;
}
.member__inner .btn {
	list-style: none;
	display: flex;
	justify-content: center;
	gap: 20px;
	margin: 0;
}
.member__inner li {
	max-width: 300px;
	width: 100%;
}
.member__inner a {
	background-color: #00AE68;
	border-radius: 30px;
	max-width: 300px;
	height: 60px;
	font-size: 18px;
	color: #fff;
}
@media screen and (max-width: 768px) {
	.member__inner {
		margin-top: 25px;
	}
	.member__inner dt {
		font-size: 18px;
	}
	.member__inner .btn {
		flex-wrap: wrap;
	}
	.member__inner a {
		max-width: 320px;
	}
	.member__inner li {
		max-width: 100%;
	}
}


/*------------------------------------
#membership
------------------------------------*/
#membership {
	background-color: #EDF5F0;
	padding: 120px 0;
}
#membership .tokuten {
	display: flex;
	flex-wrap: wrap;
	gap: 40px;
	margin-top: 40px;
}
#membership .tokuten dl {
	width: calc((100% - 40px) / 2);
}
#membership .tokuten dl dt {
	display: inline-flex;
	justify-content: center;
	align-items: baseline;
	background-color: #00AE68;
	border-radius: 10px 10px 0 0;
	font-size: 20px;
	line-height: 1;
	color: #fff;
	padding: 8px 40px 12px;
}
#membership .tokuten dl dt span {
	font-size: 28px;
	font-weight: 700;
	font-style: italic;
}
#membership .tokuten dl dd {
	background-color: #fff;
	border-radius: 0 10px 10px;
	box-shadow: 0 0 5px rgba(0,0,0,.1);
	padding: 32px;
}
#membership .tokuten dl dd h3 {
	display: flex;
	justify-content: center;
	align-items: center;
	background-color: #00AE68;
	border-radius: 25px;
	font-size: 18px;
	line-height: 1.2;
	color: #fff;
	margin-bottom: 24px;
	padding: 10px 20px;
}
#membership .tokuten dl dd .row {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
}
#membership .tokuten dl dd .row .half {
	width: calc((100% - 24px) / 2);
}
@media screen and (max-width: 768px) {
	#membership {
		padding: 64px 0;
	}
	#membership .tokuten {
		gap: 20px;
	}
	#membership .tokuten dl {
		width: 100%;
	}
	#membership .tokuten dl dt {
		font-size: 15px;
		padding: 4px 40px 8px;
	}
	#membership .tokuten dl dt span {
		font-size: 24px;
	}
	#membership .tokuten dl dd {
		padding: 24px;
	}
	#membership .tokuten dl dd h3 {
		font-size: 16px;
		margin-bottom: 16px;
		padding: 10px;
	}
	#membership .tokuten dl dd .row {
		gap: 0;
	}
	#membership .tokuten dl dd .row .half {
		width: 100%;
	}
	#membership .tokuten dl dd .row .half img {
		display: none;
	}
}


/*------------------------------------
#flow
------------------------------------*/
#flow .flow-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 16px 0 0;
}
#flow .flow-list > li {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
}
#flow .flow-list > li .block {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	background-color: #EDF5F0;
	width: 100%;
	padding: 32px 40px;
}
#flow .flow-list > li .block .num {
	min-width: 120px;
	font-size: 18px;
	font-weight: 600;
	letter-spacing: .08em;
}
#flow .flow-list > li .block h3 {
	font-size: 20px;
	line-height: 1.2;
	margin-bottom: 12px;
}
#flow .flow-list > li .list {
	list-style: none;
	background-color: #fff;
	margin: 16px 0 0;
	padding: 24px 32px;
}
#flow .flow-list > li .list > li {
	display: flex;
}
#flow .flow-list > li .list > li:not(:last-child) {
	margin-bottom: 20px;
}
#flow .flow-list > li .list > li:before {
	content: "";
	display: block;
	background-color: #9fa0a0;
	border-radius: 50%;
	width: 8px;
	height: 8px;
	margin: 10px 12px 0 0;
}
#flow .flow-list > li .list > li div {
	width: calc(100% - 20px);
}
#flow .flow-list > li .list > li strong {
	display: block;
	font-size: 18px;
	font-weight: 700;
	margin-bottom: 8px;
}
#flow .flow-list > li .list > li .btn {
	margin-top: 15px;
}
#flow .flow-list > li .list > li p {
	background-color: #f5f5f5;
	margin-top: 16px;
	padding: 16px 24px;
}
#flow .flow-list > li .dot {
	display: flex;
	background-color: #033824;
	border-radius: 50%;
	width: 8px;
	height: 8px;
}
@media screen and (max-width: 768px) {
	#flow .flow-list > li .block h3 {
		font-size: 18px;
		margin-bottom: 4px;
	}
	#flow .flow-list > li .block {
		flex-wrap: wrap;
		gap: 4px;
		padding: 24px;
	}
	#flow .flow-list > li .block .num {
		width: 100%;
		font-size: 13px;
	}
	#flow .flow-list > li .list {
		padding: 20px;
	}
	#flow .flow-list > li .list > li:not(:last-child) {
		margin-bottom: 12px;
	}
	#flow .flow-list > li .list > li strong {
		font-size: 16px;
	}
	#flow .flow-list > li .list > li p {
		padding: 12px 16px;
	}
}


/*------------------------------------
#guidelines
------------------------------------*/
@media screen and (max-width: 768px) {}


/*------------------------------------
#faq
------------------------------------*/
#faq #accordion {
	margin-bottom: 64px;
}
@media screen and (max-width: 768px) {
	#faq #accordion {
		margin-bottom: 32px;
	}
}


/*------------------------------------
.reserve-footer
------------------------------------*/
.reserve-footer .block {
	text-align: center;
}
.reserve-footer .block:first-of-type {
	background-color: #033824;
	border-radius: 10px;
	padding: 50px 30px;
}
.reserve-footer .block:first-of-type p {
	font-size: 18px;
	color: #fff;
	margin-top: 24px;
}
.reserve-footer .block:first-of-type .btn a {
	background-color: #fff;
	border: none;
	max-width: 450px;
	color: #033824;
}
.reserve-footer .block:first-of-type .member__inner {
	margin: 0;
}
.reserve-footer .block:first-of-type .member__inner dt {
	color: #fff;
}
.reserve-footer .block:nth-of-type(2) {
	margin-top: 64px;
}
.reserve-footer .block:nth-of-type(2) h3 {
	position: relative;
	font-size: 24px;
	margin-bottom: 16px;
	padding-bottom: 24px;
}
.reserve-footer .block:nth-of-type(2) h3:after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 50%;
	transform: translateX(-50%);
	-webkit-transform: translateX(-50%);
	-ms-transform: translateX(-50%);
	background-color: #033824;
	width: 56px;
	height: 2px;
}
.reserve-footer .block:nth-of-type(2) p {
	font-size: 18px;
	margin-bottom: 32px;
}
.reserve-footer .block:nth-of-type(2) .btn a {
	letter-spacing: .08em;
}
@media screen and (max-width: 768px) {
	.reserve-footer .block:first-of-type p {
		font-size: 16px;
		text-align: left;
	}
	.reserve-footer .block:nth-of-type(2) p {
		font-size: 16px;
		text-align: left;
	}
}
