/**
 * news_index_v2_static_preset
 * NHX 대형 뉴스포털 골격을 우리 포털 데이터와 색감으로 재구성.
 */

.jhi-wrap {
  --jhi-ink: #0f172a;
  --jhi-muted: #64748b;
  --jhi-soft: #f8fafc;
  --jhi-line: #e2e8f0;
  --jhi-brand: #0a4d8c;
  --jhi-accent: #e64a19;
  --jhi-card: #ffffff;
  background: #fff;
  color: var(--jhi-ink);
  padding: 26px 0 68px;
  font-family: 'Pretendard', 'Noto Sans KR', -apple-system, BlinkMacSystemFont, sans-serif;
}

.jhi-wrap a {
  color: inherit;
  text-decoration: none;
}

.jhi-wrap a:hover {
  color: var(--jhi-brand);
}

/* .jhi-container — 폭·좌우 inset SSOT: assets/css/layout.css (--news-page-inset-x*) */

.jhi-photo {
  display: block;
  background: var(--jhi-soft) center / cover no-repeat;
  overflow: hidden;
}

.jhi-kicker {
  color: var(--jhi-accent);
  font-size: var(--fs-xs, 14px);
  font-weight: 900;
  letter-spacing: 0.08em;
}

/* ─────────────────────────────────────────────
 *  분류 배지 [지역 · 카테고리 · 언론사] — 라벨 prefix 없이 실데이터 직접 표기
 *  · 좌·우 대괄호는 ::before / ::after 가짜 요소(텍스트 자유 wrap 가능)
 *  · 3종(지역/분류/언론사)을 세로로 쌓을 수 있도록 flex-wrap 허용
 *  · 색상은 종류별 차분: 지역=brand, 분류=ink, 언론사=accent
 * ───────────────────────────────────────────── */
.jhi-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 6px;
  margin: 0 0 5px;
}

.jhi-badges span,
.jhi-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 7px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #f8fafc;
  color: #334155;
  font-size: var(--fs-xs, 14px);
  font-weight: 800;
  line-height: 1;
}

.jhi-badges b {
  margin-right: 3px;
  color: var(--jhi-brand);
  font-weight: 900;
}

/* 좌·우 대괄호 — CSS 가짜 요소로 표현 (값은 그대로 남고 시각적 [ ] 만 추가) */
.jhi-badge::before { content: "["; margin-right: 1px; color: #94a3b8; font-weight: 900; }
.jhi-badge::after  { content: "]"; margin-left: 1px;  color: #94a3b8; font-weight: 900; }

/* 종류별 색상 — 가독·구분 강화 */
.jhi-badge-region {
  border-color: color-mix(in srgb, var(--jhi-brand, #0a4d8c) 22%, #e2e8f0);
  background: color-mix(in srgb, var(--jhi-brand, #0a4d8c) 6%, #fff);
  color: var(--jhi-brand, #0a4d8c);
}
.jhi-badge-region::before,
.jhi-badge-region::after { color: var(--jhi-brand, #0a4d8c); opacity: 0.55; }

.jhi-badge-category {
  border-color: #cbd5e1;
  background: #f1f5f9;
  color: #1e293b;
}

.jhi-badge-media {
  border-color: color-mix(in srgb, var(--jhi-accent, #ea580c) 25%, #e2e8f0);
  background: color-mix(in srgb, var(--jhi-accent, #ea580c) 8%, #fff);
  color: var(--jhi-accent, #ea580c);
}
.jhi-badge-media::before,
.jhi-badge-media::after { color: var(--jhi-accent, #ea580c); opacity: 0.55; }

.jhi-meta,
.jhi-section-head span,
.jhi-local-grid article > span {
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
}

.jhi-location-switcher {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid var(--jhi-line);
  border-radius: 16px;
  background: linear-gradient(135deg, #f8fafc 0%, #fff 62%);
}

.jhi-location-now {
  min-width: 0;
}

.jhi-location-now span {
  display: block;
  margin-bottom: 3px;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
}

.jhi-location-now strong {
  display: block;
  color: var(--jhi-ink);
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
  letter-spacing: -0.02em;
}

.jhi-home-switch {
  display: grid;
  grid-template-columns: repeat(3, minmax(96px, 1fr));
  gap: 8px;
  min-width: min(100%, 380px);
}

.jhi-home-switch a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid #dbe4ef;
  border-radius: 12px;
  background: #fff;
  color: #334155;
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  white-space: nowrap;
}

.jhi-home-switch a:hover,
.jhi-home-switch a:focus-visible,
.jhi-home-switch a.is-active {
  border-color: var(--jhi-brand);
  background: var(--jhi-brand);
  color: #fff;
}

.jhi-editor-line {
  display: flex;
  align-items: center;
  gap: 18px;
  min-height: 46px;
  margin-bottom: 22px;
  border-top: 4px solid var(--jhi-ink);
  border-bottom: 1px solid var(--jhi-line);
  overflow: hidden;
}

.jhi-news-gnb {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
  gap: 0;
  margin-bottom: 14px;
  border-top: 3px solid var(--jhi-ink);
  border-bottom: 1px solid var(--jhi-line);
  overflow: visible;
  position: relative;
  z-index: 20;
}

.jhi-news-gnb-item {
  position: relative;
  min-width: 0;
}

.jhi-news-gnb-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 44px;
  padding: 0 8px;
  border-right: 1px solid var(--jhi-line);
  color: var(--jhi-ink);
  font-size: var(--fs-md, 17px);
  font-weight: 900;
  white-space: nowrap;
}

.jhi-news-gnb-link i {
  color: #94a3b8;
  font-size: var(--fs-xs, 14px);
  transition: transform 0.16s ease, color 0.16s ease;
}

.jhi-news-gnb-link.is-active,
.jhi-news-gnb-item.is-active > .jhi-news-gnb-link {
  color: var(--jhi-brand);
  font-weight: 900;
  border-bottom-color: var(--jhi-brand);
}
.jhi-news-lnb a.is-active {
  color: var(--jhi-brand);
  font-weight: 800;
}
.jhi-wrap--sub {
  padding: 14px 0 0;
  margin-bottom: 0;
}
.jhi-wrap--sub + .nl-list-wrap,
.jhi-wrap--sub + .nd-read-progress + .nd-detail-wrap,
.jhi-wrap--sub + .nd-detail-wrap,
.jhi-wrap--sub + .sector-full {
  margin-top: 0;
}
/* 리스트·디테일·보드: 포털 sector-inner 안에서도 GNB 폭 유지 */
[data-news-nav-mount] .jhi-news-gnb {
  margin-bottom: 12px;
}
.layout-body [data-news-nav-mount],
.sector-inner [data-news-nav-mount],
.sector-wrap.s7 [data-news-nav-mount] {
  width: 100%;
  max-width: none;
  position: relative;
  z-index: 40;
  overflow: visible;
}
.sector-wrap.s7 .sector-full:has([data-news-nav-mount]) {
  overflow: visible;
}
@media (max-width: 900px) {
  .sector-wrap.s7 .sector-full:has([data-news-nav-mount]) {
    overflow: visible !important;
  }
}
.jhi-news-gnb-link:hover,
.jhi-news-gnb-link:focus-visible,
.jhi-news-gnb-item:focus-within > .jhi-news-gnb-link,
.jhi-news-gnb-item:hover > .jhi-news-gnb-link,
.jhi-news-gnb-link.is-home {
  background: var(--jhi-ink);
  color: #fff;
}

.jhi-news-gnb-item:hover .jhi-news-gnb-link i,
.jhi-news-gnb-item:focus-within .jhi-news-gnb-link i {
  color: #fff;
  transform: rotate(180deg);
}

.jhi-news-lnb {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  display: none;
  min-width: 180px;
  padding: 8px;
  border: 1px solid var(--jhi-line);
  border-top: 3px solid var(--jhi-accent);
  background: #fff;
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.14);
}

.jhi-news-lnb::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: -12px;
  height: 12px;
}

.jhi-news-gnb-item:hover .jhi-news-lnb,
.jhi-news-gnb-item:focus-within .jhi-news-lnb {
  display: grid;
  gap: 4px;
}

.jhi-news-lnb a {
  display: block;
  padding: 8px 9px;
  border-radius: 6px;
  color: #334155;
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
  line-height: 1.35;
}

.jhi-news-lnb a:hover,
.jhi-news-lnb a:focus-visible,
.jhi-news-lnb a.is-all {
  background: #eff6ff;
  color: var(--jhi-brand);
}

.jhi-editor-line strong {
  display: inline-flex;
  align-items: center;
  align-self: stretch;
  padding: 0 14px;
  background: var(--jhi-ink);
  color: #fff;
  font-size: var(--fs-xs, 14px);
  font-weight: 900;
  letter-spacing: 0.12em;
  white-space: nowrap;
}

.jhi-editor-scroll {
  display: flex;
  gap: 28px;
  min-width: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.jhi-editor-scroll::-webkit-scrollbar {
  display: none;
}

.jhi-editor-scroll a,
.jhi-editor-scroll span {
  flex: 0 0 auto;
  max-width: 320px;     /* 데스크톱 가로 스크롤 칸 — 길면 2~3줄 자연 줄바꿈 */
  color: #334155;
  font-size: var(--fs-base, 16px);
  font-weight: 700;
  line-height: 1.4;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: break-word;
}

/* ── 추천뉴스 / 실시간뉴스 2탭 (CSS-only · :checked) ─────────────
 *  · 라디오 input 은 화면에 보이지 않게 숨김 (스크린리더에는 노출)
 *  · 탭바: 좌측 정렬 2개 pill, 활성 탭 다크 ink + 흰글씨
 *  · 패널: 동일 영역에 겹쳐 두지 않고 형제 ~ 선택자로 1개만 노출 */
.jhi-pick-tabs.jhi-editor-line {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: visible;
  border-top: 4px solid var(--jhi-ink);
  border-bottom: 1px solid var(--jhi-line);
  background: #fff;
}
.jhi-pick-radio {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  border: 0;
}
.jhi-pick-tabbar {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--jhi-line);
  background: #f8fafc;
}
.jhi-pick-tab {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  font-size: var(--fs-md, 17px);
  font-weight: 800;
  color: var(--jhi-muted, #64748b);
  cursor: pointer;
  border-right: 1px solid var(--jhi-line);
  transition: background .15s ease, color .15s ease;
}
.jhi-pick-tab i {
  font-size: var(--fs-sm, 15px);
  color: var(--jhi-brand, #dc2626);
}
.jhi-pick-tab:hover {
  background: #f1f5f9;
  color: var(--jhi-ink);
}
#jhi-pick-rec:checked  ~ .jhi-pick-tabbar [for="jhi-pick-rec"],
#jhi-pick-live:checked ~ .jhi-pick-tabbar [for="jhi-pick-live"] {
  background: var(--jhi-ink);
  color: #fff;
}
#jhi-pick-rec:checked  ~ .jhi-pick-tabbar [for="jhi-pick-rec"]  i,
#jhi-pick-live:checked ~ .jhi-pick-tabbar [for="jhi-pick-live"] i {
  color: #fbbf24;
}
.jhi-pick-tabs .jhi-pick-panel {
  display: none;
  padding: 14px 18px;
}
#jhi-pick-rec:checked  ~ .jhi-pick-panel--rec,
#jhi-pick-live:checked ~ .jhi-pick-panel--live {
  display: flex;
}
/* 실시간 패널 — 등록 시각 메타(작게, 우측에 inline) */
.jhi-pick-panel--live a .jhi-pick-time {
  display: inline-block;
  margin-left: 8px;
  padding: 1px 8px;
  background: var(--jhi-soft, #f1f5f9);
  color: var(--jhi-muted, #64748b);
  font-size: var(--fs-sm, 15px);
  font-style: normal;
  font-weight: 700;
  border-radius: 999px;
  vertical-align: 1px;
}

.jhi-play-zone {
  display: grid;
  gap: 18px;
  margin-bottom: 30px;
}

.jhi-hot-strip {
  padding: 12px;
  border-radius: 18px;
  background: #f1f5f9;
}

.jhi-hot-head {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  padding: 0 14px;
  border-radius: 12px;
  background: linear-gradient(90deg, #dc2626, #ef4444);
  color: #fff;
}

.jhi-hot-head span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 0 9px;
  border-radius: 999px;
  background: rgba(15, 23, 42, 0.28);
  font-size: var(--fs-xs, 14px);
  font-weight: 900;
}

.jhi-hot-head a,
.jhi-hot-head strong {
  min-width: 0;
  color: #fff;
  font-size: var(--fs-md, 17px);
  font-weight: 900;
  line-height: 1.32;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.jhi-hot-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding-top: 12px;
}

.jhi-hot-card {
  display: grid;
  grid-template-columns: 22px 52px minmax(0, 1fr);
  gap: 8px 10px;
  align-items: start;
  min-height: 78px;
  padding: 10px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.05);
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
}

.jhi-hot-card:hover,
.jhi-hot-card:focus-visible {
  border-color: var(--jhi-brand);
  box-shadow: 0 14px 28px rgba(15, 23, 42, 0.12);
  transform: translateY(-3px);
}

.jhi-hot-card b {
  align-self: start;
  color: #dc2626;
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
}

.jhi-hot-thumb {
  display: block;
  width: 52px;
  height: 52px;
  border-radius: 10px;
  background: #e2e8f0 center / cover no-repeat;
}

.jhi-hot-card strong {
  color: var(--jhi-ink);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.36;
  white-space: normal;
  word-break: keep-all;
  overflow-wrap: break-word;
}

.jhi-hot-card em {
  grid-column: 3;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-style: normal;
  font-weight: 700;
}

.jhi-fun-grid {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(280px, 3fr);
  gap: 18px;
}

.jhi-region-teasers,
.jhi-action-panel {
  padding: 16px;
  border: 1px solid var(--jhi-line);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
}

/* 섹션 헤더 우측 "전체 →" 링크 */
.jhi-play-head-all {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
  transition: color .15s ease, transform .15s ease;
}
.jhi-play-head-all i { font-size: var(--fs-xs, 14px); }
.jhi-play-head-all:hover {
  color: var(--jhi-brand);
  transform: translateX(2px);
}

/* ─────────────────────────────────────────────
 * 지역별 뉴스 v2 (2026-05-24) — 칩 탭 + 패널 + 메타 강화
 *  마크업: input[type=radio][name=jhi-region-tabs] + label + .jhi-region-panel[hidden]
 *  JS 없이 :has() / :checked 만으로 탭 전환.
 * ───────────────────────────────────────────── */
.jhi-region-tabs {
  display: flex;
  gap: 6px;
  overflow-x: auto;
  scrollbar-width: none;
  margin: 0 -4px 14px;
  padding: 0 4px 4px;
  -webkit-overflow-scrolling: touch;
}
.jhi-region-tabs::-webkit-scrollbar { display: none; }
.jhi-region-tabs input[type="radio"] {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}
.jhi-region-tabs label {
  --region-color: var(--jhi-brand, #0a4d8c);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  height: 36px;
  padding: 0 14px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #334155;
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
  cursor: pointer;
  transition: background .15s, color .15s, border-color .15s, box-shadow .15s, transform .15s;
}
.jhi-region-tabs label i {
  color: var(--region-color);
  font-size: var(--fs-xs, 14px);
}
.jhi-region-tabs label:hover {
  border-color: var(--region-color);
  color: var(--region-color);
  background: color-mix(in srgb, var(--region-color) 8%, #fff);
}
.jhi-region-tabs label em {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #64748b;
  font-size: var(--fs-xs, 14px);
  font-style: normal;
  font-weight: 800;
}

/* 4개 지역(yeosu/suncheon/gwangyang/jeonnam) 활성 라벨 강조 — 지역별 색상 적용 */
.jhi-region-tabs:has(input:nth-of-type(1):checked) label:nth-of-type(1),
.jhi-region-tabs:has(input:nth-of-type(2):checked) label:nth-of-type(2),
.jhi-region-tabs:has(input:nth-of-type(3):checked) label:nth-of-type(3),
.jhi-region-tabs:has(input:nth-of-type(4):checked) label:nth-of-type(4) {
  background: var(--region-color);
  border-color: var(--region-color);
  color: #fff;
  box-shadow: 0 6px 14px color-mix(in srgb, var(--region-color) 35%, transparent);
  transform: translateY(-1px);
}
.jhi-region-tabs:has(input:nth-of-type(1):checked) label:nth-of-type(1) i,
.jhi-region-tabs:has(input:nth-of-type(2):checked) label:nth-of-type(2) i,
.jhi-region-tabs:has(input:nth-of-type(3):checked) label:nth-of-type(3) i,
.jhi-region-tabs:has(input:nth-of-type(4):checked) label:nth-of-type(4) i {
  color: #fff;
}
.jhi-region-tabs:has(input:nth-of-type(1):checked) label:nth-of-type(1) em,
.jhi-region-tabs:has(input:nth-of-type(2):checked) label:nth-of-type(2) em,
.jhi-region-tabs:has(input:nth-of-type(3):checked) label:nth-of-type(3) em,
.jhi-region-tabs:has(input:nth-of-type(4):checked) label:nth-of-type(4) em {
  background: rgba(255,255,255,0.22);
  color: #fff;
}

/* 키보드 포커스 */
.jhi-region-tabs input:focus-visible + label {
  outline: 2px solid var(--jhi-brand);
  outline-offset: 2px;
}

/* 탭 패널 — :has() 로 input checked 와 같은 인덱스 패널만 노출 (4개 지역) */
.jhi-region-panels { position: relative; }
.jhi-region-panel { display: block; }
.jhi-region-panel[hidden] { display: none; }
.jhi-region-teasers:has(.jhi-region-tabs input:checked) .jhi-region-panel { display: none; }
.jhi-region-teasers:has(.jhi-region-tabs input:nth-of-type(1):checked) .jhi-region-panel:nth-of-type(1),
.jhi-region-teasers:has(.jhi-region-tabs input:nth-of-type(2):checked) .jhi-region-panel:nth-of-type(2),
.jhi-region-teasers:has(.jhi-region-tabs input:nth-of-type(3):checked) .jhi-region-panel:nth-of-type(3),
.jhi-region-teasers:has(.jhi-region-tabs input:nth-of-type(4):checked) .jhi-region-panel:nth-of-type(4) {
  display: block !important;
}

/* 섹션 헤더 우측 "현재 ▶ 여수" 배지 */
.jhi-region-now {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 8px;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #f8fafc;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
}
.jhi-region-now i {
  color: var(--jhi-brand, #0a4d8c);
  font-size: var(--fs-xs, 14px);
}
.jhi-region-now strong {
  color: var(--jhi-ink);
  font-weight: 900;
}

/* 패널 헤더 — 지역명 + "현재" 알약 + 그 지역 전체 보기. 색상은 지역별. */
.jhi-region-panel .jhi-region-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--region-color, var(--jhi-brand, #0a4d8c));
}
.jhi-region-panel .jhi-region-head h3 {
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--jhi-ink);
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
}
.jhi-region-panel .jhi-region-head h3 i {
  color: var(--region-color, var(--jhi-brand, #0a4d8c));
  font-size: var(--fs-base, 16px);
}
.jhi-region-now-pill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 8px;
  border-radius: 999px;
  background: var(--region-color, var(--jhi-brand, #0a4d8c));
  color: #fff;
  font-size: var(--fs-xs, 14px);
  font-weight: 800;
  letter-spacing: 0.04em;
}
.jhi-region-panel .jhi-region-head a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
  transition: color .15s, transform .15s;
}
.jhi-region-panel .jhi-region-head a:hover {
  color: var(--region-color, var(--jhi-brand));
  transform: translateX(2px);
}
.jhi-region-panel .jhi-region-head a i { font-size: var(--fs-xs, 14px); }

/* lead 카드 — 큰 썸 + 제목 + 1줄 요약 + 메타 */
.jhi-region-panel .jhi-region-lead,
.jhi-region-empty .jhi-region-lead {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  margin-bottom: 14px;
  padding: 0;
  border-radius: 0;
  text-decoration: none;
}
.jhi-region-panel .jhi-region-thumb,
.jhi-region-empty .jhi-region-thumb {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 8px;
  background: #e2e8f0 center / cover no-repeat;
}
.jhi-region-lead-body { min-width: 0; }
.jhi-region-lead-body b {
  display: block;
  margin: 0 0 6px;
  color: var(--jhi-ink);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.36;
  word-break: keep-all;
}
.jhi-region-lead-body p {
  margin: 0 0 6px;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  line-height: 1.45;
  word-break: keep-all;
}
.jhi-region-lead-body .jhi-meta {
  color: #94a3b8;
  font-size: var(--fs-sm, 15px);
  font-weight: 600;
}
.jhi-region-lead:hover b { color: var(--jhi-brand); }

/* 라인 리스트 — 4건 */
.jhi-region-lines {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #f1f5f9;
}
.jhi-region-lines li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 10px 4px 10px 16px;
  border-bottom: 1px dotted #e2e8f0;
  position: relative;
}
.jhi-region-lines li:last-child { border-bottom: 0; }
.jhi-region-lines li::before {
  content: "";
  position: absolute;
  left: 4px;
  top: 50%;
  width: 5px;
  height: 5px;
  margin-top: -2.5px;
  border-radius: 50%;
  background: #cbd5e1;
}
.jhi-region-lines li:hover::before { background: var(--jhi-brand); }
.jhi-region-lines a {
  display: block;
  min-width: 0;
  color: #334155;
  font-size: var(--fs-base, 16px);
  font-weight: 700;
  line-height: 1.4;
  word-break: keep-all;
  transition: color .15s;
}
.jhi-region-lines a:hover { color: var(--jhi-brand); }
.jhi-region-lines em {
  flex-shrink: 0;
  color: #94a3b8;
  font-size: var(--fs-sm, 15px);
  font-style: normal;
  font-weight: 600;
}

/* 빈 상태 · 키워드 폴백 안내 */
.jhi-region-panel .jhi-region-empty-msg,
.jhi-region-empty .jhi-region-empty-msg {
  margin: 12px 0;
  padding: 24px;
  text-align: center;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  background: #f8fafc;
  border-radius: 12px;
}
.jhi-region-panel .jhi-region-empty-msg small {
  display: block;
  margin-top: 6px;
  color: #94a3b8;
  font-size: var(--fs-sm, 15px);
}
.jhi-region-fallback-badge {
  background: #fef3c7 !important;
  color: #92400e !important;
  font-size: var(--fs-xs, 14px) !important;
  font-weight: 800 !important;
  letter-spacing: 0.02em;
}
.jhi-region-fallback-note {
  margin: 0 0 10px;
  padding: 8px 12px;
  border-radius: 8px;
  background: #fffbeb;
  color: #92400e;
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
}

.jhi-play-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 13px;
}

.jhi-play-head h2 {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: var(--jhi-ink);
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
}

.jhi-play-head h2 i {
  color: var(--jhi-accent);
  font-size: var(--fs-base, 16px);
}

.jhi-play-head span {
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
}

.jhi-region-teaser-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

.jhi-region-teaser-grid article {
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #fff;
}

.jhi-region-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 44px;
  padding: 0 12px;
  border-bottom: 1px solid #eef2f7;
}

.jhi-region-title strong {
  color: var(--jhi-ink);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
}

.jhi-region-title a {
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
}

.jhi-region-lead {
  display: grid;
  grid-template-columns: 74px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  padding: 12px;
}

.jhi-region-lead span {
  display: block;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  background: #e2e8f0 center / cover no-repeat;
}

.jhi-region-lead b {
  color: var(--jhi-ink);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.38;
}

.jhi-region-line {
  display: block;
  margin: 0 12px;
  padding: 10px 0;
  border-top: 1px dotted #cbd5e1;
  color: #334155;
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
  line-height: 1.38;
}

/* ─────────────────────────────────────────────
 *  빠른 선택 — 4카드 (랭킹/사진/이슈/속보)
 *  · 데스크톱·태블릿: 1열 가로형(아이콘 좌측 + 본문 우측)
 *  · 좁은 폰: 세로형(아이콘 위 + 본문 아래) — word-break:keep-all 로 한국어 단어 잘림 방지
 *  · 카드별 --qa-color 로 좌측 컬러 스트라이프 + 호버 보더 색상
 * ───────────────────────────────────────────── */
.jhi-action-grid {
  display: grid;
  gap: 10px;
}

.jhi-action-card {
  --qa-color: var(--jhi-accent, #ea580c);
  position: relative;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr);
  gap: 0 12px;
  align-items: center;
  min-height: 72px;
  padding: 12px 14px 12px 16px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
  transition: transform 0.16s ease, background 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}
.jhi-action-card::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--qa-color);
  opacity: 0.85;
}
.jhi-action-card:hover,
.jhi-action-card:focus-visible {
  border-color: var(--qa-color);
  background: color-mix(in srgb, var(--qa-color) 6%, #fff);
  box-shadow: 0 8px 18px color-mix(in srgb, var(--qa-color) 18%, transparent);
  transform: translateX(2px);
}

.jhi-action-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: color-mix(in srgb, var(--qa-color) 12%, #fff);
  color: var(--qa-color);
  font-size: var(--fs-xl, 20px);
}

.jhi-action-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.jhi-action-head {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  flex-wrap: wrap;
}
.jhi-action-head strong {
  color: var(--jhi-ink);
  font-size: var(--fs-md, 17px);
  font-weight: 900;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.jhi-action-badge {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: var(--qa-color);
  color: #fff;
  font-size: var(--fs-xs, 14px);
  font-weight: 800;
  font-style: normal;
  letter-spacing: 0.02em;
  white-space: nowrap;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}
.jhi-action-preview {
  color: var(--jhi-ink);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
  line-height: 1.4;
  word-break: keep-all;
  overflow-wrap: break-word;
}
.jhi-action-sub {
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 600;
}

.jhi-hero {
  display: grid;
  grid-template-columns: minmax(0, 6.2fr) minmax(260px, 3.1fr) minmax(260px, 2.7fr);
  gap: 28px;
  padding-bottom: 34px;
  margin-bottom: 32px;
  border-bottom: 1px solid var(--jhi-line);
}

.jhi-hero-main {
  min-width: 0;
}

.jhi-photo-main {
  position: relative;
  aspect-ratio: 16 / 10;
  margin-bottom: 16px;
}

.jhi-photo-main span {
  position: absolute;
  left: 14px;
  top: 14px;
  padding: 5px 12px;
  background: var(--jhi-accent);
  color: #fff;
  font-size: var(--fs-xs, 14px);
  font-weight: 900;
}

.jhi-hero-main h1 {
  margin: 8px 0 14px;
  color: var(--jhi-ink);
  font-size: var(--fs-hero, 32px);
  font-weight: 900;
  line-height: 1.18;
  letter-spacing: -0.04em;
}

.jhi-hero-main p {
  margin: 0 0 14px;
  color: #334155;
  font-size: var(--fs-md, 17px);
  line-height: 1.72;
}

/* .jhi-hero 부모 grid 가 hero-stack 컬럼을 메가 기사 높이만큼 stretch 하므로,
 *  그 안의 articles 가 default align-content: stretch 로 같이 늘어난다.
 *  → align-content: start 로 자연 높이 유지(여백은 컬럼 하단에 남도록).            */
.jhi-hero-stack {
  display: grid;
  grid-auto-rows: min-content;
  align-content: start;
  gap: 4px;
}

/* hero-stack 카드 — 2행 구조
 *   행 1: [사진 110px] [배지 3종]
 *   행 2: [제목 + 등록일 — 전체 너비, jhi-hero-foot]  */
.jhi-hero-stack article {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  grid-template-rows: min-content min-content;
  grid-template-areas:
    "photo badges"
    "foot  foot";
  align-content: start;
  column-gap: 10px;
  row-gap: 2px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--jhi-line);
}

.jhi-hero-stack article:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.jhi-hero-stack .jhi-photo {
  grid-area: photo;
  align-self: stretch;
  min-height: 60px;
  border-radius: 6px;
}

.jhi-hero-stack .jhi-badges {
  grid-area: badges;
  align-self: start;
  margin: 0;
  gap: 3px 5px;
}

.jhi-hero-stack .jhi-badges span {
  min-height: 22px;
  padding: 0 7px;
}

.jhi-hero-foot {
  grid-area: foot;
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.jhi-hero-stack h2 {
  margin: 0;
  font-size: var(--fs-md, 17px);
  font-weight: 900;
  line-height: 1.28;
  letter-spacing: -0.02em;
}

.jhi-hero-stack .jhi-hero-foot .jhi-meta {
  margin: 0;
  line-height: 1.15;
}

.jhi-side-rail {
  display: grid;
  gap: 16px;
  align-content: start;
}

.jhi-rank-panel,
.jhi-vertical-tabs {
  padding: 16px;
  border: 1px solid var(--jhi-line);
  border-top: 4px solid var(--jhi-ink);
  background: var(--jhi-card);
}

.jhi-vertical-tabs {
  padding: 0;
  overflow: hidden;
}

.jhi-vertical-tabs > input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.jhi-tab-labels {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid var(--jhi-line);
}

.jhi-tab-labels label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  border-right: 1px solid var(--jhi-line);
  color: #334155;
  font-size: var(--fs-sm, 15px);
  font-weight: 900;
  cursor: pointer;
}

.jhi-tab-labels label:last-child {
  border-right: 0;
}

#jhiTabMedia:checked ~ .jhi-tab-labels label[for="jhiTabMedia"],
#jhiTabAgency:checked ~ .jhi-tab-labels label[for="jhiTabAgency"],
#jhiTabIssue:checked ~ .jhi-tab-labels label[for="jhiTabIssue"] {
  background: var(--jhi-ink);
  color: #fff;
}

.jhi-tab-panel {
  display: none;
  padding: 10px 14px 14px;
}

#jhiTabMedia:checked ~ .jhi-tab-panels .jhi-tab-panel--media,
#jhiTabAgency:checked ~ .jhi-tab-panels .jhi-tab-panel--agency,
#jhiTabIssue:checked ~ .jhi-tab-panels .jhi-tab-panel--issue {
  display: block;
}

.jhi-tab-panel a,
.jhi-tab-panel p {
  display: block;
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px dotted var(--jhi-line);
}

.jhi-tab-panel a:last-child {
  border-bottom: 0;
}

.jhi-tab-panel strong {
  display: block;
  color: var(--jhi-ink);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.4;
}

.jhi-tab-panel span,
.jhi-tab-panel p {
  display: block;
  margin-top: 4px;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
}

.jhi-tab-panel .jhi-badges,
.jhi-latest-list .jhi-badges,
.jhi-local-grid .jhi-badges,
.jhi-special-main .jhi-badges,
.jhi-issue-board-grid .jhi-badges,
.jhi-opinion .jhi-badges {
  margin-bottom: 5px;
}

.jhi-tab-panel .jhi-badges span,
.jhi-latest-list .jhi-badges span,
.jhi-local-grid .jhi-badges span,
.jhi-special-main .jhi-badges span,
.jhi-issue-board-grid .jhi-badges span,
.jhi-opinion .jhi-badges span {
  min-height: 22px;
  padding: 0 6px;
}

.jhi-panel-head,
.jhi-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 11px;
  margin-bottom: 16px;
  border-bottom: 3px solid var(--jhi-ink);
}

.jhi-panel-head h2,
.jhi-section-head h2 {
  margin: 0;
  color: var(--jhi-ink);
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
  letter-spacing: -0.02em;
}

.jhi-panel-head a,
.jhi-section-head a {
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
}

.jhi-rank-panel ol {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: jhiRank;
}

.jhi-rank-panel li {
  counter-increment: jhiRank;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px dotted var(--jhi-line);
}

.jhi-rank-panel li::before {
  content: counter(jhiRank, decimal-leading-zero);
  color: var(--jhi-accent);
  font-family: Georgia, serif;
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
  line-height: 1;
}

.jhi-rank-panel li a {
  display: block;
  font-size: var(--fs-base, 16px);
  font-weight: 800;
  line-height: 1.42;
}

.jhi-rank-panel li span {
  grid-column: 2;
  color: var(--jhi-muted);
  font-size: var(--fs-xs, 14px);
  font-weight: 700;
}

.jhi-ad {
  margin: 0 0 34px;
  padding: 14px 0;
  border-top: 1px solid var(--jhi-line);
  border-bottom: 1px solid var(--jhi-line);
}

/* ─────────────────────────────────────────────
 *  공용 카드 푸터 — hero-stack 패턴 SSOT
 *  사용처: jhi-hero-stack / jhi-wing-grid / jhi-cat-card / jhi-special-main / jhi-region-net
 *  구조: 사진(좌·상) + 배지(우·상) → jhi-card-foot { 제목 + 등록일 } 전체 너비
 * ───────────────────────────────────────────── */
.jhi-card-foot {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.jhi-card-foot strong,
.jhi-card-foot h2,
.jhi-card-foot h3,
.jhi-card-foot h4 {
  display: block;
  margin: 0;
  color: var(--jhi-ink);
  font-weight: 900;
  line-height: 1.28;
  letter-spacing: -0.02em;
  word-break: keep-all;
}
.jhi-card-foot em,
.jhi-card-foot .jhi-meta {
  display: block;
  margin: 0;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
  font-style: normal;
  line-height: 1.15;
}

.jhi-wing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  padding-bottom: 34px;
  margin-bottom: 34px;
  border-bottom: 4px solid var(--jhi-ink);
}

.jhi-wing-grid article {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  grid-template-areas:
    "photo badges"
    "foot  foot";
  align-content: start;
  column-gap: 12px;
  row-gap: 6px;
}
.jhi-wing-grid .jhi-photo {
  grid-area: photo;
  align-self: stretch;
  min-height: 80px;
  margin: 0;
  aspect-ratio: 5 / 3;
}
.jhi-wing-grid .jhi-badges {
  grid-area: badges;
  align-self: start;
  margin: 0;
}
.jhi-wing-grid .jhi-card-foot {
  grid-area: foot;
}
.jhi-wing-grid .jhi-card-foot h2 {
  font-size: var(--fs-xl, 20px);
  line-height: 1.3;
}

.jhi-section {
  margin-bottom: 34px;
}

.jhi-category-matrix {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 22px 18px;
}

/* 섹션별 주요뉴스 카드 — 카테고리별 색상(--cat-color) 연동
 *  · 헤더 보더 / 제목 / 리드 제목 hover / 리스트 도트 컬러 모두 연동 */
.jhi-cat-card {
  --cat-color: var(--jhi-ink, #0f172a);
  min-width: 0;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  grid-template-areas:
    "title  title"
    "photo  badges"
    "foot   foot"
    "list   list";
  align-content: start;
  column-gap: 10px;
  row-gap: 6px;
}

.jhi-cat-card h3 {
  grid-area: title;
  margin: 0 0 4px;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--cat-color);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
}
.jhi-cat-card h3 a {
  color: var(--cat-color);
}
.jhi-cat-card h3 a:hover {
  color: color-mix(in srgb, var(--cat-color) 80%, #000);
}

.jhi-cat-card .jhi-photo {
  grid-area: photo;
  align-self: stretch;
  min-height: 60px;
  margin: 0;
  aspect-ratio: 4 / 3;
}
.jhi-cat-card .jhi-badges {
  grid-area: badges;
  align-self: start;
  margin: 0;
}
.jhi-cat-card .jhi-card-foot {
  grid-area: foot;
}
.jhi-cat-card .jhi-card-foot h4 {
  font-size: var(--fs-base, 16px);
  line-height: 1.32;
}
.jhi-cat-card .jhi-card-foot h4 a:hover,
.jhi-cat-card li a:hover {
  color: var(--cat-color);
}

.jhi-cat-card ul {
  grid-area: list;
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.jhi-cat-card li {
  position: relative;
  padding-left: 10px;
  color: #334155;
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
  line-height: 1.45;
}

.jhi-cat-card li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.68em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--cat-color);
}

.jhi-split {
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(280px, 4fr);
  gap: 34px;
}

.jhi-local-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

/* 지역 뉴스 네트워크 카드 — hero-stack 패턴 + 라인 3건 */
.jhi-local-grid .jhi-region-net {
  --region-color: var(--jhi-brand, #0a4d8c);
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  border: 1px solid var(--jhi-line);
  border-top: 3px solid var(--region-color);
  border-radius: 6px;
  background: var(--jhi-soft);
}
.jhi-region-net-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0;
  padding-bottom: 6px;
  border-bottom: 1px solid color-mix(in srgb, var(--region-color) 22%, var(--jhi-line));
}
.jhi-region-net-head h3 {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: var(--region-color);
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
}
.jhi-region-net-head h3 i { font-size: var(--fs-base, 16px); }
.jhi-region-net-head a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
}
.jhi-region-net-head a:hover { color: var(--region-color); }
.jhi-region-net-head a i { font-size: var(--fs-xs, 14px); }

.jhi-region-net .jhi-card-lead .jhi-photo { aspect-ratio: 4 / 3; }
.jhi-region-net .jhi-card-foot strong { font-size: var(--fs-md, 17px); }

.jhi-region-net-lines {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.jhi-region-net-lines li {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 0;
  border-top: 1px dotted #cbd5e1;
  min-width: 0;
}
.jhi-region-net-lines li:first-child { border-top: 0; padding-top: 2px; }
.jhi-region-net-lines li a {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--jhi-ink);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
  line-height: 1.4;
}
.jhi-region-net-lines li em {
  flex: 0 0 auto;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 600;
  font-style: normal;
  white-space: nowrap;
}

.jhi-local-utility {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid var(--jhi-line);
  background: #fff;
}

.jhi-chip-row,
.jhi-issue-tags,
.jhi-local-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.jhi-chip-row a,
.jhi-issue-tags a,
.jhi-local-cta a {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 13px;
  border-radius: 999px;
  font-size: var(--fs-sm, 15px);
  font-weight: 900;
}

.jhi-chip-row a {
  border: 1px solid #cbd5e1;
  color: #0f172a;
  background: #fff;
}

.jhi-issue-tags a {
  background: #eff6ff;
  color: var(--jhi-brand);
}

.jhi-local-cta {
  padding-top: 4px;
}

.jhi-local-cta a {
  border-radius: 8px;
  background: var(--jhi-ink);
  color: #fff !important;
}

.jhi-latest-list > a {
  display: block;
  padding: 11px 0;
  border-bottom: 1px dotted var(--jhi-line);
}

.jhi-latest-list strong {
  display: block;
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.42;
}

.jhi-latest-list span {
  display: block;
  margin-top: 4px;
  color: var(--jhi-muted);
  font-size: var(--fs-xs, 14px);
  font-weight: 700;
}

.jhi-special-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}

.jhi-special-card {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--jhi-line);
  border-top: 4px solid var(--jhi-brand);
  background: #fff;
}

.jhi-special-card--incident-watch {
  border-top-color: var(--jhi-accent);
}

.jhi-special-card--election-special {
  border-top-color: #7c3aed;
}

.jhi-special-card--issue-now {
  border-top-color: #0891b2;
}

.jhi-special-top span {
  color: var(--jhi-muted);
  font-size: var(--fs-xs, 14px);
  font-weight: 800;
}

.jhi-special-top h3 {
  margin: 4px 0 12px;
  color: var(--jhi-ink);
  font-size: var(--fs-lg, 18px);
  font-weight: 900;
  letter-spacing: -0.02em;
}

/* 공용 카드 lead — special / region-net 등 photo+badges → foot 패턴 SSOT */
.jhi-card-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  grid-template-areas:
    "photo badges"
    "foot  foot";
  align-content: start;
  column-gap: 10px;
  row-gap: 4px;
  text-decoration: none;
}
.jhi-card-lead .jhi-photo {
  grid-area: photo;
  align-self: stretch;
  min-height: 70px;
  border-radius: 6px;
  margin: 0;
}
.jhi-card-lead .jhi-badges {
  grid-area: badges;
  align-self: start;
  margin: 0;
}
.jhi-card-lead .jhi-card-foot {
  grid-area: foot;
}

.jhi-special-main {
  padding-bottom: 12px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--jhi-line);
}
.jhi-special-main .jhi-photo {
  aspect-ratio: 16 / 10;
}
.jhi-special-main .jhi-card-foot strong {
  font-size: var(--fs-base, 16px);
  line-height: 1.32;
}

.jhi-special-card ul,
.jhi-issue-board-grid {
  margin: 0;
  padding: 0;
  list-style: none;
}

.jhi-special-card li {
  position: relative;
  padding: 7px 0 7px 11px;
  border-bottom: 1px dotted var(--jhi-line);
  font-size: var(--fs-sm, 15px);
  font-weight: 800;
  line-height: 1.42;
}

.jhi-special-card li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 1em;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: var(--jhi-accent);
}

.jhi-special-card li:last-child {
  border-bottom: 0;
}

.jhi-issue-board-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.jhi-issue-board-grid article {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--jhi-line);
  background: var(--jhi-soft);
}

.jhi-issue-name {
  display: inline-flex;
  margin-bottom: 10px;
  color: var(--jhi-brand);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
}

.jhi-issue-title {
  display: block;
  color: var(--jhi-ink);
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.42;
}

.jhi-issue-board-grid span,
.jhi-issue-board-grid p {
  display: block;
  margin: 6px 0 0;
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
  line-height: 1.5;
}

.jhi-photo-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.jhi-photo-grid a {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 210px;
  background: var(--jhi-soft) center / cover no-repeat;
  overflow: hidden;
}

.jhi-photo-grid a::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(0, 0, 0, 0.78));
}

.jhi-photo-grid span {
  position: relative;
  z-index: 1;
  padding: 14px;
  color: #fff;
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.38;
}

.jhi-triple {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
}

.jhi-opinion article {
  padding: 12px 0;
  border-bottom: 1px solid var(--jhi-line);
}

.jhi-opinion article span,
.jhi-citizen a span,
.jhi-media a span {
  color: var(--jhi-muted);
  font-size: var(--fs-sm, 15px);
  font-weight: 700;
}

.jhi-opinion h3 {
  margin: 5px 0 6px;
  font-size: var(--fs-md, 17px);
  font-weight: 900;
  line-height: 1.4;
}

.jhi-opinion p {
  margin: 0;
  color: #475569;
  font-size: var(--fs-sm, 15px);
  line-height: 1.65;
}

.jhi-citizen a,
.jhi-media a {
  display: block;
  padding: 12px 0;
  border-bottom: 1px dotted var(--jhi-line);
}

.jhi-citizen strong,
.jhi-media strong {
  display: block;
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.4;
}

.jhi-empty {
  margin: 0 0 12px;
  color: var(--jhi-muted);
  font-size: var(--fs-base, 16px);
  font-weight: 700;
  line-height: 1.6;
}

.jhi-cta {
  display: inline-flex;
  align-items: center;
  min-height: 40px;
  padding: 0 14px;
  border-radius: 4px;
  background: var(--jhi-brand);
  color: #fff !important;
  font-size: var(--fs-md, 17px);
  font-weight: 900;
}

.jhi-more-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px 22px;
}

.jhi-more-grid .jhi-photo {
  aspect-ratio: 4 / 3;
  margin-bottom: 10px;
}

.jhi-more-grid h3 {
  margin: 6px 0 8px;
  font-size: var(--fs-base, 16px);
  font-weight: 900;
  line-height: 1.42;
}

@media (max-width: 1024px) {
  .jhi-news-gnb {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }

  .jhi-hot-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .jhi-fun-grid {
    grid-template-columns: 1fr;
  }

  .jhi-hero {
    grid-template-columns: 1fr 1fr;
  }

  .jhi-side-rail {
    grid-column: 1 / -1;
  }

  .jhi-category-matrix,
  .jhi-special-grid,
  .jhi-issue-board-grid,
  .jhi-more-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .jhi-split,
  .jhi-triple {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .jhi-wrap {
    padding: 16px 0 48px;
  }

  .jhi-location-switcher {
    align-items: stretch;
    flex-direction: column;
  }

  .jhi-home-switch {
    min-width: 0;
    width: 100%;
  }

  .jhi-news-gnb {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .jhi-news-gnb-link {
    min-height: 42px;
    font-size: var(--fs-base, 16px);
  }

  .jhi-news-lnb {
    left: 0;
    right: auto;
    width: min(220px, 92vw);
  }

  .jhi-editor-line {
    gap: 10px;
    margin-bottom: 16px;
  }

  .jhi-editor-line strong {
    padding: 0 10px;
  }

  .jhi-editor-scroll {
    gap: 18px;
  }

  .jhi-hot-head {
    align-items: flex-start;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    padding: 10px 12px;
  }

  .jhi-hot-cards,
  .jhi-region-teaser-grid {
    grid-template-columns: 1fr;
  }

  .jhi-hot-card:hover,
  .jhi-hot-card:focus-visible {
    transform: none;
  }

  .jhi-action-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .jhi-hero,
  .jhi-wing-grid,
  .jhi-split,
  .jhi-triple {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .jhi-hero-main h1 {
    font-size: var(--fs-2xl, 24px);
  }

  .jhi-hero-main p {
    font-size: var(--fs-base, 16px);
  }

  .jhi-wing-grid,
  .jhi-hero {
    padding-bottom: 24px;
    margin-bottom: 24px;
  }

  .jhi-category-matrix,
  .jhi-local-grid,
  .jhi-special-grid,
  .jhi-issue-board-grid,
  .jhi-photo-grid,
  .jhi-more-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
  }

  .jhi-photo-grid a {
    min-height: 170px;
  }
}

@media (max-width: 430px) {
  .jhi-home-switch {
    grid-template-columns: 1fr;
  }

  .jhi-hot-card {
    grid-template-columns: 22px 46px minmax(0, 1fr);
  }

  .jhi-hot-thumb {
    width: 46px;
    height: 46px;
  }

  .jhi-action-grid {
    grid-template-columns: 1fr;
  }

  .jhi-news-gnb {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .jhi-category-matrix,
  .jhi-local-grid,
  .jhi-special-grid,
  .jhi-issue-board-grid,
  .jhi-photo-grid,
  .jhi-more-grid {
    grid-template-columns: 1fr;
  }

  .jhi-hero-stack article {
    grid-template-columns: 92px minmax(0, 1fr);
  }
}
