@charset "utf-8";


/* 게시판 목록 */
#bo_list { position:relative; }
#bo_list .category-box li { margin:0 20px; font-size:1.25rem; }
#bo_list .category-box a { padding:10px; border-bottom:1px solid transparent; color:#888 !important; }
#bo_list .category-box li:hover a,
#bo_list .category-box li.active a { border-color: #333; color:#111 !important; }

#bo_list .list-box { border-top:1px solid #666; }
#bo_list .list-box li { position:relative; display:flex; justify-content:space-between; border-bottom:1px solid #ddd; }
#bo_list .list-box li.head { background:#f8f8f8; }
#bo_list .list-box li.empty_table { justify-content:center; align-items:center; height:30vh; }
#bo_list .list-box li:before { content:""; position:absolute; left:0; right:0; bottom:-1px; width:0; height:1px; background:#666; transition-duration:400ms; }
#bo_list .list-box li:not(.head):hover:before { width:100%; }

#bo_list .list-box li div { padding:20px 5px; transition-duration:400ms; }
#bo_list .list-box li.head div { padding-top:25px; padding-bottom:25px; }
#bo_list .list-box li div:not(.li_subject) { text-align:center; white-space:nowrap; overflow:hidden; }

#bo_list .list-box li.head a { position:relative; }
#bo_list .list-box li.head a i { position:absolute; top:calc(50% - 5px); left:calc(100% + 5px); height:10px; font-size:.625rem; color:#ccc; }
#bo_list .list-box li.head a[href*="asc"] i { transform:rotate(-180deg); }

#bo_list .list-box .li_ck { width:40px; display:flex; justify-content:center; align-items:center; }
#bo_list .list-box .li_ck input { margin:0; }
#bo_list .list-box .li_num { width:100px; padding-top:0; padding-bottom:0; display:flex; justify-content:center; align-items:center; }
#bo_list .list-box .li_ca { width:200px; }
#bo_list .list-box .reply-label { border-radius:99px; padding:2px 15px; font-size:.875rem; background:var(--main-color1); color:#fff; }
#bo_list .list-box .li_subject { flex:1; padding-left:30px !important; padding-right:30px !important; }
#bo_list .list-box li:not(.head) .li_subject { font-weight:700; color:#111; }
#bo_list .list-box .li_subject a { display:block; white-space:nowrap; text-overflow:ellipsis; overflow:hidden; }
#bo_list .list-box .li_subject .li-icon { display:inline-block; vertical-align:middle; margin-top:-3px; }
#bo_list .list-box .li_name { width:150px; }
#bo_list .list-box .li_date,
#bo_list .list-box .li_state { width:200px; }

#bo_list .list-box .state { color:#aaa; }
#bo_list .list-box li:not(.reply) .state.complete { border-radius:99px; padding:5px 15px; background:var(--main-color1); color:#fff; }

#bo_list .list-box li.reply { border-top: 1px dashed #fff; margin-top: -1px; }
#bo_list .list-box li.reply div { padding:10px 5px; }
#bo_list .list-box li.reply .state.complete { color:var(--main-color1); }


@media (max-width: 1400px) {
    #bo_list .list-box .li_ca { width:160px; }
    #bo_list .list-box .li_name { width:120px; }
    #bo_list .list-box .li_date,
    #bo_list .list-box .li_state { width:180px; }
}


@media (max-width: 1024px) {
    #bo_list .category-box li { margin:0 5px; font-size:1.125rem; }
    #bo_list .category-box a { padding:5px; }

    #bo_list .list-box li.head { display:none; }
	#bo_list .list-box li { flex-wrap:wrap; justify-content:flex-start; align-items:center; padding:15px 5px; }

	#bo_list .list-box li div:not(.li_subject) { text-align:left; overflow:visible; }

	#bo_list .list-box li div,
    #bo_list .list-box li.reply div { padding:0; }


	#bo_list .list-box .li_ck { width:auto; justify-content:flex-start; margin-right:10px; }
	#bo_list .list-box .li_num { width:auto; text-align:left; margin-right:5px; }
	#bo_list .list-box .li_ca { width:auto; overflow:visible; }
    #bo_list .list-box li:not(.reply) .li_ca { border-radius:99px; border:1px solid #666; padding:3px 10px !important; font-size:.875rem; margin-left:5px; }
	#bo_list .list-box .li_subject { flex:none; width:100%; padding:7px 0 3px !important; font-size:1.125rem; font-weight:600; }


	#bo_list .list-box .li_name,
	#bo_list .list-box .li_date,
	#bo_list .list-box .li_state { width:auto; margin-right:20px; }

    #bo_list .list-box li.reply { padding-left:30px; }
    #bo_list .list-box li.reply .li_ck { margin-left:-25px; }

}

@media (max-width: 767px) {
    #bo_list .list-box .li_name,
	#bo_list .list-box .li_date { margin-right:15px; }
}


/* 게시판 쓰기 */
#bo_w { border-top:1px solid #666; }
#bo_w.reply { width:50%; margin:0 auto; }
#bo_w .write-box { border-bottom:1px solid #ddd; margin-bottom:30px; }


#bo_w:not(.reply) .write-box > ul { display:flex; flex-wrap:wrap; justify-content:space-between; }
#bo_w:not(.reply) .write-box > ul > li { width:calc(50% - 20px); }
#bo_w .write-box > ul { padding:15px 0; }
#bo_w .write-box > ul > li { padding:15px 0; }
#bo_w .write-box > ul > li.noflex { display:block; }
#bo_w .write-box > ul > li.full { width:100%; padding-left:0; padding-right:0; }

#bo_w .write-box .form-tag { position:relative; background-color:#f8f8f8 !important; background-position:calc(100% - 20px) center !important; padding:20px 20px; border:none; border-radius:10px; }
#bo_w .write-box > ul > li > span { position:relative; display:block; margin-bottom:5px; padding:5px 0; color:#000; height:30px; }
#bo_w .write-box > ul > li > span:nth-of-type(2) { margin-top:20px; }
#bo_w .write-box > ul > li > span.required:after { content:"*"; color:#f50000; display:inline-block; margin-left:5px; }

#bo_w .write-box label ~ label { margin-left:10px; }

#bo_w .write-box .w_file { position:relative; }
#bo_w .write-box .w_file ~ .w_file { margin-top:5px; }
#bo_w .write-box .w_file input[type="file"] { display:none; }
#bo_w .write-box textarea { resize:none; height:calc(100% - 35px); }

#bo_w .write-box > ul > li .btn { position:absolute; padding:5px 20px; border:1px solid #666; top:50%; transform:translateY(-50%); right:20px; margin:0; border-radius:99px; font-size:.875rem; cursor:pointer; }
#bo_w .write-box > ul > li .btn:hover { background:#333; color:#fff; }

#bo_w .write-box i { font-size:1.25rem; }
#bo_w .write-box #cb-agreement { border:1px solid #ddd; margin-top:-3px; }

#bo_w .captcha-box #captcha_info { display:block; margin-top:5px; }


@media (max-width: 767px) {
    #bo_w .write-box > ul > li { padding:10px 0; width:100%; }
}



/* 댓글 */
/*#bo_comment .pf_img { display:none; }*/


/* 게시판 읽기 */
#bo_v { --view-row-padding:30px; --view-col-padding:10px; }
#bo_v .view-head { border-top:1px solid #666; border-bottom:1px solid #ddd; padding:var(--view-row-padding); }
#bo_v .view-head .ctg { display:inline-block; border-radius:99px; padding:5px 20px; border:1px solid var(--main-color1); color:var(--main-color1); margin-bottom:10px; }
#bo_v .view-head .subject { font-size:2rem; font-weight:600; }
#bo_v .view-head .desc { display:flex; margin-top:20px; }
#bo_v .view-head .desc li:not(:last-child) { margin-right:30px; }
#bo_v .view-head .desc li b { margin-right:5px; }


#bo_v .view-file { padding:var(--view-col-padding) var(--view-row-padding); background:#fcfcfc; border-bottom:1px solid #ddd; }
#bo_v .view-file li { padding:5px 0; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; }
#bo_v .view-file li b { display:flex; align-items:center; }
#bo_v .view-file li img { width:20px; margin-right:5px; }
#bo_v .view-file li .small { margin-left:5px; color:#888; font-weight:400; }
#bo_v .view-file li .btn { border-radius:99px; padding:5px 15px; border:1px solid #666; margin-left:auto; }
#bo_v .view-file li .btn:hover { background:#333; color:#fff; }
#bo_v .view-file li .btn i { font-size:.875rem; }

#bo_v .view-link { padding:var(--view-col-padding) var(--view-row-padding); display:flex; flex-wrap:wrap; align-items:center; margin:0 -5px; }
#bo_v .view-link li { margin:5px; }
#bo_v .view-link li a { display:inline-block; padding:10px 30px; border:1px solid #ddd; border-radius:99px; }
#bo_v .view-link li a:hover { box-shadow:2px 2px 3px rgba(0,0,0,.1); }
#bo_v .view-link li a i { font-size:.875rem; }


#bo_v .view-box { padding:var(--view-row-padding) var(--view-row-padding) calc(var(--view-row-padding) + 20px); }
#bo_v .view-box .view-editor { margin-top:20px; }


#bo_v .view-btn-box { border-top:1px solid #ddd; padding-top:40px; }
#bo_v .view-another ~ .view-btn-box { border-top:none; padding-top:0px; }


@media (max-width: 1024px) {
	#bo_v { --view-row-padding:20px; }
	#bo_v .view-head .subject { font-size:1.5rem; }
}


@media (max-width: 767px) {
	#bo_v { --view-row-padding:15px; --view-col-padding:5px; }
	#bo_v .view-head .ctg { padding:5px 15px; margin-bottom:5px; }
	#bo_v .view-head .desc { margin-top:15px; }

	#bo_v .view-link li { margin:2.5px; }
	#bo_v .view-link li a { padding:5px 15px; }
}








/* --- 모바일/PC 레이아웃 재조정 CSS (style.css) --- */

/* 기본 write-box ul 설정: flexbox를 사용하여 li 요소가 유연하게 배치되도록 합니다. */
#bo_w .write-box > ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap; /* li가 여러 줄로 넘어갈 수 있도록 허용 */
    gap: 10px; /* li 항목들 사이의 간격 */
}

/* 기본 li 항목 설정: PC에서는 2개씩 한 줄, 모바일에서는 1개씩 한 줄로 시작합니다. */
#bo_w .write-box > ul > li {
    padding: 15px 0; /* 기존 패딩 유지 */
    box-sizing: border-box; /* 패딩, 보더 포함 넓이 계산 */
    display: flex; /* li 내부 요소들을 flex로 정렬 */
    flex-direction: column; /* 기본적으로 라벨과 입력 필드가 수직으로 쌓이도록 */
    margin-bottom: 10px; /* 각 li 아래에 간격 부여 */
}

/* 라벨(span)과 입력 필드(form-tag)의 기본 스타일 */
#bo_w .write-box > ul > li > span:first-child {
    display: block;
    margin-bottom: 5px;
    font-weight: bold;
    color: #333;
}

#bo_w .write-box .form-tag {
    width: 100%; /* 부모 li 안에서 꽉 채우기 */
    box-sizing: border-box;
}

/* --- PC 환경 (min-width: 769px) --- */
@media (min-width: 769px) {
    #bo_w .write-box > ul > li {
        flex: 1 1 calc(50% - 10px); /* PC에서 2개씩 한 줄 (gap 10px 유지) */
        /* 이전에 5px로 설정했던 calc() 값을 10px로 늘려, gap 10px를 정확히 반영합니다. */
    }

    /* PC에서 제목, 문의내용은 항상 100% 너비로 유지 */
    #bo_w .write-box > ul > li:has(input[name="wr_subject"]),
    #bo_w .write-box > ul > li:has(textarea[name="wr_data[con]"]) {
        flex: 1 1 100%;
    }

    /* 파일첨부 전체 영역에 회색 배경 적용 */
    #bo_w .write-box .w_file {
        position: relative; /* 버튼 absolute의 기준점 */
        background-color: #f8f8f8 !important; /* 회색 배경 추가 */
        border-radius: 10px; /* 둥근 모서리 */
        padding: 20px; /* 내부 여백 */
        box-sizing: border-box; /* 패딩 포함 넓이 계산 */
        display: flex; /* 내부 요소들을 flex로 정렬 */
        align-items: center; /* 수직 가운데 정렬 */
        gap: 10px; /* 입력 필드와 버튼 사이 간격 */
    }

    #bo_w .write-box .w_file input[type="text"] {
        background-color: transparent !important; /* 이미지가 겹치지 않도록 배경 투명화 */
        border: none; /* 테두리 제거 */
        padding: 0; /* 패딩 제거 (부모 w_file의 패딩 사용) */
        flex-grow: 1; /* 남은 공간 채우기 */
    }

    /* PC에서 파일찾기 및 전문보기 버튼의 absolute 위치 재조정 */
    #bo_w .write-box .w_file label.btn,
    #bo_w .write-box > ul > li.privacy-policy-item .privacy-checkbox-label button.btn {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        right: 20px;
    }
    /* 개인정보처리방침 레이블 자체에 relative를 주어 버튼의 기준점 설정 (기존 유지) */
    #bo_w .write-box > ul > li.privacy-policy-item .privacy-checkbox-label {
        position: relative;
    }
}

/* --- 모바일 환경 (max-width: 768px) --- */
@media (max-width: 768px) {
    #bo_w .write-box > ul {
        flex-direction: column; /* 모든 li가 세로로 쌓이도록 */
        gap: 0; /* li 간의 flex gap은 0으로, li 자체의 margin으로 간격 조절 */
    }

    #bo_w .write-box > ul > li {
        flex: 1 1 100% !important; /* 모바일에서 모든 li가 100% 너비로 꽉 차도록 강제 */
        width: 100% !important; /* flex-basis와 함께 width도 100%로 강제 */
        padding: 10px 0; /* 모바일 패딩 조정 */
        margin-bottom: 10px; /* 각 li 아래에 간격 */
    }

    /* 파일첨부 전체 영역에 회색 배경 적용 (모바일) */
    #bo_w .write-box .w_file {
        display: flex;
        align-items: center;
        flex-wrap: nowrap; /* 줄바꿈 방지 */
        gap: 5px; /* 내부 요소 간격 */
        position: relative; /* 버튼 static 전환을 위한 기준점 */
        background-color: #f8f8f8 !important; /* 회색 배경 추가 */
        border-radius: 10px; /* 둥근 모서리 */
        padding: 20px; /* 내부 여백 */
        box-sizing: border-box; /* 패딩 포함 넓이 계산 */
    }

    #bo_w .write-box .w_file input[type="text"] {
        background-color: transparent !important; /* 배경 투명화 */
        border: none; /* 테두리 제거 */
        padding: 0; /* 패딩 제거 */
        flex-grow: 1;
    }

    #bo_w .write-box .w_file label.btn {
        flex-shrink: 0;
        white-space: nowrap;
        position: static; /* 모바일에서는 absolute 해제 */
        transform: none;
    }

    #bo_w .write-box .w_file .file_del {
        flex: 1 1 100%; /* 파일 삭제는 별도 줄에 */
        margin-top: 5px;
    }

    /* 개인정보처리방침 내부 요소 정렬 */
    #bo_w .write-box > ul > li.privacy-policy-item .privacy-checkbox-label {
        display: flex;
        align-items: center;
        flex-wrap: nowrap; /* 줄바꿈 방지 */
        gap: 5px;
        position: relative; /* 버튼 static 전환을 위한 기준점 */
        width: 100%;
        background-color: #f8f8f8 !important; /* 회색 배경 추가 */
        border-radius: 10px; /* 둥근 모서리 */
        padding: 20px; /* 내부 여백 */
        box-sizing: border-box; /* 패딩 포함 넓이 계산 */
    }

    #bo_w .write-box > ul > li.privacy-policy-item .privacy-checkbox-label input[type="checkbox"] {
        flex-shrink: 0;
        margin-right: 5px;
    }

    #bo_w .write-box > ul > li.privacy-policy-item .privacy-checkbox-label span {
        flex-grow: 1;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    #bo_w .write-box > ul > li.privacy-policy-item .privacy-checkbox-label button.btn {
        flex-shrink: 0;
        white-space: nowrap;
        margin-left: auto;
        position: static; /* 모바일에서는 absolute 해제 */
        transform: none;
    }
}





/* --- 모바일 자동등록방지 플레이어 가운데 정렬 --- */
@media (max-width: 768px) {
    #bo_w .captcha-box {
        display: flex;
        flex-direction: column; /* 요소들을 세로로 쌓이게 */
        align-items: center;   /* 세로 방향으로 쌓인 요소들을 가운데 정렬 */
        justify-content: center; /* (추가적으로) 가로 방향 정렬 보장 */
        width: 100%; /* 부모 너비를 꽉 채우도록 */
        box-sizing: border-box; /* 패딩 포함 넓이 계산 */
        padding: 10px; /* 필요시 내부 여백 추가 */
    }

    #bo_w .captcha-box #captcha_img {
        margin-bottom: 10px; /* 캡챠 이미지와 플레이어 사이 간격 */
    }

    /* 캡챠 플레이어 자체 (예: audio 태그나 이를 감싸는 div)의 가운데 정렬 */
    /* 정확한 HTML 구조에 따라 선택자를 조정해야 할 수 있습니다. */
    /* 만약 플레이어가 'captcha-box' 바로 아래의 특정 요소라면, 이 부분을 활용합니다. */
    #bo_w .captcha-box .sound_only:not(strong) + * { /* 예시: sound_only strong이 아닌 다음 요소 */
        display: flex; /* 플레이어 요소를 flex 컨테이너로 */
        justify-content: center; /* 가로 가운데 정렬 */
        width: 100%; /* 부모 너비를 꽉 채우도록 */
    }
}