@charset "utf-8";

body {
    overflow-x: hidden;
}


/* common */
:root{
    /* Layout */
    --layoutwidth: 1720px !important;
    --black:#333333;
    --white:#FFF;
    --blue:#00a6b2;

}


.col_blue{background-color: var(--blue) !important;}



i{font-style:inherit}
.tc {text-align:center !important}
.tl {text-align:left !important}
.tr {text-align:right !important}
.bb0{border-bottom:0 !important}
.br0{border-right:0 !important}
.ps-rel{position:relative !important}
/* font */
.black{color:var(--black) !important}
.white{color:var(--white) !important}
.fw900{font-weight:900 !important}
.fw800{font-weight:800 !important}
.fw700{font-weight:700 !important}
.fw600{font-weight:600 !important}
.fw500{font-weight:500 !important}
.fw400{font-weight:400 !important}
.fw300{font-weight:300 !important}
.fw200{font-weight:200 !important}
.fw100{font-weight:100 !important}
.sound_only{
    display: inline-block !important;
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0;
    line-height: 0;
    border: 0 !important;
    overflow: hidden !important;
    visibility: hidden;
}
/* .font-score{
    font-family: 'SCoreDream' !important;
} */

.dp-block{display: block !important;}
.dp-inblock{display: inline-block !important}

.mt10{margin-top: 10px;}
.mt20{margin-top: 20px;}
.mt0{margin-top: 0 !important}
.mr10{margin-right: 10px;}
.pl20{padding-left: 20px !important;}

.text-upp{
    text-transform: uppercase;
}

/* display flex */
.flex-wrap{flex-wrap: wrap;}
.flexBox{display: -webkit-box;display: -ms-flexbox;display: flex;width:100%;}
.flexBox.area02{-webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between;}
.flexBox.area02.ver_noList,
.flexBox.ver_noList{-webkit-box-lines: single;-ms-flex-wrap: nowrap;flex-wrap: nowrap;}
.flexBox.area02.ver_noList > *{width:auto;}
.flexBox.just-center{-webkit-box-pack: center;-ms-flex-pack: center;    justify-content: center;}
.flexBox.align-center{-webkit-box-align: center; -ms-flex-align: center; align-items: center;}
.flex-center{-webkit-box-align: center; -ms-flex-align: center; align-items: center;-webkit-box-pack: center;-ms-flex-pack: center;justify-content: center;}
.flex1{flex:1}
.inflex{display: inline-flex;}
.column{-webkit-box-orient: vertical;-ms-flex-direction: column;flex-direction: column;}


.list_dot_style > *{position: relative;padding-left: 10px;margin-top: 11px;line-height: 1.2;}
.list_dot_style > *:first-child{margin-top: 0;}
.list_dot_style > *::before{content: '·';position: absolute;left: 0;top: -1px;color: #333;}


/* 가로사이즈 */
.inner{width:auto;padding-left: 3.750rem;padding-right: 3.750rem;max-width: var(--layoutwidth);margin: auto;}
.inner_left{padding-left:calc((100% - var(--layoutwidth)) /2) !important}
.inner_right{padding-right:calc((100% - var(--layoutwidth)) /2) !important}

/* 기본체크박스 */
.nm_checkbox {position:relative;display:inline-block}
.nm_checkbox > input[type="checkbox"] + label {color: #404040;display: inline-flex;align-items: center;font-weight: 400;cursor:pointer}
.nm_checkbox > input[type="checkbox"] + label span {width: 20px;height: 20px;display: inline-block;background: url(../images/common/ico_check.svg) no-repeat 50% 50% #fff;margin-right: 0.5rem;background-size: 15px;/* border: 1px solid #000; */}
.nm_checkbox > input[type="checkbox"]:checked + label span{background:url(../images/common/ico_check_w.svg) no-repeat 50% 50% var(--light-blue);}
.nm_checkbox > input[type="checkbox"]:checked + label {color: var(--light-blue);}

/* 테이블 */
.tab_table_area{
    position: relative;
    overflow-x:auto;
    margin-top: 13px;
}
.tab_table_area thead th{
    background: #F0F0F0;
    text-align: center;
    font-size: 20px;
    font-weight: 500;
    border-left: 0 !important;
}
.data_table td{
    padding:12px 5px;
    text-align: center;
    border: 1px solid #eaeaea;
    font-weight: 500;
    background: #FFF;
    border-left: 0;
    /* border-right: 0; */
}
.data_table tbody th{
    text-align: center;
}

.data_table > table{
    border-left: 1px solid #eaeaea;
    border-right: 1px solid #eaeaea;
}

.data_table .w_tit{
    width: 18%;
}
.data_table .w_txt{
    width: 78%;
}
.data_table .w7{
    width: calc(100%/7);
}
.data_table .w4{
    width: calc(90%/4);
}
.data_table .w9p_3{
    width: calc(90%/3);
}
.data_table .w9p_5{
    width: calc(90%/5);
}
.data_table .w9{
    width: calc(100% / 9);
}
.data_table .w6{
    width: calc(100% / 6);
}
.data_table .w3{
    width: calc(100% / 3);
}
.data_table .w8{
    width: calc(100% / 8);
}
.data_table::-webkit-scrollbar {
    height: 1px;
    width: 2px;
}
.table_tb_red tbody th{
    background: -webkit-linear-gradient(110deg, #BF0000, #FB9292);
    background:linear-gradient(110deg, #BF0000, #FB9292);
    color: #FFF;
    font-weight: 700;
    text-align: center;
    border-bottom:1px solid #FFF;
}
.table_tb_red tbody td{
    padding: 20px 20px;
    word-break: keep-all;
    background: #f8f8f8;
    line-height: 1.7;
}


/* 트랙 (Track) */
.tab_table_area::-webkit-scrollbar {
    height: 3px;    width: 3px;
}
/* 트랙 (Track) */
.tab_table_area::-webkit-scrollbar-track {
    background: #f2f2f2;

}
/* 핸들 (Handle) */
.tab_table_area::-webkit-scrollbar-thumb {
    background: #9A9A9A;
    border-radius: 15px;
}

.swiper-button-prev:after, .swiper-rtl .swiper-button-next:after,
.swiper-button-next:after, .swiper-rtl .swiper-button-prev:after{
    display: none
}
.swiper-slide img{
    width: 100%;
}

/* font size */
.fs-60{
    font-size: clamp(10px, 3.5vw, 60px);
}
.fs-50{
    font-size: clamp(10px, 3vw, 50px);
}
.fs-42{
    font-size:42px ;
}
.fs-40{
    font-size:40px ;
}
.fs-32{
    font-size: 32px;
    letter-spacing: -1px;
}
.fs-22{
    font-size:22px ;
    /* font-size: clamp(10px, 1.3vw, 22px); */
}
.fs-20{
    font-size: clamp(10px, 1.1vw, 20px);
}
.fs-18{font-size: 18px;}

.fs-txt{
    font-size: 16px;
}
.fs-sm{
    font-size:14px;
}

.font-gmk{
    font-family: 'GmarketSans';
}

.btn_area > *{
    display: inline-flex;
    align-items: center;
    line-height: 40px;
    height: 42px;
    padding: 0 15px;
    gap: 25px;
}
.btn_area > * img{
    width: 15px;
}
.btn_area .btn_line_blue{
    border:1px solid var(--blue);
    color: var(--blue);
    font-size: 15px;
    font-weight: 500;
    border-radius: 5px;
}
.btn_area .btn_blue{
    background:var(--dark-blue);
    color:#FFF;
    font-weight: 500;
    border-radius: 5px;
    line-height: 2.45;
}
.btn_area .btn_line{
    border:1px solid #DDD;
    color: #000;
    font-size: 16px;
    font-weight: 500;
    border-radius: 5px;
    background: #FFF;
}
.btn_area .btn_line.ver_b{
    border:1px solid #000;
}
.btn_area .btn_line.ver_blue{
    border:1px solid var(--blue);
    color: var(--blue);
}

.btn_area .btn_line img{
    height: 20px;
}
.btn_area > *:hover{
    box-shadow: rgba(99, 99, 99, 0.15) 0px 2px 8px 0px;
}

/* 반응형 */
@media (min-width: 1025px) {
    .mobVer {display:none !important}
    .pc-column{-webkit-box-orient: vertical;-ms-flex-direction: column;flex-direction: column;}
}

@media (max-width: 1720px){
    .inner_left{
        padding-left: 5% !important;
    }
    :root{
        /* Layout */
        --layoutwidth: 1400px ;

    }
}
@media (max-width: 1550px){
    .inner_left{
        padding-left: 5%;
    }

}
@media (max-width: 1420px) {

    .inner{width:auto;}

    .fs-50{
        font-size:45px;
    }
    .fs-42{
        font-size:38px ;
    }
    .fs-32{
        font-size: 26px;
        letter-spacing: -1px;
    }
    .fs-22{
        font-size: 20px;
    }
    .fs-20{
        font-size: 19px;
    }
}

@media (max-width: 1220px) {
    .inner{
        padding-left:30px !important;
        padding-right:30px !important
    }
    .inner_left{
        padding-left:30px !important;

    }
    .inner_right{
        padding-right:30px !important;

    }

}


@media (max-width: 1024px) {
    body{
        font-size: 15px;
        line-height: 1.5;
    }
    .inner{
        padding-left:24px !important;
        padding-right:24px !important
    }
    .inner_left{
        padding-left:24px !important;

    }
    .inner_right{
        padding-right:24px !important;

    }
    .m_full_inner{width:100% !important}
    .pcVer {display:none !important}
    .m-column{-webkit-box-orient: vertical;-ms-flex-direction: column;flex-direction: column;gap: 5px;}
    .m-column-s{-webkit-box-orient: vertical; -ms-flex-direction: column; flex-direction: column;align-items: flex-start !important;    word-break: keep-all;}
    .m-column > *,
    .m-column-reverse > *{width:100% !important}
    .m-column-reverse{-webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse;}
    .flexBox.area02.ver_noList{-webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start;}
    .flexBox.area02.ver_noList.m-column-reverse,
    .flexBox.area02.ver_noList.m-column{-webkit-box-align: start; -ms-flex-align: start; align-items: flex-start;}
    .nm_radio + .nm_radio{margin-left:0}
    .nm_radio input[type="radio"] + label{font-size:14px}
    .inp_box_area .inp_box{line-height:35px;height:35px}
    .nm_checkbox > input[type="checkbox"] + label{font-size:14px}
    .nm_checkbox > input[type="checkbox"] + label span{width:16px;height:16px}

    .tab_table_area thead th{
        font-size: 15px;
        line-height: 40px;
    }
    .data_table td{
        font-size: 13px;
    }
    .main_container .data_table{
        height: 300px;
    }
    .table_tb_red tbody td{
        padding: 10px;
    }
    .fs-50{
        font-size: 32px;
    }
    .fs-42{
        font-size: 28px;
    }
    .fs-40{
        font-size: 26px;
    }
    .fs-32{
        font-size: 24px;
    }
    .fs-22{
        font-size: 20px;
    }
    .fs-20{
        font-size: 18px;
    }
    .fs-18{
        font-size: 16px;
    }
    .fs-txt{
        font-size: 14px;
    }
    .fs-sm{
        font-size:13px;
    }
    .m_flexBox{
        display: -webkit-box;display: -ms-flexbox;display: flex;width:100%;
    }



}


@media (max-width: 768px) {
    .inner {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
}

@media (max-width: 480px) {
    .inner {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    .inner_left {
        padding-left: 16px !important;
    }

    .inner_right {
        padding-right: 16px !important;
    }
}

@media screen and (max-width: 360px) {
    .inner {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
}

@media screen and (max-width: 320px) {
    .inner {
        width: calc(100% - 10px);
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    /* html{
        overflow-x: auto;
        min-width: 320px
    }
    #Wrap{
        min-width: 320px
    } */
}

/* close 아이콘표시 */
.material-symbols-outlined {
    font-family: 'Material Symbols Outlined' !important;
}



/* 2. 기존 서브페이지 전용 inner 클래스 유지 */

.sm-inner {
    max-width: 1400px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 20px !important;
}

/* 3. 깨진 레이아웃(float) 정렬 복구 */
.clearfix::after {
    display: block !important;
    clear: both !important;
    content: "" !important;
}



/* 5. 텍스트 및 기본 태그 스타일 복구 */
p {
    font-size: 18px;
    line-height: 1.6
}

a {
    display: block; /* 기존 sub.css의 메뉴들이 block 기반입니다 */
}

.float-bg {
    position: fixed;
    display: none;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-color: rgba(0,0,0,.6);
    z-index: 90;
}

/* 2. 팝업창 본문 */
/* 원본 .float-contents 스타일을 현재 HTML 클래스인 .float-list에 적용 */
.float-list {
    position: absolute;
    display: block; /* 원본에는 none이었으나 팝업 호출 시 보여야 하므로 block */
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 600px; /* 원본 너비 */
    height: auto;
    background-color: white;
    padding: 50px;
    box-shadow: 0 0 20px rgba(0,0,0,.2);
    z-index: 99;
    border-radius: 20px; /* 모서리 둥글게 (HTML 인라인 스타일 반영) */
}

/* 3. 닫기 버튼 (원본 유지) */
.float-close {
    position: absolute;
    top: 20px; /* 위치 조정 */
    right: 20px;
    width: 24px; /* 크기 조정 */
    height: 24px;
    border: none;
    background: none;
    cursor: pointer;
}
.float-close img {
    width: 100%;
}

/* 4. 타이틀 (원본 유지) */
.float-list h3 {
    text-align: center;
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 20px;
}
.text-color {
    color: var(--blue);
}

/* 5. 내부 컨텐츠 박스 (원본 유지) */
.float-item {
    position: relative;
    width: 100%;
    /* height: 410px; -> 내용물에 따라 늘어나도록 제거하거나 auto로 변경 */
    height: auto;
    border: 2px solid #ddd;
    padding: 40px 30px;
    box-sizing: border-box; /* 패딩 포함 크기 계산 */
}


.float-div {
    display: block;
    padding: 0 10px;
    margin-bottom: 15px;
}
.float-div::after { content:""; display:block; clear:both; } /* clearfix */

.float-div span {
    float: left;
    font-size: 18px;
    line-height: 35px;
    color: #444;
}

.float-select {
    position: relative;
    float: left;
    width: auto;
    margin: 0 10px;
}
.float-select h4 {
    position: relative;
    font-size: 20px;
    line-height: 35px;
    font-weight: 600;
    color: #00a6b2;
    border-bottom: 2px solid #ddd;
    padding: 0 40px 0 30px;
    cursor: pointer;
    margin: 0;
}
.float-select h4::before {
    position: absolute;
    content: '>';
    transform: rotate(90deg);
    right: 10px;
    font-size: 16px;
    color: #00a6b2;
    top: 0;
}
.float-down {
    position: absolute;
    text-align: center;
    top: 37px;
    left: 0;
    width: 100%;
    height: auto;
    display: none;
    background-color: #fafafa;
    padding: 10px 0;
    z-index: 99;
    border: 1px solid #ddd; /* 경계선 추가 */
}
.float-down p {
    font-weight: 300;
    line-height: 30px;
    cursor: pointer;
    margin: 0;
}
.float-down p:hover {
    color: #00a6b2;
    background-color: #eee;
}

/* 7. 버튼 스타일 (원본 유지) */
.float-next {
    text-align: center;
    margin: 0 auto;
    margin-top: 20px;
}
.float-next a {
    display: inline-block;
    width: auto;
    height: 50px;
    font-size: 17px;
    font-weight: 500;
    line-height: 50px;
    color: white;
    background-color: #0cc5e4;
    border-radius: 25px;
    padding: 0 30px;
    transition: all .4s;
    margin: 0 5px; /* 버튼 사이 간격 추가 */
    text-decoration: none;
}
.float-next .next-go,
.float-next .float-go {
    background-color: #222;
}
.float-next a:hover {
    background-color: #222;
}


/* ==========================================================================
 체크박스 영역 (여기에만 2열 그리드 적용)
   ========================================================================== */
.float-check {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important; /* 반반 나누기 (2열) */
    gap: 15px 10px !important; /* 간격: 상하 15px, 좌우 10px */
    width: 100% !important;
    box-sizing: border-box !important;
}

/* 2. 라벨 (한 칸) 설정 */
.float-check label {
    display: inline-flex !important; /* 가로 배치 */
    align-items: center !important;  /* 수직 중앙 정렬 */
    width: 100% !important;
    margin: 0 !important;
    cursor: pointer;
}

/* 3. 체크박스 본체 스타일 */
.float-check input[type="checkbox"] {
    display: inline-block !important;
    width: 18px !important;
    height: 18px !important;
    margin: 0 5px 0 0 !important; /* 오른쪽 여백 5px */
    vertical-align: middle !important;
    appearance: auto !important; /* ★중요: 기본 체크박스 강제 표시 */
    cursor: pointer;
}

/* 4. 글자 스타일 */
.float-check span {
    display: inline-block !important;
    width: auto !important;
    white-space: nowrap !important; /* ★중요: 글자 세로 깨짐 방지 */
    font-size: 16px !important;
    color: #333 !important;
    padding: 0 !important;
    vertical-align: middle !important;
}


.float-check-div {
    display: block;
    width: 100%;
    margin: 20px 0;
    background-color: #f9f9f9; /* 회색 배경 */
    padding: 20px;
    border-radius: 10px;
    box-sizing: border-box;
}

/* 2열 정렬 핵심 코드 */
.check-wrap {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 정확히 반반 나누기 */
    gap: 15px 10px; /* 상하 15px, 좌우 10px 간격 */
    justify-items: start; /* 왼쪽 정렬 */
}

/* 개별 체크박스 라벨 */
.check-wrap label {
    display: flex;
    align-items: center;
    cursor: pointer;
    width: 100%;
    margin: 0;
}


input[type="checkbox"] {
    display: none;
}
input[type="checkbox"] + span {
    display: inline-block;
    padding-left: 28px;
    background-image: url('./images/common/check-off.png');
    background-repeat: no-repeat;
    background-position: left center;
    background-size: 20px;
    font-size: 16px;
    color: #333;
}
input[type="checkbox"]:checked + span {
    background-image: url('./images/common/check-on.png');
}

/* 하단 문구 */
.check-tail {
    text-align: right;
    margin-top: 15px;
    clear: both;
}
.check-tail span {
    font-size: 18px;
    font-weight: bold;
    color: #444;
}
.float-result {
    width: 100%;
    height: 210px;
    overflow-y: scroll;
    margin-top: 10px;
    margin-bottom: 30px;
}

.float-result a {
    position: relative;
    display: block;
    text-align: left;
    width: 100%;
    height: 42px;
    line-height: 42px;
    background-color: #fafafa;
    padding: 0 25px;
    margin-bottom: 4px;
    transition: all .4s;
    text-decoration: none;
    box-sizing: border-box;
    color: #333;
}

.float-result a:hover {
    background-color: #efefef;
}

/* 화살표 아이콘 (>) */
.float-result a::after {
    position: absolute;
    content: '>';
    right: 20px;
    top: 0;             /* 위치 보정 */
    font-size: 14px;
    font-weight: 700;
    color: #aaa;
    line-height: 42px;  /* 수직 정렬 */
}

/* ==========================================================================
   모바일 반응형 (common.css 내용 반영)
   ========================================================================== */
@media screen and (max-width: 900px){
    /* 필요시 추가 */
}

@media screen and (max-width: 768px){
    .float-contents, .float-list {
        width: 90%;
        height: auto;
        padding: 30px;
    }
    .float-item {
        height: auto;
        padding: 20px;
    }
    .float-close {
        top: 20px;
        right: 20px;
    }
    .check-wrap {
        grid-template-columns: 1fr; /* 모바일에서는 1줄로 */
    }
    .float-next a {
        font-size: 15px;
        padding: 0 20px;
        margin-bottom: 10px;
    }
}
/* 모바일 화면 대응 (1줄로 변경) */
@media screen and (max-width: 640px) {
    .float-check {
        grid-template-columns: 1fr !important;
    }
}
.sns-login {
    position: relative;
    padding-top: 100px;
    height: calc(100vh - 200px);
}

/* 2. 로그인 박스 중앙 정렬 */
.sns-login .login-box {
    position: absolute;
    top: 50%;
    width: 100%;
    transform: translateY(-50%);
    text-align: center;
}

.sns-login .login-box img {
    height: 80px;
}

.sns-login .login-box h1 {
    font-size: 36px;
    font-weight: 700;
}

.sns-login .login-box > p {
    margin-top: 20px;
}

/* 3. 로그인 버튼 그룹 (헤더와 충돌 방지를 위해 .sns-login 추가) */
.sns-login .login-btn {
    width: 460px;
    margin: 60px auto 0;
}

.sns-login .login-btn > a {
    width: 100%;
    height: 60px;
    font-weight: 700;
    padding-left: 20px;
    display: block;
    box-sizing: border-box;
}

.sns-login .login-btn > a p {
    position: relative;
    display: inline-block;
    line-height: 60px;
}

/* 아이콘 위치 */
.sns-login .login-btn > a p::before {
    position: absolute;
    content: "";
    width: 20px;
    height: 20px;
    background-position: center;
    background-repeat: no-repeat;
    background-size: auto 18px;
    left: -30px;
    top: 50%;
    transform: translateY(-50%);
}

/* 4. 버튼별 색상 */
.sns-login .btn-kko {
    background-color: #FBE44D;
    color: #161616;
    margin-bottom: 10px;
}
.sns-login .btn-kko p::before {
    background-image: url('../images/common/kko.png');
}

.sns-login .btn-naver {
    background-color: #3ACE01;
    color: #fff;
    margin-bottom: 10px;
}
.sns-login .btn-naver p::before {
    background-image: url('../images/common/nv.png');
}

.sns-login .btn-personal {
    background-color: #00a6b2;
    color: #fff;
}
.sns-login .btn-personal p::before {
    background-image: url('../images/common/join-w.png');
}

/* 5. 모바일 반응형 */
@media screen and (max-width: 768px) {
    .sns-login .login-btn {
        width: 100%;
        padding: 0 20px;
    }

    .sns-login {
        padding-top: 60px;
        height: calc(100vh - 290px);
    }

    .sns-login .login-box img {
        height: 50px;
    }
}
.sns-login .btn-personal {
    background-color: #00a6b2;
    color: #fff;
}
.sns-login .btn-personal p::before {
    background-image: url('../images/common/join-w.png');
}

.btn-float-close {
    width: 45px;
    height: 45px;
    border-radius: 45px;
    border: 1px solid #eaeaea;
    float: right;
    font-size: 22px;
}

/* 5. 모바일 반응형 */
@media screen and (max-width: 768px) {
    .sns-login .login-btn {
        width: 100%;
        padding: 0 20px;
    }

    .sns-login {
        padding-top: 60px;
        height: calc(100vh - 290px);
    }

    .sns-login .login-box img {
        height: 50px;
    }
    .sns-login .login-btn > a p {
        position: relative;
        display: inline-block;
        line-height: 60px !important;
    }



    .float-next a{
        width: 100%
    }

    .float-list h3{
        font-size: 22px;
    }
}

.check-form label,
.check-form span,
.check-form input + span,
.float-check span {
    white-space: nowrap !important;
    word-break: keep-all !important;
    display: inline-block !important;
}


.check-form .box,
.float-check label {
    width: auto !important;
    min-width: fit-content !important;
}


.check-form .box,
.float-check {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px 12px !important;
}


.check-form .tit,
.float-div span:first-child {
    flex-shrink: 0 !important;
    font-weight: bold !important;
}
