/* gnindexlab_home_v1 (2026-09-01) — §1 색·바탕, §2 반응형, §3 대문, §4 목록, §5 푸터 */

:root{
  --gn-bg:#0B0E13;
  --gn-card:#11151C;
  --gn-text:#E6E8EB;
  --gn-text-sub:#9AA3AE;
  --gn-text-faint:#6F7783;
  --gn-gold:#E8B04B;
  --gn-up:#4ADE80;
  --gn-down:#F87171;
  --gn-maxw:1180px;
}

@font-face{
  font-family:'Pretendard';
  src:url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/woff2/Pretendard-Regular.woff2') format('woff2');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Pretendard';
  src:url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/woff2/Pretendard-Bold.woff2') format('woff2');
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Pretendard';
  src:url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/woff2/Pretendard-SemiBold.woff2') format('woff2');
  font-weight:600; font-style:normal; font-display:swap;
}

html{ overflow-x:hidden; }
body{
  background:var(--gn-bg) !important;
  color:var(--gn-text) !important;
  font-family:'Pretendard','Noto Sans KR',-apple-system,BlinkMacSystemFont,sans-serif !important;
  overflow-wrap:anywhere;
  max-width:100vw;
  overflow-x:hidden;
  min-width:0;
}
body > *{ min-width:0; box-sizing:border-box; }
img, svg{ max-width:100%; }
body.home{ background:var(--gn-bg) !important; }
a{ color:inherit; }

.gn-num, .gn-tnum{
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}

/* ══════════════════════════════════════════════════════════════════
   gnindexlab_iconlink_v1 (2026-09-01)
   §1 아이콘 · §2 클릭 표시 · §3 갱신 문구 · §4 링크 색 · §5 메타 블록
   ══════════════════════════════════════════════════════════════════ */

:root{
  --gn-gold-visited:#B8863A;
  --gn-gold-hover:#F5C86A;
  --gn-card-hover:#171C25;
}

/* ── §1 Lucide 아이콘 공통 ────────────────────────────────────────
   색은 stroke="currentColor" 이므로 color 로 정한다.
   숫자보다 한 톤 어둡게 보이도록 opacity 0.85. */
.gn-ico{
  color:var(--gn-gold);
  opacity:0.85;
  display:inline-block;
  vertical-align:middle;
  flex:0 0 auto;
}

/* ── §3 갱신 문구 — 큰 숫자 바로 아래 ─────────────────────────────
   is-stale = 마지막 갱신이 24시간 넘게 낡음(거짓 최신 방지로 회색). */
.gn-updated-line{
  margin:10px 0 0;
  font-size:13px;
  color:var(--gn-text-sub);
}
.gn-updated-line.is-stale{ color:var(--gn-text-faint); }

/* ── §2-3 계기판 아래 안내 한 줄 ─────────────────────────────────── */
.gn-dash-note{
  margin:-16px 0 28px;
  font-size:13px;
  color:var(--gn-text-sub);
}

/* ── §2-2 '상세 ›' 알약 ───────────────────────────────────────────
   금빛 1px 테두리 + 금빛 글씨, 배경 없음.
   데스크톱은 은은하게 두었다가 줄에 마우스를 올리면 또렷해지고,
   hover 가 없는 기기(모바일)에서는 항상 또렷하게 보인다(아래 @media). */
.gn-pill{
  flex:0 0 auto;
  margin-left:10px;
  padding:2px 10px;
  font-size:13px;
  line-height:1.5;
  color:var(--gn-gold);
  border:1px solid var(--gn-gold);
  border-radius:999px;
  background:none;
  white-space:nowrap;
  opacity:0.62;
  transition:opacity .12s ease;
}
.is-link:hover .gn-pill{ opacity:1; }

@media (hover: none){
  .gn-pill{ opacity:1; }   /* 모바일은 hover 가 없으므로 항상 보이게 */
}

/* ── §2-2 줄 전체 클릭 ────────────────────────────────────────────
   .is-link  = 연결되는 줄 (커서 pointer, 올리면 배경 한 단계 밝아짐)
   .is-empty = '오늘 발행 없음' 줄 (클릭 막음 — 눌러서 빈 페이지가 나오면 더 헷갈린다) */
.gn-bar-row.is-link, .gn-brief-row.is-link{ cursor:pointer; }
.gn-bar-row.is-link:hover, .gn-brief-row.is-link:hover{
  background:var(--gn-card-hover);
}
.gn-bar-row.is-empty, .gn-brief-row.is-empty{
  cursor:default;
  color:var(--gn-text-faint);
}
.gn-bar-row.is-empty .gn-bar-label,
.gn-brief-row.is-empty .gn-brief-title{ color:var(--gn-text-faint); }
.gn-bar-row.is-empty .gn-ico,
.gn-brief-row.is-empty .gn-ico{ color:var(--gn-text-faint); opacity:0.6; }
.gn-bar-none{ font-size:13px; color:var(--gn-text-faint); }

/* ── 상단 갱신시각 (iconlink_v1 §3에서 대문 출력은 걷어냈다.
   .gn-updated-bar 를 쓰는 화면이 다시 생길 경우를 위해 규칙만 남겨 둔다) ── */
.gn-updated-bar{
  max-width:var(--gn-maxw);
  width:100%;
  min-width:0;
  box-sizing:border-box;
  margin:0 auto;
  padding:6px 24px 0;
  text-align:right;
  font-size:12.5px;
  color:var(--gn-text-faint);
  overflow-wrap:anywhere;
}

/* ── 전체 컨테이너 ───────────────────────────────────────────── */
.gn-dash{
  max-width:var(--gn-maxw);
  margin:0 auto;
  padding:28px 24px 56px;
  color:var(--gn-text);
}

/* ── ②대표 숫자 ─────────────────────────────────────────────── */
.gn-headline{
  text-align:center;
  padding:20px 16px 28px;
}
.gn-headline .gn-hl-label{
  font-size:15px;
  color:var(--gn-text-sub);
  margin:0 0 10px;
}
.gn-headline .gn-hl-value{
  font-size:56px;
  font-weight:700;
  line-height:1.1;
  color:var(--gn-text);
}
.gn-headline .gn-hl-unit{
  font-size:22px;
  font-weight:500;
  color:var(--gn-text-sub);
  margin-left:4px;
}
.gn-headline .gn-hl-diff{
  display:inline-block;
  margin-left:12px;
  font-size:18px;
  font-weight:600;
  vertical-align:middle;
}
.gn-headline .gn-hl-rule{
  width:64px;
  height:3px;
  background:var(--gn-gold);
  margin:14px auto 0;
  border-radius:2px;
}

.gn-up{ color:var(--gn-up); }
.gn-down{ color:var(--gn-down); }
.gn-flat{ color:var(--gn-text-faint); }

/* ── 공통 그리드: 넓으면 여러 칸, 좁으면 자동 접힘 (같은 화면, 폭만 반응) ── */
.gn-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));
  gap:12px;
  margin:0 0 28px;
}
.gn-grid-4{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));
  gap:12px;
  margin:0 0 8px;
}

.gn-card{
  background:var(--gn-card);
  border-radius:14px;
  padding:18px 16px;
}
.gn-card .gn-card-icon{
  color:var(--gn-gold);
  font-size:20px;
  line-height:1;
  margin-bottom:8px;
}
.gn-card .gn-card-label{
  font-size:13px;
  color:#C8CDD4;
  margin-bottom:6px;
}
.gn-card .gn-card-value{
  font-size:26px;
  font-weight:700;
  color:var(--gn-text);
}
.gn-card .gn-card-value.gn-gold{ color:var(--gn-gold); }
.gn-card .gn-card-diff{
  font-size:13px;
  font-weight:600;
  margin-left:6px;
}
.gn-card .gn-card-asof{
  margin-top:10px;
  font-size:11.5px;
  color:var(--gn-text-faint);
}
/* 2026-09-01: 발행이 밀렸다가 한꺼번에 반영된 소급분임을 알리는 배지 */
.gn-backlog-badge{
  margin-top:8px;
  font-size:11px;
  color:var(--gn-gold);
  background:rgba(232,176,75,0.12);
  border-radius:6px;
  padding:3px 7px;
  display:inline-block;
}
.gn-headline .gn-hl-diff.gn-backlog-badge{
  display:inline-block;
  margin-left:12px;
  vertical-align:middle;
  font-weight:600;
}
.gn-card .gn-card-prep{
  font-size:22px;
  font-weight:600;
  color:var(--gn-text-faint);
}

/* ── ③오늘 숫자 5칸 — gnindexlab_step1_v1 §4(안 A) 어제 대비 가로 막대 ──
   막대=금빛, 눈금(어제 값 위치)=회색, 증가/감소 색은 기존 .gn-up/.gn-down 재사용. */
.gn-bars{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0 0 28px;
}
.gn-bar-row{
  display:block;
  background:var(--gn-card);
  border-radius:14px;
  padding:16px 18px;
  text-decoration:none;
  color:inherit;
}
.gn-bar-top{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
/* iconlink_v1 §1: 임시 도형(글꼴 문자) → 20px Lucide SVG. 자리 폭을 아이콘에 맞춘다. */
.gn-bar-icon{
  color:var(--gn-gold);
  flex:0 0 auto;
  width:20px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.gn-bar-label{
  font-size:13px;
  color:#C8CDD4;
  flex:1 1 auto;
  min-width:0;
}
.gn-bar-num{
  flex:0 0 auto;
  text-align:right;
  white-space:nowrap;
}
.gn-bar-value{
  font-size:20px;
  font-weight:700;
  color:var(--gn-text);
}
.gn-bar-diff{
  margin-left:6px;
  font-size:13px;
  font-weight:600;
}
.gn-bar-track{
  position:relative;
  height:10px;
  border-radius:5px;
  background:rgba(255,255,255,0.08);
  overflow:visible;
}
.gn-bar-fill{
  position:absolute;
  left:0; top:0; bottom:0;
  border-radius:5px;
  background:var(--gn-gold);
  min-width:3px;
}
.gn-bar-tick{
  position:absolute;
  top:-3px;
  bottom:-3px;
  width:2px;
  background:#8E97A2;
  transform:translateX(-1px);
}

/* ── gauge_barline_v1 (2026-09-18) — 자기 시계열 대비 막대. 꺾은선과 병행.
     코너간 비교 자가 아니므로 옛 막대(.gn-bar-track)와 다른 눈금/색을 쓴다. */
.gn-barline-track{
  position:relative;
  height:4px;
  border-radius:2px;
  background:#232833;
  overflow:hidden;
}
.gn-barline-fill{
  position:absolute;
  left:0; top:0; bottom:0;
  border-radius:2px;
  background:#E8B04B;
  min-width:2px;
}

/* ── ⑤굵은 구분선 ───────────────────────────────────────────── */
.gn-hr{
  border:0;
  border-top:3px solid #FFFFFF;
  opacity:0.92;
  margin:8px 0 32px;
}

/* ── ⑥오늘의 핫데이터 ───────────────────────────────────────── */
.gn-hot{
  background:var(--gn-card);
  border-radius:14px;
  padding:22px 20px;
  margin-bottom:28px;
}
.gn-hot h2{
  font-size:15px;
  color:var(--gn-text-sub);
  margin:0 0 14px;
  font-weight:600;
}
.gn-hot-block{ margin-bottom:16px; }
.gn-hot-block:last-child{ margin-bottom:0; }
.gn-hot-block h3{
  font-size:13px;
  color:var(--gn-gold);
  margin:0 0 8px;
  font-weight:600;
}
.gn-hot-block ul{
  margin:0; padding:0; list-style:none;
}
.gn-hot-block li{
  font-size:14.5px;
  color:var(--gn-text);
  line-height:1.7;
  padding-left:14px;
  position:relative;
}
.gn-hot-block li::before{
  content:"·";
  position:absolute; left:0; color:var(--gn-text-faint);
}

/* ── ⑦집중 분석 ─────────────────────────────────────────────── */
.gn-feature{
  border-left:4px solid var(--gn-gold);
  background:var(--gn-card);
  border-radius:0 14px 14px 0;
  padding:18px 20px;
  margin-bottom:28px;
}
.gn-feature .gn-feature-date{
  font-size:12.5px;
  color:var(--gn-text-faint);
  margin-bottom:6px;
}
.gn-feature .gn-feature-title{
  font-size:19px;
  font-weight:700;
  margin:0 0 8px;
  color:var(--gn-text);
}
.gn-feature .gn-feature-title a{ text-decoration:none; }
.gn-feature .gn-feature-excerpt{
  font-size:14.5px;
  color:var(--gn-text-sub);
  line-height:1.6;
  margin:0 0 10px;
}
.gn-feature .gn-feature-more{
  font-size:13.5px;
  color:var(--gn-gold);
  font-weight:600;
  text-decoration:none;
}

/* ── ⑧분야별 브리핑 줄 ──────────────────────────────────────── */
.gn-briefing{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.gn-brief-row{
  display:flex;
  align-items:center;
  gap:14px;
  padding:16px 16px;
  background:var(--gn-card);
  border-radius:12px;
  text-decoration:none;
  color:inherit;
}
.gn-brief-row + .gn-brief-row{ margin-top:8px; }
.gn-brief-row .gn-brief-icon{
  color:var(--gn-gold);
  flex:0 0 auto;
  width:24px;
  height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.gn-brief-row .gn-brief-body{ flex:1 1 auto; min-width:0; }
.gn-brief-row .gn-brief-title{
  font-size:15px;
  font-weight:700;
  color:var(--gn-text);
  margin:0 0 3px;
}
.gn-brief-row .gn-brief-line{
  font-size:13.5px;
  color:var(--gn-text-sub);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.gn-brief-row .gn-brief-arrow{
  flex:0 0 auto;
  color:var(--gn-text-faint);
  font-size:18px;
}
/* iconlink_v1 §2: '›' 화살표는 '상세 ›' 알약으로 대체됐다.
   글이 없어 클릭을 막은 줄(.is-empty)까지 밝아지지 않게 .is-link 로 한정한다. */
.gn-brief-row.is-link:hover .gn-brief-title{ color:var(--gn-gold); }

.gn-section-title{
  font-size:14px;
  font-weight:600;
  color:var(--gn-text-sub);
  margin:0 0 12px;
}

/* ── §4 카테고리 목록 페이지 ─────────────────────────────────── */
.gn-archive{
  max-width:760px;
  margin:0 auto;
  padding:28px 24px 64px;
}
.gn-archive-title{
  font-size:24px;
  font-weight:700;
  color:var(--gn-text);
  margin:0 0 24px;
  text-align:center;
}
.gn-archive-item{
  background:var(--gn-card);
  border-radius:14px;
  padding:20px 22px;
  margin-bottom:14px;
}
.gn-archive-item .gn-ai-title{
  font-size:17px;
  font-weight:700;
  margin:0 0 8px;
}
.gn-archive-item .gn-ai-title a{ text-decoration:none; color:var(--gn-text); }
.gn-archive-item .gn-ai-title a:hover{ color:var(--gn-gold); }
.gn-archive-item .gn-ai-excerpt{
  font-size:14px;
  line-height:1.65;
  color:var(--gn-text-sub);
  margin:0 0 10px;
}
.gn-archive-item .gn-ai-date{
  font-size:12px;
  color:var(--gn-text-faint);
}
.gn-pagination{
  display:flex;
  justify-content:center;
  gap:10px;
  margin-top:24px;
}
.gn-pagination a, .gn-pagination span{
  color:var(--gn-text-sub);
  font-size:13.5px;
  text-decoration:none;
  padding:6px 10px;
}
.gn-pagination .current{ color:var(--gn-gold); font-weight:700; }

/* ── 코너 표(wp-block-table) 공통 스타일 — gnindexlab_step1_v1 표 스타일 일괄 개선(2026-09-01) ──
   부동산·기업공시·채용·인구·축제·창업 등 모든 발행글의 표에 공통 적용.
   ①숫자칸 줄바꿈 금지 ②숫자 오른쪽 정렬·자릿수 맞춤 ③좁은 화면에서 가로로 밀어 보기
   ④줄무늬로 가로줄 시선 유도 ⑤열 이름 두 줄 꺾임 방지(여백·크기) */
.entry-content .wp-block-table{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin:0 0 1.6em;
}
.entry-content .wp-block-table table{
  width:auto;
  min-width:100%;
  border-collapse:collapse;
}
.entry-content .wp-block-table th,
.entry-content .wp-block-table td{
  padding:9px 12px;
  font-size:14px;
  line-height:1.5;
  vertical-align:top;
}
.entry-content .wp-block-table th{
  white-space:nowrap;
  font-weight:700;
  text-align:left;
  background:rgba(255,255,255,0.04);
}
.entry-content .wp-block-table tbody tr:nth-child(even){
  background:rgba(255,255,255,0.03);
}
/* 숫자 칸 — 표 생성 코드가 <td class="gn-num"> 로 직접 표시한 열에만 적용 */
.entry-content .wp-block-table .gn-num{
  white-space:nowrap;
  text-align:right;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1;
}
/* 회사명 등 '길어도 우선 넓게' 열 — 표 생성 코드가 <td class="gn-wide"> 로 표시한 열에만 적용 */
.entry-content .wp-block-table .gn-wide{
  white-space:normal;
  min-width:150px;
}

@media (max-width: 680px){
  .entry-content .wp-block-table th,
  .entry-content .wp-block-table td{
    padding:7px 10px;
    font-size:13px;
  }
  .entry-content .wp-block-table .gn-wide{ min-width:120px; }
}

/* 본문(단일 글) 가운데 정렬·폭 상한 — twentytwentyfive의 좌측 치우침 교정 */
.single .wp-block-post-content,
.single .entry-content{
  max-width:720px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* ── §2 반응형: 좁은 폭에서 칸 수 자동 감소 (레이아웃 구조는 그대로, minmax만 반응) ── */
body{ overflow-x:hidden; }
.gn-dash, .gn-archive{ overflow-x:hidden; }

@media (max-width: 680px){
  .gn-headline .gn-hl-value{ font-size:42px; }
  .gn-headline .gn-hl-diff{ display:block; margin:6px 0 0; }
  /* auto-fit이 3칸을 욱여넣다 넘치는 걸 막는다 — §2는 "2칸씩 접힘"을 명시했으므로 고정 2열 */
  .gn-grid{ grid-template-columns:repeat(2, 1fr); }
  .gn-grid-4{ grid-template-columns:repeat(2, 1fr); }
  .gn-dash{ padding:20px 14px 40px; }
  .gn-bar-row{ padding:14px 14px; }
  .gn-bar-label{ font-size:12.5px; }
  .gn-bar-value{ font-size:18px; }
  .gn-bar-diff{ font-size:12px; }
  /* 가로 폭 계산에 기대지 않고 아예 세로로 쌓는다 — 좁은 폭에서 가장 확실하게 안 넘친다 */
  .gn-brief-row{ flex-wrap:wrap; align-items:flex-start; row-gap:4px; }
  .gn-brief-row .gn-brief-body{ flex-basis:100%; order:3; }
  .gn-brief-row .gn-brief-line{
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    display:block;
  }
  .gn-updated-bar{
    padding:6px 14px 0;
    max-width:calc(100vw - 28px) !important;
    font-size:11px;
    box-sizing:border-box;
  }
  .gn-footer-line{
    max-width:calc(100vw - 32px) !important;
    min-width:0 !important;
    margin-left:auto !important;
    margin-right:auto !important;
    box-sizing:border-box;
  }
  .gn-footer-line, .gn-footer-line *{ min-width:0; }
}

/* ══════════════════════════════════════════════════════════════════
   gnindexlab_iconlink_v1 §1 헤더 메뉴 · §2 터치 · §4 링크 색 · §5 메타 블록
   ══════════════════════════════════════════════════════════════════ */

/* ── §1 헤더 메뉴 아이콘 16px ─────────────────────────────────────
   ★"모바일 헤더가 좁아지면 아이콘만 남고 글자가 줄어드는 식은 하지 말 것 — 글자 우선".
     그래서 좁은 폭에서는 글자가 아니라 아이콘 쪽을 지운다(아래 @media). */
.wp-block-navigation-item__content .gn-nav-ico{
  margin-right:6px;
  vertical-align:-3px;
}
.wp-block-navigation-item__content{ white-space:nowrap; }

@media (max-width: 900px){
  .wp-block-navigation-item__content .gn-nav-ico{ display:none; }
}

/* ── §2 터치 영역: 줄 높이 44px 이상 ─────────────────────────────── */
.gn-bar-row, .gn-brief-row{ min-height:44px; }

@media (max-width: 680px){
  /* 좁은 폭에서도 알약이 줄 밖으로 밀려나지 않게 자리를 지킨다 */
  .gn-bar-top{ flex-wrap:wrap; row-gap:6px; }
  .gn-bar-row{ padding:14px 14px; min-height:52px; }
  .gn-brief-row{ min-height:52px; }
  .gn-pill{ margin-left:8px; padding:2px 9px; }
  /* 브리핑 줄은 좁은 폭에서 본문이 아래로 내려가므로 알약을 제목 줄 오른쪽 끝에 붙인다 */
  .gn-brief-row .gn-pill{ margin-left:auto; order:2; }
  .gn-dash-note{ margin:-12px 0 24px; }
}

/* ── §4 링크 색 규칙 (사이트 전역) ────────────────────────────────
   지금까지 본문 링크가 본문 글씨와 같은 색이라 어디가 링크인지 보이지 않았다.
   대문 계기판·브리핑 줄처럼 '줄 전체가 링크'인 곳은 이 규칙에서 뺀다
   (그 줄들은 알약과 배경 변화로 이미 링크임을 알린다). */
.entry-content a,
.wp-block-post-content a,
.gn-archive-item .gn-ai-excerpt a{
  color:var(--gn-gold);
  text-decoration:underline;
  text-underline-offset:2px;
}
.entry-content a:visited,
.wp-block-post-content a:visited{ color:var(--gn-gold-visited); }
.entry-content a:hover,
.wp-block-post-content a:hover{ color:var(--gn-gold-hover); }

/* 외부로 나가는 링크 — 글자 뒤에 ↗ 자동 부착.
   판정은 PHP(gn_mark_external_links)가 하고 여기서는 표시만 한다. */
.entry-content a.gn-ext::after,
.wp-block-post-content a.gn-ext::after{
  content:"\2197";
  margin-left:2px;
  font-size:0.9em;
  text-decoration:none;
  display:inline-block;
}

/* CSV 다운로드 — 링크가 아니라 버튼.
   발행기가 붙이는 첨부 목록(<h3>그날 원자료 (CSV)</h3><ul><li><a …csv>)에 걸린다. */
.entry-content a[href$=".csv"],
.wp-block-post-content a[href$=".csv"]{
  display:inline-block;
  color:var(--gn-gold);
  text-decoration:none;
  border:1px solid var(--gn-gold);
  border-radius:8px;
  padding:8px 14px 8px 36px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23E8B04B' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15V3'/%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E") no-repeat 13px center;
  line-height:1.4;
}
.entry-content a[href$=".csv"]:hover,
.wp-block-post-content a[href$=".csv"]:hover{
  color:var(--gn-gold-hover);
  border-color:var(--gn-gold-hover);
  background-color:rgba(232,176,75,0.08);
}
.entry-content a[href$=".csv"]:visited{ color:var(--gn-gold); }
/* 버튼이 들어간 목록은 불릿을 없앤다(버튼 앞의 점이 어색하다) */
.entry-content ul li > a[href$=".csv"]:only-child{ margin:2px 0; }
.entry-content li:has(> a[href$=".csv"]){ list-style:none; margin-left:-1em; }

/* 접이식 펼치기 — 지금은 맨 글씨라 접혀 있는 줄도 모른다. 금빛 테두리 박스로. */
.entry-content details,
.wp-block-post-content details{
  margin:0 0 1.6em;
}
.entry-content details > summary,
.wp-block-post-content details > summary{
  display:block;
  cursor:pointer;
  color:var(--gn-gold);
  border:1px solid var(--gn-gold);
  border-radius:8px;
  padding:10px 14px;
  font-size:14px;
  list-style:none;
  user-select:none;
}
.entry-content details > summary::-webkit-details-marker,
.wp-block-post-content details > summary::-webkit-details-marker{ display:none; }
.entry-content details > summary::after,
.wp-block-post-content details > summary::after{
  content:" \25BE";
  float:right;
}
.entry-content details[open] > summary::after,
.wp-block-post-content details[open] > summary::after{ content:" \25B4"; }
.entry-content details > summary:hover,
.wp-block-post-content details > summary:hover{
  color:var(--gn-gold-hover);
  border-color:var(--gn-gold-hover);
  background:rgba(232,176,75,0.08);
}
.entry-content details[open] > summary,
.wp-block-post-content details[open] > summary{ margin-bottom:12px; }

/* ── §5 글 안쪽 메타 블록 (FRED 방식) ─────────────────────────────
   요약 3~4줄 바로 아래, 카드 한 칸에 라벨-값 4~5줄. */
.gn-meta{
  background:var(--gn-card);
  border-radius:12px;
  padding:16px 18px;
  margin:0 0 1.8em;
}
.gn-meta-row{
  display:flex;
  gap:14px;
  font-size:14px;
  line-height:1.9;
}
.gn-meta-row .gn-meta-k{
  flex:0 0 96px;
  color:var(--gn-text-faint);
}
.gn-meta-row .gn-meta-v{
  flex:1 1 auto;
  min-width:0;
  color:var(--gn-text);
}
@media (max-width: 680px){
  .gn-meta{ padding:14px 14px; }
  .gn-meta-row{ font-size:13.5px; gap:10px; }
  .gn-meta-row .gn-meta-k{ flex-basis:82px; }
}

/* ══════════════════════════════════════════════════════════════════
   gnindexlab_front4_v1 (2026-09-05) — 메인기사 + 4파트 제목 줄
   계기판과 기존 목록 사이에만 들어간다. 기존 규칙은 하나도 덮어쓰지 않는다.
   반응형은 한 벌(680px 한 지점)로 끝낸다.
   ══════════════════════════════════════════════════════════════════ */

.gn-main-article{
  display:block;
  position:relative;
  margin:22px 0 18px;
  padding:22px 24px 20px;
  background:var(--gn-card);
  border:1px solid rgba(232,176,75,0.22);
  border-left:3px solid var(--gn-gold);
  border-radius:10px;
  text-decoration:none;
  transition:background .15s ease, border-color .15s ease;
}
.gn-main-article:hover{
  background:var(--gn-card-hover);
  border-color:rgba(232,176,75,0.45);
}
.gn-main-kicker{
  display:inline-block;
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--gn-gold);
  margin-bottom:8px;
}
.gn-main-article.is-old .gn-main-kicker{ color:var(--gn-text-sub); }
.gn-main-title{
  margin:0 0 10px;
  font-size:28px;
  line-height:1.32;
  font-weight:700;
  color:var(--gn-text);
  letter-spacing:-.01em;
}
.gn-main-article:hover .gn-main-title{ color:var(--gn-gold-hover); }
.gn-main-excerpt{
  margin:0 0 12px;
  font-size:15px;
  line-height:1.72;
  color:var(--gn-text-sub);
}
.gn-main-article .gn-pill{ margin-left:0; }

/* ── 4파트 제목 줄 ── */
.gn-part4{ margin:0 0 26px; }
.gn-part-row{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  padding:10px 14px;
  background:var(--gn-card);
  border:1px solid rgba(255,255,255,0.05);
  border-radius:8px;
  text-decoration:none;
  color:inherit;
}
.gn-part-row + .gn-part-row{ margin-top:6px; }
.gn-part-row.is-link{ cursor:pointer; }
.gn-part-row.is-link:hover{
  background:var(--gn-card-hover);
  border-color:rgba(232,176,75,0.28);
}
.gn-part-icon{
  flex:0 0 auto;
  display:inline-flex;
  color:var(--gn-text-sub);
}
.gn-part-label{
  flex:0 0 auto;
  min-width:64px;
  font-size:12px;
  font-weight:600;
  color:var(--gn-gold);
  letter-spacing:.02em;
}
.gn-part-title{
  flex:1 1 auto;
  min-width:0;
  font-size:15px;
  line-height:1.5;
  color:var(--gn-text);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.gn-part-row.is-link:hover .gn-part-title{ color:var(--gn-gold); }
.gn-part-when{
  flex:0 0 auto;
  font-size:12px;
  color:var(--gn-text-faint);
  font-variant-numeric:tabular-nums;
}
/* 오늘 글이 없는 파트 — 회색으로 떨군다(빈 줄로 두지 않는다). */
.gn-part-row.is-old .gn-part-label,
.gn-part-row.is-old .gn-part-title{ color:var(--gn-text-faint); }
.gn-part-row.is-old .gn-part-icon{ opacity:.55; }
.gn-part-row.is-empty{ cursor:default; }

@media (max-width: 680px){
  .gn-main-article{ margin:18px 0 14px; padding:18px 16px 16px; }
  .gn-main-title{ font-size:21px; }
  .gn-main-excerpt{ font-size:14px; line-height:1.65; }
  .gn-part-row{
    flex-wrap:wrap;
    row-gap:2px;
    min-height:52px;
    padding:10px 12px;
  }
  .gn-part-label{ min-width:0; }
  .gn-part-when{ margin-left:auto; }
  .gn-part-title{
    flex-basis:100%;
    order:3;
    white-space:normal;
    overflow:visible;
    font-size:14px;
    line-height:1.5;
  }
}

/* ══════════════════════════════════════════════════════════════════
   gnindexlab_front_top_v1 (2026-09-05) — 대문기사 기계 문장 + 파트별 3~4줄
   front4 블록 위에 얹는다. 계기판·기존 목록 규칙은 건드리지 않는다.
   ══════════════════════════════════════════════════════════════════ */

/* §2 왜 뽑혔는지 한 줄 — 판단어 없이 숫자만 담는 줄이라 담백하게 둔다. */
.gn-main-why{
  margin:0 0 10px;
  padding:8px 12px;
  background:rgba(232,176,75,0.07);
  border-left:2px solid rgba(232,176,75,0.55);
  border-radius:0 6px 6px 0;
  font-size:13px;
  line-height:1.6;
  color:var(--gn-text);
  font-variant-numeric:tabular-nums;
}

/* §3 파트 묶음 — 머리줄(파트명) + 제목 3~4줄 */
.gn-part-group{
  margin:0 0 12px;
  padding:10px 14px 8px;
  background:var(--gn-card);
  border:1px solid rgba(255,255,255,0.05);
  border-radius:8px;
}
.gn-part-group:last-child{ margin-bottom:0; }
.gn-part-head{
  display:flex;
  align-items:center;
  gap:8px;
  padding-bottom:6px;
  margin-bottom:4px;
  border-bottom:1px solid rgba(255,255,255,0.06);
}
.gn-part-group.is-old .gn-part-head .gn-part-label{ color:var(--gn-text-faint); }
.gn-part-group.is-old .gn-part-icon{ opacity:.55; }

/* 묶음 안에서는 줄마다 카드 배경을 다시 깔지 않는다(중첩되어 답답해진다). */
.gn-part-group .gn-part-row{
  background:transparent;
  border:0;
  border-radius:6px;
  padding:7px 6px;
  min-height:0;
  margin:0;
}
.gn-part-group .gn-part-row + .gn-part-row{
  margin-top:0;
  border-top:1px solid rgba(255,255,255,0.035);
}
.gn-part-group .gn-part-row.is-link:hover{
  background:var(--gn-card-hover);
  border-color:transparent;
}
.gn-part-group .gn-part-row.is-old .gn-part-title{ color:var(--gn-text-faint); }

@media (max-width: 680px){
  .gn-main-why{ font-size:12.5px; padding:8px 10px; }
  .gn-part-group{ padding:10px 12px 8px; }
  .gn-part-group .gn-part-row{
    flex-wrap:nowrap;
    align-items:flex-start;
    row-gap:0;
    min-height:0;
    padding:8px 4px;
  }
  .gn-part-group .gn-part-row .gn-part-title{
    flex:1 1 auto;
    flex-basis:auto;
    order:0;
    white-space:normal;
    font-size:14px;
  }
  .gn-part-group .gn-part-row .gn-part-when{
    margin-left:8px;
    padding-top:2px;
  }
}

/* ══════════════════════════════════════════════════════════════════
   gnindexlab_face2_v1 (2026-09-08) — 계기판 스파크라인 + 대문기사 카드
   되돌리기 = assets/dashboard.css.bak_face2_20260908
   기존 규칙은 하나도 덮어쓰지 않는다(새 클래스만 더한다).
   ══════════════════════════════════════════════════════════════════ */

/* §1 스파크라인 — 줄 높이를 밀어내지 않게 높이를 24px로 고정하고
   flex 안에서 줄어들지도 늘어나지도 않게 둔다(값 칸과 알약 사이 자리). */
.gn-spark-wrap{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  height:24px;
  margin-left:10px;
  line-height:0;
}
.gn-spark{
  display:block;
  width:96px;
  height:24px;
  overflow:visible;
}

/* §2 대문기사 카드 — 바탕 #11151C, 테두리 대신 밝기로 층을 낸다. */
.gn-main-article .gn-main-kpis{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 14px;
}
.gn-main-article .gn-kpi{
  flex:1 1 0;
  min-width:96px;
  padding:10px 14px;
  background:#11151C;
  border:0;
  border-radius:8px;
}
.gn-main-article .gn-kpi-value{
  display:block;
  font-size:26px;
  line-height:1.15;
  font-weight:700;
  color:var(--gn-gold);
  letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.gn-main-article .gn-kpi-label{
  display:block;
  margin-top:4px;
  font-size:12px;
  line-height:1.4;
  color:var(--gn-text-sub);
}
/* 제목은 2줄까지, 넘으면 말줄임 */
.gn-main-article .gn-main-title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

@media (max-width: 680px){
  /* 좁은 폭에서 스파크라인이 알약을 밀어내지 않게 한 단계 줄인다 */
  .gn-spark-wrap{ margin-left:8px; }
  .gn-spark{ width:72px; }
  /* 큰 숫자가 줄바꿈으로 깨지지 않게 2칸 고정 그리드로 접는다 */
  .gn-main-article .gn-main-kpis{ gap:8px; }
  .gn-main-article .gn-kpi{
    flex:1 1 calc(50% - 4px);
    min-width:0;
    padding:9px 11px;
  }
  .gn-main-article .gn-kpi-value{ font-size:24px; }
  .gn-main-article .gn-kpi-label{ font-size:11.5px; }
}

/* 2026-09-18 계기판 금색 막대 흐름 (herobar_flow_v1) */
.gn-headline .gn-hl-rule {
  background: linear-gradient(90deg,
      #6b5320 0%, #d4af37 35%, #ffe08a 50%, #d4af37 65%, #6b5320 100%);
  background-size: 300% 100%;
  animation: gnFlow 4s linear infinite;
}
@keyframes gnFlow {
  from { background-position: 100% 0; }
  to   { background-position: -100% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .gn-headline .gn-hl-rule { animation: none; }
}

/* ══ bizfix_v1 §2-③ (2026-09-21) — 글 화면 대표 이미지 좌우 잘림 ═══════════════
 * 대표 이미지는 발행기가 만든 OG 카드(1200x630)다. 그런데 부모 테마 twentytwentyfive 의
 * templates/single.html 8행이 post-featured-image 에 aspectRatio 3/2 를 줘서
 * 글 화면에서 aspect-ratio:3/2; width:100%; object-fit:cover 가 인라인으로 붙는다.
 * 1200x630(약 1.9:1)을 3:2 로 채우면 좌우가 각각 약 13% 잘려 "경남 기업"이 "남 기업"으로,
 * 푸터 "경남인덱스랩"이 "덱스랩"으로 보였다. 인라인 스타일이라 !important 로 덮는다.
 * 카드 원래 비율 그대로 전체를 보여 준다(자르지 않음). 되돌리려면 이 블록만 지우면 된다.
 * (부모 테마 파일은 손대지 않는다. 다른 규칙·본문 폭 제한은 건드리지 않았다.)
 */
.single .wp-block-post-featured-image img{
  aspect-ratio:1200/630 !important;
  height:auto !important;
  object-fit:contain !important;
}

/* ══ bizfix_v1 후속 (2026-09-21) — 카드가 있는 글에서만 위쪽 큰 제목을 숨긴다 ═══════
 * 글 화면 맨 위에는 테마 큰 제목(h1)과, 그 바로 아래 대표 이미지(코너명·제목이 들어간 골드 테두리
 * 카드)가 나란히 있어 제목이 두 번 보였다. 카드 이미지가 바로 뒤따르는 h1 만 숨긴다.
 * 대표 이미지가 없는 글(카드 없는 일반 글)은 h1 이 그대로 보인다. 글 본문·제목 데이터는 그대로다.
 * ★display:none 이 아니라 '시각적으로만' 숨긴다 — 카드 이미지의 alt 가 비어 있어서, display:none 이면
 *   화면낭독기·검색엔진이 글의 제목(h1)을 잃는다. 되돌리려면 이 블록만 지우면 된다.
 */
.single h1.wp-block-post-title:has(+ .wp-block-post-featured-image){
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:-1px !important;
  padding:0 !important;
  border:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
}

/* ══ postcard_v1 §2-① (2026-09-21) — 카드가 있는 글에서만 테마 큰 제목 숨김 ═══════════
 * 카드 이미지(gn_ogcard_*)가 바로 뒤따르는 글 제목(h1)만 숨긴다. 카드 없는 글은 제목 그대로.
 * 카드의 크기·테두리·모서리·폭은 건드리지 않는다. 되돌리려면 이 블록만 지우면 된다.
 */
.single h1.wp-block-post-title:has(+ .wp-block-post-featured-image img[src*="gn_ogcard"]){
  display:none;
}

/* autopub_stable_v1 (2026-09-22): 증감 숫자 옆 기준 표기(어제 대비) */
.gn-diff-ref{ margin-left:4px; font-size:11px; font-weight:400; color:var(--gn-text-sub); white-space:nowrap; }
@media (max-width:520px){ .gn-diff-ref{ display:none; } }
