@charset "utf-8";

/* =========================================================
   HOVAN - 그누보드 bbs / member 페이지 보정
   default.css → style.css → sub.css → bbs.css 순서로 로드됩니다.
   그누보드 기본 스킨(목록형 게시판, 로그인, 회원가입 등)을
   사이트 룩(Pretendard, 골드/잉크 컬러, 라운드 컨트롤)에 맞춥니다.
   ========================================================= */

/* ---------- default.css 리셋 되돌리기 ---------- */
html {
    overflow-y: auto;
}

body {
    font-family: var(--font);
    font-size: 16px;
    color: var(--ink);
}

h1, h2, h3, h4, h5, h6,
input, button, textarea, select {
    font-family: inherit;
}

p {
    word-break: keep-all;
}

hr.footer-line {
    display: block;
}

.hovan-bbs {
    font-size: 16px;
    letter-spacing: -0.02em;
    line-height: 1.6;
    color: var(--ink);
}

.hovan-bbs img {
    display: inline-block;
}

/* 그누보드 기본 스킨의 파란 링크색을 없애기 위한 규칙.
   단 HOVAN 버튼(btn-solid, btn-ghost, btn-outline--*, board-btn--*)은 제외한다.
   이 규칙(.hovan-bbs a = 0,1,1)이 그 버튼들(0,1,0)보다 우선순위가 높고
   bbs.css 가 sub.css 뒤에 로드돼서, 검정 배경 버튼의 흰 글씨가 검정으로 덮여
   글자가 보이지 않았다.
   그누보드 기본 버튼(btn_b01, btn_admin 처럼 밑줄을 쓰는 이름)은 예전 그대로
   글자색을 물려받게 두어 동작이 바뀌지 않게 한다. */
.hovan-bbs a:not([class*="btn-"]) {
    color: inherit;
}

/* 스킨이 style="width:100%" 등 인라인 폭을 주는 요소 */
.hovan-bbs #bo_list,
.hovan-bbs #bo_gall,
.hovan-bbs #bo_v,
.hovan-bbs #bo_w,
.hovan-bbs #fwrite,
.hovan-bbs .mbskin {
    width: 100% !important;
    max-width: 100%;
}

/* ---------- 공통 폼 컨트롤 ---------- */
.hovan-bbs .frm_input,
.hovan-bbs input[type="text"],
.hovan-bbs input[type="password"],
.hovan-bbs input[type="email"],
.hovan-bbs input[type="tel"],
.hovan-bbs input[type="url"],
.hovan-bbs select {
    height: 50px;
    padding: 0 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--field);
    font-size: 16px;
    letter-spacing: -0.02em;
    color: var(--ink);
    transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease;
}

.hovan-bbs textarea {
    padding: 14px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--field);
    font-size: 16px;
    line-height: 1.7;
}

.hovan-bbs input[type="text"]:focus,
.hovan-bbs input[type="password"]:focus,
.hovan-bbs textarea:focus,
.hovan-bbs select:focus {
    border: 1px solid var(--gold) !important;
    background: var(--white);
    box-shadow: 0 0 0 3px rgba(232, 185, 31, 0.15);
}

.hovan-bbs .btn_submit,
.hovan-bbs .btn_confirm .btn_submit,
.hovan-bbs button.btn_submit,
.hovan-bbs a.btn_submit {
    height: 48px;
    padding: 0 26px;
    border: 1px solid var(--ink);
    border-radius: 50px;
    background: var(--ink);
    color: var(--white);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 46px;
    transition: opacity 0.2s ease;
}

.hovan-bbs .btn_submit:hover {
    background: var(--ink);
    opacity: 0.88;
}

.hovan-bbs a.btn_cancel,
.hovan-bbs button.btn_cancel,
.hovan-bbs .btn_b01,
.hovan-bbs .btn_b02,
.hovan-bbs .btn_b03,
.hovan-bbs .btn_admin {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 18px;
    border: 1px solid var(--line);
    border-radius: 50px;
    background: var(--white);
    color: var(--gray-700);
    font-size: 14px;
    font-weight: 500;
    line-height: 1;
    transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.hovan-bbs a.btn_cancel:hover,
.hovan-bbs .btn_b01:hover,
.hovan-bbs .btn_b02:hover,
.hovan-bbs .btn_admin:hover {
    border-color: var(--ink);
    background: var(--ink);
    color: var(--white);
}

.hovan-bbs .btn_bo_user li {
    margin-left: 6px;
}

/* ---------- 목록형 게시판 (skin/board/basic) ---------- */
.hovan-bbs #bo_list_total {
    font-size: 15px;
    color: var(--gray-600);
}

.hovan-bbs .tbl_head01 table {
    border-top: 2px solid var(--ink);
    font-size: 15px;
}

.hovan-bbs .tbl_head01 thead th {
    height: auto;
    padding: 18px 10px;
    background: var(--gray-050);
    border-bottom: 1px solid var(--line);
    font-weight: 600;
    color: var(--ink);
}

.hovan-bbs .tbl_head01 td {
    height: auto;
    padding: 18px 10px;
    border-top: 0;
    border-bottom: 1px solid var(--line-soft);
    color: var(--gray-700);
    word-break: keep-all;
}

.hovan-bbs .tbl_head01 tbody tr:hover td {
    background: var(--gray-050);
}

.hovan-bbs .td_subject .bo_tit a {
    font-weight: 500;
    color: var(--ink);
}

.hovan-bbs .bo_notice td {
    background: rgba(232, 185, 31, 0.06);
}

.hovan-bbs .notice_icon {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 50px;
    background: var(--gold);
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
}

.hovan-bbs .new_icon,
.hovan-bbs .hot_icon {
    background: var(--ink);
    border-radius: 3px;
}

.hovan-bbs .empty_table,
.hovan-bbs .empty_list {
    padding: 60px 0;
    text-align: center;
    color: var(--gray-500);
}

/* 게시판 검색 레이어 */
.hovan-bbs .bo_sch .sch_input {
    height: 44px;
}

/* 페이징(.pg_wrap) 스타일은 루트 페이지에서도 쓰이므로 sub.css 에 있습니다. */

/* ---------- 글보기 (basic 스킨) ---------- */
.hovan-bbs #bo_v_title .bo_v_tit {
    font-size: clamp(20px, 2vw, 28px);
    font-weight: 600;
    letter-spacing: -0.02em;
}

.hovan-bbs #bo_v_con {
    font-size: 16px;
    line-height: 1.85;
    color: var(--gray-700);
}

.hovan-bbs #bo_v_con img {
    max-width: 100%;
    height: auto;
}

/* ---------- 글쓰기 ---------- */
.hovan-bbs #bo_w .write_div {
    margin-bottom: 14px;
}

.hovan-bbs #bo_w .frm_input.full_input {
    width: 100%;
}

.hovan-bbs #bo_w .btn_confirm {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 30px;
}

/* ---------- 댓글 ---------- */
.hovan-bbs #bo_vc h2 {
    font-size: 17px;
    font-weight: 600;
}

/* ---------- 회원 (로그인 / 회원가입 / 정보수정) ---------- */
.hovan-bbs .mbskin {
    max-width: 480px;
    margin: 0 auto;
}

.hovan-bbs .mbskin .mbskin_box {
    border: 1px solid var(--line);
    border-radius: 18px;
    padding: 12px 8px 24px;
}

.hovan-bbs .mbskin h1 {
    margin: 30px 0 10px;
    font-size: 24px;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.hovan-bbs .mb_log_cate {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 35px;
    font-size: 15px;
    color: var(--gray-600);
}

.hovan-bbs .mb_log_cate .join {
    color: var(--ink);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.hovan-bbs #login_fs .frm_input {
    margin-bottom: 10px;
}

.hovan-bbs #login_fs .btn_submit {
    width: 100%;
    height: 52px;
    margin: 6px 0 16px;
    font-size: 16px;
}

.hovan-bbs #login_info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 14px;
    color: var(--gray-600);
}

.hovan-bbs #login_info .login_if_auto,
.hovan-bbs #login_info .login_if_lpl {
    float: none;
}

.hovan-bbs #login_info .login_if_lpl a {
    color: var(--ink);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.hovan-bbs .tbl_frm01 th {
    font-weight: 600;
    color: var(--ink);
}

/* ---------- 컨텐츠(개인정보처리방침 등) ---------- */
.hovan-bbs #ctt_con {
    font-size: 15px;
    line-height: 1.8;
    color: var(--gray-700);
}

@media (max-width: 640px) {
    .hovan-bbs .tbl_head01 .td_name,
    .hovan-bbs .tbl_head01 .td_num,
    .hovan-bbs .tbl_head01 th:nth-child(3),
    .hovan-bbs .tbl_head01 th:nth-child(4) {
        display: none;
    }

    .hovan-bbs .tbl_head01 td,
    .hovan-bbs .tbl_head01 th {
        padding: 14px 6px;
        font-size: 14px;
    }
}

/* 회원가입·정보수정: 정보공개는 고를 수 없고 항상 켜진 값이라,
   체크박스 대신 확정된 사실로 한 줄 보여준다. */
.hovan-bbs .mb_open_fixed {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 15px;
    letter-spacing: -0.02em;
    color: var(--gray-700);
}

.hovan-bbs .mb_open_fixed__icon {
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    background: var(--gold);
    color: var(--ink);
}
