@charset "utf-8";
/* CSS Document */
/* ------------------------------------------------------------------------ */

/*  Reset

/* ------------------------------------------------------------------------ */

html {
	overflow-y	: scroll;
	height		: 100%;
	font-size	: 62.5%;
	-webkit-text-size-adjust: 100%;
}

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,
pre,form,fieldset,p,blockquote {
	margin 	: 0;
	padding : 0;
}

fieldset {
	display	: inline;
}

address,caption,cite,code,dfn,em,strong,th,var {
	font-style : normal;
}

body/**/table {
	line-height	: 1.5;
}

q:before,
q:after {
	content : '';
}

object,embed {
	vertical-align : top;
}

h1,h2,h3,h4,h5,h6 {
	font-size : 100%;
}

img,abbr,acronym,fieldset {
	border : 0;
}

li {
	list-style-type : none;
}

img[usemap] {
	border		: none;
	height		: auto;
	max-width	: 100%;
	width		: auto;
}

img {
	border		: 0;
	max-width	: 100%;
	backface-visibility: hidden;
	image-rendering: -webkit-optimize-contrast;
}

i {
	padding	: 5px 5px 2px 0;
}

p {
	word-break	: break-all;
}

/* Flexible Images */
img{
    max-width	: 100%;
    height		: auto;
    width /***/	: auto;
}

submit	{ -webkit-appearance : none;}

sup{
	vertical-align: baseline;
	font-size: 100%;
}
sub{
	vertical-align: sub;
	font-size: 100%;
}

/* ------------------------------------------------------------------------ */

/*  Basic Style

/* ------------------------------------------------------------------------ */

body {
	margin		: 0;
	padding		: 0;
	height		: 100%;
	font-family: "Noto Sans JP", "游ゴシック", "ヒラギノ角ゴ ProN W3", "Hiragino Kaku Gothic ProN", sans-serif;
	font-size	: 1.6rem;
	font-size	: 16px;
	line-height	: 1.5;
	text-align	: center;
	color		: #1F1F1F;
	-webkit-text-size-adjust	: 100%;
	font-smoothing	: auto;
	word-break: break-all;
}

body *,
body *:before,
body *:after {
    box-sizing: border-box;
}

/*
body.fixed {
	width: 100%;
	height: 100%;
	position: fixed;
}
*/

hr{
	margin: 40px 0;
}

#wrap{
	margin		: 0 auto;
	text-align	: center;
	overflow: hidden;
}

body > #wrap { height : auto;}

.en{
	font-family: "Montserrat", serif;
}

.spStyle{
	display: none;
}

.contents{
	max-width: 1200px;
	width: calc(100% - 30px);
	margin: 0 auto;
}

.flex{
	display: flex;
	justify-content: space-between;
	align-items: stretch;
}

.indent > li{
	text-align: left;
	padding-left: 1em;
	text-indent: -1em;
}
.indent > li + li{
	margin-top: 5px;
}

@media screen and (max-width: 767px){
	.pcStyle{
		display: none;
	}
	.spStyle{
		display: inherit;
	}
}


/* Link
--------------------------------------------------------------------------- */

.opacity a:hover img{
	opacity: 0.85;
}

a{
	text-decoration	: none;
	color: #032E83;
}

a:hover	{
	color: #F85B00;
}

.btn{
	display: inline-block;
	width: fit-content;
	border-radius: 37px;
	padding: 21px 27px 22px;
	text-align: center;
	font-size: 2rem;
	font-weight: 700;
	overflow: hidden;
	position: relative;
	color: #fff;
	background: linear-gradient(to right, #F85B00, #F85B00 50%, #032E83 50%);
	background-size: 200% 100%;
	background-position: 100%;
	transition: background-position 300ms ease;
	min-width: 330px;
}

a.blank,
a.arrow{
	position: relative;
}
a.blank::after{
	content: "";
	display: inline-block;
	background: url("/common/img/icon_blank_wh.svg") no-repeat center / contain;
	width: 22px;
	height: 19px;
	margin-left: 11px;
	transform: translateY(3px);
}

a.arrow::after{
	content: "";
	display: inline-block;
	background: url("/themes/site/recruit/common/img/icon_arrow_wh.svg") no-repeat center / contain;
	width: 24px;
	height: 19px;
	position: absolute;
	top: 50%;
	right: 27px;
	transform: translateY(-50%);
}

a.fax{
	pointer-events: none;
}


@media screen and (min-width: 1025px){
	.btn:hover{
		color: #fff;
		background-position: 0 100%;
	}
}
@media screen and (max-width: 767px){
	.btn{
		min-width: inherit;
		max-width: 278px;
		width: 100%;
		margin: 0 auto;
		display: block;
		padding: 18px 10px;
		font-size: 1.6rem;
	}
	a.arrow::after{
		right: 22px;
	}
}
/* ------------------------------------------------------------------------ */

/* Hedaer

/* ------------------------------------------------------------------------ */

header {
	position: fixed;
	top: 0;
	left: 0;
	height: 70px;
	width: 100%;
	transition: 0.3s;
	z-index: 9999;
	background: none;
	display: flex;
	justify-content: center;
	align-items: center;
}
header.active{
	background: #fff;
}


header > .inner{
	width: calc(100% - 68px);
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}

header .logo{
	padding-top: 6px;
}
header .logo a{
	align-items: flex-end;
}

header .logo a .txt{
	font-size: 1.2rem;
	font-weight: 400;
	color: #032E83;
	line-height: 1.417;
	display: inline-block;
	margin-left: 15px;
	text-align: left;
}
header .logo img{
	width: 198px;
}

header .navWrap{
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

header .navWrap > .entryBtn{
	border-radius: 20px;
	overflow: hidden;
	margin-right: 16px;
	width: 138px;
}
header .navWrap > .entryBtn a{
	display: block;
	text-align: center;
	background: #F85B00;
	font-weight: 700;
	color: #fff;
	line-height: 40px;
}
header .navWrap > .entryBtn:hover a{
	background: #032E83;
}

.page_nav a{
	font-size: 1.8rem;
	font-weight: 700;

	display: inline-block;
	background: linear-gradient(to right, #F85B00, #F85B00 50%, #032E83 50%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-size: 200% 100%;
	background-position: 100%;
	transition: background-position 200ms ease;
}

header .page_nav .en{
	font-family: "Montserrat", serif;
	font-style: italic;
	font-size: 2.4rem;
	letter-spacing: 0.05em;
}

.hg_menu_btn {
		cursor: pointer;
		display: flex;
		justify-content: center;
		align-items: center;
		flex-direction: column;
		flex-shrink: 0;
		position: relative;
		top: inherit;
		z-index: 9999;
		height: 100%;
		width: 33px;
		transition: 0.3s;
	}
	.hg_menu_btn span {
		position: relative;
		display: inline-block;
		width: 100%;
		height: 4px;
		background: #032E83;
		margin: 12px 0;
		transition: 0.4s ease;
		border-radius: 2px;
	}
		.hg_menu_btn span::before,
		.hg_menu_btn span::after {
			content: "";
			position: absolute;
			background: #032E83;
			display: block;
			height: 4px;
			border-radius: 2px;
			width: 100%;
			transition: .4s;
		}
			.hg_menu_btn span::before {
				bottom: 12px;
			}
			.hg_menu_btn span::after {
				top: 12px;
			}
	
	.navIn .hg_menu_btn span{
		transform: rotate(180deg);
		background: none;
	}
	.navIn .hg_menu_btn span::before,
	.navIn .hg_menu_btn span::after{
		background: #fff;
	}
	.navIn .hg_menu_btn span::before{
		top: 50%;
		transform: translateY(-50%) rotate(45deg);
	}
	.navIn .hg_menu_btn span::after{
		top: 50%;
		transform: translateY(-50%) rotate(-45deg);
	}

header nav {
	display: block;
	position: absolute;
	top: 0;
	right: -409px;
	width: 100%;
	max-width: 409px;
	max-height: 768px;
	height: 100vh;
	padding: 105px 20px 30px 119px;
	overscroll-behavior: auto;
	overflow-y: auto;
	transition: cubic-bezier(0.4, 0, 1, 1) 0.3s;
	background: #025BB2;
	text-align: left;
	border-top-left-radius: 40px;
	border-bottom-left-radius: 40px;
}
header.navIn nav {
	right: 0;
	z-index: 8888;
}

header nav::after{
	content: "RECRUIT";
	display: block;
	position: absolute;
	left: -12px;
	writing-mode: vertical-rl;
	font-family: "Lato", serif;
	color: #0C69C3;
	font-size: 10rem;
	font-weight: 900;
	height: 100%;
	bottom: 31px;
	text-align: right;
	line-height: 1;
	z-index: -1;
	white-space: nowrap;
}

header nav .page_nav li.main + li.main,
header nav .page_nav li.sub + li.main{
	margin-top: 35px;
}
header nav .page_nav a{
	background: linear-gradient(to right, #F85B00, #F85B00 50%, #fff 50%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-size: 200% 100%;
	background-position: 100%;
}
header nav .page_nav a.hoverNone{
	cursor: auto;
	background-position: 100%;
}

header nav .page_nav li.sub{
	margin-top: 15px;
	margin-left: 1em;
}

header .page_nav li.sub a{
	background: linear-gradient(to right, #F85B00, #F85B00 50%, #E0F0FF 50%);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-size: 200% 100%;
	background-position: 100%;
	font-size: 1.6rem;
}
header nav .entryBtn{
	border-radius: 35px;
	overflow: hidden;
	margin-top: 75px;
	max-width: 207px;
	width: 100%;
}
header nav .entryBtn a{
	display: block;
	text-align: center;
	background: #F85B00;
	font-size: 2.4rem;
	font-weight: 700;
	color: #fff;
	line-height: 69px;
}
header nav .entryBtn:hover a{
	background: #032E83;
}

@media screen and (min-width: 1025px){
	.page_nav a:hover{
		background-position: 0 100%;
		opacity: 1;
	}
	header .page_nav li.sub a:hover{
		background-position: 0 100%;
		opacity: 1;
	}
}
@media screen and (max-width: 1239px){
	header > .inner{
		width: calc(100% - 36px);
	}
}
@media screen and (max-width: 767px){
	header{
		height: 72px;
	}
	header > .inner{
		align-items: center;
	}
	header .logo{
		padding-top: 0;
	}
	header .logo a{
		align-items: flex-end;
	}
	header .logo img{
		width: 177px;
	}
	header .logo a .txt{
		font-size: 1rem;
		padding-bottom: 2px;
	}
	header .navWrap > .entryBtn{
		display: none;
	}
	header nav{
		border-top-left-radius: 20px;
		border-bottom-left-radius: 20px;
		padding: 97px 10px 30px 52px;
		width: calc(100% - 91px);
		height: 100vh;
		max-height: 668px;
	}
	header nav::after{
		font-size: 7.2rem;
	}
	
	header nav .page_nav li.main + li.main,
	header nav .page_nav li.sub + li.main{
		margin-top: 30px;
	}
	header nav .page_nav li.sub{
		margin-top: 6px;
	}
	header nav .page_nav a{
		font-size: 1.6rem;
	}
	
	header nav .entryBtn{
		margin: 60px -12px 0;
	}
}
@media screen and (max-width: 374px){
	header .logo a{
		align-items: center;
	}
	header .logo img {
		width: 138px;
	}
	header nav{
		width: calc(100% - 51px);
	}
}


/* ------------------------------------------------------------------------ */

/* Contents

/* ------------------------------------------------------------------------ */

#mainBlock {
	clear : both;
	margin-top: 70px;
	min-height: calc(100vh - 910px);
}

@media screen and (max-width: 767px){
	#mainBlock {
		margin-top: 50px;
	}
}

/* ------------------------------------------------------------------------ */

/* 下層共通

/* ------------------------------------------------------------------------ */
#KeyVisual{
	background: #EFEFEF;
	background: linear-gradient(180deg, rgba(239, 239, 239, 1) 0%, rgba(239, 239, 239, 1) 20%, rgba(255, 255, 255, 1) 20%, rgba(255, 255, 255, 1) 100%);
	height: 373px;
	width: 100%;
	position: relative;
}

#KeyVisual .img{
	display: block;
	transition-delay: 0.5s;
}

#KeyVisual .ttl.js-fadein{
	transition-delay: 0;
}

#KeyVisual .inner{
	background: url("/themes/site/recruit/common/img/bg_keyvisual.svg") no-repeat center bottom / 115%;
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	height: 100%;
}

#KeyVisual .ttl{
	position: relative;
	z-index: 5;
}

#KeyVisual .ttl .en{
	font-family: "Lato", serif;
	font-weight: 900;
	font-size: 9rem;
	color: #032E83;
}

.underPage #mainBlock{
	margin-top: 0;
}

.underPage #contentsBlock .contents{
	max-width: 1000px;
	
}

.underPage .leadContainer{
	text-align: left;
}

@media screen and (max-width: 1023px){
	#KeyVisual{
		background: linear-gradient(180deg, rgba(239, 239, 239, 1) 0%, rgba(239, 239, 239, 1) 50%, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 1) 100%);
	}
}

@media screen and (max-width: 767px){
	#KeyVisual{
		height: auto;
		aspect-ratio: 375/290;
	}
	#KeyVisual .inner{
		background-position: center 10%;
		background-size: 160%;
	}
	#KeyVisual .ttl .en{
		font-size: 5rem;
	}
}


/* ------------------------------------------------------------------------ */

/* #recruitingContainer

/* ------------------------------------------------------------------------ */
#recruitingContainer{
	background: #FFED6C url("/themes/site/recruit/common/img/footer_bg_pc.png") no-repeat center -8px;
	height: 336px;
	display: flex;
	justify-content: center;
	align-items: center;
	padding-bottom: 57px;
}
#recruitingContainer .strong{
	font-size: 3rem;
	font-weight: 700;
	color: #032E83;
}
#recruitingContainer .btn{
	font-family: "Montserrat", serif;
	font-size: 4rem;
	font-weight: 700;
	padding: 0 19px;
	line-height: 88px;
	border-radius: 44px;
	margin-top: 22px;
	background: #F85B00;
	transition: 200ms ease;
}
#recruitingContainer .btn:hover{
	background: #032E83;
}
@media screen and (max-width: 1366px){
	#recruitingContainer{
		background-position: calc(100% / 2 - -16px) -11px;
	}
}
@media screen and (max-width: 767px){
	#recruitingContainer{
		background: #FFED6C url("/themes/site/recruit/common/img/footer_bg_sp.png") no-repeat calc(100% / 2 + 12px) -8px;
		padding-bottom: 20px;
		height: 456px;
	}
	#recruitingContainer .strong{
		font-size: 2.4rem;
	}
	#recruitingContainer .btn{
		font-size: 3.2rem;
		margin-top: 13px;
		line-height: 80px;
		min-width: 270px;
	}
}

/* ------------------------------------------------------------------------ */

/* Footer

/* ------------------------------------------------------------------------ */

footer {
	clear : both;
	background: #032E83;
	color: #fff;
	border-top-right-radius: 40px;
	border-top-left-radius: 40px;
	margin-top: -41px;
}

footer > .inner{
	margin: 0 auto;
	max-width: 1050px;
	width: calc(100% - 30px);
	padding: 81px 0 0;
	position: relative;
}

footer > .inner > .flex{
	justify-content: flex-end;
}

footer .leftBox{
	text-align: left;
}
footer .leftBox .name{
	margin-top: 24px;
}
footer .leftBox .add{
	font-size: 1.4rem;
	margin-top: 10px;
}
footer .leftBox .add a{
	color: #fff;
}

footer nav{
	margin-top: 6px;
	margin-left: 65px;
}

footer .page_nav{
	flex-wrap: wrap;
	justify-content: flex-end;
	text-align: left;
}
	footer .page_nav a{
		background: linear-gradient(to right, #F85B00, #F85B00 50%, #fff 50%);
		background-clip: text;
		-webkit-background-clip: text;
		-webkit-text-fill-color: transparent;
		background-size: 200% 100%;
		background-position: 100%;
		
		font-size: 1.6rem;
		letter-spacing: 0.05em;
	}

footer .page_nav a.hoverNone{
	cursor: auto;
	background-position: 100%;
}

footer .page_nav .sub a{
	font-weight: 400;
}

footer .page_nav > li + li{
	margin-left: 24px;
}

footer .page_nav .subList{
	margin-top: 8px;
}

footer .copy{
	font-size: 1.2rem;
	padding: 0 0 26px;
	margin-top: 49px;
	letter-spacing: 0.05em;
}


@media screen and (max-width: 1025px){
	footer .page_nav a:hover{
		background-position: 0 100%;
	}
}
@media screen and (max-width: 1120px){
	footer > .inner{
		max-width: 410px;
	}
	footer > .inner > .flex{
		flex-direction: column-reverse;
	}
	
	footer nav{
		margin: 0;
	}
	
	footer .page_nav{
		display: block;
	}
	footer .page_nav li{
		margin-left: 0;
		text-align: left;
	}
	footer .page_nav > li + li{
		margin-top: 25px;
		margin-left: 0;
	}
	
	footer .page_nav .subList{
		margin-top: 0;
	}
	
	footer .page_nav .subList > li{
		margin-top: 8px;
	}
	
	footer .leftBox{
		margin-top: 70px;
	}
	
	footer .copy{
		margin-top: 40px;
	}
}

@media screen and (max-width: 767px){
	footer{
		border-top-right-radius: 20px;
		border-top-left-radius: 20px;
		margin-top: -10px;
	}
	footer > .inner{
		padding: 59px 0 0;
	}
	footer .leftBox .logo{
		display: inline-block;
		width: 178px;
	}
	footer .leftBox .name{
		margin-top: 21px;
	}
	footer .leftBox .add{
		margin-top: 11px;
		line-height: 1.4;
	}
	
	footer .page_nav .subList > li {
		margin-top: 15px;
	}
	footer .page_nav .subList > li + li{
		margin-top: 11px;
	}
	footer .page_nav a{
		font-size: 1.6rem;
	}
}


