/*****************************************************

	register common  공통사항

*****************************************************/

/* ---- 숨김 텍스트 ---- */
.register .regi_form legend,
.register .regi_from_cont .skip { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* ---- form controls ---- */
.register input[type=text],
.register input[type=tel],
.register input[type=email],
.register input[type=password],
.register select { width:100%; height:5rem; padding:0 2rem; font-size:.9em; color:var(--c-ink); background:#f9fafb; border:1px solid var(--c-line); border-radius:var(--radius-sm); transition:border-color .15s, box-shadow .15s, background .15s; appearance:none; }
.register input.max_it,
.register input.max_select,
.register select.max_select { width:100%; }
.register select { padding-right:2.5rem; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='6' viewBox='0 0 12 8'%3E%3Cpath fill='%23475569' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 2rem center; }
.register input:focus,
.register select:focus { outline:0; background:#fff; background-position:right 1rem center; border-color:var(--c-accent2); box-shadow:0 0 0 .1875rem rgba(71,85,105,.16); }
.register input::placeholder { color:#9ca3af; }
.register input:disabled,
.register input[readonly] { color:#000; background:#f3f4f6; cursor:inherit; }
/* border-radius만 .5rem 사용 중 — 다른 입력요소와 통일하려면 var(--radius-sm) */
.register input[type=file] { width:100%; height:auto; padding:1rem 1.4rem; font-size:.9em; color:#222; background:#fff; border:1px dashed #ddd; border-radius:.5rem; }

/* ---- 버튼 ---- */
.register .btn_submit .btn { display:flex; align-items:center; justify-content:center; gap:1rem; min-width:20rem; min-height:7rem; padding:1rem 2rem; font-size:1em; font-weight:700; border:0; border-radius:1rem; cursor:pointer; transition:transform .12s, box-shadow .15s, filter .15s; }
.register .btn_submit .btn.ty01,
.register .btn_submit .btn.ty02 { color:#fff; background:linear-gradient(135deg, var(--c-accent), var(--c-accent2)); box-shadow:0 .625rem 1.25rem rgba(71,85,105,.3); }
.register .btn_submit .btn.ty01 { width:100%; }
.register .btn_submit .btn.ty01:hover { background:var(--c-accent); }
.register .btn_submit .btn.ty02:hover { filter:brightness(1.08); }
.register .btn_submit .btn.ty03 { color:var(--c-accent); background:#fff; border:1px solid var(--c-accent2); box-shadow:0 .625rem 1rem rgba(71,85,50,.1); }
.register .btn_submit .btn.ty03:hover { color:#fff; background:linear-gradient(135deg, var(--c-accent), var(--c-accent2)); }
.register .btn_submit .btn.disabled,
.register .btn_submit .btn.disabled:hover { color:var(--c-accent2); background:var(--c-tint-line); box-shadow:none; cursor:not-allowed; }
.register .btn_submit .arrow { transition:transform .15s ease; }
.register .btn_submit:hover .arrow { transform:translateX(.3rem); }

/* ---- 박스 ---- */
.regi_box { padding:3rem; border:1px solid var(--c-line); border-radius:1rem; }

@media (max-width:600px) {
	.register input[type=text],
	.register input[type=tel],
	.register input[type=email],
	.register input[type=password],
	.register select,
	.register input[type=file] { height:4.5rem; font-size:1em; }

	.register .btn_submit .btn { min-width:auto; min-height:5.5rem; font-size:1.12em; }

	.regi_box { padding:2rem; }
}


/*****************************************************

	login  로그인

*****************************************************/

.login { max-width:60rem; margin:10rem auto 0; padding:12rem 0 20rem; }
.login .login_kicker { font-size:.85em; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--c-accent2); }
.login .login_title { font-size:2.5em; font-weight:700; line-height:1.25; }
.login .login_field { position:relative; margin-bottom:2rem; }
.login .login_field label.f_label { display:block; margin-bottom:.5rem; font-size:.75em; font-weight:700; text-transform:uppercase; color:var(--c-accent2); }
.login .login_opts { display:flex; align-items:center; justify-content:space-between; margin-bottom:3rem; }
.login .login_opts p { display:flex; gap:2rem; }
.login .login_opts label { font-size:.85em; color:var(--c-accent2); }
.login .login_opts a { font-size:.85em; text-decoration:underline; text-underline-offset:.5rem; color:var(--c-accent2); }
.login .login_check { display:flex; align-items:center; gap:1rem; color:var(--c-accent2); cursor:pointer; user-select:none; }
.login .login_signup { margin-top:6rem; padding-top:3rem; font-size:.8em; line-height:1.7; color:var(--c-accent2); border-top:1px solid var(--c-line); }
.login .login_signup a { display:block; margin-top:.5rem; font-weight:700; text-decoration:underline; text-underline-offset:.5rem; color:var(--c-accent); }

@media (max-width:768px) {
	.login { padding:6rem 2rem 10rem !important; }
	.login .login_field { margin-bottom:1.5rem; }
	.login .login_field label.f_label { font-size:.9em; }
	.login .login_opts { margin-bottom:2rem; }
	.login .login_signup { margin-top:4rem; padding-top:2rem; font-size:1em; }
}

@media (max-width:600px) {
	.login { padding:0 5% 7rem !important; }
	.login .login_title { font-size:2em; }
	.login .login_opts { flex-direction:column; align-items:flex-start; gap:1rem; }
	.login .login_opts p { gap:1.25rem; }
	.login .login_opts a { font-size:.9em; }
}


/*****************************************************

	password_lost  회원정보찾기

*****************************************************/

.find { max-width:60rem; margin:10rem auto 0; padding:12rem 0 20rem; }
.find .mf_title { margin:0 0 2rem; font-size:2em; font-weight:700; letter-spacing:-.02em; }
.find .mf_desc { margin:0 0 4rem; font-size:.85em; line-height:1.7; color:var(--c-accent2); }
.find .mf_desc2 { font-size:.8em; line-height:1.5; color:var(--c-accent2); } /* 기존 13px → em 환산 */
.find .mf_field label.f_label { display:block; margin-bottom:.5rem; font-size:.75em; font-weight:700; text-transform:uppercase; color:var(--c-accent2); }
.find .mf_captcha { margin:0 0 3rem; }
.find .mf_captcha img { max-width:100%; }
.find .mf_new_pass { padding:2rem; text-align:center; background:var(--c-tint); border:1px solid var(--c-tint-line); border-radius:.5rem; }
.find .mf_new_pass span { display:block; margin-bottom:.5rem; font-size:.8em; color:var(--c-accent2); }
.find .mf_new_pass strong { font-size:1.25em; letter-spacing:1px; color:var(--c-req); user-select:all; }

@media (max-width:768px) {
	.find { padding:5rem 2rem 10rem !important; }
	.find .mf_desc { font-size:1em; }
	.find .mf_field label.f_label { font-size:.9em; }
}

@media (max-width:600px) {
	.find { padding:0 5% 7rem !important; }
	.find .mf_title { font-size:1.5em; }
}


/*****************************************************

	register  회원가입

*****************************************************/

/* ===== 진행단계 (STEP) ===== */
.register .regi_process ul { display:flex; align-items:flex-start; justify-content:space-between; max-width:100rem; margin:0 auto; }
.register .regi_process li { position:relative; flex:1; text-align:center; }
.register .regi_process li:not(:first-child)::before { content:''; position:absolute; left:-50%; top:1.5rem; width:100%; height:1px; background:var(--c-line); }
.register .regi_process .step_num { display:inline-flex; align-items:center; justify-content:center; position:relative; z-index:1; height:3rem; margin-bottom:.8rem; padding:0 3rem; font-size:.85em; font-weight:600; color:var(--c-sub); background:#fff; }
.register .regi_process .step_tt { display:block; font-size:1em; font-weight:500; color:var(--c-sub); }
.register .regi_process li.on .step_num { color:var(--main-color1); }
.register .regi_process li.on .step_tt { font-weight:800; color:var(--main-color1); }

@media (max-width:600px) {
	.register .regi_process .step_num { padding:0 2rem; }
}


/* ===== 약관동의 및 본인인증 (STEP1) ===== */
.register .regi_agree { max-width:100rem; margin:0 auto; }
.register .regi_agree .agree_title { margin-bottom:3rem; }
.register .regi_agree .agree_title p { margin:0 0 1rem; font-size:1.5em; font-weight:700; }
.register .regi_agree .agree_title span { display:block; font-size:.85em; color:var(--c-accent2); }

/* 전체동의 */
.register .regi_agree .agree_all { padding:2rem 0; border-bottom:1px solid #ddd; }
.register .regi_agree .agree_all label { font-size:1em; font-weight:600; cursor:pointer; }

/* 개별 항목 */
.register .regi_agree .agree_box { padding:1.5rem 0; border-bottom:1px solid var(--c-line); }
.register .regi_agree .agree_box:last-of-type { border-bottom:none; }
.register .regi_agree .agree_box_head { display:flex; align-items:center; justify-content:space-between; }
.register .regi_agree .agree_box_head label { font-size:.9em; color:var(--c-accent); cursor:pointer; }
.register .regi_agree .badge_req { margin-right:.5rem; font-weight:600; color:var(--c-req); }
.register .regi_agree .agree_toggle { padding:0; font-size:.85em; white-space:nowrap; color:var(--c-accent2); cursor:pointer; }
.register .regi_agree .agree_toggle i { transition:transform .2s ease; }
.register .regi_agree .agree_toggle.open i { transform:rotate(360deg); } /* 360deg는 제자리 — 180deg 의도인지 확인 */
.register .regi_agree .agree_content { display:none; max-height:20rem; margin-top:1rem; padding:2rem; font-size:.85em; line-height:1.6; color:var(--c-accent); background:var(--c-tint); border-radius:.5rem; overflow-y:auto !important; }

@media (max-width:768px) {
	.register .regi_agree { padding:3rem 2.5rem 2.5rem; }
	.register .regi_agree .agree_title { margin-bottom:1.5rem; }
	.register .regi_agree .agree_content { font-size:.95em; }
}


/* ===== 정보입력 (STEP2) ===== */
.register .regi_form { max-width:120rem; margin:0 auto; }

/* 좌측 내비 + 우측 콘텐츠 레이아웃 */
.register .regi_form .form_layout { display:flex; align-items:flex-start; gap:5rem; }
.register .regi_form .step_nav { position:sticky; top:18rem; width:25rem; flex-shrink:0; }
.register .regi_form .step_nav a { display:block; padding:1.5rem 0; font-size:1.125em; color:#999; transition:color .15s ease, border-color .15s ease; }
.register .regi_form .step_nav a:hover { color:#555; }
.register .regi_form .step_nav a.on { font-weight:700; color:#222; }
.register .regi_form .form_content { flex:1; min-width:0; }

/* 섹션 */
.register .form_section { position:relative; margin-bottom:6rem; scroll-margin-top:13rem; }
.register .form_section:last-of-type { margin-bottom:0; }

/* 섹션 타이틀 */
.register .regi_from_tit { display:flex; align-items:center; gap:1rem; margin-bottom:1rem; }
.register .regi_from_tit h4 { margin:0; font-size:1.5em; font-weight:600; color:#222; }
.register .regi_from_tit .req { padding:.2rem 1rem; font-size:.7em; font-weight:600; color:var(--c-req); border:2px solid var(--c-req); border-radius:5rem; }

/* 필드 리스트 */
.register .regi_from_cont > ul { display:grid; grid-template-columns:repeat(2, 1fr); gap:2rem 3%; }
.register .regi_from_cont > ul > li { grid-column:span 2; }
.register .regi_from_cont label { display:flex; align-items:center; gap:1rem; margin-bottom:.8rem; font-size:.9em; font-weight:500; color:var(--c-accent); }
.register .regi_from_cont .req { padding:.2rem .5rem; font-size:1.1rem; line-height:1; color:var(--c-req); border:1px solid var(--c-req); border-radius:5rem; }

/* 입력요소 */
.column_half { display:flex; gap:1rem; width:100%; } /* .register 밖 전역 선택자 — 필요시 스코프 확인 */
.column_half span { width:100%; }
.register .inp-area-form { display:flex; flex-wrap:wrap; gap:1rem; }
.register .inp-area-form p { width:100%; }
.register .inp-area-form.degree-form,
.register .inp-area-form.career-form { padding:2rem; background:#fff; border:1px dashed #ccc; border-radius:1rem; }
.register .inp-area-form.degree-form ul,
.register .inp-area-form.career-form ul { display:grid; grid-template-columns:repeat(1, 1fr); width:100%; gap:2rem 3%; }
.register .inp-area-form.degree-form li,
.register .inp-area-form.career-form li { width:100%; }

/* 라디오/체크박스 */
.register .radio-form { display:flex; gap:2rem; }
.register .radio-form p { width:auto; }
.register .depart_info { display:flex; flex-wrap:wrap; gap:.5rem 2.5rem; }

/* 안내문구 */
.register .regi_txt { display:block; font-size:.8em; line-height:1.5; font-style:normal; color:#999; }

/* 우편번호 검색 */
.register .inp-area-zip { display:flex; align-items:center; gap:1rem; }
.register .inp-area-zip .bt_basic { flex-shrink:0; height:5rem; padding:0 2rem; font-size:.9em; color:#333; background:#fff; border:1px solid #ddd; border-radius:var(--radius-sm); cursor:pointer; }

/* 연구주제/경력 추가·삭제 */
#mb_research_wrap,
#mb_career_wrap { display:flex; flex-direction:column; gap:1rem; }
.register .mb_research_item,
.register .career_cnt { display:inline-flex; align-items:center; gap:1rem; width:100%; }
/* ↓ .career_cnt가 위 규칙과 중복 지정됨 — .career_cnt button 오타인지 확인 */
.register .mb_research_item button,
.register .career_cnt { height:5rem; padding:0 2rem; font-size:.9em; color:#333; background:#fff; border:1px solid #ddd; border-radius:var(--radius-sm); cursor:pointer; }
.register .career_btn { height:3.5rem; padding:0 1.5rem; font-size:.8em; background:#fff; border:1px solid #eee; border-radius:var(--radius-sm); cursor:pointer; }
.register .career_del_btn { color:#d8452a; }
.register .career_add_btn { color:#2c48e4; }

/* 하단 버튼 */
.register .max_btns { display:flex; flex-direction:row-reverse; flex-wrap:nowrap; gap:1rem; }

@media (max-width:1024px) {
	.register .regi_form .form_layout { gap:0; }
	.register .regi_form .step_nav a { padding:1rem 0; }
}

/* 모바일: 좌측 내비 위로 이동 + 가로 스크롤 탭 */
@media (max-width:768px) {
	.register .regi_form .form_layout { flex-direction:column; }

	.register .regi_form .step_nav {
		position:sticky; top:0; z-index:5;
		width:0;          /* 콘텐츠 크기를 기준으로 한 계산을 강제로 0으로 리셋 */
		min-width:100%;   /* 그 다음 부모 너비만큼 강제로 채움 */
		padding:.8rem 0; background:#fff; border-bottom:1px solid #eee; overflow-x:hidden;
	}
	.register .regi_form .step_nav ul { display:flex; gap:.4rem; overflow-x:auto; border-left:none; scroll-padding-left:1.5rem; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch; scrollbar-width:none; }
	.register .regi_form .step_nav ul::-webkit-scrollbar { display:none; }
	.register .regi_form .step_nav li { flex-shrink:0; scroll-snap-align:center; }
	.register .regi_form .step_nav a { padding:.8rem 1.2rem; white-space:nowrap; border-left:none; border-bottom:2px solid transparent; }
	.register .regi_form .step_nav a.on { border-left:none; border-bottom:2px solid #222; }

	.register .regi_form .form_content { width:100%; }
	.register .form_section { margin-bottom:4rem; }
	.register .form_section:first-child { margin-top:4rem; }
}


/* ===== 캡챠 ===== */
.captcha { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; margin:2rem 0; padding:3rem; background:#f4f6f8; border:none; border-radius:1rem; }
.captcha legend { width:100%; margin-bottom:.5rem; padding:0; font-size:1em; font-weight:700; color:#222; }
.captcha #captcha_img { height:4.5rem; border-radius:.5rem; box-shadow:0 .125rem .375rem rgba(0,0,0,.08); }
.captcha #captcha_key { width:15rem; height:4.5rem; padding:0 1rem; font-size:1em; font-weight:600; text-align:center; letter-spacing:.15em; background:#fff; border:1px solid #ddd; border-radius:.5rem; box-sizing:border-box; transition:border-color .2s; }
.captcha #captcha_key:focus { outline:none; border-color:#4a90d9; }
.captcha button { height:4.5rem; padding:0 2rem; font-size:.85em; font-weight:500; color:#fff; background:#333; border:none; border-radius:.5rem; cursor:pointer; transition:background .2s; }
.captcha button:hover { background:#555; }
.captcha #captcha_info { width:100%; margin-top:.25rem; font-size:.85em; color:#888; }

@media (max-width:768px) {
	.captcha { padding:1.25rem 1.5rem; }
}

@media (max-width:600px) {
	.captcha { flex-direction:column; align-items:stretch; }
	.captcha #captcha_img { width:100%; max-width:15rem; height:auto; margin:0 auto; }
	.captcha #captcha_key { width:100%; }
	.captcha button { width:100%; }
}


/* ===== 가입완료 (STEP3) ===== */
.register .regi_result { max-width:100rem; margin:0 auto; }
.register .regi_result .result_title { margin-bottom:3rem; }
.register .regi_result .result_title p { margin:0 0 1rem; font-size:1.5em; font-weight:700; }
.register .regi_result .result_title span { display:block; font-size:.85em; color:var(--c-accent2); }
.register .result_txt { font-size:.9em; line-height:1.6; color:var(--c-accent); }
.register .result_txt2 { font-size:.85em; line-height:1.6; color:var(--c-accent2); }
.register #result_email { display:grid; grid-template-columns:12rem 1fr; }
.register #result_email > * { padding:1rem 0; font-size:.9em; border-bottom:1px solid #000; }


/* ===== 회원비밀번호 확인 ===== */
.register .mem_pass { max-width:100rem; margin:0 auto; }
.register .mem_pass .pass_text { font-size:.9em; line-height:1.6; color:var(--c-accent); }
.register .mem_pass .pass_text strong { display:block; }