@charset "utf-8";

:root{
    /* Philippi Church Theme */
    --kp-main:#2D6FA3;
    --kp-main-dark:#174A73;
    --kp-main-light:#71AED6;
    --kp-navy:#102F49;
    --kp-point:#9FCBE5;
    --kp-point-dark:#75AFD2;
    --kp-point-light:#D9ECF7;
    --kp-bg:#F4F9FC;
    --kp-bg2:#E7F2F8;

    /* 기존 메인 CSS와의 호환을 위한 공통 변수 */
    --in-main:var(--kp-main);
    --in-main-dark:var(--kp-main-dark);
    --in-main-light:var(--kp-main-light);
    --in-navy:var(--kp-navy);
    --in-point:var(--kp-point);
    --in-point-dark:var(--kp-point-dark);
    --in-point-light:var(--kp-point-light);
    --in-bg:var(--kp-bg);
    --in-bg2:var(--kp-bg2);
    --in-white:#FFFFFF;
    --in-text:#19364D;
    --in-text-sub:#657784;
    --in-text-light:#96A9B7;
    --in-border:#D9E7EF;
    --in-border-dark:#BCD3E1;
}

/* 공통 */
#bo_gall,
#bo_v,
#bo_w {width:100%;}

.board_video_wrap{width:100%; max-width:1400px; margin:0 auto;}
#container_title{margin:0 0 24px; font-size:32px; font-weight:700; line-height:1.3; color:var(--in-text);}
.sound_only{display:inline-block; position:absolute !important; width:1px !important; height:1px !important; overflow:hidden !important; clip:rect(1px,1px,1px,1px) !important;}

.btn_bo_user,
.btn_bo_adm,
.bo_v_nb,
.bo_v_com{margin:0; padding:0; list-style:none;}
.btn_bo_user li,
.btn_bo_adm li,
.bo_v_nb li,
.bo_v_com li{display:inline-block; vertical-align:middle;}

/* 유튜브 게시판 전용 버튼 */
.yt_btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:110px;
    height:46px;
    padding:0 18px;
    border-radius:12px;
    border:1px solid var(--in-border);
    background:var(--in-white);
    color:var(--in-text) !important;
    font-size:15px;
    font-weight:600;
    line-height:1;
    text-decoration:none !important;
    cursor:pointer;
    transition:all .2s ease;
    box-sizing:border-box;
    vertical-align:middle;
    font-family:inherit;
}

.yt_btn:hover{
    transform:translateY(-1px);
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    text-decoration:none !important;
}

.yt_btn_line{
    background:var(--in-white);
    border-color:var(--in-border);
    color:var(--in-text) !important;
}

.yt_btn_fill{
    background:var(--in-main);
    border-color:var(--in-main);
    color:var(--in-white) !important;
}

.yt_btn_fill:hover{
    background:var(--in-main-dark);
    border-color:var(--in-main-dark);
    color:var(--in-white) !important;
}

.yt_btn_soft{
    background:var(--in-bg);
    border-color:var(--in-border);
    color:var(--in-text-sub) !important;
}

.yt_btn_soft:hover{
    background:var(--in-bg2);
    border-color:var(--in-border-dark);
}

.yt_btn_danger{
    background:#fff1f1;
    border-color:#ffd1d1;
    color:#d9363e !important;
}

.yt_btn_danger:hover{
    background:#ffe7e7;
    border-color:#ffb8b8;
}

.yt_btn_input{
    appearance:none;
    -webkit-appearance:none;
}

.yt_btn_xs{
    min-width:72px;
    height:34px;
    padding:0 12px;
    border-radius:999px;
    font-size:13px;
}

.yt_btn_search{
    min-width:96px;
}

.yt_btn_autosave{
    min-width:auto;
    height:40px;
    padding:0 14px;
    font-size:14px;
}

/* 버튼 정렬 */
.btn_bo_user,
.btn_bo_adm,
.bo_v_nb,
.bo_v_com{
    margin:0;
    padding:0;
    list-style:none;
}

.btn_bo_user li,
.btn_bo_adm li,
.bo_v_nb li,
.bo_v_com li{
    display:inline-block;
    vertical-align:middle;
    margin-right:8px;
}

.btn_bo_user li:last-child,
.btn_bo_adm li:last-child,
.bo_v_nb li:last-child,
.bo_v_com li:last-child{
    margin-right:0;
}

.bo_fx{display:flex; align-items:center; justify-content:space-between; gap:16px;}
#bo_list_total{font-size:15px; color:var(--in-text-sub);}
#bo_list_total span{margin-right:10px; font-weight:600; color:var(--in-text);}
#bo_list_total strong{font-weight:600; color:var(--in-text-sub);}

#bo_cate{margin-bottom:24px;}
#bo_cate h2{position:absolute; left:-9999px; top:auto; width:1px; height:1px; overflow:hidden;}
#bo_cate ul{display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; list-style:none;}
#bo_cate li{margin:0; padding:0;}
#bo_cate a{
    display:block;
    padding:10px 16px;
    border:1px solid var(--in-border);
    border-radius:999px;
    background:var(--in-white);
    color:var(--in-text-sub);
    font-size:14px;
    line-height:1.2;
    text-decoration:none;
}
#bo_cate a:hover,
#bo_cate #bo_cate_on{
    border-color:var(--in-text);
    background:var(--in-text);
    color:var(--in-white);
    font-weight:600;
}

/* 리스트 */
#bo_gall #gall_ul{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:28px 22px;
    margin: 20px 0;
    padding:0;
    list-style:none;
}
#bo_gall .gall_li{position:relative; margin:0; padding:0; list-style:none;}
.video_card{
    overflow:hidden;
    border:1px solid var(--in-border);
    border-radius:24px;
    background:var(--in-white);
    box-shadow:0 10px 30px rgba(0,0,0,.04);
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.video_card:hover{
    transform:translateY(-6px);
    border-color:var(--in-border);
    box-shadow:0 18px 40px rgba(0,0,0,.10);
}
.video_thumb_link{display:block; text-decoration:none;}
.video_thumb{
    position:relative;
    aspect-ratio:16 / 9;
    overflow:hidden;
    background:var(--in-text);
}
.video_thumb img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .45s ease;
}
.video_card:hover .video_thumb img{transform:scale(1.05);}
.video_play_ico{
    position:absolute;
    left:50%;
    top:50%;
    width:64px;
    height:64px;
    margin:-32px 0 0 -32px;
    border-radius:50%;
    background:rgba(25,54,77,.78);
    backdrop-filter:blur(6px);
    box-shadow:0 10px 30px rgba(0,0,0,.18);
}
.video_play_ico:before{
    content:"";
    position:absolute;
    left:26px;
    top:20px;
    border-left:18px solid var(--in-white);
    border-top:12px solid transparent;
    border-bottom:12px solid transparent;
}
.video_badge{
    position:absolute;
    top:16px;
    left:16px;
    z-index:2;
    display:inline-flex;
    align-items:center;
    height:32px;
    padding:0 12px;
    border-radius:999px;
    background:rgba(25,54,77,.78);
    color:var(--in-white);
    font-size:12px;
    font-weight:700;
}
.video_badge.notice{background:#ff4d4f;}
.video_badge.cate{left:auto; right:16px; background:rgba(255,255,255,.92); color:var(--in-text);}

.video_card_body{padding:18px 18px 20px;}
.video_subject{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    min-height:3em;
    color:var(--in-text);
    font-size:18px;
    font-weight:700;
    line-height:1.5;
    text-decoration:none;
}
.video_subject:hover{color:#000; text-decoration:none;}
.video_meta,
.video_meta_sub{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-top:10px;
    color:var(--in-text-light);
    font-size:14px;
}
.video_meta_sub{margin-top:8px;}
.video_icons img{vertical-align:middle; margin-left:4px;}
.video_chk{position:absolute; top:14px; left:14px; z-index:3;}
.video_chk input{width:18px; height:18px;}
#bo_gall li.empty_list{
    grid-column:1 / -1;
    padding:90px 20px;
    border:1px solid var(--in-border);
    border-radius:24px;
    text-align:center;
    color:var(--in-text-light);
    font-size:16px;
    background:var(--in-bg);
}

/* 검색 */
#bo_sch{
    margin-top:32px;
    padding:24px;
    border:1px solid var(--in-border);
    border-radius:20px;
    background:var(--in-bg);
    text-align:center;
}
#bo_sch legend{position:absolute; left:-9999px;}
#bo_sch form{display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;}
#bo_sch select,
#bo_sch .frm_input{
    height:46px;
    padding:0 14px;
    border:1px solid var(--in-border);
    border-radius:12px;
    background:var(--in-white);
    font-size:15px;
    box-sizing:border-box;
}

/* 뷰 */
#bo_v{
    max-width:1200px !important;
    margin:0 auto !important;
}
.video_view_head{margin-bottom:24px;}
.video_view_cate{
    display:inline-flex;
    align-items:center;
    height:34px;
    padding:0 14px;
    border-radius:999px;
    background:var(--in-text);
    color:var(--in-white);
    font-size:13px;
    font-weight:700;
}
#bo_v_title{
    margin:14px 0 14px;
    font-size:34px;
    font-weight:800;
    line-height:1.35;
    color:var(--in-text);
}
#bo_v_info{
    display:flex;
    flex-wrap:wrap;
    gap:10px 18px;
    padding-bottom:0;
    border-bottom:0;
    color:var(--in-text-sub);
    font-size:15px;
}
#bo_v_info h2{position:absolute; left:-9999px;}
#bo_v_info strong{color:var(--in-text); font-weight:700;}

#bo_v_top,
#bo_v_bot{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin:24px 0;
}
.bo_v_nb li,
.bo_v_com li{margin-right:8px;}
.bo_v_com li:last-child,
.bo_v_nb li:last-child{margin-right:0;}

.video_player_section{margin:24px 0 32px;}
.video_embed{
    overflow:hidden;
    border-radius:28px;
    background:#000;
    box-shadow:0 18px 40px rgba(0,0,0,.18);
}
.youtube_embed{
    position:relative;
    width:100%;
    aspect-ratio:16 / 9;
}
.youtube_embed iframe{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}
.upload_embed{
    margin-top:20px;
    padding:0;
}
.upload_embed .video-js{
    width:100% !important;
    height:auto !important;
    aspect-ratio:16 / 9;
}

#bo_v_file,
#bo_v_link{
    margin:0 0 24px;
    padding:24px;
    border:1px solid var(--in-border);
    border-radius:20px;
    background:var(--in-white);
}
#bo_v_file h2,
#bo_v_link h2{
    margin:0 0 16px;
    font-size:20px;
    color:var(--in-text);
}
#bo_v_file ul,
#bo_v_link ul{margin:0; padding:0; list-style:none;}
#bo_v_file li,
#bo_v_link li{
    padding:14px 0;
    border-top:1px solid var(--in-bg2);
}
#bo_v_file li:first-child,
#bo_v_link li:first-child{border-top:0;}
#bo_v_file a,
#bo_v_link a{
    color:var(--in-text);
    text-decoration:none;
    font-size:16px;
    line-height:1.5;
}
#bo_v_file a strong,
#bo_v_link a strong{font-weight:700;}
.file_meta{
    display:flex;
    gap:14px;
    margin-top:8px;
    color:var(--in-text-light);
    font-size:13px;
}

#bo_v_atc{min-height:0;}
#bo_v_img{margin:0 0 24px;}
#bo_v_img img{
    max-width:100%;
    height:auto;
    margin-bottom:16px;
    border-radius:18px;
}
#bo_v_con{
    color:var(--in-text);
    font-size:17px;
    line-height:1.9;
    word-break:keep-all;
    overflow:hidden;
}
#bo_v_con img{
    max-width:100%;
    height:auto;
    border-radius:18px;
}
#bo_v_con a{color:var(--in-text); text-decoration:underline;}

#bo_v_act{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin:34px 0 0;
    text-align:center;
}
#bo_v_act .bo_v_act_gng{position:relative;}
#bo_v_act_good,
#bo_v_act_nogood{
    display:none;
    position:absolute;
    top:54px;
    left:50%;
    transform:translateX(-50%);
    min-width:180px;
    padding:12px 16px;
    border-radius:12px;
    background:var(--in-text);
    color:var(--in-white);
    font-size:14px;
}

/* 댓글 */
#bo_vc{
    margin:42px 0 22px;
    padding:28px;
    border:1px solid var(--in-border);
    border-radius:24px;
    background:var(--in-bg);
}
#bo_vc h2{margin:0 0 18px; color:var(--in-text);}
#bo_vc article{
    padding:18px 0;
    border-top:1px solid var(--in-border);
}
#bo_vc article:first-of-type{border-top:0;}
#bo_vc header{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 14px;
    margin-bottom:10px;
    color:var(--in-text-light);
    font-size:14px;
}
#bo_vc .comment_name{color:var(--in-text); font-weight:700;}
#bo_vc p{
    margin:0;
    color:var(--in-text);
    font-size:15px;
    line-height:1.8;
}
.bo_vc_act{margin-top:12px;}
.bo_vc_act li{margin-left:8px;}
.bo_vc_act{margin-top:12px;}
.bo_vc_act li{margin-left:8px;}
#bo_vc_empty{
    margin:0;
    padding:30px 0 !important;
    text-align:center;
    color:var(--in-text-light);
}
#bo_vc_w{
    margin-top:20px;
    padding-top:20px;
    border-top:1px solid var(--in-border);
}

/* 쓰기 */
#bo_w{
    max-width:1200px;
    margin:0 auto;
}
#bo_w .tbl_frm01{
    overflow:hidden;
    border:1px solid var(--in-border);
    border-radius:24px;
    background:var(--in-white);
}
#bo_w table{
    width:100%;
    border-collapse:collapse;
}
#bo_w th,
#bo_w td{
    padding:18px 20px;
    border-top:1px solid var(--in-bg2);
    vertical-align:top;
}
#bo_w tr:first-child th,
#bo_w tr:first-child td{border-top:0;}
#bo_w th{
    width:190px;
    background:var(--in-bg);
    color:var(--in-text);
    font-size:15px;
    font-weight:700;
    text-align:left;
}
#bo_w td{background:var(--in-white);}
#bo_w .frm_input,
#bo_w select,
#bo_w textarea{
    width:100%;
    max-width:100%;
    padding:12px 14px;
    border:1px solid var(--in-border);
    border-radius:12px;
    background:var(--in-white);
    color:var(--in-text);
    font-size:15px;
    box-sizing:border-box;
}
#bo_w textarea{
    min-height:160px;
    resize:vertical;
}
#bo_w .frm_file{margin-top:8px;}
#bo_w .help_txt{
    margin-top:8px;
    color:var(--in-text-light);
    font-size:13px;
    line-height:1.6;
}
.video_input_help{
    display:flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
}
.video_input_help span{
    display:inline-flex;
    align-items:center;
    height:30px;
    padding:0 10px;
    border-radius:999px;
    background:var(--in-bg);
    color:var(--in-text-sub);
    font-size:12px;
    font-weight:700;
}
#char_count_desc,
#char_count_wrap,
#char_cnt{
    color:var(--in-text-sub);
    font-size:13px;
}
#char_count_wrap{margin-top:8px; text-align:right;}
.btn_confirm{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:24px;
}
.file_del_row{margin-top:10px; color:var(--in-text-sub); font-size:13px;}

#autosave_wrapper{position:relative;}
#autosave_pop{
    display:none;
    z-index:10;
    position:absolute;
    top:54px;
    right:0;
    width:350px;
    max-height:260px;
    padding:12px;
    overflow-y:auto;
    border:1px solid var(--in-border);
    border-radius:16px;
    background:var(--in-white);
    box-shadow:0 18px 40px rgba(0,0,0,.1);
}
#autosave_pop ul{margin:10px 0; padding:0; list-style:none;}
#autosave_pop li{padding:8px 0; border-top:1px solid var(--in-bg2);}
#autosave_pop li:first-child{border-top:0;}

/* video.js 살짝 정리 */
.video-js{
    width:100% !important;
    max-width:100%;
}
.vjs-default-skin .vjs-big-play-button{
    left:50% !important;
    top:50% !important;
    transform:translate(-50%, -50%);
    margin:0 !important;
    border-radius:999px !important;
}
.vjs-default-skin .vjs-control-bar{
    background:rgba(16,47,73,.78) !important;
}

/* 반응형 */
@media (max-width: 1200px){
    #bo_gall #gall_ul{grid-template-columns:repeat(3, minmax(0, 1fr));}
}

@media (max-width: 991px){
    #container_title{font-size:28px;}
    #bo_v_title{font-size:28px;}
    #bo_gall #gall_ul{grid-template-columns:repeat(2, minmax(0, 1fr));}
    .bo_fx,
    #bo_v_top,
    #bo_v_bot{
        flex-direction:column;
        align-items:flex-start;
    }
    #bo_w th,
    #bo_w td{
        display:block;
        width:100%;
    }
    #bo_w th{padding-bottom:10px;}
    #bo_w td{padding-top:0;}
}

@media (max-width: 767px){
    .board_video_wrap{padding:12px 0 60px;}
    #container_title{margin-bottom:18px; font-size:24px;}
    #bo_gall #gall_ul{grid-template-columns:1fr; gap:18px;}
    .video_card_body{padding:16px;}
    .video_subject{font-size:17px;}
    #bo_v_title{font-size:24px;}
    #bo_v_info{font-size:14px;}
    #bo_v_file,
    #bo_v_link,
    #bo_vc{padding:18px;}
    #bo_sch{padding:18px;}
    #bo_sch form{flex-direction:column;}
    #bo_sch select,
    #bo_sch .frm_input,
    .yt_btn_search{width:100%;}
    .btn_confirm{flex-direction:column;}
    .yt_btn,
    .yt_btn_input{width:100%;}
}