@charset "utf-8";

:root {
    --primary-color: #2c5ba9;
    --accent-color: #e03131;
    --bg-gray: #f8f9fa;
    --border-color: #eee;
}

/* 게시판 목록 */
.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}
.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:""}
#gall_ul li { padding:20px; border-radius: 16px; margin:0 0 30px; border-bottom:1px solid #eeeeee; border:1px solid #eee; position: relative;}
#bo_gall .gall_li {}
#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-left:0;padding-right:10px;*padding-right:0;float:left;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin-left:0}
.gall_row .col-gn-0,.gall_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}

/* === 세로형 리스트용 재정의 (gallery vertical list) === */
.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 {
    width:100%;
    float:none;
    padding-left:0;
    padding-right:0;
    -webkit-box-sizing:border-box;
    -moz-box-sizing:border-box;
    box-sizing:border-box;
    margin-bottom:20px;
}
#bo_gall { 
    /* padding-left:var(--main-padding); 
    padding-right:var(--main-padding);  */
}
#bo_gall .gall_box {display:block;margin:0 0 20px 0;border-radius:0}
/* 오른쪽에 제목/내용과 가격이 오도록 grid 배치 */
#bo_gall .gall_con {display:grid;grid-template-columns:120px 1fr;grid-auto-rows:auto;gap:10px;align-items:start}
#bo_gall .gall_img {grid-column:1;grid-row:1 / span 2;width:120px;max-width:120px;height:auto;border-bottom:0;text-align:left;overflow:visible}
#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 {height:auto !important}
#bo_gall .gall_text_href {grid-column:2;grid-row:1;margin:0 0 6px}
#bo_gall .gall_info {grid-column:2;grid-row:2;margin-top:8px}
#bo_gall .gall_option {grid-column:2;grid-row:1;justify-self:start;align-self:start;margin-top:0}
#bo_gall .gall_price {grid-column:3;grid-row:1 / span 2;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
#bo_gall .gall_discount {color:#c97b3a;font-weight:bold;font-size:0.95em}
#bo_gall .gall_price_main {font-size:1.4em;font-weight:bold;color:#2b2b2b}
#bo_gall .gall_price_old {text-decoration:line-through;color:#aaa;font-size:0.9em}

.price_wrap {display:flex;justify-content: space-between;align-items:center}
.price_wrap .btn_wrap {display:flex; gap:5px;}

.list_price { text-align: right;}
.discount_price { font-size:12px; text-decoration: line-through; color:#999;}


.price_rate,
.discounted_price { font-size:1.25rem; font-weight: 600; color:#111; }
.discounted_price { color:#111;}


.gallery_box { display:flex; justify-content: space-between; gap:16px; padding-top:10px;}
.gallery_box .gallery_text { flex:1; position: relative;}
.gallery_box img { border-radius: 10px; border:1px solid #eee; width:100px;}
.gallery_box slide-img {  }
.gallery_box slide-img.full { width:100%; height:auto; display:block; margin-bottom:10px; }

.gallery_text .addr { font-size:12px; color:#a8a29e; display:inline-block; margin:6px 0; }
.addr svg { display:inline-block; }
.like_wrap { display: flex; align-items: center;}
.like-btn { flex-shrink: 0; text-align: right; position: absolute; top:-44px; right:0; border:1px solid #ffccd5; background:#fff; }

.btn_all_wrap { display:flex; gap:10px; justify-content: end; flex-direction: column;}
.btn_all_wrap .btn_wrap { display:flex; gap:10px;  justify-content: flex-end;}
.btn_all_wrap1 { display:none;  }
.btn_all_wrap1 .btn_wrap { display:flex; justify-content: space-between; gap:10px; flex:1; margin-top:16px; }
.btn_all_wrap1 .btn_wrap button { flex:1; }

div.shot_info { position:relative; color:#1c1c1c; font-size:16px; line-height: 1.8; margin:30px 0 0 6px !important; padding:5px 0px 5px 16px;  }
.main-msg .star { color:#6366f1; margin-right:2px; }
span.main-msg,
span.sub-msg { display:block; font-size: 16px; font-weight: 600; }
span.sub-msg { font-size: 14px; color:#64748b; font-weight: 500;}
div.shot_info:before { 
 content: "";
            position: absolute;
            left: 0;
            top: 0;
            bottom: 0;
            width: 5px; /* 바의 두께 */
            background-color: #6366f1; /* 포인트 컬러 (인디고/보라 계열) */
            border-radius: 10px;    
 }


.contact-buttons { display: flex; gap: 10px; justify-content: space-between; margin-top: 0px; padding:20px;margin-bottom:10px;}
.action-btn { flex:1; background:#fff; text-align: center;  border-radius: 16px; border:1px solid #e2e8f0; color:#334155  }
.contact-buttons li a { display:flex;align-items: center;justify-content: center;flex-direction: column; gap: 6px; color:#000; font-size: 14px; font-weight: 600; padding:10px 20px; }

.btn-reserve1 { background-color: #f8fafc;border-color: #cbd5e1; }
.btn-tel {  }
.icon-circle { color:#334155; }

/* stylebook_button */
 .stylebook-action-area {
            margin-top: 20px;
            margin-bottom: 40px;
        }

        .btn-stylebook-full {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            width: 100%;
            padding: 18px;
            background: #ffffff;
            border: 1.5px solid #e0e0e0;
            border-radius: 12px;
            text-decoration: none;
            color: var(--text-main);
            font-weight: 600;
            font-size: 15px;
            transition: all 0.2s ease;
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
        }

        .btn-stylebook-full:hover {
            border-color: var(--accent-gold);
            color: var(--accent-gold);
            background: #fffdf9;
        }

        .btn-stylebook-full i {
            color: var(--accent-gold);
        }

        .btn-stylebook-full .arrow {
            margin-left: auto;
            color: #ccc;
        }

        /* 버튼 아래 보조 문구 */
        .helper-text {
            text-align: center;
            font-size: 12px;
            color: var(--text-sub);
            margin-top: 12px;
        }


/* 랭킹 1~3위용 */
#gall_ul .rank_list { padding:0; margin:0 auto 30px; }
#gall_ul .rank_list .subject a  { line-height:1.3; margin-bottom:6px;}
#gall_ul .rank_list img { border-radius:15px 15px 0 0;}
#gall_ul .rank_list .l_img { width:100%;}
#gall_ul .rank_list.rank_2 { width:90%;}
#gall_ul .rank_list.rank_3 { width:80%;}

#gall_ul .rank_list .addr { color: #a8a29e; font-size: 14px;}
#gall_ul .rank_list .img { display: flex; justify-content: center;}
#gall_ul .rank_list .price_wrap { padding:10px 20px 20px; }
.rank_list .text_wrap { margin-top:0px; padding:0 20px;}
.rank_list .btn_wrap a { padding:7px 10px;}

.rank_list .btn_good .like-btn { position: absolute; top:10px; right:10px; z-index:1; }

.rank_list .rank-badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 10;
    padding: 6px 14px;
    border-radius: 14px;
    font-weight: 800;
    font-size: 12px;
    color: white;
    display: flex;
    align-items: center;
    gap: 5px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.rank-item.rank-1 { 
    width: 100%; 
    border: 3px solid #fbbf24; /* 골드 */
    box-shadow: 0 20px 25px -5px rgba(251, 191, 36, 0.15);
}
.rank-item.rank-2 { 
    width: 88%; 
    border: 3px solid #94a3b8; /* 실버/그레이 강화 */
    box-shadow: 0 15px 20px -5px rgba(148, 163, 184, 0.2);
}
.rank-item.rank-3 { 
    width: 76%; 
    border: 2px solid #f97316; /* 브론즈/오렌지 */
    box-shadow: 0 10px 15px -5px rgba(249, 115, 22, 0.15);
}

.rank-1 .rank-badge { background: linear-gradient(135deg, #fbbf24, #f59e0b); }
.rank-2 .rank-badge { background: linear-gradient(135deg, #94a3b8, #64748b); }
.rank-3 .rank-badge { background: linear-gradient(135deg, #f97316, #ea580c); }

.list_text { text-align: right; font-size:16px; background-color: #ddd; padding:10px 16px; display: inline-block; margin-bottom:30px; color:#fff;} 



/* 하트 아이콘 기본 스타일 */
.like-btn i.fa-heart {
    transition: all 0.2s ease;
    cursor: pointer;
}

/* 채워진 하트(이미 누른 상태)에 생동감 주는 색상 */
.like-btn i.fa-solid.fa-heart {
    color: #ff4d4d; /* 인스타그램 느낌의 밝은 빨강 */
}

/* 랭크 */
/* 랭킹 공통 카드 스타일 */
.item-card {
    position: relative;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

/* 랭킹 라벨 (왕관/메달) */
.rank-label {
    position: absolute;
    top: -12px;
    left: 15px;
    padding: 4px 14px;
    border-radius: 30px;
    font-size: 11px;
    font-weight: 900;
    color: #fff;
    display: flex;
    align-items: center;
    gap: 5px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.15);
    z-index: 50; /* 썸네일보다 위로 */
}

/* 1위 특별 디자인 (GOLD) */
.rank-1 {
    border: 2px solid #ffd700 !important;
    background: linear-gradient(to bottom, #fffdf0, #ffffff);
}
.rank-1 .rank-label {
    background: linear-gradient(135deg, #ffd700, #ff8c00);
    border: 1px solid #fff;
}
.rank-1::after {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: inherit;
    background: linear-gradient(45deg, #ffd700, #fff, #ffd700);
    z-index: -1;
    filter: blur(8px);
    opacity: 0.3;
    animation: rotateGlow 3s linear infinite;
}

/* 2위 디자인 (SILVER) */
.rank-2 { border: 2px solid #bdc3c7 !important; }
.rank-2 .rank-label { background: linear-gradient(135deg, #bdc3c7, #7f8c8d); }

/* 3위 디자인 (BRONZE) */
.rank-3 { border: 2px solid #e67e22 !important; }
.rank-3 .rank-label { background: linear-gradient(135deg, #e67e22, #d35400); }

/* 글로우 애니메이션 */
@keyframes rotateGlow {
    0% { filter: blur(8px) hue-rotate(0deg); }
    100% { filter: blur(8px) hue-rotate(360deg); }
}

/* 실시간 순위 이동 시 효과 */
.rank-change-effect {
    animation: rankUp 0.6s ease-out;
}
@keyframes rankUp {
    0% { transform: scale(0.95); filter: brightness(1.5); }
    100% { transform: scale(1); filter: brightness(1); }
}
/* 랭크순위끝 */


/* 전송 버튼 로딩 해제 스타일 */
#btn_submit:disabled {
    cursor: default;
    opacity: 0.7;
}


.top_title { font-size:18px; font-weight: 700;}

/* view_page */
.v_detail { background: #ffffff;
    border-radius: 20px;
    border: 1px solid #e2e8f0;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
 }
.v_detail .wrap { padding:20px; border-bottom: 1px solid #f1f5f9; display:flex; gap:15px;}
.v_detail .title { font-size: 14px; color:#1e293b; padding:0 0 2px; font-weight: 700;}
.v_detail .content { font-size: 15px; color:#717171;  }
.v_detail .icon-area {
min-width: 24px;
    margin-top: 2px;
    color: #c5a37d;
}


/* 주소검색 */
.location-select-wrap { display:flex; gap:10px; padding:15px 15px 5px 0; margin:0 0 15px;}
.location-select-wrap > div { display:flex; flex-direction: column; flex:1;}
.location-select-wrap > div label { color:#9ca3af; padding:0 0 3px;}
.location-select-wrap > div select { flex:1; padding:11px; border-radius:8px; border:1px solid #ddd; }

.custom-scrollbar::-webkit-scrollbar { width: 4px; }
.custom-scrollbar::-webkit-scrollbar-track { background: transparent; }
.custom-scrollbar::-webkit-scrollbar-thumb { background: #e5e7eb; border-radius: 10px; }

/* 지역 선택 활성화 스타일 */
.area-item.active { background-color: white; color: #2563eb; font-weight: 700; border-left: 4px solid #2563eb; }
.sub-area-item.active { background-color: #eff6ff; color: #2563eb; font-weight: 600; }

@media (max-width:600px) {
    #bo_gall .gall_con {grid-template-columns:1fr}
    #bo_gall .gall_img {grid-column:auto;grid-row:auto;width:100%;max-width:100%}
    #bo_gall .gall_option {justify-self:start}
    #bo_gall .gall_price {grid-column:auto;grid-row:auto;text-align:left;align-items:flex-start}
    .item-card .btn_all_wrap { display:none; }
    .btn_all_wrap1 { display:flex; }
}

@media (max-width:640px) { 
    .item-card .btn_all_wrap .btn_wrap { margin-top:0; }
}

#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:0px 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;border-radius: 10px;}
#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:0 0 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:1;font-weight:bold;color:#111817;font-size:18px; flex:1;}
#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 .bo_cnt {color:#acacac;line-height:18px}
#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 .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;margin-right:2px}
#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_gall .gall_info {line-height:1.5em;line-height:20px}
#bo_gall .gall_info strong {display:inline-block;margin:0}
#bo_gall .gall_info i {font-size:12px}
#bo_gall .gall_info .gall_date,
#bo_gall .gall_info .gall_view {display:inline-block;margin-left:10px;color:#777}

#bo_gall .gall_option {position:absolute;top:10px;right:10px}
#bo_gall .gall_option strong {background:#fff;padding:5px 10px;border-radius:30px;-webkit-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
-moz-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2)}

/* 게시판 목록 공통 */
#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}
#bo_list_total {float:left;line-height:34px;font-size:0.92em;color:#4e546f}

.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}

.td_num strong {color:#000}
.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}

.bo_sch_wrap {display:none;width:100%;height:100%;position:fixed;top:0;left:0;z-index:999}
.bo_sch {position:absolute;top:50%;left:50%;background:#fff;text-align:left;width:330px;max-height:300px;margin-left:-125px;margin-top:-180px;overflow-y:auto;border-radius:5px;-webkit-box-shadow:1px 1px 18px rgba(0,0,0,0.2);-moz-box-shadow:1px 1px 18px rgba(0,0,0,0.2);box-shadow:1px 1px 18px rgba(0,0,0,0.2);border:1px solid #dde7e9;background:#fff;border-radius:3px}
.bo_sch:after {display:block;visibility:hidden;clear:both;content:""}
.bo_sch h3 {padding:15px;border-bottom:1px solid #e8e8e8}
.bo_sch legend {background:red}
.bo_sch form {padding:15px;display:block}
.bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;margin-top:15px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075);
box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)}
.bo_sch .sch_input {width:250px;height:38px;border:0;padding:0;background-color:transparent;float:left}
.bo_sch .sch_btn {height:38px;float:right;color:#656565;background:none;border:0;width:40px;font-size:15px}
.bo_sch .bo_sch_cls {position:absolute;right:0;top:0;color:#b5b8bb;border:0;padding:12px 15px;font-size:16px;background:#fff}
.bo_sch_bg {background:#000;background:rgba(0,0,0,0.1);width:100%;height:100%}


/* 게시판 쓰기 */
#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;
-webkit-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
-moz-box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2);
box-shadow:2px 2px 3px 0px rgba(0,0,0,0.2)}
#autosave_pop:before {content:"";position:absolute;top:-8px;right:45px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #000 transparent}
#autosave_pop:after {content:"";position:absolute;top:-7px;right:45px;width:0;height:0;border-style:solid;border-width:0 6px 8px 6px;border-color:transparent transparent #fff transparent}
html.no-overflowscrolling #autosave_pop {height:auto;max-height:10000px !important} /* overflow 미지원 기기 대응 */
#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 li:after {display:block;visibility:hidden;clear:both;content:""}
#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;box-sizing:border-box; position: relative; }

#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:1.25rem;margin:5px 0 0;word-break:break-all;}
.bo_v_star { padding:16px 0 0 0; display: flex; align-items: center; gap: 5px; font-size: 0.875rem; font-weight: 600;}


#bo_v_info {margin:0;border-bottom:1px solid #f1f1f1;color:#666}
#bo_v_info:after {display:block;visibility:hidden;clear:both;content:""} 
#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;
-webkit-box-shadow:1px 1px 5px 0px hsl(232, 36%, 96%);
-moz-box-shadow:1px 1px 5px 0px hsl(232, 36%, 96%);
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_file ul {margin:0;list-style:none}
#bo_v_link li {padding:15px;position:relative;margin:10px 0;border:1px solid #dfdfdf;border-radius:5px;
-webkit-box-shadow:1px 1px 5px 0px hsl(232, 36%, 96%);
-moz-box-shadow:1px 1px 5px 0px hsl(232, 36%, 96%);
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:10px 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 {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: 부모 컨텐츠(예: #bo_v)에 적용된 좌우 패딩을 무시하고 컨텐츠 박스 폭까지 확장 (컨텐츠-풀-블리드) */
#bo_v_img {
    width: calc(100% + (var(--main-padding) * 2));
    margin-left: calc(var(--main-padding) * -1);
    margin-right: calc(var(--main-padding) * -1);
    box-sizing: border-box;
    overflow: hidden; /* 컨테이너 넘침 숨김 — JS가 높이를 동적으로 조절 */
    zoom:1;
    position: relative;
    max-height: 80vh; /* 안전장치 */
}

#bo_v_img_all { display:gird;}

#bo_v_img:after {display:block;visibility:hidden;clear:both;content:""}
#bo_v_img a.view_image {display:block}
#bo_v_img img {
    display:block;
    margin:0;
    max-width:none !important;
    width: calc(100% + (var(--main-padding) * 2)) !important;
    margin-left: calc(var(--main-padding) * -1) !important;
    margin-right: calc(var(--main-padding) * -1) !important;
    height:auto; /* JS에서 필요에 따라 height:100% 또는 height:auto로 설정 */
    object-fit: cover;
    object-position: center;
    box-sizing:border-box;
}

/* 모바일에서는 컨텐츠-풀-블리드 해제 (오버플로우 방지) */
@media (max-width:600px) {
    #bo_v_img {width:100%; margin-left:0; margin-right:0; overflow:hidden}
    #bo_v_img img {width:100% !important; margin-left:0 !important; margin-right:0 !important}
}

#bo_v_con {margin:10px 0 30px;width:100%;line-height:1.7em;min-height:0px;word-break:break-all;overflow:hidden;display: none;}
#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}

/* 할인 표기: 가격 가운데에 가로 취소선 표시 */
.price .discount {
    position: relative;
    display: inline-block;
    color: #999;
    text-decoration: none; /* 기본 취소선 제거 */
    line-height: 2;
}

.original_price { font-size: 1.25rem; font-weight:600}


#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}

#bo_v header { padding:16px 0 ;}


/* 게시판 댓글 */
.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:calc(100% - 40px)}
#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:75px;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;text-align:left;}
.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;
-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);
box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1)}
#wr_secret {}
.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:5px;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:20px;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}


.bo_w_flie.write_div { 
        position: relative; 
        margin-bottom: 15px; 
        padding: 15px; 
        border: 1px solid #dce1e5; 
        border-radius: 8px; 
        background: #fff;
    }

    /* 첫 번째 파일(대표사진) 강조 */
    .bo_w_flie.is_main_file {
        border: 1px solid #ebc6c0;
        background: #fffcfb;
        margin-top: 20px;
    }

    /* 대표사진 뱃지 */
    .main_photo_badge {
        position: absolute;
        top: -12px;
        left: 15px;
        background: linear-gradient(135deg, #ff416c, #ff4b2b);
        color: #fff;
        font-size: 11px;
        font-weight: bold;
        padding: 3px 12px;
        border-radius: 50px;
        box-shadow: 0 4px 8px rgba(255, 75, 43, 0.3);
        z-index: 10;
        animation: pulse_badge 2s infinite;
    }

    /* 기존 label 아이콘 스타일 보정 */
    .bo_w_flie .lb_icon { display: flex; align-items: center; margin-bottom: 8px; cursor: pointer; }
    .bo_w_flie .lb_icon i { margin-right: 8px; color: #3b82f6; }
    .bo_w_flie.is_main_file .lb_icon i { color: #ff4b2b; }

    /* 기존 input 스타일 보정 */
    .bo_w_flie .frm_file { width: 100%; }
    .bo_w_flie .full_input.frm_input { margin-top: 8px; }

    /* 삭제 체크박스 영역 */
    .file_del { display: block; margin-top: 10px; font-size: 0.9em; color: #666; }

    @keyframes pulse_badge {
        0% { transform: scale(1); }
        50% { transform: scale(1.05); }
        100% { transform: scale(1); }
    }


.price { padding:16px 0;}
.tab_btn { display: flex; border-bottom: 1px solid #eee; padding:0 0 16px; }
.tab_btn li { flex: 1; text-align: center; font-weight: 400; font-size:1rem; }
.tab_btn li.active { font-weight: 600;}


/* 추가 */
/* 프로필 정보 섹션 */
.profile-content {
    padding: 25px 20px;
    text-align: center;
    margin:0px auto 0;    
    background: #ffffff; 
    border-radius: 0 0 24px 24px;
    position: relative;
    z-index: 10;
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.08), 0 5px 15px rgba(0, 0, 0, 0.04);
    border: 1px solid rgba(0, 0, 0, 0.03);
    
}

.profile_img { margin:-80px auto 0;}
.profile_img img {
    width: 110px;
    overflow: hidden;
    margin: 0 auto 10px;
    border: 5px solid #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    border-radius:100%;
}   

.ranking-badge {
    display: inline-block;
    color: var(--accent-color);
    font-size: 14px;
    font-weight: 700;
    background: rgba(224, 49, 49, 0.08);
    padding: 5px 12px;
    border-radius: 20px;
    margin-bottom: 15px;
}

.designer-title {
    margin: 0;
    font-size: 26px;
    font-weight: 800;
}

.designer-title span {
    font-size: 18px;
    color: #888;
    font-weight: 400;
    margin-left: 5px;
}

.one-line-intro {
    margin: 15px 0;
    font-size: 15px;
    color: #666;
    line-height: 1.6;
    word-break: keep-all;
}

.style-tags {
    margin-top: 15px;
}

.style-tags span {
    display: inline-block;
    background: var(--bg-gray);
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 13px;
    margin: 3px;
    color: #555;
}

/* 구분선 */
hr.divider {
    height: 10px;
    background-color: #f1f3f5;
    /* border: none; */
}

/* 섹션 공통 스타일 */
.section {
    padding: 25px 0px;
}

.section.section1 { padding:25px 20px;}

.section-header {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 20px;
    display: flex;
    align-items: center;
}

.section-header::before {
    content: '';
    width: 4px;
    height: 18px;
    background: var(--primary-color);
    margin-right: 10px;
    border-radius: 2px;
}

/* 가격표 스타일 */
.price-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.price-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid var(--border-color);
}

.price-item:last-child {
    border-bottom: none;
}

.price-label {
    font-size: 16px;
    color: #444;
}

.price-amount {
    font-size: 16px;
    font-weight: 700;
    color: var(--primary-color);
}

       .section-header {
            font-size: 18px;
            font-weight: 700;
            margin-bottom: 15px;
            display: flex;
            align-items: center;
        }

        .section-header::before {
            content: '';
            width: 4px;
            height: 18px;
            background: var(--primary-color);
            margin-right: 10px;
            border-radius: 2px;
        }

        /* 상세 설명 텍스트 */
        .detail-description {
            font-size: 15px;
            color: #555;
            line-height: 1.7;
            white-space: pre-wrap; /* DB에서 넘어온 줄바꿈 유지 */
        }

        /* 고객 리뷰 키워드 요약 */
        .review-keywords {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
            margin-top: 15px;
        }

        .keyword-item {
            font-size: 14px;
            color: #444;
            background: #fff;
            border: 1px solid #ddd;
            padding: 8px 15px;
            border-radius: 10px;
            display: flex;
            align-items: center;
        }

        .keyword-item span {
            font-weight: 700;
            margin-left: 5px;
            color: var(--primary-color);
        }
/* 위치 및 시간 정보 */
.info-card {
    background: var(--bg-gray);
    padding: 15px;
    border-radius: 12px;
    margin-bottom: 15px;
}

/* .swiper.custom-slider { border-radius: 0px 0px 0 0; overflow:hidden; } */


.swiper { /* 또는 사용 중인 클래스 명 */
    width: 100%; 
    border-radius: 12px 12px 0 0; /* 원하는 곡률 */

    isolation: isolate;
    
    /* 핵심: 자식 요소들이 이 영역을 벗어나지 못하게 함 */
    overflow: hidden; 
    
    /* Safari 등 일부 브라우저에서 테두리 밖으로 나가는 버그 방지 */
    -webkit-mask-image: -webkit-radial-gradient(white, black);
    -webkit-mask-image: radial-gradient(white, black);
    mask-image: radial-gradient(white, black);    
}

/* 이미지 자체 설정 */
.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* 이미지가 찌그러지지 않게 꽉 채움 */
    display: block;
}


.title_area { display:flex; justify-content: space-between;}
.title_wrap p { color:red; } 

.info-row {display: flex;margin-bottom: 8px;font-size: 14px;align-items: flex-start}

.info-row:last-child { margin-bottom: 0; }

.info-label {
    width: 60px;
    font-weight: 700;
    color: #777;
    flex-shrink: 0;
}

#youtube_wrap { height:90vh; display: flex; align-items: center; justify-content: center; flex-direction: column;}

/* 유튜브 */
.video-container {
    width: 100%;
    margin: 20px auto;
    display: flex;
    justify-content: center;
}

/* 가로형 (기본) */
.video-container iframe {
    width: 100%;
    max-width: 800px;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
}

.video-container.vertical-full {
    width: 100%;             /* 가로를 꽉 채움 */
    position: relative;
    display: flex;
    justify-content: center;
}

.video-container.vertical-full iframe {
    /* width: 100%;             가로 100% 강제 */
    width: min(100%, 500px, 90vh * 9 / 16);
    aspect-ratio: 9 / 16;    /* 세로 비율 유지 */
    /* max-width: 500px; 세로 영상은 가로를 좁게 해야 보기 좋습니다 */
    border-radius: 12px;
    height: auto;
}



.work-header {
    margin: 40px 0 20px 0px;
    text-align: left;
    position: relative;
    /* padding:0 10px 0; */
    
}

.work-header:before {
    content: '';
    display: inline-block;
    width: 4px;
    height: 100%;
    background: var(--primary-color);    
    position: absolute;
    border-radius: 16px;
}

.work-label {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    color: #1a73e8;
    letter-spacing: 1px;    
    text-transform: uppercase;
    padding-left:16px;
}

.work-title {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1.3;
    margin: 0;
    color: #111;
    word-break: keep-all;
    padding-left:16px;
}

.work-title span {
    color: #888;
    font-weight: 400;
    font-size: 0.9rem;
    display: block;
}


/* 제목 고정관련 */
.title-fixed { 
display: flex;          /* 가로로 배치 */
    align-items: center;    /* 세로 중앙 정렬 */
    width: 100%;            /* 부모 너비 꽉 채우기 */
    border: 1px solid #ccc; /* 기존 input처럼 보이게 테두리 설정 */
    padding: 0;      /* 안쪽 여백 */
    background-color: #fff;
    box-sizing: border-box; /* 패딩이 너비에 포함되도록 */    
}

#fixed-text {
    color: #888; /* 고정된 느낌을 주기 위해 약간 회색조 */
    /* font-weight: bold; */
    margin: 0 5px;
    white-space: nowrap;
}
#wr_subject {
    border: none; /* input 기본 테두리 제거 */
    outline: none;
    
    padding: 10px 5px;
    flex:1;
    -webkit-box-shadow: initial;
    -moz-box-shadow: initial;
    
    
}

.button-layout { 
    display: grid; 
    /* 기본(PC): 3열 구조. 네이버 버튼이 더 넓게(2fr), 나머지는 1fr씩 */
    grid-template-columns: 2fr 1fr 1fr; 
    gap: 10px;
    margin: 20px 16px;
    /* width: 100%; */
}

/* 네이버 지도 버튼 */
.button-layout .naver-map-btn .base-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    padding: 12px 0;
    text-decoration: none;
    color: #333;
    gap:0;
    
}


.button-layout .base-btn.wish-btn { padding:0 10px;}

/* 공통 버튼 스타일 */
.button-layout .base-btn { 
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    color: #64748b;
    font-size: 14px;
    font-weight: 500;
    padding: 12px 0;
    text-align: center;
    white-space: nowrap;
    display: flex;
    justify-content: center;
    align-items: center;
    gap:8px;
}




.naver-map-btn:hover,
.base-btn:hover
{
    background-color: #f8f9fa;
    border-color: #03c75a; /* 네이버 시그니처 컬러 */
}

.naver-icon {
    width: 18px;
    height: 18px;
    background-color: #03c75a;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    font-weight: 900;
    font-size: 10px;
    margin-right: 8px;
    font-family: sans-serif;
}

.base-btn svg {
    vertical-align: middle;
    margin-right: 4px;
    transition: all 0.3s ease;
}

/* 찜 활성화 상태 (빨간 하트) */
.base-btn.active {
    color: #ff4b4b;
    border-color: #ff4b4b;
}

.base-btn.active svg {
    fill: #ff4b4b; /* 하트 내부 채우기 */
    stroke: #ff4b4b;
}


@media screen and (max-width: 500px) {
    .button-layout {
        /* 모바일: 전체를 2열로 변경 */
        grid-template-columns: 1fr 1fr; 
    }

    .naver-map-btn {
        /* 핵심: 네이버 버튼이 1행의 1번칸부터 2번칸까지(전체) 차지 */
        grid-column: 1 / span 2; 
    }
    
    /* 찜하기와 글주소복사는 자동으로 각각 1fr씩 나눠 가짐 */
}


.map-container {
    width: 100%;
    height: 250px;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--border-color);
}


#pagination_wrap {
    display: none; /* 초기 상태 */
    justify-content: center;
    /* margin-bottom: 30px; */
    width: 100%;
}

/* 자바스크립트가 show()나 fadeIn()을 했을 때 flex로 동작하게 만듦 */
#pagination_wrap[style*="display: block"], 
#pagination_wrap[style*="display: inline-block"] {
    display: flex !important;
}

/* 하단 고정 버튼 바 */
 .bottom-bar {
            /* 항상 뷰포트 하단에 고정 (sticky가 스크롤 컨테이너 영향을 받음) */
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            width: auto;
            min-height: 75px;
            background: #fff;
            display: flex;
            padding: 12px 15px;
            /* 안전영역(safe area) 고려하여 하단 패딩 보정 */
            padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 12px);
            box-shadow: 0 -5px 15px rgba(0,0,0,0.05);
            z-index: 1000;
            border-top: 1px solid var(--border-color);

            /* 숨김 상태: 뷰포트 밖으로 내려감 */
            transform: translateY(100%);
            transition: transform 220ms ease-in-out;
            pointer-events: none;
        }

        /* 보일 때 붙이는 클래스 */
        .bottom-bar.is-visible {
            transform: translateY(0);
            pointer-events: auto;
        }

        /* 본 바가 있을 때 콘텐츠가 가려지지 않도록 body에 클래스 추가 후 여백 적용 */
        body.has-bottom-bar {
            padding-bottom: calc(75px + env(safe-area-inset-bottom, 0px));
        }


.btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    border-radius: 12px;
    font-weight: 700;
    font-size: 16px;
    transition: all 0.2s;
}

.btn-call {
    background: #fff;
    color: #333;
    border: 1px solid #ddd;
    margin-right: 8px;
}

.btn-reserve {
    background: #000;
    color: #fff;
    flex: 2; /* 예약 버튼을 더 크게 */
}

.btn:active {
    opacity: 0.7;
    transform: scale(0.98);
}
/*
.drawer_cate_list li {
flex-shrink: 0;
    padding: 8px 16px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    border: 1px solid #e2e8f0;
    background-color: #f8fafc;
    color: #475569;
}
*/


.drawer_cate_list li a {display:block;line-height:28px;padding:5px 15px;border-radius:10px;border:1px solid #ddd;color:#475569;}
#bo_cate_on {
z-index:2;background:#000000;color:#ffffff;font-weight:bold;border:1px solid #f1f5f9;
/* -webkit-box-shadow:inset 0 2px 5px rgb(33, 135, 202);
-moz-box-shadow:inset 0 2px 5px rgb(33, 135, 202);
box-shadow:inset 0 2px 5px rgb(33, 135, 202) */
}


.filter-btn {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid #f1f5f9;
    padding:10px;
    border-radius:6px;
    display:inline-flex;
}
.filter-btn:hover {
    border-color: #cbd5e1;
    background-color: #f8fafc;
    transform: translateY(-1px);
}
.filter-btn.active {
    background-color: #0f172a !important;
    color: #ffffff !important;
    border-color: #0f172a;
    box-shadow: 0 10px 15px -3px rgba(15, 23, 42, 0.15);
}    
.sub-style-list { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.sub-style-list a { border:1px solid #ddd; padding:8px 6px; width:auto; text-align:center; border-radius:6px; font-weight:600; color:#475569;font-size:13px;}


/* 드로어 배경 */
#filter_drawer_backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: none;
    z-index: 999;
    opacity: 0;
    transition: opacity 0.3s ease;
}

#filter_drawer_backdrop.show {
    display: block;
    opacity: 1;
}

/* 드로어 */
#filter_drawer {
    position: fixed;
    top: 3%;
    left: 50%;
    transform: translateX(-50%) translateY(-8px);
    width: 90%;
    max-width: 900px;
    height: auto;
    max-height: 80vh;
    background: white;
    z-index: 1000;
    transition: transform 0.28s ease, opacity 0.28s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
    overflow-y: auto;
    padding: 20px;
    border-radius: 12px;
    opacity: 0;
    display: none;
}

#filter_drawer.show {
    display: block;
    transform: translateX(-50%) translateY(0);
    opacity: 1;
}

/* 드로어 헤더 */
.drawer-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 10px;
    border-bottom: 2px solid #f1f5f9;
    padding-bottom: 15px;
}

.drawer-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: bold;
    color: #0f172a;
}

.drawer-close {
    background: none;
    border: none;
    font-size: 24px;
    cursor: pointer;
    color: #64748b;
    padding: 0;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

.drawer-close:hover {
    color: #0f172a;
    transform: rotate(90deg);
}

/* 드로어 내 필터바 */
.drawer-filter-bar {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.drawer-filter-bar p { font-size:14px; }

.filter-level-1 {
    display: flex;
    gap: 10px;
    transition: all 0.3s ease;
    flex-wrap:wrap;
    /* margin-top:30px; */
}

.filter-level-1.hide {
    display: none;
}

.filter-level-2 {
    display: none;
    /* flex-direction: column; */
    gap: 10px;
    animation: slideIn 0.3s ease;
}

.filter-level-2.show {
    display: flex;
    flex-wrap:wrap;

}

@keyframes slideIn {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.back-btn {
    background: none;
    border: none;
    font-size: 16px;
    font-weight: bold;
    color: #0f172a;
    padding: 8px 0;
    cursor: pointer;
    margin-bottom: 10px;
    text-align: left;
    transition: all 0.2s ease;
}

.back-btn:hover {
    transform: translateX(-4px);
    color: #64748b;
}

.filter-level-2 h4 {
    margin: 0 0 15px 0;
    padding-bottom: 10px;
    border-bottom: 2px solid #e2e8f0;
    color: #0f172a;
    font-size: 16px;
}

.style-link {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid #e2e8f0;
    /* padding: 12px 16px; */
    padding: 6px;
    border-radius: 8px;
    background: white;
    color: #475569;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    text-decoration: none;
    display: flex;
    align-items: center;
}

.style-link:hover {
    border-color: #cbd5e1;
    background-color: #f8fafc;
    transform: translateX(-4px);
}

.style-link i {
    opacity: 0.5;
    font-size: 12px;
}

.filter-btn {
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid #e2e8f0;
    padding: 10px 14px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: white;
    color: #475569;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    text-decoration: none;
}

.filter-btn:hover {
    border-color: #cbd5e1;
    background-color: #f8fafc;
    transform: translateX(-4px);
}

.filter-btn.active {
    background-color: #0f172a !important;
    color: #ffffff !important;
    border-color: #0f172a;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.3);
}

.sub-style-list { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.sub-style-list a { border:1px solid #ddd; padding:8px 6px; width:auto; text-align:center; border-radius:6px; font-weight:600; color:#475569;font-size:13px; }
.hair_search { border:1px solid #ddd; border-radius:25px; padding:0px 15px; margin-top:20px; }
.hair_search input {
    width: 95%;
    height:45px;
    font-size: 14px;
    color: #333;
    transition: all 0.2s ease;
}

#floating_filter_btn { display: flex; width:100%; justify-content: space-between; align-items: center;  color:#999; font-size: 16px; }
#floating_filter_btn span { line-height:45px; font-size:14px; font-weight: 500; color:#999; padding-left:10px; }
  


/* swiper */
/* 슬라이더 전체 감싸는 영역 */
/* 슬라이더의 전체 틀 (움직이지 않고 고정) */
.custom-slider {
    width: 100%;
    overflow: hidden; /* 삐져나온 뒤쪽 이미지들을 숨김 */
    position: relative;
    aspect-ratio: 1 / 1; /* 높이가 없으면 안 보일 수 있으니 비율 고정 */
    background-color: #eee;
}

/* 실제 이미지가 가로로 나열되는 트랙처럼 작동 */
.custom-slider .slide-img {
    position: absolute; /* 모든 이미지를 한 자리에 겹침 */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease-in-out; /* 이동 애니메이션 */
}

/* 초기 상태: 첫 번째 이미지를 제외한 나머지는 오른쪽에 대기 */
.custom-slider .slide-img:not(:first-child) {
    transform: translateX(100%);
}




/* 모바일 반응형 */
@media (max-width: 640px) {
    #filter_drawer {
        width: 95%;
        right: -100%;
        height:95vh;
        top:2.5%;
        max-height: 95dvh !important;
        bottom:0;
    }
    
    #floating_filter_btn {
        bottom: 20px;
        right: 20px;
        width: 100%;
        height: 45px;
        font-size: 20px;
    }
}
