/*  recruit
------------------------*/
#recruit,
dl.table input,
dl.table textarea,
dl.table select {
 	font-size: 14px;
}

#recruit h1 { 
	text-align: center;
	margin-bottom: 3em;
}
#recruit h1 img {
	max-width: 1200px;
	width: 100%;
}


#recruit .intro {
	text-align: center;
}

#recruit .intro strong {
	font-size: 220%;
	font-weight: bold;
	color: #FFA600;
}

#recruit .intro p {
	font-size: 150%;
	font-weight: bold;
}

#recruit .intro .image {
	margin-top: 2em;
}

#recruit .intro .image img {
	width: 33.3%;
	height: auto;
}


#recruit .info {
	background: #f8f8f8;
	padding: 2em;
	margin-top: 0;
}

#recruit .info dt {
	font-weight: bold;
	font-size: 130%;
	margin-bottom: 0.5em;
}

#recruit .info dd + dt {
	margin-top: 2em;
}




#recruit .staff > p {
	text-align: center;
}

#recruit .staff strong {
	font-size: 180%;
	font-weight: bold;
	background: #ffff66;
	background: linear-gradient(transparent 60%, #ffff66 60%);
}

#recruit .staff b.head {
	display: block;
	background: #e60021;
    color: #fff;
    font-size: 130%;
	padding: 0.3em;
    margin-top: 2em;
}


#recruit .staffbox {
	margin-top: 3em;
	display: flex;
}

#recruit .staffbox .photo {
	width: 40%;
}

#recruit .staffbox:nth-child(even) .photo {
	margin-right: 2em;
}

#recruit .staffbox:nth-child(odd) .photo {
	order: 2;
	margin-right: 2em;
}

#recruit .staffbox .photo img {
	width: 100%;
}

#recruit .staffbox .comment {
	flex: 1;
	
	background: #fef7f8;
	border-radius: 10px;
	padding: 2em;
}

#recruit .staffbox .photo + .comment {
	position: relative;
}

@media screen and (min-width:769px) {
#recruit .staffbox .photo + .comment:before{
	content: "";
	position: absolute;
	top: 2em;
	border: 13px solid transparent;
 	z-index: 2;
}

#recruit .staffbox:nth-child(even) .photo + .comment:before{
	left: -26px;
	border-right: 13px solid #fef7f8;
}

#recruit .staffbox:nth-child(odd) .photo + .comment:before{
	right: -26px;
	border-left: 13px solid #fef7f8;
}
}




#recruit .staffbox .name {
	font-size: 130%;
	font-weight: bold;
	line-height: 1.2;
	color: #e60021;
	margin-bottom: 1em;
}

#recruit .staffbox .name small {
	font-size: 75%;
}
	
	


#recruit .job {
}

#recruit .job div+div {
	margin-top: 1.5em;
	padding-top: 1.5em;
	border-top: 1px solid #eee;
}

#recruit .job div p+p {
	margin-top: 1.5em;
}

#recruit .job li {
	padding-left: 1em;
	position: relative;
}

#recruit .job ul li:before {
	content: "◆";
	position: absolute;
	left: 0;
}

#recruit .job ol {
	margin: 1.5em 0;
	counter-reset: number;
}

#recruit .job ol li {
	margin-top: 0.5em;
	padding-left: 1.5em;
}

#recruit .job ol li:before {
	counter-increment: number;
	content: counter(number);
	position: absolute;
	left: 0;
	top: 0.2em;
	display: inline-block;
	background: #333;
	color: #fff;
	font-weight: bold;
	width: 1.3em;
	line-height: 1.3em;
	text-align: center;
	border-radius: 50%;
}

#recruit .job ol span {
	font-weight: bold;
}



#recruit .job b {
	font-size: 130%;
}
#recruit .job b.head {
	display: inline-block;
	color: #e60021;
	font-size: 130%;
	margin-bottom: 0.5em;
}

#recruit .job b.ttl {
	display: inline-block;
	background: #333;
	color: #fff;
	font-size: 100%;
	padding: 0 0.5em;
	margin-bottom: 0.5em;
}

#recruit .job .schedule {
	overflow: hidden;
}

#recruit .job .schedule span {
	float: left;
	margin-right: 2em;
}



#recruit .btn_entry {
	display: block;
    width: 60%;
    max-width: 500px;
    margin: 0 auto;
    background: #e91e63;
    color: #fff;
    font-weight: bold;
    font-size: 130%;
    text-align: center;
    padding: 20px 0;
    border-radius: 40px;
    cursor: pointer;
	transition: 0.3s;
}

@media screen and (max-width:769px) {
	#recruit .btn_entry{
		width: 80%!important;
		max-width: initial;
		padding: 10px 0;
		font-size: 18px!important;
	}
}

#recruit .btn_entry:hover{
    background: #ff568e;
    color: #fff;
}

#recruit .btn_entry.active {
	display: none;
}

#recruit .entry b.head {
	display: block;
	font-size: 200%;
	text-align: center;
	margin-bottom: 1.5em;
}



#recruit .entry .tablearea {
	max-width: 1070px;
	margin: 0 auto;
	padding: 6% 0;
	border: 10px solid #f8f8f8;
}

#recruit dl.table {
	width: 80%;
}



#recruit .confirm .txt {
	width: 80%;
	margin: 0 auto 2em;
}



@media screen and (max-width:769px) {
	#recruit {
		font-size: 100%;
	}

	#recruit .intro strong,
	#recruit .intro p,
	#recruit dl.table,
	#recruit .staff,
	#recruit .job,
	#recruit .confirm .txt {
		width: 96%;
		margin-left: auto;
		margin-right: auto;
	}
	
	#recruit .intro strong {
		font-size: 170%;
	}

	#recruit .intro p {
		font-size: 100%;
	}

	#recruit .info {
		padding: 1em;
	}

	#recruit .staff strong {
		font-size: 130%;
	}
	
	#recruit .staffbox {
		display: block;
	}
	
	#recruit .staffbox .photo {
		width: 100%;
	}
	
	#recruit .staffbox .comment {
		padding: 1em;
	}
	
	
	#recruit .staffbox .photo + .comment:before{
		content: "";
		position: absolute;
		top: -26px;
		left: 50%;
		margin-left: -17px;
		border: 13px solid transparent;
		border-bottom: 14px solid #fef7f8;
		z-index: 2;
	}

	#recruit .job {
	}

}







/*  Form
------------------------*/
.g-recaptcha {
	margin-bottom: 3em;
}
.g-recaptcha > div {
	margin: 0 auto;
}

dl.table {
	margin: 0 auto;
	border-bottom: 1px solid #eee;
}

dl.table > dt,
dl.table > dd {
	border-top: 1px solid #eee;
}

dl.table dt {
	width: 12em;
	float: left;
	font-weight: bold;
	padding: 2em 0 0 0;
}
dl.table dd {
	margin-left: 12em;
	padding-left: 2em;
	padding: 1.5em 0 1.5em 2em;
}

dl.table dd:after {
	content: '';
	display: block;
	clear: both;
}

dl.table dt {
	display: flex;
	justify-content: space-between;
	align-content: center;
}



dl.table dt:after {
	color: #fff;
	font-size: 70%;
	line-height: 1;
	padding: 0.3em 0.5em;
	border-radius: 2px;
	height: 1em;
	margin: 0.3em 0 0 auto;
}

dl.table dt.any:after {
	content: "任意";
	background: #2a2f98;
}

dl.table dt.abs:after {
	content: "必須";
	background: #e60021;
}


dl.table dl {
	margin-top: -0.5em;
}

dl.table dl dt {
	width: 6em;
	font-weight: normal;
	padding: 1em 0 0 0;
}
dl.table dl dd {
	margin-left: 6em;
	padding: 0.5em 0 0.5em 2em;
}

@media screen and (max-width:769px) {
	dl.table dt,
	dl.table dd {
		border-top: none;
	}
	dl.table {
		border-top: 1px solid #eee;
	}
	
	dl.table > dt {
		width: 100%;
		float: none;
		padding: 1em 0 0.5em 0;
	}
	dl.table > dd {
		padding: 0 0 1.5em 0;
		margin: 0;
		border-bottom: 1px solid #e7eaf3;
	}	
}






dl.table input[type="text"],
dl.table input[type="number"],
dl.table input[type="date"],
dl.table input[type="month"],
dl.table textarea {
	width: 100%;
	border: 1px solid #ddd;
	padding: 0.5em 0.5em;
	border-radius: 3px;
	-moz-box-shadow: inset 0 2px 10px -5px rgba(0,0,0,0.3);
	-webkit-box-shadow: inset 0 2px 10px -5px rgba(0, 0, 0, 0.3);
	box-shadow: inset 0 2px 10px -5px rgba(0,0,0,0.3);
}
dl.table input[type="file"] {
	padding: 0.6em 0;
}
dl.table input[type="number"] {
	width: 8em;
}
dl.table input[type="date"],
dl.table input[type="month"] {
	width: 15em;
	padding: 0.3em 0.5em;
}

dl.table input[type="text"]:focus,
dl.table input[type="number"]:focus,
dl.table textarea:focus {
	border: solid 1px #e60021;
}

dl.table input[type="text"] + span,
dl.table input[type="number"] + span {
	margin-left: 0.5em;
}

dl.table textarea {
	height: 10em;
}

dl.table .textttl {
	padding-top: 0.4em;
	font-weight: bold;
}

dl.table .textttl textarea {
	margin-top: 0.3em;
}

dl.table .textttl+.textttl {
	margin-top: 0.6em;
}

dl.table dl+dl {
	border-top: 1px dashed #ddd;
	margin-top: 1em;
	padding-top: 1.5em;
}
dl.table label {
	display: inline-block;
	position: relative;
	cursor: pointer;
}

@media screen and (max-width:769px) {	
	dl.table label {
		width: 100%;
	}
}


dl.table .radiobox,
dl.table .checkbox {
	padding: 0.2em 0;
}

dl.table .radiobox br + label,
dl.table .checkbox br + label {
	margin-top: 1em;
}

dl.table label input[type="checkbox"] + span,
dl.table label input[type="radio"] + span {
	vertical-align: bottom;
	display: inline-block;
	position: relative;
	margin-right: 2em;
	padding-left: 2.5em;
	height: 2em;
	display: flex;
	align-items: center;
}
dl.table label input[type="checkbox"] {
	position: absolute;
	left: 0;
	opacity: 0;
}
dl.table label input[type="checkbox"] + span::before, dl.table label input[type="checkbox"] + span::after {
	position: absolute;
	left: 0;
	margin: auto;
	display: inline-block;
	content: '';
	box-sizing: border-box;
}
dl.table label input[type="checkbox"] + span::before {
	z-index: 0;
	background-color: transparent;
	width: 1.8em;
	height: 1.8em;
	border: 2px #ddd solid;
	border-radius: 2px;
}
dl.table label input[type="checkbox"] + span::after {
	z-index: 1;
	margin-top: -0.1em;
	margin-left: 0.6em;
	width: 0.5em;
	height: 0.9em;
}
dl.table label input[type="checkbox"]:checked + span::before {
	background-color: #e60021;
	border: 2px #e60021 solid;
}
dl.table label input[type="checkbox"]:checked + span::after {
	border: 2px solid #fff;
	border-width: 0 2px 2px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}

dl.table label input[type="radio"] {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	opacity: 0;
}
dl.table label input[type="radio"] + span::before {
	position: absolute;
	display: inline-block;
	content: '';
	box-sizing: border-box;
	border-radius: 1em;
}
dl.table label input[type="radio"] + span::before {
	z-index: 0;
	left: 0;
	top: 0;
	bottom: 0;
	margin: auto;
	background-color: transparent;
	width: 2em;
	height: 2em;
	border: 2px #ddd solid;
}
dl.table label input[type="radio"]:checked + span::before {
	border: 8px #e60021 solid;
}

dl.table .radiobox input[type="text"] {
	width: 20%;
	margin-left: -1.5em;
}

@media screen and (max-width:769px) {
	dl.table .radiobox label + label,
	dl.table .checkbox label + label {
		margin-top: 1em;
	}

	dl.table .radiotext label {
		position: relative;
	}
	
	dl.table .radiotext input[type="text"] {
		width: 40%;
	}
}

dl.table .select {
    width: 50%;
	position: relative;	
}
dl.table .select:before {
	content: "";
    z-index: 1;
    position: absolute;
    top: 45%;
	bottom: 55%;
	left: auto;
    right: 1em;
	margin: auto;
    display: block;
    width: 0.5em;
    height: 0.5em;
    border-bottom: 1px solid #999;
    border-right: 1px solid #999;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
dl.table select {
	width: 100%;
	padding: 0.36em 2em 0.36em 1em;
    border: 1px solid #ddd;
	-moz-box-shadow: inset 0 -2px 10px -5px rgba(0,0,0,0.3);
	-webkit-box-shadow: inset 0 -2px 10px -5px rgba(0, 0, 0, 0.3);
	box-shadow: inset 0 -2px 10px -5px rgba(0,0,0,0.3);
	border-radius: 3px;
}

@media screen and (max-width:769px) {
	dl.table .select {
		width: 100%;
	}
}


dl.table .set {
	display: flex;
	justify-content: flex-start;
}

dl.table .set > *{
	margin-right: 1em !important;
}

dl.table .set > *:last-child {
	margin-right: 0 !important;
}

dl.table .set .select {
	width: 10em;
}

@media screen and (max-width:769px) {
	dl.table .set {
		flex-wrap: wrap;
	}
	
	dl.table .set .select {
		width: 30%;
	}
	
	dl.table .set input[type="text"] {
		width: 100% !important;
		margin-top: 1em;
	}
}


.tablearea .submit_area {
	text-align: center;
	margin-top: 4rem;
}


.tablearea .policylink {
	text-align: center;
	margin-bottom: 1em;
}

.tablearea .policylink label {
	position: relative;
	display: inline-block;
	margin: 0 auto;
}

.tablearea .policylink input[type="checkbox"] + span {
	vertical-align: bottom;
	display: inline-block;
	position: relative;
	padding-left: 2.5em;
	height: 2em;
	display: flex;
	align-items: center;
}
.tablearea .policylink label input[type="checkbox"] {
	position: absolute;
	left: 0;
	opacity: 0;
}
.tablearea .policylink label input[type="checkbox"] + span::before, .tablearea .policylink label input[type="checkbox"] + span::after {
	position: absolute;
	left: 0;
	margin: auto;
	display: inline-block;
	content: '';
	box-sizing: border-box;
}
.tablearea .policylink label input[type="checkbox"] + span::before {
	z-index: 0;
	background-color: transparent;
	width: 1.8em;
	height: 1.8em;
	border: 2px #ddd solid;
	border-radius: 2px;
}
.tablearea .policylink label input[type="checkbox"][disabled="disabled"] + span::before {
	border: 2px #efefef solid;
	background: #f8f8f8;
	cursor: not-allowed;
}

.tablearea .policylink label input[type="checkbox"] + span::after {
	z-index: 1;
	margin-top: -0.1em;
	margin-left: 0.65em;
	width: 0.5em;
	height: 0.9em;
}
.tablearea .policylink label input[type="checkbox"]:checked + span::before {
	background-color: #e60021;
	border: 2px #e60021 solid;
}
.tablearea .policylink label input[type="checkbox"]:checked + span::after {
	border: 2px solid #fff;
	border-width: 0 2px 2px 0;
	-webkit-transform: rotate(45deg);
	-ms-transform: rotate(45deg);
	transform: rotate(45deg);
}



.tablearea.confirm .err { color: #e60021; }

.tablearea .submit_area input[type="submit"],
.tablearea.confirm .submit_area .btn_back {
	cursor: pointer;
	width: 90%;
	max-width: 600px;
	background: #333;
	color: #fff;
	font-size: 110%;
	font-weight: bold;
	padding: 0.5em 0;
}

.tablearea .submit_area input[type="submit"]:disabled {
	cursor: not-allowed;
	background: #aaa;
}


.tablearea.confirm .submit_area .btn_back {
	background: #aaa;
}

.tablearea.confirm .submit_area input[type="submit"] {
	background: #e60021;
	color: #fff;
	margin-bottom: 2em;
}


