@charset "utf-8";

/* font-family 設定
	font-family: "Montserrat", sans-serif;
	font-family: "Noto Sans JP", sans-serif;
	font-family: 'Roboto', sans-serif;
*/
/* ------------------------------
ヘッダーフッターは共通なので
/recruit/shared/css/basic.cssを使用
グローバルナビは採用ののみ下記に記述
------------------------------ */

.cms_text a,
.cms_image a {
	color: #e50000;
}
/* ------------------------------
 ヘッダー 新卒
------------------------------ */
@media print, screen and (min-width: 768px) {
	.headerBlock.newgrads {
		background-color:  rgba(0 ,0 , 51, .88);
	}
	.headerBlock .gnav-sub > li > ul {
		z-index: 30;
	}
    .headerBlock.newgrads {
		height: 82px;
	}
	.headerBlock.newgrads .gnav-sub {
		display: flex;
		align-items: center;
		width: auto;
		font-weight: bold;
	}
	.headerBlock.newgrads .gnav-sub > li:not(:last-child) {
		margin-right: 1.9em;
	}
	.headerBlock.newgrads a {
		color: #fff !important;
		transition: .3s ease-in-out;
	}
	.headerBlock.newgrads .logoBox a{
		font-size: 2.4rem;
		font-weight: 500;
		letter-spacing: 1.2px;
		padding-left: 40px;
		background: url(../img/icon_decoration.svg) no-repeat 0 0 / 33px 42px;
	}
	.headerBlock.newgrads .gnav-sub > li a:before {
		content: none;
	}
	.headerBlock.newgrads .gnav-sub > li a:hover{
		opacity: 0.7;
	}
	.headerBlock.newgrads .gnav-sub > li.download a{
		padding-left: 23px;
		background: url(../../../shared/img/icon_download.svg) no-repeat 0 center / 16px auto;
	}
	.headerBlock .gnav-sub > li:nth-child(-n+4) > a {
		line-height: 82px;
		display: block;
	}
	.headerBlock.newgrads .gnav-sub > li.on a{
		position: relative;
	}
	.headerBlock.newgrads .gnav-sub > li.on a:after{
	    content: "";
	    width: 24px;
	    height: 3px;
	    display: block;
	    background: #e50000;
	    border-radius: 5px;
		margin: auto;
	    left: 0;
		right: 0;
		bottom: 20px;
		position: absolute;
	}
	.headerBlock.newgrads .gnav-sub > li a.internship {
		width: 154px;
		font-size: 1.5rem;
		text-align: center;
		color: #000033 !important;
		background: #ebeff8;
		height: 40px;
		line-height: 40px;
		display: inline-block !important;
		margin-right: 2px;
	}
	.headerBlock.newgrads .gnav-sub > li a.entry{
		width: 154px;
		font-size: 1.8rem;
		font-family: "Montserrat", sans-serif;
		text-align: center;
		background: #e50000;
		height: 40px;
		line-height: 40px;
		display: inline-block !important;
		font-weight: 600;
	}
}
/* ------------------------------
 ヘッダー（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.header {
		height: 92px;
	}
	.headerBlock .gnav {
		top: 92px;
	}
	.headerBlock.newgrads .logoBox {
		height: 42px;
	}
	.headerBlock.newgrads {
		height: 42px;
	}
	.headerBlock.newgrads .logoBlock {
		background-color:  rgba(0 ,0 , 51, .88);
		height: 42px;
	}
	.headerBlock.newgrads .logoBox a{
		font-size: 1.5rem;
		font-weight: 500;
		letter-spacing: 1.2px;
		padding: 10px 0 10px 23px;
		background: url(../img/icon_decoration.svg) no-repeat 0 center / 18px 23px;
		color: #fff;
	}
	.page-open-slidemenu-sub .headerBlock.newgrads .gnav-sub {
		visibility: visible;
		opacity: 1;
		overflow-y: auto;
	}
	.headerBlock.newgrads .slidemenu-btn{
		color: #fff;
		font-family: "Montserrat", sans-serif;
		font-size: 1.3rem;
		font-weight: 500;
		padding-right: 12px;
		top: 0;
		right: 15px;
		width: 70px;
		height: 42px;
		background: url(../img/arrow_red_bottom.svg) no-repeat right 0 center / 16px 26px;
	}
	.page-open-slidemenu-sub .headerBlock.newgrads .slidemenu-btn{
		background: url(../img/arrow_red_up.svg) no-repeat right 0 center / 16px 26px;
	}
	.headerBlock.newgrads .gnav-sub {
		visibility: hidden;
		opacity: 0;
		position: fixed;
		top: 92px;
		left: 0;
		width: 100%;
		max-height: 100%;
		height: 100%;
		transition: visibility 0s step-start .3s, opacity .3s ease-in-out;
		background: rgba(0, 0, 51, 0.9);
		padding: 10px 20px 30px 20px;
	}
	.headerBlock.newgrads .gnav-sub a{
		color: #fff;
		font-weight: bold;
		padding: 13px 0 15px 0;
		display: block;
		background: url(../img/arrow_white.svg) no-repeat right 0 center / 19px 19px;
	}
	.headerBlock.newgrads .gnav-sub li{
		border-bottom: solid 1px rgba(255, 255, 255, 0.3);
	}
	.headerBlock.newgrads .gnav-sub > li.download{
		padding-left: 23px;
		background: url(../../../shared/img/icon_download.svg) no-repeat 0 center / 16px auto;
	}
}

/* ------------------------------
 パンくず（PC）
------------------------------ */
.crumb {
	width: 100%;
	background-color: #f2f1ed;
}
.crumb p {
	width: 1140px;
	margin: 0 auto;
	font-size: 1.3rem;
	line-height: 44px;
	text-align: right;
}
.crumb a {
	line-height: 44px;
	transition: .3s ease-in-out;
}
.crumb a::after {
	content: ">";
	display: inline-block;
	margin: 0 1px 0 5px;
	color: #969696;
	text-decoration: none;
	vertical-align: middle;
}
.crumb a:hover {
	opacity: .7;
}
.crumb a:hover::after {
	text-decoration: none;
}
/* ------------------------------
 パンくず（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.crumb {
		display: none;
	}
}

/* ------------------------------
 リンクブロック（PC）
------------------------------ */
.cms_block.linkBlock ul li {
	background-color: rgba(0,61,145,.05);
}
.cms_block.linkBlock ul li a {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	column-gap: 10px;
	position: relative;
	height: 102px;
	padding: 30px;
	text-decoration: none;
}
.cms_block.linkBlock ul li a::after {
	content: "";
	display: block;
	position: absolute;
	top: 0;
	bottom: 0;
	right: 30px;
	width: 40px;
	height: 40px;
	margin: auto 0;
	background: url(../img/arrow_r40.svg) no-repeat 0 0 / cover;
}
.cms_block.linkBlock ul li a img {
	height: 42px;
	width: auto;
}
.cms_block.linkBlock ul li a span {
	display: inline-block;
	padding-bottom: 3px;
	border-bottom: 1px solid #b7c0ca;
}
.cms_block.linkBlock ul li a[target="_blank"] span {
	padding-right: 1em;
	background: url(../img/icon_blank.svg) no-repeat right center / 10px 10px;
}
@media print, screen and (min-width: 768px) {
	.cms_block.linkBlock ul {
		display: flex;
		flex-wrap: wrap;
		gap: 32px 45px;
	}
	.cms_block.linkBlock ul li {
		width: 350px;
	}
	.cms_block.linkBlock ul li a {
		width: 350px;
	}
}
/* ------------------------------
 リンクブロック（SP）
------------------------------ */
@media screen and (max-width: 767px) {
	.cms_block.linkBlock ul li:not(:last-child){
		margin-bottom: 20px;
	}
	.cms_block.linkBlock ul li a {
		width: 100%;
		height: 82px;
		padding: 20px;
	}
	.cms_block.linkBlock ul li a::after {
		right: 20px;
	}
}
/* ------------------------------
 フッター
------------------------------ */
.footer {
	padding-top: 0;
	border-top: none;
}
.foot-btn-block{
	height: 293px;
	background: #d9e2f2;
    display: flex;
    justify-content: space-between;
	align-items: center;
	border-bottom: 1px solid #b7c0ca;
	margin-bottom: 80px;
}
.foot-btn-block a{
	width: 350px;
	height: 110px;
    font-size: 1.2rem;
    display: block;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
	font-weight: 500;
	border-radius: 80px;
	transition: .3s ease-in-out;
}
.foot-btn-block a span{
    display: block;
    font-size: 3rem;
    line-height: 1;
	font-family: "Montserrat", sans-serif;
}
.link-01{
	background: #fff;
	color: #003f8d;
}
.link-02{
	background: #003f8d;
	color: #fff;
}
.link-03{
	background: #e50000;
	color: #fff;
}
@media print, screen and (min-width: 768px) {
	.foot-btn-block a:hover{
		opacity: 0.7;
	}
}
@media screen and (max-width: 767px) {
	.foot-btn-block{
		height: auto;
    	display: block;
		padding: 50px 20px;
		margin: 50px 0;
	}
	.foot-btn-block a{
		width: 100%;
		height: 80px;
    	font-size: 1.1rem;
	    margin-bottom: 15px;
	}
	.foot-btn-block a:last-child{
	    margin-bottom: 0;
	}
	.foot-btn-block a span{
	    font-size: 2.3rem;
	}
	.js-btn-pagetop {
		bottom: 60px !important;
	}
}
/* ------------------------------
 スマホのみ下部
 （資料請求・お問合せ・見学予約）
------------------------------ */
.button-container .button01,
.button-container .button02{
	 display: none;
}
@media screen and (max-width: 767px) {
	.button-container .button-block{
		width: 100%;
	 	display: block;
		position: fixed;
		bottom: 0;
		left: 0;
		z-index: 100;
		box-shadow: 0 0 15px 3px rgba(0,0,0,0.1);
	}
	.button-container .button01,
	.button-container .button02{
		width: 50%;
	 	display: inline-block;
		line-height: 40px;
		text-align: center;
	}
	.button-container .button01{
		float: left;
		background: #ebeff8;
		font-size: 1.3rem;
		font-weight: bold;
	}
	.button-container .button02{
		font-family: "Montserrat", sans-serif;
		float: right;
		color: #fff;
		background: #e50000;
		font-size: 1.4rem;
		font-weight: 600;
	}
}
