/* ==========================================================================
   Eduinfom Theme — Design Tokens & Base
   Flat white editorial look (elancer.co.kr 레퍼런스, 2026-08):
   순백 배경 · 넓은 본문 열(792px) · 큰 타이포 · 얇은 중성 보더
   (.glass-card 클래스명은 기존 발행 글이 참조하므로 유지하고 플랫하게 재정의)
   ========================================================================== */

:root {
	color-scheme: light;

	/* Colors — elancer 시그니처 오렌지 (실측 #FF6948) */
	--color-accent: #ff6948;
	--color-accent-hover: #ef4d26;
	--color-accent-light: #fff1ec;
	--color-text: #1b1c1e;
	--color-text-secondary: #55565c;
	--color-text-muted: #8f9096;
	--color-border: #e8e8ee;
	--color-border-subtle: #ededf2;

	/* Glass (flat 재정의 — 이름만 유지) */
	--glass-bg: #ffffff;
	--glass-bg-strong: #ffffff;
	--glass-blur: 0px;
	--glass-shadow: 0 1px 3px rgba(20, 22, 30, 0.05);
	--glass-shadow-hover: 0 10px 28px rgba(20, 22, 30, 0.09);

	/* Background */
	--bg-gradient: none;
	--bg-base: #ffffff;

	/* Typography */
	--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", sans-serif;
	--font-size-base: 17px;
	--font-size-sm: 14px;
	--font-size-lg: 18px;
	--font-size-xl: 22px;
	--font-size-2xl: 26px;
	--line-height: 1.7;
	--line-height-tight: 1.4;

	/* Spacing */
	--space-xs: 4px;
	--space-sm: 8px;
	--space-md: 16px;
	--space-lg: 24px;
	--space-xl: 32px;
	--space-2xl: 48px;

	/* Layout */
	--container-max: 824px;
	--container-wide: 1200px;
	--header-height: 56px;
	--nav-height: 44px;
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;
	--radius-xl: 20px;

	/* Touch targets */
	--tap-min: 44px;
}

/* Reset & Base */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	min-height: 100%;
	background-color: var(--bg-base);
}

body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: var(--font-size-base);
	line-height: var(--line-height);
	color: var(--color-text);
	background-color: var(--bg-base);
	background-image: var(--bg-gradient);
	background-repeat: no-repeat;
	background-size: 100% 100%;
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
	/* Post content intentionally bleeds ad units to full viewport width
	   (see .adsense-wrap below); clip here so that doesn't widen the page. */
	overflow-x: hidden;
}

/* Background accent blobs — 플랫 화이트 전환으로 제거 */
body::before,
body::after {
	content: none;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: var(--color-accent);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--color-accent-hover);
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 var(--space-md);
	line-height: var(--line-height-tight);
	font-weight: 700;
	color: var(--color-text);
}

p {
	margin: 0 0 var(--space-md);
}

ul, ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	position: absolute !important;
	height: 1px;
	width: 1px;
	overflow: hidden;
}

/* ==========================================================================
   Layout
   ========================================================================== */

.site-wrapper {
	min-height: 100vh;
	display: flex;
	flex-direction: column;
}

.site-main {
	flex: 1;
	width: 100%;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: var(--space-md);
	padding-bottom: var(--space-2xl);
}

.site-main--wide {
	max-width: var(--container-wide);
}

/* ==========================================================================
   Glass Components
   ========================================================================== */

.glass-card {
	background: var(--glass-bg);
	backdrop-filter: blur(var(--glass-blur));
	-webkit-backdrop-filter: blur(var(--glass-blur));
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	box-shadow: var(--glass-shadow);
}

.glass-card--strong {
	background: var(--glass-bg-strong);
}

/* ==========================================================================
   Header
   ========================================================================== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: #fff;
	border-bottom: 1px solid var(--color-border);
	box-shadow: none;
}

.site-header__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	max-width: var(--container-wide);
	margin: 0 auto;
	padding: var(--space-sm) var(--space-lg);
	min-height: var(--header-height);
}

.site-branding {
	flex-shrink: 0;
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.site-branding .custom-logo-link {
	display: block;
	line-height: 0;
	flex-shrink: 0;
}

.site-branding .custom-logo {
	max-height: 36px;
	width: auto;
}

/* 워드마크 SVG 로고 — 전역 img { height:auto } 가 height 속성을 무시하므로 CSS로 고정 */
.site-logo {
	display: block;
	line-height: 0;
}

.site-logo__img {
	height: 26px;
	width: auto;
	display: block;
}

@media (max-width: 640px) {
	.site-logo__img {
		height: 22px;
	}
}

.site-title--with-logo {
	font-size: var(--font-size-lg);
}

.site-title {
	font-size: var(--font-size-xl);
	font-weight: 800;
	color: var(--color-text);
	letter-spacing: -0.02em;
}

.site-title:hover {
	color: var(--color-accent);
}

/* Search */
.header-search {
	position: relative;
	flex: 1;
	max-width: 280px;
	display: flex;
	justify-content: flex-end;
}

.header-search__toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--tap-min);
	height: var(--tap-min);
	padding: 0;
	border: none;
	background: transparent;
	color: var(--color-text-secondary);
	cursor: pointer;
	border-radius: var(--radius-sm);
	transition: background 0.2s, color 0.2s;
}

.header-search__toggle:hover,
.header-search__toggle[aria-expanded="true"] {
	background: var(--color-accent-light);
	color: var(--color-accent);
}

.header-search__form {
	display: none;
	position: absolute;
	top: 100%;
	right: 0;
	margin-top: var(--space-xs);
	width: min(100vw - 32px, 320px);
	z-index: 110;
}

.header-search.is-open .header-search__form {
	display: block;
}

.header-search__form .search-form {
	display: flex;
	gap: var(--space-sm);
	padding: var(--space-sm);
	background: var(--glass-bg-strong);
	backdrop-filter: blur(var(--glass-blur));
	border: 1px solid var(--color-border);
	border-radius: var(--radius-md);
	box-shadow: var(--glass-shadow);
}

.search-form__input {
	flex: 1;
	min-width: 0;
	padding: 12px 16px;
	font-size: var(--font-size-base);
	font-family: inherit;
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-sm);
	background: #fff;
	color: var(--color-text);
	outline: none;
	transition: border-color 0.2s;
}

.search-form__input:focus {
	border-color: var(--color-accent);
}

.search-form__input::placeholder {
	color: var(--color-text-muted);
}

.search-form__submit {
	flex-shrink: 0;
	padding: 12px 20px;
	font-size: var(--font-size-sm);
	font-weight: 600;
	font-family: inherit;
	color: #fff;
	background: var(--color-accent);
	border: none;
	border-radius: var(--radius-sm);
	cursor: pointer;
	min-height: var(--tap-min);
	transition: background 0.2s;
}

.search-form__submit:hover {
	background: var(--color-accent-hover);
}

/* Desktop: always show search inline */
@media (min-width: 640px) {
	.header-search {
		max-width: 360px;
	}

	.header-search__toggle {
		display: none;
	}

	.header-search__form {
		display: block;
		position: static;
		width: 100%;
		margin-top: 0;
	}

	.header-search__form .search-form {
		padding: 0;
		background: transparent;
		border: none;
		box-shadow: none;
		backdrop-filter: none;
	}
}

/* ==========================================================================
   Primary Navigation
   ========================================================================== */

.primary-nav {
	background: #fff;
	border-bottom: 1px solid var(--color-border);
}

.primary-nav__inner {
	max-width: var(--container-wide);
	margin: 0 auto;
	padding: 0 var(--space-md);
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	display: flex;
	justify-content: center;
}

.primary-nav__inner::-webkit-scrollbar {
	display: none;
}

.primary-nav__list {
	display: flex;
	justify-content: center;
	gap: var(--space-xs);
	padding: var(--space-sm) 0;
	white-space: nowrap;
	margin: 0 auto;
}

.primary-nav__list .menu-item a,
.primary-nav__list a {
	display: inline-block;
	padding: 10px 16px;
	font-size: var(--font-size-sm);
	font-weight: 500;
	color: var(--color-text-secondary);
	border-radius: var(--radius-xl);
	transition: background 0.2s, color 0.2s;
	min-height: var(--tap-min);
	line-height: 1.4;
}

.primary-nav__list .menu-item a:hover,
.primary-nav__list a:hover,
.primary-nav__list .current-menu-item a,
.primary-nav__list .current-cat a {
	background: var(--color-accent-light);
	color: var(--color-accent);
}

/* ==========================================================================
   Featured Categories Box
   ========================================================================== */

.featured-categories {
	margin-bottom: var(--space-lg);
	padding: var(--space-lg);
}

.featured-categories__title {
	font-size: var(--font-size-lg);
	font-weight: 700;
	margin-bottom: var(--space-md);
	color: var(--color-text);
}

.featured-categories .ad-slot {
	margin: 0;
	min-height: 100px;
}

.featured-categories__list {
	display: flex;
	flex-direction: column;
	gap: 0;
}

.featured-categories__item {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--space-md) 0;
	border-bottom: 1px solid var(--color-border-subtle);
	min-height: var(--tap-min);
}

.featured-categories__item:last-child {
	border-bottom: none;
	padding-bottom: 0;
}

.featured-categories__item:first-child {
	padding-top: 0;
}

.featured-categories__link {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	color: var(--color-text);
	font-weight: 500;
	font-size: var(--font-size-base);
}

.featured-categories__link:hover {
	color: var(--color-accent);
}

.featured-categories__arrow {
	flex-shrink: 0;
	color: var(--color-text-muted);
	transition: transform 0.2s, color 0.2s;
}

.featured-categories__link:hover .featured-categories__arrow {
	color: var(--color-accent);
	transform: translateX(4px);
}

/* ==========================================================================
   Post Cards (List)
   ========================================================================== */

.post-list {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
}

.post-card {
	display: flex;
	gap: var(--space-md);
	padding: var(--space-md);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.post-card:hover {
	box-shadow: var(--glass-shadow-hover);
	transform: translateY(-2px);
}

.post-card__thumbnail {
	flex-shrink: 0;
	width: 100px;
	height: 100px;
	border-radius: var(--radius-md);
	overflow: hidden;
	background: var(--color-accent-light);
}

.post-card__thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.post-card__placeholder {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	padding: 10px;
	text-align: center;
	color: #fff;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.3;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.12);
}

.post-card__placeholder-label {
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
	word-break: keep-all;
}

.post-card__thumbnail--tone-0 {
	background: linear-gradient(145deg, #6ea8fe 0%, #3b82f6 55%, #2563eb 100%);
}

.post-card__thumbnail--tone-1 {
	background: linear-gradient(145deg, #7dd3c0 0%, #34b3a0 55%, #0d9488 100%);
}

.post-card__thumbnail--tone-2 {
	background: linear-gradient(145deg, #c4b5fd 0%, #a78bfa 55%, #7c3aed 100%);
}

.post-card__thumbnail--tone-3 {
	background: linear-gradient(145deg, #f9a8d4 0%, #f472b6 55%, #db2777 100%);
}

.post-card__thumbnail--tone-4 {
	background: linear-gradient(145deg, #fcd34d 0%, #fbbf24 55%, #f59e0b 100%);
}

.post-card__thumbnail--tone-5 {
	background: linear-gradient(145deg, #94a3b8 0%, #64748b 55%, #475569 100%);
}

.post-card__body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
}

.post-card__title {
	font-size: var(--font-size-lg);
	font-weight: 700;
	margin: 0;
	line-height: var(--line-height-tight);
	letter-spacing: -0.02em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.post-card__title a {
	color: var(--color-text);
}

.post-card__title a:hover {
	color: var(--color-accent);
}

.post-card__excerpt {
	font-size: var(--font-size-sm);
	color: var(--color-text-secondary);
	line-height: 1.5;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.post-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-sm) var(--space-md);
	font-size: 12px;
	color: var(--color-text-muted);
	margin-top: auto;
}

.post-meta__item {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.post-meta__item svg {
	flex-shrink: 0;
	opacity: 0.7;
}

.post-meta__item a {
	color: var(--color-text-muted);
}

.post-meta__item a:hover {
	color: var(--color-accent);
}

.post-meta__category a {
	display: inline-flex;
	align-items: center;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--color-accent-light);
	color: var(--color-accent);
	font-weight: 600;
	font-size: 12px;
	line-height: 1.4;
}

.post-meta__category a:hover {
	background: rgba(255, 105, 72, 0.16);
	color: var(--color-accent-hover);
}

.post-meta__category svg {
	display: none;
}

@media (min-width: 640px) {
	.post-card__thumbnail {
		width: 120px;
		height: 120px;
	}

	.post-card__title {
		font-size: var(--font-size-xl);
	}

	.post-card__excerpt {
		-webkit-line-clamp: 3;
	}
}

/* ==========================================================================
   Ads
   ========================================================================== */

.eduinfom-nav-ad,
.eduinfom-list-ad {
	width: 100%;
	max-width: var(--container-max);
	margin: 0 auto var(--space-lg);
	padding: 0 var(--space-md);
	box-sizing: border-box;
}

.eduinfom-nav-ad .adsbygoogle,
.eduinfom-list-ad .adsbygoogle {
	display: block;
	width: 100%;
	min-height: 90px;
	margin: 0 auto;
}

/* ==========================================================================
   Single Post
   ========================================================================== */

.single-header {
	margin: var(--space-xl) 0 var(--space-lg);
}

.single-header__title {
	font-size: clamp(26px, 4.5vw, 36px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.45;
	margin-bottom: var(--space-md);
}

.single-header .post-meta {
	margin-bottom: var(--space-sm);
	padding-bottom: var(--space-md);
	border-bottom: 1px solid var(--color-border);
}

/* 본문은 카드 없이 흰 페이지에 바로 (elancer 아티클 스타일) */
.single-content {
	padding: 0;
	margin-bottom: var(--space-lg);
	background: transparent;
	border: none;
	box-shadow: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}

/* Mobile-only flattening: the glass background/blur/shadow reads as a
   redundant layer stacked on top of the content's own boxes (e.g.
   content-box-mobile-wide) and on top of ads. Publishing has been
   patching this per-post with inline <style> blocks; promoted here so
   every post (past and future) gets it consistently. */
@media (max-width: 640px) {
	.single-content {
		background: #fff;
		backdrop-filter: none;
		-webkit-backdrop-filter: none;
		box-shadow: none;
		border: none;
	}
}

.single-content .entry-content {
	font-size: 18px;
	line-height: 1.8;
	color: #38383d;
}

/* Content markup classes used by the publishing pipeline.
   Previously only styled via inline <style> blocks injected per post;
   defined here so they're consistent across all posts. */
.mobile-post-container {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

.content-box-mobile-wide {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	overflow-wrap: break-word;
	word-wrap: break-word;
}

.content-box-mobile-wide p,
.content-box-mobile-wide li {
	overflow-wrap: break-word;
	word-wrap: break-word;
}

/* Ad breakout (mobile only, matches the old inline-patch breakpoint):
   let the ad bleed to full viewport width instead of being squeezed into
   the narrow post column. The publishing pipeline hardcodes width/margin
   as an inline style="" attribute on these elements, which otherwise
   beats a plain class rule — !important is required to win here.
   Needs body { overflow-x: hidden } (above) so this doesn't widen the page. */
@media (max-width: 640px) {
	.adsense-wrap.adsense-mobile-fullwidth,
	.ctr-ad-slot {
		position: relative !important;
		left: 50% !important;
		width: 100vw !important;
		max-width: 100vw !important;
		margin-left: -50vw !important;
		margin-right: 0 !important;
		margin-top: var(--space-sm) !important;
		margin-bottom: var(--space-sm) !important;
		padding: 0 !important;
		text-align: center;
		box-sizing: border-box;
	}

	.adsense-inner {
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		text-align: center;
		box-sizing: border-box;
	}

	.adsense-wrap ins.adsbygoogle,
	.adsense-inner ins.adsbygoogle,
	.adsense-wrap iframe,
	.adsense-inner iframe {
		display: block;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
		box-sizing: border-box;
	}
}

p.ctr-action-link {
	margin-bottom: var(--space-xs);
}

/* ==========================================================================
   본문 평탄화 — 발행 시기와 무관하게 모든 글의 인라인 색·그라데이션을 무시하고
   elancer 아티클 톤(흰 바탕·중성 텍스트·오렌지 포인트 하나)으로 통일.
   인라인 style을 이기기 위해 !important 필수.
   ========================================================================== */

/* 헤딩은 항상 플레인 */
.single-content .entry-content h2,
.single-content .entry-content h3,
.single-content .entry-content h4 {
	color: #38383d !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
}

/* 모든 콘텐츠 박스(요약·서론·콜아웃·통계·결론)를 단일 스타일로 통일:
   연회색 배경 + 오렌지 좌측 보더. 그라데이션·그림자 전부 제거 */
.single-content .entry-content .content-box-mobile-wide,
.single-content .entry-content div[style*="gradient" i],
.single-content .entry-content div[style*="border-left" i] {
	background: #fafafa !important;
	background-image: none !important;
	border: 1px solid #ececf1 !important;
	border-left: 3px solid #ff6948 !important;
	border-radius: 10px !important;
	box-shadow: none !important;
}

/* 박스 내부 텍스트는 본문과 같은 중성 톤 */
.single-content .entry-content .content-box-mobile-wide,
.single-content .entry-content .content-box-mobile-wide p,
.single-content .entry-content .content-box-mobile-wide li,
.single-content .entry-content .content-box-mobile-wide strong,
.single-content .entry-content div[style*="border-left" i],
.single-content .entry-content div[style*="border-left" i] p,
.single-content .entry-content div[style*="border-left" i] li,
.single-content .entry-content div[style*="border-left" i] strong {
	color: #38383d !important;
}

/* 박스 첫 줄(제목 성격)은 진하게 */
.single-content .entry-content .content-box-mobile-wide > p:first-child {
	color: #1b1c1e !important;
	font-weight: 700 !important;
}

/* CTR 액션 링크 문단 — 박스 없이 본문에 녹는 텍스트 링크.
   기존 글에는 주황 박스가 인라인으로 박혀 있어 !important로 무력화한다. */
.single-content .entry-content p.ctr-action-link {
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 0 !important;
	color: #38383d !important;
}

.single-content .entry-content p.ctr-action-link a,
.single-content .entry-content a[style*="underline" i] {
	color: #ef4d26 !important;
}

/* 표 — 인라인 색 무시, elancer식 미니멀 표로 통일 */
.single-content .entry-content table {
	border: none !important;
}

.single-content .entry-content tr {
	background: #fff !important;
	background-image: none !important;
}

.single-content .entry-content th {
	background: #f7f7f9 !important;
	background-image: none !important;
	color: #1b1c1e !important;
	border: 1px solid #e5e5ec !important;
	font-weight: 700 !important;
}

.single-content .entry-content td {
	border: 1px solid #e9e9ef !important;
	color: #38383d !important;
}

.single-content .entry-content p {
	margin-bottom: 1.25em;
}

/* h태그 — elancer 아티클 실측 모방: h2 32px/1.5 bold #38383d, 장식 없음 */
.single-content .entry-content h2 {
	font-size: clamp(24px, 3.2vw, 32px);
	font-weight: 700;
	margin-top: 2.4em;
	margin-bottom: 0.7em;
	padding: 0;
	border-left: none;
	background: transparent;
	border-radius: 0;
	color: #38383d;
	line-height: 1.5;
	letter-spacing: -0.015em;
}

.single-content .entry-content h3 {
	font-size: clamp(20px, 2.4vw, 24px);
	font-weight: 700;
	margin-top: 1.8em;
	margin-bottom: 0.6em;
	color: #38383d;
	line-height: 1.5;
}

.single-content .entry-content h4 {
	font-size: 19px;
	font-weight: 700;
	margin-top: 1.5em;
	margin-bottom: 0.5em;
	color: #38383d;
}

.single-content .entry-content ul,
.single-content .entry-content ol {
	margin: 0 0 1.25em 1.25em;
	padding-left: 1em;
	list-style: disc;
}

.single-content .entry-content ol {
	list-style: decimal;
}

.single-content .entry-content li {
	margin-bottom: 0.5em;
}

.single-content .entry-content img {
	border-radius: var(--radius-md);
	margin: 1em 0;
}

.single-content .entry-content blockquote {
	margin: 1.25em 0;
	padding: var(--space-md) var(--space-lg);
	border-left: 4px solid var(--color-accent);
	background: var(--color-accent-light);
	border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
	color: var(--color-text-secondary);
}

.single-content .entry-content table {
	width: 100%;
	border-collapse: collapse;
	margin: 1em 0;
	font-size: var(--font-size-sm);
}

.single-content .entry-content th,
.single-content .entry-content td {
	padding: 10px 12px;
	border: 1px solid var(--color-border-subtle);
	text-align: left;
}

.single-content .entry-content th {
	background: var(--color-accent-light);
	font-weight: 600;
}

/* Breadcrumbs */
.breadcrumbs {
	font-size: var(--font-size-sm);
	color: var(--color-text-muted);
	margin-bottom: var(--space-md);
}

.breadcrumbs a {
	color: var(--color-text-secondary);
}

/* Related Posts */
.related-posts {
	padding: var(--space-lg);
	margin-top: var(--space-lg);
}

.related-posts__title {
	font-size: var(--font-size-lg);
	margin-bottom: var(--space-md);
}

.related-posts__list li {
	padding: var(--space-sm) 0;
	border-bottom: 1px solid var(--color-border-subtle);
}

.related-posts__list li:last-child {
	border-bottom: none;
}

.related-posts__list a {
	display: flex;
	align-items: flex-start;
	gap: var(--space-sm);
	padding: 8px 10px;
	margin: 0 -10px;
	border-radius: var(--radius-sm);
	font-weight: 500;
	color: var(--color-text);
	transition: background 0.2s ease, color 0.2s ease;
}

.related-posts__list a::before {
	content: "→";
	flex-shrink: 0;
	color: var(--color-accent);
	opacity: 0.7;
	margin-top: 1px;
}

.related-posts__list a:hover {
	background: var(--color-accent-light);
	color: var(--color-accent);
}

.related-posts__date {
	display: block;
	font-size: 12px;
	color: var(--color-text-muted);
	margin: 2px 0 0 28px;
	font-weight: 400;
}

/* ==========================================================================
   Page Template
   ========================================================================== */

.page-header {
	margin-bottom: var(--space-lg);
}

.page-header__title {
	font-size: var(--font-size-2xl);
	font-weight: 800;
}

.page-content {
	padding: var(--space-lg);
}

/* ==========================================================================
   Archive & Search
   ========================================================================== */

.archive-ad {
	margin-bottom: var(--space-lg);
	padding: var(--space-md);
	min-height: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.archive-ad .ad-slot {
	margin: 0;
	width: 100%;
	min-height: 100px;
}

.search-header {
	margin-bottom: var(--space-lg);
	padding: var(--space-lg);
}

.search-header__title {
	font-size: var(--font-size-xl);
	font-weight: 700;
	margin: 0;
}

/* ==========================================================================
   404
   ========================================================================== */

.error-404 {
	text-align: center;
	padding: var(--space-2xl) var(--space-lg);
}

.error-404__title {
	font-size: 4rem;
	font-weight: 800;
	color: var(--color-accent);
	margin-bottom: var(--space-sm);
}

.error-404__message {
	color: var(--color-text-secondary);
	margin-bottom: var(--space-lg);
}

.error-404 .search-form {
	max-width: 360px;
	margin: 0 auto;
}

/* ==========================================================================
   Comments
   ========================================================================== */

.comments-area {
	margin-top: var(--space-xl);
	padding: var(--space-lg);
}

.comments-title {
	font-size: var(--font-size-lg);
	margin-bottom: var(--space-md);
}

.comment-list {
	margin-bottom: var(--space-lg);
}

.comment-list .comment {
	padding: var(--space-md) 0;
	border-bottom: 1px solid var(--color-border-subtle);
}

.comment-author {
	font-weight: 600;
	margin-bottom: var(--space-xs);
}

.comment-meta {
	font-size: 12px;
	color: var(--color-text-muted);
	margin-bottom: var(--space-sm);
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: 12px 16px;
	font-family: inherit;
	font-size: var(--font-size-base);
	border: 1px solid var(--color-border-subtle);
	border-radius: var(--radius-sm);
	margin-bottom: var(--space-md);
}

.comment-form input[type="submit"] {
	padding: 12px 24px;
	font-size: var(--font-size-base);
	font-weight: 600;
	color: #fff;
	background: var(--color-accent);
	border: none;
	border-radius: var(--radius-sm);
	cursor: pointer;
	min-height: var(--tap-min);
}

/* ==========================================================================
   Footer
   ========================================================================== */

.site-footer {
	margin-top: auto;
	padding: var(--space-xl) var(--space-md) var(--space-lg);
	background: #fafafa;
	border-top: 1px solid var(--color-border);
}

.site-footer__inner {
	max-width: var(--container-wide);
	margin: 0 auto;
	text-align: center;
}

.site-footer__content {
	margin-bottom: var(--space-md);
}

.site-footer__brand {
	margin: 0 0 var(--space-sm);
	font-size: var(--font-size-xl);
	font-weight: 800;
}

.site-footer__brand a {
	color: var(--color-text);
}

.site-footer__brand a:hover {
	color: var(--color-accent);
}

.site-footer__tagline {
	margin: 0 0 var(--space-md);
	font-size: var(--font-size-sm);
	color: var(--color-text-secondary);
}

.site-footer__nav {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-sm) var(--space-md);
	margin-bottom: var(--space-md);
}

.site-footer__nav a {
	font-size: var(--font-size-sm);
	font-weight: 500;
	color: var(--color-text-secondary);
	padding: 6px 4px;
}

.site-footer__nav a:hover {
	color: var(--color-accent);
}

.site-footer__copyright {
	font-size: 12px;
	color: var(--color-text-muted);
	padding-top: var(--space-md);
	border-top: 1px solid var(--color-border-subtle);
}

.site-footer__copyright p {
	margin: 0;
}

.site-footer__copyright a {
	color: var(--color-text-secondary);
}

/* ==========================================================================
   Pagination
   ========================================================================== */

.pagination,
.nav-links {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: var(--space-sm);
	margin-top: var(--space-xl);
	flex-wrap: wrap;
}

.pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--space-sm);
	list-style: none;
	margin: 0;
	padding: 0;
}

.pagination ul.page-numbers li {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pagination a,
.pagination span,
.pagination ul.page-numbers a,
.pagination ul.page-numbers span,
.nav-links a,
.nav-links span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: var(--tap-min);
	min-height: var(--tap-min);
	padding: 0 16px;
	font-size: var(--font-size-sm);
	font-weight: 500;
	border-radius: 999px;
	background: var(--glass-bg);
	border: 1px solid var(--color-border-subtle);
	color: var(--color-text);
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.pagination a:hover,
.pagination ul.page-numbers a:hover,
.nav-links a:hover {
	background: var(--color-accent-light);
	color: var(--color-accent);
}

.pagination .current,
.pagination ul.page-numbers .current,
.nav-links .current {
	background: var(--color-accent);
	color: #fff;
	border-color: var(--color-accent);
}

/* ==========================================================================
   Section Titles
   ========================================================================== */

.section-title {
	font-size: var(--font-size-lg);
	font-weight: 700;
	margin-bottom: var(--space-md);
	padding-left: var(--space-xs);
}

/* ==========================================================================
   PressLearn / alpack featured box tone match
   ========================================================================== */

.presslearn-iframe-container,
[class*="presslearn"] .pl-box,
.pl-box,
.alpack-box {
	border-radius: var(--radius-lg) !important;
	overflow: hidden;
}

.eduinfom-nav-ad {
	margin-top: var(--space-md);
}

/* ==========================================================================
   Home — elancer 스타일 히어로 + 카드 그리드 (2026-08)
   ========================================================================== */

.home .site-main,
.blog .site-main,
.archive .site-main,
.search .site-main {
	max-width: var(--container-wide);
	padding-left: var(--space-lg);
	padding-right: var(--space-lg);
}

/* 히어로 = elancer 메인 캐러셀 크기(1200×260)의 광고 슬롯 */
.home-hero-ad {
	overflow: hidden;
	margin: var(--space-sm) auto var(--space-xl);
	max-width: 1200px;
	height: 260px;
	border-radius: 12px;
	background: #f5f5f8;
}

.home-hero-ad ins.adsbygoogle {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0;
}

@media (max-width: 640px) {
	.home-hero-ad {
		height: 200px;
	}
}

/* 카테고리별 인기글 캐러셀 */
.featured-section {
	margin-bottom: var(--space-2xl);
}

.featured-section__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--space-md);
	margin-bottom: var(--space-md);
}

.featured-section__title {
	margin: 0;
	font-size: var(--font-size-xl);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--color-text);
}

.featured-section__title strong {
	color: var(--color-accent);
	font-weight: 800;
}

.featured-section__more {
	flex-shrink: 0;
	font-size: var(--font-size-sm);
	font-weight: 600;
	color: var(--color-text-secondary);
}

.featured-section__more:hover {
	color: var(--color-accent);
}

.featured-carousel {
	overflow: hidden;
}

.featured-carousel__track {
	display: flex;
	gap: var(--space-md);
	transition: transform 0.55s cubic-bezier(0.22, 0.61, 0.36, 1);
	will-change: transform;
}

.featured-card {
	flex: 0 0 calc((100% - 32px) / 3);
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: var(--space-sm);
	padding: var(--space-lg);
	background: #fff;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
	transition: box-shadow 0.2s ease, transform 0.2s ease, border-color 0.2s ease;
}

.featured-card:hover {
	box-shadow: var(--glass-shadow-hover);
	border-color: rgba(255, 105, 72, 0.35);
	transform: translateY(-2px);
}

.featured-card__category {
	font-size: 13px;
	font-weight: 700;
	color: var(--color-accent);
}

.featured-card__title {
	margin: 0;
	font-size: var(--font-size-lg);
	font-weight: 700;
	line-height: 1.45;
	letter-spacing: -0.01em;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: calc(1.45em * 2);
}

.featured-card__title a {
	color: var(--color-text);
}

.featured-card:hover .featured-card__title a {
	color: var(--color-accent);
}

.featured-card__excerpt {
	margin: 0;
	font-size: var(--font-size-sm);
	line-height: 1.6;
	color: var(--color-text-secondary);
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.featured-card__date {
	margin-top: auto;
	font-size: 12px;
	color: var(--color-text-muted);
}

@media (max-width: 899px) {
	.featured-card {
		flex-basis: calc((100% - 16px) / 2);
	}
}

@media (max-width: 639px) {
	.featured-card {
		flex-basis: 84%;
	}
}

.home .section-title {
	font-size: var(--font-size-xl);
	font-weight: 800;
	letter-spacing: -0.01em;
}

/* 카드 그리드: 데스크톱 2열, 모바일 1열 */
@media (min-width: 768px) {
	.home .post-list,
	.blog .post-list,
	.archive .post-list,
	.search .post-list {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: var(--space-md);
	}

	.home .post-list .eduinfom-list-ad,
	.blog .post-list .eduinfom-list-ad,
	.archive .post-list .eduinfom-list-ad,
	.search .post-list .eduinfom-list-ad {
		grid-column: 1 / -1;
		max-width: 100%;
	}
}


/* 사이트명 워드마크 — 로고 파일이 없는 사이트(eduinfom, finance)에서 사용.
   blog 의 EXITBASIC SVG 로고와 같은 인상을 주도록 굵기·자간·강조색을 맞춘다. */
.site-wordmark {
  font-weight: 900;
  font-size: 1.28rem;
  letter-spacing: -0.02em;
  color: #1B1C1E;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  line-height: 1;
}

.site-wordmark__accent {
  color: #FF6948;
}

@media (max-width: 560px) {
  .site-wordmark {
    font-size: 1.06rem;
  }
}
