@charset "UTF-8";

.page_title_top {
	&::after {
		background-image: url("../../img/page/vision/banner.png");
	}
}

#philosophy {
	background: #f0f6fa;
	border-radius: 7rem 7rem 0 0;
	padding-top: 9rem;
	padding-bottom: 10rem;

	@media screen and (max-width: 767px) {
		padding-top: 6rem;
		padding-bottom: 6rem;
		border-radius: 3.5rem 3.5rem 0 0;
	}

	.block {
		.blue-text {
			font-family: var(--zen);
			font-style: normal;
			font-weight: 700;
			font-size: 3.4rem;
			line-height: 1;
			text-align: center;
			letter-spacing: 0.08em;
			color: #267bca;
			padding-bottom: 4.6rem;
			width: 58.2rem;
			margin: 0 auto 4.6rem;
			border-bottom: dashed 0.1rem #acacac;

			@media screen and (max-width: 767px) {
				width: 100%;
				font-size: 1.8rem;
			}
		}

		.bold-header {
			font-family: var(--zen);
			font-style: normal;
			font-weight: 700;
			font-size: 2.8rem;
			line-height: 1;
			text-align: center;
			letter-spacing: 0.08em;
			color: #000000;
			margin-bottom: 1.6rem;

			@media screen and (max-width: 767px) {
				font-size: 1.8rem;
				margin-bottom: 1rem;
			}
		}

		.description-text {
			font-family: "Noto Sans JP", sans-serif;
			font-style: normal;
			font-weight: 500;
			font-size: 1.8rem;
			line-height: 1.67;
			text-align: center;
			letter-spacing: 0.08em;
			color: #000000;
			margin-bottom: 4.6rem;

			@media screen and (max-width: 767px) {
				font-size: 1.4rem;
				margin-bottom: 2rem;
				text-align: left;
			}
		}

		.full-img {
			margin-bottom: 9rem;
			width: 100%;

			@media screen and (max-width: 767px) {
				margin-bottom: 6rem;
			}

			& img {
				width: 100%;
				vertical-align: top;
			}
		}

		.flex-contents {
			display: flex;
			justify-content: flex-end;
			position: relative;
			width: 100%;
			min-height: 55rem;

			@media screen and (max-width: 767px) {
				min-height: unset;
				flex-direction: column;
			}

			.img-container {
				width: 76.1rem;
				position: absolute;
				left: 0;
				top: 7.8rem;

				@media screen and (max-width: 767px) {
					width: 100%;
					left: unset;
					top: unset;
					position: relative;
					margin-bottom: 2rem;
				}

				& img {
					width: 100%;
				}
			}

			.text-container {
				width: 82rem;
				background-color: #fff;
				padding: 5rem 6.8rem 5rem 20.9rem;
				box-sizing: border-box;
				border-radius: 3rem;
				align-self: flex-start;

				@media screen and (max-width: 767px) {
					width: 100%;
					padding: 2rem;
				}

				.title {
					font-family: var(--zen);
					font-style: normal;
					font-weight: 700;
					font-size: 2.8rem;
					line-height: 1;
					letter-spacing: 0.08em;
					color: #267bca;
					margin-bottom: 3.8rem;

					@media screen and (max-width: 767px) {
						font-size: 1.6rem;
						margin-bottom: 1rem;
					}
				}

				.description {
					font-family: "Noto Sans JP", sans-serif;
					font-style: normal;
					font-weight: 400;
					font-size: 1.8rem;
					line-height: 156%;
					letter-spacing: 0.08em;
					color: #000000;

					@media screen and (max-width: 767px) {
						font-size: 1.4rem;
					}
				}
			}
		}

		.flex-contents.reverse {
			margin-bottom: 6rem;
			justify-content: flex-start;

			.img-container {
				right: 0;
				left: unset;
			}

			.text-container {
				padding: 5rem 20.9rem 5rem 6.8rem;

				@media screen and (max-width: 767px) {
					padding: 2rem;
				}
			}
		}
	}
}

#message {
	padding-top: 10rem;
	padding-bottom: 10rem;

	@media screen and (max-width: 767px) {
		padding-top: 6rem;
		padding-bottom: 6rem;
	}

	.contents-flex {
		display: flex;
		gap: 6rem;

		@media screen and (max-width: 767px) {
			flex-direction: column-reverse;
			gap: 2rem;
		}

		.text-contents {
			width: 100%;
			flex: 1;

			.blue-title {
				margin-bottom: 2rem;
				font-family: var(--zen);
				font-style: normal;
				font-weight: 700;
				font-size: 2.4rem;
				line-height: 1.17;
				text-align: left;
				letter-spacing: 0.08em;
				color: #267bca;

				@media screen and (max-width: 767px) {
					font-size: 1.8rem;
					margin-bottom: 1rem;
				}
			}

			.description {
				font-family: "Noto Sans JP", sans-serif;
				font-style: normal;
				font-weight: 500;
				font-size: 1.8rem;
				line-height: 1.78;
				letter-spacing: 0.08em;
				color: #000000;
				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
				}
				& span {
					text-align: center;
					display: block;
					width: 100%;
					font-size: 2rem;
					font-weight: 700;
					@media screen and (max-width: 767px) {
						font-size: 1.6rem;
					}
				}
			}
		}

		.img-contents {
			width: 46.2rem;
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			gap: 3rem;

			@media screen and (max-width: 767px) {
				width: 100%;
				gap: 1rem;
				align-items: self-start;
			}

			.profile-img {
				width: 100%;

				& img {
					width: 100%;
					vertical-align: top;
				}
			}

			.profile-title {
				font-family: var(--noto);
				font-style: normal;
				font-weight: 700;
				font-size: 1.8rem;
				line-height: 1;
				text-align: center;
				letter-spacing: 0.08em;
				color: #000000;

				@media screen and (max-width: 767px) {
					font-size: 1.4rem;
					text-align: left;
				}
			}
		}
	}
}

#overview {
	.table-container {
		width: 100%;
		margin-bottom: 7rem;

		@media screen and (max-width: 767px) {
			margin-bottom: 5rem;
		}

		& table {
			width: 100%;

			& tr {
				& th {
					background-color: #267bca;
					font-family: "Noto Sans JP", sans-serif;
					font-style: normal;
					font-weight: 700;
					font-size: 1.8rem;
					line-height: 1;
					text-align: center;
					letter-spacing: 0.08em;
					color: #ffffff;
					padding: 2.1rem;
					box-sizing: border-box;
					width: 27.1rem;
					border-bottom: 0.1rem solid #fff;

					@media screen and (max-width: 767px) {
						font-size: 1.4rem;
						line-height: 1.5;
						padding: 1.2rem;
						width: 28%;
					}
				}

				& td {
					width: calc(100% - 27.1rem);
					background-color: #f0f6fa;
					font-family: "Noto Sans JP", sans-serif;
					font-style: normal;
					font-weight: 400;
					font-size: 1.6rem;
					line-height: 2.6rem;
					letter-spacing: 0.08em;
					color: #000000;
					padding: 1.7rem 4rem;
					border-bottom: #cecece 0.1rem solid;

					@media screen and (max-width: 767px) {
						font-size: 1.4rem;
						line-height: 1.5;
						padding: 1.2rem;
						width: 72%;
					}
				}
			}
		}
	}

	.common-btn-blue {
		margin: 0 auto;
	}
}
