@charset "utf-8";
:root {
    --gray-05: #f2f2f2;
    --gray-06: #717d96;
    --gray-10: #e6e6e6;
    --gray-20: #cccccc;
    --gray-30: #aaaaaa;
    --gray-40: #999999;
    --gray-50: #808080;
    --gray-60: #666666;
    --gray-80: #333333;
    --gray-90: #1a1a1a;

    --base-80: #2d3648; 

    --primary-10: #e6fffb;
    --primary-20: #e6edef;
    --primary-25: #b5f5ec;
    --primary-30: #74e7da;
    --primary-60: #13b8c2;
    --primary: #04445f;
    --primary-80: #186882;
    --primary-90: #002329;
    
    --error: #ff4d4f;
    --success: #3f8cff;
}

/* hide */
.hide { display: none !important; } 

/* gap */
.mt0 { margin-top: 0 !important; }
.mt08 { margin-top: 8px !important; }
.mt16 { margin-top: 16px !important; }
.mt24 { margin-top: 24px !important; }
.mt36 { margin-top: 36px !important; }
.mt48 { margin-top: 48px !important; }
.mt56 { margin-top: 56px !important; }
.mb0 { margin-bottom: 0 !important; }

/* color */
.bg_gray { background: var(--gray-05); }
.co_primary30 { color: var(--primary-30) !important; }
.co_primary60 { color: var(--primary-60) !important; }
.co_primary { color: var(--primary) !important; }
.text_center { text-align: center !important; }
.text_right { text-align: right !important; }


/*! ─────────────────── Layout ─────────────────── */
#wrap { position: relative; width: 100%; min-width: 1200px; }
#header { position: fixed; top: 0; left: 0; width: 100%; height: 100px; min-width: 1200px; background: var(--primary); z-index: 1000; } 
#header .hd_wrap { position: relative; width: 1200px; height: 100px; display: flex; align-items: center; justify-content: space-between; margin: 0 auto;  }
#header #logo a { display: inline-block; width: 174px; height: 31px; background: url(../image/logo.svg) no-repeat center center; background-size: contain; text-indent: -9999px; overflow: hidden; }
#header #gnb { margin-left: 30px; }
#header #gnb ul { display: flex; align-items: center; }
#header #gnb ul > li { position: relative; margin-left: 30px; }
#header #gnb ul > li > a { position: relative; height: 100px; font-size: 16px; font-weight: 700; color: #ffffff; line-height: 100px; display: block; transition: all 0.1s ease-in-out; }
#header #gnb ul > li > a::before { position: absolute; left: 0; bottom: 32px; transform: scaleX(0); width: 100%; height: 2px; background: var(--primary-30); content: ''; display: block; transition: all 0.1s ease-in-out; }
#header #gnb ul > li.hover > a,
#header #gnb ul > li > a:hover { color: var(--primary-30); }
#header #gnb ul > li.hover > a::before,
#header #gnb ul > li > a:hover::before  { transform: scaleX(1); }
#header #gnb ul > li > ol { display: none; position: absolute; left: 50%; top: 100px; transform: translate(-50%); min-width: 120px; padding: 20px 0; overflow: hidden; z-index: 5; }
#header #gnb ul > li > ol li { margin-bottom: 8px; }
#header #gnb ul > li > ol li:last-of-type { margin-bottom: 0; }
#header #gnb ul > li > ol li a { font-size: 16px; font-weight: 500; color: var(--gray-80); line-height: 24px; text-align: center; display: block; transition: all 0.1s ease-in-out; }
#header #gnb ul > li > ol li a:hover { color: var(--primary-60); }
#header #gnb .gnb_bg { display: none; position: fixed; left: 0; top: 100px; width: 100%; min-width: 1200px; height: 160px; background: #ffffff; border-bottom: 1px solid var(--gray-20); }
#header #user { position: relative; margin-left: auto; }
#header #user .user_info_box { display: flex; align-items: center; }
#header #user .user_info_box .badge { font-size: 14px; font-weight: 600; color: var(--gray-80); line-height: 20px; padding: 8px 12px; background: var(--gray-10); border-radius: 20px; display: inline-block; margin-right: 12px; }
#header #user .user_info_box .badge.active { color: var(--primary); background: var(--primary-10); }
#header #user .user_info_box .badge img { width: 16px; height: 16px; vertical-align: -3px; }
#header #user .user_info_box .user_name { font-size: 16px; font-weight: 700; color: #ffffff; line-height: 24px; display: inline-block; cursor: pointer; }
#header #user .user_info_box .user_name::after { width: 16px; height: 16px; background: url(../image/btn/btn_arrow_down.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; vertical-align: -2px; margin-left: 8px; }
#header #user .user_info_box.active .user_name::after { transform: rotate(180deg); }
#header #user .user_detail_box { display: none; position: absolute; right: 0; top: 68px; width: 380px; padding: 20px; background: #ffffff; border: 1px solid var(--gray-10); border-radius: 16px; box-shadow: 0px 20px 24px 0px rgba(0, 0, 0, 0.08), 0px 8px 8px 0px rgba(0, 0, 0, 0.03); }
#header #user .user_detail_box .my_info_box { display: flex; align-items: center; justify-content: space-between; padding-bottom: 36px; }
#header #user .user_detail_box .my_info_box .badge { font-size: 14px; font-weight: 500; color: var(--primary); line-height: 26px; padding: 0 10px; border: 2px solid var(--primary); border-radius: 15px; }
#header #user .user_detail_box .my_info_box p { font-size: 14px; font-weight: 400; color: var(--gray-90); line-height: 18px; }
#header #user .user_detail_box .my_info_box p b { font-weight: 700; margin-left: 8px; }
#header #user .user_detail_box .my_membership_box { width: 100%; padding-bottom: 36px;}
#header #user .user_detail_box .my_membership_box dl { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
#header #user .user_detail_box .my_membership_box dl:last-of-type { margin-bottom: 0; }
#header #user .user_detail_box .my_membership_box dl dt { font-size: 18px; font-weight: 700; color: var(--gray-90); line-height: 24px; }
#header #user .user_detail_box .my_membership_box dl dd { font-size: 16px; font-weight: 400; color: var(--gray-90); line-height: 24px; }
#header #user .user_detail_box .my_membership_box dl + .text_box { margin-top: 16px; }
#header #user .user_detail_box .my_membership_box .text_box h3 { font-size: 18px; font-weight: 700; color: var(--gray-90); line-height: 24px; text-align: center; margin-bottom: 4px; }
#header #user .user_detail_box .my_membership_box .text_box p { font-size: 14px; font-weight: 400; color: var(--gray-60); line-height: 18px; text-align: center; }
#header #user .user_detail_box .my_membership_box .btn { width: 100%; margin-top: 16px; }
#header #user .user_detail_box .my_menu_box { display: flex; align-items: flex-end; justify-content: space-between; padding-top: 20px; border-top: 1px solid var(--gray-10); }
#header #user .user_detail_box .my_menu_box .btn { width: 175px; font-size: 16px; padding: 10px 24px; display: inline-block; }
#header #user .user_detail_box .my_menu_box .btn::after { width: 20px; height: 20px; vertical-align: -4px; }
#header #user .user_detail_box .my_menu_box ul li { text-align: right; margin-bottom: 8px; }
#header #user .user_detail_box .my_menu_box ul li:last-of-type { margin-bottom: 0; }
#header #user .user_detail_box .my_menu_box ul li a { font-size: 14px; font-weight: 500; color: var(--gray-80); line-height: 17px; border-bottom: 1px solid var(--gray-80); display: inline-block; }
#container { position: relative; width: 1200px; min-width: 1200px; padding-bottom: 48px; margin: 0 auto; } 
#header + #container { padding-top: 148px; }
#footer { width: 100%; background: var(--gray-10); }
#footer .ft_wrap { position: relative; width: 1200px; display: flex; flex-wrap: wrap; padding: 48px 0 36px; margin: 0 auto; }
#footer .ft_info #logo { width: 174px; height: 31px; background: url(../image/logo_p.svg) no-repeat center center; background-size: contain; text-indent: -9999px; overflow: hidden; display: inline-block; margin-bottom: 16px; }
#footer .ft_info ul { max-width: 600px; display: flex; flex-wrap: wrap; margin-bottom: 8px; }
#footer .ft_info ul li { font-size: 14px; font-weight: 400; color: var(--gray-60); line-height: 20px; }
#footer .ft_info ul li::after { width: 1px; height: 12px; background: var(--gray-30); content: ''; display: inline-block; vertical-align: -2px; margin: 0 8px; }
#footer .ft_info ul li:nth-of-type(4):after,
#footer .ft_info ul li:last-of-type:after { display: none; }
#footer .ft_info .copy { width: 100%; font-size: 14px; font-weight: 400; color: var(--gray-30); margin-top: 16px; }
#footer .cs_info { margin-left: auto; }
#footer .cs_info h3 { position: relative; font-size: 16px; font-weight: 700; color: var(--primary); line-height: 24px; margin-bottom: 8px; }
#footer .cs_info h3::before { width: 24px; height: 24px; background: url(../image/icon/icon_headphone.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; vertical-align: -6px; margin-right: 4px; }
#footer .cs_info a { font-size: 24px; font-weight: 700; color: var(--primary); letter-spacing: -0.5px; display: inline-block; }
#footer .cs_info p { margin-top: 8px; }
#footer .cs_info p span { font-size: 14px; font-weight: 400; color: var(--gray-60); line-height: 20px; }
#footer .cs_info p span:last-of-type::before { width: 1px; height: 12px; background: var(--gray-30); content: ''; display: inline-block; vertical-align: -2px; margin: 0 8px; }

/*? compornant */
.fix_btn_bottom { padding-bottom: 130px !important; }

.title_box { position: relative; padding: 0 48px 24px; border-bottom: 2px solid var(--gray-10); margin-bottom: 24px; }
.title_box .btn_back { position: absolute; left: 0; top: -1px; width: 40px; height: 40px; background: url(../image/btn/btn_back.svg) no-repeat center center; background-size: contain; text-indent: -9999px; display: block; z-index: 10; }
.title_box h2 { font-size: 28px; font-weight: 600; color: var(--gray-80); letter-spacing: -1px; line-height: 38px; }
.title_box p { font-size: 14px; font-weight: 400; color: var(--base-80); line-height: 22px; margin-top: 8px; }

/*? flex_box */
.flex_box { display: flex; flex-wrap: wrap; justify-content: space-between; }
.flex_box .col01 { width: 100%; }
.flex_box .col02 { width: calc(50% - 18px) !important; }

/*? sub_nav_box */
.sub_nav_box.type01 { position: absolute; right: 0; bottom: -2px; z-index: 5; }
.sub_nav_box.type01 a {  font-size: 16px; font-weight: 700; color: var(--gray-06); line-height: 48px; display: inline-block; }
.sub_nav_box.type01 a + a { margin-left: 30px; }
.sub_nav_box.type01 a.active { color: var(--primary); }
.sub_nav_box.type01 a.active::after { width: 100%; height: 2px; background: var(--primary ); content: ''; display: block; }
.sub_nav_box.type02 { width: 100%; border-bottom: 2px solid var(--gray-10); margin-bottom: 24px; }
.sub_nav_box.type02 a { position: relative; font-size: 16px; font-weight: 700; color: var(--gray-06); line-height: 48px; display: inline-block; }
.sub_nav_box.type02 a + a { margin-left: 30px; }
.sub_nav_box.type02 a.active { color: var(--primary); }
.sub_nav_box.type02 a.active::after { position: absolute; left: 0; bottom: -2px; width: 100%; height: 2px; background: var(--primary ); content: ''; display: block; }

/* ? tab_group_box */
.tab_group_box .tab_box { display: none; }
.tab_group_box .tab_box.active { display: block; }

/*? pager  */
.pager_box { display: flex; align-items: center; justify-content: center; padding: 8px; }
.pager_box > a { width: 24px; height: 24px; text-indent: -9999px; display: inline-block; overflow: hidden; margin: 0 4px; }
.pager_box > .btn_start { background: url(../image/btn/btn_pg_start.svg) no-repeat center center; background-size: contain; }
.pager_box > .btn_prev { background: url(../image/btn/btn_pg_prev.svg) no-repeat center center; background-size: contain; }
.pager_box > .btn_next { background: url(../image/btn/btn_pg_next.svg) no-repeat center center; background-size: contain; }
.pager_box > .btn_end { background: url(../image/btn/btn_pg_end.svg) no-repeat center center; background-size: contain; }
.pager_box .pager_numb { display: flex; align-items: center; }
.pager_box .pager_numb > a { min-width: 24px; font-size: 16px; font-weight: 700; color: var(--gray-40); line-height: 24px; text-align: center; display: inline-block; margin: 0 4px; }
.pager_box .pager_numb > a.active { color: var(--primary); }

/*? table */
.table_box { width: 100%; background: #ffffff; border: 1px solid var(--gray-20); }
.table_box .table_sort_box { width: 100%; padding: 16px; border-bottom: 1px solid var(--gray-20); }
.table_box .table_sort_box > div { display: flex; align-items: center; }
.table_box .table_sort_box .left_box > * { margin-right: 16px; }
.table_box .table_sort_box .right_box > * { margin-left: 16px; }
.table_box .table_sort_box .total_count { font-size: 16px; font-weight: 700; color: var(--gray-80); }
.table_box .table_sort_box .btn_inquiry {  font-size: 14px; padding: 2px 12px; }
.table_box .thead .th,
.table_box .tbody .td,
.table_box .tfoot .td { text-align: center; padding: 0 4px; }
.table_box .thead { background: var(--gray-05); }
.table_box .thead .tr { width: 100%; display: flex; padding: 8px 40px; }
.table_box .thead .tr > * { font-size: 14px; font-weight: 600; color: var(--gray-40); line-height: 22px; } 
.table_box .tbody { padding: 16px 0; }
.table_box .tbody .point { color: var(--primary-60); }
.table_box .tbody .tr { width: 100%; display: flex; padding: 10px 40px; }
.table_box .tbody .tr .td { font-size: 16px; font-weight: 400; color: var(--gray-80); line-height: 24px; word-break: break-all; opacity: 1; pointer-events: all; }
.table_box .tbody .tr .td.blind { opacity: 0.5; pointer-events: none; }
.table_box .tbody .tr .td .btn_copy { width: 20px; height: 20px; text-indent: -9999px; background: url(../image/btn/btn_copy.svg) no-repeat center center, transparent; background-size: contain; display: inline-block; overflow: hidden; }
.table_box .tbody .tr a { font-size: inherit; display: inline-block; }
.table_box .tbody .tr .new { font-size: 12px; font-weight: 500; color: var(--primary); line-height: 22px; padding: 0 10px; border: 2px solid var(--primary); border-radius: 13px; display: inline-block; vertical-align: 1px; margin-left: 4px; }
.table_box .tfoot { width: 100%; display: flex; padding: 24px 40px; background: var(--primary); }
.table_box .tfoot > * { font-size: 20px; font-weight: 600; color: #ffffff; line-height: 32px; }
.table_box .tfoot .th { flex: 1; }
.table_box .tfoot .td { font-size: 22px; font-weight: 600; color: #ffffff; line-height: 32px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.table_box .tfoot .point { color: var(--primary-30); }
.table_box .empty { flex: 1; }

/* ? none_data_box */
.none_data_box { width: 100%; text-align: center; padding: 120px 24px; }
.none_data_box p { font-size: 22px; font-weight: 700; color: var(--gray-90); line-height: 32px; letter-spacing: -0.5px; }

/*? select_box  */
.select_box select { font-size: 14px; font-weight: 500; color: var(--gray-60); line-height: 20px; padding: 5px 32px 5px 8px; background: url(../image/icon/icon_arrow_down.svg) no-repeat calc(100% - 8px) center,#ffffff; background-size: 16px; border: 1px solid var(--gray-40); border-radius: 4px; }

/*? select_date_box */
.select_date_box { position: relative; width: 240px; padding: 5px 8px; background: url(../image/icon/icon_calendar.svg) no-repeat calc(100% - 8px) center, var(--gray-05); border: 1px solid var(--gray-40); border-radius: 4px; }
.select_date_box input { width: 80px; font-size: 14px; font-weight: 500; color: var(--gray-60); line-height: 20px; text-align: center; display: inline-block; background: transparent; cursor: pointer; }
.select_date_box em { font-size: 14px; font-weight: 500; color: var(--gray-60); line-height: 20px; display: inline-block; }

/*? search_box */
.search_box { position: relative; width: 200px; }
.search_box input { width: 100%; font-size: 14px; font-weight: 500; color: var(--gray-60); line-height: 20px; padding: 5px 28px 5px 8px; border: 1px solid var(--gray-40); border-radius: 4px; }
.search_box input::placeholder { color: var(--gray-20); }
.search_box .btn_search { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); width: 16px; height: 16px; background: url(../image/btn/btn_search.svg) no-repeat center center; background-size: contain; text-indent: -9999px; overflow: hidden; }



/*! ─────────────────── Btn ─────────────────── */
.btn { position: relative; font-weight: 500; line-height: 24px; text-align: center; border-radius: 6px; pointer-events: all; transition: all 0.1s ease-in-out; }
.btn_primary { color: #ffffff; background: var(--primary); border: 2px solid var(--primary); }
.btn_basic { color: var(--primary); background: #ffffff; border: 2px solid var(--primary); }
.btn.disabled { color: var(--gray-60); background: var(--gray-05); border: 2px solid var(--gray-05); cursor: auto; pointer-events: none; }
.btn_error { color: #ff7875; background: #ffe7e7; border: 2px solid #ffe7e7; }
.btn_error::after { background: url(../image/icon/icon_info_r.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }

.btn.ic_enter::after { background: url(../image/icon/icon_enter.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_send::after { background: url(../image/icon/icon_send.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_send_p::after { background: url(../image/icon/icon_send_p.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_download::after { background: url(../image/icon/icon_download.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_chat::after { background: url(../image/icon/icon_chat.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_call::after { background: url(../image/icon/icon_headphone.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_excel::before { background: url(../image/icon/icon_excel_p.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_edit::after { background: url(../image/icon/icon_edit_p.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_edit_w::after { background: url(../image/icon/icon_edit_w.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_add::after { background: url(../image/icon/icon_add_w.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.disabled.ic_add::after { background: url(../image/icon/icon_add_g.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_check::after { background: url(../image/icon/icon_check_w.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.disabled.ic_check::after { background: url(../image/icon/icon_check_g.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_document::after { background: url(../image/icon/icon_document_w.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.disabled.ic_timeover::after { background: url(../image/icon/icon_timeover_g.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn.ic_copy::after { background: url(../image/btn/btn_copy_w.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; margin-left: 8px; }
.btn img { vertical-align: -3px; }
.btn_main_box { position: relative; width: 100%; text-align: center; }
.btn_main_box .btn { width: 100%; max-width: 480px; font-size: 18px; padding: 14px 24px; display: inline-block; }
.btn_main_box .btn.wid50 { max-width: 380px; }
.btn_main_box .btn.wid50.btn_primary { margin-left: 30px; }
.btn_main_box.fixed { position: fixed; left: 50%; bottom: 0; transform: translateX(-50%); width: 1200px; padding: 24px 24px 48px; background: rgb(255,255,255); background: linear-gradient(0deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0) 100%); z-index: 1000; }

.btn_sub_box { position: relative; }
.btn_sub_box .btn { font-size: 16px; padding: 10px 24px; display: inline-block; }
.btn_sub_box .btn + .btn { margin-left: 30px; }

.btn_pop_box { position: relative; text-align: center; }
.btn_pop_box .btn { min-width: 175px; font-size: 16px; padding: 10px 24px; display: inline-block; }
.btn_pop_box .btn::after { width: 20px; height: 20px; vertical-align: -5px; }
.btn_pop_box .btn + .btn { margin-left: 16px; }



/*! ─────────────────── radio / check ─────────────────── */
.radio_box { display: inline-block; }
.radio_box input + label { min-width: 90px; font-size: 16px; font-weight: 400; color: var(--gray-80); line-height: 24px; display: inline-block; }
.radio_box input + label .icon_chkbox { width: 20px; height: 20px; background: #ffffff; border: 2px solid var(--gray-20); border-radius: 3px; display: inline-block; vertical-align: -5px; margin-right: 2px; }
.radio_box input:checked + label .icon_chkbox { background: url(../image/icon/icon_check_w.svg) no-repeat center center, var(--primary-60); background-size: 10px; border: 2px solid var(--primary-60); }
.check_box { display: inline-block; }
.check_box input + label { font-size: 14px; font-weight: 500; color: var(--gray-90); line-height: 24px; display: inline-block; cursor: pointer; }
.check_box input + label .icon_chkbox { width: 20px; height: 20px; background: #ffffff; border: 2px solid var(--gray-20); border-radius: 3px; display: inline-block; vertical-align: -5px; margin-right: 2px; }
.check_box input:checked + label .icon_chkbox { background: url(../image/icon/icon_check_w.svg) no-repeat center center, var(--primary-60); background-size: 16px; border: 2px solid var(--primary-60); }



/*! ─────────────────── Form ─────────────────── */
/* form_group_box */
.form_group_box { width: 100%; }
.form_group_box.type_flex { display: flex; flex-wrap: wrap; justify-content: space-between; }
.form_group_box.type_flex > div { width: 48%; }
.form_group_box.type_flex > div:nth-of-type(2) { margin-top: 0; }
.form_group_box .input_box { position: relative; width: 100%; }
.form_group_box .input_box + .input_box { margin-top: 36px; }
.form_group_box .form_label { position: relative; font-size: 16px; font-weight: 600; color: var(--gray-80); line-height: 24px; display: block; margin-bottom: 8px; }
.form_group_box .form_label .info_text { position: absolute; right: 0; top: 0; font-size: 12px; font-weight: 400; color: var(--primary); line-height: 24px; display: block; }
.form_group_box .form_label .info_text::before { width: 24px; height: 24px; background: url(../image/icon/icon_info_p.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; vertical-align: -8px; margin-right: 4px; }
.form_group_box .form_input { width: 100%; height: 52px; font-size: 16px; font-weight: 400; color: var(--gray-80); line-height: 24px; padding: 12px 12px 10px; background: #ffffff; border: 2px solid var(--gray-20); border-radius: 6px; }
.form_group_box .form_textarea { width: 100%; height: 200px; font-size: 16px; font-weight: 400; color: var(--gray-80); line-height: 24px; padding: 12px 12px 10px; background: #ffffff; border: 2px solid var(--gray-20); border-radius: 6px; resize: none; }
.form_group_box .form_textarea::placeholder,
.form_group_box .form_input::placeholder { color: var(--gray-20); }
/*? type_password */
.form_group_box .form_input.type_password { padding-right: 50px; }
.form_group_box .form_input.type_password + .btn_eye { position: absolute; right: 12px; top: 45px; width: 24px; height: 24px; background: url(../image/btn/btn_eye.svg) no-repeat center center; background-size: contain; text-indent: -9999px; display: block; overflow: hidden; z-index: 10; cursor: pointer; }
.form_group_box .form_input.type_password.active + .btn_eye { background: url(../image/btn/btn_eye_off.svg) no-repeat center center; background-size: contain; }
/*? check */
.form_group_box .form_input.type_check { padding-right: 140px; }
.form_group_box .form_input + .btn_check { position: absolute; right: 12px; bottom: 11px; font-size: 14px; font-weight: 400; color: var(--primary); line-height: 26px; padding: 0 12px; background: #ffffff; border: 2px solid var(--primary); border-radius: 15px; display: inline-block; }
/*? focus */
.form_group_box .form_input:focus,
.form_group_box .form_input:focus-visible,
.form_group_box .form_input.valid,
.form_group_box .input_box textarea:focus,
.form_group_box .input_box textarea:focus-visible,
.form_group_box .input_box textarea.valid { border: 2px solid var(--gray-40); }
/*? readonly */
.form_group_box .form_input:read-only { color: var(--gray-20); background: var(--gray-05); pointer-events: none; }
.form_group_box .form_input:read-only + .btn_check,
.form_group_box .form_input:read-only + .btn_eye  { display: none; }
/*? error */
.form_group_box .form_input.error,
.form_group_box .form_textarea.error { border: 2px solid var(--error); }
.form_group_box .error_message { position: absolute; display: block; width: 100%; height: 0; font-size: 14px; font-weight: 5 00; color: var(--error); line-height: 20px; padding: 0 10px 0 10px; overflow: hidden; transition: all 0.4s ease-in-out; } 
.form_group_box .error ~ .error_message { height: 24px; padding-top: 4px; }



/*! ─────────────────── Components - 안내 ─────────────────── */
.inform_box { position: relative; flex: 1; padding: 10px 20px 10px 54px; background: var(--primary-20); border-radius: 6px; }
.inform_box::before { position: absolute; left: 20px; top: 50%; transform: translateY(-50%); content: ''; display: inline-block; }
.inform_box.type01::before { width: 26px; height: 26px; background: url(../image/icon/icon_info_p.svg) no-repeat center center, #cfdde1; border-radius: 50%; }
.inform_box.type02::before { width: 24px; height: 24px; background: url(../image/icon/icon_headphone.svg) no-repeat center center; background-size: contain ; }
.inform_box p { font-size: 14px; font-weight: 400; color: var(--primary); letter-spacing: -0.2px; line-height: 28px; word-break: keep-all; }
.inform_box p em { color: var(--gray-50); display: inline-block; margin-left: 8px; }
.inform_box ul li { position: relative; padding-left: 16px; }
.inform_box ul li::before { position: absolute; left: 4px; top: 12px; width: 3px; height: 3px; background: var(--primary); border-radius: 50%; content: ''; display: block; }



/*! ─────────────────── Components - 팝업 ─────────────────── */
#popup,
#alert-popup { display: none; position: fixed; left: 0; top: 0; width: 100%; height: 100%; overflow: hidden; z-index: 2000; }
#popup .popup_bg,
#alert-popup .popup_bg { position: absolute; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); }
#popup .popup_wrap,
#alert-popup .popup_wrap { position: fixed; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); width: auto; min-width: 380px; padding: 50px 56px 40px; background: #ffffff; border-radius: 8px; z-index: 3000; overflow: hidden; box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.50); }
#popup .btn_exit,
#alert-popup .btn_exit { position: absolute; top: 12px; right: 12px; width: 24px; height: 24px; background: url(../image/btn/btn_exit.svg) no-repeat center center; background-size: contain; text-indent: -9999px; display: inline-block; z-index: 5; }
#popup .popup_title,
#alert-popup .popup_title { font-size: 22px; font-weight: 700; line-height: 32px; text-align: center; margin-bottom: 16px; }
#popup .popup_text,
#alert-popup .popup_text { font-size: 18px; font-weight: 400; line-height: 24px; text-align: center; }
#popup .btn_pop_box,
#alert-popup .btn_pop_box { margin-top: 36px; }
#popup .check_box label { font-size: 16px; line-height: 24px; }
/*? popup - sign  */
#popup .sign_wrap { position: relative; width: 580px; text-align: right; }
#popup .sign_wrap .btn_clear { font-size: 16px; font-weight: 500; color: var(--primary); line-height: 48px; background: transparent; }
#popup .sign_wrap .btn_clear::after { width: 16px; height: 16px; background: url(../image/icon/icon_clear_p.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; vertical-align: -3px; margin-left: 8px; }
#popup .sign_wrap .sign_draw_box { width: 100%; height: 300px; background: var(--gray-05); border: 2px solid var(--gray-20); border-radius: 8px; }
#popup .sign_wrap .sign_draw_box + .error_message { position: absolute; display: block; width: 100%; height: 0; font-size: 16px; font-weight: 500; color: var(--error); line-height: 22px; text-align: left; overflow: hidden; transition: all 0.4s ease-in-out; } 
#popup .sign_wrap .sign_draw_box.error { border: 2px solid var(--error); }
#popup .sign_wrap .sign_draw_box.error + .error_message { height: 26px; padding-top: 4px; }
/*? popup - cs */
#popup .popup_cs_box { width: 100%; text-align: center; padding: 16px; background: var(--gray-10); border-radius: 8px; }
#popup .popup_cs_box strong { font-size: 12px; font-weight: 700; color: var(--gray-80); line-height: 18px; display: inline-block; }
#popup .popup_cs_box p { font-size: 12px; font-weight: 400; color: var(--gray-80); line-height: 18px; }
#popup .popup_cs_box p::before { width: 100%; height: 1px; transform: scaleX(0.75); background: var(--gray-20); content: ''; display: block; margin: 8px 0; }
/*? popup - membership */
#popup .popup_membership_box { width: 280px; padding: 16px; background: var(--gray-10); border-radius: 8px; margin: 24px auto 0; }
#popup .popup_membership_box .info_title_box { border-bottom: 1px solid var(--gray-20); padding-bottom: 8px; margin-bottom: 8px; }
#popup .popup_membership_box .info_title_box h3 { font-size: 14px; font-weight: 700; color: var(--gray-80); line-height: 18px; }
#popup .popup_membership_box .info_title_box span { font-size: 14px; font-weight: 700; color: var(--primary-80); line-height: 18px; display: inline-block; }
#popup .popup_membership_box dl + dl { margin-top: 8px; }
#popup .popup_membership_box dl dt { font-size: 14px; font-weight: 600; color: var(--gray-40); line-height: 18px; opacity: 0.8; }
#popup .popup_membership_box dl dd { font-size: 14px; font-weight: 400; color: var(--gray-60); line-height: 18px; }
#popup .popup_membership_box dl dd b { font-size: 16px; font-weight: 600; }



/*! ─────────────────── Components - 로딩 ─────────────────── */
#alert { position: fixed; left: 50%; top: 100px; transform: translateX(-50%); min-width: 520px; padding: 16px 68px; background: var(--primary-80); border-radius: 8px; box-shadow: 0px 20px 24px 0px rgba(0, 0, 0, 0.08), 0px 8px 8px 0px rgba(0, 0, 0, 0.03); z-index: 2000; opacity: 0; pointer-events: none; transition: all 0.3s ease-in-out; }
#alert.active { top: 125px; opacity: 1; pointer-events: all; }
#alert::before { position: absolute; left: 24px; top: 50%; transform: translateY(-50%); width: 32px; height: 32px; content: ''; display: block; }
#alert.success::before { background: url(../image/icon/icon_alert_success.svg) no-repeat center center; background-size: contain; }
#alert.fail::before { background: url(../image/icon/icon_alert_fail.svg) no-repeat center center; background-size: contain; }
#alert.warning::before { background: url(../image/icon/icon_alert_warning.svg) no-repeat center center; background-size: contain; }
#alert.notice::before { background: url(../image/icon/icon_alert_notice.svg) no-repeat center center; background-size: contain; }
#alert .alert_wrap { display: flex; flex-direction: column; justify-content: center; min-height: 32px; }
#alert .alert_wrap h3 { font-size: 16px; font-weight: 600; color: #ffffff; line-height: 24px; word-break: keep-all; }
#alert .alert_wrap p { font-size: 14px; font-weight: 400; color: #ffffff; line-height: 22px; opacity: 0.8; }
#alert .alert_wrap .btn_close { position: absolute; right: 24px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px; background: url(../image/btn/btn_exit_w.svg) no-repeat center center; text-indent: -9999px; overflow: hidden; }



/*! ─────────────────── Components - 로딩 ─────────────────── */
#loading { display: none; position: fixed; left: 0; top: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.8); overflow: hidden; z-index: 3000; }
#loading .loading_wrap { position: fixed; left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%); width: auto; min-width: 380px; text-align: center; padding: 16px; z-index: 3000; overflow: hidden; }
#loading .loading_wrap h2 { position: relative; font-size: 38px; font-weight: 700; color: #ffffff; line-height: 40px; letter-spacing: -1px; display: inline-block; margin-bottom: 32px; }
#loading .loading_wrap h2::before,
#loading .loading_wrap h2::after { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 8px; background: url(../image/icon/icon_dot.svg) no-repeat center center; background-size: contain; content: ''; display: inline-block; }
#loading .loading_wrap h2::before { left: -100px; }
#loading .loading_wrap h2::after { right: -100px; }
#loading .loading_wrap p { font-size: 28px; font-weight: 400; color: #ffffff; line-height: 38px; letter-spacing: -1px; }