@charset "UTF-8";

/* home
-------------------------------------------------------------- */
.container { background-color: var(--color_main);}

.bg, .bg video, .bg:after {
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
.bg {
	position: fixed;
	pointer-events: none;
	animation: fadeInBg 1.5s ease 0.1s forwards;
	opacity: 0;
	z-index: 0;
}
@keyframes fadeInBg {
	form	{ opacity: 0;}
	to		{ opacity: 1;}
}
.bg video { position: absolute; object-fit: cover;}
.bg:after { position:absolute; content: ""; background-color: rgba(0,0,0,0.2); z-index: 1;}


/* secMvv
-------------------------------------------------------------- */
.top .sec { position: relative; z-index: 1;}

.secMission, .secVision {
	position: relative;
	min-height: 88vh;
	max-height: 100%;
	border-bottom: 1px solid var(--color_white);
	color: var(--color_white);
}
.secMission:before, .secVision:before {
	position: absolute;
	top: 6em;
	left: 0;
	content: attr(data-text);
	font-family: var(--family-poppin);
	font-size: 12px;
	letter-spacing: 0.1em;
	transform: rotate(90deg);
}
.secMission:after, .secVision:after {
	position: absolute;
	top: 0;
	left: 4%;
	content: "";
	height: 100%;
	border-left: 1px solid var(--color_white);
}
.secMission > .inr, .secVision > .inr {
	display: flex;
	flex-flow: column nowrap;
	justify-content: space-between;
	height: 100%;
}

.secMission .txt, .secVision .txt { padding-top: 12vh; padding-bottom: 4vh;}
.secVision .hl {
	font-size: var(--fs-xl);
	font-weight: bold;
	line-height: 1.3;
	margin-bottom: 0.2em;
}

.scrollArea {
	position: absolute;
	right: 2em;
	bottom: 4.5em;
	height: 100px;
	pointer-events: none;
}
.scrollArea:before {
	content: "SCROLL";
	font-family: var(--family-poppin);
	font-size: 12px;
	color: var(--color_white);
}
.scrollArea:after {
	position: absolute;
	right: 20px;
	top: 30px;
	content: "";
	border-left: 1px solid var(--color_white);
	animation: scrollBd 2s ease forwards infinite;
	height: 0;
}
@keyframes scrollBd {
	0%		{ height: 0; top: 30px; bottom: auto;}
	50%		{ height: 65px; top: 30px; bottom: auto;}
	50.1%		{ height: 65px; top: auto; bottom: 0;}
	99.9%		{ height: 0; top: auto; bottom: 0;}
	100%		{ height: 0; top: 30px; bottom: auto;}
}
.scrollArea span {
	position: absolute;
	right: 18px;
	bottom: 0;
	content: "";
	width: 5px;
	height: 5px;
	background-color: var(--color_white);
	border-radius: 50%;
}

@media screen and (max-width: 1280px) {
	.secMission, .secVision { padding-left: 3.6em;}
	.secMission:after, .secVision:after { left: 3.6em;}
	.secMission > .inr, .secVision > .inr { padding-left: 5%;}
}
@media screen and (max-width: 896px) {
	.secMission, .secVision { min-height: 70vh; padding-left: 2.2em;}
	.secMission:before, .secVision:before { top: 4em; left: -1em;}
	.secVision:before { left: -0.6em;}
	.secMission:after, .secVision:after { left: 2.2em;}

	.secMission .txt, .secVision .txt { padding-top: 10vh;}
	.secMission .txt h1 img { width: 450px;}
	.scrollArea { right: 1.5em; bottom: 2.5em;}
	.secVision .hl { font-size: var(--fs-l);}
}


/* secService
-------------------------------------------------------------- */
.secService {
	position: relative;
	background-color: var(--color_gray-light);
	padding-top: 18em;
	overflow: hidden;
}
.secService .hl {
	position: absolute;
	top: 0.4em;
	left: 50%;
	color: var(--color_gray-dark);
	font-size: 10em;
	font-weight: bold;
	text-align: center;
	white-space: nowrap;
	margin: 0 auto;
	transform: translateX(-50%);
	overflow: hidden;
}

.serviceBox {
	position: relative;
	height: 35em;
	max-height: 100%;
	margin: 6em auto;
}
.serviceBox .txt {
	width: 1100px;
	max-width: 100%;
	margin: 0 auto;
}
.serviceBox .txt > .inr { padding-right: 50%;}
.serviceBox .btnArea { margin-top: 10%; text-align: left;}
.serviceBox .img {
	position: absolute;
	top: 0;
	right: -5%;
	width: 50%;
	height: 100%;
	content: "";
	z-index: 0;
	margin: 0;
}
.serviceBox .img img { width: 100%; height: 100%; object-fit: cover;}

@media screen and (max-width: 1280px) {
	.serviceBox { height: 30em;}
}
@media screen and (max-width: 1024px) {
	.secService .hl { letter-spacing: -0.02em;}
}
@media screen and (max-width: 896px) {
	.secService { padding-top: 30%;}
	.secService .hl { font-size: 16.5vw;}
	.hl1 > span { font-size: var(--fs-xl);}
	.serviceBox { height: auto; margin: 4em 0;}
	.serviceBox .txt > .inr { padding-right: 0;}
	.serviceBox .img { position: static; width: 600px; max-width: 100%; margin: 2em auto 0;}
}
@media screen and (max-width: 480px) {
	.secService { padding-top: 20%;}
}


/* secSecumaga
-------------------------------------------------------------- */
.secSecumaga { background-color: var(--color_white);}

.secSecumaga .hl { text-align: center; font-size: var(--fs-s);}
.secSecumaga .hl > span {display: block; margin-bottom: 0.2em;}

.secSecumaga .item .img:before {
	position: absolute;
	top: 0;
	left: 0;
	content: "";
	width: 100%;
	height: 100%;
	background-color: var(--color_shadow-light);
	transition: all 0.2s ease;
	z-index: 1;
}
.secSecumaga .item a:hover .img:before { opacity: 0;}

@media screen and (max-width: 896px) {
	.secSecumaga .tCenter { text-align: left;}
	.secSecumaga .hl { font-size: var(--fs-m);}
}
@media screen and (max-width: 480px) {
	.secSecumaga .hl img { width: 300px;}
}


/* secNews
-------------------------------------------------------------- */
.secNews { background-color: var(--color_gray-light);}
.secNews .snsBox { margin-top: 6em;}
.secNews .box { background-color: var(--color_white); padding: 2em 1em;}
.secNews .box > .inr {
	display: flex;
	flex-flow: column nowrap;
	gap: 2em 0;
	height: 100%;
	margin-top: 2em;
}

.smesPj {
	display: flex;
	flex-flow: row nowrap;
	justify-content: space-between;
	align-items: center;
	margin-top: 4em;
}
.smesPj picture { width: 45%;}
.smesPj p { width: 50%; margin: 0;}
.smesPj a:hover { opacity: 0.6;}

@media screen and (max-width: 480px) {
	.secNews .snsBox { margin-top: 3em;}
	.secSecumaga .hl img { width: 300px;}

	.smesPj { flex-direction: column; gap: 1em;}
	.smesPj picture { width: 100%;}
	.smesPj p { width: 100%;}
}


/* secRecruit
-------------------------------------------------------------- */
.secRecruit {
	color: var(--color_white);
	padding-bottom: 620px;
	background: url(../../images/official_v2/home/recruit_img.jpg) repeat-x 0 100% / 2277px auto;
	animation: bgroop 25s linear infinite;
}
@keyframes bgroop {
	0%		{ opacity: 0; background-position: 0 100%;}
	6%		{ opacity: 1;}
	100%	{ background-position: -2277px 100%;}
}

@media screen and (max-width: 1280px) {
	.secRecruit {
		background-size: 2000px auto;
		padding-bottom: 580px;
	}
	@keyframes bgroop {
		0%		{ opacity: 0; background-position: 0 100%;}
		6%		{ opacity: 1;}
		100%	{ background-position: -2000px 100%;}
	}
}
@media screen and (max-width: 896px) {
	.secRecruit {
		background-size: 1500px auto;
		padding-bottom: 400px;
		animation-duration: 20s;
	}
	@keyframes bgroop {
		0%		{ opacity: 0; background-position: 0 100%;}
		6%		{ opacity: 1;}
		100%	{ background-position: -1500px 100%;}
	}
}
@media screen and (max-width: 480px) {
	.secRecruit {
		background-size: 1000px auto;
		padding-bottom: 280px;
		animation-duration: 18s;
	}
	@keyframes bgroop {
		0%		{ opacity: 0; background-position: 0 100%;}
		6%		{ opacity: 1;}
		100%	{ background-position: -1000px 100%;}
	}
}


/* secSecurity
-------------------------------------------------------------- */
.secSecurity { background-color: var(--color_gray-light);}
.secSecurity .img,
.secSecurity .img img { height: 90px;}
.secSecurity .item:first-child .img img { height: 70px; margin-top: 15px;}


@media screen and (max-width: 896px) {
	.secSecurity .flexBox.clm3 {
		flex-flow: column nowrap;
		gap: 0;
		margin-top: 4em;
	}
	.secSecurity .flexBox.clm3 .item {
		flex-flow: row nowrap;
		justify-content: space-between;
		align-items: center;
		width: 100%;
		padding: 2em 0;
		border-bottom: 1px solid var(--color_white);
		gap: 0;
	}
	.secSecurity .flexBox.clm3 .item:last-child {
		border-bottom: none;
	}
	.secSecurity .flexBox .item .img { width: 30%; height: auto; margin-bottom: 0;}
	.secSecurity .flexBox .item .txt { width: 65%;}
	.secSecurity .item:first-child .img img { width: 170px; height: auto; margin-top: 0;}
}
@media screen and (max-width: 480px) {
	.secSecurity .flexBox.clm3 { margin-top: 2em;}
	.secSecurity .flexBox.clm3 .item { padding: 1em 0;}
	.secSecurity .flexBox .item .txt { font-size: 0.75em;}
	.secSecurity .flexBox .item .img { width: 40%;}
	.secSecurity .flexBox .item .txt { width: 55%;}
}
