* {
    padding: 0;
    margin: 0;
}

li {
    list-style: none;
}

a {
    display: inline-block;
    text-decoration: none;
    color: #222;
}

img {
    display: inline-block;
}

button {
    border: none;
    border-radius: 10px;
    font-size: 18px;
    font-weight: 600;
    color: #fff;
    padding: 18px 20px;
    cursor: pointer;
    font-family: 'Pretendard';
    font-weight: 500;
}

/* ── 인라인 소형 버튼 (btn04 + btn_컬러) ──────────────────────────────────
   위 generic `button` 규칙이 color:#fff 만 주고 background 는 주지 않는다.
   그래서 배경을 지정하는 클래스가 없으면 '흰 글자 + 브라우저 기본 회색' 이 되어
   글자가 거의 보이지 않는다. btn04/btn_* 는 구 테마(resources/user/css/common.css)
   에만 있고 이 테마로 포팅되지 않아, updUser.jsp 의 [개명신청]·[우편번호 찾기]
   버튼이 이 상태였다. (2026-07-21)
   ※ 색상은 흰 글자 대비 WCAG AA(4.5:1) 이상으로 선정. 구 테마의 btn_orange(#fb9678)
      는 대비 2.2:1 로 기준 미달이라 그대로 쓰지 않고 진한 오렌지로 조정. */
.btn04 {
    display: inline-block;
    padding: 0 15px;
    height: 30px;
    line-height: 30px;
    font-size: 14px;
    font-weight: 500;
    text-align: center;
    vertical-align: middle;
    border-radius: 5px;
    transition: background-color .2s ease-in-out;
}
.btn_orange       { background: #c2410c; color: #fff; }   /* 대비 5.2:1 */
.btn_orange:hover { background: #9a340a; }
.btn_black        { background: #333333; color: #fff; }   /* 대비 12.6:1, button.pay 와 동일 계열 */
.btn_black:hover  { background: #000000; }
.btn_gray         { background: #5f6673; color: #fff; }   /* 대비 5.8:1 */
.btn_gray:hover   { background: #4a505b; }
/* [2026-09-24] .btn_blue 신규 — 이 파일(메인 화면용 CSS)에 정의가 없어 배경색 없이 렌더됐다.
   (팝업용 resources/user/css/common.css:1706 에만 있었다 → 팝업은 정상, 메인 화면만 안 보임)
   강사 「내 배정 과정」의 [입장하기] 버튼이 그 사례. 메인에서 btn_blue 를 쓰는 화면이 여럿이라 함께 해소된다.
   색은 팝업(#4195f5)보다 어둡게 잡았다 — 위 규칙들과 같은 접근성 기준(본문 대비 4.5:1)을 맞추기 위함. */
.btn_blue         { background: #1557b0; color: #fff; }   /* 대비 5.9:1 */
.btn_blue:hover   { background: #11458c; }

.inner {
    max-width: 1400px;
    margin: 0 auto;
}

/*font*/
@font-face {
    font-family: 'Pretendard';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2') format('woff2');
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'PretendardM';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2') format('woff2');
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: 'PretendardSB';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2') format('woff2');
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: 'PretendardB';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2') format('woff2');
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'PretendardEB';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraBold.woff2') format('woff2');
    font-weight: 800;
    font-display: swap;
}

@font-face {
    font-family: 'PretendardBK';
    src: url('https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Black.woff2') format('woff2');
    font-weight: 900;
    font-display: swap;
}

body {
    font-family: 'Pretendard';
    color: #222;
}

#container {
    word-break: keep-all;
}

h2 {
    font-family: 'PretendardB';
}

/*font-weight*/
.bold {
    font-weight: 600;
}

/*txt color*/
.c_gr {
    color: #6C9A12;
}

.c_dgr {
    color: #00703F;
}

.c_yl {
    color: #FFD469
}

.c_wt {
    color: #fff;
}

.c_dgy {
    color: #666
}

.c_dgy2 {
    color: #888
}

.c_cyan {
    color: #8DEDED;
}

.c_dm {
    color: #009499;
}


/*bg_color*/
.bg_mint {
    background-color: #009499
}

.bg_dgr {
    background-color: #00703F;
}

.bg_lgr {
    background-color: #EDF8D9
}

.bg_bk {
    background-color: #333333;
}

.bg_mgr {
    background-color: #619300;
}

.bg_or {
    background-color: #FF9D00
}

.bg_lgy {
    background-color: #F1F1F1;
}

.bg_mgy {
    background-color: #D9D9D9
}

/*tab*/
.cate_tab_ul {
    display: flex;
    flex-wrap: wrap;
    border: 1px solid #ddd;
}

.cate_tab_li {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 25%;
    height: 66px;
    box-sizing: border-box;
    /*border-bottom: 1px solid #ddd;*/
    border-right: 1px solid #ddd;
    cursor: pointer;
}

.cate_tab_li.on {
    background: #3FA8FF;
    color: #fff;
}


/*menu tab*/
.menu_tab {
    margin-bottom: 30px;
}

.menu_tab_ul {
    display: flex;
    border: 1px solid #ddd;
    border-bottom: 0;
}

.menu_tab_li {
    width: 20%;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 66px;
    box-sizing: border-box;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
    cursor: pointer;
}

.menu_tab_li:last-child {
    border-right: 0;
}

.menu_tab_li.on, .menu_tab_li a.active {
    background: #008d85;
    color: #fff;
    font-weight: 600;
}

.menu_tab_li.on a {
    color: #fff;
}

.menu_tab_li a {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

/*faq tab*/
.faq_tab_li {
    border-bottom: 0;
}

.faq_tab_li:last-child {
    border-right: 0;
}

.faq ul {
    margin-top: 30px;
}

.faq ul li {
    font-size: 16px;
}

.faq_tit a {
    display: block;
    padding: 20px 10px;
    font-size: 18px;
}

.faq ul li:first-child .faq_tit {
    border-top: 1px solid #ddd;
}

.faq_tit {

    border-bottom: 1px solid #ddd;
}

.faq_cont {
    display: none;
    background: #f9f9f9;
    padding: 20px;
}

.q_logo {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border-radius: 999px;
    background: #ecf7f0;
    width: 40px;
    height: 40px;
    margin-right: 10px;
    font-size: 16px;
    color: #6C9A12;
}

/*width*/
.w100 {
    width: 100%;
}

/*form*/
input::placeholder {
    color: #7e7e7e;
    font-family: 'Pretendard';
}

input[type="checkbox"] {
    appearance: none;
    box-sizing: border-box;
    background-clip: content-box;
    padding: 0.25em;
    width: 16px;
    height: 16px;
    border: 1px solid #b5b5b5;
    border-radius: 2px;
    cursor: pointer;
    margin-right: 8px;
    background: #fff;
}

input[type="checkbox"]:checked {
    background-image: url(../img/icon/checked.png);
    background-size: 100%;
    border: none;
}

label {
    cursor: pointer;
}

input[type="text"] {
    height: 62px;
    font-size: 16px;
    border: 1px solid #ddd;
    border-radius: 4px;
    text-indent: 10px;
}

input.srch {
    background: url('../img/icon/srch.png') no-repeat 20px center;
    background-size: 16px;
    text-indent: 50px;
}

.srch_sel {
    width: 200px;
    height: 62px;
    margin-right: 10px;
}

select {
    height: 46px;
    font-family: 'GMarketSansM';
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    padding: 0 30px 0 10px;
    appearance: none;
    background-image: url('../img/icon/select_bk.png');
    background-position: right 10px center;
    background-repeat: no-repeat;
    background-size: 9px;
}

input[type="date"] {
    height: 46px;
    font-family: 'Pretendard';
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    padding: 0 8px;
    box-sizing: border-box;
}

input[type="date"] {
    background: #336A67 url(../img/icon/cal.png) no-repeat right 10px center !important;
    background-size: 13px !important;
}

input[type="date"]::-webkit-calendar-picker-indicator, input[type="date"]::-webkit-inner-spin-button {
    opacity: 0;
    appearance: none;
}

textarea {
    width: 100%;
    height: 6.25em;
    border: 1px solid #ddd;
    resize: none;
    padding: 10px;
    font-family: 'GMarketSans';
    font-size: 1rem;
    box-sizing: border-box;
    border-radius: 4px;
}

textarea:focus {
    outline: none;
}

input:focus {
    outline: none;
}

table {
    width: 100%;
    border-top: 2px solid #222;
    margin-top: 30px;
    border-spacing: unset;
    font-size: 14px;
}

table .spe {
    background: #f9f9f9;
}

table td {
    padding: 16px 20px;
    border-right: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

table td:last-child {
    border-right: 0;
}

.board_num, .board_date {
    text-align: center;
    color: #888;
    white-space: nowrap
}

table .board_tit {
    font-size: 16px;
}

table .board_tit a {
    transition: .3s;
}

table .board_tit a:hover {
    color: #619300;
    transition: .3s;
}

table .spe_cate span {
    padding: 6px 6px 4px;
    color: #ffffff;
    background: #6C9A12;
    border-radius: 999px;
}

.basic_table {
    font-size: 16px;
    line-height: 148%;
    text-align: center;
}

.basic_table th {
    background: #f7f7f7;
    padding: 20px 0;
    border-bottom: 1px solid #ddd;
    border-right: 1px solid #ddd;
}

.basic_table th:last-child {
    border-right: 0;
}

.view.board table thead th {
    font-size: 20px;
    padding: 20px 0;
    border-bottom: 1px solid #ddd;
}

.view.board table thead td {
    text-align: center;
    border-bottom: 1px dashed #ddd;
    border-right: 0;
}

.view.board table .cont div {
    min-height: 300px;
    font-size: 16px;
    font-weight: 300;
    line-height: 140%;
}

.view.board table .cont td {
    border-right: 0;
}

.view.board table .file td {
    display: flex;
    align-items: center;
}

.view.board table .file td h3 {
    display: flex;
    align-items: center;
    margin-right: 14px;
}

.view.board table .file td h3 img {
    width: 18px;
    margin-right: 6px;
    opacity: 1;
}

.board_btn {
    display: flex;
    justify-content: flex-end;
    margin-top: 30px;
}

.board_btn.two {
    justify-content: space-between;
}

.btn {
    padding: 10px 20px;
    background: #eee;
    color: #666;
    border-radius: 4px;
    font-size: 16px;
    border: 1px solid #eee;
}

.btn.go_list {

}
.btn.basic{
    background: #fff;
    border: 1px solid #ccc;
}

.btn.write {
    background: #619300;
    color: #fff;
    padding: 10px 20px;
}

.board_name {
    color: #666;
}

.board_name, .board_state {
    text-align: center;
}

.board_state span {
    padding: 10px;
    background: #eee;
    color: #666;
    border-radius: 2px;
}

.board_state.comp span {
    background: #FF9D00;
    color: #fff;
}

.faq_answer td {
    padding: 0;
}

.faq_answer div {
    background: #f2fbf5;
    padding: 30px;
    font-size: 16px;
    border-right: 1px solid #ddd;
    border-left: 1px solid #ddd;
}

.faq_answer h3 {
    font-size: 16px;
    padding-bottom: 10px;
    color: #6C9A12;
}

/*write*/
.write input[type="text"] {
    width: 100%;
    height: 45px;
}

.write th {
    font-size: 18px;
    background: #f7f7f7;
    border-bottom: 1px solid #ddd;
}

.write textarea {
    height: 300px;
}

/*bdrd*/
.bdrd2 {
    border-radius: 2px;
}

.bdrd4 {
    border-radius: 4px;
}

.bdrd999 {
    border-radius: 999px;
}

/*display*/
.dib {
    display: inline-block;
}

/*flex*/
.flex_ls {
    display: flex;
    justify-content: space-between;
}

.flex_just_sb {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.flex_al {
    display: flex;
    align-items: center;
}
.flex{
    display: flex
}
.alc{
    align-items: center;
}

/*margin*/
.mt10 {
    margin-top: 10px;
}
.mt20 {
    margin-top: 20px;
}

.mt30 {
    margin-top: 30px;
}

.mt40 {
    margin-top: 40px;
}

.mb20 {
    margin-bottom: 20px;
}

.mb30 {
    margin-bottom: 30px;
}

.mb40 {
    margin-bottom: 40px;
}

/*padding*/
.pt2 {
    padding-top: 2px;
}

/*board*/
.paging_arr button img {
    height: 10px;
}

.paging_btn {
    display: flex;
    justify-content: center;
    margin-top: 60px;
}

.paging_btn button {
    width: 34px;
    height: 44px;
    padding: 0;
    border-radius: 0;
    background: #fff;
    color: #666;
    border-right: 1px solid #ddd;
    font-weight: 300;
}

.paging_btn button:first-child {
    border-left: 1px solid #ddd;
}

.paging_btn .paging_arr {
    display: flex;
    align-items: center;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

.paging_btn .paging_num {
    display: flex;
    align-items: center;
    margin: 0 16px;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

.paging_btn .paging_num button.on {
    background: #619300;
    color: #fff;
    font-weight: 500;
}

/*bdge*/
.cate_bdge {
    display: inline-block;
    font-size: 14px;
    padding: 6px 10px 4px;
    border-radius: 4px;
    background-color: #EDF8D9;
    color: #00703F;

}

.state_bdge {
    display: inline-block;
    font-size: 14px;
    margin-left: 10px;
    border-radius: 4px;
    padding: 6px 10px 4px;
    color: #fff;

}

.bdge_ing {
    background-color: #FF9D00;
}

.bdge_pre {
    background-color: #333333;
}

.bdge_end {
    background-color: #D9D9D9;
    color: #888;
}

/*header*/
header {
    position: relative;
    z-index: 99;
}

header .h_top {
    background: #004541;
    font-family: 'Pretendard';
}

header .h_top .inner {
    display: flex;
    justify-content: space-between;
}

header .ht_lt ul {
    display: flex;
}

header .h_top ul li a {
    padding: 10px 15px;
}

header .ht_lt ul li.on {
    background: #fff;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

header .ht_lt ul li.on a {
    color: #004541;
    font-weight: 600;
}

header .ht_rg ul {
    display: flex;
    align-items: center;
}

header .ht_rg ul li a {
    padding: 10px;
}

header .ht_rg ul li.mypage a {
    color: #00703f;
    padding: 6px 10px;
    font-weight: 600;
    font-size: 14px;
    background: #fff;
    border-radius: 999px;
}

header .h_top a {
    color: #fff;
}

header .h_bot .inner {
    display: flex;
    justify-content: space-between;
}

header .h_bot .logo {
    display: flex;
    align-items: center;
}

header .h_bot nav ul.h_main_list {
    display: flex;
    align-items: center;
    position: relative;
}

header .h_bot nav .m_list {
    position: relative;
}

header .h_bot nav .m_list a {
    font-weight: 600;
    font-size: 24px;
    padding: 30px 30px;
    transition: .3s;
}

header .h_bot nav .m_list a:hover {
    color: #009499;
    transition: .3s;
}

header .h_bot nav .s_list {
    text-align: center;
}

header .h_bot nav .s_list a {
    font-size: 18px;
    padding: 10px;
    font-weight: 500;
}

header ul.h_sub_list {
    display: none;
    width: 120%;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
    padding: 10px 0;
}

header nav {
    display: flex;
}

header .h_bg {
    width: 100%;
    position: absolute;
    background: #fff;
    height: 100%;
    display: none;
    top: 100%;
    left: 0;
    z-index: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

header .h_bot {
    border-bottom: 1px solid #ddd;
}

header .h_bot nav .m_list {
    position: relative;
    z-index: 1;
}

.mypage a {
    color: #222;
    font-weight: 500;
}

.mypage .mypg_top a {
    color: #222;
    padding: 20px 0;
    display: block;
}

/*footer*/
footer {
    background: #333;
    color: #fff;
}

footer a {
    color: #fff;
}

.f_top {
    background: #666;
}

.f_top .inner {
    display: flex;
    justify-content: space-between;
}

.f_top .f_top_link {
    display: flex;
    padding: 20px 0;
}

.f_top .f_top_link li {
    margin-right: 30px;
}

.f_top .f_top_link li:last-child {
    margin-right: 0;
}

.f_t_s_list {
    display: none;
    position: absolute;
    width: 100%;
}

.f_top_site {
    position: relative;
}

.f_top_site .site_tit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-left: 1px solid #fff;
    border-right: 1px solid #fff;
    width: 300px;
    height: 100%;
    padding: 0 20px;
    box-sizing: border-box;
}

.f_top_site .site_tit img {
    width: 16px
}

.f_t_s_list li {

}

.f_t_s_list li > a {
    width: 100%;
    border: 1px solid #fff;
    box-sizing: border-box;
    padding: 15px 20px;
    border-top: 0;
}

.f_bot {
    padding: 30px 0;
    font-size: 14px;
}

.f_bot li {
    padding-bottom: 8px;
}

.copy {
    color: #bbb;
    padding-top: 18px;
}

/*login*/
.m_login {
    max-width: 410px;
    color: #004541;
    text-align: center;
    border-radius: 30px;
    padding: 88px 0px 0;
    position: relative;
    z-index: 10;

}

.m_cont .my_login .my_btn {
    display: flex;
    justify-content: space-between;
    padding-bottom: 50px;
}

.m_cont .my_login .my_btn button {
    width: 32%;
    font-size: 16px;
}

.m_cont .my_login .my_btn button img {
    width: 24px;
    margin-bottom: 10px;
}

.m_cont .my_login .tit_rg button {
    font-size: 16px;
    color: #004541;
    background: #ffffff;
    box-shadow: 2px 2px 0 #004541;
    font-weight: 700;
    padding: 10px 20px;
    margin: 15px 0;
    border-radius: 8px;
}

.m_cont .my_login .my_btn button h3 {
    word-break: keep-all;
}

.m_cont .my_login .tit_rg button img {
    width: 12px;
    margin-left: 8px;
}

.m_login_box {
    background: rgba(255, 255, 255, 0.7) url(../img/login_bg.png) no-repeat left top;
    background-size: contain;
    padding: 0 max(20px, calc((100% - 1400px) / 2 + 120px)) 0 max(20px, calc((100% - 1400px) / 2 + 0px));
    min-height: 538px;
}

/*.m_login_box::before {
    content:'';
    display: block;
    width:100%;
    max-width: 760px;
    height:100%;
    background: rgba(255,255,255,0.7) url(../img/login_bg.png) no-repeat left top;
    background-size: contain;
    position: absolute;
    top:0;
    right:0;
    z-index: 0; 
}*/
.m_login h2 {
    word-break: keep-all;
    font-size: 32px;
    padding-bottom: 8px;
    border-bottom: 1px solid #004541;
    margin-bottom: 20px;
}

.m_login p {
    font-size: 18px;
    letter-spacing: -0.5px;
}

.m_login .log_info {
    padding: 24px 0;
}

.m_login .log_info input {
    width: 100%;
    height: auto;
    padding: 16px 14px;
    box-sizing: border-box;
    border-radius: 10px;
    border: none;
    background: #F8F8F8;
    font-size: 18px;
    text-indent: 30px;
    background-image: url('../img/icon/id.png');
    background-position: 5% center;
    background-repeat: no-repeat;
    background-size: 16px;
}

.m_login .log_info input.id {
    margin-bottom: 15px;
}

.m_login .log_info input.pw {
    background-image: url('../img/icon/pass.png');
}

.m_login .log_help {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0 40px;
}

.m_login .log_save {
    display: flex;
    align-items: center;
    font-family: 'Pretendard';
}

.log_info_page {
}

.log_info_page a {
    text-align: center;
    font-size: 16px;
    font-weight: 500;
}

.log_info_page a.join {
    position: relative;
    color: #004541;
    font-weight: 600;
    padding-right: 8px;
}

.log_info_page a.join::after {
    content: '';
    display: block;
    width: 1px;
    height: 12px;
    background: #606060;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.log_btn button {
    width: 100%;
    padding: 15px;
    background: #006d66;
}

.m_edu_btn {
    position: relative;
    z-index: 1;
    padding-bottom: 88px;
}

.m_edu_btn button {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #004541;
    background: #fff;
    border: 2px solid #004541;
    font-size: 20px;
    transition: .3s;
}

.m_edu_btn button:hover {
    background: #004541;
    color: #fff;
    transition: .3s;
}

.m_edu_btn button img.normal {
    display: block;
}

.m_edu_btn button img.hover {
    display: none;
}

.m_edu_btn button img {
    width: 17px;
    margin-left: 10px;
}

.m_edu_btn button:hover img.normal {
    display: none;
}

.m_edu_btn button:hover img.hover {
    display: block;
}

.edu_view2_bot {
    justify-content: center;
    margin-top: 30px;
}

.edu_view2_bot .edu_subs {
    margin: 0
}

.edu_view2_bot .edu_subs:first-child {
    margin-right: 10px;
}

/*준비중 페이지*/
button.pay {
    font-size: 14px;
    background: #333;
    padding: 12px 9px;
    border-radius: 8px;

}

button.pay:nth-child(3) {
    margin-top: 5px
}

button.pay2 {
    background: #1da0c9;
}

button.pay3 {
    background: #126511;
}

.board_pager {
    text-align: center;
    padding-top: 30px;
}

.board_pager .pagination a {
    display: inline-block;
    min-width: 40px;
    padding: 10px;
    border: 1px solid #666;
    border-radius: 4px;
    text-align: center;
    color: #333;
    text-decoration: none;
    box-sizing: border-box;
}
.board_pager .pagination a.active {
    background: #666;
    color: #fff;
}
.board_pager .pagination a.active {
    background-color: #666;
    border-color: #666;
    color: #fff;
}

.board_pager .pagination a:hover:not(.active) {
    background-color: #eee;
}

.paging_btn .paging_num {
    border-top: 0;
    border-bottom: 0;
}

.paging_btn .paging_num button {
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;
}

.no_data {
    text-align: center;
    width: 100%;
}

.preparing {
    padding: 30px;
    border: 1px solid #ddd;
    text-align: center;
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
}

.preparing .img {
    width: 80px;
    margin: 0 auto 10px;
}

.preparing img {
    width: 100%;

}

.preparing strong {
    font-size: 30px;
    color: #6c9a12;
}

.preparing p {
    font-size: 16px;
    padding: 20px 20px 0;
    color: #666;
    border-top: 1px dashed #ddd;
    margin-top: 20px;
}

caption {
    display: none;
}

.edu_view table {
    min-width: 700px;
}

.edu_view table th {
    padding: 10px;
    background: #f7f7f7;
    border-right: 1px solid #ddd;
}

.edu_view table th:last-child {
    border: 0;
}

.edu_view table td {
    text-align: center;
}

.edu_view_cont {
    overflow-x: scroll;
}

.edu_view2 .dday {
    color: #ff9d00;
}

.edu_view2_box02 .edu_view2_table {
    width: 100%;
    table-layout: fixed;
    border-collapse: collapse;
}

.edu_view2_box02 .edu_view2_table th,
.edu_view2_box02 .edu_view2_table td {
    vertical-align: middle;
    box-sizing: border-box;
}

.edu_view2_box02 .edu_view2_table th {
    word-break: keep-all;
}

.edu_view2_box02 .edu_view2_table td select,
.edu_view2_box02 .edu_view2_table td input,
.edu_view2_box02 .edu_view2_table td button {
    max-width: 100%;
    box-sizing: border-box;
}

.edu_view2_box02 .edu_view2_table td:has(#searchKeyword) {
    /*display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;*/
    width: 100%;
}

.edu_view2_box02 #searchKeyword {
    flex: 1 1 240px;
    width: auto !important;
    min-width: 0;
}

.edu_view2_box02 #searchBtn {
    flex: 0 0 auto;
    white-space: nowrap;
    background: #555;
    color: #fff;
    border: 0;
    height: 46px;
    padding: 0 20px;
    cursor: pointer;
    font-size: 16px;
    border-radius: 4px;
}

.edu_view2_box02 #localSelect {
    flex: 1 1 100%;
    width: 100% !important;
    min-width: 0;
    max-width: 500px;
}
.warning_box .chk_box {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}
/*모바일 헤더*/
.mo_menu_btn {
    display: none;
    width: 32px;
    height: 26px;
    border: 0;
    background: none;
    padding: 0;
    cursor: pointer;
    position: relative;
    z-index: 1001;
}

.mo_menu_btn span {
    display: block;
    width: 100%;
    height: 3px;
    background: #222;
    border-radius: 3px;
    position: absolute;
    left: 0;
    transition: all 0.3s ease;
}

.mo_menu_btn span:nth-child(1) {
    top: 0;
}

.mo_menu_btn span:nth-child(2) {
    top: 11px;
}

.mo_menu_btn span:nth-child(3) {
    top: 22px;
}

.mo_menu_btn.on span:nth-child(1) {
    top: 11px;
    transform: rotate(45deg);
}

.mo_menu_btn.on span:nth-child(2) {
    opacity: 0;
}

.mo_menu_btn.on span:nth-child(3) {
    top: 11px;
    transform: rotate(-45deg);
}

.mo_bot {
    display: none;
}


@media (max-width: 1400px) {
    .inner {
        padding: 0 3%;
        box-sizing: border-box;
    }
}

@media (max-width: 1200px) {
    .edu_view2_box02 .edu_view2_table th,
    .edu_view2_box02 .edu_view2_table td {
        padding: 14px 12px;
    }

    .edu_view2_box02 .edu_view2_table th {
        width: 16%;
    }

    .edu_view2_box02 .edu_view2_table td {
        width: 34%;
    }

    .edu_view2_box02 .edu_view2_table td select {
        width: 100%;
    }

    .edu_view2_box02 #searchKeyword {
        flex: 1 1 200px;
    }

    .edu_view2_box02 #localSelect {
        flex: 1 1 100%;
    }

    header .h_top ul li a {
        padding: 10px 10px;
    }

    .m_login h2 {
        font-size: 30px;
    }

    .m_login {
        padding-top: 60px;
        max-width: 350px;
    }

    .m_login p {
        font-size: 16px;
    }

    .m_login .log_info input {
        font-size: 16px;
    }

    .m_login_box {
        padding: 0 max(30px, calc((100% - 1400px) / 2 + 120px)) 0 max(30px, calc((100% - 1400px) / 2 + 0px));
    }

    .m_edu_btn button {
        font-size: 16px;
    }

    .v_tit {
        font-size: 40px;
    }

    .m_cont .s_tit {
        font-size: 18px;
    }

    .m_cont .m_srch p {
        font-size: 20px;
    }

    .m_cont .m_srch p img {
        width: 16px;
    }

    .m_cont .input_box input {
        height: 50px;
    }
}

@media (max-width: 1024px) {
    .edu_view2_box02 .edu_view2_table th {
        width: 18%;
        font-size: 15px;
    }

    .edu_view2_box02 .edu_view2_table td {
        width: 32%;
    }

    .edu_view2_box02 .edu_view2_table td select,
    .edu_view2_box02 .edu_view2_table td input {
        height: 42px !important;
        font-size: 14px;
    }

    .edu_view2_box02 #searchBtn {
        height: 42px !important;
        padding: 0 16px !important;
    }

    .edu_view2_box02 #searchKeyword {
        flex: 1 1 calc(100% - 90px);
    }

    .edu_view2_box02 #searchBtn {
        flex: 0 0 80px;
    }

    .edu_view2_box02 #localSelect {
        flex: 1 1 100%;
        width: 100% !important;
    }

    body.mo_open {
        overflow: hidden;
        height: 100vh;
    }

    header .h_bot .logo {
        position: relative;
        z-index: 99999;
    }

    .m_cont .input_box button {
        right: 2px;
    }

    header .h_bot nav .m_list a:hover {
        color: #222;
    }

    header .h_top,
    .h_top {
        display: none !important;
    }

    .m_login_box {
        width: 100%;
        padding: 0 20px;
        box-sizing: border-box;
        min-height: auto;
    }

    .m_login {
        max-width: 100%;
    }

    .m_login .log_info input {
        background-position: 10px center;
    }

    .h_bot {
        position: relative;
        background: #fff;
        z-index: 1000;
    }

    .h_bot .inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        height: 55px;
        padding: 0 20px;
        box-sizing: border-box;
        position: relative;
        z-index: 10001;
    }

    .mo_menu_btn {
        display: block;
        width: 30px;
        height: 24px;
        border: 0;
        background: none;
        padding: 0;
        position: relative;
        cursor: pointer;
        z-index: 10002;
    }

    .mo_menu_btn span {
        display: block;
        width: 100%;
        height: 3px;
        background: #222;
        position: absolute;
        left: 0;
        transition: all .3s;
    }

    .mo_menu_btn span:nth-child(1) {
        top: 0;
    }

    .mo_menu_btn span:nth-child(2) {
        top: 10px;
    }

    .mo_menu_btn span:nth-child(3) {
        top: 20px;
    }

    .mo_menu_btn.on span:nth-child(1) {
        top: 10px;
        transform: rotate(45deg);
    }

    .mo_menu_btn.on span:nth-child(2) {
        opacity: 0;
    }

    .mo_menu_btn.on span:nth-child(3) {
        top: 10px;
        transform: rotate(-45deg);
    }

    .h_bot nav {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100vh;
        background: #fff;
        z-index: 10000;
        overflow-y: auto;
        padding: 55px 0 30px;
        box-sizing: border-box;
        border-top: 0;
    }

    .h_bot nav.on {
        display: block;
        padding-bottom: 120px;
    }

    header .h_bot nav ul.h_main_list {
        display: block;
        width: 100%;
    }

    .h_main_list > .m_list {
        display: block;
        width: 100%;
        border-bottom: 1px solid #e5e5e5;
    }

    .h_main_list > .m_list > a {
        display: block;
        width: 100%;
        padding: 18px 20px;
        box-sizing: border-box;
        font-size: 18px;
        font-weight: 700;
        color: #222;
        position: relative;
    }

    .h_main_list > .m_list > a::after {
        content: '+';
        position: absolute;
        right: 20px;
        top: 50%;
        transform: translateY(-50%);
        font-size: 24px;
        font-weight: 400;
    }

    .h_main_list > .m_list.open > a::after {
        content: '-';
    }

    .h_main_list > .m_list > .h_sub_list {
        display: none;
        padding: 10px 0;
        background: #f8f8f8;
    }

    header ul.h_sub_list {
        position: static;
        width: 100%;
        left: auto;
        top: auto;
        transform: none;
        padding: 10px 0;
    }

    header .h_bot nav .m_list a {
        font-size: 20px;
        padding: 20px 20px;
    }

    header .h_bot nav .h_sub_list a {
        padding: 10px 20px;
        font-size: 18px;
    }

    .h_main_list > .m_list.open > .h_sub_list {
        display: block;
    }

    .h_sub_list .s_list {
        display: block;
        width: 100%;
        text-align: left;
    }

    .h_sub_list .s_list a {
        display: block;
        padding: 12px 28px;
        font-size: 15px;
        color: #555;
        line-height: 1.4;
    }

    .h_main_list > .m_list:hover > .h_sub_list {
        display: none !important;
    }

    .h_main_list > .m_list.open:hover > .h_sub_list {
        display: block !important;
    }

    .h_bg,
    header .h_bg,
    header:hover .h_bg {
        display: none !important;
    }

    header .h_bot .logo img {
        width: 170px;
    }

    #moNav .mo_main_list > li > ul {
        display: none;
    }

    #moNav .mo_main_list > li.open > ul {
        display: block;
    }

    .menu_tab_li {
        height: 55px;
    }

    .menu_tab_li a {
        font-size: 14px;
    }

    .s1 .menu_tab_li img {
        width: 11px;
    }

    .preparing .img {
        width: 60px;
    }

    .preparing strong {
        font-size: 24px;
    }

    .preparing p {
        font-size: 14px;
        padding-top: 15px;
        margin-top: 15px;
    }

    .mo_main_list li.open > .mo_sub_list li {
        margin-bottom: 10px;
    }

    .menu_tab_li a {
        font-size: 16px;
    }

    table td {
        padding: 16px 5px;
    }


    .mo_hd_bt {
        margin-top: 30px;
    }

    .h_site {
        display: flex;
        flex-wrap: wrap;
    }

    .h_site li {
        width: 50%;
        border: 1px solid #ddd;
        box-sizing: border-box;
        border-right: 0;
        border-bottom: 0;
        overflow: hidden;
    }

    .h_site li:nth-child(2n) {
        border-right: 1px solid #ddd;
    }

    .h_site li:nth-child(5), .h_site li:nth-child(6) {
        border-bottom: 1px solid #ddd;
    }

    .h_site li:first-child {
        border-top-left-radius: 10px;
    }

    .h_site li:last-child {
        border-bottom-right-radius: 10px;
    }

    .h_site li a {
        display: flex;
        align-items: center;
        justify-content: center;
        height: 100%;
        text-align: center;
        font-size: 12px;
        padding: 8px;
        box-sizing: border-box;
        word-break: keep-all;
    }

    .h_site li a.mypg {
        background: #1da0c9;
        color: #fff;
    }

    header.sub .inner {
        padding: 0;
    }

    .faq_tit a {
        padding: 10px 10px;
        font-size: 16px;
    }

    .q_logo {
        width: 30px;
        height: 30px;
    }

    .mo_bot {
        display: block;
        padding: 10px 20px;
    }

    header .mo_bot ul:first-of-type {
        display: flex;
        position: fixed;
        bottom: 0;
        width: 100%;
        left: 0;
        z-index: 999;
    }

    header .mo_bot ul:first-of-type li {
        border: 1px solid #ddd;
        width: 33.3333%;
        text-align: center;
        box-sizing: border-box;
        border-right: 0;
        background: #f9f9f9;
    }

    header .mo_bot ul:first-of-type li a {
        display: block;
        padding: 30px 10px;
    }

    header .mo_bot ul.site {
        display: flex;
        flex-wrap: wrap;
        border-bottom: 1px solid #ddd;
        border-right: 1px solid #ddd;
        margin-top: 20px;
    }

    header .mo_bot ul.site li {
        border: 1px solid #ddd;
        width: 50%;
        text-align: center;
        box-sizing: border-box;
        border-right: 0;
        border-bottom: 0;
    }

    header .mo_bot ul.site li a {
        display: block;
        padding: 10px;
    }

    a.mo_mp {
        padding: 10px 20px;
        border-radius: 999px;
        background: #138c43;
        color: #fff;
    }

    .mo_bot img {
        display: block;
        width: 22px;
        margin: 0 auto 10px;
    }

}

@media (max-width: 768px) {
    .menu_tab_li {
        height: 45px;
    }

    .v_tit {
        font-size: 24px;
        margin-bottom: 30px;
    }

    .m_cont .s_tit {
        font-size: 14px;
    }

    .m_cont .m_srch p {
        font-size: 16px;
    }

    .m_cont .m_srch p img {
        width: 11px;
        margin-right: 6px;
    }

    .m_cont .input_box {
        margin-top: 12px;
    }

    .m_cont .input_box input {
        height: 40px;
        text-indent: 14px;
    }

    .m_cont .input_box input::placeholder {
        font-size: 12px;
    }

    .m_cont .input_box button {
        padding: 9px 20px;
        font-size: 14px;
    }

    .main01 .m_cont .m_txt {
        padding: 25px 20px 40px;
    }

    .m_login h2 {
        font-size: 20px;
        margin-bottom: 14px;
    }

    .m_login {
        padding-top: 25px;
    }

    .m_login p {
        font-size: 15px;
    }

    .m_login .log_info {
        padding: 20px 0;
    }

    .m_login .log_info input {
        font-size: 14px;
        text-indent: 20px;
        padding: 12px 10px;
    }

    .m_login .log_info input.id {
        margin-bottom: 10px;
    }

    .log_btn button {
        padding: 15px;
        font-size: 16px;
    }

    .m_cont .my_login .my_btn button {
        padding: 15px 10px;
        font-size: 14px;

    }

    .m_cont .my_login .tit_rg button {
        font-size: 14px;
        padding: 10px 15px;
    }

    .m_cont .my_login .tit_rg button img {
        width: 10px;
    }

    .m_cont .my_login .my_btn {
        padding-bottom: 20px;
    }

    .log_info_page a {
        font-size: 14px;
    }

    .m_login .log_save {
        font-size: 14px;
    }

    .m_login .log_help {
        padding: 12px 0 20px;
    }

    .m_edu_btn button {
        font-size: 14px;
        padding: 12px 20px;
    }

    .m_edu_btn button img {
        width: 12px;
    }

    .m_edu_btn button:hover {
        background: #fff;
        color: #004541;
    }

    .m_edu_btn button:hover img.hover {
        display: none;
    }

    .m_edu_btn button:hover img.normal {
        display: block;
    }

    .m_edu_btn {
        padding-bottom: 30px;
    }

    .m_edu_srch h2 {
        font-size: 16px;
    }

    .m_edu_srch .close {
        padding: 14px 0;
    }

    .m_edu_srch .close .op_btn {
        width: 16px;
        height: 16px;
        margin-left: 8px;
    }

    footer a {
        font-size: 14px;
    }

    .f_top .f_top_link li {
        margin-right: 20px;
    }

    .paging_btn button {
        width: auto;
        height: 36px;
        font-size: 14px;
        padding: 0 7px;
        min-width: 23px;
    }

    .paging_arr button img {
        height: 8px;
    }

    .paging_btn .paging_num {
        margin: 0 10px;
    }

    .edu_list_rg button {
        padding: 12px;
    }

    .s1_edu_list .edu_list {
        padding: 15px 20px;
    }


    .board col:first-child {
        width: 10%;
    }

    .board col:nth-child(2) {
        width: 60%;
    }

    .board col:last-child {
        width: 20%;
    }

    table .spe_cate span {
        font-size: 12px;
    }

    table .board_tit {
        font-size: 14px;
    }

    table .board_tit {
        max-width: 100px;
    }

    table .board_tit span {
        width: 100%;
        display: block;
    }

    table .board_tit a {
        text-overflow: ellipsis;
        white-space: nowrap;
        overflow: hidden;
        width: 100%;
        box-sizing: border-box;
    }

    .btn.write {
        font-size: 14px;
    }

    table td:last-child {
        font-size: 14px;
    }
    .board_num, .board_date{
        font-size: 14px !important;
    }

    .s1 table td:last-child {
        font-size: 14px;
    }

    table td {
        padding: 12px 8px;
    }

    .menu_tab_li {
        height: 50px;
    }

    .menu_tab_li a {
        font-size: 14px;
        text-align: center;
    }

    .srch_sel {
        width: 120px;
        height: 45px;
    }

    input.srch {
        width: calc(100% - 132px);
        height: 45px;
        font-size: 14px;
    }

    .s1 input.srch {
        width: 100%;
        height: 45px;
        font-size: 14px;
    }

    .s3 .srch_box .srch_btn button {
        width: 100%;
    }

    .faq_cont {
        font-size: 14px;
    }

    .mypage .mypg_top a {
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        padding: 10px 15px;
    }

    .edu_view2_box02 .edu_view2_table,
    .edu_view2_box02 .edu_view2_table tbody,
    .edu_view2_box02 .edu_view2_table tr,
    .edu_view2_box02 .edu_view2_table th,
    .edu_view2_box02 .edu_view2_table td {
        display: block;
        width: 100% !important;
        border: none;
    }

    .edu_view2_box02 .edu_view2_table tr {
        margin-bottom: 16px;
        border: 1px solid #e5e5e5;
    }

    .edu_view2_box02 .edu_view2_table th {
        padding: 12px 14px 8px;
        border-bottom: 0;
        background: #eee;
        text-align: left;
        font-size: 14px;
    }

    .edu_view2_box02 .edu_view2_table td {
        padding: 10px 14px 14px;
        border-top: 0;
    }

    .edu_view2_box02 .edu_view2_table td select,
    .edu_view2_box02 .edu_view2_table td input,
    .edu_view2_box02 .edu_view2_table td button {
        width: 100% !important;
    }

    .edu_view2_box02 .edu_view2_table td:has(#searchKeyword) {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .edu_view2_box02 #searchKeyword {
        flex: 1 1 100%;
    }

    .edu_view2_box02 #searchBtn {
        flex: 1 1 100%;
        height: 44px !important;
    }

    .edu_view2_box02 #localSelect {
        flex: 1 1 100%;
    }

}

@media (max-width: 400px) {
    .menu_tab_li a {
        font-size: 3.5vw;

    }
}


header {
    z-index: 99999 !important;
}

.mo_menu_btn {
    position: relative !important;
    z-index: 100002 !important;
    pointer-events: auto !important;
}

.mo_menu_btn span {
    pointer-events: none !important;
}

/* [2026-09-15] 레이어 팝업(remodal)이 헤더/GNB 아래에 깔리는 문제.
   원인 — 위 header 패치가 z-index:99999 !important, .mo_menu_btn 이 100002 !important 인데
          remodal.css 는 overlay 9999 / wrapper 10000 (일반 선언)이라 헤더가 항상 위로 온다.
          (remodal.css 가 common.css 보다 나중에 로드되지만 !important 가 우선이라 순서로는 해결 안 됨)
   조치 — 모달을 헤더 최고값(100002)보다 위로 올린다. 헤더를 낮추면 모바일 메뉴 오버레이가 깨질 수 있어
          모달 쪽을 올리는 방향으로 잡았다. 결제하기/결제취소 등 openRemodal(common.js) 전 경로에 적용된다. */
.remodal-overlay {
    z-index: 100010 !important;
}

.remodal-wrapper {
    z-index: 100011 !important;
}
