.join-wrap { border-radius: 30px; background: #fff; box-shadow: 0 3px 14px 3px rgba(158,158,158,0.25); padding: 80px; margin-bottom: 200px; }
.join-agree-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid #c3c3c3; }
.join-agree-head .join-tit { font-size: 32px; font-weight: 700; }
.required { color: #ff4d4f; margin-left: 5px; }
.agree-btn { display: flex; align-items: center; gap: 8px; background: none; border: none; padding: 0; cursor: pointer; font-size: 17px; font-family: inherit; color: #222; text-align: left; line-height: 1.5; width: 100%; }
.agree-btn::before { font-family: 'bootstrap-icons'; content: '\F26B'; font-size: 28px; color: #afb4bb; flex-shrink: 0; transition: color 0.15s ease-in-out; line-height: 1; }
.agree-btn.is-checked::before { content: '\F26A'; color: #174da8; }
.agree-btn-text { font-size: 22px; font-weight: 600; padding-left: 5px; color: #181818; flex: 1; min-width: 0; word-break: keep-all; overflow-wrap: break-word; white-space: normal; }
.agree-all-wrap { margin-bottom: 24px; }
.agree-list { display: flex; flex-direction: column; gap: 20px; }
.agree-item { border: 1px solid #dfe3ea; border-radius: 14px; overflow: hidden; }
.agree-item-head { padding: 24px 28px; border-bottom: 1px solid #eef1f5; }
.agree-box { padding: 24px 28px; background: #fafbfd; color: #555; font-size: 15px; line-height: 1.8; max-height: 180px; overflow-y: auto; }
.agree-box::-webkit-scrollbar { width: 6px; }
.agree-box::-webkit-scrollbar-thumb { background: #b8bfcb; border-radius: 999px; }
.join-btn-wrap { display: flex; justify-content: center; gap: 20px; margin-top: 58px; }
.join-btn-wrap button, .join-btn-wrap a { width: 220px; height: 70px; border: none; border-radius: 999px; font-size: 24px; font-weight: 700; transition: all .2s ease; }
.btn-gray-light, .btn-gray-dark { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; cursor: pointer; border: none; font-family: inherit; }
.btn-gray-light { background: #d9d9d9; color: #333; }
.btn-gray-light:hover { background: #c8c8c8; color: #333; }
.btn-gray-dark { background: #4b4f56; color: #fff; }
.btn-gray-dark:hover { background: #2f3338; color: #fff; }
.join-info-head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 24px; margin-bottom: 40px; border-bottom: 1px solid #ddd; }
.join-info-head .join-tit { font-size: 30px; font-weight: 700; }
.join-agree-head p:not(.join-tit), .join-info-head p:not(.join-tit) { font-size: 20px; color: #ff4d4f; }
.join-form-row { display: flex; align-items: flex-start; flex-wrap: wrap; margin-bottom: 24px; }
.join-form-row > label { width: 220px; padding-top: 14px; font-size: 22px; font-weight: 600; flex-shrink: 0; }
.join-form-input, .join-email-wrap, .join-double-select, .join-double-input { flex: 1; }
.form-control, .form-select { width: 100%; height: 64px; border-radius: 12px; font-size: 18px; padding: 0 20px; box-sizing: border-box; }
.form-control::placeholder { color: #aaa; }
.join-email-wrap { display: flex; align-items: center; gap: 12px; }
.join-email-wrap span { font-size: 20px; font-weight: 500; }
.join-email-wrap .form-control, .join-email-wrap .form-select, .join-double-select .form-select, .join-double-input .form-control { flex: 1; min-width: 0; }
.input-guide { display: flex; align-items: flex-start; gap: 6px; width: 100%; min-width: 0; padding-left: 220px; margin-top: 10px; font-size: 18px; color: #232323; }
.input-guide span { flex: 1; min-width: 0; word-break: keep-all; overflow-wrap: anywhere; }
.input-guide i { color: #ff4d4f; font-size: 18px; flex-shrink: 0; }
.join-radio-wrap { display: flex; align-items: center; gap: 32px; padding-top: 16px; }
.join-radio-label { display: flex; align-items: center; gap: 8px; cursor: pointer; font-size: 20px; color: #333; }
.join-radio-label input[type="radio"] { width: 22px; height: 22px; accent-color: #174da8; cursor: pointer; flex-shrink: 0; top: 1px; }
.join-double-select, .join-double-input { display: flex; gap: 16px; }
.join-completed-img { margin: 0 0 50px 0; text-align: center; }
.join-completed-img img { max-width: 280px; width: 100%; display: block; margin: 0 auto; }
.join-completed-text { text-align: center; }
.join-completed-text .join-tit { font-size: 35px; font-weight: 700; color: #111; margin-bottom: 25px; }
.join-completed-text .desc { font-size: 28px; font-weight: 500; color: #333; line-height: 1.6; margin-bottom: 18px; }
.join-completed-text .user-id { font-size: 25px; font-weight: 500; color: #444; }
.btn-form { height: 64px; padding: 0 22px; font-size: 17px; font-weight: 600; border-radius: 12px; white-space: nowrap; flex-shrink: 0; }
.join-verify-wrap { display: flex; flex-direction: row; align-items: center; flex-wrap: nowrap; gap: 12px; flex: 1; min-width: 0; }
.join-verify-wrap .form-control { flex: 1; min-width: 0; }
.verify-input-wrap { display: flex; flex-direction: row; align-items: center; flex-wrap: nowrap; gap: 12px; }
.verify-input-wrap .form-control { flex: 1; min-width: 0; width: auto; }
.verify-result-msg { width: 100%; padding-left: 220px; margin-top: 6px; font-size: 15px; }

@media (max-width: 1300px) {
  .step-badge { height: 45px; padding: 0px 15px; margin-right: 10px; }
}


@media (max-width: 1024px) {
  .join-wrap { padding: 40px; }
  .join-step { height: 72px; }
  .join-step li.active .step-default, .join-step li.active .step-fill { padding: 0 28px; }
  .step-badge { height: 40px; padding: 0 16px; font-size: 14px; margin-right: 12px; }
  .step-title { font-size: 15px; }
  .step-arrow { width: 44px; height: 44px; right: -22px; }
  .step-arrow span { width: 9px; height: 9px; }
  .join-form-row { flex-direction: column; }
  .join-form-input, .join-email-wrap, .join-double-select, .join-double-input, .join-radio-wrap { width: 100%; }
  .join-form-row > label { width: 100%; margin-bottom: 10px; padding-top: 0; font-size: 20px; }
  .input-guide { display: block; padding-left: 0; max-width: 100%; }
  .input-guide i { margin-right: 4px; }
  .join-info-head .join-tit { font-size: 32px; }
  .join-info-head p:not(.join-tit) { font-size: 16px; }
  .form-control, .form-select { height: 54px; font-size: 16px; width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; }
  form, .join-form-row, .join-form-input, .join-email-wrap, .join-double-select, .join-double-input { max-width: 100%; min-width: 0; }
  .join-completed-text .join-tit { font-size: 42px; }
  .join-completed-text .desc { font-size: 24px; }
  .join-completed-text .user-id { font-size: 22px; }
  .verify-result-msg { padding-left: 0; }
  .join-verify-wrap { width: 100%; flex-direction: row; flex-wrap: nowrap; }
}

@media (max-width: 768px) {
  .join-wrap { padding: 20px; }
  .join-agree-head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .agree-item-head, .agree-box { padding: 20px; }
  .agree-btn { align-items: flex-start; }
  .agree-btn::before { margin-top: 2px; }
  .agree-btn-text { font-size: 18px; }
  .join-btn-wrap { flex-direction: column-reverse; margin-top: 48px; }
  .join-btn-wrap button, .join-btn-wrap a { width: 100%; height: 56px; font-size: 18px; }
  .join-step-wrap { margin-bottom: 40px; }
  .join-step { display: flex; align-items: flex-start; justify-content: space-between; background: none; border-radius: 0; overflow: visible; height: auto; }
  .join-step li { flex: 1; position: relative; height: auto; padding-top: 30px; display: flex; flex-direction: column; align-items: center; }
  .step-arrow { display: none !important; }
  .join-step li:not(:last-child)::after { content: ''; position: absolute; top: 55px; left: 50%; width: 100%; height: 2px; background: #e9edf7; z-index: 0; }
  .step-badge { width: 130px; height: 50px; margin-right: 0; margin-bottom: 10px; font-size: 16px; background: #e9edf7; color: #666; position: relative; z-index: 1; border: 3px solid #e9edf7; }
  .join-step li.active .step-fill, .join-step li.active .step-default { background: transparent !important; padding: 0 !important; border-radius: 0 !important; flex-direction: column; align-items: center; justify-content: flex-start; }
  .join-step li.active .step-badge { background: #174da8; color: #fff; border: 3px solid #4a7fe0; }
  .join-step li.completed .step-badge { background: #0e357a; color: #fff; border: 3px solid #0e357a; }
  .step-default { flex-direction: column; align-items: center; justify-content: flex-start; }
  .step-title { font-size: 16px; text-align: center; color: #555; }
  .join-step li.active .step-title { color: #174da8; font-weight: 700; }
  .join-step li.completed .step-title { color: #174da8; font-weight: 600; }
  .join-info-head { flex-direction: column; align-items: flex-start; gap: 6px; }
  .join-info-head .join-tit { font-size: 26px; }
  .join-email-wrap, .join-double-select, .join-double-input { flex-direction: column; gap: 10px; }
  .join-email-wrap span { display: none; }
  .join-email-wrap .form-control, .join-email-wrap .form-select, .join-double-select .form-select, .join-double-input .form-control { flex: none; }
  .form-control, .form-select { height: 50px; font-size: 15px; }
  .join-radio-wrap { gap: 20px; }
  .join-radio-label { font-size: 17px; }
  .join-completed-img { margin-bottom: 36px; }
  .join-completed-img img { max-width: 200px; }
  .join-completed-text .join-tit { font-size: 30px; line-height: 1.4; margin-bottom: 24px; }
  .join-completed-text .desc { font-size: 18px; line-height: 1.6; }
  .join-completed-text .user-id { font-size: 18px; }
}

@media (max-width: 500px) {
  .step-badge { width: 80px; height: auto; padding: 8px 6px; font-size: 13px; white-space: normal; text-align: center; line-height: 1.4; }
  .join-step li:not(:last-child)::after { top: 50px; }
}

@media (max-width: 480px) {
  .btn-form { height: 50px; font-size: 14px; padding: 0 14px; }
}
