/* =========================================================
   한결아이티 회원가입 - 약관동의
   로그인 화면과 동일한 Blue / White concept
   ========================================================= */

#contents.member_join.join-terms-hangyeol {
    min-height: 100vh;
    padding: 0;
    background: #eef3f8;
    color: #152743;
}

.join-terms-hangyeol,
.join-terms-hangyeol * {
    box-sizing: border-box;
}

.join-terms-hangyeol button,
.join-terms-hangyeol input {
    font-family: inherit;
}

.join-terms-hangyeol .join-shell {
    width: 100%;
    max-width: 488px;
    min-height: 100vh;
    margin: 0 auto;
    background: #fff;
    box-shadow: 0 0 30px rgba(28, 58, 92, 0.08);
    overflow: hidden;
}


/* hero */
.join-terms-hangyeol .join-hero {
    width: 100%;
    height: 190px;
    background: #dce8f4;
    overflow: hidden;
}

.join-terms-hangyeol .join-hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center top;
}


/* body */
.join-terms-hangyeol .join-body {
    padding: 28px 28px 24px;
    background:
        radial-gradient(circle at 50% 0%, rgba(44, 113, 201, 0.04), transparent 34%),
        #fff;
}

.join-terms-hangyeol .join-intro {
    text-align: center;
    margin-bottom: 24px;
}

.join-terms-hangyeol .join-intro__welcome {
    margin: 0;
    color: #5d6b7e;
    font-size: 14px;
    line-height: 1.5;
    font-weight: 600;
}

.join-terms-hangyeol .join-intro h1 {
    margin: 7px 0 0;
    color: #14233b;
    font-size: 26px;
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: -1px;
    word-break: keep-all;
}

.join-terms-hangyeol .join-intro__bar {
    display: block;
    width: 100px;
    height: 4px;
    margin: 11px auto 12px;
    border-radius: 999px;
    background:
        linear-gradient(
            90deg,
            #2f78cb 0%,
            #2f78cb 42%,
            #dce4ef 42%,
            #dce4ef 100%
        );
}

.join-terms-hangyeol .join-intro__desc {
    margin: 0;
    color: #7c899b;
    font-size: 13px;
    line-height: 1.6;
    word-break: keep-all;
}


/* main card */
.join-terms-hangyeol .join-card {
    padding: 20px;
    background: #fff;
    border: 1px solid #dbe5f0;
    border-radius: 18px;
    box-shadow: 0 10px 28px rgba(26, 66, 110, 0.08);
}

.join-terms-hangyeol .join-section__heading {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-bottom: 15px;
}

.join-terms-hangyeol .join-step {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #edf5fd;
    color: #2f78cb;
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
}

.join-terms-hangyeol .join-section__heading h2 {
    margin: 1px 0 4px;
    color: #172941;
    font-size: 16px;
    line-height: 1.3;
    font-weight: 800;
}

.join-terms-hangyeol .join-section__heading p {
    margin: 0;
    color: #8795a7;
    font-size: 11px;
    line-height: 1.5;
    word-break: keep-all;
}

.join-terms-hangyeol .join-divider {
    height: 1px;
    margin: 20px 0;
    background: #e5ebf2;
}


/* company code input */
.join-terms-hangyeol .join-input {
    display: grid;
    grid-template-columns: 44px 92px 1px minmax(0, 1fr);
    align-items: center;
    min-height: 58px;
    background: #fff;
    border: 1px solid #cad7e7;
    border-radius: 9px;
    overflow: hidden;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.join-terms-hangyeol .join-input:focus-within {
    border-color: #2f78cb;
    box-shadow: 0 0 0 3px rgba(47, 120, 203, 0.10);
}

.join-terms-hangyeol .join-input__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    align-self: stretch;
    background: #f5f8fb;
    color: #697990;
}

.join-terms-hangyeol .join-input__icon svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.join-terms-hangyeol .join-input label {
    padding: 0 10px;
    color: #172941;
    font-size: 13px;
    line-height: 1.2;
    font-weight: 700;
    white-space: nowrap;
}

.join-terms-hangyeol .join-input__divider {
    width: 1px;
    height: 24px;
    background: #d6dfea;
}

.join-terms-hangyeol .join-input input {
    width: 100%;
    min-width: 0;
    height: 56px;
    padding: 0 12px;
    background: transparent;
    border: 0;
    outline: 0;
    color: #182941;
    font-size: 13px;
    line-height: 56px;
    font-weight: 600;
}

.join-terms-hangyeol .join-input input::placeholder {
    color: #9aa8ba;
    opacity: 1;
}


/* agreements */
.join-terms-hangyeol .join-agree-group {
    margin: 0;
}

.join-terms-hangyeol .join-agree {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 68px;
    padding: 12px 13px;
    background: #fbfcfe;
    border: 1px solid #dfe7f0;
    border-radius: 12px;
}

.join-terms-hangyeol .join-agree + .join-agree {
    margin-top: 9px;
}

.join-terms-hangyeol .join-agree--all {
    background:
        linear-gradient(135deg, #f4f9ff 0%, #edf5fd 100%);
    border-color: #cfe0f1;
}

.join-terms-hangyeol .join-agree .check_item {
    flex: 1;
    min-width: 0;
    display: block;
}

.join-terms-hangyeol .join-agree .check_item > input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
}

.join-terms-hangyeol .join-agree .check_item > input + label {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 0 !important;
    background: none !important;
    color: inherit !important;
    cursor: pointer;
}

.join-terms-hangyeol .join-check {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    background: #fff;
    border: 1px solid #b9c7d8;
    border-radius: 6px;
    transition: all 0.18s ease;
}

.join-terms-hangyeol .join-check svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: #fff;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0;
}

.join-terms-hangyeol .join-agree .check_item > input:checked + label .join-check {
    background: #2f78cb;
    border-color: #2f78cb;
    box-shadow: 0 3px 8px rgba(47, 120, 203, 0.20);
}

.join-terms-hangyeol .join-agree .check_item > input:checked + label .join-check svg {
    opacity: 1;
}

.join-terms-hangyeol .join-agree__copy {
    display: block;
    min-width: 0;
}

.join-terms-hangyeol .join-agree__copy strong {
    display: block;
    color: #172941;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 800;
}

.join-terms-hangyeol .join-agree__copy strong em {
    margin-left: 3px;
    color: #2f78cb;
    font-style: normal;
    font-size: 11px;
}

.join-terms-hangyeol .join-agree__copy small {
    display: block;
    margin-top: 3px;
    color: #8b99aa;
    font-size: 10px;
    line-height: 1.4;
    font-weight: 500;
    word-break: keep-all;
}

.join-terms-hangyeol .join-detail-btn {
    flex: 0 0 auto;
    margin-left: 8px;
    padding: 7px 8px;
    background: transparent;
    border: 0;
    color: #6d7f95;
    font-size: 11px;
    line-height: 1;
    font-weight: 700;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}


/* next button */
.join-terms-hangyeol .join-actions {
    margin-top: 20px;
}

.join-terms-hangyeol .join-next-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    min-height: 52px;
    padding: 0 20px;
    background: linear-gradient(90deg, #347fd2 0%, #2464b5 100%);
    border: 1px solid #2b70c4;
    border-radius: 9px;
    color: #fff;
    font-size: 16px;
    line-height: 1;
    font-weight: 800;
    cursor: pointer;
    box-shadow: 0 8px 18px rgba(41, 105, 183, 0.18);
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease,
        background 0.15s ease;
}

.join-terms-hangyeol .join-next-btn:hover,
.join-terms-hangyeol .join-next-btn:focus-visible {
    background: linear-gradient(90deg, #2d74c5 0%, #1f5ca8 100%);
}

.join-terms-hangyeol .join-next-btn:active {
    transform: translateY(1px);
}


/* footer */
.join-terms-hangyeol .join-footer {
    margin-top: 26px;
    padding-top: 17px;
    border-top: 1px solid #e2e8f0;
    text-align: center;
}

.join-terms-hangyeol .join-footer p {
    margin: 0;
    color: #9aa9bc;
    font-size: 10px;
    line-height: 1.6;
}


/* privacy modal concept */
.modal#privacy-policy .modal__container {
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(17, 46, 78, .18);
}

.modal#privacy-policy .modal__header {
    border-bottom: 1px solid #e6edf5;
}

.modal#privacy-policy .modal__content--action h6 {
    color: #172941;
    font-size: 18px;
    font-weight: 800;
}

.modal#privacy-policy .modal__content--action p {
    color: #55677d;
    line-height: 1.65;
}

.modal#privacy-policy .modal__btn--area button {
    background: linear-gradient(90deg, #347fd2 0%, #2464b5 100%);
    border-color: #2b70c4;
    color: #fff;
}


/* responsive */
@media (min-width: 489px) {
    #contents.member_join.join-terms-hangyeol {
        padding: 18px 0;
    }

    .join-terms-hangyeol .join-shell {
        min-height: calc(100vh - 36px);
        border-radius: 16px;
    }
}

@media (max-width: 390px) {
    .join-terms-hangyeol .join-hero {
        height: 170px;
    }

    .join-terms-hangyeol .join-body {
        padding: 24px 18px 22px;
    }

    .join-terms-hangyeol .join-intro h1 {
        font-size: 23px;
    }

    .join-terms-hangyeol .join-card {
        padding: 16px;
    }

    .join-terms-hangyeol .join-input {
        grid-template-columns: 42px 83px 1px minmax(0, 1fr);
    }

    .join-terms-hangyeol .join-input label,
    .join-terms-hangyeol .join-input input {
        font-size: 12px;
    }
}

@media (max-width: 340px) {
    .join-terms-hangyeol .join-body {
        padding-left: 12px;
        padding-right: 12px;
    }

    .join-terms-hangyeol .join-card {
        padding: 14px;
    }

    .join-terms-hangyeol .join-input {
        grid-template-columns: 38px 74px 1px minmax(0, 1fr);
    }

    .join-terms-hangyeol .join-input label {
        padding-left: 7px;
        padding-right: 7px;
        font-size: 11px;
    }

    .join-terms-hangyeol .join-input input {
        padding-left: 9px;
        padding-right: 9px;
        font-size: 11px;
    }

    .join-terms-hangyeol .join-agree {
        padding-left: 10px;
        padding-right: 10px;
    }

    .join-terms-hangyeol .join-detail-btn {
        margin-left: 4px;
        padding-left: 4px;
        padding-right: 4px;
    }
}


/* 4개 가입정보 입력 필드 */
.join-terms-hangyeol .join-input-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.join-terms-hangyeol .join-input-group .join-input {
    margin: 0;
}

@media (max-width: 390px) {
    .join-terms-hangyeol .join-input-group {
        gap: 9px;
    }
}
