@charset "utf-8";

/* pagetitle */
.page-title {
	background-image: url(../img/topimage_company.jpg);
}


table {
	margin-bottom: 0;
	th {
		&::after {
			position: absolute;
			left: 0;
			top: -1px;
			width: 34px;
			height: 1px;
			content: "";
			background-color: var(--green02);
		}
	}
}


/* message */
.message {
	margin-bottom: 275px;
	@media (width <= 800px) {
		margin-bottom: 90px;
	}
	.message-content {
		display: flex;
		justify-content: space-between;
		padding: 0 100px;
		@media (width <= 800px) {
			flex-wrap: wrap;
			gap: 20px 0;
			padding: 0 20px;
		}
		.l-message {
			width: 370px;
			@media (width <= 800px) {
				width: 100%;
			}
			h2 {
				margin-bottom: 0;
			}
		}
		.r-message {
			width: calc(100% - 380px);
			@media (width <= 800px) {
				width: 100%;
			}
			p {
				line-height: 2;
				margin-bottom: 30px;
				@media (width <= 800px) {
					line-height: 1.71;
				}
				&.shomei {
					line-height: 1.7;
					margin-bottom: 0;
					.katagaki {
						display: block;
						font-size: 14px;
						@media (width <= 800px) {
							font-size: 12px;
						}
					}
					.president {
						font-size: 18px;
						font-weight: 700;
						@media (width <= 800px) {
							font-size: 16px;
						}
					}
				}
			}
		}
	}
}


/* our-vision */
.our-vision {
	margin-bottom: 310px;
	@media (width <= 800px) {
		margin-bottom: 320px;
	}
	.our-vision-content {
		position: relative;
		display: flex;
		flex-wrap: wrap;
		align-content: center;
		align-items: center;
		width: 100%;
		min-height: 482px;
		padding: 0 100px;
		z-index: 1;
		@media (width <= 800px) {
			min-height: 350px;
			padding: 0 20px;
		}
		&::after {
			position: absolute;
			right: 0;
			top: 0;
			width: 100vw;
			height: 100%;
			content: "";
			background-color: var(--yellowgreen02);
			border-radius: 0 241px 241px 0;
			z-index: -1;
			@media (width <= 800px) {
				right: 10px;
				border-radius: 0 150px 150px 0;
			}
		}
		h2 {
			width: 100%;
			margin-bottom: 30px;
			@media (width <= 800px) {
				margin-bottom: 15px;
			}
			.en {
				color: var(--green01);
				font-size: 52px;
				font-weight: 600;
				line-height: 1;
				@media (width <= 800px) {
					font-size: 26px;
				}
			}
		}
		.read-our-vision {
			font-size: 28px;
			font-weight: 700;
			line-height: 2;
			margin-bottom: 0;
			@media (width <= 800px) {
				font-size: 18px;
				line-height: 1.78;
			}
		}
		.bg-our-vision {
			position: absolute;
			z-index: 1;
			&.bov01 {
				top: -96px;
				left: -126px;
				@media (width <= 800px) {
					top: -40px;
					left: 0;
					width: 81px;
				}
			}
			&.bov02 {
				bottom: -120px;
				left: -100px;
				@media (width <= 800px) {
					bottom: -60px;
					left: 0;
					width: 65px;
				}
			}
		}
		.our-vision-img {
			position: absolute;
			z-index: 0;
			&.ovi01 {
				top: -70px;
				right: 337px;
				width: 24.6%;
				@media (width <= 800px) {
					top: -40px;
					right: 58px;
					width: 142px;
				}
			}
			&.ovi02 {
				top: 54px;
				right: -200px;
				width: 39%;
				@media (width <= 800px) {
					top: auto;
					bottom: -95px;
					right: -20px;
					width: 242px;
				}
				img {
					border-radius: 30px 0 0 30px;
					@media (width <= 800px) {
						border-radius: 15px 0 0 15px;
					}
				}
			}
			&.ovi03 {
				bottom: 0;
				right: -100px;
				width: 16.5%;
				@media (width <= 800px) {
					bottom: -164px;
					right: 30px;
					width: 100px;
				}
			}
			&.ovi04 {
				bottom: -120px;
				right: 140px;
				width: 27.8%;
				@media (width <= 800px) {
					bottom: -222px;
					right: 140px;
					width: 174px;
				}
			}
			img {
				border-radius: 30px;
				@media (width <= 800px) {
					border-radius: 15px;
				}
			}
		}
	}
}


/* outline */
.outline {
	margin-bottom: 100px;
	@media (width <= 800px) {
		margin-bottom: 45px;
	}
	.outline-content {
		display: flex;
		justify-content: space-between;
		width: 100%;
		padding-left: 100px;
		@media (width <= 800px) {
			flex-wrap: wrap;
			gap: 25px 0;
			padding: 0 20px;
		}
		.l-outline {
			width: 370px;
			@media (width <= 800px) {
				width: 100%;
			}
			h2 {
				margin-bottom: 0;
			}
		}
		.r-outline {
			width: calc(100% - 380px);
			@media (width <= 800px) {
				width: 100%;
			}
			table {
				th {
					width: 230px;
					@media (width <= 800px) {
						width: 100%;
					}
				}
				td {
					width: calc(100% - 230px);
					@media (width <= 800px) {
						width: 100%;
					}
				}
			}
		}
	}
}


/* group */
.group {
	background-color: var(--yellowgreen02);
	padding: 135px 0;
	margin-bottom: 120px;
	@media (width <= 800px) {
		padding: 45px 0;
		margin-bottom: 45px;
	}
	.group-content {
		display: flex;
		flex-wrap: wrap;
		justify-content: space-between;
		padding: 0 100px;
		@media (width <= 800px) {
			padding: 0 20px;
		}
		h2 {
			width: 100%;
			margin-bottom: 45px;
			@media (width <= 800px) {
				margin-bottom: 25px;
			}
		}
		.l-group {
			width: 45.9%;
			@media (width <= 800px) {
				width: 100%;
				margin-bottom: 45px;
			}
		}
		.r-group {
			width: 45.9%;
			@media (width <= 800px) {
				width: 100%;
			}
		}
		.group-detail {
			width: 100%;
			margin-bottom: 90px;
			@media (width <= 800px) {
				margin-bottom: 45px;
			}
			&:last-child {
				margin-bottom: 0;
			}
			h3 {
				font-size: 28px;
				line-height: 1.1;
				border-left: 7px solid var(--green01);
				padding-left: 10px;
				margin-bottom: 24px;
				@media (width <= 800px) {
					font-size: 18px;
					border-left: 4px solid var(--green01);
					margin-bottom: 12px;
				}
			}
			table {
				th {
					&::after {
						display: none;
					}
				}
				td {
					.tenpo {
						display: block;
						margin-bottom: 25px;
						@media (width <= 800px) {
							margin-bottom: 15px;
						}
						&:last-child {
							margin-bottom: 0;
						}
					}
				}
			}
		}
	}
}


/* history */
.history {
	margin-bottom: 70px;
	@media (width <= 800px) {
		margin-bottom: 45px;
	}
	.history-content {
		display: flex;
		justify-content: space-between;
		width: 100%;
		padding-left: 100px;
		@media (width <= 800px) {
			flex-wrap: wrap;
			gap: 20px 0;
			padding: 0 20px;
		}
		.l-history {
			width: 370px;
			@media (width <= 800px) {
				width: 100%;
			}
			h2 {
				margin-bottom: 0;
			}
		}
		.r-history {
			width: calc(100% - 380px);
			@media (width <= 800px) {
				width: 100%;
			}
			table {
				th {
					font-weight: 400;
				}
				th,
				td {
					@media (width <= 800px) {
						font-size: 16px;
					}
				}
			}
		}
	}
}


/* store */
.store {
	background-color: var(--yellowgreen02);
	border-radius: 100px 100px 0 0;
	padding: 190px 0 420px;
	@media (width <= 800px) {
		border-radius: 30px 30px 0 0;
		padding: 45px 0 110px;
	}
	h2 {
		margin-bottom: 70px;
		@media (width <= 800px) {
			margin-bottom: 25px;
		}
	}
	.store-content {
		position: relative;
		display: flex;
		justify-content: space-between;
		width: 100%;
		padding: 55px 100px 0;
		margin-bottom: 100px;
		@media (width <= 800px) {
			flex-wrap: wrap;
			padding: 25px 20px 0;
			margin-bottom: 45px;
		}
		&::before {
			position: absolute;
			left: 50%;
			top: 0;
			translate: -50% 0;
			width: calc(100% - 200px);
			height: 1px;
			content: "";
			background-color: var(--gray03);
			@media (width <= 800px) {
				width: calc(100% - 40px);
			}
		}
		&:last-child {
			margin-bottom: 0;
		}
		.l-store {
			width: 43.6%;
			@media (width <= 800px) {
				display: none;
			}
		}
		.r-store {
			width: 50%;
			@media (width <= 800px) {
				width: 100%;
			}
			h3 {
				display: flex;
				align-items: center;
				gap: 0 20px;
				font-size: 28px;
				margin-bottom: 15px;
				@media (width <= 800px) {
					display: block;
					font-size: 18px;
					margin-bottom: 20px;
				}
				.s-title {
					display: inline-block;
					font-size: 16px;
					@media (width <= 800px) {
						display: block;
						width: 100%;
						font-size: 14px;
						margin-top: 5px;
					}
				}
			}
			.staff-content {
				display: flex;
				gap: 2px;
				width: 100%;
				margin-bottom: 30px;
				@media (width <= 800px) {
					gap: 1px;
					margin-bottom: 40px;
				}
				.staff-img {
					width: 24.7%;
					img {
						width: 100%;
						height: 136px;
						object-fit: cover;
						@media (width <= 800px) {
							height: 19.5vw;
						}
					}
				}
			}
		}
		.store-img {
			width: 100%;
			@media (width <= 800px) {
				margin-bottom: 20px;
			}
			img {
				width: 100%;
			}
		}
	}
}