@charset "UTF-8";
body#fees .c-relatedpages {
	.item-fees {
		display: none;
	}
}
/* -----------------------------------------------------------
	.p-fees
----------------------------------------------------------- */
.p-fees {
	padding-top: 240px;
	position: relative;
	@media (min-width: 768px) and (max-width: 1024px) {
		padding-top: 160px;
	}
	@media (max-width: 767px) {
		padding-top: 80px;
	}
	&::before {
		content: '';
		width: 100%;
		height: 240px;
		background: linear-gradient(180deg, rgba(255, 255, 255, 0.00) 0%, rgba(255, 255, 255, 0.60) 100%);
		position: absolute;
		top: 0;
		left: 0;
	}
	&:after {
		content: "";
		width: 100%;
		height: calc(100% - 240px);
		background: rgba(255, 255, 255, 0.60);
		position: absolute;
		bottom: 0;
		left: 0;
	}
	@media (min-width: 768px) and (max-width: 1024px) {
		padding-top: 160px;
		&:before {
			height: 160px;
		}
		&::after {
			height: calc(100% - 160px);
		}
	}
	@media (max-width: 767px) {
		padding-top: 80px;
		&:before {
			height: 80px;
		}
		&::after {
			height: calc(100% - 80px);
		}
	}
	.wrap-fees {
		position: relative;
		z-index: 1;
		display: flex;
		flex-direction: column;
		gap:120px 0;
		@media (max-width: 767px) {
			gap:80px 0;
		}
		.c-title-basic {
			margin-bottom: 64px;
			@media (min-width: 768px) and (max-width: 1024px) {
				margin-bottom: 40px;
			}
			@media (max-width: 767px) {
				margin-bottom: 32px;
			}
			.en-title {
				@media (max-width: 767px) {
					font-size: calc(32 * var(--rem));
				}
			}
		}
		.contents-fees {
			display: flex;
			flex-direction: column;
			gap: 16px;
			.item-fees {
				border-radius: 8px;
				border-top: 1px solid #fff;
				background: rgba(255, 255, 255, 0.5);
				padding: 64px;
				@media (min-width: 768px) and (max-width: 1024px) {
					padding: 64px 48px;
				}
				@media (max-width: 767px) {
					padding: 40px 24px;
				}
				.inner-outline {
					margin-bottom: 40px;
					@media (min-width: 1025px) {
						display: grid;
						grid-template-columns: 1fr 400px;
						grid-template-rows: repeat(2, auto);
						grid-column-gap: 64px;
						grid-row-gap: 24px;
					}
					@media (min-width: 768px) and (max-width: 1024px) {
						display: grid;
						grid-template-columns: 1fr 240px;
						grid-template-rows: repeat(2, auto);
						grid-column-gap: 40px;
						grid-row-gap: 40px;
						margin-bottom: 24px;
					}
					@media (max-width: 767px) {
						margin-bottom: 32px;
					}
					.box-title-price {
						@media (min-width: 1025px) {
							grid-area: 1 / 1 / 2 / 2;
							align-self: center;
						}
						@media (min-width: 768px) and (max-width: 1024px) {
							grid-area: 1 / 1 / 2 / 2;
							align-self: center;
						}
						@media (max-width: 767px) {
							margin-bottom: 32px;
						}
						.title-sub {
							font-family: var(--font-mincho);
							color: var(--color-title);
							font-size: calc(18 * var(--rem));
							font-weight: 600;
							line-height: 1.5;
							margin-bottom: 8px;
							letter-spacing: 0.08em;
							@media (max-width: 767px) {
								text-align: center;
								font-size: calc(15 * var(--rem));
							}
						}
						.wrap-title {
							@media (min-width: 1025px) {
								display: flex;
								justify-content: space-between;
								align-items: flex-end;
								gap:0 16px;
								margin-bottom: 8px;
								h3 {
									flex: 1;
									min-width: 0;
									line-height: 1.2;
								}
								.text-price {
									text-align: right;
									margin-top: 0;
									white-space: nowrap;
								}
							}
						}
						h3 {
							font-family: var(--font-mincho);
							color: var(--color-title);
							font-size: calc(28 * var(--rem));
							line-height: 1;
							letter-spacing: 0.08em;
							@media (max-width: 767px) {
								text-align: center;
								font-size: calc(24 * var(--rem));
								letter-spacing: 0;
							}
						}
						.text-price {
							color: var(--color-txt-red);
							line-height: 1;
							font-weight: 500;
							margin-top: 24px;
							@media (max-width: 767px) {
								margin-top: 16px;
								text-align: center;
							}
							em {
								font-family: var(--font-sans);
								font-size: calc(32 * var(--rem));
								font-weight: 400;
							}
						}
						.text-notice {
							@media (min-width: 768px) and (max-width: 1024px) {
								margin-top: 8px;
								font-size: 91%;
							}
							@media (max-width: 767px) {
								margin-top: 8px;
								font-size: 83.2%;
								line-height: 1.5;
							}
						}
					}
					.img {
						width: 100%;
						aspect-ratio: 4/3;
						overflow: hidden;
						border-radius: 9999px;
						@media (min-width: 1025px) {
							grid-area: 1 / 2 / 3 / 3;
						}
						@media (min-width: 768px) and (max-width: 1024px) {
							grid-area: 1 / 2 / 2 / 3;
						}
						@media (max-width: 767px) {
							margin-bottom: 32px;
						}
						img {
							border-radius: 9999px;
							width: 100%;
							height: 100%;
							object-fit: cover;
						}
					}
					.text-lead {
						letter-spacing: 0.08em;
						@media (min-width: 1025px) {
							grid-area: 2 / 1 / 3 / 2;
						}
						@media (min-width: 768px) and (max-width: 1024px) {
							grid-area: 2 / 1 / 3 / 3;
						}
					}
				}
				.inner-detail {
					.c-button-cta {
						margin-top: 48px;
						@media (max-width: 767px) {
							margin-top: 24px;
						}
					}
				}
			}
			.item-option {
				border-radius: 8px;
				border-top: 1px solid #fff;
				background: rgba(255, 255, 255, 0.2);
				padding: 64px;
				@media (min-width: 768px) and (max-width: 1024px) {
					padding: 48px;
				}
				@media (max-width: 767px) {
					padding: 40px 24px;
				}
				.c-title-middle {
					margin-bottom: 16px;
					@media (max-width: 767px) {
						margin-bottom: 8px;
					}
				}
				.c-table-basic {
					th {
						width: 35%;
						@media (max-width: 767px) {
							width: 100%;
						}
						.outline {
							margin-bottom: 16px;
							@media (min-width: 1025px) {
								display: flex;
								justify-content: space-between;
							}
							@media (max-width: 767px) {
								margin-bottom: 8px;
							}
							.name {
								font-size: calc(18 * var(--rem));
							}
							.price {
								font-weight: 400;
								em {
									font-size: calc(20 * var(--rem));
								}
							}
						}
						.caution {
							font-size: 81.3%;
							letter-spacing: 0;
							font-weight: 400;
						}
					}
					td {
						width: 65%;
						@media (max-width: 767px) {
							width: 100%;
						}
						.text-caution {
							font-size: 81.3%;
						}
					}
				}
			}
		}
	}
}

/* -----------------------------------------------------------
	.p-payment
----------------------------------------------------------- */
.p-payment {
	padding: 240px 0;
	background: rgba(255, 255, 255, 0.60);
	@media (min-width: 768px) and (max-width: 1024px) {
		padding: 160px 0;
	}
	@media (max-width: 767px) {
		padding: 120px 0;
	}
	.wrap-payment {
		.c-title-basic {
			margin-bottom: 64px;
			@media (max-width: 767px) {
				margin-bottom: 32px;
			}
			.en-title {
				@media (max-width: 767px) {
					font-size: calc(32 * var(--rem));
				}
			}
		}
		.list-payment {
			display: grid;
			grid-template-columns: repeat(2, 1fr);
			grid-column-gap: 8px;
			@media (max-width: 767px) {
				grid-template-columns: 1fr;
				grid-template-rows: repeat(2, auto);
				grid-column-gap: 0px;
				grid-row-gap: 8px;
			}
			.item-payment {
				border-radius: 8px;
				background: rgba(255, 255, 255, 0.50);
				padding: 40px 32px 24px;
				h3 {
					text-align: center;
					margin-bottom: 32px;
					@media (max-width: 767px) {
						margin-bottom: 16px;
					}
					span {
						display: block;
						&.en {
							font-family: var(--font-sans);
							color: var(--color-pink);
							font-weight: 400;
							margin-bottom: 4px;
							line-height: 1;
						}
						&.jp {
							font-family: var(--font-mincho);
							font-size: calc(22 * var(--rem));
							font-weight: 600;
							line-height: 1.5;
							@media (max-width: 767px) {
								font-size: calc(20 * var(--rem));
							}
						}
					}
				}
				.text {
					@media (min-width: 768px) {
						font-size: 93.8%;
					}
				}
				.img {
					background-color: #fff;
					margin-top: 4px;
					padding: 10px;
					text-align: center;
				}
			}
		}
		.c-table-basic {
			margin-top: 64px;
			@media (max-width: 767px) {
				margin-top: 32px;
			}
			tr {
				td {
					.list-caution {
						padding-top: 1em;
						li {
							display: flex;
							font-size: 81.3%;
							@media (max-width: 767px) {
								letter-spacing: 0;
							}
							&::before {
								content: "※";
								display: inline-block;
							}
						}
					}
				}
			}
		}
	}
}
