/**
 * GP Newsroom — 뉴스/언론사형 레이아웃 스타일.
 *
 * 클래스 접두사 .gpnr-* 는 테마와 Newsroom Toolkit 플러그인이 공용으로 쓴다.
 * (카드·그리드·섹션 헤더 등 시각 컴포넌트는 여기서 단일 정의)
 */

:root {
	/* 타이포: bloter.net 시스템 한글 스택 정렬 */
	--gpnr-font-sans: -apple-system, "Apple SD Gothic Neo", "Helvetica Neue", Roboto, "Noto Sans KR", "Malgun Gothic", "맑은 고딕", dotum, Arial, sans-serif;
	/* 팔레트: bloter.net 디자인 토큰 */
	--gpnr-ink: #1e1e1e;          /* 본문 기본 잉크 (bloter) */
	--gpnr-ink-soft: #737373;     /* 보조/메타 텍스트 (bloter) */
	--gpnr-line: #e5e7eb;         /* 경계선 */
	--gpnr-bg-soft: #f5f6f7;      /* 옅은 배경 */
	--gpnr-accent: #cd1b5e;       /* bloter 시그니처 마젠타 */
	--gpnr-accent-dark: #a8154c;  /* 액센트 호버/딥 */
	--gpnr-accent-ink: #ffffff;
	--gpnr-radius: 6px;           /* bloter 는 라운드를 절제 */
	--gpnr-gap: clamp(16px, 2.2vw, 26px);
	--gpnr-maxw: 1200px;
}

/* ---------- 공통 컨테이너 ---------- */
.gpnr-section {
	max-width: var(--gpnr-maxw);
	margin-inline: auto;
	padding-inline: clamp(16px, 4vw, 32px);
	margin-block: clamp(28px, 5vw, 48px);
}

.gpnr-section__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 16px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--gpnr-ink);
}

/* bloter 식 섹션 타이틀: 액센트 좌측 바 + 굵은 제목 */
.gpnr-section__title {
	position: relative;
	margin: 0;
	padding-left: 14px;
	font-size: clamp(1.15rem, 2.4vw, 1.45rem);
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--gpnr-ink);
	line-height: 1.2;
}
.gpnr-section__title::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.12em;
	bottom: 0.12em;
	width: 4px;
	border-radius: 2px;
	background: var(--gpnr-accent);
}

.gpnr-section__more {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--gpnr-ink-soft);
	text-decoration: none;
	white-space: nowrap;
}
.gpnr-section__more:hover { color: var(--gpnr-accent); }

/* ---------- 카드 그리드 ---------- */
.gpnr-card-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--gpnr-gap);
}

.gpnr-card { min-width: 0; }

/* ---------- 자동 주입 래퍼: 컬럼/그리드 블로그 레이아웃 호환 ---------- */
/* GeneratePress 'Columns(그리드)' 블로그 레이아웃(body.generate-columns-activated)은
   글 루프를 .generate-columns-container(flex)로 감싼다. 자동 주입 블록이 그 안의
   한 컬럼으로 빨려 들어가 폭이 붕괴(카드 텍스트가 세로로 줄바꿈)되는 것을 막는다.
   1차 방어는 주입 훅 우선순위(5, 컨테이너보다 먼저 출력), 2차 방어가 이 CSS다.
   flex/float 어느 컬럼 방식이든 한 행 전체를 차지하도록 강제한다. */
.gpnr-home-inject {
	width: 100%;
	max-width: 100%;
	flex: 0 0 100%;
	float: none;
	clear: both;
}
/* 컬럼 그리드 안에 남더라도 음수 거터/마진을 상쇄해 가로 넘침 방지 */
.generate-columns-container > .gpnr-home-inject {
	margin-left: 0;
	padding-left: 0;
}
.gpnr-home-inject > .gpnr-section { min-width: 0; }
/* 주입된 슬라이더 밴드는 위쪽 여백을 줄여 헤더 바로 아래에 자연스럽게 붙인다 */
.gpnr-home-inject__slider { margin-block-start: clamp(12px, 2vw, 20px); }

/* ---------- 외부 커스텀 CSS 충돌 무력화(.site-main 강제 그리드) ---------- */
/* 일부 환경엔 'dinoa-news-core' 같은 커스텀 스니펫이 .site-main 을 2열 그리드로
   강제(display:grid !important; grid-template-columns:repeat(2,1fr))한다. 이는
   GeneratePress 컬럼 레이아웃·자동 주입과 충돌해 글 목록 컨테이너를 절반 폭 한 칸에
   가두고 카드 텍스트를 세로로 깨뜨린다. 더 높은 특정도로 정상 블록 흐름을 복원해
   GeneratePress 컬럼(.generate-columns-container)이 제 폭을 쓰도록 한다. */
body.blog main.site-main,
body.archive main.site-main {
	display: block !important;
	grid-template-columns: none !important;
	gap: 0 !important;
}

.gpnr-card__link {
	display: flex;
	flex-direction: column;
	height: 100%;
	text-decoration: none;
	color: inherit;
}

.gpnr-card__thumb {
	display: block;
	aspect-ratio: 3 / 2;
	background-size: cover;
	background-position: center;
	background-color: var(--gpnr-bg-soft);
	border-radius: var(--gpnr-radius);
	overflow: hidden;
}

.gpnr-card__body {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding-top: 12px;
}

.gpnr-card__eyebrow {
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gpnr-accent);
}

.gpnr-card__headline {
	font-family: var(--gpnr-font-sans);
	font-size: 1.02rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: -0.01em;
	color: var(--gpnr-ink);
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gpnr-card__link:hover .gpnr-card__headline { color: var(--gpnr-accent); }

.gpnr-card__date {
	font-size: 0.78rem;
	color: var(--gpnr-ink-soft);
}

/* ---------- 박스형 카드(.gpnr-card--boxed): 카테고리 섹션·관련기사 ---------- */
/* 글 목록 카드와 디자인을 교체 — 카테고리 카드는 흰 박스 + 발췌문 구성. */
.gpnr-card--boxed .gpnr-card__link {
	background: #ffffff;
	border: 1px solid var(--gpnr-line);
	border-radius: var(--gpnr-radius);
	overflow: hidden;
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.gpnr-card--boxed .gpnr-card__link:hover {
	border-color: #d7dade;
	box-shadow: 0 6px 18px -8px rgba(0,0,0,0.18);
	transform: translateY(-2px);
}
.gpnr-card--boxed .gpnr-card__thumb {
	border-radius: 0;
	aspect-ratio: 16 / 9;
}
.gpnr-card--boxed .gpnr-card__body {
	gap: 8px;
	padding: 14px 16px 18px;
}
.gpnr-card__excerpt {
	font-size: 0.86rem;
	line-height: 1.6;
	color: var(--gpnr-ink-soft);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* ---------- 단일 글: 메타 바 ---------- */
.single .entry-header .entry-meta { display: none; } /* GP 기본 메타 중복 제거 */

.gpnr-meta-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 16px;
	margin: 14px 0 6px;
}

.gpnr-eyebrow {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--gpnr-accent);
	color: var(--gpnr-accent-ink);
	font-size: 0.74rem;
	font-weight: 800;
	letter-spacing: 0.02em;
	text-decoration: none;
}

.gpnr-byline {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 14px;
	font-size: 0.86rem;
	color: var(--gpnr-ink-soft);
}
.gpnr-byline a { color: var(--gpnr-ink); text-decoration: none; font-weight: 600; }
.gpnr-byline a:hover { color: var(--gpnr-accent); }
.gpnr-byline > * { position: relative; }

/* ---------- 단일 글: 저자 박스 ---------- */
.gpnr-author-box {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	margin-top: 36px;
	padding: 20px;
	background: var(--gpnr-bg-soft);
	border: 1px solid var(--gpnr-line);
	border-radius: var(--gpnr-radius);
}
.gpnr-author-box__avatar img { border-radius: 50%; display: block; }
.gpnr-author-box__name {
	font-weight: 800;
	font-size: 1rem;
	color: var(--gpnr-ink);
	text-decoration: none;
}
.gpnr-author-box__name:hover { color: var(--gpnr-accent); }
.gpnr-author-box__bio {
	margin: 6px 0 0;
	font-size: 0.9rem;
	line-height: 1.6;
	color: var(--gpnr-ink-soft);
}

/* ---------- 단일 글: 관련기사 ---------- */
.gpnr-related { margin-top: 44px; }
.gpnr-related__title {
	margin: 0 0 18px;
	padding-bottom: 10px;
	border-bottom: 2px solid var(--gpnr-ink);
	font-size: 1.2rem;
	font-weight: 800;
}

/* ---------- 본문 가독성(과하지 않게 보강) ---------- */
.single-post .entry-content {
	font-family: var(--gpnr-font-sans);
	font-size: 1.05rem;
	line-height: 1.85;
	letter-spacing: -0.003em;
	color: var(--gpnr-ink);
}
.single-post .entry-content p { margin-bottom: 1.25em; }

/* 글 제목 위계 강화 */
.single-post .entry-title {
	letter-spacing: -0.02em;
	line-height: 1.25;
}

/* ---------- 헤드라인 슬라이더(플러그인과 공용 레이아웃) ---------- */
.gpnr-slider { position: relative; }
.gpnr-slide__link {
	display: block;
	position: relative;
	border-radius: var(--gpnr-radius);
	overflow: hidden;
	color: #fff;
	text-decoration: none;
	aspect-ratio: 16 / 9;
	background: #111;
}
.gpnr-slide__thumb {
	position: absolute;
	inset: 0;
	background-size: cover;
	background-position: center;
}
.gpnr-slide__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.82) 0%, rgba(0,0,0,0.15) 55%, rgba(0,0,0,0) 100%);
}
.gpnr-slide__body {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	padding: clamp(16px, 3vw, 32px);
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.gpnr-slide__eyebrow {
	align-self: flex-start;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--gpnr-accent);
	font-size: 0.74rem;
	font-weight: 800;
}
.gpnr-slide__headline {
	font-size: clamp(1.2rem, 3.4vw, 2rem);
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: -0.02em;
	margin: 0;
	max-width: 38ch;
	text-shadow: 0 1px 12px rgba(0,0,0,0.4);
}

/* ---------- 반응형 ---------- */
@media (max-width: 600px) {
	.gpnr-card-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
	.gpnr-author-box { flex-direction: column; }
}

/* =====================================================================
   bloter.net 방향 보강 — 글 목록(GeneratePress 컬럼) 카드화 + 헤더/GNB +
   카테고리 인덱스 헤더 밴드 + 외부 dinoa-news-core 잔여 충돌 정리.
   외부 스니펫이 .blog .site-main article 등에 !important 를 쓰므로,
   동급 이상 특정도 + !important 로 명확히 덮어쓴다.
   ===================================================================== */

/* ---------- 블로그/아카이브 글 목록: 화면 폭에 자동 맞춤 그리드 ---------- */
/* GeneratePress 의 고정 컬럼(grid-33 33% / tablet-grid-50 50% / mobile-grid-100)은
   화면 폭에 따라 2열↔3열이 들쭉날쭉하고 마지막 행에 외톨이 카드가 생긴다.
   컨테이너를 CSS auto-fill 그리드로 바꿔 카드 폭(최소 240px)에 맞춰 열 수가
   자동 결정되도록 한다. 상단 ITEM 섹션(.gpnr-card-grid)과 동일한 규칙으로 통일. */
body.blog .generate-columns-container,
body.archive .generate-columns-container {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: var(--gpnr-gap);
	align-items: start;
	margin: 0 !important;                /* GP 음수 거터 제거 */
}
/* GP 의 폭/플로트/거터 클래스를 무력화 → 그리드가 폭을 결정 */
body.blog .generate-columns,
body.archive .generate-columns {
	width: auto !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

/* 글 목록 카드 = 플랫 구성(카테고리 카드와 디자인 교체):
   박스/보더 없음 + 카테고리 eyebrow + 요약 숨김. 카드 = .inside-article(flex column),
   flex order 로 [이미지 → eyebrow → 헤더(제목·날짜)] 배치. */
body.blog .generate-columns .inside-article,
body.archive .generate-columns .inside-article {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	height: 100%;
}
body.blog .site-main article.generate-columns,
body.archive .site-main article.generate-columns {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	transform: none !important;
}

/* flex order: 이미지(0) → eyebrow(1) → 헤더(2), 요약 숨김 */
body.blog .generate-columns .post-image,
body.archive .generate-columns .post-image { order: 0; margin: 0 !important; }
body.blog .generate-columns .gpnr-loop-eyebrow,
body.archive .generate-columns .gpnr-loop-eyebrow { order: 1; }
body.blog .generate-columns .entry-header,
body.archive .generate-columns .entry-header { order: 2; padding: 0 !important; }
body.blog .generate-columns .entry-summary,
body.archive .generate-columns .entry-summary,
body.blog .generate-columns .entry-content,
body.archive .generate-columns .entry-content { display: none !important; }

/* 썸네일: 3:2 라운드(플랫 카드용) */
body.blog .generate-columns .post-image a,
body.archive .generate-columns .post-image a {
	display: block;
	overflow: hidden;
	border-radius: var(--gpnr-radius);
	background: var(--gpnr-bg-soft);
}
body.blog .generate-columns .post-image img,
body.archive .generate-columns .post-image img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 2;
	object-fit: cover;
	transition: transform .3s ease;
}
body.blog .generate-columns .inside-article:hover .post-image img,
body.archive .generate-columns .inside-article:hover .post-image img {
	transform: scale(1.03);
}

/* 카테고리 eyebrow(상단 ITEM 라벨과 동일 톤) */
.gpnr-loop-eyebrow {
	display: inline-block;
	align-self: flex-start;
	margin: 12px 0 2px;
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--gpnr-accent);
	text-decoration: none;
}
.gpnr-loop-eyebrow:hover { color: var(--gpnr-accent-dark); }

/* 제목/날짜 */
body.blog .generate-columns .entry-title,
body.archive .generate-columns .entry-title {
	margin: 6px 0 0 !important;
	font-size: 1.02rem !important;
	line-height: 1.4 !important;
	letter-spacing: -0.02em;
}
body.blog .generate-columns .entry-title a,
body.archive .generate-columns .entry-title a {
	color: var(--gpnr-ink) !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
body.blog .generate-columns .entry-title a:hover,
body.archive .generate-columns .entry-title a:hover {
	color: var(--gpnr-accent) !important;
}
body.blog .generate-columns .entry-meta,
body.archive .generate-columns .entry-meta {
	color: var(--gpnr-ink-soft) !important;
	font-size: 0.78rem !important;
	margin-top: 6px;
}

/* ---------- 글 목록(홈) 표시 토글: show_postlist 꺼짐 ---------- */
body.gpnr-no-postlist.home .generate-columns-container,
body.gpnr-no-postlist.home nav.paging-navigation,
body.gpnr-no-postlist.home .paging-navigation {
	display: none !important;
}

/* ---------- 상단 GNB(메인 내비) — bloter 식 액센트 ---------- */
.main-navigation .main-nav ul li > a { position: relative; }
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li:hover > a {
	box-shadow: inset 0 -3px 0 0 var(--gpnr-accent);
}

/* ---------- 카테고리 인덱스 헤더 밴드(GP Element 3966) bloter 톤 보정 ---------- */
/* 인라인 스타일을 가진 요소라 !important 로 가볍게 보정(액센트 좌측 바) */
.news-archive-header {
	background: #ffffff !important;
	border: 0 !important;
	border-left: 4px solid var(--gpnr-accent) !important;
	border-bottom: 1px solid var(--gpnr-line) !important;
	border-radius: 0 !important;
	padding: 6px 0 14px 16px !important;
	margin-bottom: 18px !important;
}
.news-archive-header h1 { color: var(--gpnr-ink) !important; letter-spacing: -0.02em; }
.news-archive-header p { color: var(--gpnr-ink-soft) !important; }

/* ---------- 반응형: 모바일 글 목록 1~2열 ---------- */
@media (max-width: 768px) {
	body.blog .generate-columns .entry-header { padding: 14px 14px 0; }
	body.blog .generate-columns .entry-summary { padding: 6px 14px 14px; }
}

/* =====================================================================
   푸터 — bloter 식 사이트 정보 + 개인정보 안내 + 정책 링크 + SNS
   (Customizer 의 .site-info 어두운 배경을 깔끔한 라이트 톤으로 재정의)
   ===================================================================== */
.site-info {
	background-color: #ffffff !important;
	color: var(--gpnr-ink) !important;
	border-top: 1px solid var(--gpnr-line);
}
.site-info a { color: var(--gpnr-ink-soft) !important; text-decoration: none; }
.site-info a:hover { color: var(--gpnr-accent) !important; }
/* GP 기본 'powered by' 크레딧은 절제(원하면 노출 가능) */
.site-info .copyright-bar .powered-by { display: none; }

.gpnr-footer {
	max-width: var(--gpnr-maxw);
	margin-inline: auto;
	padding: 6px 0 2px;
	text-align: left;
}
.gpnr-footer__top {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px 28px;
	padding-bottom: 18px;
	margin-bottom: 16px;
	border-bottom: 1px solid var(--gpnr-line);
}
.gpnr-footer__logo {
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--gpnr-ink);
}
.gpnr-footer__desc {
	margin: 6px 0 0;
	font-size: 0.84rem;
	line-height: 1.5;
	color: var(--gpnr-ink-soft);
}
.gpnr-footer__meta {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 12px;
}
.gpnr-footer__links {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 18px;
	font-size: 0.85rem;
}
.gpnr-footer__link--strong { font-weight: 700; color: var(--gpnr-ink) !important; }

.gpnr-sns { display: flex; gap: 8px; }
.gpnr-sns__item {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--gpnr-bg-soft);
	color: var(--gpnr-ink-soft) !important;
	transition: background .18s ease, color .18s ease, transform .18s ease;
}
.gpnr-sns__item:hover { background: var(--gpnr-accent); color: #ffffff !important; transform: translateY(-2px); }

.gpnr-footer__publisher {
	display: flex;
	flex-wrap: wrap;
	gap: 4px 18px;
	margin: 0 0 12px;
	font-size: 0.8rem;
	line-height: 1.7;
	color: var(--gpnr-ink-soft);
}
.gpnr-footer__pub-item { position: relative; }
.gpnr-footer__pub-item + .gpnr-footer__pub-item::before {
	content: "";
	position: absolute;
	left: -9px;
	top: 50%;
	transform: translateY(-50%);
	width: 1px;
	height: 11px;
	background: var(--gpnr-line);
}
.gpnr-footer__pub-label { color: #9aa0a6; margin-right: 3px; }
.gpnr-footer__publisher a { color: var(--gpnr-ink-soft) !important; }
.gpnr-footer__publisher a:hover { color: var(--gpnr-accent) !important; }

.gpnr-footer__notice {
	margin: 0 0 10px;
	font-size: 0.8rem;
	line-height: 1.75;
	color: var(--gpnr-ink-soft);
	max-width: 920px;
}
.gpnr-footer__copy {
	margin: 0;
	font-size: 0.8rem;
	color: var(--gpnr-ink-soft);
}

@media (max-width: 768px) {
	.gpnr-footer__top { flex-direction: column; }
	.gpnr-footer__meta { align-items: flex-start; }
}
