:root {
    /* 기본 톤 (한지) */
    --color-hanji:     #faf8f3;
    --color-hanji2:    #f3efe6;
    --color-border:    #e4dfd2;
    --color-text-main: #33322e;
    --color-text-muted:#6b6a64;
    --color-white:     #ffffff;

    /* 딥 네이비 — 무채색 검정 대체 */
    --color-navy:      #16294a;
    --color-navy-deep: #0f1d36;

    /* 오방색 계열 포인트 컬러 */
    --color-gold:      #c9a227;
    --color-gold-light:#e6c96a;
    --color-dark-gold: #9a7c1e;
    --color-red:       #c8402f;
    --color-blue:      #2456a6;
    --color-green:     #2a7a4b;
    --color-crimson:   #8c2332;
}

* { margin: 0; padding: 0; box-sizing: border-box; }

body {
    font-family: 'Noto Sans KR', sans-serif;
    color: var(--color-text-main);
    background-color: var(--color-hanji);
    line-height: 1.7;
    word-break: keep-all;
    overflow-x: hidden;
}

h1,h2,h3,h4,h5,h6,.serif { font-family: 'Noto Serif KR', serif; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; }

.container { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
.section-padding { padding: 90px 0; }

.section-label {
    font-size: 0.8rem; font-weight: 500; letter-spacing: 3px;
    text-transform: uppercase; color: var(--color-blue);
    display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
}
.section-label::before { content: ''; width: 30px; height: 2px;
    background: linear-gradient(90deg, var(--color-blue), var(--color-red)); }
.section-title {
    font-size: 2.2rem; font-weight: 600;
    color: var(--color-navy); margin-bottom: 14px; line-height: 1.3;
}
.section-subtitle { font-size: 1.02rem; color: var(--color-text-muted); font-weight: 300; }

/* 오방색 띠 — 시그니처 요소 */
.obangsaek-bar {
    height: 4px; width: 100%;
    background: linear-gradient(90deg,
        var(--color-blue) 0%, var(--color-blue) 20%,
        var(--color-green) 20%, var(--color-green) 40%,
        var(--color-gold) 40%, var(--color-gold) 60%,
        var(--color-red) 60%, var(--color-red) 80%,
        var(--color-crimson) 80%, var(--color-crimson) 100%);
}

/* ━━ 헤더 ━━ */
header {
    position: fixed; top: 0; left: 0; width: 100%;
    z-index: 1000;
    transition: background 0.4s ease, box-shadow 0.4s ease;
    background: transparent;
}
header.scrolled, header.nav-open {
    background: rgba(250,248,243,0.97);
    backdrop-filter: blur(14px);
    box-shadow: 0 1px 0 rgba(0,0,0,0.08);
}
.header-inner {
    display: flex; justify-content: space-between; align-items: stretch;
    max-width: 1400px; margin: 0 auto; padding: 0 40px; height: 76px;
}

/* 로고: 심볼 + (재)문화영토연구원 표기 통일 */
.logo { display: flex; align-items: center; gap: 11px; flex-shrink: 0; }
.logo-mark { width: 42px; height: 42px; flex-shrink: 0; display: block; }
.logo-text {
    font-family: 'Noto Serif KR', serif;
    font-size: 1.42rem; font-weight: 700; letter-spacing: 0.3px;
    color: var(--color-white); transition: color 0.4s ease; line-height: 1.2;
}
.logo-text small {
    display: block; font-family: 'Noto Sans KR', sans-serif;
    font-size: 0.62rem; font-weight: 400; letter-spacing: 1.6px;
    color: rgba(255,255,255,.55); transition: color 0.4s ease;
}
header.scrolled .logo-text, header.nav-open .logo-text { color: var(--color-navy); }
.logo-light, .logo-dark { height: 46px; width: auto; display: block; }
.logo-dark { display: none; }
header.scrolled .logo-dark, header.nav-open .logo-dark { display: block; }
header.scrolled .logo-light, header.nav-open .logo-light { display: none; }
header.scrolled .logo-text small, header.nav-open .logo-text small { color: var(--color-text-muted); }

/* GNB */
.gnb { display: flex; align-items: stretch; }
.gnb-item { position: static; display: flex; align-items: center; }
.gnb-top {
    display: flex; align-items: center; padding: 0 22px;
    font-size: 1rem; font-weight: 500; color: rgba(255,255,255,.92);
    cursor: pointer; transition: color 0.3s ease;
    position: relative; white-space: nowrap; height: 100%;
}
.gnb-top::after {
    content: ''; position: absolute; bottom: 0; left: 50%;
    transform: translateX(-50%); width: 0; height: 3px;
    background: linear-gradient(90deg, var(--color-blue), var(--color-red));
    transition: width 0.3s ease;
}
.gnb-item:hover .gnb-top::after { width: calc(100% - 44px); }
header.scrolled .gnb-top, header.nav-open .gnb-top { color: var(--color-navy); }
.gnb-item:hover .gnb-top { color: var(--color-blue); }

/* 드롭다운 */
.gnb-dropdown {
    position: fixed; top: 76px; left: 0; right: 0;
    background: rgba(250,248,243,0.98);
    backdrop-filter: blur(14px);
    border-top: 1px solid var(--color-border);
    box-shadow: 0 12px 32px rgba(0,0,0,0.08);
    padding: 32px 0 36px;
    opacity: 0; visibility: hidden; pointer-events: none;
    transform: translateY(-8px);
    transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}
.gnb-item:hover .gnb-dropdown {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
}
.gnb-dropdown-inner { max-width: 1400px; margin: 0 auto; padding: 0 40px; display: flex; }
.gnb-col { flex: 1; padding: 0 20px; border-right: 1px solid var(--color-border); }
.gnb-col:last-child { border-right: none; }
.gnb-col-head {
    font-family: 'Noto Serif KR', serif;
    font-size: 0.95rem; font-weight: 600; color: var(--color-navy);
    margin-bottom: 14px; padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}
.gnb-sub { display: flex; flex-direction: column; gap: 2px; }
.gnb-sub a {
    font-size: 0.92rem; color: var(--color-text-muted);
    padding: 7px 4px; transition: all 0.2s ease;
    display: flex; align-items: center; gap: 6px;
}
.gnb-sub a::before {
    content: ''; width: 4px; height: 4px; border-radius: 50%;
    background: var(--color-border); flex-shrink: 0; transition: background 0.2s;
}
.gnb-sub a:hover { color: var(--color-blue); padding-left: 8px; }
.gnb-sub a:hover::before { background: var(--color-red); }

/* 우측 버튼 */
.header-actions { display: flex; align-items: center; gap: 16px; margin-left: 20px; }
.nav-cta {
    padding: 9px 22px; border-radius: 30px; font-size: 0.88rem;
    font-weight: 700; white-space: nowrap;
    background: var(--color-crimson);
    color: #fff; border: none;
    box-shadow: 0 4px 14px rgba(200,64,47,.35);
    transition: all 0.3s ease;
}
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(200,64,47,.45); }

/* 햄버거 */
.hamburger {
    display: none; flex-direction: column; gap: 5px;
    cursor: pointer; padding: 6px; background: none; border: none;
}
.hamburger span {
    display: block; width: 24px; height: 2px;
    background: white; transition: all 0.3s ease; border-radius: 2px;
}
header.scrolled .hamburger span, header.nav-open .hamburger span { background: var(--color-navy); }

/* 모바일 드로어 */
.mobile-drawer {
    display: none; position: fixed; top: 76px; left: 0; right: 0; bottom: 0;
    background: var(--color-hanji); z-index: 999;
    overflow-y: auto; padding: 24px 24px 48px;
    transform: translateX(100%); transition: transform 0.35s ease;
}
.mobile-drawer.open { transform: translateX(0); }
.mob-section { margin-bottom: 28px; }
.mob-section-head {
    display: block; font-family: 'Noto Serif KR', serif; font-weight: 600;
    font-size: 1rem; color: var(--color-navy);
    padding: 12px 0; border-bottom: 1px solid var(--color-border); margin-bottom: 8px;
}
a.mob-section-head:hover { color: var(--color-blue); }
.mob-section a {
    display: block; padding: 9px 12px; font-size: 0.95rem;
    color: var(--color-text-muted); border-radius: 4px;
}
.mob-section a:hover { background: rgba(36,86,166,.07); color: var(--color-blue); }

/* ━━ 히어로 : 한국 중심 세계지도 + K-콘텐츠 ━━ */
.hero {
    position: relative; min-height: 92vh;
    padding: 120px 0 190px;
    display: flex; align-items: center; justify-content: center; text-align: center;
    background: linear-gradient(165deg, #101d38 0%, #16294a 48%, #1c3c6e 100%);
    overflow: hidden;
}
.hero-map {
    position: absolute; inset: 0; width: 100%; height: 100%;
    object-fit: cover; pointer-events: none;
}

/* 물결 링 */
@keyframes ripple {
    0%   { transform: translate(-50%,-50%) scale(0.55); opacity: .55; }
    100% { transform: translate(-50%,-50%) scale(1.9);  opacity: 0; }
}
.hero-ripple {
    position: absolute; left: 50%; top: 52%;
    width: 340px; height: 340px; border-radius: 50%;
    border: 1.5px solid rgba(230,201,106,.7);
    transform: translate(-50%,-50%);
    animation: ripple 5.5s ease-out infinite; pointer-events: none;
}
.hero-ripple:nth-child(2) { animation-delay: 1.8s; }
.hero-ripple:nth-child(3) { animation-delay: 3.6s; }

/* K-콘텐츠 오빗 칩 */
@keyframes chipFloat {
    0%,100% { transform: translateY(0); }
    50%     { transform: translateY(-10px); }
}
.k-chip {
    position: absolute; z-index: 2;
    padding: 6px 16px; border-radius: 30px;
    font-size: 0.82rem; font-weight: 700; letter-spacing: 1px;
    color: #fff; backdrop-filter: blur(4px);
    animation: chipFloat 6s ease-in-out infinite;
    box-shadow: 0 6px 18px rgba(0,0,0,.25);
    white-space: nowrap;
}
.k-chip small { display:block; font-size: 0.6rem; font-weight: 400; letter-spacing: 0.5px; opacity:.85; line-height:1.2; }
.k-chip.c1 { background: rgba(200,64,47,.88);  left: 8%; top: 34%; animation-delay: 0s; }
.k-chip.c2 { background: rgba(36,86,166,.88);  right: 7%; top: 30%; animation-delay: 1.2s; }
.k-chip.c3 { background: rgba(42,122,75,.88);  left: 10%; bottom: 24%; animation-delay: 2.1s; }
.k-chip.c4 { background: rgba(201,162,39,.92); right: 9%; bottom: 27%; animation-delay: 0.7s; }
.k-chip.c5 { background: rgba(140,35,50,.88);  left: 21%; top: 15%; animation-delay: 1.7s; }
.k-chip.c6 { background: rgba(27,58,107,.92); border:1px solid rgba(255,255,255,.35); right: 20%; top: 13%; animation-delay: 2.6s; }

.hero-content {
    position: absolute; z-index: 3; color: white;
    top: 15%; left: 50%; transform: translateX(-50%);
}
.hero-badge {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 9px 26px;
    border: 1px solid rgba(230,201,106,.6); color: var(--color-gold-light);
    font-size: 1rem; border-radius: 30px;
    font-family: 'Noto Serif KR', serif; letter-spacing: 2px;
    background: rgba(15,29,54,.4); backdrop-filter: blur(4px);
    opacity: 0; animation: fadeIn 1.2s forwards 0.3s;
    white-space: nowrap;
}
/* 헤드카피: 키워드 포함 한 문장, 한두 줄 */
.hero-title {
    font-size: 3.2rem; font-weight: 700; margin-bottom: 20px;
    line-height: 1.35; letter-spacing: -0.5px;
    text-shadow: 0 2px 20px rgba(0,0,0,0.35);
    opacity: 0; transform: translateY(28px);
    animation: fadeUp 1s cubic-bezier(0.2,0.8,0.2,1) forwards 0.3s;
}
.hero-title em {
    font-style: normal;
    background: linear-gradient(90deg, var(--color-gold-light), #f2dd9a);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero-subtitle {
    font-size: 1.08rem; font-weight: 300; line-height: 1.9;
    color: rgba(255,255,255,.82);
    opacity: 0; transform: translateY(28px);
    animation: fadeUp 1s cubic-bezier(0.2,0.8,0.2,1) forwards 0.6s;
}
.hero-scroll {
    position: absolute; bottom: 130px; left: 50%; transform: translateX(-50%);
    color: rgba(255,255,255,.45); font-size: 0.78rem; letter-spacing: 2px; z-index: 3;
}

/* ━━ 퀵링크 바 : 상세 내용으로 들어가는 readable 링크 ━━ */
.quicklink-wrap {
    position: relative; z-index: 4; margin-top: -86px;
}
.quicklink-grid {
    display: grid; grid-template-columns: repeat(5, 1fr);
    background: var(--color-white); border-radius: 14px;
    box-shadow: 0 18px 50px rgba(15,29,54,.16);
    overflow: hidden;
}
.quicklink {
    padding: 30px 18px 26px; text-align: center;
    border-right: 1px solid var(--color-border);
    transition: background 0.3s ease; position: relative;
}
.quicklink:last-child { border-right: none; }
.quicklink::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px;
    transform: scaleX(0); transition: transform .3s ease;
}
.quicklink:nth-child(1)::before { background: var(--color-blue); }
.quicklink:nth-child(2)::before { background: var(--color-green); }
.quicklink:nth-child(3)::before { background: var(--color-gold); }
.quicklink:nth-child(4)::before { background: var(--color-red); }
.quicklink:nth-child(5)::before { background: var(--color-crimson); }
.quicklink:hover { background: var(--color-hanji); }
.quicklink:hover::before { transform: scaleX(1); }
.quicklink-icon {
    width: 46px; height: 46px; border-radius: 50%;
    margin: 0 auto 12px; display: flex; align-items: center; justify-content: center;
    font-family: 'Noto Serif KR', serif; font-size: 1.15rem; font-weight: 700; color: #fff;
}
.quicklink:nth-child(1) .quicklink-icon { background: var(--color-blue); }
.quicklink:nth-child(2) .quicklink-icon { background: var(--color-green); }
.quicklink:nth-child(3) .quicklink-icon { background: var(--color-gold); }
.quicklink:nth-child(4) .quicklink-icon { background: var(--color-red); }
.quicklink:nth-child(5) .quicklink-icon { background: var(--color-crimson); }
.quicklink strong { display: block; font-size: 1.02rem; font-weight: 700; color: var(--color-navy); margin-bottom: 3px; }
.quicklink span { font-size: 0.8rem; color: var(--color-text-muted); }

/* ━━ 통계 띠 ━━ */
.stats-strip { padding: 76px 0 0; }
.stats-inner {
    display: grid; grid-template-columns: repeat(4,1fr); gap: 20px;
    max-width: 1200px; margin: 0 auto; padding: 0 40px;
}
.stat-cell {
    text-align: center; padding: 30px 16px;
    background: var(--color-white); border-radius: 12px;
    border: 1px solid var(--color-border); border-bottom-width: 3px;
}
.stat-cell:nth-child(1) { border-bottom-color: var(--color-blue); }
.stat-cell:nth-child(2) { border-bottom-color: var(--color-green); }
.stat-cell:nth-child(3) { border-bottom-color: var(--color-gold); }
.stat-cell:nth-child(4) { border-bottom-color: var(--color-red); }
.stat-num {
    font-family: 'Noto Serif KR', serif;
    font-size: 2.1rem; font-weight: 700; color: var(--color-navy);
    line-height: 1; margin-bottom: 8px;
}
.stat-desc { font-size: 0.88rem; color: var(--color-text-muted); letter-spacing: 0.5px; }

/* ━━ 문화교실 : 간단명료 ━━ */
.programs-section { background: var(--color-hanji); }
.programs-head { text-align: center; margin-bottom: 48px; }
.programs-head .section-label { justify-content: center; }
.programs-head .section-label::after { content: ''; width: 30px; height: 2px;
    background: linear-gradient(90deg, var(--color-red), var(--color-blue)); }
.program-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.program-card {
    background: var(--color-white); padding: 38px 32px 32px;
    border-radius: 14px; border: 1px solid var(--color-border);
    position: relative; overflow: hidden; transition: all 0.4s ease;
    display: flex; flex-direction: column; align-items: flex-start;
}
.program-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px;
}
.program-card:nth-child(1)::before { background: var(--color-blue); }
.program-card:nth-child(2)::before { background: var(--color-green); }
.program-card:nth-child(3)::before { background: var(--color-red); }
.program-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(15,29,54,0.1); }
.program-char {
    width: 58px; height: 58px; border-radius: 14px;
    display: flex; align-items: center; justify-content: center;
    font-family: 'Noto Serif KR', serif;
    font-size: 1.7rem; font-weight: 700; color: #fff; margin-bottom: 18px;
}
.program-card:nth-child(1) .program-char { background: linear-gradient(135deg, var(--color-blue), #3a74c9); }
.program-card:nth-child(2) .program-char { background: linear-gradient(135deg, var(--color-green), #3d9e66); }
.program-card:nth-child(3) .program-char { background: linear-gradient(135deg, var(--color-red), #a32e20); }
.program-title { font-size: 1.3rem; color: var(--color-navy); margin-bottom: 8px; font-weight: 600; }
.program-desc { font-size: 0.95rem; color: var(--color-text-muted); margin-bottom: 20px; }
.program-card-link {
    display: inline-flex; align-items: center; gap: 6px; margin-top: auto;
    font-size: 0.9rem; font-weight: 700; transition: gap 0.2s ease;
}
.program-card:nth-child(1) .program-card-link { color: var(--color-blue); }
.program-card:nth-child(2) .program-card-link { color: var(--color-green); }
.program-card:nth-child(3) .program-card-link { color: var(--color-red); }
.program-card-link:hover { gap: 10px; }

/* ━━ 공지사항 + 학술지(KCI 부각) ━━ */
.news-section { background: var(--color-white); border-top: 1px solid var(--color-border); }
.news-grid { display: grid; grid-template-columns: 3fr 2fr; gap: 56px; align-items: stretch; }
.news-list-head {
    display: flex; justify-content: space-between; align-items: flex-end;
    padding-bottom: 16px; border-bottom: 2px solid var(--color-navy);
}
.news-list-head h3 { font-size: 1.45rem; font-weight: 600; color: var(--color-navy); }
.news-all-link { font-size: 0.9rem; color: var(--color-blue); font-weight: 500; }
.news-item {
    display: flex; justify-content: space-between; align-items: center;
    padding: 20px 12px; border-bottom: 1px solid var(--color-border);
    transition: background 0.3s ease; cursor: pointer; gap: 20px;
}
.news-item:hover { background: var(--color-hanji); }
.news-item:hover .news-title { color: var(--color-blue); }
.news-title {
    font-size: 1.02rem; font-weight: 500; color: var(--color-text-main);
    line-height: 1.5; transition: color .2s;
    display: flex; align-items: baseline; gap: 10px;
}
.news-title::before {
    content: ''; width: 6px; height: 6px; border-radius: 50%;
    background: var(--color-gold); flex-shrink: 0; position: relative; top: -2px;
}
.news-date { font-size: 0.88rem; color: var(--color-text-muted); white-space: nowrap; flex-shrink: 0; }

/* 학술지 카드 — KCI 부각 */
.journal-card {
    background: linear-gradient(165deg, #faf7ef 0%, #f1ecdf 60%, #e9e2d1 100%);
    border: 1px solid #e2dac6;
    border-radius: 16px; overflow: hidden; position: relative;
    display: flex; flex-direction: column;
}
.journal-card::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 5px;
    background: linear-gradient(90deg, var(--color-blue), var(--color-green), var(--color-gold), var(--color-red), var(--color-crimson));
}
.journal-card::after {
    content: ''; position: absolute; right: -70px; bottom: -70px;
    width: 240px; height: 240px; border-radius: 50%;
    border: 40px solid rgba(140,35,50,.07); pointer-events: none;
}
.journal-card-top { padding: 22px 30px 12px; }
.kci-badge {
    display: inline-flex; align-items: center; gap: 8px;
    background: linear-gradient(135deg, var(--color-crimson), #6d1a27);
    color: #fff; font-weight: 700; font-size: 0.92rem;
    padding: 6px 14px; border-radius: 30px; margin-bottom: 10px;
    box-shadow: 0 6px 18px rgba(140,35,50,.3); letter-spacing: 0.5px;
}
.kci-badge strong { font-size: 1.05rem; letter-spacing: 1px; }
.journal-card h3 { font-size: 1.35rem; color: var(--color-navy); line-height: 1.4; margin-bottom: 5px; }
.journal-card-issn { font-size: 0.85rem; color: var(--color-text-muted); }
.journal-card-body { padding: 0 30px 22px; position: relative; z-index: 1; margin-top: auto; }
.journal-card-body p { font-size: 0.92rem; color: var(--color-text); line-height: 1.7; margin-bottom: 13px; }
.journal-card-body p b { color: var(--color-crimson); font-weight: 700; }
.btn-gold {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 10px 22px; border-radius: 6px;
    background: var(--color-gold); color: #fff;
    font-size: 0.95rem; font-weight: 700;
    transition: all 0.3s ease; font-family: 'Noto Serif KR', serif;
}
.btn-gold:hover { background: var(--color-gold-light); color: var(--color-navy); }

/* ━━ Support Us : 첫 페이지에서 바로 보이는 후원안내 ━━ */
.support-section {
    position: relative;
    background:
        radial-gradient(ellipse 60% 80% at 85% 20%, rgba(201,162,39,.14) 0%, transparent 60%),
        radial-gradient(ellipse 50% 70% at 10% 90%, rgba(36,86,166,.12) 0%, transparent 60%),
        var(--color-hanji2);
    border-top: 1px solid var(--color-border);
}
.support-inner {
    max-width: 1200px; margin: 0 auto; padding: 90px 40px;
    display: grid; grid-template-columns: 1fr 1.15fr; gap: 60px; align-items: center;
}
.support-label {
    font-size: 0.85rem; font-weight: 700; letter-spacing: 4px;
    text-transform: uppercase;
    background: linear-gradient(90deg, var(--color-red), var(--color-gold));
    -webkit-background-clip: text; background-clip: text; color: transparent;
    margin-bottom: 14px;
}
.support-title { font-size: 2.2rem; font-weight: 600; color: var(--color-navy); line-height: 1.4; margin-bottom: 16px; }
.support-desc { font-size: 1.02rem; color: var(--color-text-muted); line-height: 1.9; margin-bottom: 26px; }
.support-more {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 0.95rem; font-weight: 700; color: var(--color-crimson);
}
.support-more:hover { gap: 12px; }

.support-cards { display: flex; flex-direction: column; gap: 16px; }
.support-card {
    background: var(--color-white); border-radius: 14px;
    padding: 26px 30px; display: flex; align-items: center; gap: 22px;
    box-shadow: 0 8px 28px rgba(15,29,54,.07);
    border: 1px solid var(--color-border);
}
.support-card-icon {
    width: 52px; height: 52px; border-radius: 14px; flex-shrink: 0;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.35rem; color: #fff; font-family: 'Noto Serif KR', serif; font-weight: 700;
}
.support-card:nth-child(1) .support-card-icon { background: linear-gradient(135deg, var(--color-gold), #b0871a); }
.support-card:nth-child(2) .support-card-icon { background: linear-gradient(135deg, var(--color-blue), #3a74c9); }
.support-card:nth-child(3) .support-card-icon { background: linear-gradient(135deg, var(--color-green), #3d9e66); }
.support-card-text { flex: 1; }
.support-card-text small {
    display: block; font-size: 0.8rem; color: var(--color-text-muted);
    letter-spacing: 1px; margin-bottom: 3px;
}
.support-card-text strong {
    font-size: 1.18rem; font-weight: 700; color: var(--color-navy);
    font-family: 'Noto Serif KR', serif; letter-spacing: 0.3px;
}
.support-card-text strong span { display: block; font-size: 0.85rem; color: var(--color-text-muted); font-family: 'Noto Sans KR', sans-serif; font-weight: 400; }
.copy-btn {
    flex-shrink: 0; padding: 8px 16px; border-radius: 30px;
    border: 1.5px solid var(--color-border); background: none;
    font-size: 0.82rem; color: var(--color-text-muted); cursor: pointer;
    transition: all .2s ease; font-family: inherit;
}
.copy-btn:hover { border-color: var(--color-gold); color: var(--color-dark-gold); }

/* ━━ 푸터 : 이사장만 표기, 링크 중복 최소화 ━━ */
footer { background: var(--color-navy-deep); color: rgba(255,255,255,.5); font-size: 0.93rem; }
.footer-inner { max-width: 1200px; margin: 0 auto; padding: 60px 40px 32px; }
.footer-top {
    display: grid; grid-template-columns: 2fr 1fr;
    gap: 48px; padding-bottom: 40px;
    border-bottom: 1px solid rgba(255,255,255,.08); margin-bottom: 26px;
}
.footer-logo-row { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; }
.footer-logo-row .logo-mark { width: 38px; height: 38px; }
.footer-logo {
    font-family: 'Noto Serif KR', serif; font-size: 1.25rem; color: rgba(255,255,255,.88); line-height: 1.3;
}
.footer-logo span { display: block; font-size: 0.72rem; font-family: 'Noto Sans KR', sans-serif; color: rgba(255,255,255,.32); letter-spacing: 1.5px; margin-top: 2px; }
.footer-info p { margin-bottom: 6px; line-height: 1.7; }
.footer-col h4 { font-size: 0.78rem; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: rgba(255,255,255,.32); margin-bottom: 16px; }
.footer-col a { display: block; margin-bottom: 10px; color: rgba(255,255,255,.45); font-size: 0.92rem; transition: color 0.2s; }
.footer-col a:hover { color: var(--color-gold-light); }
.footer-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 26px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid rgba(255,255,255,.08); }
.footer-links a { color: rgba(255,255,255,.55); font-size: 0.88rem; transition: color 0.2s; }
.footer-links a:first-child { color: var(--color-gold-light); font-weight: 700; }
.footer-links a:hover { color: var(--color-gold-light); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; }
.footer-copyright { font-size: 0.82rem; color: rgba(255,255,255,.25); }

/* ━━ 애니메이션 ━━ */
.reveal { opacity: 0; transform: translateY(36px); transition: all 0.8s cubic-bezier(0.2,0.8,0.2,1); }
.reveal.active { opacity: 1; transform: translateY(0); }
@keyframes fadeUp { to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn { to { opacity: 1; } }

/* ━━ 레이어 팝업 ━━ */
.popup-overlay {
    position: fixed; inset: 0; z-index: 9000;
    background: rgba(15,29,54,0.65);
    backdrop-filter: blur(4px);
    display: flex; align-items: center; justify-content: center; padding: 20px;
    opacity: 0; animation: popupFadeIn 0.4s ease 0.8s forwards;
}
.popup-overlay.hidden { display: none; }
@keyframes popupFadeIn { to { opacity: 1; } }
.popup-window {
    background: var(--color-white);
    border-radius: 8px; overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,0.35);
    max-width: 500px; width: 100%;
    transform: translateY(24px);
    animation: popupSlideUp 0.45s cubic-bezier(0.2,0.8,0.2,1) 0.8s forwards;
}
@keyframes popupSlideUp { to { transform: translateY(0); } }
.popup-img { display: block; width: 100%; max-height: 70vh; object-fit: contain; }
.popup-footer {
    display: flex; align-items: center; justify-content: space-between;
    padding: 13px 20px; background: var(--color-navy);
}
.popup-no-today { display: flex; align-items: center; gap: 8px; cursor: pointer; user-select: none; }
.popup-no-today input[type="checkbox"] {
    appearance: none; -webkit-appearance: none;
    width: 16px; height: 16px; border: 1.5px solid rgba(255,255,255,.3);
    border-radius: 3px; cursor: pointer; position: relative;
    flex-shrink: 0; transition: all 0.2s ease;
}
.popup-no-today input[type="checkbox"]:checked { background: var(--color-gold); border-color: var(--color-gold); }
.popup-no-today input[type="checkbox"]:checked::after {
    content: ''; position: absolute;
    left: 4px; top: 1px; width: 5px; height: 9px;
    border: 2px solid white; border-top: none; border-left: none;
    transform: rotate(45deg);
}
.popup-no-today span { font-size: 0.85rem; color: rgba(255,255,255,.55); }
.popup-close-btn {
    font-size: 0.85rem; color: rgba(255,255,255,.45);
    background: none; border: none; cursor: pointer;
    padding: 4px 8px; transition: color 0.2s; font-family: inherit;
}
.popup-close-btn:hover { color: rgba(255,255,255,.85); }

/* ══════════ 수정의견 반영 추가 스타일 ══════════ */

/* 로고 한자 병기 */
.logo-text small { text-transform: none; }
.footer-logo em {
    font-style: normal; font-family: 'Noto Serif KR', serif;
    font-size: 0.95rem; color: rgba(255,255,255,.62);
    margin-left: 7px; letter-spacing: 1.5px;
}

/* 히어로 : 재단 로고(엠블럼) 중심 + 메인 카피 복원 */
.hero-content {
    position: relative; top: auto; left: auto; transform: none;
    display: flex; flex-direction: column; align-items: center;
    padding: 0 24px; max-width: 880px; width: 100%;
}
.hero-emblem {
    width: 128px; height: 128px; margin-bottom: 26px;
    filter: drop-shadow(0 12px 32px rgba(0,0,0,.5));
    opacity: 0; transform: scale(.82);
    animation: emblemIn 1s cubic-bezier(0.2,0.8,0.2,1) forwards 0.15s;
}
@keyframes emblemIn { to { opacity: 1; transform: scale(1); } }
.hero-badge { margin-bottom: 22px; }
.hero-title { font-size: 3rem; max-width: 780px; }
.hero-subtitle { max-width: 660px; margin-top: 2px; }

/* 퀵링크 : GNB 중복 대신 '자주 찾는 서비스' — 원형 한자 대신 SVG 아이콘 */
.quicklink-icon svg { width: 24px; height: 24px; stroke: #fff; fill: none;
    stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.quicklink-bar-head {
    text-align: center; font-size: 0.78rem; font-weight: 700; letter-spacing: 3px;
    color: var(--color-text-muted); text-transform: uppercase; margin-bottom: 14px;
}

/* 프로그램 카드 : 원형 한자 대신 SVG 아이콘 */
.program-char svg { width: 30px; height: 30px; stroke: #fff; fill: none;
    stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ━━ 문화영토연구회 가입 안내 ━━ */
.society-section { background: var(--color-white); border-top: 1px solid var(--color-border); }
.society-inner {
    max-width: 1200px; margin: 0 auto; padding: 84px 40px;
    display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center;
}
.society-copy .section-label { color: var(--color-green); }
.society-copy .section-label::before { background: linear-gradient(90deg, var(--color-green), var(--color-gold)); }
.society-title { font-family:'Noto Serif KR',serif; font-size: 2rem; font-weight: 600;
    color: var(--color-navy); line-height: 1.4; margin-bottom: 16px; }
.society-title em { font-style: normal; color: var(--color-green); }
.society-desc { font-size: 1.02rem; color: var(--color-text-muted); line-height: 1.9; margin-bottom: 26px; }
.society-btns { display: flex; gap: 12px; flex-wrap: wrap; }
.btn-primary {
    display:inline-flex; align-items:center; gap:8px; padding:13px 28px; border-radius:8px;
    background: linear-gradient(135deg, var(--color-green), #1f6b3f); color:#fff;
    font-weight:700; font-size:0.95rem; box-shadow: 0 8px 20px rgba(42,122,75,.28);
    transition: all .3s ease; font-family: inherit;
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(42,122,75,.42); }
.btn-outline {
    display:inline-flex; align-items:center; gap:8px; padding:13px 28px; border-radius:8px;
    border:1.5px solid var(--color-border); color: var(--color-navy);
    font-weight:700; font-size:0.95rem; transition: all .3s ease;
}
.btn-outline:hover { border-color: var(--color-green); color: var(--color-green); }
.society-benefits {
    background: var(--color-hanji); border:1px solid var(--color-border);
    border-radius:16px; padding:32px 34px;
}
.society-benefits h4 { font-family:'Noto Serif KR',serif; font-size:1.12rem;
    color:var(--color-navy); margin-bottom:16px; }
.benefit-item { display:flex; gap:14px; align-items:flex-start; padding:13px 0;
    border-bottom:1px dashed var(--color-border); }
.benefit-item:last-child { border-bottom:none; }
.benefit-ic { width:36px; height:36px; flex-shrink:0; border-radius:10px;
    background:rgba(42,122,75,.1); display:flex; align-items:center; justify-content:center; color:var(--color-green); }
.benefit-ic svg { width:18px; height:18px; stroke:currentColor; fill:none;
    stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.benefit-txt strong { display:block; font-size:0.98rem; color:var(--color-navy); font-weight:600; line-height:1.4; }
.benefit-txt span { font-size:0.88rem; color:var(--color-text-muted); }

/* 헤더 보조 CTA (연구회 가입) */
.nav-cta.secondary { background: var(--color-crimson); color: #fff; }

/* 학술지 「문화영토연구」 : 평면 → 입체(3D) 표지 */
.journal-3d { perspective: 900px; display:flex; justify-content:center; margin: 2px 0 14px; }
.journal-book {
    position: relative; width: 104px; height: 145px;
    transform: rotateY(-22deg) rotateX(5deg); transform-style: preserve-3d;
    animation: bookFloat 5.5s ease-in-out infinite; transition: transform .5s ease;
}
.journal-card:hover .journal-book { transform: rotateY(-10deg) rotateX(2deg); }
@keyframes bookFloat {
    0%,100% { transform: rotateY(-22deg) rotateX(5deg) translateY(0); }
    50%     { transform: rotateY(-22deg) rotateX(5deg) translateY(-10px); }
}
.journal-book-cover {
    position:absolute; inset:0; border-radius: 3px 8px 8px 3px;
    background: linear-gradient(150deg, #efebe0 0%, #e3ddcd 55%, #d6cfba 100%);
    box-shadow: 0 28px 52px rgba(0,0,0,.5), inset 0 0 0 1px rgba(230,201,106,.28);
    padding: 14px 10px; display:flex; flex-direction:column; overflow:hidden;
}
.journal-book-cover::before { content:''; position:absolute; left:0; top:0; bottom:0;
    width:9px; background: linear-gradient(var(--color-crimson), #6d1a27); }
.journal-book-cover::after { content:''; position:absolute; top:0; right:0;
    width:45%; height:100%; background: linear-gradient(105deg, transparent, rgba(255,255,255,.28)); }
.jb-line { width:34px; height:2px; background:var(--color-crimson); margin:0 0 14px 6px; }
.jb-title { font-family:'Noto Serif KR',serif; font-size:1.32rem; font-weight:700;
    color:#fff; line-height:1.28; margin-left:6px;
    background: linear-gradient(135deg, var(--color-crimson), #7a1c2b);
    align-self:flex-start; padding:8px 11px; box-shadow:0 4px 10px rgba(109,26,39,.25); }
.jb-hanja { font-family:'Noto Serif KR',serif; font-size:0.7rem;
    color:var(--color-crimson); letter-spacing:3px; margin:9px 0 0 6px; }
.jb-vol { margin-top:auto; margin-left:6px; font-size:0.64rem;
    color:#8a8272; letter-spacing:1px; }

/* 레이어 팝업 → 우측 하단 골드 포인트 카드 (중앙 근조풍 → 측면·컬러) */
.popup-overlay {
    position: fixed; inset: auto 26px 26px auto; z-index: 9000;
    width: 330px; max-width: calc(100vw - 40px);
    background: none; backdrop-filter: none; display: block; padding: 0;
    opacity: 0; animation: popupFadeIn 0.5s ease 0.6s forwards;
}
.popup-window {
    max-width: none; width: 100%; border-radius: 14px; overflow:hidden;
    box-shadow: 0 22px 54px rgba(15,29,54,.42);
    transform: translateY(30px);
    animation: popupSlideUp 0.55s cubic-bezier(0.2,0.8,0.2,1) 0.6s forwards;
}
.popup-accent { height: 6px; background: linear-gradient(90deg, var(--color-gold), var(--color-red), var(--color-crimson)); }
.popup-body { padding: 20px 20px 16px; display:flex; gap:15px; align-items:flex-start; background:var(--color-white); }
.popup-mini-cover {
    width:56px; height:78px; flex-shrink:0; border-radius:2px 5px 5px 2px;
    background: linear-gradient(140deg,#1d3a70,#0f1d36); color:#fff;
    box-shadow: 0 8px 16px rgba(0,0,0,.3); border-left:5px solid var(--color-gold);
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    font-family:'Noto Serif KR',serif; font-size:0.82rem; line-height:1.35; letter-spacing:1px;
}
.popup-text { flex:1; }
.popup-tag { display:inline-block; font-size:0.68rem; font-weight:700; letter-spacing:1px;
    color:#fff; background:var(--color-red); padding:3px 11px; border-radius:20px; margin-bottom:8px; }
.popup-text h4 { font-family:'Noto Serif KR',serif; font-size:1.0rem;
    color:var(--color-navy); line-height:1.4; margin-bottom:6px; }
.popup-text p { font-size:0.81rem; color:var(--color-text-muted); margin-bottom:10px; line-height:1.6; }
.popup-cta { font-size:0.85rem; font-weight:700; color:var(--color-crimson); }
.popup-cta:hover { text-decoration: underline; }
.popup-footer { background: var(--color-hanji2); padding: 9px 16px; }
.popup-no-today span { color: var(--color-text-muted); }
.popup-no-today input[type="checkbox"] { border-color: var(--color-border); }
.popup-close-btn { color: var(--color-text-muted); }
.popup-close-btn:hover { color: var(--color-navy); }


/* ━━ 신규 메인비주얼 공통 ━━ */
.hero{min-height:max(92vh,860px)}
.dn-layer{position:absolute;inset:0;transition:opacity 1s ease-in-out}
.hero-video{position:absolute;left:40px;top:50%;transform:translateY(-56%);z-index:4;height:46vh;width:calc(50vw - 400px);max-width:34vw;border-radius:10px;overflow:hidden;display:flex;flex-direction:column}
.hero-video video{width:100%;flex:1;min-height:0;object-fit:cover;display:block;background:#000}
.hero-video{z-index:6}
.hero-video .hv-label{display:block;padding:9px 14px;font-size:.78rem;letter-spacing:.5px;flex-shrink:0}
.hero-search{position:absolute;left:40px;bottom:120px;z-index:4;display:flex;align-items:center;gap:8px;width:calc(50vw - 400px);max-width:34vw;padding:11px 16px;border-radius:8px;backdrop-filter:blur(6px)}
.hero-search svg{width:16px;height:16px;flex-shrink:0}
.hero-search input{flex:1;min-width:0;border:0;background:transparent;outline:none;font-family:inherit;font-size:.86rem}
@media (max-width:1359px){.hero-video{display:none}}
@keyframes ringSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes cloudDrift{from{transform:translateX(-140px)}to{transform:translateX(110vw)}}
@keyframes threadFlow{to{stroke-dashoffset:-260}}
@keyframes glowPulse2{0%,100%{opacity:.35}50%{opacity:.75}}
@keyframes emberRise{0%{transform:translateY(0);opacity:0}12%{opacity:.9}100%{transform:translateY(-70vh);opacity:0}}
@keyframes floatY2{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes rippleBig{0%{transform:translate(-50%,-50%) scale(.55);opacity:.55}100%{transform:translate(-50%,-50%) scale(1.55);opacity:0}}
@keyframes shootStar{0%{transform:translate(0,0) rotate(-24deg);opacity:0}6%{opacity:1}22%{transform:translate(-420px,187px) rotate(-24deg);opacity:0}100%{transform:translate(-420px,187px) rotate(-24deg);opacity:0}}
@keyframes patchGlow{0%,100%{opacity:.18}50%{opacity:.85}}
.bojagi-patch{border:1px solid rgba(93,22,34,.09);border-radius:2px;transition:background .5s,box-shadow .5s}
.bojagi-patch:hover{background:var(--hov)!important;box-shadow:0 0 22px var(--hovs)}
.hero-hanja{position:absolute;top:50%;transform:translateY(-50%);writing-mode:vertical-rl;font-family:'Noto Serif KR',serif;font-size:1.3rem;letter-spacing:12px;z-index:2;pointer-events:none}
.hero-side-cards{position:absolute;right:40px;bottom:178px;display:flex;gap:10px;z-index:4}
.hero-ct-badge{position:absolute;right:40px;bottom:120px;display:flex;align-items:center;gap:8px;padding:11px 18px;background:rgba(140,35,50,.9);color:#fff;border-radius:6px;font-size:.78rem;letter-spacing:1px;box-shadow:0 8px 20px rgba(93,22,34,.25);z-index:4}
.hero-corner{position:absolute;width:54px;height:54px;opacity:.5;pointer-events:none;z-index:2}
@media (max-width:1180px){.hero-hanja,.hero-side-cards,.hero-ct-badge,.hero-corner,.hero-video,.hero-search{display:none}}
/* ━━ 반응형 ━━ */
@media (max-width: 1024px) {
    .news-grid, .support-inner, .society-inner { grid-template-columns: 1fr; gap: 40px; }
    .program-grid { grid-template-columns: 1fr 1fr; }
    .quicklink-grid { grid-template-columns: repeat(5,1fr); }
    .quicklink span { display: none; }
    .footer-top { grid-template-columns: 1fr; }
    .gnb { display: none; }
    .header-actions .nav-cta { display: none; }
    .hamburger { display: flex; }
    .mobile-drawer { display: block; }
    .k-chip.c5, .k-chip.c6 { display: none; }
}
@media (max-width: 768px) {
    .program-grid { grid-template-columns: 1fr; }
    .hero-title { font-size: 2.2rem; }
    .stats-inner { grid-template-columns: repeat(2,1fr); }
    .quicklink-grid { grid-template-columns: repeat(3,1fr); border-radius: 14px; }
    .quicklink:nth-child(4), .quicklink:nth-child(5) { border-top: 1px solid var(--color-border); }
    .k-chip { display: none; }
    .support-title { font-size: 1.7rem; }
    .support-card { flex-wrap: wrap; }
}
@media (max-width: 560px) {
    .popup-window { max-width: 95vw; }
    .popup-img { max-height: 60vh; }
    .logo-text { font-size: 1.15rem; }
}

/* ══════════════════════════════════════════════════════
   리뉴얼 테마 추가 스타일 (서브페이지 · 게시판 · 레거시 콘텐츠)
   ══════════════════════════════════════════════════════ */
img { max-width: 100%; height: auto; }
.sound_only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); margin:-1px; }
#hd_login_msg { position:fixed; top:76px; right:0; z-index:1001; background:var(--color-navy); color:#fff; font-size:.8rem; padding:4px 14px; border-radius:0 0 0 8px; }
#hd_login_msg a { color:var(--color-gold-light); margin-left:8px; }

/* 헤더: 서브페이지는 항상 밝은 헤더 */
header.sub-header { background: rgba(250,248,243,0.97); box-shadow:0 1px 0 rgba(0,0,0,0.08); }
header.sub-header .logo-light { display:none; } header.sub-header .logo-dark { display:block; }
header.sub-header .gnb-top { color: var(--color-navy); }
header.sub-header .hamburger span { background: var(--color-navy); }
.gnb-item > a.gnb-top { text-decoration:none; }

/* 서브 타이틀 밴드 */
.sub-visual { margin-top:76px; background: linear-gradient(165deg,#101d38 0%,#16294a 48%,#1c3c6e 100%); color:#fff; position:relative; overflow:hidden; }
.sub-visual::after { content:''; position:absolute; right:-120px; top:-140px; width:420px; height:420px; border-radius:50%; border:1px dashed rgba(230,201,106,.35); pointer-events:none; }
.sub-visual::before { content:''; position:absolute; right:-60px; top:-80px; width:300px; height:300px; border-radius:50%; border:1px solid rgba(200,90,112,.3); pointer-events:none; }
.sub-visual-inner { max-width:1200px; margin:0 auto; padding:54px 40px 46px; display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; position:relative; z-index:1; }
.sub-visual h1 { font-size:2.3rem; font-weight:700; color:#fff; line-height:1.2; }
.sub-visual h1 small { display:block; font-family:'Noto Sans KR',sans-serif; font-size:.75rem; font-weight:400; letter-spacing:3px; color:var(--color-gold-light); margin-bottom:10px; text-transform:uppercase; }
.breadcrumbs { font-size:.88rem; color:rgba(255,255,255,.6); display:flex; align-items:center; gap:8px; }
.breadcrumbs a { color:rgba(255,255,255,.85); }
.breadcrumbs span + span::before { content:'›'; margin-right:8px; color:var(--color-gold-light); }

/* 서브 본문 레이아웃 */
#container { max-width:1200px; margin:0 auto; padding:50px 40px 90px; display:grid; grid-template-columns:250px 1fr; gap:40px; align-items:start; }
#container.no-side { grid-template-columns:1fr; }
.submu { position:sticky; top:100px; }
.submutit { font-family:'Noto Serif KR',serif; font-size:1.3rem; font-weight:700; color:#fff; background:var(--color-navy); padding:18px 20px; border-radius:12px 12px 0 0; position:relative; overflow:hidden; }
.submutit::after { content:''; position:absolute; left:0; right:0; bottom:0; height:4px;
    background:linear-gradient(90deg,var(--color-blue) 0 20%,var(--color-green) 20% 40%,var(--color-gold) 40% 60%,var(--color-red) 60% 80%,var(--color-crimson) 80% 100%); }
.submu ul { border:1px solid var(--color-border); border-top:none; border-radius:0 0 12px 12px; background:#fff; overflow:hidden; }
.submu li a { display:flex; align-items:center; gap:8px; padding:13px 20px; font-size:.97rem; color:var(--color-text-main); border-bottom:1px solid var(--color-border); transition:all .2s; }
.submu li:last-child a { border-bottom:none; }
.submu li a::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--color-border); flex-shrink:0; transition:background .2s; }
.submu li a:hover { color:var(--color-blue); background:var(--color-hanji); padding-left:26px; }
.submu li a:hover::before { background:var(--color-red); }
.submu li.active a { color:var(--color-crimson); font-weight:700; background:var(--color-hanji2); }
.submu li.active a::before { background:var(--color-crimson); }
.contents { min-width:0; font-size:17px; line-height:1.7; color:var(--color-text-main); }
.contents .subtit-section { font-family:'Noto Serif KR',serif; font-size:1.7rem; font-weight:600; color:var(--color-navy); padding:0 0 14px; border-bottom:2px solid var(--color-navy); margin-bottom:26px; position:relative; }
.contents .subtit-section::after { content:''; position:absolute; left:0; bottom:-2px; width:60px; height:2px; background:var(--color-crimson); }
.contents .container { width:100%; max-width:none; margin:0; padding:0; }
.contents .container.inner { margin:0 0 30px; }
.legacy-body { background:transparent; padding:0; text-align:justify; word-break:normal; overflow-wrap:break-word; overflow:visible; }
.table-scroll { overflow-x:auto; max-width:100%; }
.legacy-body table, .legacy-body th, .legacy-body td, .legacy-body .text-center { text-align:inherit; }
.legacy-body .text-center { text-align:center; }
.legacy-body table { border-collapse:separate; }
.legacy-body a { color:#0069c1; }
.legacy-body a:hover { text-decoration:underline; }
.legacy-body p { margin:0; }
@media (max-width:1024px) { #container { grid-template-columns:1fr; padding:36px 24px 70px; } .submu { position:static; } .submu ul { display:flex; flex-wrap:wrap; } .submu li { flex:1 1 33%; } .submu li a { border-right:1px solid var(--color-border); justify-content:center; } .submu li a::before { display:none; } .sub-visual h1 { font-size:1.8rem; } .sub-visual-inner { padding:40px 24px 34px; } }
@media (max-width:640px) { .submu li { flex:1 1 50%; } .contents { font-size:15px; } }

/* 레거시 콘텐츠용 클래스 (기존 사이트 custom.css / bootstrap 대응) */
.row { display:flex; flex-wrap:wrap; }
.col-12 { flex:0 0 100%; max-width:100%; }
.text-center { text-align:center; }
.img-responsive { display:block; max-width:100%; height:auto; }
.table { width:100%; }
.btn { display:inline-block; padding:8px 16px; border-radius:4px; border:1px solid transparent; cursor:pointer; font-family:inherit; font-size:inherit; }
.btn-danger { background:#d9534f; color:#fff; border-color:#d43f3a; }
.btn-danger:hover { background:#c9302c; color:#fff; }
.important { font-size:14px; color:#ff6204; } .important02 { font-size:14px; color:#333; } .important_sm { font-size:13px; color:#ff6204; }
.ga1Txt { font-size:2.6rem !important; color:#f95700; font-weight:600; }
.ga2Txt { font-size:1.8rem !important; color:#383838; font-weight:600; }
.ga3Txt { font-size:1em !important; }
.gaBonTxt { font-size:15px !important; padding:0 0 4px 6px !important; }
.gaSmall { font-size:14px !important; }
.dokTable tr td { padding:6px 10px !important; font-size:15px !important; }
.tbl_type_notice, .tbl_type_notice th, .tbl_type_notice td { border:0; }
.tbl_type_notice { width:100%; font-size:14px; text-align:center; border-collapse:collapse; border-bottom:1px solid #caccd2; }
.tbl_type_notice th { padding:12px 0; border-bottom:1px solid #ccc; background:#f7f7f7; font-size:14px; font-weight:normal; color:#333; }
.tbl_type_notice td { padding:8px 5px 6px; border-bottom:1px solid #e8e8ec; color:#666; }
.tbl_type_notice td a { color:#666; }
.tbl_type_notice td:nth-child(2) { text-align:left; }
.tbl_type_notice tbody td:nth-child(2) a:hover { color:#0069c1; text-decoration:underline; }
.tbl_type_notice td.imp { font-weight:bold; }

/* 게시판 목록 */
.rict-board { font-size:.97rem; }
.rict-board .bo-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; font-size:.86rem; color:var(--color-text-muted); }
.rict-board .bo-top .btns { display:flex; gap:6px; }
.rict-board .bo-top .btns a, .rict-board .bo-top .btns button { display:inline-flex; align-items:center; gap:5px; padding:6px 12px; border-radius:20px; border:1px solid var(--color-border); background:#fff; color:var(--color-text-muted); font-size:.82rem; cursor:pointer; font-family:inherit; }
.rict-board .bo-top .btns a:hover, .rict-board .bo-top .btns button:hover { border-color:var(--color-gold); color:var(--color-dark-gold); }
.rict-board .bo-top .btns a.btn_admin { background:var(--color-navy); color:#fff; border-color:var(--color-navy); }
.rict-board table { width:100%; border-collapse:collapse; border-top:2px solid var(--color-navy); }
.rict-board th { padding:13px 8px; background:var(--color-hanji2); font-weight:500; font-size:.9rem; color:var(--color-navy); border-bottom:1px solid var(--color-border); text-align:center; }
.rict-board td { padding:13px 8px; border-bottom:1px solid var(--color-border); text-align:center; color:var(--color-text-muted); font-size:.92rem; }
.rict-board td.td_subject { text-align:left; color:var(--color-text-main); }
.rict-board td.td_subject a { display:inline-flex; align-items:baseline; gap:8px; color:inherit; }
.rict-board td.td_subject a::before { content:''; width:5px; height:5px; border-radius:50%; background:var(--color-gold); flex-shrink:0; position:relative; top:-2px; }
.rict-board td.td_subject a:hover { color:var(--color-blue); }
.rict-board tr.bo_notice td { background:rgba(36,86,166,.04); }
.rict-board .notice_icon { display:inline-block; font-weight:700; color:var(--color-crimson); font-size:.85rem; }
.rict-board .bo_current { color:var(--color-crimson); font-size:.8rem; }
.rict-board .icon_file { display:inline-flex; align-items:center; justify-content:center; width:22px; height:22px; margin-left:6px; border-radius:6px; background:rgba(201,162,39,.14); vertical-align:middle; }
.rict-board .icon_file svg { width:14px; height:14px; fill:none; stroke:var(--color-dark-gold); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.rict-board td.td_subject a { display:inline; }
.rict-board td.td_subject a::before { display:inline-block; margin-right:8px; }
.rict-board .new_icon { display:inline-block; margin-left:6px; font-size:.65rem; font-weight:700; color:#fff; background:var(--color-red); padding:1px 5px; border-radius:3px; vertical-align:middle; }
.rict-board .empty_table { padding:60px 0; color:var(--color-text-muted); }
.rict-board th.w-num, .rict-board td.td_num2 { width:70px; }
.rict-board th.w-date, .rict-board td.td_datetime { width:120px; }
.rict-board th.w-hit, .rict-board td.td_hit { width:80px; }
@media (max-width:640px) { .rict-board th.w-hit, .rict-board td.td_hit, .rict-board th.w-num, .rict-board td.td_num2 { display:none; } }
/* 페이징 */
.pg_wrap { text-align:center; margin:28px 0 10px; }
.pg { display:inline-flex; gap:4px; align-items:center; }
.pg a, .pg strong, .pg span.pg_current { display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 6px; border-radius:8px; border:1px solid var(--color-border); font-size:.88rem; color:var(--color-text-muted); background:#fff; }
.pg a:hover { border-color:var(--color-navy); color:var(--color-navy); }
.pg strong, .pg .pg_current { background:var(--color-navy); color:#fff; border-color:var(--color-navy); font-weight:600; }
/* 검색 */
.bo_sch_wrap { display:none; margin:14px 0 0; }
.bo_sch { display:flex; gap:8px; align-items:center; border:1px solid var(--color-border); border-radius:10px; padding:12px; background:#fff; }
.bo_sch h3 { font-size:.9rem; margin-right:6px; }
.bo_sch select, .bo_sch input[type=text] { padding:8px 10px; border:1px solid var(--color-border); border-radius:6px; font-family:inherit; font-size:.9rem; }
.bo_sch .sch_bar { display:flex; gap:6px; flex:1; }
.bo_sch .sch_bar input { flex:1; }
.bo_sch button { padding:8px 14px; border-radius:6px; border:none; background:var(--color-navy); color:#fff; cursor:pointer; font-family:inherit; }
.bo_sch .bo_sch_cls { background:none; color:var(--color-text-muted); }
.bo_sch_bg { display:none; }

/* 게시글 보기 */
.rict-view .subjectarea { padding:20px 24px; background:var(--color-hanji2); border:1px solid var(--color-border); border-radius:10px; }
.rict-view .subject { font-family:'Noto Serif KR',serif; font-size:1.35rem; font-weight:600; color:var(--color-navy); line-height:1.4; }
.rict-view .dateview { margin-top:8px; font-size:.86rem; color:var(--color-text-muted); }
.rict-view .notice-viewcnt { margin-top:14px; padding:24px; border:1px solid var(--color-border); border-radius:10px; background:#fff; min-height:200px; text-align:justify; word-break:normal; overflow-wrap:break-word; overflow-x:auto; }
.rict-view .notice-viewcnt iframe { max-width:100%; }
.rict-view .attach { padding-bottom:12px; margin-bottom:14px; border-bottom:1px dashed var(--color-border); font-size:.92rem; }
.rict-view .attach a { color:#0069c1; }
.rict-view .attach a:hover { text-decoration:underline; }
.rict-view .attach small { color:var(--color-text-muted); margin-left:6px; }
.rict-view .btnarea { display:flex; justify-content:space-between; align-items:center; margin-top:22px; gap:10px; flex-wrap:wrap; }
.rict-view .btnarea a, .rict-view .btnarea button { display:inline-flex; align-items:center; gap:6px; padding:10px 22px; border-radius:30px; border:1px solid var(--color-border); background:#fff; color:var(--color-text-main); font-size:.9rem; cursor:pointer; font-family:inherit; }
.rict-view .btnarea a.btn-list { background:var(--color-navy); color:#fff; border-color:var(--color-navy); }
.rict-view .btnarea .adm { display:flex; gap:6px; }
.rict-view .bo_v_nb { margin-top:24px; border-top:1px solid var(--color-border); }
.rict-view .bo_v_nb li { display:flex; gap:14px; padding:12px 6px; border-bottom:1px solid var(--color-border); font-size:.92rem; align-items:center; }
.rict-view .bo_v_nb .nb_tit { flex-shrink:0; color:var(--color-text-muted); font-size:.82rem; width:60px; }
.rict-view .bo_v_nb a { color:var(--color-text-main); flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rict-view .bo_v_nb a:hover { color:var(--color-blue); }
.rict-view .bo_v_nb .nb_date { color:var(--color-text-muted); font-size:.82rem; }
#bo_vc, #bo_vc_w { margin-top:30px; }

/* ━━ 팝업레이어 (관리자 > 팝업레이어관리) : 시안 A 우측하단 카드 틀 ━━ */
.rict-pop-stack { position:fixed; right:26px; bottom:26px; z-index:9000; display:flex; flex-direction:row-reverse; flex-wrap:wrap-reverse; align-items:flex-end; gap:16px; max-width:calc(100vw - 40px); font-family:'Noto Sans KR',sans-serif; }
.rict-pop { max-width:calc(100vw - 40px); max-height:calc(100vh - 52px); overflow-y:auto; background:#fff; border-radius:14px; box-shadow:0 24px 60px rgba(18,42,74,.28); opacity:0; transform:translateY(30px); animation:rictPopIn .55s cubic-bezier(.2,.8,.2,1) .6s forwards; }
@keyframes rictPopIn { to { opacity:1; transform:translateY(0); } }
.rict-pop-img img { display:block; max-width:100%; height:auto; }
.rict-pop-head { position:relative; background:linear-gradient(135deg,#123a6b 0%,#1e5aa0 100%); padding:24px 30px 28px; overflow:hidden; }
.rict-pop-circle { position:absolute; border-radius:50%; background:rgba(255,255,255,.05); }
.rict-pop-circle.c1 { top:-60px; right:-60px; width:200px; height:200px; }
.rict-pop-circle.c2 { bottom:-80px; left:-40px; width:180px; height:180px; background:rgba(255,255,255,.04); }
.rict-pop-badge { position:absolute; top:46px; right:20px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:5px; background:#fff; border-radius:12px; padding:10px 13px; box-shadow:0 8px 22px rgba(0,0,0,.22); }
.rict-pop-badge-ic { width:40px; height:40px; border-radius:50%; background:linear-gradient(135deg,#c99a3a,#e6c26b); display:flex; align-items:center; justify-content:center; box-shadow:inset 0 0 0 2px rgba(255,255,255,.55); }
.rict-pop-badge-tx { text-align:center; line-height:1.25; }
.rict-pop-badge-tx .l1 { font-size:9.5px; letter-spacing:.08em; color:#a07a24; font-weight:700; }
.rict-pop-badge-tx .l2 { font-size:11px; color:#123a6b; font-weight:700; }
.rict-pop-eyebrow { display:flex; align-items:center; justify-content:center; gap:9px; color:rgba(255,255,255,.72); font-size:10.5px; letter-spacing:.11em; font-weight:500; white-space:nowrap; }
.rict-pop-eyebrow span { width:16px; height:1px; background:rgba(255,255,255,.45); }
.rict-pop-title-wrap { padding:0 96px; text-align:center; }
.rict-pop-title { margin-top:16px; font-family:'Noto Serif KR',serif; color:#fff; font-size:24px; font-weight:700; letter-spacing:-.01em; line-height:1.32; }
.rict-pop.nobadge .rict-pop-title-wrap { padding:0 20px; }
.rict-pop.nobadge .rict-pop-body { padding-top:22px; }
.rict-pop-sub { margin-top:10px; color:rgba(255,255,255,.82); font-size:13px; font-weight:400; white-space:nowrap; }
.rict-pop-body { padding:26px 30px 4px; }
.rict-pop-detail { color:#2a3441; }
.rict-pop-detail a { color:#2b6cb0; }
.rict-pop-detail a:hover { text-decoration:underline; }
.rict-pop-toggle { display:block; width:100%; margin:0 0 14px; padding:9px 0; background:#f4f7fb; border:1px solid #e3eaf4; border-radius:8px; font-size:12.5px; font-weight:700; color:#1e5aa0; font-family:inherit; cursor:pointer; }
.rict-pop-submit { display:inline-block; margin-bottom:22px; padding:12px 44px; background:#123a6b; color:#fff; border-radius:8px; font-size:13.5px; font-weight:700; letter-spacing:.5px; box-shadow:0 6px 16px rgba(18,58,107,.25); }
.rict-pop-footer { display:flex; align-items:center; justify-content:space-between; background:#f4f7fb; border-top:1px solid #e3eaf4; padding:12px 22px; }
.rict-pop-footer label { display:flex; align-items:center; gap:7px; font-size:12px; color:#6a7482; cursor:pointer; user-select:none; }
.rict-pop-footer input[type=checkbox] { width:14px; height:14px; accent-color:#1e5aa0; }
.rict-pop-close { background:#123a6b; color:#fff; border:none; border-radius:7px; padding:8px 18px; font-size:12.5px; font-weight:700; font-family:inherit; cursor:pointer; }
.rict-pop-close:hover { background:#0e2d54; }
@media (max-width:640px) { .rict-pop-stack { right:12px; bottom:12px; left:12px; max-width:none; flex-direction:column-reverse; align-items:stretch; } .rict-pop { width:auto !important; } .rict-pop-title-wrap { padding:0 20px 0 0; } .rict-pop-title { font-size:20px; } .rict-pop-sub { white-space:normal; } }

/* 메인: 기존 사이트 소개문 · 문화 교실 4칸 */
.intro-lead { padding:80px 0 10px; text-align:center; }
.intro-lead .section-title { margin-bottom:22px; }
.intro-lead .lead { font-size:1.2rem; line-height:1.95; color:var(--color-text-main); font-weight:300; }
.intro-lead .lead .impact-text { color:var(--color-crimson); font-weight:600; }
.program-grid.four { grid-template-columns:repeat(4,1fr); }
.program-card:nth-child(4)::before { background: var(--color-gold); }
.program-card:nth-child(4) .program-char { background: linear-gradient(135deg, var(--color-gold), #b0871a); }
.program-card .icon-list { margin-top:4px; display:flex; flex-direction:column; gap:8px; }
.program-card .icon-list li { display:flex; gap:8px; align-items:baseline; font-size:.95rem; color:var(--color-text-muted); }
.program-card .icon-list li::before { content:'›'; color:var(--color-gold); font-weight:700; }
@media (max-width:1024px) { .program-grid.four { grid-template-columns:1fr 1fr; } }
@media (max-width:640px) { .program-grid.four { grid-template-columns:1fr; } }
.support-card-text strong a { color:var(--color-navy); }
.footer-cert { display:flex; gap:12px; align-items:center; justify-content:flex-end; flex-wrap:wrap; }
.footer-cert img { height:auto; max-width:140px; background:#fff; border-radius:6px; padding:4px; }
.footer-lang { display:flex; gap:14px; margin-left:auto; }
.footer-lang a { font-size:.8rem !important; letter-spacing:1px; }
@media (max-width:1024px) { .footer-cert { justify-content:flex-start; } .footer-lang { margin-left:0; } }

/* ══════════════════════════════════════════════════════
   컨텐츠 디자인 체계 (doc-*)  — 내용 페이지 공통
   ══════════════════════════════════════════════════════ */
.doc { font-size:1rem; line-height:1.9; color:var(--color-text-main); }
.doc p { margin:0 0 16px; }
.doc .serif { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; }
/* 리드(핵심 문장) */
.doc-lead { position:relative; background:#fff; border:1px solid var(--color-border); border-left:5px solid var(--color-gold); border-radius:0 14px 14px 0; padding:26px 30px; margin:0 0 30px; font-size:1.05rem; line-height:2; }
.doc-lead p:last-child { margin-bottom:0; }
.doc-lead.navy { border-left-color:var(--color-crimson); }
/* 소제목 */
.doc-h { display:flex; align-items:center; gap:12px; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.25rem; font-weight:600; color:var(--color-navy); margin:44px 0 18px; }
.doc-h::before { content:''; width:6px; height:22px; border-radius:3px; background:linear-gradient(180deg,var(--color-blue),var(--color-red)); }
.doc-h:first-child { margin-top:0; }
/* 첨부/다운로드 */
.doc-downloads { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 24px; }
.doc-downloads a { display:inline-flex; align-items:center; gap:8px; padding:10px 18px; border-radius:30px; background:#fff; border:1.5px solid var(--color-border); color:var(--color-navy); font-size:.92rem; font-weight:500; transition:all .2s; }
.doc-downloads a::before { content:''; width:16px; height:16px; flex-shrink:0; background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316294a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 01-2 2H5a2 2 0 01-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E"); }
.doc-downloads a:hover { border-color:var(--color-gold); color:var(--color-dark-gold); background:var(--color-hanji2); }
/* 인사말 */
.greet { display:grid; grid-template-columns:300px 1fr; gap:40px; align-items:start; margin-bottom:10px; }
.greet-photo img { width:100%; height:auto; border-radius:16px; box-shadow:0 18px 40px rgba(15,29,54,.18); display:block; }
.greet-photo figcaption { text-align:center; font-size:.85rem; color:var(--color-text-muted); margin-top:10px; }
.greet-body .greet-hello { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.5rem; color:var(--color-navy); font-weight:600; line-height:1.5; margin-bottom:18px; }
.greet-body .greet-hello small { display:block; font-family:'Noto Sans KR','Noto Sans SC','Noto Sans JP',sans-serif; font-size:.95rem; font-weight:400; color:var(--color-text-muted); margin-top:6px; }
.greet-body p { font-size:1.02rem; line-height:2; }
.greet-sign { margin-top:26px; padding-top:18px; border-top:1px dashed var(--color-border); text-align:right; }
.greet-sign .date { display:block; font-size:.9rem; color:var(--color-text-muted); }
.greet-sign .org { display:block; font-size:.95rem; color:var(--color-text-muted); margin-top:6px; }
.greet-sign .name { display:block; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.3rem; font-weight:700; color:var(--color-navy); margin-top:2px; letter-spacing:2px; }
@media (max-width:820px) { .greet { grid-template-columns:1fr; } .greet-photo { max-width:300px; } }
/* 타임라인 (연혁 · 형성과정) */
.doc-timeline, .i18n-timeline { position:relative; margin:6px 0 20px 4px; padding-left:40px; }
.doc-timeline::before, .i18n-timeline::before { content:''; position:absolute; left:15px; top:8px; bottom:8px; width:2px; background:linear-gradient(180deg,var(--color-gold),var(--color-border)); }
.doc-timeline dt, .i18n-timeline dt { position:relative; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-weight:700; color:var(--color-navy); font-size:1.08rem; margin-top:24px; }
.doc-timeline dt::before, .i18n-timeline dt::before { content:''; position:absolute; left:-31px; top:11px; width:12px; height:12px; border-radius:50%; background:var(--color-gold); box-shadow:0 0 0 4px #fff, 0 0 0 5px var(--color-border); }
.doc-timeline dt:first-child, .i18n-timeline dt:first-child { margin-top:0; }
.doc-timeline dd, .i18n-timeline dd { margin:6px 0 0; padding:0; }
.doc-timeline dd p, .i18n-timeline dd p { margin:0 0 6px; }
.doc-timeline ul, .i18n-timeline ul { margin:2px 0 0; }
.doc-timeline li, .i18n-timeline li { position:relative; padding-left:16px; margin:0 0 5px; }
.doc-timeline li::before, .i18n-timeline li::before { content:''; position:absolute; left:2px; top:.8em; width:6px; height:6px; border-radius:50%; background:var(--color-crimson); }
.doc-timeline .i18n-sub, .i18n-timeline .i18n-sub, .doc-timeline .sub { display:block; margin-top:6px; padding:10px 14px; background:#fff; border:1px solid var(--color-border); border-radius:8px; font-size:.9em; color:var(--color-text-muted); }
.doc-timeline .story dd, .i18n-timeline.story dd { background:#fff; border:1px solid var(--color-border); border-radius:12px; padding:16px 20px; text-align:justify; }
/* 이사진 카드 */
.member-grid { display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:34px; }
.member { display:grid; grid-template-columns:190px 1fr; background:#fff; border:1px solid var(--color-border); border-radius:14px; overflow:hidden; transition:box-shadow .25s; }
.member:hover { box-shadow:0 14px 34px rgba(15,29,54,.1); }
.member-side { padding:24px 20px; background:var(--color-hanji2); border-right:1px solid var(--color-border); display:flex; flex-direction:column; justify-content:center; gap:8px; }
.member-role { display:inline-block; align-self:flex-start; font-size:.75rem; font-weight:700; letter-spacing:1px; color:#fff; background:var(--color-navy); padding:3px 11px; border-radius:20px; }
.member.chair .member-role { background:var(--color-crimson); }
.member.auditor .member-role { background:var(--color-green); }
.member-name { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.45rem; font-weight:700; color:var(--color-navy); letter-spacing:2px; line-height:1.2; }
.member-term { font-size:.82rem; color:var(--color-text-muted); }
.member-term b { color:var(--color-dark-gold); font-weight:700; }
.member-career { padding:20px 26px; margin:0; }
.member-career li { position:relative; padding:4px 0 4px 16px; font-size:.95rem; line-height:1.7; }
.member-career li::before { content:''; position:absolute; left:0; top:15px; width:7px; height:2px; background:var(--color-gold); }
@media (max-width:640px) { .member { grid-template-columns:1fr; } .member-side { border-right:none; border-bottom:1px solid var(--color-border); } }
.doc-quote { background:linear-gradient(165deg,#faf7ef 0%,#f1ecdf 100%); border:1px solid #e2dac6; border-radius:16px; padding:34px 30px; text-align:center; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.05rem; line-height:2; color:var(--color-navy); position:relative; overflow:hidden; }
.doc-quote::before { content:'“'; position:absolute; left:18px; top:-6px; font-size:5rem; color:rgba(201,162,39,.25); line-height:1; }
.doc-quote img { display:block; margin:0 auto 18px; }
.doc-quote p { margin:0; }
/* 규정 (조문) */
.i18n-rule, .doc-article { counter-reset:none; }
.i18n-rule h3, .doc-article h3 { display:flex; align-items:center; gap:14px; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.15rem; font-weight:600; color:#fff; background:linear-gradient(120deg,var(--color-navy),#1c3c6e); padding:12px 20px; border-radius:10px; margin:40px 0 18px; letter-spacing:1px; }
.i18n-rule h3:first-child, .doc-article h3:first-child { margin-top:0; }
.i18n-rule h4, .doc-article h4 { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.05rem; font-weight:700; color:var(--color-navy); margin:26px 0 8px; padding-left:14px; border-left:4px solid var(--color-gold); line-height:1.5; }
.i18n-rule h4:first-child, .doc-article h4:first-child { margin-top:0; }
.i18n-rule p, .doc-article p { margin:0 0 8px; padding-left:18px; text-align:justify; }
.i18n-rule ul, .doc-article ul { margin:0 0 10px 18px; padding-left:14px; }
.i18n-rule li, .doc-article li { margin:0 0 6px; text-align:justify; }
.i18n-rule ul ul, .doc-article ul ul { margin-left:6px; }
.i18n-rule .ex, .doc-article .ex { display:block; margin:6px 0 4px; padding:10px 14px; background:var(--color-hanji2); border-left:3px solid var(--color-border); border-radius:0 8px 8px 0; color:var(--color-text-muted); font-size:.92em; line-height:1.8; }
.i18n-rule p.ex, .doc-article p.ex { padding-left:14px; }
.i18n-rule .note, .doc-article .note { color:var(--color-text-muted); font-size:.92em; }
.i18n-rule .addendum, .doc-article .addendum { margin:36px 0 6px; padding:0; text-align:center; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-weight:700; color:var(--color-crimson); letter-spacing:2px; }
.i18n-rule .addendum + p, .doc-article .addendum + p { text-align:center; padding:14px 16px; background:#fff; border:1px dashed var(--color-border); border-radius:10px; color:var(--color-text-muted); font-size:.95em; }
/* 정관 스캔본 */
.doc-scan { display:grid; grid-template-columns:1fr; gap:18px; }
.doc-scan figure { margin:0; background:#fff; border:1px solid var(--color-border); border-radius:10px; overflow:hidden; box-shadow:0 8px 24px rgba(15,29,54,.06); }
.doc-scan img { display:block; width:100%; height:auto; }
.doc-scan figcaption { font-size:.8rem; color:var(--color-text-muted); text-align:right; padding:6px 12px; background:var(--color-hanji2); }
/* 표 */
.i18n-table, .doc-table { width:100%; border-collapse:separate; border-spacing:0; font-size:.95rem; line-height:1.7; border:1px solid var(--color-border); border-radius:12px; overflow:hidden; background:#fff; }
.i18n-table th, .doc-table th { background:var(--color-navy); color:#fff; padding:12px 14px; font-weight:600; text-align:center; font-size:.9rem; letter-spacing:.5px; }
.i18n-table td, .doc-table td { padding:13px 16px; border-top:1px solid var(--color-border); vertical-align:top; text-align:left; }
.i18n-table tbody tr:nth-child(even) td, .doc-table tbody tr:nth-child(even) td { background:var(--color-hanji); }
.i18n-table td:first-child, .doc-table td:first-child { font-weight:700; color:var(--color-navy); text-align:center; white-space:nowrap; background:var(--color-hanji2); }
.i18n-table td:last-child, .doc-table td:last-child { color:var(--color-text-muted); font-size:.9em; }
.doc-table.plain td:first-child { background:none; font-weight:400; color:inherit; }

/* 안내 배너 · 항목 리스트 (총서) */
.doc-banner { text-align:center; background:linear-gradient(165deg,#faf7ef 0%,#f1ecdf 60%,#e9e2d1 100%); border:1px solid #e2dac6; border-radius:16px; padding:36px 30px 30px; margin-bottom:30px; position:relative; overflow:hidden; }
.doc-banner::before { content:''; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg,var(--color-blue),var(--color-green),var(--color-gold),var(--color-red),var(--color-crimson)); }
.doc-banner .ga1Txt { display:block; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.6rem !important; color:var(--color-crimson); font-weight:700; margin-bottom:16px; line-height:1.4; }
.doc-banner .ga2Txt { display:block; font-size:1.05rem !important; color:var(--color-text-main); font-weight:400; line-height:1.9; }
.doc-banner .ga3Txt { display:block; font-size:.92rem !important; color:var(--color-text-muted); margin-top:4px; }
.doc-banner .col-12:empty, .doc-banner .col-12.text-center:not([class*="Txt"]) { display:none; }
.doc-bullets { margin:0 0 26px; }
.doc-bullets .head { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.15rem; color:var(--color-navy); font-weight:600; margin:0 0 12px; }
.doc-bullets .gaBonTxt { position:relative; display:block; padding:10px 14px 10px 30px !important; margin-bottom:8px; font-size:.97rem !important; background:#fff; border:1px solid var(--color-border); border-radius:10px; text-align:justify; }
.doc-bullets .gaBonTxt::before { content:''; position:absolute; left:12px; top:19px; width:8px; height:8px; background:var(--color-gold); transform:rotate(45deg); }
.doc-note { text-align:center; font-size:.92rem; color:var(--color-text-muted); margin:0 0 22px; }
.doc-note a { color:var(--color-blue); text-decoration:underline; }
.i18n-gasek .row:empty, .i18n-gasek .col-12:empty { display:none; }
.i18n-gasek .btns { text-align:center; padding:6px 0 26px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.i18n-gasek .btns a { display:inline-flex; align-items:center; gap:8px; padding:11px 20px; border-radius:30px; background:var(--color-crimson); color:#fff; font-size:.9rem; font-weight:500; box-shadow:0 8px 18px rgba(140,35,50,.25); }
/* 오시는길 */
.doc-map { border-radius:14px; overflow:hidden; border:1px solid var(--color-border); box-shadow:0 12px 30px rgba(15,29,54,.08); }
.doc-contact { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:18px; }
.doc-contact div { background:#fff; border:1px solid var(--color-border); border-radius:12px; padding:18px 20px; }
.doc-contact small { display:block; font-size:.78rem; letter-spacing:1.5px; color:var(--color-text-muted); text-transform:uppercase; margin-bottom:4px; }
.doc-contact strong { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.05rem; color:var(--color-navy); font-weight:600; word-break:keep-all; }
.doc-contact div:nth-child(1) { grid-column:1 / -1; border-left:4px solid var(--color-crimson); }
@media (max-width:640px) { .doc-contact { grid-template-columns:1fr; } }
/* 후원안내 */
.donate-guide { font-size:1rem; line-height:1.9; }
.donate-guide > p { text-align:justify; }
.donate-guide h4 { display:flex; align-items:center; gap:12px; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.15rem; font-weight:600; color:var(--color-navy); margin:38px 0 14px; padding:12px 18px; background:#fff; border:1px solid var(--color-border); border-left:5px solid var(--color-gold); border-radius:0 10px 10px 0; }
.donate-guide ul { margin:0 0 18px; }
.donate-guide-list li { position:relative; padding:8px 0 8px 12px; border-bottom:1px dashed var(--color-border); }
.donate-guide-list li:last-child { border-bottom:none; }
.donate-guide-dots li { position:relative; padding:6px 0 6px 20px; }
.donate-guide-dots li::before { content:''; position:absolute; left:4px; top:17px; width:7px; height:7px; border-radius:50%; background:var(--color-gold); }
.donate-guide b { color:var(--color-navy); }
.donate-guide .doc-lead { margin-top:8px; }
.doc-note-box { background:#fff; border:1px solid var(--color-border); border-radius:12px; padding:18px 22px; margin:0 0 18px; }
.i18n-note { font-size:.88rem; color:var(--color-text-muted); }
.i18n-h { display:flex; align-items:center; gap:12px; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.25rem; font-weight:600; color:var(--color-navy); margin:44px 0 18px; }
.i18n-h::before { content:''; width:6px; height:22px; border-radius:3px; background:linear-gradient(180deg,var(--color-blue),var(--color-red)); }
.i18n-page { font-size:1rem; line-height:1.9; }
.i18n-page > p { text-align:justify; }
.doc-article p.lv2, .i18n-rule p.lv2 { padding-left:36px; }
.doc-article p.lv3, .i18n-rule p.lv3 { padding-left:54px; }
.doc-article p.lv4, .i18n-rule p.lv4 { padding-left:72px; }
.doc-article p.center, .i18n-rule p.center { text-align:center; padding-left:0; }
.doc-bullets .ga2Txt { display:block; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.15rem !important; color:var(--color-navy); font-weight:600; margin:0 0 12px; text-align:left !important; }
.doc-bullets .col-12:empty, .doc-note .col-12:empty { display:none; }
.doc-note .gaSmall { display:block; font-size:.92rem !important; }
/* ── 요청 반영: 임기 표기 · 연락처 2단 · 하단 중앙 다운로드 · 연혁 애니메이션 ── */
.member-term em { font-style:normal; font-size:.78rem; letter-spacing:1px; color:var(--color-text-muted); }
.member-term b { font-size:.95rem; }
.doc-contact { grid-template-columns:repeat(2,1fr); }
.doc-downloads.center { justify-content:center; margin:34px 0 0; }
.doc-downloads.big a { padding:14px 30px; font-size:1rem; font-weight:700; color:#fff; background:var(--color-navy); border-color:var(--color-navy); box-shadow:0 10px 24px rgba(22,41,74,.25); }
.doc-downloads.big a::before { filter:brightness(0) invert(1); }
.doc-downloads.big a:hover { background:var(--color-crimson); border-color:var(--color-crimson); color:#fff; }
/* 연혁 타임라인: 스크롤에 따라 선이 그려지고 항목이 차례로 나타남 */
.doc-timeline.animate::before, .i18n-timeline.animate::before { background:var(--color-border); }
.doc-timeline.animate::after, .i18n-timeline.animate::after { content:''; position:absolute; left:15px; top:8px; width:2px; height:var(--tl-progress, 0%); max-height:calc(100% - 16px); background:linear-gradient(180deg,var(--color-gold),var(--color-crimson)); transition:height .25s linear; }
.doc-timeline.animate dt, .doc-timeline.animate dd, .i18n-timeline.animate dt, .i18n-timeline.animate dd { opacity:0; transform:translateX(18px); transition:opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1); }
.doc-timeline.animate dt.in, .doc-timeline.animate dd.in, .i18n-timeline.animate dt.in, .i18n-timeline.animate dd.in { opacity:1; transform:none; }
.doc-timeline.animate dt::before, .i18n-timeline.animate dt::before { transform:scale(.4); background:var(--color-border); transition:transform .45s cubic-bezier(.2,.8,.2,1), background .45s; }
.doc-timeline.animate dt.in::before, .i18n-timeline.animate dt.in::before { transform:scale(1); background:var(--color-gold); animation:tlPulse 1.2s ease-out 1; }
@keyframes tlPulse { 0% { box-shadow:0 0 0 4px #fff, 0 0 0 5px var(--color-border), 0 0 0 5px rgba(201,162,39,.6); } 100% { box-shadow:0 0 0 4px #fff, 0 0 0 5px var(--color-border), 0 0 0 22px rgba(201,162,39,0); } }
@media (prefers-reduced-motion: reduce) { .doc-timeline.animate dt, .doc-timeline.animate dd, .i18n-timeline.animate dt, .i18n-timeline.animate dd { opacity:1; transform:none; transition:none; } .doc-timeline.animate::after, .i18n-timeline.animate::after { height:100%; } }

/* 게시판 상단 최근 글 */
.bo-latest { background:#fff; border:1px solid var(--color-border); border-radius:14px; margin:0 0 34px; overflow:hidden; box-shadow:0 10px 30px rgba(15,29,54,.06); }
.bo-latest-head { padding:22px 26px 16px; border-bottom:1px solid var(--color-border); background:linear-gradient(180deg,#fff,var(--color-hanji)); }
.bo-latest-tag { display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:1.5px; color:#fff; background:var(--color-crimson); padding:3px 11px; border-radius:20px; margin-bottom:10px; }
.bo-latest-head h3 { font-size:1.35rem; font-weight:600; color:var(--color-navy); line-height:1.4; margin:0 0 8px; }
.bo-latest-head h3 a:hover { color:var(--color-blue); }
.bo-latest-meta { font-size:.85rem; color:var(--color-text-muted); }
.bo-latest-files { display:flex; flex-wrap:wrap; gap:8px; padding:12px 26px 0; }
.bo-latest-files a { display:inline-flex; align-items:center; gap:6px; font-size:.86rem; color:#0069c1; background:var(--color-hanji2); border:1px solid var(--color-border); border-radius:20px; padding:5px 12px; }
.bo-latest-files a small { color:var(--color-text-muted); }
.bo-latest-body { padding:22px 26px; text-align:justify; word-break:normal; overflow-wrap:break-word; overflow-x:auto; line-height:1.85; }
.bo-latest-body img { max-width:100%; height:auto; }
.bo-latest-body iframe { max-width:100%; }
.bo-latest-foot { padding:0 26px 20px; text-align:right; }
.bo-latest-foot a { font-size:.9rem; font-weight:700; color:var(--color-crimson); }

/* 언어 전환: 현재 언어를 후원하기 버튼과 같은 스타일로 강조 */
.header-actions .lang-switch { gap:4px; margin-right:0; }
.lang-switch a { font-size:.88rem; font-weight:500; padding:9px 14px; border-radius:30px; color:var(--color-text-muted); }
.lang-switch a:hover { color:var(--color-navy); background:rgba(22,41,74,.06); }
.lang-switch a.on { color:#fff; background:var(--color-crimson); font-weight:700; box-shadow:0 4px 14px rgba(200,64,47,.35); padding:9px 20px; }
.lang-switch a.on:hover { background:var(--color-crimson); color:#fff; transform:translateY(-2px); box-shadow:0 8px 20px rgba(200,64,47,.45); }

/* ══════════════════════════════════════════════════════
   동적 효과 (effects.js 와 짝)  — 01~09, 11, 13, 15
   ══════════════════════════════════════════════════════ */
/* 01 페이지 전환 */
#pt-veil { position:fixed; inset:0; background:var(--color-hanji); z-index:20000; opacity:0; pointer-events:none; transition:opacity .35s ease; }
#pt-bar { position:fixed; left:0; top:0; height:4px; width:0; z-index:20001; background:linear-gradient(90deg,var(--color-blue),var(--color-green),var(--color-gold),var(--color-red),var(--color-crimson)); transition:width .8s cubic-bezier(.2,.8,.2,1), opacity .4s; pointer-events:none; }
html.pt-leaving #pt-veil { opacity:1; pointer-events:auto; }
html.pt-leaving #pt-bar { width:70%; }
html.pt-enter #pt-veil { opacity:1; transition:none; }
html.pt-enter-done #pt-veil { opacity:0; }
html.pt-enter-done #pt-bar { width:100%; opacity:0; }
/* 02 읽기 진행 표시줄 */
#read-progress { position:fixed; left:0; top:76px; height:3px; width:0; z-index:1002; background:linear-gradient(90deg,var(--color-blue),var(--color-green),var(--color-gold),var(--color-red),var(--color-crimson)); pointer-events:none; }
/* 03 스크롤 등장 */
html.js-fx .rv { opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1); }
html.js-fx .rv.in { opacity:1; transform:none; }
/* 04 마이크로 인터랙션 */
.doc p a:not(.rict-pop-submit), .legacy-body p a, .donate-guide a:not(.doc-downloads a), .bo-latest-body a, .rict-view .notice-viewcnt p a, .doc-note a { position:relative; text-decoration:none; background-image:linear-gradient(90deg,var(--color-gold),var(--color-crimson)); background-repeat:no-repeat; background-size:0 2px; background-position:0 100%; transition:background-size .3s ease, color .2s; padding-bottom:1px; }
.doc p a:hover, .legacy-body p a:hover, .donate-guide a:hover, .bo-latest-body a:hover, .doc-note a:hover { background-size:100% 2px; text-decoration:none; }
.doc-downloads a, .btn-gold, .rict-view .btnarea a, .rict-board .bo-top .btns a, .rict-board .bo-top .btns button, .rict-pop-submit, .support-more { transition:transform .25s ease, box-shadow .25s ease, background .25s, color .25s, border-color .25s; }
.doc-downloads a:hover, .btn-gold:hover, .rict-view .btnarea a:hover, .rict-board .bo-top .btns a:hover, .rict-board .bo-top .btns button:hover { transform:translateY(-3px); box-shadow:0 10px 22px rgba(22,41,74,.16); }
.gnb-sub a { transition:all .25s cubic-bezier(.2,.8,.2,1); }
/* 05 맨 위로 버튼 */
#top-btn { position:fixed; right:26px; bottom:26px; width:52px; height:52px; border-radius:50%; background:#fff; border:0; box-shadow:0 10px 26px rgba(15,29,54,.2); cursor:pointer; z-index:1500; display:grid; place-items:center; opacity:0; transform:translateY(14px); pointer-events:none; transition:opacity .3s, transform .3s; }
#top-btn.show { opacity:1; transform:none; pointer-events:auto; }
#top-btn svg.ring { position:absolute; inset:0; transform:rotate(-90deg); }
#top-btn svg.ring circle { fill:none; stroke-width:3; }
#top-btn svg.ring .bg { stroke:var(--color-border); }
#top-btn svg.ring .pr { stroke:var(--color-gold); stroke-linecap:round; stroke-dasharray:144.5; stroke-dashoffset:144.5; }
#top-btn svg.arr { width:18px; height:18px; stroke:var(--color-navy); fill:none; stroke-width:2.2; stroke-linecap:round; stroke-linejoin:round; position:relative; }
#top-btn:hover { transform:translateY(-3px); }
body.is-index #top-btn { right:auto; left:26px; }
/* 06 살아 있는 타이틀 밴드 */
.sub-visual::before, .sub-visual::after { display:none; }
.sub-visual { --px:0px; --py:0px; }
.sv-canvas { position:absolute; inset:0; width:100%; height:100%; z-index:0; }
.sv-ring { position:absolute; border-radius:50%; pointer-events:none; z-index:0; will-change:transform; transition:transform .25s ease-out; }
.sv-ring1 { right:-120px; top:-140px; width:420px; height:420px; border:1px dashed rgba(230,201,106,.38); transform:translate(var(--px),var(--py)); }
.sv-ring1::after { content:''; position:absolute; left:50%; top:-4px; width:8px; height:8px; margin-left:-4px; border-radius:50%; background:#e6c96a; box-shadow:0 0 12px 3px rgba(230,201,106,.35); }
.sv-ring2 { right:-60px; top:-80px; width:300px; height:300px; border:1px solid rgba(200,90,112,.32); transform:translate(calc(var(--px) * 1.7), calc(var(--py) * 1.7)); }
@keyframes svSpin { to { transform:translate(var(--px),var(--py)) rotate(360deg); } }
html.js-fx .sv-ring1 { animation:svSpin 60s linear infinite; }
/* 07 제목 글자 등장 */
.sv-title .ch { display:inline-block; white-space:pre; }
html.js-fx .sv-title .ch { opacity:0; transform:translateY(16px); animation:svUp .6s cubic-bezier(.2,.8,.2,1) forwards; }
@keyframes svUp { to { opacity:1; transform:none; } }
/* 08 조직도 */
html.js-fx .org-chart line { animation:orgDraw 1.1s ease forwards; }
html.js-fx .org-chart rect, html.js-fx .org-chart text { opacity:0; animation:svUp .55s ease forwards; }
@keyframes orgDraw { to { stroke-dashoffset:0; } }
.org-chart text { pointer-events:none; }
.org-chart rect { transition:filter .2s, transform .2s; transform-box:fill-box; transform-origin:center; cursor:default; }
.org-chart rect:hover { filter:brightness(1.12) drop-shadow(0 6px 10px rgba(15,29,54,.25)); transform:scale(1.04); }
/* 09 이사진 카드 */
.member { transform-style:preserve-3d; transition:transform .15s ease-out, box-shadow .3s; will-change:transform; }
.member-name { position:relative; display:inline-block; }
.member-name::after { content:''; position:absolute; left:0; bottom:-3px; height:2px; width:0; background:linear-gradient(90deg,var(--color-gold),var(--color-crimson)); transition:width .4s cubic-bezier(.2,.8,.2,1); }
.member:hover .member-name::after { width:100%; }
/* 11 게시판 목록 */
html.js-fx .rict-board tbody tr { opacity:0; transform:translateX(-10px); animation:rowIn .5s ease forwards; }
@keyframes rowIn { to { opacity:1; transform:none; } }
.rict-board tbody td:first-child { position:relative; }
.rict-board tbody td:first-child::before { content:''; position:absolute; left:0; top:0; bottom:0; width:0; background:linear-gradient(180deg,var(--color-blue),var(--color-green),var(--color-gold),var(--color-red)); transition:width .25s; }
.rict-board tbody tr:hover td:first-child::before { width:4px; }
.rict-board tbody tr:hover td { background:#fff; }
.rict-board td.td_subject a { transition:color .2s, padding-left .2s; }
.rict-board tbody tr:hover td.td_subject a { padding-left:4px; }
/* 13 조문 목차 : 본문 폭을 줄이지 않도록 오른쪽 여백(화면 고정)에 배치 */
.doc-toc { position:fixed; top:110px; left:calc(50% + 600px + 24px); width:220px; background:#fff; border:1px solid var(--color-border); border-radius:12px; padding:14px 8px 10px; max-height:calc(100vh - 150px); overflow:auto; z-index:900; box-shadow:0 10px 30px rgba(15,29,54,.08); }
.doc-toc h5 { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:.85rem; letter-spacing:1px; color:var(--color-text-muted); margin:0 0 8px 10px; font-weight:600; }
.doc-toc a { display:block; font-size:.84rem; line-height:1.45; padding:6px 10px; border-left:2px solid transparent; color:var(--color-text-muted); transition:all .2s; border-radius:0 6px 6px 0; }
.doc-toc a.ch3 { font-weight:700; color:var(--color-navy); margin-top:6px; }
.doc-toc a:hover { color:var(--color-navy); background:var(--color-hanji); }
.doc-toc a.on { border-color:var(--color-crimson); color:var(--color-navy); font-weight:700; background:var(--color-hanji2); }
.doc-toc-tab { display:none; }
/* 오른쪽 여백이 부족한 화면: 오른쪽 가장자리의 탭으로 접고, 마우스를 올리거나 누르면 펼침 */
@media (max-width:1480px) {
  .doc-toc { left:auto; right:0; top:130px; border-radius:12px 0 0 12px; transform:translateX(100%); transition:transform .3s cubic-bezier(.2,.8,.2,1); }
  .doc-toc.open, .doc-toc:hover { transform:none; }
  .doc-toc-tab { display:flex; position:absolute; left:-34px; top:0; width:34px; padding:12px 0; border-radius:10px 0 0 10px; background:var(--color-navy); color:#fff; border:0; cursor:pointer; font-family:inherit; font-size:.72rem; letter-spacing:2px; writing-mode:vertical-rl; align-items:center; justify-content:center; box-shadow:-6px 4px 16px rgba(15,29,54,.18); }
  .doc-toc-tab::before { content:'≡'; writing-mode:horizontal-tb; margin-bottom:8px; font-size:.9rem; }
}
@media (max-width:1024px) { .doc-toc { display:none; } }
/* 15 지도 펄스 · 복사 */
.doc-map { position:relative; }
.map-pulse { position:absolute; left:50%; top:50%; width:16px; height:16px; margin:-8px 0 0 -8px; border-radius:50%; background:rgba(140,35,50,.45); pointer-events:none; z-index:5; animation:mapPulse 1.9s ease-out infinite; }
.map-pulse.two { animation-delay:.9s; }
@keyframes mapPulse { 0% { transform:scale(1); opacity:.9; } 100% { transform:scale(6); opacity:0; } }
.copy-chip { display:inline-flex; align-items:center; gap:5px; margin-left:10px; padding:4px 12px; border-radius:20px; border:1px solid var(--color-border); background:var(--color-hanji2); font-size:.78rem; color:var(--color-text-muted); cursor:pointer; font-family:inherit; vertical-align:middle; transition:all .2s; }
.copy-chip:hover { border-color:var(--color-gold); color:var(--color-dark-gold); }
.copy-chip.done { background:var(--color-navy); color:#fff; border-color:var(--color-navy); }
#rict-toast { position:fixed; left:50%; bottom:40px; transform:translate(-50%,10px); background:var(--color-navy); color:#fff; font-size:.88rem; padding:10px 20px; border-radius:30px; box-shadow:0 10px 26px rgba(15,29,54,.3); z-index:20002; opacity:0; pointer-events:none; transition:all .3s; }
#rict-toast.on { opacity:1; transform:translate(-50%,0); }
@media (prefers-reduced-motion: reduce) {
  html.js-fx .rv, html.js-fx .sv-title .ch, html.js-fx .org-chart rect, html.js-fx .org-chart text, html.js-fx .rict-board tbody tr { opacity:1; transform:none; animation:none; transition:none; }
  html.js-fx .org-chart line { stroke-dashoffset:0; animation:none; }
  html.js-fx .sv-ring1 { animation:none; } .map-pulse { animation:none; display:none; }
  #pt-veil, #pt-bar { transition:none; }
}
.doc-timeline, .i18n-timeline { margin-left:14px; }

/* ══════════════════════════════════════════════════════
   반응형 보강 (태블릿 ≤1024 · 모바일 ≤640)
   ══════════════════════════════════════════════════════ */
@media (max-width:1024px) {
  .header-inner { padding:0 20px; height:66px; }
  .logo-light, .logo-dark { height:38px; }
  .gnb-dropdown, .mobile-drawer { top:66px; }
  .mobile-drawer { padding:18px 20px 40px; }
  .sub-visual { margin-top:66px; }
  #read-progress { top:66px; }
  .hero { padding:96px 0 120px; min-height:max(70vh, 640px); }
  .hero-content { padding:30px 20px 120px !important; }
  .container { padding:0 24px; }
  .section-padding { padding:60px 0; }
  .section-title { font-size:1.7rem; }
  .intro-lead { padding:56px 0 0; } .intro-lead .lead { font-size:1.05rem; }
  .programs-head { margin-bottom:30px; }
  .news-grid { gap:30px; }
  .footer-inner { padding:44px 24px 28px; }
  .footer-top { gap:28px; padding-bottom:28px; }
  .footer-bottom { flex-direction:column; align-items:flex-start; gap:8px; }
  .footer-lang { margin-left:0; }
  #container { padding:32px 20px 60px; gap:28px; }
  .contents .subtit-section { font-size:1.4rem; margin-bottom:20px; }
  .bo-latest-head, .bo-latest-body, .bo-latest-files, .bo-latest-foot { padding-left:18px; padding-right:18px; }
  .bo-latest-head h3 { font-size:1.15rem; }
  .rict-view .subjectarea { padding:16px 18px; } .rict-view .notice-viewcnt { padding:18px; } .rict-view .subject { font-size:1.15rem; }
  .greet-body .greet-hello { font-size:1.25rem; }
  .doc-banner { padding:26px 18px 22px; } .doc-banner .ga1Txt { font-size:1.25rem !important; } .doc-banner .ga2Txt { font-size:.95rem !important; }
  .doc-quote { padding:26px 18px; font-size:.98rem; }
  .i18n-rule h3, .doc-article h3 { font-size:1rem; padding:10px 14px; }
  .doc-article p.lv2, .i18n-rule p.lv2 { padding-left:26px; } .doc-article p.lv3, .i18n-rule p.lv3 { padding-left:34px; } .doc-article p.lv4, .i18n-rule p.lv4 { padding-left:42px; }
  #top-btn { right:14px; bottom:14px; width:46px; height:46px; }
  body.is-index #top-btn { left:14px; }
  .doc-lead { padding:20px 18px; font-size:1rem; }
}
@media (max-width:640px) {
  .hero { min-height:max(60vh, 560px); padding:84px 0 90px; }
  .hero-content h1 { font-size:1.9rem !important; margin-bottom:12px !important; }
  .hero-content p { font-size:.93rem !important; line-height:1.75 !important; }
  .hero-content img { width:84px !important; margin-bottom:12px !important; }
  .hero-content > div a { padding:11px 18px !important; font-size:.85rem !important; }
  .sub-visual-inner { padding:32px 20px 28px; }
  .sub-visual h1 { font-size:1.5rem; } .sub-visual h1 small { font-size:.62rem; letter-spacing:2px; margin-bottom:6px; }
  .breadcrumbs { font-size:.8rem; }
  .submu ul { display:block; } .submu li { flex:none; } .submu li a { justify-content:flex-start; border-right:none; padding:11px 16px; }
  .member-side { padding:16px; } .member-career { padding:14px 16px; }
  .member-name { font-size:1.25rem; }
  .doc-timeline, .i18n-timeline { padding-left:34px; margin-left:8px; }
  .doc-timeline dt, .i18n-timeline dt { font-size:1rem; }
  .doc-scan { gap:12px; }
  .rict-board td, .rict-board th { padding:10px 6px; font-size:.86rem; }
  .rict-board .bo-top { flex-direction:column; align-items:flex-start; gap:8px; }
  .journal-card-top, .journal-card-body { padding-left:20px; padding-right:20px; }
  .journal-card h3 { font-size:1.15rem; }
  .support-card { padding:18px 16px; gap:14px; }
  .support-inner { padding:60px 24px; }
  .footer-cert { gap:8px; } .footer-cert img { max-width:110px; }
  .footer-links { gap:8px 14px; } .footer-links a { font-size:.8rem; }
  .rict-pop { max-height:calc(100vh - 100px); }
  .rict-pop-title-wrap { padding:0 8px; }
  .doc-downloads.big a { width:100%; justify-content:center; }
  .doc-contact strong { font-size:.95rem; }
  .copy-chip { display:inline-flex; margin:8px 0 0; }
  .greet-photo { max-width:220px; margin:0 auto; }
  .greet-sign .name { font-size:1.15rem; }
  .i18n-gasek .btns a, .doc-downloads a { font-size:.85rem; }
  .doc-table th, .doc-table td, .i18n-table th, .i18n-table td { padding:10px 10px; font-size:.88rem; }
  .bo-latest-body { font-size:.95rem; }
  .program-card { padding:28px 22px 24px; }
}
@media (max-width:400px) {
  .hero-content h1 { font-size:1.65rem !important; }
  .lang-switch.mob a { padding:7px 10px; font-size:.8rem; }
}
/* 모바일: 헤더 언어 버튼은 드로어에만, 팝업은 화면의 3/4 이내에서 스크롤 */
@media (max-width:1180px) { .header-actions .lang-switch { display:none !important; } }
@media (max-width:640px) {
  .rict-pop-stack { max-height:72vh; overflow-y:auto; gap:10px; padding-right:2px; }
  .rict-pop { max-height:none; overflow:visible; flex-shrink:0; }
  .rict-pop-img img { max-height:60vh; width:auto; max-width:100%; margin:0 auto; }
}
.mobile-drawer a.mob-section-head { display:block; }
.lang-switch.mob { margin:0 0 16px; padding-bottom:12px; border-bottom:1px solid var(--color-border); }

/* ── GNB 전체 메뉴: 대메뉴 아무 곳에나 올리면 모든 하위메뉴가 열림 ── */
.gnb-item:hover .gnb-dropdown { opacity:0; visibility:hidden; }
.gnb:hover .gnb-mega, .gnb-mega:hover { opacity:1; visibility:visible; pointer-events:auto; transform:translateY(0); }
.gnb-mega .gnb-dropdown-inner { max-width:1400px; padding:0 40px; }
.gnb-mega .gnb-col { flex:1; padding:6px 14px 10px; border-radius:10px; transition:background .25s; min-width:0; }
.gnb-mega .gnb-col + .gnb-col { border-left:1px solid var(--color-border); border-radius:0; }
.gnb-mega .gnb-col-head a { color:inherit; }
.gnb-mega .gnb-col.on { background:var(--color-hanji2); }
.gnb-mega .gnb-col.on .gnb-col-head { color:var(--color-crimson); border-bottom-color:var(--color-crimson); }
.gnb-mega .gnb-sub a { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.gnb-item .gnb-top::after { transition:width .3s ease; }
.gnb-item.on .gnb-top { color:var(--color-blue); }
.gnb-item.on .gnb-top::after { width:calc(100% - 44px); }
@media (max-width:1024px) { .gnb-mega { display:none; } }

/* ── 푸터 배너 슬라이더 ── */
.banner-slider { display:flex; align-items:center; gap:6px; justify-content:flex-end; max-width:100%; }
.banner-slider .bs-view { overflow:hidden; max-width:420px; width:100%; }
.banner-slider .bs-track { display:flex; gap:12px; transition:transform .5s cubic-bezier(.2,.8,.2,1); will-change:transform; }
.banner-slider .bs-item { flex:0 0 auto; background:#fff; border-radius:6px; padding:4px 6px; display:flex; align-items:center; height:52px; }
.banner-slider .bs-item img { height:44px; width:auto; max-width:none; display:block; }
.banner-slider .bs-btn { width:30px; height:30px; border-radius:50%; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06); color:rgba(255,255,255,.7); cursor:pointer; font-size:1.1rem; line-height:1; display:none; align-items:center; justify-content:center; font-family:inherit; }
.banner-slider .bs-btn:hover { background:rgba(255,255,255,.14); color:#fff; }
.banner-slider.is-sliding .bs-btn { display:flex; }
.banner-slider.is-sliding .bs-view { max-width:360px; }
@media (max-width:1024px) { .banner-slider { justify-content:flex-start; } .banner-slider .bs-view { max-width:100%; } .banner-slider.is-sliding .bs-view { max-width:calc(100% - 80px); } }

/* ── 게시판 글쓰기 폼 ── */
#bo_w { background:#fff; border:1px solid var(--color-border); border-radius:14px; padding:26px 26px 22px; }
#bo_w .write_div { margin:0 0 14px; }
#bo_w .frm_input, #bo_w textarea.frm_input { width:100%; height:46px; padding:0 14px; border:1px solid var(--color-border); border-radius:8px; background:var(--color-hanji); font-family:inherit; font-size:.95rem; color:var(--color-text-main); transition:border-color .2s, box-shadow .2s, background .2s; }
#bo_w .frm_input:focus { outline:none; border-color:var(--color-navy); background:#fff; box-shadow:0 0 0 3px rgba(22,41,74,.1); }
#bo_w .half_input { width:calc(50% - 6px); }
#bo_w #wr_subject { font-size:1.05rem; font-weight:500; height:50px; }
#bo_w .bo_w_tit { position:relative; }
#bo_w #autosave_wrapper { position:relative; }
#bo_w #btn_autosave { position:absolute; right:6px; top:50%; transform:translateY(-50%); height:36px; padding:0 14px; border-radius:20px; border:1px solid var(--color-border); background:#fff; font-size:.8rem; color:var(--color-text-muted); cursor:pointer; font-family:inherit; }
#bo_w #autosave_wrapper .frm_input { padding-right:150px; }
#bo_w #autosave_pop { position:absolute; right:0; top:52px; z-index:10; background:#fff; border:1px solid var(--color-border); border-radius:10px; box-shadow:0 12px 30px rgba(15,29,54,.14); padding:10px; width:320px; max-width:100%; }
#bo_w #autosave_pop ul { max-height:220px; overflow:auto; } #bo_w #autosave_pop li { padding:6px 4px; border-bottom:1px solid var(--color-border); font-size:.86rem; }
#bo_w .bo_w_info { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:14px; }
#bo_w .bo_w_info .write_div { margin:0; flex:1 1 220px; } #bo_w .bo_w_info .frm_input { width:100%; }
#bo_w .chk_box { display:inline-flex; align-items:center; gap:8px; margin-right:16px; font-size:.9rem; }
#bo_w .chk_box input[type=checkbox] { width:16px; height:16px; accent-color:var(--color-crimson); }
#bo_w #char_count_wrap { font-size:.82rem; color:var(--color-text-muted); text-align:right; margin-top:6px; }
#bo_w .bo_w_link .frm_input, #bo_w .bo_w_flie .frm_input { padding-left:44px; }
#bo_w .bo_w_link, #bo_w .bo_w_flie { position:relative; }
#bo_w .bo_w_link label, #bo_w .bo_w_flie label { position:absolute; left:14px; top:13px; color:var(--color-text-muted); z-index:1; }
#bo_w .bo_w_link .frm_input { margin-bottom:8px; }
#bo_w .bo_w_flie .file_wr { display:block; padding:12px 14px 12px 44px; border:1px dashed var(--color-border); border-radius:8px; background:var(--color-hanji); margin-bottom:8px; font-size:.9rem; }
#bo_w .bo_w_flie .file_wr .lb_icon { position:absolute; left:14px; color:var(--color-text-muted); }
#bo_w .bo_w_flie input[type=file] { font-family:inherit; font-size:.86rem; }
#bo_w .bo_w_flie .frm_file { margin-top:6px; }
#bo_w .bo_w_flie .file_del { font-size:.82rem; color:var(--color-text-muted); margin-top:4px; }
#bo_w .btn_confirm { display:flex; justify-content:center; gap:10px; margin-top:22px; }
#bo_w .btn_confirm .btn_submit, #bo_w .btn_confirm .btn_cancel { display:inline-flex; align-items:center; justify-content:center; min-width:130px; height:46px; padding:0 26px; border-radius:30px; font-size:.95rem; font-weight:700; font-family:inherit; cursor:pointer; text-decoration:none; transition:all .25s; }
#bo_w .btn_confirm .btn_submit { background:var(--color-crimson); color:#fff; border:0; box-shadow:0 8px 20px rgba(200,64,47,.3); }
#bo_w .btn_confirm .btn_submit:hover { transform:translateY(-2px); box-shadow:0 12px 26px rgba(200,64,47,.4); }
#bo_w .btn_confirm .btn_cancel { background:#fff; color:var(--color-navy); border:1.5px solid var(--color-border); }
#bo_w .btn_confirm .btn_cancel:hover { border-color:var(--color-navy); }
#bo_w #wr_content { width:100%; min-height:300px; padding:14px; border:1px solid var(--color-border); border-radius:8px; font-family:inherit; font-size:1rem; line-height:1.8; }
#bo_w .smart_editor2 { border:1px solid var(--color-border) !important; border-radius:8px; overflow:hidden; }
#bo_w .sound_only { position:absolute; }
/* 글 보기 본문 = 에디터 본문과 같은 서체·크기 */
.rict-view .notice-viewcnt #bo_v_con, .bo-latest-body { font-family:'Noto Sans KR','Noto Sans SC','Noto Sans JP',sans-serif; font-size:16px; line-height:1.85; color:var(--color-text-main); }
.rict-view .notice-viewcnt #bo_v_con p, .bo-latest-body p { margin:0; }
@media (max-width:640px) { #bo_w { padding:16px; } #bo_w .half_input { width:100%; } #bo_w .btn_confirm .btn_submit, #bo_w .btn_confirm .btn_cancel { flex:1; min-width:0; } }
/* 영문: 메뉴 폭이 넓어 언어 버튼이 줄바꿈되지 않도록 */
.header-actions { flex-shrink:0; }
.lang-switch { flex-wrap:nowrap; }
html[lang="en"] .gnb-top { padding:0 13px; font-size:.93rem; letter-spacing:-.1px; }
html[lang="en"] .gnb-item:hover .gnb-top::after, html[lang="en"] .gnb-item.on .gnb-top::after { width:calc(100% - 26px); }
html[lang="en"] .lang-switch a { padding:8px 10px; font-size:.82rem; }
html[lang="en"] .lang-switch a.on { padding:8px 16px; }
html[lang="en"] .member-name { letter-spacing:0; font-size:1.2rem; line-height:1.25; }
html[lang="en"] .greet-sign .name { letter-spacing:0; }
html[lang="en"] .gnb-mega .gnb-col-head { font-size:.88rem; }
@media (max-width:1280px) { html[lang="en"] .gnb-top { padding:0 9px; font-size:.86rem; } }
/* 영문 메인 문구: 3줄, 좌측 영상과 겹치지 않도록 폭 제한 */
html[lang="en"] .hero-content h1 { font-size:2.6rem !important; line-height:1.25 !important; max-width:640px; }
html[lang="en"] .hero-content p { max-width:600px; }
@media (max-width:640px) { html[lang="en"] .hero-content h1 { font-size:1.7rem !important; } }
/* ── 총서 다운로드 페이지 ── */
.dl-wrap { display:flex; flex-direction:column; align-items:center; gap:22px; padding:30px 0 10px; }
.dl-empty { padding:40px 30px; border:1px dashed var(--color-border); border-radius:14px; color:var(--color-text-muted); text-align:center; width:100%; max-width:560px; }
.dl-card { width:100%; max-width:640px; background:#fff; border:1px solid var(--color-border); border-radius:18px; padding:34px 30px 30px; text-align:center; box-shadow:0 14px 40px rgba(15,29,54,.08); position:relative; overflow:hidden; }
.dl-card::before { content:''; position:absolute; left:0; right:0; top:0; height:5px; background:linear-gradient(90deg,var(--color-blue),var(--color-green),var(--color-gold),var(--color-red),var(--color-crimson)); }
.dl-icon { width:74px; height:84px; margin:0 auto 14px; position:relative; }
.dl-icon svg { width:100%; height:100%; fill:none; stroke:var(--color-navy); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.dl-icon span { position:absolute; left:50%; bottom:6px; transform:translateX(-50%); font-size:.62rem; font-weight:700; letter-spacing:1px; color:#fff; background:var(--color-crimson); padding:2px 8px; border-radius:4px; }
.dl-name { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.25rem; font-weight:600; color:var(--color-navy); margin-bottom:24px; line-height:1.4; }
.dl-name small { display:block; font-family:'Noto Sans KR',sans-serif; font-size:.8rem; font-weight:400; color:var(--color-text-muted); margin-top:6px; letter-spacing:.5px; }
.dl-btns { display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.dl-btn { display:inline-flex; align-items:center; gap:10px; padding:15px 30px; border-radius:40px; font-size:1rem; font-weight:700; letter-spacing:.3px; transition:transform .25s, box-shadow .25s, background .25s; }
.dl-btn svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.dl-btn.down { background:linear-gradient(135deg,var(--color-crimson),#6d1a27); color:#fff; box-shadow:0 10px 26px rgba(140,35,50,.35); }
.dl-btn.down:hover { transform:translateY(-3px); box-shadow:0 16px 32px rgba(140,35,50,.45); }
.dl-btn.view { background:#fff; color:var(--color-navy); border:1.5px solid var(--color-navy); }
.dl-btn.view:hover { background:var(--color-navy); color:#fff; transform:translateY(-3px); box-shadow:0 12px 26px rgba(22,41,74,.25); }
.dl-admin-note { font-size:.85rem; color:var(--color-text-muted); background:var(--color-hanji2); border:1px solid var(--color-border); border-radius:10px; padding:12px 16px; max-width:640px; }
.dl-admin-note code { background:#fff; padding:1px 6px; border-radius:4px; font-size:.82rem; }
@media (max-width:640px) { .dl-card { padding:26px 18px 22px; } .dl-btn { width:100%; justify-content:center; } }

/* ===== 발간 총서 (도서 소개) ===== */
.bk-wrap { padding:10px 0 20px; }
.bk-shelf { display:flex; flex-wrap:wrap; justify-content:center; gap:22px; margin:0 0 40px; padding:22px; background:var(--color-hanji2); border-radius:16px; }
.bk-shelf-item { width:96px; text-align:center; font-size:.8rem; color:var(--color-text-muted); }
.bk-shelf-item img { width:100%; border-radius:4px; box-shadow:0 8px 18px rgba(15,29,54,.18); transition:transform .25s; }
.bk-shelf-item:hover img { transform:translateY(-4px); }
.bk-shelf-item span { display:block; margin-top:8px; }
.bk { margin:0 0 60px; }
.bk + .bk { padding-top:50px; border-top:1px solid var(--color-border); }
.bk-hero { display:flex; gap:46px; align-items:flex-start; }
.bk-cover { flex:0 0 300px; position:relative; }
.bk-cover img { width:100%; display:block; border-radius:4px 10px 10px 4px; box-shadow:12px 16px 40px rgba(15,29,54,.22), 0 2px 6px rgba(0,0,0,.08); }
.bk-cover::after { content:''; position:absolute; left:0; top:0; bottom:0; width:14px; border-radius:4px 0 0 4px; background:linear-gradient(90deg,rgba(0,0,0,.14),rgba(255,255,255,.18) 40%,rgba(0,0,0,.05)); pointer-events:none; }
.bk-info { flex:1; min-width:0; padding-top:6px; }
.bk-series { display:inline-flex; align-items:center; gap:8px; font-size:.82rem; font-weight:700; letter-spacing:1px; color:var(--color-crimson); border:1px solid rgba(140,35,50,.35); border-radius:30px; padding:5px 14px; margin-bottom:16px; }
.bk-series b { background:var(--color-crimson); color:#fff; border-radius:50%; width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; font-size:.75rem; }
.bk-title { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.9rem; font-weight:700; line-height:1.35; color:var(--color-navy); margin:0 0 12px; word-break:keep-all; }
.bk-title small { display:block; font-size:1.05rem; font-weight:500; color:var(--color-text-muted); margin-bottom:6px; letter-spacing:.3px; }
.bk-author { font-size:1.08rem; color:var(--color-text); margin:0 0 22px; }
.bk-meta { display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:10px 24px; margin:0 0 28px; padding:18px 22px; background:var(--color-hanji2); border-radius:12px; }
.bk-meta div { display:flex; gap:12px; font-size:.95rem; }
.bk-meta dt { flex:0 0 auto; min-width:64px; color:var(--color-text-muted); font-weight:600; }
.bk-meta dd { margin:0; color:var(--color-text); }
.bk-actions { display:flex; flex-wrap:wrap; gap:10px; }
.bk-btn { display:inline-flex; align-items:center; gap:8px; padding:12px 22px; border-radius:40px; font-weight:700; font-size:.95rem; background:#fff; color:var(--color-navy); border:1.5px solid var(--color-navy); transition:all .25s; }
.bk-btn svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.bk-btn:hover { background:var(--color-navy); color:#fff; transform:translateY(-2px); box-shadow:0 10px 22px rgba(22,41,74,.22); }
.bk-btn.primary { background:linear-gradient(135deg,var(--color-crimson),#6d1a27); color:#fff; border-color:transparent; box-shadow:0 8px 20px rgba(140,35,50,.3); }
.bk-btn.primary:hover { box-shadow:0 14px 28px rgba(140,35,50,.4); }
.bk-tabs { display:flex; gap:4px; margin:46px 0 0; border-bottom:2px solid var(--color-border); }
.bk-tabs button { background:none; border:0; padding:14px 22px; font-size:1rem; font-weight:600; color:var(--color-text-muted); cursor:pointer; position:relative; font-family:inherit; }
.bk-tabs button::after { content:''; position:absolute; left:0; right:0; bottom:-2px; height:3px; background:var(--color-crimson); transform:scaleX(0); transition:transform .25s; }
.bk-tabs button.on { color:var(--color-navy); }
.bk-tabs button.on::after { transform:scaleX(1); }
.bk-panel { padding:30px 6px 10px; }
.bk-panel-title { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.bk-body { line-height:1.95; color:var(--color-text); }
.bk-body p { margin:0 0 14px; text-align:justify; }
.bk-body h5 { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.1rem; color:var(--color-navy); margin:26px 0 10px; padding-left:12px; border-left:4px solid var(--color-gold); }
.bk-toc-list { list-style:none; margin:0; padding:0; counter-reset:toc; }
.bk-toc-list > li { padding:10px 0 10px 44px; border-bottom:1px dashed var(--color-border); position:relative; font-weight:600; color:var(--color-navy); }
.bk-toc-list > li::before { counter-increment:toc; content:counter(toc, decimal-leading-zero); position:absolute; left:4px; top:11px; font-family:'Noto Serif KR',serif; color:var(--color-crimson); font-size:.9rem; }
.bk-toc-list > li ul { list-style:none; margin:8px 0 0; padding:0; font-weight:400; color:var(--color-text); }
.bk-toc-list > li ul li { padding:4px 0 4px 16px; position:relative; font-size:.95rem; }
.bk-toc-list > li ul li::before { content:''; position:absolute; left:2px; top:14px; width:6px; height:1px; background:var(--color-text-muted); }
.bk-prep { padding:50px 20px; text-align:center; color:var(--color-text-muted); border:1px dashed var(--color-border); border-radius:14px; }
@media (max-width:860px) { .bk-hero { gap:30px; } .bk-cover { flex-basis:240px; } .bk-title { font-size:1.55rem; } }
@media (max-width:640px) { .bk-hero { flex-direction:column; align-items:center; } .bk-cover { flex-basis:auto; width:220px; } .bk-info { width:100%; text-align:center; } .bk-meta div { justify-content:center; } .bk-actions { justify-content:center; } .bk-tabs { overflow-x:auto; } .bk-tabs button { padding:12px 14px; white-space:nowrap; } .bk-body p { text-align:left; } }
/* 발간 총서 - 본문 조각 스타일 */
.bk-quotes { display:grid; gap:16px; margin:0 0 34px; }
.bk-quote { margin:0; padding:22px 26px; background:var(--color-hanji2); border-left:4px solid var(--color-gold); border-radius:0 12px 12px 0; }
.bk-quote p { margin:0 0 8px; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.02rem; line-height:1.85; color:var(--color-navy); text-align:left; }
.bk-quote cite { display:block; text-align:right; font-style:normal; font-size:.88rem; color:var(--color-text-muted); }
.bk-lead { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.12rem; font-weight:600; color:var(--color-crimson); text-align:left !important; margin-bottom:18px !important; }
.bk-sign { text-align:right !important; font-weight:600; color:var(--color-navy); margin:10px 0 30px !important; }
.bk-poem { margin:10px 0 18px 30px; padding:18px 24px; border-left:2px solid var(--color-border); }
.bk-poem p { text-align:left; margin:0 0 14px; line-height:1.8; }
.bk-poem p:last-child { margin-bottom:0; }
.bk-poem small { display:block; color:var(--color-text-muted); font-size:.86rem; margin-top:4px; }
.bk-toc-front { list-style:none; margin:0 0 22px; padding:0; }
.bk-toc-front li, .bk-toc-list li > span, .bk-toc-list li ul li > span { }
.bk-toc-front li { display:flex; align-items:baseline; gap:10px; padding:8px 4px; border-bottom:1px dashed var(--color-border); font-weight:600; color:var(--color-navy); }
.bk-toc-front li span, .bk-toc-list li > span, .bk-toc-list li ul li > span { flex:1; }
.bk-toc-front li em, .bk-toc-list em { font-style:normal; font-weight:400; color:var(--color-text-muted); font-size:.9rem; font-variant-numeric:tabular-nums; }
.bk-toc-back { margin-top:30px; }
.bk-part { margin:0 0 26px; }
.bk-part-head { display:flex; align-items:baseline; gap:14px; padding:14px 18px; background:linear-gradient(120deg,var(--color-navy),#1c3c6e); color:#fff; border-radius:10px; margin:0 0 6px; }
.bk-part-no { font-size:.8rem; letter-spacing:1px; font-weight:700; color:var(--color-gold); white-space:nowrap; }
.bk-part-head h6 { flex:1; margin:0; font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.05rem; font-weight:600; line-height:1.5; word-break:keep-all; }
.bk-part-head em { font-style:normal; font-size:.9rem; opacity:.8; }
.bk-toc-list > li { display:flex; flex-wrap:wrap; align-items:baseline; gap:10px; }
.bk-toc-list > li ul { flex-basis:100%; }
.bk-toc-list > li ul li { display:flex; gap:10px; align-items:baseline; }
.bk-author-card { padding:26px 30px; background:var(--color-hanji2); border-radius:14px; }
.bk-author-name { font-family:'Noto Serif KR','Noto Serif SC','Noto Serif JP',serif; font-size:1.4rem; font-weight:700; color:var(--color-navy); margin:0 0 6px !important; text-align:left !important; }
.bk-author-name small { font-size:.95rem; font-weight:400; color:var(--color-text-muted); margin-left:8px; }
@media (max-width:640px) { .bk-part-head { flex-wrap:wrap; } .bk-poem { margin-left:6px; } }
