@charset "UTF-8";
/*
	common
-----------------------------------------------------------------------------------------------*/
/* stickyが効かないためトップページだけ無効 */
#wrapper{
	overflow: visible;
}
/*
	kv
-----------------------------------------------------------------------------------------------*/
#kv{
	align-items: flex-end;
	display: flex;
	flex-direction: row-reverse;
	gap: 40px;
	justify-content: space-between;
	padding-left: 70px;
}
 .kv-container{
	flex: 1 0 32%;
	width: 32%;
 }
.kv__catchcopy{
	color: var(--color-blue);
	/* font-size: 5.4rem; */
	/* font-size: clamp(4.5rem, 3.5vw, 6rem); */
	font-size: clamp(4.5rem, 4.3vw, 29vw);
	font-weight: var(--bold);
	letter-spacing: .2rem;
}
.kv__catchcopy--deco{
	background: linear-gradient(transparent 72%, rgb(var(--color-blue-rgb) / 20%) 28%);
	display: inline-block;
	line-height: 130%;
}
.kv__txt{
	font-size: 1.8rem;
	font-size: clamp(1.5rem, 1.5vw, 1.8rem);
	font-weight: var(--bold);
	letter-spacing: .2rem;
	margin-top: 40px;
	white-space: nowrap;
}
.kv__deco{
	margin: 105px 0 0 auto;
	width: 175px;
}
.swiper{
	border-radius: 0 0 0 30px;
	margin-inline: auto;
	margin: 0 0 0 auto;
	/* max-height: calc(100vh - 260px); */
	max-width: 53vw;
	/* min-height: 600px; */
	min-width: 700px;
	overflow: hidden;
	position: relative;
	/* width: calc(100% - 530px); */
}
.swiper-slide-active .swiper-slide__item,
.swiper-slide-duplicate-active .swiper-slide__item,
.swiper-slide-prev .swiper-slide__item{
	animation: kvZoom 7s ease-out 0s normal both;
}
.swiper-pagination{
	left: 50%!important;
	margin-bottom: 15px;
	transform: translate(-50%, 0);
	position: absolute;
}
.swiper-pagination-bullet{
	background: transparent;
	border: 1px solid #fff;
	height: 10px;
	margin: 0 10px !important;
	opacity: 1;
	width: 10px;
}
.swiper-pagination-bullet-active{
	background: #fff;
}
/*
	about
-----------------------------------------------------------------------------------------------*/
#about .container{
	padding-block: 0;
}
.about__img{
	padding-top: 145px;
	position: sticky;
	text-align: right;
	top: 0;
}
.about__lead{
	margin-top: -247px;
}
.about__head{
	color: var(--color-blue);
	font-size: 3.9rem;
	font-weight: var(--bold);
	margin-bottom: 45px;
}
.about__lead--txt{
	font-size: 2.0rem;
	font-weight: var(--bold);
	line-height: 230%;
	margin-top: 30px;
}
/*
	NISSEIで働く人々
-----------------------------------------------------------------------------------------------*/
.people__swiper .swiper-wrapper{
	display: flex;
	flex-wrap: wrap;
	gap: 38px 33px;
	justify-content: center;
	text-align: center;
}
.people__swiper .swiper-slide{
	text-align: left;
	width: calc((100% - 99px)/4) !important;
}
/*
	company
-----------------------------------------------------------------------------------------------*/
#top-company{
	background: var(--background-blue);
	position: relative;
}
#top-company::before,
#top-company::after{
	content: '';
	position: absolute;
}
#top-company::before{
	background: url(../images/bg_top_company_01.png) no-repeat center / cover;
	height: 166px;
	left: 195px;
	top: -97px;
	width: 244px;
}
#top-company::after{
	background: url(../images/bg_top_company_02.png) no-repeat center / cover;
	height: 362px;
	right: 0;
	top: -89px;
	width: 263px;
}
#top-company .container{
	max-width: 100%;
	padding-inline: 0;
	position: static;
}
.top-company__box{
	margin-top: 80px;
	height: 505px;
	position: relative;
}
[class^="top-company__link"],
[class^="top-company__link"] > *{
	display: inline-block;
}
[class^="top-company__link"]{
	align-items: end;
	display: flex;
	/* height: 530px; */
	margin: 0 auto;
	/* min-width: 932px; */
	padding: 0 30px;
	width: var(--width);
}
.top-company__img{
	border-radius: 20px 0 0 20px;
	height: 450px;
	min-width: 932px;
	overflow: hidden;
	position: absolute;
	right: 0;
	top: 0;
	width: 65%;
}
.top-company__img--img{
	width: 100%;
}
.top-company__caption{
	align-items: start;
	background: rgb(255 255 255 / 90%);
	border-radius: 20px;
	color: var(--color-txt);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	padding: 80px;
	position: absolute;
	top: 70px;
	width: 475px;
}
.top-company__caption--head{
	font-size: 3.0rem;
	font-weight: var(--bold);
}
.top-company__caption--en{
	color: var(--color-blue);
	font-size: 1.4rem;
	margin: 16px 0 30px;
}
.top-company__caption--txt{
	line-height: 210%;
	margin-bottom: 45px;
	text-align: justify;
}
@media (hover: hover) and (pointer: fine){
	[class^="top-company__link"],
	[class^="top-company__link"]::before,
	.top-company__img--img,
	.top-company__caption,
	p[class^="page__button"]::before,
	p[class^="page__button"]::after{
		transition: .3s;
	}
	[class^="top-company__link"]:hover .top-company__img--img{
		transform: scale(1.03);
		transition: .3s;
	}
	[class^="top-company__link"]:hover .top-company__caption{
		background: #fff;
		transition: .3s;
	}
	[class^="top-company__link"]:hover p[class^="page__button"]::before{
		background: transparent;
		transition: .3s;
	}
	[class^="top-company__link"]:hover p[class^="page__button"]::after{
		border-right: 2px solid var(--color-blue);
		border-top: 2px solid var(--color-blue);
	}
}
@media screen and (max-width: 812px){
	/*
		kv
	-----------------------------------------------------------------------------------------------*/
	#kv{
		flex-direction: column;
		gap: 0;
		padding-left: 0;
	}
	.kv-container{
		flex: 1 0 100%;
		padding: 0 20px;
		position: relative;
		width: 100%;
	}
	.kv-container::before,
	.kv-container::after{
		position: absolute;
	}
	.kv-container::before{
		border-bottom: 1px solid var(--color-blue);
		bottom: 55px;
		color: var(--color-blue);
		content: 'scroll';
		font-size: 1.2rem;
		font-weight: var(--bold);
		height: 20px;
		right: -50px;
		transform: rotate(90deg);
		transform-origin: bottom;
		width: 180px;
	}
	.kv__catchcopy{
		font-size: 3.1rem;
		line-height: 150%;
	}
	.kv__catchcopy--deco{
		background: linear-gradient(transparent 72%, rgb(var(--color-blue-rgb) / 20%) 28%);
		display: inline-block;
		line-height: 130%;
	}
	.kv__txt{
		font-size: 1.6rem;
		letter-spacing: .2rem;
		line-height: 160%;
		margin-top: 12px;
	}
	.kv__deco{
		margin: 15px auto 0 0;
		width: 130px;
	}
	.swiper{
		border-radius: 0 0 0 13px;
		margin-bottom: 23px;
		max-height: none;
		max-width: calc(100% - 20px);
		min-height: auto;
		min-width: calc(100% - 20px);
		width: calc(100% - 20px);
	}
	.swiper-pagination{
		margin-bottom: 0;
	}
	.swiper-pagination-bullet{
		height: 7px;
		margin: 0 7px !important;
		width: 7px;
	}
	/*
		about
	-----------------------------------------------------------------------------------------------*/
	#about .container{
		display: flex;
		flex-direction: column-reverse;
		padding-block: 70px 0;
	}
	.about__img{
		margin-left: auto;
		padding-top: 0;
		position: static;
		width: 110px;
	}
	.about__lead{
		margin-top: 0;
	}
	.about__head{
		font-size: 2.8rem;
		margin-bottom: 18px;
	}
	.about__lead--txt{
		font-size: 1.5rem;
		font-weight: var(--medium);
		letter-spacing: 0;
		line-height: 170%;
		margin-top: 7px;
		text-align: justify;
	}
	/*
		NISSEIで働く人々
	-----------------------------------------------------------------------------------------------*/
	.people__swiper .swiper-wrapper{
		display: flex;
		flex-wrap: wrap;
		gap: 0;
		justify-content: center;
		text-align: center;
	}
	.people__swiper .swiper-slide{
		text-align: left;
		width: calc((100% - 14px)/3) !important;
	}
	.people__swiper .swiper-slide:not(:nth-child(3n)){
		margin-right: 7px;
	}
	.people__swiper .swiper-slide:not(:nth-child(-n+3)){
		margin-top: 18px;
	}
	/*
		company
	-----------------------------------------------------------------------------------------------*/
	#top-company::before{
		height: 80px;
		left: 20px;
		top: -35px;
		width: 120px;
	}
	#top-company::after{
		height: 138px;
		top: -22px;
		width: 100px;
	}
	#top-company .container{
		max-width: 100%;
		padding-inline: 0;
		position: static;
	}
	.top-company__box{
		margin: 0 0 35px auto;
		max-width: 750px;
		height: 322px;
		position: relative;
	}
	.top-company__box:last-child{
		margin: 0 0 0 auto;
	}
	[class^="top-company__link"]{
		align-items: end;
		margin: 0 auto;
		padding: 0 30px;
		width: var(--width);
	}
	.top-company__img{
		border-radius: 10px 0 0 10px;
		height: 250px;
		max-width: 430px;
		min-width: auto;
		width: 70%;
	}
	.top-company__img--img{
		height: 110%;
		max-width: none;
		position: absolute;
		width: auto;
	}
	.top-company__link--work .top-company__img--img{
		left: -110px;
	}
	.top-company__link--data .top-company__img--img{
		right: -30%;
	}
	.top-company__caption{
		align-items: start;
		border-radius: 10px;
		max-width: 320px;
		min-width: 190px;
		padding: 35px 20px 30px;
		top: 70px;
		width: 62%;
	}
	.top-company__caption--head{
		font-size: 2.0rem;
	}
	.top-company__caption--en{
		font-size: 1.0rem;
		margin: 7px 0 13px;
	}
	.top-company__caption--txt{
		font-size: 1.3rem;
		line-height: 160%;
		margin-bottom: 20px;
	}
}