.member-login { width:100%; min-height:calc(100dvh - 160px); padding:96px 20px 110px; display:flex; justify-content:center; align-items:flex-start; background:#f4f7fb; }
.member-login .login-visual { position:relative; display:flex; flex-direction:column; justify-content:space-between; min-height:520px; padding:40px; border-radius:8px 0 0 8px; background:#18212f; color:#fff; overflow:hidden; }
.member-login .login-visual:before { content:""; position:absolute; inset:0; background:linear-gradient(145deg, rgba(42,88,154,.88), rgba(24,33,47,.98)); }
.member-login .login-visual > * { position:relative; z-index:1; }
.member-login .login-logo { display:inline-flex; align-items:center; gap:12px; color:#fff; text-decoration:none; }
.member-login .login-logo img { width:48px; height:48px; object-fit:contain; filter:drop-shadow(0 10px 18px rgba(0,0,0,.18)); }
.member-login .login-logo span { display:grid; gap:2px; }
.member-login .login-logo strong { font-size:20px; line-height:1; }
.member-login .login-logo em { font-size:12px; font-style:normal; color:rgba(255,255,255,.72); text-align:right; }
.member-login .login-visual p { max-width:270px; margin:0; font-size:24px; font-weight:700; line-height:1.35; word-break:keep-all; }
.member-login .login-form { display:flex; width:min(100%, 440px); flex-direction:column; justify-content:center; min-height:520px; padding:48px 44px; border:1px solid #e7ebf0; border-radius:8px; background:#fff; box-shadow:0 18px 45px rgba(24,33,47,.08); }
.member-login .login-title { margin-bottom:34px; }
.member-login .login-title h2 { margin:0; font-size:28px; line-height:1.2; color:#111827; }
.member-login .login-title p { margin:10px 0 0; font-size:14px; color:#6b7280; }
.member-login .login-field { display:block; width:100%; height:auto; margin-top:18px; padding:0; border:0; background:transparent; }
.member-login .login-field > span { display:block; margin-bottom:8px; font-size:13px; font-weight:700; color:#374151; }
.member-login .login-field input { width:100%; height:48px; border:1px solid #d8dee8; border-radius:6px; padding:0 14px; background:#fff; color:#111827; font-size:15px; transition:border-color .15s ease, box-shadow .15s ease; }
.member-login .login-field input:focus { border-color:#315f9f; box-shadow:0 0 0 3px rgba(49,95,159,.13); outline:none; }
.member-login .login-option { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:18px; font-size:13px; }
.member-login .login-option .jw-checkbox { min-width:0; --jw-checkbox-border-color:#315f9f; }
.member-login .login-option .jw-checkbox span { color:#4b5563; }
.member-login .login-option a { flex:none; color:#315f9f; font-weight:700; text-decoration:none; }
.member-login .login-option a:hover { text-decoration:underline; }
.member-login .login-submit { width:100%; height:48px; margin-top:34px; border-radius:6px; background:#111827; color:#fff; font-size:15px; font-weight:700; }
.member-login .login-submit:hover { background:#315f9f; box-shadow:0 12px 24px rgba(49,95,159,.18); }
@media (max-width:900px) {
	.member-login { min-height:auto; padding:70px 16px 60px; }
	.member-login .login-visual { min-height:180px; padding:28px; border-radius:8px 8px 0 0; }
	.member-login .login-visual p { margin-top:52px; font-size:20px; }
	.member-login .login-form { min-height:auto; padding:36px 26px; border-radius:8px; }
}
@media (max-width:420px) {
	.member-login { padding:80px 12px 40px; }
	.member-login .login-option { align-items:flex-start; flex-direction:column; }
}

/* 회원가입 */
form[name="join-step1"], #join-form, #join-complete { width:min(100%, 760px); margin:0 auto; color:#172033; }
form[name="join-step1"] { padding:88px 0 110px; }
form[name="join-step1"] > h2, #join-form > h2, #join-complete > h2 { margin:0; color:#111827; font-size:36px; font-weight:800; letter-spacing:-.06em; text-align:center; }
form[name="join-step1"] > h2::after, #join-form > h2::after, #join-complete > h2::after { display:block; width:36px; height:3px; margin:16px auto 0; background:#ed3028; content:""; }
.terms-container { margin-top:24px; overflow:hidden; border:1px solid #dfe4eb; border-radius:10px; background:#fff; box-shadow:0 10px 28px rgba(22,33,51,.04); }
.terms-container.jw-mgt40 { margin-top:42px; }
.terms-container h3 { margin:0; padding:20px 24px; border-bottom:1px solid #e8ebef; color:#172033; font-size:17px; font-weight:700; letter-spacing:-.04em; }
.terms-content { height:210px; overflow:auto; padding:22px 24px; color:#687386; font-size:13px; line-height:1.8; }
.terms-content h1, .terms-content h2, .terms-content h3, .terms-content h4, .terms-content strong { color:#303b4d; font-size:inherit; }
.terms-content p { margin:0 0 10px; }
.terms-footer { display:flex; min-height:60px; align-items:center; padding:0 24px; border-top:1px solid #e8ebef; background:#fafbfc; }
.terms-footer .jw-checkbox { width:100%; }
.terms-footer .jw-checkbox .text { margin-left:9px; color:#3f4b5d; font-size:13px; }
.terms-footer .jw-checkbox i { width:19px; height:19px; border-radius:4px; }
form[name="join-step1"] .jw-center { display:flex; justify-content:center; margin-top:32px; }
form[name="join-step1"] .jw-center .jw-button { width:180px; height:50px; border:1px solid #ed3028; border-radius:6px; background:#ed3028; color:#fff; font-weight:700; }

#join-form { padding:88px 0 110px; }
#join-form > p { margin:12px 0 38px; color:#748096; font-size:14px; text-align:center; }
#join-form-box { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:22px 20px; padding:30px 28px; border:1px solid #dfe4eb; border-radius:10px; background:#fff; box-shadow:0 10px 28px rgba(22,33,51,.04); }
#join-form-box > div:not(.full) { min-width:0; }
#join-form-box > div:not(.full) > label { display:block; margin-bottom:8px; color:#354052; font-size:13px; font-weight:700; }
#join-form-box > div:not(.full) > input { width:100%; height:48px; border:1px solid #d5dce6; border-radius:6px; padding:0 13px; background:#fff; color:#172033; font-size:14px; outline:0; transition:border-color .16s ease, box-shadow .16s ease; }
#join-form-box > div:not(.full) > input::placeholder { color:#a3adbc; }
#join-form-box > div:not(.full) > input:focus { border-color:#ed3028; box-shadow:0 0 0 3px rgba(237,48,40,.12); }
#join-form-box .full { grid-column:1 / -1; }
#join-form-box .full .jw-checkbox { display:flex; align-items:center; min-height:24px; }
#join-form-box .full .jw-checkbox .text { margin:0 0 0 9px; color:#536075; font-size:13px; }
#join-form-box .full.buttons { display:flex; justify-content:center; gap:10px; margin-top:8px; }
#join-form-box .full.buttons .jw-button { width:140px; height:48px; border-radius:6px; font-weight:700; }
#join-form-box .full.buttons .typeA { border:1px solid #d5dce6; background:#fff; color:#536075; }
#join-form-box .full.buttons .typeD { border:1px solid #ed3028; background:#ed3028; color:#fff; }

#join-complete { padding:140px 0 180px; text-align:center; }
#join-complete > p { margin:16px 0 0; color:#748096; font-size:15px; }
#join-complete .buttons { display:flex; justify-content:center; gap:10px; margin-top:34px; }
#join-complete .buttons .jw-button { display:inline-flex; width:140px; height:48px; align-items:center; justify-content:center; border-radius:6px; font-weight:700; text-decoration:none; }
#join-complete .buttons .typeD { background:#ed3028; color:#fff; }
#join-complete .buttons .typeA { border:1px solid #d5dce6; background:#fff; color:#536075; }

@media (max-width:640px) {
	form[name="join-step1"], #join-form, #join-complete { width:min(calc(100% - 32px), 760px); }
	form[name="join-step1"], #join-form { padding:56px 0 72px; }
	form[name="join-step1"] > h2, #join-form > h2, #join-complete > h2 { font-size:30px; }
	.terms-container.jw-mgt40 { margin-top:30px; }
	.terms-container h3 { padding:17px 18px; font-size:15px; }
	.terms-content { height:180px; padding:17px 18px; font-size:12px; }
	.terms-footer { min-height:54px; padding:0 18px; }
	#join-form > p { margin-bottom:26px; font-size:13px; }
	#join-form-box { grid-template-columns:1fr; gap:19px; padding:22px 18px; }
	#join-form-box .full { grid-column:auto; }
	#join-form-box .full.buttons { flex-direction:column-reverse; }
	#join-form-box .full.buttons .jw-button { width:100%; }
	#join-complete { padding:100px 0 130px; }
	#join-complete .buttons { flex-direction:column; }
	#join-complete .buttons .jw-button { width:100%; }
}
