

@charset "UTF-8";

@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;500&family=Oswald:wght@400;600&family=Shippori+Mincho+B1:wght@600;700&display=swap');


/* ==========================================================
*
* Basic Setting
*
========================================================== */

html,
body {
	width: 100%;
	/*height:100%;*/
	min-height:100%;
}

html {
	font-size: 62.5%;
	/* 16px x 0.625 = 10px(=1rem) */
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	-webkit-text-size-adjust: 100%;
	font-feature-settings: "palt";
}

body {
	font-size: 1.6rem;
	line-height: 125%;
	font-family:'Noto Sans JP', sans-serif;
	font-weight:400;
	background-color:#ffffff;
	min-width:980px;
}


body.locked {
	height: 100%;
	overflow: hidden;
}

*,
*::before,
*::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	-o-box-sizing: border-box;
	-ms-box-sizing: border-box;
	box-sizing: border-box;
	backface-visibility:hidden;
	-webkit-backface-visibility:hidden;
}

a {
	text-decoration:none;
	color: inherit;

	transition: all 0.2s ease;
	-webkit-transition: all 0.2s ease;
}

a *{
	pointer-events:none;
}

a.disabled{
	pointer-events:none;
}

.pc a:hover {
	text-decoration: underline;
	color: #ff6400;
}




@supports (-webkit-touch-callout: none) {
	body {
		/* Safari用のハック */
		height: -webkit-fill-available;
	}
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {
	
	html,
	body {
		height:100%;
		min-height:100%;
	}

	body{
		min-width:auto;
	}

}



/***********************************
共通パーツ
***********************************/

.enTxt{
	font-family: 'Oswald', sans-serif;
	font-weight:400;
	letter-spacing: 0.125em;
}

.minTxt{
	font-family: 'Shippori Mincho B1', serif;
	font-weight:600;
	letter-spacing:0.07em;
}

.noPC{
	display:none;
}

.noSP{
	display:initial;
}

.alCenter{
	text-align:center;
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {

	.noPC{
		display:initial;
	}

	.noSP {
		display: none !important;
	}

}



/***********************************
本文パーツ
***********************************/
#conentWrap{
	display:block;
	overflow:hidden;
	width: 100%;
	padding-top:100px;
	padding-bottom:100px;
	position:relative;
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;

	min-height:90vh;
}
.pc #conentWrap{
	min-width:1024px;
}

#conentWrap.nopdb{
	padding-bottom:0;
}

.innerFrame{
	display:block;
	width:100%;
	max-width:1024px;
	margin:0 auto;
	position: relative;
}


/*縮小ナビ*/
.topon #conentWrap{
	padding-top:50px;
}

body.opnav{
	height: 100%;
	overflow: hidden;
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {
	
	#conentWrap{
		min-width:100%;
		padding:16vw 0;
	}

	#conentWrap.nopdb{
	   padding:16vw 0 0;
	}


	.innerFrame{
		max-width:100%;
	}

}


/***********************************
ヘッダ
***********************************/
#header{
	display:block;
	width: 100%;
	position:fixed;
	top:0;
	left:0;
	z-index:125;
}

#headerContent{
	display:block;
	overflow:hidden;
	width: 100%;
	/*min-width:1024px;*/
	height:100px;
	position:relative;
	background-color: #ffffff;
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}

#headerContent img{
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}

/* for Sp --------------------*/
@media screen and ( max-width:738px) {

	#headerContent{
		height:16vw;
	}

}



/*メインロゴ*/
a#hdlogo{
	display:inline-block;
	overflow:hidden;
	position:relative;
	vertical-align:middle;
	position:absolute;
	top:50%;
	left:30px;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
}

a#hdlogo > *{
	display:inline-block;
	overflow:hidden;
	vertical-align:middle;
}

a#hdlogo > span{
	margin-left:15px;
}



/*サイトロゴ*/
a#sitelogo{
	display:inline-block;
	overflow:hidden;
	font-size:2.5rem;
	line-height:125%;
	color:#e6001b;
	position:absolute;
	top:50%;
	right:145px;
	-webkit-transform: translateY(-50%);
	transform: translateY(-50%);
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}


.pc a#hdlogo:hover{
	text-decoration:none;
	opacity:0.5;
}

.pc a#sitelogo:hover{
	text-decoration:none;
	opacity:0.5;
}



/* forTb --------------------*/
@media screen and ( max-width:1023px) {

	a#sitelogo{
		display:none;
	}
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {

	a#hdlogo{
		left:6.6vw;
	}

	a#hdlogo > img{
		width: 41.6vw;
		height:auto;
	}

	a#hdlogo > span{
		margin-left:4vw;
	}

	a#hdlogo > span > img{
		width: 22.6vw;
		height:auto;
	}
}


/*ナビ開閉ボタン*/
a#navBtn{
	display:inline-block;
	overflow:hidden;
	width:46px;
	height:46px;
	position:absolute;
	top:50%;
	right:50px;
	transform: translateY(-50%);
	-webkit-transform: translateY(-50%);
	z-index: 150;
}

a#navBtn > span{
	display:block;
	overflow:hidden;
	width:100%;
	height:2px;
	background-color:#000000;
	position:absolute;
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}

a#navBtn > span:nth-child(1){
	top:30%;
	left:0;
}

a#navBtn > span:nth-child(2){
	top:50%;
	left:0;
}

a#navBtn > span:nth-child(3){
	top:70%;
	left:0;
}


/*ナビ閉じモード*/
.opnav a#navBtn > span{
	width:102%;
}

.opnav a#navBtn > span:nth-child(1){
	top:50%;
	left:-2px;
	-webkit-transform: rotate(335deg);
	transform: rotate(335deg);
	background-color:#ffffff;
}

.opnav a#navBtn > span:nth-child(2){
	opacity:0;
}

.opnav a#navBtn > span:nth-child(3){
	top:50%;
	left:-2px;
	-webkit-transform: rotate(-335deg);
	transform: rotate(-335deg);
	background-color:#ffffff;
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {
	
	a#navBtn{
		width:9vw;
		height:9vw;
		right:6.6vw;
	}

}


/*縮小ナビモード*/
.pc .topon #headerContent{
	height:50px;
}


.pc .topon a#hdlogo > img{
	width:auto;
	height:24px;
}
.pc .topon a#hdlogo > span > img{
	width:auto;
	height:20px;
}

.pc .topon a#sitelogo{
	font-size:1.5rem;
	right:115px;
}

.pc .topon a#navBtn{
	width:26px;
	height:26px;
}

.pc .topon a#navBtn > span{
	width:26px;
}

.pc .topon.opnav a#navBtn > span:nth-child(1),
.pc .topon.opnav a#navBtn > span:nth-child(3){
	top:13px;
	width:30px;
}



/***********************************
 グローバルナビ
 ***********************************/
#gNavi{
	display:block;
	overflow:hidden;
	width:100%;
	max-height: 0;
	background-color:#ff001b;
	color:#ffffff;
	position:absolute;
	top:0;
	left:0;
	-webkit-transition: all 0.5s ease-in-out;
	transition: all 0.5s ease-in-out;
}

#gNavi > .innerFrame{
	padding:80px 40px;
}


.opnav #gNavi{
	max-height:100vh;
}


/*ナビロゴ*/
#gNavi h2{
	display:block;
	overflow:hidden;
	font-size:1.8rem;
	line-height:125%;
}

#gNavi h2 > a{
	display:inline-block;
	overflow:hidden;
	text-decoration:none;
}

.pc #gNavi h2 > a{
	padding-bottom:0.25em;
	border-bottom: 1px solid #ff001b;
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
}

.pc #gNavi h2 > a > img{
	display: none;
}

.pc #gNavi h2 > a:hover{
	color:#ffffff;
	/*opacity: 0.5;*/
	border-color:#ffffff;
}


/*メインナビ*/
#gNaviBody{
	display:block;
	overflow:hidden;
	margin: 120px 0 60px;
}


#gNaviBody dl{
	display:inline-block;
	overflow:hidden;
	width:33%;
	position:relative;
	vertical-align:top;
}

#gNaviBody a{
	display:inline-block;
	overflow:hidden;
	color:#ffffff;
	text-decoration:none;
	position:relative;
	/*
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;
	*/
}

/*
#gNaviBody dl+dl{
	padding-left:100px;
}
*/

#gNaviBody dl > dt{
	display:block;
	overflow:hidden;
	margin-bottom:0.75em;
}

#gNaviBody dl > dt > a{
	padding:0 16px;
	font-size:3.0rem;
	line-height:155%;
}

#gNaviBody dl > dt > a > p{
	display:inline-block;
	overflow:hidden;
}

#gNaviBody dl > dt > a strong{

}

#gNaviBody dl > dt > a span{
	font-size:1.4rem;
	line-height:155%;
	margin-left: 1em;
}


#gNaviBody dl > dd{
	display:block;
	overflow:hidden;
	font-size:1.8rem;
	font-weight: 500;
	line-height:125%;
}

#gNaviBody dl > dd > a{
	padding:0.5em 18px;
}

#gNaviBody dl > dt > a > p,
#gNaviBody dl > dd > a > span{
	position:relative;
}


/*PCナビ用エフェクト*/
.pc #gNaviBody a::before{
	content:"";
	display:block;
	overflow:hidden;
	width:0;
	height:100%;
	background-color:#ffffff;
	position:absolute;
	top:0;
	left:0;
}

.pc #gNaviBody a:hover,
.pc #gNaviBody a:hover::before{
	animation-duration: 0.6s;
	animation-timing-function:ease-out;
	animation-delay: 0s;
	animation-iteration-count: 1;
	animation-direction: alternate;
	animation-fill-mode: forwards;
	animation-play-state: running;
}

.pc #gNaviBody a:hover{
	animation-name: hoverTxt;
}

.pc #gNaviBody a:hover::before{
	animation-name: hoverBg;
}


@keyframes hoverTxt {
  0% {
	color:#ffffff;
  }

  40% {
	color:#ffffff;
  }

  100% {
	color:#ff001b;
  }
}

@keyframes hoverBg {
  0% {
	width:0;
  }

  20% {
	width:4px;
  }

  40% {
	width:4px;
  }

  100% {
	color:#ff001b;
	width:110%;
  }
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {
	
	.opnav #gNavi{
		max-height:100dvh;
		overflow-y:auto;
	}


	#gNaviBody{
		display:block;
		overflow:hidden;
		padding-left:8vw;
		margin: 0;
	}

	#gNavi > .innerFrame{
		padding:17.3vw 8vw 16vw;
	}



	#gNavi h2{
		/*
		font-size:1.8rem;
		text-align: center;
		writing-mode: vertical-rl;
		*/
		float:left;
	}

	#gNaviBody a{
		display:block!important;
	}

	/*#gNavi h2 > a{
		padding-top: 0.25em;
	}*/
	#gNavi h2 > a > span{
		display: none;
	}
	#gNavi h2 > a > img{
		display: block;
		width: 4.2vw;
		height: auto;
	}

	#gNaviBody dl{
		display:block;
		width:100%;
	}

	#gNaviBody dl+dl{
		margin-top:12.6vw;
	}

	#gNaviBody dl > dt{
		margin-bottom:0;
	}

	#gNaviBody dl > dt > a{
	   padding:0;
	   font-size:2.0rem;
	   padding:0 0;
	}

	#gNaviBody dl > dt > a span{
		font-size:1.2rem;
		margin-left: 1em;
	}

	#gNaviBody dl > dd{
		font-size:1.6rem;
	}

	#gNaviBody dl > dd > a{
		padding:0.3em 0;
		letter-spacing:normal;
	}

	 #gNaviBody dl > dd br{
		display:none;
	 }

}


/***********************************
 toTopボタン
 ***********************************/
#exBox{
	display:block;
	/*overflow:hidden;*/
	position:relative;
	z-index:100;
}


a.toTop{
	display: inline-block;
	overflow: hidden;
	width: 120px;
	height:120px;
	position:fixed;
	bottom:40px;
	right:80px;
	-webkit-transition: all 0.3s ease-out;
	transition: all 0.3s ease-out;

	opacity:0.0;
	pointer-events:none;
}

a.toTop > img{
	width:100%;
	height:auto;
}

.topon a.toTop{
	opacity: 1.0;
	bottom:80px;
	pointer-events:initial;
}

.pc .topon a.toTop:hover{
	/*opacity:0.5;*/
	filter: brightness(300%);
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {
	
	a.toTop{
		width:16vw;
		height:16vw;
		bottom:15.3vw;
		right:2.6vw;
	}

	.topon a.toTop{
		bottom:21.3vw;
	}

}



/***********************************
 フッタ
 ***********************************/
#footer{
	display:block;
	overflow:hidden;
	width:100%;
	padding:80px 0;
	color:#ffffff;
	text-align:center;
	background-color:#d81b23;
}

#footer a{
  -webkit-transition: all 0.3s ease-out;
  transition: all 0.3s ease-out;
}


#footer ul{
	display:block;
	overflow:hidden;
	font-size: 2.0rem;
	line-height:125%;
}

#footer ul > li{
	display:inline-block;
	overflow:hidden;
	padding:0 1em;
}

#footer ul > li + li{
	border-left: 1px solid #ffffff;
}

#footer ul > li > a{
	display:block;
	overflow:hidden;
	border-bottom:1px solid #d81b23;
}

#footer a.riknavi{
	display:block;
	overflow:hidden;
	width:356px;
	padding:30px;
	background-color:#ffffff;
	margin:100px auto 90px;
}


a#ftlogo{
	display:block;
	overflow:hidden;
	width:270px;
	height:41px;
	margin:0 auto;
}

a#ftlogo svg{
	fill:#ffffff;
}


#footer > .innerFrame > p{
	display:block;
	overflow:hidden;
	margin-top:80px;
	font-size: 1.4rem;
	line-height:125%;
}


.pc #footer ul > li > a:hover{
	color:#ffffff;
	text-decoration:none;
	border-color: #ffffff;
}

.pc #footer a.riknavi:hover{
	/*opacity:0.5;*/
	filter: brightness(150%);
}

.pc a#ftlogo:hover{
	opacity:0.5;
}

/* for Sp --------------------*/
@media screen and ( max-width:738px) {
	
	#footer{
		padding:13.3vw 0 8vw;
	}


	#footer ul{
		font-size: 1.4rem;
	}

	#footer ul > li{
		padding:0 1em;
		margin-bottom: 1em;
	}

	#footer a.riknavi{
		width:57.3vw;
		padding:4vw 9vw;
		margin:13.3vw auto 14.6vw;
	}

	#footer img{
		width:100%;
		height:auto;
	}

	a#ftlogo{
		-webkit-transform:scale(0.67);
		transform:scale(0.67);
	}


	#footer > .innerFrame > p{
		margin-top:14.6vw;
		font-size: 1.0rem;
	}

}


/***********************************
 本文
 ***********************************/
.mainContent{
	display:block;
	position:relative;
}

.mainContent > .innerFrame{
	overflow:hidden;
	padding:0 30px;
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {

	.mainContent > .innerFrame{
		padding:0 6vw;
	}

}


/*ページタイトル*/
#pgTitle{
	display:block;
	overflow:hidden;
	width:100%;
	height:555px;
	margin-bottom: 140px;
	position:relative;

	background-repeat:no-repeat;
	background-color:#ff001b;
	background-size:auto 100%;
	background-position:right 0;
}

#pgTitle::before{
	content:"";
	display:block;
	overflow:hidden;
	width: calc(50% - 235px);
	height:100%;
	background-color:#ff001b;
	position:absolute;
	top:0;
	left:0;
}

#pgTitle > h1{
	display:block;
	/*overflow: hidden;*/
	font-size:4.6rem;
	font-weight:700;
	line-height:125%;
	letter-spacing:0.15em;
	color:#ffffff;
	position:absolute;
	bottom:80px;
	left:calc(50% - 425px);
}

#pgTitle > h1::before{
	content:"";
	width:50vw;
	height:1em;
	border-top: 1px solid #ffffff;
	position:absolute;
	bottom:-0.5em;
	left:calc(-50vw - 1em);
}

#pgTitle > h1 > span{
	display:block;
	overflow:hidden;
	font-size:1.6rem;
	line-height:125%;
	letter-spacing:0.1em;
	margin-bottom: 40px;
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {

	#pgTitle{
		height:52vw;
		margin-bottom: 8vw;
	}

	#pgTitle::before{
		width: calc(50% - 10.6vw);
	}

	#pgTitle > h1{
		font-size:2.1rem;
		letter-spacing:initial;
		top:50%;
		bottom:auto;
		left:14vw;
		transform: translateY(-50%);
		-webkit-transform: translateY(-50%);
	}

	#pgTitle > h1::before{
		content:"";
		width:16vw;
		height:1em;
		border-top: 2px solid #ffffff;
		position:absolute;
		bottom:-0.5em;
		left:calc(-15vw - 1em);
	}

	#pgTitle > h1 > span{
		font-size:1.4rem;
		margin-bottom:4.8vw;
	}

}

h2.mainCopy{
	display:block;
	overflow:hidden;
	font-size: 2.8rem;
	font-weight:700;
	line-height:155%;
	margin-bottom: 1.5em;
	position:relative;
}

h2.mainCopy::before{
	display:block;
	overflow:hidden;
	content:"";
	width:5em;
	height:2px;
	border-top:2px solid #ff001b;
	margin-bottom:1em;
}


/* for Sp --------------------*/
@media screen and ( max-width:738px) {

	h2.mainCopy{
		font-size: 2.0rem;
	}

}


/***********************************
 ダミーリンク非表示
 ***********************************/
#gNaviBody dl > dd > a[href="#"],
#gNaviBody dl > dd > a[href="#"] + br{
	display:none;
}



/***********************************
 * 
 インターンシップクローズ

 ***********************************/
/*
.index #topbnr,
#gNaviBody dl > dd > a[href^="/recruit/latest/internship/"]{
	display:none;
}
*/




