@charset "utf-8";

/***************************************************************************************************
*   Sub Common Layout
*   - 게시판 리스트 / 기사 상세 / 광고모음 / 교재 페이지 공통 스타일
***************************************************************************************************/
.sub-content                                    {background:#fff;}
.sub-visual                                     {padding:44px 0 34px; border-bottom:1px solid var(--color-border); background:#fff;}
.sub-visual__eng                                {font-size:12px; font-weight:700; letter-spacing:0.24em; color:var(--color-accent); text-transform:uppercase; margin-bottom:8px;}
.sub-visual__title                              {font-family:var(--font-serif); font-size:32px; font-weight:800; color:var(--color-primary); letter-spacing:-0.04em; line-height:1.25;}
.sub-visual__desc                               {font-size:14px; color:var(--color-text-light); margin-top:8px; line-height:1.65;}

.board-section,
.materials-page-section,
.ads-page-section                               {padding:42px 0 70px;}

.board-toolbar                                  {display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; padding-bottom:14px; border-bottom:2px solid var(--color-primary);}
.board-count                                    {font-size:13px; color:var(--color-text-light);}
.board-count strong                             {color:var(--color-primary); font-weight:800;}
.view-mode                                      {display:flex; align-items:center; justify-content:flex-end; gap:6px; margin-left:auto;}
.view-mode-btn                                  {display:inline-flex; align-items:center; justify-content:center; width:36px; height:34px; padding:0; border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-text-light); border-radius:999px; transition:all var(--transition);}
.view-mode-btn:hover,
.view-mode-btn.is-active                        {border-color:var(--color-primary); background:var(--color-primary); color:#fff;}
.view-mode-icon                                 {display:block; position:relative; width:18px; height:18px; color:currentColor;}
.view-mode-icon--text::before                   {content:''; position:absolute; left:2px; top:4px; width:14px; height:2px; background:currentColor; box-shadow:0 5px 0 currentColor, 0 10px 0 currentColor; border-radius:2px;}
.view-mode-icon--mixed::before                  {content:''; position:absolute; left:1px; top:3px; width:7px; height:12px; border:2px solid currentColor; border-radius:2px;}
.view-mode-icon--mixed::after                   {content:''; position:absolute; left:11px; top:4px; width:6px; height:2px; background:currentColor; box-shadow:0 5px 0 currentColor, 0 10px 0 currentColor; border-radius:2px;}
.view-mode-icon--image::before                  {content:''; position:absolute; left:2px; top:3px; width:14px; height:12px; border:2px solid currentColor; border-radius:2px;}
.view-mode-icon--image::after                   {content:''; position:absolute; left:5px; top:10px; width:9px; height:6px; background:currentColor; clip-path:polygon(0 100%, 38% 35%, 60% 68%, 78% 45%, 100% 100%);}

/***************************************************************************************************
*   Board List View Mode
***************************************************************************************************/
.board-list-wrap                                {display:grid; gap:0; border-top:1px solid var(--color-border);}
.board-list-item                                {display:grid; grid-template-columns:170px minmax(0,1fr); gap:18px; padding:20px 0; border-bottom:1px solid var(--color-border); align-items:start;}
.board-thumb                                    {display:block; width:170px; height:108px; background:var(--color-bg-soft);}
.board-list-info                                {min-width:0;}
.board-region                                   {display:inline-block; margin-bottom:8px; padding:3px 8px; background:var(--color-primary); color:#fff; font-size:10px; font-weight:800; letter-spacing:0.12em;}
.board-list-info h2                             {font-size:18px; font-weight:800; color:var(--color-text); line-height:1.42; letter-spacing:-0.03em; margin-bottom:7px;}
.board-list-info h2 a:hover                     {color:var(--color-accent);}
.board-list-info p                              {font-size:13px; line-height:1.65; color:var(--color-text-light); margin-bottom:7px;}
.board-list-info time                           {font-size:12px; color:var(--color-text-muted);}

.board-list-wrap.view-text .board-list-item     {display:block; padding:16px 0;}
.board-list-wrap.view-text .board-thumb,
.board-list-wrap.view-text .board-list-info p   {display:none;}
.board-list-wrap.view-text .board-region        {margin-right:8px; margin-bottom:0; vertical-align:middle;}
.board-list-wrap.view-text .board-list-info h2  {display:inline; font-size:16px;}
.board-list-wrap.view-text .board-list-info time{float:right; margin-top:4px;}

.board-list-wrap.view-image                     {grid-template-columns:repeat(4, minmax(0,1fr)); gap:24px; border-top:none;}
.board-list-wrap.view-image .board-list-item    {display:block; padding:0; border-bottom:none;}
.board-list-wrap.view-image .board-thumb        {width:100%; height:auto; aspect-ratio:4 / 3; margin-bottom:12px;}
.board-list-wrap.view-image .board-list-info p,
.board-list-wrap.view-image .board-list-info time{display:none;}
.board-list-wrap.view-image .board-list-info h2 {font-size:15px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}

/***************************************************************************************************
*   Media List
***************************************************************************************************/
.media-board-grid                               {display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:28px 22px;}
.media-board-card                               {background:var(--color-surface);}
.media-thumb                                    {display:block; position:relative; width:100%; aspect-ratio:16 / 9; overflow:hidden; background:#111; margin-bottom:14px;}
.media-thumb .IMCA                              {position:absolute; inset:0;}
.video-play-small                               {position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:rgba(255,255,255,0.94); color:var(--color-accent); font-size:18px; box-shadow:0 8px 18px rgba(0,0,0,0.25);}
.media-board-info h2                            {font-size:17px; font-weight:800; line-height:1.42; letter-spacing:-0.03em; margin-bottom:8px;}
.media-board-info p                             {font-size:13px; line-height:1.6; color:var(--color-text-light); margin-bottom:8px;}
.media-board-info time                          {font-size:12px; color:var(--color-text-muted);}

/***************************************************************************************************
*   Article View
***************************************************************************************************/

.article-view                                   {padding:44px 0 72px;}
.article-head                                   {padding-bottom:22px; margin-bottom:24px; border-bottom:2px solid var(--color-primary);}
.article-title                                  {font-size:31px; font-weight:800; line-height:1.35; letter-spacing:-0.045em; color:var(--color-text); word-break:keep-all;}
.article-meta                                   {display:flex; gap:18px; margin-top:14px; font-size:13px; color:var(--color-text-muted);}

/* 기사 대표 이미지 : 최대 650 x 420px, 반응형 비율 유지 */
.article-main-img                               {width:100%; max-width:650px; max-height:420px; aspect-ratio:65 / 42; margin:0 0 30px; background:var(--color-bg-soft); overflow:hidden;}
.article-main-img img                           {display:block; width:100%; height:100%; object-fit:cover; object-position:center;}

/* 기사 본문 첨부 이미지 : figure 또는 article-inner-img 사용 시 */
.article-body figure,
.article-body .article-inner-img                {width:100%; max-width:650px; max-height:420px; aspect-ratio:65 / 42; margin:24px 0; overflow:hidden; background:var(--color-bg-soft);}
.article-body figure img,
.article-body .article-inner-img img            {display:block; width:100%; height:100%; object-fit:cover; object-position:center;}

/* 기사 본문에 img 태그가 바로 들어오는 경우 */
.article-body > img                             {display:block; width:100%; max-width:650px; max-height:420px; height:auto; margin:24px 0; object-fit:contain; object-position:center;}

.article-body                                   {max-width:none; margin:0; text-align:left;}
.article-body p                                 {font-size:17px; line-height:1.95; color:var(--color-text); margin-bottom:20px; text-align:left; word-break:keep-all;}
.reporter-box                                   {display:flex; align-items:center; gap:16px; max-width:none; margin:38px 0 0; padding:22px; border:1px solid var(--color-border); background:#fff;}
.reporter-photo                                 {width:50px; height:50px; min-width:50px; border-radius:50%; background:#eee;}
.reporter-info strong                           {display:block; font-size:15px; font-weight:800; color:var(--color-text); margin-bottom:4px;}
.reporter-info a                                {font-size:13px; color:var(--color-text-light);}
.copyright-notice                               {max-width:none; margin:22px 0 0; padding:16px 0; border-top:1px solid var(--color-border); border-bottom:1px solid var(--color-border); font-size:13px; color:var(--color-text-muted); text-align:left;}
.article-buttons                                {max-width:none; margin:24px 0 0; text-align:right;}
.btn-list-back                                  {display:inline-flex; align-items:center; justify-content:center; min-width:96px; height:40px; padding:0 18px; background:var(--color-primary); color:#fff !important; font-size:14px; font-weight:800; border-radius:2px;}
.btn-list-back:hover                            {background:var(--color-accent);}

/***************************************************************************************************
*   Pagination
***************************************************************************************************/
.pagination                                     {display:flex; justify-content:center; align-items:center; gap:4px; margin-top:34px; flex-wrap:wrap;}
.page-btn                                       {display:inline-flex; align-items:center; justify-content:center; min-width:34px; height:34px; padding:0 10px; border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-text-light); font-size:13px; font-weight:700;}
.page-btn:hover,
.page-btn.is-current                            {border-color:var(--color-primary); background:var(--color-primary); color:#fff;}

/***************************************************************************************************
*   Ads Page
***************************************************************************************************/
.sub-tab-menu                                   {display:flex; gap:8px; margin-bottom:28px; padding-bottom:16px; border-bottom:2px solid var(--color-primary);}
.sub-tab-menu a                                 {display:inline-flex; align-items:center; justify-content:center; min-width:130px; height:42px; padding:0 18px; border:1px solid var(--color-border); background:var(--color-surface); font-size:14px; font-weight:800; color:var(--color-text-light);}
.sub-tab-menu a:hover,
.sub-tab-menu a.is-current                      {background:var(--color-primary); border-color:var(--color-primary); color:#fff;}
.ad-list-grid                                   {display:grid; gap:22px;}
.ad-list-grid--main                             {grid-template-columns:repeat(2, minmax(0,1fr));}
.ad-list-grid--side                             {grid-template-columns:repeat(4, minmax(0,1fr));}
.ad-list-card                                   {border:1px solid var(--color-border); background:var(--color-surface); overflow:hidden;}
.ad-list-thumb                                  {display:block; width:100%; aspect-ratio:16 / 9; background:var(--color-bg-soft);}
.ad-list-card--side .ad-list-thumb              {aspect-ratio:3 / 4;}
.ad-list-info                                   {padding:14px 16px;}
.ad-list-info h2                                {font-size:15px; font-weight:800; color:var(--color-text); margin-bottom:6px;}
.ad-list-info p                                 {font-size:12px; color:var(--color-text-muted);}

/***************************************************************************************************
*   Materials Page
***************************************************************************************************/
.book-list-grid                                 {display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:24px;}
.book-card                                      {display:grid; grid-template-columns:150px minmax(0,1fr); gap:20px; padding:22px; border:1px solid var(--color-border); background:var(--color-surface);}
.book-thumb                                     {display:block; width:150px; aspect-ratio:3 / 4; background:var(--color-bg-soft); box-shadow:0 8px 18px rgba(0,0,0,0.08);}
.book-info h2                                   {font-size:19px; font-weight:800; line-height:1.35; color:var(--color-text); margin-bottom:12px; letter-spacing:-0.035em;}
.book-info dl                                   {display:grid; gap:4px; margin-bottom:12px;}
.book-info dl div                               {display:flex; gap:8px; font-size:13px;}
.book-info dt                                   {min-width:48px; color:var(--color-primary); font-weight:800;}
.book-info dd                                   {color:var(--color-text-light);}
.book-info p                                    {font-size:13px; line-height:1.7; color:var(--color-text-light);}

/***************************************************************************************************
*   Dark Mode
***************************************************************************************************/
html[data-theme="dark"] .sub-visual             {background:var(--color-bg);}
html[data-theme="dark"] .sub-visual__title        {color:#fff;}
html[data-theme="dark"] .board-count strong       {color:#fff;}
html[data-theme="dark"] .reporter-box,
html[data-theme="dark"] .ad-list-card,
html[data-theme="dark"] .book-card              {background:var(--color-surface);}

/***************************************************************************************************
*   Responsive
***************************************************************************************************/
@media screen and (max-width:1024px) {
    .board-list-wrap.view-image                 {grid-template-columns:repeat(3, minmax(0,1fr));}
    .media-board-grid                           {grid-template-columns:repeat(2, minmax(0,1fr));}
    .ad-list-grid--side                         {grid-template-columns:repeat(3, minmax(0,1fr));}
    .book-list-grid                             {grid-template-columns:1fr;}
}

@media screen and (max-width:768px) {
    .sub-visual                                 {padding:32px 0 26px;}
    .sub-visual__title                          {font-size:26px;}
    .board-toolbar                              {align-items:stretch; flex-direction:column;}
    .view-mode                                  {width:100%; justify-content:flex-end; overflow-x:auto; padding-bottom:2px;}
    .board-list-item                            {grid-template-columns:116px minmax(0,1fr); gap:12px;}
    .board-thumb                                {width:116px; height:78px;}
    .board-list-info h2                         {font-size:16px;}
    .board-list-wrap.view-text .board-list-info time{float:none; display:block; margin-top:7px;}
    .board-list-wrap.view-image                 {grid-template-columns:repeat(2, minmax(0,1fr)); gap:18px 14px;}
    .media-board-grid                           {grid-template-columns:1fr;}
    .article-title                              {font-size:24px;}
    .article-meta                               {flex-direction:column; gap:4px;}
    .article-body p                             {font-size:15px; line-height:1.85;}
    .reporter-box                               {padding:16px;}
    .ad-list-grid--main,
    .ad-list-grid--side                         {grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px;}
    .book-card                                  {grid-template-columns:110px minmax(0,1fr); gap:14px; padding:16px;}
    .book-thumb                                 {width:110px;}
    .book-info h2                               {font-size:16px;}
}

@media screen and (max-width:480px) {
    .board-list-item                            {grid-template-columns:1fr;}
    .board-thumb                                {width:100%; height:auto; aspect-ratio:16 / 9;}
    .board-list-wrap.view-image                 {grid-template-columns:1fr;}
    .ad-list-grid--main,
    .ad-list-grid--side                         {grid-template-columns:1fr;}
    .book-card                                  {grid-template-columns:1fr;}
    .book-thumb                                 {width:100%; max-width:170px;}
}


/***************************************************************************************************
*   Content Page Layout
*   - 하단 메뉴 콘텐츠 공통 레이아웃 / data/html 조각 파일 출력 영역
***************************************************************************************************/
.content-page-section                          {padding:42px 0 76px;}
.content-layout                                {display:grid; grid-template-columns:230px minmax(0,1fr); gap:42px; align-items:start;}
.content-lnb                                   {position:sticky; top:82px; border:1px solid var(--color-border); background:var(--color-surface);}
.content-lnb__title                            {padding:18px 20px; background:var(--color-primary); color:#fff; font-size:17px; font-weight:800; letter-spacing:-0.04em;}
.content-lnb ul                                {padding:8px 0;}
.content-lnb li a                              {display:flex; align-items:center; justify-content:space-between; padding:13px 18px; border-bottom:1px solid var(--color-border); color:var(--color-text-light); font-size:14px; font-weight:700;}
.content-lnb li:last-child a                   {border-bottom:none;}
.content-lnb li a::after                       {content:''; width:7px; height:7px; border:2px solid currentColor; border-left:none; border-bottom:none; transform:rotate(45deg); opacity:0.45;}
.content-lnb li a:hover,
.content-lnb li a.is-current                   {color:var(--color-accent); background:var(--color-bg-soft);}
.content-body                                  {min-width:0; padding:0 0 20px;}
.content-card                                  {border:1px solid var(--color-border); background:var(--color-surface); padding:38px 42px;}
.content-card h2                               {font-size:28px; font-weight:900; color:var(--color-text); letter-spacing:-0.045em; line-height:1.3; margin-bottom:16px;}
.content-card h3                               {font-size:20px; font-weight:850; color:var(--color-primary); letter-spacing:-0.04em; margin:34px 0 12px;}
.content-card p                                {font-size:15px; line-height:1.9; color:var(--color-text-light); word-break:keep-all; margin-bottom:14px;}
.content-lead                                  {padding:22px 24px; margin:20px 0 28px; background:var(--color-bg-soft); border-left:4px solid var(--color-primary); font-size:16px !important; color:var(--color-text) !important;}
.content-sign                                  {margin-top:32px; text-align:right; font-weight:800; color:var(--color-text);}
.content-empty                                 {display:flex; align-items:center; justify-content:center; min-height:220px; border:1px dashed var(--color-border); color:var(--color-text-muted); font-size:15px; font-weight:700; background:var(--color-bg-soft);}

.dm-timeline                                   {position:relative; padding:10px 0;}
.dm-timeline::before                           {content:''; position:absolute; left:108px; top:0; bottom:0; width:2px; background:var(--color-border);}
.dm-timeline-year                              {position:relative; display:grid; grid-template-columns:86px minmax(0,1fr); gap:44px; margin-bottom:36px;}
.dm-timeline-year:last-child                   {margin-bottom:0;}
.dm-timeline-year strong                       {font-size:30px; font-weight:900; color:var(--color-primary); line-height:1;}
.dm-timeline-items                             {display:grid; gap:12px;}
.dm-timeline-item                              {position:relative; display:grid; grid-template-columns:72px minmax(0,1fr); gap:16px;}
.dm-timeline-item::before                      {content:''; position:absolute; left:-35px; top:7px; width:12px; height:12px; border-radius:50%; background:var(--color-accent); border:3px solid var(--color-surface); box-shadow:0 0 0 1px var(--color-accent);}
.dm-timeline-date                              {font-size:13px; font-weight:850; color:var(--color-accent); font-variant-numeric:tabular-nums;}
.dm-timeline-text                              {font-size:14px; line-height:1.75; color:var(--color-text-light);}

.org-chart                                     {display:grid; gap:18px; margin-top:22px;}
.org-node                                      {display:flex; align-items:center; justify-content:center; min-height:58px; padding:14px 18px; border:1px solid var(--color-border); background:var(--color-bg-soft); font-weight:850; color:var(--color-text); text-align:center;}
.org-node--top                                 {background:var(--color-primary); color:#fff; font-size:18px;}
.org-node--sub                                 {background:var(--color-surface); color:var(--color-primary);}
.org-row                                       {display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:16px;}
.org-card                                      {padding:20px; border:1px solid var(--color-border); background:var(--color-surface);}
.org-card h4                                   {font-size:16px; font-weight:850; color:var(--color-text); margin-bottom:10px;}
.org-card ul                                   {display:grid; gap:7px;}
.org-card li                                   {position:relative; padding-left:10px; font-size:13px; color:var(--color-text-light); line-height:1.6;}
.org-card li::before                           {content:''; position:absolute; left:0; top:10px; width:4px; height:4px; border-radius:50%; background:var(--color-accent);}

.location-box                                  {display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px;}
.location-map                                  {display:flex; align-items:center; justify-content:center; min-height:300px; background:linear-gradient(135deg, rgba(26,39,68,0.12), rgba(200,16,46,0.08)); border:1px solid var(--color-border); color:var(--color-text-muted); font-weight:800;}
.location-info                                 {display:grid; gap:12px; align-content:start;}
.location-info dl                              {display:grid; grid-template-columns:86px minmax(0,1fr); gap:6px 12px; padding:16px; border:1px solid var(--color-border); background:var(--color-surface);}
.location-info dt                              {font-weight:850; color:var(--color-primary);}
.location-info dd                              {color:var(--color-text-light); line-height:1.55;}

html[data-theme="dark"] .content-card h3,
html[data-theme="dark"] .dm-timeline-year strong,
html[data-theme="dark"] .location-info dt       {color:#fff;}
html[data-theme="dark"] .content-lnb,
html[data-theme="dark"] .content-card,
html[data-theme="dark"] .org-card,
html[data-theme="dark"] .location-info dl       {background:var(--color-surface);}

@media screen and (max-width:997px) {
    .content-layout                            {grid-template-columns:1fr; gap:22px;}
    .content-lnb                               {position:relative; top:auto;}
    .content-lnb ul                            {display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); padding:8px; gap:6px;}
    .content-lnb li a                          {justify-content:center; padding:10px 8px; border:1px solid var(--color-border); font-size:13px; text-align:center;}
    .content-lnb li a::after                   {display:none;}
    .content-card                              {padding:28px 22px;}
    .content-card h2                           {font-size:23px;}
    .dm-timeline::before                       {left:80px;}
    .dm-timeline-year                          {grid-template-columns:62px minmax(0,1fr); gap:34px;}
    .dm-timeline-year strong                   {font-size:22px;}
    .dm-timeline-item                          {grid-template-columns:58px minmax(0,1fr); gap:12px;}
    .dm-timeline-item::before                  {left:-28px;}
    .org-row                                   {grid-template-columns:1fr;}
    .location-box                              {grid-template-columns:1fr;}
}

@media screen and (max-width:517px) {
    .content-page-section                      {padding:28px 0 52px;}
    .content-lnb ul                            {grid-template-columns:repeat(2, minmax(0,1fr));}
    .content-card                              {padding:22px 16px;}
    .content-card h2                           {font-size:21px;}
    .dm-timeline::before                       {left:0;}
    .dm-timeline-year                          {display:block; padding-left:20px;}
    .dm-timeline-year strong                   {display:block; margin-bottom:14px;}
    .dm-timeline-item                          {grid-template-columns:1fr; gap:3px; padding-left:18px; margin-bottom:14px;}
    .dm-timeline-item::before                  {left:-5px; top:5px;}
}

/* 조직도 카드 안의 H4는 기존 서브페이지 H4 장식선을 사용하지 않음 */
.org-card h4                                   {margin:0 0 10px; padding:0;}
.org-card h4::before                           {display:none;}

/***************************************************************************************************
*   Dark Mode Reinforcement - Sub Pages : 2026.04.30
*   - 게시판 / 기사상세 / 광고모음 / 다문화교재 / 회사소개 콘텐츠까지 다크모드 적용
*   - 기존 구조를 변경하지 않고 색상만 테마 변수 기준으로 보정
***************************************************************************************************/
html[data-theme="dark"] body,
html[data-theme="dark"] .sub-content,
html[data-theme="dark"] .board-section,
html[data-theme="dark"] .article-view,
html[data-theme="dark"] .materials-page-section,
html[data-theme="dark"] .ads-page-section,
html[data-theme="dark"] .content-page-section                 {background:var(--color-bg); color:var(--color-text);}

html[data-theme="dark"] .sub-visual                            {background:var(--color-bg); border-bottom-color:var(--color-border);}
html[data-theme="dark"] .sub-visual__title,
html[data-theme="dark"] .article-title,
html[data-theme="dark"] .board-list-info h2,
html[data-theme="dark"] .media-board-info h2,
html[data-theme="dark"] .ad-list-info h2,
html[data-theme="dark"] .book-info h2,
html[data-theme="dark"] .content-card h2,
html[data-theme="dark"] .content-sign,
html[data-theme="dark"] .reporter-info strong                 {color:var(--color-text);}

html[data-theme="dark"] .sub-visual__desc,
html[data-theme="dark"] .board-count,
html[data-theme="dark"] .board-list-info p,
html[data-theme="dark"] .media-board-info p,
html[data-theme="dark"] .book-info p,
html[data-theme="dark"] .book-info dd,
html[data-theme="dark"] .content-card p,
html[data-theme="dark"] .content-lnb li a,
html[data-theme="dark"] .reporter-info a,
html[data-theme="dark"] .location-info dd                      {color:var(--color-text-light);}

html[data-theme="dark"] .article-meta,
html[data-theme="dark"] .board-list-info time,
html[data-theme="dark"] .media-board-info time,
html[data-theme="dark"] .ad-list-info p,
html[data-theme="dark"] .copyright-notice,
html[data-theme="dark"] .content-empty                         {color:var(--color-text-muted);}

html[data-theme="dark"] .board-toolbar,
html[data-theme="dark"] .article-head,
html[data-theme="dark"] .sub-tab-menu                           {border-bottom-color:#ffffff;}

html[data-theme="dark"] .board-list-wrap,
html[data-theme="dark"] .board-list-item,
html[data-theme="dark"] .copyright-notice                       {border-color:var(--color-border);}

html[data-theme="dark"] .view-mode-btn,
html[data-theme="dark"] .page-btn,
html[data-theme="dark"] .sub-tab-menu a,
html[data-theme="dark"] .reporter-box,
html[data-theme="dark"] .ad-list-card,
html[data-theme="dark"] .book-card,
html[data-theme="dark"] .content-lnb,
html[data-theme="dark"] .content-card,
html[data-theme="dark"] .org-card,
html[data-theme="dark"] .location-info dl                       {background:var(--color-surface); border-color:var(--color-border); color:var(--color-text-light);}

html[data-theme="dark"] .view-mode-btn:hover,
html[data-theme="dark"] .view-mode-btn.is-active,
html[data-theme="dark"] .page-btn:hover,
html[data-theme="dark"] .page-btn.is-current,
html[data-theme="dark"] .sub-tab-menu a:hover,
html[data-theme="dark"] .sub-tab-menu a.is-current              {background:#ffffff; border-color:#ffffff; color:#121417;}

html[data-theme="dark"] .content-lnb li a:hover,
html[data-theme="dark"] .content-lnb li a.is-current            {background:rgba(255,255,255,0.07); color:#ffffff;}

html[data-theme="dark"] .content-lead,
html[data-theme="dark"] .content-empty,
html[data-theme="dark"] .board-thumb,
html[data-theme="dark"] .article-main-img,
html[data-theme="dark"] .ad-list-thumb,
html[data-theme="dark"] .book-thumb                              {background:var(--color-bg-soft);}

html[data-theme="dark"] .reporter-photo                         {background:#2a2f39;}
html[data-theme="dark"] .book-info dt,
html[data-theme="dark"] .content-card h3,
html[data-theme="dark"] .dm-timeline-year strong,
html[data-theme="dark"] .location-info dt,
html[data-theme="dark"] .org-node--sub                           {color:#ffffff;}

html[data-theme="dark"] .dm-timeline::before                     {background:var(--color-border);}
html[data-theme="dark"] .dm-timeline-item::before                {border-color:var(--color-surface);}
html[data-theme="dark"] .dm-timeline-text                        {color:var(--color-text-light);}

html[data-theme="dark"] .org-node                                {background:var(--color-bg-soft); border-color:var(--color-border); color:var(--color-text);}
html[data-theme="dark"] .org-node--top                            {background:#ffffff; color:#121417;}
html[data-theme="dark"] .org-card li                              {color:var(--color-text-light);}

html[data-theme="dark"] .location-map                             {background:linear-gradient(135deg, rgba(255,255,255,0.07), rgba(200,16,46,0.10)); border-color:var(--color-border); color:var(--color-text-muted);}

/* data/html 안에 개별 style로 들어간 콘텐츠 보정 */
html[data-theme="dark"] .historyContent .historyHead              {border-bottom-color:var(--color-border);}
html[data-theme="dark"] .historyContent .historyHead h3,
html[data-theme="dark"] .historyText,
html[data-theme="dark"] .historyYear                              {color:var(--color-text);}
html[data-theme="dark"] .historyContent .historyHead p             {color:var(--color-text-light);}
html[data-theme="dark"] .historyTimeline:before                    {background:linear-gradient(180deg, #ffffff, rgba(255,255,255,0.16));}
html[data-theme="dark"] .historyItem:before                        {border-color:#ffffff; background:var(--color-surface); box-shadow:0 0 0 7px rgba(255,255,255,0.08);}
html[data-theme="dark"] .historyMonth                              {background:rgba(255,255,255,0.08); color:#ffffff;}
html[data-theme="dark"] .historyList li                            {border-bottom-color:rgba(255,255,255,0.12);}

html[data-theme="dark"] .org-chart-css                             {color:var(--color-text);}
html[data-theme="dark"] .org-line,
html[data-theme="dark"] .org-branches:before,
html[data-theme="dark"] .org-branch:before,
html[data-theme="dark"] .org-dept-grid:before,
html[data-theme="dark"] .org-dept:before                           {background:#59606f;}
html[data-theme="dark"] .org-node--department                       {background:#6f7380; color:#ffffff;}
html[data-theme="dark"] .org-dept-desc                              {background:#2a2f39; color:#d9dde5;}
html[data-theme="dark"] .organization-card                          {background:transparent; border-color:transparent;}

/* ====================================================
   첨부파일 (renderAttachmentList)
   ==================================================== */

.attach-wrap {
    background: #f8f9fa;
    border-radius: 10px;
    border: 1px solid #e9ecef;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.attach-header {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-bottom: 1px solid #e9ecef;
    background: #fff;
}

.attach-header .fas {
    font-size: 14px;
    color: #868e96;
}

.attach-header-title {
    font-size: 13px;
    font-weight: 600;
    color: #495057;
}

/* 개별 파일 행 */
.attach-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 16px;
    border-bottom: 1px solid #f1f3f5;
    transition: background .15s ease;
}

.attach-item:last-child {
    border-bottom: none;
}

.attach-item:hover {
    background: #f1f8ff;
}

/* 파일 타입 아이콘 영역 */
.attach-icon {
    width: 34px;
    height: 34px;
    border-radius: 8px;
    background: #e7f5ff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.attach-icon .fas {
    font-size: 15px;
    color: #228be6;
}

/* 파일명 + 메타 */
.attach-info {
    flex: 1;
    min-width: 0;
}

.attach-info a.text-primary {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: #212529 !important;
    text-decoration: none;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.attach-info a.text-primary:hover {
    color: #228be6 !important;
    text-decoration: underline;
}

/* 용량·다운로드 수 */
.attach-item .text-muted.small {
    font-size: 12px;
    color: #868e96;
    margin-left: 0 !important;
    display: inline-block;
    margin-top: 2px;
}

/* 컨텐츠 배지 */
.attach-item .badge-secondary {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 100px;
    background: #e9ecef;
    color: #495057;
    font-weight: 500;
    margin-left: 6px;
}

/* 다운로드 버튼 */
.attach-btn-dl {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid #dee2e6;
    color: #868e96;
    text-decoration: none;
    flex-shrink: 0;
    transition: background .15s, color .15s, border-color .15s;
}

.attach-btn-dl:hover {
    background: #e7f5ff;
    color: #228be6;
    border-color: #a5d8ff;
}

/* ====================================================
   구독 후원하기 (.subscription)
   ==================================================== */

.subscription {
    border-radius: 10px;
    border: 1px solid #ffe3e3;
    overflow: hidden;
    margin: 1.5rem 0;
}

/* 상단 헤더 영역 */
.subscription h6 {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    font-weight: 700;
    color: #c92a2a;
    padding: 14px 18px;
    margin: 0;
    background: #fff5f5;
    border-bottom: 1px solid #ffe3e3;
}

.subscription h6::before {
    content: "♥";
    font-size: 13px;
}

/* 본문 줄 */
.subscription > span {
    display: block;
    font-size: 13px;
    color: #495057;
    line-height: 1.65;
    padding: 6px 18px;
    border-bottom: 1px solid #fff0f0;
}

.subscription > span:first-of-type {
    padding-top: 14px;
}

.subscription > span:last-of-type {
    padding-bottom: 14px;
    border-bottom: none;
}

/* 계좌번호 강조 */
.subscription em {
    font-style: normal;
    font-weight: 700;
    color: #c92a2a;
}