@charset "utf-8";
/*
 * ULFINE 자사몰 기본 CSS
 * 그누보드5 기본 스타일에서 ULFINE 디자인과 충돌하는 부분 제거/수정
 * 레이아웃/폰트/컬러는 head.sub.php 인라인 스타일 + Tailwind CSS가 처리
 */

/* ── 기본 초기화 (Tailwind preflight와 공존) ── */
html { overflow-y: scroll; }
body { margin: 0; padding: 0; } /* font-size, font-family는 ULFINE CSS에서 처리 */
html, h1, h2, h3, h4, h5, h6, form, fieldset, img { margin: 0; padding: 0; border: 0; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; }
ul, dl, dt, dd { margin: 0; padding: 0; list-style: none; }
legend { position: absolute; margin: 0; padding: 0; font-size: 0; line-height: 0; text-indent: -9999em; overflow: hidden; }
select { margin: 0; }
p { margin: 0; padding: 0; word-break: break-all; }
hr { display: none; }
pre { overflow-x: scroll; }
*, :after, :before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }

/* ── 접근성 ── */
.msg_sound_only, .sound_only { display: inline-block !important; position: absolute; top: 0; left: 0; width: 0; height: 0; margin: 0 !important; padding: 0 !important; font-size: 0; line-height: 0; border: 0 !important; overflow: hidden !important; }
#hd_login_msg { display: none !important; }
#skip_to_container a { z-index: 100000; position: absolute; top: 0; left: 0; width: 1px; height: 1px; font-size: 0; line-height: 0; overflow: hidden; }
#skip_to_container a:focus, #skip_to_container a:active { width: 100%; height: 75px; background: #21272e; color: #fff; font-size: 2em; font-weight: bold; text-align: center; text-decoration: none; line-height: 3.3em; }

/* ── 팝업레이어 (newwin) ── */
.hd_pops {
    position: fixed !important;
    z-index: 100200 !important;
    max-width: calc(100vw - 32px);
    border: 1px solid #e2e8f0;
    background: #fff;
    box-shadow: 0 24px 64px rgba(15,23,42,.22);
    border-radius: 10px;
    overflow: hidden;
}
.hd_pops img { max-width: 100%; }
.hd_pops_footer { padding: 0; background: #000; color: #fff; text-align: left; position: relative; }
.hd_pops_footer:after { display: block; visibility: hidden; clear: both; content: ""; }
.hd_pops_footer button { padding: 10px; border: 0; color: #fff; }
.hd_pops_footer .hd_pops_reject { background: #000; text-align: left; }
.hd_pops_footer .hd_pops_close { background: #393939; position: absolute; top: 0; right: 0; }
#hd_pop > h2 {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
}
@media (max-width: 640px) {
    .hd_pops {
        left: 16px !important;
        right: 16px !important;
        top: 116px !important;
        width: auto !important;
    }
}

/* ── 유틸리티 ── */
.is-hidden { display: none !important; }
.is-visible { display: block !important; }
.pc-only { display: none; }
@media (min-width: 769px) { .pc-only { display: block !important; } }
.mobile-only { display: block; }
@media (min-width: 769px) { .mobile-only { display: none !important; } }
.img_fix { width: 100%; height: auto; }

/* ── 기본 테이블 (게시판용) ── */
.tbl_wrap table { width: 100%; border-collapse: collapse; border-spacing: 0 5px; background: #fff; border-top: 1px solid #ececec; border-bottom: 1px solid #ececec; }
.tbl_wrap caption { padding: 10px 0; font-weight: bold; text-align: left; }
.tbl_head01 { margin: 0 0 10px; }
.tbl_head01 caption { padding: 0; font-size: 0; line-height: 0; overflow: hidden; }
.tbl_head01 thead th { padding: 20px 0; font-weight: normal; text-align: center; border-bottom: 1px solid #ececec; height: 40px; }
.tbl_head01 thead th input { vertical-align: top; }
.tbl_head01 tfoot th, .tbl_head01 tfoot td { padding: 10px 0; border-top: 1px solid #c1d1d5; border-bottom: 1px solid #c1d1d5; background: #d7e0e2; text-align: center; }
.tbl_head01 tbody th { padding: 8px 0; border-bottom: 1px solid #e8e8e8; }
.tbl_head01 td { color: #666; padding: 10px 5px; border-top: 1px solid #ecf0f1; border-bottom: 1px solid #ecf0f1; line-height: 1.4em; height: 60px; word-break: break-all; }
.tbl_head01 tbody tr:hover td { background: #fafafa; }
.tbl_head01 a:hover { text-decoration: underline; }

/* ── 폼 테이블 (게시판 글쓰기 등) ── */
.tbl_frm01 { margin: 0 0 20px; }
.tbl_frm01 table { width: 100%; border-collapse: collapse; border-spacing: 0; }
.tbl_frm01 th { width: 70px; padding: 7px 13px; border: 1px solid #e9e9e9; border-left: 0; background: #f5f8f9; text-align: left; }
.tbl_frm01 td { padding: 7px 10px; border-top: 1px solid #e9e9e9; border-bottom: 1px solid #e9e9e9; background: transparent; }
.tbl_frm01 textarea, .frm_input { border: 1px solid #d0d3db; background: #fff; color: #000; vertical-align: middle; border-radius: 3px; padding: 5px; }
.tbl_frm01 textarea { padding: 2px 2px 3px; }
.frm_input { height: 40px; }
.full_input { width: 100%; }
.half_input { width: 49.5%; }
.twopart_input { width: 385px; margin-right: 10px; }
.tbl_frm01 textarea, .write_div textarea { width: 100%; height: 100px; }
.tbl_frm01 a { text-decoration: none; }
.tbl_frm01 .frm_file { display: block; margin-bottom: 5px; }
.tbl_frm01 .frm_info { display: block; padding: 0 0 5px; line-height: 1.4em; }

/* ── 버튼 ── */
.btn_submit { border: 0; background: #1A2342; color: #fff; cursor: pointer; border-radius: 3px; padding: 0 16px; height: 40px; }
.btn_submit:hover { background: #2A52BE; }
.btn_close { border: 1px solid #dcdcdc; cursor: pointer; border-radius: 3px; background: #fff; }
a.btn_close { text-align: center; line-height: 40px; display: inline-block; padding: 0 16px; }
a.btn_frmline, button.btn_frmline { display: inline-block; padding: 0 14px; height: 40px; line-height: 40px; border: 0; background: #434a54; border-radius: 3px; color: #fff; text-decoration: none; vertical-align: top; cursor: pointer; }
a.btn_frmline_s, button.btn_frmline_s { display: inline-block; padding: 0 10px; height: 28px; line-height: 28px; border: 0; background: #64748b; border-radius: 3px; color: #fff; text-decoration: none; vertical-align: middle; cursor: pointer; font-size: .8125rem; }
.btn_confirm { text-align: right; }
.btn_wrap_center { text-align: center; margin-top: 1rem; }

/* ── 게시판 버튼 ── */
a.btn_b01, .btn_b01 { display: inline-block; color: #bababa; text-decoration: none; vertical-align: middle; border: 0; background: transparent; }
a.btn_b02, .btn_b02 { display: inline-block; background: #1A2342; padding: 0 10px; color: #fff; text-decoration: none; border: 0; vertical-align: middle; }
a.btn_b02:hover, .btn_b02:hover { background: #2A52BE; }
a.btn_b03, .btn_b03 { display: inline-block; background: #fff; border: 1px solid #b9bdd3; color: #646982; text-decoration: none; vertical-align: middle; }
a.btn_b04, .btn_b04 { display: inline-block; background: #fff; border: 1px solid #ccc; color: #707070; text-decoration: none; vertical-align: middle; }
a.btn_admin, .btn_admin { display: inline-block; color: #d13f4a; text-decoration: none; vertical-align: middle; }

/* ── 페이지네이션 ── */
.pg_wrap { clear: both; float: left; display: inline-block; }
.pg_wrap:after { display: block; visibility: hidden; clear: both; content: ""; }
.pg { text-align: center; }
.pg_page, .pg_current { display: inline-block; vertical-align: middle; background: #eee; border: 1px solid #eee; }
.pg a:focus, .pg a:hover { text-decoration: none; }
.pg_page { color: #959595; height: 30px; line-height: 28px; padding: 0 5px; min-width: 30px; text-decoration: none; border-radius: 3px; }
.pg_page:hover { background-color: #fafafa; }
.pg_start { background: url('../img/btn_first.gif') no-repeat 50% 50% #eee; }
.pg_prev  { background: url('../img/btn_prev.gif')  no-repeat 50% 50% #eee; }
.pg_end   { background: url('../img/btn_end.gif')   no-repeat 50% 50% #eee; }
.pg_next  { background: url('../img/btn_next.gif')  no-repeat 50% 50% #eee; }
.pg_current { background: #1A2342; border: 1px solid #1A2342; color: #fff; font-weight: bold; height: 30px; line-height: 30px; padding: 0 10px; min-width: 30px; border-radius: 3px; }

/* ── 필수입력 표시 ── */
.req { color: #ef4444; }

/* ── 폼 검색 하이라이트 ── */
.sch_word { color: #fff; background: #ff005a; padding: 2px 5px 3px; }

/* ── 캡챠 ── */
#captcha { display: inline-block; position: relative; }
#captcha legend { position: absolute; margin: 0; padding: 0; font-size: 0; line-height: 0; text-indent: -9999em; overflow: hidden; }
#captcha #captcha_img { height: 40px; border: 1px solid #898989; vertical-align: top; }
#captcha #captcha_key { margin: 0 0 0 3px; padding: 0 5px; width: 90px; height: 40px; border: 1px solid #ccc; background: #fff; font-size: 1.2em; font-weight: bold; text-align: center; border-radius: 3px; vertical-align: top; }
#captcha #captcha_info { display: block; margin: 5px 0 0; font-size: 0.95em; }
#captcha #captcha_mp3, #captcha #captcha_reload { margin: 0; padding: 0; width: 40px; height: 40px; border: 0; background: transparent; vertical-align: middle; overflow: hidden; cursor: pointer; text-indent: -999px; border-radius: 3px; }

/* ── ckeditor 게시글 내용 ── */
#bo_v_con ul { display: block; list-style-type: disc; margin: 1em 0; padding-left: 40px; }
#bo_v_con ol { display: block; list-style-type: decimal; margin: 1em 0; padding-left: 40px; }
#bo_v_con li { display: list-item; }

/* ── 새창 ── */
.new_win { position: relative; }
.new_win .tbl_wrap { margin: 0 20px; }
.new_win #win_title { font-size: 1.2em; height: 50px; line-height: 50px; padding: 0 20px; background: #fff; color: #000; box-shadow: 0 1px 10px rgba(0,0,0,.1); }

/* ── 자료없음 ── */
.empty_table { padding: 50px 0 !important; text-align: center; }
.empty_list  { padding: 20px 0 !important; color: #666; text-align: center; }

/* ── 사이드뷰 ── */
.sv_wrap { position: relative; font-weight: normal; }
.sv_wrap .sv { z-index: 1000; display: none; margin: 5px 0 0; background: #333; box-shadow: 2px 2px 3px rgba(0,0,0,0.2); }
.sv_wrap .sv a { display: inline-block; padding: 0 10px; line-height: 30px; width: 100px; font-weight: normal; color: #bbb; }
.sv_wrap .sv a:hover { background: #000; color: #fff; }
.sv_on { display: block !important; position: absolute; top: 23px; left: 0; }

/* ── 테이블 공통 정의 ── */
.td_board, .td_category, .td_chk, .td_num, .td_stat { text-align: center; }
.td_board    { width: 80px; }
.td_category { width: 80px; }
.td_chk      { width: 30px; }
.td_date     { width: 60px; text-align: center; }
.td_datetime { width: 110px; text-align: center; }
.td_mb_id    { width: 100px; text-align: center; }
.td_mng      { width: 80px; text-align: center; }
.td_name     { width: 100px; text-align: left; }
.td_num      { width: 50px; }
.td_numbig   { width: 80px; }

/* ── 인라인 체크박스/라디오 ── */
.chk_box { position: relative; }
.selec_chk { vertical-align: middle; }
