/*
Theme Name: GeneratePress Child - Noteconomy
Template: generatepress
Version: 1.2.0
Text Domain: noteconomy
*/

:root{
	--note-bg:#f5f7fb;
	--note-surface:#ffffff;
	--note-text:#111827;
	--note-muted:#6b7280;
	--note-line:#e5e7eb;
	--note-primary:#0f3d91;
	--note-primary-dark:#0a2b68;
	--note-accent:#e8f0ff;

	--note-max:1060px;
	--note-gutter:28px;

	--note-radius:18px;
	--note-radius-lg:24px;
	--note-shadow:0 10px 30px rgba(15,23,42,.06);
	--note-shadow-sm:0 4px 14px rgba(15,23,42,.05);
	--note-gap:22px;
}

*,
*::before,
*::after{
	box-sizing:border-box;
}

html{
	scroll-behavior:smooth;
}

body{
	margin:0;
	background:var(--note-bg);
	color:var(--note-text);
	font-family:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Noto Sans KR","Segoe UI",sans-serif;
	font-size:16px;
	line-height:1.7;
	word-break:keep-all;
}

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

a{
	color:inherit;
	text-decoration:none;
}

a:hover{
	color:var(--note-primary);
}

/* 기본 숨김 */
.top-bar,
.secondary-navigation,
.site-description,
.main-navigation .menu-bar-items,
.main-navigation .search-item,
.navigation-search{
	display:none !important;
}

/* 접근성 */
.skip-link{
	position:absolute;
	left:-9999px;
	top:auto;
}

.skip-link:focus{
	left:16px;
	top:16px;
	z-index:9999;
	background:#111827;
	color:#fff;
	padding:10px 14px;
	border-radius:8px;
}

/* 공통 래퍼 */
.site{
	background:transparent;
}

.grid-container,
.inside-site-content{
	width:100%;
	max-width:calc(var(--note-max) + (var(--note-gutter) * 2));
	margin-left:auto;
	margin-right:auto;
	padding-left:var(--note-gutter);
	padding-right:var(--note-gutter);
}

.site-content{
	padding:0;
}

.inside-site-content{
	padding-top:28px;
	padding-bottom:48px;
}

#primary,
.content-area,
.site-main,
.note-home,
.note-article,
.note-page-wrap,
.note-archive-header{
	width:100%;
	float:none;
	margin-left:auto;
	margin-right:auto;
}

/* 헤더 */
.site-header,
.note-header{
	background:#fff;
	border-bottom:1px solid var(--note-line);
}

.note-header{
	position:sticky;
	top:0;
	z-index:100;
}

.inside-header,
.note-header .inside-header{
	padding:18px 20px 14px;
	display:flex;
	align-items:center;
	justify-content:center;
	text-align:center;
}

.site-branding,
.note-header .site-branding{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:10px;
}

.site-logo{
	margin-bottom:6px;
}

.custom-logo{
	max-height:54px;
	width:auto;
}

.main-title,
.main-title a,
.note-header .main-title,
.note-header .main-title a{
	margin:0;
	font-size:34px;
	line-height:1.2;
	font-weight:800;
	letter-spacing:-0.03em;
	color:#111827 !important;
}

/* 메뉴 */
.main-navigation,
#site-navigation.main-navigation{
	background:#fff;
	border-bottom:1px solid var(--note-line);
}

.main-navigation .inside-navigation,
#site-navigation .inside-navigation{
	padding:0 12px;
	justify-content:center;
}

.main-navigation .main-nav,
#site-navigation .main-nav{
	margin:0 auto;
}

.main-navigation .main-nav ul,
#site-navigation .main-nav > ul{
	display:flex;
	flex-wrap:wrap;
	justify-content:center;
	align-items:center;
	gap:6px 12px;
	margin:0;
	padding:0;
	list-style:none;
}

.main-navigation .main-nav ul li,
#site-navigation .main-nav > ul > li{
	margin:0;
	padding:0;
	list-style:none;
}

.main-navigation .main-nav ul li a,
#site-navigation .main-nav > ul > li > a{
	display:inline-flex;
	align-items:center;
	padding:14px 14px;
	font-size:15px;
	font-weight:700;
	color:#1f2937;
	border-radius:10px;
	line-height:1.2;
	text-decoration:none;
}

.main-navigation .main-nav ul li[class*="current"] > a,
.main-navigation .main-nav ul li a:hover,
#site-navigation .main-nav > ul > li.current-menu-item > a,
#site-navigation .main-nav > ul > li.current-menu-ancestor > a,
#site-navigation .main-nav > ul > li.current-cat > a,
#site-navigation .main-nav > ul > li > a:hover{
	color:var(--note-primary);
	background:var(--note-accent);
}

#site-navigation .menu-toggle{
	width:100%;
	justify-content:center;
	background:#fff;
	color:#111827;
	border:0;
	padding:14px 0;
}

/* 홈 공통 */
.note-home{
	width:100%;
}

.note-section{
	margin-top:40px;
}

.note-section__header{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	margin-bottom:18px;
}

.note-section__title{
	margin:0;
	font-size:28px;
	line-height:1.25;
	font-weight:800;
	letter-spacing:-0.03em;
}

.note-section__desc{
	margin:6px 0 0;
	font-size:14px;
	color:var(--note-muted);
}

.note-section__link{
	font-size:14px;
	font-weight:700;
	color:var(--note-primary);
}

/* 홈 메인 레이아웃 */
.note-home-hero,
.note-home-hero--balanced{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr);
	gap:var(--note-gap);
	align-items:stretch;
}

.note-home-hero__main{
	min-width:0;
	display:flex;
}

.note-home-hero__main .note-card{
	width:100%;
	height:100%;
}

.note-home-hero__side,
.note-home-hero__side--grid{
	min-width:0;
	display:grid;
	grid-template-columns:repeat(2, minmax(0,1fr));
	grid-template-rows:repeat(2, minmax(0,1fr));
	gap:18px;
	height:100%;
	align-content:stretch;
}

/* 카드 */
.note-card{
	background:var(--note-surface);
	border:1px solid var(--note-line);
	border-radius:var(--note-radius);
	overflow:hidden;
	box-shadow:var(--note-shadow-sm);
	height:100%;
	display:flex;
	flex-direction:column;
}

.note-card--hero{
	box-shadow:var(--note-shadow);
}

.note-card__thumb,
.note-card__thumb--empty{
	position:relative;
	overflow:hidden;
	background:#e5e7eb;
	aspect-ratio:16 / 9;
	flex-shrink:0;
}

.note-card__thumb img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .35s ease;
}

.note-card:hover .note-card__thumb img{
	transform:scale(1.04);
}

.note-card__thumb--empty{
	display:flex;
	align-items:center;
	justify-content:center;
}

.note-card__thumb--empty span{
	font-size:20px;
	font-weight:800;
	color:#94a3b8;
	letter-spacing:-0.03em;
}

.note-card__body{
	padding:18px 18px 20px;
	display:flex;
	flex-direction:column;
	flex:1;
}

.note-card__cat{
	display:inline-flex;
	align-items:center;
	align-self:flex-start;
	font-size:12px;
	font-weight:800;
	color:var(--note-primary);
	background:var(--note-accent);
	padding:7px 10px;
	border-radius:999px;
	margin-bottom:12px;
}

.note-card__title{
	margin:0 0 10px;
	font-size:22px;
	line-height:1.35;
	font-weight:800;
	letter-spacing:-0.03em;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.note-card__excerpt{
	margin:0;
	font-size:14px;
	line-height:1.7;
	color:var(--note-muted);
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

.note-card__meta{
	margin-top:auto;
	padding-top:14px;
	display:flex;
	flex-wrap:wrap;
	gap:8px 12px;
	font-size:13px;
	color:var(--note-muted);
}

/* 홈 왼쪽 큰 카드 */
.note-card--hero .note-card__body{
	padding:20px 20px 22px;
}

.note-card--hero .note-card__title{
	font-size:26px;
	-webkit-line-clamp:2;
}

.note-card--hero .note-card__excerpt{
	font-size:15px;
	-webkit-line-clamp:2;
}

/* 홈 오른쪽 4개 카드 */
.note-home-hero__side--grid .note-card,
.note-home-hero__side .note-card,
.note-card--mini{
	height:100%;
}

.note-home-hero__side--grid .note-card__body,
.note-home-hero__side .note-card__body,
.note-card--mini .note-card__body{
	padding:14px 14px 16px;
}

.note-home-hero__side--grid .note-card__cat,
.note-home-hero__side .note-card__cat,
.note-card--mini .note-card__cat{
	margin-bottom:10px;
	padding:6px 9px;
	font-size:11px;
}

.note-home-hero__side--grid .note-card__title,
.note-home-hero__side .note-card__title,
.note-card--mini .note-card__title{
	font-size:16px;
	line-height:1.4;
	margin-bottom:6px;
	-webkit-line-clamp:2;
}

.note-home-hero__side--grid .note-card__excerpt,
.note-home-hero__side .note-card__excerpt,
.note-card--mini .note-card__excerpt{
	display:none;
}

.note-home-hero__side--grid .note-card__meta,
.note-home-hero__side .note-card__meta,
.note-card--mini .note-card__meta{
	padding-top:8px;
	font-size:12px;
}

/* 일반 그리드 카드 */
.note-card--grid .note-card__title{
	font-size:18px;
}

.note-post-grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0,1fr));
	gap:20px;
}

.note-category-feature{
	display:grid;
	grid-template-columns:minmax(0,1fr) minmax(0,1fr);
	gap:var(--note-gap);
	align-items:stretch;
}

.note-category-feature__side{
	display:grid;
	grid-template-columns:repeat(2, minmax(0,1fr));
	grid-template-rows:repeat(2, minmax(0,1fr));
	gap:18px;
}

/* 빈 카드 */
.note-empty-card{
	background:#fff;
	border:1px solid var(--note-line);
	border-radius:var(--note-radius);
	box-shadow:var(--note-shadow-sm);
	min-height:220px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:24px;
}

.note-empty-card__inner{
	text-align:center;
	max-width:520px;
}

.note-empty-card__title{
	margin:0 0 8px;
	font-size:22px;
	line-height:1.35;
	font-weight:800;
	letter-spacing:-0.03em;
	color:#111827;
}

.note-empty-card__desc{
	margin:0;
	font-size:14px;
	color:var(--note-muted);
	line-height:1.7;
}

/* 상세 페이지 */
.note-article{
	background:#fff;
	border:1px solid var(--note-line);
	border-radius:var(--note-radius-lg);
	box-shadow:var(--note-shadow);
	padding:28px;
}

.note-article__cat{
	display:inline-flex;
	align-items:center;
	font-size:13px;
	font-weight:800;
	color:var(--note-primary);
	background:var(--note-accent);
	padding:7px 11px;
	border-radius:999px;
	margin-bottom:14px;
}

.note-article__title{
	margin:0;
	font-size:clamp(30px,4vw,44px);
	line-height:1.25;
	font-weight:900;
	letter-spacing:-0.04em;
}

.note-article__meta{
	margin-top:14px;
	display:flex;
	flex-wrap:wrap;
	gap:10px 16px;
	font-size:14px;
	color:var(--note-muted);
}

.note-article__summary{
	display:none !important;
}

.note-article__thumb{
	margin:0 0 28px;
	border-radius:20px;
	overflow:hidden;
	background:#e5e7eb;
}

.note-article__thumb img{
	width:100%;
	height:auto;
	display:block;
}

.note-article__content{
	font-size:17px;
	line-height:1.9;
	color:#111827;
}

.note-article__content h2,
.note-article__content h3,
.note-article__content h4{
	margin-top:1.8em;
	margin-bottom:0.7em;
	line-height:1.4;
	font-weight:800;
	letter-spacing:-0.02em;
}

.note-article__content p{
	margin:0 0 1.2em;
}

.note-article__content ul,
.note-article__content ol{
	padding-left:1.3em;
	margin:0 0 1.2em;
}

.note-article__content blockquote{
	margin:1.4em 0;
	padding:16px 18px;
	border-left:4px solid var(--note-primary);
	background:#f8fbff;
	color:#374151;
	border-radius:0 12px 12px 0;
}

.note-article__content img{
	border-radius:14px;
	margin:22px auto;
}

.note-article__content a{
	color:var(--note-primary);
	text-decoration:underline;
	text-underline-offset:2px;
}

.note-author-box{
	margin-top:28px;
	padding:22px;
	border:1px solid var(--note-line);
	border-radius:18px;
	background:#fafcff;
	display:flex;
	gap:16px;
	align-items:flex-start;
}

.note-author-box__avatar img,
.note-author-box__avatar .avatar{
	width:68px;
	height:68px;
	border-radius:50%;
	object-fit:cover;
}

.note-author-box__name{
	margin:0 0 6px;
	font-size:18px;
	font-weight:800;
}

.note-author-box__bio{
	margin:0;
	font-size:14px;
	color:var(--note-muted);
}

.note-related{
	margin-top:34px;
}

/* 카테고리 / 일반 페이지 */
.note-archive-header,
.note-page-wrap{
	background:#fff;
	border:1px solid var(--note-line);
	border-radius:var(--note-radius-lg);
	box-shadow:var(--note-shadow-sm);
	padding:26px;
}

.note-archive-title,
.note-page-title{
	margin:0;
	font-size:34px;
	line-height:1.25;
	font-weight:900;
	letter-spacing:-0.04em;
}

.note-archive-desc{
	margin-top:10px;
	color:var(--note-muted);
	font-size:15px;
}

.note-page-content{
	margin-top:18px;
	font-size:16px;
	line-height:1.9;
}

.note-archive-grid{
	display:grid;
	grid-template-columns:repeat(3, minmax(0,1fr));
	gap:22px;
}

.note-pagination{
	margin-top:28px;
	display:flex;
	justify-content:center;
}

.note-pagination .nav-links{
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}

.note-pagination .page-numbers{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:42px;
	height:42px;
	padding:0 14px;
	border-radius:10px;
	background:#fff;
	border:1px solid var(--note-line);
	color:#374151;
	font-weight:700;
}

.note-pagination .page-numbers.current,
.note-pagination .page-numbers:hover{
	background:var(--note-primary);
	border-color:var(--note-primary);
	color:#fff;
}

/* 푸터 */
.note-site-footer{
	margin-top:40px;
	background:#0f172a;
	color:#cbd5e1;
}

.note-footer-box{
	padding:40px 20px 34px;
}

.note-footer-box__top{
	display:grid;
	grid-template-columns:1.2fr 1fr;
	gap:24px;
	align-items:start;
}

.note-footer-box__title{
	margin:0 0 10px;
	color:#fff;
	font-size:24px;
	font-weight:800;
	letter-spacing:-0.03em;
}

.note-footer-box__desc{
	margin:0;
	font-size:15px;
	line-height:1.8;
	color:#cbd5e1;
}

.note-footer-nav{
	width:100%;
}

.note-footer-menu{
	list-style:none;
	margin:0;
	padding:0;
	display:grid;
	grid-template-columns:repeat(2, minmax(0,1fr));
	gap:10px 18px;
}

.note-footer-menu li{
	margin:0;
	padding:0;
	list-style:none;
}

.note-footer-menu a{
	color:#e5e7eb;
	font-size:14px;
	font-weight:600;
	text-decoration:none;
}

.note-footer-menu a:hover{
	color:#93c5fd;
}

.note-footer-box__bottom{
	margin-top:24px;
	padding-top:18px;
	border-top:1px solid rgba(255,255,255,0.1);
	font-size:13px;
	color:#94a3b8;
}

/* =========================================================
   상세기사 최종 고정
   - 부제목 왼쪽 세로줄
   - 대표이미지 중복 표시 방지
   ========================================================= */

.note-article__subtitle{
	display:block !important;
	margin:18px 0 24px !important;
	padding:2px 0 2px 18px !important;
	border-left:4px solid #111827 !important;
}

.note-article__subtitle h2.wp-block-heading,
.note-article__subtitle p.article-subtitle,
.note-article__subtitle h5{
	display:block !important;
	margin:0 !important;
	padding:0 !important;
	border:0 !important;
	background:none !important;
	font-size:30px !important;
	line-height:1.5 !important;
	font-weight:800 !important;
	letter-spacing:-0.03em !important;
	color:#1f2937 !important;
}

.note-article__subtitle strong,
.note-article__subtitle b{
	font-weight:800 !important;
	color:inherit !important;
}

.note-article__subtitle br{
	display:block !important;
	content:"" !important;
}

.note-article__thumb{
	display:block !important;
	margin:0 0 28px !important;
	border-radius:20px !important;
	overflow:hidden !important;
	background:#f3f4f6 !important;
}

.note-article__thumb img{
	display:block !important;
	width:100% !important;
	height:auto !important;
	margin:0 !important;
	border-radius:0 !important;
}

/* 본문 맨 위에 남은 부제목 중복 숨김 */
.note-article__content > h2.wp-block-heading:first-child,
.note-article__content > p.article-subtitle:first-child,
.note-article__content > h5:first-child{
	display:none !important;
}

/* 본문 맨 위 첫 이미지 중복 숨김 */
.note-article__content > figure:first-child,
.note-article__content > .wp-block-image:first-child,
.note-article__content > p:first-child img,
.note-article__content > div.wp-block-image:first-child{
	display:none !important;
}

/* 부제목 다음에 붙은 첫 이미지 중복 숨김 */
.note-article__content > h2.wp-block-heading:first-child + figure,
.note-article__content > h2.wp-block-heading:first-child + .wp-block-image,
.note-article__content > h2.wp-block-heading:first-child + div.wp-block-image,
.note-article__content > p.article-subtitle:first-child + figure,
.note-article__content > p.article-subtitle:first-child + .wp-block-image,
.note-article__content > p.article-subtitle:first-child + div.wp-block-image,
.note-article__content > h5:first-child + figure,
.note-article__content > h5:first-child + .wp-block-image,
.note-article__content > h5:first-child + div.wp-block-image{
	display:none !important;
}

/* 숨겨진 첫 이미지 뒤 캡션도 숨김 */
.note-article__content > figure:first-child + p.image-caption,
.note-article__content > figure:first-child + p.wp-element-caption,
.note-article__content > figure:first-child + figcaption,
.note-article__content > .wp-block-image:first-child + p.image-caption,
.note-article__content > .wp-block-image:first-child + p.wp-element-caption,
.note-article__content > .wp-block-image:first-child + figcaption,
.note-article__content > h2.wp-block-heading:first-child + figure + p.image-caption,
.note-article__content > h2.wp-block-heading:first-child + figure + p.wp-element-caption,
.note-article__content > h2.wp-block-heading:first-child + figure + figcaption,
.note-article__content > p.article-subtitle:first-child + figure + p.image-caption,
.note-article__content > p.article-subtitle:first-child + figure + p.wp-element-caption,
.note-article__content > p.article-subtitle:first-child + figure + figcaption,
.note-article__content > h5:first-child + figure + p.image-caption,
.note-article__content > h5:first-child + figure + p.wp-element-caption,
.note-article__content > h5:first-child + figure + figcaption{
	display:none !important;
}

/* 본문 이미지 일반 스타일 */
.note-article__content .wp-block-image,
.note-article__content figure{
	margin:22px 0 10px !important;
}

.note-article__content .wp-block-image img,
.note-article__content figure img{
	display:block !important;
	width:100% !important;
	height:auto !important;
	border-radius:14px !important;
	margin:0 auto !important;
}

.note-article__content .image-caption,
.note-article__content .wp-element-caption,
.note-article__content figcaption{
	margin:10px 0 24px !important;
	font-size:13px !important;
	line-height:1.6 !important;
	color:#6b7280 !important;
	text-align:center !important;
}

/* 모바일 */
@media (max-width:1100px){
	:root{
		--note-max:980px;
		--note-gutter:22px;
	}

	.note-home-hero,
	.note-home-hero--balanced,
	.note-category-feature,
	.note-footer-box__top{
		grid-template-columns:1fr;
	}

	.note-home-hero__side,
	.note-home-hero__side--grid,
	.note-category-feature__side,
	.note-post-grid,
	.note-archive-grid{
		grid-template-columns:repeat(2, minmax(0,1fr));
		grid-template-rows:auto;
	}
}

@media (max-width:1024px){
	.note-article__subtitle{
		padding-left:16px !important;
		border-left-width:4px !important;
	}

	.note-article__subtitle h2.wp-block-heading,
	.note-article__subtitle p.article-subtitle,
	.note-article__subtitle h5{
		font-size:24px !important;
		line-height:1.52 !important;
	}
}

@media (max-width:768px){
	:root{
		--note-gutter:16px;
	}

	.inside-header,
	.note-header .inside-header{
		padding:14px 0 12px;
	}

	.main-title,
	.main-title a,
	.note-header .main-title,
	.note-header .main-title a{
		font-size:24px;
	}

	.main-navigation .main-nav ul,
	#site-navigation .main-nav > ul{
		gap:4px 6px;
	}

	.main-navigation .main-nav ul li a,
	#site-navigation .main-nav > ul > li > a{
		padding:12px 10px;
		font-size:14px;
	}

	.inside-site-content{
		padding-top:20px;
		padding-bottom:34px;
	}

	.note-section__header{
		flex-direction:column;
		align-items:flex-start;
	}

	.note-section__title,
	.note-archive-title,
	.note-page-title{
		font-size:26px;
	}

	.note-home-hero__side,
	.note-home-hero__side--grid,
	.note-category-feature__side,
	.note-post-grid,
	.note-archive-grid,
	.note-footer-menu{
		grid-template-columns:1fr;
	}

	.note-card--hero .note-card__title{
		font-size:24px;
	}

	.note-article{
		padding:20px;
		border-radius:18px;
	}

	.note-article__title{
		font-size:30px;
	}

	.note-article__subtitle{
		margin:14px 0 18px !important;
		padding-left:14px !important;
		border-left-width:3px !important;
	}

	.note-article__subtitle h2.wp-block-heading,
	.note-article__subtitle p.article-subtitle,
	.note-article__subtitle h5{
		font-size:20px !important;
		line-height:1.55 !important;
		letter-spacing:-0.02em !important;
	}

	.note-article__thumb{
		margin-bottom:22px !important;
	}

	.note-author-box{
		flex-direction:column;
	}

	.note-empty-card{
		min-height:180px;
	}
}

/* 새로 추가된 부제목 형태(리스트, 일반 단락 등) 디자인 보정 */
.note-article__subtitle p,
.note-article__subtitle ul,
.note-article__subtitle blockquote {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
	font-size: 22px !important;
	line-height: 1.5 !important;
	font-weight: 800 !important;
	letter-spacing: -0.03em !important;
	color: #1f2937 !important;
	border: none !important;
	background: none !important;
}

.note-article__subtitle ul, 
.note-article__subtitle ol {
	padding-left: 1.2em !important;
	list-style-position: outside !important;
}

.note-article__subtitle li {
	margin-bottom: 6px !important;
}