/* Phone link overrides with maximum specificity */
body #wrapper a[href^="tel:"],
body #wrapper a[href^="tel:"]:hover,
body #wrapper a[href^="tel:"]:active,
body #wrapper a[href^="tel:"]:focus {
	pointer-events: none !important;
}

/* Only enable on mobile */
@media screen and (max-width: 767px) {
	body #wrapper a[href^="tel:"],
	body #wrapper a[href^="tel:"]:hover,
	body #wrapper a[href^="tel:"]:active,
	body #wrapper a[href^="tel:"]:focus {
		pointer-events: auto !important;
	}
}

#anchor5-2 {
	margin-top: -100px;
	padding-top: 100px;
}

.common-header001 {
	margin-bottom: 6rem;
	@media screen and (max-width: 767px) {
		margin-bottom: 3rem;
	}
	.en {
		display: block;
		margin-bottom: 2rem;
		font-family: var(--roboto);
		font-style: normal;
		font-weight: 700;
		font-size: 1.8rem;
		line-height: 2.1rem;
		letter-spacing: 0.05em;
		color: #2d9839;
		text-align: center;
		@media screen and (max-width: 767px) {
			font-size: 1.4rem;
			margin-bottom: 1rem;
		}
	}
	.jp {
		display: block;
		font-family: var(--zenkaku);
		font-style: normal;
		font-weight: 700;
		font-size: 4.2rem;
		line-height: 6.1rem;
		letter-spacing: 0.1em;
		color: #000000;
		text-align: center;
		@media screen and (max-width: 767px) {
			font-size: 2.4rem;
			line-height: 1.4;
		}
	}
}

.common_header {
	font-family: var(--mplus);
	font-style: normal;
	font-weight: 800;
	font-size: 4rem;
	line-height: 5.9rem;
	text-align: center;
	letter-spacing: 0.06em;
	color: #000000;
	@media screen and (max-width: 767px) {
		font-size: 2rem;
		line-height: 3rem;
	}
}

.main_banner {
	width: 100%;
	padding-top: 8rem;
	@media screen and (max-width: 767px) {
		padding-top: 3.2rem;
	}
	& img {
		width: 100%;
	}
}

#block2 {
	padding-top: 9rem;
	padding-bottom: 16.7rem;
	background-color: #f1f0eb;
	position: relative;
	overflow: hidden;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	&:after {
		content: "";
		position: absolute;
		bottom: 0.2rem;
		left: 0;
		width: 100%;
		height: 100%;
		background: url("../img/block2-bg.png") no-repeat bottom center / 100% auto;
	}
	&:before {
		content: "";
		position: absolute;
		bottom: -2rem;
		left: 0;
		width: 100%;
		height: 2.2rem;
		background-color: #2d9839;
	}
	.title {
		font-family: var(--zenkaku);
		font-style: normal;
		font-weight: 700;
		font-size: 4rem;
		line-height: 1;
		text-align: left;
		letter-spacing: 0.06em;
		color: #000000;
		margin-bottom: 6rem;
		padding-left: 10rem;
		box-sizing: border-box;
		position: relative;
		@media screen and (max-width: 767px) {
			font-size: 2.4rem;
			padding-left: 6rem;
			margin-bottom: 3rem;
		}
		&:after {
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			transform: translateY(-50%);
			width: 8rem;
			height: 8rem;
			background: url("../img/block-title-icon.png") no-repeat center / 100% auto;
			@media screen and (max-width: 767px) {
				width: 5rem;
				height: 5rem;
			}
		}
	}
	.flexwrap-contents {
		display: flex;
		flex-wrap: wrap;
		gap: 4rem;
		.card {
			width: 65rem;
			background-color: #fff;
			border-radius: 2rem;
			position: relative;
			padding: 4.7rem 18rem 3.8rem 4rem;
			box-sizing: border-box;
			overflow: hidden;
			@media screen and (max-width: 767px) {
				width: 100%;
				padding: 2rem;
			}
			.card-title {
				margin-bottom: 2rem;
				font-style: normal;
				font-weight: 700;
				font-size: 2.2rem;
				line-height: 2.8rem;
				letter-spacing: 0.05em;
				color: #000000;
				white-space: nowrap;
				@media screen and (max-width: 767px) {
					white-space: wrap;
					font-size: 1.8rem;
				}
			}
			.card-description {
				font-style: normal;
				font-weight: 400;
				font-size: 1.8rem;
				line-height: 160%;
				letter-spacing: 0.05em;
				color: #000000;
				@media screen and (max-width: 767px) {
					padding-right: 6rem;
					box-sizing: border-box;
				}
			}
			.avatar {
				position: absolute;
				right: 0;
				bottom: 0;
				width: 18rem;
				@media screen and (max-width: 767px) {
					width: 9rem;
				}
				& img {
					width: 100%;
					vertical-align: top;
				}
			}
		}
	}
}

#block3 {
	position: relative;
	margin-top: -0.6rem;
	width: 100%;
	background-color: #2d9839;
	padding-top: 8.6rem;
	padding-bottom: 7.6rem;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
		margin-top: -0.3rem;
	}
	.title {
		font-family: var(--zenkaku);
		font-style: normal;
		font-weight: 700;
		font-size: 6.8rem;
		line-height: 1;
		text-align: center;
		letter-spacing: 0.1em;
		color: #ffffff;
		margin-bottom: 8.3rem;
		@media screen and (max-width: 767px) {
			font-size: 2.8rem;
			line-height: 1.2;
			letter-spacing: 0.05em;
			/* text-align: left;*/
			margin-bottom: 3rem;
		}
		& span {
			font-size: 8rem;
			color: #fffc01;
			letter-spacing: 0.1em;
			line-height: 1;
			@media screen and (max-width: 767px) {
				font-size: 3.2rem;
				letter-spacing: 0.05em;
			}
		}
	}
	.white-card {
		background-color: #fff;
		border-radius: 1.4rem;
		padding: 5rem 6rem 6rem;
		box-sizing: border-box;
		position: relative;
		z-index: -1;
		@media screen and (max-width: 767px) {
			padding: 2rem;
		}
		.card-title {
			font-style: normal;
			font-weight: 700;
			font-size: 3.6rem;
			line-height: 160%;
			text-align: center;
			letter-spacing: 0.05em;
			color: #1a1311;
			margin-bottom: 3.5rem;
			position: relative;
			z-index: -1;
			@media screen and (max-width: 767px) {
				font-size: 1.8rem;
				text-align: left;
			}
			& span.underline {
				position: relative;
				white-space: nowrap;
				/* z-index: 9; */
				&:before {
					content: "";
					position: absolute;
					bottom: 0;
					left: 0;
					width: 100%;
					height: 1.6rem;
					background-color: #fffc01;
					z-index: -1;
					@media screen and (max-width: 767px) {
						height: 1.2rem;
					}
				}
			}
		}
		.lined-text {
			margin-bottom: 3rem;
			width: 100%;
			display: flex;
			justify-content: center;
			position: relative;
			@media screen and (max-width: 767px) {
				margin-bottom: 2rem;
			}
			&:before {
				content: "";
				position: absolute;
				top: 50%;
				left: 0;
				transform: translateY(-50%);
				width: 100%;
				height: 2px;
				background-color: #00680b;
			}
			& span {
				background-color: #fff;
				padding: 0 2.4rem;
				box-sizing: border-box;
				font-style: normal;
				font-weight: 700;
				font-size: 2.9rem;
				line-height: 3.5rem;
				text-align: center;
				letter-spacing: 0.1em;
				color: #00680b;
				position: relative;
				z-index: 9;
				@media screen and (max-width: 767px) {
					font-size: 1.6rem;
					line-height: 1.4;
					padding: 0 1.2rem;
				}
			}
		}
		.flex-contents {
			display: flex;
			gap: 3.5rem;
			@media screen and (max-width: 767px) {
				gap: 2rem;
				flex-direction: column;
			}
			.img-container {
				width: 23.8rem;
				display: flex;
				flex-direction: column;
				align-items: center;
				@media screen and (max-width: 767px) {
					width: 100%;
				}
				.profile-img {
					width: 17rem;
					margin-bottom: 1rem;
					@media screen and (max-width: 767px) {
						width: 15rem;
					}
					& img {
						width: 100%;
						vertical-align: top;
					}
				}
				.line1 {
					margin-bottom: 0.4rem;
					font-style: normal;
					font-weight: 400;
					font-size: 1.4rem;
					line-height: 1.7rem;
					text-align: center;
					color: #1a1311;
					@media screen and (max-width: 767px) {
						font-size: 1.2rem;
					}
				}
				.line2 {
					font-style: normal;
					font-weight: 700;
					font-size: 1.6rem;
					line-height: 1.9rem;
					text-align: center;
					letter-spacing: 0.1em;
					color: #000000;
					@media screen and (max-width: 767px) {
						font-size: 1.4rem;
					}
				}
			}
			.text-container {
				width: 100%;
				flex: 1;
				.main-text {
					margin-bottom: 2.1rem;
					font-style: normal;
					font-weight: 700;
					font-size: 2.4rem;
					line-height: 2.9rem;
					letter-spacing: 0.05em;
					color: #000000;
					@media screen and (max-width: 767px) {
						font-size: 1.8rem;
						line-height: 1.4;
					}
				}
				.description {
					font-style: normal;
					font-weight: 400;
					font-size: 1.8rem;
					line-height: 180%;
					letter-spacing: 0.05em;
					color: #000000;
					position: relative;
					z-index: -1;
					@media screen and (max-width: 767px) {
						font-size: 1.4rem;
					}
					& span {
						position: relative;
						z-index: 99;
						font-weight: 700;
						white-space: nowrap;
						&:before {
							content: "";
							position: absolute;
							bottom: 0;
							left: 0;
							width: 100%;
							height: 1.6rem;
							background-color: #fffc01;
							z-index: -1;
						}
					}
				}
			}
		}
	}
}

#features {
	background-color: #f1f0eb;
	padding-top: 10rem;
	padding-bottom: 10rem;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	.contents-flex {
		display: flex;
		justify-content: center;
		gap: 3rem;
		@media screen and (max-width: 767px) {
			flex-direction: column;
		}
		.card {
			background-color: #fff;
			width: 60rem;
			border: #2d9839 3px solid;
			border-radius: 1.4rem;
			padding: 2rem 4rem 4rem;
			box-sizing: border-box;
			@media screen and (max-width: 767px) {
				width: 100%;
				padding: 2rem;
			}
			.card-img {
				width: 100%;
				margin-bottom: 2rem;
				@media screen and (max-width: 767px) {
					margin-bottom: 0;
				}
				& img {
					width: 100%;
					vertical-align: top;
				}
			}
			.card-title {
				margin-bottom: 2rem;
				font-style: normal;
				font-weight: 700;
				font-size: 2.6rem;
				line-height: 3.1rem;
				color: #2d9839;
				text-align: left;
				white-space: nowrap;
				@media screen and (max-width: 767px) {
					white-space: wrap;
					font-size: 1.6rem;
					line-height: 1.4;
					margin-bottom: 1rem;
				}
			}
			.card-desription {
				font-style: normal;
				font-weight: 400;
				font-size: 1.6rem;
				line-height: 2.7rem;
				letter-spacing: 0.1em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
					line-height: 2.2rem;
				}
			}
		}
	}
}

#block5 {
	background-color: #2d9839;
	padding-top: 10rem;
	padding-bottom: 10rem;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	.header {
		margin-bottom: 6rem;
		position: relative;
		padding-left: 10rem;
		font-family: var(--zenkaku);
		font-style: normal;
		font-weight: 700;
		font-size: 4rem;
		line-height: 1;
		text-align: left;
		letter-spacing: 0.06em;
		color: #ffffff;
		@media screen and (max-width: 767px) {
			padding-left: 6rem;
			font-size: 2.4rem;
		}
		.yellow {
			color: #fffc01;
			font-size: 5rem;
			line-height: 1;
			@media screen and (max-width: 767px) {
				font-size: 3rem;
			}
		}
		&:before {
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			width: 8rem;
			height: 8rem;
			background: url("../img/check-icon.png") no-repeat center / 100% auto;
			transform: translateY(-50%);
			@media screen and (max-width: 767px) {
				width: 5rem;
				height: 5rem;
				top: 0;
				transform: translateY(0);
			}
		}
	}
	.flex-contents {
		display: flex;
		justify-content: space-between;
		align-items: stretch;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			gap: 4rem;
		}
		.card {
			width: 42rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
			.title-flex {
				display: flex;
				align-items: baseline;
				gap: 1rem;
				margin-bottom: 1.3rem;
				@media screen and (max-width: 767px) {
					margin-bottom: 1rem;
				}
				.num {
					font-family: var(--roboto);
					font-style: normal;
					font-weight: 500;
					font-size: 8rem;
					line-height: 100%;
					color: #fffc01;
					white-space: nowrap;
					letter-spacing: 0;
					@media screen and (max-width: 767px) {
						font-size: 3rem;
					}
				}
				.card-header {
					font-style: normal;
					font-weight: 700;
					font-size: 3.4rem;
					line-height: 4rem;
					display: flex;
					align-items: center;
					letter-spacing: 0.05em;
					color: #ffffff;
					white-space: nowrap;
					@media screen and (max-width: 767px) {
						font-size: 2rem;
						line-height: 1;
						white-space: wrap;
					}
				}
			}
			.white-card {
				background-color: #fff;
				padding: 2rem 3rem 3rem;
				box-sizing: border-box;
				border-radius: 1.4rem;
				min-height: 44rem;
				@media screen and (max-width: 767px) {
					padding: 0 2rem 2rem;
					min-height: unset;
				}
				.card-img {
					width: 100%;
					margin-bottom: 2rem;
					@media screen and (max-width: 767px) {
						margin-bottom: 0;
					}
					& img {
						width: 100%;
						vertical-align: top;
					}
				}
				.white-card-header {
					margin-bottom: 2rem;
					font-style: normal;
					font-weight: 700;
					font-size: 2rem;
					line-height: 2.4rem;
					color: #2d9839;
					@media screen and (max-width: 767px) {
						font-size: 1.6rem;
						line-height: 2.4rem;
						margin-bottom: 1rem;
					}
				}
				.card-description {
					font-style: normal;
					font-weight: 400;
					font-size: 1.6rem;
					line-height: 2.7rem;
					letter-spacing: 0.05em;
					color: #000000;
					@media screen and (max-width: 767px) {
						font-size: 1.4rem;
						line-height: 2.4rem;
					}
				}
			}
		}
	}
}

#block6 {
	width: 100%;
	padding-top: 12rem;
	padding-bottom: 12rem;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	.header {
		margin-bottom: 6rem;
		position: relative;
		padding-left: 10rem;
		display: flex;
		align-items: center;
		@media screen and (max-width: 767px) {
			padding-left: 6rem;
			margin-bottom: 3rem;
		}
		.header-text {
			.line1 {
				font-family: var(--zenkaku);
				font-style: normal;
				font-weight: 700;
				font-size: 4rem;
				line-height: 1;
				text-align: left;
				letter-spacing: 0.06em;
				color: #000;
				margin-bottom: 1.4rem;
				@media screen and (max-width: 767px) {
					font-size: 2.4rem;
					margin-bottom: 1rem;
				}
				.green {
					color: #2d9839;
				}
			}
			.line2 {
				font-style: normal;
				font-weight: 700;
				font-size: 2.4rem;
				line-height: 2.9rem;
				letter-spacing: 0.05em;
				color: #2d9839;
				@media screen and (max-width: 767px) {
					font-size: 1.6rem;
					line-height: 1.4;
				}
			}
		}
		&:before {
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			width: 8rem;
			height: 8rem;
			background: url("../img/star-icon.png") no-repeat center / 100% auto;
			transform: translateY(-50%);
			@media screen and (max-width: 767px) {
				width: 5rem;
				height: 5rem;
				top: 0;
				transform: translateY(0);
			}
		}
	}
	.flex-contents-card {
		display: flex;
		justify-content: space-between;
		margin-bottom: 9.5rem;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			gap: 4rem;
			margin-bottom: 4rem;
		}
		.card {
			width: 42rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
			.card-img {
				margin-bottom: 2.5rem;
				background-color: #d9d9d9;
				@media screen and (max-width: 767px) {
					margin-bottom: 1rem;
				}
				& img {
					width: 100%;
					vertical-align: top;
				}
			}
			.name {
				margin-bottom: 1rem;
				font-style: normal;
				font-weight: 700;
				font-size: 2.4rem;
				line-height: 2.9rem;
				letter-spacing: 0.05em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 1.8rem;
					line-height: 1.2;
				}
			}
			.job {
				font-style: normal;
				font-weight: 400;
				font-size: 1.6rem;
				line-height: 1.9rem;
				letter-spacing: 0.05em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
				}
			}
		}
	}
}

.contact {
	max-width: 86rem;
	width: 100%;
	background: #2d9839;
	padding: 2rem 4.9rem 3.4rem;
	box-sizing: border-box;
	margin: 0 auto;
	@media screen and (max-width: 767px) {
		padding: 1.6rem 1.4rem 15.5rem;
		position: relative;
		display: flex;
		flex-direction: column;
		align-items: center;
	}
	.flex-contents {
		display: flex;
		justify-content: space-between;
		border-bottom: 1px solid #fff;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			gap: 2rem;
		}
		.text-contents {
			.line1 {
				font-family: var(--roboto);
				font-style: normal;
				font-weight: 700;
				font-size: 2.94436rem;
				line-height: 130%;
				letter-spacing: 0.05em;
				color: #fffc01;
				margin-bottom: 1.4rem;
				@media screen and (max-width: 767px) {
					font-size: 2.4rem;
					line-height: 1.3;
					text-align: center;
					white-space: nowrap;
					margin-bottom: 0.8rem;
				}
			}
			.line2 {
				font-style: normal;
				font-weight: 700;
				font-size: 2rem;
				line-height: 2.4rem;
				letter-spacing: 0.05em;
				color: #ffffff;
				@media screen and (max-width: 767px) {
					font-size: 1.6rem;
					line-height: 1;
					text-align: center;
					white-space: nowrap;
				}
			}
		}
		.img-contents {
			width: 33.6rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
			& img {
				width: 100%;
				vertical-align: top;
				@media screen and (max-width: 767px) {
					position: absolute;
					bottom: 0;
					left: 50%;
					transform: translateX(-50%);
					max-width: 32.3rem;
				}
			}
		}
	}
	.contact-contents-flex {
		padding-top: 2rem;
		display: flex;
		justify-content: space-between;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			gap: 2.5rem;
			width: 100%;
			align-items: center;
		}
		.phone {
			width: 32rem;
			@media screen and (max-width: 767px) {
				width: 100%;
				width: 28rem;
			}
			& a {
				display: flex;
				align-items: center;
				gap: 2rem;
				@media screen and (max-width: 767px) {
					gap: 1rem;
					justify-content: center;
				}
				.phone-icon {
					width: 4.2rem;
					@media screen and (max-width: 767px) {
						width: 3.88rem;
					}
					& img {
						width: 100%;
						vertical-align: top;
					}
				}
				.phone-text {
					margin: 0 auto;
					.phone-number {
						font-family: var(--roboto);
						font-style: normal;
						font-weight: 700;
						font-size: 3.8rem;
						line-height: 4.5rem;
						color: #ffffff;
						@media screen and (max-width: 767px) {
							font-size: 3.5rem;
							line-height: 1.2;
						}
					}
					.phone-info {
						font-style: normal;
						font-weight: 700;
						font-size: 1.6rem;
						line-height: 1.9rem;
						letter-spacing: 0.1em;
						color: #ffffff;
						@media screen and (max-width: 767px) {
							font-size: 1.5rem;
						}
					}
				}
			}
		}
		.mail {
			width: 35.9rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
			& a {
				width: 100%;
				background: #ffffff;
				box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.15);
				border-radius: 36.5px;
				height: 6.3rem;
				display: flex;
				justify-content: center;
				align-items: center;
				gap: 0.7rem;
				@media screen and (max-width: 767px) {
					height: 5.7rem;
					border-radius: 33.15px;
				}
				& img {
					width: 2.2rem;
					vertical-align: top;
					@media screen and (max-width: 767px) {
						width: 1.8rem;
					}
				}
				& span {
					font-style: normal;
					font-weight: 700;
					font-size: 2rem;
					line-height: 2.4rem;
					letter-spacing: 0.05em;
					color: #2d9839;
					@media screen and (max-width: 767px) {
						font-size: 1.6rem;
						line-height: 1;
					}
				}
			}
		}
		.phone .contact-hd,
		.mail .contact-hd {
			font-style: normal;
			font-weight: 700;
			font-size: 1.8rem;
			line-height: 2.2rem;
			letter-spacing: 0.05em;
			color: #ffffff;
			margin-bottom: 1rem;
			@media screen and (max-width: 767px) {
				font-size: 1.4rem;
				text-align: center;
				line-height: 1;
				margin-bottom: 1.2rem;
			}
		}
	}
}

.contact.layout2 {
	background: none !important;
	max-width: 100rem;
	padding: 0;
	.flex-contents {
		position: relative;
		align-items: flex-end;
		padding: 0 1.5rem 0 2.6rem;
		box-sizing: border-box;
		@media screen and (max-width: 767px) {
			padding: 2rem 2rem 15rem;
		}
		&:before {
			content: "";
			position: absolute;
			bottom: 0;
			left: 0;
			width: 100%;
			height: 10.79rem;
			border-radius: 1.8rem;
			z-index: -1;
			background-color: #2d9839;
			@media screen and (max-width: 767px) {
				height: 100%;
			}
		}
		.text-contents {
			padding-bottom: 2rem;
			@media screen and (max-width: 767px) {
				padding-bottom: 1rem;
			}
			.line1 {
				margin-bottom: 0.8rem;
				white-space: nowrap;
				font-size: 2.86rem;
				@media screen and (max-width: 767px) {
					white-space: wrap;
					font-size: 1.8rem;
				}
			}
		}
		.img-contents {
			width: 37.5rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
		}
	}
	.contact-contents-flex {
		padding-top: 3rem;
		.contact-btn {
			width: 49rem;
			height: 7.3rem;
			border: 2px solid #2d9839;
			border-radius: 3.65rem;
			display: flex;
			justify-content: center;
			align-items: center;
			gap: 2.1rem;
			box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.15);
			@media screen and (max-width: 767px) {
				width: 100%;
				height: 6rem;
				gap: 1rem;
			}
			.phone-icon {
				width: 4.1rem;
				@media screen and (max-width: 767px) {
					width: 3rem;
				}
			}
			.phone-text {
				.phone-number {
					font-style: var(--roboto);
					font-weight: 700;
					font-size: 3.4rem;
					line-height: 4rem;
					color: #2d9839;
					@media screen and (max-width: 767px) {
						font-size: 3rem;
						line-height: 1;
					}
				}
				.phone-info {
					font-style: normal;
					font-weight: 700;
					font-size: 1.2rem;
					line-height: 1.4rem;
					letter-spacing: 0.1em;
					color: #2d9839;
				}
			}
			.contact-hd {
				font-style: normal;
				font-weight: 700;
				font-size: 2rem;
				line-height: 1;
				letter-spacing: 0.05em;
				color: #2d9839;
				margin-bottom: 0;
				@media screen and (max-width: 767px) {
					font-size: 1.6rem;
				}
			}
		}
	}
}

#voice {
	padding-bottom: 12rem;
	@media screen and (max-width: 767px) {
		padding-bottom: 5rem;
	}
	.card-contents {
		width: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
		width: 100.5rem;
		margin: 0 auto;
		gap: 4rem;
		@media screen and (max-width: 767px) {
			width: 100%;
			gap: 3rem;
		}
		.card {
			width: 100%;
			border: #2d9839 3px solid;
			border-radius: 1.4rem;
			padding: 4rem;
			box-sizing: border-box;
			@media screen and (max-width: 767px) {
				padding: 2rem;
			}
			.flex-contents {
				display: flex;
				align-items: center;
				gap: 1.6rem;
				margin-bottom: 2rem;
				@media screen and (max-width: 767px) {
					margin-bottom: 1rem;
					gap: 1rem;
				}
				.avatar {
					width: 14rem;
					@media screen and (max-width: 767px) {
						width: 8rem;
					}
					& img {
						width: 100%;
						vertical-align: top;
					}
				}
				.mic {
				}
				.card-header {
					flex: 1;
					.line1 {
						font-style: normal;
						font-weight: 700;
						font-size: 2.6rem;
						line-height: 3.6rem;
						display: flex;
						align-items: center;
						letter-spacing: 0.05em;
						color: #2d9839;
						margin-bottom: 1.6rem;
						@media screen and (max-width: 767px) {
							font-size: 1.8rem;
							line-height: 1.4;
							margin-bottom: 1rem;
						}
					}
					.line2 {
						font-style: normal;
						font-weight: 700;
						font-size: 1.8rem;
						line-height: 2.2rem;
						letter-spacing: 0.05em;
						color: #1a1311;
						@media screen and (max-width: 767px) {
							font-size: 1.4rem;
							line-height: 1.4;
						}
					}
				}
			}
			.card-description {
				font-style: normal;
				font-weight: 400;
				font-size: 1.8rem;
				line-height: 2.4rem;
				letter-spacing: 0.05em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
					line-height: 1.6;
				}
				& a {
					text-decoration: underline;
					opacity: 0.75;
					transition: all 0.3s ease-in-out;
				}
				& a:hover {
					opacity: 1;
				}
				/* target blank */
				& a[target="_blank"] {
					padding-right: 2rem;
					position: relative;
					&::after {
						content: "";
						position: absolute;
						bottom: 0.4rem;
						right: 0;
						width: 1.6rem;
						height: 1.6rem;
						background-image: url(../img/external.png);
						background-size: contain;
						background-repeat: no-repeat;
					}
				}
			}
		}
	}
}

#plans {
	background-color: #f1f0eb;
	padding-top: 8.7rem;
	padding-bottom: 17.1rem;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	.flexwrap-contents {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		gap: 6rem;
		margin-bottom: 4.2rem;
		@media screen and (max-width: 767px) {
			gap: 3rem;
			margin-bottom: 1rem;
		}
		.card {
			width: 64rem;
			border: #2d9839 1px solid;
			border-radius: 1rem;
			background-color: #fff;
			padding: 4rem 4rem 4.6rem;
			box-sizing: border-box;
			@media screen and (max-width: 767px) {
				width: 100%;
				padding: 2rem;
			}
			.card-header {
				display: flex;
				align-items: center;
				gap: 2.2rem;
				margin-bottom: 2.5rem;
				@media screen and (max-width: 767px) {
					gap: 1rem;
					margin-bottom: 1rem;
				}
				.card-icon {
					width: 10rem;
					min-width: 10rem;
					@media screen and (max-width: 767px) {
						width: 5rem;
						min-width: 5rem;
					}
					& img {
						width: 100%;
						vertical-align: top;
					}
				}
				.card-header-text {
					flex: 1;
					.line1 {
						font-family: var(--zenkaku);
						font-style: normal;
						font-weight: 700;
						font-size: 2rem;
						line-height: 2.9rem;
						color: #2d9839;
						@media screen and (max-width: 767px) {
							font-size: 1.4rem;
							line-height: 1.4;
						}
					}
					.line2 {
						font-family: var(--zenkaku);
						font-style: normal;
						font-weight: 700;
						font-size: 3.2rem;
						line-height: 4.6rem;
						color: #000000;
						letter-spacing: -0.04em;
						white-space: nowrap;
						@media screen and (max-width: 767px) {
							font-size: 1.8rem;
							line-height: 1.4;
							white-space: wrap;
						}
						& span {
							font-size: 2.4rem;
							@media screen and (max-width: 767px) {
								font-size: 1.4rem;
							}
						}
					}
				}
			}
			.card-description {
				font-style: normal;
				font-weight: 400;
				font-size: 1.8rem;
				line-height: 160%;
				letter-spacing: 0.05em;
				color: #000000;
				margin-bottom: 2.4rem;
				min-height: 9rem;
				@media screen and (max-width: 767px) {
					min-height: unset;
					margin-bottom: 1rem;
					font-size: 1.4rem;
				}
			}
			.green-card {
				margin-bottom: 2.4rem;
				width: 100%;
				@media screen and (max-width: 767px) {
					margin-bottom: 1rem;
				}
				& img {
					width: 100%;
					vertical-align: top;
				}
			}
		}
	}
	.note {
		font-style: normal;
		font-weight: 400;
		font-size: 1.4rem;
		line-height: 2.6rem;
		letter-spacing: 0.05em;
		color: #000000;
		margin-bottom: 10rem;
		@media screen and (max-width: 767px) {
			margin-bottom: 4rem;
			font-size: 1.2rem;
			line-height: 1.4;
		}
	}
	.table-plans {
		width: 100%;
		margin-bottom: 12rem;
		@media screen and (max-width: 767px) {
			overflow-x: auto;
			margin-bottom: 4rem;
			.inner-container {
				width: 70rem;
			}
		}
		& img {
			width: 100%;
			vertical-align: top;
		}
	}
}

#clients {
	padding-top: 12rem;
	padding-bottom: 12rem;
	width: 100%;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	.client-list {
		border-top: 2px solid #aeaeae;
		border-bottom: 2px solid #aeaeae;
		padding-top: 6rem;
		padding-bottom: 6rem;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 6.6rem 12rem;
		@media screen and (max-width: 767px) {
			padding-top: 3rem;
			padding-bottom: 3rem;
			gap: 3rem;
		}
		& li {
			width: 22.4rem;
			@media screen and (max-width: 767px) {
				width: calc(50% - 1.5rem);
			}
			& img {
				width: 100%;
				vertical-align: top;
			}
		}
	}
}

#request {
	background-color: #2d9839;
	padding: 10rem 0;
	@media screen and (max-width: 767px) {
		padding: 5rem 0;
	}
	.common-header001 {
		.en {
			color: #fffc01;
		}
		.jp {
			color: #fff;
		}
	}
	.flex-contents {
		display: flex;
		justify-content: space-between;
		margin-bottom: 6rem;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			margin-bottom: 3rem;
			gap: 3rem;
		}
		.card {
			width: 42rem;
			@media screen and (max-width: 767px) {
				width: 100%;
			}
			.card-img {
				width: 100%;
				margin-bottom: 1rem;
				& img {
					width: 100%;
					vertical-align: top;
				}
			}
			.card-title {
				font-style: normal;
				font-weight: 700;
				font-size: 2.8rem;
				line-height: 3.4rem;
				color: #ffffff;
				@media screen and (max-width: 767px) {
					font-size: 1.8rem;
					line-height: 1.4;
				}
			}
		}
	}
	.white-btn {
		width: 49rem;
		height: 7.3rem;
		margin: 0 auto;
		background: #ffffff;
		border: 2px solid #2d9839;
		box-shadow: 0px 4px 4px rgba(0, 0, 0, 0.15);
		border-radius: 3.65rem;
		display: flex;
		justify-content: center;
		align-items: center;
		gap: 2rem;
		@media screen and (max-width: 767px) {
			gap: 1rem;
			width: 100%;
			height: 6rem;
		}
		& span {
			font-style: normal;
			font-weight: 700;
			font-size: 2rem;
			line-height: 2.4rem;
			letter-spacing: 0.05em;
			color: #2d9839;
			@media screen and (max-width: 767px) {
				font-size: 1.6rem;
				line-height: 1;
			}
		}
		& img {
			width: 3.3rem;
			vertical-align: top;
			@media screen and (max-width: 767px) {
				width: 2rem;
			}
		}
	}
}

#report {
	padding: 12rem 0 16rem;
	background-color: #2d9839;
	@media screen and (max-width: 767px) {
		padding: 5rem 0 5rem;
	}
	.common-header001 {
		.en {
			color: #fffc01;
		}
		.jp {
			color: #fff;
		}
	}
	.report-flex-contents {
		display: flex;
		gap: 6.1rem;
		justify-content: center;
		align-items: center;
		@media screen and (max-width: 767px) {
			flex-direction: column;
			gap: 2rem;
		}
		.report-img {
			width: 54.8rem;
			& img {
				width: 100%;
				vertical-align: top;
			}
			@media screen and (max-width: 767px) {
				width: 100%;
			}
		}
		.white-card {
			background-color: #fff;
			border-radius: 1.4rem;
			padding: 4rem;
			width: 70.6rem;
			@media screen and (max-width: 767px) {
				width: 100%;
				padding: 3rem 2rem;
			}
			.green-text {
				font-style: normal;
				font-weight: 700;
				font-size: 2.4rem;
				line-height: 150%;
				letter-spacing: 0.05em;
				color: #2d9839;
				margin-bottom: 3rem;
				@media screen and (max-width: 767px) {
					font-size: 1.8rem;
				}
			}
			.note-text {
				font-style: normal;
				font-weight: 400;
				font-size: 1.6rem;
				line-height: 138%;
				letter-spacing: 0.05em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
				}
			}
		}
	}
}

#flow {
	padding: 12rem 0 16rem;
	box-sizing: border-box;
	@media screen and (max-width: 767px) {
		padding: 5rem 0 5rem;
	}
	.gray-cards {
		width: 92rem;
		margin: 0 auto;
		margin-bottom: 10rem;
		@media screen and (max-width: 767px) {
			width: 100%;
			margin-bottom: 4rem;
		}
		.gray-card {
			background-color: #f1f0eb;
			padding: 3rem 5rem;
			box-sizing: border-box;
			border-radius: 1rem;
			@media screen and (max-width: 767px) {
				padding: 2rem;
			}
			.green-header {
				display: flex;
				gap: 0.5rem;
				margin-bottom: 1rem;
				.text,
				.num {
					font-family: var(--zenkaku);
					font-style: normal;
					font-weight: 900;
					font-size: 2.4rem;
					line-height: 3.5rem;
					letter-spacing: 0.06em;
					color: #2d9839;
					@media screen and (max-width: 767px) {
						font-size: 1.8rem;
						line-height: 1.4;
					}
				}
			}
			.details {
				font-style: normal;
				font-weight: 500;
				font-size: 1.6rem;
				line-height: 3rem;
				letter-spacing: 0.06em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
					line-height: 1.6;
				}
			}
		}
		.arrow {
			padding: 2rem 0;
			display: flex;
			justify-content: center;
			@media screen and (max-width: 767px) {
				padding: 1rem 0;
			}
			& img {
				width: 3.2rem;
				vertical-align: top;
				margin: 0 auto;
				@media screen and (max-width: 767px) {
					width: 2rem;
				}
			}
		}
	}
	.icon-mail {
		width: 4.1rem;
		@media screen and (max-width: 767px) {
			width: 3rem;
		}
		& img {
			width: 100%;
			vertical-align: top;
		}
	}
}

#form {
	padding-top: 8rem;
	padding-bottom: 11.5rem;
	background-color: #f1f0eb;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	.title {
		padding-left: 10rem;
		font-family: var(--zenkaku);
		font-style: normal;
		font-weight: 700;
		font-size: 4rem;
		line-height: 1;
		text-align: left;
		letter-spacing: 0.06em;
		color: #000000;
		margin-bottom: 7rem;
		position: relative;
		@media screen and (max-width: 767px) {
			padding-left: 6rem;
			font-size: 2.4rem;
			margin-bottom: 5rem;
		}
		&:before {
			content: "";
			position: absolute;
			top: 50%;
			left: 0;
			width: 8rem;
			height: 8rem;
			transform: translateY(-50%);
			background: url("../img/form-header-icon.png") no-repeat center / 100% auto;
			@media screen and (max-width: 767px) {
				width: 5rem;
				height: 5rem;
				top: 0;
				transform: translateY(0);
			}
		}
	}
}

#company-section {
	padding-top: 15rem;
	padding-bottom: 16rem;
	@media screen and (max-width: 767px) {
		padding-top: 5rem;
		padding-bottom: 5rem;
	}
	.company-table {
		width: 100%;
		max-width: 92rem;
		margin: 0 auto;
		border-top: #aeaeae 1px solid;
		& tr {
			width: 100%;
			border-bottom: #aeaeae 1px solid;
			& th {
				width: 20.3rem;
				font-style: normal;
				font-weight: 700;
				font-size: 1.6rem;
				line-height: 1.9rem;
				letter-spacing: 0.1em;
				color: #1a1311;
				text-align: left;
				padding: 3rem 0;
				vertical-align: top;
				@media screen and (max-width: 767px) {
					width: 100%;
					display: block;
					font-size: 1.4rem;
					padding: 1rem 0;
				}
			}
			& td {
				width: calc(20.3rem - 100%);
				font-style: normal;
				font-weight: 400;
				font-size: 1.6rem;
				line-height: 1.9rem;
				letter-spacing: 0.1em;
				text-align: left;
				color: #1a1311;
				padding: 3rem 0;
				@media screen and (max-width: 767px) {
					width: 100%;
					display: block;
					font-size: 1.4rem;
					padding: 0 0 1rem;
				}
			}
		}
	}
}

/* scrolling table */

@media screen and (max-width: 767px) {
	.table-plans::before {
		content: "←";
		position: absolute;
		right: 0;
		bottom: 0;
		animation: moveArrow 3s linear infinite;
		font-size: 20px;
		color: #ddd;
		border: 4px solid #ddd;
		border-radius: 50%;
		width: 40px;
		height: 40px;
		display: flex;
		align-items: center;
		justify-content: center;
		transition: opacity 0.3s ease-in-out;
		opacity: 1;
	}
	@keyframes moveArrow {
		0% {
			right: 0;
		}
		100% {
			right: 100%;
		}
	}

	.table-plans {
		position: relative;
		width: 100%;
		display: block;
		-webkit-overflow-scrolling: touch;
		width: 100%;
	}
}
