@charset "UTF-8";

/*===================================
共通
===================================*/
/* noto-sans-jp-regular - japanese */
@font-face{
	font-display:swap;
	font-family:'Noto Sans JP';
	font-style:normal;
	font-weight:400;
	src:url('../fonts/Noto_Sans_JP/noto-sans-jp-v53-japanese-regular.woff2') format('woff2');
}

/* noto-sans-jp-500 - japanese */
@font-face{
	font-display:swap;
	font-family:'Noto Sans JP';
	font-style:normal;
	font-weight:500;
	src:url('../fonts/Noto_Sans_JP/noto-sans-jp-v53-japanese-500.woff2') format('woff2');
}

/* noto-sans-jp-700 - japanese */
@font-face{
	font-display:swap;
	font-family:'Noto Sans JP';
	font-style:normal;
	font-weight:700;
	src:url('../fonts/Noto_Sans_JP/noto-sans-jp-v53-japanese-700.woff2') format('woff2');
}

/* noto-sans-jp-900 - japanese */
@font-face{
	font-display:swap;
	font-family:'Noto Sans JP';
	font-style:normal;
	font-weight:900;
	src:url('../fonts/Noto_Sans_JP/noto-sans-jp-v53-japanese-900.woff2') format('woff2');
}

/* outfit-regular - latin */
@font-face{
	font-display:swap; 
	font-family:'Outfit';
	font-style:normal;
	font-weight:400;
	src:url('../fonts/Outfit/outfit-v11-latin-regular.woff2') format('woff2');
}

/* outfit-500 - latin */
@font-face{
	font-display:swap; 
	font-family:'Outfit';
	font-style:normal;
	font-weight:500;
	src:url('../fonts/Outfit/outfit-v11-latin-500.woff2') format('woff2');
}

/* outfit-700 - latin */
@font-face{
	font-display:swap; 
	font-family:'Outfit';
	font-style:normal;
	font-weight:700;
	src:url('../fonts/Outfit/outfit-v11-latin-700.woff2') format('woff2');
}

html{
	height:100%;
	margin: 0;
	padding: 0;
	font-size:62.5%;
	line-height:240%;
	box-sizing:border-box;
	scroll-behavior: auto;
}
body{
	height:100%;
	margin:0;
	padding:0;
	color:#222222;
	font-size:1.6rem;
	line-height:2.6rem;
	font-weight:400;
	font-family:"Noto Sans JP", sans-serif;
	letter-spacing: 0.05em;
	background:#fff;
	word-break:break-all;
	box-sizing:border-box;
	position:relative;
}
*{ box-sizing:border-box; scroll-behavior: auto!important; }

.hiddenText,
.hiddenText a{
	width:0px;
	height:0px;
	overflow:hidden;
	position:absolute;
}
a{ color:#222222; transition:all .3s ease; text-decoration:underline; cursor:pointer; }
a:hover{ color:#e71122; text-decoration:none!important; }
a img{ transition:all .3s ease; }
a:hover img{ opacity:.6; transition:all .3s ease; }
a[href*="tel:"]{
	text-decoration:none;
}
@media screen and (min-width:1024px){
	/*電話*/
	a[href*="tel:"]{
		pointer-events:none;
		cursor:default;
	}
}
b, strong{
	font-weight:bold;
	-webkit-font-smoothing:antialiased;
	-moz-osx-font-smoothing:grayscale;
}
h1,h2,h3,h4,h5,h6,
p,dl,ul,ol{ margin:0; padding:0; }
dd,dt{ margin-bottom:0; margin-left:0; }
dt{ font-weight:500; }
ul{ list-style:none; }

/* マウスクリック時 */
a:focus:focus:not(:focus-visible),
svg:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
button:focus:not(:focus-visible){
	outline:none;
}
input::placeholder,
textarea::placeholder{ color:#888888!important; }
em{
	font-style:normal;
	display:block;
	font-weight:500;
}

/* タブ移動時 */
svg:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
a:focus-visible,
button:focus-visible{
	outline:2px solid #000!important;
}

/*テーブル*/
table{ width:100%; color:#222222; border:1px solid #217bbe; margin-bottom:30px; background:#fff; }
table tr th{ padding:15px; color:#fff; border-bottom:1px solid #fff; font-weight:700; vertical-align:top; background:#217bbe; }
table tr th:first-of-type{ width:160px; }
table tr:last-of-type th{ border-bottom:1px solid #217bbe; }
table tr th + th{ border-left:1px solid #217bbe;}
table tr td{ padding:15px; border-bottom:1px solid #217bbe;border-left:1px solid #217bbe; vertical-align:middle; font-weight:500; }
table tr:last-of-type td{ border-bottom:0;}
table tr td + td{ border-left:1px solid #217bbe; }

table a{ color:#e06969; font-weight:500; }
table .center{text-align:center; }

@media screen and (max-width:700px){
	table .center{
		text-align:left;
	}
}

/*ボタン*/
.btn a{
	width:300px;
	padding:12px 20px;
	display:flex;
	color:#fff;
	font-size: 1.8rem;
	align-items:center;
	justify-content:space-between;
	letter-spacing: 0.1em;
	text-decoration:none;
	transition:all .3s ease;
	background-image:linear-gradient(135deg, #E60012 50%, #212476 50%);
	background-position:100%;
	background-size:300%;
}
.btn a:after{
	content:"";
	width:16px;
	height:12px;
	display:block;
	background:url(../img/arrow.svg) 100% no-repeat;
}
.btn a:hover{ background-position:0; }

.btnList{ display:flex; }
.btnList li{ width:calc((100% - 20px) / 2); margin-right:20px; }
.btnList li + li{ margin-right:0; }
.btnList a{
	width:100%;
	padding:12px 20px;
	display:flex;
	color:#fff;
	font-size: 1.8rem;
	letter-spacing: 0.1em;
	align-items:center;
	justify-content:space-between;
	text-decoration:none;
	transition:all .3s ease;
}
.btnList a:after{
	content:"";
	width:16px;
	height:12px;
	display:block;
	background:url(../img/arrow.svg) 100% no-repeat;
}
@media screen and (max-width:700px){
	.btn a{ width:100%; }
}

.texheight32{
	line-height:3.2rem;
}

/*見出し*/
h2{
	margin-bottom:30px;
	color:#222222;
	font-size:2rem;
	line-height:5.2rem;
	font-weight:500;
	font-family:"Noto Sans JP", sans-serif;
}
h2:first-letter{ color:#e60012; }
h2 span{
	display:block;
	color:#212476;
	font-size:6.5rem;
	line-height:6.5rem;
	font-weight:700;
	font-family:'Outfit';
}
h2 em{ display:inline; font-weight:700; }

.centerH2{ 
	align-items:center;
	display:flex;
	flex-direction:column;
}


@media print,screen and (max-width:1140px){
	h2 span{
		font-size:5.5rem;
		line-height:5.5rem;
	}
	h2 { margin-bottom:30px; }
}

@media print,screen and (max-width:600px){
	h2{
		font-size:1.6rem; 
	}
	h2 span{
		font-size:4rem;
		line-height:4rem;
	}
}
p + p{ margin-top:1em; }



/*===================================
ヘッダーメニュー
===================================*/
header{
	width:100%;
	height:70px;
	top:0;
	right:0;
	position:absolute;
}
header .logo{
	width:auto;
	height:70px;
	padding: 15px 25px 15px 30px;
	background:#fff;
	position:fixed;
	top:0;
	left:0;
	z-index:9999;
	box-shadow:0 0 30px rgba(0, 0, 0, .1);
}
header .logo a{
	width:100%;
	display:block;
	color:#1d2088;
	text-decoration:none;
}
header .logo a:hover{
	opacity:.6;
	transition:all .3s ease;
}

header.active .logo{ box-shadow:none; }

.logo a span{
	display:inline-block;
	margin-left: 15px;
	margin-bottom:5px;
	color:#1d2088;
	font-size:1.6rem;
	line-height:1.6rem;
	font-weight:700;
	font-family:'Outfit';
	vertical-align:bottom;
	letter-spacing: 0;
}

.mainmenu{
	display:flex;
	position:fixed;
	top:0;
	right:0;
	background:#fff;
	box-shadow:0 0 30px rgba(0, 0, 0, .1);
	position:fixed;
	z-index:999;
}

/*ハンバーガーメニュー*/
.hamburger{
	height:70px;
	width:80px;
	padding:25px 25px;
	background:#fff;
	cursor:pointer;
	z-index:9999;
	position:relative;
	border:0;
}
.hamburger .toggle{
	width:30px;
	height:20px;
	display:flex;
	align-items:center;
	justify-content:center;
	position:relative;
}
.hamburger .toggle > span{
	width:30px;
	height:2px;
	display:inline-block;
	background:#1d2088;
	transition:all .3s ease;
	position:absolute;
	left:50%;
	transform:translateX(-50%);
}
.entryNav,
.menuList{ display:none; }


.hamburger .toggle span:nth-of-type(1){
	top:0px;
}
.hamburger .toggle span:nth-of-type(2){
	top:9px;
}
.hamburger .toggle span:nth-of-type(3){
	bottom:0px;
}

.hamburger[aria-expanded="true"] .toggle span:nth-of-type(1){
	transform:translateY(9px) translateX(-50%) rotate(45deg);
}

.hamburger[aria-expanded="true"] .toggle span:nth-of-type(2){
	opacity:0;
}
.hamburger[aria-expanded="true"] .toggle span:nth-of-type(3){
	transform:translateY(-10px) translateX(-50%) rotate(-45deg);
}

@media print,screen and (max-width:970px){
	header .logo{
		width:170px;
		height:70px;
		padding:8px 20px;
		top:0;
		right:0;
		position:fixed;
	}
	.logo a span{ margin-left:0; font-size:1.4rem; margin-bottom:0; }
	.hamburger{
		height:70px;
		width:70px;
		padding:25px 20px;
	}
}

/*エントリーボタン*/
.entryBtn{
	width:170px;
	height:70px;
	padding:15px 0 15px;
	margin:0;
	display:flex;
	flex-direction:column;
	align-items:center;
	border:0;
	color:#fff;
	font-size:2.4rem;
	line-height:2.4rem;
	font-weight:500;
	font-family:'Outfit';
	letter-spacing:0.05em;
	background-image:linear-gradient(135deg,#E60012 50%, #1d2088 50%);
	background-position:100%;
	background-size:300%;
	position:relative;
	z-index:999;
	transition:all .3s ease;
}
.entryBtn:after{
	content:"";
	display:block;
	width:12px;
	height:8px;
	margin-top:4px;
	background:url(../img/arrow-down.svg) no-repeat center / 12px 8px;
}

.entryBtn:hover{
	background-position:0;
}
.entryNav.open{
	width:100%;
	display:block;
	background:#fff;
	transition:all .3s ease;
	position:absolute;
	top:70px;
	padding: 20px 30px;
	box-shadow:0 0 30px rgba(0, 0, 0, .1);
	z-index:1000;
}
.entryNav.open ul li{ padding-bottom: 8px; }
.entryNav.open ul li a{ font-weight:500; text-decoration:none; }

@media print,screen and (max-width:600px){
	.entryBtn{
		width:95px;
		padding:20px 0 15px;
		font-size:2rem;
		line-height:2rem;
	}
	.entryNav.open{ padding:15px; }
}
@media print,screen and (min-width:601px){
	.entryNav .spOnly{ display:none; }
}
@media print,screen and (max-width:600px){
	.entryNav .spOnly{ display:block; }
}
.menuList.open{
	width:100%;
	height:100%;
	display:block;
	padding: 70px 0 80px;
	background:#fff;
	position:fixed;
	top:0;
	left:0;
	z-index:1;
	overflow-y:auto;
	transition:all .3s ease;
}
.menuList.open > div{
	width:100%;
	height:100%;
	padding:40px 20px 0;
	display:flex;
	align-items:center;
	justify-content:center;
}

.menuList.open a{
	text-decoration:none;
}
.menuList.open > div > ul{width:90%;display:flex;align-items:baseline;flex-wrap:wrap;}
.menuList.open > div > ul > li{ width:calc((100% - 60px) / 3); margin-right:30px; margin-bottom:40px; }
.menuList.open > div > ul > li:nth-of-type(3n){ margin-right:0; }

.menuList.open > div > ul > li:not(.corp) > a,
.menuList.open > div > ul > li > p{
	width:100%;
	height:100%;
	padding-bottom:20px;
	padding-right:20px;
	margin-bottom:20px;
	color:#1d2088;
	border-bottom:1px solid #1d2088;
	text-decoration:none;
	font-size:1.6rem;
	font-weight:700;
	display:inline-flex;
	align-items:center;
	position:relative;
}
.menuList.open > div > ul > li:not(.corp) > a > span,
.menuList.open > div > ul > li > p > span{
	margin-right:10px;
	font-size:3.4rem;
	font-weight:700;
	font-family:'Outfit';
}
.menuList.open > div > ul > li:not(.corp) > a > span em,
.menuList.open > div > ul > li > p > span em{ display:inline; color:#e60012; font-weight:700; }

.menuList.open > div > ul > li:not(.corp) > a:hover{ color:#e71122; border-bottom:1px solid #e71122; }
.menuList.open > div > ul > li:not(.corp) > a:hover:after{ 
	background:url(../img/arrow-red.svg) 100% no-repeat;
}
.menuList.open > div > ul > li:not(.corp) > a:after{
	content:"";
	width:16px;
	height:12px;
	display:block;
	background:url(../img/arrow-blue.svg) 100% no-repeat;
	position:absolute;
	right:0;
	transition:all .3s ease;
}
.menuList.open .child li + li{ margin-top:10px; }


.menuList.open .corp{ width:100%; }
.menuList.open .corp .outside{
	display:flex;
	font-size:1.4rem;
	line-height:1.8rem;
	color:#666666;
	text-decoration:none;
	align-items:center;
}
.menuList.open .corp .outside:hover{ opacity: .6; }
.menuList.open .corp .outside:before{
	content:"";
	width:14px;
	height:14px;
	margin-right:10px;
	display:block;
	background:url(../img/outside.svg) 100% / 100% no-repeat;
}

@media print,screen and (max-width:1300px){
	.menuList.open > div > ul{ width:100%; }
	.menuList.open > div > ul > li:not(.corp) > a > span,
	.menuList.open > div > ul > li > p > span{
		font-size:3rem;
	}
}
@media print,screen and (max-width:1120px){
	.menuList.open > div > ul > li{ width:calc((100% - 30px) / 2); margin-right:30px; margin-bottom:40px; }
	.menuList.open > div > ul > li:nth-of-type(3n){ margin-right:30px; }
	.menuList.open > div > ul > li:nth-of-type(2n){ margin-right:0; }
}
@media print,screen and (max-width:1064px){
	.menuList.open > div{ height:auto; }
}
@media print,screen and (max-width:800px){

	.menuList.open > div > ul > li:not(.corp) > a > span,
	.menuList.open > div > ul > li > p > span{
		display:block;
		margin-right:0;
		margin-bottom:5px;
	}
	.menuList.open > div > ul > li:not(.corp) > a,
	.menuList.open > div > ul > li > p{ display:block; }

	.menuList.open > div > ul > li:not(.corp) > a:after{
		top:50%;
		right:0%;
		transform:translateY(-50%);
		-webkit-transform:translateY(-50%);
		-ms-transform:translateY(-50%);
	}
}
@media print,screen and (max-width:700px){
	.menuList.open > div > ul{display:block;height:100%;}
	.menuList.open > div > ul > li{ width:100%; }
}




/*===================================
フッター
===================================*/
/*募集要項・エントリー*/
.entry > div{
	max-width:1130px;
	padding:80px 0;
	margin:0 auto;
	display:flex;
	justify-content:space-between;
}
.entry h2 + div{
	width:750px;
	display:flex;
}
.entry .btnList{
	width:100%;
	display:block;
}
.entry .btnList li,
.entry .btnList a{ width:100%!important; }
.entry .btnList li + li{ margin-top:20px; }

.entry h2 + div > div{
	width:calc((100% - 30px) / 2);
}
.entry h2 + div > div + div{ margin-left:30px; }
.entry h3{
	margin-bottom:12px;
	color:#1d2088;
	font-size:2rem;
	line-height:3rem;
}
.entry h3:before{ content:none; }


@media print,screen and (max-width:1230px){
	.entry > div{ width:1080px; }
}

@media print,screen and (max-width:1140px){
	.entry > div{
		width:100%;
		padding:80px 20px;
	}
	.entry h2 + div{ width:600px; }
}
@media print,screen and (max-width:1080px){
	.entry > div{ display:block; }
	.entry h2 + div{ width:100%; }
}
@media print,screen and (max-width:700px){
	.entry > div{ padding:60px 20px; }
	.entry h2 + div{ display:block; }
	.entry h2 + div > div{ width:100%; }
	.entry h2 + div > div + div{ margin-left:0; margin-top:30px; }
}
footer{
	width:1200px;
	margin:0 auto;
	padding:80px 0px 40px;
	display:flex;
	justify-content:space-between;
}

footer > div:first-of-type{ width:175px; }

footer .logo{ margin-bottom:40px; }
footer .logo a{ text-decoration:none; }
footer .logo a span{ margin-left:0; margin-bottom:0; margin-top:20px; display:block; }


footer > div:first-of-type .outside{ display:flex; font-size:1.4rem; line-height:1.8rem; color:#666666; text-decoration:none; align-items:center; }
footer > div:first-of-type .outside:before{
	content:"";
	width:14px;
	height:14px;
	margin-right:10px;
	display:block;
	background:url(../img/outside.svg) 100% / 100% no-repeat;;
}
footer > div:first-of-type .outside:hover{ opacity:.6; }

footer > div:nth-of-type(2){ width:800px; }
footer > div:nth-of-type(2) a{
	text-decoration:none;
}
footer > div:nth-of-type(2) > ul{ display:flex; align-items:baseline; flex-wrap:wrap; }
footer > div:nth-of-type(2) > ul > li{ width:calc((100% - 60px) / 3); margin-right:30px; margin-bottom:40px; }
footer > div:nth-of-type(2) > ul > li:nth-of-type(3n){ margin-right:0; }

footer > div:nth-of-type(2) > ul > li > a,
footer > div:nth-of-type(2) > ul > li > p{
	width:100%;
	height:100%;
	padding-bottom: 15px;
	margin-bottom: 15px;
	color:#1d2088;
	border-bottom:1px solid #1d2088;
	text-decoration:none;
	font-size:1.8rem;
	font-weight:700;
	display:inline-flex;
	align-items:center;
	position:relative;
}
footer > div:nth-of-type(2) > ul > li > a:hover{ color:#e71122; border-bottom:1px solid #e71122; }
footer > div:nth-of-type(2) > ul > li > a:hover:after{ 
	background:url(../img/arrow-red.svg) 100% no-repeat;
}
footer > div:nth-of-type(2) > ul > li > a:after{
	content:"";
	width:16px;
	height:12px;
	display:block;
	background:url(../img/arrow-blue.svg) 100% no-repeat;
	position:absolute;
	right:0;
	transition:all .3s ease;
}

footer > div:nth-of-type(2) .child li + li{margin-top: 5px;}

@media print,screen and (max-width:1400px){
	footer{ width:1000px; }
	footer > div:nth-of-type(2){ width:700px; }
}	

@media print,screen and (max-width:1240px){
	footer{width:100%; padding:80px 20px; }
	footer > div:nth-of-type(2){ width:700px; }
}
@media print,screen and (max-width:1040px){
	footer{ display:block; }
	footer > div:first-of-type{ width:100%; display:flex; justify-content:space-between; }
	footer > div:nth-of-type(2){ width:100%; }
}
@media print,screen and (max-width:700px){
	footer{ padding:60px 20px 20px; }
	footer > div:nth-of-type(2) > ul{ display:block; }
	footer > div:nth-of-type(2) > ul > li{ width:100%; }

	footer > div:first-of-type .outside {
		display:flex;
		font-size:1.2rem;
		letter-spacing:0;
	}
}


/*ページトップ*/
.pagetop{
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index:2;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}
/* スクロール時に表示する状態 */
.pagetop.visible {
	opacity: 1;
	pointer-events: auto;
}

.pagetop a{
	color:#1d2088;
	font-size:1.4rem;
	text-decoration:none;
	writing-mode:vertical-rl;
	display:flex;
	align-items:center;
}
.pagetop a:before{
	content:"";
	width:7px;
	height:35px;
	display:block;
	margin-bottom:15px;
	background:url(../img/pagetop.svg) 100% no-repeat;
	transition:all .3s ease;
}
@media print,screen and (min-width:1080px){
	.pagetop a:hover:before{
		margin-bottom:25px;
	}
}

.copy{ padding:20px 0; color:#1d2088; text-align:center; letter-spacing:0; }
.copy small{ font-size:1.4rem; }



/*===================================
パララックス部分
===================================*/
.paraWrap{
	max-height:300px;
	overflow:hidden;
}
.paraImg{ width:100%; }

.btnList.ironworks li a{
	background-image:linear-gradient(135deg, #E60012 50%, #164394 50%);
	background-position:100%;
	background-size:300%;
}
.btnList.construction li a{
	background-image:linear-gradient(135deg, #E60012 50%, #017d6e 50%);
	background-position:100%;
	background-size:300%;
}

.btnList.ironworks li a:hover,
.btnList.construction li a:hover{
	background-position:0;
}
/*灰色背景*/
.grybg{
	background:#f4f4f4;
}