:root {
    --header-height: 50px;  /* 헤더 높이 */
    --footer-height: 50px;  /* 푸터 높이 */
}

/*20250305 신규 작성_SCH*/

/*html rem 반응형 폰트 사이즈 지정*/

input:-webkit-autofill {
    box-shadow: 0 0 0 1000px white inset !important;
    -webkit-box-shadow: 0 0 0 1000px white inset !important;
    -webkit-text-fill-color: #000 !important;
    transition: background-color 9999s ease-out;
}

a {
    text-decoration: none;
}

a:hover {
    text-decoration: none;
}

html {
    font-size: 62.5%;
    min-width: 320px;
}

body {
    font-size: 1.8rem;
}

strong, em {
    font-weight: 600;
}

input::placeholder {
    font-size: 1.6rem;
}

@media screen and (max-width: 768px) {
    body{
        font-size: 1.6rem;
    }

    input::placeholder {
        font-size: 1.4rem;
    }
}

/* 헤더 */
.header_gnb {
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1;
}

#header .btn_nav button {
    height: 50px;
    width: 50px;
}

.header_gnb > ul {
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    gap: 20px;
    font-size: 2rem;
    font-weight: 600;
    padding-right: 20px;
}

.header_gnb > ul > li {
    /*width: 150px;*/
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0 20px;
}

.header_gnb > ul > li > a {
    cursor: pointer;
    text-decoration: none;
    position: relative;
    display: block;
    text-align: center;
    line-height: 50px;
    color: #333;
}

.header_gnb > ul > li.open a {
    background: linear-gradient(90deg, #EE6B4F 0%, #57BD51 100%);
    -webkit-background-clip: text;      /* 글자 영역에만 배경 보이기 */
    -webkit-text-fill-color: transparent; /* 글자 색 투명 처리 */
    background-clip: text;              /* 표준 속성 */
    color: transparent;                 /* 호환성용 */
}

.header_gnb > ul > li:hover > a {
    background: linear-gradient(90deg, #EE6B4F 0%, #57BD51 100%);
    -webkit-background-clip: text;      /* 글자 영역에만 배경 보이기 */
    -webkit-text-fill-color: transparent; /* 글자 색 투명 처리 */
    background-clip: text;              /* 표준 속성 */
    color: transparent;                 /* 호환성용 */
}

/*.header_gnb > ul > li:hover > a::after {*/
/*    content: '';*/
/*    display: block;*/
/*    position: absolute;*/
/*    bottom: 0;*/
/*    left: 50%;*/
/*    transform: translate(-50%, -50%);*/
/*    width: calc(100% + 30px);*/
/*    height: 3px;*/
/*    background: linear-gradient(90deg, #EE6B4F 0%, #57BD51 100%);*/
/*}*/

.header_gnb > ul > li > ul {
    display: none;
}

.header_gnb > ul > li > ul > li {
    margin: 20px 0;
    text-align: center;
    font-weight: normal;

}

.header_gnb > ul > li > ul > li > a {
    cursor: pointer;
    text-decoration: none;
}

.header_gnb > ul > li.open > ul {
    height: 100px;
    display: block;
}

.header_login {
    /*position: absolute;*/
    /*top: 50%;*/
    /*right: 3%;*/
    /*transform: translate(0, -50%);*/
    /*align-items: center;*/
}

.header_login > ul {
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.header_login > ul > li > a {
    padding: 6px 10px;
    border: 1px solid #ddd;
    border-radius: 30px;
    font-size: 1.6rem;
    font-weight: 600;
    text-decoration: none;
}

/*.header_login > ul > li > a:hover {*/
/*    color: #369aff;*/
/*    border: 1px solid #369aff;*/
/*}*/

#gnb {
    /*right: 100px;*/
    width: 290px;
    /*height: auto!important;*/
    padding: 50px 20px 30px;
    border-radius: 12px;
}

#gnb > ul > li > a {
    height: 50px;
    margin: 0;
    border-bottom: 1px solid #e5e5e5;
    border-radius: 0;
    background-color: inherit;
    transition: none;
    font-size: 1.6rem;
}

#gnb > ul > li > a:hover {
    background-color: inherit;
    border: none;
    color: inherit;
}

#gnb .pc_block {
    display: flex;
    flex-direction: column;
    padding: 0;
}

#header {
    position: sticky;
    display: flex;
    height: 50px;
    padding: 0 20px;
    justify-content: space-between;
    align-items: center;
}

#header.open .btn_close {
    right: 15px;
}

#header.open #gnb {
    right: 3%;
    height: auto;
    padding-left: 20px;
}

#header h1 {
    top: 50%;
    left: 20px;
    transform: translate(0, -50%);
}

#header h1 a {
    width: 150px;
    height: 40px;
    background-image: url("../images/common/logo.svg");
    background-position: left top; /* instead of 0 */
    background-repeat: no-repeat;
    background-size: cover;
}

#header .btn_nav {
    top: 0;
    display: none;
}

#gnb > .pc_block > li {
    margin: 0;
    padding: 2px;
}

#gnb .pc_block > li > a {
    /*border: none;*/
    margin: 0;
    padding: 0;
    height: 50px;
    line-height: 50px;
    background: none;
    color: #008dff;
    border: 1px solid #96d0ff;
    cursor: pointer;
    border-radius: 5px;
}

#gnb .pc_block > li > a:hover {
    background: #008dff;
    color: #fff;
    border: 1px solid #96d0ff;
}

#gnb > ul > li > ul > li > a {
    font-size: 1.6rem;
}

#gnb > ul > li > ul > li > a.on::before {
    background: #008dff;
}

.mo_block {
    display: none!important;
}

.log_lay {
    display: flex;
    align-items: center;
}

.sub_menu {
    display: flex;
    justify-content: center;
    gap: 10px;
    background: #EEE;
}

.sub_menu > li {
    height: 50px;
    display: flex;
    padding: 0 20px;
    justify-content: center;
    align-items: center;
    gap: 10px;
    align-self: stretch;

    color: #4D4D4D;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 18px */
    letter-spacing: -0.54px;
    cursor: pointer;
}

.sub_menu > li a.on {
    color: #0F50B1;
    text-shadow: 0 5px 14px rgba(0, 0, 0, 0.15);
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 18px */
    letter-spacing: -0.54px;
}

.sub_menu > li a {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100%;
    width: 100%;
}

@media screen and (max-width:1400px) {
}

@media screen and (max-width:1100px) {

    .sub_menu {
        display: none;
    }

    .header_gnb {
        display: none;
    }

    #header.open #gnb {
        right: 0;
        height: 100%;
        padding-left: 0;
    }

    #header .btn_nav {
        display: block;
    }

    #gnb {
        width: 290px;
        border-radius: 0;
    }

    #gnb .pc_block {
        display: none;
    }

    .mo_block {
        display: flex!important;
        flex-direction: column;
        /*gap: 10px;*/
    }

    .mo_block > li {
        padding: 5px;
        /*border-bottom: 1px solid #f5f5f5;*/
        cursor: pointer;
        position: relative;
    }

    /* 상위 메뉴 화살표 */
    .mo_block > li > a .arrow {
        float: right;
        transition: transform 0.3s ease;
        display: inline-block;
        width: 12px;
        height: 12px;
        background: url("../images/sub/faq_arrow.png") no-repeat center;
    }

    .mo_block > li.open > a .arrow {
        transform: rotate(180deg);
    }

    .header_login {
        display: none;
    }

    .mo_block > li > ul {
        display: none;
    }

    .mo_block > li.open > ul {
        display: block;
    }

    #gnb > .mo_block > li > a:hover ,
    #gnb > .mo_block > li.open > a {
        /*background: rgba(185, 231, 255, 0.45);*/
        border-bottom: 1px solid #369aff!important;
        color: #369aff;
    }


    .mo_block > li.open > a::before {
        display: block;
    }

    #gnb > .mo_block > li > a {
        display: flex;
        justify-content: space-between;
        align-items: center;

        transition: 0.3s;
    }

    #gnb > .mo_block > li > a:hover,
    #gnb > .mo_block > li.open > a {
        border-bottom: 1px solid #ddd;
    }

    #gnb > .mo_block > li > a > img {
        transition: 0.3s;
    }

    #gnb > .mo_block > li.open > a > img {
        transform: rotate(180deg);
    }

    .mo_block > li > ul > li > a:hover,
    .mo_block > li > ul > li > a.on {
        text-decoration: none;
        background: rgba(185, 231, 255, 0.45);
        color: #008dff!important;
        font-weight: 600;
        transition: 0.3s;
    }

    .mo_block > li > ul > li > a:hover::before {
        background: #008dff!important;
    }
    #gnb > ul > .log_box {
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        gap: 5px;

        padding: 0 15px 15px;
        border-bottom: 1px solid #ddd;
    }

    #gnb > ul > .log_box strong {
        /*font-size: 1.125rem;*/
        font-weight: 600;
    }

    #gnb > ul > .log_box > .mo_log {
        width: 100%;
        height: 40px;
        color: #008dff;
        border: 1px solid #96d0ff;
        border-radius: 6px;

        display: flex;
        justify-content: center;
        align-items: center;
    }

    /*#gnb > ul > .log_box > .mo_log a {*/
    /*    padding: 5px 90px;*/
    /*}*/

    #gnb > ul > .log_box > .mo_log:hover {
        color: #fff;
        background: #008dff;
    }

    #gnb > ul > li:hover > a {
        background: none;
        border: none;
        color: #008dff;
    }

    .mo_block > li > ul > li > a.on ~ #gnb > ul > li:hover > a {
        color: #008dff;
    }

}

/* 메인 */
.main_banner {
    height: 650px;
    width: 100%;
    background: url("../images/main/main_banner.png")no-repeat center center /cover;
}

.banner_inner {
    width: 1400px;
    margin: 0 auto;

    display: flex;
    justify-content: flex-end;
}

.banner_text {
    width: 50%;
    margin-top: 50px;

    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 20px;
}

.banner_text h2 {
    color: #1A1A1A;
    font-size: 4.8rem;
    font-style: normal;
    font-weight: 800;
    line-height: 135%;
    letter-spacing: -1.92px;
    z-index: 1;
}

.banner_text h2 span {
    position: relative;
    width: 100%;
}

.banner_text h2 span:before {
    content: '';
    display: inline-block;
    width: 100%;
    height: 50%;
    background: #FFDBEB;

    position: absolute;
    bottom: -5px;
    z-index: -1;
}

.banner_text p {
    font-size: 2rem;
    line-height: 130%;
    letter-spacing: -0.6px;
    color: #1A1A1A;
}

.main_container.bg_f9 {
    background: #f9f9f9;
}

.main_box {
    justify-content: center;
    flex-direction: column;
    gap: 50px;
    padding: 50px 0;
    margin-top: -250px;
}

.main_top_box {
    width: 600px;
    display: flex;
    flex-direction: row;
    gap: 20px;
}

.main_top_box .box_style {
    width: 100%;
    border-radius: 20px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.06);
    padding: 30px;
}

.box_style {
    display: flex;
    flex-direction: column;
}

.box_lay {
    height: 100%;
    display: flex;

}

.box_style h3 {
    font-weight: 800;
    font-size:3.6rem;
    line-height: normal;
    margin: 0 0 5px 0;
    color: #1A1A1A;
}

.box_left {
    width: 60%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.box_right {
    width: 40%;
    display: flex;
    justify-content: flex-end;
}

.box_right img {
    width: 170px;
    height: 170px;
}

.box_left p {
    font-weight: 500;
    color: #1a1a1a;
}

.box_left a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    width: 155px;

    padding: 15px 25px;
    background: #fff;
    border-radius: 30px;

    font-size: 2.4rem;
    font-weight: 600;
    text-decoration: none;
}

.card_txt {
    margin-left: 10px;
}

.main_top_box .box_style {
    background: #FFF172;
}

.main_box .main_bottom_box {
    width: 100%;
}

.ntc_box {
    gap: 10px;
}

.ntc_box .left_box {
    width: 20%;
    padding: 20px;
}

.ntc_box .left_box .ntc_tit {
    font-size: 3.6rem;
    color: #1a1a1a;
}

.ntc_box .left_box p {
    font-size: 2rem;
    color: #1a1a1a;
}

.ntc_ctrl {
    align-items: center;
}

.ntc_box .right_slider {
    width: 80%;
}

.slick-dotted.slick-slider {
    margin-bottom: 0!important;
}

.ntc_box .right_slider ul li {
    box-shadow: 2px 8px 15px 0 rgba(0, 0, 0, 0.06);
    margin: 15px 10px;
    max-height: 240px;
}

.ntc_box .right_slider ul li .num {
    line-height: 90%;
    margin-bottom: 20px;
}

.slick-slide p {
    -webkit-line-clamp: 4!important;
    height: auto!important;
}

.bottom_bar {
    width: 100%;
    height: 90px;
    background: #0a2138;
}

.bottom_bar .inner {
    width: 1400px;
    height: 100%;
    margin: 0 auto;
    position: relative;
    color: #fff;
    font-size: 2rem;
}

.bottom_lay {
    width: 100%;
    padding-left: 80px;

    display: flex;
    justify-content: space-between;
    align-items: center;
}

.bottom_bar .inner div,
.bottom_bar .inner div a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 5px;
}

.bottom_bar .inner div a {
    text-decoration: none;
}

.bottom_bar .inner div a::before {
    content: '|';
    display: inline-block;
    padding: 0 10px;
    opacity: 0.3;
}

.bottom_bar .inner::before {
    content: '';
    background: url("../images/main/bottom_character.png") no-repeat center center/ cover;
    width: 160px;
    height: 83px;

    position: absolute;
    bottom: 0;
    left: -80px;
}

.main_box strong {
    position: relative;
    z-index: 2;
}

.main_box .right_box .guide_box ul {
    z-index: 1;
}

.main_box .main_intro {
    position: relative;
    /*width: 35%;*/
    /*height: 686px;*/
    margin-right: 25px;
    border-radius: 26px 26px 26px 100px;
    background: #FFDC4F;
    overflow: hidden;
}

.ntc_box .right_slider ul li p {
    color: #1a1a1a;
    font-weight: 500;
    line-height: 130%;
    letter-spacing: -0.6px;
    font-size: 1.8rem;
}

/* 전체 반투명 배경 */
.full-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh;
    min-height: 100svh;
    background-color: rgba(0, 0, 0, 0.7); /* 반투명 검정 */
    color: white;
    z-index: 999;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
}

/* 중앙 메시지 */
.center-img {
    position: relative;
    width: 700px;
    max-height: 700px;
    border-radius: 35px;
    overflow-y: scroll;
    text-align: center;
}

.hide_scrollbar {
    -ms-overflow-style: none;
    scrollbar-width: none;
    overflow-y: scroll;
}

.hide-scrollbar::-webkit-scrollbar {
    display: none;
}

.center-img img {
    width: 100%;
}

.img_bottom_bar {
    width: 100%;
    height: 100px;
    background: #9F0026;
    position: sticky;
    bottom: -1px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.bottom_bar_btn {
    padding: 15px 25px;
    border: 2px solid #fff;
    border-radius: 30px;

    font-size: 2.4rem;
    font-weight: 600;

    text-decoration: none!important;
    cursor: pointer;

    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.bottom_bar_btn img {
    width: 10px;
    height: 18px;
}

.scroll_alert {
    position: absolute;
    top: -60px;

    padding: 10px 30px;
    border-radius: 30px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.06);
    background: #fff;
    color: #000;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.scroll_alert p {
    font-weight: 600;
}

.scroll_alert img {
    width: 16px;
    height: 16px;
}


/* 하단 중앙 버튼 영역 */
.bottom-right-buttons {
    width: 700px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}

/* 버튼 공통 스타일 */
.bottom-right-buttons button {
    /*background-color: #fff;*/
    color: #fff;
    border: none;
    padding: 10px 16px;
    /*border-radius: 4px;*/
    font-size: 2rem;
    cursor: pointer;

    display: flex;
    align-items: center;
    gap: 5px;
}

.bottom-right-buttons button:hover {
    font-weight: 600;
}

.mobile-break {
    display: inline;
}

.pc-break {
    display: block;
}

.main_fixed {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    flex-direction: column;
    gap: 20px;

    position: fixed;
    top: 50%;
    right: 60px;
    transform: translate(0 , -50%);

    z-index: 999;
}

.sub_fixed {
    top: auto;
    bottom: 60px;
    transform: translate(0, 0);
}

.main_fixed button img {
    width: 100px;
    height: 100px;
}

/*footer relative 지정*/

#footer {
    position: fixed;
    width: 100%;
    height: 50px;
    padding: 0 20px;
    justify-content: space-between;
    align-items: center;
    background: #031539;
    border-top: 1px solid rgba(255, 255, 255, 0.20);
}

@media (max-width: 1100px) {
    .mb-none {
        display: none;
    }

    #container.gis_container, #container.main_container {
        height: calc(100dvh - 50px);
    }
}

.footer-inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 40px;
    background: rgba(0, 0, 0, 0.05);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    overflow: hidden;
    padding: 0 20px; /* 좌우 여백 추가 */
    box-sizing: border-box;
}

.footer-left {
    display: flex;
    align-items: center;
    gap: 10px;
}

.footer-text {
    color: #999;
    font-size: 14px;
    font-family: 'Pretendard', sans-serif;
    font-weight: 500;
    line-height: 14px;
    white-space: nowrap;
}

.footer-divider {
    width: 1.5px;
    height: 10px;
    background: #555;
}

.footer-right {
    color: #999;
    font-size: 14px;
    font-family: 'Pretendard', sans-serif;
    font-weight: 500;
    line-height: 14px;
    white-space: nowrap;
}

.board_box {
    margin-bottom: 20px;
}

.footer_cont address {
    letter-spacing: -0.6px;
    word-break: keep-all;
}

/*메인화면 공지 모달창*/

.ntc_modal_lay {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    position: relative;
}

.ntc_modal {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap: 30px;

    max-width: 1200px;

    padding: 30px;
    border: 5px solid #369aff;

    background: #fff;

    color: #333;
}

.ntc_modal_tit {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
}

.ntc_modal_tit h3 {
    color: #3588dd;
    font-size: 3.6rem;
}

.ntc_modal_line {
    width: 100%;
    height: 1px;
    background: #ddd;
}

.ntc_modal_txt {
    min-height: 200px;
    max-height: 500px;
    overflow-y: auto;

    padding: 1px;

    text-align: center;
    font-size: 2.4rem;
    font-weight: 600;

    word-break: keep-all;
}

.ntc_close_btn {
    display: flex;
    justify-content: center;
    align-items: center;

    position: absolute;
    top: 0;
    right: -56px;

    cursor: pointer;
}

.ntc_close_btn img:last-child {
    display: none;
}

/*------------- 신규 디자인 --------------------*/

/*------------- 0. 공통 --------------------*/

/* 모달 디자인 부트스트랩 기반 */
.close_btn::after {
    content: "✕"; /* X 문자 */
    font-size: inherit;
    font-weight: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: color 0.2s ease, transform 0.3s ease;
}
.modal-open {
    overflow: hidden;
}
.modal {
    position: fixed;
    inset: 0; /* top:0; right:0; bottom:0; left:0; */
    z-index: 1050;
    display: none; /* .show로 보이게 함 */
    align-items: center;
    justify-content: center;
    overflow: hidden;
    outline: 0;
}
.modal.show {
    display: flex;
}
.modal-dialog {
    position: relative;
    width: auto;
    margin: 0.5rem;
    max-width: 500px; /* 기본 너비, 필요시 조정 */
    pointer-events: none; /* 내부 컨텐츠만 클릭 허용 (컨테이너는 포인터 비허용) */
    display: flex;
    flex-direction: column;
}
.modal-dialog-centered {
    display: flex;
    align-items: center;
    min-height: calc(100% - 1rem);
}
.modal.show .modal-dialog {
    pointer-events: auto;
}
.modal-sm { max-width: 300px; }
.modal-lg { max-width: 800px; }
.modal-xl { max-width: 1140px; }
.modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    pointer-events: auto;
    background-clip: padding-box;
    border: 1px solid rgba(0,0,0,0.1);
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
    background-color: #fff;
    outline: 0;
    overflow: hidden;
}
.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 15px;
    border-bottom: 1px solid #DDD;
    background: #182B50;
}
.modal-title {
    margin: 0;
    color: #FFF;
    text-align: center;
    font-family: Pretendard;
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 24px */
    letter-spacing: -0.48px;
}
.modal-body {
    position: relative;
    flex: 1 1 auto;
    padding: 15px;
    overflow-y: auto;
    max-height: 70vh; /* 필요시 조절 */
}
.modal-footer {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding: 0.75rem 1.25rem;
    border-top: 1px solid rgba(0,0,0,0.05);
}
.modal-close-btn {
    background: transparent;
    border: 0;
    padding: 0.25rem;
    font-size: 1.25rem;
    line-height: 1;
    color: #000;
    opacity: 0.6;
    cursor: pointer;
}
.modal-close-btn:hover { opacity: 0.85; }
.modal-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background-color: rgba(0,0,0,0.5);
    opacity: 0;
    transition: opacity .2s ease;
}
.fade {
    transition: opacity .2s ease, transform .2s ease;
}
.modal.fade .modal-dialog {
    transform: translateY(-10px);
    transition: transform .2s ease;
}
.modal.show.fade .modal-dialog {
    transform: translateY(0);
}
.modal-backdrop.show {
    opacity: 1;
}
.modal.fade {
    opacity: 0;
}
.modal.show.fade {
    opacity: 1;
}
.modal .pop_close_btn {
    position: absolute;
    color: #fff; /* 흰색 */
    font-size: 22px;
    font-weight: 800;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease;
}

@media (min-width: 576px) {
    .modal-dialog {
        margin: 1.75rem auto;
    }
}

.contents {
    position: relative;
    height: 100%;
}

.box {
    padding: 15px;
    background: #FFF;
    border-radius: 15px
}

.box .box-header {
    display: flex;
    color: #111;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 22px */
    letter-spacing: -0.44px;
    margin-bottom: 10px;
}

.box .box-header .header-flex {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
}

.header-flex > span {
    /*flex: 1;*/
}

.box .box-content .box-header {
    font-size: 0.9em;
}

.button-wrap {
    margin-left: auto;
    padding-left : 10px;
}

.button-wrap > button {
    flex:2;
    color: #333;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%;
    padding: 5px 15px;
    align-items: center;
    align-self: stretch;
    border: 1px solid #DFDFDF;
    background: #F2F2F2;
}

.button-wrap > button.on {
    background: #182B50;
    color: #FFF;
}

.button-wrap > button:first-child {
    border-radius: 8px 0px 0px 8px;
}

.button-wrap > button:last-child {
    border-radius: 0px 8px 8px 0px;
    margin-left: -5px;
}

.box .sub-header {
    color: #111;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 20px */
    letter-spacing: -0.6px;
    margin-bottom: 10px;
}

.grid_style {
    display: grid;
    gap: 15px;
}

.min-heigh0 {
    min-height: 0;
}

#treeContainer {
    height: 100%;
    float: left;
}

.tab_group {
    display: flex;
    height: 100%;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    flex: 1 0 0;
    align-self: stretch;
    width: 300px;
    background: #fff;
    z-index: 2;
    padding: 30px 0;
}

.absolute_tab_container {
    z-index: 10;
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    box-shadow: 0 4px 15px 0 rgba(0, 0, 0, 0.25);
}

.tree_menu_wrap {
    background: #F2F2F2;
}

.tree_menu_wrap > li {
    width: 100%;
    color: #444;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 20px */
    letter-spacing: -0.6px;
    cursor: pointer;
    padding: 0px 20px;

}

.tree_menu_wrap > li > span {
    z-index: 2;
    position: relative;
    border-radius: 15px;
    border: 1px solid #DDD;
    background: #FFF;
    display: block;
    width: 100%;
    padding: 20px;
    align-items: center;
    align-self: stretch;
}

.tree_menu_wrap > li > ul {
    position: relative;
    top: -8px;
}

.tree_menu_wrap > li.select > span {
    color: #fff;
    border-radius: 15px;
    background: linear-gradient(94deg, #00B659 13.76%, #00A698 56.46%, #0F50B1 100%);
    box-shadow: 0 5px 14px 0 rgba(0, 0, 0, 0.15);
}

.tree_menu_wrap > li > span > p {
    color: #555;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 135%; /* 21.6px */
    letter-spacing: -0.48px;
    margin-top: 10px;
}

.tree_menu_wrap > li.select > span > p {
    color: #FFF;
}

.tree_menu_wrap.none_tree > li > span::after {
    display: none;
}

.tree_menu_wrap > li.parent_tree_item  > span::after {
    content: '';
    width: 16px;
    height: 16px;
    background-image: url("../images/common/ico_tab_open.svg");
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translate(0, -50%);
    background-size: cover;
}

.tree_menu_wrap > li.parent_tree_item.select > span::after {
    background-image: url("../images/common/ico_tab_close.svg");
}

.tree_menu_wrap > li > ul > li > span {
    display: flex;
    padding: 20px;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
    border-bottom: 1px solid #FFF;
    color: #444;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 130%; /* 23.4px */
    letter-spacing: -0.54px;
    background: #dbdee2;
}

.tree_menu_wrap > li > ul > li.select > span {
    color: #031539;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 130%; /* 23.4px */
    letter-spacing: -0.54px;
}

.tree_menu_wrap .btn_menu_toggle {
    position: absolute;
    top: 50%;
    left: 100%;
    transform: translate(0px, -50%);
    display: flex;
    height: 70px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 0 10px 10px 0;
    background: #FFF;
    width: 25px;
}

.tree_item ul > li:last-child > span {
    border-radius: 0px 0px 15px 15px;
}

.select_menu_wrap {
    display: none;
    padding: 15px;
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
    align-self: stretch;
    border-bottom: 1px solid #DDD;
    background: #F2F2F2;
}

.menu_top_contents {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    margin-top: -30px;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
    border-bottom: 1px solid #DDD;
    background: #F2F2F2;
}
.menu_top_contents > h2 {
    color: #111;
    font-family: Pretendard;
    font-size: 24px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 24px */
    letter-spacing: -0.72px;
}
.menu_top_contents > p {
    color: #555;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 135%; /* 21.6px */
    letter-spacing: -0.48px;
}

.select_menu_wrap select {
    display: flex;
    height: 44px;
    padding: 0 20px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    border-radius: 8px;
    box-shadow: 0 5px 14px 0 rgba(0, 0, 0, 0.15);
    border: none;
    color: #FFF;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 18px */
    letter-spacing: -0.54px;
}

.select_menu_wrap select option {
    color: #000;
    background: #fff;
}

.select_menu_wrap select:focus {
    outline: none;
    border: none;
}

.select_menu_wrap .parent_select {
    background: linear-gradient(94deg, #00B659 13.76%, #00A698 56.46%, #0F50B1 100%);
}

.select_menu_wrap .child_select {
    background: #182B50;
}

#container.parent_container {
    height: calc(100dvh - 150px);
}

@media screen and (max-width:1100px) {

    #container.parent_container {
        height: calc(100dvh - 50px);
    }

    #container {
        display: flex;
        flex-direction: column;
    }

    .select_menu_wrap {
        display: flex;
    }

    .tree_menu_wrap {
        display: none;
    }

    .menu_top_contents {
        display: none;
    }

}

/*------------- 0. 데이터셋 차트 디자인 --------------------*/
/* 차트 박스 전체 */
.chart-item {
    /*background-color: #f8f9fa; !* 연한 회색 배경 *!*/
    /*border: 1px solid #ddd;*/
    border-radius: 8px;
    padding: 20px;
    position: relative;
    box-shadow: 0 2px 6px rgb(167 166 166);
    height: 100%;
    width: 100%;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* 제목 */
.chart-item h5 {
    color: #111;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 20px */
    letter-spacing: -0.6px;
    margin-bottom: 10px;
}

.chart-item .btn_inner {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-bottom: 10px;
}

.chart-item .btn_inner .chart_to_image {
    background-image: url("../images/common/image_download.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    height: 25px;
    width: 25px;
    cursor: pointer;
}

/* 필터 그룹 */
.filter-group {
    display: flex;
    flex-wrap: wrap;
    min-height: 30px;
    align-items: center;
}

/* 필터 아이템 전체 */
.filter-item {
    display: inline-flex;
    align-items: center;
    margin-right: 8px;
    font-size: 14px;
}

/* 레이블 */
.filter-item label {
    font-weight: 500;
    margin-right: 8px;
    white-space: nowrap; /* 텍스트 줄바꿈 방지 */
}

/* 셀렉트 박스 */
.filter-item select {
    display: inline-block;
    width: auto;
    min-width: 80px;
    padding: 4px 8px;
    font-size: 14px;
    border: 1px solid #ccc;
    border-radius: 4px;
    background-color: #fff;
    color: #333;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
    cursor: pointer;
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 포커스 시 강조 */
.filter-item select:focus {
    border-color: #007bff;
    box-shadow: 0 0 0 2px rgba(0,123,255,0.2);

}

/* 옵션 텍스트 */
.filter-item select option {
    padding: 4px 8px;
}

/* 차트 컨테이너 */
.chart-container {
    position: relative;
    width: 100%;
    border-radius: 4px;
    box-sizing: border-box;
    margin-top: auto;
}

/* 출처, 단위, 총합 텍스트 */
.chart-data-src,
.chart-data-unit,
.chart-data-total,
.chart-data-dt {
    right: 8px;
    font-size: 13px;
    color: #6b6b6b;
    font-style: italic;
}

.chart-data-info {
    display: flex;
    gap: 10px;
    justify-content: center;
}

.chart-data-total {
    top: 40px;
    font-weight: bold;
}

.chart-data-src {
    top: 4px;
}

.chart-data-unit {
    top: 22px;
}

.chart-data-dt {

    top: 20px;
    right: 20px;
}

.list_header {
    margin-bottom: 20px;
}

.list_header > h3 {
    color: #111;
    font-family: Pretendard;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 22px */
    letter-spacing: -0.44px;
    margin-bottom: 10px;
}

.list_header .list_header_inner > h3 {
    color: #111;
    font-family: Pretendard;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 22px */
    letter-spacing: -0.44px;
    margin-bottom: 10px;
}

.list_header .list_summary {
}

.list_header .list_summary li {
    position: relative;
    color: #333;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 27px */
    letter-spacing: -0.36px;
    padding-left: 16px; /* 점 여백 확보 */
}

.list_header .list_summary li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%); /* 세로 중앙 정렬 */
    width: 6px;
    height: 6px;
    background-color: #777; /* 회색 점 */
    border-radius: 50%;
}

/* 공통 통계 박스 디자인 */

/* 그룹형 통계 */
.total_group_box {
    display: flex;
    align-items: center;
    gap: 5px;
    align-self: stretch;
    width: 100%;
    /*height: 100%;*/
}

.total_group_box .box-content-left {
    flex: 1 0 0;
    height: 100%;
    display: flex;
    padding: 10px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 7px;
    background: #F2F2F2;
    position: relative;
}

.total_group_box .box-content-left .img_population {
    width: 46px;
    height: 35px;
    flex-shrink: 0;
    aspect-ratio: 46/35;
}

.total_group_box .box-content-left .img_under_arrow {
    width: 18px;
    height: 18px;

    position: absolute;
    top: 5px;
    right: 5px;
}

.total_group_box .box-content-left .population {
    white-space: pre-line;
    text-align: center;
    color: #333;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 130%; /* 14px */
    padding-top: 10px;
}

.total_group_box .box-content-left .pop_cnt {
    color: #19A204;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 20px */
    letter-spacing: -0.6px;
    display: flex;
    align-items: flex-end;
}

.total_group_box .box-content-left .pop_cnt span.up {
    color: #19A204;
}

.total_group_box .box-content-left .pop_cnt p{
    color: #333;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 16px */
    letter-spacing: -0.48px;
}

.total_group_box .box-content-right {
    display: flex;
    padding-left: 4px;
    gap: 8px;
    justify-content: start;
    align-items: center;
    flex: 3 0 0;
    align-self: stretch;
    flex-direction: column;
    max-height : 300px;
    overflow-y : auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.total_group_box .box-content-right::-webkit-scrollbar {
    display: none;
}

.total_group_box .box-content-right .right_content {
    display: flex;
    max-height: 50px;
    min-height: 40px;
    flex:1;
    width: 100%;
}

.total_group_box .box-content-right .content_name {
    display: flex;
    align-items: center;
    width: 120px;
    align-self: stretch;
    border-radius: 12px;
    background: #182B50;
    justify-content: center;
    z-index: 1;
}

.total_group_box .box-content-right .content_name p {
    padding: 6px;
    text-align: center;
    color: #FFF;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 16px */
}

.total_group_box .box-content-right .content_cnt {
    width: 100%;
    display: flex;
    padding: 4px 10px 4px 15px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    border-radius: 0px 12px 12px 0px;
    border: 1px solid #DFDFDF;
    flex: 1;
    background: #F2F2F2;
    margin-left: -10px;
}

.total_group_box .box-content-right .content_cnt .pop_cnt {
    display: flex;
    padding: 8px;
}

.total_group_box .box-content-right .content_cnt img {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
    aspect-ratio: 1/1;

}

.total_group_box .box-content-right .content_cnt .pop_cnt span {
    color: #19A204;

    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 16px */
}


.total_group_box .box-content-right .content_cnt .pop_cnt span.up {
    color: #19A204;
}

.total_group_box .box-content-right .content_cnt .pop_cnt p {
    color: #333;

    text-align: right;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 14px */
    letter-spacing: -0.42px;
}

/* 예산 통계 */
.box_cont_finances {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    height: 100%;
    align-self: stretch;
    width: 100%;
}

.box_cont_finances .box-content-top {
    flex: 1;
    align-self: stretch;
    margin: 0 auto;
    width: 300px;
}

.box_cont_finances .box-content-bottom {
    display: flex;
    height: 66px;
    justify-content: space-around;
    align-items: center;
    gap: 10px;
    align-self: stretch;
    border-radius: 10px;
    border: 1px solid #DFDFDF;

    background: #F2F2F2;
}

.box_cont_finances .box-content-bottom .cont {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
}

.box_cont_finances .box-content-bottom .content_name p {
    color: #333;

    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 14px */
}

.box_cont_finances .box-content-bottom .content_cnt {
    display: flex;
    align-items: flex-end;
}

.box_cont_finances .box-content-bottom .content_cnt span {
    color: #19A204;

    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 18px */
}

.box_cont_finances .box-content-bottom .remaining_budget .content_cnt span {
    color: #ED4848;
}

.box_cont_finances .box-content-bottom .content_cnt p {
    color: #333;

    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 16px */
    letter-spacing: -0.48px;
}

/* 랭킹 통계, 리스트형 통계 */
.box_cont_top {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
    width: 100%;
}

.box_cont_top .box_cont_header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
}

.box_cont_top .box_cont_header .box_cont_month {
    color: #111;
    text-align: center;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 110%; /* 22px */
    letter-spacing: -0.4px;
}

.box_cont_top .box_cont_header .box_cont_select {
    display: flex;
    padding: 5px 10px;
    align-items: center;
    gap: 5px;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.10);
}

.box_cont_top .box_cont_header .box_cont_select span {
    color: #333;
    text-align: right;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 14px */
    letter-spacing: -0.42px;
}

.box_cont_top .box-content-col {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    align-self: stretch;
    height: 100%;
}

.box_cont_top .box-content-col .cont {
    display: flex;
    max-height: 50px;
    min-height: 40px;
    flex: 1;
    align-items: center;
    align-self: stretch;
    border-radius: 12px;
    border: 1px solid #DFDFDF;
    background: #F2F2F2;
}

.box_cont_top .box-content-col .cont .content_name {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    flex: 1 0 0;
    align-self: stretch;
    border-radius: 12px;
    background: #182B50;
}

.box_cont_top .box-content-col .cont .content_name p {
    color: #FFF;
    text-align: center;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 16px */
}

.box_cont_top .box-content-col .cont .content_cnt {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    flex: 1 0 0;
    align-self: stretch;
    padding: 4px;
}

.box_cont_top .box-content-col .cont .content_cnt p {
    color: #333;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 14px */
}

/* 경제활동지표 통계 */
.box_cont_job {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
}

.box_cont_job .box-content-top {
    height: 250px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 300px;
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
}

.box_cont_job .box-content-top > * {
    width: 100%;
    max-width: 100%;
}

/* 지표 통계 */
.box_cont_indicator {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
    width: 100%;
}

.box_cont_indicator .box-content-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
}

.box_cont_indicator .box-content-wrap .box-content-one {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
}

.box_cont_indicator .box-content-one .cont {
    display: flex;
    min-width: 180px;
    width: 100%;
    padding: 10px 13px;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    border-radius: 10px;
    border: 1px solid #DFDFDF;
    background: #F2F2F2;
}

.box_cont_indicator .box-content-one .content_name p {
    color: #333;

    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 14px */
}

.box_cont_indicator .box-content-one .content_desc {
    display: flex;
    padding: 5px 10px;
    align-items: center;
    gap: 5px;
    align-self: stretch;
    justify-content: center;
    border-radius: 20px;
    background: #FFF;
    white-space: nowrap;
}

.box_cont_indicator .box-content-one .content_desc p {
    color: #333;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 14px */
    letter-spacing: -0.28px;
}

.box_cont_indicator .box-content-one .content_cnt {
    display: flex;
    align-items: center;
    gap: 3px;
}

.box_cont_indicator .box-content-one .content_desc .inner_desc {
    display: flex;
    align-items: center;
    gap: 2px;
}

.box_cont_indicator .box-content-one .content_desc .inner_desc img {
    width: 14px;
    height: 14px;
}

.box_cont_indicator .box-content-one .content_desc .inner_desc span {
    color: #19A204;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%; /* 14px */
}

.box_cont_indicator .box-content-one .ob_job .content_desc .inner_desc span {
    color: #ED4848;
}

.box_cont_indicator .box-content-one .content_cnt span {
    color: #19A204;
    text-align: center;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 20px */
    letter-spacing: -0.6px;
}

.box_cont_indicator .box-content-one .remaining_budget .content_cnt span {
    color: #ED4848;
}

.box_cont_indicator .box-content-one .content_cnt p {
    color: #555;
    font-family: "Elice DX Neolli";
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 14px; /* 100% */
}

/* 공통 GIS 오버레이 디자인 */
.info_overlay {
    border-radius: 10px;
    border: 1px solid #DFDFDF;
    background: rgba(224, 230, 242, 0.50);
    display: inline-flex;
    padding: 15px;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    width: 300px;
}

.info_overlay .close_btn {
    color: #000;
    font-weight: 900;
    padding: 5px;
    background: rgba(0, 0, 0, 0.10);
    border-radius: 6px;
    font-size: 14px;
    height: 25px;
    width: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.info_overlay .info_overlay_top > h3 {
    display: flex;
    flex-direction: column;
    width: 100%;
    color: #333;
    font-family: Pretendard;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 22px */
    letter-spacing: -0.44px;
}

.info_overlay .info_overlay_top > h3 .info_top_inner {
    display: flex;
    align-items: center;
    gap: 6px;
}

.info_overlay > .info_overlay_main {
    color: #333;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 27px */
    letter-spacing: -0.36px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.70);
    display: flex;
    padding: 10px 15px 10px 10px;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

.gis_container .tree_menu_wrap {
    background: #fff;
}

.gis_container .tree_menu_wrap > li > span {
    background: #F2F2F2;
}

.gis_container .tree_menu_wrap > li.select > span {
    color: #fff;
    border-radius: 15px;
    background: linear-gradient(94deg, #00B659 13.76%, #00A698 56.46%, #0F50B1 100%);
    box-shadow: 0 5px 14px 0 rgba(0, 0, 0, 0.15);
}

.gis_container .contents {
    overflow: hidden;
}

.gis_container .panel1 {
    width: 100%;
    height: 100%;
}

.gis_container .panel1 .map_object {
    width: 100%;
    height: 100%;
    background: #fff;
}

.box_cont_road {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
    align-self: stretch;
    width: 100%;
    height: 300px;
}

.box_cont_road .box-content-top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    align-self: stretch;
    margin-bottom: 4px;
}

.box_cont_road .box-content-top .box_header_text {
    color: #6b6b6b;
    text-align: center;
    font-family: Pretendard;
    font-size: 13px;
    font-style: italic;
    line-height: 110%; /* 15.4px */
    letter-spacing: -0.28px;
}

.box_cont_road .box-content-top .box_header_status {
    display: flex;
    align-items: flex-start;
    gap: 5px;
}

.box_cont_road .box-content-top .box_header_status p {
    color: #111;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 600;
    line-height: 110%; /* 15.4px */
    letter-spacing: -0.28px;
}

.box_cont_road .box-content-bottom {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    align-self: stretch;
    padding: 6px;
}

.box_cont_road .box-content-bottom .cont {
    display: flex;
    min-height: 89px;
    align-items: center;
    align-self: stretch;
    border: 1px solid #DFDFDF;
    background: #F2F2F2;
    border-radius: 8px;
}

.box_cont_road .box-content-bottom .cont .content_name {
    display: flex;
    width: 70px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    align-self: stretch;
    border-radius: 8px;
    background: #79BF0F;
    padding: 6px;
}

.box_cont_road .box-content-bottom .duckharo .content_name {
    background: #F0A21C;
}

.box_cont_road .box-content-bottom .cont .content_name p {
    color: #FFF;
    text-align: center;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 16px */
    word-break: break-all;
}

.box_cont_road .box-content-bottom .cont .cont_frm {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    flex: 1;
    /* align-self: stretch; */
    padding: 6px;
    gap: 6px;
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item {
    display: flex;
    align-items: center;
    flex: 1 0 0;
    align-self: stretch;
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item .cont_road {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    flex: 1 0 0;
    align-self: stretch;
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item .cont_road .cont_road_item {
    display: flex;
    padding: 5px;
    justify-content: center;
    align-items: center;
    border-radius: 6px;
    background: #FFF;
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item .cont_road .cont_road_item span {
    color: #333;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%; /* 14px */
    word-break: break-all;
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item .cont_road .cont_road_item p {
    display: flex;
    width: 14.636px;
    height: 24px;
    flex-direction: column;
    justify-content: center;
    color: #000;
    text-align: center;
    font-family: "Segoe UI Symbol";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 20.8px; /* 130% */
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item .cont_speed {
    display: flex;
    width: 70px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 2px;
    align-self: stretch;
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item .cont_speed span {
    color: #333;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%; /* 14px */
}

.box_cont_road .box-content-bottom .cont .cont_frm .cont_frm_item .cont_speed p {
    color: #333;
    text-align: center;
    font-family: Pretendard;
    font-size: 12px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%; /* 12px */
}

@media screen and (max-width:1600px) {}

@media screen and (max-width:1100px) {}

@media screen and (max-width:450px) {
    .box_cont_top .box-content-col .cont .content_name {
        flex: none;
        padding: 10px 20px;
        width: 100px;
    }

    .box_cont_indicator .box-content-wrap .box-content-one {
        flex-direction: column;
    }

    .total_group_box {
        flex-direction: column;
        gap: 10px;
    }

    .total_group_box .box-content-left {
        width: 100%;
    }

    .total_group_box .box-content-right {
        flex: none;
    }

    .box_cont_finances .box-content-bottom {
        flex-direction: column;
        height: auto;
        gap: 20px;
        padding: 20px;
    }

    .box_cont_finances .box-content-bottom .cont {
        border-bottom: 1px solid #ffffff;
        width: 100%;
        padding-bottom: 10px;
    }

}


/* 공통 GIS 오버레이 디자인 */
.info_overlay {
    border-radius: 10px;
    border: 1px solid #DFDFDF;
    background: rgba(224, 230, 242, 0.50);
    display: inline-flex;
    padding: 15px;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    width: 300px;
}

.info_overlay .close_btn {
    color: #000;
    font-weight: 900;
    padding: 5px;
    background: rgba(0, 0, 0, 0.10);
    border-radius: 6px;
    font-size: 14px;
    height: 25px;
    width: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
}

.info_overlay .info_overlay_top {
    width: 100%;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
}

.info_overlay .info_overlay_top > h3 {
    color: #333;
    font-family: Pretendard;
    font-size: 22px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 22px */
    letter-spacing: -0.44px;
}
.info_overlay > .info_overlay_main {
    color: #333;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 600;
    line-height: 150%; /* 27px */
    letter-spacing: -0.36px;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.70);
    display: flex;
    padding: 10px 15px 10px 10px;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

.gis_container .tree_menu_wrap {
    background: #fff;
}

.gis_container .tree_menu_wrap > li > span {
    background: #F2F2F2;
}

.gis_container .tree_menu_wrap > li.select > span {
    color: #fff;
    border-radius: 15px;
    background: linear-gradient(94deg, #00B659 13.76%, #00A698 56.46%, #0F50B1 100%);
    box-shadow: 0 5px 14px 0 rgba(0, 0, 0, 0.15);
}

.gis_container .contents {
    overflow: hidden;
}

.gis_container .panel1 {
    width: 100%;
    height: 100%;
}

.gis_container .stati_wrap {
    position: absolute;
    top: 0;
    right: 0;
    width: 600px;
    height: 100%;
    background: #fff;
    box-shadow: 0 4px 15px 0 rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    transform: translateX(0);
    transition: 0.3s ease;
    z-index: 500;
}

/* 닫힌 상태 */
.gis_container .stati_wrap.hide {
    transform: translateX(100%);
}

.gis_container .panel1 .map_object {
    width: 100%;
    height: 100%;
}

.table-container {
    overflow-y: auto;
    max-height : 450px;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.table-container thead th {
    position: sticky;
    z-index: 10;
    top:0;
    background-color: #182B50;
}

.gis-drawer-panel .gis-drawer-ctl {
    --drawer-handle-display: block;
    display: none;
    width: 100%;
    position: sticky;
    left: 0;
    top: 0;
}

.gis-drawer-panel .gis-drawer-ctl .ctl-cont {
    width: 100%;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.gis-drawer-panel .gis-drawer-ctl .ctl-cont:after {
    display: var(--drawer-handle-display, block);
    transition: none !important; /* 트랜지션 제거 */
    content: '';
    height: 4px;
    width: 30%;
    border-radius: 999px;
    background: #D9D9D9;
}

body.keyboard-open {
    overflow: hidden !important;
    position: fixed !important;
    width: 100% !important;
}

.gis-filter-container {
    position: absolute;
    top: 0;
    left: 100%;
    transform: translate(30px, 30px);
    width: 400px;
    z-index: 200;
}

.gis-filter-container .filter-header {
    color: #888;
    font-size: 14px;
    margin-bottom: 12px;
    font-weight: 500;
}

.gis-filter-container .filter-card {
    background: #0F50B1;
    border-radius: 8px;
    padding: 20px;
    box-shadow: 0 8px 32px rgba(37, 99, 235, 0.3);
}

.gis-filter-container .filter-title {
    color: white;
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 20px;
    display: none;
}

.gis-filter-container .filter-section-wrap {
    display: flex;
    gap: 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.20);
    padding-bottom: 20px;
    margin-bottom: 20px;
}

.gis-filter-container .filter-section {
    flex: 1;
}

.gis-filter-container .section-label {
    color: white;
    font-size: 1em;
    font-weight: 600;
    margin-bottom: 10px;
    display: block;
    cursor: auto;
}

.gis-filter-container .radio-group {
    font-size: 0.8em;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
    padding: 10px;
    border-radius: 8px;
    cursor: pointer;
}

.gis-filter-container .radio-item {
    position: relative;
}

.gis-filter-container .radio-input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
}

.gis-filter-container .radio-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: white;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s ease;
    user-select: none;
}

.gis-filter-container.radio-input:checked + .radio-label {
    background: white;
    color: #2563eb;
    border-color: white;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.gis-filter-container .radio-circle {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid currentColor;
    position: relative;
    flex-shrink: 0;
}

.gis-filter-container .radio-input:checked + .radio-label .radio-circle::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}

.gis-filter-container .submit-button {
    width: 100%;
    padding: 16px;
    background: rgba(255, 255, 255, 0.95);
    color: #2563eb;
    border: none;
    border-radius: 12px;
    font-size: 0.9em;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.gis-filter-container .submit-button:hover {
    background: white;
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}

.gis-filter-container .submit-button:active {
    transform: translateY(0);
}

.gis-table-overlay {
    position: absolute;
    z-index: 2000;
    min-width: 400px;
    transform: translateY(10px);
    top: 100%;
}

.gis-table-overlay .result-card {
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    min-width: 320px;
    overflow: hidden;
}

.gis-table-overlay .result-header {
    display: flex;
    padding: 10px 15px;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
    background: #333;
}

.gis-table-overlay .result-title {
    color: #FFF;
    text-align: center;
    font-family: Pretendard;
    font-size: 1em;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 18px */
    letter-spacing: -0.36px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.gis-table-overlay .result-title img {
    width: 20px;
    height: 20px;
}

.gis-table-overlay .result-close {
    background: transparent;
    border: none;
    color: #ffffff;
    font-size: 1em;
    font-weight: 900;
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 4px;
    transition: background 0.2s;
}

.gis-table-overlay .result-close:hover {
    background: rgba(255,255,255,0.1);
}

.gis-table-overlay .result-main {
    padding: 20px;
}

.gis-table-overlay .result-list {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    align-self: stretch;
    max-height: 200px;
}

.gis-table-overlay .result-row {
    display: flex;
    justify-content: space-between;
    background: rgb(238, 238, 238);
    border-bottom: 1px solid #DCDCDC;
    border-right: 1px solid #DDD;
    border-left: 1px solid #DDD;
    transition: background 0.2s;
    width: 100%;
    align-items: stretch;
}

.gis-table-overlay .result-row:hover {
    background: #f8f9fa;
}

.gis-table-overlay .result-label {
    color: #111;
    font-family: Pretendard;
    font-size: 0.8em;
    font-style: normal;
    font-weight: 700;
    letter-spacing: -0.42px;
    line-height: normal; /* 14px */
    background: #EEE;
    width: 180px;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.gis-table-overlay .result-value {
    color: #333;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: normal; /* 14px */
    letter-spacing: -0.42px;
    padding: 10px;
    flex: 1;
    background: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.gis-table-overlay .result-percentage {
    color: #7f8c8d;
    font-size: 12px;
    font-weight: 500;
    margin-left: 4px;
}

.gis-table-overlay .no-result {
    padding: 20px 15px;
    text-align: center;
    color: #95a5a6;
    margin: 0;
    background: #ffffff;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 마커 범례 오버레이 */
.gis-marker-legend {
    position: absolute;
    bottom: 60px;
    left: 100%;
    transform: translate(30px, 30px);
    background: rgba(255, 255, 255, 1);
    padding: 8px 12px;
    border-radius: 8px;
    font-size: 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: max-content;
    gap: 4px;
}

.gis-marker-legend .gis-legend {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    user-select: none;
}

.gis-marker-legend label {
    display: flex;
    align-items: center;
    font-size: 14px;
    position: relative;
    width: 100%;
}

.gis-marker-legend input {
    margin-right: 3px;
    user-select: none;
    pointer-events: none;
}
.gis-marker-legend img {
    width: 24px;
    height: 24px;
    margin-right: 4px;
}

/* gis 우측 통계 영역 토글 */
.stati_wrap .btn_stati_toggle {
    position: absolute;
    top: 50%;
    right: 100%;
    transform: translate(0px, -50%);
    display: flex;
    width: 25px;
    height: 70px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 10px 0px 0px 10px;
    background: #FFF;
}

.btn_toggle {
    font-size: 12px;
}

@media screen and (max-width:1100px) {

    .gis-table-overlay .result-main {
        padding: 0;
    }

    .gis-table-overlay .result-header {
        padding: 8px;
    }

    .gis-table-overlay .result-list {
        max-height: 150px;
    }

    .gis-table-overlay .result-label {
        width: 100px;
    }

    .gis-table-overlay .result-label, .gis-table-overlay .result-value {
        padding: 8px;
    }

    .gis_container .stati_wrap {
        width: 100%;
        bottom: 0;
        top: auto;
        border-radius: 20px 20px 0 0;
        background: #FFF;
        box-shadow: 0 -4px 10px 0 rgba(0, 0, 0, 0.25);
        z-index: 200;
        will-change: transform;
        touch-action: none;
        height: 95%;
        transform: translateY(96%);
    }

    .gis_container .stati_wrap.drw-mid {
        height: 45%;
    }

    .gis_container .stati_wrap.drw-open {
        height: 99%;
    }

    .gis_container .stati_wrap.hide {
        transform: translateX(0);
    }

    .gis-drawer-panel {
        position: absolute;
        transition: 0.3s ease;
    }

    .gis-drawer-panel .gis-drawer-ctl {
        display: flex;
    }

    .gis_container .stati_wrap .btn_stati_toggle {
        display: none;
    }

    .gis-filter-container {
        top: 85px;
        transform: translate(10px, 0px);
        font-size: 18px;
    }

    .gis-marker-legend {
        bottom: 40px;
        transform: translate(10px, 0px);
    }

}

@media screen and (max-width:760px) {

    .gis-table-overlay {
        font-size: 16px;
        min-width: 200px;
    }

    .gis-filter-container {
        top: 85px;
        transform: translate(10px, 0px);
        font-size: 16px;
        min-width: 250px;
        width: auto;
    }

    .gis-filter-container .filter-section-wrap {
        flex-direction: column;
        margin: 0;
        border: none;
    }

    .gis-filter-container .filter-card {
        padding: 10px;
    }

    .gis-filter-container .submit-button {
        padding: 10px;
    }

    .gis-filter-container .section-label {
        margin: 0;
        width: 120px;
        font-size: 0.8em;
        text-align: center;
    }

    .gis-filter-container .filter-section {
        display: flex;
        align-items: center;
    }

    .gis-filter-container .radio-group {
        padding: 6px;
    }


    .gis-table-overlay .result-card {
        min-width: 250px;
    }
}

@media screen and (max-width:450px) {
    .gis-filter-container {
    }
}

/*------------- 1. 메인페이지 --------------------*/

#mapObject {
    user-select: none;
    -webkit-user-select: none;
}

.main_container .contents {
    padding: 15px;
    grid-template-columns: 410px 1fr 410px;
}

.main_container .panel1 {
    grid-template-rows: auto 1fr;
}

.main_container #financialLeverage {
    width: 100%;
    min-height: 110px;
    display: flex;
    justify-content: center;
    align-items: flex-end;
}

.main_container .panel1 .box,
.main_container .panel3 .box {
    position: relative;
    display: flex;
    padding: 15px;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    align-self: stretch;
}

.main_container .panel1 .box .box-header,
.main_container .panel3 .box .box-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    align-self: stretch;
}

.main_container .panel1 .box .box-header .header_name,
.main_container .panel3 .box .box-header .header_name {
    color: #111;
    text-align: center;
    font-family: Pretendard;
    font-size: 22px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%;
    letter-spacing: -0.44px;
}

.main_container .panel3 .box .box-header .header_name span {
    color: #666;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 200;
    line-height: 100%;
    margin-left: 3px;
    letter-spacing: -0.44px;
}

.tippy_tooltip{
    display: inline-flex;
    background-image: url('../images/main/chart_info.png');
    background-repeat: no-repeat;
    background-size: contain;
    min-width: 20px;
    width: 20px;
    height: 20px;
    cursor: pointer;
}

.tippy_tooltip:hover {
    background-image: url('../images/main/chart_info(g).png');
}

.main_container .panel1 .box .box-header .header_more,
.main_container .panel3 .box .box-header .header_more {
    display: flex;
    padding: 5px 10px;
    align-items: center;
    gap: 5px;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.10);
    color: #222;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 100%;
    letter-spacing: -0.42px;
}

.main_container .panel1 .box .box-content,
.main_container .panel3 .box .box-content {
    width: 100%;
    height: calc(100% - 34px);
    display: flex;
}

.main_container .panel3 .box .box-content .box_cont {
    display: flex;
    align-items: center;
    gap: 5px;
    align-self: stretch;
}

.main_container .panel2 {
    width: 100%;
    height: 100%;
}

.main_container .panel2 .box {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden;
}

.main_container .panel2 .box::before {
    content: "";
    position: absolute;
    width: 120%;
    height: 120%;
    top: -10%;
    left: -10%;
    background-image: url("../images/common/bg_map.png");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    filter: brightness(0.8) opacity(0.8) blur(1px);
    z-index: 0;
}

.main_container .panel2 .box > * {
    position: relative;
    z-index: 1;
}

.main_container .panel2 .box .detail_info {
    position: absolute;
    left: 10px;
    bottom: 10px;
    z-index: 5;
}

.main_container .panel2 .box .detail_info .info_overlay_main li {
    position: relative;
    display: flex;
    align-items: center;
    padding-left: 15px;
    width: 100%;
    justify-content: space-between;
}

.main_container .panel2 .box .detail_info .info_overlay_main li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 4px;
    background-color: #000;
    border-radius: 50%;
}

.main_container .panel2 .box .detail_info .info_overlay_main p,
.main_container .panel2 .box .detail_info .info_overlay_main span {
    color: #333;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    line-height: 150%;
    letter-spacing: -0.36px;
}

.main_container .panel2 .box .detail_info .info_overlay_main p {
    font-weight: 400;
}

.main_container .panel2 .box .detail_info .info_overlay_main span {
    font-weight: 200;
    margin-left: 10px;
}

.main_container .panel2 .box .map_object {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 120%;
    height: 80%;
    display: block;
    object-fit: contain;
    z-index: 1;
}

.main_container .panel2 .box .map_object svg {
    width: 100%;
    height: 100%;
}

.main_container .panel2 .box .map_object.map_object_layer {
    pointer-events: none;
    z-index: 2;
}

.main_container .panel2 .box .map_object svg > path {
    cursor: pointer;
}

.main_container .panel3 {
    overflow-x: hidden;
    /*grid-template-rows: 2fr minmax(300px, 3fr) 3fr;*/
}

.main_container .panel3 .box .box-content .box-cont-video .box-cont-item,
.main_container .panel3 .box .box-content .box-cont-blog .box-cont-item {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    align-self: stretch;
    width: 100%;
}

.main_container .panel3 .box .box-content .box-cont-video .box-cont-item .content_item,
.main_container .panel3 .box .box-content .box-cont-blog .box-cont-item .content_item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    flex: 1 0 0;
    border-radius: 8px;
    width: 100%;
    height: 100%;
}

.main_container .panel3 .box .box-content .box-cont-video .box-cont-item img {
    height: 102.113px;
    aspect-ratio: 182.50/102.11;
    width: 100%;
}

.main_container .panel3 .box .box-content .box-cont-blog .box-cont-item img {
    width: 120px;
    height: 120px;
    aspect-ratio: 1/1;
}

.main_container .panel3 .tb-hidden {
    display: none;
}

#populationSource, #financialSource,
#jobSource, #topFiveSource {
    margin-top: -10px;
}

@media screen and (max-width:1600px) {

    .main_container .contents {
        padding: 15px;
        grid-template-columns: 1fr minmax(40px, 410px);
    }

    .main_container .panel1 {
        display: none;
    }

    .main_container .panel3 .tb-hidden {
        display: block;
    }

    .header_gnb > ul {
        gap: 20px;
    }

    .header_gnb > ul > li {
        padding: 0 15px;
    }
}

@media screen and (max-width:1400px) {
    .header_gnb > ul > li {
        padding: 0;
    }
}

@media screen and (max-width:1200px) {
    .header_gnb > ul {
        font-size: 1.7rem;
    }
    .header_gnb > ul > li {
        padding: 0;
    }
}

@media screen and (max-width:1100px) {

    .box_cont_road {
    }

    .main_container .contents {
        overflow-y: hidden;
        grid-template-columns: 1fr;
        padding: 0;
    }

    .main_container .box {
        border-radius: 0;
    }

    .main_container .panel3 {
        background: #fff;
        width: 100%;
        z-index: 100;
        display: flex;
        flex-direction: column;
        bottom: 0;
        gap: 10px;
        border-radius: 20px 20px 0 0;
        background: #FFF;
        box-shadow: 0 -4px 10px 0 rgba(0, 0, 0, 0.25);
        overflow: hidden;
        will-change: transform;
        touch-action: none;
        height: 95%;
        transform: translateY(96%);
    }

    .main_container .panel3.drw-mid {
        height: 40%;
    }

    .main_container .panel3.drw-open {
        height: 95%;
    }

    .main_container .panel2 {
    }

    .main_container .panel2 .box .detail_info {
        bottom: 60px;
    }

    .main_container .panel3 .box {
        border-bottom: 1px solid #DDD;
    }

    .main_container .panel3 .box:last-child {
        border: none;
    }
}

@media screen and (max-width:720px) {
    .main_container .panel2 .box .map_object {
        width: 100%;
        top: 20px;
        transform: translate(-50%, 0%);
    }
}

@media screen and (max-width:450px) {
    .main_container .panel2 .box .detail_info {
        width: calc(100% - 20px);
        left: 50%;
        bottom: 40px;
        transform: translate(-50%, 0px);
    }
    .main_container .panel3 .box .box-header .header_name {
        text-align: left;
    }
}

/*------------- 3. 스마트한 행정 --------------------*/
.smart_container .contents {
    padding: 15px;
    grid-template-areas:
        "panel1"
        "panel2";
    grid-template-columns: 1fr;  /* 왼쪽 넓게, 오른쪽 좁게 */
    grid-template-rows: 1fr 2fr;    /* 상단은 자동 높이, 하단은 남은 공간 */
}

.smart_container .panel1 .box .box-content {
    width: 100%;
    height: calc(100% - 34px);
    display: flex;
}

.smart_container .sector_group {
    grid-area: sector;
    display: flex;
    gap: 10px;
    padding: 10px;
    list-style: none;
    background: #f5f5f5;
    border-radius: 8px;
}

.smart_container .sector_group li {
    padding: 6px 20px;
    background: #e0e0e0;
    border-radius: 15px;
    cursor: pointer;
}

.smart_container .sector_group li.select {
    color: #fff;
    border-radius: 15px;
    background: linear-gradient(94deg, #00B659 13.76%, #00A698 56.46%, #0F50B1 100%);
    box-shadow: 0 5px 14px 0 rgba(0, 0, 0, 0.15);
}

.smart_container .panel2 {
    grid-area: panel2;
    overflow-x: hidden;
}

.smart_container .panel2 .box {
    min-width: 0;
}

.smart_container .panel1 {
    grid-area: panel1;
    display: flex;
}

.smart_container .panel1 > .box {
    flex: 1;
}

.smart_container .panel1 .button-wrap {
    padding: 0;
    margin: 0;
}

.smart_container .panel1  .box-header .chart-data-src{
    flex: 1;
    text-align: right;
    color: #999;
}

.smart_container .panel2 .chart_box {
}

.smart_container .panel2 .chart_box h3 {
    color: #111;
    text-align: start;
    font-family: Pretendard;
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 24px */
    letter-spacing: -0.48px;
    margin-bottom: 15px;
}

.smart_container .panel2 .chart_box .chart_inner {
    height: 300px;
    border-radius: 10px;
}

.smart_container .panel2 .chart_box .chart_inner .chart_wrap {
    width: 100%;
    height: 100%;
    border-radius: 10px;
    background: #FFF;
    padding: 10px;
}

.smart_container .panel2 .chart_box .chart_inner .chart_wrap canvas {
    width: 100%;
    height: 100%;
}

.smart_container .panel2 .table_box {
}

.smart_container .panel2 .table_box h4 {
    color: #111;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 20px */
    letter-spacing: -0.6px;
    margin-bottom: 15px;
}

.smart_container .table_style {
    border-collapse: collapse;
    overflow: auto;
    /*min-width: 800px;*/
}

.smart_container .table_style th {
    background-color: #182B50;
    color: white;
    font-weight: 500;
    font-size: 14px;
    padding: 13px 10px;
    text-align: center;
    border-right: 1px solid #DDDDDD;
}

.smart_container .table_style th:last-child {
    border-right: none;
}

.smart_container .table_style td {
    padding: 10px;
    text-align: center;
    font-size: 14px;
    color: #222222;
    border-right: 1px solid #DDDDDD;
    border-bottom: 1px solid #DDDDDD;
}

.smart_container .table_style td:last-child {
    border-right: none;
}

.smart_container .table_style .col-category {
    width: 150px;
    min-width: 150px;
}

.smart_container .table_style .col-unit {
    width: 200px;
    min-width: 200px;
}

.smart_container .table_style .col-item {
    width: 200px;
    min-width: 200px;
}

.smart_container .table_style .col-data {
    flex: 1;
    min-width: 120px;
}

.smart_container .table_style td.multi-line {
    font-size: 12px;
    line-height: 1.4;
}

.smart_container .table_style tr.group-start td {
    border-top: 2px solid #182B50;
}

.smart_container .panel2 .table_box {
}

.smart_container .panel2 .table_box h4 {
    color: #111;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 600;
    line-height: 100%; /* 20px */
    letter-spacing: -0.6px;
    margin-bottom: 15px;
}

.smart_container .table_style {
    border-collapse: collapse;
    overflow: auto;
    /*min-width: 800px;*/
}

.smart_container .table_style th {
    color: white;
    font-weight: 500;
    font-size: 14px;
    padding: 13px 10px;
    text-align: center;
    border-right: 1px solid #DDDDDD;
}

.smart_container .table_style th:last-child {
    border-right: none;
}

.smart_container .table_style td {
    padding: 10px;
    text-align: center;
    font-size: 14px;
    color: #222222;
    border-right: 1px solid #DDDDDD;
    border-bottom: 1px solid #DDDDDD;
}

.smart_container .table_style td.col-data.number {
    text-align: right;
}

.smart_container .table_style td:last-child {
    border-right: none;
}

.smart_container .table_style .col-category {
    width: 150px;
    min-width: 150px;
}

.smart_container .table_style .col-unit {
    width: 200px;
    min-width: 200px;
}

.smart_container .table_style .col-item {
    width: 200px;
    min-width: 200px;
}

.smart_container .table_style .col-data {
    flex: 1;
    min-width: 120px;
    background: #fff;
}

.smart_container .table_style td.multi-line {
    font-size: 12px;
    line-height: 1.4;
}

@media screen and (max-width: 1600px) {

    .smart_container .table-container {
        overflow: auto;
        min-width: 1000px;
    }

    .smart_container .panel1 {
        flex-wrap: wrap;
    }

    .smart_container .box_cont_finances {
        flex-direction: row;
    }

    .smart_container .box_cont_finances .box-content-bottom {
        flex: 1;
        height: 100%;
    }

    .smart_container #totalStatiWrap1 {
        width: 100%;
        flex: none;
        height: 200px;
    }

    .smart_container #totalStatiWrap1 .box-header {
        /*width: 50%;*/
        /*justify-self: flex-end;*/
    }

    .smart_container #totalStatiWrap3 .box-content {
        height: auto;
    }
}

@media screen and (max-width: 1600px) {
    .smart_container .table-container {
        max-height: 350px;
    }

    .smart_container .contents {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
    }
}

@media screen and (max-width: 1100px) {
    .smart_container .table_style th,
    .smart_container .table_style td {
        white-space: normal;
        overflow-wrap: break-word;
    }

    .smart_container .contents .panel2 .box {
        margin-bottom: 10px;
        min-width: 0;
        /*max-height: 500px;*/
    }
}

@media screen and (max-width: 800px) {
    .smart_container .box_cont_finances {
        flex-direction: column;
    }

    .smart_container #totalStatiWrap1 {
        height: auto;
    }

    .smart_container .box_cont_finances .box-content-bottom {
        flex: none;
        height: auto;
        min-height: 80px;
    }
}

/*------------- 살기 좋은 군민 -------------------*/
.living_container .chart_inner {
    flex: 1;
    padding: 20px;
    display: flex;
    flex-direction: column;
}

.living_container .chart_inner .chart_list {
    /*flex: 1;*/
    gap: 10px;
    /*grid-template-rows: 400px;*/
}

@media screen and (max-width:1600px) {}

@media screen and (max-width:1100px) {}

/*-------------  생애주기 -------------------*/

.life_container .welfare_detail {
    position: absolute;
    left: calc(100% + 20px);
    top: 20px;
}

.life_container .welfare_inner {
    display: flex;
    padding: 20px;
    flex-direction: column;
    align-items: flex-start;
    align-self: stretch;
    border-bottom: 1px solid #DDD;
    background: #F2F2F2;
}

.life_container .welfare_inner .list_header {
    width: 100%;
}

.life_container .welfare_inner .list_header_inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.life_container .welfare_inner .list_header_inner .search_style {
    border: none;
    padding-left: 0;
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.life_container .welfare_inner .list_header_inner .search_style > input {
    padding: 2px 5px;
}

.life_container .welfare_inner .list_header_inner .search_style #searchKeyword::placeholder {
    font-size: 14px;
}

.life_container .welfare_inner .list_header_inner .search_btn {
    width: 30px;
    padding-left: 5px;
}

.life_container .welfare_inner .welfare_list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 5px;
    width: 100%;
    height: 335px;
}

.life_container .welfare_inner .wel_card {
    display: flex;
    width: 100%;
    min-width: 270px;
    padding: 10px 14px;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
    border-radius: 10px;
    border: 1px solid #DFDFDF;
    background: #FFF;
    cursor: pointer;
    height: 164px;
}

.life_container .welfare_inner .wel_card .wel_tags {
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
}
.life_container .welfare_inner .wel_card .wel_tag {
    border-radius: 20px;
    border: 1px solid #0F50B1;
    background: #FFF;
    display: flex;
    padding: 5px 10px;
    justify-content: center;
    align-items: center;
    gap: 5px;
    color: #0F50B1;
    text-align: center;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 14px */
    letter-spacing: -0.28px;
}
.life_container .welfare_inner .wel_card .wel_title {
    color: #333;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 16px */
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.life_container .welfare_inner .wel_card .wel_desc {
    color: #333;
    font-family: Pretendard;
    font-size: 14px;
    font-style: normal;
    font-weight: 500;
    line-height: 135%; /* 18.9px */
    letter-spacing: -0.42px;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.life_container .welfare_inner .wel_card .wel_link {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 10px 20px;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    border-radius: 6px;
    background: #0F50B1;
    color: #FFF;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    letter-spacing: -0.48px;
    cursor: pointer;
    margin-top: auto;
}

.life_container .welfare_inner .wel_card .wel_link:hover {
    background: #0D4390; /* 진한 블루로 변경 */
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* 약간 그림자 */
    transition: all 0.2s ease-in-out; /* 부드러운 애니메이션 */
}

.life_container .chart_inner {
    flex: 1;
    padding: 20px;
    display: flex;
    flex-direction: column;
}

.life_container .chart_inner .chart_list {
    flex: 1;
    gap: 10px;
    grid-template-rows: 431px;
}

.wel_modal .modal-body {
    padding: 0;
}

.wel_modal .modal-body > .row {
}

.wel_modal .modal-body > .row:first-child {
    border-bottom: 1px solid #DDD;
    background: #FFF;
}

.wel_modal .modal-body > .row > h3 {
    color: #222;
    font-family: Pretendard;
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 20px */
    letter-spacing: -0.4px;
    padding: 15px;
}

.wel_modal .wel_modal_desc {
    display: flex;
    padding: 15px;
    max-height: 400px;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    align-self: stretch;
    border-radius: 10px;
    background: #F5F5F5;
    color: #444;
    font-family: Pretendard;
    font-size: 18px;
    font-style: normal;
    font-weight: 500;
    line-height: 200%;
    letter-spacing: -0.36px;
    margin: 15px;
    margin-top: 0;
}

.wel_modal .wel_footer {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 0px 20px 20px 20px;
}

.wel_modal .wel_footer .modal_wel_link {
    color: #FFF;
    font-family: Pretendard;
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 100%; /* 16px */
    letter-spacing: -0.48px;
    display: flex;
    height: 36px;
    max-width: 280px;
    padding: 10px 20px;
    justify-content: center;
    align-items: center;
    flex: 1 0 0;
    border-radius: 6px;
    background: #0F50B1;
}

#markerPopup {
    transform: none !important;
    width:280px;
    /*min-height:110px;*/
    border-radius:15px;
    padding:7px;
    background:#fff;
    box-shadow:0 4px 8px rgba(0,0,0,0.15);
}

#popup_field {
    width:250px;
    height:14px;
    font-family: Pretendard;
    font-weight: 500;
    font-size: 14px;
    line-height: 100%;
    letter-spacing: -0.03em;

    background: linear-gradient(90deg, #EE6B4F 0%, #57BD51 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

    padding:0 8px;
    border-radius:6px;
    display:inline-block;
    margin-bottom: 10px;
}

#popup_contents {
    width:250px;
    /*min-height:56px;*/
    gap:5px;
}

#popup_title {
    font-family: Pretendard;
    font-weight: 600;
    font-size: 18px;
    line-height: 100%;
    letter-spacing: -0.03em;
    color:#222;
    padding-left:8px;
    border-radius:6px;
}

#popup_addr {
    font-family: Pretendard;
    font-weight: 400;
    font-size: 14px;
    line-height: 100%;
    letter-spacing:-0.03em;
    color:#777;
    padding:6px 0 6px 8px;
    border-radius:6px;
}

.popupCloseBtn {
    position:absolute;
    top:10px;
    right:10px;
    width:20px;
    height:20px;
    line-height:20px;
    text-align:center;
    cursor:pointer;
    opacity:1;
    transform:rotate(0deg);
    font-size:14px;
    font-weight:bold;
    z-index:9999;
}

@media screen and (max-width:1600px) {

}

@media screen and (max-width:1100px) {

    .life_container .list_header .list_summary {
        display: none;
    }

    .life_container .list_header {
        margin: 0;
    }

    .wel_modal .wel_modal_desc {
        max-height: 250px;
    }

    .life_container .welfare_inner .list_header_inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .life_container .welfare_inner .list_header_inner .search_btn {
        padding-left: 0;
        height: 27px;
    }

    .life_container .welfare_inner .welfare_list {
        display: flex;
        gap: 10px;
        width: 100%;
        overflow-x: auto;
        height: auto;
    }

    .life_container .welfare_inner .wel_card {
        width: 220px;
        min-width: 220px;
        height: auto;
    }

    .life_container .welfare_inner .wel_card .wel_desc {
        -webkit-line-clamp: 1;
    }

    .life_container .welfare_detail {
        left: 10px;
        bottom: auto;
        top: 85px;
    }

    .life_container .welfare_inner .list_header_inner .search_style {
        display: none;
    }
}

/*------------- 공지사항 --------------------*/
.notice_container .panel1 .box{
    border-radius: 0;
}

/*------------- 공지사항 상세 --------------------*/
.notice_view_container .panel1 {
    height: 100%;
}

.notice_view_container .panel1 .box{
    border-radius: 0;
    height: 100%;
}

.notice_view_container #notiContents {
    min-height: 200px;
}

/*------------- 데이터 리스트 --------------------*/
.data_list_container .contents {
    padding: 15px;
}

.data_list_container .download a{
    align-items: center;
    opacity: 1;
    border-radius: 6px;
    padding: 10px 20px;
    background: #0F50B1;
    color: white;
}


@media screen and (max-width:1600px) {

}

@media screen and (max-width:1100px) {
    .data_list_container .contents {
        padding: 0;
    }

    .data_list_container .contents .box {
        border-radius: 0;
    }
}

/*------------- 울주군특화통계 --------------------*/
.uljuStati_container .contents {
    padding: 15px;
    grid-template-areas: "panel2 panel1";
    grid-template-columns: 1fr 400px;   /* 왼쪽이 3배 넓게 */
    grid-template-rows: 1fr;          /* 한 줄만 */
}

.uljuStati_container .panel1 .box .box-content {
    width: 100%;
    height: calc(100% - 50px);
    min-height: 150px;
    display: flex;
}

.uljuStati_container .sector_group {
    grid-area: sector;
    display: flex;
    gap: 10px;
    padding: 10px;
    list-style: none;
    background: #f5f5f5;
    border-radius: 8px;
}

.uljuStati_container .sector_group li {
    padding: 6px 20px;
    background: #e0e0e0;
    border-radius: 15px;
    cursor: pointer;
}

.uljuStati_container .panel1 {
    grid-area: panel1;
    display: flex;
    flex-direction: column;
}

.uljuStati_container .panel1 > .box {
    position: relative;
    flex: 1;
    /*min-height: 300px;*/
}

.uljuStati_container .panel2 {
    grid-area: panel2;
    overflow-x: hidden;
}

.uljuStati_container .panel2 .box {
    min-height: 100%;
}

.uljuStati_container .panel2 .chart_list {
    grid-template-columns: repeat(2, 1fr);
    gap: 15px; /* 아이템 간 간격 */
}

#statiBoxWrap .box-header {
    position: relative;
    display: flex;
    flex-direction: column;
}

#statiBoxWrap .box-header .chart-data-src{
    flex: none;
    line-height: 1;
    font-size: 12px;
    color: #999;
    margin-top: 5px;
}

@media screen and (max-width:1600px) {
    .uljuStati_container .panel2 .chart_list {
        grid-template-columns: repeat(1, 1fr);
    }
}

@media screen and (max-width:1200px) {

    .uljuStati_container .outScrollBar {
        margin-left: 0;
        padding-right: 0;
        scrollbar-gutter: auto;
    }

    .uljuStati_container .panel1 {
        overflow: unset;
    }

    .uljuStati_container .panel2 {
        overflow: unset;
    }

    #container.uljuStati_container {
        height: calc(100dvh - 50px);
    }

    .uljuStati_container .contents {
        /*padding: 0px;*/
        grid-template-rows: auto auto;
        grid-template-columns: 1fr;
        grid-template-areas:
        "panel1"
        "panel2";
        overflow-y: auto;
    }

    .uljuStati_container .panel2 .chart_list {
        grid-template-columns: repeat(1, 1fr);
    }
}


/*------------- 마이페이지 --------------------*/

.mypage_container .contents .box{
    border-radius: 0;
}

.mypage_container .contents h2{
    margin: 35px 0;
    font-size: 36px;
}

.mypage_container .box .inner {
    max-width: 1600px;
    max-height: 713px;
}

.mypage_box {
    max-width: 350px;
}

.mypage_box .info {
    margin-bottom: 10px;
}

.mypage_box .info .tit {
    font-size: 16px;
    margin-bottom: 5px;
    height: 24px;
}

.mypage_box .info .cont input {
    font-size: 16px;
    border-radius: 5px;
}

/* 버튼 영역 */
.mypage_container .member_btn {
    width: 100%;
    padding-top: 35px;
    display: flex;
    justify-content: center;
}

.mypage_container .member_btn button {
    width: 100%;
    height: 50px;
    line-height: 46px;
    margin-right: 10px;
    border-radius: 6px;
    font-size: 18px;
    font-weight: 600;
    border: 1px solid #0e5ab5;
    color: #0e5ab5;
    background: #fff;
    cursor: pointer;
    transition: all 0.3s ease-out 0s;
}

.mypage_container .member_btn button:hover {
    background-color: #0e5ab5;
    color: #fff;
}

.mypage_container .member_btn button.bg_blue {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    width: 100%;
    height: 50px;
    padding: 16px 16px;
    border: none;
    border-radius: 8px;
    background: #0F50B1; !important;
    color: #fff; !important;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.mypage_container .member_btn button:last-child {
    margin-right: 0;
}

/*------------- 마이페이지 반응형 ----------------*/
@media screen and (max-width:480px) {
    .mypage_container .box .inner {
        max-width: 480px;
    }
}

/*------------- 로그인 ----------------*/
/* 로그인 페이지 전체 배경 흰색 */
body #container.mypage_container {
    background: #fff !important;
}
.contents.flex_style {
    display: flex;
    justify-content: center;
}

.login_panel {
    margin-top: 50px;
}

.login_panel .box {padding: 0;}
.login_panel .logo {text-align:center;}
.login_panel .logo img {height: 45px;}
.login_panel .form-group {margin-bottom: 10px;}
.login_panel .row.m-b-20 {margin-bottom: 20px;}
.login_panel .row.m-t-20 {margin-top: 20px;}
.login_panel .row.login_link {display: flex; flex-wrap: wrap; margin-left: -15px; margin-right: -15px;}
.login_panel .login_link {padding-bottom: 20px;}
.login_panel .login_link > div {position: relative; width: 50%; text-align: center;}
.login_panel .login_link > div > a {display:block; font-size: 14px;}
.login_panel .login_link > div::after {content: ''; display: block; position: absolute; right: 0; top: 5px; width: 1px; height: 12px; background-color: #ddd;}
.login_panel .login_link > div:last-child::after {display: none;}
.login_panel .login_link > div a:hover {font-weight: 500; color: #000; text-decoration: none;}
.login_panel .auth-box {padding: 45px 60px 55px; width: 447px;}
.login_panel label {display:block; margin-bottom: .5rem; pointer-events: none; font-size: 14px}
.login_panel input {width:100%; padding: 11px 20px; border:1px solid #dbdbdb; border-radius:4px; height: 47px;}
.login_panel .card .card-block {overflow-y:inherit;}
.login_panel .btn {width: 100%; color: #fff; margin-bottom: 40px; padding: 13px 16px; font-size: 16px; font-weight: 600; background: #0F50B1; border: 1px solid #0F50B1; border-radius: 4px;}
.login_panel .card .card-block p.text-inverse {font-size: 14px; padding-top: 25px; border-top:1px solid #dddddd; color:#999999 !important; text-align: center !important;}
.login_panel .input_error { font-size: 12px; }
.login_panel .login_info {font-size:18px; color:#333; margin-top:5px;}

@media screen and (max-width:720px) {
    .login_panel .auth-box {padding-left:60px; padding-right:60px;}
    .login_panel h4 {font-size:18px !important;}
    .login_panel label {font-size:13px;}
    .login_panel .login_link > div > a {font-size: 13px;}
}

@media screen and (max-width:620px) {
    .login_container {padding-top: 0 !important;}
}

@media screen and (max-width:420px) {
    .login_panel {margin-top: 13%;}
    .login_panel .logo img {height: 25px;}
    .login_panel .auth-box {margin-top: 0; padding:35px 30px; border-radius: 13px; width: 310px;}
    .login_panel .card .card-block p.text-inverse {font-size: 12px; line-height: 15px;}
    .login_panel label {font-size:12px;}
    .login_panel .login_link > div > a {font-size: 12px;}
    .login_panel .btn {font-size: 14px;}
    .login_panel .login_info {font-size:16px; color:#333; margin-top:5px;}
}

/*------------- 이전 디자인 -------------------*/

.view_box {
    border: 8px solid #369aff;
    overflow: hidden;
}

.view_box .tit strong {
    color: #3588dd;
    font-family: 'pretendard', serif;
    font-weight: 600;
}

.view_box .tit strong::before {
    margin-top: -8px;
}

.view_box .cont_pop p {
    /*min-height: 150px;*/
    max-height: 300px;
    padding: 1px;

    word-break: keep-all;
    overflow: auto;
}

.view_box .cont_pop p::-webkit-scrollbar {
    width: 3px;
    height:3px;
}
.view_box .cont_pop p::-webkit-scrollbar-thumb {
    background: #a9a9a9;
}


@media screen and (max-width: 1200px) {
    .view_box .cont_pop p {
        font-size: 2rem;
    }
}

@media screen and (max-width: 920px) {
    .layer_pop .cont a.btn {
        top: 0;
        right: 25px;
    }

    .layer_pop .cont a.btn:after {
        content: '';
        background-image: url("../../coding/images/main/ntc_modal_close.png");
        width: 16px;
        height: 16px;
    }
}

@media screen and (max-width: 620px) {
    .view_box .tit strong {
        font-size: 3rem;
    }
}

@media screen and (max-width: 420px) {
    .view_box .tit strong {
        font-size: 2.4rem;
    }

    .view_box .tit strong::before {
        width: 30px;
        height: 30px;
        background: url("../images/main/ntc_modal_icon.png") no-repeat center center/ cover;

        margin-top: -5px;
        margin-right: 10px;
    }

    .view_box .cont_pop p {
        font-size: 1.6rem;
    }
}

@media screen and (max-width: 360px) {
    .view_box {
        padding: 40px 10px;
    }

    .view_box .tit strong {
        font-size: 2rem;
    }
}

/*-------------------*/

@media screen and (max-width: 1400px) {
    .banner_inner {
        width: 100%;
    }

    .main_fixed {
        top: auto;
        bottom: 30px;
        right: 30px;
        transform: translate(0,0);
    }

    .ntc_box .left_box {
        padding: 0;
    }

    .bottom_bar .inner {
        width: 100%;
    }

    .bottom_bar .inner div a {
        display: none;
    }

    .ntc_modal {
        max-width: 800px;
    }
}


@media screen and (max-width: 1200px) {

    .ntc_box .left_box .ntc_tit {
        font-size: 2.4rem;
    }

    .main_box .right_box .guide_box {
        height: 421px;
        padding: 60px 40px 50px 40px;
    }
}

@media screen and (max-width: 1100px) {
    .banner_text h2 {
        font-size: 3.6rem;
    }

    .main_box .right_box .guide_box {
        background-size: 120% 100%;
        background-position: -80px;
    }

    .main_box .right_box .guide_box::after {
        position: absolute;
        content: '';
        width: 460px;
        height: 400px;
        right: -20px;
        scale: 0.8;
    }

    .tablet-break {
        display: block;
    }

    .ntc_box .left_box p {
        font-size: 1.8rem;
    }
}

@media screen and (max-width: 1024px) {

    .ntc_modal_lay {
        justify-content: center;
        align-items: center;
    }

    .ntc_modal_txt {
        max-height: 350px;
        font-size: 2rem;
    }

}

@media screen and (max-width: 920px) {

    .main_top_box {
        flex-direction: column;
    }

    .main_box .main_bottom_box {
        width: 100%;
    }

    .main_box .main_intro {
        margin-bottom: 20px;
        background-size: 300px;
        background-position: right -10px bottom -20px;
    }

    .main_box .right_box .guide_box::after {
        top: 0;
        right: 0;
    }

    .center-img {
        width: calc(100% - 60px);
        height: calc(100svh - 200px);
    }

    .center-img > img {
        width: 100%;
        padding-bottom: 50px;
        background: #0A2138;
    }

    .ntc_close_btn {
        top: 30px;
        right: 30px;

    }

    .ntc_close_btn img:first-child {
        display: none;
    }

    .ntc_close_btn img:last-child {
        display: block;
    }

}

@media screen and (max-width: 768px) {

    .banner_text h2 {
        font-size: 3rem;
    }

    .main_banner {
        width: 100%;
        background: url("../images/main/mo_banner.png") no-repeat center center/ cover;
    }

    .banner_inner {
        width: 100%;
        justify-content: flex-start;
        padding: 0 25px;
    }

    .banner_text {
        width: 100%;
        text-align: center;
    }

    .main_box {
        padding: 25px 0;
        margin-top: 0;
        gap: 30px;
    }

    .main_top_box {
        width: 100%;
    }

    .box_left a {
        font-size: 1.8rem;
        width: 135px;
    }

    .ntc_box .right_slider ul li p {
        font-size: 1.6rem;
        height: auto;
    }

    .ntc_box .left_box {
        width: 45%;
        margin-left: 5px;
    }

    .ntc_box .left_box p {
        font-size: 1.6rem;
    }

    .ntc_box .left_box .ntc_tit {
        font-size: 2.4rem;
    }

    .ntc_box .right_slider {
        width: 55%;
    }

    .bottom_bar .inner {
        width: 100%;
    }

    .mobile-break  {
        display: block;
    }

    .bottom_lay {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 15px;
        padding-left: 0;
    }

    .bottom_bar {
        height: auto;
        padding: 25px 30px;
    }

    .bottom_bar .inner div {
        display: flex;
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .fs_16 {
        font-size: 1.6rem;
    }

    .bottom_bar .inner div a {
        display: none;
    }

    .bottom_bar .inner div .ml15 {
        margin-left: 0!important;
        display: flex;
        flex-direction: row;
        align-items: center;
    }

    .bottom_bar .inner::before {
        background: url("../images/main/mo_bottom_character.png") no-repeat center center/ cover;
        width: 120px;
        height: 120px;

        left: auto;
        bottom: -25px;
        right: -30px;
    }

    .bottom-right-buttons {
        width: 100%;
        padding: 0 20px;
    }

    .main_fixed {
        bottom: 10px;
        right: 10px;
        gap: 10px;
    }

    .main_fixed button img {
        width: 80px;
        height: 80px;
    }

    .bottom_bar_btn {
        font-size: 2rem;
    }

    .ntc_modal {
        max-width: calc(100% - 60px);
    }

    .ntc_close_btn {
        right: 60px;

    }

}

@media screen and (max-width: 720px) {
    .ntc_box .right_slider ul li {
        min-height: 200px;
    }
}

@media screen and (max-width: 620px) {

    .main_box strong {
        /*font-size: 1.875rem;*/
        line-height: 125%;
    }

    .main_box .right_box .guide_box {
        padding: 30px;
        height: 350px;
    }

    .main_box .right_box .guide_box::after {
        top: -20px;
        right: -50px;
        scale: 0.7;
    }

}
@media screen and (max-width: 520px) {

    .banner_text p {
        font-size: 1.8rem;
    }


    .main_box .right_box .guide_box {
        margin-bottom: 20px;
        background-size: 120% 100%;
        background-position: -80px;
    }

    .main_box .right_box .guide_box ul {
        top: 120px;
    }

    .main_box .right_box .guide_box::after {
        top: 20px;
        right: -80px;
        scale: 0.6;
    }

    .box_left {
        gap: 30px;
    }

    .box_style h3 {
        font-size: 2.4rem;
    }

    .box_right {
        display: flex;
        flex-direction: column;
        justify-content: flex-end;
        align-items: flex-end;
    }

    .box_right img {
        width: 120px;
        height: 120px;
    }


}

@media screen and (max-width: 420px) {

    .main_box .right_box .guide_box {
        margin-bottom: 20px;
        background-size: 160% 100%;
        background-position: -80px;
    }

    .main_box .main_intro {
        background-size: 250px;
    }

    .main_box .right_box .guide_box::after {
        top: 20px;
        right: -80px;
        scale: 0.6;
    }

    .bottom-right-buttons button  {
        font-size: 1.8rem;
    }

    .footer li.footer_cont .footer_link a,
    .footer li.footer_cont address span {
        font-size: 1.3rem;
    }

    .ntc_modal_tit img {
        width: 30px;
        height: 30px;
    }

    .ntc_modal_tit h3 {
        font-size: 2.4rem;
    }

    .ntc_modal_txt {
        font-size: 1.6rem;
    }

    .ntc_close_btn {
        top: 20px;
        right: 50px;
    }
}

@media screen and (max-width: 360px) {
    .ntc_modal_tit h3 {
        font-size: 2rem;
    }
}

/*------*/

input[disabled], select[disabled] {
    pointer-events: none;  /* 클릭, 포커스 방지 */
}

.exmpt_box {
    max-width: 1400px;
}

/*common.css*/
.upload_wrap {
    padding: 15px;
}

.upload_wrap .file_preview {
    margin-top: 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 12px 6px;
}

.upload_wrap .file_preview li {
    display: flex;
    align-items: center;
    margin-right: 6px;
    padding: 6px;
    border-radius: 4px;
    border: 1px solid #dddddd;
}

.upload_wrap .file_preview li p {
    margin-right: 8px;
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1
}

.upload_wrap .file_preview li img {
    width: 20px;
    height: 20px;
}

.gpki_box .radio_wrap {
    background-color: #ffffff;
}

.radio_wrap {
    position: relative;
    padding: 10px;
    border-radius: 6px;
    background-color: #f4f4f5;

    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 20px;
}
.radio_wrap label {
    position: relative;
    /*margin-right: 12px;*/
    /*padding-top: 5px;*/
}
.checkbox + label:after {
    border: 2px solid #369AFF;
    border-top: none;
    border-right: none;
}
.content_box {
    border-top: 0;
}

@media screen and (max-width: 768px) {
    .radio_wrap label {

    }

    .file-upload span {
        width: 80% !important;
    }

    .file-upload label {
        padding: 15px 10px!important;
    }
}

/*style*/


@media screen and (max-width: 1400px) {
    .contents h2 {
        font-size: 3.2rem;
    }
}


@media screen and (max-width: 920px) {
    .util_box {
        position: relative;
        justify-content: center;
    }

    .contents h2 {
        font-size: 2.8rem;
    }

    .util_box li span {font-size: 1.6rem;}

    .contents h2 {
        margin: 60px 0 20px;
    }
}

@media screen and (max-width: 800px) {
    .board_list tr {
        padding: 15px;
    }

    .board_list tr td.subject {
        font-size: 2rem;
    }

    .data_list_container .download {
        text-align: left;
        font-size: 14px !important;
        padding-top: 10px;
    }

    .table tr td {
        font-size: 1.6rem;
    }
}

/*아이문화패스 신청 안내*/
.imp_intro {
    position: relative;
    width: calc(100% - 200px);
    height: 300px;
    background: #FFDC4F;
    border-radius: 25px 25px 25px 100px;
    box-sizing: border-box;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    align-items: center;
}

.imp_intro::before {
    position: absolute;
    top: 0;
    content: '';
    display: block;
    width: 100%;
    height: 300px;
    background: url(../images/sub/intro_bg.png) center no-repeat;
    border-radius: 25px 25px 25px 100px;
}

.imp_intro h3 {
    position: relative;
    font-size: 3.8rem;
    font-weight: 800;
    line-height: 140%;
    letter-spacing: -2px;
    z-index: 1;
    text-align: center;
    color: #222;
}

.imp_intro img {
    scale: 0.8;
    position: absolute;
    bottom: -45px;
    right: -60px;
}

.sub_guide_box .intro_box img {
    width: 100%;
    margin: 0 auto;
}

.passend_lay {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    margin-top: 30px;
}

.passend_lay .tit {
    font-size: 1.8rem;
    font-weight: 600;
    color: #369aff;
}

.passend_lay .home_btn {
    width: 200px;
    background: #369aff;
    color: #fff;
}

.detail_box {
    padding: 80px 0;
}

.detail_box2 {
    padding: 40px 0;
    border: 2px dashed #ddd;
    border-radius: 10px;
}

.detail_box3 {
    padding: 20px;
    /*font-size: 1.125rem;*/
}

.detail_box.detail_box2 img {
    width: 100%;
}

.detail_box .sub_tit {
    font-size: 3.5rem;
    line-height: normal;
}

.detail_box .sub_txt {
    margin: 40px 0;
    line-height: 160%;
    letter-spacing: -0.6px;
}



.detail_box .tit_box {
    display: flex;
    justify-content: center;
}

.detail_box .tit_box img {
    display: block!important;
}

.detail_box .tit_box strong.tit {
    font-size: 1.8rem;
    font-weight: 600;
}

.mobile-br {
    display: none;
}

.intro_mo {
    display: none;
    /*margin: 0 20px;*/
}

.intro_mo ul {
    display: flex;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 5px;
}

.intro_mo ul li {
    width: calc(50% - 5px);
    min-height: 95px;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 15px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-weight: 600;
    letter-spacing: -0.6px;
}

.intro_mo ul li:nth-child(1) {background: #FF5733;}
.intro_mo ul li:nth-child(2) {background: #FFC107;}
.intro_mo ul li:nth-child(3) {background: #B344E1;}
.intro_mo ul li:nth-child(4) {background: #3458E9;}
.intro_mo ul li:nth-child(5) {background: #18C762;}

@media screen and (max-width:920px) {
    .imp_intro {
        width: calc(100% - 40px);
    }

    .imp_intro h3 {
        font-size: 3.2rem;
    }

    .sub_guide_box .intro_box img {
        display: none;
    }

    .intro_mo {
        display: block;
    }

    .sub_guide_box .intro_box .intro_mo img {
        display: block;
        margin: 0 auto;
        width: 300px;
    }
}

.responsive_img {
    display: flex;
    justify-content: center;
    align-items: center;
}

.responsive_img img {
    width: auto;
}

.responsive_img img:nth-child(1) {
    display: block;
    width: auto;
}

.responsive_img img:nth-child(2) {
    display: none;
}

.responsive_img2 img:nth-child(1) {
    display: block;
    width: auto;
}

.responsive_img2 img:nth-child(2) {
    display: none;
}

.responsive_img3 img:nth-child(1) {
    width: 80%;
}

.responsive_img4 img:nth-child(1) {
    width: 90%;
}

.responsive_img_1100 img:last-child {
    display: none;
}

.responsive_img_820 img:last-child {
    display: none;
}

.detail_box.detail_box2.franc_regi_img img {
    width: 80%;
}

@media screen and (max-width: 1200px) {
    .imp_intro h3 span.mobile-br {
        display: block;
    }
}

@media screen and (max-width: 1100px) {
    .responsive_img_1100 img:first-child {
        display: none;
    }

    .responsive_img_1100 img:last-child {
        display: block;
    }
}

@media screen and (max-width: 820px) {
    .responsive_img_820 img:first-child {
        display: none;
    }

    .responsive_img_820 img:last-child {
        display: block;
    }
}

@media screen and (max-width:768px) {
    /*모바일 화면시 줄바꿈 기능*/
    .mobile-br {
        display: block;
    }

    .imp_intro h3 {
        position: absolute;
        top: -200px;
        width: 50%;
        max-width: 340px;
        min-width: 340px;
        font-size: 2.8rem;
    }

    .sub_guide_box {
        padding:  20px;
    }

    .imp_intro {
        position: relative;
        margin-top: 200px;
        height: 80px;
        /*overflow: hidden;*/
        border-radius: 12px 12px 12px 25px;
    }

    .imp_intro::before {
        border-radius: 12px 12px 12px 25px;
        height: 100%;
    }

    .imp_intro img {
        scale: 0.6;
        bottom: -80px;
        right: -90px;
    }

    .responsive_img img:nth-child(1) {
        display: none;
    }

    .responsive_img img:nth-child(2) {
        display: block;
        width: 60%;
    }

    .responsive_img2 img:nth-child(1) {
        display: none;
    }

    .responsive_img2 img:nth-child(2) {
        display: block;
    }

    .detail_box .sub_tit {
        font-size: 2.8rem;
    }

    .detail_box .sub_txt {
        font-size: 1.6rem;
        padding: 0 20px;
    }

    .contents h2 {
        margin: 40px 0 10px;
    }

}


@media screen and (max-width:620px) {
    .sub_txt {
        font-size: 1.6rem;
        line-height: 130%;
    }

    .detail_box img {
        width: 100%;
    }

    .intro_mo ul {
        flex-direction: column;
    }

    .intro_mo ul li {
        width: 100%;
        min-height: auto;
    }
}

@media screen and (max-width: 520px) {
    .main_top_box .box_style {
        padding: 25px 20px;
    }

    .card_txt {
        margin-left: 0;
    }
}

@media screen and (max-width:420px) {

    .banner_text h2 {
        font-size: 2.4rem;
    }

    .banner_text p {
        font-size: 1.6rem;
    }

    .box_right img {
        width: 100px;
        height: 100px;
    }

    .responsive_img img:nth-child(2) {
        width: 80%;
    }

    .imp_intro h3 {
        min-width: 300px;
        max-width: 300px;
    }

    .imp_intro img {
        scale: 0.4;
        bottom: -110px;
        right: -110px;
    }


    .sub_txt {
        margin-bottom: 20px;
        line-height: 130%;
        letter-spacing: -.8px;
        font-size: 1.6rem;
    }

    .detail_box .sub_txt {
        font-size: 1.6rem;
    }

}

/*신청하기 버튼*/
.apply_btn {
    width: 200px;
    height: 52px;
    background: #369AFF;
    margin: 0 auto;
    border-radius: 8px;
}

.apply_btn a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    font-weight: 600;
    text-decoration: none;
}

@media screen and (max-width: 768px) {
    .apply_btn a {
        font-size: 1.6rem;
    }
}

/*--------------------------------------------------------------------*/


/*로그인*/

.login_box ul li,
.login_box ul li input {
    border-radius: 5px;
    font-size: 1.8rem;
}

.login_box ul li.login_link {
    justify-content: flex-end;
}

.login_box .login_btn {
    border-radius: 8px;
}

.right_link {
    font-size: 1.6rem;
}
/*회원가입_join1*/

.join_ntc {
    border-radius: 12px;
}

.join_ntc em {
    font-weight: 600;
    color: #FB5954;
}

.join_ntc ul li {
    font-size: 1.8rem;
    line-height: 160%;
}

.join_ntc ul li::before {
    background: url(../images/sub/join_check.png) no-repeat;
}

.automatic_box strong.tit {
    font-size: 2.4rem;
    font-weight: 600!important;
    margin-bottom: 10px;
    color: #111;
}

.franc_regi_tit h3 {
    margin: 30px 0 10px;
}

.agree_box strong,
.franc_regi_tit h3 {
    font-size: 2.4rem;
    font-weight: 600;
    margin-bottom: 10px;
}

.agree_box p {
    margin-bottom: 20px;
    border-radius: 10px;
    font-size: 1.6rem;
    line-height: 130%;
    letter-spacing: -0.6px;
}

.img_block {
    display: block!important;
}

.caution_text p {
    padding: 0;
    border: none;
    word-break: keep-all;
}

.tit_box {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
}

.tit_box strong.tit {
    margin-bottom: 0;
    margin-left: 5px;
}

.older_14, .franc_oath {
    position: relative;
    padding: 20px 30px;
    margin: 20px 0;
    border: 1px solid #ddd;
    border-radius: 10px;
    display: flex;
    justify-content: flex-start;
    align-items: center;
}

.older_14 label,
.franc_oath label{
    position: relative;
    /*padding-top: 3px;*/
}

.all_agree {
    margin: 20px 0 30px;
    border-radius: 10px;
    font-size: 1.8rem;
}

.all_agree label {
    padding-top: 0;
}

.automatic_box .agree_cont {
    height: 250px;
    background: #F9F9F9;
}

.agree_cont {
    border-radius: 10px 10px 0 0;
}

.agree_cont .cont_box {
    font-size: 1.4rem;
    line-height: 150%;
}

.agree_cont .cont_box strong {
    font-size: 1.6rem;
    font-weight: 500;
    margin-bottom: 0;
}

.list_1st > li > ul > li {
    font-size: 1.4rem;
}

.agree_label {
    border-radius: 0 0 10px 10px;
    font-size: 1.8rem;
    font-weight: 500;
}

.agree_label.agree_label2 {
    border-radius: 10px;
    border: 1px solid #ddd;;
    margin-top: 12px;
}

.joincert .cont a {
    /*    background: #369AFF;*/
}

@media screen and (max-width: 620px) {

    .agree_box strong,
    .franc_regi_tit h3 {
        font-size: 2rem!important;
    }

    .agree_cont .cont_box strong {
        font-size: 1.6rem!important;
    }

    .agree_cont .cont_box {
        font-size: 1.4rem;
    }

    .join_ntc ul li {
        font-size: 1.6rem;
    }

    .list_1st > li > ul > li {
        font-size: 1.4rem;
    }

    .agree_label label, .all_agree label {
        font-size: 1.6rem;
        letter-spacing: -0.6px;
    }

    .older_14,
    .franc_oath {
        padding: 15px;
    }

    .older_14 label,
    .franc_oath label {
        padding-top: 0;
        padding-left: 30px;
    }
}

/*join2*/

.join_box {
    font-size: 1.4rem;
}

.join_box .info .info_txt,
.join_box .info .cont {
    border-radius: 5px;
    font-size: 1.8rem;
}

.join_box .info .cont a.confirm {
    border-radius: 0 5px 5px 0;
}

.join_box .info .notification {
    display: flex;
    font-size: 1.8rem;
}

.join_box .info .notification p {
    position: relative;
    margin-right: 20px;
}

.form_box > ul > li.notification span {
    position: relative;
    padding-left: 30px;
    margin-right: 20px;
}

.form_box > ul > li.notification span::before {
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 22px;
    border-radius: 100%;
    border: 1px solid #d0d0d0;
    background-color: #fff;
    content: '';
}

.form_box > ul > li.notification span.chk::after {
    content: '';
    position: absolute;
    left: 6px;
    top: 6px;
    width: 12px;
    height: 12px;
    border-radius: 100%;
    transition: all 0.2s;
    background-color: #369AFF;
}

.join_btn {
    border-radius: 8px;
}

@media screen and (max-width:620px) {
    .form_box > ul > li.notification {
        flex-direction: inherit;
    }

    .form_box > ul > li.notification p {
        margin-bottom: 0;
    }

    .form_box > ul > li.notification span {
        font-size: 1.6rem;
    }

    .form_box > ul > li.notification span::before {
        width: 18px;
        height: 18px;
    }

    .form_box > ul > li.notification span.chk::after {
        left: 5px;
        top: 5px;
        width: 10px;
        height: 10px;
    }
}

/*join3*/

.join_done .login_btn {
    border-radius: 8px;
}

.join_done p {
    font-size: 1.8rem;
}


/*----------------------------------------------------------------------*/

/*비밀번호 변경*/
.pw_btn a.pw_prev,
.pw_btn a.pw_next {
    border-radius: 8px;
}

/*----------------------------------------------------------------------*/

/*아이문화패스 신청*/

/*250404_대문페이지*/

.pass_text {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    gap: 15px;
    text-align: left;
    border: 3px solid #369aff;
    border-radius: 15px;
    padding: 40px 30px 30px;
    width: 100%;
}

.pass_text ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pass_text ul li {
    position: relative;
    margin-left: 30px;
}

.pass_text ul li strong {
    flex: 1;
    min-width: 0;
}

.pass_text ul li::before {
    display: block;
    position: absolute;
    content: '';
    background: url("../images/sub/pass_check.png") no-repeat center center/ cover;
    width: 20px;
    height: 20px;
    margin-right: 10px;
    left: -30px;
    top: 5px;
}

.pass_check {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;

    position: absolute;
    top: -25px;
    left: 50%;
    transform: translate( -50%, 0);

    width: 270px;
    background: #369aff;
    padding: 10px 20px;
    border-radius: 30px;
}

.pass_check p {
    color: #fff;
    font-weight: 600;
    letter-spacing: -0.6px;
}

.pass_text {
    margin-top: 60px;
    margin-bottom: 30px;
    word-break: keep-all;
    text-align: center;
}

.pass_text h3 {
    font-weight: 600;
    font-size: 2.4rem;
    color: #369aff;
}

.pass_text .pass_check {
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: -0.6px;
    word-break: keep-all;
}

.pass_text p {
    /*font-size: 1.25rem;*/
    line-height: 160%;
    letter-spacing: -0.6px;
    word-break: keep-all;
}

.pass_text p span {
    display: inline-block;
    margin-top: 10px;
    color: #ff4d4d;
    /*font-size: 1.250rem;*/
    font-weight: 600;
    line-height: normal;
}

.pass_check2 .pass_text {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    position: relative;
    gap: 15px;
    text-align: left;
    border: 3px solid #369aff;
    border-radius: 15px;
    padding: 50px 30px 30px;
    width: 100%;
    margin-top: 0;
    margin-bottom: 0;
}

.pass_check2 .pass_text ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.pass_check2 .pass_text ul li {
    /*font-size: 1.125rem;*/
    position: relative;
    margin-left: 30px;
    line-height: 160%;
    letter-spacing: -0.6px;
}

.pass_check2 .pass_text ul li strong {
    flex: 1;
    min-width: 0;
    color: #111;
}

.pass_check2 .pass_text ul li::before {
    display: block;
    position: absolute;
    content: '';
    background: url("../images/sub/pass_check.png") no-repeat center center/ cover;
    width: 21px;
    height: 21px;
    margin-right: 10px;
    left: -30px;
}

#container.pass_app {
    min-height: auto;
}

.pass_lay {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    margin: 30px 0;
    position: relative;
}

.pass_box {
    background: #fff;
    box-shadow: 0 10px 30px rgba(0,0,0,0.3) ;
    border-radius: 30px;
    padding: 30px;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    width: 50%;
    gap: 10px;
}

.pass_check2 {
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.pass_info {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 10px;

    z-index: 1;
}

.pass_info .text_bg {
    position: relative;
    width: fit-content;
    font-size: 2rem;
    font-weight: 600;
    z-index: 1;
}

.pass_info .text_bg:after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: -1;
    width: 100%;
    height: 15px;
    background: #AAEFFF;
;
}

.pass_info p {
    font-size: 1.6rem;
    line-height: 130%;
    letter-spacing: -0.6px;
    font-weight: 400;
    color: #222;
    word-break: keep-all;
}

.pass_info h4 {
    font-size: 3.6rem;
    font-weight: 800;
    line-height: 120%;
    position: relative;
    letter-spacing: -1px;
    color: #1a1a1a;
}

.res_block {
    display: inline;
}

.pass_info p {
    font-size: 1.6rem;
    font-weight: normal;
    word-break: keep-all;
    letter-spacing: -0.6px;
}

.pass_img {
    position: absolute;
    top: 0;
    right: 0;
    width: 200px;
    height: 200px;
}

.pass_img img {
    width: 100%;
}

.pass_w_box {
    width: 100%;
    height: 100px;
    border-radius: 15px;
    background: #fff;
    margin-top: 20px;
    padding: 20px;

    display: flex;
    justify-content: center;
    align-items: center;
}

.pass_w_box p {
    line-height: 160%;
}

.pass_caution {
    display: flex;
    align-items: flex-start;
    flex-wrap: nowrap;
    gap: 5px;
}

.pass_caution p {
    line-height: 130%;
    color: #ff4d4d;
}

.pass_caution > img {
    width: 16px;
    height: 16px;
    margin-top: 2px;
}

.pass_box .btn_box {
    width: 100%;
    margin-top: 0;
}

.pass_box .btn_box a {
    border-radius: 50px;
    width: 100%;
}

.btn_box .passapp_btn {
    height: 60px;
    line-height: 60px;

    color: #fff;
    background: #369aff;
    box-shadow: 0 7px 15px 0 rgba(0, 0, 0, 0.15);
}

.btn_box .passapp_mo_btn {
    background: #369aff;
    color: #fff;
    flex: 1;
}

.pass_info_lay {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: row;

    position: relative;
}

.ipin_btn_lay {
    display: flex;
    flex-direction: row;
    gap: 5px;
}

.check_mo_btn, .ipin_btn {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 5px;

    padding: 5px 15px;
    border-radius: 5px;
    background: #222;
    color: #fff;

    width: fit-content;
    cursor: pointer;
    font-size: 1.4rem;
}

.ipin_btn {
    background: #008dff;
    padding: 0;
}

.ipin_btn a {
    display:flex;
    justify-content: flex-start;
    align-items: center;
    gap: 5px;

    padding: 5px 15px;
    width: 100%;
    height: 100%;

    font-weight: 500;
}

.ipin_btn a:hover {
    text-decoration: none;
    font-weight: bold;
}

.check_mo_btn.click .mobile_modal {
    display: flex;
}

.check_mo_btn img, .ipin_btn img {
    width: 12px;
    height: 12px;
}


.pass_box .btn_box a {
    font-size: 2.4rem;
}

.mobile_modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100dvh;
    background: rgba(0,0,0,0.5);
    z-index: 999;

    display: none;
    justify-content: center;
    align-items: center;
    padding: 20px;
}

.mo_pass_check {
    min-width: 300px;
    max-width: 600px;
    background: #fff;
    border-radius: 15px;
}

.mo_pass_check .mo_pass_tit {
    padding: 20px;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;

    background: #369aff;
    border-radius: 15px 15px 0 0;

    color: #fff;
    font-size: 1.8rem;
    font-weight: 600;
}

.mo_pass_check .pass_text {
    margin-top: 0;
    margin-bottom: 0;

    padding: 20px;
    border-radius: 0 0 15px 15px;
    background: #fff;
    text-align: left;
    border: none;
}

.gpki_caution,
.ipin_caution {
    display: none;
}

.mo_pass_check .btn_box {
    margin-top: 0;
    padding: 0 20px 20px;
    gap: 10px;
}

.mo_pass_check .btn_box a:first-child {
    background: #555;
}

@media screen and (max-width: 1400px) {

    .pass_info h4 {
        font-size: 3.2rem ;
    }

    .pass_img {
        width: 180px;
        height: 180px;
    }

    .pass_tit {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

}

@media screen and (max-width: 1100px) {
    .pass_img {
        width: 150px;
        height: 150px;
    }

    .pass_box .btn_box a {
        font-size: 2rem;
    }
}

@media screen and (max-width: 920px) {

    .intro_pass {
        margin-top: 30px;
    }

    .pass_lay {
        flex-direction: column;
        margin-top: 30px;
    }

    .pass_box {
        align-items: flex-start;
        gap: 10px;

        border-radius: 25px;
        padding: 20px;

        width: 100%;
        text-align: left;
    }

    .pass_text {
        margin-top: 40px;
    }

    .pass_text h3 {
        font-size: 2rem;
    }

    .pass_text ul li {
        color: #333;
        font-size: 1.6rem;
        line-height: 160%;
        letter-spacing: -0.6px;
    }

    .pass_caution {
        justify-content: flex-start;
        align-items: flex-start;
        height: auto;
    }

    .pass_w_box {
        height: auto;
    }

    .side_card_box.automatic_box {
        flex-direction: column;
    }

    .pass_info {
        height: auto;
        margin-top: 0;
    }

    .pass_info .text_bg {
        font-size: 1.6rem;
    }

    .pass_info span {
        font-size: 1.4rem;
    }

    .pass_info h4 {
        font-size: 4rem;
        word-break: keep-all;
    }

    .pass_info p {
        font-size: 1.4rem;
        text-align: left;
    }

    .pass_info_lay {
        width: 100%;
        display: flex;
        justify-content: space-between;
        flex-direction: row;
        gap: 10px;
    }

    .pass_info_lay .pass_info {
        width: 80%;
    }

    .pass_check2 .pass_text {
        display: none;
    }

    .pass_box .btn_box a {
        font-size: 1.8rem;
    }

    .btn_box .passapp_btn {
        height: 50px;
        line-height: 50px;
    }

    .pass_img {
        top: 50%;
        transform: translate(0, -50%);
        width: 200px;
    }

    .res_block {
        display: inline-block;
    }

    .check_mo_btn.click .mobile_modal {
        display: flex;
    }

    .step_none {
        display: none;
    }

}

@media screen and (max-width: 768px) {

    .pass_caution .tablet-break {
        display: inline;
    }

    .pass_box {
        padding: 20px;
    }
}

@media screen and (max-width: 620px) {
    .pass_info h4 {
        font-size: 3.6rem;
    }

    .pass_img {
        width: 150px;
    }
}

@media screen and (max-width: 520px) {

    .pass_info h4 {
        font-size: 2.8rem;
    }

    .pass_text p {
        font-size: 1.6rem;
    }

    .pass_text p span {
        font-size: 1.6rem;
    }

}

@media screen and (max-width: 420px) {
    .pass_info_lay .pass_info {
        width: 100%;
        z-index: 1;
    }

    .pass_info h4 {
        font-size: 2.4rem;
    }

    .pass_img {
        width: 100px;
    }


    .check_mo_btn, .ipin_btn {
        font-size: 1.2rem;
        padding: 3px 6px;
        gap: 3px;
    }

    .ipin_btn {
        padding: 0;
    }

    .ipin_btn a {
        padding: 3px 6px;
    }

}

@media screen and (max-width: 360px) {
    .pass_box .btn_box a {
        font-size: 1.6rem;
    }
}

/*-------0417 신청방법 선택화면 수정--------*/

.intro_pass {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 30px;

    text-align: center;
}

/*.intro_pass_bg {*/
/*    background: #0A2138;*/
/*    padding-bottom: 10px;*/
/*}*/

.intro_pass_bg::before {
    z-index: 0;
    content: '';
    position: absolute;
    background: #fff url("../images/sub/intro_pass.png")no-repeat center bottom;
    width: 100%;
    height: 500px;
}

.intro_pass h3 {
    font-size: 4.8rem;
    font-weight: 800;
    line-height: 145%;
    letter-spacing: -0.6px;
    z-index: 1;
    color: #1A1A1A;
}

.intro_pass h3 span {
    position: relative;
}

.intro_text {
    font-size: 2rem;
    line-height: 160%;
    letter-spacing: -0.6px;
    color: #1A1A1A;
}

.intro_text .caution {
    color: #ff4d4d;
}

.intro_text .caution span {
    font-weight: 600;
}

@media screen and (max-width: 920px) {

    .intro_pass h3 {
        font-size: 3.2rem;
    }

    .intro_pass h3 span::before {
        height: 50%;
    }

    .intro_text {
        font-size: 1.4rem;
    }

    .intro_text p {
        word-break: keep-all;
    }

    .intro_pass_bg::before {
        background: url("../images/sub/intro_pass_mo.png") no-repeat center center / cover;
        height: 350px;
    }
}

@media screen and (max-width: 460px) {
    .intro_pass h3 {
        font-size: 2.4rem;
    }
}

/*---------------*/

.badge {
    color: #fff;
    padding: 4px 8px;
    border-radius: 4px;
    /*font-size: 1.4rem;*/
    font-weight: 600;
}

.app_delete_btn {
    margin-right:10px;
    color: #ffffff;
    background-color: #ff6a6a;
}

.temporary_save_btn {
    color: #ffffff;
    background-color: #555555;
}

.form_bg {
    padding: 20px;
    background: #f1f3f6;
    border: 2px dashed #dddddd;
    border-bottom: 2px dashed #dddddd !important;
    border-radius: 10px;
}

.form_box > ul > li {
    padding: 15px;
    border-bottom: none;
}

.form_box > ul > li > label {
    font-weight: 600;
    width: auto;
}

.form_box > ul > li > p {
    width: auto;
}

.form_box > ul > li > label::after, .form_box > ul > li > p::after {
    display: none;
}

.select_info {
    margin-left: 20px;
    font-size: 1.8rem;
    font-weight: 100!important;
}

.child_box {
    width: 100%;
    padding: 20px;
    border: 1px solid #eeeeee;
    border-radius: 10px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
}

.child_info {
    width: 100%;
    display: flex;
    flex-direction: column;
    row-gap: 5px;
    gap: 10px;
}

.child_info.file {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: row;

}

.child_info p {
    font-weight: 600;
}

.child_info input {
    padding: 10px;
    border: 1px solid #dddddd;
    border-radius: 5px;
}

.document_guide p {
    color: #000000;
}

.form_tit {
    font-weight: 600;
    margin-bottom: 15px;
    padding: 0!important;
    padding-top: 30px!important;
}

.form_tit em {
    color: #369AFF;
}

.file-upload {
    display: flex; /* 가로 정렬 */
    align-items: center; /* 수직 정렬 */
    gap: 10px; /* 간격 조정 */
}

.file-upload span {
    display: inline-block;
    width: 60%;
    background: #fff;
    padding: 15px;
    border-radius: 6px;
    border: 1px solid #dddddd;
    color: #c2c2c2;
}

.file-upload input[type="file"] {
    flex: 1; /* 너비 자동 조정 */
    padding: 8px;
    border: 1px solid #dddddd;
    border-radius: 4px;
}

.file-upload label {
    width: auto!important;
    background-color: #333333;
    color: white;
    padding: 15px 30px;
    border-radius: 6px;
    cursor: pointer;
    white-space: nowrap;
}

.file-upload input[type="file"] {
    display: none;
}

.name_tit, .tit {
    font-weight: 500!important;
}

.side_card_box.automatic_box {
    display: flex;
    gap: 40px;
}
.side_card_box.automatic_box .side_cont {
    position: relative;
    width: 300px;

}

.side_card {
    position: sticky;
    top: 120px;
    padding: 30px;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin-bottom: 112px;

    width: 100%;

    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;

    line-height: 130%;
}

.side_card img {
    height: 200px;
}

.side_card h3 {
    margin-top: 13px;
    font-size: 2.4rem;
    font-weight: 600;
}

@media screen and (max-width: 920px) {
    .side_card_box.automatic_box .side_cont {
        width: 100%;
    }
}

@media screen and (max-width: 768px) {
    .side_card {
        margin-bottom: 0;
        font-size: 1.6rem;
    }

    .side_card h3 {
        font-size: 2rem;
    }

    .automatic_box strong.tit {
        font-size: 2rem;
    }

    .side_card_box.automatic_box .side_cont {
        width: 100%;
    }
}

.card_info {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    width: 100%;
    margin-top: 30px;
    gap: 30px;
}

.card_text {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    width: 100%;
    gap: 10px;
    letter-spacing: -1px;
}

.card_text h4 {
    color: #111;
    font-weight: 600;
}


.card_text p::before {
    content: '';
    border: 2px solid #000;
    display: inline-block;
    width: 10px;
    height: 5px;
    border-top: none;
    border-right: none;
    transform: rotate(-45deg);
    margin-bottom: 3px;
    margin-right: 7px;
}

.side_card_box.automatic_box .cont_list {
    flex: 1;
}

.automatic_box .info_box {
    flex-direction: column;
    justify-content: flex-start;
    margin-bottom: 15px;
    border-radius: 8px;
    padding: 20px;
}

[data-form-type="childResult"] .info_box {
    border:2px solid #369aff;
    background: #FCFDFF;
}

.automatic_box .info_box > div {
    gap: 5px;
}

.automatic_box .info_box p.tit {
    font-weight: 600!important;
}

.automatic_box .info_box p {
    font-size: 1.8rem;
    font-weight: 400;
    color: #111;
}

.automatic_box .info_box:last-child {
    margin-bottom: 0;
}

.automatic_box .info_box > div .input {
    height: auto;
    padding: 10px;
    font-size: 1.8rem;
}

.automatic_box .info_box > div .input_box {
    flex: 1;
    gap: 0;
    flex-direction: column;

    width: 100%;
}

.automatic_box .info_box .input_box_wrap {
    flex: 1;
    display: flex;
    align-items: start;
    width: 100%;
    gap: 6px;
}

.automatic_box .info_box .input_box_wrap .dash {
    height: 49px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.automatic_box .info_box > div .sub_title {
    width: 50px;
    text-align: center;
    height: 35px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.tit.required::after {
    content: '*';
    margin-top: -5px;
    margin-left: 3px;
    color: #369AFF;
    /*font-size: 1.25rem;*/
}

.automatic_box input[readonly]:focus {
    outline: none;
    box-shadow: none;
}

.automatic_box input[readonly] {
    pointer-events: none;
}

/**/

#container.app_contents input.no-border,
#container.app_contents input.no-border {
    color: #333;
    background: #f6f7f9;
}
[data-form-type="preview"] .app_contents input.no-border,
[data-form-type="preview"] .app_contents input.no-border {
    border: none;
    color: #333;
    background: none;
    font-size: 1.8rem;
}

/**/


.verify_lay {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 15px;
}

label em {
    color: #369AFF;
}

.document_guide {
    margin-bottom: 15px;
}

.document_guide ul li {
    padding-bottom: 0;
}

#previewInner {
    display: none;
}

.exmpt_box > ul > li select {
    width: 300px;
}

.verify_lay select {
    height: 40px;
    width: 300px;
    border-radius: 6px;
}

.verify_btn, .child_check_btn {
    padding: 10px 30px;
    background: #999;
    border-radius: 6px;
    color: #fff;
    cursor: pointer;
}

a.next_btn, a.sub_btn {
    background: #369AFF;
}

a.next_btn.disabled, a.sub_btn.disabled{
    background: rgb(181 181 181);
    pointer-events: none;
}

.btn_box a {
    cursor: pointer;
}

.btn_box a.gray_btn {
    background: #555;
    color: #fff;
}

.child_btn_box {
    display: flex;
    justify-content: center;
    margin-top: 20px;
}

.gpki_check_btn {
    display: block;
    height: 35px;
    line-height: 35px;
    color: #fff;
    font-size: 1.8rem;
    text-decoration: none;
    text-align: center;
    border-radius: 5px;
    background-color: #999;
    cursor: pointer;
    padding: 0 12px;
}

.verify_pass {
    margin-top: 40px;
}

.verify_pass.on {
    display: block;
}

.verify_pass .info_box {
    gap: 40px;
    border: 1px solid #eee;
    border-top: 1px solid #eee;
    border-radius: 6px;
}

.verify_pass .info_box p.tit {
    width: auto;
}

.verify_pass .info_box .name {
    color: #666565;
}

.verify_pass strong.tit {
    margin-bottom: 0;
}

.verify_pass .cont > p {
    margin-bottom: 15px;
}

.child_list {
    display: none;
}

.child_list.on {
    display: block;
}

.atmt_n_data {
    overflow: hidden;
    padding: 20px 40px;
    background: #f9f9f9;
}

.atmt_n_data .slick-prev:before,
.atmt_n_data .slick-next:before {
    color: black;
}

.slick-wrap {
    position: relative;
}

.slick-wrap .prev img {
    transform: rotate(0deg) translate(0, 50%);
    filter: grayscale(100%) brightness(0);
    position: absolute;
    left: 15px;
    width: 35px;
    height: 35px;
    bottom: 50%;
    cursor: pointer;

}
.slick-wrap .next img {
    transform: rotate(180deg); /* 회전하여 왼쪽 방향으로 변경 */
    filter: grayscale(100%) brightness(0); /* 검은색으로 만들기 */
    position: absolute;
    right: 10px;
    width: 35px;
    height: 35px;
    transform: translate(0, 50%);
    bottom: 50%;
    cursor: pointer;
}

.child_write {
    display: none;
    margin-top: 20px;
}

.child_write select {
    padding: 8px;
    border: 1px solid #dddddd;
    border-radius: 5px;
    height: 45px;
}

.child_write.on {
    display: block;
}

.child_write strong {
    margin-bottom: 10px;
}

.child_write > p {
    margin-bottom: 10px;
}

.child_write > p > em {
    color: #369aff;
}

.child_lay {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 10px;
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 20px;
}

.child_lay .child_box {
    padding: 0;
    border: none;
}

.atmt_n_data .slick-item {
    padding: 0 12px;
}

.atmt_n_data.slick-initialized {
    overflow: unset;
}

.slick_card {
    height: 180px;
    background: #fff;
    border: 1px solid #cfcfcf;
    border-radius: 20px;
    padding: 18px;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    flex-direction: column;
    cursor: pointer;
    text-align: center;
}

.slick_card.select {
    border: 1px solid #369aff;
}

.slick_card h4 {
    font-size: 2.2rem;
    font-weight: 600;
    margin-bottom: 8px;
}

.slick_card .card-header {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: auto;
    font-size: 1.8rem;
}

.slick_card .card-header .step {
    padding: 4px 10px;
    border-radius: 16px;
    background-color: #a9a9a9;
    color: #ffffff;
}

.slick_card p {
    color: #333;
}

.slick_card p, .slick_card h4 {
    height: 20px!important;
}

.automatic_box .info_box .message {
    color: black;
    display: block;
    margin: 0;
    max-width: none;
    padding: 6px;
}

.automatic_box .info_box .message .view_caution p {
    color: #369aff;
    font-weight: 600;
}

.automatic_box .info_box .message.success {
    color: #26bc47;
}
.automatic_box .info_box .message.error {
    color: red;
}

.automatic_box .info_box.caution_box {
    border: 2px solid red;
}
.automatic_box .info_box.none_box {
    border: none;
}
.automatic_box .info_box.none_box .caution_background {
    background-color: rgb(204 204 204);
    border-radius: 8px;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    opacity: 0.5;
    z-index: 5;
}

.automatic_box .info_box.none_box .caution_popup {
    width: 270px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-weight: 800;
    /*font-size: 1.125rem;*/
    padding: 20px;
    box-shadow: rgba(0, 0, 0, 0.24) 0px 3px 8px;
    z-index: 10;
    background-color: #ffff;
    display: flex;
    border-radius: 8px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.automatic_box .info_box.success_box {
    border: 2px solid #369aff;
}

.automatic_box .info_box > div .input.caution_input {
    border: 1px dashed red;
    /*background: #ff32320f;*/
}

.automatic_box .input_box .input_error {
    font-size: 1.4rem;
    width: 100%;
    color: red;
    padding: 4px;
    display: none;
}
.automatic_box .input_box .input_error.error {
    display: block;
}
.automatic_box .input_box .input_error::before {
    content: '*';
}

.automatic_box.gpki_box .info_box > div {
    align-items: flex-start;
}


.automatic_box.gpki_box .info_box p.tit {
    height: 35px;
    display: flex;
    align-items: center;
    font-weight: 600!important;
}

.caution.show {
    display: block;
}

.child_viewbox {
    margin: 30px auto;
    width: 800px;
    background: #f9f9f9;
    border-radius: 12px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.view_text {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    align-items: flex-start;
}

.view_text h4 {
    font-weight: 600;
    width: 25%;
}

.view_text .file_view {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
    width: 75%;
}

.view_text p, .view_text li {
    font-weight: 400;
    margin-bottom: 6px;
}

.view_caution {
    margin: 0 auto;
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
}

.view_caution p {
    font-weight: 600;
    color: #333;
    word-break: keep-all;
    text-align: center;
}

@media screen and (max-width: 768px) {
    .verify_lay {
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .verify_lay select, .exmpt_box > ul > li select {
        width: 260px!important;
    }

    .select_info {
        margin-left: 0;
    }

    .verify_btn {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
    }

    #verifyPass .input_box input {
        min-width: auto;
    }

    .gpki_check_btn, .child_check_btn {
        width: 100%;
    }

    .child_check_btn {
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .atmt_n_data {
        height: 216px;
    }

    .verify_pass .info_box {
        flex-direction: column;
        gap: 15px!important;
    }

    .form_bg {
        flex-direction: column;
        align-items: flex-start!important;
        gap: 10px;
    }

    .cont_list {
        font-size: 1.6rem;
    }


    .automatic_box.gpki_box .info_box > div {
        align-items: flex-start;
    }

    .automatic_box .info_box > div .input {
        font-size: 1.6rem;
    }

    .automatic_box .info_box p {
        font-size: 1.6rem;
    }

    .child_box {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
    }

    .card_text p {
        font-size: 1.6rem;
    }

    .form_tit {
        display: flex;
    }

    .child_viewbox {
        width: 100%;
    }

    .view_text h4 {
        width: auto;
    }

    .view_text {
        flex-direction: column;
        gap: 3px;
    }

    .view_caution {
        flex-direction: column;
    }
}

@media screen and (max-width: 620px) {
    .form_tit {
        flex-direction: row!important;
    }

    .automatic_box .info_box > div {
        align-items: flex-start;
        flex-direction: column;
    }

    .automatic_box .info_box > div:first-child {
        flex-direction: column;
    }
}



/*----------------------------------------------------------------------*/

/*나의 정보*/

.enrollment_tab {
    margin: 30px 0;
}

.mypage_tit {
    display: inline-block;
    margin: 10px 0 5px;
    font-size: 2.4rem;
    font-weight: 600;
}

.user_box {
    display: flex;
    gap: 30px;
}

.user_l, .user_r {
    width: 50%;
    border-radius: 12px;
    border: 1px solid #ddd;
    padding: 20px;

    display: flex;
    flex-direction: column;
    gap: 15px;
}

.user_r.style_none {
    border: 0;
    border-radius: 0;
    padding: 0;
}

.user_info, .child_info {
    width: 100%;
    display: flex;
    flex-direction: column;
    row-gap: 5px;
    /*gap: 10px;*/
}

.user_info p {
    font-weight: 600;
}

.user_info .tit {
    font-weight: 600!important;
}

.child_info p {
    font-weight: 600;
}

.user_info input, .child_info input {
    padding: 10px;
    border: 1px solid #dddddd;
    border-radius: 5px;

    font-size: 1.8rem;
}

.user_info input.lock .child_info input.lock {
    background: #f6f7f9;
    color: #999;
    cursor: default;
}

.password_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 175px;
    height: 44px;
    padding: 10px 20px;
    border-radius: 6px;
    background: #444;
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    font-size: 18px;
    line-height: 100%;
    white-space: nowrap;
 }

.password_btn a {
    font-size: 1.6rem;
    text-decoration: none;
}

.tit.mypage {
    font-size: 2.4rem;
    font-weight: 600;
}

.modify_btn {
    background: #008dff;
    color: #fff;
    margin-left: 10px;
}

.secession_btn, .delete_btn {
    background: #555;
    color: #fff;
    margin-right: 10px;
}

.agree_radio {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
}

.agree_radio p {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;

    font-weight: 400;
}

/* 기본 라디오 숨기고 커스텀용 스타일링 */
.agree_radio input[type="radio"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid #ccc;
    border-radius: 50%;
    background-color: #fff;
    margin-right: 8px;
    position: relative;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

/* 선택된 상태 (안쪽 점) */
.agree_radio input[type="radio"]:checked::before {
    content: '';
    width: 8px;
    height: 8px;
    background-color: #4CAF50;
    border-radius: 50%;
    position: absolute;
    top: 3px;
    left: 3px;
}

/*  disabled + readonly 상태 스타일 */
.agree_radio input[type="radio"][disabled][readonly] {
    cursor: not-allowed;
}

.agree_radio input[type="radio"][disabled][readonly] + label {
    color: #999;
}

/* 라벨 기본 스타일 */
.agree_radio label {
    padding-left: 0px;
    cursor: default;
    color: #333;
}

.notification p {
    position: relative;
}

.radio:checked+label:after {
    background: #008dff;
}

.modify_modal {
    position: fixed;
    top: 0;
    left: 0;

    width: 100vw;
    height: 100dvh;
    background: rgba(0,0,0,0.6);
    z-index: 9999;

    display: none;
    justify-content: center;
    align-items: center;
}

.modify_modal.on {
    display: flex;
}

.modal_box {
    position: relative;
    max-height: 95vh;
    overflow: hidden;
    overflow-y: auto;
    background: #fff;
    padding: 60px 20px 30px;
    border-radius: 20px;
    width: 30%;
    min-width: 500px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

/*.close_btn {*/
/*    position: absolute;*/
/*    top: 30px;*/
/*    right: 30px;*/
/*}*/

.modal_overflow {
    max-height: 450px;
    overflow: auto;
}

.modal_overflow::-webkit-scrollbar {
    width: 3px;
    height: 3px;
}

.modal_overflow::-webkit-scrollbar-thumb {
    background: #a9a9a9;
}

.modal_box .modal_input {
    display: flex;
    flex-direction: column;
    gap: 10px;
    /*overflow: auto;*/
    width: calc(100% - 15px);
}

.modal_box .btn_box {
    margin-top: 20px;
}

.modal_box .btn_box a {
    width: 40%;
}

.modal_box .btn_box .delete_btn {
    margin-right: 5px;
}

.modal_box .btn_box .modify_btn {
    margin-left: 5px;
}

.child_info input[type="file"] {
    display: none;
}

.child_file {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 5px;
}

.file_name {
    display: inline-block;
    width: 75%;
    background: #fff;
    padding: 10px;
    border-radius: 6px;
    border: 1px solid #dddddd;
    color: #c2c2c2;
}

.file_name.lock {
    background: #f6f7f9;
    color: #999;
    cursor: default;
}

.child_file_btn {
    width: 25%;
    background-color: #333333;
    color: white;
    padding: 12px 30px;
    border-radius: 6px;
    text-align: center;
    cursor: pointer;
    white-space: nowrap;
}

.child_file_btn:hover {
    background-color: #008dff;
}


.child_file_btn:active {
    background-color: #008dff;
}

.child_file input[disabled] + .child_file_btn {
    background-color: #bdc3c7;
    cursor: not-allowed;
    opacity: 0.6;
}

.app_table_lay {
    overflow-x: auto;
}

.app_table {
    min-width: 600px;
}

.app_table th, .app_table td {
    padding:10px;
}

.app_table thead {
    border-top: 2px solid #333;
    border-bottom: 1px solid #333;
}

.app_table thead tr {
    font-weight: 600;
}

.app_table tbody tr {
    border-bottom: 1px solid #e7e7e7;
    cursor: pointer;
    transition: all 0.2s;
}

.app_table tbody tr:hover {
    background-color: rgba(206, 238, 255, 0.45);
}

.app_table tbody tr td {
    color: #555;
    text-align: center;
}

.regi_number {
    margin-top: 50px;
}

.regi_number strong {
    display: flex;
    justify-content: center;
    align-items: center;

}

.regi_number .btn_box {
    margin-top: 10px;
}

.regi_btn {
    background: #008dff;
    color: #fff;
}

.child_table.mo_block {
    display: none;
}

.grade_class_wrap {
    display: flex;
    gap: 8px; /* 학년과 반 사이 간격 */
}

.disabled_tag {
    pointer-events: none;
    text-decoration: none;
    width:15%;
    height:50px;
    line-height:50px;
    text-align: center;
    background-color: #333;
    color: #dddddd;
    border-radius: 0 5px 5px 0;
}

@media screen and (max-width: 820px) {
    .user_box.franc_lay {
        flex-direction: column;
    }

    .user_l, .user_r {
        width: 100%;
    }
}



@media screen and (max-width: 768px) {
    .user_box {
        flex-direction: column;
        gap: 0;
    }

    .user_l, .user_r {
        width: 100%;
    }

    .user_l {
        border-bottom: none;
        border-radius: 12px 12px 0 0;
        padding-bottom: 0;
    }

    .user_r {
        border-top: none;
        border-radius: 0 0 12px 12px;
        padding-top: 0;
    }

    .user_info input, .child_info input {
        font-size: 1.6rem;
    }

    .password_btn {
        width: 100%;
    }

    .disabled_tag {
        height: 50px;
        line-height: 50px;

        width: 20%!important;
    }

    .btn_box {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 3px;
    }

    .btn_box a {
        width: 100%;
    }

    .btn_box a.next_btn {
        margin-left: 0;
    }

    .modal_box {
        min-width: calc(100% - 60px);
    }

    .child_file {
        flex-direction: column;
    }

    .file_name, .child_file_btn {
        width: 100%;
    }

    .child_slide.pc_block {
        display: none;
    }

    .child_table.mo_block {
        margin-top: 10px;
        display: block;
        text-align: center;
    }

    .child_table.mo_block tbody tr:hover {
        cursor: pointer;
        background: #f5f5f5;
    }

    .agree_column {
        display: flex;
        flex-direction: column;
        gap: 10px;

        margin: 5px 0 15px;
    }

    .app_table_lay {
        overflow-x: scroll;
    }

    .app_table_lay::-webkit-scrollbar {
        /*width: 20px;*/
        height: 4px;
        border-radius: 2px;
    }

    .app_table_lay::-webkit-scrollbar-thumb {
        border-radius: 2px;
        background: #999999;
    }

    .mypage_tit {
        font-size: 2rem;
        margin: 15px 0 5px;
    }

}

@media screen and (max-width: 520px) {
    .agree_radio label {
        font-size: 1.4rem;
    }

    .tit.mypage {
        font-size: 1.6rem;
    }
}

/*------------------------FAQ--------------------------*/

.search_style {
    border: 1px solid #ddd;
    border-radius: 6px;
    padding-left: 10px;
}

.search_style.inoutDate {
    padding-left: 0;
}

.data_list_container .board_top ul li {
    margin-left: 20px;
}

.board_top ul .search_style input {
    border: none;
    padding: 0;
    outline: none;
}

.search_style .search_btn {
    height: 100%;
    width: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}

.board_top .total {
    background: #f9f9f9;
    padding: 15px;
    border-radius: 12px;
}

.accordion_wrap ul li .tit a {
    display: flex;
    justify-content:flex-start;
    align-items: center;
    gap: 5px;
    line-height: 130%;

    word-break: keep-all;
    text-align: left;
    padding: 45px 50px 45px 20px;
    font-size: 2.4rem;
}

.accordion_wrap ul li .tit a.click {
    color: #008dff;
    border-bottom: 1px solid #008dff;
}

.accordion_wrap ul li .tit a::after {
    content: url(../images/sub/faq_arrow.png);
}

.accordion_wrap ul li .tit a.click::after {
    transform: rotate(180deg);
}

.accordion_wrap ul li .acc_submenu {
    padding: 0 40px;
    line-height: 160%;
    letter-spacing: -0.6px;
    word-break: keep-all;
    border-top: 1px solid #ddd;
    background-color: #f9f9f9;
    display: flex;
    align-items: center;
    transition: 0.3s;
}

.accordion_wrap ul li .acc_submenu.active {
    padding: 40px;
}

.acc_submenu {
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.1s ease-out, opacity 0.3s ease-out;
}

.acc_submenu.active {
    max-height: 500px;
    opacity: 1;
}

@media screen and (max-width: 1100px) {
    .data_list_container .download a {
        padding: 10px 23px;
    }
}

@media screen and (max-width: 768px) {
    .accordion_wrap ul li .acc_submenu {
        font-size: 1.6rem;
    }

    .accordion_wrap ul li .tit a {
        font-size: 1.8rem;
    }

    .data_list_container .download a {
        padding: 10px 16px;
    }
}


@media screen and (max-width: 420px) {
    .board_top ul li {
        margin-left: 0 !important;
    }
    .data_list_container .download a {
        width: 75px;
        height: 35px;
        padding: 0 10px;
        font-size: 16px;
    }
}

/*사용처 안내*/
.franc_intro_lay {
    margin-bottom: 60px;
}

.franc_intro_lay:last-child {
    margin: 0;
}

.franc_intro_lay .tit {
    margin-bottom: 10px;
}

.franc_intro_lay .tit strong {
    font-size: 2.4rem;
    font-weight: 600;
    letter-spacing: -0.6px;
}

.franc_intro_lay .tit p {
    word-break: keep-all;
}

.franc_caution {
    /*padding: 10px 30px;*/
    padding: 30px;
    background: #f9f9f9;
    border-radius: 20px;
}

.franc_caution ul {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.franc_caution ul li {
    position: relative;
    padding-left: 25px;
    word-break: keep-all;
    margin-left: 35px;
}

.franc_caution > p {
    margin: 8px;
    position: relative;
    padding-left: 25px;
}

.franc_caution .before_dot::before {
    content: '•';
    display: block;
    position: absolute;
    top: -3px;
    left: 0;
    width: 18px;
    height: 15px;
    font-size: 35px;
}

.franc_caution .before_check::before {
    content: '';
    display: block;
    position: absolute;
    top: 5px;
    left: 0;
    /*transform: translate(0, -50%);*/
    width: 16px;
    height: 15px;
    background: url(../images/sub/join_check.png) no-repeat;
}

.franc_caution ul li em {
    color: #111;
}

.franc_change_caution {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;

    margin-top: 10px;
    /*padding: 15px 0 0 0;*/
    padding: 15px 20px;
    border-radius: 20px;

    /*background: #f9f9f9;*/
    background: #F0F8FF;

    color: #003366;
    font-weight: 600;
}

.franc_change_caution p {
    word-break: keep-all;
}

/*.franc_change_caution p span {*/
/*    color: #ff4d4d;*/
/*}*/

.franc_step_lay {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: center;
    gap: 50px;

    margin-top: 30px;
}

.franc_step_box_lay {
    display: flex;
    justify-content: space-between;
    gap: 100px;

    width: 100%;
}

.franc_step_box {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 10px;

    width: 100%;
}

.franc_step_top {
    width: 40%;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.franc_step_top span {
    width: fit-content;
    padding: 4px 15px;
    border-radius: 20px;
    background: #369aff;
    color: #fff;
    font-size: 1.6rem;
    font-weight: 500;
    line-height: 130%;
}

.franc_step_top p {
    font-weight: 600;
    letter-spacing: -1px;
    word-break: keep-all;
}

.franc_step_top p b {
    display: block;
}

.franc_step_img {
    width: 100%;
    /*padding: 30px;*/
    border: 1px solid #ddd;
    border-radius: 8px;
    overflow: hidden;
}

.franc_step_img img {
    width: 100%;
}

.franc_inquiry_lay {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 50px;

    width: 50%;

    padding: 30px 50px;
    border-radius: 12px;

    background: #f9f9f9;
}

.franc_inquiry_box {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.franc_inquiry_text {
    display: flex;
    flex-direction: column;
    gap: 10px;

}

.franc_inquiry_text h4 {
    font-size: 2rem;
    font-weight: 600;
    color: #111;
}

.franc_inquiry_text p {
    color: #333;
    line-height: 130%;
    letter-spacing: -0.6px;
}

.inquiry_call_num {
    font-size: 3.2rem;
    font-weight: 600;
}

.franc_inq_line {
    width: 1px;
    height:50px;

    background: #ddd;
}

.inquiry_btn {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;

    padding: 10px 25px;
    border: 2px solid #369aff;
    border-radius: 30px;

    color: #369aff;
    font-weight: 600;

    cursor: pointer;
}

.inquiry_btn:hover {
    text-decoration: none;
}

@media screen and (max-width: 1100px) {
    .franc_step_box_lay {
        flex-direction: column;
        gap: 50px;
    }

    .franc_step_top p b {
        display: inline-block;
    }

    .franc_step_top {
        width: 100%;
    }

    .franc_inquiry_box {
        flex-direction: column;
        align-items: flex-start;
        gap: 30px;
    }

    .inquiry_call_num {
        line-height: 50px;
    }
}

@media screen and (max-width: 820px) {

}


@media screen and (max-width: 768px) {
    .franc_inquiry_lay {
        flex-direction: column;
        padding: 20px;
        gap: 20px;

        width: 100%;
    }

    .franc_inquiry_box {
        flex-direction: unset;
        align-items: center;
        gap: 30px;

        width: 100%;
    }

    .franc_caution {
        padding: 20px;
        border-radius: 10px;
    }

    .franc_caution ul li::before {
        top: 3px;
        transform: translate(0, 0);
    }

    .franc_change_caution {
        align-items: flex-start;
    }

    .franc_intro_lay .tit strong {
        font-size: 2rem;
    }

    .franc_inquiry_text h4 {
        font-size: 1.8rem;
    }

    .inquiry_call_num {
        font-size: 2.4rem;
    }

    .franc_inq_line {
        width: 100%;
        height: 1px;
    }
}

@media screen and (max-width: 520px) {
    .franc_step_box {
        flex-direction: column;
    }


    .franc_inquiry_box {
        flex-direction: column;
        align-items: flex-start;
        gap: 20px;
    }

    .inquiry_call_num {
        line-height: normal;
    }

    .inquiry_btn {

    }
}

@media screen and (max-width: 420px) {
    .franc_step_box_lay {
        flex-direction: column;
    }
}

    /*-----------------------*/


/*사용처 검색*/

.franc_map {
    position: relative;

    width: 100%;
    height: 86vh;
    background-color: #f5f5f5;
}

.map_wrap {
    display: flex;
    height: 100%;
}

.map_btn {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translate(-50%, 0);
    display: flex;
    gap: 10px;
    z-index: 999;
}

.map_btn > div {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 10px 20px;
    border-radius: 30px;
    cursor: pointer;
    color: #fff;

    transition: background-color 0.2s, transform 0.2s;
}

.map_btn > div img {
    width: 20px;
    height: 20px;
    display: inline-block;
    vertical-align: middle;
}

.map_btn div p {
    font-weight: 600;
}

/* 현재 위치로 이동 - 검정 배경 */
.move_btn {
    background-color: #222;
}

.move_btn:hover {
    background-color: #444;
}

.mo_move_btn {
    display: none;
    justify-content: center;
    align-items: center;

    padding: 10px;
    border-radius: 10px;

    position: absolute;
    top: -50px;
    left: 10px;

    background: #222;
    cursor: pointer;
}

.mo_move_btn img {
    width: 20px;
    height: 20px;
}

.mo_move_btn:hover {
    background: #444;
}


/* 현 지도에서 검색 - 파란 배경 */
.map_search_btn {
    background-color: #369aff;
}

.map_search_btn:hover {
    background-color: #0056b3;
}

.mo_map_search_btn {
    display: none;
    justify-content: center;
    align-items: center;
    gap: 10px;

    border-radius: 30px;
    padding: 10px 15px;
    background: #369aff;
    color: #fff;

    position: absolute;
    top: 100px;
    left: 50%;
    transform: translate(-50% , 0);
    z-index: 1;

    cursor:pointer;
    font-weight: 600;
}

.mo_map_search_btn:hover ,
.mo_map_search_btn:active {
    background: #0056b3;
}

.mo_map_search_btn img {
    width: 20px;
    height: 20px;
}

.franc_map .map_sidebar {
    transform: translateX(0);
    position: absolute;
    left: 0;
    width: 350px;
    height: 100%;
    background: #fff;
    padding-top: 100px;
    transition: 0.5s;
    z-index: 10;
    border-right: 1px solid #ddd;
}

.sidebar_btn {
    position: absolute;
    top: 50%;
    right: -50px;
    width: 40px;
    height: 60px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);

    display: flex;
    justify-content: center;
    align-items: center;

    cursor: pointer;
}

.sidebar_btn img {
    transition: .5s;
    filter: opacity(0.3) drop-shadow(0 0 0 #ccc);
}

.sidebar_btn:hover img {
    filter: opacity(1) drop-shadow(0 0 0 #369aff);
}

.franc_map .map_sidebar.close {
    transform: translateX(-350px);
}

.franc_map .map_sidebar.close .sidebar_btn img {
    transform: rotate(180deg);
}

.bottom_btn {
    position: absolute;
    top: -30px;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 40px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);

    display: flex;
    justify-content: center;
    align-items: center;

    cursor: pointer;
}

.bottom_btn img {
    transition: .5s;
    filter: opacity(0.3) drop-shadow(0 0 0 #ccc);
}

.bottom_btn:hover img {
    filter: opacity(1) drop-shadow(0 0 0 #369aff);
}

.bottom_btn img {
    transform: rotate(270deg);
}

.search_map {
    /*height: 150px;*/
    width: 100%;
    background: #eee;
    padding: 15px;

    display: flex;
    flex-direction: column;
    gap: 5px;
}

.search_select {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: row;
    gap: 5px;
    width: 100%;
}

.selected {
    width: 100%;
    padding: 10px;
    background: #fff;
    border: 1px solid #ccc;
    cursor: pointer;
    text-align: left;
    border-radius: 5px;
}

.selected::after {
    content: "";
    position: absolute;
    right: 10px;
    top: 50%;
    width: 15px;
    height: 15px;
    background: url("../images/sub/faq_arrow.png") no-repeat center center / contain;
    transform: translateY(-50%) rotate(0deg);
    transition: transform 0.3s ease;
    pointer-events: none;
}

.selected.open::after {
    transform: translateY(-50%) rotate(180deg);
}

.selected.open {
    outline: none;
    border: 1px solid #369aff;
}

.excel-btn a {
    width: 100%;
    text-align: center;
    display: inline-block;
    background-color: #369aff;
    color: white;
    padding: 10px 20px;
    border-radius: 30px;
    text-decoration: none;
    font-weight: 600;
    transition: background-color 0.2s, transform 0.2s;
}

.excel-btn a:hover {
    background-color: #007BFF;
}

.search_map .search_style {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 0 15px 15px;
    background: #fff;
    border-radius: 6px;
}

.search_map .search_style:focus-within {
    border: 1px solid #369aff;
}

.search_map .search_style input {
    border: none;
    padding: 0;
    outline: none;
    width: calc(100% - 50px);
    font-size: 1.8rem;
}

.franc_list {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    padding: 15px;
    gap: 15px;
    overflow: auto;
    height: calc(100% - 195px);
}

.franc_box {
    width: 100%;
    padding: 15px;
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 15px;
    cursor: pointer;
}

.franc_text {
    /*width: calc(100% - 92px);*/
    width: 100%;
}

.franc_badge {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 5px;

}

.franc_num {
    width: 20px;
    height: 20px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 15px;
    color: #fff;
}

.franc_cate {
    width: auto;
    height: 20px;
    padding: 0 7px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 15px;
    font-size: 1.4rem;
    color: #fff;
}

/*-------------사용처 태그 색상-------------*/

.franc_badge.tour div {
    background: #FFC107;
}

.franc_badge.gym div {
    background: #18C762;
}

.franc_badge.edu div {
    background: #3458E9;
}

.franc_badge.culture div {
    background: #FF5733;
}

.franc_badge.region div {
    background: #B344E1;
}

.franc_badge.other div {
    background: #2FB2C9;
}

/*-------------------------------------*/

.franc_info {
    margin-top: 6px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.franc_info h3 {
    margin: 0;
    font-size: 2rem;
    font-weight: 600;

    overflow: hidden;
    white-space: normal;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    word-break: keep-all;
}

.franc_info p {
    font-size: 1.6rem;
    color: #777;
    line-height: 130%;
    letter-spacing: -1px;

    overflow: hidden;
    white-space: normal;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    word-break: keep-all;
}

.franc_img {
    width: 92px;
    height: 92px;
    background: #333;
    border-radius: 8px;
}

.marker_lay {
    position: absolute;
    top: 30%;
    left: 75%;

    display: flex;
    justify-content: flex-start;
    gap: 10px;
}

.map_marker {
    width: 25px;
    height: 25px;

    display: flex;
    justify-content: center;
    cursor: pointer;
}

.map_marker.culture {background: url("../images/sub/map_culture.png")no-repeat;}
.map_marker.gym {background: url("../images/sub/map_gym.png")no-repeat;}
.map_marker.edu {background: url("../images/sub/map_edu.png")no-repeat;}
.map_marker.tour {background: url("../images/sub/map_tour.png")no-repeat;}
.map_marker.region {background: url("../images/sub/map_region.png")no-repeat;}
.map_marker.other {background: url("../images/sub/map_other.png")no-repeat;}

.marker_num {
    display: flex;
    justify-content: center;
    align-items: center;

    width: 30px;
    height: 30px;
    background: #fff;
    border-radius: 15px;
    margin-top: 7px;
}

.map_marker.culture .marker_num p {color: #FF5733;}
.map_marker.gym .marker_num p {color: #18C762;}
.map_marker.edu .marker_num p {color: #3458E9;}
.map_marker.tour .marker_num p {color: #FFC107;}
.map_marker.region .marker_num p {color: #B344E1;}
.map_marker.other .marker_num p {color: #2FB2C9;}

#franc-popup {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 999;
    display: none;
}

#franc-popup.active {
    display: flex;
}

.marker_info {
    position: absolute;
    top: 20px;
    left: 20px;
    min-width: 300px;
    max-width: 300px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 12px;
    padding: 15px;
    transition: all 0.3s ease;
    display: none; /* 기본적으로 숨기기 */
    justify-content: space-between;
    gap: 10px;
}

.marker_info.active {
    display: flex; /* active 상태일 때만 보이도록 */
}

.franc_info .marker_text {
    overflow: hidden;
    white-space: normal;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    word-break: keep-all;
}

.marker_r {
    display: flex;

    flex-direction: column;
    gap: 10px;
}

.marker_close {
    display: flex;
    justify-content: flex-end;
}

.marker_close img {
    cursor: pointer;
}

/*사용처 마커 팝업*/
#franc-popup {
    display: none;
}
#franc-popup.active {
    display: block;
}
#franc-popup.active .marker_info {
    display: flex;
}

.custom-select {
    position: relative;
    display: inline-block;
    width: 200px;
}

.option-list {
    display: none;  /* 기본적으로 드롭다운 숨김 */
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: #fff;
    border: 1px solid #ccc;
    box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1);
    border-radius: 5px;
    max-height: 150px;
    overflow-y: auto;
    z-index: 100;
}

.subject {
    cursor : pointer;
}

.subject.download {
    cursor : auto;
}

.option-list li {
    padding: 10px;
    cursor: pointer;
}

.option-list li:hover {
    background: #f1f1f1;
}


@media screen and (max-width: 768px) {
    .franc_map {
        height: 100svh;
    }

    .franc_map .map_sidebar {
        transform: translateY(0);
        height: 46%;
        left: auto;
        bottom: 0;
        width: 100%;
        padding-top: 0;
    }

    .selected {
        font-size: 1.6rem;
    }

    .search_map .search_style input {
        font-size: 1.6rem;
    }

    .custom-select {
        width: 50%;
    }

    .map_btn {
        display: none;
    }

    .sidebar_btn {
        display: none;
    }

    .bottom_btn {
        display: flex;
    }

    .mo_move_btn {
        display: flex;
    }

    .mo_map_search_btn {
        top: 110px;
        display: flex;
    }

    .search_map {
        border-top: 1px solid #ddd;
    }

    .franc_map .map_sidebar.close {
        left: 0;
        transform: translateY(100%);
    }

    .franc_map .map_sidebar.close .bottom_btn img {
        transform: rotate(90deg);
    }

}

@media screen and (max-width: 620px) {
    .mo_map_search_btn {
        top: 90px;
    }
}

@media screen and (max-width: 360px) {
    .mo_map_search_btn {
        /*font-size: 1.4rem;*/
        letter-spacing: -.6px;
    }
}

/*사용처 신청*/
.franc_lay .info_box > div .input.caution_input {
    border: 1px dashed red;
    /*background: #ff32320f;*/
}

.franc_lay .input_box .input_error {
    font-size: 1.4rem;
    width: 100%;
    color: red;
    padding: 4px;
    display: none;
}

.franc_lay .input_box .input_success {
    font-size: 1.4rem;
    width: 100%;
    color: #369AFF;
    padding: 4px;
    display: none;
}

.franc_lay  input[readonly] {
    pointer-events: none;
}

.franc_lay .input_box .input_error.error {
    display: block;
}
.franc_lay .input_box .input_error::before {
    content: '*';
}

.franc_lay .info_box .input_box .input {
    width: 100%;
    height: 50px;
}

.franc_lay .user_l {
    justify-content: space-between;
}

.franc_end_txt {
    display: flex;
    flex-direction: column;
    gap: 5px;

    background: #f9f9f9;
    border-radius: 8px;
    padding: 15px;
    line-height: 160%;
}

.agree_box p.franc_end_txt {
    border: none;
    word-break: keep-all;
}

.franc_end_txt span {
    color: #FB5954;
}

.franc_receipt {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    /*align-items: center;*/
    gap: 10px;

    margin-top: 5px;
    padding: 15px;
    background: #f9f9f9;
    border-radius: 10px;

    letter-spacing: -0.6px;
    word-break: keep-all;
}

.franc_receipt span {
    font-size: 1.6rem;
}

.visit_caution {
    font-size: 1.6rem;
    color: #333;
    word-break: keep-all;
}

.btn_box .franc_app_btn {
    width: auto;
    height: auto;
    line-height: normal;
    font-size: 1.8rem;
    color: #fff;
}

.franc_app_btn {
    font-size: 1.8rem;
    background: #369aff;
    padding: 20px 40px;
}

.user_r_top, .user_r_bottom {
    display: flex;
    flex-direction: column;
    gap: 20px;

    padding: 20px;
    background: #F9F9F9;
    border-radius: 12px;
}

.user_r_bottom {
    height: 100%;
}

.user_r_bottom table {
    height: 100%;
    font-size: 1.6rem;
    letter-spacing: -0.6px;
}

.file_lay {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

/*input_file 스타일*/

.file_style {
    display: flex;
    width: 100%;
}

.file_style input {
    border: 1px solid #ddd;
    background-color: #fff;
    border-radius: 5px 0 0 5px;
    height: 50px;
}

.file_style .upload-name {
    width: 100%;
    height: 50px;
    padding: 5px 15px;
    pointer-events: none;
}

.file_style .file {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    border: 0;
    white-space: nowrap;
    clip: rect(0, 0, 0, 0);
}

.file_upload_btn,
.franc_address_btn,
.franc_num_btn {
    width:15%;
    min-width: 70px;
    height:50px;
    line-height:50px;
    text-align: center;
    background-color: #333;
    color: #dddddd;
    border-radius: 0 5px 5px 0;

    font-size: 1.6rem;
}

.file_upload_btn,
.franc_address_btn:hover,
.franc_num_btn:hover {
    text-decoration: none;
}

.file_register {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.file_register h3, .user_r_bottom h3 {
    font-size: 2.4rem;
    font-weight: 600;
    margin: 0;
}

.file_download {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 5px 10px;

    border: 1px solid #369aff;
    border-radius: 8px;
    background: #fff;

    font-size: 1.5rem;
    letter-spacing: -1px;
    color: #369aff;
    cursor: pointer;
}

.file_download:hover {
    text-decoration: none;
}

.file_list_lay {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.file_list {
    width: fit-content;

    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: 5px;

    padding: 5px 10px;
    background: #fff;
    border: 1px solid #DDD;
    border-radius: 5px;
}

.file_list p {
    font-size: 1.6rem;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1
}

.file_list img {
    cursor: pointer;
}

/*사용처 미리보기*/
.cont_list.franc_pre_lay .info_box > div  {
    align-items: flex-start;
}

.cont_list.franc_pre_lay .info_box > div .input_box {
    gap: 10px;
}

.cont_list.franc_pre_lay .info_box .tit {
    line-height: 50px;
}

@media screen and (max-width: 1024px) {
    .user_r_bottom table {
        font-size: 1.4rem;
    }
}


@media screen and (max-width: 768px) {
    .franc_lay .user_l {
        border-bottom: 1px solid #ddd;
        border-radius: 12px;
        padding-bottom: 20px;
        margin-bottom: 30px;
    }

    .file_download {
        font-size: 1.4rem;
    }
}

@media screen and (max-width: 620px) {
    .cont_list.franc_pre_lay .info_box .tit {
        line-height: 1.5em;
    }
}

@media screen and (max-width: 360px) {
    .file_download {
        font-size: 1.3rem;
        letter-spacing: -1px;
    }
}

/*------------------------*/

/* NEW 아이문화패스 신청 */
.content_box .step {
    display: none;
}

.content_box .step.on {
    display: block;
}

.sub_btn {
    display: block;
    color: #fff;
    font-size: 1.8rem;
    font-weight: 600;
    text-decoration: none;
    text-align: center;
    border-radius: 10px;
    background-color: #999;
    cursor: pointer;
    padding: 10px 30px;
    text-decoration: none!important;
}

.sub_btn.ok {
    color: #fff;
    background-color: #369AFF;
}

.sub_btn.btn_black {
    color: #ffffff;
    background-color: #555555;
}

.sub_btn.address_modi {
    padding: 10px 30px;
}

.add_child_box {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 10px;
    cursor: pointer;

    background: #F6FAFF;
    border: 2px dashed #369aff;
    border-radius: 10px;
    box-shadow: 0 8px 15px 0 rgba(0, 0, 0, 0.06);

    padding: 20px;
    margin-bottom: 15px;

    text-align: center;
}

.add_child {
    display: flex;
    gap: 10px;
}

.add_child strong {
    font-size: 2.4rem;
    font-weight: 600;

    display: flex;
    align-items: center;
    gap: 5px;
}

.add_child strong::before {
    content: '';
    display: inline-block;
    background: url("../images/sub/plus.png") no-repeat center center/ cover;
    width: 20px;
    height: 20px;

}

/*.np_caution .detail_box2 {*/
/*    background: #ffeded;*/
/*    border: 3px dashed #ff0000;*/
/*    color: #ff0000;*/
/*}*/

.np_caution .detail_box2 {
    color: #ff0000;
}

/* 스크롤 가능한 긴 컨텐츠에서의 배치 보정 (세로 중앙정렬 보정) */
@media (min-width: 576px) {
    .modal-dialog {
        margin: 1.75rem auto;
    }
}

/* 접근성: 포커스 링 스타일(필요시) */
.modal-content:focus {
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(15,80,177,0.25);
}

/* small visual helpers - optional */
.modal-centered-content {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ============================
   Optional: 스크롤바 스타일 (경미)
   ============================ */
.modal-body::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
.modal-body::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.15);
    border-radius: 4px;
}

/* ============================
   예시: 버튼 스타일 (modal 내 버튼용)
   ============================ */
.btn {
    display: inline-block;
    font-weight: 600;
    text-align: center;
    vertical-align: middle;
    user-select: none;
    border: 0;
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    cursor: pointer;
}
.btn-primary {
    background-color: #0f50b1;
    color: #fff;
}
.btn-secondary {
    background-color: #f3f3f3;
    color: #333;
}

/* sweetAlert 커스텀 디자인 */
/*
.swal-modal {
    border-radius: 12px;
}

.swal-modal .swal-text {
    font-weight: 600;
}

.swal-title {
    border-radius: 12px 12px 0 0;
    padding: 15px 0;
    background: #369aff;
    color: #fff;
    font-size: 2.4rem;
}

.swal-title:first-child {
    margin-top: 0;
}

.swal-title:not(:last-child) {
    margin-bottom: 30px;
}

.swal-text {
    font-size: 1.8rem;
}

.swal-footer {
    text-align: center;
    margin-top: 0!important;
}

.swal-button {
    background-color: #369aff;
    padding: 10px 40px;
}

/* 취소 버튼 색상 고정 */
/*
.swal-button--cancel {
    background-color: #b5b5b5 !important;
    color: #fff !important;
    outline: none !important;
    box-shadow: none !important;
}

/* hover 효과 제거 */
/*
.swal-button--cancel:hover,
.swal-button--cancel:focus,
.swal-button--cancel:active {
    background-color: #b5b5b5 !important;
    color: #fff !important;
    outline: none !important;
    box-shadow: none !important;
    cursor: pointer;
}
/*
.swal-button-blue {
    background: #369aff;
}
/*
.swal-button:not([disabled]):hover {
    background: #369aff;
}
/*
@media screen and (max-width: 768px) {
    .add_child strong {
        font-size: 2rem;
    }

    .swal-text {
        font-size: 1.6rem;
    }
}
*/

/* 어두운 배경 */
.loading-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100dvh;
    background-color: rgba(0, 0, 0, 0.5); /* 반투명 배경 */
    z-index: 9998;
}

/* 로딩 이미지 위치 */
#loadingSpinner {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 9999;
}

.spinner img {
    /*width: 200px;*/
    height: 200px;
}

/*공지사항 상세보기*/

.paging a, .paging button, .paging .on {
    font-size: 1.8rem;
}

.notice_box .board_btn a {
    font-size: 1.8rem;
}

.notice_view strong {
    font-size: 2.4rem;
    font-weight: 600;
    word-break: keep-all;
}

.notice_view span.date {
    font-size: 1.8rem;
}

.view_file .attc:after {
    content: url("../images/sub/file.png");
    font-size: inherit;
    margin-left: 5px;
}

.view_file > ul > li {
    padding-left: 30px;
    line-height: 160%;

    overflow: hidden;
    white-space: normal;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    word-break: keep-all;
}

@media screen and (max-width: 768px) {
    .paging a, .paging button, .paging .on {
        font-size: 1.6rem;
    }

    .notice_box .board_btn a {
        font-size: 1.6rem;
    }

    .notice_view strong {
        font-size: 2rem;
    }

    .notice_view span.date {
        font-size: 1.6rem;
    }

    .view_file > ul > li {
        padding-left: 15px;
    }
}

/*준비중 안내 페이지*/

.soon_layout {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    gap: 30px;
}

.soon_layout img {
    width: 250px;
}

.soon_layout p {
    text-align: center;
    font-size: 2.4rem;
    font-weight: 600;
    line-height: 130%;
    letter-spacing: -0.6px;
}

/*대기열*/

.wait_modal {
    width: 500px;
    /*height: 250px;*/

    background: #fff;
    border-radius: 20px;
    padding: 30px;
}

.wait_lay {
    height: 100%;
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    gap: 15px;
}

.wait_txt {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.wait_txt h4 {
    line-height: normal;
    font-size: 28px;
    font-weight: 600;
    color: #555;
}

.wait_txt p {
    font-size: 1.8rem;
    line-height: 130%;
    letter-spacing: -1px;

    color: #777;
    word-break: keep-all;
}

.wait_info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;

    padding: 15px;
    background: #f5f5f5;
    border-radius: 10px;
}

.wait_info {
    flex-direction: column;
    justify-content: space-between;
    gap: 15px;
}

.wait_info li {
    /*width: 130px;*/

    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-direction: column;
    gap: 5px;

    line-height: normal;
}

.wait_info li p {
    font-size: 16px;
    color: #777;
}

.wait_info li h5,
.wait_info li h6 {
    min-height: 40px;
    line-height: 40px;
    font-size: 3.6rem;
    font-weight: 600;
}

.wait_info li h6 {
    font-size: 28px;
}

.wait_info li:nth-child(2) {
    width: 40px;
    height: 1px;
    background: #777;
}

.wait_btn_lay {
    display: flex;
    justify-content: space-between;
    /*align-items: center;*/
}

.wait_cancel_caution {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 5px;

    width: 70%;
}

.wait_cancel_caution img {
    margin-top: 3px;
    width: 20px;
}

.wait_cancel_caution p span {
    word-break: keep-all;
    color: #ff0000;
    font-weight: 500;
    letter-spacing: -1px;
}

.wait_cancel_btn {
    min-width: 100px;
    padding: 15px 20px;
    border-radius: 10px;
    background: #ff7474;

    color: #fff;
    font-size: 1.8rem;
    font-weight: 600;
}

@media screen and (max-width: 1200px) {
    .layer_pop .cont {
        width: calc(100% - 6%);
        min-width: 300px;
        max-width: 500px;
    }
}

@media screen and (max-width: 768px) {
    .wait_txt p {
        font-size: 1.6rem;
    }

    .wait_cancel_btn {
        font-size: 1.6rem;
    }

    .wait_cancel_caution p span {
        font-size: 1.6rem;
    }
}

@media screen and (max-width: 420px) {
    .wait_txt h4 {
        font-size: 24px;
    }

    .wait_btn_lay {
        flex-direction: column;
        gap: 10px;
    }

    .wait_cancel_caution {
        width: 100%;
    }

    .wait_cancel_btn {
        padding: 15px 25px;
        width: 100%;
    }
}

.cont_list .cont[data-form-type="familyInfo"] {
    display: none;
}

/*문의게시판*/

.view_info {
    padding-top: 0;
    flex-wrap: wrap;
}

.view_info li > span {
    font-weight: 600;
}

.view_info li:last-child {
    float: right;
}

.view_info li:after {
    /*display: none;*/
}

.view_file .attc {
    font-size: 1.6rem;
    font-weight: 600;
}

.write_btn {
    margin-top: 20px;
}

.write_btn a {
    background: #555;
    border-radius: 8px;
}

.write_cont {
    border-top: none;
}

.write_cont .write .tit {
    font-size: 1.8rem;
    font-weight: 600!important;
}

.table tr td.que_answer {
    color: #369aff;
    font-weight: 600;
}

.table tr td.que_no_answer {
    visibility: hidden;
}

.subject {
    font-weight: 600;
}

@media screen and (max-width: 800px) {
    .board_list tr td.subject {
        font-size: 1.8rem;
        font-weight: 600;
    }

    .table.td5_right tr td:nth-child(5) {
        float: right;
    }
}

/*문의 작성*/
.write_cont .write .cont input {
    font-size: 1.6rem;
}

.write_cont .write .cont textarea {
    font-size: 1.6rem;
}

.write select {
    width: 150px;
    font-size: 1.6rem;
    padding: 0 30px 0 10px;
}

.write select:hover {
    border: 1px solid #000;
}

/*문의 상세보기*/
.answer_lay {
    margin: 30px 0;
}

.answer_lay .comment_box {
    padding: 20px;
}

.answer_lay .comment_box p {
    word-break: keep-all;
}

.answer_tit h3 {
    font-size: 2.4rem;
    font-weight: 600;
}

.comment_count {
    margin: 40px 0 10px;
    font-weight: 500;
}

.comment_count p span {
    color: #369aff;
}

.que_comment_lay {
    display: flex;
    flex-direction: column;
    gap: 10px;

    border: 1px solid #ddd;
    border-right: none;
    border-left: none;

    padding: 20px 10px;
}

.comment_box {
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

.comment_set {
    display: flex;
    justify-content: flex-end;
    gap: 5px;
}

.comment_text {
    width: 85%;
}

.comment_date {
    width: 15%;
    text-align: right;
    color: #999;
}

.comment_set li {
    padding: 5px 15px;
    border: 1px solid #666;
    border-radius: 10px;
    cursor: pointer;
}

.comm_modi {
    background: #777;
    color: #fff;
}

.comm_delete {
    background: #000;
    color: #fff;
}

.write_comment {
    display: flex;
    gap: 20px;

    padding: 20px 10px;
    border-bottom: 1px solid #ddd;
}

.write_comment textarea {
    width: calc(100% - 200px);
    resize: none;
    padding: 15px;

    border: 1px solid #ddd;
    border-radius: 10px;

    font-size: 1.6rem;
}

.write_comment textarea::placeholder {
    color: #aaa;
}

.comment_btn {
    display: flex;
    justify-content: center;
    align-items: center;

    border-radius: 10px;
    width: 200px;
    height: 80px;

    background: #369aff;
    color: #fff;
    font-weight: 600;

    cursor: pointer;
}

.info_satis {
    display: flex;
    flex-direction: column;
    gap: 10px;

    padding: 30px;
    background: #f9f9f9;
    border-radius: 10px;

    margin-top: 30px;
}

.satis_top {
    display: flex;
    justify-content: space-between;
}

.satis_tit {
    display: flex;
    justify-content: flex-start;
    gap: 10px;
}

.satis_tit p {
    font-size: 2rem;
    font-weight: 600;
}

.satis_tit span {
    font-size: 1.6rem;
    letter-spacing: -0.6px;
}


.satis_point {
    display: flex;
    flex-direction: row;
    gap: 20px;
}

.satis_point p {
    display: flex;
    align-items: center;
    gap: 5px;

    height: 22px;
}

.satis_point p input {
    display: flex;
    justify-content: center;
    align-items: center;
}

.satis_point p label {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    cursor: pointer;
}

.satis_point img {
    margin-right: 5px;
}

.satis_text {
    display: flex;
    gap: 20px;
}

.satis_text textarea {
    width: calc(100% - 200px);
    resize: none;
    padding: 10px;

    border: 1px solid #ddd;
    border-radius: 10px;

    font-size: 1.6rem;
}

.satis_text textarea::placeholder {
    color: #aaa;
}

.satis_btn {
    display: flex;
    justify-content: center;
    align-items: center;

    width: 200px;
    height: 70px;
    border-radius: 10px;
    background: #555;
    color: #fff;

    cursor: pointer;
}

.que_btn_box {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;

    margin: 40px 0  60px;
}

.que_btn_box a {
    display: flex;
    justify-content: center;
    align-items: center;

    height: 50px;
    max-width: 200px;
    flex: 1;

    border-radius: 10px;
    font-weight: 600;
}

.que_btn_box a:hover {
    text-decoration: none;
}

.border_btn {
    border: 1px solid #ddd;
}

.gray_btn {
    background: #555;
    color: #fff;
}

.blue_btn {
    background: #369aff;
    color: #fff;
}

@media screen and (max-width: 1120px) {
    .info_satis {
        gap: 15px;
    }

    .satis_top {
        flex-direction: column;
        gap: 10px;
    }

    .comment_box {
        flex-direction: column;
        gap: 5px;
    }

    .comment_text, .comment_date {
        width: 100%;
    }

    .comment_date {
        text-align: left;
    }
}

@media screen and (max-width: 768px) {

    .write_comment {
        flex-direction: column;
        gap: 5px;
    }

    .write_comment textarea {
        width: 100%;
        height: 100px;
    }

    .comment_btn {
        width: 100%;
        height: 50px;
    }

    .satis_top {
        flex-direction: column;
        gap: 10px;
    }

    .satis_tit {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap: 5px;
    }

    .satis_point {
        flex-direction: column;
        gap: 10px;
    }

    .satis_text {
        flex-direction: column;
        gap: 5px;
    }

    .satis_text textarea {
        width: 100%;
        height: 100px;
    }

    .info_satis {
        padding: 20px;
    }

    .satis_btn {
        height: 50px;
        width: 100%;
    }
}

/*br_반응형*/

@media screen and (max-width: 1200px){
    .br_1200 {
        display: block;
    }
}

@media screen and (max-width: 1100px){
    .br_1200 {
        display: block;
    }
    /*#treeContainer {*/
    /*    display : none;*/
    /*}*/
    #container.smart_container {
        height: calc(100dvh - 50px);
    }
    #container.notice_view_container {
        height: calc(100dvh - 50px);
    }


    .mo-grid {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
    }

    .mo-grid > div {
        width :100%;
    }

    .mo-scroll {
        padding-right: 0px;
    }
    .grid_style.outScrollBar {
        scrollbar-gutter: unset;
    }

    .outScrollBar {
        margin-right: 0px;
        padding-right: 0px;
    }

    #footer {
        height : 130px;
    }

    #footer > .footer-inner {
        height : 130px;
        padding : 0px;
        padding-top: 10px;
    }
    .footer-inner {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        gap : 10px;
        white-space: normal;
    }
    .footer-left {
        display : flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        flex-wrap: wrap;
        white-space: normal;
    }
    .footer-left > div {
        white-space: normal;
        word-wrap: break-word;
    }
    .footer-divider {
        display: none;
    }
}

@media screen and (max-width: 920px){
    .br_920 {
        display: block;
    }

}

@media screen and (max-width: 768px){
    .br_768 {
        display: block;
    }
}

@media screen and (max-width: 520px){
    .br_520 {
        display: block;
    }
}

@media screen and (max-width: 420px) {
    .sub_txt br {
        display: block;
    }
}

@media screen and (max-width: 360px){
    .br_360 {
        display: block;
    }
}