@charset "utf-8";
/*@import url(../../fonts/NotoSansCJK/NotoSansCJK.css);*/
/*@import url(../../fonts/SpoqaHanSansNeo/SpoqaHanSansNeo.css);*/


/* ------ common ------ */
* {
    margin: 0;
    padding: 0;
    list-style: none;
    border: 0;
    font-family: "Pretendard";
    color: #333333;
    -webkit-text-size-adjust : none;
    -ms-text-size-adjust : none;
    -moz-text-size-adjust : none;
    -o-text-size-adjust : none;
    box-sizing: border-box;

}

html, body {
    height:100%;
    max-height:100vh;
}

ul,
ol,
li {
    list-style: none;
}

select,
a {
    color: #000;
    text-decoration: none;
}

a[href^=tel] {
    text-decoration: inherit;
    color: inherit;
}

/* .header_wrap .header {
    min-width:800px !important;
} */

#gnb_wrap {
    max-width:800px !important;
}

#landing_container {
    width: 100%;
    box-sizing: border-box;
}

.container {
    position: relative;
}

/*.container_wrap {*/
/*    width: 800px;*/
/*    max-width:800px;*/
/*    !* padding-top:122px; *!*/
/*    height:calc(100vh - 122px);*/
/*    margin: auto;*/
/*    position:relative;*/
/*    background:#FFF;*/
/*    box-sizing:border-box;*/
/*}*/
.hidden{
    display:none;
}
/*
@media (max-width:800px) {
    .section {
        position:relative;
        text-align: center;
        min-height:calc(var(--vh, 1vh) * 100 - 122px);
    }

    .intro .next_btn {
        position:fixed;
        bottom:90px;
        left:50%;
        transform: translateX(-50%);
    }
    
    .section01 .next_btn {
        position:fixed;
        bottom:90px;
        left:50%;
        transform: translateX(-50%);
        text-align: center;
        width:100%;
    }

}

@media (min-width:801px) {
    .section {
        position:relative;
        text-align: center;
        min-height:1260px;
    }
    .intro .next_btn {
        position:absolute;
        bottom:90px;
        left:50%;
        transform: translateX(-50%);
        text-align: center;
        width:100%;
    }
    
    .section01 .next_btn {
        position:absolute;
        bottom:90px;
        left:50%;
        transform: translateX(-50%);
        text-align: center;
        width:100%;
    }
}
 */

.section {
    position:relative;
    text-align: center;
    /*min-height:1260px;*/
    /*
    min-height:1260px;
    */
}
.intro .next_btn {
    position:absolute;
    bottom:169px;
    left:50%;
    transform: translateX(-50%);
    text-align: center;
    width:100%;
}

.intro .share_btn {
    position:absolute;
    bottom:38px;
    left:50%;
    transform: translateX(-50%);
    width:100%;
}

.section03 .next_btn, .section04 .next_btn, .section03_2 .next_btn {
    position:absolute;
    bottom:90px;
    left:50%;
    transform: translateX(-50%);
    text-align: center;
    width:100%;
}

button {
    cursor: pointer;
    background:transparent;
}

.intro{
    background: #F7F8FA;
    /*
    background-image: url("/landing_s/20240326_02/images/main_bg.png"); background-repeat:no-repeat;
    */
}

.section01,
.section02,
.section03,
.section04,
.section05 {
    width: 100%;
    height: 100%;
    background: url(./images/pageall.png) no-repeat center center;
    background-size: cover;
    position: relative; /* 자식 요소의 절대 위치 지정을 위한 기준점 설정 */
    min-height: 1100px;
}

.request{
    background: #F7F8FA;
    /*
    background-image: url("/landing_s/20240326_02/images/main_bg.png"); background-repeat:no-repeat;
     */
    padding-top:50px;
    box-sizing: border-box;
}

.request .section_title {
    text-align: center;
    font-style: normal;
    font-weight: 700;
    font-size: 60px;
    line-height: 80px;
    text-align: center;
    letter-spacing: -0.04em;
    /*padding-bottom:130px;*/
}
.request .section_title strong {
    color: #3B43E1;
}


.input_container{
    /*top: 10%;*/
    width: 661px;
    margin: 0 auto;
    /*background:rgba(255, 255, 255, 0.1);*/
    padding-top: 50px;
    /*box-sizing: border-box;*/
    /*position: relative;*/
    /*bottom: 30px;*/
}

.input_container p{
    margin-top:10px;
    margin-bottom:30px;
    text-align: center;
}

.input_wrap{
    margin: 0 auto;
}
.input_wrap > *{
    margin:0 auto;
}

input[type='text']::placeholder, input[type='number']::placeholder {
    outline:none;
    color:#C1C1C1
}


.request input[type='text']:focus, input[type='number']:focus {
    /*border: 3px solid #45A0F3 !important;*/
    outline: transparent;
}

.privacy_wrap input[type='checkbox']:checked,
.privacy_wrap_single input[type='checkbox']:checked{background-color: #8E84FF;border: 2px solid #8E84FF;}

.privacy_wrap span{
    /*color:#FFFFFF;*/
}
/******************개인정보처리방침*******************/
.privacy_wrap, .privacy_wrap_single {
    background: rgba(255, 255, 255, 0.1);
    padding: 30px;
    border: none !important;
    border-radius: 12px;
    font-family: 'Noto Sans KR';
    font-style: normal;
    font-weight: 400;
    font-size: 22px;
    /* margin-bottom: 50px; */
    text-align: left;
    color: #000;
}

.privacy_allchk{
    border-bottom: 2px solid #A6A6A6;
    padding-bottom:12px;
    margin-bottom:15px;
    font-size:32px;
}

.privacy_wrap .privacy_allchk input[type='checkbox'] {
    width: 32px;
    height: 32px;
    margin-top: 6px;
}

.privacy_wrap input[type='checkbox'], .privacy_wrap_single input[type='checkbox'] {
    width: 30.5px;
    height: 30.5px;
}

.privacy_wrap a, .privacy_wrap_single a  {
    margin: 0;
    border: 1px solid #a6a6a6;
    border-radius: 50px;
    padding: 4px 20px;
    box-sizing: border-box;
    font-size: 20px;
    position: absolute;
    right: 0;
    top: 0px;
    /*color: #FFFFFF;*/
    text-decoration: none;
}

.privacy_content {
    background: rgba(255, 255, 255, 0.1);
    /*color: #ffffff;*/
}


.privacy_wrap label{
    /*color:#FFFFFF;*/
}

#applicant_frm input[type='text'],
#applicant_frm input[type='number']  {
    background: rgba(255, 255, 255, 0.1);
    border: 3px solid #A6A6A6;
    border-radius: 12px;
    width: 100%;
    height: 100px;
    box-sizing: border-box;
    font-size: 32px;
    padding: 23px 0 23px 28px;
    margin-bottom: 15px;
    /*color: #FFFFFF;*/
}

.complete {
    background: url(./images/page7.png) no-repeat center center;
    width: 100%;
    height: 100%;
    background-size: cover;
    position: relative;
    display: flex;  /* Flexbox로 자식 요소를 중앙에 배치 */
    justify-content: center;  /* 가로 가운데 정렬 */
    align-items: center;  /* 세로 가운데 정렬 */
    min-height: 1100px;
}

.center-box {
    text-align: center;  /* 이미지나 텍스트의 가로 정렬 */
    width: 40%;
    height: 80%;
    min-height: 80%;

}

/* chk box 영역 */
.chk_box{position: absolute;/* top: 0; */width: 100%;}

.chk_box input[type="checkbox"],
.chk_box label{
    /*
    cursor: pointer;
    */
}


.chk_div {
    position: absolute;
    z-index: 1;
}


.chk1 {
    top: 60px;
    left: 645px;
}
.chk2 {
    top: 59px;
    left: 40px;
}
.chk3 {
    left: 645px;
    top: 300px;
}


.chk1::after {
    content: "";
    background-repeat: no-repeat;
    background-image: url('./images/chk1_line.png?v=1');
    position: absolute;
    width: 157px;
    height: 31px;
    left: -170px;
    top: 60px;
}

.chk2::after {
    content: "";
    background-repeat: no-repeat;
    background-image: url('./images/chk2_line.png?v=1');
    position: absolute;
    width: 164px;
    height: 162px;
    right: -172px;
    top: 60px;
    z-index: -1;
    pointer-events:none;
}

.chk3::after {
    content: "";
    background-repeat: no-repeat;
    background-image: url('./images/chk3_line.png?v=1');
    position: absolute;
    width: 153px;
    height: 78px;
    left: -165px;
    top: 60px;
}

.chk_box input[type="checkbox"], #all_chk, #all_chk2 {
    -webkit-appearance: none;
    position: relative;
    width: 46px;
    height: 46px;
    cursor: pointer;
    outline: none !important;
    border: 1px solid #45A0F3;
    border-radius: 5px;
    background: #fbfbfb;
}

.chk_box .chk1 input[type='checkbox']{
    margin-left: -86px;
}
.chk_box .chk2 input[type='checkbox']{
    margin-left: -68px;
}
.chk_box .chk3 input[type='checkbox']{
    margin-left: -70px;
}

.chk_box input[type="checkbox"]:checked, #all_chk:checked, #all_chk2:checked {
    background-color: #45A0F3;
    background-image: url("./images/chk_img2.png");
    background-repeat: no-repeat;
    background-position: center;
}

.chk_box label, #all_chk + label, #all_chk2 + label{
    color: #45A0F3;
    font-weight: bold;
    font-family: 'S-Core Dream';
    display: block;
    padding: 5px 0;
    font-size: 35px;
    /*
    letter-spacing: -2px;
    */
}

#all_chk + label, #all_chk2 + label {
    display:inline-block;
    padding-left:10px;
    vertical-align: bottom;
}

.chk_text {
    font-size:24px;
    color: #333;
    text-align: left;
    /*
    letter-spacing: -2px;
    */
    padding-left: 8px;
}

.action_btn {
    position: absolute;
    bottom: 90px;
    transform: translateX(-50%);
}

.result_btn {
    padding-bottom: 50px;
}
.twentytwenty-overlay:hover {
    background:transparent !important;
}


.twentytwenty-handle {
    z-index: 80 !important;
}

/*.twentytwenty-wrapper, .twentytwenty-container{*/
/*    min-height: 500px;*/
/*}*/



.container3 .twentytwenty-container {
    height: 500px !important;
}
/*****************************************************************/
/*body {*/
/*    margin: 0;*/
/*    padding: 0;*/
/*    overflow-x: auto; !* 가로 스크롤 허용 *!*/
/*}*/


html, body {
    height: 100% !important;
    /*min-height: 1000px !important;*/
    min-width: 1400px !important;
    /*overflow-y: auto !important;*/
    overflow-x: hidden !important;
}

.wrap {
    /*position: fixed;*/
    /*top: 50%;*/
    /*left: 50%;*/
    width: 100%;
    height: 100%;
    /*transform: translate(-50%, -50%);*/
    background: url(./images/page1.png) no-repeat center center;
    background-size: cover;
    min-height: 1000px; /* wrap 내부 콘텐츠가 이 높이 이하로 줄어들지 않게 */
    min-width: 1400px; /* wrap 내부 콘텐츠가 이 높이 이하로 줄어들지 않게 */

    display: flex;           /* Flexbox 레이아웃 적용 */
    align-items: center;     /* 세로(상하) 가운데 정렬 */
    justify-content: center; /* 가로(좌우) 가운데 정렬 */
    position: relative;      /* 포지셔닝 컨텍스트 설정 */

}

/* 기본 상태에서 모든 배경 요소는 원래 위치에서 벗어나 있음 */
.left_top, .right_top, .left_bottom, .right_bottom {
    opacity: 0;
    transition: all 0.5s ease-out;
    will-change: opacity, left, right; /* 브라우저에 변경될 속성 미리 알림 */
}

.left_top {
    position: absolute;
    left: -500px; /* 화면 왼쪽 바깥에서 시작 */
    top: 30%;
    transform: translateY(-50%);
    width: 231px;
    height: 647px;
    background: url(./images/bg_intro_01.png) no-repeat left center;
    background-size: contain;
    z-index: 1000;
}

.right_top {
    position: absolute;
    right: -500px; /* 화면 오른쪽 바깥에서 시작 */
    top: 0;
    /*transform: translateY(-50%);*/
    width: 500px;
    height: 500px;
    background: url(./images/bg_intro_02.png) no-repeat right center;
    background-size: contain;
    z-index: 1000;
}

.left_bottom {
    position: absolute;
    left: -500px; /* 화면 왼쪽 바깥에서 시작 */
    bottom: 0px;
    width: 900px;
    height: 1000px;
    background: url(./images/bg_intro_03.png) no-repeat left center;
    background-size: contain;
    z-index: 1000;
}

.right_bottom {
    position: absolute;
    right: -500px; /* 화면 오른쪽 바깥에서 시작 */
    top: 75%;
    transform: translateY(-50%);
    width: 800px;
    height: 455px;
    background: url(./images/bg_intro_04.png) no-repeat right center;
    background-size: contain;
    z-index: 1000;
}

/* 활성화 클래스 - 최종 위치로 이동 */
.left_top.active {
    left: 0;
    opacity: 1;
}

.right_top.active {
    right: 0;
    opacity: 1;
}

.left_bottom.active {
    left: 0;
    opacity: 1;
}

.right_bottom.active {
    right: 0;
    opacity: 1;
}

.content {
    border: 4px solid #ffffff;
    border-radius: 30px;
    background: #ffffff;
    opacity: 0.96;
    /*width: 80vw;*/
    width: 35%;
    max-width: 690px;
    text-align: center;
    font-size: 3em;
    font-weight: bold;
    color: #333;
    line-height: 1.6;
    margin: auto;
    white-space: normal;
    padding: 30px 20px;
    box-sizing: border-box;
    position: relative;
    z-index: 1000;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2);
}

.intro-box {
    border-top: 2px solid #262F9C;
    border-bottom: 2px solid #262F9C;
    padding: 20px 30px;
    margin: 20px auto;
    width: 90%;
    max-width: 650px;
    background-color: rgba(255, 255, 255, 0.05);
    box-sizing: border-box;
    word-break: break-word;
    overflow-wrap: break-word;
}

.content03 {
    /*text-align: center;*/
    font-size: 40px;
    font-weight: bold;
    /*color: #333;*/
    /*z-index: 1000;*/
    width: 100%;
}

.content p {
    font-size: 0.8em;
}

.content03 .highlight {
    color: #5719A2;
    font-size: 50px;
}

.content .desc {
    font-weight: normal;
    font-size: 1rem;
    color: #555;
}

.content03 .desc {
    font-weight: normal;
    font-size: 20px;
    font-weight: bold;
    color: #555;
}

.next_btn {
    padding-top: 7%;
}

.next_btn_01 {
    margin-top: 80px; /* 원하는 만큼 조정 가능 */
}

.cu-form-row {
    border: 2px solid #ffffff;
    border-radius: 12px;
    background: #ffffff;
    font-size: 40px;
    color: #333;
    /*line-height: 1.6;*/
    width: 60vw;
    /*height: 950px;        !* 고정 높이 설정 *!*/
    /*max-width: 80%;        !* 최대 너비 제한 *!*/
    min-height: 950px;    /* 최소 높이 설정 */
    min-width: 1500px;
    /* 절대 위치 지정으로 중앙 정렬 */
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* 요소 자체의 크기를 고려한 정확한 중앙 정렬 */

    padding: 40px 20px;
}

.cu-form-group {
    gap: 15px; /* 라벨과 버튼 사이 간격 */
    margin-bottom: 50px;
}

.cu-form-label {
    display: inline-block;
    vertical-align: middle;
    margin-right: 50px;
    font-size: 40px;
    width: 120px;
}

#applicant_frm .cu-form-row select {
    width: 450px !important;
    height: 100px !important;
    font-size: 30px !important;
    padding: 10px !important;
    background: none !important;
    border: 2px solid #8E84FF !important;
    border-radius: 12px !important;
    background: url(./images/dropdown_icon.png) #fff no-repeat right 20px top 50% !important;
}

.cu-select:focus {
    border: 1px solid #8E84FF !important;
    outline: none; /* 선택 시 기본 outline 제거 (옵션) */
}

.cu-form-group.gender-inline {
    display: flex;
    align-items: center;
    justify-content: center;  /* 수평 가운데 정렬 */
    margin-bottom: 50px;
}

.gender-buttons {
    display: flex;
    gap: 50px;                 /* 버튼 간 간격 */
}

.gender-btn {
    width: 200px;
    height: 100px;
    border: 2px solid #8E84FF;
    background-color: #fff;
    color: #000;
    font-size: 30px;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: center;
    line-height: 100px;
}

.gender-btn.active {
    background-color: #5719A2;
    color: #fff;
    border-color: #5719A2;
}


.image-select-wrapper {
    border: 2px solid #ffffff;
    border-radius: 12px;
    background: #ffffff;
    font-size: 40px;
    max-width: 80%;
    min-width: 1500px;
    min-height: 950px;
    padding: 40px 20px;
    box-sizing: border-box;
    align-items: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* 요소 자체의 크기를 고려한 정확한 중앙 정렬 */
}

.image-select-wrapper .select-img {
    width: 250px;
    height: 302px;
    cursor: pointer;
    margin: 10px;  /* 이미지 간격 */
}

/* 이미지들을 가로로 배치하려면 이 div에서 flex를 사용 */
.image-select-wrapper .image-select-images {
    display: flex;
    justify-content: center;   /* 이미지들을 한 줄로 배치 */
    gap: 20px;                 /* 이미지 사이 여백 */
    flex-wrap: wrap;           /* 화면 크기에 맞춰 이미지들이 줄 바꿈 */
    margin-bottom: 30px;       /* 이미지를 아래로 떨어뜨림 */
}

.nav-buttons {
    display: flex;
    gap: 40px;
    justify-content: center;
    margin-top: 100px;           /* 네비게이션 버튼의 위치를 위로 조정 */
    width: 100%;                /* 전체 너비를 차지하도록 설정 */
}

.nav-btn {
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
}

.nav-btn img {
    height: 42px; /* 버튼 이미지 높이 */
}

.input_db {
    border: 2px solid #ffffff;
    border-radius: 12px;
    background: #ffffff;
    width: 60%;
    max-width: 80%;
    min-width: 1500px;
    min-height: 950px;   /* 최소 높이만 유지 */
    /*padding: 40px 20px;*/
    padding-top: 40px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    box-sizing: border-box;
    display: inline-table;
    /* height: auto; 생략 가능 (기본값) */
}
.next_btn_02 img {
    max-width: 60%;
    height: auto;
}
.input_row {
    display: flex;
    align-items: center;
    justify-content: center;
    /*margin-bottom: 20px;*/
}

.input_row label {
    width: 120px;
    font-size: 2.3em;
    white-space: nowrap;
    text-align: left;
    margin-right: 40px;
}

.input_row input {
    flex: 0.8;
    background: rgba(255, 255, 255, 0.1);
    border: 3px solid #8E84FF !important;
    border-radius: 12px;
    height: 100px;
    box-sizing: border-box;
    font-size: 32px;
    padding: 23px 28px;
    width: auto;
}

.buffer01 {
    position: absolute;
    width: 40%;
    max-width: 80%;
    min-width: 1000px;
    min-height: 950px;
    margin: 0 auto;
    border: 2px solid #ffffff;
    border-radius: 25px;
    overflow: hidden;
    box-sizing: border-box;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* 배경만 흐리게 */
.buffer-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: #ffffff;
    opacity: 0.5;
    z-index: 1;
}

/* 실제 내용은 선명하게 유지 */
.buffer-content {
    position: relative;
    z-index: 2;
    text-align: center;
    font-size: 40px;
    color: #333;
    padding: 80px 20px;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px; /* 전체 블록 간 간격 (원하면 줄여도 됨) */
}

.buffer-content p {
    margin: -10px 0;
    font-weight: bold;
    font-size: 50px;
}

.small-text {
    font-size: 30px !important;
    font-weight: normal !important;
}

.medium-text {
    font-size: 0.5em;
    font-weight: normal;
    color: #262F9C;
}

.line-break {
    height: 30px; /* 원하는 줄 간격으로 조정 가능 */
}

.info_text {
    position: relative; /* 추가 */
    background: #e9e9e9;
    padding: 40px 50px 35px;
    box-sizing: border-box;
    font-weight: 400;
    font-size: 17px;
    color: #3C4141;
    line-height: 170%;
    display: block;
    height: auto;
    letter-spacing: -1.5px;
    text-align: left;
}

.info_text::before {
    content: "유의사항";
    font-size: 20px;
    font-weight: 700;
    color: #000;
    display: block;
    line-height: 35px;
    margin-bottom: 10px;
    font-family: "Noto Sans KR";
}

.info-icons-box {
    position: absolute;
    top: 10%;
    right: 2%;
    display: flex;
    align-items: center;
    gap: 10px;
}

.info-icons-box p {
    margin: 0;
    font-size: 23px; /* 필요에 따라 조절 가능 */
    line-height: 1;
}

.info-icons-box img {
    width: 60px;
    height: 60px;
    object-fit: contain;
}

.info-footer {
    position: absolute;
    right: 2%;
    bottom: 35px; /* padding-bottom만큼 띄움 */
    text-align: right;
    font-size: 14px;
    color: #3C4141;
    line-height: 1.5;
}