/* ------------------
history
-------------------- */

.history {
	padding: 50px 20px 0;
}

.history .intro {
	padding: 36px 20px;
	margin-bottom: 50px;
	font-size: calc(1.9rem / 1.6);
	font-weight: bold;
	color: #fff;
	letter-spacing: 0.03em;
	background: url(/jp-ja/recruit/company/img/img_history_intro.jpg) no-repeat
		50% / cover;
}

.history .lead {
	margin-bottom: 50px;
	font-size: calc(1.8rem / 1.6);
	font-weight: bold;
}

.history .title {
	margin-bottom: 30px;
	font-size: calc(2.8rem / 1.6);
}

.history .section {
	margin-top: 30px;
}

.history .subtitle {
	padding: 20px;
	text-align: center;
	background: #f6f6f6;
}

.history .subtitle span:first-child {
	display: block;
	font-size: calc(2.4rem / 1.6);
}

.history .subtitle span:last-child {
	display: block;
	font-size: calc(1.8rem / 1.6);
	font-weight: normal;
}

@media (width <= 750px) {
	/* SP */

	.history .img img {
		width: 100%;
		height: calc(200 / 390 * 100vw);
		object-fit: cover;
	}
} /* @media */

@media (width >= 751px) {
	/* PC */

	.history {
		position: relative;
		display: flex;
		align-items: flex-start;
		max-width: 1500px;
		padding: 80px 0 0;
		margin: 0 auto;
	}

	.history::before {
		position: absolute;
		top: 0;
		left: 79px;
		width: 2px;
		height: 100%;
		content: "";
		background: #92ceff;
	}

	.history-nav {
		position: sticky;
		top: 101px;
		width: 120px;
		margin-right: 46px;
		margin-left: 64px;
	}

	.history-nav ul {
		height: calc(100vh - 101px);
	}

	.history-nav li {
		height: 25%;
	}

	.history-nav li p {
		display: flex;
		align-items: center;
		height: 100%;
	}

	.history-nav li p a {
		position: relative;
		display: block;
		width: 120px;
		padding-left: 27px;
		font-size: calc(2.4rem / 1.6);
		color: var(--blue);
		border-radius: 3em;
	}

	.history-nav li p a::before {
		position: absolute;
		top: calc(50% - 7px);
		left: 9px;
		width: 14px;
		height: 14px;
		content: "";
		background: var(--blue);
		border-radius: 50%;
	}

	.history-nav .current p a {
		color: #fff;
		background: var(--blue);
	}

	.history-nav .current p a::before {
		background: #fff;
	}

	.history-contents {
		flex: 1;
		padding-right: 150px;
	}

	.history .intro {
		padding: 80px 40px;
		margin-bottom: 60px;
		font-size: calc(3.2rem / 1.6);
		letter-spacing: 0.06em;
	}

	.history .lead {
		margin-bottom: 90px;
		letter-spacing: 0.06em;
	}

	.history .title {
		margin-bottom: 50px;
		font-size: calc(3.2rem / 1.6);
		letter-spacing: 0.06em;
	}

	.history .section {
		margin-top: 0;
		scroll-margin-top: 150px;
	}

	.history .subtitle {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		padding: 12px 50px;
		text-align: left;
		border-top: 2px solid #000;
		border-bottom: 1px solid #8e8e8e;
	}

	.history .title + .subtitle {
		margin-top: 50px;
	}

	.history .subtitle span:first-child {
		margin-right: 50px;
	}

	.history .subtitle span:last-child {
		font-size: calc(2.4rem / 1.6);
		font-weight: bold;
	}

	.history .img {
		position: relative;
		z-index: 1;
		float: right;
		padding: 40px 35px 10px 25px;
		background: #f6f6f6;
	}
} /* @media */

@media (width <= 1000px) and (width >= 751px) {
	/* TABLET */

	.history::before {
		left: 29px;
	}

	.history-nav {
		width: 90px;
		margin-right: 16px;
		margin-left: 14px;
	}

	.history-nav li a span {
		width: 90px;
		font-size: calc(1.8rem / 1.6);
	}

	.history-contents {
		padding-right: 100px;
	}

	.history .img {
		float: none;
		padding: 40px 20px 0;
		text-align: center;
	}
} /* @media */

/* ------------------
btn-more
-------------------- */

.btn-more {
	position: relative;
	display: block;
	width: 160px;
	height: 40px;
	margin: -40px auto 0;
	font-size: calc(1.8rem / 1.6);
	font-weight: bold;
	color: #fff;
	text-align: center;
	background: var(--blue);
	border-radius: 10px 10px 0 0;
}

.btn-more::after {
	margin-left: 10px;
	content: "＋";
}

.btn-more[aria-expanded="true"]::after {
	content: "－";
}

@media (width >= 751px) {
	/* PC */

	.btn-more {
		display: none;
	}
} /* @media */

/* ------------------
detail
-------------------- */

.detail {
	padding: 30px 0 0;
}

.detail .description {
	margin-bottom: 20px;
	font-size: calc(1.6rem / 1.6);
}

.detail .description p + p {
	margin-top: 1em;
}

.detail .item {
	padding: 30px 24px;
	margin-bottom: 20px;
	border: 2px solid #92ceff;
	box-shadow: 0 3px 6px rgb(0 0 0 / 16%);
}

.detail .year {
	display: inline-block;
	padding: 0 20px;
	margin-bottom: 20px;
	font-size: calc(2.4rem / 1.6);
	font-weight: 600;
	line-height: 1.5;
	color: #fff;
	background: var(--blue);
	border-radius: 3em;
}

.detail .text {
	margin-bottom: 30px;
	font-size: calc(1.8rem / 1.6);
	font-weight: bold;
	letter-spacing: 0;
}

.detail .item img {
	display: block;
	margin: 0 auto 20px;
}

.detail .point {
	margin-top: 30px;
	font-size: calc(1.4rem / 1.6);
}

.detail .point span {
	font-weight: bold;
}

.detail .outro {
	padding: 40px;
	margin: 40px -20px 0;
	color: #fff;
	background: url(/jp-ja/recruit/company/img/img_history_outro_sp.jpg) no-repeat
		50% / cover;
}

.detail .outro .text {
	margin-bottom: 15px;
	font-size: calc(2rem / 1.6);
	letter-spacing: 0.03em;
}

.detail .outro .msg {
	font-size: calc(2rem / 1.6);
	font-weight: bold;
	letter-spacing: 0.03em;
}

@media (width >= 751px) {
	/* PC */

	.detail {
		display: block;
		padding: 0;
	}

	.detail .description {
		padding: 40px 25px 40px 50px;
		margin-bottom: 60px;
		letter-spacing: 0.06em;
		background: #f6f6f6;
		border-bottom: 2px solid #000;
	}

	.detail .list {
		display: grid;
		grid-template-columns: repeat(2, 1fr);
		gap: 40px;
		margin-bottom: 140px;
	}

	.detail .item {
		padding: 15px 15px 10px;
		margin-bottom: 0;
		border-width: 1px;
		box-shadow: 8px 8px 4px rgb(0 0 0 / 10%);
	}

	.detail .item:nth-child(2n) {
		margin-top: 40px;
		margin-bottom: -40px;
	}

	.detail .year {
		padding: 0 16px;
		margin-bottom: 10px;
		font-size: calc(2rem / 1.6);
		line-height: calc(2.6rem / 1.6);
	}

	.detail .text {
		margin-bottom: 10px;
		font-size: calc(1.6rem / 1.6);
		line-height: 1.6;
	}

	.detail .item img {
		margin-bottom: 10px;
	}

	.detail .point {
		margin-top: 0;
	}

	.detail .outro {
		position: relative;
		z-index: 1;
		padding: 140px 40px 280px;
		margin: 0 -150px 0 -230px;
		background: url(/jp-ja/recruit/company/img/img_history_outro_pc.jpg)
			no-repeat 50% / cover;
	}

	.detail .outro .inner {
		display: grid;
		gap: 80px 35px;
		align-items: center;
		max-width: 900px;
		margin: 0 auto;
	}

	.detail .outro .year {
		grid-row: 1 / 2;
		grid-column: 1 / 2;
		margin-bottom: 0;
	}

	.detail .outro .text {
		grid-row: 1 / 2;
		grid-column: 2 / 3;
		margin-bottom: 0;
		font-size: calc(2.8rem / 1.6);
		letter-spacing: 0.1em;
	}

	.detail .outro .msg {
		grid-row: 2 / 3;
		grid-column: 2 / 3;
		font-size: calc(2.8rem / 1.6);
		letter-spacing: 0.06em;
	}
} /* @media */

@media (width >= 751px) {
	/* PC */

	.detail .list {
		margin-bottom: 80px;
	}
} /* @media */

@media (width <= 1000px) and (width >= 751px) {
	/* TABLET */

	.detail .outro {
		margin: 0 -80px 0 -130px;
	}
} /* @media */

@media (width >= 1281px) {
	.detail .list {
		grid-template-columns: repeat(3, 1fr);
		margin-bottom: 200px;
	}

	.detail .item:nth-child(2n) {
		margin-top: 0;
		margin-bottom: 0;
	}

	.detail .item:nth-child(3n - 1) {
		margin-top: 40px;
		margin-bottom: -40px;
	}

	.detail .item:nth-child(3n) {
		margin-top: 80px;
		margin-bottom: -80px;
	}
} /* @media */

/* ------------------
close-up
-------------------- */

.close-up {
	margin-top: 20px;
}

.close-up .en {
	position: relative;
	display: inline-block;
	padding: 10px 40px;
	font-size: calc(2.4rem / 1.6);
	background: #e2f2ff;
	border-radius: 10px 10px 0 0;
}

.close-up .inner {
	padding: 30px 24px;
	background: #e2f2ff;
	border-radius: 0 10px 10px;
}

.close-up h4 {
	margin-bottom: 30px;
	font-size: calc(2.2rem / 1.6);
}

.close-up .text {
	margin-bottom: 30px;
	font-size: calc(1.6rem / 1.6);
	font-weight: normal;
}

.close-up .text span {
	font-weight: bold;
	color: #00387d;
}

.close-up .img-list {
	margin: -5px;
	overflow: hidden;
}

.close-up .img-list img {
	display: block;
	float: left;
	max-width: calc(50% - 10px);
	margin: 5px;
}

@media (width >= 751px) {
	/* PC */

	.close-up {
		max-width: 1000px;
		margin: 0 auto 140px;
	}

	.close-up .en {
		padding: 10px 40px 0;
	}

	.close-up .inner {
		padding: 40px 48px;
	}

	.close-up h4 {
		font-size: calc(2.4rem / 1.6);
	}

	.close-up .text {
		margin-bottom: 40px;
	}

	.close-up .img-list {
		margin: -5px;
		overflow: hidden;
	}

	.close-up .img-list img {
		display: block;
		float: left;
		max-width: calc(50% - 10px);
		margin: 5px;
	}
} /* @media */

@media (width >= 1116px) {
	.close-up {
		margin-top: -80px;
	}
} /* @media */

/* ------------------
outro
-------------------- */
