/* ===== newsdesk 뉴스 스킨 (라이트 테마) ===== */
#nd_list, #nd_v { margin:0 auto; color:#1f2937; }
#nd_list *, #nd_v * { box-sizing:border-box; }

/* 상단 툴바 */
.nd_top { display:flex; align-items:center; justify-content:space-between; margin:6px 0 14px; flex-wrap:wrap; gap:8px; }
.nd_total { font-size:15px; color:#374151; }
.nd_total b { color:#2563eb; }
.nd_top_btn { display:flex; gap:6px; }
.nd_btn { display:inline-flex; align-items:center; gap:5px; padding:7px 13px; border:1px solid #d1d5db; border-radius:8px; background:#fff; color:#374151; font-size:13px; text-decoration:none; cursor:pointer; line-height:1; }
.nd_btn:hover { background:#f9fafb; }
.nd_btn_go { background:#2563eb; color:#fff; border-color:#2563eb; }
.nd_btn_go:hover { background:#1d4ed8; }

/* 카테고리 탭 (list/view 공통 — _cate.php) */
.nd_cate { margin-bottom:16px; }
.nd_v_shell .nd_cate { margin:2px 0 18px; }
.nd_cate ul { list-style:none; margin:0; padding:0; display:flex; gap:6px; flex-wrap:wrap; }
.nd_cate li a { display:inline-block; padding:6px 14px; border:1px solid #e5e7eb; border-radius:999px; color:#4b5563; text-decoration:none; font-size:14px; }
.nd_cate li a:hover { border-color:#2563eb; color:#2563eb; }
.nd_cate li a.on, .nd_cate li.on a { background:#2563eb; color:#fff; border-color:#2563eb; }

/* 검색 */
.nd_sch { margin-bottom:16px; display:flex; gap:6px; flex-wrap:wrap; }
.nd_sch select, .nd_sch input[type=text] { padding:7px 10px; border:1px solid #d1d5db; border-radius:8px; font-size:14px; }
.nd_sch input[type=text] { flex:1; min-width:160px; }

/* 카드 그리드 */
.nd_grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; }
.nd_card { border:1px solid #eceef1; border-radius:14px; overflow:hidden; background:#fff; transition:box-shadow .15s, transform .15s; display:flex; flex-direction:column; }
.nd_card:hover { box-shadow:0 8px 24px rgba(0,0,0,.08); transform:translateY(-2px); }
.nd_card_thumb { position:relative; display:block; aspect-ratio:16/10; background:#f1f5f9; overflow:hidden; }
.nd_card_thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.nd_card_thumb.noimg, .nd_card_thumb .nd_noimg { display:flex; align-items:center; justify-content:center; }
.nd_noimg { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#cbd5e1; font-weight:800; letter-spacing:2px; font-size:20px; }
.nd_card_cate { position:absolute; left:10px; top:10px; background:rgba(37,99,235,.92); color:#fff; font-size:12px; padding:3px 9px; border-radius:6px; }
.nd_card_body { padding:13px 15px 15px; display:flex; flex-direction:column; gap:8px; flex:1; }
.nd_card_title { font-size:16px; font-weight:700; line-height:1.4; color:#111827; text-decoration:none; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_card_title:hover { color:#2563eb; }
.nd_card_sum { margin:0; font-size:13.5px; color:#6b7280; line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_card_meta { margin-top:auto; display:flex; align-items:center; gap:5px; font-size:12.5px; color:#9ca3af; flex-wrap:wrap; }

/* 기자 아바타/바이라인 */
.nd_ava { display:inline-flex; align-items:center; justify-content:center; width:24px; height:24px; border-radius:50%; color:#fff; font-size:12px; font-weight:700; }
.nd_ava.sm { width:18px; height:18px; font-size:10px; }
.nd_rp { font-weight:600; }
.nd_dot { color:#d1d5db; }

/* 페이징 */
.nd_paging { margin:26px 0 10px; text-align:center; }
.nd_paging .pg_page, .nd_paging .pg_current, .nd_paging strong { display:inline-block; min-width:34px; padding:7px 10px; margin:0 2px; border:1px solid #e5e7eb; border-radius:8px; text-decoration:none; color:#4b5563; }
.nd_paging .pg_current, .nd_paging strong.pg_current { background:#2563eb; color:#fff; border-color:#2563eb; }
.nd_empty { padding:60px 0; text-align:center; color:#9ca3af; }

/* ===== 상세 (2단: 본문 + 사이드) ===== */
/* 실제 본문 폭 기준으로 접히도록 컨테이너 쿼리 사용 (테마 사이드바가 있어도 안전) */
.nd_v_shell { container-type:inline-size; }
.nd_v_wrap { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:32px; align-items:start; max-width:1120px; margin:0 auto; }
#nd_v.nd_v_main { max-width:none; width:auto; min-width:0; overflow-wrap:anywhere; }

/* 우측 사이드바 */
.nd_v_side { position:sticky; top:20px; display:flex; flex-direction:column; gap:26px; }

/* 핫뉴스 */
.nd_hot_h { font-size:18px; font-weight:800; color:#111827; margin:0 0 4px; padding-bottom:10px; }
.nd_hot_h a { color:#111827; text-decoration:none; }
.nd_hot_h span { color:#9ca3af; font-weight:600; }
.nd_hot_list { list-style:none; margin:0; padding:0; counter-reset:hot; }
.nd_hot_row { border-top:1px solid #f0f0f0; }
.nd_hot_row:first-child { border-top:0; }
.nd_hot_link { display:flex; gap:12px; align-items:center; justify-content:space-between; padding:13px 0; text-decoration:none; }
.nd_hot_title { flex:1; font-size:14.5px; font-weight:600; line-height:1.45; color:#1f2937; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_hot_link:hover .nd_hot_title { color:#2563eb; }
.nd_hot_thumb { flex:0 0 62px; width:62px; height:48px; border-radius:6px; overflow:hidden; background:#f1f5f9; }
.nd_hot_thumb img { width:62px; height:48px; object-fit:cover; display:block; }
.nd_hot_empty { padding:20px 0; color:#9ca3af; font-size:14px; }

/* 배너/광고 슬롯 */
.nd_side_ad { display:flex; justify-content:center; }
.nd_ad_slot { display:flex; align-items:center; justify-content:center; width:300px; max-width:100%; min-height:250px; border:1px dashed #d1d5db; border-radius:12px; background:#f9fafb; text-decoration:none; }
.nd_ad_slot img { max-width:100%; height:auto; display:block; border-radius:12px; }
.nd_ad_ph { text-align:center; color:#9ca3af; font-size:14px; line-height:1.6; }
.nd_ad_ph small { color:#cbd5e1; font-size:12px; }

/* 관련뉴스 (본문 하단 2단 목록) */
.nd_rel { margin:34px 0 0; padding-top:20px; border-top:2px solid #111827; }
.nd_rel_h { font-size:18px; font-weight:800; color:#111827; margin:0 0 8px; }
.nd_rel_list { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:0 34px; }
.nd_rel_list li { border-top:1px solid #f2f2f2; }
.nd_rel_list li:nth-child(1), .nd_rel_list li:nth-child(2) { border-top:0; }
.nd_rel_list li a { display:block; position:relative; padding:11px 0 11px 14px; color:#374151; font-size:15px; text-decoration:none; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nd_rel_list li a::before { content:""; position:absolute; left:3px; top:18px; width:3px; height:3px; border-radius:50%; background:#9ca3af; }
.nd_rel_list li a:hover { color:#2563eb; }

/* AI 영상 (본문 하단 영상 카드) */
.nd_vsec { margin:30px 0 0; padding-top:20px; border-top:2px solid #111827; }
.nd_vsec_h { font-size:18px; font-weight:800; color:#111827; margin:0 0 16px; }
.nd_vsec_h a { color:#111827; text-decoration:none; }
.nd_vsec_h span { color:#9ca3af; font-weight:600; }
.nd_vgrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.nd_vcard { text-decoration:none; display:flex; flex-direction:column; gap:8px; }
.nd_vthumb { position:relative; display:block; aspect-ratio:16/9; border-radius:10px; overflow:hidden; background:#0f172a; }
.nd_vthumb img { width:100%; height:100%; object-fit:cover; display:block; }
.nd_vplay { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:rgba(0,0,0,.55); transition:background .15s; }
.nd_vplay::before { content:""; position:absolute; left:52%; top:50%; transform:translate(-50%,-50%); border-style:solid; border-width:8px 0 8px 14px; border-color:transparent transparent transparent #fff; }
.nd_vcard:hover .nd_vplay { background:#e11d48; }
.nd_vtitle { font-size:14.5px; font-weight:600; line-height:1.45; color:#1f2937; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_vcard:hover .nd_vtitle { color:#2563eb; }

/* 가로 배너 슬롯 */
.nd_hbanner { margin:26px 0; display:flex; justify-content:center; }
.nd_hb_slot { display:flex; align-items:center; justify-content:center; width:100%; min-height:92px; border:1px dashed #d1d5db; border-radius:10px; background:#f9fafb; text-decoration:none; }
.nd_hb_slot img { max-width:100%; height:auto; display:block; border-radius:10px; }
.nd_hb_ph { color:#9ca3af; font-size:14px; }
.nd_hb_ph small { color:#cbd5e1; }
.nd_hbanner_mid { margin:24px 0; }
.nd_hbanner_mid .nd_hb_slot { min-height:120px; }

/* ★ 본문 폭이 좁으면 1단으로, 사이드는 아래로 (뷰포트가 아닌 실제 본문 폭 기준).
   base 규칙 뒤에 두어야 동일 명시도에서 이겨 접힘이 적용됨 */
@container (max-width:760px){
    .nd_v_wrap { grid-template-columns:1fr; gap:28px; max-width:820px; }
    .nd_v_side { position:static; flex-direction:row; flex-wrap:wrap; gap:28px; }
    .nd_hot { flex:1 1 300px; }
    .nd_side_ad { flex:1 1 280px; align-items:flex-start; }
}

#nd_v { max-width:820px; }
/* ── 상세 헤더 (plan/4.png — 브랜드 행 / 제목 / 기자·입력시각 / 유틸 행 / 요약 인용) ── */
.nd_v_head { padding:6px 0 0; margin-bottom:22px; }
.nd_v_brand { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.nd_v_logo { display:inline-flex; align-items:center; gap:8px; font-size:17px; font-weight:800; color:#111827; text-decoration:none; letter-spacing:-.2px; }
.nd_v_logo_sq { width:14px; height:14px; border-radius:4px; background:#2563eb; display:inline-block; }
.nd_v_pick { font-size:12px; font-weight:700; color:#2563eb; border:1px solid #bfdbfe; background:#eff6ff; border-radius:999px; padding:3px 11px; text-decoration:none; }
.nd_v_pick:hover { background:#dbeafe; }
.nd_v_title { font-size:29px; line-height:1.35; font-weight:800; color:#111827; margin:0 0 16px; letter-spacing:-.3px; }
.nd_v_reporter { display:flex; align-items:center; gap:10px; margin:0 0 14px; }
.nd_ava.lg { width:34px; height:34px; font-size:15px; }
.nd_v_rpcol { display:flex; flex-direction:column; gap:2px; }
.nd_v_rpcol .nd_rp { font-size:14px; font-weight:700; }
.nd_v_when { color:#6b7280; font-size:13px; }
.nd_v_when time { color:#6b7280; }
.nd_v_orig { margin-left:8px; font-size:12px; color:#374151; border:1px solid #e5e7eb; border-radius:999px; padding:2px 10px; text-decoration:none; vertical-align:1px; }
.nd_v_orig:hover { background:#f9fafb; }
.nd_v_util { display:flex; align-items:center; justify-content:space-between; border-top:1px solid #eef0f2; border-bottom:1px solid #eef0f2; padding:9px 2px; }
.nd_v_ut { display:inline-flex; align-items:center; gap:5px; color:#4b5563; font-size:13px; margin-right:14px; text-decoration:none; }
.nd_v_ut:hover { color:#111827; }
.nd_v_ub { background:none; border:0; color:#6b7280; font-size:15px; cursor:pointer; padding:4px 9px; }
.nd_v_ub:hover { color:#111827; }
.nd_v_lead { margin:18px 0 0; padding:14px 18px; border-left:3px solid #cbd5e1; background:#f9fafb; border-radius:0 8px 8px 0; }
.nd_v_lead p { margin:0 0 6px; color:#374151; font-size:15px; line-height:1.65; }
.nd_v_lead p:last-child { margin-bottom:0; }
/* (구 버전 잔재 — 다른 곳에서 재사용 가능성 있어 유지) */
.nd_v_cate { display:inline-block; background:#eef2ff; color:#4338ca; font-size:13px; padding:4px 12px; border-radius:999px; text-decoration:none; margin-bottom:12px; }
.nd_v_byline { display:flex; align-items:center; gap:7px; flex-wrap:wrap; font-size:13.5px; color:#6b7280; }
.nd_v_byline .nd_rp { font-size:14px; }
.nd_v_byline time, .nd_v_byline .nd_hit { color:#9ca3af; }
.nd_src { color:#6b7280; text-decoration:none; }
.nd_src:hover { color:#2563eb; }

.nd_v_hero { margin:0 0 22px; border-radius:14px; overflow:hidden; }
.nd_v_hero img { width:100%; display:block; }

.nd_v_body { font-size:16.5px; line-height:1.85; color:#374151; }
.nd_v_body h3 { font-size:20px; font-weight:700; color:#111827; margin:28px 0 10px; }
.nd_v_body h4 { font-size:17px; font-weight:700; margin:20px 0 8px; }
.nd_v_body p { margin:0 0 16px; }
.nd_v_body a { color:#2563eb; }
.nd_v_body ul, .nd_v_body ol { margin:0 0 16px; padding-left:22px; }
.nd_v_body img { max-width:100%; height:auto; border-radius:10px; }
.nd_v_body pre, .nd_v_body table { max-width:100%; overflow-x:auto; }
.nd_v_body iframe { max-width:100%; }

.nd_v_btns { display:flex; gap:6px; margin:26px 0 0; padding-top:18px; border-top:1px solid #eee; }
.nd_v_nb { list-style:none; margin:18px 0; padding:0; border-top:1px solid #eee; }
.nd_v_nb li { display:flex; gap:10px; align-items:center; padding:12px 2px; border-bottom:1px solid #f1f1f1; font-size:14px; }
.nd_v_nb li span { color:#9ca3af; min-width:48px; }
.nd_v_nb li a { color:#374151; text-decoration:none; }
.nd_v_nb li a:hover { color:#2563eb; }

/* 카테고리 라벨(파란 소문자) */
.nd_klabel { display:block; color:#2563eb; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; margin:2px 0 4px; }
.nd_klabel.center { text-align:center; }
.nd_date { color:#9ca3af; font-size:12.5px; }

/* ===== 히어로 (좌 소형2 / 중앙 대형 / 우 LATEST) ===== */
.nd_hero { display:grid; grid-template-columns:230px 1fr 300px; gap:28px; padding:6px 0 26px; border-bottom:1px solid #eee; margin-bottom:26px; }

.nd_hero_side { display:flex; flex-direction:column; gap:22px; }
.nd_mini_thumb { display:block; aspect-ratio:16/11; border-radius:8px; overflow:hidden; background:#f1f5f9; }
.nd_mini_thumb img { width:100%; height:100%; object-fit:cover; }
.nd_mini_title { display:block; font-size:16px; font-weight:700; line-height:1.4; color:#111827; text-decoration:none; margin:2px 0 5px; }
.nd_mini_title:hover { color:#2563eb; }

.nd_feat { text-align:center; }
.nd_feat_thumb { display:block; aspect-ratio:16/10; border-radius:6px; overflow:hidden; background:#f1f5f9; margin-bottom:16px; }
.nd_feat_thumb img { width:100%; height:100%; object-fit:cover; }
.nd_feat_title { display:block; font-size:30px; font-weight:800; line-height:1.3; color:#111827; text-decoration:none; letter-spacing:-.5px; margin:6px 0 12px; }
.nd_feat_title:hover { color:#2563eb; }
.nd_feat_sum { max-width:560px; margin:0 auto 14px; color:#6b7280; font-size:15px; line-height:1.7; }
.nd_feat_meta { color:#9ca3af; font-size:13px; }

.nd_hero_latest { border-left:0; }
.nd_latest_h { font-size:13px; font-weight:800; letter-spacing:1px; color:#111827; border-bottom:2px solid #111827; padding-bottom:8px; margin:0 0 6px; }
.nd_lrow { display:flex; gap:12px; align-items:flex-start; justify-content:space-between; padding:14px 0; border-bottom:1px solid #f0f0f0; text-decoration:none; }
.nd_lrow_tx { flex:1; }
.nd_lrow_title { display:block; font-size:14.5px; font-weight:700; color:#1f2937; line-height:1.45; margin-bottom:5px; }
.nd_lrow:hover .nd_lrow_title { color:#2563eb; }
.nd_lrow_thumb { flex:0 0 66px; height:50px; border-radius:6px; overflow:hidden; background:#f1f5f9; }
.nd_lrow_thumb img { width:66px; height:50px; object-fit:cover; }

/* ===== 카테고리 섹션 (4열) ===== */
.nd_sec { margin:30px 0; }
.nd_sec_head { display:flex; align-items:center; justify-content:space-between; border-top:2px solid #111827; padding-top:10px; margin-bottom:18px; }
.nd_sec_title { font-size:15px; font-weight:800; letter-spacing:.5px; text-transform:uppercase; color:#111827; margin:0; }
.nd_viewall { font-size:13px; color:#2563eb; text-decoration:none; }
.nd_viewall:hover { text-decoration:underline; }
.nd_sec_grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.nd_sec_grid .nd_card { border:0; border-radius:0; }
.nd_sec_grid .nd_card:hover { box-shadow:none; transform:none; }
.nd_sec_grid .nd_card_thumb { border-radius:6px; aspect-ratio:16/11; }
.nd_sec_grid .nd_card_body { padding:11px 0 0; }
.nd_sec_grid .nd_card_title { font-size:16px; }
.nd_sec_grid.g3 { grid-template-columns:repeat(3,1fr); }
.nd_seclist { border-top:1px solid #f0f0f0; }
/* 리스트 2단 — 제목+썸네일 행을 좌우 2열로 */
.nd_seclist2 { display:grid; grid-template-columns:1fr 1fr; column-gap:32px; }
@media (max-width:640px) { .nd_seclist2 { grid-template-columns:1fr; column-gap:0; } }

/* ===== 상단 히어로 (plan/3.png — 좌 대형 / 중 서브 / 우 날짜+헤드라인+배너) ===== */
.nd_hero3 { display:grid; grid-template-columns:1.55fr 1fr 1fr; margin:6px 0 36px; }
.nd_h3_feat { padding-right:28px; min-width:0; }
.nd_h3_feat_thumb { display:block; border-radius:8px; overflow:hidden; background:#f3f4f6; aspect-ratio:16/10; }
.nd_h3_feat_thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.nd_h3_feat_thumb.noimg { display:flex; align-items:center; justify-content:center; }
.nd_h3_feat_title { display:block; margin-top:16px; font-size:26px; font-weight:800; line-height:1.35; color:#111827; text-decoration:none;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_h3_feat_title:hover { text-decoration:underline; }
.nd_h3_sub { list-style:none; margin:12px 0 0; padding:0; }
.nd_h3_sub li { margin-top:6px; }
.nd_h3_sub a { color:#6b7280; font-size:14px; line-height:1.5; text-decoration:none; display:-webkit-box; -webkit-line-clamp:1; -webkit-box-orient:vertical; overflow:hidden; }
.nd_h3_sub a:hover { text-decoration:underline; }
.nd_h3_l { color:#c3c8cf; margin-right:6px; }
.nd_h3_mid { padding:0 28px; border-left:1px solid #f0f0f0; border-right:1px solid #f0f0f0; min-width:0; }
.nd_h3_mid_thumb { display:block; border-radius:8px; overflow:hidden; background:#f3f4f6; aspect-ratio:16/11; }
.nd_h3_mid_thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.nd_h3_mid_thumb.noimg { display:flex; align-items:center; justify-content:center; }
.nd_h3_mid_title { display:block; margin:12px 0 14px; font-size:17px; font-weight:700; line-height:1.45; color:#111827; text-decoration:none;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_h3_mid_title:hover { text-decoration:underline; }
.nd_h3_row { display:flex; gap:12px; justify-content:space-between; align-items:flex-start; padding:14px 0; border-top:1px solid #f0f0f0; text-decoration:none; }
.nd_h3_row_t { flex:1; min-width:0; font-size:15px; font-weight:700; line-height:1.5; color:#1f2937;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_h3_row:hover .nd_h3_row_t { text-decoration:underline; }
.nd_h3_row_th { flex:0 0 82px; height:58px; border-radius:6px; overflow:hidden; background:#f3f4f6; }
.nd_h3_row_th img { width:100%; height:100%; object-fit:cover; display:block; }
.nd_h3_right { padding-left:28px; min-width:0; }
.nd_h3_date { text-align:right; color:#6b7280; font-size:13px; margin-bottom:6px; }
.nd_h3_date::first-line { font-weight:600; }
.nd_h3_list { list-style:none; margin:0 0 16px; padding:0; }
.nd_h3_list li { border-bottom:1px solid #f0f0f0; }
.nd_h3_list li:first-child a { padding-top:4px; }
.nd_h3_list a { display:block; padding:13px 0; font-size:16px; font-weight:700; line-height:1.45; color:#111827; text-decoration:none;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_h3_list a:hover { text-decoration:underline; }
.nd_h3_ad .nd_ad_slot { display:flex; align-items:center; justify-content:center; min-height:250px; border:1px dashed #d1d5db; border-radius:8px; text-decoration:none; }
.nd_h3_ad .nd_ad_ph { color:#9ca3af; font-size:13px; text-align:center; line-height:1.6; }

/* ===== 뉴스매거진 2단 (기본 1면 — 카테고리 리스트 좌우 배치) ===== */
.nd_mag2 { display:grid; grid-template-columns:1fr 1fr; gap:0 48px; align-items:start; }
.nd_mag2 .nd_sec { margin:20px 0; }

/* ===== 카테고리 2단 (좌 피드 + 우 많이 본 뉴스) ===== */
.nd_duo { display:flex; gap:40px; align-items:flex-start; margin:30px 0; }
.nd_duo_feed { flex:1; min-width:0; }
.nd_frow { display:flex; gap:18px; padding:18px 0; border-bottom:1px solid #eef0f2; text-decoration:none; color:inherit; }
.nd_frow_thumb { flex:0 0 190px; height:127px; border-radius:8px; overflow:hidden; background:#f3f4f6; display:block; position:relative; }
.nd_frow_thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.nd_frow_thumb .nd_noimg { display:flex; align-items:center; justify-content:center; width:100%; height:100%; color:#d1d5db; font-weight:800; letter-spacing:2px; }
.nd_frow_tx { min-width:0; display:block; }
.nd_frow_title { display:block; font-size:18px; font-weight:700; color:#111827; line-height:1.45;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.nd_frow:hover .nd_frow_title { text-decoration:underline; }
.nd_frow_sum { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    margin-top:8px; color:#4b5563; font-size:14px; line-height:1.65; }
.nd_frow_time { display:block; margin-top:10px; color:#9ca3af; font-size:12px; }
.nd_duo_rank { flex:0 0 300px; }
.nd_rank_h { font-size:17px; font-weight:800; margin:0 0 2px; }
.nd_rank_h a { color:#111827; text-decoration:none; }
.nd_rank_h a:hover { text-decoration:underline; }
.nd_rank_h em { font-style:normal; color:#2563eb; margin-right:6px; }
.nd_rank_h span { color:#9ca3af; font-weight:400; }
.nd_rank_list { list-style:none; margin:0; padding:0; counter-reset:ndrank; }
.nd_rank_list li { border-bottom:1px solid #f1f3f5; }
.nd_rank_list li:last-child { border-bottom:0; }
.nd_rank_list a { display:flex; gap:10px; align-items:flex-start; padding:13px 0; text-decoration:none; color:#1f2937; }
.nd_rank_list a:hover .nd_rank_t { text-decoration:underline; }
.nd_rank_no { flex:0 0 18px; font-style:normal; font-size:16px; font-weight:800; color:#111827; line-height:1.4; }
.nd_rank_t { flex:1; min-width:0; font-size:14px; line-height:1.5;
    display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.nd_rank_th { flex:0 0 70px; height:48px; border-radius:6px; overflow:hidden; background:#f3f4f6; }
.nd_rank_th img { width:100%; height:100%; object-fit:cover; display:block; }
.nd_rank_empty { padding:20px 0; color:#9ca3af; font-size:13px; }

/* 반응형 */
@media (max-width:1000px){
    .nd_grid { grid-template-columns:repeat(2,1fr); }
    .nd_sec_grid, .nd_sec_grid.g3 { grid-template-columns:repeat(2,1fr); }
    .nd_hero { grid-template-columns:1fr; }
    .nd_hero_side { flex-direction:row; }
    .nd_hero_side .nd_mini { flex:1; }
    .nd_feat_title { font-size:26px; }
    /* 상세 2단 → 1단, 사이드는 본문 아래로 */
    .nd_v_wrap { grid-template-columns:1fr; gap:32px; max-width:820px; }
    .nd_v_side { position:static; flex-direction:row; flex-wrap:wrap; gap:32px; }
    .nd_hot { flex:1 1 320px; }
    .nd_side_ad { flex:1 1 300px; align-items:flex-start; }
    .nd_vgrid { grid-template-columns:repeat(3,1fr); }
    /* 카테고리 2단 → 세로 배치 */
    .nd_duo { flex-direction:column; gap:26px; }
    .nd_duo_rank { flex:1; width:100%; }
    /* 히어로3: 톱기사 전체폭, 중앙/우측 나란히 */
    .nd_hero3 { grid-template-columns:1fr 1fr; }
    .nd_h3_feat { grid-column:1 / -1; padding-right:0; margin-bottom:22px; }
    .nd_h3_mid { padding-left:0; border-left:0; }
}
@media (max-width:640px){
    .nd_frow { gap:12px; padding:14px 0; }
    .nd_frow_thumb { flex-basis:120px; height:80px; }
    .nd_frow_title { font-size:15px; }
    .nd_frow_sum { display:none; }
    /* 히어로3/매거진 1단 */
    .nd_hero3 { grid-template-columns:1fr; }
    .nd_h3_mid { padding:0; border:0; margin-top:4px; }
    .nd_h3_right { padding-left:0; }
    .nd_h3_feat_title { font-size:21px; }
    .nd_mag2 { grid-template-columns:1fr; gap:0; }
    .nd_grid { grid-template-columns:1fr; gap:14px; }
    .nd_sec_grid { grid-template-columns:1fr; }
    .nd_hero_side { flex-direction:column; }
    .nd_feat_title { font-size:22px; }
    .nd_v_title { font-size:23px; }
    .nd_v_body { font-size:16px; }
    .nd_rel_list { grid-template-columns:1fr; }
    .nd_rel_list li:nth-child(2) { border-top:1px solid #f2f2f2; }
    .nd_vgrid { grid-template-columns:1fr 1fr; gap:12px; }
}
