@charset "utf-8";
#hero {
	width: 100%;
	height: auto;
}
	.hero__inner {
		width: 90%;
		max-width: 1000px;
		height: auto;
		margin: 0 auto;
	}
		.hero__copy {
			width: 100%;
			height: auto;
			margin: 40px auto 42px;
			font-size: 60px;
			font-weight: 500;
			line-height: 1;
			letter-spacing: 0.1em;
			text-align: center;
		}
		.hero__txt {
			width: 100%;
			height: auto;
			font-size: 16px;
			font-weight: 500;
			line-height: calc(38 / 16);
			letter-spacing: 0em;
			text-align: center;
		}

#txtband {
	width: 100%;
	height: auto;
	padding: 60px 0 64px;
	overflow: hidden;
}
	.txtband__inner {
		display: flex;
		justify-content: flex-start;
		align-items: center;
		width: 100%;
	}
		.txtband__image {
			display: flex;
			justify-content: flex-start;
			align-items: center;
			width: auto;
			height: auto;
			animation: infinity-scroll-left 80s infinite linear 0.5s both;
		}
			.txtband__image img {
				width: calc((1283 / 1200) * 100vw);
			}
		@keyframes infinity-scroll-left {
			from {
				transform: translateX(0);
			}
			to {
				transform: translateX(-100%);
			}
		}

#message {
	width: 100%;
	height: auto;
	padding: 0 0 124px;
	overflow: hidden;
}
	.message__inner {
		display: flex;
		justify-content: space-between;
		align-items: flex-start;
		width: 90%;
		max-width: 1000px;
		height: auto;
		margin: 0 auto;
	}
		.message__contents {
			width: 50%;
			height: auto;
			padding: 55px 0 0;
		}
			.message__heading {
				display: flex;
				justify-content: flex-start;
				align-items: center;
				width: 100%;
				height: auto;
				margin: 0 auto 48px;
			}
				.message__heading__txt {
					font-size: 24px;
					font-weight: 500;
					line-height: 1;
					position: relative;
				}
					.message__heading__txt::after {
						content: '';
						display: block;
						width: 100%;
						height: 1px;
						background-color: var(--color--red);
						position: absolute;
						bottom: -11px;
						left: 0;
					}
			.message__txt {
				width: 100%;
				height: auto;
				font-size: 16px;
				font-weight: 500;
				line-height: calc(36 / 16);
			}
		.message__image {
			width: 43.6%;
			height: auto;
		}
			.message__image__ceo {
				width: 100%;
				height: auto;
				margin: 0 auto 22px;
				position: relative;
				z-index: 1;
			}
				.message__image__ceo::after {
					content: '';
					display: block;
					width: 145px;
					height: 63px;
					background-color: var(--color--black);
					position: absolute;
					z-index: 2;
				}
				.message__image__ceo::after {
					bottom: 22px;
					right: 22px;
					transform: translate(50%,50%) rotate(-45deg);
				}
				.container_frame::after {
					border-top: solid 1px var(--color--black);
				}
			.message__image__name {
				width: 296.12px;
				height: auto;
				margin: 0 auto 0 0;
				position: relative;
				z-index: 2;
			}

#philosophy {
	width: 100%;
	height: auto;
	padding: 40px;
	background-color: var(--color--red);
	overflow: hidden;
}
	.philosophy__container {
		width: 100%;
		height: auto;
		padding: 60px 0 94px;
		border-radius: 20px;
		background-color: var(--color--black);
	}
		.philosophy__inner {
			width: 90%;
			max-width: 950px;
			height: auto;
			margin: 0 auto;
			position: relative;
		}
			.philosophy__heading {
				width: 40px;
				height: auto;
				position: absolute;
				top: 12px;
				left: 0;
				transform: translate(-100%,0%);
			}
				.philosophy__heading__txt {
					font-size: 24px;
					font-weight: 600;
					line-height: 1;
					letter-spacing: 0.2em;
					-webkit-writing-mode: vertical-rl;
					-moz-writing-mode: vertical-rl;
					-ms-writing-mode: tb-rl;
					-ms-writing-mode: vertical-rl;
					writing-mode: vertical-rl;
					white-space: nowrap;
				}
					.philosophy__heading__txt::after {
						content: '';
						display: block;
						width: 1px;
						height: calc(100% - 0.2em);
						background-color: var(--color--red);
						position: absolute;
						top: 0;
						right: 0;
					}
			.philosophy__logomark {
				width: 130px;
				height: auto;
				margin: 0 auto 36px;
			}
			.philosophy__copy {
				width: 100%;
				height: auto;
				margin: 0 auto 16px;
				font-size: 38px;
				font-weight: 600;
				line-height: calc(60 / 38);
				letter-spacing: 0.2em;
				text-align: center;
			}
			.philosophy__txt {
				width: 100%;
				height: auto;
				margin: 0 auto 108px;
				font-size: 20px;
				font-weight: 500;
				line-height: 1;
				text-align: center;
			}
			.philosophy__policy {
				width: 100%;
				height: auto;
				margin: 0 auto 21px;
				font-size: 24px;
				font-weight: 500;
				line-height: 1;
				text-align: center;
			}
			.philosophy__policy_txt {
				width: 100%;
				height: auto;
				font-size: 35px;
				font-weight: 600;
				line-height: 1;
				text-align: center;
			}

#profile {
	width: 100%;
	height: auto;
	padding: 85px 0 112px;
	background-image: url('../image/corporate/section-bg_image.webp');
	background-position: center;
	background-repeat: repeat-y;
	background-size: 100% auto;
}
	.profile__inner {
		width: 90%;
		max-width: 840px;
		height: auto;
		margin: 0 auto;
	}
		.profile__heading {
			display: flex;
			justify-content: center;
			align-items: center;
			width: 100%;
			height: auto;
			margin: 0 auto 54px;
		}
			.profile__heading__txt {
				font-size: 24px;
				font-weight: 500;
				line-height: 1;
				color: var(--color--black);
				position: relative;
			}
				.profile__heading__txt::after {
					content: '';
					display: block;
					width: 100%;
					height: 1px;
					background-color: var(--color--red);
					position: absolute;
					bottom: -11px;
					left: 0;
				}
		.profile__list {
			width: 100%;
			height: auto;
		}
			.profile__list__item {
				display: flex;
				justify-content: space-between;
				align-items: flex-start;
				width: 100%;
				height: auto;
				padding: 16px 0;
				font-size: 16px;
				font-weight: 500;
				line-height: calc(36 / 16);
				color: var(--color--black);
			}
			.profile__list__item:not(:last-of-type) {
				border-bottom: dotted 1px var(--color--black);
			}
				.profile__list__item dt {
					width: 150px;
					height: auto;
				}
				.profile__list__item dd {
					flex: 1;
				}
				.profile__list__item dd.partner {
					display: flex;
					justify-content: space-between;
					align-items: flex-start;
				}
					.profile__list__item dd p {
						font-size: 18px;
					}
					.profile__list__item dd p.small {
						font-size: 14px;
						font-weight: 500;
						line-height: 2;
						text-decoration: underline;
					}
					.profile__list__item dd p.small:not(:last-of-type) {
						margin-bottom: 20px;
					}
					.profile__list__item dd p.small:last-of-type {
						margin-bottom: 6px;
					}
					.profile__list__item dd.partner ul {
						width: 50%;
					}

#chart {
	width: 100%;
	height: auto;
	padding: 36px 0 92px;
}
	.chart__inner {
		width: 90%;
		max-width: 840px;
		height: auto;
		margin: 0 auto;
		position: relative;
	}
		.chart__heading {
			width: 40px;
			height: auto;
			position: absolute;
			top: 0;
			left: 0;
		}
			.chart__heading__txt {
				font-size: 24px;
				font-weight: 600;
				line-height: 1;
				letter-spacing: 0.2em;
				-webkit-writing-mode: vertical-rl;
				-moz-writing-mode: vertical-rl;
				-ms-writing-mode: tb-rl;
				-ms-writing-mode: vertical-rl;
				writing-mode: vertical-rl;
				white-space: nowrap;
			}
				.chart__heading__txt::after {
					content: '';
					display: block;
					width: 1px;
					height: calc(100% - 0.2em);
					background-color: var(--color--red);
					position: absolute;
					top: 0;
					right: 0;
				}
		.chart__image {
			width: 100%;
			height: auto;
			padding: 80px 0 0;
		}

#achievements {
	width: 100%;
	height: auto;
	padding: 85px 0 112px;
	background-image: url('../image/corporate/section-bg_image.webp');
	background-position: center;
	background-repeat: repeat-y;
	background-size: 100% auto;
}
	.achievements__inner {
		width: 90%;
		max-width: 840px;
		height: auto;
		margin: 0 auto;
	}
		.achievements__heading {
			display: flex;
			justify-content: center;
			align-items: center;
			width: 100%;
			height: auto;
			margin: 0 auto 54px;
		}
			.achievements__heading__txt {
				font-size: 24px;
				font-weight: 500;
				line-height: 1;
				color: var(--color--black);
				position: relative;
			}
				.achievements__heading__txt::after {
					content: '';
					display: block;
					width: 100%;
					height: 1px;
					background-color: var(--color--red);
					position: absolute;
					bottom: -11px;
					left: 0;
				}
		.achievements__list {
			display: flex;
			flex-direction: column;
			row-gap: 5px;
			width: 100%;
			height: auto;
		}
			.achievements__list__head {
				position: relative;
				z-index: 2;
			}
			.achievements__list__head,
			.achievements__list__body__item {
				display: flex;
				justify-content: space-between;
				align-items: stretch;
				column-gap: 5px;
				width: 100%;
				height: auto;
			}
				.achievements__list__head__cell,
				.achievements__list__body__cell {
					display: flex;
					justify-content: center;
					align-items: center;
					min-height: 56px;
					position: relative;
				}
				.achievements__list__head__cell {
					background-color: var(--color--black);
				}
				.achievements__list__body__cell {
					background-color: var(--color--white);
					padding: 14px 10px;
				}
				.achievements__list__head__cell:nth-of-type(1),
				.achievements__list__body__cell:nth-of-type(1) {
					width: 192px;
				}
				.achievements__list__head__cell:nth-of-type(1) {
					z-index: 3;
				}
				.achievements__list__body__cell:nth-of-type(1) {
					background-color: #D1D1D1;
				}
				.achievements__list__head__cell:nth-of-type(2),
				.achievements__list__body__cell:nth-of-type(2) {
					width: 162px;
				}
				.achievements__list__head__cell:nth-of-type(2) {
					z-index: 2;
				}
				.achievements__list__head__cell:nth-of-type(3),
				.achievements__list__body__cell:nth-of-type(3) {
					flex: 1;
				}
				.achievements__list__head__cell:nth-of-type(3) {
					z-index: 1;
				}
				.achievements__list__body__cell:nth-of-type(3) {
					justify-content: flex-start;
					padding: 14px 20px;
				}
					.achievements__list__head__cell__txt {
						height: auto;
					}
					.achievements__list__sort_btn {
						display: flex;
						justify-content: center;
						align-items: center;
						width: 22px;
						height: 22px;
						padding: 1px 0 0;
						border-radius: 9999px;
						background-color: var(--color--white);
						position: absolute;
						top: 50%;
						right: 8px;
						transform: translate(0%,-50%);
						cursor: pointer;
					}
						.achievements__list__sort_btn svg {
							width: 7px;
							fill: var(--color--black);
						}
						.achievements__list__sort_btn._open svg {
							transform: scale(1,-1);
						}
						.achievements__sort_window {
							width: auto;
							min-width: 120px;
							height: auto;
							padding: 10px 14px;
							border-radius: 6px;
							background-color: #F2F2F2;
							box-shadow: 0px 0px 5px rgba(25, 25, 25, 0.3);
							position: absolute;
							top: 8px;
							left: 10px;
							z-index: 10;
							opacity: 0;
							pointer-events: none;
							transition: .3s;
						}
						.achievements__sort_window._active {
							top: 18px;
							opacity: 1;
							pointer-events: auto;
						}
							.achievements__sort_window__list {
								width: auto;
								height: auto;
							}
								.achievements__sort_window__list__item {
									width: auto;
									height: auto;
									font-size: 14px;
									font-weight: 500;
									line-height: 1.5;
									white-space: nowrap;
									color: var(--color--black);
									cursor: pointer;
								}
								.achievements__sort_window__list__item:not(:last-of-type) {
									margin-bottom: 3px;
								}
			.achievements__list__body {
				display: flex;
				flex-direction: column;
				row-gap: 5px;
				position: relative;
				z-index: 1;
			}
						.achievements__list__body__cell__txt {
							color: var(--color--black);
						}

/* PC ================================================== */
@media all and (min-width: 1101px){


}

@media all and (min-width: 769px){

}

@media all and (max-width: 1100px){
/* hero */
		.hero__copy {
			margin: 0 auto 30px;
			font-size: 40px;
		}
}

/* Tablet ================================================== */
@media all and (max-width: 768px){
/* hero */
	.hero__inner {
		width: calc((344 / 390) * 100%);
	}
		.hero__copy {
			margin: 40px auto;
			font-size: 28px;
			line-height: 1.5;
		}
		.hero__txt {
			font-size: 14px;
			text-align: left;
		}

#txtband {
	padding: 60px 0;
}
			.txtband__image img {
				width: calc((797 / 390) * 100vw);
			}

#message {
	padding: 30px 0 80px;
}
	.message__inner {
		display: block;
		width: calc((344 / 390) * 100%);
	}
		.message__contents {
			width: 100%;
			padding: 0;
			margin: 0 auto 45px;
		}
					.message__heading__txt::after {
						bottom: -5px;
					}
			.message__txt {
				font-size: 14px;
			}
		.message__image {
			width: 100%;
			height: auto;
		}
			.message__image__ceo {
				width: 100%;
				height: auto;
				aspect-ratio: 4 / 3;
				margin: 0 auto 16px;
			}
				.message__image__ceo img {
					width: 100%;
					height: 100%;
					object-fit: cover;
					object-position:  center 0%;
				}
				.message__image__ceo::after {
					width: 100px;
					height: 42px;
				}
				.message__image__ceo::after {
					bottom: 13px;
					right: 14px;
				}
			.message__image__name {
				width: calc(296.12px * .75);
				margin: 0 0 0 auto;
			}

#philosophy {
	padding: 26px 0;
}
	.philosophy__container {
		width: calc((360 / 390) * 100%);
		padding: 50px 0 70px;
		margin: 0 auto;
		border-radius: 10px;
	}
		.philosophy__inner {
			display: flex;
			flex-direction: column;
			justify-content: flex-start;
			align-items: center;
			width: 90%;
		}
			.philosophy__heading {
				display: block;
				width: initial;
				margin-bottom: 40px;
				position: initial;
				transform: initial;
			}
				.philosophy__heading__txt {
					letter-spacing: 0.08em;
					-webkit-writing-mode: initial;
					-moz-writing-mode: initial;
					-ms-writing-mode: initial;
					-ms-writing-mode: initial;
					writing-mode: initial;
					transform: translate(0%,0%);
				}
					.philosophy__heading__txt::after {
						width: 100%;
						height: 1px;
						top: initial;
						bottom: -5px;
						right: 0;
					}
			.philosophy__logomark {
				width: 60px;
				margin: 0 auto 18px;
			}
			.philosophy__copy {
				margin: 0 auto 24px;
				font-size: 28px;
				letter-spacing: 0.1em;
			}
			.philosophy__txt {
				margin: 0 auto 80px;
				font-size: 16px;
				line-height: 1.5;
			}
			.philosophy__policy {
				margin: 0 auto 18px;
				font-size: 18px;
				line-height: 1.6;
			}
			.philosophy__policy_txt {
				font-size: 24px;
				line-height: 1.5;
			}

#profile {
	padding: 80px 0;
}
	.profile__inner {
		width: calc((344 / 390) * 100%);
	}
		.profile__heading {
			margin: 0 auto 30px;
		}
				.profile__heading__txt::after {
					bottom: -5px;
				}
			.profile__list__item {
				flex-direction: column;
				justify-content: flex-start;
				align-items: center;
				padding: 12px 0;
				font-size: 14px;
			}
				.profile__list__item dt {
					width: 100%;
					height: auto;
					font-size: 16px;
					font-weight: 600;
				}
				.profile__list__item dd {
					flex: initial;
					width: 100%;
					padding-left: 14px;
				}
					.profile__list__item dd p {
						font-size: 16px;
					}
					.profile__list__item dd p.small {
						font-size: 12px;
					}
					.profile__list__item dd p.small:not(:last-of-type) {
						margin-bottom: 14px;
					}
					.profile__list__item dd p.small:last-of-type {
						margin-bottom: 4px;
					}

#chart {
	padding: 50px 0 80px;
}
	.chart__inner {
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		align-items: center;
		width: calc((344 / 390) * 100%);
	}
		.chart__heading {
			display: block;
			width: initial;
			margin-bottom: 60px;
			position: initial;
			transform: initial;
		}
			.chart__heading__txt {
				letter-spacing: 0.08em;
				-webkit-writing-mode: initial;
				-moz-writing-mode: initial;
				-ms-writing-mode: initial;
				-ms-writing-mode: initial;
				writing-mode: initial;
				transform: translate(0%,0%);
			}
				.chart__heading__txt::after {
					width: 100%;
					height: 1px;
					top: initial;
					bottom: -5px;
					right: 0;
				}
		.chart__image {
			max-width: 420px;
			padding: 0;
			margin: 0 auto;
		}

#achievements {
	padding: 60px 0 80px;
}
	.achievements__inner {
		width: calc((344 / 390) * 100%);
	}
		.achievements__heading {
			margin: 0 auto 40px;
		}
				.achievements__heading__txt::after {
					bottom: -5px;
				}
		.achievements__list {
			row-gap: 2px;
		}
			.achievements__list__head,
			.achievements__list__body__item {
				column-gap: 2px;
			}
				.achievements__list__head__cell,
				.achievements__list__body__cell {
					min-height: 48px;
				}
				.achievements__list__body__cell {
					padding: 10px 6px;
				}
				.achievements__list__head__cell:nth-of-type(1),
				.achievements__list__body__cell:nth-of-type(1) {
					width: 86px;
				}
				.achievements__list__head__cell:nth-of-type(2),
				.achievements__list__body__cell:nth-of-type(2) {
					width: 80px;
				}
				.achievements__list__head__cell:nth-of-type(1),
				.achievements__list__head__cell:nth-of-type(2) {
					padding-right: 7px;
				}
				.achievements__list__body__cell:nth-of-type(3) {
					padding: 10px;
				}
					.achievements__list__head__cell__txt {
						height: auto;
						font-size: 12px;
						line-height: 1.4;
						text-align: center;
					}
					.achievements__list__sort_btn {
						width: 18px;
						height: 18px;
						border-radius: 0;
						top: 100%;
						right: 0;
						transform: translate(0%,-100%);
					}
						.achievements__sort_window {
							top: 6px;
						}
						.achievements__sort_window._active {
							top: 16px;
						}
								.achievements__sort_window__list__item {
									font-size: 12px;
								}
								.achievements__sort_window__list__item:not(:last-of-type) {
									margin-bottom: 2px;
								}
			.achievements__list__body {
				row-gap: 2px;
			}
						.achievements__list__body__cell__txt {
							font-size: 14px;
							color: var(--color--black);
						}
}

/* SP ================================================== */
@media all and (max-width: 575px){

}