



/*------------------------------------------------------------------------------*/
/* 1. reset */
/*------------------------------------------------------------------------------*/
/* 2026-06-29: 페이지 이동 시 헤더 좌우 흔들림 방지 — 교육사이트 동등 패턴
   · overflow-x:hidden  → 가로 스크롤 차단 (요소 폭 변동 시 가로 밀림 방지)
   · overflow-y:scroll  → 페이지 콘텐츠 길이 차이에 관계없이 스크롤바 자리 고정 → viewport 폭 일정 */
html {font-size: 62.5%; -webkit-text-size-adjust: none; -moz-text-size-adjust: none; -ms-text-size-adjust: none; -o-text-size-adjust: none; overflow-x: hidden; overflow-y: scroll;}
body {font-size: 1.6rem;position: relative;line-height: 1.3; overflow-x: hidden;}
:lang(ko) { word-break:keep-all }
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, em, pre, code, form, fieldset, legend, address, caption, cite, p, blockquote, th, td, input, select, textarea, button, figure, figcaption {margin:0;padding:0;box-sizing:border-box;font-family:'Pretendard', 'Pretendard Fallback', 'Malgun Gothic', sans-serif;color:#333;font-weight:500;font-style:normal;letter-spacing:-0.3px;}
table {border-collapse:collapse;width:100%;}
caption, legend, caption *, legend * {font-size:0;overflow:hidden;clip:rect(0, 0, 0, 0);width:1px;height:1px;background:transparent;}
h1, h2, h3, h4, h5, h6 {font-size:2.8rem;line-height:1;}
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {display:block}
ul, ol, dl, dt, dd {margin:0;padding:0;list-style:none}
p {margin:0;padding:0;word-break:keep-all}
fieldset {border:solid 0px rgb(77, 61, 61);padding:0;}
legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden}
figure + figure {margin-left:20px;}
figcaption {color:#626262;font-size:1.5rem;text-align:center;}
label, input, button, select, img, span, p {vertical-align:middle;background: none;}
img{margin: 0; padding: 0;}
input[type="submit"],
input[type="button"],
button {cursor:pointer}
input,
button {margin:0;padding:0;font-size:1.6rem;border:0;}
::-webkit-input-placeholder {color:#777;font-weight:400;}
::-moz-placeholder {color:#777;font-weight:400;}
:-ms-input-placeholder {color:#777;font-weight:400;}
:-moz-placeholder {color:#777;font-weight:400;}
/*select::-ms-expand {display:none;display:hidden;}*/

a {color:#1b1b1b;text-decoration:none;}
/*a:link,a:visited,a:hover,a:active {outline: 1px solid #000; outline-offset: -5px;}*/

a:focus-visible {outline: 1px solid #000;}
*, :after, :before {-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
/*------------------------------------------------------------------------------*/

.sr_only {overflow:hidden !important;position:absolute;width:1px;height:1px;margin:0;margin-left:-1px;padding:0;clip:rect(0,0,0,0);}
.hide{display:none;}
.clearfix:after {display:block;content:'';clear:both;}
.flex {display: flex; flex-wrap: wrap;}
.flex > .half {flex-basis: 49.5%;}
.flex > .third {flex-basis: 32.5%;}
.flex > .fifth {flex-basis: 17%;}

.display_ib{display: inline-block;}
.text_l{text-align: left !important;}
.text_c{text-align: center !important;}
.f-left {float:left;}
.f-right {float:right;}
.borno_l{border-left: 0 none !important;}
.borno_r{border-right: 0 none !important;}
.borno_t{border-top: 0 none !important;}
.borno_b{border-bottom: 0 none !important;}
.gm{font-family: 'Gmarket';}
.ns{font-family: 'NotoSerif';}
.txt_blue{color:#053291;}
.br_line{border-right:1px solid #e6e9ef !important;}


/*skipNav*/
#skipNav {width:100%; position:absolute; top:0; left:0; z-index:10000; }
#skipNav a {display:block; width:100%; line-height:50px; text-align:center; background-color:#214aa6; color:#fff; font-weight:700; font-size:18px; height:0; overflow:hidden; }
#skipNav a:focus {height:50px; }


/*------------------------------------------------------------------------------*/
/* text align */
/*------------------------------------------------------------------------------*/
/*text-align*/
.tx_center{text-align: center !important;}
.tx_left{text-align: left !important;}

.mt0 {margin-top:0px !important;} .mt5 {margin-top:5px !important;} .mt10 {margin-top:10px !important;} .mt15 {margin-top:15px !important;} .mt20 {margin-top:20px !important;} .mt25 {margin-top:25px !important;} .mt30 {margin-top:30px !important;} .mt35 {margin-top:35px !important;} .mt40 {margin-top:40px !important;} .mt45 {margin-top:45px !important;} .mt50 {margin-top:50px !important;}
.mr0 {margin-right:0px !important;} .mr5 {margin-right:5px !important;} .mr10 {margin-right:10px !important;} .mr15 {margin-right:15px !important;} .mr20 {margin-right:20px !important;} .mr25 {margin-right:25px !important;} .mr30 {margin-right:30px !important;} .mr35 {margin-right:35px !important;} .mr40 {margin-right:40px !important;} .mr45 {margin-right:45px !important;} .mr50 {margin-right:50px !important;}
.mb0 {margin-bottom:0px;} .mb5 {margin-bottom:5px;} .mb10 {margin-bottom:10px;} .mb15 {margin-bottom:15px;} .mb20 {margin-bottom:20px;} .mb25 {margin-bottom:25px;} .mb30 {margin-bottom:30px;} .mb35 {margin-bottom:35px;} .mb40 {margin-bottom:40px;} .mb45 {margin-bottom:45px;} .mb50 {margin-bottom:50px;} .mb65 {margin-bottom:65px;} .mb80 {margin-bottom:80px;}
.ml0 {margin-left:0px;} .ml5 {margin-left:5px;} .ml10 {margin-left:10px;} .ml15 {margin-left:15px;} .ml20 {margin-left:20px;} .ml25 {margin-left:25px;} .ml30 {margin-left:30px;} .ml35 {margin-left:35px;} .ml40 {margin-left:40px;} .ml45 {margin-left:45px;} .ml50 {margin-left:50px;}
.pd0{ padding: 0;}

.p20{padding: 20px;} .p30{padding: 30px;}
.pt0 {padding-top:0px;} .pt5 {padding-top:5px;} .pt10 {padding-top:10px;} .pt15 {padding-top:15px;} .pt20 {padding-top:20px;} .pt25 {padding-top:25px;} .pt30 {padding-top:30px;} .pt35 {padding-top:35px;} .pt40 {padding-top:40px;} .pt45 {padding-top:45px;} .pt50 {padding-top:50px;}
.pr0 {padding-right:0px;} .pr5 {padding-right:5px ;} .pr10 {padding-right:10px ;} .pr15 {padding-right:15px;} .pr20 {padding-right:20px;} .pr25 {padding-right:25px ;} .pr30 {padding-right:30px ;} .pr35 {padding-right:35px;} .pr40 {padding-right:40px;} .pr45 {padding-right:45px;} .pr50 {padding-right:50px;}
.pb0 {padding-bottom:0px;} .pb5 {padding-bottom:5px;} .pb10 {padding-bottom:10px;} .pb15 {padding-bottom:15px;} .pb20 {padding-bottom:20px;} .pb25 {padding-bottom:25px;} .pb30 {padding-bottom:30px;} .pb35 {padding-bottom:35px;} .pb40 {padding-bottom:40px;} .pb45 {padding-bottom:45px;} .pb50 {padding-bottom:50px;} 
.pl0 {padding-left:0px;} .pl5 {padding-left:5px;} .pl10 {padding-left:10px;} .pl15 {padding-left:15px;} .pl20 {padding-left:20px;} .pl25 {padding-left:25px;} .pl30 {padding-left:30px;} .pl35 {padding-left:35px;} .pl40 {padding-left:40px;} .pl45 {padding-left:45px;} .pl50 {padding-left:50px;}
.f11{font-size: 1.1rem;}
.f18{font-size: 1.8rem;}
.f20{font-size: 2rem;}

/*inner*/
.inner{width: 1400px; margin:0 auto;}

/*list_공통*/
.dot_list > li{position: relative;}
.dot_list > li::before{position: absolute;content: "";display: inline-block;}
/*list_.*/
.dot_list > li{padding-left: 10px;color: #444;}
.dot_list > li ~ li{margin-top: 10px;}
.dot_list > li::before{top: 9px; left:0; width: 3px; height: 3px;background-color: #333333;border-radius: 10px;}
.dot_list li > ul{margin-top: 10px;}
.ol_list{ list-style:none; margin:0; padding:0; }
.ol_list > li{ position:relative; padding-left:20px; color:#555; font-size:1.6rem; line-height:1.8; word-break:keep-all; }
.ol_list > li::before{ position:absolute; left:0; top:0; font-weight:600; color:#555; }
.ol_list > li:nth-child(1)::before{content:"①";}
.ol_list > li:nth-child(2)::before{content:"②";}
.ol_list > li:nth-child(3)::before{content:"③";}
.ol_list > li:nth-child(4)::before{content:"④";}
.ol_list > li:nth-child(5)::before{content:"⑤";}
.ol_list > li:nth-child(6)::before{content:"⑥";}
.ol_list > li:nth-child(7)::before{content:"⑦";}
.ol_list > li:nth-child(8)::before{content:"⑧";}
.ol_list > li:nth-child(9)::before{content:"⑨";}
.ol_list > li:nth-child(10)::before{content:"⑩";}

/* 가나다 리스트 */
.ko_list{margin:0; padding:0; list-style:none;}
.ko_list > li{ position:relative; padding-left:1.5em; color:#555; font-size:1.6rem; line-height:1.9; word-break:keep-all; }
.ko_list > li::before{ position:absolute; left:0; top:0; color:#555; font-weight:500; }
.ko_list > li:nth-child(1)::before{content:"가.";}
.ko_list > li:nth-child(2)::before{content:"나.";}
.ko_list > li:nth-child(3)::before{content:"다.";}
.ko_list > li:nth-child(4)::before{content:"라.";}
.ko_list > li:nth-child(5)::before{content:"마.";}
.ko_list > li:nth-child(6)::before{content:"바.";}
.ko_list > li:nth-child(7)::before{content:"사.";}
.ko_list > li:nth-child(8)::before{content:"아.";}
.ko_list > li:nth-child(9)::before{content:"자.";}
.ko_list > li:nth-child(10)::before{content:"차.";}
.ko_list > li + li{margin-top:4px;}

/* 1) 2) 3) 리스트 */
.num_paren_list{margin:0; padding:0; list-style:none;}
.num_paren_list > li{ position:relative; padding-left:20px; color:#555; font-size:1.6rem; line-height:1.9; word-break:keep-all; }
.num_paren_list > li::before{ position:absolute; left:0; top:0; color:#555; font-weight:500; }
.num_paren_list > li:nth-child(1)::before{content:"1)";}
.num_paren_list > li:nth-child(2)::before{content:"2)";}
.num_paren_list > li:nth-child(3)::before{content:"3)";}
.num_paren_list > li:nth-child(4)::before{content:"4)";}
.num_paren_list > li:nth-child(5)::before{content:"5)";}
.num_paren_list > li:nth-child(6)::before{content:"6)";}
.num_paren_list > li:nth-child(7)::before{content:"7)";}
.num_paren_list > li:nth-child(8)::before{content:"8)";}
.num_paren_list > li:nth-child(9)::before{content:"9)";}
.num_paren_list > li:nth-child(10)::before{content:"10)";}
.num_paren_list > li + li{margin-top:2px;}

/* ※ 리스트 */
.cap_list{margin:0; padding:0; list-style:none;}
.cap_list > li{ position:relative; padding-left:20px; color:#555; font-size:1.6rem; line-height:1.9; word-break:keep-all; }
.cap_list > li::before{ position:absolute; left:0; top:0; color:#555; font-weight:500; content: '※'; }

/*------------------------------------------------------------------------------*/
/* width */
/*------------------------------------------------------------------------------*/
.wid50{width: 50% !important;}
.wid100{width: 100% !important;}
.wid100{width: 100% !important;}
.w_100{width: 100px !important;}
.w_200{width:200px !important;}
/*------------------------------------------------------------------------------*/
/* color */
/*------------------------------------------------------------------------------*/
.red{color:red !important;}
.t_red{color:#ef001c;}
.blue{color:#00579b !important;}
.blue_btn{background-color: #183370;}
.dg_btn{background-color:#444444;}
.yellow{color:#ffff00;}

/*------------------------------------------------------------------------------*/
/* text_align*/
/*------------------------------------------------------------------------------*/
.text_left{text-align: left !important;}
.text_right{text-align: right !important;}
.text_center{text-align: center !important;}

/*------------------------------------------------------------------------------*/
/* header */
/*------------------------------------------------------------------------------*/
.site_header {width: 100%;}
.header_util {border-bottom: 1px solid #e6e9ef; background: #f9f9f9;}
/* 옵션 2 (2026-06-10) — grid 2컬럼 잠금: 좌(util_links) 1fr 남는 공간 차지, 우(member_links) auto 끝 고정 */
.header_util_inner {display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 12px; min-height: 40px;}
.header_util_links,
.header_member_links {display: flex; align-items: center; flex-wrap: wrap;}
.header_util_link,
.header_member_link {font-size: 1.4rem; color: #333; line-height: 1; padding: 10px 10px; position: relative;}
.header_util_link.is_now{text-decoration: underline; font-weight: 700;}
.header_util_link + .header_util_link::before{ content: ""; position: absolute; left: 0; top: 50%; width: 1px; height: 100%; background: #d9dce3; transform: translateY(-50%); }
.header_member_link + .header_member_link::before { content: ""; position: absolute; left: -2px; top: 50%; width: 3px; height: 3px; border-radius: 50%; background: #b3b3b3; transform: translateY(-50%); }
.header_gnb {background: #fff;  border-bottom: 1px solid #e6e6e6;}
/*
 * .header_gnb_inner — grid 3컬럼 (로고 | 가운데 메뉴 | 검색버튼) (2026-06-10)
 * flex space-between 에서는 자식 폭 변동(폰트 swap/이미지 로드)이 메뉴 위치를
 * 우측 ↔ 좌측으로 흔들리게 함. grid template-columns 로 영역 폭을 명시적으로
 * 잠그면 자식 내부가 변해도 메뉴 위치는 고정.
 */
.header_gnb_inner {display: grid; grid-template-columns: 160px 1fr 48px; align-items: center; gap: 24px; min-height: 100px;}
.header_logo {font-size: 0; line-height: 0;}
.header_logo_link {display: inline-flex; align-items: center;}
/* width/height 명시 — 이미지 로드 전후 폭 변동(=메뉴 위치 이동) 방지 */
.header_logo_img {display: block; width: 134px; height: 68px;}
.header_nav {min-width: 0; display: flex; justify-content: center;}
/* PC 에서 모바일 햄버거 버튼 명시 숨김 — paint 흔들림 방지 */
.mnav_btn { display: none; }
/* 퍼블 동기화 (2026-06-11) — gap 50px + 로고와 메뉴 사이 60px 마진 */
.gnb_list{ display: flex; justify-content: center; align-items: center; gap: 50px; margin-left: 60px; }
.gnb_link{ font-size: 2.3rem; font-weight: 600; width: auto; padding: 0 6px; display: inline-flex; align-items: center; justify-content: center; height: 100px; position: relative; text-align: center;}
.gnb_link:hover {color: #1078cc;}
.gnb_link[aria-current="page"] {color: #1078cc; font-weight: 700;}
.gnb_link[aria-current="page"]::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 3px; background: #1078cc; }
.gnb_item.is_hover .gnb_link { color: #1078cc; }
.gnb_item.is_hover .gnb_link::after { content: ""; position: absolute; left: 0; bottom: 0; width: 100%; height: 3px; background: #1078cc; }
.gnb_link[aria-current="page"] {color: #1078cc; font-weight: 700;}
.gnb_link[aria-current="page"]::after { content: ""; position: absolute; left: 0; bottom: -10px; width: 100%; height: 3px; background: #1078cc; }
.gnb_link:focus-visible,
.header_util_link:focus-visible,
.header_member_link:focus-visible {outline-offset: 2px;}
.header_mem_ico{display: inline-block; width: 17px; height: 21px; background: url(../images/common/header_member_icon.png)no-repeat;}
.header_mem_ico.blk{display: inline-block; width: 17px; height: 21px; background: url(../images/common/header_member_blk_icon.png)no-repeat;}
.header_mem_badge { position: absolute; top: 4px; right: 3px; min-width: 15px; height: 15px; border-radius: 50%; background: #ff3600; color: #fff; font-size: 0.9rem; font-style: normal; font-weight: 700; line-height: 15px; text-align: center; padding: 0 3px; letter-spacing: 0; pointer-events: none;
}
/*------------------------------------------------------------------------------*/
/* 알림 팝업                                                                     */
/*------------------------------------------------------------------------------*/
.noti_btn { background: none; border: none; cursor: pointer; }
.noti_wrap { position: relative; }
.noti_popup { position: absolute; top: calc(100% + 10px); left:0; width: 400px; background: #fff; border-radius: 15px; box-shadow: 0 6px 24px rgba(0, 0, 0, 0.13); z-index: 500; overflow: hidden; padding:20px; }
.noti_popup_head { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid #e6e9ef; padding-bottom: 20px;}
.noti_popup_title { font-size: 1.8rem; font-weight: 700; color: #111; letter-spacing: -0.5px; }
.noti_popup_close { display: inline-flex; align-items: center; justify-content: center; background: none; border: none; cursor: pointer; padding: 2px; border-radius: 4px; }
.noti_popup_close:focus-visible { outline: 2px solid #0059de; outline-offset: 2px; }
.noti_tabs { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 15px;}
.noti_tab { display: inline-flex; align-items: center; justify-content: center; height: 32px; padding: 0 14px; border-radius: 16px; background: #ebf0f8; color: #6b7a99; font-size: 1.4rem; font-weight: 500; border: none; cursor: pointer; letter-spacing: -0.3px; transition: background 0.15s, color 0.15s; }
.noti_tab.is_active,
.noti_tab[aria-selected="true"] { background: #0059de; color: #fff; }
.noti_tab:focus-visible { outline: 2px solid #0059de; outline-offset: 2px; }
.noti_popup_body { max-height: 320px; overflow-y: auto; }

/* 알림 아이템 */
.noti_item {background: #f0f0f0; border-radius: 10px; padding:15px; margin-top: 15px;}
.noti_item + .noti_item { margin-top: 6px; } 
.noti_item_cate { display: block; font-size: 1.3rem; font-weight: 700; margin-bottom: 4px; }
.noti_cate_edu  { color: #2a9d4e; }
.noti_cate_fee  { color: #c28640; }
.noti_cate_notice { color: #333; }
.noti_cate_license { color: #0059de; }
.noti_item_text { font-size: 1.4rem; color: #444; line-height: 1.5; letter-spacing: -0.3px; }
.noti_item_date { display: block; margin-top: 6px; font-size: 1.2rem; color: #888; letter-spacing: -0.3px; }
a.noti_item { display: block; text-decoration: none; }
a.noti_item:hover { background: #e6e6e6; }
a.noti_item.is_unread { border-left: 3px solid #c61b3d; }
a.noti_item.is_unread .noti_item_text { font-weight: 700; color: #222; }
.noti_more_link { display: block; margin-top: 12px; padding: 10px 0; text-align: center; font-size: 1.3rem; color: #555; border-top: 1px solid #e5e5e5; text-decoration: none; }
.noti_more_link:hover { color: #c61b3d; }
.noti_empty { padding: 24px 20px; text-align: center; font-size: 1.4rem; color: #999; letter-spacing: -0.3px; }

/* -------------------------------------------------------*/
/* 알림 팝업 반응형                                         */
/* -------------------------------------------------------*/

/* 1300px 이하 : 팝업이 뷰포트 오른쪽 밖으로 나가지 않도록 우측 정렬 */
@media (max-width: 1300px) {
    .noti_popup {
        left: auto;
        right: 0;
    }
}

/* 태블릿 1024px */
@media (max-width: 1024px) {
    .noti_popup {
        width: 360px;
        left: auto;
        right: 0;
    }
}

/* 모바일 768px */
@media (max-width: 768px) {
    .noti_popup {
        width: 320px;
        left: auto;
        right: 0;
        padding: 16px;
        border-radius: 12px;
        top: calc(100% + 6px);
    }
    .noti_popup_head {
        padding-bottom: 14px;
    }
    .noti_tabs {
        gap: 5px;
        margin-top: 12px;
    }
    .noti_tab {
        height: 28px;
        padding: 0 10px;
        font-size: 1.3rem;
    }
    .noti_popup_body {
        max-height: 260px;
    }
    .noti_item {
        padding: 12px;
        margin-top: 10px;
    }
    .noti_item_cate {
        font-size: 1.2rem;
    }
    .noti_item_text {
        font-size: 1.3rem;
    }
}

/* 600px 이하 : fixed로 전환, 뷰포트 기준 전체 너비 */
@media (max-width: 600px) {
    .noti_popup {
        position: fixed;
        top: 42px; /* util 높이(40px) + 2px 간격 */
        left: 10px;
        right: 10px;
        width: auto;
        padding: 16px;
        border-radius: 12px;
        max-height: calc(100dvh - 60px);
        overflow-y: auto;
    }
    .noti_popup_title {
        font-size: 1.6rem;
    }
    .noti_popup_head {
        padding-bottom: 14px;
    }
    .noti_tabs {
        gap: 6px;
        margin-top: 12px;
        flex-wrap: nowrap; /* 탭 한 줄 고정 */
    }
    .noti_tab {
        flex: 1; /* 탭 균등 배분 */
        height: 30px;
        padding: 0 6px;
        font-size: 1.2rem;
        white-space: nowrap;
    }
    .noti_popup_body {
        max-height: none;
    }
    .noti_item {
        padding: 12px;
        margin-top: 10px;
    }
    .noti_item_cate {
        font-size: 1.2rem;
    }
    .noti_item_text {
        font-size: 1.3rem;
    }
    .noti_empty {
        padding: 20px 0;
        font-size: 1.3rem;
    }
}

/* 소형 모바일 480px */
@media (max-width: 480px) {
    .noti_popup {
        left: 8px;
        right: 8px;
        padding: 14px;
    }
    .noti_tab {
        font-size: 1.1rem;
        height: 28px;
    }
    .noti_empty {
        padding: 20px 0;
        font-size: 1.3rem;
    }
}

/*------------------------------------------------------------------------------*/
/* mega menu (2depth) - PC : FULL OPEN TYPE  (퍼블 sub01_01_01.html 기준)           */
/*------------------------------------------------------------------------------*/
.header_gnb { position: relative; }
.gnb_mega_panel { position: absolute; left: 0; top: 100%; width: 100%; background: #fff; border-bottom: 1px solid #e4e7f0; box-shadow: 0 12px 32px rgba(16,40,80,0.10); z-index: 80; visibility: hidden; opacity: 0; transform: translateY(-6px); transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s; pointer-events: none; }
.header_gnb.is_mega_open .gnb_mega_panel { visibility: visible; opacity: 1; transform: translateY(0); pointer-events: auto; }
.gnb_mega_inner { display: flex; align-items: stretch; width: 1400px; margin: 0 auto; }
.gnb_mega_left { width: 280px; flex-shrink: 0; background: #2366d6; position: relative; display: flex; flex-direction: column; }
.gnb_mega_left::before { content: ''; position: absolute; top: 0; bottom: 0; right: 100%; width: 100vw; background: #2366d6; }
.gnb_left_item { display: none; flex-direction: column; padding: 28px 30px 40px 0; flex: 1; box-sizing: border-box; }
.gnb_left_item.is_active { display: flex; }
.gnb_left_hd { margin-bottom: 16px; }
.gnb_left_title { font-size: 2.8rem; color: #fff; font-weight: 700; line-height: 1.2; }
.gnb_left_desc { font-size: 1.5rem; color: #b7d2ff; line-height: 1.8; }
.gnb_mega_right { flex: 1; min-width: 0; border-left: 1px solid #e9e9e9; }
.gnb_mega_col { display: none; }
.gnb_mega_col.is_active { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; padding: 20px 24px; align-content: flex-start; position: relative; min-height: 180px; }
.gnb_mega_col.is_active::before,
.gnb_mega_col.is_active::after { content: ''; position: absolute; top: 0; bottom: 0; width: 1px; background: #e9e9e9; pointer-events: none; }
.gnb_mega_col.is_active::before { left: calc(33.75%); }
.gnb_mega_col.is_active::after { left: calc(66.25%); }
.gnb_dep2_item { display: flex; flex-direction: column; }
.gnb_dep2_box { display: flex; align-items: center; justify-content: space-between; background: #ececec; border-radius: 10px; padding: 10px 12px; text-decoration: none; margin-bottom: 8px; min-height: 44px; transition: background 0.15s; }
.gnb_dep2_box:hover { background: #2366d6; }
.gnb_dep2_name { font-size: 1.7rem; color: #111; font-weight: 600; overflow: hidden; text-overflow: ellipsis; transition: color 0.15s; }
.gnb_dep2_box:hover .gnb_dep2_name { color: #fff; }
.gnb_dep2_icon { width: 20px; height: 20px; border-radius: 50%; background: #fff; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.gnb_dep2_icon img { display: block; max-width: none; }
.gnb_dep2_icon .icon_hover { display: none; }
.gnb_dep2_box:hover .gnb_dep2_icon { background: #fff; }
.gnb_dep2_box:hover .icon_default { display: none; }
.gnb_dep2_box:hover .icon_hover { display: block; }
.gnb_depth3_list { margin: 0; padding: 0; list-style: none; }
.gnb_depth3_link { display: block; font-size: 1.5rem; color: #444; padding: 4px 0 4px 14px; position: relative; line-height: 1.5; text-decoration: none; transition: color 0.15s; }
.gnb_depth3_link::before { content: "·"; position: absolute; left: 0; top: 2px; color: #2366d6; font-size: 1.8rem; line-height: 1.4; }
.gnb_depth3_link:hover { color: #2366d6; }

/*------------------------------------------------------------------------------*/
/* 탭기능 */
/*------------------------------------------------------------------------------*/
.board_tabs{ margin-top: 60px; }
.board_tabs_list{ display:flex; align-items: stretch; border: 1px solid #d9d9d9; border-radius: 10px; overflow: hidden; background:#f5f5f5; }
.board_tabs_item{ flex: 1 1 0; }
.board_tab{ display:flex; align-items:center; justify-content:center; height: 60px; padding: 0 14px; font-size: 1.7rem; font-weight: 600; color:#444; background: transparent; position: relative; }
.board_tabs_item + .board_tabs_item .board_tab::before{ content:""; position:absolute; left:0; top: 50%; width:1px; height: 18px; background:#d0d0d0; transform: translateY(-50%); }
.board_tab.is_active,
.board_tab[aria-selected="true"]{ background:#2a4ea4; color:#fff; border-radius: 10px;}

/* active일 때 옆 구분선 숨김(파란 탭이 깔끔하게) */
.board_tabs_item + .board_tabs_item .board_tab[aria-selected="true"]::before,
.board_tabs_item + .board_tabs_item .board_tab.is_active::before{ opacity: 0; }

/* hover/focus */
.board_tab:hover{ text-decoration: underline; text-underline-offset: 3px; }
.board_tab[aria-selected="true"]:hover,
.board_tab.is_active:hover{ text-decoration: none; }
.board_tab:focus-visible{ outline: 2px solid #000; outline-offset: -2px; }



/*------------------------------------------------------------------------------*/
/* 공통 검색창 */
/*------------------------------------------------------------------------------*/
.boardsearch{ padding: 30px 0; }
.boardsearch_inner{ display:flex; align-items:center; justify-content: space-between; gap: 20px; }
.boardsearch_info{ font-size: 1.6rem; color:#555; }
.boardsearch_total strong{ font-weight: 600; color:#222; }
.boardsearch_page{ margin-left: 6px; letter-spacing: 0.7px; }
.boardsearch_form fieldset{ display:flex; align-items:center; gap: 8px; border:0; padding:0; margin:0; }
.boardsearch_select{width: 160px; height: 45px; padding: 0 10px; border:1px solid #dcdcdc; border-radius: 5px; font-size: 1.6rem; background:#fff; box-sizing: border-box;}
.boardsearch_select2{width: 120px; height: 45px; padding: 0 10px; border:1px solid #dcdcdc; border-radius: 5px; font-size: 1.6rem; background:#fff; box-sizing: border-box;}
.boardsearch_input{ width: 230px; height: 45px; padding: 0 12px; border:1px solid #dcdcdc; font-size: 1.5rem; box-sizing: border-box;   border-radius: 5px 0 0 5px;}
.boardsearch_keyword{ display:flex; align-items:center; }
.boardsearch_btn{ display:inline-flex; align-items:center; justify-content:center; height: 45px; padding: 0 16px; background:#333333; color:#fff; font-size: 1.6rem;   border-radius: 0 5px 5px 0;   box-sizing: border-box;}
.boardsearch_btn:hover{ background:#2a2a2a; }
.boardsearch_btn:focus-visible{ outline-offset: 2px; }

/*------------------------------------------------------------------------------*/
/* 공통 텍스트박스 */
/*------------------------------------------------------------------------------*/
.txt_box_common{box-sizing: border-box; padding:30px; background-color:#f9f9f9; border-radius: 15px; border:1px solid #e1e1e1; margin-top: 25px; overflow-y:auto;  height:500px;} 
.txt_box_common::-webkit-scrollbar{ width:6px; }
.txt_box_common::-webkit-scrollbar-thumb{ background:#c9ced6; border-radius:10px; }
.txt_box_common::-webkit-scrollbar-track{ background:transparent; }
.txt_box_text{font-size: 1.6rem; color:#444; margin:5px 0;}
.txt_box_tit{font-size: 1.9rem; color:#222; font-weight: 600; margin:30px 0;}
.txt_box_subtit{font-size: 1.8rem; font-weight: 700; color:#444}
.txt_btn_area{ text-align:center; }
.txt_btn_dwn{ display:inline-flex; align-items:center; justify-content:center; gap:20px; width:240px; height:60px; background:#2a4ea4; border-radius:7px; color:#fff; font-size:16px; font-weight:500; text-decoration:none; }
.txt_btn_icon{ display:flex; align-items:center; }
.txt_btn_icon img{ width:14px; height:14px; }
.txt_btn_dwn:hover{ background:#244494; }

/* ================================
  board table
================================ */
.board_panels{}
.board_panel{ }
.board_panel[hidden]{ display:none; }
.board_tbl{ width:100%; border-top:1px solid #111111;}
.board_tbl thead th{ height: 60px; background:#f8f8f8; font-size: 1.6rem; font-weight: 600; color:#333; border-bottom: 1px solid #e6e6e6; text-align:center; box-sizing: border-box; }
.board_tbl tbody td{ height: 60px; padding: 0 12px; border-bottom: 1px solid #efefef; font-size: 1.6rem; color:#444; vertical-align: middle; box-sizing: border-box;}
.board_tbl .tx_left{ text-align:left; }
.board_tbl .tx_center{ text-align:center; }
.board_link{ display:inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.board_link:hover{ text-decoration: underline; }
.badge_notice{ display:inline-flex; align-items:center; justify-content:center; min-width: 45px; height: 22px; padding: 0 10px; border-radius: 999px; background:#ec6400; color:#fff; font-size: 1.2rem; font-weight: 700; }
.badge_status{ display:inline-flex; align-items:center; justify-content:center; width:80px; height:26px; font-size:1.4rem; font-weight:500; border-radius:13px; border:1px solid; background:#fff; }
.badge_status.is_ing{ color:#2a4ea4; border-color:#2a4ea4; }
.badge_status.is_done{ color:#656565; border-color:#9d9d9d; }
.text_lock{display: flex; align-items: center; gap:5px;}
.ico_lock{margin-left: 5px; vertical-align: middle;}
.badge_member{ display:inline-flex; align-items:center; justify-content:center; min-width:50px; height:21px; padding:0 12px; border-radius:10.5px; font-size:1.3rem; font-weight:600; border:1px solid; background:#fff; margin-left: 10px;}
.badge_member.is_admin{ color:#8520bf; border-color:#8520bf; }
.badge_member.is_member{ color:#006c45; border-color:#006c45; }

/* ================================
   공통 정보 테이블
================================ */
.info_table_wrap{ margin-top:20px; } 
.info_table{ width:100%; table-layout:fixed; border-top:1px solid #2a4ea4; border-left:1px solid #dbdbdb; background:#fff; } 
.info_table th, 
.info_table td{ padding:16px 18px; border-right:1px solid #dbdbdb; border-bottom:1px solid #dbdbdb; vertical-align:middle; text-align:left; word-break:keep-all; }
.info_table th{ background:#f2f5fb; color:#202738; font-size:1.7rem; font-weight:600; text-align:center; }
.info_table td{ color:#555; font-size:1.6rem; line-height:1.6; background:#fff; }
.info_table_file{ display:inline-flex; align-items:center; gap:8px; color:#444; font-size:1.5rem; line-height:1.4; word-break:break-all; }
.info_table_file:hover{ color:#2a4ea4; text-decoration:underline; text-underline-offset:3px; }
.info_table_file:focus-visible{ outline:2px solid #111; outline-offset:2px; border-radius:2px; }
.info_table_file_icon{ flex:0 0 20px; width:20px; height:24px; background:url("../images/sub/ico_hwp.png") no-repeat center; background-size:contain; }
.info_table_file.is_pdf 
.info_table_file_icon{ background-image:url("../images/sub/ico_pdf.png"); } 
.info_table_file.is_doc .info_table_file_icon{ background-image:url("../images/sub/ico_doc.png"); } 
.info_table_file.is_img .info_table_file_icon{ background-image:url("../images/sub/ico_jpg.png"); }


/* ================================
  공통_view 페이지
================================ */
.viewpage_wrap{ margin-top: 60px; }
.viewpage_btns{ display: flex; justify-content: flex-end; gap: 5px; margin-bottom: 15px; }
.viewpage_btn{ display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 13px; border: 1px solid #d3d3d3; background: #fff; transition: background .15s; }
.viewpage_btn:hover{ background: #f0f0f0; }
.viewpage_btn:focus-visible{ outline: 2px solid #2a4ea4; outline-offset: 2px; border-radius: 13px; }
.viewpage_btn img{ display: block; width: 18px; height: 18px; object-fit: contain; }
.board_view{ margin-top: 60px; border-top: 1px solid #222; }
.board_view_head{ border-bottom: 1px solid #dbdbdb; background: #f8f8f8; }
.board_view_title{ padding: 22px 20px; font-size: 2.3rem; font-weight: 700; line-height: 1.5; color: #333; text-align: center; word-break: keep-all; }
.board_view_meta{ border-bottom: 1px solid #dbdbdb; }
.bvm_inner{ display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 60px; padding: 0 16px; }
.bvm_group{ display: flex; align-items: center; min-width: 0; }
.bvm_group_right{ justify-content: flex-end; gap: 24px; margin-left: auto; }
.bvm_item{ display: flex; align-items: center; min-width: 0; }
.bvm_key{ position: relative; flex-shrink: 0; padding-right: 12px; margin-right: 12px; font-size: 1.5rem; font-weight: 600; color: #333; line-height: 1.4; }
.bvm_key::after{ content: ""; position: absolute; right: 0; top: 50%; width: 1px; height: 14px; background: #d0d0d0; transform: translateY(-50%); }
.bvm_val{ font-size: 1.5rem; line-height: 1.4; color: #666; word-break: keep-all; }
.board_view_file{ display: flex; align-items: center; gap: 18px; min-height: 60px; padding: 14px 16px; border-bottom: 1px solid #dbdbdb; }
.bvf_key{ flex: 0 0 auto; font-size: 1.5rem; font-weight: 600; color: #333; }
.bvf_link{ position: relative; display: inline-flex; align-items: center; gap: 8px; min-width: 0; font-size: 1.4rem; color: #053291; word-break: break-all; }
.bvf_link::before{ content: ""; flex-shrink: 0; width: 26px; height: 30px; background: url("../images/sub/ico_file.png") no-repeat center / contain; }
.bvf_link:hover{ color: #174ca7; }
.bvf_link:focus-visible{ outline: 2px solid #000; outline-offset: 2px; border-radius: 2px; }
.board_view_body{ min-height: 180px; padding: 26px 20px 30px; border-bottom: 1px solid #dbdbdb; }
.board_view_body img{max-width: 100%; max-height: 100%;}
.board_view_body p{ font-size: 1.6rem; line-height: 1.9; color: #444; word-break: keep-all; }
.board_view_body p + p{ margin-top: 2px; }
/* viewpage_wrap 내 board_view 전용 스타일 */
.viewpage_wrap .board_view{ margin-top: 0; border-top: 2px solid #222222; }
.viewpage_wrap .board_view_title{ padding: 24px 20px; font-size: 2.4rem; color: #222; }
.viewpage_wrap .bvm_inner{ min-height: 56px; }
.viewpage_wrap .bvm_group_right{ gap: 20px; }
.viewpage_wrap .bvm_key{ flex: 0 0 80px; padding-right: 14px; margin-right: 14px; font-size: 1.7rem; font-weight: 500; color: #222; }
.viewpage_wrap .bvm_key::after{ background: #d3d3d3; }
.viewpage_wrap .bvm_val{ font-size: 1.7rem; font-weight: 200; color: #444444; }
.viewpage_wrap .board_view_file{ gap: 0; min-height: 56px; }
.viewpage_wrap .bvf_key{ position: relative; flex: 0 0 80px; padding-right: 14px; margin-right: 14px; font-size: 1.7rem; font-weight: 500; color: #222; }
.viewpage_wrap .bvf_key::after{ content: ""; position: absolute; right: 0; top: 50%; width: 1px; height: 14px; background: #d3d3d3; transform: translateY(-50%); }
.viewpage_wrap .bvf_link{ font-size: 1.7rem; font-weight: 200; }
.board_view_nav{ margin-top:40px; border-top:1px solid #dcdcdc;}
.board_view_nav_list{ list-style:none; }
.board_view_nav_item{ position:relative; display:flex; align-items:center; padding:14px 10px 14px 28px; border-bottom:1px solid #e6e6e6; }
.board_view_nav_item:first-child::before{ content:""; position:absolute; left:10px; top:50%; width:17px; height:11px; background:url('../images/common/board_next.png') no-repeat center / contain; transform:translateY(-50%); }
.board_view_nav_item:last-child::before{ content:""; position:absolute; left:10px; top:50%; width:17px; height:11px; background:url('../images/common/board_prev.png') no-repeat center / contain; transform:translateY(-50%); }
.board_view_nav_label{ position:relative; padding:0 14px; margin-right:14px; font-size:1.6rem; color:#666; }
.board_view_nav_label::after{ content:"|"; position:absolute; right:0; top:50%; transform:translateY(-50%); color:#cfcfcf; }
.board_view_nav_link{ font-size:1.6rem; color:#333; line-height:1.4; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.board_view_nav_link:hover{ text-decoration:underline; }


/* =========================================
  Paging (공용)
========================================= */
.paging{ margin-top: 28px; }
.paging_list{ display:flex; align-items:center; justify-content:center; gap: 8px; }
.paging_list > a{ position: relative; display:inline-flex; align-items:center; justify-content:center; width: 26px; height: 26px; border-radius: 4px; font-size: 0; line-height: 0; }
.paging_list > li{ list-style:none; }
.paging_list > li > strong{ display:inline-flex; align-items:center; justify-content:center; width: 26px; height: 26px; border-radius: 4px; font-size: 1.7rem; line-height: 1; font-weight: 600; color:#333; cursor: pointer;}
.paging_list > li.active > strong{ background:#2a4ea4; color:#fff; }
.paging_list > a:hover,
.paging_list > li > strong:hover{ background:#f2f4f8; }
.paging_list > a:focus,
.paging_list > a:focus-visible,
.paging_list > li > strong:focus { outline: 2px solid #000; outline-offset: 2px; }
.paging_list > a:focus-visible { background: #e9eefb; }
.paging_wrap{ position:relative; display:flex; justify-content:center; align-items:center; margin-top: 20px;}
.btn_blue{ position:absolute; right:0; top:70%; transform:translateY(-50%); display:inline-flex; align-items:center; justify-content:center; width:160px; height:60px; background:#2f4f9e; color:#fff; border-radius:10px; font-size:16px; font-weight:600; }

/* =========================================
  페이징 아이콘 
========================================= */
.paging_list > a::before{ content:""; width: 16px; height: 16px; display:block; }

/* 버튼별 클래스 hook */
.paging_list > a.first::before{background: url(../images/common/icon_first.png)no-repeat; }
.paging_list > a.prev::before{background: url(../images/common/icon_prev.png)no-repeat;   }
.paging_list > a.next::before{ background:url(../images/common/icon_next.png)no-repeat;}
.paging_list > a.last::before{ background:url(../images/common/icon_last.png)no-repeat; }

/* =========================================
   Footer
========================================= */
.footer_quick{ background:#3e475a; padding: 40px 0;}
.footer_quick_tit{ margin: 0 0 22px; text-align: center; font-size: 1.6rem; font-weight: 600; color: #ffffff; }
.footer_quick_cols{ display: grid; grid-template-columns: 2fr 2fr 1fr; gap: 40px; align-items: start; }
.footer_quick_col{ display: flex; align-items: flex-start; gap: 20px; min-width: 0; position: relative; }
.footer_quick_col:not(:last-child)::after{ content: ""; position: absolute; right: -20px; top: 4px; bottom: 4px; width: 1px; background: rgba(255,255,255,.10); }
.footer_quick_col_tit{ margin: 0; font-size: 1.4rem; font-weight: 600; color: #ffffff; white-space: nowrap; }
.footer_quick_nav{ min-width: 0; display: flex; gap: 20px;}
/* 퍼블 동기화 — 모바일 푸터 selectbox (PC 에서는 숨김, 모바일에서는 display:block) */
.footer_quick_select{ display:none; }
.footer_quick_item{ margin: 0; padding:0; width: fit-content;}
.footer_quick_item~.footer_quick_item{margin-top:10px;}
.footer_quick_link{font-size:1.3rem ; color:#fff; opacity: 0.8;}
.footer_quick_link::before{content: "·"; display: inline-block; margin-right: 5px;} 
.footer_quick_link:hover{ color: #ffffff; text-decoration: underline; text-underline-offset: 3px; }
.footer_quick_link:focus,
.footer_quick_link:focus-visible{ outline: 2px solid #ffffff; outline-offset: 2px; border-radius: 3px; }
/*footer 하단*/
.footer_info{ background:#384050; padding: 40px 0; }
.footer_terms_list{ display:flex; align-items:center; gap: 0; margin-bottom: 14px; }
.footer_terms_item{ position: relative; padding: 0 12px; }
.footer_terms_item:first-child{ padding-left: 0; }
.footer_terms_link{ display:inline-flex; font-size:1.4rem; color:#c7c9cf; line-height:1; }
.footer_terms_link.is_point{ font-weight:600; color:#ffffff; }
.footer_terms_link:hover{ text-decoration: underline; text-underline-offset: 3px; }
.footer_terms_link:focus-visible{ outline: 2px solid #fff; outline-offset: 2px; border-radius: 3px; }
.footer_meta_list{ display:flex; flex-wrap: wrap; align-items:center; gap: 0; }
.footer_meta_item{ position: relative; padding: 0 10px; font-size:1.3rem; line-height: 1.9; color:#aeb2bb; }
.footer_meta_item:first-child{ padding-left: 0; }
.footer_meta_item + .footer_meta_item::before{ content:"|"; position:absolute; left:0; top:0; color:#555555; }
.footer_copy{ margin-top: 12px; font-size:1.2rem; line-height: 1.6; color:#8e93a1; }


/* =========================================
  반응형
========================================= */

:root{ --util_h: 40px; --gnb_h_m: 90px; }
.header_util{ position: sticky; top: 0; z-index: 200; }
.header_gnb{ position: sticky; top: var(--util_h); z-index: 190; background:#fff; }

/* =========================================
  반응형
========================================= */
@media (max-width: 1400px){
  .gnb_list{ gap: 40px; }
  .gnb_link{ font-size: 2rem; }
}
@media (max-width: 1300px){
  .inner{ width: 100%; padding: 0 30px; }
  .gnb_list{gap:60px;}
}
@media (min-width: 1025px){
  .mnav_btn{ display:none; }
  .mnav_panel{ display:none !important; }
}
@media (max-width: 1024px){
  .inner{ width: 100%; padding: 0 16px; }
  body.is_mnav_open .header_util,
  body.is_mnav_open .header_gnb{ position: static; }
  .header_gnb_inner{ display:flex; align-items:center; gap: 12px; min-height: var(--gnb_h_m); }
  .header_nav{ flex: 0 0 auto; width: auto; }
  .gnb_list{ display:none; }
  .gnb_mega_panel{ display:none !important; }
  .header_logo_img{ max-width: 120px; height: auto; }
  .mnav_btn{ display:inline-flex; align-items:center; justify-content:center; width: 44px; height: 44px; margin-left: auto; }
  .mnav_btn:focus-visible{ outline-offset: 2px; }
  .mnav_ico{ display:block; width: 22px; height: 16px; 
    background: 
    linear-gradient(#333,#333) 0 0/100% 2px no-repeat, 
    linear-gradient(#333,#333) 0 50%/100% 2px no-repeat, 
    linear-gradient(#333,#333) 0 100%/100% 2px no-repeat; }
  body.is_mnav_open{ overflow: hidden; } 
  .mnav_panel{ position: fixed; left: 0; top: 0; width: 100%; height: 100dvh; z-index: 9999; }
  .mnav_panel[hidden]{ display:none; } .mnav_dim{ position:absolute; inset: 0; background: rgba(0,0,0,.55); opacity: 0; transition: opacity .28s ease; }
  .mnav_box{ position:absolute; right: 0; top: 0; height: 100%; width: min(420px, 86vw); background:#fff; overflow:auto; transform: translateX(110%); transition: transform .38s cubic-bezier(.22,.9,.18,1); will-change: transform; }
  body.is_mnav_open .mnav_dim{ opacity: 1; }
  body.is_mnav_open .mnav_box{ transform: translateX(0); }
  .mnav_top{ display:flex; align-items:center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid #e6e6e6; } 
  .mnav_tit{ font-size: 1.8rem; font-weight: 700; color:#222; }
  .mnav_close{ width: 44px; height: 44px; display:inline-flex; align-items:center; justify-content:center; position: relative; }
  .mnav_close::before,
  .mnav_close::after{ content:""; position:absolute; width: 18px; height: 2px; background:#333; }
  .mnav_close::before{ transform: rotate(45deg); }
  .mnav_close::after{ transform: rotate(-45deg); }
  .mnav_gnb_link{ display:flex; align-items:center; justify-content: space-between; padding: 16px; border-bottom: 1px solid #efefef; font-size: 1.6rem; font-weight: 700; color:#222; }
  .mnav_gnb_link::after{ content:""; width: 10px; height: 10px; border-right: 2px solid #666; border-bottom: 2px solid #666; transform: rotate(45deg); }
  .mnav_gnb_link[aria-expanded="true"]::after{ transform: rotate(-135deg); }
  .mnav_col{ background:#f2f4fb; padding: 4px 0; border-top: 1px solid #e4e8f4; }
  .mnav_depth2_link,
  .mnav_depth2_text{ display:block; padding: 11px 20px 11px 38px; font-size:1.55rem; font-weight:500; color:#444; position: relative; border-bottom: 1px solid #eaecf4; }
  .mnav_depth2_link::before,
  .mnav_depth2_text::before{ content:''; position:absolute; left:20px; top:50%; width:10px; height:2px; background:#264597; border-radius:1px; transform:translateY(-50%); }
  .mnav_depth2_link.has_child::after{ content:''; position:absolute; left:24px; top:50%; width:2px; height:10px; background:#264597; border-radius:1px; transform:translateY(-50%); transition: transform 0.25s; }
  .mnav_depth2_link.has_child.is_open::after{ transform:translateY(-50%) scaleY(0); }
  .mnav_depth2_link:hover{ color:#264597; background:#e8edf8; }
  .mnav_depth3_list{ background:#dde3f4; border-left: 4px solid #264597; padding: 4px 0; display: none; }
  .mnav_depth2_link.is_open + .mnav_depth3_list{ display: block; }
  .mnav_depth3_link{ position:relative; display:block; padding:9px 16px 9px 46px; font-size:1.45rem; font-weight:400; color:#264597; border-bottom: 1px solid #cdd4ed; }
  .mnav_depth3_link::before{ content:''; position:absolute; left:30px; top:50%; transform:translateY(-50%); width:5px; height:5px; border-radius:50%; background:#264597; opacity:.5; }
  .mnav_depth3_link:hover{ color:#0f2f80; background:#cdd4ed; }
  .mnav_depth3_list > a:last-child{ border-bottom: none; }
  /*검색기능*/
  .boardsearch{ padding: 16px 0; }
  .boardsearch_inner{ flex-direction: column; align-items: stretch; gap: 12px; }
  .boardsearch_info{ display:flex; align-items:center; justify-content: space-between; gap: 10px; }
  .boardsearch_form{ width:100%; }
  .boardsearch_form fieldset{ width:100%; justify-content: flex-start; gap: 8px; }
  .boardsearch_select{ width: 180px; }
  /*탭영역*/
  .board_tabs{ margin-top: 16px; }
  .board_tabs_list{ overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scroll-snap-type: x mandatory; flex-wrap: nowrap; padding: 6px; gap: 6px; border-radius: 10px; }
  .board_tabs_list::-webkit-scrollbar{ height: 0; }
  .board_tabs_item{ flex: 0 0 auto; scroll-snap-align: start; }
  .board_tab{ height: 40px; padding: 0 14px; white-space: nowrap; border-radius: 8px; }
  .board_tabs_item + .board_tabs_item .board_tab::before{ display: none; }
  .board_tab.is_active,
  .board_tab[aria-selected="true"]{ border-radius: 8px; }
  .board_tab:focus-visible{ outline-offset: 2px; }
  .board_wrap{ overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .board_tbl{ min-width: 820px; }
  .board_panel::-webkit-scrollbar{ height: 10px; }
  /*footer*/
  .footer_quick{ padding:28px 0 24px; }
  .footer_quick_link{font-size: 1.1rem;}
  .footer_quick_cols{ grid-template-columns: 1fr; gap:24px; }
  .footer_quick_col{ width:100%; gap:18px; }
  .footer_quick_col:not(:last-child)::after{ display:none; }
  .footer_quick_nav{ flex-wrap:wrap; gap:18px 16px; } 
  .footer_terms_list{ flex-wrap:wrap; row-gap:10px; }
  .footer_meta_item{ padding:0 8px; }
  .txt_btn_dwn{ width:220px; height:56px; font-size:15px; }
}

@media (max-width: 768px){
  .inner{padding:0 8px;}
  /* 최상단 유틸 바 — 모바일에서 숨김 (2026-06-18) */
  .header_util{ display: none; }
  /* 검색(돋보기) 버튼 — 모바일에서 숨김 (2026-06-18) */
  .header_search_btn{ display: none; }
  .header_util_link, .header_member_link{font-size: 1.2rem; padding:5px;}
  .boardsearch_info{ align-items: flex-start; }
  .boardsearch_page{ margin-left: 0; }
  .boardsearch_form fieldset{ flex-direction: column; align-items: stretch; gap: 8px; }
  .boardsearch_select{ width: 100%; height: 44px; }
  .boardsearch_keyword{ width: 100%; }
  .boardsearch_input{ width: 100%; height: 44px; border-radius: 6px 0 0 6px; }
  .boardsearch_btn{ height: 44px; min-width: 88px; border-radius: 0 6px 6px 0; }
  .wid50{width: 100% !important;}
  .wid100{width: 100% !important;}
  .w_100{width: 100% !important;}
  .w_200{width:100% !important;}
  /*페이징*/
  .paging{ margin-top: 22px; }
  .paging_list{ gap: 6px; }
  .paging_list > a,
  .paging_list > li > strong{ width: 28px; height: 28px; }
  .footer_quick_tit{ margin-bottom:16px; font-size:1.4rem; }
  .footer_quick_col{ flex-direction:column; gap:12px; } 
  .footer_quick_nav{ gap:14px 10px; } 
  .footer_quick_list{ min-width:calc(50% - 12px); } 
  .footer_quick_list_last{ min-width:auto; } 
  .footer_quick_link{ white-space:normal; } 
  .footer_terms_list{ margin-bottom:12px; } 
  .footer_meta_list{ gap:6px; margin-top:8px; } 
  .footer_meta_item{ padding:0; line-height:1.7; } 
  .footer_meta_item + .footer_meta_item::before{ content:""; }
  .paging_wrap{ display:flex; flex-direction:column; align-items:center; gap:16px; margin-top:30px; }
  .btn_blue{ position:static; top:auto; right:auto; transform:none; order:-1; width:140px; height:52px; font-size:1.5rem; border-radius:8px; }
  .board_view{ margin-top: 24px; }
  .viewpage_wrap{ margin-top: 24px; }
  .viewpage_btns{ margin-bottom: 12px; }
  .board_view_title{ padding: 18px 14px; font-size: 1.8rem; }
  .bvm_inner{ flex-direction: column; align-items: flex-start; gap: 0; min-height: 0; padding: 8px 14px; }
  .bvm_group{ width: 100%; min-height: 0; }
  .bvm_group_right{ margin-left: 0; justify-content: flex-start; gap: 18px; }
  .bvm_item{ padding: 8px 0; }
  .bvm_key, 
  .bvm_val, 
  .bvf_key, 
  .bvf_link{ font-size: 1.35rem; } 
  .board_view_file{min-height: 0; padding: 12px 14px 14px; } 
  .bvf_key{ display: block; margin-bottom: 8px; }
  .board_view_body{ min-height: 140px; padding: 20px 14px 24px; }
  .board_view_body p{ font-size: 1.4rem; line-height: 1.8; }
  .board_view_nav_item{ align-items:center; gap:10px; }
  .board_view_nav_link{ display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .txt_btn_dwn{ width:200px; height:52px; font-size:15px; }
  .info_table,
  .info_table colgroup,
  .info_table tbody,
  .info_table tr,
  .info_table th,
  .info_table td{ display:block; width:100%; }
  .info_table{ border-top:1px solid #2a4ea4; border-left:0; }
  .info_table tr{ border-bottom:1px solid #dbdbdb; }
  .info_table th,
  .info_table td{ border-right:0; border-bottom:0; text-align:left; }
  .info_table th{ padding:12px 14px 8px; font-size:1.4rem; background:#f2f5fb; }
  .info_table td{ padding:12px 14px; font-size:1.4rem; }
  .info_table_file{ font-size:1.4rem;}
  .search_overlay_form{ width:calc(100% - 48px); }
  .search_overlay_input{ font-size:1.7rem; padding:0 20px; }
  .search_overlay_input::placeholder{ font-size:1.7rem; }
  .search_overlay_submit img{ width:22px; height:22px; }
  .board_view_body img{max-width: 100%; max-height: 100%;object-fit: contain;width: 100% !important;height: 100% !important;}
}
@media (max-width:560px){
  .paging_wrap{ gap:14px; }
  .btn_blue{ width:100%; max-width:220px; height:48px; font-size:1.4rem; }
  .paging_list{ gap:6px; }
  .footer_quick{ padding:24px 0 20px; }
  .footer_quick_nav{ gap:10px 14px; }
  .footer_quick_list{ min-width:calc(50% - 7px); }
  .footer_quick_item ~ .footer_quick_item{ margin-top:8px; }
  .footer_quick_link{ display:inline-flex; align-items:flex-start; line-height:1.45; }
}
@media (max-width:360px){
  .footer_quick_nav{ flex-direction:column; gap:8px; }
  .footer_quick_list{ width:100%; min-width:0; }
}
@media (max-width: 480px){
  .header_util_link, .header_member_link{font-size: 1.1rem; padding:3px;}
  .board_tbl thead th{ height: 52px; font-size: 1.3rem; }
  .board_tbl tbody td{ height: 54px; padding: 0 10px; font-size: 1.3rem; }
  .footer_meta_list{ display:block; }
  .footer_meta_item{ padding:0; }
  .footer_meta_item + .footer_meta_item::before{ display:none; }
  .viewpage_btn{ width: 32px; height: 32px; border-radius: 10px; }
  .viewpage_btn img{ width: 16px; height: 16px; }
  .board_view_title{ padding: 16px 12px; font-size: 1.6rem; line-height: 1.45; }
  .bvm_inner{ padding: 6px 12px; }
  .bvm_group_right{ gap: 14px; }
  .bvm_item{ padding: 7px 0; }
  .bvm_key, 
  .bvm_val, 
  .bvf_key, 
  .bvf_link{ font-size: 1.3rem; } 
  .board_view_file{ padding: 10px 12px 12px; } 
  .board_view_body{ padding: 18px 12px 22px; }
  .txt_btn_dwn{ width:100%; max-width:260px; height:50px; font-size:14px; }
  /* 모바일 검색 오버레이: form border-radius 를 height 에 맞게 조정해야 submit 우측이 깎이지 않음 (2026-06-19) */
  .search_overlay_form{ height:56px; border-radius:28px; }
  .search_overlay_submit{ width:64px; border-radius:28px; }
  .search_overlay_submit img{ width:24px; height:24px; }
  .search_overlay_input{ font-size:1.5rem; padding:0 16px; }
  .search_overlay_input::placeholder{ font-size:1.5rem; }
  
}
@media (max-width: 420px){
  .boardsearch_btn{ min-width: 76px; padding: 0 12px; }
  .paging_list{ gap: 4px; }
  .paging_list > a,
  .paging_list > li > strong{ width: 26px; height: 26px; }
  .paging_wrap{ gap:12px; }
  .btn_blue{ max-width:none; width:100%; height:46px; font-size:1.4rem; }
}

/* 헤더 검색 버튼 */
.header_search_btn{ position:relative; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid #c5c5c5; border-radius:50%; background:#fff; transition:border-color .2s ease, background-color .2s ease; z-index:120; text-decoration:none; }
.header_search_btn:hover{ border-color:#0180f5; background:#f0f7ff; }
.header_search_btn:focus-visible{ outline:2px solid #0180f5; outline-offset:3px; border-radius:50%; }
.header_search_btn img{ display:block; object-fit:contain; }
/* 히어로 상태(투명헤더)에서 검색버튼 */
body.is_hero .header_search_btn{ border-color:rgba(255,255,255,0.6); background:rgba(255,255,255,0.15); }
body.is_hero .header_search_btn:hover{ background:rgba(255,255,255,0.25); border-color:#fff; }
/* 통합검색 오버레이 */
.search_overlay{ position:fixed; left:0; right:0; width:100%; height:200px; background:rgba(0,0,0,0.7); z-index:190; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity 0.25s ease, visibility 0.25s ease; pointer-events:none; }
.search_overlay.is_open{ opacity:1; visibility:visible; pointer-events:auto; }
.search_overlay_form{ display:flex; align-items:center; width:700px; max-width:calc(100% - 32px); height:70px; border-radius:35px; border:3px solid #2b6beb; background:#fff; overflow:hidden; box-sizing:border-box; }
.search_overlay_input{ flex:1; height:100%; border:none; outline:none; padding:0 30px; font-size:2rem; color:#333; background:transparent; font-family:inherit; }
.search_overlay_input::placeholder{ color:#2b6beb; font-size:2rem; }
.search_overlay_submit{ flex-shrink:0; display:flex; align-items:center; justify-content:center; width:90px; height:100%; background:#2b6beb; border:none; cursor:pointer; transition:background 0.2s; border-radius: 35px;}
.search_overlay_submit:hover{ background:#1a5bd4; }
.search_overlay_submit:focus-visible{ outline:2px solid #fff; outline-offset:-4px; }
.search_overlay_submit img{ display:block; object-fit:contain; }

/* 통합검색 페이지 헤드 */
.search_head{ position:relative; display:flex; align-items:center; justify-content:center; padding:0 0 35px;}
.search_head_tit{ font-size:3.6rem; font-weight:700; line-height:1.15; color:#333; text-align:center; }
.search_head_fontsize{ position:absolute; right:0; top:0; display:flex; align-items:center; gap:10px; margin-top:6px; white-space:nowrap; }
.search_head_fontsize_label{ font-size:1.4rem; color:#666; }
.search_head_fontsize_ctrl{ display:flex; align-items:center; border:1px solid #e2e2e2; border-radius:6px; overflow:hidden; background:#fff; }
.search_head_btn_minus,.search_head_btn_plus{ width:30px; height:28px; display:flex; align-items:center; justify-content:center; background:#f2f2f2; box-sizing:border-box; }
.search_head_btn_minus:hover,.search_head_btn_plus:hover{ background:#e9eaee; }
.search_head_btn_minus:focus-visible,.search_head_btn_plus:focus-visible{ outline-offset:-2px; }
.search_head_btn_minus img{ display:block; width:10px; height:2px; }
.search_head_btn_plus img{ display:block; width:10px; height:10px; }
.search_head_font_state{ min-width:52px; height:28px; display:flex; align-items:center; justify-content:center; padding:0 10px; border-left:1px solid #e2e2e2; border-right:1px solid #e2e2e2; font-size:1.4rem; color:#333; font-weight:600; }
@media (max-width:768px){ .search_head{ justify-content:flex-start; } .search_head_tit{ font-size:2.8rem; } .search_head_fontsize{ position:static; margin-top:0; } }
@media (max-width:560px){ .search_head_tit{ font-size:2.4rem; } .search_head_fontsize{ width:100%; justify-content:flex-end; } }

/* ============================================================
   GNB 깜빡임 완전 차단 (2026-06-10, 옵션 G)
   ------------------------------------------------------------
   - 폰트(Pretendard) 로딩 완료 전에는 header_wrap 을 숨김
   - <html class="fonts-loaded"> 가 붙는 순간 한 번에 표시
   - 안전망: 1.5초 후 강제 표시 (인라인 script 에서 처리)
   - 메인 KV 의 main_kv 도 헤더와 동시 reveal (mp4 + 로그인 패널 깜빡임 통합 차단)
   ============================================================ */
.site_header { visibility: hidden; }
html.fonts-loaded .site_header { visibility: visible; }
/* JS 비활성 환경 안전망 — fonts-loaded 가 절대 안 붙는 케이스 */
html.no-fonts-api .site_header { visibility: visible; }

/* ============================================================
   퍼블 동기화 (2026-06-11) — 모바일 푸터 바로가기 selectbox
   · 768px 이하에서 .footer_quick_nav 숨김 + .footer_quick_select 표시
   · select 마크업은 common.js 가 동적으로 생성 (HTML 변경 불필요)
   ============================================================ */
@media (max-width: 768px) {
   .footer_quick_col{ flex-direction: row; align-items: center; gap: 12px; }
   .footer_quick_col_tit{ flex: 0 0 auto; width: 120px; }
   .footer_quick_nav{ display: none; }
   .footer_quick_select{
       display: block; flex: 1; min-width: 0; height: 36px; padding: 0 10px;
       background: rgba(255,255,255,.10); color: #fff;
       border: 1px solid rgba(255,255,255,.30); border-radius: 6px;
       font-size: 1.3rem; cursor: pointer; appearance: auto;
   }
   .footer_quick_select option{ background: #3e475a; color: #fff; }
}

/* =====================================================================
   모바일 햄버거 메뉴 + 사이드 패널 — 교육사이트 mob_nav 패턴 이식 (2026-06-18)
   PC 영향 없음: 모든 룰이 .mob_* prefix + display:none 기본 + 모바일 미디어쿼리에서 활성화
   ===================================================================== */
.mob_menu_btn {display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px; width: 40px; height: 40px; background: none; border: none; cursor: pointer; flex-shrink: 0; padding: 0;}
.mob_menu_bar {display: block; width: 24px; height: 2px; background: #222; border-radius: 2px; transition: transform 0.3s, opacity 0.3s, background 0.3s;}
.mob_menu_btn.is_active .mob_menu_bar:nth-child(1) {transform: translateY(7px) rotate(45deg);}
.mob_menu_btn.is_active .mob_menu_bar:nth-child(2) {opacity: 0;}
.mob_menu_btn.is_active .mob_menu_bar:nth-child(3) {transform: translateY(-7px) rotate(-45deg);}

.mob_nav_overlay {display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 9000;}
.mob_nav_panel {position: fixed; top: 0; right: -320px; width: 300px; height: 100%; background: #fff; z-index: 9001; transition: right 0.3s ease; overflow-y: auto; box-shadow: -4px 0 20px rgba(0,0,0,0.15); display: flex; flex-direction: column;}
.mob_nav_panel nav {flex: 1;}

.mob_nav_head {display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; border-bottom: 1px solid #eee;}
.mob_nav_close {position: relative; width: 36px; height: 36px; background: none; border: none; cursor: pointer; flex-shrink: 0;}
.mob_nav_close span {position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; background: #333; border-radius: 2px;}
.mob_nav_close span:nth-child(1) {transform: translate(-50%, -50%) rotate(45deg);}
.mob_nav_close span:nth-child(2) {transform: translate(-50%, -50%) rotate(-45deg);}

.mob_gnb_list {list-style: none; padding: 0; margin: 0;}
.mob_gnb_item {border-bottom: 1px solid #f0f0f0;}
.mob_gnb_link {display: flex; align-items: center; justify-content: space-between; padding: 18px 20px; font-size: 1.8rem; font-weight: 600; color: #222; text-decoration: none;}
.mob_gnb_arrow {display: inline-block; width: 9px; height: 9px; border-right: 2px solid #aaa; border-bottom: 2px solid #aaa; transform: rotate(45deg); transition: transform 0.3s; flex-shrink: 0; margin-bottom: 3px;}
.mob_gnb_item.is_open .mob_gnb_arrow {transform: rotate(-135deg); margin-bottom: -3px;}

.mob_depth2_list {display: none; background: #f2f4fb; padding: 4px 0; list-style: none; margin: 0; border-top: 1px solid #e4e8f4;}
.mob_depth2_list li {list-style: none;}
.mob_depth2_link {display: block; padding: 11px 20px 11px 38px; font-size: 1.55rem; font-weight: 500; color: #444; text-decoration: none; position: relative; border-bottom: 1px solid #eaecf4;}
.mob_depth2_link::before {content: ''; position: absolute; left: 22px; top: 50%; width: 8px; height: 2px; background: #264597; border-radius: 1px;}
.mob_depth2_link:hover {color: #264597; background: #e8edf8;}
.mob_gnb_item.is_open .mob_depth2_list {display: block;}

/* ── 3depth (교육사이트 동등 — 2026-06-19) ── */
.mob_depth3_list {display: none; list-style: none; margin: 0; padding: 4px 0; background: #dde3f4; border-left: 4px solid #264597;}
.mob_depth2_list li.is_open .mob_depth3_list {display: block;}
.mob_depth3_link {display: block; padding: 9px 16px 9px 46px; font-size: 1.45rem; font-weight: 400; color: #264597; text-decoration: none; position: relative; border-bottom: 1px solid #cdd4ed;}
.mob_depth3_link::before {content: ''; position: absolute; left: 30px; top: 50%; transform: translateY(-50%); width: 5px; height: 5px; border-radius: 50%; background: #264597; opacity: .5;}
.mob_depth3_link:hover {color: #0f2f80; background: #cdd4ed;}
.mob_depth3_list > li:last-child > .mob_depth3_link {border-bottom: none;}

/* ── has_child (3depth 토글 화살표) ── */
.mob_depth2_list li.has_child > .mob_depth2_link {display: flex; align-items: center; justify-content: space-between; padding-left: 38px;}
.mob_depth2_list li.has_child > .mob_depth2_link::before {display: none;}
.mob_depth2_link_arrow {display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: #264597; flex-shrink: 0;}
.mob_depth2_link_arrow::after {content: ''; display: block; width: 6px; height: 6px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg) translate(-1px, -1px); transition: transform 0.25s;}
.mob_depth2_list li.has_child.is_open > .mob_depth2_link .mob_depth2_link_arrow::after {transform: rotate(-135deg) translate(-1px, -1px);}

/* ── 모바일 하단 회원 메뉴 (교육사이트 동등 — 2026-06-19) ── */
.mob_nav_member {border-top: 1px solid #eee; padding: 20px; background: #f7f8fc; margin-top: auto;}
.mob_nav_member_top {display: flex; align-items: center; gap: 10px; margin-bottom: 14px;}
.mob_nav_member_icon {width: 28px; height: 28px; object-fit: contain; flex-shrink: 0;}
.mob_nav_member_name {font-size: 1.5rem; font-weight: 600; color: #222;}
.mob_nav_member_name em {font-style: normal; font-weight: 400; color: #666;}
.mob_nav_member_links {list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 0;}
.mob_nav_member_links li {width: 50%; list-style: none;}
.mob_nav_member_links li a {font-size: 1.4rem; color: #444; text-decoration: none; display: block; padding: 5px 0; position: relative; padding-left: 12px;}
.mob_nav_member_links li a::before {content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 4px; border-radius: 50%; background: #2366d6;}
.mob_nav_member_links li a:hover {color: #2366d6;}

body.is_mob_open {overflow: hidden;}
body.is_mob_open .mob_nav_overlay {display: block;}
body.is_mob_open .mob_nav_panel {right: 0;}

@media (max-width: 768px){
    /* 모바일: 돋보기 + 햄버거를 우측에 나란히 배치 (2026-06-19)
       돋보기(order:98) 가 margin-left:auto 로 우측 끝으로 밀려나고, 햄버거(order:99) 가 바로 옆에 붙음 */
    .mob_menu_btn {display: flex; order: 99; margin-left: 4px;}
    .header_search_btn { order: 98; margin-left: auto; }
}

@media (max-width: 600px){
  /* 20260619 수정 */
  .header_util_inner{ flex-wrap: wrap; gap: 0; }
  .header_util_links,
  .header_member_links{ width: 100%; padding: 5px 0; }
  .header_member_links{ border-top: 1px solid #d9dce3; margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; width: calc(100% + 32px); }
  /* //20260619 수정 */
}

/* === CKEditor5 본문 이미지 정렬 === */
.board_view_body figure.image,
.board_view_con figure.image,
.view_body figure.image{ display:table; clear:both; text-align:center; margin:.9em auto; max-width:100%; }
.board_view_body figure.image > img,
.board_view_con figure.image > img,
.view_body figure.image > img{ display:block; margin:0 auto; max-width:100%; height:auto; }
/* 리사이즈(25/50/75%): figure는 블록이 되지만 위 base의 margin:auto 로 가운데 유지 */
.board_view_body figure.image.image_resized,
.board_view_con figure.image.image_resized,
.view_body figure.image.image_resized{ display:block; box-sizing:border-box; max-width:100%; }
.board_view_body figure.image.image_resized > img,
.board_view_con figure.image.image_resized > img,
.view_body figure.image.image_resized > img{ width:100%; }
/* 명시적 가운데/좌/우/측면 정렬 클래스(구 콘텐츠·향후 대비) */
.board_view_body figure.image.image-style-align-center,
.board_view_con figure.image.image-style-align-center,
.view_body figure.image.image-style-align-center{ margin-left:auto; margin-right:auto; }
.board_view_body figure.image.image-style-align-left,
.board_view_con figure.image.image-style-align-left,
.view_body figure.image.image-style-align-left{ float:left; clear:none; margin:.9em 1.5em .9em 0; }
.board_view_body figure.image.image-style-align-right,
.board_view_con figure.image.image-style-align-right,
.view_body figure.image.image-style-align-right{ float:right; clear:none; margin:.9em 0 .9em 1.5em; }
.board_view_body figure.image.image-style-side,
.board_view_con figure.image.image-style-side,
.view_body figure.image.image-style-side{ float:right; clear:none; max-width:50%; margin:.9em 0 .9em 1.5em; }
.board_view_body figure.image.image-style-block-align-left,
.board_view_con figure.image.image-style-block-align-left,
.view_body figure.image.image-style-block-align-left{ margin-left:0; margin-right:auto; }
.board_view_body figure.image.image-style-block-align-right,
.board_view_con figure.image.image-style-block-align-right,
.view_body figure.image.image-style-block-align-right{ margin-left:auto; margin-right:0; }
/* 인라인 이미지 */
.board_view_body .image-inline,
.board_view_con .image-inline,
.view_body .image-inline{ display:inline-block; max-width:100%; }
.board_view_body .image-inline img,
.board_view_con .image-inline img,
.view_body .image-inline img{ max-width:100%; height:auto; }
/* === /CKEditor5 본문 이미지 정렬 === */

/* ============================================================
   모바일 하단 네비게이션 + QR 모달 (2026-06-28 main.css → common.css 이전)
   로그인/회원가입 등 emptyLayout2 사용 페이지에서도 노출되도록 공통 CSS 로 이동
   ============================================================ */
.mob_bottom_nav{ display:none; }
@media (max-width: 480px){
    .mob_bottom_nav{ display:flex; position:fixed; bottom:0; left:0; right:0; height:70px; background:radial-gradient(circle 36px at 50% 0%, transparent 36px, #fff 37px); filter:drop-shadow(0 -3px 8px rgba(0,0,0,0.12)); z-index:602; align-items:center; }
    .mob_nav_item{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; text-decoration:none; height:100%; }
    .mob_nav_ico{ object-fit:contain; }
    .mob_nav_txt{ font-size:1.4rem; color:#6c6e77; line-height:1; }
    .site_footer { padding-bottom: 100px; }
    .mob_nav_qr_item{ position:relative; }
    .mob_nav_qr_item .mob_nav_txt{ margin-top:36px; }
    .mob_qr_btn{ width:60px; height:60px; border-radius:50%; display:flex; align-items:center; justify-content:center; position:absolute; top:-20px; left:50%; transform:translateX(-50%); background:#003fbc; box-shadow:0 4px 16px rgba(0,63,188,0.4); overflow:hidden; }
    .mob_qr_btn::after{ content:''; position:absolute; inset:0; border-radius:50%; background:linear-gradient(-54deg, rgba(0,131,255,0.45) 0%, transparent 100%); }
    .mob_qr_btn img{ width:28px; height:28px; object-fit:contain; position:relative; z-index:1; filter:brightness(0) invert(1); }
    body.is_main .main_content{ padding-bottom:70px; }
}

/* 모바일 QR 모달 */
.mob_qr_overlay{ display:none; position:fixed; inset:0; background:rgba(0,0,0,0.2); z-index:1000; }
.mob_qr_overlay.is_open{ display:block; }
.mob_qr_modal{ position:fixed; bottom:0; left:0; right:0; background:#daebff; border-radius:30px 30px 0 0; z-index:1100; padding:0 20px 100px; transform:translateY(100%); transition:transform 0.35s cubic-bezier(0.4,0,0.2,1); }
.mob_qr_modal.is_open{ transform:translateY(0); }
/* QR 열린 상태에서도 하단 토스트 네비 노출 유지 (교육사이트 동등, 2026-07-02) */
.mob_qr_overlay.is_open ~ .mob_bottom_nav,
body:has(.mob_qr_overlay.is_open) .mob_bottom_nav{ z-index:1200; }
.mob_qr_close_btn{ display:flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; background:#fff; box-shadow:0 4px 12px rgba(0,0,0,0.15); position:absolute; top:-20px; left:50%; transform:translateX(-50%); text-decoration:none; opacity:0; pointer-events:none; transition:opacity 0.2s; }
.mob_qr_modal.is_open .mob_qr_close_btn{ opacity:1; pointer-events:auto; }
.mob_qr_close_btn img{ width:16px; height:16px; object-fit:contain; }
.mob_qr_profile{ display:flex; flex-direction:column; align-items:center; padding-top:30px; }
.mob_qr_profile_img{ width:40px; height:40px; object-fit:contain; }
.mob_qr_name{ font-size:2.6rem; color:#111; font-weight:700; margin-top:8px; }
.mob_qr_member{ font-size:1.8rem; color:#333; font-weight:600; margin-top:10px; }
.mob_qr_code_wrap{ width:340px; max-width:100%; margin:20px auto 0; background:#fff; border-radius:20px; padding:60px; box-shadow:0 4px 16px rgba(0,0,0,0.1); box-sizing:border-box; display:flex; align-items:center; justify-content:center; }
.mob_qr_code_img{ width:100%; height:auto; display:block; }
.mob_qr_footer{ width:340px; max-width:calc(100% - 40px); height:40px; background:#c9d9eb; border-radius:10px; margin:10px auto 0; display:flex; align-items:center; justify-content:center; gap:0; }
.mob_qr_footer_txt{ font-size:1.5rem; color:#333; }
.mob_qr_timer{ font-size:1.6rem; color:#ff0000; font-weight:600; }
