@charset "utf-8";

@font-face {
    font-family: "Noto Sans JP";
    src: url(/fonts/NotoSansJP-SemiBold.woff2);
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "Zen Old Mincho";
    src: url(/fonts/ZenOldMincho-Medium.woff2);
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "Zen Old Mincho";
    src: url(/fonts/ZenOldMincho-SemiBold.woff2);
    font-weight: 600;
    font-display: swap;
}
@font-face {
    font-family: "Zen Old Mincho";
    src: url(/fonts/ZenOldMincho-Bold.woff2);
    font-weight: 700;
    font-display: swap;
}
body {
	-webkit-text-size-adjust: 100%;
}

#contents {
	width: auto;
	padding: 0;
	background: #FAFAFA;
}
.l-main * {
	font-family: "Yu Gothic";
}
.l-main {
	padding: 0;
	width: auto;
	overflow: hidden;
	background-color: #FAFAFA;
}

.main__img {
	height: 480px;
}

.main__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

[class*="section__wrapper--"] {
	padding-block: 98px;
}
	[class*="section__inner--"] {
		width: 1140px;
		margin: 0 auto;
	}
		[class*="section__box--"] {
			display: flex;
			flex-direction: column;
			gap: 20px;
			margin-bottom: 38px;
			align-items: center;
		}
			[class*="section__ttl--"] {
				color: #263238;
				font-size: 26px;
				font-weight: 700;
				line-height: 1;
			}
			[class*="section__sub-ttl--"] {
				color: #05460F;
				text-align: center;
				font-size: 12px;
				font-weight: 400;
				line-height: 1;
				letter-spacing: 0.3em;
			}
				.section__image {
					width: 100%;
					height: 100%;
					object-fit: contain;
				}

.section__wrapper--worries {
	background: #FAFAFA;
}
		.worries__bag {
			display: flex;
			flex-direction: column;
			gap: 20px;
			margin-bottom: 100px;
		}
		.worries__list {
			display: flex;
			gap: 32px;
		}
		.worries__list:last-child {
			padding-left: 56px;
		}
			.worries__item {
				width: 340px;
				min-height: 280px;
			}
		.worries__box {
			display: flex;
			flex-direction: column;
			gap: 12px;
			align-items: center;
			margin-bottom: 40px;
		}
			.worries__text {
				color: #263238;
				text-align: center;
				font-size: 26px;
				font-weight: 700;
				line-height: 1;
			}
			.worries__message {
				display: flex;
				gap: 8px;
				align-items: center;
			}
				.worries__message-image {
					width: 518px;
					min-height: 62px;
				}
				
		.worries__block {
			display: flex;
			flex-direction: column;
			gap: 10px;
			z-index: 1;
		}
			[class*="worries__cell--"] {
				display: flex;
				flex-direction: column;
				gap: 15px;
				min-height: 300px;
				justify-content: center;
				position: relative;
				z-index: 1;
			}
			[class*="worries__cell--"]:nth-child(even) {
				align-items: flex-end;
			}
			[class*="worries__cell--"]::before {
				content: "";
				position: absolute;
				width: 1240px;
				top: 0;
				bottom: 0;
				z-index: -1;
				right: 0;
				left: 50%;
				transform: translateX(-50%);
				margin: 0 auto;
			}
			.worries__cell--procedure::before {
				background: url(../images/worries-procedure-bg.webp) no-repeat center / cover;
			}
			.worries__cell--consent::before {
				background: url(../images/worries-consent-bg.webp) no-repeat center / cover;
			}
			.worries__cell--choices::before {
				background: url(../images/worries-choices-bg.webp) no-repeat center / cover;
			}
			.worries__cell--vacant::before {
				position: absolute;
				background: url(../images/worries-vacant-bg.webp) no-repeat center / cover;
			}
				.worries__title-box {
					display: flex;
					gap: 8px;
					width: 730px;
					align-items: flex-end;
					padding-bottom: 20px;
					border-bottom: 1px solid rgba(0, 0, 0, 0.25);
				}
					.worries__number {
						color: #05460F;
						font-family: "Zen Old Mincho";
						font-size: 36px;
						font-weight: 500;
						line-height: 1;
					}
					.worries__title {
						color: #263238;
						font-size: 22px;
						font-weight: 700;
						line-height: 1;
					}
				.worries__cell-text {
					color: #263238;
					font-size: 15px;
					font-weight: 500;
					line-height: 1.8;
					width: 722px;
				}
				[class*="worries__cell--"]:nth-child(even) .worries__cell-text {					
					width: 730px;
				}

.section__wrapper--support {
	background: #E2EEE4;
	padding-bottom: 100px;
}
		.support__list {
			display: flex;
			flex-wrap: wrap;
			gap: 20px 24px;
		}
			.support__item {
				display: flex;
				flex-direction: column;
				gap: 12px;
				align-items: center;
				width: 170px;
				min-height: 204px;
			}
				.support__image {
					width: 170px;
					min-height: 170px;
				}
				.support__text {
					color: #263238;
					text-align: center;
					font-size: 22px;
					font-weight: 700;
					line-height: 1;
				}

.section__wrapper--plans {
	background: #FAFAFA;
}
		.plans__box {
			display: flex;
			flex-direction: column;
			gap: 40px;
		}
			.plans__top-text {
				color: #263238;
				text-align: center;
				font-size: 18px;
				font-weight: 500;
				line-height: 1;
			}
			.plans__list {
				display: flex;
				gap: 82px;
				position: relative;
			}
			.plans__list::before {
				content: "";
				position: absolute;
				background: #CFD8DC;
				width: 2px;
				height: 100%;
				right: 0;
				left: 0;
				margin: auto;
			}
				[class*="plans__item--"] {
					display: flex;
					flex-direction: column;
					gap: 20px;
					width: 529px;
				}
					.plans__image-box {
						display: flex;
						flex-direction: column;
						gap: 20px;
					}
						.plans__title-box {
							display: flex;
							flex-direction: column;
							gap: 8px;
							align-items: center;
						}
							.plans__sub-title {
								color: #FFF;
								text-align: center;
								font-size: 15px;
								font-weight: 700;
								line-height: 1;
								display: flex;
								align-items: center;
								justify-content: center;
								width: fit-content;
								padding: 6px 12px 9px;
							}
							.plans__item--intermediary .plans__sub-title {
								background: #05460F;
							}
							.plans__item--purchase .plans__sub-title {
								background: #FF8E01;
							}
							.plans__title {
								text-align: center;
								font-family: "Zen Old Mincho";
								font-size: 36px;
								font-weight: 600;
								line-height: 1;
								letter-spacing: 0.04em;
							}
							.plans__item--intermediary .plans__title {
								color: #05460F;
							}
							.plans__item--purchase .plans__title {
								color: #FF8E01;
							}
						.plans__image {
							width: 529px;
							min-height: 353px;
						}
					.plans__text-box {
						display: flex;
						flex-direction: column;
						gap: 20px;
					}
						.plans__check-list {
							display: flex;
							flex-wrap: wrap;
							gap: 16px 20px;
						}
							.plans__check {
								color: #263238;
								font-size: 18px;
								font-weight: 500;
								line-height: 1;
								position: relative;
								display: flex;
								gap: 8px;
								align-items: center;
							}
							.plans__check:first-child {
								width: 254px;
							}
							.plans__check::before {
								content: "";
								display: block;
								width: 12px;
								height: 9px;
							}
							.plans__item--intermediary .plans__check::before {
								background: url(../images/plans__check01.svg) no-repeat center / cover;
							}
							.plans__item--purchase .plans__check::before {
								background: url(../images/plans__check02.svg) no-repeat center / cover;
							}
						.plans__sentence {
							color: #263238;
							font-size: 15px;
							font-weight: 400;
							line-height: 1.8;
						}
						.plans__color {
							color: #FFF;
							z-index: 1;
							position: relative;
						}
						.plans__color::before,
						.plans__color::after {
							content: "";
							position: absolute;
							z-index: -1;
						}
						.plans__item--intermediary .plans__color::before {
							background: #196E27;
							width: 216px;
							height: 24px;
							left: -3px;
						}
						.plans__item--intermediary .plans__color::after {
							background: #196E27;
							width: 242px;
							height: 24px;
							right: 79px;
						}
						.plans__item--purchase .plans__color::before {
							background: #FFB61A;
							width: 385px;
							height: 24px;
							left: -7px;
						}
						.plans__item--purchase .plans__color::after {
							background: #FFB61A;
							width: 166px;
							height: 24px;
							right: 2px;
						}

.section__wrapper--flow {
	background: #FAFAFA;
	padding-block: 0 98px;
}
		.flow__tab-list {
			display: flex;
		}
		.flow__tab-list:has(.flow__tab--intermediary.is-active) {
			border-bottom: 1px solid #05460F;
		}
		.flow__tab-list:has(.flow__tab--purchase.is-active) {
			border-bottom: 1px solid #FF8E01;
		}
			[class*="flow__tab--"] {
				width: 570px;
				min-height: 60px;
				text-align: center;
				font-size: 22px;
				font-weight: 700;
				line-height: 1;
				display: flex;
				align-items: center;
				justify-content: center;
				transition: opacity 0.3s ease; 
			}
			[class*="flow__tab--"].is-active {
				color: #FFF;
			}
			[class*="flow__tab--"].is-active:hover {
				opacity: 1;
			}
			.flow__tab--intermediary {
				background: #ECFAEE;
				color: #BCD2C0;
			}
			.flow__tab--purchase {
				background: #FFF5E2;
				color: #E3CA9A;
			}
			.flow__tab--intermediary.is-active {
				background: #05460F;
			}
			.flow__tab--purchase.is-active {
				background: #FF8E01;
				color: #FFF;
			}

				[class*="flow__item--"] {
					border: 1px solid #CFD8DC;
					background: #FFF;
					padding: 30px 39px 39px;
					display: none;
				}
				[class*="flow__item--"].is-active {
					display: block;
				}
					.flow__step-list {
						display: flex;
						flex-direction: column;
						gap: 4px;
						position: relative;
						z-index: 1;
					}
					.flow__step-list::before {
						content: "";
						position: absolute;
						background: #05460F;
						width: 2px;
						top: 60px;
						bottom: 30px;
						left: 46px;
						z-index: 1;
					}
					.flow__item--purchase .flow__step-list::before {
						background: #FF8E01;
					}
						.flow__step {
							display: flex;
							gap: 21px;
							align-items: center;
							background: #ECFAEE;
							padding: 12px 16px 12px 12px;
						}
						.flow__item--purchase .flow__step {
							background: #FFF9EA;
						}
							.flow__step-box {
								display: flex;
								gap: 20px;
								align-items: center;
							}
								.flow__icon {
									width: 70px;
									height: 70px;
									flex-shrink: 0;
									position: relative;
									z-index: 2;
								}
								.flow__step-title {
									color: #263238;
									font-size: 18px;
									font-weight: 700;
									line-height: 1.4;
									width: 237px;
								}
							.flow__step-text {
								color: #263238;
								font-size: 15px;
								font-weight: 500;
								line-height: 1.4;
								position: relative;
							}
							.flow__step-text::before {
								content: "";
								position: absolute;
								background: #CFD8DC;
								width: 1px;
								height: 100%;
								left: -22px;
							}


.section__wrapper--contact {
	background: #FAFAFA;
	padding-block: 100px 200px;
}
	.section__inner--contact {
		position: relative;
	}
	.section__inner--contact::before {
		content: "";
		position: absolute;
		background: url(../images/contact-image.webp) no-repeat center / cover;
		width: 972px;
		height: 474px;
		top: -98px;
		right: -390px;
	}
		.contact__box {
			display: flex;
			flex-direction: column;
			gap: 38px;
			width: fit-content;
			max-width: 558px;
		}
			.section__box--contact {
				align-items: flex-start;
				margin-bottom: 0;
			}
				.contact__link-box {
					display: flex;
					flex-direction: column;
					gap: 20px;
				}
					.contact__junction {
						display: flex;
						gap: 10px;
						padding-bottom: 20px;
						border-bottom: 1px solid #CFD8DC;
						width: fit-content;
						flex-wrap: wrap;
						justify-content: center;
					}
						.contact__tel-number {
							color: #263238;
							font-size: 39px;
							font-weight: 700;
							line-height: 1;
							position: relative;
							display: flex;
							gap: 10px;
						}
						.contact__tel-number::before {
							content: "";
							display: block;
							background: url(../images/tel-icon.svg) no-repeat center / cover;
							width: 39px;
							height: 39px;
							flex-shrink: 0;
						}
					.contact__time-box {
						display: flex;
						flex-direction: column;
						gap: 5px;
					}
						.contact__time {
							color: #263238;
							font-size: 11px;
							font-weight: 500;
							line-height: 1.5;
							display: flex;
							align-items: center;
							gap: 3px;
						}
							.contact__time-title {
								background: #ECEFF1;
								width: 52px;
								display: flex;
								justify-content: center;
								align-items: center;
								flex-shrink: 0;
							}
					.contact__list {
						display: flex;
						gap: 11px;
						justify-content: center;
					}
						.contact__btn {
							width: 223px;
							min-height: 100px;
						}
						[class*="contact__link--"] {
							width: 100%;
							height: 100%;
							display: flex;
							padding-top: 60px;
							border-radius: 6px;
							position: relative;
							justify-content: center;
						}
						.contact__link--mail {
							background: #6C2900;
						}
						.contact__link--line {
							background: #06C755;
						}
						[class*="contact__link--"]::before {
							content: "";
							position: absolute;
							right: 0;
							left: 0;
							margin: auto;
						}
						.contact__link--mail::before {
							background: url(../images/mail-icon.svg) no-repeat center / cover;
							width: 30px;
							height: 23px;
							top: 26px;
						}
						.contact__link--line::before {
							background: url(../images/line-icon.svg) no-repeat center / cover;
							width: 30px;
							height: 30px;
							top: 23px;
						}
							.contact__btn-text {
								color: #FFF;
								text-align: center;
								font-family: "Noto Sans JP";
								font-size: 18px;
								font-weight: 600;
								line-height: 1.2;
							}
				
.section__wrapper--faq {
	background: #E2EEE4;
}
		.faq__list {
			display: flex;
			flex-wrap: wrap;
			gap: 10px;
		}
			[class*="faq__item--"] {
				background: #FFF;
				padding: 18px 24px 25px;
				display: flex;
				flex-direction: column;
				gap: 15px;
			}
			.faq__item--default {
				width: 565px;
			}
			.faq__item--long {
				width: 1140px;
			}
				.faq__box {
					display: flex;
					gap: 10px;
					padding-bottom: 17px;
					border-bottom: 1px solid var(--color-template---border-color, #CFD8DC);
					align-items: flex-end;
				}
					.faq__english {
						color: #05460F;
						text-align: center;
						font-family: "Zen Old Mincho";
						font-size: 30px;
						font-weight: 700;
						line-height: 1.05;
					}
					.faq__title {
						color: #263238;
						font-size: 18px;
						font-weight: 700;
						line-height: 1.3;
					}
				.faq__text {
					color: #263238;
					font-size: 15px;
					font-weight: 500;
					line-height: 1.409;
				}

.section__wrapper--colum {
	background: #FAFAFA;
	padding-block: 0 100px;
}
		.colum__bag {
			position: relative;
		}		
		.colum__panel {
			display: flex;
			flex-direction: column;
			gap: 31px;
		}
			.colum__tab-box {
				display: flex;
				justify-content: center;
			}
				.colum__tab-btn {
					width: 285px;
					min-height: 60px;
					background: #ECFAEE;
					color: #BCD2C0;
					text-align: center;
					font-size: 22px;
					font-weight: 700;
					line-height: 1;
					border-bottom: 1px solid #05460F;
				}
				.colum__tab-btn.is-active {
					background: #05460F;
					color: #FFF;
				}
				.colum__tab-btn.is-active:hover {
					opacity: 1;
				}

			.colum__item--useful {
				width: 340px;
				min-height: 352px;
			}
				.colum__item-link {
					display: flex;
					width: 100%;
					height: 100%;
					padding: 20px;
					flex-direction: column;
					gap: 8px;
					border-radius: 6px;
					background: #FFF;
					box-shadow: 0 3px 6px 0 rgba(38, 50, 56, 0.18);
				}
					.colum__image {
						width: 300px;
						height: 200px;
						overflow: hidden;
						background: #eceff1;
					}
						.colum__image img {
							width: 100%;
							height: 100%;
							object-fit: contain;
						}
					.colum__box {
						display: flex;
						flex-direction: column;
						gap: 8px;
					}
						.colum__text-box {
							display: flex;
							flex-direction: column;
							gap: 4px;
							padding-bottom: 10px;
							border-bottom: 1px solid rgba(108, 41, 0, 0.10);
						}
							.date__text {
								color: #6C2900;
								font-size: 15px;
								font-weight: 500;
								line-height: 1.4;
							}
							.colum__title {
								color: #263238;
								text-overflow: ellipsis;
								font-size: 18px;
								font-weight: 700;
								line-height: 1;
								text-overflow: ellipsis;
								overflow: hidden;
								white-space: nowrap;
							}
						.colum__sentence {
							color: #707070;
							text-overflow: ellipsis;
							font-size: 15px;
							font-weight: 400;
							line-height: 1.4;
							-webkit-line-clamp: 2;
							-webkit-box-orient: vertical;
							text-overflow: ellipsis;
							display: -webkit-box;
							overflow: hidden;
						}
			.colum__bottom {
				position: relative;
				margin-top: 29px;
				display: flex;
				justify-content: space-between;
			}
				.colum__bottom-swiper {
					display: flex;
					gap: 11px;
					align-items: center;
				}
				.colum__bag .swiper-button-prev,
				.colum__bag .swiper-button-next {
					position: relative;
					color: #05460F;
					width: 40px;
					height: 40px;
					border-radius: 50%;
					border: 1px solid rgba(5, 70, 15, 0.40);
					flex-shrink: 0;
					position: revert;
					margin: 0;
					transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
				}
				.swiper-button-prev::after,
				.swiper-button-next::after {
					font-size: 14px;
					font-weight: 400;
				}
				.colum__bag .swiper-button-prev:hover,
				.colum__bag .swiper-button-next:hover {
					color: #FFF;
					background: #05460F;
					border-color: #05460F;
				}
				.colum__bottom .swiper-pagination {
					position: relative;
					color: #05460F;
					font-size: 22px;
					font-weight: 500;
					line-height: 1;
					width: fit-content;
					position: revert;
				}
					.colum__btn-wrap {
						width: 210px;
						min-height: 58px;
					}
						.colum__more-link {
							width: 100%;
							height: 100%;
							display: flex;
							justify-content: center;
							color: #FFF;
							text-align: center;
							font-size: 15px;
							font-weight: 700;
							line-height: 1;
							border-radius: 6px;
							border: 1px solid #CFD8DC;
							background: #6C2900;
							padding-top: 18px;
						}
						.colum__repeat {
							display: none;
						}
						.colum__repeat.is-active {
							display: block;
						}
						
						.colum__repeat.is-static .colum__slider-area,
						.colum__repeat.is-static .tab-panel,
						.colum__repeat.is-static .colum__slider-view,
						.colum__repeat.is-static .colum__swiper {
							width: 100%;
						}
						.colum__repeat.is-static .colum__list--colum {
							display: flex;
							justify-content: center;
							align-items: stretch;
							flex-wrap: nowrap;
							gap: 16px;
							width: 100%;
							margin: 0;
							padding: 0;
							list-style: none;
						}
						.colum__repeat.is-static .colum__item--useful {
							flex-shrink: 0;
							width: 340px;
						}
						.colum__repeat.is-static .colum__bottom {
							justify-content: flex-end;
						}
						.colum__repeat.is-static .colum__bottom-swiper,
						.colum__repeat.is-static .swiper-button-prev,
						.colum__repeat.is-static .swiper-button-next,
						.colum__repeat.is-static .swiper-pagination {
							display: none;
						}
