@charset "UTF-8";

/* common */
@import url('https://fonts.googleapis.com/css?family=Roboto&text=0123456789');
html{
	font-size: 62.5%;
	height: 100%;
}
body{
	background-color: #f8f6f5;
	color: #191d1f;
	font-family: "Roboto","Helvetica Neue", "Helvetica", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Arial", "Yu Gothic", "Meiryo", sans-serif;
	letter-spacing: 0.05em;
	position: relative;
	height: 100%;
}
img{
	max-width: 100%;
	height: auto;
}
.w-100{width: 100%;}
.text-center{text-align: center;}
.text-left{text-align: left;}
.text-right{text-align: right;}
.p-0{padding: 0;}
.font-weight-bold {font-weight: bold;}
.font-size-10{font-size: 1rem;}
.font-size-12{font-size: 1.2rem;}
.font-size-18{font-size: 1.8rem;}
.font-size-20{font-size: 2rem;}
.font-size-23{font-size: 2.3rem;}
.font-size-25{font-size: 2.5rem;}
.text-orange{color: #ee5300;}
.text-weight-blod {font-weight: bold;}
.flex-between{
	display: flex;
	display: -webkit-flex;
	flex-flow: row wrap;
	-webkit-flex-flow: row wrap;
	justify-content: space-between;
	-webkit-justify-content: space-between;
}
.flex-center{
	display: flex;
	display: -webkit-flex;
	flex-flow: row wrap;
	-webkit-flex-flow: row wrap;
	justify-content: center;
	-webkit-justify-content: center;
}
.flex-start{
	display: flex;
	display: -webkit-flex;
	flex-flow: row wrap;
	-webkit-flex-flow: row wrap;
	justify-content: flex-start;
	-webkit-justify-content: flex-start;
}
.flex-end{
	display: flex;
	display: -webkit-flex;
	flex-flow: row wrap;
	-webkit-flex-flow: row wrap;
	justify-content: flex-end;
	-webkit-justify-content: flex-end;
}

.wrapper{
	max-width: 592px;
	margin: 0 auto;
	position: relative;
	padding: 0 16px;
}
a:hover,
.btn:hover{
	opacity: 0.8;
	text-decoration: none;
}
img{display: inline-block;}
.img-w100{
	width: 100%;
	height: auto;
}

.sp {display: block!important;}
.pc {display: none!important;}

@media screen and (min-width: 768px) {
	.sp {display: none!important;}
	.pc {display: block!important;}
	a{transition: all 0.3s;}
	a:hover{opacity: 0.64;}
	.wrapper{padding: 0;}
}

/********************************
common
********************************/
main{
	padding: 69px 0 48px;
}
.btn{
	font-weight: bold;
	text-align: center;
	margin: 24px auto 0;
	padding: 0;
	border-radius: 0;
	width: 100%;
	max-width: 400px;
	display: block;
}
.btn a,
.btn button{
	display: block;
	border-radius: 10px;
	width: 100%;
	font-size: 1.8rem;
	line-height: 56px;
	position: relative;
}
.btn.primary a{
	background: linear-gradient( 45deg, rgb(51,102,153) 0%, rgb(93,143,237) 100%);
	box-shadow: 0px 8px 7.36px 0.64px rgba(0, 0, 0, 0.07);
	color: #FFF;
}
.btn.secoundary a,
.btn.secoundary button{
	background-image: linear-gradient( -45deg, rgb(250,123,38) 0%, rgb(207,82,25) 100%);
	box-shadow: 0px 8px 7.36px 0.64px rgba(0, 0, 0, 0.07);
	color: #FFF;
	border: none;
}

.btn.primary a:after,
.btn.secoundary button:after{
	content: "";
	display: block;
	background: url("/asset/candidate/img/ico_arrow_right_white.svg") no-repeat center center / 100% auto;
	width: 8px;
	height: 14px;
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
}
.btn.border a{
	border: 1px solid #bec4c7;
}
.btn.border a:after{
	content: "";
	display: block;
	background: url("/asset/candidate/img/ico_arrow_right_black.svg") no-repeat center center / 100% auto;
	width: 8px;
	height: 14px;
	position: absolute;
	right: 16px;
	top: 50%;
	transform: translateY(-50%);
}
.btn.left a{
	text-align: left;
	padding-left: 16px;
}
.contents-box{
	padding-top: 48px;
	position: relative;
}
h2.page-title + .contents-box{
	padding-top: 0;
}
h2{
	font-size: 1.8rem;
	font-weight: bold;
	margin-bottom: 8px;
	line-height: 1.4;
}
h2.page-title{
	max-width: 592px;
	margin: 28px auto;
	position: relative;
	padding: 0 16px;
	font-size: 2rem;
	font-weight: bold;
	line-height: 1.4;
}
h3{
	font-size: 1.6rem;
	font-weight: bold;
	margin-bottom: 8px;
	line-height: 1.6;
}
.en{
	font-size: 1.4rem;
	font-weight: bold;
}
.ttl-box h2 + .en{line-height: 1.2;}
.flex{
	display: flex;
	justify-content: space-between;
	margin: 0 auto;
	max-width: 800px;
}
.unit{margin-bottom: 40px;}
.box {
	border-radius: 10px;
	background: #FFF;
	padding: 24px 16px;
}
input{
	background: #fcfaf9;
	border: 1px solid #e1e0df;
	border-radius: 4px;
	font-size: 1.6rem;
	line-height: 44px;
	width: 100%;
	padding: 0 16px;
}
input.error{
	border: 1px solid #ce232f;
}

@media screen and (min-width: 768px) {
h2.page-title{
	padding: 0;
}
}
/********************************
header
********************************/
header{
}
.header{
	width: 100%;
	background: #f8f6f5;
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 3;
	border-bottom: #e7e8e9 1px solid;
}
.header:before{
	content: "";
	display: block;
	width: 100%;
	height: 4px;
	background: linear-gradient( 270deg, rgb(250,123,38) 0%, rgb(207,82,25) 100%);
}
.header__container {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 16px;
	margin-right: auto;
	margin-left: auto;
	height: 64px;
}
.header__logo a {
	line-height: 0;
}
.hamburger {
	width: 44px;
	height: 44px;
	position: relative;
	appearance: none;
	border: 1px solid #bec4c7;
	padding: 0;
	margin: 0;
	background-color: transparent;
	cursor: pointer;
	border-radius: 4px;
	z-index: 99;
}
.hamburger:hover {
	opacity: .6;
}
.hamburger .border,
.hamburger .border::after,
.hamburger .border::before {
	position: absolute;
	display: block;
	content: "";
	width: 18px;
	height: 2px;
	left: 13px;
	background-color: #191d1f;
	transition: all 0.5s;
}
.hamburger .border{
	top: 17px;
}
.hamburger .border::before {
	top: -7px;
	left: 0;
}
.hamburger .border::after {
	bottom: -7px;
	left: 0;
}
.hamburger.open .border {
	background-color: transparent;
}
.hamburger.open .border::before {
	top: 0;
	transform: rotate(45deg);
}
.hamburger.open .border::after {
	bottom: 0;
	transform: rotate(-45deg);
}
.hamburger #menu_name{
	text-align: center;
	font-size: 7px;
	top: 11px;
	position: relative;
}
.hamburger #menu_name::before{
	content: "MENU";
}
.hamburger.open #menu_name::before{
	content: "CLOSE";
}
.nav {
	position: fixed;
	width: 100%;
	height: 100vh;
	top: 0;
	right: 0;
	transition: all 0.5s;
	z-index: 2;
	visibility: hidden;
}
.nav::after {
	content: "";
	width: 100vw;
	height: 100%;
	background: #191d1f;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	transition: all 0.5s;
	opacity: 0;
}
.nav.open{
	visibility: visible;
}
.nav.open::after {
	opacity: .6;
}
.nav .container{
	background-color: #f8f6f5;
	position: absolute;
	z-index: 2;
	height: 100vh;
	top: 0;
	padding: 69px 16px;
	width: 80%;
	max-width: 480px;
	right: -100%;
	transition: all 0.5s;
}
.nav__list{
	padding: 20px 0;
}
.nav__item a {
	display: block;
	font-size: 16px;
	font-weight: bold;
	text-decoration: none;
	line-height: 48px;
	text-transform: uppercase;
	background: url("/asset/candidate/img/ico_arrow_right_black.svg") no-repeat right 16px center / 9px auto;
	padding: 0 16px;
}
.nav__item a:hover,
.nav__item.current a {
	color: #0f5474;
}
.nav.open .container{
	right: 0;
}
.logout{
	background: transparent;
	border: 1px solid #bec4c7;
	border-radius: 4px;
	box-sizing: border-box;
	line-height: 48px;
	color: #6f787c;
	width: calc(100% - 32px);
	transition: all 0.5s;
	margin: 0 16px;
}
.logout:hover {
	opacity: .6;
}
.user__item{
	display: flex;
	align-items: center;
	line-height: 1;
	padding: 24px 0;
}
main .user__item{
	padding-bottom: 0;
}
.user__card{
	margin-left: 8px;
}
.user__name span{
	color: #0a516d;
	margin-right: .5em;
}
.user__course{
	font-size: 12px;
	margin-top: 4px;
}
.user__link {
	margin-left: auto;
	margin-right: 0;
}
.user__link a{
	font-size: 12px;
	width: 80px;
	line-height: 24px;
	border: #bec4c7 1px solid;
	border-radius: 4px;
	display: block;
	text-align: center;
}
.header .user__item{
	border-bottom: 1px solid #bec4c7;
}
@media screen and (min-width: 768px) {
}

/********************************
login
********************************/
.login{
	background: #fff;
}
.login .header{
	background: #fff;
	border-bottom: none;
	position: relative;
}
.login .header__container{
	justify-content: center;
	height: auto;
	padding-top: 80px;
	padding-bottom: 8px;
}
.login .header__logo img{
	width: 161px;
}

.login main{
	padding: 0 0 48px;
}
.login h2{
	text-align: center;
    font-size: 2rem;
    margin-bottom: 0;
}
.login .btn{
	max-width: 311px;
}
.login-form .wrapper{
	padding: 0 32px;
}
.login-form .title{
    font-size: 1.6rem;
	font-weight: bold;
	margin-bottom: 4px;
}
.login-form ul{
    padding-top: 56px;
}
.login-form li:not(:first-of-type) .title{
	margin-top: 24px;
}
.login-form .email{
	content: "";
	background: #fcfaf9 url("/asset/candidate/img/ico_mail.svg") no-repeat left 16px center / 16px auto;
	padding-left: 40px;
}
.login-form .password{
	content: "";
	background: #fcfaf9 url("/asset/candidate/img/ico_password.svg") no-repeat left 16px center / 16px auto;
	padding-left: 40px;
}
.login-form .notice{
	text-align: right;
    font-size: 1.2rem;
	color: #767975;
	margin-top: 4px;
}
.login-form .btn{
	margin-top: 48px;
}
.login-form .text-link{
	text-align: center;
	margin-top: 24px;
}
.login-form .text-link a{
	color: #767975;
}
.login-form form{
	position: relative;
}
.error-text{
	background: #feefee;
	padding: 4px .4em;
	color: #ce232f;
	font-size: 1.2rem;
	text-align: center;
	border-radius: 4px;
    margin-top: 16px;
}
.login-form .error-text + ul{
    padding-top: 16px;
}


/********************************
step
********************************/
.step__chart{
	display: flex;
	justify-content: center;
	align-items: flex-end;
	position: relative;
	overflow: hidden;
	padding-top: 1px;
}
.step__chart li{
	margin-left: 12px;
	display: flex;
	flex-direction: column;
	width: 40px;
	position: relative;
}
.step__chart li:first-child{
	margin-left: 0;
}
.step__chart li.current:before{
	content: "";
	display: block;
	width: 40px;
	height: 33px;
	background: url("/asset/candidate/img/ico_run.svg") no-repeat left bottom / 100% auto;
	margin-bottom: 8px;
	position: relative;
	z-index: 2;
}
/*.step__chart li.chart5.current:before{*/
/*	background: url("/asset/candidate/img/ico_goal.svg") no-repeat left bottom / 100% auto;*/
/*}*/
.step__chart li.current:after{
	content: "";
	display: block;
	width: 300vw;
	height: 1px;
	background: #f8f6f5;
	top: 40px;
	right: -65vw;
	position: absolute;
}
.step__chart .graph-wrap{
	overflow: hidden;
	border-radius: 20px;
}
.step__chart .graph{
	width: 40px;
	height: 120px;
	border-radius: 20px;
	background: #f7f7f7;
	flex-grow: 1;
}
.step__chart .done .graph{animation: graphAnim 1s forwards;}
.step__chart .chart1 .graph{height: 48px;}
.step__chart .chart2 .graph{height: 66px;}
.step__chart .chart3 .graph{height: 84px;}
.step__chart .chart4 .graph{height: 102px;}
.step__chart .chart1.done .graph {background-image: linear-gradient( 0deg, rgba(255,182,37,0.99608) 0%, rgb(234,138,34) 100%);}
.step__chart .chart2.done .graph {background-image: linear-gradient( 0deg, rgba(254,153,51,0.99608) 0%, rgb(234,112,33) 100%);}
.step__chart .chart3.done .graph {background-image: linear-gradient( 0deg, rgba(255,121,34,0.99608) 0%, rgb(234,85,34) 100%);}
.step__chart .chart4.done .graph {background-image: linear-gradient( 0deg, rgba(255,93,33,0.99608) 0%, rgb(234,59,34) 100%);}
.step__chart .chart5.done .graph {background-image: linear-gradient( 0deg, rgba(255,63,34,0.99608) 0%, rgb(234,33,35) 100%);}
@keyframes graphAnim {
  0% {
    transform: translateY(100%);
  }
  100% {
    transform: translateY(0);
  }
}
.step__chart .name{
	margin-top: 8px;
	font-size: 1rem;
	line-height: 1.4;
	color: #616161;
	text-align: center;
	flex-grow: 1;
	height: 2.8em;
	width: 5em;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}

/********************************
report
********************************/
.report__link{
	border-top: 1px solid #f8f6f5;
}
.report__link li{
	border-bottom: 1px solid #f8f6f5;
}
.report__link li a{
	background: url("/asset/candidate/img/ico_arrow_right_black.svg") no-repeat right 8px center / 9px auto;
	padding: 16px 32px 16px 8px;
	display: flex;
}
.report__link li figure{
	line-height: 0;
	width: 56px;
	border-radius: 4px;
}
.report__link .card{
	margin-left: 16px;
	flex: 1;
}
.report__link .card .title{
	font-size: 1.6rem;
	font-weight: bold;
	line-height: 1.4;
}
.report__link .card .date{
	color: #767975;
	font-size: 1.2rem;
	line-height: 1;
	margin-top: 4px;
}

/********************************
about
********************************/
.about picture{
	line-height: 0;
	display: block;
	text-align: center;
}
.about .text{
	font-weight: bold;
	margin-top: 16px;
}

/********************************
interview
********************************/
.interview .inner{
	max-width: 384px;
	margin: 0 auto;
}
.interview picture{
	line-height: 0;
	display: block;
	text-align: center;
}
.interview picture img{
	width: 100%;
	height: auto;
	max-width: 384px;
}
.interview h3{
	margin: 16px 0 8px;
}
.interview .text{
	color: #767975;
	font-size: 1.4rem;
	line-height: 1.4;
}
.interview .account{
	display: flex;
	align-items: center;
	margin-top: 8px;
}
.interview .account picture{
	width: 24px;
}
.interview .account__card{
	color: #767975;
	font-size: 1.2rem;
	line-height: 1.4;
	margin-left: 8px;
	flex: 1;
}
.interview .btn{
	max-width: 311px;
}
.interview .btn a {
    border-radius: 4px;
    font-size: 1.4rem;
    line-height: 48px;
}
.interview .btn a img{margin-right: 16px;}


/********************************
report-list
********************************/
.report-list .report__link li{
	border-radius: 10px;
	background: #FFF;
	margin-top: 8px;
	position: relative;
}
.report-list .report__link li:first-child{
	margin-top: 0;
}
.report-list .report__link li.new::after{
	content: "";
	background: #ce232f;
	width: 12px;
	height: 12px;
	border-radius: 6px;
	position: absolute;
	top: -2px;
	right: -2px;
}

.report-list .report__link .card .title{
	font-weight: normal;
}

.report-list .report__link li.new .card .title{
	font-weight: bold;
}
.report-list .report__link li a {
    background: url(/asset/candidate/img/ico_arrow_right_black.svg) no-repeat right 24px center / 9px auto;
    padding: 16px 48px 16px 24px;
    display: flex;
}

/********************************
report-detail
********************************/
.comment .text{
	font-size: 1.4rem;
}


/********************************
footer
********************************/
.bread-crumb{
	color: #767975;
	font-size: 1.2rem;
	display: flex;
	padding-bottom: 16px;
}
.bread-crumb li:before{
	background: url("/asset/candidate/img/ico_arrow_right_gray.svg") no-repeat center center / 5px auto;
	content: "";
	display: inline-block;
	vertical-align: 0.05em;
	width: 5px;
	height: 8px;
	margin: 0 8px;
}
.bread-crumb li:first-child:before{
	display: none;
}
.bread-crumb li a{
	color: #767975;
	text-decoration: underline;
}
footer{
	font-size: 1.4rem;
	width: 100%;
	position: sticky;
 	top: 100vh;
}
.footer{
	background: #1c1c1c;
	padding: 24px 16px;
	color: #b3b3b3;
}
.footer_nav{
	display: flex;
	flex-wrap: wrap;
}
.footer_nav li{
	width: 50%;
	margin-top: 0.4em;
}
.footer_nav li:nth-child(-n + 2){
	margin-top: 0;
}
.footer_nav li a{color: #717171;}
.copyright{
	margin-top: 16px;
	padding-top: 16px;
	font-size: 1.2rem;
	border-top: 1px solid #232323;
	text-align: center;
}
@media screen and (min-width: 768px) {
.footer_nav{
	justify-content: center;
}
.footer_nav li{
	width: auto;
	margin-top: 0;
	margin-left: 1em;
}
.footer_nav li:first-child{
	margin-left: 1em;
}
}


/********************************
account-info
********************************/
.account-info .box{
	padding-bottom: 32px;
}
.account-info .title{
    font-size: 1.6rem;
	font-weight: bold;
	margin-bottom: 4px;
}
.account-info li:not(:first-of-type) .title{
	margin-top: 24px;
}
.account-info .btn{
	margin: 32px auto 0;
	width: calc(100% - 32px);
}
