@charset "UTF-8";

/* reset CSS */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.clearfix:after{
	content : '';
	display : block;
	clear : both;
	height:0;
}

body {
	/*padding:20px 50px;*/
	/*font-size: 14px;	*/
	/*font-weight: 400;	*/
}

@media only screen and (max-width: 640px){
	html,body,.all_wrapper { width:100%; }
}


/* screen mask *****************/
.section-01-mask{
	position: relative;
	width: 100%;
	height: 100%;
}

/* 縦 */
.section-screen{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color:rgba(255,255,255,0.6);
	transition: transform 1s ease-out;
    transform-origin: top;
	z-index: 2;
}
.section-screen.shrink {
    transform: scaleY(0);
  }

/* 横 */
.section-screen-W{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-color:rgba(255,255,255,1);
	transition: transform 1s ease-out;
    transform-origin: right;
	z-index: 2;
}
.section-screen-W.shrink {
    transform: scaleX(0);
  }
/* screen mask *****************/





/*　=================================　入力チェック・エラーメッセージ　=================================　*/

.form-wrapper{
	max-width: 650px;
	margin: 0 auto;
	text-align: left;
	padding-top: 10px;
	
	font-size: 14px;
	font-weight: 400;
}


.form-result{
	color: #333333;
	padding: 20px;
}
.form-result-assy{
	display: flex;

}
.form-result-left{
	width: 30%;
	padding: 10px;

}
.form-result-right{
	width: 70%;
	padding: 10px;

}


#contact_form .input_item dl {		/* 任意 必須 入力エリア　ベース */
	margin: 0 auto;
	margin-bottom: 20px;
    width: 100%;
}

#contact_form .input_item dl dt {	/* 会社など */
    float: left;
    width: 190px;
    font-size: 1em;
    line-height: 30px;
    height: 30px;
    padding: 3px 0 3px 0;
    text-indent: -48px;
    margin: 0 0 0 48px;
	color: #666666;
	margin-bottom: 5px;
}

#contact_form .input_item dl dt span {	/* 任意 必須 */
	font-size: 0.8em;
	margin: 0 10px 0 0;
	display: inline;
	line-height: 20px;
	padding: 3px 10px;
	color: #ffffff;
	height: 18px;
	border-radius: 4px;
	
}

#contact_form .input_item dl dt span.req {	/* 必須 */
	margin: 10px;
	background: #FF1515;
}

#contact_form .input_item dl dt span.any {	/* 任意 */
	margin: 10px;
	background: #cccccc;
}



#contact_form .input_item dl dd {	/* 入力スペース */
    float: right;
    width: 350px;
    font-size: 1em;
    line-height:30px;
    height:auto;
	padding-right: 10px;
	padding-left: 10px;
    position: relative;
}
@media screen and (max-width: 680px) {
	#contact_form .input_item dl dd { width:100%; font-size: 16px;}
}

#contact_form .input_item dl dd li {
    display: inline-block;
    margin: 0 15px 0 0;
    line-height: 30px;
    height: 30px;
    padding: 3px 0;
}

#contact_form .input_item dl dd p.mail_caution {
    font-size: 0.8rem;
    line-height: 19px;
    color: #666666;
    margin: 5px 0 0 0;
}

#contact_form .input_item dl dd input[type="text"],
#contact_form .input_item dl dd input[type="number"],
#contact_form .input_item dl dd input[type="email"],
#contact_form .input_item dl dd input[type="tel"]{
    width: 100%;
    font-size: 1em;
    height:30px;
    padding: 3px 0 3px 0;
    margin:0;
}

#contact_form .input_item .transmission input[type="submit"] {	/* ボタン */
	border: 0px double #FFFFFF;
	background: #ff0000;
	font-size: 1.1em;
	text-shadow: none;
	color: #ffffff;
	width: 150px;
	padding: 20px 20px;
	margin: 0;
	display: block;
	opacity: 1.0;
	-webkit-transition: 0.5s;
	-moz-transition: 0.5s;
	-o-transition: 0.5s;
	-ms-transition: 0.5s;
	transition: 0.5s;
}

#contact_form .input_item .transmission input[type="submit"]:hover {
    background: #ff0000;
	opacity:0.5;
	-webkit-transition: 0.5s;
    -moz-transition: 0.5s;
    -o-transition: 0.5s;
    -ms-transition: 0.5s;
    transition: 0.5s;
}

.btn_back {
	border: 0px double #FFFFFF;
	background: #555555;
	font-size: 1.1em;
	text-shadow: none;
	color: #ffffff;
	width: 150px;
	padding: 20px 20px;
	margin: 0;
	display: block;
	opacity: 1.0;
	-webkit-transition: 0.5s;
	-moz-transition: 0.5s;
	-o-transition: 0.5s;
	-ms-transition: 0.5s;
	transition: 0.5s;
}
.btn_back:hover {
    background: #555555;
	opacity:0.5;
	-webkit-transition: 0.5s;
    -moz-transition: 0.5s;
    -o-transition: 0.5s;
    -ms-transition: 0.5s;
    transition: 0.5s;
}

.btn-twin{
	box-sizing: border-box;
	display: flex;
	justify-content: center;
	align-content: space-between;

}
.btn-left{
	padding: 10px;
}
.btn-right{
	padding: 10px;
}
@media screen and (max-width: 480px) {
	.btn-twin{ max-width: 100%;}
	}

#contact_form .input_item dl dd input[type="text"].inp_error,
#contact_form .input_item dl dd input[type="number"].inp_error,
#contact_form .input_item dl dd input[type="tel"].inp_error,
#contact_form .input_item dl dd textarea.inp_error {
    border: 1px solid #F88A8A;
    background: #F4D4D4;
}

#contact_form .input_item dl dd textarea {	/* == テキストエリア == */
    width: 340px;
    padding: 10px 3px 10px 10px;
}
@media screen and (max-width: 680px) {
	#contact_form .input_item dl dd textarea { width:100%; font-size: 16px; margin-top: 2px;}
}

#send_status{
	padding: 5px 0 25px;
    text-align: center;
}
#send_status p{
	width: 480px;
	margin: 0 auto;
    padding: 0 15px;
    line-height: 50px;
    font-size: 1em;
    border: 1px solid #3c763d;
    border-radius: 4px;
    background-color: #dff0d8;
    color: #3c763d;
}

span.error_m {
	font-size: 1em;
	font-weight: normal;
	color: #FF4040;
	display: block;
	margin: 0;
}




/* == チェックボックスデザイン == */
.checkbox-label {
	position: relative;
	display: inline-flex;
	align-items: center;
	cursor: pointer;
	margin-bottom: 5px;
}

.checkbox-label input[type="checkbox"] {
	opacity: 0;
	position: absolute;
	left: 0;
	top: 0;
	width: 20px;
	height: 20px;
	cursor: pointer;
}

.custom-checkbox {
	width: 16px;
	height: 16px;
	border: 1.5px solid #333;
	border-radius: 3px;
	display: inline-block;
	margin-right: 8px;
	box-sizing: border-box;
}
#privacyCheck.check-disabled input[type="checkbox"] + .custom-checkbox {
  background-color: #ddd;
  border-color: #ccc;
}

.checkbox-label input[type="checkbox"]:checked + .custom-checkbox {
	background-color: #333;
	position: relative;
}

.checkbox-label input[type="checkbox"]:checked + .custom-checkbox::after {
	content: '';
	position: absolute;
	left: 4px;
	top: 0px;
	width: 4px;
	height: 8px;
	border: solid white;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}


/* == 入力確認タイトル == */
.form-wrapper h2{
	text-align: center;
	font-size: 1.2rem;
	font-weight: 400;
	color: #333333;
	
	
	border: solid 1px #333333;
	width: 40%;
	margin: 0 auto;
	padding: 10px 0;
	margin-bottom: 30px;
}

.cv-wrapper{
	margin: 0 auto;
	width: 85%;
	padding-top: 30px;
	padding-bottom: 50px;
	font-size: 1rem;
	color: #333333;
	font-weight: 400;
}
.cv-lead{
	line-height: 1.3;
	border: 0px solid #333333;
	text-align: center;
}
.cv-under{
	height: 50vh;
}

@media screen and (max-width: 600px) {
	.cv-wrapper{ width: 100%; font-size: 1.1rem;}

}

.privacy-policy {
	margin: 0 auto;
	color: #333333;
	font-size: 0.8rem;
	border: 1px solid #ccc;
	border-radius: 4px;
	width: 90%;
	max-width: 700px;
	height: 200px;
	overflow-y: scroll;
	padding: 6px 12px;
}
.privacy-policy ul {
	margin-left: 20px;
}
.privacy-policy hr {
	border: none;
	height: 1px;
	background-color: #333333;
	margin: 10px 0;
}
.check-disabled {
  color: #afafaf;
}
@media screen and (max-width: 480px) {
	.privacy-policy {width: 95%;}
	}






/* ======================== 共通プルダウンスタイル ======================== */
.select-style {
  position: relative;
  width: 100%; /* 親に合わせる */
}

.select-style select {
  width: 100%;
  padding: 8px 30px 8px 10px;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 8px;
  background-color: #fff;
  appearance: none;
  cursor: pointer;
  transition: border 0.3s, box-shadow 0.3s;
}

.select-style select:focus {
  border-color: #007BFF;
  outline: none;
  box-shadow: 0 0 5px rgba(0,123,255,0.3);
}

/* 矢印 */
.select-style::after {
  content: "▼";
  font-size: 0.7rem;
  color: #555;
  position: absolute;
  top: 50%;
  right: 10px;
  pointer-events: none;
  transform: translateY(-50%);
}

/* ======================== 生年月日専用横並び ======================== */
.birth-selects {
  display: flex;
  align-items: center;
  gap: 8px;
}

.birth-selects span {
  font-size: 1rem;
  margin-right: 5px;
}

/* 年/月/日の幅を調整 */
.birth-selects .select-style {
  width: 100px; /* 生年月日用は狭め */
}


/* *************************************************アップロード******************************** */
/* ******************************** ファイルアップロード共通（既存スタイルと統一） */
.resume-upload-wrapper,
.career-upload-wrapper {
  margin: 10px 0;
  max-width: 400px; /* 幅調整 */
}

.resume-upload-wrapper input[type="file"],
.career-upload-wrapper input[type="file"] {
  width: 100%;
  padding: 8px 10px;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 8px;
  cursor: pointer;
  transition: border 0.3s;
}

.resume-upload-wrapper input[type="file"]:focus,
.career-upload-wrapper input[type="file"]:focus {
  border-color: #007BFF;
  outline: none;
}

.resume-upload-wrapper .resume-upload-note,
.career-upload-wrapper .career-upload-note {
  font-size: 0.85rem;
  color: #555;
  margin-top: 4px;
}

/* エラー表示 */
.resume-upload-wrapper .error_m,
.career-upload-wrapper .error_m {
  color: #FF4040;
  font-size: 0.9rem;
  margin-top: 3px;
}

/* 横並びにする場合 */
.upload-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}
/* *************************************************アップロード******************************** */


