/**
 * Joyn News v2.0.0 — HCJoyn Design System + 신문 스타일
 * christianwr.com 분석 기반 리팩토링
 * Pretendard + Remix Icon 4.6.0
 * 파일 위치: joyn-news/assets/css/joyn-news.css
 *
 * 라이트 모드 기본 토큰은 :root 에 두고, 다크는 [data-jn-theme="dark"] 에서 덮어쓴다.
 * jn-theme-switch 스크립트 미실행·지연 시에도 배경/글자색이 브라우저 기본으로 떨어지지 않도록 한다.
 */
:root{--jn-primary:#4541FF;--jn-primary-dark:#3633CC;--jn-primary-light:#EEEDFF;--jn-accent:#CC0000;--jn-bg:#fff;--jn-bg-alt:#F7F8FA;--jn-surface:#fff;--jn-border:#E5E8ED;--jn-border-light:#F0F2F5;--jn-text:#1A1F2E;--jn-text-sub:#5A6178;--jn-text-muted:#96A0B5;--jn-shadow-sm:0 1px 3px rgba(0,0,0,.06);--jn-shadow-md:0 4px 12px rgba(0,0,0,.08);--jn-shadow-lg:0 8px 30px rgba(0,0,0,.1);--jn-space-xs:clamp(4px,.5vw,6px);--jn-space-sm:clamp(8px,1vw,12px);--jn-space-md:clamp(16px,2vw,24px);--jn-space-lg:clamp(24px,3vw,40px);--jn-space-xl:clamp(32px,4vw,56px);--jn-font:'Pretendard',-apple-system,BlinkMacSystemFont,sans-serif;--jn-font-serif:'Pretendard',Georgia,serif;--jn-text-xs:clamp(11px,.65rem + .1vw,12px);--jn-text-sm:clamp(12px,.75rem + .1vw,13px);--jn-text-base:clamp(14px,.85rem + .1vw,15px);--jn-text-lg:clamp(16px,1rem + .15vw,18px);--jn-text-xl:clamp(18px,1.1rem + .2vw,22px);--jn-text-2xl:clamp(22px,1.4rem + .3vw,28px);--jn-text-3xl:clamp(26px,1.6rem + .5vw,36px);--jn-radius-sm:6px;--jn-radius-md:10px;--jn-radius-lg:14px;--jn-container:1200px;--jn-sidebar-w:300px}

/* 모바일: 전체 폰트 크기 확대 (가독성) */
@media(max-width:768px){
.jn-mainpage,.jn-single-news,.jn-newspaper-container,.jn-archive-wrap{--jn-text-xs:13px;--jn-text-sm:15px;--jn-text-base:17px;--jn-text-lg:19px;--jn-text-xl:21px;--jn-text-2xl:26px;--jn-text-3xl:32px;font-size:17px}
}

.jn-mainpage,.jn-single-news,.jn-newspaper-container,.jn-archive-wrap{font-family:var(--jn-font);color:var(--jn-text);line-height:1.6;-webkit-font-smoothing:antialiased;max-width:var(--jn-container);margin:0 auto;padding:0 var(--jn-space-md)}
.jn-mainpage *,.jn-single-news *,.jn-newspaper-container *,.jn-archive-wrap *{box-sizing:border-box}

/* 신문 헤더 (레거시) */
.jn-mainpage-header.jn-header-newspaper{text-align:center;padding:var(--jn-space-lg) 0 var(--jn-space-md);position:relative}
.jn-header-line{border:none;height:1px;background:var(--jn-text);margin:var(--jn-space-xs) 0}
.jn-header-line-1,.jn-header-line-3{height:2px}
.jn-header-meta{display:flex;justify-content:space-between;align-items:center;margin-top:var(--jn-space-sm);font-size:var(--jn-text-sm);color:var(--jn-text-muted);gap:12px;flex-wrap:wrap}
.jn-header-cal-icon,.jn-submit-icon{display:none}
.jn-header-meta-right{display:flex;align-items:center;gap:8px}

/* 헤더: 미니멀 라인 v2.0 (상단 타이틀) */
.jn-mainpage-header.jn-header-minimal{background:#fff;padding:0}
.jn-header-topbar{display:flex;justify-content:space-between;align-items:center;padding:10px 24px;font-size:var(--jn-text-xs);color:var(--jn-text-muted);font-weight:500}
.jn-header-minimal .jn-header-subtitle{letter-spacing:.1em;text-transform:uppercase;margin:0;font-weight:600}
.jn-header-minimal .jn-header-date{font-weight:500}
.jn-header-topbar .jn-header-date-full{display:inline}
.jn-header-topbar .jn-header-date-short{display:none!important}
.jn-header-divider{height:1px;background:var(--jn-border)}
.jn-header-main{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}
.jn-header-brand{display:flex;align-items:center;gap:14px}
.jn-header-logo-icon{width:38px;height:38px;border-radius:9px;background:var(--jn-primary);display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;font-weight:900;flex-shrink:0;font-family:var(--jn-font)}
.jn-header-brand-text{display:flex;flex-direction:column}
.jn-header-minimal .jn-header-title{font-family:var(--jn-font);font-size:clamp(18px,3vw,22px);font-weight:900;letter-spacing:-.03em;color:var(--jn-text);margin:0;line-height:1.1}
.jn-header-tagline{font-size:10px;color:var(--jn-text-muted);font-weight:500;margin-top:2px;letter-spacing:.02em}
.jn-header-actions{display:flex;align-items:center;gap:10px}
.jn-header-submit-btn.jn-news-submit-btn,.jn-header-submit-btn.jn-news-register-btn,.jn-header-submit-btn.jn-header-reporter-apply-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;font-size:var(--jn-text-sm);font-weight:700;color:#fff;background:var(--jn-primary);border:none;border-radius:var(--jn-radius-sm);text-decoration:none;transition:background .2s,transform .15s}
.jn-header-submit-btn:hover{background:var(--jn-primary-dark);transform:translateY(-1px)}
a.jn-header-submit-btn.jn-header-reporter-apply-btn{color:#fff!important}
a.jn-header-submit-btn.jn-header-reporter-apply-btn:hover{color:#fff!important}
.jn-header-accent-line{height:1px;background:linear-gradient(90deg,var(--jn-primary),#6C63FF,var(--jn-primary))}
.jn-header-minimal .jn-header-verse{font-size:var(--jn-text-xs);color:var(--jn-text-sub);margin:0;padding:8px 24px;font-style:italic;background:var(--jn-bg);border-bottom:1px solid var(--jn-border-light)}

/* 헤더: 모바일 — 탑바 한 줄 + 짧은 날짜 */
@media(max-width:768px){
.jn-header-topbar{flex-direction:row;justify-content:space-between;align-items:center;padding:8px 16px;font-size:13px;gap:10px}
.jn-header-topbar .jn-header-subtitle{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jn-header-topbar .jn-header-date{white-space:nowrap;flex-shrink:0}
.jn-header-topbar .jn-header-date-full{display:none!important}
.jn-header-topbar .jn-header-date-short{display:inline!important}
/* 카테고리 바 첫 칩(.jn-cat-link 좌패딩)과 J 로고 세로 기준선 맞춤 */
.jn-mainpage-header.jn-header-minimal .jn-header-brand{padding-left:10px}
/* 아이콘만 보이는 헤더 액션: 검색·기고·등록·기자등록 세로 높이 통일 (등록: news-register-modal.css 의 font:inherit 덮어씀) */
.jn-header-actions .jn-header-search-btn,
.jn-header-actions .jn-header-submit-btn.jn-news-submit-btn,
.jn-header-actions a.jn-header-submit-btn.jn-header-reporter-apply-btn,
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:40px;min-width:40px;height:40px;min-height:40px;padding:0;line-height:1;font-size:18px;font-family:var(--jn-font);font-weight:600}
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn.jn-open-news-register-modal{font:normal 600 18px/1 var(--jn-font)}
}
/* 헤더: 작은 모바일 반응형 (버튼·로고 등) */
@media(max-width:600px){
.jn-header-topbar{padding:8px 12px;font-size:13px}
/* 한 줄 유지: 브랜드 영역은 줄어들 수 있게, 액션은 고정 폭 */
.jn-header-main{flex-wrap:nowrap;align-items:center;gap:6px;padding:10px 8px}
.jn-header-brand{flex:1 1 auto;min-width:0;gap:8px}
.jn-header-brand-text{min-width:0}
.jn-header-minimal .jn-header-title{font-size:clamp(16px,4.2vw,20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jn-header-tagline{font-size:10px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jn-header-actions{flex-shrink:0;gap:5px}
.jn-header-search-btn{padding:0}
.jn-header-search-btn .jn-search-btn-label{display:none}
.jn-header-submit-btn.jn-news-submit-btn,.jn-header-submit-btn.jn-news-register-btn,a.jn-header-submit-btn.jn-header-reporter-apply-btn{padding:0}
.jn-header-submit-btn.jn-news-submit-btn .jn-submit-label,.jn-header-submit-btn.jn-news-register-btn .jn-register-label,a.jn-header-submit-btn.jn-header-reporter-apply-btn .jn-reporter-apply-label{display:none}
.jn-header-minimal .jn-header-verse{padding:6px 12px;font-size:12px}
/* 768px 아이콘 버튼보다 한 단계 작게 — 좁은 기기에서 한 줄 합산 폭 확보 */
.jn-header-actions .jn-header-search-btn,
.jn-header-actions .jn-header-submit-btn.jn-news-submit-btn,
.jn-header-actions a.jn-header-submit-btn.jn-header-reporter-apply-btn,
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn{width:34px;min-width:34px;height:34px;min-height:34px;font-size:16px;padding:0}
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn.jn-open-news-register-modal{font:normal 600 16px/1 var(--jn-font)}
}
@media(max-width:400px){
.jn-header-topbar{padding:6px 10px;font-size:12px}
.jn-header-main{padding:8px 6px;gap:4px}
.jn-mainpage-header.jn-header-minimal .jn-header-brand{padding-left:4px}
.jn-header-logo-icon{width:28px;height:28px;border-radius:7px;font-size:14px}
.jn-header-minimal .jn-header-title{font-size:16px}
.jn-header-tagline{display:none}
.jn-header-actions{gap:4px}
.jn-header-actions .jn-header-search-btn,
.jn-header-actions .jn-header-submit-btn.jn-news-submit-btn,
.jn-header-actions a.jn-header-submit-btn.jn-header-reporter-apply-btn,
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn{width:30px;min-width:30px;height:30px;min-height:30px;font-size:15px}
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn.jn-open-news-register-modal{font:normal 600 15px/1 var(--jn-font)}
}

/* 카테고리 네비게이션 — 일반 스크롤 흐름(테마·nav 상속의 sticky 방지) */
.jn-category-nav{display:flex;gap:4px;padding:var(--jn-space-sm) 0;border-top:2px solid var(--jn-text);border-bottom:1px solid var(--jn-border);overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-x:contain;position:relative;background:var(--jn-bg)}
.jn-category-nav::-webkit-scrollbar{display:none}
.jn-category-nav>span{display:contents}
.jn-cat-link{flex-shrink:0;padding:8px 16px;font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text-sub);text-decoration:none;border-radius:var(--jn-radius-sm);transition:all .2s;white-space:nowrap;touch-action:manipulation}
.jn-cat-link:hover{color:var(--jn-primary);background:var(--jn-primary-light)}
.jn-cat-link.active{color:#fff;background:var(--jn-primary)}
.jn-category-nav-more{flex-shrink:0;padding:8px 12px;font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-text-muted);background:none;border:1px dashed var(--jn-border);border-radius:var(--jn-radius-sm);cursor:pointer}
/* 모바일: 카테고리 바 상단 고정(sticky) 해제 — 테마 header nav 등이 nav 요소에 sticky를 줄 때 대비 */
@media(max-width:768px){
.jn-mainpage .jn-category-nav,.jn-single-news .jn-category-nav{position:static!important;top:auto!important;inset-block-start:auto!important;z-index:auto!important;justify-content:center}
}
@media(min-width:769px){.jn-category-nav{flex-wrap:wrap;overflow:visible;justify-content:center}}

/* 히어로 슬라이더 */
.jn-headline-section{display:grid;grid-template-columns:2fr 1fr;gap:var(--jn-space-sm);margin:var(--jn-space-md) 0}
/* 메인만 또는 사이드만 있을 때 2열 그리드의 빈 칸이 생기지 않도록 전체 폭 사용 */
.jn-headline-section>:only-child{grid-column:1/-1}
.jn-headline-main{position:relative;border-radius:var(--jn-radius-lg);overflow:hidden;min-height:360px;background:var(--jn-bg-alt)}
.jn-headline-main-thumb-link{position:absolute;inset:0;z-index:0;display:block;line-height:0;color:inherit;text-decoration:none}
.jn-headline-main-thumb-link:focus-visible{outline:2px solid var(--jn-primary);outline-offset:-2px}
.jn-headline-main img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .4s ease}
.jn-headline-main:hover .jn-headline-main-thumb-link img{transform:scale(1.03)}
.jn-headline-overlay{position:absolute;bottom:0;left:0;right:0;padding:var(--jn-space-lg) var(--jn-space-md) var(--jn-space-md);background:linear-gradient(0deg,rgba(0,0,0,.75) 0%,rgba(0,0,0,.3) 60%,transparent 100%);color:#fff;z-index:1}
.jn-headline-overlay h2{font-size:var(--jn-text-2xl);font-weight:800;line-height:1.3;margin:var(--jn-space-xs) 0;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.6),0 0 20px rgba(0,0,0,.4)}
.jn-headline-overlay h2 a{color:#fff!important;text-decoration:none;text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 8px rgba(0,0,0,.6),0 0 20px rgba(0,0,0,.4)}
.jn-headline-overlay .jn-excerpt{font-size:var(--jn-text-sm);opacity:.95;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 var(--jn-space-xs);color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.6),0 0 12px rgba(0,0,0,.5)}
.jn-headline-overlay .jn-meta{display:flex;gap:12px;font-size:var(--jn-text-xs);opacity:.95;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}
.jn-headline-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--jn-bg-alt) 0%,var(--jn-border) 100%);position:absolute;inset:0}
.jn-headline-side{display:flex;flex-direction:column;gap:var(--jn-space-sm)}
.jn-headline-side-item{flex:1;position:relative;border-radius:var(--jn-radius-md);overflow:hidden;min-height:112px;background:var(--jn-bg-alt)}
.jn-headline-side-link{display:block;width:100%;height:100%;text-decoration:none;color:#fff}
.jn-headline-side-item img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .3s}
.jn-headline-side-item:hover img{transform:scale(1.05)}
.jn-headline-side-item .jn-headline-overlay{padding:var(--jn-space-sm);background:linear-gradient(0deg,rgba(0,0,0,.7) 0%,transparent 100%);color:#fff}
.jn-headline-side-item .jn-headline-overlay h3{font-size:var(--jn-text-base);font-weight:700;line-height:1.35;margin:4px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.5),0 2px 6px rgba(0,0,0,.6)}
.jn-headline-side-item .jn-headline-overlay .jn-category-badge{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}
@media(max-width:768px){.jn-headline-section{grid-template-columns:1fr}.jn-headline-main{min-height:240px}.jn-headline-main .jn-headline-overlay .jn-excerpt,.jn-headline-main .jn-headline-overlay .jn-meta{display:none!important}.jn-headline-side{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.jn-headline-side-item{min-width:70vw;min-height:140px;scroll-snap-align:start}}
.jn-category-badge{display:inline-block;padding:3px 10px;font-size:11px;font-weight:700;color:#fff;background:var(--jn-primary);border-radius:4px;text-decoration:none;letter-spacing:.02em;line-height:1.5}
@media(max-width:768px){.jn-category-badge{font-size:13px;padding:4px 12px}}
.jn-headline-overlay .jn-category-badge{background:rgba(255,255,255,.2);backdrop-filter:blur(8px)}

/* 콘텐츠 + 사이드바 */
.jn-content-wrapper{display:grid;gap:var(--jn-space-lg);margin:var(--jn-space-md) 0}
.jn-content-wrapper.has-sidebar{grid-template-columns:1fr var(--jn-sidebar-w)}
.jn-content-wrapper.no-sidebar{grid-template-columns:1fr}
@media(max-width:960px){.jn-content-wrapper.has-sidebar{grid-template-columns:1fr}}

/* 툴바 */
.jn-toolbar{display:flex;justify-content:space-between;align-items:center;padding:var(--jn-space-sm) 0;border-bottom:1px solid var(--jn-border);margin-bottom:var(--jn-space-md);flex-wrap:wrap;gap:8px}
.jn-toolbar>span{display:flex;align-items:center;flex-wrap:wrap;gap:12px;width:100%;justify-content:flex-start}
.jn-toolbar .jn-result-count{margin-right:auto}
.jn-result-count{font-size:var(--jn-text-sm);color:var(--jn-text-muted);flex-shrink:0}
.jn-result-count strong{color:var(--jn-text)}
.jn-view-toggle{display:flex;background:var(--jn-bg-alt);border-radius:var(--jn-radius-sm);overflow:hidden;border:1px solid var(--jn-border)}
.jn-view-toggle a{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-text-muted);text-decoration:none;transition:all .2s}
.jn-view-toggle a.active{color:#fff;background:var(--jn-primary)}
.jn-toolbar .jn-toolbar-right{margin-left:auto;flex-shrink:0;display:flex;align-items:center}
.jn-news-register-bar,.jn-newspaper-admin-bar,.jn-shortcode-news-toolbar{display:flex;justify-content:flex-end;padding:6px 0 10px}
.jn-news-register-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:var(--jn-text-sm);font-weight:700;color:#fff!important;background:var(--jn-primary);border:1px solid var(--jn-primary);border-radius:var(--jn-radius-sm);text-decoration:none;transition:background .2s,transform .15s,border-color .2s}
.jn-news-register-btn:hover{background:var(--jn-primary-dark);border-color:var(--jn-primary-dark);color:#fff!important;transform:translateY(-1px)}
.jn-news-register-btn .jn-news-register-label{white-space:nowrap}
.jn-article-toolbar .jn-news-register-btn.jn-action-btn.register{margin-left:4px}
.jn-action-btn.register{color:#fff!important;background:var(--jn-primary);border-color:var(--jn-primary)}
.jn-action-btn.register:hover{color:#fff!important;background:var(--jn-primary-dark);border-color:var(--jn-primary-dark)}
.jn-sort-select{padding:6px 12px;font-size:var(--jn-text-sm);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);background:var(--jn-bg);color:var(--jn-text);font-family:var(--jn-font);cursor:pointer}

/* 뉴스 카드 — 그리드 */
.jn-news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--jn-space-md)}
.jn-news-card{border:1px solid var(--jn-border);border-radius:var(--jn-radius-md);overflow:hidden;background:var(--jn-surface);transition:box-shadow .25s,transform .25s;display:flex;flex-direction:column}
.jn-news-card:hover{box-shadow:var(--jn-shadow-md);transform:translateY(-2px)}
/* 썸네일: 16:9 강제 (padding-top 56.25% 폴백 + aspect-ratio) + object-fit cover */
.jn-card-thumb{position:relative;width:100%;padding-top:56.25%;height:0;overflow:hidden;background:var(--jn-bg-alt);display:block}
@supports (aspect-ratio:16/9){.jn-card-thumb{aspect-ratio:16/9;padding-top:0;height:auto}}
a.jn-card-thumb{color:inherit;text-decoration:none}
a.jn-card-thumb:focus-visible{outline:2px solid var(--jn-primary);outline-offset:2px}
.jn-card-thumb img{position:absolute;top:0;left:0;width:100%!important;height:100%!important;max-width:100%;max-height:100%;object-fit:cover!important;object-position:center;transition:opacity .2s;display:block}
.jn-news-card:hover .jn-card-thumb img{opacity:.92}
.jn-card-thumb .jn-category-badge{position:absolute;top:10px;left:10px;z-index:1}
/* 카드 콘텐츠 — 간결화: 제목 중심 + 메타만 */
.jn-card-content{padding:10px 14px 12px;display:flex;flex-direction:column;flex:1 1 auto;gap:6px}
.jn-card-content h3{font-size:14.5px;font-weight:700;line-height:1.45;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;letter-spacing:-.2px}
.jn-card-content h3 a{color:var(--jn-text);text-decoration:none}
.jn-card-content h3 a:hover{color:var(--jn-primary)}
/* 그리드에서 발췌문 숨김 — 간결한 카드 */
.jn-news-grid .jn-card-excerpt{display:none}
.jn-card-excerpt{font-size:var(--jn-text-sm);color:var(--jn-text-sub);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 var(--jn-space-sm)}
.jn-card-meta{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--jn-text-muted);padding-top:6px;border-top:1px solid var(--jn-border-light);margin-top:auto}
.jn-card-author{display:flex;align-items:center;gap:5px;min-width:0}
.jn-card-author img{width:20px;height:20px;border-radius:50%;object-fit:cover;flex-shrink:0}
.jn-card-author span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:110px}
.jn-card-stats{display:flex;gap:8px;flex-shrink:0}
.jn-card-stats span{display:inline-flex;align-items:center;gap:3px}
.jn-news-card.jn-no-thumb .jn-card-content{padding-top:var(--jn-space-md)}
.jn-news-card.jn-no-thumb .jn-category-badge{margin-bottom:6px}

/* 뉴스 카드 — 리스트 (좌측 16:9 박스) */
.jn-news-list{display:flex;flex-direction:column;gap:var(--jn-space-sm)}
.jn-news-list .jn-news-card{display:flex;flex-direction:row;border-radius:var(--jn-radius-md)}
.jn-news-list .jn-card-thumb{width:220px;min-height:0;flex-shrink:0;padding-top:0;height:124px}
@supports (aspect-ratio:16/9){.jn-news-list .jn-card-thumb{height:auto;aspect-ratio:16/9}}
.jn-news-list .jn-card-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:var(--jn-space-sm) var(--jn-space-md)}
.jn-news-list .jn-card-excerpt{display:-webkit-box}
@media(max-width:600px){.jn-news-list .jn-news-card{flex-direction:column}.jn-news-list .jn-card-thumb{width:100%;height:0;padding-top:56.25%}@supports (aspect-ratio:16/9){.jn-news-list .jn-card-thumb{height:auto;padding-top:0;aspect-ratio:16/9}}}

/* 섹션 블록 */
.jn-section-block{margin:var(--jn-space-lg) 0}
.jn-section-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--jn-space-xs);border-bottom:2px solid var(--jn-text);margin-bottom:var(--jn-space-md)}
.jn-section-title{font-size:var(--jn-text-lg);font-weight:800;color:var(--jn-text);margin:0;display:flex;align-items:center;gap:8px}
.jn-section-title i{color:var(--jn-primary);font-size:1.1em}
.jn-section-more{font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-text-muted);text-decoration:none;display:flex;align-items:center;gap:2px}
.jn-section-more:hover{color:var(--jn-primary)}

/* 많이 본 뉴스 */
.jn-popular-list{display:flex;flex-direction:column;gap:0}
.jn-popular-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--jn-border-light)}
.jn-popular-item:last-child{border-bottom:none}
.jn-popular-rank{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:var(--jn-primary);background:var(--jn-primary-light);border-radius:var(--jn-radius-sm)}
.jn-popular-item:nth-child(-n+3) .jn-popular-rank{color:#fff;background:var(--jn-primary)}
.jn-popular-content h4{font-size:var(--jn-text-sm);font-weight:600;line-height:1.4;margin:0 0 4px}
.jn-popular-content h4 a{color:var(--jn-text);text-decoration:none}
.jn-popular-content h4 a:hover{color:var(--jn-primary)}
.jn-popular-content .jn-meta{font-size:var(--jn-text-xs);color:var(--jn-text-muted)}

/* 포토갤러리 가로스크롤 */
.jn-photo-gallery{display:flex;gap:var(--jn-space-sm);overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding:var(--jn-space-xs) 0 var(--jn-space-sm);scrollbar-width:thin;scrollbar-color:var(--jn-border) transparent}
.jn-photo-gallery::-webkit-scrollbar{height:4px}
.jn-photo-gallery::-webkit-scrollbar-thumb{background:var(--jn-border);border-radius:4px}
.jn-photo-card{flex-shrink:0;width:260px;scroll-snap-align:start;border-radius:var(--jn-radius-md);overflow:hidden;background:var(--jn-surface);border:1px solid var(--jn-border);transition:box-shadow .25s}
.jn-photo-card:hover{box-shadow:var(--jn-shadow-md)}
.jn-photo-card img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.jn-photo-card h4{padding:10px 14px;font-size:var(--jn-text-sm);font-weight:600;line-height:1.4;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jn-photo-card h4 a{color:var(--jn-text);text-decoration:none}
.jn-photo-overlay{position:absolute;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff}
.jn-photo-overlay h3{font-size:var(--jn-text-sm);font-weight:600;margin:4px 0 0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jn-photo-card a{display:block;position:relative}

/* 최신 기사 티커 */
.jn-latest-ticker{padding:var(--jn-space-sm) 0}
.jn-ticker-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.jn-ticker-item{padding:10px 0;border-bottom:1px solid var(--jn-border-light);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.jn-ticker-item:last-child{border-bottom:none}
.jn-ticker-bullet{width:4px;height:4px;background:var(--jn-primary);border-radius:50%;flex-shrink:0}
.jn-ticker-category{font-size:var(--jn-text-xs);color:var(--jn-primary);font-weight:600;flex-shrink:0}
.jn-ticker-item a{font-size:var(--jn-text-sm);color:var(--jn-text);text-decoration:none;font-weight:500;flex:1}
.jn-ticker-item a:hover{color:var(--jn-primary)}
.jn-ticker-time{font-size:var(--jn-text-xs);color:var(--jn-text-muted);flex-shrink:0}
@media(min-width:769px){
  .jn-latest-ticker .jn-ticker-item a{font-size:16px;line-height:1.5}
}

/* 사이드바 */
.jn-sidebar{display:flex;flex-direction:column;gap:var(--jn-space-md)}
.jn-widget{background:var(--jn-surface);border:1px solid var(--jn-border);border-radius:var(--jn-radius-md);padding:var(--jn-space-md)}
.jn-widget-title{font-size:var(--jn-text-base);font-weight:800;margin:0 0 var(--jn-space-sm);padding-bottom:var(--jn-space-xs);border-bottom:2px solid var(--jn-text);display:flex;align-items:center;gap:6px}
.jn-widget-title i{color:var(--jn-primary)}
.jn-verse-widget{background:linear-gradient(135deg,var(--jn-primary-light) 0%,#fff 100%);border-color:rgba(69,65,255,.12)}
.jn-verse-content{font-family:var(--jn-font-serif);font-size:var(--jn-text-base);line-height:1.7;color:var(--jn-text);margin:0 0 var(--jn-space-xs)}
.jn-verse-reference{font-size:var(--jn-text-xs);color:var(--jn-primary);font-weight:600;margin:0}
.jn-category-list{display:flex;flex-direction:column;gap:0}
.jn-category-list a{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--jn-border-light);font-size:var(--jn-text-sm);color:var(--jn-text);text-decoration:none;font-weight:500;transition:color .15s}
.jn-category-list a:last-child{border-bottom:none}
.jn-category-list a:hover{color:var(--jn-primary)}
.jn-category-list .count{font-size:var(--jn-text-xs);color:var(--jn-text-muted);background:var(--jn-bg-alt);padding:2px 8px;border-radius:10px}
.jn-prayer-items p{font-size:var(--jn-text-sm);color:var(--jn-text-sub);line-height:1.6;margin:0 0 var(--jn-space-xs)}

/* 페이지네이션 */
.jn-pagination{display:flex;justify-content:center;align-items:center;gap:4px;margin:var(--jn-space-lg) 0;flex-wrap:wrap}
.jn-pagination a,.jn-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 8px;font-size:var(--jn-text-sm);font-weight:600;border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);color:var(--jn-text-sub);text-decoration:none;transition:all .2s}
.jn-pagination a:hover{color:var(--jn-primary);border-color:var(--jn-primary)}
.jn-pagination .current{color:#fff;background:var(--jn-primary);border-color:var(--jn-primary)}

/* 푸터 */
.jn-mainpage-footer{margin-top:var(--jn-space-xl);padding:var(--jn-space-lg) var(--jn-space-md);background:var(--jn-text);color:rgba(255,255,255,.8);border-radius:var(--jn-radius-lg) var(--jn-radius-lg) 0 0;text-align:center}
.jn-footer-brand h4{font-size:var(--jn-text-lg);font-weight:800;color:#fff;margin:0 0 var(--jn-space-xs)}
.jn-footer-verse{font-family:var(--jn-font-serif);font-size:var(--jn-text-sm);font-style:italic;line-height:1.6;margin:0}
.jn-footer-verse cite{font-style:normal;opacity:.7}
.jn-footer-bottom{margin-top:var(--jn-space-md);padding-top:var(--jn-space-sm);border-top:1px solid rgba(255,255,255,.15);font-size:var(--jn-text-xs);color:rgba(255,255,255,.5)}

/* 기사 상세 — #primary 안에 본문(single-news.php). 테마 #content 패딩은 건드리지 않음 */
body.single-jn_news #primary,
body.single-jn_news main.jn-single-news{padding-top:0;margin-top:0}
body.single-jn_news main.jn-single-news{max-width:none;width:100%;box-sizing:border-box}
/* 단일 뉴스(모바일): 가로 스크롤·좌우 흔들림 방지 — 세로 스크롤만 허용 */
@media(max-width:768px){
body.single-jn_news{overflow-x:hidden;overscroll-behavior-x:none;width:100%;max-width:100%;position:relative}
body.single-jn_news #primary,
body.single-jn_news #content,
body.single-jn_news main.jn-single-news,
body.single-jn_news .jn-single-layout{min-width:0;max-width:100%;overflow-x:hidden}
.jn-single-news .jn-category-nav{overscroll-behavior-x:contain;touch-action:pan-x pan-y}
.jn-article-content{overflow-wrap:anywhere}
.jn-article-content table{display:block;width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-collapse:collapse}
.jn-article-content pre,.jn-article-content code{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
.jn-article-content pre{white-space:pre-wrap;word-break:break-word}
.jn-article-content iframe,.jn-article-content embed,.jn-article-content object{max-width:100%!important}
.jn-video-embed{max-width:100%}
}
.jn-single-news{padding-bottom:var(--jn-space-xl);padding-top:0}
.jn-single-layout{max-width:780px;margin:0 auto;padding-top:0}
/* 진행 바는 HC JOYN 자식 테마 스티키 헤더(.ast-primary-header-bar, z-index:9999)보다 낮게 — 로고·메뉴가 가려지지 않음 */
.jn-progress-bar{position:fixed;top:0;left:0;width:0;height:3px;background:var(--jn-primary);z-index:9998;transition:width .1s linear}
.jn-article-header{padding:16px 0 var(--jn-space-sm);border-bottom:1px solid var(--jn-border);margin-bottom:var(--jn-space-md)}
.jn-article-header .jn-category-badge{margin-bottom:var(--jn-space-xs)}
.jn-article-title{font-size:var(--jn-text-2xl);font-weight:800;line-height:1.35;color:var(--jn-text);margin:var(--jn-space-xs) 0 var(--jn-space-sm)}
.jn-article-meta{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:var(--jn-text-sm);color:var(--jn-text-muted)}
.jn-article-meta .jn-author{font-weight:600;color:var(--jn-text-sub)}
.jn-article-toolbar{display:flex;align-items:center;justify-content:flex-start;gap:10px;margin-top:var(--jn-space-sm);flex-wrap:wrap}
.jn-article-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;min-width:0}
/* 등록·HTML 저장·수정·삭제: 동일 폰트(가변 sm)·굵기 600·Remix 아이콘 소형 */
.jn-article-toolbar .jn-article-actions .jn-action-btn,
.jn-article-toolbar .jn-article-actions .jn-news-register-btn{
  font-family:var(--jn-font);
  font-size:var(--jn-text-sm);
  font-weight:600;
  line-height:1.25;
  letter-spacing:0;
  -webkit-font-smoothing:antialiased;
  padding:7px 12px;
  gap:6px;
  align-items:center;
}
.jn-article-toolbar .jn-article-actions .jn-news-register-btn .jn-news-register-label{
  font-family:inherit;
  font-size:inherit;
  font-weight:inherit;
}
.jn-article-toolbar .jn-article-actions i[class*="ri-"]{
  font-size:15px;
  line-height:1;
  flex-shrink:0;
  font-weight:400;
  vertical-align:-0.05em;
}
/* 수정 버튼: news-register-modal.css 의 font:inherit 이 버튼에만 덮이던 문제 방지 */
.jn-article-toolbar .jn-article-actions button.jn-action-btn.edit.jn-open-news-edit-modal{
  font-family:var(--jn-font);
  font-size:var(--jn-text-sm);
  font-weight:600;
  line-height:1.25;
}
.jn-toolbar-end{display:flex;align-items:center;gap:10px;margin-left:auto;flex-shrink:0}
.jn-font-controls{display:flex;align-items:center;gap:6px;flex-shrink:0}
.jn-font-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);background:var(--jn-bg);color:var(--jn-text);font-family:var(--jn-font);font-size:18px;font-weight:600;line-height:1;cursor:pointer;transition:all .15s}
.jn-font-btn:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
.jn-font-size-label{font-size:var(--jn-text-xs);color:var(--jn-text-muted);min-width:28px;text-align:center}
.jn-translate-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text-sub);background:var(--jn-bg-alt);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);cursor:pointer;transition:all .2s}
.jn-translate-btn:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
.jn-translate-btn.loading{opacity:.6;pointer-events:none}
.jn-translate-icon{display:none}
/* 툴바 공유: 수정/삭제와 동일 톤, 아이콘만 */
.jn-article-toolbar .jn-share-icon-btn{padding:7px 10px;min-width:36px;justify-content:center}
.jn-article-toolbar .jn-share-icon-btn i{font-size:15px;line-height:1}
@media(max-width:640px){.jn-toolbar-end{width:100%;margin-left:0;justify-content:flex-end}}

/* 공유 모달 — 갤러리/헬프데스크와 동일 UX (바텀 시트) */
.jn-share-modal-bg{z-index:12050}
.jn-modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);align-items:flex-end;justify-content:center}
.jn-modal-bg.open{display:flex;animation:jn-fade-in .2s ease}
@keyframes jn-fade-in{from{opacity:0}to{opacity:1}}
.jn-sheet{background:var(--jn-surface);border-radius:20px 20px 0 0;width:100%;max-width:min(420px,100%);max-height:92dvh;overflow-y:auto;display:flex;flex-direction:column;animation:jn-slide-up .28s cubic-bezier(.4,0,.2,1);overscroll-behavior:contain}
@keyframes jn-slide-up{from{transform:translateY(30%);opacity:.5}to{transform:translateY(0);opacity:1}}
.jn-drag-bar{width:40px;height:4px;border-radius:2px;background:var(--jn-border);margin:12px auto 0;flex-shrink:0}
.jn-sheet-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--jn-border);flex-shrink:0;position:sticky;top:0;background:var(--jn-surface);z-index:2;gap:8px}
.jn-sheet-title{font-size:16px;font-weight:800;color:var(--jn-text);display:flex;align-items:center;gap:6px;min-width:0;flex:1}
.jn-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;border-radius:var(--jn-radius-sm);background:transparent;color:var(--jn-text-sub);cursor:pointer;transition:background .15s,color .15s}
.jn-icon-btn:hover{background:var(--jn-bg-alt);color:var(--jn-text)}
.jn-share-body{padding:0 16px 18px}
.jn-share-hint{font-size:13px;color:var(--jn-text-sub);margin:0 0 14px;line-height:1.55}
.jn-share-label{display:block;font-size:12px;font-weight:800;color:var(--jn-text);margin-bottom:6px}
.jn-share-url-input{width:100%;box-sizing:border-box;border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);padding:10px 12px;font-size:13px;font-family:ui-monospace,monospace;color:var(--jn-text);background:var(--jn-bg)}
.jn-share-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}
.jn-share-web-btn,.jn-share-copy-btn{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:12px 16px;font-size:var(--jn-text-sm);font-weight:700;border-radius:var(--jn-radius-sm);cursor:pointer;transition:background .2s;border:1px solid transparent;font-family:var(--jn-font)}
.jn-share-web-btn{background:var(--jn-primary);color:#fff;border-color:var(--jn-primary)}
.jn-share-web-btn:hover{background:var(--jn-primary-dark)}
.jn-share-copy-btn{background:var(--jn-bg-alt);color:var(--jn-text);border-color:var(--jn-border)}
.jn-share-copy-btn:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
body #jn-share-modal i[class*="ri-"]{font-size:1.15em;vertical-align:-0.15em}
.jn-prev-next-nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--jn-space-sm);margin:0 0 var(--jn-space-sm);padding:var(--jn-space-sm) 0;border-top:1px solid var(--jn-border);border-bottom:1px solid var(--jn-border)}
.jn-prev-next-link{display:flex;flex-direction:column;gap:4px;text-decoration:none;padding:var(--jn-space-sm);border-radius:var(--jn-radius-sm);transition:background .2s}
.jn-prev-next-link:hover{background:var(--jn-bg-alt)}
.jn-prev-next-link .jn-pn-label{font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-text-muted);display:flex;align-items:center;gap:4px}
.jn-prev-next-link .jn-pn-title{font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.jn-prev-next-link.next{text-align:right}
@media(max-width:768px){.jn-prev-next-link .jn-pn-title{display:none!important}.jn-prev-next-nav{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--jn-space-sm);padding:var(--jn-space-sm) 0}.jn-prev-next-link{flex:0 1 auto;padding:var(--jn-space-xs) 0}.jn-prev-next-link.next{text-align:right}}
.jn-article-body-iframe-wrap{width:100%;max-width:100%}
.jn-article-body-iframe-wrap:not(.jn-article-full-doc-wrap){overflow:hidden}
.jn-article-full-doc-wrap{overflow:visible}
.jn-article-body-iframe{display:block;width:100%;border:0;vertical-align:top;background:var(--jn-bg,#fff);overflow:hidden}
.jn-iframe-fallback-notice{font-size:var(--jn-text-sm);color:var(--jn-text-muted);margin:0 0 var(--jn-space-sm);padding:10px 12px;background:var(--jn-bg-alt);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm)}
.jn-article-content{font-size:var(--jn-text-base);line-height:1.8;color:var(--jn-text);word-break:keep-all}
.jn-article-content p{margin:0 0 1.2em}
.jn-article-content img{max-width:100%;height:auto;border-radius:var(--jn-radius-sm);margin:var(--jn-space-sm) 0}
.jn-article-content h2,.jn-article-content h3{font-weight:700;margin:1.5em 0 .5em;line-height:1.4}
.jn-article-content blockquote{margin:var(--jn-space-md) 0;padding:var(--jn-space-sm) var(--jn-space-md);border-left:4px solid var(--jn-primary);background:var(--jn-primary-light);border-radius:0 var(--jn-radius-sm) var(--jn-radius-sm) 0;font-style:italic;color:var(--jn-text-sub)}
.jn-auto-translation-block{margin:var(--jn-space-lg) 0;padding:var(--jn-space-md);background:var(--jn-bg-alt);border:1px solid var(--jn-border);border-radius:var(--jn-radius-md)}
.jn-auto-translation-heading{font-size:var(--jn-text-base);font-weight:700;color:var(--jn-primary);margin:0 0 var(--jn-space-sm)}
.jn-featured-image{margin:0 0 var(--jn-space-md);border-radius:var(--jn-radius-md);overflow:hidden}
.jn-featured-image a.jn-featured-image-link{display:block;line-height:0;color:inherit;text-decoration:none}
.jn-featured-image a.jn-featured-image-link:focus-visible{outline:2px solid var(--jn-primary);outline-offset:2px}
.jn-featured-image img{width:100%;height:auto;display:block}
.jn-source{font-size:var(--jn-text-sm);color:var(--jn-text-muted);padding:var(--jn-space-sm);background:var(--jn-bg-alt);border-radius:var(--jn-radius-sm);margin:var(--jn-space-md) 0}
.jn-source a{color:var(--jn-primary)}
.jn-tags{display:flex;flex-wrap:wrap;gap:6px;margin:var(--jn-space-md) 0}
.jn-tag{display:inline-block;padding:4px 12px;font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-primary);background:var(--jn-primary-light);border-radius:20px;text-decoration:none;transition:all .2s}
.jn-tag:hover{color:#fff;background:var(--jn-primary)}
.jn-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--jn-space-xs)}
.jn-gallery-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--jn-radius-sm);transition:opacity .2s}
.jn-gallery-item:hover img{opacity:.85}
.jn-news-actions{display:flex;gap:8px;margin-top:var(--jn-space-md);padding:var(--jn-space-sm) 0;border-top:1px solid var(--jn-border)}
.jn-news-actions .jn-action-btn i[class*="ri-"]{font-size:20px;line-height:1;vertical-align:middle}
.jn-action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text-sub);background:var(--jn-bg-alt);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);cursor:pointer;text-decoration:none;transition:all .2s}
.jn-action-btn:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
.jn-like-btn.liked{color:#e53e3e;border-color:#fed7d7;background:#fff5f5}
.jn-bookmark-btn.bookmarked{color:var(--jn-primary);border-color:var(--jn-primary-light);background:var(--jn-primary-light)}
.jn-share-dropdown{position:relative}
.jn-share-menu{display:none;position:absolute;bottom:100%;left:0;background:var(--jn-surface);border:1px solid var(--jn-border);border-radius:var(--jn-radius-md);box-shadow:var(--jn-shadow-lg);padding:6px;z-index:100;min-width:140px}
.jn-share-dropdown:hover .jn-share-menu,.jn-share-dropdown:focus-within .jn-share-menu{display:block}
.jn-share-link{display:block;padding:8px 12px;font-size:var(--jn-text-sm);color:var(--jn-text);text-decoration:none;border-radius:var(--jn-radius-sm)}
.jn-share-link:hover{background:var(--jn-bg-alt);color:var(--jn-primary)}
.jn-related-section{margin:var(--jn-space-lg) 0}
.jn-related-title{font-size:var(--jn-text-lg);font-weight:800;margin:0 0 var(--jn-space-md);padding-bottom:var(--jn-space-xs);border-bottom:2px solid var(--jn-text)}
.jn-related-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--jn-space-sm)}
.jn-related-card{border:1px solid var(--jn-border);border-radius:var(--jn-radius-md);overflow:hidden;transition:box-shadow .2s}
.jn-related-card:hover{box-shadow:var(--jn-shadow-sm)}
.jn-related-link{display:flex;flex-direction:column;text-decoration:none;color:var(--jn-text)}
.jn-related-thumb img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.jn-related-no-thumb{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:16/10;background:var(--jn-bg-alt);font-size:28px}
.jn-related-body{padding:12px}
.jn-related-headline{font-size:var(--jn-text-sm);font-weight:700;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:4px}
.jn-related-excerpt{font-size:var(--jn-text-xs);color:var(--jn-text-sub);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jn-related-meta{font-size:var(--jn-text-xs);color:var(--jn-text-muted);margin-top:6px}

/* 모바일 하단 액션바 */
.jn-mobile-action-bar{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--jn-surface);border-top:1px solid var(--jn-border);padding:8px 16px;z-index:1000;box-shadow:0 -2px 10px rgba(0,0,0,.08);gap:0;justify-content:space-around}
.jn-mobile-action-bar button,.jn-mobile-action-bar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;font-size:12px;font-weight:600;color:var(--jn-text-sub);background:none;border:none;text-decoration:none;cursor:pointer}
.jn-mobile-action-bar i{font-size:22px}
.jn-mobile-action-bar .active{color:var(--jn-primary)}
@media(max-width:768px){.jn-mobile-action-bar{display:flex}.jn-single-news{padding-bottom:80px}}

/* 아카이브 */
.jn-archive-wrap{padding:var(--jn-space-md) var(--jn-space-md) var(--jn-space-xl)}
.jn-archive-header{padding:var(--jn-space-md) 0;border-bottom:2px solid var(--jn-text);margin-bottom:var(--jn-space-md)}
.jn-archive-header h1{font-size:var(--jn-text-xl);font-weight:800;margin:0 0 4px}
.jn-archive-header .jn-archive-count{font-size:var(--jn-text-sm);color:var(--jn-text-muted)}
.jn-archive-subtabs{display:flex;gap:4px;overflow-x:auto;padding:var(--jn-space-sm) 0;scrollbar-width:none}
.jn-archive-subtabs::-webkit-scrollbar{display:none}
.jn-archive-subtab{flex-shrink:0;padding:6px 14px;font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text-sub);text-decoration:none;border-radius:var(--jn-radius-sm);border:1px solid var(--jn-border);transition:all .2s}
.jn-archive-subtab:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
.jn-archive-subtab.active{background:var(--jn-primary);color:#fff;border-color:var(--jn-primary)}

/* 검색폼 */
.jn-search-form{display:flex;gap:8px;margin:var(--jn-space-sm) 0 var(--jn-space-md);flex-wrap:wrap}
.jn-search-input{flex:1;min-width:200px;padding:10px 16px;font-size:var(--jn-text-base);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);font-family:var(--jn-font);transition:border-color .2s}
.jn-search-input:focus{outline:none;border-color:var(--jn-primary);box-shadow:0 0 0 3px rgba(69,65,255,.1)}
.jn-search-category{padding:10px 12px;font-size:var(--jn-text-sm);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);font-family:var(--jn-font)}
.jn-search-button{padding:10px 20px;font-size:var(--jn-text-sm);font-weight:700;color:#fff;background:var(--jn-primary);border:none;border-radius:var(--jn-radius-sm);cursor:pointer;transition:background .2s}
.jn-search-button:hover{background:var(--jn-primary-dark)}

/* 헤더 검색 버튼 */
.jn-header-search-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text-sub);background:var(--jn-bg);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);cursor:pointer;transition:all .2s}
.jn-header-search-btn:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
/* 데스크톱: 헤더 검색·뉴스기고·등록·기자등록 버튼 세로 높이 통일 (테두리·font:inherit 보정) */
@media(min-width:769px){
.jn-header-actions .jn-header-search-btn,
.jn-header-actions .jn-header-submit-btn.jn-news-submit-btn,
.jn-header-actions a.jn-header-submit-btn.jn-header-reporter-apply-btn,
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn{box-sizing:border-box;min-height:40px;display:inline-flex;align-items:center;justify-content:center;padding:9px 18px;line-height:1.2;font-size:var(--jn-text-sm);gap:6px}
.jn-header-actions button.jn-header-submit-btn.jn-news-register-btn.jn-open-news-register-modal{font:normal 700 var(--jn-text-sm)/1.2 var(--jn-font)}
}

/* 뉴스 검색 모달 */
.jn-search-modal{position:fixed;inset:0;z-index:10000;display:flex;align-items:flex-start;justify-content:center;padding:50px 16px 24px;overflow-y:auto}
.jn-search-modal[hidden]{display:none}
.jn-search-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.5);cursor:pointer}
.jn-search-modal-content{position:relative;width:100%;max-width:640px;background:var(--jn-bg);border-radius:var(--jn-radius-lg);box-shadow:var(--jn-shadow-lg);padding:var(--jn-space-md);max-height:calc(100vh - 80px);display:flex;flex-direction:column}
.jn-search-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--jn-space-md);padding-bottom:var(--jn-space-sm);border-bottom:1px solid var(--jn-border)}
.jn-search-modal-title{margin:0;font-size:var(--jn-text-lg);font-weight:800;color:var(--jn-text)}
.jn-search-modal-close{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;background:none;color:var(--jn-text-muted);cursor:pointer;border-radius:var(--jn-radius-sm);transition:color .2s,background .2s}
.jn-search-modal-close:hover{color:var(--jn-text);background:var(--jn-bg-alt)}
.jn-search-modal-form{margin-bottom:var(--jn-space-md)}
.jn-search-modal-fields{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.jn-search-modal-fields .jn-search-by{padding:10px 12px;font-size:var(--jn-text-sm);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);font-family:var(--jn-font);background:var(--jn-bg)}
.jn-search-modal-input{flex:1;min-width:180px;padding:10px 16px;font-size:var(--jn-text-base);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);font-family:var(--jn-font)}
.jn-search-modal-input:focus{outline:none;border-color:var(--jn-primary)}
.jn-search-modal-submit{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;font-size:var(--jn-text-sm);font-weight:700;color:#fff;background:var(--jn-primary);border:none;border-radius:var(--jn-radius-sm);cursor:pointer;transition:background .2s}
.jn-search-modal-submit:hover{background:var(--jn-primary-dark)}
.jn-search-modal-category{margin-top:10px}
.jn-search-modal-category label{font-size:var(--jn-text-xs);color:var(--jn-text-muted);margin-right:8px}
.jn-search-modal-category .jn-search-category{padding:6px 10px;font-size:var(--jn-text-sm);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);font-family:var(--jn-font)}
.jn-search-modal-results{flex:1;overflow-y:auto;min-height:120px}
.jn-search-modal-results .jn-news-grid{grid-template-columns:1fr;gap:var(--jn-space-sm)}
.jn-search-modal-results .jn-news-card{display:flex;flex-direction:row;gap:var(--jn-space-sm);max-width:100%}
.jn-search-modal-results .jn-news-card .jn-card-thumb{flex:0 0 120px;width:120px;aspect-ratio:16/9;min-height:0}
.jn-search-modal-loading,.jn-search-modal-empty{text-align:center;padding:var(--jn-space-lg);color:var(--jn-text-muted);font-size:var(--jn-text-sm)}
.jn-search-modal-more{text-align:center;padding:var(--jn-space-sm) 0}
.jn-search-load-more{padding:10px 24px;font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-primary);background:var(--jn-primary-light);border:1px solid var(--jn-primary);border-radius:var(--jn-radius-sm);cursor:pointer;transition:all .2s}
.jn-search-load-more:hover{background:var(--jn-primary);color:#fff}

/* 뉴스 작성 폼 (한 페이지: 안내·동의·입력) */
.jn-submit-news-form.jn-submit-one-page{max-width:640px;margin:0 auto;padding:50px var(--jn-space-sm)}
.jn-submit-single-form{display:flex;flex-direction:column;gap:0}
.jn-submit-agreement-top{margin-bottom:var(--jn-space-md)}
.jn-submit-rules-list{margin:var(--jn-space-xs) 0 var(--jn-space-sm);padding-left:1.25rem}
.jn-submit-rules-list li{margin-bottom:4px}
.jn-agree-checkboxes{display:flex;flex-direction:column;gap:10px;margin-top:var(--jn-space-md);padding-top:var(--jn-space-sm);border-top:1px solid var(--jn-border-light)}
.jn-agree-row{display:flex;align-items:flex-start;gap:10px;font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text);cursor:pointer;line-height:1.45}
.jn-agree-row input[type="checkbox"]{width:18px;height:18px;margin-top:2px;flex-shrink:0;accent-color:var(--jn-primary)}
.jn-form-actions-submit-only{justify-content:stretch}
.jn-form-actions-submit-only .jn-submit-btn{width:100%;justify-content:center;padding:12px 20px}
.jn-submit-news-form{max-width:700px;margin:0 auto}
.jn-form-title{font-size:var(--jn-text-xl);font-weight:800;margin:0 0 var(--jn-space-md)}
.jn-agreement-box{background:var(--jn-surface);border:1px solid var(--jn-border);border-radius:var(--jn-radius-md);padding:var(--jn-space-md)}
.jn-agreement-title{font-size:var(--jn-text-lg);font-weight:700;margin:0 0 var(--jn-space-sm)}
.jn-agreement-body{font-size:var(--jn-text-sm);line-height:1.7;color:var(--jn-text-sub)}
.jn-agreement-body ul{padding-left:20px;margin:var(--jn-space-sm) 0}
.jn-agreement-body li{margin-bottom:6px}
.jn-agreement-actions{display:flex;gap:8px;margin-top:var(--jn-space-md)}
.jn-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;font-size:var(--jn-text-sm);font-weight:700;color:#fff;background:var(--jn-primary);border:none;border-radius:var(--jn-radius-sm);cursor:pointer;text-decoration:none;transition:all .2s}
.jn-btn-primary:hover{background:var(--jn-primary-dark);transform:translateY(-1px)}
.jn-btn-secondary{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;font-size:var(--jn-text-sm);font-weight:700;color:var(--jn-text);background:var(--jn-bg);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);cursor:pointer;text-decoration:none;transition:all .2s}
.jn-btn-secondary:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
.jn-form-field{margin-bottom:var(--jn-space-md)}
.jn-form-field label{display:block;font-size:var(--jn-text-sm);font-weight:700;color:var(--jn-text);margin-bottom:6px}
.jn-form-field label .required{color:var(--jn-accent)}
.jn-form-field input[type="text"],.jn-form-field input[type="url"],.jn-form-field select,.jn-form-field textarea{width:100%;padding:10px 14px;font-size:var(--jn-text-base);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);font-family:var(--jn-font);transition:border-color .2s}
.jn-form-field input:focus,.jn-form-field select:focus,.jn-form-field textarea:focus{outline:none;border-color:var(--jn-primary);box-shadow:0 0 0 3px rgba(69,65,255,.1)}
.jn-field-desc{font-size:var(--jn-text-xs);color:var(--jn-text-muted);margin-top:4px}
.jn-form-message{padding:var(--jn-space-sm) var(--jn-space-md);border-radius:var(--jn-radius-sm);font-size:var(--jn-text-sm);display:flex;align-items:center;gap:8px;margin-bottom:var(--jn-space-md)}
.jn-form-message.error{background:#fff5f5;border:1px solid #fed7d7;color:#c53030}
.jn-form-actions{display:flex;gap:8px;margin-top:var(--jn-space-md)}
.jn-approval-notice{background:#FFFBEB;border:1px solid #FDE68A;border-radius:var(--jn-radius-sm);padding:var(--jn-space-sm) var(--jn-space-md);font-size:var(--jn-text-sm);color:#92400E;display:flex;align-items:center;gap:8px;margin-bottom:var(--jn-space-md)}

/* 내뉴스 */
.jn-my-news{max-width:800px;margin:0 auto}
.jn-my-news-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--jn-space-md)}
.jn-my-news-header h2{font-size:var(--jn-text-xl);font-weight:800;margin:0}
.jn-write-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:var(--jn-text-sm);font-weight:700;color:#fff;background:var(--jn-primary);border-radius:var(--jn-radius-sm);text-decoration:none}
.jn-my-news-item{display:flex;align-items:flex-start;gap:12px;padding:var(--jn-space-sm) 0;border-bottom:1px solid var(--jn-border-light)}
.jn-item-status{flex-shrink:0;padding:4px 10px;font-size:11px;font-weight:700;border-radius:4px;line-height:1.5}
.status-published{background:#ECFDF5;color:#065F46}
.status-pending{background:#FFFBEB;color:#92400E}
.status-rejected{background:#FEF2F2;color:#991B1B}
.status-draft{background:var(--jn-bg-alt);color:var(--jn-text-muted)}
.jn-item-content{flex:1;min-width:0}
.jn-item-title{font-size:var(--jn-text-base);font-weight:700;margin:0 0 4px}
.jn-item-title a{color:var(--jn-text);text-decoration:none}
.jn-item-title a:hover{color:var(--jn-primary)}
.jn-item-meta{display:flex;gap:12px;font-size:var(--jn-text-xs);color:var(--jn-text-muted);flex-wrap:wrap}
.jn-item-meta span{display:inline-flex;align-items:center;gap:4px}
.jn-rejection-reason{margin-top:6px;padding:8px 12px;background:#FEF2F2;border-radius:var(--jn-radius-sm);font-size:var(--jn-text-xs);color:#991B1B}
.jn-item-actions{display:flex;gap:6px;flex-shrink:0}
.jn-item-actions .jn-action-btn{padding:6px 10px;font-size:12px}
.jn-item-actions .jn-action-btn.delete{color:#991B1B;border-color:#FECACA;background:#FEF2F2}

/* 빈 상태 */
.jn-empty-state,.jn-login-required,.jn-no-news,.jn-no-results{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--jn-space-xl);text-align:center;color:var(--jn-text-muted)}
.jn-empty-state svg,.jn-login-required svg{margin-bottom:var(--jn-space-sm);opacity:.4}
.jn-login-required h3{font-size:var(--jn-text-lg);color:var(--jn-text);margin:0 0 var(--jn-space-xs)}
.jn-login-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;margin-top:var(--jn-space-sm);font-size:var(--jn-text-base);font-weight:700;color:#fff;background:var(--jn-primary);border-radius:var(--jn-radius-sm);text-decoration:none}
.jn-success-message{text-align:center;padding:var(--jn-space-xl)}
.jn-success-icon{width:64px;height:64px;margin:0 auto var(--jn-space-md);display:flex;align-items:center;justify-content:center;background:#ECFDF5;border-radius:50%;color:#059669}
.jn-success-message h2{font-size:var(--jn-text-xl);margin:0 0 var(--jn-space-xs)}
.jn-success-actions{display:flex;gap:8px;justify-content:center;margin-top:var(--jn-space-md)}

/* 광고 */
.jn-ad-area{margin:var(--jn-space-md) 0;padding:var(--jn-space-sm);background:var(--jn-bg-alt);border:1px dashed var(--jn-border);border-radius:var(--jn-radius-sm);text-align:center;font-size:var(--jn-text-xs);color:var(--jn-text-muted)}
.jn-ad-label{margin:0}
.jn-ad-inquiry{background:none;border:none;color:var(--jn-primary);cursor:pointer;font-size:inherit;text-decoration:underline}
.jn-ad-inquiry-message{margin:6px 0 0;font-size:var(--jn-text-xs)}
.jn-ad-widget{padding:var(--jn-space-sm);background:transparent;border:none}

/* newspaper 숏코드 */
.jn-view-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--jn-space-md);gap:12px;flex-wrap:wrap}
.jn-filter-pills{display:flex;gap:4px;overflow-x:auto;flex:1;scrollbar-width:none}
.jn-filter-pills::-webkit-scrollbar{display:none}
.jn-filter-pill{flex-shrink:0;padding:6px 14px;font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-text-sub);background:var(--jn-bg);border:1px solid var(--jn-border);border-radius:20px;cursor:pointer;transition:all .2s}
.jn-filter-pill:hover{border-color:var(--jn-primary);color:var(--jn-primary)}
.jn-filter-pill.active{background:var(--jn-primary);color:#fff;border-color:var(--jn-primary)}
.jn-newspaper-container{margin-bottom:var(--jn-space-xl)}
.jn-newspaper-header{text-align:center;padding:var(--jn-space-md) 0;border-bottom:2px solid var(--jn-text);margin-bottom:var(--jn-space-md)}
.jn-newspaper-masthead{font-family:var(--jn-font-serif);font-size:var(--jn-text-3xl);font-weight:900;margin:0}
.jn-newspaper-date{font-size:var(--jn-text-sm);color:var(--jn-text-muted);margin-top:4px}
.jn-newspaper-tagline{font-size:var(--jn-text-sm);color:var(--jn-text-sub);font-style:italic}

/* 숏코드 위젯 */
.jn-popular-list ol,ol.jn-popular-list{list-style:none;padding:0;margin:0;counter-reset:poprank}
ol.jn-popular-list li{counter-increment:poprank;display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--jn-border-light);font-size:var(--jn-text-sm)}
ol.jn-popular-list li:last-child{border-bottom:none}
.jn-rank{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;font-size:12px;font-weight:800;color:var(--jn-primary);background:var(--jn-primary-light);border-radius:var(--jn-radius-sm);flex-shrink:0}
ol.jn-popular-list li:nth-child(-n+3) .jn-rank{color:#fff;background:var(--jn-primary)}
ol.jn-popular-list li a{color:var(--jn-text);text-decoration:none;font-weight:500}
ol.jn-popular-list li a:hover{color:var(--jn-primary)}
.jn-recent-list{list-style:none;padding:0;margin:0}
.jn-recent-list li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--jn-border-light)}
.jn-recent-list li:last-child{border-bottom:none}
.jn-recent-list .jn-thumb img{width:80px;height:54px;object-fit:cover;border-radius:var(--jn-radius-sm)}
.jn-recent-list .jn-info a{font-size:var(--jn-text-sm);font-weight:600;color:var(--jn-text);text-decoration:none;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jn-recent-list .jn-info a:hover{color:var(--jn-primary)}
.jn-recent-list .jn-date{font-size:var(--jn-text-xs);color:var(--jn-text-muted);display:block;margin-top:4px}
.jn-member-info a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--jn-text);font-weight:600;font-size:var(--jn-text-sm);margin-top:var(--jn-space-sm)}
.jn-member-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover}
.jn-member-info a:hover{color:var(--jn-primary)}
.jn-view-btn{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-text-muted);background:var(--jn-bg-alt);border:1px solid var(--jn-border);border-radius:var(--jn-radius-sm);cursor:pointer;transition:all .2s}
.jn-view-btn.active{color:#fff;background:var(--jn-primary);border-color:var(--jn-primary)}
.jn-video-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;margin:var(--jn-space-md) 0;border-radius:var(--jn-radius-md)}
.jn-video-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
/* 댓글/답글 영역 */
.jn-comments{margin:var(--jn-space-lg) 0}
.jn-comments .must-log-in,.jn-comments .jn-must-log-in,.jn-comments .jn-comment-guest-notice{margin:0 0 var(--jn-space-md);padding:14px 16px;font-size:var(--jn-text-sm);line-height:1.55;color:var(--jn-text-sub);background:var(--jn-bg-alt);border:1px solid var(--jn-border);border-radius:var(--jn-radius-md)}
.jn-comments .must-log-in a,.jn-comments .jn-must-log-in a,.jn-comments .jn-comment-guest-notice a{color:var(--jn-primary);font-weight:700;text-decoration:none}
.jn-comments .must-log-in a:hover,.jn-comments .jn-must-log-in a:hover,.jn-comments .jn-comment-guest-notice a:hover{text-decoration:underline}
.jn-comments .comment-reply-title{font-size:var(--jn-text-lg);font-weight:800;color:var(--jn-text);margin:0 0 var(--jn-space-sm);padding-bottom:var(--jn-space-sm);border-bottom:2px solid var(--jn-text);display:flex;align-items:center;gap:6px}
.jn-comments .comment-reply-title:before{content:'';display:inline-block;width:4px;height:20px;background:var(--jn-primary);border-radius:2px}
.jn-comments .logged-in-as{font-size:var(--jn-text-sm);color:var(--jn-text-muted);margin:0 0 var(--jn-space-md);line-height:1.5}
.jn-comments .logged-in-as a{color:var(--jn-primary);text-decoration:none;font-weight:600}
.jn-comments .logged-in-as a:hover{text-decoration:underline}
.jn-comments .comment-form{margin-top:var(--jn-space-md)}
.jn-comments .comment-form label{display:block;font-size:var(--jn-text-sm);font-weight:700;color:var(--jn-text);margin-bottom:6px}
.jn-comments .comment-form textarea{width:100%;min-height:60px;padding:10px 14px;font-size:var(--jn-text-base);font-family:var(--jn-font);line-height:1.6;color:var(--jn-text);background:var(--jn-bg);border:1px solid var(--jn-border);border-radius:var(--jn-radius-md);resize:vertical;transition:border-color .2s,box-shadow .2s}
.jn-comments .comment-form textarea:focus{outline:none;border-color:var(--jn-primary);box-shadow:0 0 0 3px rgba(69,65,255,.1)}
.jn-comments .comment-form .comment-form-comment{margin-bottom:var(--jn-space-md)}
.jn-comments .comment-form .form-submit{margin:var(--jn-space-md) 0 0;display:flex;justify-content:flex-end}
/* 테마(astra-child 등) 영향 제거: 회색 심플 버튼 고정 */
.jn-comments .comment-form .submit,
.jn-comments .comment-form button.submit,
.jn-comments #commentform .form-submit .submit,
.jn-comments .jn-comment-submit-btn{display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:6px!important;padding:10px 18px!important;font-size:var(--jn-text-sm)!important;font-weight:600!important;color:var(--jn-text-sub)!important;background:var(--jn-bg-alt)!important;border:1px solid var(--jn-border)!important;border-radius:var(--jn-radius-sm)!important;cursor:pointer!important;transition:border-color .2s,background .2s!important;font-family:var(--jn-font)!important;box-shadow:none!important}
.jn-comments .comment-form .submit:hover,
.jn-comments .comment-form button.submit:hover,
.jn-comments .jn-comment-submit-btn:hover{background:var(--jn-border-light)!important;border-color:var(--jn-text-muted)!important;color:var(--jn-text-sub)!important;box-shadow:none!important}
.jn-comments .comment-form .submit i{font-size:1.1em}
.jn-comments .comment-list,.jn-comments .children{list-style:none;margin:0;padding:0}
.jn-comments .comment-body{padding:var(--jn-space-sm) 0;border-bottom:1px solid var(--jn-border-light)}
.jn-comments .comment-author{font-weight:700;color:var(--jn-text);font-size:var(--jn-text-sm)}
.jn-comments .comment-meta{font-size:var(--jn-text-xs);color:var(--jn-text-muted);margin-top:4px}
.jn-comments .comment-content{font-size:var(--jn-text-sm);line-height:1.6;color:var(--jn-text-sub);margin-top:6px}
.jn-comments .reply{margin-top:8px}
.jn-comments .comment-reply-link{font-size:var(--jn-text-xs);font-weight:600;color:var(--jn-primary);text-decoration:none}
.jn-comments .comment-reply-link:hover{text-decoration:underline}
.jn-comments #respond .form-submit,
.jn-comments #commentform .form-submit{display:flex;justify-content:flex-end;margin-top:var(--jn-space-md)}

/* 반응형 모바일 */
@media(max-width:768px){.jn-mainpage,.jn-single-news,.jn-archive-wrap,.jn-newspaper-container{padding-left:16px;padding-right:16px}.jn-news-grid{grid-template-columns:1fr}.jn-toolbar>span{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.jn-toolbar .jn-result-count,.jn-toolbar .jn-toolbar-sort,.jn-toolbar .jn-view-toggle{flex-shrink:0}.jn-toolbar .jn-sort-select{padding:6px 10px;font-size:var(--jn-text-xs)}.jn-toolbar .jn-view-toggle a{padding:6px 10px;font-size:var(--jn-text-xs)}.jn-sidebar .jn-widget:has(.jn-category-list){display:none!important}.jn-related-list{grid-template-columns:1fr}.jn-article-title{font-size:var(--jn-text-xl)}.jn-header-title{font-size:clamp(20px,5vw,28px)}.jn-my-news-item{flex-direction:column}.jn-item-actions{margin-top:8px}.jn-form-actions{flex-direction:column}.jn-search-form{flex-direction:column}.jn-search-input{min-width:auto}}
@media(max-width:480px){.jn-headline-main{min-height:200px}.jn-headline-overlay h2{font-size:var(--jn-text-lg)}.jn-news-grid{gap:var(--jn-space-sm)}.jn-photo-card{width:200px}}
@media print{.jn-category-nav,.jn-toolbar,.jn-sidebar,.jn-mobile-action-bar,.jn-progress-bar,.jn-article-toolbar,.jn-news-actions,.jn-share-dropdown,.jn-share-modal-bg,.jn-prev-next-nav,.jn-ad-area,.jn-news-register-bar,.jn-shortcode-news-toolbar,.jn-newspaper-admin-bar{display:none!important}.jn-article-content{font-size:12pt;line-height:1.6}.jn-single-layout{max-width:100%}}
.jn-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:focus-visible{outline:2px solid var(--jn-primary);outline-offset:2px}

/* === 뉴스 카드 썸네일 16:9 강제 — 테마/다른 플러그인의 img 규칙보다 강한 스코프 === */
.jn-news-grid .jn-news-card .jn-card-thumb,
.jn-news-list .jn-news-card .jn-card-thumb{display:block;position:relative;width:100%;overflow:hidden;background:var(--jn-bg-alt)}
.jn-news-grid .jn-news-card .jn-card-thumb img,
.jn-news-list .jn-news-card .jn-card-thumb img{position:absolute!important;top:0!important;left:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;object-position:center!important;margin:0!important;padding:0!important}
@supports not (aspect-ratio:16/9){.jn-news-grid .jn-news-card .jn-card-thumb{height:0!important;padding-top:56.25%!important}.jn-news-list .jn-news-card .jn-card-thumb{padding-top:0!important}}

[data-jn-theme="dark"]{--jn-bg:#1A1F2E;--jn-bg-alt:#222838;--jn-surface:#272D3D;--jn-border:#3A4155;--jn-border-light:#313849;--jn-text:#E8ECF4;--jn-text-sub:#A0ABBD;--jn-text-muted:#6B7A8D;--jn-shadow-sm:0 1px 3px rgba(0,0,0,.2);--jn-shadow-md:0 4px 12px rgba(0,0,0,.3)}
