/*
Theme Name: 임펄스머니
Template: generatepress
Description: money.impulsewave.kr 전용 자식 테마 — 읽기 좋은 본문, 모바일 우선, 광고 자리 안정(화면 밀림 방지)
Version: 1.3.0
Author: 임펄스머니 편집팀
Text Domain: impulsemoney
*/

:root {
	--iwm-ink: #17212b;
	--iwm-sub: #5b6875;
	--iwm-line: #e3e8ee;
	--iwm-bg: #f5f7fa;
	--iwm-card: #ffffff;
	--iwm-brand: #0b3d6b;
	--iwm-accent: #0a7d5a;
	--iwm-warn: #b45309;
	--iwm-soft: #eef4fb;
	--iwm-radius: 12px;
	--iwm-read: 760px;
}

/* ---------- 기본 글꼴·색 ---------- */
body,
button,
input,
select,
textarea {
	font-family: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", "맑은 고딕", sans-serif;
	color: var(--iwm-ink);
	-webkit-font-smoothing: antialiased;
	word-break: keep-all;
	overflow-wrap: break-word;
}
body { background: var(--iwm-bg); }
a { color: var(--iwm-brand); }
a:hover { color: var(--iwm-accent); }

/* ---------- 머리글 ---------- */
.site-header { background: var(--iwm-card); border-bottom: 1px solid var(--iwm-line); }
.site-header .inside-header { padding-top: 18px; padding-bottom: 18px; }
.main-title { font-size: 24px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.main-title a, .main-title a:hover { color: var(--iwm-brand); }
.site-description { font-size: 14px; color: var(--iwm-sub); margin-top: 2px; }
.main-navigation, .main-navigation ul ul { background: var(--iwm-card); }
.main-navigation .main-nav ul li a { font-weight: 600; color: var(--iwm-ink); }
.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li.current-menu-item > a { color: var(--iwm-accent); }

/* ---------- 본문 폭: 읽기 좋은 너비 ---------- */
.separate-containers.no-sidebar.single .site-main,
.separate-containers.no-sidebar.page .site-main,
.one-container.no-sidebar.single .site-main,
.one-container.no-sidebar.page .site-main { max-width: var(--iwm-read); margin-left: auto; margin-right: auto; }
.separate-containers .inside-article { border-radius: var(--iwm-radius); padding: 40px 44px; }

/* ---------- 제목·메타 ---------- */
.entry-title { font-weight: 800; letter-spacing: -0.025em; line-height: 1.35; }
.single .entry-title, .page .entry-title { font-size: 32px; }
.entry-meta { color: var(--iwm-sub); font-size: 14px; margin-top: 10px; }
.iwm-updated { color: var(--iwm-accent); font-weight: 600; }

/* ---------- 본문 타이포 ---------- */
.entry-content { font-size: 17px; line-height: 1.8; }
.entry-content > * + * { margin-top: 0; }
.entry-content p { margin: 0 0 1.25em; }
.entry-content h2 {
	font-size: 24px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.4;
	margin: 2.2em 0 0.8em; padding-top: 0.2em;
	scroll-margin-top: 80px;
}
.entry-content h3 {
	font-size: 20px; font-weight: 700; line-height: 1.45;
	margin: 1.8em 0 0.6em;
	scroll-margin-top: 80px;
}
.entry-content h2::before {
	content: ""; display: block; width: 36px; height: 4px; border-radius: 2px;
	background: var(--iwm-accent); margin-bottom: 14px;
}
.entry-content ul, .entry-content ol { margin: 0 0 1.4em 1.3em; }
.entry-content li { margin-bottom: 0.45em; }
.entry-content strong { font-weight: 700; color: #0d1b29; }
.entry-content img { border-radius: 10px; height: auto; }
.entry-content a { text-decoration: underline; text-underline-offset: 3px; }

/* ---------- 요약 상자 (원고 class="post-intro-box") ---------- */
.post-intro-box {
	background: var(--iwm-soft); border: 1px solid #d5e3f3; border-radius: var(--iwm-radius);
	padding: 20px 24px; margin: 0 0 1.8em;
}
.post-intro-box > p:first-child { font-weight: 800; color: var(--iwm-brand); margin-bottom: 0.5em; }
.post-intro-box ul { margin-bottom: 0; }
.post-intro-box li:last-child { margin-bottom: 0; }

/* ---------- 표 (원고 class="post-table" + 일반 표) ---------- */
.entry-content table {
	width: 100%; border-collapse: collapse; margin: 0 0 1.6em;
	font-size: 15.5px; line-height: 1.6; background: var(--iwm-card);
	display: block; overflow-x: auto; -webkit-overflow-scrolling: touch;
	border: 1px solid var(--iwm-line); border-radius: 10px;
}
.entry-content table thead th {
	background: var(--iwm-brand); color: #fff; font-weight: 700; text-align: left;
}
.entry-content table th, .entry-content table td {
	padding: 11px 14px; border-bottom: 1px solid var(--iwm-line); vertical-align: top; min-width: 96px;
}
.entry-content table tbody tr:nth-child(even) td { background: #fafbfd; }
.entry-content table tbody tr:last-child td { border-bottom: 0; }
/* 사이트 도구가 표를 상자로 감싼 경우: 상자가 스크롤을 맡고 표는 폭을 꽉 채움 */
.entry-content .iwm-table {
	overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 1.6em;
	border: 1px solid var(--iwm-line); border-radius: 10px; background: var(--iwm-card);
}
.entry-content .iwm-table > table { display: table; margin: 0; border: 0; border-radius: 0; }

/* ---------- 목차 ---------- */
.iwm-toc {
	border: 1px solid var(--iwm-line); border-radius: var(--iwm-radius); background: #fbfcfe;
	padding: 18px 22px; margin: 0 0 2em;
}
.iwm-toc-title { font-weight: 800; margin: 0 0 8px !important; color: var(--iwm-brand); }
.iwm-toc ol { margin: 0 0 0 1.2em; padding: 0; }
.iwm-toc li { margin: 4px 0; font-size: 15.5px; }
.iwm-toc li.iwm-toc-l3 { list-style: none; margin-left: 0.6em; font-size: 14.5px; }
.iwm-toc li.iwm-toc-l3::before { content: "– "; color: var(--iwm-sub); }
.iwm-toc a { text-decoration: none; color: var(--iwm-ink); }
.iwm-toc a:hover { color: var(--iwm-accent); }

/* ---------- 광고 자리 (본문과 충분히 띄워 실수 클릭 방지) ---------- */
.iwm-ad { text-align: center; margin: 36px 0; }
.iwm-ad-multiplex { margin-top: 28px; }
ins.adsbygoogle { max-width: 100%; }
.google-auto-placed { margin: 32px 0 !important; }
/* 목록 사이 광고: 카드 칸 하나가 아니라 줄 전체를 가로로 쓰고, 안 채워지면 접음 */
.blog .site-main > .iwm-feed-ad, .archive .site-main > .iwm-feed-ad, .search .site-main > .iwm-feed-ad { grid-column: 1 / -1; }
.iwm-feed-ad .inside-article { display: block !important; height: auto !important; padding: 14px 18px !important; }
.iwm-feed-ad:has(ins[data-ad-status="unfilled"]), .iwm-feed-ad:has(ins[data-ad-status="unfill-optimized"]) { display: none !important; }

/* ---------- 경로 표시 ---------- */
.rank-math-breadcrumb { font-size: 13.5px; color: var(--iwm-sub); margin: 0 0 12px; }
.rank-math-breadcrumb p { margin: 0; }
.rank-math-breadcrumb a { color: var(--iwm-sub); text-decoration: none; }
.rank-math-breadcrumb a:hover { color: var(--iwm-accent); }
.rank-math-breadcrumb .separator { margin: 0 6px; color: #9aa6b2; }

/* ---------- 관련 글 ---------- */
.iwm-related { margin-top: 2.6em; border-top: 1px solid var(--iwm-line); padding-top: 1.6em; }
.iwm-related-title { font-size: 20px; font-weight: 800; margin: 0 0 14px !important; }
.iwm-related ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.iwm-related li { margin: 0; }
.iwm-related a {
	display: block; height: 100%; text-decoration: none; color: var(--iwm-ink);
	border: 1px solid var(--iwm-line); border-radius: 10px; overflow: hidden; background: var(--iwm-card);
}
.iwm-related a:hover { border-color: var(--iwm-accent); }
.iwm-rel-img { display: block; aspect-ratio: 1200 / 630; overflow: hidden; background: var(--iwm-soft); }
.iwm-rel-img img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.iwm-rel-t { display: block; padding: 10px 12px; font-size: 15px; font-weight: 600; line-height: 1.45; }

/* ---------- 글 목록(첫 화면·분류·검색): 카드형 격자 ---------- */
.blog .site-main, .archive .site-main, .search .site-main {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: stretch;
}
.blog .site-main > *, .archive .site-main > *, .search .site-main > * { margin: 0 !important; }
.blog .site-main > .page-header, .archive .site-main > .page-header, .search .site-main > .page-header,
.blog .site-main > nav, .archive .site-main > nav, .search .site-main > nav,
.blog .site-main > .no-results, .archive .site-main > .no-results, .search .site-main > .no-results { grid-column: 1 / -1; }
.blog article .inside-article, .archive article .inside-article, .search article .inside-article {
	display: flex; flex-direction: column; height: 100%; padding: 0 !important; overflow: hidden;
	border-radius: var(--iwm-radius); border: 1px solid var(--iwm-line); transition: border-color .15s, box-shadow .15s;
}
.blog article .inside-article:hover, .archive article .inside-article:hover, .search article .inside-article:hover {
	border-color: #bcd3ea; box-shadow: 0 8px 24px rgba(11, 61, 107, .08);
}
.blog .post-image, .archive .post-image, .search .post-image {
	order: -1; margin: 0 !important; aspect-ratio: 1200 / 630; overflow: hidden; background: var(--iwm-soft);
}
.blog .post-image img, .archive .post-image img, .search .post-image img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0; }
.blog .entry-header, .archive .entry-header, .search .entry-header { padding: 18px 20px 0; }
.blog .entry-title, .archive .entry-title, .search .entry-title {
	font-size: 18.5px; line-height: 1.45; letter-spacing: -0.02em;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.blog .entry-title a, .archive .entry-title a, .search .entry-title a { color: var(--iwm-ink); }
.blog .entry-meta, .archive .entry-meta, .search .entry-meta { font-size: 13px; margin-top: 6px; }
.blog .entry-summary, .archive .entry-summary, .search .entry-summary {
	padding: 8px 20px 20px; margin: 0; font-size: 15px; color: #3b4652; line-height: 1.65;
}
.blog .entry-summary p, .archive .entry-summary p, .search .entry-summary p {
	margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.blog footer.entry-meta, .archive footer.entry-meta, .search footer.entry-meta { display: none; }
.read-more-container, .read-more { display: none; }
.page-header { border-radius: var(--iwm-radius); }
@media (max-width: 960px) {
	.blog .site-main, .archive .site-main, .search .site-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
}
/* 폰: 큰 카드 대신 작은 그림 + 제목 목록 (한 화면에 글이 여러 개 보이게) */
@media (max-width: 600px) {
	.blog .site-main, .archive .site-main, .search .site-main { grid-template-columns: 1fr; gap: 10px; padding: 12px; }
	.blog article .inside-article, .archive article .inside-article, .search article .inside-article {
		display: grid; grid-template-columns: 118px minmax(0, 1fr); column-gap: 12px; align-items: center; padding: 10px !important;
	}
	.blog .post-image, .archive .post-image, .search .post-image { grid-column: 1; grid-row: 1; border-radius: 8px; }
	.blog .entry-header, .archive .entry-header, .search .entry-header { grid-column: 2; grid-row: 1; padding: 0; }
	.blog .entry-title, .archive .entry-title, .search .entry-title { font-size: 16px; line-height: 1.42; -webkit-line-clamp: 3; }
	.blog .entry-meta, .archive .entry-meta, .search .entry-meta { font-size: 12.5px; margin-top: 4px; }
	.blog .entry-summary, .archive .entry-summary, .search .entry-summary { display: none; }
}

/* ---------- 바닥글 ---------- */
.site-info { background: var(--iwm-card); color: var(--iwm-sub); font-size: 14px; border-top: 1px solid var(--iwm-line); }
.site-info a { color: var(--iwm-sub); }
.iwm-foot-links { display: block; margin-top: 6px; }

/* ---------- 모바일 ---------- */
@media (max-width: 768px) {
	.site-header .inside-header { padding-top: 12px; padding-bottom: 12px; }
	.main-title { font-size: 21px; }
	.site-description { display: none; }
	.separate-containers .inside-article { padding: 24px 18px; border-radius: 0; }
	.separate-containers .site-main,
	.separate-containers.no-sidebar.single .site-main,
	.separate-containers.no-sidebar.page .site-main { margin: 0; }
	.single .entry-title, .page .entry-title { font-size: 25px; }
	.entry-content { font-size: 17px; }
	.entry-content h2 { font-size: 21.5px; }
	.entry-content h3 { font-size: 18.5px; }
	.post-intro-box { padding: 16px 18px; }
	.iwm-toc { padding: 14px 16px; }
	.entry-content table { font-size: 14.5px; }
}
@media (min-width: 900px) {
	.iwm-related ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ---------- 인쇄 숨김 (지금 사이트처럼 인쇄 막음) ---------- */
@media print {
	body { display: none !important; }
}
