/*
Theme Name: Notebase
Template: generatepress
Description: 정보형 사이트 5개 공용 자식 테마. 애플 스타일(넓은 여백, 큰 제목, 반투명 내비게이션, 둥근 카드). 사이트별 포인트 색은 테마 설정(nb_accent)으로 지정.
Version: 2.0.2
Text Domain: notebase
*/

:root {
	--nb-accent: #0071e3;
	--nb-ink: #1d1d1f;
	--nb-body: #1d1d1f;
	--nb-sub: #6e6e73;
	--nb-faint: #86868b;
	--nb-line: #d2d2d7;
	--nb-bg: #ffffff;
	--nb-bg-alt: #f5f5f7;
	--nb-card: #ffffff;
	--nb-radius: 18px;
	--nb-shadow: 0 2px 12px rgba(0, 0, 0, .06);
	--nb-shadow-hover: 0 10px 30px rgba(0, 0, 0, .10);
	--nb-wide: 1024px;
	--nb-read: 692px;
	--nb-font: -apple-system, BlinkMacSystemFont, "SF Pro KR", "SF Pro Text", "Apple SD Gothic Neo", "Pretendard Variable", Pretendard, "Malgun Gothic", sans-serif;
	--nb-display: -apple-system, BlinkMacSystemFont, "SF Pro KR", "SF Pro Display", "Apple SD Gothic Neo", "Pretendard Variable", Pretendard, "Malgun Gothic", sans-serif;
}

/* ───────── 기본 ───────── */
html { -webkit-text-size-adjust: 100%; }
body {
	background: var(--nb-bg);
	color: var(--nb-body);
	font-family: var(--nb-font);
	font-size: 17px;
	line-height: 1.75;
	letter-spacing: -0.012em;
	word-break: keep-all;
	overflow-wrap: anywhere;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 { color: var(--nb-ink); font-family: var(--nb-display); letter-spacing: -0.02em; }
a { color: var(--nb-accent); text-decoration: none; }
a:hover, a:focus { text-decoration: underline; text-underline-offset: 3px; }
::selection { background: color-mix(in srgb, var(--nb-accent) 18%, #fff); color: var(--nb-ink); }

.site.grid-container, .grid-container { max-width: none; }
.separate-containers .inside-article,
.separate-containers .comments-area,
.separate-containers .page-header,
.separate-containers .paging-navigation,
.inside-page-header { background: transparent; padding: 0; }
.one-container .site-content { background: transparent; }
.separate-containers .site-main { margin: 0; }
body .site.grid-container .site-content { padding: 0 22px 120px; }
.content-area { width: 100%; }

/* ───────── 내비게이션 (반투명) ───────── */
.site-header {
	background: rgba(255, 255, 255, .72);
	-webkit-backdrop-filter: saturate(180%) blur(20px);
	backdrop-filter: saturate(180%) blur(20px);
	border-bottom: 1px solid rgba(0, 0, 0, .08);
	position: sticky; top: 0; z-index: 50;
}
.admin-bar .site-header { top: 32px; }
body .inside-header { max-width: var(--nb-wide); margin: 0 auto; padding: 0 22px; min-height: 52px; }
.main-title { font-size: 18px; font-weight: 600; line-height: 1; letter-spacing: -0.02em; }
.main-title a { color: var(--nb-ink); }
.main-title a:hover { text-decoration: none; opacity: .75; }
.site-description { display: none; }

.main-navigation, .main-navigation ul ul { background: transparent; }
.main-navigation .main-nav ul li a {
	color: var(--nb-ink); opacity: .8; font-size: 13px; font-weight: 400; letter-spacing: -0.01em;
	line-height: 52px; padding: 0 12px; transition: opacity .2s;
}
.main-navigation .main-nav ul li:hover > a { opacity: 1; background: transparent; color: var(--nb-ink); text-decoration: none; }
.main-navigation .main-nav ul li.current-menu-item > a,
.main-navigation .main-nav ul li.current-menu-ancestor > a,
.main-navigation .main-nav ul li.current-post-ancestor > a { opacity: 1; color: var(--nb-ink); background: transparent; font-weight: 600; }
.main-navigation .menu-toggle { color: var(--nb-ink); background: transparent; padding: 0 4px; }

@media (max-width: 768px) {
	.admin-bar .site-header { top: 0; position: relative; }
	body .inside-header { min-height: 48px; }
	.main-navigation .main-nav ul li a { line-height: 1.4; padding: 14px 22px; font-size: 17px; font-weight: 600; opacity: 1; border-top: 1px solid rgba(0,0,0,.06); }
	.main-navigation.toggled .main-nav > ul { background: rgba(255,255,255,.96); }
}

/* ───────── 홈·목록 배경 ───────── */
.blog .site-content, .archive .site-content, .search .site-content { background: var(--nb-bg-alt); }
.blog #page, .archive #page, .search #page { background: var(--nb-bg-alt); }

.nb-hero { max-width: 820px; margin: 0 auto; padding: 88px 0 64px; text-align: center; }
.nb-hero__eyebrow {
	display: block; font-size: 17px; font-weight: 600; color: var(--nb-accent);
	letter-spacing: -0.01em; margin-bottom: 10px;
}
.nb-hero__title {
	font-size: clamp(34px, 6vw, 56px); font-weight: 700; line-height: 1.12; letter-spacing: -0.035em;
	margin: 0 auto 18px; max-width: 18ch;
}
.nb-hero__desc { color: var(--nb-sub); font-size: 21px; line-height: 1.45; margin: 0 auto 32px; max-width: 34ch; }
.nb-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
.nb-chips a {
	display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; border-radius: 980px;
	background: var(--nb-card); color: var(--nb-ink); font-size: 14px; font-weight: 500;
	box-shadow: 0 1px 3px rgba(0,0,0,.06); transition: box-shadow .25s, transform .25s;
}
.nb-chips a:hover { text-decoration: none; transform: translateY(-1px); box-shadow: var(--nb-shadow); }
.nb-chips small { color: var(--nb-faint); font-size: 12px; }

.nb-section-title { max-width: var(--nb-wide); margin: 0 auto 20px; font-size: 28px; font-weight: 700; letter-spacing: -0.03em; }

/* ───────── 글 카드 목록 ───────── */
.blog .site-main, .archive .site-main, .search .site-main {
	max-width: var(--nb-wide); margin: 0 auto;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px;
}
.blog .site-main > :not(article), .archive .site-main > :not(article), .search .site-main > :not(article) { grid-column: 1 / -1; }
.blog article.post, .archive article.post, .search article {
	margin: 0 !important; padding: 0; background: var(--nb-card); border-radius: var(--nb-radius);
	box-shadow: var(--nb-shadow); transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s;
	position: relative; display: flex;
}
.blog article.post:hover, .archive article.post:hover, .search article:hover { transform: translateY(-4px); box-shadow: var(--nb-shadow-hover); }
.blog .inside-article, .archive .inside-article, .search .inside-article { padding: 32px 30px 30px !important; display: flex; flex-direction: column; width: 100%; }
.blog .entry-header .entry-title, .archive .entry-header .entry-title, .search .entry-title {
	font-size: 22px; font-weight: 700; line-height: 1.35; letter-spacing: -0.025em; margin: 8px 0 10px;
}
.blog .entry-title a, .archive .entry-title a, .search .entry-title a { color: var(--nb-ink); }
.blog .entry-title a::after, .archive .entry-title a::after, .search .entry-title a::after { content: ""; position: absolute; inset: 0; border-radius: var(--nb-radius); }
.blog .entry-title a:hover, .archive .entry-title a:hover, .search .entry-title a:hover { text-decoration: none; }
.blog .entry-summary, .archive .entry-summary, .search .entry-summary {
	color: var(--nb-sub); font-size: 15px; line-height: 1.6; margin: 0 0 18px;
	display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.blog .entry-summary p, .archive .entry-summary p, .search .entry-summary p { margin: 0; }
.blog .inside-article > *, .archive .inside-article > *, .search .inside-article > * { margin-bottom: 0; }
.blog .entry-summary, .archive .entry-summary, .search .entry-summary { margin-top: 10px; }
.read-more-container, footer.entry-meta, .post-image { display: none; }

.nb-cat { display: inline-block; font-size: 12px; font-weight: 600; color: var(--nb-accent); position: relative; z-index: 1; }
.nb-meta { font-size: 13px; color: var(--nb-faint); }
.nb-meta time + time::before { content: "·"; margin: 0 6px; }
.entry-header > .entry-meta { display: none; }

.archive .page-header, .search .page-header {
	max-width: 820px; margin: 0 auto !important; padding: 80px 0 48px !important; text-align: center; border: 0;
}
.page-header .page-title { font-size: clamp(32px, 5vw, 48px); font-weight: 700; letter-spacing: -0.035em; margin: 0; }
.taxonomy-description { color: var(--nb-sub); font-size: 19px; margin-top: 12px; }

.paging-navigation { margin: 40px auto 0 !important; }
.nav-links { display: flex; gap: 8px; justify-content: center; }
.nav-links .page-numbers {
	min-width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 980px; background: var(--nb-card); color: var(--nb-ink); font-size: 14px; box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.nav-links .page-numbers:hover { text-decoration: none; }
.nav-links .page-numbers.current { background: var(--nb-ink); color: #fff; }

.no-results { max-width: 560px; margin: 0 auto; text-align: center; padding: 20px 0 40px; }
.no-results .page-header { border: 0; text-align: center; padding: 0 0 8px !important; }
.no-results .page-title { font-size: 24px; }

/* 검색창 */
.search-form { display: flex; gap: 8px; max-width: 420px; margin: 16px auto 0; }
.search-form .search-field { flex: 1; border: 1px solid var(--nb-line); border-radius: 12px; background: #fff; padding: 12px 16px; font-size: 16px; }
.search-form .search-field:focus { border-color: var(--nb-accent); outline: 4px solid color-mix(in srgb, var(--nb-accent) 18%, transparent); }
.search-form .search-submit { border-radius: 12px; background: var(--nb-ink); padding: 0 18px; }

/* ───────── 글 본문 ───────── */
.single .site-main, .page .site-main { max-width: var(--nb-read); margin: 0 auto; }
.single .inside-article, .page .inside-article { padding: 0 !important; }
.nb-crumbs { font-size: 12px; color: var(--nb-faint); margin-bottom: 20px; }
.nb-crumbs a { color: var(--nb-faint); }
.nb-crumbs a:hover { color: var(--nb-ink); }
.nb-crumbs .separator { margin: 0 6px; opacity: .6; }

.single .entry-header, .page .entry-header { padding: 72px 0 40px; margin-bottom: 40px; border-bottom: 1px solid var(--nb-line); }
.single .nb-cat { font-size: 14px; }
.single h1.entry-title, .page h1.entry-title {
	font-size: clamp(32px, 5vw, 48px); font-weight: 700; line-height: 1.16; letter-spacing: -0.035em; margin: 10px 0 18px;
}
.single .nb-meta { font-size: 14px; }

.entry-content { font-size: 18px; line-height: 1.8; }
.entry-content > * + * { margin-top: 1.2em; }
.entry-content p { margin-bottom: 0; }
.single .entry-content > p:first-child { font-size: 20px; line-height: 1.7; color: var(--nb-ink); }
.entry-content h2 {
	font-size: 30px; font-weight: 700; line-height: 1.3; letter-spacing: -0.03em;
	margin: 2.6em 0 .7em; scroll-margin-top: 80px;
}
.entry-content > h2:first-child { margin-top: 0; }
.entry-content h3 { font-size: 21px; font-weight: 700; letter-spacing: -0.02em; margin: 1.9em 0 .5em; scroll-margin-top: 80px; }
.entry-content strong { color: var(--nb-ink); font-weight: 700; }
.entry-content a { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--nb-accent) 40%, transparent); text-underline-offset: 3px; }
.entry-content ul, .entry-content ol { margin-left: 1.3em; }
.entry-content li + li { margin-top: .4em; }
.entry-content blockquote {
	border: 0; background: var(--nb-bg-alt); border-radius: var(--nb-radius);
	padding: 24px 28px; margin: 1.6em 0 0; font-style: normal; font-size: 17px; color: var(--nb-ink);
}
.entry-content img { border-radius: var(--nb-radius); }

/* 표 */
.entry-content .wp-block-table {
	overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1.6em 0 0;
	border-radius: 14px; background: var(--nb-bg-alt); padding: 6px 0;
}
.entry-content table { width: 100%; border-collapse: collapse; border: 0; font-size: 15px; line-height: 1.55; min-width: 480px; margin: 0; }
.entry-content th, .entry-content td { border: 0; padding: 13px 20px; text-align: left; vertical-align: top; }
.entry-content tbody tr + tr td { border-top: 1px solid rgba(0,0,0,.07); }
.entry-content thead th { color: var(--nb-sub); font-size: 13px; font-weight: 600; background: transparent; border-bottom: 1px solid rgba(0,0,0,.1); }

/* 목차 */
.nb-toc { background: var(--nb-bg-alt); border-radius: var(--nb-radius); padding: 24px 28px; margin: 36px 0 !important; }
.nb-toc__title { font-size: 13px; font-weight: 600; color: var(--nb-sub); margin: 0 0 10px; }
.nb-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: toc; font-size: 16px; }
.nb-toc li { counter-increment: toc; display: flex; gap: 12px; }
.nb-toc li::before { content: counter(toc, decimal-leading-zero); color: var(--nb-faint); font-variant-numeric: tabular-nums; font-size: 14px; padding-top: 2px; }
.nb-toc li + li { margin-top: 8px; }
.nb-toc a { color: var(--nb-ink); text-decoration: none !important; }
.nb-toc a:hover { color: var(--nb-accent); }

/* 버튼 (pill) */
.cta-btn { margin: 36px 0 !important; }
.cta-btn a, .wp-block-button__link {
	display: inline-block; background: var(--nb-accent); color: #fff !important; text-decoration: none !important;
	padding: 14px 30px; border-radius: 980px; font-weight: 500; font-size: 17px; letter-spacing: -0.01em;
	min-width: 240px; text-align: center; transition: filter .2s, transform .2s;
}
.cta-btn a:hover, .wp-block-button__link:hover { filter: brightness(1.08); transform: scale(1.015); }
.cta-btn a::after { content: " ›"; }

/* 글 끝 블록 */
.entry-content h2:has(+ .related-posts),
.entry-content h2:has(+ .sources) { font-size: 21px; margin-top: 3em; }
.related-posts { list-style: none; margin: 0 !important; padding: 8px 24px; background: var(--nb-bg-alt); border-radius: var(--nb-radius); }
.related-posts li { margin: 0 !important; }
.related-posts li + li { border-top: 1px solid rgba(0,0,0,.07); }
.related-posts a { display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; color: var(--nb-ink); text-decoration: none !important; font-weight: 500; font-size: 16px; }
.related-posts a::after { content: "›"; color: var(--nb-faint); font-size: 20px; line-height: 1; }
.related-posts a:hover { color: var(--nb-accent); }
.sources { list-style: none; margin: 0 !important; padding: 0; }
.sources li { font-size: 13px; color: var(--nb-faint); margin: 0 0 4px !important; }
.sources a { color: var(--nb-sub); word-break: break-all; text-decoration: none !important; }
.article-footer {
	border-top: 1px solid var(--nb-line); padding-top: 20px; margin-top: 48px !important;
	font-size: 13px !important; color: var(--nb-faint) !important; line-height: 1.7;
}
.affiliate-notice { font-size: 13px !important; color: var(--nb-faint) !important; }

.post-navigation, .comments-area { display: none; }

/* 고정 페이지 (소개·정책) */
.page .entry-content { font-size: 17px; }
.page .entry-content h2 { font-size: 24px; margin-top: 2em; }
.wpcf7 label { font-size: 14px; color: var(--nb-sub); }
.wpcf7 input[type=text], .wpcf7 input[type=email], .wpcf7 textarea {
	width: 100%; border: 1px solid var(--nb-line); border-radius: 12px; padding: 13px 16px; background: #fff; font-family: inherit; font-size: 16px;
}
.wpcf7 input:focus, .wpcf7 textarea:focus { border-color: var(--nb-accent); outline: 4px solid color-mix(in srgb, var(--nb-accent) 18%, transparent); }
.wpcf7 input[type=submit] { background: var(--nb-accent); color: #fff; border: 0; border-radius: 980px; padding: 13px 32px; font-size: 16px; cursor: pointer; }

/* 404 */
.error404 .site-main { max-width: 560px; margin: 0 auto; text-align: center; padding: 100px 0 40px; }
.error404 .entry-title { font-size: 36px; font-weight: 700; letter-spacing: -0.03em; }
.error404 .entry-header { border: 0; padding: 0; margin-bottom: 8px; }

/* ───────── 푸터 ───────── */
.nb-footer { background: var(--nb-bg-alt); color: var(--nb-sub); font-size: 12px; line-height: 1.6; }
.single .nb-footer, .page .nb-footer, .error404 .nb-footer { margin-top: 0; }
.blog .nb-footer, .archive .nb-footer, .search .nb-footer { border-top: 1px solid var(--nb-line); }
.nb-footer__in { max-width: var(--nb-wide); margin: 0 auto; padding: 22px 22px 28px; }
.nb-footer__top { padding-bottom: 16px; border-bottom: 1px solid var(--nb-line); }
.nb-footer__brand { font-weight: 600; color: var(--nb-ink); font-size: 13px; }
.nb-footer__desc { margin: 2px 0 0; }
.nb-footer__menu { padding: 14px 0 10px; }
.nb-footer__menu ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px 20px; }
.nb-footer__menu a { color: var(--nb-sub); }
.nb-footer__menu a:hover { color: var(--nb-ink); }
.nb-footer__note { margin: 0 0 6px; color: var(--nb-faint); }
.nb-footer__copy { margin: 0; color: var(--nb-faint); }
.site-footer { background: transparent; padding: 0; }
.site-info, .footer-bar, .site-footer > :not(.nb-footer) { display: none; }

/* ───────── 모바일 ───────── */
@media (max-width: 768px) {
	body { font-size: 16px; }
	body .site.grid-container .site-content { padding: 0 20px 80px; }
	.nb-hero { padding: 56px 0 40px; }
	.nb-hero__desc { font-size: 17px; }
	.nb-section-title { font-size: 22px; }
	.blog .site-main, .archive .site-main, .search .site-main { grid-template-columns: 1fr; gap: 16px; }
	.blog .inside-article, .archive .inside-article, .search .inside-article { padding: 26px 24px 24px !important; }
	.blog .entry-header .entry-title, .archive .entry-header .entry-title, .search .entry-title { font-size: 19px; }
	.single .entry-header, .page .entry-header { padding: 40px 0 28px; margin-bottom: 28px; }
	.entry-content { font-size: 17px; }
	.single .entry-content > p:first-child { font-size: 18px; }
	.entry-content h2 { font-size: 24px; }
	.nb-toc { padding: 20px 22px; }
	.cta-btn a { display: block; min-width: 0; }
	.related-posts { padding: 4px 20px; }
}

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; }
}
