@charset "utf-8";

/* =========================================================
   [ 리뷰 글쓰기 전용 UI ]
   ========================================================= */
.rv-write-section {
    border: 1px solid #eee;
    border-radius: 10px;
    padding: 24px 20px;
    margin-bottom: 10px;
    background: #fafafa;
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.rv-write-row {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.rv-write-label {
    min-width: 80px;
    font-size: 14px;
    font-weight: 600;
    color: #333;
    padding-top: 6px;
}
/* 별점 */
.rv-write-stars {
    display: flex;
    gap: 4px;
}
.rv-write-star {
    font-size: 30px;
    color: #ddd;
    cursor: pointer;
    line-height: 1;
    transition: color 0.15s;
    user-select: none;
}
.rv-write-star.active { color: #f5a623; }
.rv-write-star:hover  { color: #f5a623; }

/* 상품 선택 */
.rv-product-wrap { flex: 1; display: flex; flex-direction: column; gap: 10px; }
.rv-product-search-box { position: relative; }
.rv-product-input { width: 100%; box-sizing: border-box; }
.rv-product-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #ddd;
    border-top: none;
    border-radius: 0 0 8px 8px;
    max-height: 240px;
    overflow-y: auto;
    z-index: 999;
    box-shadow: 0 6px 16px rgba(0,0,0,0.10);
}
.rv-result-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 12px;
    cursor: pointer;
    transition: background 0.15s;
}
.rv-result-item:hover { background: #f5f0ff; }
.rv-result-item img {
    width: 38px; height: 38px;
    object-fit: cover;
    border-radius: 5px;
    flex-shrink: 0;
    background: #f0f0f0;
}
.rv-result-noimg {
    display: block;
    width: 38px; height: 38px;
    border-radius: 5px;
    background: #f0f0f0;
    flex-shrink: 0;
}
.rv-result-name { font-size: 13px; color: #333; }
.rv-no-result { padding: 12px; font-size: 13px; color: #aaa; text-align: center; }

/* 선택된 상품 미리보기 */
.rv-product-selected {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #fff;
    border: 1px solid #e0d6f7;
    border-radius: 8px;
    padding: 10px 14px;
}
.rv-product-selected.rv-hidden { display: none; }
.rv-sel-thumb {
    width: 46px; height: 46px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
    background: #f0f0f0;
}
.rv-sel-thumb.rv-hidden { display: none; }
#rv-sel-name { font-size: 13px; color: #333; flex: 1; }
.rv-sel-clear {
    background: none;
    border: none;
    font-size: 14px;
    color: #aaa;
    cursor: pointer;
    padding: 4px;
    line-height: 1;
}
.rv-sel-clear:hover { color: #e00; }

/* =========================================================
   [ 갤러리 원본 뼈대 스타일 유지 ]
   ========================================================= */
#bo_cate {margin:25px 0}
#bo_cate h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_cate ul {zoom:1}
#bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""}
#bo_cate li {display:inline-block;padding:2px}
#bo_cate a {display:block;line-height:28px;padding:5px 15px;border-radius:30px;border:1px solid #d6e9ff;color:#6794d3}
#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background:#3a8afd;color:#fff}
#bo_cate #bo_cate_on {z-index:2;background:#3a8afd;color:#fff;font-weight:bold;border:1px solid #3a8afd;
box-shadow:inset 0 2px 5px rgb(33, 135, 202)}
.td_subject img {margin-left:3px}

.selec_chk {position:absolute;top:0;left:0;width:0;height:0;opacity:0;outline:0;z-index:-1;overflow:hidden}
.chk_box {position:relative}
.chk_box input[type="checkbox"] + label {position:relative;padding-left:20px;color:#676e70;vertical-align:baseline;cursor:pointer;}
.chk_box input[type="checkbox"] + label:hover{color:#2172f8}
.chk_box input[type="checkbox"] + label span {position:absolute;top:10px;left:10px;width:15px;height:15px;display:block;background:#fff;border:1px solid #d0d4df;border-radius:3px}
.write_div .chk_box input[type="checkbox"] + label, .bo_vc_w .chk_box input[type="checkbox"] + label {padding-left:20px}
.write_div .chk_box input[type="checkbox"] + label span, .bo_vc_w .chk_box input[type="checkbox"] + label span {position:absolute;top:2px;left:0;width:15px;height:15px;display:block;margin:0;background:#fff;border:1px solid #d0d4df;border-radius:3px}
.chk_box input[type="checkbox"]:checked + label {color:#000}
.chk_box input[type="checkbox"]:checked + label span {background:url(./img/chk.png) no-repeat 50% 50% #3a8afd;border-color:#1471f6;border-radius:3px}
.all_chk.chk_box input[type="checkbox"] + label span {top:0;left:0}

/* 갤러리 목록 설정 */
#bo_gall h2 {margin:0;padding:0;width:1px;height:1px;font-size:0;line-height:0;overflow:hidden}
#bo_gall #gall_ul {margin:10px -10px 0;padding:0;list-style:none;zoom:1}
#bo_gall #gall_ul:after {display:block;visibility:hidden;clear:both;content:""}
#bo_gall .gall_li .gall_chk {position:absolute;top:0;left:0;padding:5px;z-index:1}
#bo_gall .gall_box {position:relative;margin:0 0 50px 0;border-radius:0 0 2px 2px}
#bo_gall .gall_con {position:relative}

.gall_row .col-gn-0,.gall_row .col-gn-1,.gall_row .col-gn-2,.gall_row .col-gn-3,.gall_row .col-gn-4,.gall_row .col-gn-5,.gall_row .col-gn-6,.gall_row .col-gn-7,.gall_row .col-gn-8,.gall_row .col-gn-9,.gall_row .col-gn-10 {position:relative;min-height:1px;padding-left:10px;padding-right:10px;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:0}
.gall_row .col-gn-0,.latest_row .col-gn-1 {width:100%}
.gall_row .col-gn-2 {width:50%}
.gall_row .col-gn-3 {width:33.33333333%}
.gall_row .col-gn-4 {width:25%}
.gall_row .col-gn-5 {width:20%}
.gall_row .col-gn-6 {width:16.66666667%}
.gall_row .col-gn-7 {width:14.28571428%}
.gall_row .col-gn-8 {width:12.5%}
.gall_row .col-gn-9 {width:11.11111111%}
.gall_row .col-gn-10 {width:10%}
.gall_row .box_clear {clear:both}

#bo_gall .gall_now .gall_text_href a {color:#ff3061}
#bo_gall .gall_href a:link, #bo_gall .gall_href a:focus, #bo_gall .gall_href a:hover {text-decoration:none}
#bo_gall .gall_img {border-bottom:1px solid #eee;text-align:center;overflow:hidden}
#bo_gall .gall_img a,#bo_gall .gall_img .no_image,#bo_gall .gall_img .is_notice {display:block}
#bo_gall .gall_img img, #bo_gall .gall_img video {max-width:100%;height:auto !important}
#bo_gall .gall_img span {display:inline-block;background:#eaeaea;text-align:center;text-transform:uppercase;font-weight:bold;font-size:1.25em;color:#777}

#bo_gall .gall_text_href {margin:10px 0}
#bo_gall .gall_text_href a {font-weight:bold}
#bo_gall .gall_text_href img {margin:0 0 0 4px}
#bo_gall .bo_tit {display:block;line-height:30px;font-weight:bold;color:#000;font-size:1.2em}
#bo_gall .bo_tit .cnt_cmt {background:#e9eff5;color:#3a8afd;font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle}

#bo_gall .profile_img img {border-radius:50%}
#bo_gall .bo_tit .fa-download {width:16px;height:16px;line-height:16px;background:#e89f31;color:#fff;text-align:center;font-size:10px;border-radius:2px;margin-right:2px;vertical-align:middle}
#bo_gall .bo_tit .fa-link {width:16px;height:16px;line-height:16px;background:#ad68d8;color:#fff;text-align:center;font-size:10px;border-radius:2px;margin-right:2px;vertical-align:middle;font-weight:normal}
#bo_gall .bo_tit .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.825em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:baseline}
#bo_gall .bo_tit .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#fff;background:#e52955;text-align:center;border-radius:2px;vertical-align:middle;margin-right:2px}
#bo_gall .bo_tit .fa-lock {display:inline-block;line-height:16px;color:#999;text-align:center;vertical-align:middle}

/* 게시판 목록 공통 */
#bo_btn_top {margin:10px 0}
#bo_btn_top:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx {margin-bottom:5px;float:right;zoom:1}
.bo_fx:after {display:block;visibility:hidden;clear:both;content:""}
.bo_fx ul {margin:0;padding:0;list-style:none}
.btn_bo_user {float:right;margin:0;padding:0;list-style:none}
.btn_bo_user li {float:left;width:40px;text-align:center;margin-left:5px;background:#fff}
.btn_bo_user > li {position:relative}
.btn_bo_adm {float:left}
.btn_bo_adm li {float:left;margin-right:5px}
.btn_bo_adm input {padding:0 8px;border:0;background:#d4d4d4;color:#666;text-decoration:none;vertical-align:middle}
.bo_notice td {background:#fff6fa !important;border-bottom:1px solid #f8e6ee}
.bo_notice td a {font-weight:bold}
.bo_notice .notice_icon {display:inline-block;line-height:25px;border-radius:5px;font-weight:bold;color:#f9267f}

.more_opt {display:none;position:absolute;top:45px;right:0;background:#fff;border:1px solid #b8bfc4;z-index:999}
.more_opt:before {content:"";position:absolute;top:-8px;right:13px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #b8bfc4 transparent}
.more_opt:after {content:"";position:absolute;top:-6px;right:13px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
.more_opt li {border-bottom:1px solid #f1f1f1;padding:10px;float:inherit;width:90px;margin:0;color:#6b757c;text-align:left}
.more_opt li:last-child {border-bottom:0}
.more_opt li button, .more_opt li a {width:100%;border:0;background:#fff;color:#6b757c}
.more_opt li:hover a, .more_opt li:hover button {color:#000}
.more_opt li i {float:right;line-height:20px}
.bo_cate_link {display:inline-block;background:#e2eaf6;color:#3a8afd;font-weight:normal !important;height:20px;line-height:10px;padding:5px 8px;border-radius:5px;font-size:0.95em} 
.bo_cate_link:hover {text-decoration:none}
.bo_current {color:#e8180c}
#bo_list .profile_img {display:inline-block;margin-right:5px}
#bo_list .profile_img img {border-radius:50%}
#bo_list .cnt_cmt {display:inline-block;margin:0 0 0 3px;font-weight:bold;color:#ed6478;font-size:0.86em}
#bo_gall li.empty_list {padding:85px 0;text-align:center;width:100%;}


/* =========================================================
   [ 2. JJDD 커스텀 상단 타이틀 (숨김 무효화 처리 포함) ]
   ========================================================= */
#contents:has(#bo_gall) { padding-top: 0 !important; }
#contents:has(#bo_gall.review-board) { padding-left: 0 !important; padding-right: 0 !important; }
#contents:has(#bo_v) { padding-top: 0 !important; }

.jjdd-board-top { max-width: 1440px; margin: -30px auto 44px; padding: 0 70px; box-sizing: border-box; }

.jjdd-board-breadcrumb {
    display: flex; justify-content: flex-end; align-items: center; gap: 12px;
    margin-top: 4px; margin-bottom: 22px; font-size: 14px; color: #9b9b9b;
}
.jjdd-board-breadcrumb a { color: #7b7b7b; text-decoration: none; }
.jjdd-board-breadcrumb a:hover { color: #0e0e0e; text-decoration: none; }
.jjdd-board-breadcrumb strong { color: #0e0e0e; font-weight: 600; }

.jjdd-board-tabs {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    list-style: none;
    margin: 0 0 34px;
    padding: 0;
}
.jjdd-board-tabs li { margin: 0; padding: 0; }
.jjdd-board-tabs a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 100px;
    height: 40px;
    padding: 0 14px;
    border-radius: 999px;
    background: #f7f7f7;
    border: 1px solid #efefef;
    color: #727272;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    box-sizing: border-box;
    transition: all 0.2s ease;
}
.jjdd-board-tabs a:hover,
.jjdd-board-tabs a.is-active {
    background: #9f4ff0;
    border-color: #9f4ff0;
    color: #fff;
    text-decoration: none;
}

/* ★ 그누보드 기본 숨김코드 무시! !important로 강제 등장 및 애니메이션 */
#bo_gall .jjdd-board-heading h2 { 
    position: static !important;
    width: auto !important;
    height: auto !important;
    margin: 40px 0 30px !important; 
    font-size: 32px !important; 
    line-height: 1.5 !important;
    font-weight: 800; 
    color: #0e0e0e; 
    text-align: center; 
    overflow: visible !important;
    opacity: 0; 
    transform: translateY(-18px); 
    animation: jjddBoardTitleIn 0.7s ease forwards; 
}

@keyframes jjddBoardTitleIn {
    from { opacity: 0; transform: translateY(-18px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 767px) {
    .jjdd-board-breadcrumb { justify-content: flex-start; margin-bottom: 18px; gap: 8px; font-size: 13px; padding-right: 0;}
    #bo_gall .jjdd-board-heading h2 { font-size: 24px !important; text-align: left; }
}


/* =========================================================
   [ 3. JJDD 갤러리/리뷰 썸네일 1:1 꽉 채우기 등 커스텀 ]
   ========================================================= */

/* 불필요 기본 요소 숨김 처리 (검색버튼, 토탈건수, 돋보기 버튼) */
#bo_list_total, .btn_bo_sch, .bo_sch_wrap, .bo_sch_bg { display: none !important; } 

/* ★ 썸네일 이미지 박스 1:1 완벽 비율 고정 및 마우스 오버 효과 */
#bo_gall .gall_img { 
    width: 100%;
    aspect-ratio: 1 / 1; /* 가로 세로 1대1 정사각형 */
    height: auto !important; /* 인라인 높이 덮어쓰기 */
    overflow: hidden; 
    position: relative; 
    border-radius: 8px; 
    background: #f8f8f8; 
    border: none; 
} 
#bo_gall .gall_img a { display: block; width: 100%; height: 100%; }
#bo_gall .gall_img a img { width: 100%; height: 100%; object-fit: cover; transition: opacity 0.3s ease, transform 0.3s ease; }
#bo_gall .gall_img a:hover img { opacity: 0.6; transform: scale(1.05); }

/* 게시글 제목 정렬 및 크기 확대 (본문 삭제 반영) */
#bo_gall .gall_text_href { text-align: center; margin-top: 15px !important; }
#bo_gall .bo_tit { display: block !important; font-size: 18px !important; font-weight: 600; color: #111; margin-bottom: 8px; text-decoration: none !important; }
#bo_gall .gall_text_href .bo_cnt { display: none !important; }


/* =========================================================
   [ 5. 하단 검색창 디자인 (basic 스타일 동일 적용) ]
   ========================================================= */
.jjdd-board-search { display: flex; justify-content: center; width: 100%; margin: 50px 0 30px; clear: both; }
.jjdd-board-search form { display: inline-flex; align-items: center; gap: 8px; justify-content: center; }
.jjdd-board-search select { 
    height: 46px; padding: 0 35px 0 15px; border: 1px solid #ddd; border-radius: 4px; 
    font-size: 14px; color: #333; margin-right: 8px;
    background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") no-repeat right 12px center; 
    background-size: 14px; -webkit-appearance: none; -moz-appearance: none; appearance: none; outline: none; cursor: pointer; 
}
.jjdd-board-search input[type="text"] { height: 46px; width: 280px; padding: 0 15px; border: 1px solid #ddd; border-radius: 4px; font-size: 14px; outline: none; box-sizing: border-box; margin-right: 8px;}
.jjdd-board-search .btn-search { 
    display: inline-flex; align-items: center; justify-content: center; height: 46px; min-width: 80px; padding: 0 20px; 
    box-sizing: border-box; white-space: nowrap; flex-shrink: 0; background: transparent; color: #333; 
    border: 1px solid #ddd; border-radius: 4px; font-size: 15px; font-weight: bold; cursor: pointer; transition: all 0.2s ease; 
}
.jjdd-board-search .btn-search:hover { border-color: #999; color: #333; }

/* 페이지네이션 디자인 (basic 스타일) */
.pg_wrap { text-align: center; margin: 0 0 40px; clear: both; }
.pg_wrap .pg { display: inline-flex; gap: 6px; align-items: center; justify-content: center; }
.pg_page, .pg_current { 
    display: inline-flex !important; align-items: center; justify-content: center; 
    min-width: 36px; height: 36px; padding: 0 8px; border: 1px solid #ddd; border-radius: 6px; 
    color: #555 !important; text-decoration: none !important; font-size: 14px; background: #fff; 
    box-sizing: border-box; transition: all 0.2s; 
}
.pg_current { background: #9f5bf6 !important; color: #fff !important; border-color: #9f5bf6 !important; font-weight: bold; }
.pg_page:hover { background: #f8f8f8 !important; border-color: #ccc; }


/* =========================================================
   [ 리뷰 게시판 팝업(모달) 전용 스타일 ]
   ========================================================= */
.jjdd-modal-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.65); z-index: 99999; display: flex; align-items: center; justify-content: center; backdrop-filter: blur(4px); }
.jjdd-modal-content { position: relative; width: 90%; max-width: 800px; max-height: 85vh; background: #fff; border-radius: 16px; box-shadow: 0 15px 40px rgba(0,0,0,0.25); overflow-y: auto; animation: jjddModalPop 0.35s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards; }
.jjdd-modal-close { position: absolute; top: 20px; right: 20px; background: #f5f5f5; border: none; width: 44px; height: 44px; border-radius: 50%; font-size: 20px; color: #555; cursor: pointer; z-index: 10; transition: all 0.2s ease; display: flex; align-items: center; justify-content: center; }
.jjdd-modal-close:hover { background: #9f4ff0; color: #fff; transform: rotate(90deg); }
#jjdd-modal-body { padding: 50px 40px; }
.jjdd-popup-view { box-sizing: border-box; }
.jjdd-popup-view #bo_v_title { font-size: 26px !important; margin-bottom: 25px !important; text-align: center; }
.jjdd-popup-view #bo_v_info { margin-bottom: 30px !important; padding-bottom: 20px; border-bottom: 1px solid #eee; text-align: center !important; }
.jjdd-popup-view #bo_v_info .profile_info, .jjdd-popup-view #bo_v_info .profile_info_ct { float: none !important; display: block !important; margin: 15px 0 10px !important; text-align: center !important; width: 100%;}
.jjdd-popup-view #bo_v_con { font-size: 16px; line-height: 1.8; color: #333; }
.jjdd-popup-view img { max-width: 100%; border-radius: 8px; }
@media (max-width: 767px) {
    .jjdd-modal-content { width: 95%; max-height: 90vh; border-radius: 12px; }
    #jjdd-modal-body { padding: 40px 20px; }
    .jjdd-modal-close { top: 15px; right: 15px; width: 36px; height: 36px; font-size: 16px; }
    .jjdd-popup-view #bo_v_title { font-size: 20px !important; }
}
@keyframes jjddModalPop { from { opacity: 0; transform: translateY(30px) scale(0.95); } to { opacity: 1; transform: translateY(0) scale(1); } }

/* 글 읽기, 쓰기 및 댓글 원본 유지 */
#char_count_desc {display:block;margin:0 0 5px;padding:0}
#char_count_wrap {margin:5px 0 0;text-align:right}
#char_count {font-weight:bold}
#autosave_wrapper {position:relative}
#autosave_pop {display:none;z-index:10;position:absolute !important;top:34px;right:0;width:350px;height:auto !important;height:180px;max-height:180px;border:1px solid #565656;background:#fff; box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2)}
html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important}
#autosave_pop strong {position:absolute;font-size:0;line-height:0;overflow:hidden}
#autosave_pop div {text-align:center;margin:0 !important}
#autosave_pop button {margin:0;padding:0;border:0}
#autosave_pop ul {padding:15px;border-top:1px solid #e9e9e9;list-style:none;overflow-y:scroll;height:130px;border-bottom:1px solid #e8e8e8}
#autosave_pop li {padding:8px 5px;border-bottom:1px solid #fff;background:#eee;zoom:1}
#autosave_pop a {display:block;float:left}
#autosave_pop span {display:block;float:right;font-size:0.92em;font-style:italic;color:#999}
.autosave_close {cursor:pointer;width:100%;height:30px;background:none;color:#888;font-weight:bold;font-size:0.92em}
.autosave_close:hover {background:#f3f3f3;color:#3597d9}
.autosave_content {display:none}
.autosave_del {background:url(./img/close_btn.png) no-repeat 50% 50%;text-indent:-999px;overflow:hidden;height:20px;width:20px}

#bo_v {margin-bottom:20px;background:#fff;box-sizing:border-box}
#bo_v_table {position:absolute;top:0;right:16px;margin:0;padding:0 5px;height:25px;background:#ff3061;color:#fff;font-weight:bold;line-height:2.2em}
#bo_v_title {}
#bo_v_title .bo_v_cate {display:inline-block;line-height:20px;background:#e2eaf6;color:#3a8afd;padding:0 10px;border-radius:3px;}
#bo_v_title .bo_v_tit {display:block;font-size:2em;margin:5px 0 0;word-break:break-all}
#bo_v_info {margin:0;border-bottom:1px solid #f1f1f1;color:#666}
#bo_v_info h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_info .profile_info {margin:20px 0 10px;display:inline-block;float:left}
#bo_v_info .profile_info .pf_img {float:left;margin-right:10px}
#bo_v_info .profile_info .pf_img img {border-radius:50%;width:50px;height:50px}
#bo_v_info .profile_info .profile_info_ct {float:left;padding:5px 0;line-height:18px}
#bo_v_info strong {display:inline-block;margin:0 10px 0 0;font-weight:normal}
#bo_v_info .sv_member, #bo_v_info .sv_guest, #bo_v_info .member, #bo_v_info .guest {font-weight:bold}
#bo_v_info .profile_img {display:none}
#bo_v_info .sv_member {color:#000}
#bo_v_info .if_date {margin:0;color:#888}

#bo_v_file h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_file ul {margin:0;list-style:none}
#bo_v_file li {padding:15px;position:relative;margin:10px 0;border:1px solid #dfdfdf;border-radius:5px; box-shadow:1px 1px 5px 0px hsl(232, 36%, 96%)}
#bo_v_file li i {float:left;color:#b2b2b2;font-size:2.35em;margin-right:20px}
#bo_v_file a {float:left;display:block;text-decoration:none;word-wrap:break-word;color:#000}
#bo_v_file a:focus, #bo_v_file li:hover a, #bo_v_file a:active {text-decoration:underline;color:#3a8afd}
#bo_v_file img {float:left;margin:0 10px 0 0}
#bo_v_file .bo_v_file_cnt {color:#b2b2b2;font-size:0.92em}
#bo_v_file li:hover {border-color:#bed4f4;color:#bed4f4}
#bo_v_file li:hover i {color:#3a8afd}
#bo_v_file li:hover .bo_v_file_cnt {color:#99c2fc}

#bo_v_link h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_link li {padding:15px;position:relative;margin:10px 0;border:1px solid #dfdfdf;border-radius:5px; box-shadow:1px 1px 5px 0px hsl(232, 36%, 96%)}
#bo_v_link li i {float:left;color:#b2b2b2;font-size:2.35em;margin-right:20px}
#bo_v_link a {float:left;display:block;text-decoration:none;word-wrap:break-word;color:#000}
#bo_v_link a:focus, #bo_v_link li:hover a, #bo_v_link a:active {text-decoration:underline;color:#3a8afd}
#bo_v_link .bo_v_link_cnt {color:#b2b2b2;font-size:0.92em}
#bo_v_link li:hover {border-color:#bed4f4;color:#bed4f4}
#bo_v_link li:hover i {color:#3a8afd}
#bo_v_link li:hover .bo_v_link_cnt {color:#99c2fc}

#bo_v_top {zoom:1}
#bo_v_top:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_top h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_top ul {padding:0;list-style:none;word-break:break-all}

#bo_v_bot {zoom:1}
#bo_v_bot:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_bot h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_bot ul {padding:0;list-style:none}

.bo_v_com {margin:20px 0;float:right}
.bo_v_com > li {position:relative;float:left;margin-left:5px}

.bo_v_nb {margin:20px 0;position:relative;clear:both;text-align:left}
.bo_v_nb:after {display:block;visibility:hidden;clear:both;content:""}
.bo_v_nb li {border-top:1px solid #f1f1f1;padding:13px}
.bo_v_nb li:last-child {border-bottom:1px solid #f1f1f1}
.bo_v_nb li:hover {background:#f6f6f6}
.bo_v_nb li i {font-size:13px;color:#b3b3b3}
.bo_v_nb li .nb_tit {display:inline-block;padding-right:20px;color:#b3b3b3}
.bo_v_nb li .nb_date {float:right;color:#b3b3b3}

#bo_v_atc {min-height:200px;height:auto !important;height:200px}
#bo_v_atc_title {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_v_img {width:100%;overflow:hidden;zoom:1}
#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_img a.view_image {display:block}
#bo_v_img img {margin-bottom:20px;max-width:100%;height:auto}
#bo_v_con {margin:10px 0 30px;width:100%;line-height:1.7em;min-height:200px;word-break:break-all;overflow:hidden}
#bo_v_con a {color:#000;text-decoration:underline}
#bo_v_con img {max-width:100%;height:auto}

#bo_v_act {margin-bottom:30px;text-align:center}
#bo_v_act .bo_v_act_gng {position:relative}
#bo_v_act a {margin-right:5px;vertical-align:middle;color:#4a5158}
#bo_v_act a:hover {background-color:#fff;color:#ff484f;border-color:#ff484f}
#bo_v_act i {font-size:1.4em;margin-right:5px}
#bo_v_act_good, #bo_v_act_nogood {display:none;position:absolute;top:30px;left:0;z-index:9999;padding:10px 0;width:165px;background:#ff3061;color:#fff;text-align:center}
#bo_v_act .bo_v_good {display:inline-block;border:1px solid #dedede;width:70px;line-height:46px;border-radius:30px}
#bo_v_act .bo_v_nogood {display:inline-block;border:1px solid #dedede;width:70px;line-height:46px;border-radius:30px}

#bo_v_sns {padding:0;list-style:none;zoom:1;float:left;display:inline-block}
#bo_v_sns:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_sns li {float:left;width:135px;margin-right:5px;text-align:left}
#bo_v_sns li a {height:35px;line-height:35px;text-align:center;border-radius:5px;color:#fff;font-size:0.95em}
#bo_v_sns li img {vertical-align:middle;margin-right:5px}
#bo_v_sns li .sns_f {display:block;background:#3b5997}
#bo_v_sns li .sns_t {display:block;background:#09aeee}
#bo_v_sns li .sns_g {display:block;background:#ea4026}
#bo_v_sns li .sns_k {display:block;background:#fbe300}

#bo_v_share {position:relative;padding:20px 0}
#bo_v_share:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_share .btn {padding:0 10px;color:#555;font-weight:normal;font-size:1em;width:80px;line-height:35px;height:35px;border-color:#d5d5d5;border-radius:5px}
#bo_v_share .btn:hover {background:#fff}
#bo_v_share .btn i {margin-right:5px;color:#4b5259;vertical-align:middle}

.cmt_btn {width:100%;text-align:left;border:0;border-bottom:1px solid #f0f0f0;background:#fff;font-weight:bold;margin:30px 0 0px;padding:0 0 15px}
.cmt_btn span.total {position:relative;display:inline-block;margin-right:5px;font-size:1em;color:#3a8afd}
.cmt_btn span.cmt_more {float:right;display:inline-block;width:15px;height:10px;background:url(./img/btn_cmt.png) no-repeat right 2px;margin-top:5px}
.cmt_btn_op span.cmt_more {background-position:right -8px}
.cmt_btn b {font-size:1.2em;color:#000}
.cmt_btn span.total:after {position:absolute;bottom:-17px;left:0;display:inline-block;background:#3a8afd;content:"";width:100%;height:2px}
#bo_vc {}
#bo_vc h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_vc article {margin:20px 0;position:relative;border-bottom:1px solid #f0f0f0}
#bo_vc article:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc article .profile_img img {border-radius:50%}
#bo_vc article .pf_img {float:left;margin-right:10px}
#bo_vc article .pf_img img {border-radius:50%;width:50px;height:50px}
#bo_vc article .cm_wrap {float:left;max-width:870px;width:90%}
#bo_vc header {position:relative;width:100%}
#bo_vc header:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc header .profile_img {display:none}
#bo_vc header .icon_reply {position:absolute;top:15px;left:-20px}
#bo_vc .member, #bo_vc .guest, #bo_vc .sv_member, #bo_vc .sv_guest {font-weight:bold}
.bo_vc_hdinfo {color:#777}
#bo_vc h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#bo_vc .cmt_contents {line-height:1.8em;padding:0 0 20px}
#bo_vc p a {text-decoration:underline}
#bo_vc p a.s_cmt {text-decoration:underline;color:#ed6479}
#bo_vc_empty {margin:0;padding:80px 0 !important;color:#777;text-align:center}
#bo_vc #bo_vc_winfo {float:left}
#bo_vc .bo_vl_opt {position:absolute;top:0;right:0}
.bo_vc_act {display:none;position:absolute;right:0;top:40px;width:58px;text-align:right;border:1px solid #b8bfc4;margin:0;list-style:none;background:#fff;zoom:1;z-index:9999}
.bo_vc_act:before {content:"";position:absolute;top:-8px;right:5px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #b8bfc4 transparent}
.bo_vc_act:after {content:"";position:absolute;top:-6px;right:5px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
.bo_vc_act li {border-bottom:1px solid #f0f0f0}
.bo_vc_act li:last-child {border-bottom:0}
.bo_vc_act li a {display:inline-block;padding:10px 15px}
.bo_vc_act li a:hover {color:#3a8afd}

.bo_vc_w {position:relative;margin:10px 0;display:block}
.bo_vc_w:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_w h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
.bo_vc_w #char_cnt {display:block;margin:0 0 5px}
.bo_vc_w textarea {border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;width:100%;height:120px; box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1)}
.bo_vc_w_info {margin:10px 0;float:left}
.bo_vc_w_info:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_w_info .frm_input {float:left;margin-right:5px}
.bo_vc_w_info #captcha {padding-top:10px;display:block;clear:both}
.bo_vc_w .btn_confirm {clear:both;margin-top:10px}
.bo_vc_w .btn_confirm label {display:inline-block;margin-right:10px;border-radius:3px;font-size:1.5em;text-align:center}
.bo_vc_w .btn_submit {height:45px;padding:0 20px;border-radius:3px;font-weight:bold;font-size:1.083em}
.bo_vc_w .btn_confirm .secret_cm label {font-size:1em !important}
.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""}
.secret_cm {display:inline-block;float:left}

#bo_vc_send_sns {display:inline-block;float:left}
#bo_vc_sns {display:inline-block;margin:0;padding:0;list-style:none;zoom:1}
#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc_sns li {float:left;margin:0 5px 0 0}
#bo_vc_sns .sns_li_f {border-radius:3px;background:#3a589b;height:40px;line-height:40px;padding:0 0 0 10px}
#bo_vc_sns .sns_li_t {border-radius:3px;background:#00aced;height:40px;line-height:40px;padding:0 0 0 10px}
#bo_vc_sns .sns_li_off {background:#bbb}
#bo_vc_sns a {display:inline-block;padding:0 15px 0 5px}
#bo_vc_sns input {margin:0 5px 0 0}

#bo_w .bo_v_option li {display:inline-block;float:left;text-align:left;margin:0 5px 0 0}
#bo_w .bo_v_option li label {vertical-align:baseline}
#bo_w .bo_v_option .chk_box input[type="checkbox"] + label span {margin-left:0;margin-right:5px}
#bo_w .write_div {margin:10px 0;position:relative}
#bo_w .write_div:after {display:block;visibility:hidden;clear:both;content:""}
#bo_w .bo_w_info:after {display:block;visibility:hidden;clear:both;content:""}
#bo_w .bo_w_info .frm_input {float:left;margin-bottom:1%}
#bo_w #wr_password, #bo_w #wr_homepage {margin-left:1%}
#bo_w .wr_content.smarteditor2 iframe {background:#fff}
#bo_w .bo_w_tit {position:relative}
#bo_w .bo_w_tit .frm_input {padding-right:120px}
#bo_w .bo_w_tit #btn_autosave {position:absolute;top:5px;right:5px;line-height:30px;height:30px}
#bo_w .bo_w_link label {position:absolute;top:1px;left:1px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;font-size:1.2em;text-align:center;color:#b2b2b2}
#bo_w .bo_w_link .frm_input {padding-left:50px}
#bo_w .bo_w_flie .lb_icon {position:absolute;top:0px;left:0px;border-radius:3px 0 0 3px;height:38px;line-height:38px;width:40px;font-size:1.2em;text-align:center;color:#b2b2b2}
#bo_w .bo_w_flie .frm_file {padding-left:50px;margin-top:3px}
#bo_w .bo_w_flie .file_wr {position:relative;border:1px solid #ccc;background:#fff;color:#000;vertical-align:middle;border-radius:3px;padding:5px;height:40px;margin:0}
#bo_w .bo_w_flie .frm_input {margin:10px 0 0}
#bo_w .bo_w_flie .file_del {position:absolute;top:10px;right:10px;font-size:0.92em;color:#7d7d7d}
#bo_w .bo_w_select select {border:1px solid #d0d3db;width:100%;height:40px;border-radius:3px}
#bo_w .btn_submit {padding:0 20px;font-size:1.167em}
#bo_w .btn_cancel {border-radius:3px;font-size:1.167em}

/* =========================================================
   [ 이벤트 게시판 전용 카드 스타일 ]
   ========================================================= */

/* 3열 고정 (col-gn-4 덮어쓰기) */
#bo_gall.event-board .gall_li {
    width: 33.333% !important;
}

/* 썸네일 비율을 16:9 배너형으로 변경 */
#bo_gall.event-board .gall_img {
    aspect-ratio: 16 / 9 !important;
    border-radius: 16px !important;
}

/* 제목 왼쪽 정렬 */
#bo_gall.event-board .gall_text_href {
    text-align: left !important;
    margin-top: 14px !important;
}

/* 제목 스타일 */
#bo_gall.event-board .bo_tit {
    font-size: 17px !important;
    font-weight: 700 !important;
    color: #111 !important;
    margin-bottom: 6px !important;
    display: block !important;
}

/* 분류(진행중/종료)를 서브타이틀로 표시 */
#bo_gall.event-board .bo_cate_label {
    display: block;
    font-size: 13px;
    color: #999;
    font-weight: 400;
    margin-top: 4px;
}

/* 작성자/날짜 행 숨김 */
#bo_gall.event-board .gall_info {
    display: none !important;
}

/* 카드 하단 여백 조정 */
#bo_gall.event-board .gall_box {
    margin-bottom: 36px !important;
}

/* 태블릿: 2열 */
@media (max-width: 900px) {
    #bo_gall.event-board .gall_li {
        width: 50% !important;
    }
}
/* 모바일: 1열 */
@media (max-width: 600px) {
    #bo_gall.event-board .gall_li {
        width: 100% !important;
    }
}


/* =========================================================
   [ 이벤트 게시글 뷰 전용 스타일 ]
   ========================================================= */

/* 본문 영역 가운데 배치 */
#bo_v.event-view {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
    float: none;
}

/* 작성자/버튼 영역 숨김 */
#bo_v.event-view #bo_v_info { display: none !important; }
#bo_v.event-view #bo_v_share { display: none !important; }

/* 제목 가운데 정렬 + 등장 애니메이션 */
#bo_v.event-view header {
    text-align: center;
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 30px;
}
#bo_v.event-view #bo_v_title {
    border-bottom: none;
    padding-bottom: 0;
}
#bo_v.event-view .bo_v_tit {
    font-size: 24px;
    font-weight: 700;
    color: #111;
    line-height: 1.4;
    display: block;
    opacity: 0;
    transform: translateY(-16px);
    animation: jjddViewTitleIn 0.6s ease forwards;
}
@keyframes jjddViewTitleIn {
    from { opacity: 0; transform: translateY(-16px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* 본문 내용 가운데 배치 */
#bo_v.event-view #bo_v_atc {
    text-align: center;
    margin-top: 40px;
}
#bo_v.event-view #bo_v_con {
    text-align: left;
    display: inline-block;
    max-width: 860px;
    width: 100%;
}

/* 리스트 보기 버튼 */
.jjdd-view-bottom {
    display: flex;
    justify-content: center;
    margin: 48px 0 20px;
}
#bo_v.event-view .jjdd-view-bottom {
    margin-top: 12px;
}

.btn-view-list {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 32px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background: transparent;
    color: #555;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: border-color 0.2s ease;
    box-sizing: border-box;
}
.btn-view-list:hover {
    border-color: #555;
    text-decoration: none;
    color: #555;
}


/* =========================================================
   [ 매거진/리뷰 게시글 뷰 전용 스타일 ]
   ========================================================= */

/* 브레드크럼 현재 페이지명 진하게 */
.mag-review-top .jjdd-board-breadcrumb strong {
    color: #111;
    font-weight: 600;
}

/* 제목 가운데 정렬 + 등장 애니메이션 */
#bo_v.mag-review-view header {
    text-align: center;
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}
#bo_v.mag-review-view #bo_v_title {
    border-bottom: none;
    padding-bottom: 0;
}
#bo_v.mag-review-view .bo_v_tit {
    display: block;
    font-size: 28px;
    font-weight: 700;
    color: #111;
    line-height: 1.4;
    opacity: 0;
    transform: translateY(-16px);
    animation: jjddMagTitleIn 0.6s ease forwards;
}
@keyframes jjddMagTitleIn {
    from { opacity: 0; transform: translateY(-16px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* 기존 작성자/버튼 영역 */
#bo_v.mag-review-view #bo_v_info { display: block !important; }
#bo_v.mag-review-view #bo_v_share { display: none !important; }

/* 매거진 상세 상단 기존 버튼 묶음 숨김 */
#bo_v.mag-review-view #bo_v_info .profile_info { display: none !important; }
#bo_v.mag-review-view #bo_v_top { display: none !important; }

/* 커스텀 메타 바 */
.jjdd-view-meta {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 16px 0 0;
    font-size: 13px;
    color: #999;
}
.jjdd-view-meta-sep {
    color: #ddd;
}
.jjdd-view-meta-author {
    font-weight: 500;
    color: #777;
}

/* 리스트 보기 버튼 상단 여백 (매거진/리뷰) */
#bo_v.mag-review-view .jjdd-view-bottom {
    margin-top: 64px;
    flex-direction: column;
    align-items: center;
}

#bo_v.mag-review-view .jjdd-manage-inline {
    margin-top: 12px;
    display: flex;
    justify-content: center;
    gap: 8px;
}

#bo_v.mag-review-view .btn-view-list--danger {
    border-color: #e34b4b;
    color: #e34b4b;
}

#bo_v.mag-review-view .btn-view-list--danger:hover {
    background: #e34b4b;
    color: #fff;
}


/* =========================================================
   [ 리뷰 게시판 전용 스타일 ]
   ========================================================= */

/* BEST 섹션 배경 */
.review-best-wrap {
    background: #f5f5f5;
    border-radius: 0;
    padding: 40px 0 44px;
    margin-bottom: 50px;
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
    box-sizing: border-box;
}
.review-best-slider {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 70px;
    position: relative;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 0;
}
.review-best-viewport {
    flex: 1;
    overflow: hidden;
    position: relative;
}
.rv-slider-btn {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid #bbb;
    color: #333;
    font-size: 32px;
    line-height: 1;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: border-color 0.2s;
}
.rv-slider-btn:hover { border-color: #333; }
.rv-slider-btn:disabled { opacity: 0.25; cursor: default; border-color: #ddd; }
.rv-prev { margin-right: 15px; }
.rv-next { margin-left: 15px; }
.review-best-list {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-start;
    transition: transform 0.4s ease;
    width: 200%; /* 8개를 담을 너비 */
}
.review-best-item {
    flex: 0 0 12.5%; /* 200%의 1/8 = 12.5% (전체 8개 중 1개, viewport에서 4개만 보임) */
    padding: 0 10px;
    box-sizing: border-box;
}
.review-best-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    transition: none;
}
.review-best-card:hover {
    text-decoration: none;
}
.review-best-img {
    position: relative;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #eee;
}
.review-best-img img {
    width: 100%; height: 100%; object-fit: cover;
    transition: opacity 0.3s ease;
}
.review-best-card:hover .review-best-img img { opacity: 0.8; }
.review-best-img .no_image { display: block; width: 100%; height: 100%; background: #ddd; }
.review-best-badge {
    position: absolute;
    top: 10px; left: 10px;
    background: #9f4ff0;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 6px;
    letter-spacing: 0.02em;
}
.review-best-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.review-best-title {
    font-size: 14px;
    font-weight: 600;
    color: #111;
    margin: 0;
    line-height: 1.45;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.review-best-content {
    font-size: 13px;
    color: #777;
    margin: 0;
    line-height: 1.55;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.review-best-stars-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.review-best-stars { display: flex; gap: 1px; }
.review-best-stars .star { font-size: 13px; color: #e0e0e0; }
.review-best-stars .star.on { color: #f5a623; }
.review-best-author { font-size: 12px; color: #aaa; }
.review-best-product {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #f2f2f2;
    margin-top: 4px;
    min-height: 52px;
}
.review-best-product-thumb {
    width: 44px;
    height: 44px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
    background: #f0f0f0;
    display: block;
}
.review-best-product-no-img {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: #f0f0f0;
    flex-shrink: 0;
    display: block;
}
.review-best-product-name {
    font-size: 12px;
    color: #555;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ── 일반 목록 카드 ── */
#bo_gall.review-board #gall_ul {
    display: flex;
    flex-wrap: wrap;
    padding: 0 40px;
    box-sizing: border-box;
    margin: 0;
    width: 100%;
    list-style: none;
    float: none;
}
#bo_gall.review-board #gall_ul::after { display: none; }
#bo_gall.review-board .gall_li {
    width: 25% !important;
    padding: 0 10px;
    margin-bottom: 28px;
    box-sizing: border-box;
    float: none !important;
}
.review-card {
    display: block;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    transition: border-color 0.2s;
    height: 100%;
}
.review-card:hover {
    border-color: #b0b0b0;
    text-decoration: none;
}
.review-card-img {
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    background: #f0f0f0;
}
.review-card-img img {
    width: 100%; height: 100%; object-fit: cover;
    transition: opacity 0.3s ease;
}
.review-card:hover .review-card-img img { opacity: 0.8; }
.review-card-img .no_image {
    display: block; width: 100%; height: 100%; background: #e8e8e8;
}
.review-card-body {
    padding: 14px 16px 16px;
    display: flex;
    flex-direction: column;
    gap: 7px;
}
.review-card-title {
    font-size: 15px;
    font-weight: 600;
    color: #111;
    margin: 0;
    line-height: 1.45;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.review-card-excerpt {
    font-size: 13px;
    color: #777;
    margin: 0;
    line-height: 1.6;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}
.review-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 4px;
}
.review-card-stars { display: flex; gap: 1px; }
.review-card-stars .star { font-size: 14px; color: #e0e0e0; }
.review-card-stars .star.on { color: #f5a623; }
.review-card-author { font-size: 12px; color: #aaa; }
.review-card-product {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-top: 10px;
    border-top: 1px solid #f2f2f2;
    margin-top: 4px;
    min-height: 52px;
}
.review-card-product-thumb {
    width: 44px;
    height: 44px;
    object-fit: cover;
    border-radius: 6px;
    flex-shrink: 0;
    background: #f0f0f0;
    display: block;
}
.review-card-product-no-img {
    width: 44px;
    height: 44px;
    border-radius: 6px;
    background: #f0f0f0;
    flex-shrink: 0;
    display: block;
}
.review-card-product-name {
    font-size: 12px;
    color: #555;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

/* ── 상품 검색 필터 ── */
.rv-product-filter {
    padding: 0 40px;
    box-sizing: border-box;
    margin-bottom: 40px;
}
.rv-filter-top-hr {
    border: none;
    border-top: 1.5px solid #222;
    margin: 0 0 0;
}
.rv-filter-bottom-hr {
    border: none;
    border-top: 1px solid #e0e0e0;
    margin: 0;
}
.rv-filter-row {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    padding: 11px 0;
}
.rv-filter-label {
    font-size: 13px;
    color: #999;
    white-space: nowrap;
}
.rv-filter-sep {
    color: #ddd;
    font-size: 14px;
    line-height: 1;
}
.rv-filter-search {
    position: relative;
}
.rv-filter-input {
    border: none;
    outline: none;
    box-shadow: none;
    font-size: 13px;
    color: #333;
    background: transparent;
    width: 220px;
    padding: 0;
}
.rv-filter-input:focus {
    outline: none;
    box-shadow: none;
}
.rv-filter-input::placeholder { color: #bbb; }
.rv-filter-btn {
    background: none;
    border: none;
    cursor: pointer;
    color: #888;
    padding: 0;
    display: flex;
    align-items: center;
    transition: color 0.15s;
}
.rv-filter-btn:hover { color: #222; }
.rv-filter-results {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    min-width: 260px;
    background: #fff;
    border: 1px solid #ddd;
    border-radius: 8px;
    max-height: 240px;
    overflow-y: auto;
    z-index: 200;
    box-shadow: 0 6px 16px rgba(0,0,0,0.10);
}

/* ========================================
   리뷰 페이지네이션 + 쓰기 버튼
   ======================================== */
.rv-pagination-section {
    padding: 40px 0 30px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

/* mypg 스타일 페이지네이션 */
.mypg-wrap {
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}

.mypg {
    display: inline-flex;
    gap: 4px;
    align-items: center;
}

.mypg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    padding: 0 6px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 13px;
    line-height: 1;
    color: #555;
    text-decoration: none;
    background: #fff;
    box-sizing: border-box;
    transition: all 0.15s;
}

.mypg-btn:hover {
    border-color: #888;
    color: #444;
    text-decoration: none;
}

.mypg-btn.current {
    background: #fff;
    border-color: #ddd;
    color: #bbb;
    font-weight: bold;
    cursor: default;
}

.mypg-btn.current:hover {
    border-color: #888;
    color: #444;
}

/* 리뷰 쓰기 버튼 */
.rv-write-btn-wrap {
    text-align: center;
}

.rv-write-btn-main {
    display: inline-block;
    background: #9f4ff0;
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    padding: 14px 50px;
    border-radius: 6px;
    text-decoration: none;
    transition: background 0.2s;
}

.rv-write-btn-main:hover {
    background: #8a3ed6;
    color: #fff;
    text-decoration: none;
}

/* 기존 스타일 제거 */
.rv-write-area {
    display: none;
}
.rv-write-area .mypg-btn:hover { border-color: #888; color: #333; text-decoration: none; }
.rv-write-area .mypg-btn.current { color: #9f4ff0; border-color: #9f4ff0; font-weight: 700; cursor: default; }

/* 모바일 */
@media (max-width: 900px) {
    .review-best-list { flex-wrap: wrap; }
    .review-best-item { flex: 0 0 50%; }
    #bo_gall.review-board .gall_li { width: 50% !important; }
}
@media (max-width: 600px) {
    .review-best-item { flex: 0 0 100%; }
    #bo_gall.review-board .gall_li { width: 100% !important; }
    .review-best-wrap { padding: 28px 0 32px; }
    .review-best-list { padding: 0 20px; }
    #bo_gall.review-board #gall_ul { padding: 0 20px; }
}

/* ========================================
   리뷰 상세 모달 (iframe 팝업)
   ======================================== */
.rv-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.75);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: modalFadeIn 0.25s ease;
}

@keyframes modalFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.rv-modal-wrapper {
    position: relative;
    width: 90%;
    max-width: 1200px;
    height: 90%;
    max-height: 800px;
    background: #fff;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    animation: modalSlideUp 0.3s ease;
}

@keyframes modalSlideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.rv-modal-close {
    position: absolute;
    top: 20px;
    right: 20px;
    width: 40px;
    height: 40px;
    background: #fff;
    border: 2px solid #333;
    border-radius: 50%;
    font-size: 28px;
    line-height: 1;
    color: #333;
    cursor: pointer;
    z-index: 10;
    transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.rv-modal-close:hover {
    background: #f5f5f5;
    border-color: #9f4ff0;
    color: #9f4ff0;
}

.rv-modal-iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* 모바일 반응형 */
@media (max-width: 900px) {
    .rv-modal-wrapper {
        width: 95%;
        height: 95%;
        max-height: none;
    }
    
    .rv-modal-close {
        top: 10px;
        right: 10px;
        width: 36px;
        height: 36px;
        font-size: 24px;
        border-width: 1.5px;
    }
}