@charset "utf-8";
/* ==========================================================================
   ND CMS — 네비게이션(GNB) & 서브 레이아웃(SNB) 프리셋 스타일 (방식 A + B 공용)
   ========================================================================== */

/* 1. GNB 프리셋: 개별 드롭다운형 (DROPDOWN) & 심플 상단바형 (SIMPLE) */
header .header_inner .gnb ul.gnb_simple_list { display: flex; align-items: center; }
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item { position: relative; }
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item > a {
    position: relative; display: block; color: #fff; font-size: 18px; font-weight: 600;
    padding: 28px 30px; transition: color .2s;
}
header.active .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item > a { color: #111; }
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item > a::before {
    position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); content: '';
    width: 0; height: 3px; background: var(--mainColor2, #06b6d4); transition: width .2s;
}
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item.on > a,
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item.active > a,
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item > a:hover {
    color: var(--mainColor1, #1e3a8a) !important;
}
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item.on > a::before,
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item.active > a::before,
header .header_inner .gnb ul.gnb_simple_list > li.gnb_d1_item > a:hover::before { width: 100%; }

/* 개별 드롭다운 박스 (.gnb--dropdown) */
header .header_inner .gnb.gnb--dropdown .gnb_drop_box {
    display: none; position: absolute; top: 86px; left: 50%; transform: translateX(-50%);
    min-width: 220px; background: #fff; border: 1px solid #e2e8f0; border-top: 3px solid var(--mainColor1, #1e3a8a);
    border-radius: 0 0 12px 12px; box-shadow: 0 18px 36px -12px rgba(15, 23, 42, .18);
    padding: 10px 0; z-index: 350;
}
header .header_inner .gnb.gnb--dropdown li.gnb_d1_item.on > .gnb_drop_box { display: block; }
header .header_inner .gnb.gnb--dropdown .gnb_d2_list > li > a {
    display: block; padding: 11px 22px; font-size: 15px; font-weight: 600; color: #334155 !important;
    white-space: nowrap; transition: background-color .15s, color .15s;
}
header .header_inner .gnb.gnb--dropdown .gnb_d2_list > li > a:hover,
header .header_inner .gnb.gnb--dropdown .gnb_d2_list > li.active > a {
    background: #f1f5fd; color: var(--mainColor1, #1e3a8a) !important;
}
header .header_inner .gnb.gnb--dropdown .gnb_d3_list {
    padding: 4px 0 8px 16px; background: #f8fafc; border-top: 1px dashed #e2e8f0; border-bottom: 1px dashed #e2e8f0;
}
header .header_inner .gnb.gnb--dropdown .gnb_d3_list > li > a {
    display: block; padding: 6px 18px; font-size: 13.5px; font-weight: 500; color: #64748b !important; white-space: nowrap;
}
header .header_inner .gnb.gnb--dropdown .gnb_d3_list > li > a:hover,
header .header_inner .gnb.gnb--dropdown .gnb_d3_list > li.active > a {
    color: var(--mainColor1, #1e3a8a) !important; font-weight: 700;
}

/* 심플 상단바형 (.gnb--simple): 상단 드롭다운 미표시 (1차 메뉴만 노출) */
header .header_inner .gnb.gnb--simple .gnb_drop_box { display: none !important; }

/* 2. 서브 레이아웃 프리셋: 좌측 세로형 SNB 2단 레이아웃 (.nd-snb-layout) */
.sub_head.sub_head--snb .sub_vis { height: 360px; }
.nd-snb-layout {
    max-width: 1480px; margin: 0 auto; padding: 56px 24px 100px;
    display: flex; align-items: flex-start; gap: 48px; box-sizing: border-box;
}
.nd-snb {
    width: 260px; flex-shrink: 0; position: sticky; top: 110px;
    background: #fff; border: 1px solid #dbe4f5; border-radius: 14px; overflow: hidden;
    box-shadow: 0 10px 25px -12px rgba(30, 58, 138, .10);
}
.nd-snb__head {
    padding: 28px 24px 24px;
    background: linear-gradient(135deg, var(--mainColor1, #1e3a8a), #172554);
    color: #fff;
}
.nd-snb__eyebrow {
    display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em;
    color: #67e8f9; text-transform: uppercase; margin-bottom: 6px; opacity: .9;
}
.nd-snb__title {
    display: block; font-size: 22px; font-weight: 800; line-height: 1.3; letter-spacing: -.02em; color: #fff;
}
.nd-snb__list { list-style: none; margin: 0; padding: 8px 0; }
.nd-snb__item { border-bottom: 1px solid #f1f5f9; }
.nd-snb__item:last-child { border-bottom: 0; }
.nd-snb__link {
    display: flex; align-items: center; justify-content: space-between;
    padding: 15px 22px; font-size: 16px; font-weight: 600; color: #334155;
    text-decoration: none; transition: background-color .15s, color .15s, padding-left .15s;
}
.nd-snb__link::after {
    content: ''; width: 7px; height: 7px; border-top: 2px solid #94a3b8; border-right: 2px solid #94a3b8;
    transform: rotate(45deg); transition: transform .2s, border-color .2s;
}
.nd-snb__item.has-children > .nd-snb__link::after { transform: rotate(135deg); }
.nd-snb__link:hover { background: #f8fafc; color: var(--mainColor1, #1e3a8a); padding-left: 26px; }
.nd-snb__item.active > .nd-snb__link,
.nd-snb__item.on > .nd-snb__link {
    background: #eff6ff; color: var(--mainColor1, #1e3a8a); font-weight: 700;
    border-left: 4px solid var(--mainColor1, #1e3a8a); padding-left: 18px;
}
.nd-snb__item.active > .nd-snb__link::after,
.nd-snb__item.on > .nd-snb__link::after { border-color: var(--mainColor1, #1e3a8a); }
.nd-snb__sub {
    list-style: none; margin: 0; padding: 8px 0 10px 0;
    background: #f8fafc; border-top: 1px solid #eef2f7;
}
.nd-snb__sub-link {
    display: block; padding: 8px 22px 8px 34px; font-size: 14.5px; font-weight: 500;
    color: #64748b; text-decoration: none; position: relative; transition: color .15s;
}
.nd-snb__sub-link::before {
    content: ''; position: absolute; left: 22px; top: 50%; transform: translateY(-50%);
    width: 4px; height: 4px; border-radius: 50%; background: #94a3b8;
}
.nd-snb__sub-item.active > .nd-snb__sub-link,
.nd-snb__sub-item.on > .nd-snb__sub-link,
.nd-snb__sub-link:hover {
    color: var(--mainColor1, #1e3a8a); font-weight: 700;
}
.nd-snb__sub-item.active > .nd-snb__sub-link::before,
.nd-snb__sub-item.on > .nd-snb__sub-link::before { background: var(--mainColor2, #06b6d4); width: 6px; height: 6px; }

/* 우측 본문 컬럼 (.nd-snb-main) */
.nd-snb-main { flex: 1; min-width: 0; }
.nd-snb-toolbar {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding-bottom: 18px; margin-bottom: 32px; border-bottom: 1px solid #e2e8f0;
}
.nd-snb-path { font-size: 14.5px; color: #64748b; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nd-snb-path a { color: #64748b; text-decoration: none; }
.nd-snb-path a:hover { color: var(--mainColor1, #1e3a8a); text-decoration: underline; }
.nd-snb-path strong { color: #0f172a; font-weight: 700; }
.nd-snb-toolbar .share { position: relative; display: flex; align-items: center; gap: 6px; height: 38px; width: auto; }
.nd-snb-toolbar .share > button {
    display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px;
    border-radius: 8px; font-size: 13.5px; font-weight: 600; color: #fff; width: auto;
}
.nd-snb-toolbar .share .btn_share { background: var(--mainColor1, #1e3a8a); }
.nd-snb-toolbar .share .btn_print { background: #64748b; }
.nd-snb-toolbar .share .btn_print img { width: 15px; height: 15px; }
.nd-snb-toolbar .share .btn-font { display: none; }
.nd-snb-toolbar .share .share_box {
    display: none; position: absolute; top: 42px; right: 0; left: auto;
    width: 120px; height: auto; padding: 10px; border-radius: 8px;
    border: 1px solid var(--mainColor1, #1e3a8a); background: #fff; z-index: 20;
}
.nd-snb-toolbar .share .share_box li { display: inline-block; margin: 0 6px; }

/* SNB 2단 내부에서 본문(.nd-page / .sub_wrap) 여백 최적화 */
.nd-snb-main .nd-page { padding-top: 8px; padding-bottom: 0; }
.nd-snb-main .nd-wrap,
.nd-snb-main .sub_wrap > .inner { max-width: 100%; padding-left: 0; padding-right: 0; }
.nd-snb-main .sub_wrap { padding-bottom: 0; }
.nd-snb-main .sub_wrap .title { margin-top: 10px; text-align: left; font-size: 36px; }

@media screen and (max-width: 1024px) {
    .nd-snb-layout { flex-direction: column; gap: 28px; padding: 32px 20px 72px; }
    .nd-snb { width: 100%; position: static; }
    .nd-snb__head { padding: 18px 20px; display: flex; align-items: center; justify-content: space-between; }
    .nd-snb__eyebrow { margin-bottom: 0; }
    .nd-snb__title { font-size: 18px; }
    .nd-snb__list { display: flex; flex-wrap: wrap; padding: 6px; gap: 4px; }
    .nd-snb__item { border-bottom: 0; flex: 1 1 auto; }
    .nd-snb__link { padding: 10px 14px; font-size: 14.5px; border-radius: 8px; }
    .nd-snb__item.active > .nd-snb__link,
    .nd-snb__item.on > .nd-snb__link { border-left: 0; padding-left: 14px; }
    .nd-snb__sub { display: none; }
}
