@charset "UTF-8";
/* aboutvision ---------------------------------------*/
.aboutvision {
	position: relative;
}

.aboutvision-num {
	top: 10px;
	left: calc(50% - 574px);
	transform: translateX(-50%);
}

.aboutvision-head {
	padding: 0 20px;
	margin-bottom: 80px;
}

.aboutvision-head-block {
	display: flex;
	gap: calc(40 / 1090 * 100%);
}

.aboutvision-head-summary {
	flex: 1;
}

.aboutvision-head-summary .section-text {
	max-width: 660px;
	width: 100%;
}

.aboutvision-head-image {
	margin-top: 120px;
	width: calc(358 / 1090 * 100%);
}

.aboutvision-head-image img {
	width: 100%;
}

.aboutvision-body {
	padding: 70px 20px;
	background: rgba(238, 238, 238, 0.35);
}

.aboutvision-body-block {
	position: relative;
}

.aboutvision-body-summary {
	width: calc(550 / 1090 * 100%);
	margin-left: auto;
}
.aboutvision-body-image {
	position: absolute;
	box-shadow: 0 2px 9px rgba(4, 0, 0, 0.16);
}

.aboutvision-body-image img {
	width: 100%;
}

.aboutvision-body-image-01 {
	top: max(calc(-170 / 1440 * 100vw), -170px);
	left: calc(50% - 50vw);
	width: min(calc(351 / 1440 * 100vw), 351px);
}

.aboutvision-body-image-02 {
	top: 10px;
	left: calc(280 / 1090 * 100%);
	width: calc(177 / 1090 * 100%);
}


/* aboutmission ---------------------------------------*/
.aboutmission {
	padding: 60px 20px 80px;
}

.aboutmission-wrapper {
	display: flex;
	gap: calc(48 / 1090 * 100%);
}

.aboutmission-summary {
	width: calc(600 / 1090 * 100%);
}

.aboutmission-image {
	position: relative;
	margin-right: calc(50% - 50vw);
	margin-top: 124px;
	width: min(calc(calc(442 / 1090 * 100%) + 50vw - 50%), 617px);
	height: fit-content;
	box-shadow: 0 2px 9px rgba(4, 0, 0, 0.16);
}

.aboutmission-image::before {
	position: absolute;
	top: 22px;
	left: -22px;
	z-index: -1;
	width: 100%;
	height: 100%;
	background: #eee;
	content: '';
}

.aboutmission-image img {
	width: 100%;
}

/* aboutlogo ---------------------------------------*/
.aboutlogo {
	position: relative;
}

.aboutlogo-head {
	padding: 80px 20px 50px;
	background: #1b1b1b;
}

.aboutlogo-deco {
	right: 0;
	height: 220px;
	background: #1b1b1b;
	clip-path: polygon(0 55px, 100% 0, 100% 100%, 0 100%);
}

.aboutlogo-head-wrapper {
	position: relative;
	margin-left: calc(290 / 1090 * 100%);
	width: calc(665 / 1090 * 100%);
}

.aboutlogo-num {
	top: 10px;
	left: calc(-100 / 1090 * 100%);
	color: #fff;
}

.aboutlogo-num span:nth-of-type(2)::after {background: #fff;}
.aboutlogo-head-wrapper .section-title,
.aboutlogo-head-wrapper .section-lead,
.aboutlogo-head-wrapper .section-text {color: #fff;}

.aboutlogo-body {
	padding: 80px 20px 60px;
}

.aboutlogo-body-block {
	display: flex;
	gap: calc(144 / calc(1090 - 300) * 100%);
	margin-left: calc(220 / 1090 * 100%);
	margin-bottom: 46px;
}

.aboutlogo-body-image {
	margin-top: 50px;
	max-width: 329px;
	width: 100%;
}

.aboutlogo-body-image img {
	width: 100%;
}

.aboutlogo-body-summary {
	position: relative;
	max-width: 365px;
	width: 100%;
}

.aboutlogo-body-summary.aboutlogo-body-summary-01::after {
	position: absolute;
	top: 20px;
	right: calc(100% + 26px);
	z-index: 1;
	width: calc(276 / 365 * 100%);
	aspect-ratio: 276 / 39;
	background: url('../img/about/line_01.png') no-repeat;
	background-size: contain;
	content: '';
}

.aboutlogo-body-summary.aboutlogo-body-summary-02 {
	margin: 0 calc(90 / 1090 * 100%) 30px auto;
}

.aboutlogo-body-summary.aboutlogo-body-summary-02::after {
	position: absolute;
	top: -18px;
	right: calc(100% + 26px);
	z-index: 1;
	width: calc(276 / 365 * 100%);
	aspect-ratio: 276 / 39;
	background: url('../img/about/line_02.png') no-repeat;
	background-size: contain;
	content: '';
}

.aboutlogo-body-summary.aboutlogo-body-summary-03 {
	margin: 0 auto 0 calc(190 / 1090 * 100%);
	max-width: 410px;
}

.aboutlogo-body-title {
	font-size: 24px;
	font-weight: 700;
	line-height: 1.5;
	letter-spacing: 0.2em;
	margin-bottom: 10px;
}

.aboutlogo-body-summary-text {
	font-size: 12px;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.28em;
}


/* aboutstrength ---------------------------------------*/
.aboutstrength {
	position: relative;
	padding: 100px 20px 160px;
	background: #fde311;
}

.aboutstrength-deco {
	left: 0;
	background: #fde311;
	clip-path: polygon(0 0, 100% 55px, 100% 100%, 0 100%);
}

.aboutstrength-num {
	top: 110px;
	left: calc(50% - 572px);
	transform: translateX(-50%);
}

.aboutstrength-wrapper {
	display: flex;
	gap: calc(50 / 1090 * 100%);
	margin-bottom: 104px;
}

.aboutstrength-wrapper .section-title {
	white-space: nowrap;
}

.aboutstrength-image {
	margin-top: 150px;
	margin-right: calc(50% - 50vw);
	width: min(calc(calc(267 / 1090 * 100%) + 50vw - 50%), 442px);
	order: 2;
}

.aboutstrength-image img {
	width: 100%;
}

.aboutstrength-summary {
	flex: 1;
	order: 1;
}

.aboutstrength-list {
	margin-top: max(calc(-290 / 1440 * 100vw), -290px);
}

.aboutstrength-list > li {
	position: relative;
}

.aboutstrength-list > li + li {
	margin-top: calc(170 / 1090 * 100%);
}

.aboutstrength-list-summary {
	width: calc(500 / 1090 * 100%);
}

.aboutstrength-list > li:nth-child(even) .aboutstrength-list-summary {margin-left: auto;}

.aboutstrength-list-num {
	width: auto;
	height: 46px;
	margin-bottom: 10px;
}

.aboutstrength-list-num img {
	width: auto;
	height: 100%;
}

.aboutstrength-list-title {
	font-size: 28px;
	font-weight: 600;
	line-height: calc(80 / 56);
	letter-spacing: 0.2em;
	margin-bottom: 10px;
}

.aboutstrength-list-text {
	font-size: 12px;
	font-weight: 300;
	line-height: 2;
	letter-spacing: 0.2em;
}

.aboutstrength-list-text b {
	font-weight: 700;
}

.aboutstrength-list-image {
	position: absolute;
	box-shadow: 0 2px 9px rgba(4, 0, 0, 0.16);
}

.aboutstrength-list-image img {
	width: 100%;
}

.aboutstrength-list-image-01 {
	top: 60px;
	left: calc(570 / 1090 * 100%);
	z-index: 1;
	width: calc(177 / 1090 * 100%);
}

.aboutstrength-list-image-02 {
	top: -50px;
	left: calc(50% - 50vw);
	z-index: 1;
	width: min(calc(calc(442 / 1090 * 100%) + 50vw - 50%), 617px);
}

.aboutstrength-list-image-03 {
	top: -40px;
	left: calc(530 / 1090 * 100%);
	z-index: 1;
	width: calc(383 / 1090 * 100%);
}

.aboutstrength-list-image-04 {
	top: 240px;
	left: calc(820 / 1090 * 100%);
	z-index: 1;
	width: calc(235 / 1090 * 100%);
}

.aboutstrength-list-image-05 {
	top: -10px;
	left: calc(190 / 1090 * 100%);
	z-index: 1;
	width: calc(271 / 1090 * 100%);
}


/* aboutmessage ---------------------------------------*/
.aboutmessage {
	padding: 170px 20px 90px;
}

.aboutmessage-head {
	display: flex;
	gap: calc(110 / 1090 * 100%);
	margin-bottom: 50px;
}

.aboutmessage-head-summary {
	position: relative;
	max-width: 574px;
	width: 100%;
	order: 2;
}

.aboutmessage-num {
	top: 2px;
	left: -26px;
}

.aboutmessage-head-image {
	width: calc(358 / 1090 * 100%);
	order: 1;
}

.aboutmessage-head-image img {
	width: 100%;
}

.aboutmessage-body {
	position: relative;
	z-index: 1;
}

.aboutmessage-body-summary {
	margin-right: 200px;
	margin-bottom: 30px;
	max-width: min(calc(574/ 1000 * 100vw), 574px);
	width: 100%;
}

.aboutmessage-body-image {
	position: absolute;
	top: max(calc(-40 / 1440 * 100vw), -40px);
	right: calc(50% - 50vw);
	z-index: -1;
	width: min(calc(calc(963 / 1090 * 100%) + 50vw - 50%), 1138px);
}

.aboutmessage-body-image img {
	width: 100%;
}

.aboutmessage-body-block {
	margin-right: 200px;
	padding: 40px 30px 40px 20px;
	background: rgba(238, 238, 238, 0.2);
	max-width: 587px;
	width: 100%;
}

.aboutmessage-body-title {
	display: flex;
	gap: 20px;
	margin-bottom: 6px;
}

.aboutmessage-body-title small {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	letter-spacing: 0.14em;
}

.aboutmessage-body-title b {
	display: block;
	font-size: 28px;
	letter-spacing: 0.14em;
}

.aboutmessage-body-job {
	padding-left: 90px;
	margin-bottom: 20px;
	font-size: 12px;
	letter-spacing: 0.14em;
}

.aboutmessage-body-subtitle {
	padding-left: 90px;
	font-size: 14px;
	font-weight: 700;
	line-height: calc(40 / 24);
	letter-spacing: 0.14em;
}

.aboutmessage-body-text {
	padding-left: 90px;
	font-size: 12px;
	font-weight: 300;
	line-height: calc(40 / 24);
	letter-spacing: 0.14em;
}

.aboutmessage-body-text + .aboutmessage-body-subtitle {
	margin-top: 20px;
}

.aboutmessage-body-block dl {
	display: flex;
	flex-wrap: wrap;
	gap: 0 26px;
	margin-top: 20px;
	padding-left: 60px;
}


.aboutmessage-body-block dt {
	width: 100px;
	font-size: 12px;
	font-weight: 300;
	line-height: calc(40 / 24);
	letter-spacing: 0.14em;
	text-align: right;
}

.aboutmessage-body-block dd {
	width: calc(100% - 126px);
	font-size: 12px;
	font-weight: 300;
	line-height: calc(40 / 24);
	letter-spacing: 0.14em;
}


/* aboutcompany ---------------------------------------*/
.aboutcompany {
	position: relative;
	padding: 70px 20px 20px;
	background: rgba(238, 238, 238, 0.35);
}

.aboutcompany-num {
	top: 80px;
	left: calc(50% - 412px);
	transform: translateX(-50%);
}

.aboutcompany-wrapper {
	margin: 0 0 80px 160px;
}

.aboutcompany-list {
	display: flex;
	flex-wrap: wrap;
}

.aboutcompany-list dt,
.aboutcompany-list dd {
	padding: 8px 0 7px;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: 0.14em;
	border-top: 1px solid #eee;
}

.aboutcompany-list dt {width: 160px;}
.aboutcompany-list dd {width: calc(100% - 160px);}

.aboutcompany-decotext {
	display: flex;
}

.aboutcompany-decotext span {
	margin: 0 auto 0 calc(200 / 1440 * 100vw);
	width: calc(2022 / 1440 * 100vw);
	font-size: calc(128 / 1440 * 100vw);
	font-weight: 700;
	font-style: italic;
	line-height: 1;
	letter-spacing: 0;
	color: rgba(158, 158, 158, 0.12);
	white-space: nowrap;
	animation: scroll-deco 24s linear infinite;
}


/* large pc */
@media screen and (min-width: 1441px){
	.aboutvision-body-image-01 {
		left: -175px;
	}

	.aboutstrength-image {
		margin-right: -175px;
	}

	.aboutstrength-list-image-02 {
		left: -175px;
	}

	.aboutmessage-body-image {
		right: -175px;
	}
}

/* small pc */
@media screen and (min-width: 768px) and (max-width: 1550px){
	.aboutlogo-deco {
		display: none;
	}
}

@media screen and (min-width: 768px) and (max-width: 1200px){
	.aboutvision-head {
		margin-bottom: 120px;
	}

	.aboutvision-head-summary {
		padding-left: 30px;
	}

	.aboutvision-num {
		left: 20px;
		transform: unset;
	}

	.aboutstrength-summary {
		padding-left: 30px;
	}

	.aboutstrength-num {
		left: 20px;
		transform: unset;
	}
}

@media screen and (min-width: 768px) and (max-width: 1100px){
	.aboutlogo-body-summary.aboutlogo-body-summary-02::after {
		top: calc(-10 / 1100 * 100vw);
		right: calc(100% + 10px);
		width: calc(200 / 1100 * 100vw);
	}

	.aboutcompany-num {
		left: 140px;
		transform: unset;
	}
}


/* sp only */
@media screen and (max-width: 767px){
	/* aboutvision ---------------------------------------*/
	.aboutvision-num {
		top: 10px;
		left: unset;
		right: 14px;
		transform: unset;
	}

	.aboutvision-head {
		padding: 0 14px;
		margin-bottom: 40px;
	}

	.aboutvision-head-block {
		display: block;
	}

	.aboutvision-head-summary {
		width: 100%;
	}

	.aboutvision-head-summary .section-text {
		max-width: unset;
	}

	.aboutvision-head-image {
		margin: 40px auto 0;
		width: calc(209 / 375 * 100vw);
	}

	.aboutvision-body {
		padding: 30px 14px;
		margin-bottom: calc(30px + 12vw);
	}

	.aboutvision-body-summary {
		width: 100%;
		padding: 0 14px;
		margin: 0 auto 30px;
	}

	.aboutvision-body-image {
	}

	.aboutvision-body-image-01 {
		position: unset;
		width: calc(189 / 375 * 100vw);
		margin: 0 auto 0 -14px;
	}

	.aboutvision-body-image-02 {
		top: unset;
		bottom: calc(-30px - 12vw);
		left: calc(221 / 375 * 100vw);
		width: calc(100 / 375 * 100vw);
	}


	/* aboutmission ---------------------------------------*/
	.aboutmission {
		padding: 40px 14px 40px;
	}

	.aboutmission-wrapper {
		display: block;
	}

	.aboutmission-summary {
		width: 100%;
		margin-bottom: 50px;
	}

	.aboutmission-image {
		margin: 0 -14px 0 auto;
		width: calc(282 / 375 * 100vw);
	}

	.aboutmission-image::before {
		top: 10px;
		left: -10px;
	}


	/* aboutlogo ---------------------------------------*/
	.aboutlogo-head {
		padding: 40px 14px;
	}

	.aboutlogo-deco {
		display: none;
	}

	.aboutlogo-head-wrapper {
		margin: unset;
		padding-left: 40px;
		width: 100%;
	}

	.aboutlogo-num {
		top: 6px;
		left: 16px;
		transform: unset;
	}

	.aboutlogo-body {
		padding: 50px 14px;
	}

	.aboutlogo-body-block {
		display: block;
		margin: 0 auto 30px;
	}

	.aboutlogo-body-image {
		margin: 0 auto 24px;
		max-width: unset;
		width: calc(165 / 375 * 100vw);
	}

	.aboutlogo-body-summary {
		max-width: unset;
	}

	.aboutlogo-body-summary.aboutlogo-body-summary-01::after,
	.aboutlogo-body-summary.aboutlogo-body-summary-02::after,
	.aboutlogo-body-summary.aboutlogo-body-summary-03::after {
		position: absolute;
		top: 10px;
		right: unset;
		left: 0;
		width: 152px;
		aspect-ratio: 152 / 22;
		background: url('../img/about/line_02.png') no-repeat;
		background-size: contain;
		content: '';
	}

	.aboutlogo-body-summary.aboutlogo-body-summary-01,
	.aboutlogo-body-summary.aboutlogo-body-summary-03 {
		padding-left: 20px;
		padding-right: 15px;
		margin: unset;
		max-width: unset;
	}

	.aboutlogo-body-summary.aboutlogo-body-summary-02 {
		padding-left: 20px;
		margin: 0 0 30px 15px;
	}

	.aboutlogo-body-title {
		font-size: 16px;
		margin-bottom: 20px;
	}

	.aboutlogo-body-summary-text {
		font-size: 14px;
		line-height: calc(24 / 14);
		letter-spacing: 0.14em;
	}


	/* aboutstrength ---------------------------------------*/
	.aboutstrength {
		padding: 40px 14px;
	}

	.aboutstrength-deco {
		clip-path: polygon(0 0, 100% 35px, 100% 100%, 0 100%);
	}

	.aboutstrength-num {
		top: calc(calc(158 / 375 * 100vw) + 64px);
		left: 14px;
		transform: unset;
	}

	.aboutstrength-wrapper {
		display: block;
		margin-bottom: 20px;
		padding-left: 20px;
	}

	.aboutstrength-image {
		margin: 0 -14px 30px auto;
		width: calc(240 / 375 * 100vw);
	}

	.aboutstrength-list {
		margin-top: 0;
	}

	.aboutstrength-list > li + li {
		margin-top: 46px;
	}

	.aboutstrength-list-summary {
		width: 100%;
		padding-left: 42px;
	}

	.aboutstrength-list > li:nth-child(even) .aboutstrength-list-summary {
		margin-left: unset;
		padding-left: 0;
		padding-right: 42px;
	}

	.aboutstrength-list-num {
		height: 36px;
		margin-bottom: 6px;
	}

	.aboutstrength-list-title {
		font-size: 20px;
		margin-bottom: 2px;
	}

	.aboutstrength-list-text {
		font-size: 14px;
	}

	.aboutstrength-list-image {
		position: unset;
	}

	.aboutstrength-list-image-01 {
		margin: 18px auto 0 42px;
		width: calc(116 / 375 * 100vw);
	}

	.aboutstrength-list-image-02 {
		margin: 30px auto 0 -14px;
		width: calc(308 / 375 * 100vw);
	}

	.aboutstrength-list-image-03 {
		margin: 30px auto 0 0;
		width: calc(191 / 375 * 100vw);
	}

	.aboutstrength-list-image-04 {
		margin: 30px auto 0 calc(150 / 375 * 100vw);
		width: calc(153 / 375 * 100vw);
	}

	.aboutstrength-list-image-05 {
		margin: 30px auto 0;
		width: calc(156 / 375 * 100vw);
	}


	/* aboutmessage ---------------------------------------*/
	.aboutmessage {
		padding: 40px 14px;
	}

	.aboutmessage-head {
		display: block;
		margin-bottom: 30px;
		padding-left: 20px;
	}

	.aboutmessage-head-summary {
		max-width: unset;
	}

	.aboutmessage-num {
		top: 6px;
		left: -20px;
	}

	.aboutmessage-head-image {
		margin: 16px auto 0 calc(50 / 375 * 100vw);
		width: calc(184 / 375 * 100vw);
	}

	.aboutmessage-body-summary {
		margin-right: unset;
		margin-bottom: 39vw;
		max-width: unset;
	}

	.aboutmessage-body-image {
		top: 27%;
		right: -14px;
		width: 100vw;
	}

	.aboutmessage-body-block {
		margin-right: unset;
		padding: 0;
		background: unset;
		max-width: unset;
		width: 100%;
	}

	.aboutmessage-body-title {
		display: block;
		margin-bottom: 2px;
	}

	.aboutmessage-body-title small {
		margin: 0 0 10px;
		font-size: 2px;
	}

	.aboutmessage-body-title b {
		font-size: 20px;
	}

	.aboutmessage-body-job {
		padding-left: 0;
		margin-bottom: 20px;
		font-size: 14px;
	}

	.aboutmessage-body-subtitle {
		padding-left: 0;
		font-size: 15px;
	}

	.aboutmessage-body-text {
		padding-left: 0;
		font-size: 14px;
	}

	.aboutmessage-body-text + .aboutmessage-body-subtitle {
		margin-top: 16px;
	}

	.aboutmessage-body-block dl {
		gap: 0 16px;
		padding-left: 0;
	}

	.aboutmessage-body-block dt {
		width: 100px;
		font-size: 12px;
	}

	.aboutmessage-body-block dd {
		width: calc(100% - 116px);
		font-size: 12px;
	}


	/* aboutcompany ---------------------------------------*/
	.aboutcompany {
		padding: 40px 14px 20px;
	}

	.aboutcompany-num {
		top: 46px;
		left: 14px;
		transform: unset;
	}

	.aboutcompany-wrapper {
		margin: 0 auto 30px;
		padding-left: 20px;
	}

	.aboutcompany-list dt,
	.aboutcompany-list dd {
		padding: 6px 0 5px;
		font-size: 12px;
	}

	.aboutcompany-list dt {width: 100px;}
	.aboutcompany-list dd {width: calc(100% - 100px);}

	.aboutcompany-decotext span {
		margin: 0 auto 0 calc(100 / 375 * 100vw);
		width: calc(1011 / 375 * 100vw);
		font-size: calc(64 / 375 * 100vw);
		animation: scroll-deco 20s linear infinite;
	}

}

/* large sp */
@media screen and (min-width: 500px) and (max-width: 767px){
	.aboutmessage-body-image {
		top: 19%;
	}
}


/* iphone5 iphoneSE用 */
@media screen and (max-width: 370px){

}