@import url(https://cdn.jsdelivr.net/npm/xeicon@2.3.3/xeicon.min.css);

main .main_box {
    max-width: 694px;
    width: 100%;
    margin: 50px auto 300px auto;
}

/*  스텝바 */

main .main_box .step_bar .step {
    position: relative;
    display: flex;
    justify-content: space-between;
}

main .main_box .step_bar .step .check span {
    background-color: #003976;
    color: #fff;
}
main .main_box .step_bar .step .check p {
    color: #000000;
}
main .main_box .step_bar .step .bar.check div {
    background-color: #003976;
}
main .main_box .step_bar .step .bar.check line {
    width: 100%;
    height: 2px;
    position: absolute;
    top: 19px;
    background-color: #f1f1f1;
}

main .main_box .step_bar .step li {
    width: 20%;
    display: flex;
    flex-direction: column;
    position: relative;
}
main .main_box .step_bar .step li span {
    width: 38px;
    height: 38px;
    margin: 0 auto;
    margin-bottom: 9px;
    border-radius: 50%;
    background-color: #f1f1f1;
    font-weight: 700;
    font-size: 13px;
    line-height: 38px;
    text-align: center;
    color: #929292;
}

main .main_box .step_bar .step .bar div {
    width: 32px;
    height: 32px;
    position: absolute;
    top: 3px;
    left: calc(50% - 16px);
    border-radius: 50%;
    background-color: #f1f1f1;
    z-index: 9;
}
main .main_box .step_bar .step .bar line {
    width: 100%;
    height: 2px;
    position: absolute;
    top: 19px;
    background-color: #f1f1f1;
}

main .main_box .step_bar .step li p {
    font-weight: 700;
    font-size: 13px;
    line-height: 23px;
    text-align: center;
    color: #929292;
}

main .main_box .info_txt {
    width: 100%;
    margin-top: 50px;
    margin-bottom: 60px;
}
main .main_box .info_txt h2 {
    font-weight: 700;
    font-size: 34px;
    line-height: 48px;
    color: #111111;

    margin-bottom: 6px;
}
main .main_box .info_txt p {
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: #333333;
}

/* 약관 전체 동의 */
.agree_box {
    max-width: 635px;
    width: 100%;
    margin: 0 auto;
}
.agree_box .chk_wrap label input {
    display: none;
}
.agree_box .chk_wrap label p {
    border: 1px solid #dddddd;
    border-radius: 8px;

    width: 100%;
    height: 80px;

    display: flex;
    align-items: center;
    top: 52%;
    left: 50%;
    transform: translate(-50%, -50%);

    font-weight: 400;
    font-size: 18px;
    color: #333333;
    padding-left: 80px;
}
.agree_box .chk_wrap label input ~ p:before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0%, -50%);
    width: 24px;
    height: 24px;
    background: #ffffff;
    border: 1px solid #d7dce2;
    border-radius: 8px;
    box-sizing: border-box;
}

.agree_box .chk_wrap label input:checked ~ p:after {
    font-family: xeicon !important;
    content: '\e929';
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0%, -50%);
    width: 24px;
    height: 24px;
    font-style: normal;
    font-weight: 400;
    font-variant: normal;
    text-transform: none;
    line-height: 1;
    -webkit-font-smoothing: antialiased;
    color: #fff;
    background: #003976;
    border: 1px solid #d7dce2;
    border-radius: 8px;
    box-sizing: border-box;
}

.agree_box .chk_wrap label input ~ p:before,
.chk_wrap input:checked ~ p:after {
    margin: auto 15px;
}
.agree_box .agree_list > li {
    max-width: 635px;
    width: 100%;
    padding: 0 40px;
    margin-top: 15px;
    overflow: hidden;
}
.agree_box .agree_list > li input {
    display: none;
}

.agree_box .agree_list > li .list1,
.agree_box .agree_list > li .list2,
.agree_box .agree_list > li .list3 {
    display: none;
}
.agree_box .agree_list > li .list1_label,
.agree_box .agree_list > li .list2_label,
.agree_box .agree_list > li .list3_label {
    width: 90%;
    display: inline-block;
    padding: 5px;
    text-align: left;
    float: left;
    cursor: pointer;
}
.agree_box .agree_list > li .list1_label i,
.agree_box .agree_list > li .list2_label i,
.agree_box .agree_list > li .list3_label i {
    margin-right: 15px;
    color: #fff;
}
.agree_box .agree_list > li .list1_label span,
.agree_box .agree_list > li .list2_label span,
.agree_box .agree_list > li .list3_label span {
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: #333333;
}
.agree_box .agree_list > li input.normal:checked + i {
    color: #003976;
}
.agree_box .agree_list > li .normal:checked + i {
    color: #003976;
}
.agree_box .agree_list > li .normal:checked + i {
    color: #003976;
}

.agree_box .agree_list li .list1_1,
.agree_box .agree_list li .list2_1,
.agree_box .agree_list li .list3_1 {
    display: none;
}
.agree_box .agree_list li label {
    display: inline-block;
    padding: 10px 10px;
    float: right;
    text-align: right;
    cursor: pointer;
}

/* 약관동의 1 */
.agree_box .agree_list > li .list1_1 ~ .list1_label_open {
    display: block;
}
.agree_box .agree_list > li .list1_1 ~ .list1_label_close {
    display: none;
}
.agree_box .agree_list > li .list1_1:checked ~ .list1_label_open {
    display: none;
}
.agree_box .agree_list > li .list1_1:checked ~ .list1_label_close {
    display: block;
}
/* 약관동의 2 */
.agree_box .agree_list > li .list2_1 ~ .list2_label_open {
    display: block;
}
.agree_box .agree_list > li .list2_1 ~ .list2_label_close {
    display: none;
}
.agree_box .agree_list > li .list2_1:checked ~ .list2_label_open {
    display: none;
}
.agree_box .agree_list > li .list2_1:checked ~ .list2_label_close {
    display: block;
}
/* 약관동의 3 */
.agree_box .agree_list > li .list3_1 ~ .list3_label_open {
    display: block;
}
.agree_box .agree_list > li .list3_1 ~ .list3_label_close {
    display: none;
}
.agree_box .agree_list > li .list3_1:checked ~ .list3_label_open {
    display: none;
}
.agree_box .agree_list > li .list3_1:checked ~ .list3_label_close {
    display: block;
}

.agree_box .agree_list .agree_txt_1,
.agree_box .agree_list .agree_txt_2,
.agree_box .agree_list .agree_txt_3 {
    display: none;
    width: 85%;
    padding: 10px;
    margin: 50px auto 0 auto;
    height: 300px;
    overflow-y: scroll;
    font-weight: 400;
    font-size: 14px;
    line-height: 180%;
    text-align: justify;
    color: #444444;
}

/* 회원정보 .form */

.phone_box {
    padding-bottom: 40px;
    border-bottom: 10px solid #f1f4fa;
    gap: 10px;
}

.label_box {
    width: 100%;
}
.label_box_wrap {
    gap: 15px;
    display: flex;
    flex-wrap: wrap;
}
.label_box_wrap label {
    width: 100%;
}

.label_box h3 {
    font-weight: 700;
    font-size: 34px;
    line-height: 48px;
    color: #333333;
    width: 90%;
    margin-top: 40px;
}

.label_box label > input {
    display: none;
}
.label_box input ~ p {
    display: inline-block;
    width: 100%;
    height: 80px;
    /* margin-top: 20px; */
    border: 1px solid #dddddd;
    border-radius: 12px;
    cursor: pointer;

    font-weight: 400;
    font-size: 16px;
    line-height: 80px;
    text-align: center;
    color: #333333;
    transition: all 0.15s ease-in-out;
}
.label_box input ~ p:hover {
    background-color: #cddeff;
}
.label_box input:checked ~ p {
    border: 1px solid #003976;
    font-weight: 700;
    color: #003976;
}

.join04 .label_box {
    display: flex;
    gap: 10px;
}
.join04 .label_box label {
    width: 100%;
}
.join04 .label_box > label > input ~ p {
    width: 100%;
    height: 44px;
    line-height: 42px;
}

.form > div {
    margin-top: 20px;
}

.form div span {
    display: flex;
    width: 100%;
    height: 44px;
    justify-content: space-between;
    margin-top: 6px;
    gap: 20px;
}

.form div span p {
    width: 100%;
}

.form div.text-field {
    width: 100%;
    height: 44px;
    padding: 0 20px;
    margin-top: 6px;
    border: 1px solid #dddddd;
    border-radius: 8px;
}
p + div.text-field + p {
    margin-top: 15px;
}

.member_join_box {
    padding-bottom: 40px;
    border-bottom: 10px solid #f1f4fa;
}
.form > div > p {
    font-weight: 400;
    font-size: 14px;
    line-height: 24px;
    color: #666666;
    margin-bottom: 6px;
}

.form > div > div input {
    width: 100%;
    background: inherit;
    padding-top: 12px;
}

.form > div > div button {
    font-weight: 400;
    font-size: 14px;
    line-height: 24px;
    text-align: center;

    position: absolute;
    top: 50%;
    right: 12px;
    transform: translateY(-50%);
    padding: 3px 12px;
    border-radius: 6px;
}
.form > div > div button.blue {
    color: #ffff;
    background: #284cc9;
}
.form .id > div {
    position: absolute;
    top: 14px;
    left: 19px;
    color: #999;
}
rm .id.completed {
    background-color: #f7f9fd;
}
.form .id.completed button.request_end {
    display: block;
    pointer-events: none;
}
.member_info_box {
    padding-bottom: 40px;
}

.member_info_box div.adress_wrap {
    width: 100%;
    height: 44px;
    margin-bottom: 10px;
    position: relative;
}

div.text-field {
    border: 1px solid #dddddd;
    border-radius: 8px;
    position: relative;
}
div.text-field:focus-within {
    border: 1px solid #333;
}
.text-field.disabled {
    width: 100%;
    height: 44px;
    background-color: #f7f9fd;
    border: 1px solid #dddddd;
    border-radius: 8px;
}
.form div.text-field.btn.disabled {
    opacity: 0.8;
}
.member_info_box .adress_detail1 button img {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}

.form div.gender input,
.form div.person input {
    display: none;
}

.form div p input:checked ~ label {
    border: 1px solid #003976;
    color: #003976;
}

.form .select_box {
    width: 100%;
    height: 44px;
    padding: 10px 30px;
    margin-top: 6px;
    border: 1px solid #dddddd;
    border-radius: 8px;
}
.form .select_box select {
    width: 100%;
    cursor: pointer;
}

.form div > div.chk_area,
.form div.address_type {
    margin-top: 6px;
    display: flex;
    margin-bottom: 15px;
}

.form div.family_info div label {
    font-weight: 400;
    font-size: 14px;
    line-height: 24px;
    color: #333333;
    margin-right: 35px;
    border: none;
}

.form div.address_type {
    gap: 10px;
}
.form div.address_type label {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
}
.form div.address_type label p {
    word-break: keep-all;
}

.form div.address_type p input ~ label,
.form div.address_type p input:checked ~ label {
    display: initial;
    border: none;
}
.form .phone_box_wrap {
    gap: 10px;
}

/*error*/
.form div.text-field.error {
    width: 100%;
    height: 44px;
    border: 1px solid #ff2102;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    margin-bottom: 20px;
    position: relative;
}
.form div > span.validation {
    position: absolute;
    font-weight: 400;
    font-size: 12px;
    line-height: 16px;
    bottom: 0;
    left: 0;
    transform: translateY(100%);
    display: none;
}
.form div.error > span.validation {
    display: initial;
    color: #ff2102;
}
/* address error */
.address_area.error {
    margin-bottom: 20px;
}
.address_area.error div.text-field {
    border: 1px solid #ff2102;
    display: flex;
    flex-direction: column;
    position: relative;
}

/* radio error */
.form div.address_type.error {
    width: unset;
    height: unset;
    border: none;
    flex-direction: row;
    position: relative;
    flex-wrap: wrap;
    margin-bottom: 20px;
}
.form .error input ~ p {
    color: #ff2102;
    border: none;
}

.form .error span.validation {
    display: initial;
    color: #ff2102;
}
.form .error .label_box input ~ p {
    border: 1px solid #ff2102;
}

/* 마케팅정보 */

.check_box {
    width: 100%;
    height: 60px;
    position: relative;
    background: #eef7ff;
    border-radius: 8px;
}
.check_box > button {
    padding: 10px;
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    cursor: pointer;
}
.check_box .check {
    display: none;
    cursor: pointer;
}
.check_box .check_label {
    width: 80%;
    height: 24px;
    display: inline-block;
    background: inherit;
    position: relative;
    top: 50%;
    left: 35px;
    transform: translateY(-50%);
    cursor: pointer;
}
.check_box .check_label > i {
    position: absolute;
    top: 3px;
    left: 3px;
    color: #ffffff;
}

.check_box input {
    display: none;
}
.check_box .marketing_label i {
    width: 10%;
    display: inline-block;
    padding: 20px 0 15px 40px;
    text-align: left;

    cursor: pointer;
}
.check_box .marketing_label i {
    margin-right: 15px;
    color: #fff;
}

.check_box .marketing_label span {
    font-weight: 400;
    font-size: 16px;
    line-height: 26px;
    color: #333333;
}
.check_box .marketing_label .marketing:checked + i {
    color: #003976;
}
.check_box .marketing_1 {
    display: none;
}
.check_box .marketing_label_open,
.check_box .marketing_label_close {
    padding: 23px 40px 20px 0;
    float: right;
    text-align: right;
    cursor: pointer;
}
.check_box .marketing_label_open {
    display: block;
}
.check_box .marketing_label_close {
    display: none;
}
.check_box .marketing_1:checked ~ .marketing_label_open {
    display: none;
}
.check_box .marketing_1:checked ~ .marketing_label_close {
    display: block;
}

.marketing_info > div {
    margin-bottom: 15px;
    position: relative;
}
.marketing_txt {
    display: none;
    width: 80%;
    height: 300px;
    background-color: #fff;
    padding: 20px;
    margin: 10px auto;
    overflow-y: scroll;

    font-weight: 400;
    font-size: 14px;
    line-height: 180%;
    text-align: justify;
    color: #444444;
}

.marketing_btn {
    display: flex;
    align-items: center;
    column-gap: 20px;
    flex-wrap: wrap;
    margin: 20px auto;
}
.marketing_btn p {
    width: 100%;
    font-weight: 400;
    font-size: 14px;
    line-height: 24px;
    color: #666666;
}
.marketing_btn .marketing_inbox {
    width: 50%;
}
.marketing_btn .all {
    display: none;
    cursor: pointer;
}
.marketing_btn .all_label {
    display: inline-block;
    width: 24px;
    height: 24px;
    border: 1px solid #d7dce2;
    border-radius: 8px;
    position: relative;
    cursor: pointer;
}
.marketing_btn .all_label i {
    color: #fff;
    position: absolute;
    top: 3px;
    left: 3px;
}
.marketing_btn .check_all input:checked ~ .all {
    background-color: #003976;
}

.marketing_btn input {
    display: none;
}
.marketing_btn .message_label {
    display: inline-block;
    width: 70px;
    height: 24px;
    border-radius: 8px;
    position: relative;
}
.marketing_btn .message_label i {
    color: #dddddd;
    margin-top: 4px;
    margin-right: 10px;
    float: left;
}
.marketing_btn .app_label {
    display: inline-block;
    width: 90px;
    height: 24px;
    border-radius: 8px;
    position: relative;
}
.marketing_btn .app_label i {
    color: #dddddd;
    margin-top: 4px;
    margin-right: 10px;
    float: left;
}
.marketing_btn .normal:checked ~ i {
    color: #003976;
}
.address_type input {
    display: none;
}
.address_type input + p {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-right: 5px;
}
.address_type input + p::before {
    content: '';
    display: flex;
    width: 24px;
    height: 24px;
    background: #ffffff;
    border: 1px solid #d7dce2;
    border-radius: 8px;
    box-sizing: border-box;
}
.address_type input:checked + p::before {
    content: '';
    display: flex;
    width: 24px;
    height: 24px;
    background: #003976 url(/images/icon/chk.svg) no-repeat center / auto;
    border: 1px solid #003976;
    border-radius: 8px;
    box-sizing: border-box;
    margin: unset;
}

/* check box*/
.chk_wrap label p {
    display: inline-block;
    position: relative;
    padding-left: 39px;
    cursor: pointer;
}
.chk_wrap input ~ p::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0%, -50%);
    width: 24px;
    height: 24px;
    background: #ffffff;
    border: 1px solid #d7dce2;
    border-radius: 8px;
    box-sizing: border-box;
}
.join04 .chk_wrap input:checked ~ p::after {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(0%, -50%);
    width: 24px;
    height: 24px;
    background: #003976 url(/images/icon/chk.svg) no-repeat center / auto;
    border: 1px solid #003976;
    border-radius: 8px;
    box-sizing: border-box;
    margin: unset;
}
.join04 .marketing_info > div.age {
    height: 48px;
}

@media all and (min-width: 220px) {
    main .main_box .step_bar .step li span {
        font-size: 12px;
    }
}
@media all and (max-width: 768px) {
    main .main_box {
        margin: 50px auto;
    }
    main .main_box .info_txt h2 {
        margin-bottom: 10px;
        font-size: 20px;
        line-height: 28px;
    }
    .label_box_wrap {
        gap: 15px;
        display: flex;
        flex-wrap: wrap;
    }
    .label_box h3 {
        font-size: 18px;
        line-height: 28px;
    }
    .label_box label {
        width: 100%;
    }
    .label_box label p {
        font-size: 14px;
    }
    main .main_box .info_txt p {
        font-size: 14px;
    }
    main .main_box .step_bar .step li p {
        font-size: 12px;
    }
    main .main_box .step_bar .step .bar div {
        width: 26px;
        height: 26px;
        position: absolute;
        top: 7px;
    }
    .agree_box {
        max-width: 768px;
        width: 100%;
    }
    .agree_box .chk_wrap label p {
        height: 70px;
    }
    .agree_box .check_box {
        height: 64px;
        margin-bottom: 20px;
    }
    .agree_box .check_box p {
        font-size: 14px;
        line-height: 0.8;
    }
    main .main_box .agree_box .agree_list li {
        display: flex;
        margin-top: 0;
        padding: 0;
    }
    .agree_box .agree_list > li .list1_label span,
    .agree_box .agree_list > li .list2_label span,
    .agree_box .agree_list > li .list3_label span {
        padding: 0;
    }
    .agree_box .agree_list > li .list1_label i,
    .agree_box .agree_list > li .list2_label i,
    .agree_box .agree_list > li .list3_label i {
        margin-right: 10px;
        color: #fff;
    }
    .agree_box .agree_list > li .list1_label span,
    .agree_box .agree_list > li .list2_label span,
    .agree_box .agree_list > li .list3_label span {
        font-size: 14px;
    }
    .agree_box .agree_list .agree_txt_1,
    .agree_box .agree_list .agree_txt_2,
    .agree_box .agree_list .agree_txt_3 {
        margin-top: 50px;
    }
    .agent_box label {
        font-size: 14px;
    }
    /* 회원정보 */
    .member_join_box {
        padding-bottom: 50px;
    }
    .member_join_box .id {
        margin-bottom: 20px;
    }
    .check_box .marketing_label i {
        /* width: 80%; */
        padding: 20px 0 15px 20px;
    }
    .check_box .marketing_label_open,
    .check_box .marketing_label_close {
        padding: 23px 25px 20px 0;
    }
    .check_box .marketing_label i {
        margin-right: 10px;
    }
    .marketing_btn {
        column-gap: 0px;
        justify-content: space-between;
    }
    .nice-select li.option,
    .nice-select li.option.focus {
        min-width: unset;
        width: 100%;
    }
    .btn_wrap--dialog {
        padding: 0;
        justify-content: space-between;
    }
}
@media all and (min-width: 990px) {
    main .main_box .step_bar .step li span {
        font-size: 13px;
    }
}
