@charset "utf-8";

/* VIKINGLAB 게시판 디자인된 화면 스타일 */
.vikinglab-post-list {
    display: flex;
    flex-direction: column;
    gap: 60px;
    margin: 40px 0;
    padding: 0;
}

.vikinglab-post-card {
    background: transparent;
    border: none;
    transition: all 0.3s ease;
    position: relative;
}

.vikinglab-post-card:hover {
    transform: none;
    box-shadow: none;
}

.vikinglab-post-card:hover .post-title {
    /* color: #007bff; */
}

.post-link {
    display: block;
    text-decoration: none;
    color: inherit;
    width: 100%;
}

.post-content {
    display: flex;
    align-items: flex-start;
    padding: 0;
    gap: 80px;
    min-height: 300px;
}

.post-text {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    padding: 20px 0;
}

.post-meta {
    display: flex;
    justify-content: space-between;
    margin-top: 50px;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 16px;
    flex-direction: column;
    align-content: flex-start;
}

.post-date {
    font-size: 14px;
    color: #666;
    font-weight: 400;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.post-title {
    font-size: 32px;
    font-weight: 700;
    margin: 0 0 20px 0;
    color: #000;
    line-height: 1.2;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    transition: color 0.3s ease;
}

.post-description {
    font-size: 16px;
    line-height: 1.6;
    margin: 0;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tag {
    display: inline-block;
    padding: 6px 16px;
    background: #000;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    border-radius: 20px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.post-image {
    flex: 0 0 500px;
    max-width: 1130px;
    width: 100%;
    height: auto;
    max-height: 725px;
    overflow: hidden;
    flex-shrink: 0;
    background: #f8f9fa;
    position: relative;
}

.post-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.vikinglab-post-card:hover .post-image img {
    transform: scale(1.05);
}

.post-image-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #adb5bd;
    font-size: 32px;
    transition: all 0.3s ease;
}

.vikinglab-post-card:hover .post-image-placeholder {
    background: linear-gradient(135deg, #e9ecef 0%, #dee2e6 100%);
}

.empty-posts {
    text-align: center;
    padding: 40px 20px;
    color: #7f8c8d;
}

.empty-posts p {
    font-size: 16px;
    margin: 0;
}

/* 반응형 디자인 - 디자인된 화면에 맞춤 */
@media (max-width: 1400px) {
    .post-content {
        gap: 60px;
    }
    
    .post-image {
        flex: 0 0 450px;
        max-width: 70%;
        width: 450px;
        height: 250px;
    }
    
    .post-title {
        font-size: 28px;
    }
}

@media (max-width: 1200px) {
    .post-content {
        gap: 50px;
    }
    
    .post-image {
        flex: 0 0 400px;
        max-width: 100%;
        width: 100%;
        height: 100%;
    }
    
    .post-title {
        font-size: 26px;
    }
}

@media (max-width: 992px) {
    .vikinglab-post-list {
        gap: 40px;
    }
    
    .post-content {
        flex-direction: column;
        align-items: stretch;
        gap: 30px;
    }
    
    .post-text {
        order: 2;
    }
    
    .post-image {
        order: 1;
        flex: none;
        width: 100%;
        max-width: 100%;
        height: 250px;
    }
    
    .post-meta {
        justify-content: flex-start;
        margin-bottom: 20px;
    }
    
    .post-title {
        font-size: 24px;
        margin-bottom: 16px;
    }
    
    .post-description {
        font-size: 15px;
    }
}

@media (max-width: 768px) {
    .vikinglab-post-list {
        gap: 30px;
        margin: 30px 0;
    }
    
    .post-content {
        gap: 20px;
    }
    
    .post-image {
        height: 200px;
    }
    
    .post-title {
        font-size: 22px;
        margin-bottom: 14px;
    }
    
    .post-description {
        font-size: 14px;
    }
    
    .post-date {
        font-size: 13px;
    }
    
    .tag {
        font-size: 11px;
        padding: 4px 12px;
    }
}

@media (max-width: 480px) {
    .vikinglab-post-list {
        gap: 25px;
        margin: 20px 0;
    }
    
    .post-content {
        gap: 18px;
    }
    
    .post-image {
        height: 180px;
    }
    
    .post-meta {
        margin-bottom: 16px;
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
    
    .post-title {
        font-size: 20px;
        margin-bottom: 12px;
    }
    
    .post-description {
        font-size: 13px;
    }
    
    .post-date {
        font-size: 12px;
    }
    
    .post-tags {
        gap: 6px;
    }
    
    .tag {
        font-size: 10px;
        padding: 3px 10px;
    }
}

/* 게시판 목록 */
#bo_list {position:relative;margin-bottom:20px}
#bo_list:after {display:block;visibility:hidden;clear:both;content:""}
#bo_list .td_board {width:120px;text-align:center}
#bo_list .td_chk {width:30px;text-align:center;border-top:1px solid #ecf0f1;border-bottom:1px solid #ecf0f1}
#bo_list .td_date {width:60px;text-align:center}
#bo_list .td_datetime {width:60px;text-align:center}
#bo_list .td_group {width:100px;text-align:center}
#bo_list .td_mb_id {width:100px;text-align:center}
#bo_list .td_mng {width:80px;text-align:center}
#bo_list .td_name {width:90px;text-align:left;padding:10px 0}
#bo_list .td_nick {width:100px;text-align:center}
#bo_list .td_num {width:50px;text-align:center}
#bo_list .td_num2 {width:50px;text-align:center}
#bo_list .td_numbig {width:80px;text-align:center}
#bo_list .txt_active {color:#5d910b}
#bo_list .txt_expired {color:#ccc}
#bo_list tbody tr {border-left:2px solid transparent}
#bo_list tbody tr:hover {border-left:2px solid #253dbe}
#bo_list tbody .even td {background:#fbfbfb}

#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 20px;border-radius: 8px;color: #000;background: #e4e4e4;font-weight: 500;}
#bo_cate a:focus, #bo_cate a:hover, #bo_cate a:active {text-decoration:none;background: #000;color:#fff}
#bo_cate #bo_cate_on {z-index:2;background: #ff3939;color:#fff;font-weight: 500;border: 1px solid #ff3939;}
.td_subject img {margin-left:5px}

/* 게시판 목록 공통 */
.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;color:#676e70}
.chk_box input[type="checkbox"] + label:hover {color:#2172f8}
.chk_box input[type="checkbox"] + label span {float:left;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}


#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 {margin:0;padding:0;list-style:none}
.btn_bo_user li {/* width:40px; */text-align:center;}
.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 {float:left;display:inline-block;margin-right:10px;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_tit {display:block;color:#000;font-weight:bold}
.bo_current {color:#e8180c}
#bo_list .profile_img img {border-radius:50%}
#bo_list .cnt_cmt {background:#e9eff5;color:#3a8afd;font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle}

#bo_list .bo_tit .title_icon {margin-right:2px}
#bo_list .bo_tit .fa-heart {color:#ff0000}
#bo_list .bo_tit .fa-lock {display:inline-block;line-height:14px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:middle}
#bo_list .bo_tit .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin-left:2px;font-weight:bold;vertical-align:middle}
#bo_list .bo_tit .hot_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#ff0000;background:#ffb9b9;text-align:center;border-radius:2px;vertical-align:middle}
#bo_list .bo_tit .fa-caret-right {color:#bbb}
#bo_list .bo_tit .fa-download {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#daae37;background:#ffefb9;text-align:center;border-radius:2px;margin-left:5px;vertical-align:middle}
#bo_list .bo_tit .fa-link {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#b451fd;background:#edd3fd;text-align:center;border-radius:2px;margin-left:5px;vertical-align:middle}

.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 {box-sizing:border-box;margin: 6rem;}

#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: none;line-height:20px;background:#e2eaf6;color:#3a8afd;padding:0 10px;border-radius:3px;}
#bo_v_title .bo_v_tit {display:block;font-size: 6.25rem;margin:5px 0 0;word-break:break-all}

#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: none;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 {display: flex;width: 100%;padding:0;list-style:none;word-break:break-all;flex-wrap: wrap;justify-content: flex-end;gap: 6px;}

#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;}
.bo_v_com > li {position:relative;}
.bo_v_com > li a,.bo_v_com > li button{margin:0;font-size: var(--font-size-sm);}

.bo_v_nb {position:relative;margin:20px 0;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;
-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 .btn_frmline{margin-left:20px;margin-top: -4px;font-size: 1rem;}
#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 {width: auto;/* height:40px; */border-radius:3px;appearance: auto;margin-right: 10px;}
#bo_w .btn_submit {font-size: 1rem;margin: 0;}
#bo_w .btn_cancel {border-radius:3px;font-size: 1rem;margin: 0;background: #9e9e9e;}
#bo_w .btn_confirm{display:flex;gap: 10px;align-items: center;justify-content: flex-end;}
/* VIKINGLAB 카드형 게시판 리스트 스타일 */
.vikinglab-board-list {
    /* background: #f8f9fa; */
    /* padding: 20px; */
    /* border-radius: 8px; */
}

.vikinglab-post-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.vikinglab-post-card {
    padding: 50px 0;
    /* border-radius: 12px; */
    /* overflow: hidden; */
    /* box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); */
    /* transition: all 0.3s ease; */
    border-bottom: 1px solid #000;
}

.vikinglab-post-card:hover {
    /* transform: translateY(-2px); */
    /* box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15); */
}

.post-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.post-content {
    display: flex;
    min-height: 200px;
}

.post-text {
    flex: 1;
    padding: 30px 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.post-title {
    display:flex;
    width: auto;
    font-size: 36px;
    font-weight: 700;
    color: #000;
    margin: 0 0 15px 0;
    line-height: 1.3;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.post-title span{
    position: relative;
    display: inline-block;
    overflow: hidden;
}
.post-title span::after {
    content: "";
    display: block;
    position: absolute;
    left: 0;
    bottom: 0;
    width: 0;
    height: 2px;
    background: #222;
    transition: width 0.35s cubic-bezier(0.4,0,0.2,1);
}
.post-link:hover .post-title span::after {
    width: 100%;
}
.post-description {
    font-size: 18px;
    line-height: 1.6;
    margin: 0 0 20px 0;
    flex: 1;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.post-date {
    font-size: 18px;
    color: #636161;
    margin: 0 0 15px 0;
    font-weight: 500;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.post-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.tag {
    display: inline-block;
    padding: 4px 20px;
    background: #000;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    border-radius: 15px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.post-image {
    flex: 0 0 1130px;
    background: #f0f0f0;
    position: relative;
    overflow: hidden;
}

.post-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.vikinglab-post-card:hover .post-image img {
    transform: scale(1.05);
}

.empty-posts {
    text-align: center;
    padding: 60px 20px;
    color: #999;
    font-size: 16px;
}

/* 반응형 디자인 */
@media (max-width: 768px) {
    .vikinglab-board-list {
        padding: 15px;
    }
    
    .post-content {
        flex-direction: column;
        min-height: auto;
    }
    
    .post-text {
        padding: 20px;
    }
    
    .post-title {
        font-size: 20px;
    }
    
    .post-description {
        font-size: 14px;
    }
    
    .post-image {
        flex: none;
        height: 200px;
    }
}

@media (max-width: 480px) {
    .vikinglab-post-list {
        gap: 15px;
    }
    
    .post-text {
        padding: 15px;
    }
    
    .post-title {
        font-size: 18px;
    }
    
    .post-description {
        font-size: 13px;
    }
    
    .post-image {
        height: 100%;
    }
}

/* VIKINGLAB 커스텀 필드 스타일 */
.bo_w_custom {
    margin: 30px 0;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.bo_w_custom h3 {
    margin: 0 0 20px 0;
    font-size: 18px;
    font-weight: 600;
    color: #333;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.custom_field {
    margin-bottom: 20px;
}

.custom_field:last-child {
    margin-bottom: 0;
}

.custom_field label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #555;
    font-size: 14px;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.custom_field input[type="text"],
.custom_field input[type="url"],
.custom_field input[type="date"] {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    transition: border-color 0.3s ease;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.custom_field input[type="text"]:focus,
.custom_field input[type="url"]:focus {
    outline: none;
    border-color: #007bff;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

.custom_field .frm_info {
    margin: 8px 0 0 0;
    font-size: 12px;
    color: #666;
    line-height: 1.4;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* VIKINGLAB 상세페이지 커스텀 정보 스타일 */
.vikinglab_custom_info {
    display: flex;
    margin: 0;
    padding: 0;
    border-radius: 6px;
    border: 1px solid #e9ecef;
    gap: 10px;
    align-items: center;
}

.custom_date,
.custom_tags,
.custom_tags_label {
    font-size: 1.25rem;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.custom_date:last-child,
.custom_tags:last-child {
    margin-bottom: 0;
}

.custom_date strong,
.custom_tags strong,
.custom_tags_label strong {
    color: #333;
    font-weight: 600;
    margin-right: 8px;
}

.custom_date i,
.custom_tags i,
.custom_tags_label i {
    color: #666;
    margin-right: 5px;
}

.custom_tags .tag,
.custom_tags_label .tag {
    display: inline-block;
    margin: 2px 4px 2px 0;
    padding: 2px 15px;
    background: #000;
    color: #fff;
    font-size: 1rem;
    font-weight: 500;
    border-radius: 15px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

/* VIKINGLAB 프로젝트 섹션 스타일 */
.vikinglab-project-sections {
    margin: 30px 0;
}

.project-section {
    margin-bottom: 40px;
    padding: 30px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    border: 1px solid #e9ecef;
}

.project-section h3 {
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 700;
    color: #000;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.project-section h3 i {
    margin-right: 10px;
    color: #007bff;
}

/* 동영상 섹션 */
.video-url-area {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.video-preview {
    flex: 1;
    min-height: 300px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 2px dashed #dee2e6;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.video-placeholder {
    text-align: center;
    color: #6c757d;
}

.video-placeholder i {
    font-size: 48px;
    margin-bottom: 10px;
    display: block;
}

.video-inputs {
    flex: 1;
}

.video-url-field {
    margin-bottom: 15px;
}

.video-url-field input[type="url"] {
    width: 100%;
    padding: 12px 15px;
    border: 2px solid #e9ecef;
    border-radius: 8px;
    font-size: 14px;
    transition: all 0.3s ease;
    background: #fff;
}

.video-url-field input[type="url"]:focus {
    border-color: #007bff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

.video-preview-container {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.video-preview-container video {
    max-width: 100%;
    max-height: 100%;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* 이미지 미리보기 컨테이너 */
.image-preview-container {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 10px;
}

.image-preview-container img {
    max-width: 100%;
    max-height: 100%;
    border-radius: 8px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    object-fit: contain;
}

/* 기존 이미지 정보 (텍스트만) */
.existing-image-info,
.existing-thumbnail-info {
    margin-top: 10px;
    padding: 10px;
    background: #f8f9fa;
    border-radius: 5px;
    font-size: 14px;
    color: #666;
}

/* 썸네일 미리보기 컨테이너 */
.thumbnail-preview-container {
    margin-top: 10px;
    padding: 10px;
    background: #f8f9fa;
    border-radius: 5px;
    text-align: center;
}

.thumbnail-preview-container img {
    max-width: 200px;
    height: auto;
    border: 1px solid #ddd;
    padding: 5px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* wr_3 에디터 스타일 */
.wr_3_editor {
    width: 100%;
    min-height: 200px;
}

.wr_3_editor textarea {
    width: 100%;
    min-height: 200px;
    padding: 15px;
    border: 2px solid #e9ecef;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.6;
    resize: vertical;
    transition: border-color 0.3s ease;
}

.wr_3_editor textarea:focus {
    border-color: #007bff;
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 123, 255, 0.1);
}

/* 에디터 툴바 스타일 */
.wr_3_editor .editor_toolbar {
    border: 2px solid #e9ecef;
    border-bottom: none;
    border-radius: 8px 8px 0 0;
    background: #f8f9fa;
    padding: 10px;
}

.wr_3_editor .editor_content {
    border: 2px solid #e9ecef;
    border-top: none;
    border-radius: 0 0 8px 8px;
    min-height: 200px;
}

/* 글자수 표시 스타일 */
.char_count {
    text-align: right;
    color: #666;
    font-size: 12px;
    margin-top: 5px;
    padding: 5px 10px;
    background: #f8f9fa;
    border-radius: 4px;
}

/* wr_3 내용 표시 스타일 (view 화면) */
.wr_3_content {
    line-height: 1.8;
    color: #333;
    font-size: 16px;
}

.wr_3_content p {
    margin-bottom: 15px;
}

.wr_3_content h1, .wr_3_content h2, .wr_3_content h3, .wr_3_content h4, .wr_3_content h5, .wr_3_content h6 {
    margin: 20px 0 10px 0;
    font-weight: 600;
    color: #333;
}

.wr_3_content ul, .wr_3_content ol {
    margin: 15px 0;
    padding-left: 30px;
}

.wr_3_content li {
    margin-bottom: 8px;
}

.wr_3_content blockquote {
    margin: 20px 0;
    padding: 15px 20px;
    background: #f8f9fa;
    border-left: 4px solid #007bff;
    border-radius: 0 8px 8px 0;
}

.wr_3_content img {
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    margin: 15px 0;
}

.wr_3_content table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

.wr_3_content table th,
.wr_3_content table td {
    padding: 12px;
    border: 1px solid #ddd;
    text-align: left;
}

.wr_3_content table th {
    background: #f8f9fa;
    font-weight: 600;
}

/* Before & After 섹션 */
.before-after-container {
    display: flex;
    gap: 30px;
    align-items: flex-start;
}

.before-after-images {
    flex: 1;
    display: flex;
    gap: 20px;
}

.before-image-area,
.after-image-area {
    flex: 1;
}

.before-image-area h4,
.after-image-area h4 {
    margin: 0 0 15px 0;
    font-size: 16px;
    font-weight: 600;
    color: #333;
}

.image-upload-area {
    min-height: 200px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 2px dashed #dee2e6;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
}

.image-placeholder {
    text-align: center;
    color: #6c757d;
}

.image-placeholder i {
    font-size: 32px;
    margin-bottom: 8px;
    display: block;
}

.before-after-info {
    flex: 1;
}

.info-field {
    margin-bottom: 20px;
}

.info-field label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #333;
}

.info-field input,
.info-field textarea {
    width: 100%;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 14px;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.info-field textarea {
    resize: vertical;
    min-height: 100px;
}

/* 코드 에디터 섹션 */
.code-editor-container {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    overflow: hidden;
}

.code-tabs {
    display: flex;
    background: #f8f9fa;
    border-bottom: 1px solid #e9ecef;
}

.code-tab {
    flex: 1;
    padding: 15px 20px;
    background: none;
    border: none;
    font-size: 14px;
    font-weight: 600;
    color: #6c757d;
    cursor: pointer;
    transition: all 0.3s ease;
}

.code-tab.active {
    background: #fff;
    color: #007bff;
    border-bottom: 2px solid #007bff;
}

.code-panel {
    display: none;
}

.code-panel.active {
    display: block;
}

.code-editor {
    width: 100%;
    min-height: 300px;
    padding: 20px;
    border: none;
    font-family: 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.5;
    background: #f8f9fa;
    resize: vertical;
}

/* 상세보기 스타일 */
.vikinglab-project-detail {
    margin: 30px 0;
}

.project-detail-section {
    margin-bottom: 50px;
    padding: 0;
}

.project-detail-section h2 {
    margin: 0 0 30px 0;
    font-size: 70px;
    font-weight: 700;
    color: #000;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    padding-bottom: 15px;
}

.project-detail-section h2 i {
    margin-right: 10px;
    color: #007bff;
}

/* 동영상 컨테이너 */
.video-container {
    position: relative;
    width: 100%;
    height: 0;
    padding-bottom: 56.25%; /* 16:9 비율 */
    background: #000;
    border-radius: 8px;
    overflow: hidden;
}

.video-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.video-wrapper iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* Before & After 비교 */
.before-after-comparison {
    position: relative;
    width: 100%;
    max-width: 800px;
    margin: 0 auto;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}

.before-after-comparison.has-comparison {
    background-size: cover;
    background-position: center;
    min-height: 400px;
}

.comparison-container {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 400px;
}

.comparison-image {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    width: 50%;
}

.comparison-slider {
    position: absolute;
    top: 0;
    left: 50%;
    width: 4px;
    height: 100%;
    background: #fff;
    cursor: ew-resize;
    transform: translateX(-50%);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

.slider-button {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    background: #007bff;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    cursor: ew-resize;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 16px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.slider-button::before {
    content: '⋮⋮';
    font-size: 12px;
    letter-spacing: 2px;
}

.before-after-title {
    margin: 0 0 20px 0;
    font-size: 20px;
    font-weight: 600;
    color: #333;
    text-align: center;
}

.before-after-description {
    margin-top: 20px;
    padding: 20px;
    background: #f8f9fa;
    border-radius: 8px;
    text-align: center;
}

/* 코드 블록 */
.code-display-container {
    margin-top: 20px;
}

.code-block {
    margin-bottom: 30px;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    overflow: hidden;
}

.code-block h3 {
    margin: 0;
    padding: 15px 20px;
    background: #f8f9fa;
    font-size: 16px;
    font-weight: 600;
    color: #333;
    border-bottom: 1px solid #e9ecef;
}

.code-block h3 i {
    margin-right: 8px;
}

.code-block pre {
    margin: 0;
    padding: 20px;
    background: #f8f9fa;
    overflow-x: auto;
}

.code-block code {
    font-family: 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.5;
    color: #333;
}

.code-result {
    margin-top: 30px;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    overflow: hidden;
}

.code-result h3 {
    margin: 0;
    padding: 15px 20px;
    background: #f8f9fa;
    font-size: 16px;
    font-weight: 600;
    color: #333;
    border-bottom: 1px solid #e9ecef;
}

.result-frame {
    height: 400px;
    background: #fff;
}

.result-frame iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* 프로젝트 내용 */
.project-content {
    font-size: 16px;
    line-height: 1.8;
    color: #333;
}

/* 반응형 디자인 */
@media (max-width: 992px) {
    .video-url-area,
    .before-after-container {
        flex-direction: column;
        gap: 20px;
    }
    
    .before-after-images {
        flex-direction: column;
        gap: 15px;
    }
    
    .project-section,
    .project-detail-section {
        padding: 20px;
    }
    
    .video-preview {
        min-height: 200px;
    }
}

@media (max-width: 768px) {
    .project-section,
    .project-detail-section {
        padding: 15px;
        margin-bottom: 30px;
    }
    
    .project-detail-section h2 {
        font-size: 20px;
        margin-bottom: 20px;
    }
    
    .code-tabs {
        flex-direction: column;
    }
    
    .code-tab {
        text-align: left;
    }
    
    .before-after-comparison {
        min-height: 300px;
    }
    
    .comparison-container {
        min-height: 300px;
    }
}

/* 파일 업로드 관련 스타일 */
.image-file-field {
    margin-top: 15px;
}

.image-file-field input[type="file"] {
    width: 100%;
    padding: 10px;
    border: 2px dashed #ddd;
    border-radius: 8px;
    background: #f9f9f9;
    cursor: pointer;
    transition: all 0.3s ease;
}

.image-file-field input[type="file"]:hover {
    border-color: #007cba;
    background: #f0f8ff;
}

.video-info,
.image-info {
    margin-top: 10px;
    padding: 10px;
    background: #f8f9fa;
    border-radius: 5px;
    font-size: 14px;
    color: #666;
}

.btn_download {
    display: inline-block;
    padding: 5px 10px;
    background: #007cba;
    color: white;
    text-decoration: none;
    border-radius: 4px;
    font-size: 12px;
    margin-right: 10px;
}

.btn_download:hover {
    background: #005a87;
    color: white;
}

.file-info {
    font-size: 12px;
    color: #999;
}

.current-thumbnail {
    margin-top: 15px;
    padding: 15px;
    background: #f8f9fa;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.current-thumbnail p {
    margin: 0 0 10px 0;
    font-weight: 600;
    color: #333;
}

.thumbnail-preview {
    margin-top: 15px;
    padding: 15px;
    background: #f0f8ff;
    border-radius: 8px;
    border: 1px solid #007cba;
}

.thumbnail-preview p {
    margin: 0 0 10px 0;
    font-weight: 600;
    color: #007cba;
}

/* 파일 업로드 드래그 앤 드롭 스타일 */
.image-upload-area {
    position: relative;
    min-height: 200px;
    border: 2px dashed #ddd;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f9f9f9;
    transition: all 0.3s ease;
    cursor: pointer;
}

.image-upload-area:hover {
    border-color: #007cba;
    background: #f0f8ff;
}

.image-placeholder {
    text-align: center;
    color: #999;
}

.image-placeholder i {
    font-size: 48px;
    margin-bottom: 10px;
    display: block;
}

.image-placeholder p {
    margin: 0;
    font-size: 14px;
}

/* 반응형 파일 업로드 */
@media (max-width: 768px) {
    .image-file-field input[type="file"] {
        font-size: 14px;
        padding: 8px;
    }
    
    .video-url-field input[type="url"] {
        font-size: 14px;
        padding: 10px 12px;
    }
    
    .image-upload-area {
        min-height: 150px;
    }
    
    .video-placeholder i,
    .image-placeholder i {
        font-size: 36px;
    }
    
    .current-thumbnail img,
    .thumbnail-preview img {
        max-width: 150px !important;
    }
}

/* VIKINGLAB 상세보기 스타일 */
.vikinglab-project-detail {
    margin: 0 auto;
    padding: 0;
}

/* 동영상 풀사이즈 섹션 */
.video-section-full {
    margin: 40px 0;
}

.video-container-full {
    width: 100%;
    position: relative;
    background: #000;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.video-container-full video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 16/9;
}

/* Before & After 메인 섹션 */
.before-after-main-section {
    margin: 60px 0;
    padding: 40px 0;
    /* background: #f9f9f9; */
    border-radius: 16px;
    /* border: 2px solid #e0e0e0; */
}

.before-after-main-container {
    display: flex;
    gap: 60px;
    align-items: flex-start;
    /* max-width: 1200px; */
    margin: 0 auto;
}

/* Before & After 슬라이더 컨테이너 */
.before-after-slider-container {
    flex: 1;
    min-width: 0;
}

/* Before & After 컨테이너 - 참고 사이트 스타일 */
.before-after-container {
    position: relative;
    width: 100%;
    max-width: 930px;
    margin: 0 auto;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
    background: #000;
    /* PC에서 최대 사이즈: 930px x 700px */
    aspect-ratio: 930/700;
    max-height: 700px;
}

.before-image, .after-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.before-image {
    z-index: 1;
    /* clip-path는 JavaScript에서 동적으로 설정 */
}

.after-image {
    z-index: 2;
    /* clip-path는 JavaScript에서 동적으로 설정 */
}

.before-image img, .after-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* 슬라이더 */
.slider {
    position: absolute;
    top: 0;
    left: 50%;
    width: 4px;
    height: 100%;
    background-color: #fff;
    cursor: ew-resize;
    z-index: 10;
    transform: translateX(-50%);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
}

/* 핸들 */
.handle {
    position: absolute;
    top: 50%;
    left: -15px;
    width: 30px;
    height: 30px;
    background-color: #fff;
    border: 2px solid #333;
    border-radius: 50%;
    transform: translateY(-50%);
    cursor: grab;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    transition: all 0.2s ease;
}

.handle:hover {
    transform: translateY(-50%) scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
}

.handle:active {
    cursor: grabbing;
    transform: translateY(-50%) scale(0.95);
}

/* 화살표 */
.arrow-left, .arrow-right {
    position: absolute;
    color: #333;
    font-weight: bold;
    font-size: 12px;
    user-select: none;
}

.arrow-left {
    left: 6px;
}

.arrow-right {
    right: 6px;
}

/* 라벨 */
.before-label, .after-label {
    position: absolute;
    top: 20px;
    padding: 4px 12px;
    background: rgb(77 76 76 / 70%);
    color: #fff;
    font-size: 14px;
    font-weight: 600;
    border-radius: 20px;
    z-index: 15;
    backdrop-filter: blur(10px);
}

.before-label {
    left: 20px;
}

.after-label {
    right: 20px;
}

/* 플레이스홀더 이미지 */
.placeholder-image {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    color: #999;
    font-size: 16px;
    font-weight: 500;
    border: 2px dashed #ddd;
    border-radius: 8px;
    min-height: 300px;
    text-align: center;
    padding: 20px;
    box-sizing: border-box;
}

/* Before & After 정보 컨테이너 */
.before-after-info-container {
    flex: 1;
    min-width: 0;
    padding: 20px 0;
}

.before-after-main-title {
    font-size: 32px;
    font-weight: 700;
    color: #333;
    margin: 0 0 20px 0;
    line-height: 1.3;
}

.before-after-main-description {
    font-size: 16px;
    line-height: 1.6;
    color: #666;
}

.before-after-main-description p {
    margin: 0 0 16px 0;
}

/* 목록 버튼 섹션 */
.list-button-section {
    display: flex;
    margin: 40px 0;
    text-align: center;
    justify-content: flex-end;
}

.btn-list {
    display: inline-block;
    padding: 12px 24px;
    background: #000;
    color: #fff;
    text-decoration: none;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn-list:hover {
    background: #0056b3;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 123, 255, 0.3);
}

/* 네비게이션 섹션 */
.navigation-section {
    margin: 40px 0;
}

.navigation-container {
    display: flex;
    border-top: 1px solid #000;
    border-bottom: 1px solid #000;
    flex-direction: column;
}

.nav-item {
    flex: 1;
}
.next-item{
    border-top: 1px solid #000;
}

.nav-link {
    display: flex;
    align-items: center;
    padding: 20px;
    background: #f8f9fa;
    border: 1px solid #e9ecef;
    border-radius: 8px;
    text-decoration: none;
    color: #333;
    transition: all 0.3s ease;
}

.nav-link:hover {
    background: #e9ecef;
    border-color: #007bff;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.nav-icon {
    font-size: 20px;
    color: #007bff;
    margin: 0 15px;
}

.nav-content {
    display: flex;
    min-width: 0;
    justify-content: space-between;
    padding: 15px 0 15px 50px;
}

.nav-content .nav-box{
    display:flex;
    width: auto;
    justify-content: space-between;
}

.nav-label {
    min-width: 140px;
    font-size: 1.25rem;
    color: #949595;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.nav-title {
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* 네비게이션 섹션의 sitenav__link 호버 효과 */
.nav-title.sitenav__link {
    position: relative;
    display: inline-block;
    overflow: visible;
}

.nav-title.sitenav__link::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 2px;
    background-color: #000;
    transition: width 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94);
    transform-origin: left;
}

.nav-link-none:hover .nav-title.sitenav__link::after {
    width: 100%;
}

.nav-date {
    font-size: 1.125rem;
    color: #949595;
    padding-right: 10px;
}

.next-item .nav-link {
    flex-direction: row-reverse;
}

.next-item .nav-icon {
    margin: 0 15px;
}

/* 반응형 디자인 */

/* 태블릿 사이즈 */
@media (max-width: 1024px) and (min-width: 769px) {
    .before-after-container {
        max-width: 800px;
        max-height: 600px;
        /* 태블릿에서는 약간 작은 비율 */
        aspect-ratio: 4/3;
    }
}

/* 모바일 사이즈 */
@media (max-width: 768px) {
    .vikinglab-project-detail {
        padding: 0 15px;
    }
    
    .before-after-main-container {
        flex-direction: column;
        gap: 30px;
        padding: 0 10px;
    }
    
    .before-after-container {
        max-width: none;
        max-height: none;
        border-radius: 8px;
        /* 모바일에서는 16:9 비율로 조정 */
        aspect-ratio: 16/9;
    }
    
    /* 모바일에서 슬라이더 보이도록 설정 */
    .slider {
        position: absolute;
        top: 0;
        left: 50%;
        width: 6px;
        height: 100%;
        background-color: #fff;
        cursor: ew-resize;
        z-index: 15;
        transform: translateX(-50%);
        box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
        border: 1px solid rgba(255, 255, 255, 0.3);
    }
    
    .handle {
        width: 25px;
        height: 25px;
        left: -12px;
        z-index: 20;
    }
    
    .arrow-left, .arrow-right {
        font-size: 10px;
    }
    
    .arrow-left {
        left: 4px;
    }
    
    .arrow-right {
        right: 4px;
    }
    
    .before-label, .after-label {
        top: 15px;
        padding: 6px 12px;
        font-size: 12px;
    }
    
    .before-label {
        left: 15px;
    }
    
    .after-label {
        right: 15px;
    }
    
    .before-after-main-title {
        font-size: 24px;
    }
    
    .before-after-main-description {
        font-size: 14px;
    }
    
    .navigation-container {
        flex-direction: column;
    }
    
    .nav-link {
        padding: 15px;
    }
    
    .nav-title {
        font-size: 14px;
    }
}

/* 작은 모바일 사이즈 */
@media (max-width: 480px) {
    .before-after-container {
        /* 작은 모바일에서는 더 작은 비율 */
        aspect-ratio: 3/2;
    }
    
    /* 작은 모바일에서 슬라이더 보이도록 설정 */
    .slider {
        position: absolute;
        top: 0;
        left: 50%;
        width: 5px;
        height: 100%;
        background-color: #fff;
        cursor: ew-resize;
        z-index: 15;
        transform: translateX(-50%);
        box-shadow: 0 0 12px rgba(0, 0, 0, 0.5);
        border: 1px solid rgba(255, 255, 255, 0.3);
    }
    
    .handle {
        width: 20px;
        height: 20px;
        left: -10px;
        z-index: 20;
    }
    
    .arrow-left, .arrow-right {
        font-size: 8px;
    }
    
    .arrow-left {
        left: 3px;
    }
    
    .arrow-right {
        right: 3px;
    }
    
    .before-label, .after-label {
        top: 10px;
        padding: 4px 8px;
        font-size: 10px;
    }
    
    .before-label {
        left: 10px;
    }
    
    .after-label {
        right: 10px;
    }
}

/* 파일 미리보기 스타일 */
.file-preview {
    margin-top: 10px;
    padding: 10px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #f9f9f9;
}

.file-preview img,
.file-preview video {
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* 파일 미리보기 반응형 */
@media (max-width: 768px) {
    .file-preview {
        margin-top: 8px;
        padding: 8px;
    }
    
    .file-preview img,
    .file-preview video {
        max-width: 150px !important;
        max-height: 100px !important;
    }
}

/* VIKINGLAB 최신글 스타일 */
.vikinglab-latest-container {
    width: 100%;
    /* max-width: 1200px; */
    margin: 0 auto;
    /* padding: 40px 20px; */
}

.vikinglab-latest-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 40px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e0e0e0;
}

.latest-title {
    font-size: 2rem;
    font-weight: 700;
    color: #000;
    margin: 0;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.view-all-link {
    color: #666;
    text-decoration: none;
    font-weight: 500;
    padding: 8px 16px;
    border: 1px solid #ddd;
    border-radius: 4px;
    transition: all 0.3s ease;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.view-all-link:hover {
    color: #000;
    border-color: #000;
    background-color: #f9f9f9;
}

/* 최신글 리스트는 기본 vikinglab-post-list 스타일 사용 */
.vikinglab-latest-container .vikinglab-post-list {
    /* 기본 vikinglab-post-list 스타일을 그대로 사용 */
}

/* 최신글은 기본 vikinglab-post-card 스타일을 그대로 사용 */

/* Load More 버튼 */
.latest-pagination {
    text-align: center;
    margin-top: 40px;
}

.load-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: #000;
    color: #fff;
    text-decoration: none;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
    font-family: 'Montserrat', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

.load-more-btn:hover {
    background: #333;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.load-more-btn i {
    transition: transform 0.3s ease;
}

.load-more-btn:hover i {
    transform: translateX(4px);
}

/* Empty 상태 */
.vikinglab-latest-container .empty-posts {
    text-align: center;
    padding: 60px 20px;
    color: #999;
    font-size: 16px;
}

/* 최신글 반응형 */
@media (max-width: 768px) {
    .vikinglab-latest-container {
        padding: 20px 15px;
    }
    
    .vikinglab-latest-header {
        flex-direction: column;
        gap: 15px;
        text-align: center;
        margin-bottom: 30px;
    }
    
    .latest-title {
        font-size: 1.5rem;
    }
    
    .load-more-btn {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .vikinglab-latest-container {
        padding: 15px 10px;
    }
    
    .latest-title {
        font-size: 1.25rem;
    }
}