/*
Theme Name: Noosium
Theme URI: https://noosium.com
Description: Noosium 커뮤니티 사이트 전용 자식 테마. Twenty Twenty-Five를 부모로 사용하며, 게시판형 목록 밀도 + 모던 카드 UI 여백감을 절충한 커스텀 레이아웃과 AI기본법 제31조제2항 대응 "AI 생성" 표시를 제공한다.
Author: CladeClaw
Template: twentytwentyfive
Requires at least: 6.7
Requires PHP: 7.2
Version: 2.4.6
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: noosium
*/

/* ==========================================================================
   디자인 토큰 — 아정당/월부 벤치마킹 후 정리한 반경·그림자 스케일.
   sm=칩/뱃지 내부용, md=목록 카드/썸네일, lg=사이드바·배너형 카드, pill=버튼/칩.
   ========================================================================== */

:root {
	--noosium-ink: #0c1b3a;
	--noosium-ink-2: #334155;
	--noosium-paper: #f6f7fb;
	--noosium-paper-2: #f1f2f8;
	--noosium-white: #ffffff;
	--noosium-mint: #eeebff;
	--noosium-mint-dark: #6757e8;
	--noosium-coral: #ff6b5e;
	--noosium-line: #e5e7eb;
	--noosium-radius-sm: 8px;
	--noosium-radius-md: 14px;
	--noosium-radius-lg: 20px;
	--noosium-radius-pill: 999px;
	--noosium-shadow-sm: 0 1px 2px rgba(12, 27, 58, 0.05);
	--noosium-shadow-md: 0 8px 24px rgba(12, 27, 58, 0.08);
	--noosium-shadow-glow: 0 6px 18px rgba(103, 87, 232, 0.22);
	--noosium-gradient-accent: linear-gradient(90deg, #6757e8, #8b7cf6);
}

/* ==========================================================================
   레이아웃 밀도 — 목록형(게시판) 행
   ========================================================================== */

.noosium-list {
	--noosium-list-row-gap: var(--wp--preset--spacing--30);
}

/* 리스트형(divider) 스타일 — 예전엔 각 아이템이 border-radius + top/bottom
   border + hover lift로 개별 "카드 박스"처럼 보였다. 대표님 요청으로 카드
   테두리/모서리를 없애고 글과 글 사이 구분선(border-bottom) 한 줄만 남긴다.
   (첫 아이템 위·마지막 아이템 아래 선은 아래 :first-child/:last-child에서 제거) */
.noosium-list-item {
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--border);
	transition: background-color 0.15s ease;
}

/* 에디토리얼(썸네일 있는) 아이템만 2행 구성 — 커뮤니티(한 줄) 변형은 제외 */
.noosium-list-item:not(.noosium-list-item--community) {
	flex-direction: column !important;
	align-items: stretch;
	justify-content: flex-start;
	gap: 0.2rem;
}

/* hover: 카드가 떠오르는 lift(translateY/shadow) 대신 아주 옅은 배경만 */
.noosium-list-item:hover {
	background: var(--wp--preset--color--page-bg);
}

/* 구분선은 아이템 "사이"에만 남긴다. 주의: article.noosium-list-item은 각
   <li>의 유일한 자식이라 .noosium-list-item:last-child는 모든 아이템에 매치돼
   구분선이 전부 사라진다(예전 nth-child 버그와 동일). 마지막 선 제거는 반드시
   li 레벨(:last-child)에서 스코프한다. 첫 아이템 위 선은 base에 border-top이
   없으므로 별도 처리 불필요. */
.noosium-board .wp-block-post-template > li:last-child .noosium-list-item {
	border-bottom: none;
}

.noosium-list-item__row {
	min-width: 0;
	flex: 1 1 auto;
	gap: var(--wp--preset--spacing--20) !important;
}

.noosium-list-item__thumb {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	border-radius: var(--noosium-radius-sm);
	overflow: hidden;
	background: var(--wp--preset--color--page-bg);
}

.noosium-list-item__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform 0.25s ease;
}

.noosium-list-item:hover .noosium-list-item__thumb img {
	transform: scale(1.05);
}

.noosium-list-item__main {
	min-width: 0;
	flex: 1 1 auto;
	gap: 0.2rem !important;
}

.noosium-list-item__main .wp-block-post-terms {
	margin: 0;
	font-size: 0.7rem;
	line-height: 1.2;
}

/* 데스크톱(2열 그리드) 제목 — 모바일과 같은 원리(아래 600px 이하 clamp)를
   여기도 적용한다. 기존엔 white-space:nowrap + ellipsis뿐이었는데, 그리드
   아이템(li)이 min-width:auto 기본값이라 nowrap 텍스트의 min-content 폭이
   1fr 트랙을 밀어내 카드 자체가 옆 컬럼/뷰포트 밖으로 삐져나가는 원인이었다
   (아래 .wp-block-post-template > li의 min-width:0과 세트로 고쳐야 함).
   overflow-wrap+word-break:keep-all(한글 단어 안 끊기)+max-width:100%로
   컨테이너 폭에 확실히 가두고, 2줄 clamp로 말줄임한다. */
.noosium-list-item__title {
	margin: 0 !important;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	font-size: 0.95rem !important;
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.25;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	white-space: normal;
	overflow: hidden;
	overflow-wrap: break-word;
	word-break: keep-all;
}

.noosium-list-item__title a {
	/* twentytwentyfive 기본값(inline-block)이면 AI 뱃지(inline-flex)와 같은
	   줄에 안 들어가고 통째로 다음 줄로 밀려난다 — inline이어야 뱃지 뒤에
	   자연스럽게 이어 붙는다. */
	display: inline;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.noosium-list-item__title a:hover {
	color: var(--wp--preset--color--highlight);
	text-decoration: underline;
}

.noosium-list-item__meta {
	flex: 0 0 auto;
	gap: 0.75rem !important;
	white-space: nowrap;
	color: var(--wp--preset--color--muted);
	font-size: 0.75rem;
	line-height: 1.3;
}

.noosium-list-item:not(.noosium-list-item--community) .noosium-list-item__meta {
	margin-left: calc(40px + var(--wp--preset--spacing--20));
}

.noosium-list-item__meta a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.noosium-list-item__meta a:hover {
	color: var(--wp--preset--color--highlight);
}

@media (max-width: 600px) {
	.noosium-list-item {
		flex-direction: column;
		gap: 0.2rem;
		/* 좌우 인셋은 부모 .noosium-board padding이 담당 → 여기선 0으로 두어
		   아이템·제목이 같은 좌측선에 맞고 구분선이 board 인셋 폭에 정렬된다 */
		padding: var(--wp--preset--spacing--20) 0;
	}

	.noosium-list-item__thumb {
		width: 36px;
		height: 36px;
		border-radius: var(--noosium-radius-sm);
	}

	.noosium-list-item__main .wp-block-post-terms {
		font-size: 0.66rem;
	}

	.noosium-list-item__meta {
		font-size: 0.72rem;
	}

	.noosium-list-item:not(.noosium-list-item--community) .noosium-list-item__meta {
		margin-left: 0;
	}

	/* .noosium-list-item__main은 column 방향 flex라 align-items 기본값이
	   flex-start(shrink-to-fit)라서, min-width:0만으로는 white-space:nowrap
	   제목의 실제 텍스트 폭을 못 줄인다 — 제목이 카드 밖으로 삐져나가
	   body 전체에 가로 스크롤이 생기던 원인. max-width:100%로 컨테이너
	   폭에 강제로 클램프해야 clamp가 실제로 작동한다.
	   한 줄 말줄임은 "AI 생성" 뱃지가 제목 앞 가로 공간을 먹어 제목이
	   과하게 짧게 보이는 문제가 있어 2줄 clamp로 전환 — 대신 폰트/줄간격을
	   줄이고 패딩을 타이트하게 잡아 아이템 전체 높이는 기존과 거의 동일하게
	   유지한다(박스 세로 크기를 키우지 않는다는 제약). */
	.noosium-list-item__title {
		max-width: 100%;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		white-space: normal;
		overflow: hidden;
		font-size: 0.88rem !important;
		line-height: 1.15;
	}

	/* 뱃지 자체를 없애거나 흐리게 하면 안 됨(AI기본법 제31조제2항 고지) —
	   텍스트는 유지한 채 모바일에서만 여백/폰트만 줄여 제목 폭을 확보한다. */
	.noosium-ai-badge {
		padding: 0.15em 0.5em;
		font-size: 0.62em;
		margin-right: 0.35em;
	}
}

/* ==========================================================================
   상단 메가메뉴 — 데스크톱 전용 "카테고리" 호버 드롭다운.
   .noosium-header-row--nav 전체가 782px 이하에서 display:none이라 별도
   미디어쿼리 없이 모바일에서는 자동으로 사라진다.
   ========================================================================== */

.noosium-megamenu {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.noosium-megamenu__trigger {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	border: none;
	background: none;
	padding: 0.5em 0.2em;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
	transition: color 0.15s ease;
}

.noosium-megamenu__chevron {
	transition: transform 0.15s ease;
}

.noosium-megamenu:hover .noosium-megamenu__trigger,
.noosium-megamenu:focus-within .noosium-megamenu__trigger {
	color: var(--wp--preset--color--highlight);
}

.noosium-megamenu:hover .noosium-megamenu__chevron,
.noosium-megamenu:focus-within .noosium-megamenu__chevron {
	transform: rotate(180deg);
}

.noosium-megamenu__panel {
	position: absolute;
	top: 100%;
	left: 0;
	z-index: 50;
	display: flex;
	flex-wrap: wrap;
	/* row-gap(그룹 세로 간격)은 좁게, column-gap(그룹 가로 간격)은 유지 —
	   대표님 요청: 카테고리 그룹 사이 세로 여백이 너무 넓어 축소. */
	gap: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	min-width: 300px;
	margin-top: 8px;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-lg);
	box-shadow: var(--noosium-shadow-md);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
}

.noosium-megamenu:hover .noosium-megamenu__panel,
.noosium-megamenu:focus-within .noosium-megamenu__panel {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.noosium-megamenu__group {
	min-width: 160px;
}

.noosium-megamenu__parent {
	display: inline-block;
	margin-bottom: 0.4rem;
	font-weight: 800;
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.noosium-megamenu__parent:hover {
	color: var(--wp--preset--color--highlight);
}

.noosium-megamenu__children {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}

.noosium-megamenu__children a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	transition: color 0.15s ease;
}

.noosium-megamenu__children a:hover {
	color: var(--wp--preset--color--highlight);
}

.noosium-megamenu__empty {
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* ==========================================================================
   헤더 2단 — 위: 로고+검색, 아래: 카테고리 메가메뉴+인기글(좌측 정렬)
   ========================================================================== */

.noosium-header-row--nav {
	padding-top: 0.35rem;
}

.noosium-header-row--nav .wp-block-navigation-item__content {
	display: inline-flex;
	align-items: center;
	padding: 0.5em 0.2em;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: -0.01em;
	line-height: 1.4;
}

/* ==========================================================================
   홈페이지 게시판 섹션 — 에디토리얼(상단) / 커뮤니티(하단) 카드
   ========================================================================== */

.noosium-board {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-lg);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
	box-shadow: var(--noosium-shadow-sm);
}

/* wp:query가 align:wide 없이 기본 layout:constrained 상속을 받으면
   theme.json의 contentSize(720px)로 클램프돼 이 카드(최대 1080px 내부폭)
   안에서 좌우로 크게 남는다 — 카드 내부폭을 그대로 채우도록 강제로 푼다. */
.noosium-board .noosium-list {
	width: 100%;
	max-width: none;
}

.noosium-board__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
	font-weight: 800;
	letter-spacing: -0.02em;
}

.noosium-board__desc {
	margin: 0.3rem 0 var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.noosium-board__empty {
	padding: var(--wp--preset--spacing--50) 0;
	color: var(--wp--preset--color--muted);
	text-align: left;
}

/* 커뮤니티는 아직 카테고리/글이 전혀 없어 빈 상태 메시지 한 줄만 뜬다 —
   에디토리얼과 같은 spacing--50 상하 패딩(최대 50px×2)을 그대로 쓰면
   카드 안에 불필요한 여백이 80~90px 남아 카드가 어색하게 커 보인다.
   에디토리얼은 실제 글로 채워져 이 규칙이 적용될 일이 없으므로
   커뮤니티에만 스코프해서 줄인다. */
.noosium-board--community .noosium-board__empty {
	padding: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--20);
}

/* 에디토리얼 전용 2열 그리드 — 최대 10개(좌 5 · 우 5). 커뮤니티는 1열
   포맷을 유지하므로 .noosium-board--editorial에만 스코프한다. */
.noosium-board--editorial .wp-block-post-template {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: var(--wp--preset--spacing--40);
	row-gap: var(--wp--preset--spacing--20);
	align-items: start;
	list-style: none;
	margin: 0;
	padding: 0;
}

/* is-layout-flow의 block-gap이 li에 margin-top으로 남아 그리드 행(row) 높이를
   어긋나게 만들었다 — 같은 행 두 아이템 top이 안 맞아 계단식(매스너리)처럼
   보이는 원인이었다. 행 간격은 위 row-gap이 전담하므로 여기서 0으로 리셋.
   min-width:0은 별개 버그 수정 — 그리드 아이템은 기본값이 min-width:auto라
   자식의 white-space:nowrap 제목이 요구하는 min-content 폭만큼 1fr 트랙을
   밀어내며 카드가 옆 컬럼/뷰포트 밖으로 삐져나갔다(우측 컬럼 긴 제목에서
   실측: li.right가 그리드 컨테이너 우측 경계를 200px+ 넘어섬). */
.noosium-board--editorial .wp-block-post-template > li {
	margin: 0;
	min-width: 0;
}


/* 커뮤니티 한 줄 아이템 — 썸네일 없이 뱃지+제목(가변) | 메타(고정) */

.noosium-list-item--community {
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
}

.noosium-list-item__line {
	min-width: 0;
	flex: 1 1 auto;
	gap: 0.6rem !important;
}

.noosium-list-item__title--inline {
	margin: 0 !important;
	min-width: 0;
	flex: 1 1 auto;
	font-size: var(--wp--preset--font-size--small) !important;
	font-weight: 700;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.noosium-list-item__title--inline a {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
}

.noosium-list-item__title--inline a:hover {
	color: var(--wp--preset--color--highlight);
}

.noosium-list-item__image-icon {
	display: inline-flex;
	color: var(--wp--preset--color--muted);
}

.noosium-list-item__image-icon svg {
	width: 14px;
	height: 14px;
	display: block;
}

@media (max-width: 600px) {
	/* 모바일에선 홈 게시판(.noosium-board--editorial/community)과 전용 피드
	   페이지(.noosium-feed) 모두 부모 padding에 의존하지 않는 full-bleed로
	   화면 좌우 끝까지 채우고, 카드형 chrome(테두리·둥근 모서리·그림자)을
	   없애 화면 폭 그대로의 리스트 섹션으로 만든다. 부모(<main>)의
	   has-global-padding(clamp(30px,5vw,50px), ≤600px에선 항상 floor 30px)이
	   만들던 좌우 여백을 calc(50% - 50vw)로 제거 — 부모 padding 값이 무엇이든
	   뷰포트 좌우 끝에 정확히 정렬. WP 코어가 constrained layout alignwide
	   자식에 margin auto !important를 걸어 일반 margin으론 못 이기므로
	   !important로 맞대응. 좌우 인셋(padding)은 spacing-50(=글로벌 패딩,
	   ≤600에서 30px)으로 둬 페이지 제목/부제 및 헤더 로고와 같은 좌변에
	   정렬시키고(이전엔 spacing-30=20px라 본문보다 10px 안쪽으로 어긋나 있었다),
	   구분선은 그 인셋 폭 안에서 그린다. */
	.noosium-board {
		margin-left: calc(50% - 50vw) !important;
		margin-right: calc(50% - 50vw) !important;
		max-width: none;
		border: none;
		border-radius: 0;
		box-shadow: none;
		padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50) var(--wp--preset--spacing--20);
	}

	/* 데스크톱 전용 2열 그리드 — 모바일은 기존 1열 스택 유지 */
	.noosium-board--editorial .wp-block-post-template {
		display: block;
	}

	/* 모바일에서 커뮤니티 아이템을 에디토리얼과 같은 2행 구조로 전환 —
	   1행: 카테고리배지+제목(최대 2줄), 2행: 메타(댓글수·이미지아이콘·작성자·날짜).
	   기존 한 줄 nowrap 말줄임이 좁은 화면에서 제목을 거의 못 보여주던 문제를
	   해소한다. 썸네일을 크게 띄우지 않고 이미지가 있을 때 메타의 작은 이미지
	   아이콘만 그대로 유지(대표님 요청). 좌우 인셋은 board padding이 담당. */
	.noosium-list-item--community {
		flex-direction: column;
		align-items: stretch;
		gap: 0.25rem;
		padding: var(--wp--preset--spacing--20) 0;
	}

	.noosium-list-item--community .noosium-list-item__line {
		align-items: flex-start;
		gap: 0.4rem !important;
	}

	/* 데스크톱 한 줄 말줄임(nowrap+ellipsis) 대신 모바일에선 2줄까지 노출. */
	.noosium-list-item--community .noosium-list-item__title--inline {
		white-space: normal;
		overflow: hidden;
		text-overflow: clip;
		display: -webkit-box;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 2;
		font-size: 0.88rem !important;
		line-height: 1.25;
	}

	.noosium-list-item--community .noosium-list-item__meta {
		gap: 0.5rem !important;
		font-size: 0.72rem;
	}

}

/* ==========================================================================
   모바일 하단 탭바 — 782px 이하에서만 노출, 데스크톱 헤더 내비 대체.
   커뮤니티/에디토리얼/카테고리/검색/로그인 5탭(로그인은 검색 오른쪽 끝,
   데스크톱 헤더의 .noosium-header-login과 같은 로직·아이콘을 공유).
   ========================================================================== */

.noosium-mobile-tabbar {
	display: none;
}

@media (max-width: 782px) {
	/* WP 코어가 wp:group layout:flex 지원용으로 `body .is-layout-flex {
	   display:flex }` 규칙을 내장 스타일로 출력하는데, 이건 상세도(0,1,1)가
	   .noosium-header-row--nav(0,1,0)보다 높아 그냥 두면 이 규칙이 진다. */
	.noosium-header-row--nav,
	.noosium-header-hide-mobile,
	.noosium-header-login {
		display: none !important;
	}

	body {
		padding-bottom: calc(60px + env(safe-area-inset-bottom));
		/* 리스트 아이템 제목 말줄임이 깨지면 flex item이 부모 폭을 밀어내
		   body 자체가 넓어지고 가로 스크롤이 생긴다 — 근본 원인(title의
		   min-width/width)은 위에서 고쳤지만, 다른 요소가 같은 실수를
		   반복해도 화면이 옆으로 안 밀리도록 안전장치를 둔다. */
		overflow-x: hidden;
	}

	.noosium-mobile-tabbar {
		display: flex;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 100;
		background: var(--wp--preset--color--base);
		border-top: 1px solid var(--wp--preset--color--border);
		padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
		justify-content: space-around;
	}

	.noosium-mobile-tab {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		gap: 2px;
		flex: 1 1 0;
		min-width: 0;
		padding: 4px 1px;
		border: none;
		background: none;
		color: var(--wp--preset--color--muted);
		text-decoration: none;
		white-space: nowrap;
		font-size: 0.62rem;
		font-weight: 600;
		font-family: inherit;
		cursor: pointer;
		-webkit-tap-highlight-color: transparent;
	}

	.noosium-mobile-tab__icon svg {
		width: 20px;
		height: 20px;
		display: block;
	}

	.noosium-mobile-tab.is-active {
		color: var(--wp--preset--color--highlight);
	}

	.noosium-mobile-tab.is-active .noosium-mobile-tab__icon {
		background: var(--wp--preset--color--highlight-soft);
		border-radius: var(--noosium-radius-pill);
		padding: 3px 12px;
		margin-bottom: 1px;
	}

	.noosium-mobile-search-dialog {
		border: none;
		border-radius: 16px;
		padding: 24px 20px 20px;
		width: min(92vw, 420px);
		background: var(--wp--preset--color--base);
	}

	.noosium-mobile-search-dialog::backdrop {
		background: rgba(12, 27, 58, 0.4);
	}

	.noosium-mobile-search-form {
		display: flex;
		gap: 8px;
	}

	.noosium-mobile-search-form input[type="search"] {
		flex: 1 1 auto;
		border: 1px solid var(--wp--preset--color--border);
		border-radius: 999px;
		padding: 0.6em 1em;
		font-size: 1rem;
		background: var(--wp--preset--color--base);
		color: var(--wp--preset--color--contrast);
	}

	.noosium-mobile-search-form button[type="submit"] {
		border-radius: 999px;
		padding: 0.6em 1.2em;
	}
}

/* ==========================================================================
   카테고리 목록 페이지(/categories/) — 하단 탭바 "카테고리" 탭의 전용
   풀페이지. 부모 카드(아이콘+이름) 안에 자식을 2열 텍스트 그리드로 배치.
   월부(weolbu.com) 모바일 카테고리 탭의 레이아웃만 참고, 기능은 없음.
   ========================================================================== */

.noosium-category-page-head {
	margin-bottom: var(--wp--preset--spacing--40);
}

.noosium-category-page-head__title {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 800;
	letter-spacing: -0.02em;
}

/* 전용 페이지(/community/, /editorial/) 제목 바로 아래 작은 회색 서브텍스트.
   게시판 설명 문구는 홈/카테고리 그리드엔 크게 노출하지 않고 이 자리에서만
   살짝 보이게 한다(대표님 요청). 위 .noosium-category-page-head의
   margin-bottom(spacing--40)을 음수 margin-top으로 당겨 제목에 바짝 붙인다. */
.noosium-page-subtitle {
	margin: calc(-1 * var(--wp--preset--spacing--30)) 0 var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.4;
}

.noosium-category-page-head__search {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 38px;
	height: 38px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-pill);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--muted);
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	transition: color 0.15s ease, border-color 0.15s ease;
}

.noosium-category-page-head__search svg {
	width: 18px;
	height: 18px;
}

.noosium-category-page-head__search:hover {
	color: var(--wp--preset--color--highlight);
	border-color: var(--wp--preset--color--highlight);
}

.noosium-category-cards {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--60);
}

.noosium-category-cards__empty {
	color: var(--wp--preset--color--muted);
}

/* 콘텐츠 그룹 박스(위: 커뮤니티, 아래: 에디토리얼) — 경계로 시각적으로 분리. */
.noosium-category-group {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-lg);
	padding: var(--wp--preset--spacing--40);
	box-shadow: var(--noosium-shadow-sm);
}

.noosium-category-group__label {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.9rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: var(--wp--preset--color--contrast);
}

.noosium-category-group__label::before {
	content: "";
	flex: 0 0 auto;
	width: 4px;
	height: 1.05em;
	border-radius: 2px;
	background: var(--wp--preset--color--highlight);
}

.noosium-category-group__items {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

/* 커뮤니티: 자식 없는 flat 카드가 많아 2열 그리드로 촘촘히 배치. */
.noosium-category-group--community .noosium-category-group__items {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}

/* 그룹 박스 안에서는 각 카드가 박스-인-박스로 무거워지지 않게 그림자를 줄인다. */
.noosium-category-group .noosium-category-card {
	box-shadow: none;
	padding: var(--wp--preset--spacing--30);
}

.noosium-category-group--community .noosium-category-card--flat {
	background: var(--wp--preset--color--base);
}

.noosium-category-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-lg);
	padding: var(--wp--preset--spacing--40);
	box-shadow: var(--noosium-shadow-sm);
}

.noosium-category-card__head {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin-bottom: 0.9rem;
}

.noosium-category-card__icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border-radius: var(--noosium-radius-sm);
	background: var(--wp--preset--color--highlight-soft);
	color: var(--wp--preset--color--highlight);
}

.noosium-category-card__icon svg {
	width: 18px;
	height: 18px;
	display: block;
}

.noosium-category-card__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	letter-spacing: -0.01em;
	/* "IT·컴퓨터" 같은 라벨이 단어 중간에서 끊기지 않게: 줄바꿈은 PHP가 심은
	   "·" 뒤 <wbr>에서만 허용하고, 그래도 2줄을 넘으면 말줄임으로 자른다. */
	word-break: keep-all;
	overflow-wrap: normal;
	min-width: 0;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	text-overflow: ellipsis;
}

a.noosium-category-card__title:hover {
	color: var(--wp--preset--color--highlight);
}

.noosium-category-card__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 1rem;
	row-gap: 0.85rem;
}

.noosium-category-card__child {
	color: var(--wp--preset--color--contrast);
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.6;
	word-break: keep-all;
	overflow-wrap: normal;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	text-overflow: ellipsis;
}

.noosium-category-card__child:hover {
	color: var(--wp--preset--color--highlight);
	text-decoration: underline;
}

.noosium-category-card--flat {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	text-decoration: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.noosium-category-card--flat .noosium-category-card__title {
	color: var(--wp--preset--color--contrast);
}

.noosium-category-card--flat:hover {
	border-color: var(--wp--preset--color--highlight);
	box-shadow: var(--noosium-shadow-glow);
}

.noosium-category-card--flat:hover .noosium-category-card__title {
	color: var(--wp--preset--color--highlight);
}

/* 모바일에서는 카드 폭이 좁아 라벨이 2줄로 넘어가기 쉬우니 여유를 더 준다. */
@media (max-width: 600px) {
	.noosium-category-card__title {
		font-size: 0.9375rem; /* medium(1rem)보다 1px 정도 작게 */
	}

	.noosium-category-card__child {
		font-size: 0.8125rem; /* small(0.875rem)보다 1px 정도 작게 */
	}
}

/* ==========================================================================
   커뮤니티/에디토리얼 통합 피드 페이지(/community/, /editorial/) — 인기글 핀.
   목록 자체는 홈 board와 같은 .noosium-list 스타일을 그대로 쓰고, 여기선
   상단 "인기글" 핀 섹션의 제목/간격만 얹는다.
   ========================================================================== */

.noosium-feed__pin-title {
	display: flex;
	align-items: center;
	gap: 0.4rem;
	margin: 0 0 0.6rem;
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 800;
	letter-spacing: -0.01em;
}

.noosium-feed__pinned {
	margin-bottom: var(--wp--preset--spacing--50);
	padding-bottom: var(--wp--preset--spacing--30);
	border-bottom: 1px solid var(--wp--preset--color--border);
}

/* ==========================================================================
   카테고리/태그 뱃지(post-terms) — 브랜드 하이라이트는 선택된 태그에만
   ========================================================================== */

.wp-block-post-terms a {
	display: inline-block;
	background: var(--wp--preset--color--highlight-soft);
	color: var(--wp--preset--color--highlight);
	border-radius: 999px;
	padding: 0.15em 0.7em;
	font-weight: 700 !important;
	text-decoration: none !important;
}

.wp-block-post-terms a:hover {
	background: var(--wp--preset--color--highlight);
	color: #fff;
}

/* ==========================================================================
   AI 생성 표시 — AI기본법 제31조제2항. 장식이 아니라 항상 눈에 띄어야 함.
   회색(너무 옅어서 무시됨)도, 보라 하이라이트(브랜드 액션 색과 혼동)도 쓰지 않는다.
   ========================================================================== */

.noosium-ai-badge {
	display: inline-flex;
	align-items: center;
	gap: 0.3em;
	margin-right: 0.55em;
	padding: 0.2em 0.65em;
	border-radius: var(--noosium-radius-pill);
	font-size: 0.7em;
	font-weight: 800;
	letter-spacing: 0.02em;
	vertical-align: middle;
	white-space: nowrap;
	text-decoration: none !important;
}

.noosium-ai-badge--generated {
	background: var(--wp--preset--color--contrast);
	color: #fff;
}

.noosium-ai-badge--assisted {
	background: transparent;
	color: var(--wp--preset--color--contrast);
	border: 1.5px solid var(--wp--preset--color--contrast);
}

/* ==========================================================================
   댓글 영역
   ========================================================================== */

.wp-block-comments-query-loop {
	max-width: var(--wp--style--global--content-size);
}

.wp-block-comments-query-loop .wp-block-comment-template > .wp-block-group {
	padding: var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 10px;
}

.wp-block-post-comments-form input:not([type="submit"]),
.wp-block-post-comments-form textarea {
	background: var(--wp--preset--color--base);
}

.wp-block-post-comments-form input[type="submit"] {
	border-radius: 6px;
}

/* ==========================================================================
   내비게이션 — 활성 탭에만 하이라이트
   ========================================================================== */

.wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.wp-block-navigation-item.current-menu-parent > .wp-block-navigation-item__content {
	color: var(--wp--preset--color--highlight);
	font-weight: 700;
}

/* ==========================================================================
   헤더 로고 + 상단 그라디언트 악센트 바
   ========================================================================== */

.wp-block-site-logo img {
	height: 40px;
	width: auto;
	object-fit: contain;
}

/* 로고 워드마크 이미지(noosium-logo-v4)에는 원본 768px 폭 중 좌측 56px가
   투명 여백으로 박혀 있어, 로고 블록의 박스 좌변은 본문 컨테이너(페이지 제목
   ·글로벌 패딩 라인)와 이미 정렬돼 있는데도 실제 "N" 글리프가 그 라인보다
   오른쪽에서 시작한다(모바일 ~7.8px, 데스크톱 ~13px 안쪽). 56/768 = 7.29%를
   translateX로 상쇄하면 표시 크기에 비례해 정확히 여백만큼 끌어와, 모든
   브레이크포인트에서 로고 시각 좌변이 컨테이너 좌변에 정렬된다(레이아웃 박스는
   그대로라 주변 요소에 영향 없음). */
.noosium-header .wp-block-site-logo img {
	transform: translateX(-7.29%);
}

/* 모바일 헤더 바 높이 축소 — 로고 이미지 크기 + 위아래 패딩을 함께 줄인다.
   782px 기준은 모바일 탭바/내비 전환과 동일 breakpoint. 데스크톱은 그대로.
   .noosium-header-inner의 padding-top/bottom은 블록 에디터가 인라인
   style="" 속성(var(--wp--preset--spacing--30))으로 박아둬서 일반 클래스
   규칙보다 우선 적용된다 — !important 없이는 여기 값이 전혀 안 먹혀 이전
   시도(패딩 10px 지정)가 실제로는 무시되고 있었다. 그 결과 로고+로그인
   버튼을 감싸는 constrained 래퍼의 기본 block-gap 마진(~19px)까지 겹쳐
   전체 바 높이가 95px 안팎으로 남아있었던 것 — 마진도 함께 0으로 죽여야
   실제로 절반(약 48px) 수준까지 줄어든다. */
@media (max-width: 782px) {
	.wp-block-site-logo img {
		height: 24px;
	}

	.noosium-header > .wp-block-group {
		margin-top: 0 !important;
	}

	.noosium-header-inner {
		padding-top: 8px !important;
		padding-bottom: 8px !important;
	}
}

.noosium-header-accent {
	height: 3px;
	background: var(--noosium-gradient-accent);
}

/* ==========================================================================
   헤더 검색창 — 내비게이션 링크와 같은 스케일, 배경 없이 보더만
   ========================================================================== */

.noosium-header-search {
	min-width: 230px;
}

.noosium-header-search .wp-block-search__inside-wrapper {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-pill);
	overflow: hidden;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.noosium-header-search .wp-block-search__inside-wrapper:focus-within,
.noosium-header-search .wp-block-search__inside-wrapper:hover {
	border-color: var(--wp--preset--color--highlight);
	box-shadow: var(--noosium-shadow-glow);
}

.noosium-header-search .wp-block-search__input {
	border: none !important;
	background: transparent !important;
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small) !important;
	padding: 0.3em 0 0.3em 0.9em !important;
	min-width: 0;
}

.noosium-header-search .wp-block-search__button {
	background: transparent !important;
	color: var(--wp--preset--color--muted) !important;
	border: none !important;
	box-shadow: none !important;
	padding: 0 0.7em !important;
}

.noosium-header-search .wp-block-search__button:hover,
.noosium-header-search .wp-block-search__button:focus {
	color: var(--wp--preset--color--highlight) !important;
}

.noosium-header-search .wp-block-search__button svg {
	fill: currentColor;
}

/* ==========================================================================
   헤더 로그인 버튼 — 검색창과 같은 우측 그룹(noosium-header-actions)에 배치.
   모바일(≤782px)에서는 검색창과 마찬가지로 완전히 숨긴다(위
   .noosium-header-hide-mobile 규칙에 .noosium-header-login을 함께 스코프) —
   동일 로그인/로그아웃/관리자 로직을 가진 5번째 탭이 하단
   탭바(patterns/mobile-tabbar.php)의 검색 우측에 대신 놓인다.
   ========================================================================== */

.noosium-header-login {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.45em 0.9em;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-pill);
	color: var(--wp--preset--color--contrast);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.noosium-header-login:hover,
.noosium-header-login:focus {
	border-color: var(--wp--preset--color--highlight);
	color: var(--wp--preset--color--highlight);
	box-shadow: var(--noosium-shadow-glow);
}

.noosium-header-login__icon svg {
	width: 16px;
	height: 16px;
	display: block;
}

/* ==========================================================================
   버튼 — 필(pill) 모양 + 호버 시 브랜드 하이라이트 글로우.
   사이드바 토글/모바일 탭바 버튼은 별도 유틸리티라 이 규칙에서 제외.
   ========================================================================== */

.wp-block-button__link,
.wp-block-search__button,
input[type="submit"],
button[type="submit"] {
	border-radius: var(--noosium-radius-pill) !important;
	transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.wp-block-button__link:hover,
input[type="submit"]:hover,
button[type="submit"]:hover {
	box-shadow: var(--noosium-shadow-glow);
	transform: translateY(-1px);
}

/* ==========================================================================
   포커스 링 — 하이라이트 색으로 통일
   ========================================================================== */

:where(.wp-site-blocks *:focus-visible) {
	outline-color: var(--wp--preset--color--highlight);
}

/* ==========================================================================
   작성자 표시(byline) — 단독 페이지, AI 페르소나 뱃지
   ========================================================================== */

.noosium-byline {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.noosium-byline__label {
	margin: 0;
}

.noosium-byline__avatar {
	flex: 0 0 auto;
	margin: 0;
}

.noosium-byline__avatar img {
	display: block;
	width: 36px;
	height: 36px;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 50%;
	object-fit: cover;
}

.wp-block-post-author-name a {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
	text-decoration: none;
}

.wp-block-post-author-name a:hover {
	color: var(--wp--preset--color--highlight);
}

.noosium-list-item__meta .wp-block-post-author-name {
	color: var(--wp--preset--color--muted);
}

.noosium-list-item__meta .wp-block-post-author-name a {
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}

.noosium-list-item__meta .wp-block-post-author-name a:hover {
	color: var(--wp--preset--color--highlight);
}

.noosium-persona-badge {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 0.4em;
	padding: 0.05em 0.45em;
	border-radius: 4px;
	font-size: 0.68em;
	font-weight: 800;
	letter-spacing: 0.02em;
	vertical-align: middle;
	background: var(--wp--preset--color--highlight-soft);
	color: var(--wp--preset--color--highlight);
}

/* ==========================================================================
   아카이브(카테고리·태그·작성자·날짜) 헤더
   목록 위에서 문맥만 알려주는 얇은 한 줄 헤더로 통일한다.
   ========================================================================== */

.noosium-archive-header {
	display: flex;
	align-items: center;
	gap: 10px;
	position: relative;
	min-height: 0;
	margin-bottom: 14px;
	padding: 0 0 12px;
	border: 0;
	border-bottom: 1px solid var(--noosium-line);
	border-radius: 0;
	background: transparent;
}

.noosium-archive-header__eyebrow {
	display: inline-flex;
	flex: 0 0 auto;
	margin: 0;
	padding: 0.22em 0.62em;
	border-radius: var(--noosium-radius-pill);
	background: var(--wp--preset--color--highlight-soft);
	box-shadow: none;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wp--preset--color--highlight);
}

.noosium-archive-header .wp-block-query-title {
	margin: 0;
	text-align: left;
	font-size: clamp(1.25rem, 2.2vw, 1.55rem);
	font-weight: 850;
	letter-spacing: -0.035em;
	line-height: 1.25;
}

/* ==========================================================================
   본문 타이포그래피 — 가독성. Carus Signal(Ghost 블로그) 참고: 여유로운
   줄간격 + 좌측 보더 악센트 인용구. 한글은 라틴 세리프 폴백이 없어 폰트는
   기존 시스템 산세리프를 유지하고, 크기/줄간격/인용구 스타일만 맞춘다.
   ========================================================================== */

.wp-block-post-content {
	font-size: 1.0625rem;
	line-height: 1.85;
	color: var(--wp--preset--color--contrast);
}

.wp-block-post-content p {
	margin: 0 0 1.5em;
}

.wp-block-post-content h2 {
	margin-top: 2.2em;
	margin-bottom: 0.7em;
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.4;
}

.wp-block-post-content h3 {
	margin-top: 1.8em;
	margin-bottom: 0.6em;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.wp-block-post-content blockquote {
	margin: 1.8em 0;
	padding: 0.2em 0 0.2em 1.3em;
	border-left: 4px solid var(--wp--preset--color--highlight);
	font-size: 1.05em;
}

.wp-block-post-content blockquote p:last-child {
	margin-bottom: 0;
}

.wp-block-post-content ul,
.wp-block-post-content ol {
	line-height: 1.85;
	margin-bottom: 1.5em;
}

.wp-block-post-content img {
	border-radius: var(--noosium-radius-md);
}

/*
 * 본문 이미지 폭 안전장치.
 * API 발행 글은 noosium-inline-image Gutenberg 블록을 사용하고, 과거의
 * <p><img></p> 글도 같은 폭으로 제한해 모바일에서 화면을 가득 덮지 않게 한다.
 */
.wp-block-post-content .noosium-inline-image {
	width: min(88%, 680px);
	max-width: 680px;
	margin: 2rem auto;
}

.wp-block-post-content .noosium-inline-image img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto;
	margin: 0;
}

.wp-block-post-content p > img:only-child {
	display: block;
	width: min(88%, 680px);
	max-width: 100%;
	height: auto;
	margin: 2rem auto;
}

@media (max-width: 600px) {
	.wp-block-post-content .noosium-inline-image,
	.wp-block-post-content p > img:only-child {
		width: 88%;
		margin-top: 1.5rem;
		margin-bottom: 1.5rem;
	}
}

.wp-block-post-title {
	letter-spacing: -0.02em;
}

.wp-block-post-featured-image img {
	border-radius: var(--noosium-radius-lg);
}

.noosium-post-featured-image {
	width: min(100%, 720px);
	margin-right: auto;
	margin-left: auto;
}

.noosium-post-featured-image img {
	display: block;
	width: 100%;
	max-width: 100%;
	height: auto !important;
	aspect-ratio: auto !important;
	object-fit: contain !important;
}

/* ==========================================================================
   푸터 상단 — 헤더 악센트 바와 짝을 이루는 그라디언트 북엔드.
   ========================================================================== */

.noosium-footer-top {
	position: relative;
}

.noosium-footer-top::before {
	content: "";
	position: absolute;
	top: -1px;
	left: 0;
	width: 64px;
	height: 3px;
	border-radius: var(--noosium-radius-pill);
	background: var(--noosium-gradient-accent);
}

.noosium-footer-top a:hover {
	color: var(--wp--preset--color--highlight) !important;
}

/* ==========================================================================
   커뮤니티 글쓰기/수정 컴포저 — 피드/아카이브 상단 "글쓰기" + 단일글 본인 글
   수정/삭제. 로그인 게이팅은 댓글(.noosium-comment-login)과 톤을 맞춘다.
   ========================================================================== */

.noosium-composer--bar {
	margin-bottom: var(--wp--preset--spacing--40);
}

/* 글쓰기 토글 / 로그인 CTA 버튼 — 브랜드 하이라이트 채움 */
.noosium-composer__toggle,
.noosium-composer__loginbtn {
	display: inline-flex;
	align-items: center;
	gap: 0.4em;
	padding: 0.6em 1.1em;
	border: none;
	border-radius: var(--noosium-radius-pill);
	background: var(--wp--preset--color--highlight);
	color: #fff;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: -0.01em;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 0.15s ease, transform 0.1s ease;
}

.noosium-composer__toggle:hover,
.noosium-composer__loginbtn:hover {
	background: var(--wp--preset--color--highlight-hover);
}

.noosium-composer__toggle:active {
	transform: translateY(1px);
}

.noosium-composer__icon {
	width: 16px;
	height: 16px;
	display: block;
}

.noosium-composer__error {
	margin: 0 0 0.6rem;
	padding: 0.6em 0.9em;
	border-radius: var(--noosium-radius-sm);
	background: rgba(220, 38, 38, 0.08);
	color: #b91c1c;
	font-size: var(--wp--preset--font-size--small);
}

/* 작성/수정 폼 카드 */
.noosium-composer__panel {
	margin-top: var(--wp--preset--spacing--20);
}

.noosium-composer__panel[hidden] {
	display: none;
}

.noosium-composer__form {
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-lg);
	box-shadow: var(--noosium-shadow-sm);
}

.noosium-composer__field {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	color: var(--wp--preset--color--contrast);
}

.noosium-composer__field input[type="text"],
.noosium-composer__field select,
.noosium-composer__field textarea {
	width: 100%;
	padding: 0.6em 0.75em;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-sm);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	box-sizing: border-box;
}

.noosium-composer__field textarea {
	resize: vertical;
	min-height: 140px;
	line-height: 1.6;
}

.noosium-composer__field input:focus,
.noosium-composer__field select:focus,
.noosium-composer__field textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--highlight);
	box-shadow: 0 0 0 3px var(--wp--preset--color--highlight-soft);
}

.noosium-composer__field--file input {
	font-size: 0.8rem;
	font-weight: 500;
}

.noosium-compose-screen {
	margin-bottom: var(--wp--preset--spacing--40);
}

.noosium-compose-screen__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: var(--wp--preset--spacing--20);
}

.noosium-compose-screen__head h2 {
	margin: 0;
	font-size: var(--wp--preset--font-size--large);
}

.noosium-compose-screen__head a {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	text-decoration: none;
}

.noosium-compose-screen .noosium-composer__cancel {
	display: none;
}

.noosium-composer__ai-replies {
	display: flex;
	align-items: flex-start;
	gap: 0.65rem;
	padding: 0.75rem 0.85rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-sm);
	background: var(--wp--preset--color--highlight-soft);
	color: var(--wp--preset--color--contrast);
	cursor: pointer;
}

.noosium-composer__ai-replies input {
	width: 17px;
	height: 17px;
	margin: 0.12rem 0 0;
	accent-color: var(--wp--preset--color--highlight);
}

.noosium-composer__ai-replies span {
	display: grid;
	gap: 0.15rem;
}

.noosium-composer__ai-replies small {
	color: var(--wp--preset--color--muted);
	font-weight: 500;
	line-height: 1.45;
}

.noosium-comment-ai-badge {
	display: inline-flex;
	align-items: center;
	margin-left: 0.35rem;
	padding: 0.08rem 0.38rem;
	border-radius: var(--noosium-radius-pill);
	background: var(--wp--preset--color--highlight-soft);
	color: var(--wp--preset--color--highlight);
	font-size: 0.68rem;
	font-weight: 800;
	line-height: 1.4;
	vertical-align: middle;
}

.noosium-composer__buttons {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.2rem;
}

.noosium-composer__submit {
	padding: 0.6em 1.4em;
	border: none;
	border-radius: var(--noosium-radius-pill);
	background: var(--wp--preset--color--highlight);
	color: #fff;
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.15s ease;
}

.noosium-composer__submit:hover {
	background: var(--wp--preset--color--highlight-hover);
}

.noosium-composer__cancel {
	padding: 0.6em 1.1em;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--noosium-radius-pill);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--muted);
	font-family: inherit;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	cursor: pointer;
}

.noosium-composer__cancel:hover {
	color: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--muted);
}

/* 단일 글 본인 글 수정/삭제 컨트롤 */
.noosium-post-actions-wrap {
	margin-top: var(--wp--preset--spacing--40);
}

.noosium-post-actions {
	display: flex;
	gap: 0.5rem;
	align-items: center;
}

.noosium-post-actions__edit,
.noosium-post-actions__delbtn {
	display: inline-flex;
	align-items: center;
	gap: 0.35em;
	padding: 0.45em 0.9em;
	border-radius: var(--noosium-radius-pill);
	font-family: inherit;
	font-size: 0.8rem;
	font-weight: 700;
	cursor: pointer;
}

.noosium-post-actions__edit {
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.noosium-post-actions__edit:hover {
	border-color: var(--wp--preset--color--highlight);
	color: var(--wp--preset--color--highlight);
}

.noosium-post-actions__delete {
	margin: 0;
}

.noosium-post-actions__delbtn {
	border: 1px solid rgba(220, 38, 38, 0.4);
	background: var(--wp--preset--color--base);
	color: #b91c1c;
}

.noosium-post-actions__delbtn:hover {
	background: rgba(220, 38, 38, 0.08);
}

@media (max-width: 600px) {
	/* 컴포저 폼도 홈 board / 피드처럼 화면 좌우 끝까지(full-bleed) 맞춰
	   아카이브 목록과 좌우 정렬을 일치시킨다. */
	.noosium-composer__form {
		border-radius: var(--noosium-radius-md);
	}
}

/* ==========================================================================
   다크모드는 의도적으로 비활성화 — 브랜드킷 라이트 팔레트를 항상 강제한다.
   OS/브라우저의 prefers-color-scheme를 따라가면 로고(남색 워드마크)가
   남색 배경 위에서 거의 안 보이는 문제가 있어 자동 전환을 껐다.
   ========================================================================== */

/* ==========================================================================
   Noosium 2.0 — 커뮤니티 퍼스트 프로덕트 UI.
   StockCalculator의 잉크·종이·민트 디자인 문법을 커뮤니티 정보 구조에 맞게
   재해석한다. 장식보다 탐색·활동·글쓰기 동선을 우선한다.
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

body {
	background: var(--noosium-paper);
	color: var(--noosium-ink);
	word-break: keep-all;
	text-rendering: optimizeLegibility;
}

::selection {
	background: var(--noosium-mint);
	color: var(--noosium-ink);
}

.noosium-community-main {
	margin: 0 !important;
	padding: 0 !important;
}

.noosium-community-main > * {
	margin-block-start: 0 !important;
}

.noosium-standard-main {
	margin-top: 0 !important;
	padding-top: 64px;
	padding-bottom: 96px;
}

/* 헤더 — 단일 72px 바, 명확한 정보 구조, 상시 글쓰기 CTA. */
.noosium-header {
	position: sticky;
	top: 0;
	z-index: 90;
	background: color-mix(in srgb, var(--noosium-paper) 92%, transparent) !important;
	border-bottom-color: var(--noosium-line) !important;
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
}

.noosium-header > .wp-block-group {
	margin: 0 !important;
}

.noosium-header-inner {
	display: grid !important;
	grid-template-columns: 154px minmax(0, 1fr) auto;
	width: min(calc(100% - 40px), 1200px);
	min-height: 72px;
	margin: 0 auto !important;
	padding: 0 !important;
	gap: 30px !important;
	align-items: center;
}

.noosium-header .wp-block-site-logo {
	margin: 0;
}

.noosium-header .wp-block-site-logo img {
	width: 154px;
	height: auto;
	max-height: 38px;
	transform: translateX(-7.29%);
}

.noosium-primary-nav {
	justify-self: center;
}

.noosium-primary-nav .wp-block-navigation__container {
	gap: 26px !important;
	flex-wrap: nowrap !important;
}

.noosium-primary-nav .wp-block-navigation-item__content {
	padding: 25px 0 23px;
	border-bottom: 2px solid transparent;
	color: var(--noosium-ink) !important;
	font-size: 0.875rem;
	font-weight: 750;
	line-height: 1.5;
	text-decoration: none !important;
	white-space: nowrap;
}

.noosium-primary-nav .wp-block-navigation-item__content:hover,
.noosium-primary-nav .current-menu-item > .wp-block-navigation-item__content {
	border-bottom-color: var(--noosium-ink);
}

.noosium-header-actions {
	gap: 10px !important;
}

.noosium-header-search {
	min-width: 168px;
}

.noosium-header-search .wp-block-search__inside-wrapper {
	border-color: var(--noosium-line);
	border-radius: 5px;
	background: rgba(255, 254, 250, 0.72);
}

.noosium-header-login {
	min-height: 40px;
	border-color: var(--noosium-line);
	border-radius: 5px;
	background: var(--noosium-white);
	padding: 0.62em 0.85em;
}

.noosium-header-write {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 40px;
	padding: 0.62em 0.85em;
	border: 1px solid var(--noosium-ink);
	background: var(--noosium-ink);
	color: var(--noosium-white) !important;
	font-size: 0.82rem;
	font-weight: 850;
	line-height: 1;
	text-decoration: none !important;
	transition: background-color 0.16s ease, color 0.16s ease;
}

.noosium-header-write:hover {
	background: var(--noosium-mint);
	color: var(--noosium-ink) !important;
}

/* 커뮤니티 홈 전체 폭과 히어로. */
.noosium-community-experience {
	width: 100%;
	overflow: hidden;
}

.noosium-community-hero {
	display: grid;
	grid-template-columns: 1.15fr 0.85fr;
	width: min(calc(100% - 40px), 1200px);
	min-height: 520px;
	margin: 0 auto;
	border-right: 1px solid var(--noosium-line);
	border-left: 1px solid var(--noosium-line);
}

.noosium-community-hero__copy {
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 52px 54px 58px;
}

.noosium-edition-line {
	display: flex;
	justify-content: space-between;
	gap: 20px;
	padding-top: 9px;
	border-top: 1px solid var(--noosium-ink);
	font-size: 0.66rem;
	font-weight: 900;
	letter-spacing: 0.12em;
}

.noosium-community-hero__kicker {
	margin: 58px 0 13px !important;
	color: var(--noosium-ink-2);
	font-size: 1rem;
	font-weight: 800;
}

.noosium-community-hero h1 {
	margin: 0;
	font-size: clamp(3rem, 5vw, 4.75rem);
	font-weight: 950;
	letter-spacing: -0.075em;
	line-height: 0.98;
}

.noosium-community-hero h1 em {
	color: var(--noosium-coral);
	font-style: normal;
}

.noosium-community-hero__copy > p:last-of-type {
	max-width: 620px;
	margin: 27px 0 0;
	color: var(--noosium-ink-2);
	font-size: 1rem;
	line-height: 1.75;
}

.noosium-community-hero__actions {
	display: flex;
	align-items: center;
	gap: 25px;
	margin-top: 32px;
}

.noosium-primary-action {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	min-width: 220px;
	padding: 15px 17px;
	border: 1px solid var(--noosium-ink);
	background: var(--noosium-ink);
	color: var(--noosium-white) !important;
	font-size: 0.86rem;
	font-weight: 850;
	text-decoration: none !important;
	transition: background-color 0.16s ease, color 0.16s ease;
}

.noosium-primary-action:hover {
	background: var(--noosium-mint);
	color: var(--noosium-ink) !important;
}

.noosium-primary-action svg {
	width: 17px;
	height: 17px;
}

.noosium-text-action {
	border-bottom: 1px solid currentColor;
	color: var(--noosium-ink) !important;
	font-size: 0.84rem;
	font-weight: 850;
	text-decoration: none !important;
}

.noosium-community-hero__board {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin: 24px 24px 24px 0;
	padding: 25px;
	overflow: hidden;
	background-color: var(--noosium-ink);
	background-image:
		linear-gradient(rgba(185, 247, 207, 0.10) 1px, transparent 1px),
		linear-gradient(90deg, rgba(185, 247, 207, 0.10) 1px, transparent 1px);
	background-size: 48px 48px;
	color: var(--noosium-paper);
}

.noosium-community-hero__boardtop,
.noosium-community-hero__principles {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	font-size: 0.62rem;
	font-weight: 850;
	letter-spacing: 0.1em;
}

.noosium-community-hero__board strong {
	font-size: clamp(2rem, 3.6vw, 3.25rem);
	font-weight: 900;
	letter-spacing: -0.065em;
	line-height: 1.05;
}

.noosium-community-hero__principles {
	padding-top: 14px;
	border-top: 1px solid rgba(255, 255, 255, 0.3);
	color: var(--noosium-mint);
	letter-spacing: 0;
}

/* 주제 허브 — 5개만 전면에, 세부 게시판은 카드 안에서 보조 탐색. */
.noosium-hub-section {
	padding: 92px max(20px, calc((100vw - 1200px) / 2));
	border-block: 1px solid var(--noosium-ink);
	background: var(--noosium-paper-2);
}

.noosium-section-heading,
.noosium-panel-heading {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 36px;
}

.noosium-section-heading span,
.noosium-panel-heading span,
.noosium-feed-head > div > span,
.noosium-aside-card > span,
.noosium-directory__intro > span {
	display: block;
	margin-bottom: 8px;
	font-size: 0.66rem;
	font-weight: 900;
	letter-spacing: 0.13em;
}

.noosium-section-heading h2,
.noosium-panel-heading h2,
.noosium-feed-head h2,
.noosium-directory__intro h2 {
	margin: 0;
	font-size: clamp(2rem, 3.2vw, 3rem);
	font-weight: 900;
	letter-spacing: -0.06em;
	line-height: 1.05;
}

.noosium-section-heading p {
	max-width: 370px;
	margin: 0;
	color: var(--noosium-muted, #65736e);
	font-size: 0.86rem;
	line-height: 1.7;
	text-align: right;
}

.noosium-hub-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	border-top: 1px solid var(--noosium-ink);
	border-left: 1px solid var(--noosium-ink);
}

.noosium-hub-card {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 300px;
	border-right: 1px solid var(--noosium-ink);
	border-bottom: 1px solid var(--noosium-ink);
	background: var(--noosium-white);
	transition: transform 0.16s ease, box-shadow 0.16s ease, background-color 0.16s ease;
}

.noosium-hub-card:hover,
.noosium-hub-card.is-active {
	z-index: 2;
	background: var(--noosium-mint);
	box-shadow: 4px 4px 0 var(--noosium-ink);
	transform: translate(-3px, -3px);
}

.noosium-hub-card__main {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 20px;
	color: var(--noosium-ink) !important;
	text-decoration: none !important;
}

.noosium-hub-card__index {
	font-size: 0.7rem;
	font-weight: 900;
	letter-spacing: 0.1em;
}

.noosium-hub-card__main strong {
	margin-top: 54px;
	font-size: 1.45rem;
	font-weight: 900;
	letter-spacing: -0.05em;
}

.noosium-hub-card__main p {
	margin: 12px 0 0;
	color: var(--noosium-ink-2);
	font-size: 0.78rem;
	line-height: 1.6;
}

.noosium-hub-card__count {
	margin-top: auto;
	padding-top: 18px;
	font-size: 0.68rem;
	font-weight: 800;
}

.noosium-hub-card__topics {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 12px 20px 18px;
	border-top: 1px solid var(--noosium-line);
}

.noosium-hub-card__topics a {
	color: var(--noosium-ink-2) !important;
	font-size: 0.68rem;
	font-weight: 750;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* 피드 + 우측 가이드. */
.noosium-community-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 28px;
	width: min(calc(100% - 40px), 1200px);
	margin: 0 auto;
	padding: 92px 0;
	align-items: start;
}

.noosium-community-feed {
	min-width: 0;
	border-top: 1px solid var(--noosium-ink);
	background: var(--noosium-white);
}

.noosium-feed-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 22px;
	padding: 24px 24px 20px;
	border-right: 1px solid var(--noosium-line);
	border-bottom: 1px solid var(--noosium-line);
	border-left: 1px solid var(--noosium-line);
}

.noosium-feed-head h2 {
	font-size: 1.65rem;
}

.noosium-feed-tabs {
	display: flex;
	gap: 4px;
	padding: 4px;
	background: var(--noosium-paper-2);
}

.noosium-feed-tabs a {
	padding: 8px 12px;
	color: var(--noosium-ink-2) !important;
	font-size: 0.76rem;
	font-weight: 800;
	text-decoration: none !important;
	white-space: nowrap;
}

.noosium-feed-tabs a.is-active {
	background: var(--noosium-ink);
	color: var(--noosium-white) !important;
}

.noosium-feed-composer {
	border-right: 1px solid var(--noosium-line);
	border-bottom: 1px solid var(--noosium-line);
	border-left: 1px solid var(--noosium-line);
	padding: 12px 16px;
	scroll-margin-top: 88px;
}

.noosium-feed-composer .noosium-composer {
	margin: 0;
}

.noosium-feed-composer .noosium-composer__loginbtn,
.noosium-feed-composer .noosium-composer__toggle {
	width: 100%;
	justify-content: space-between;
	border: 1px solid var(--noosium-line);
	border-radius: 0;
	background: var(--noosium-paper);
	color: var(--noosium-ink);
	padding: 12px 14px;
}

.noosium-thread-list {
	border-left: 1px solid var(--noosium-line);
}

.noosium-thread {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 118px;
	min-width: 0;
	border-right: 1px solid var(--noosium-line);
	border-bottom: 1px solid var(--noosium-line);
	transition: background-color 0.15s ease;
}

.noosium-thread:hover {
	background: color-mix(in srgb, var(--noosium-mint) 22%, var(--noosium-white));
}

.noosium-thread__body {
	min-width: 0;
	padding: 19px 22px;
}

.noosium-thread__eyebrow {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 7px;
}

.noosium-thread__eyebrow a,
.noosium-thread__eyebrow span {
	color: var(--noosium-mint-dark) !important;
	font-size: 0.68rem;
	font-weight: 850;
	text-decoration: none !important;
}

.noosium-thread__eyebrow span::before {
	content: "·";
	margin-right: 8px;
	color: var(--noosium-line);
}

.noosium-thread__title {
	margin: 0;
	font-size: 1.02rem;
	font-weight: 850;
	letter-spacing: -0.025em;
	line-height: 1.35;
}

.noosium-thread__title a {
	color: var(--noosium-ink) !important;
	text-decoration: none !important;
}

.noosium-thread__title .noosium-ai-badge {
	font-size: 0.62rem;
}

.noosium-thread__excerpt {
	display: -webkit-box;
	margin: 7px 0 0;
	overflow: hidden;
	color: #65736e;
	font-size: 0.78rem;
	line-height: 1.55;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 1;
}

.noosium-thread__byline {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 10px;
	color: #75817d;
	font-size: 0.7rem;
}

.noosium-thread__activity {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 5px;
	border-left: 1px solid var(--noosium-line);
	background: rgba(244, 241, 233, 0.5);
	color: var(--noosium-ink) !important;
	text-align: center;
	text-decoration: none !important;
}

.noosium-thread__activity strong {
	font-size: 0.76rem;
}

.noosium-thread__activity span {
	color: #65736e;
	font-size: 0.62rem;
}

.noosium-community-aside {
	display: flex;
	flex-direction: column;
	gap: 14px;
	position: sticky;
	top: 92px;
}

.noosium-aside-card {
	padding: 24px;
	border: 1px solid var(--noosium-ink);
	background: var(--noosium-white);
}

.noosium-aside-card h2 {
	margin: 8px 0 12px;
	font-size: 1.45rem;
	font-weight: 900;
	letter-spacing: -0.05em;
	line-height: 1.15;
}

.noosium-aside-card p {
	margin: 0;
	color: #65736e;
	font-size: 0.78rem;
	line-height: 1.7;
}

.noosium-aside-card--dark {
	background-color: var(--noosium-ink);
	background-image:
		linear-gradient(rgba(185, 247, 207, 0.08) 1px, transparent 1px),
		linear-gradient(90deg, rgba(185, 247, 207, 0.08) 1px, transparent 1px);
	background-size: 38px 38px;
	color: var(--noosium-paper);
}

.noosium-aside-card--dark > span {
	color: var(--noosium-mint);
}

.noosium-aside-card--dark p {
	color: #b9c7c2;
}

.noosium-aside-card--dark a {
	display: flex;
	justify-content: space-between;
	margin-top: 26px;
	padding-top: 13px;
	border-top: 1px solid rgba(255, 255, 255, 0.3);
	color: var(--noosium-mint) !important;
	font-size: 0.8rem;
	font-weight: 850;
	text-decoration: none !important;
}

.noosium-aside-card ol {
	display: flex;
	flex-direction: column;
	gap: 13px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.noosium-aside-card li {
	display: flex;
	gap: 12px;
	color: var(--noosium-ink-2);
	font-size: 0.76rem;
	font-weight: 700;
}

.noosium-aside-card li b {
	color: var(--noosium-coral);
	font-family: ui-monospace, monospace;
}

.noosium-empty-state {
	padding: 58px 30px;
	border-right: 1px solid var(--noosium-line);
	border-bottom: 1px solid var(--noosium-line);
	text-align: center;
}

.noosium-empty-state > span {
	color: var(--noosium-coral);
	font: 800 0.72rem ui-monospace, monospace;
}

.noosium-empty-state h3 {
	margin: 16px 0 8px;
	font-size: 1.35rem;
	letter-spacing: -0.04em;
}

.noosium-empty-state p {
	margin: 0;
	color: #65736e;
	font-size: 0.82rem;
}

.noosium-empty-state a {
	display: inline-block;
	margin-top: 22px;
	border-bottom: 1px solid currentColor;
	color: var(--noosium-ink) !important;
	font-size: 0.82rem;
	font-weight: 850;
	text-decoration: none !important;
}

/* 에디토리얼은 커뮤니티 아래의 보조 유입 모듈로 축소. */
.noosium-editorial-compact {
	padding: 88px max(20px, calc((100vw - 1200px) / 2)) 104px;
	background: var(--noosium-ink);
	color: var(--noosium-paper);
}

.noosium-editorial-compact .noosium-panel-heading a {
	color: var(--noosium-mint) !important;
	font-size: 0.8rem;
	font-weight: 850;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.noosium-editorial-compact__list {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	border-top: 1px solid rgba(255, 255, 255, 0.35);
}

.noosium-editorial-compact__list a {
	display: flex;
	flex-direction: column;
	min-height: 190px;
	padding: 22px;
	border-right: 1px solid rgba(255, 255, 255, 0.2);
	color: var(--noosium-paper) !important;
	text-decoration: none !important;
}

.noosium-editorial-compact__list a:last-child {
	border-right: 0;
}

.noosium-editorial-compact__list span {
	color: var(--noosium-mint);
	font: 750 0.68rem ui-monospace, monospace;
}

.noosium-editorial-compact__list strong {
	margin-top: auto;
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.4;
}

.noosium-editorial-compact__list a:hover {
	background: rgba(185, 247, 207, 0.08);
}

/* 카테고리 디렉터리. */
.noosium-directory {
	margin-top: 40px;
}

.noosium-directory__intro {
	max-width: 720px;
	margin-bottom: 42px;
}

.noosium-directory__intro p {
	color: #65736e;
	font-size: 0.9rem;
}

.noosium-directory .noosium-hub-grid {
	margin-bottom: 82px;
}

.noosium-directory__editorial {
	padding: 38px;
	border: 1px solid var(--noosium-ink);
	background: var(--noosium-white);
}

.noosium-directory__editorial .noosium-panel-heading h2 {
	font-size: 2rem;
}

.noosium-directory__editorial-links {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border-top: 1px solid var(--noosium-ink);
	border-left: 1px solid var(--noosium-ink);
}

.noosium-directory__editorial-links a {
	display: grid;
	grid-template-columns: 28px 1fr auto;
	align-items: center;
	gap: 10px;
	min-height: 84px;
	padding: 16px;
	border-right: 1px solid var(--noosium-ink);
	border-bottom: 1px solid var(--noosium-ink);
	color: var(--noosium-ink) !important;
	text-decoration: none !important;
}

.noosium-directory__editorial-links a:hover {
	background: var(--noosium-mint);
}

.noosium-directory__editorial-links span svg {
	display: block;
	width: 21px;
	height: 21px;
}

/* 기존 에디토리얼·아카이브·단일 글도 같은 제품 디자인 언어로 정리. */
.noosium-standard-main .noosium-category-page-head,
.noosium-standard-main > .wp-block-query-title {
	margin-bottom: 26px;
	padding-bottom: 18px;
	border-bottom: 1px solid var(--noosium-ink);
}

.noosium-standard-main .noosium-category-page-head__title,
.noosium-standard-main .wp-block-query-title {
	font-size: clamp(2.2rem, 4vw, 3.6rem);
	font-weight: 950;
	letter-spacing: -0.065em;
}

/* 위의 일반 query-title 대형 규칙보다 구체적으로 아카이브 헤더를 고정한다. */
.noosium-standard-main .noosium-archive-header .wp-block-query-title {
	font-size: clamp(1.2rem, 2vw, 1.5rem);
	font-weight: 850;
	letter-spacing: -0.035em;
	line-height: 1.3;
}

.noosium-editorial-page .noosium-feed,
.noosium-archive-page .noosium-list {
	border: 1px solid var(--noosium-line);
	border-radius: 0;
	background: var(--noosium-white);
	box-shadow: none;
}

.noosium-archive-page .noosium-board--archive {
	padding: 0;
}

.noosium-editorial-page .noosium-list-item,
.noosium-archive-page .noosium-list-item {
	padding: 18px 20px;
}

.noosium-archive-empty {
	margin: 0;
	padding: 28px 20px;
	text-align: center;
	color: var(--wp--preset--color--muted);
}

.wp-block-post-terms a {
	border-radius: 2px;
	background: var(--noosium-mint);
	color: var(--noosium-mint-dark);
}

.noosium-ai-badge--generated {
	background: var(--noosium-ink);
}

body.single-post .wp-block-post-title {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.28em;
}

body.single-post .wp-block-post-title .noosium-ai-badge {
	align-self: center;
	margin: 0;
	padding: 0.25em 0.7em;
	border-radius: var(--noosium-radius-pill);
	font-size: 0.38em;
	line-height: 1.2;
	vertical-align: baseline;
}

/* ==========================================================================
   단일 글 하단 게시판 문맥 — 이전/다음 두 링크 대신 같은 카테고리 최신 글.
   ========================================================================== */

.noosium-context-board {
	width: min(100%, var(--wp--style--global--wide-size));
	margin: 0 auto;
	overflow: hidden;
	border: 1px solid var(--noosium-line);
	border-radius: 12px;
	background: var(--noosium-white);
	font-size: 0;
	line-height: 1;
}

.noosium-context-board p:empty {
	display: none;
	margin: 0;
}

.noosium-context-board__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 13px 16px;
	border-bottom: 2px solid var(--noosium-mint-dark);
}

.noosium-context-board__heading {
	min-width: 0;
	flex: 1 1 auto;
}

.noosium-context-board__heading > p {
	margin: 0;
	color: var(--noosium-mint-dark);
	font-size: 0.72rem;
	font-weight: 800;
	line-height: 1.3;
	letter-spacing: 0.04em;
}

.noosium-context-board__head h2 {
	margin: 2px 0 0;
	font-size: 1.02rem;
	letter-spacing: -0.035em;
}

.noosium-context-board__head-action {
	flex: 0 0 auto;
	margin: 0;
}

.noosium-context-board__head-action > a {
	flex: 0 0 auto;
	color: var(--noosium-mint-dark);
	font-size: 0.82rem;
	font-weight: 750;
	line-height: 1.3;
	text-decoration: none;
}

.noosium-context-board__head-action span {
	font: inherit;
	letter-spacing: 0;
}

.noosium-context-board__columns,
.noosium-context-board__row {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr) 116px 100px 48px;
	align-items: center;
}

.noosium-context-board__columns {
	min-height: 30px;
	border-bottom: 1px solid var(--noosium-line);
	background: var(--noosium-paper);
	color: #7b8496;
	font-size: 0.72rem;
	text-align: center;
}

.noosium-context-board__columns span:nth-child(2) {
	text-align: left;
}

.noosium-context-board__row {
	min-height: 42px;
	border-bottom: 1px solid #eef0f4;
	color: var(--noosium-ink-2);
	font-size: 0.8rem;
}

.noosium-context-board__row:last-child {
	border-bottom: 0;
}

.noosium-context-board__row:hover {
	background: #fafaff;
}

.noosium-context-board__row.is-current {
	background: var(--noosium-mint);
}

.noosium-context-board__row > * {
	min-width: 0;
	margin: 0;
	padding: 0 10px;
	text-align: center;
}

.noosium-context-board__row h3 {
	display: flex;
	align-items: center;
	gap: 7px;
	text-align: left;
	font-size: 0.82rem;
	font-weight: 650;
}

.noosium-context-board__row h3 a {
	overflow: hidden;
	color: var(--noosium-ink);
	text-decoration: none;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.noosium-context-board__current {
	flex: 0 0 auto;
	padding: 0.15em 0.48em;
	border-radius: var(--noosium-radius-pill);
	background: var(--noosium-white);
	color: var(--noosium-mint-dark);
	font-size: 0.66rem;
	font-weight: 800;
}

.noosium-context-board__author {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.noosium-context-board__row time,
.noosium-context-board__number {
	color: #7b8496;
}

.noosium-context-board__comments {
	color: var(--noosium-mint-dark);
	font-weight: 750;
	text-decoration: none;
}

@media (max-width: 900px) {
	.noosium-context-board {
		width: 100%;
	}

	.noosium-context-board__head {
		padding: 12px 13px;
	}

	.noosium-context-board__columns {
		display: none;
	}

	.noosium-context-board__row {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 5px 10px;
		min-height: 58px;
		padding: 9px 11px;
	}

	.noosium-context-board__row > * {
		padding: 0;
		text-align: left;
	}

	.noosium-context-board__row h3 {
		grid-column: 1;
		grid-row: 1;
	}

	.noosium-context-board__comments {
		grid-column: 2;
		grid-row: 1;
		align-self: center;
	}

	.noosium-context-board__comments::before {
		content: "댓글 ";
	}

	.noosium-context-board__author {
		grid-column: 1;
		grid-row: 2;
		color: #7b8496;
		font-size: 0.74rem;
	}

	.noosium-context-board__row time {
		grid-column: 2;
		grid-row: 2;
		font-size: 0.72rem;
	}

	.noosium-context-board__number {
		display: none;
	}
}

.wp-block-comments-query-loop .wp-block-comment-template > .wp-block-group {
	border-radius: 0;
	border-color: var(--noosium-line);
	background: var(--noosium-white);
}

.noosium-composer__form {
	border-radius: 0;
	border-color: var(--noosium-line);
	background: var(--noosium-white);
	box-shadow: var(--noosium-shadow-md);
}

.noosium-composer__field input,
.noosium-composer__field select,
.noosium-composer__field textarea {
	border-radius: 3px;
	border-color: var(--noosium-line);
	background: #fbfcfa;
}

.noosium-composer__submit {
	border-radius: 3px;
	background: var(--noosium-ink);
}

.noosium-composer__submit:hover {
	background: var(--noosium-mint-dark);
}

.noosium-footer {
	background: #0b1d18 !important;
	color: var(--noosium-paper);
}

@media (max-width: 1100px) {
	.noosium-header-inner {
		grid-template-columns: 140px minmax(0, 1fr) auto;
		gap: 18px !important;
	}

	.noosium-primary-nav .wp-block-navigation__container {
		gap: 16px !important;
	}

	.noosium-header-search {
		display: none !important;
	}

	.noosium-hub-grid {
		grid-template-columns: repeat(3, 1fr);
	}

	.noosium-editorial-compact__list {
		grid-template-columns: repeat(2, 1fr);
	}

	.noosium-editorial-compact__list a:nth-child(2) {
		border-right: 0;
	}

	.noosium-editorial-compact__list a:nth-child(-n + 2) {
		border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	}
}

@media (max-width: 782px) {
	.noosium-standard-main {
		padding-top: 34px;
		padding-bottom: 72px;
	}

	.noosium-header-inner {
		display: flex !important;
		min-height: 52px;
		width: calc(100% - 34px);
	}

	.noosium-header .wp-block-site-logo img {
		width: 112px;
		height: auto;
		max-height: 28px;
	}

	.noosium-primary-nav,
	.noosium-header-actions {
		display: none !important;
	}

	.noosium-community-hero {
		display: block;
		width: 100%;
		min-height: 0;
		border: 0;
	}

	.noosium-community-hero__copy {
		padding: 36px 24px 38px;
	}

	.noosium-community-hero__kicker {
		margin-top: 38px !important;
		font-size: 0.88rem;
	}

	.noosium-community-hero h1 {
		font-size: clamp(2.45rem, 12vw, 3.6rem);
	}

	.noosium-community-hero__copy > p:last-of-type {
		font-size: 0.88rem;
	}

	.noosium-community-hero__actions {
		align-items: stretch;
		flex-direction: column;
		gap: 14px;
	}

	.noosium-primary-action {
		width: 100%;
	}

	.noosium-text-action {
		align-self: flex-start;
	}

	.noosium-community-hero__board {
		min-height: 300px;
		margin: 0 16px 24px;
	}

	.noosium-hub-section {
		padding: 60px 0 64px;
	}

	.noosium-section-heading {
		display: block;
		padding: 0 24px;
		margin-bottom: 26px;
	}

	.noosium-section-heading h2,
	.noosium-panel-heading h2,
	.noosium-directory__intro h2 {
		font-size: 2rem;
	}

	.noosium-section-heading p {
		margin-top: 12px;
		text-align: left;
	}

	.noosium-hub-grid {
		display: flex;
		gap: 0;
		padding: 0 24px 5px;
		overflow-x: auto;
		border: 0;
		scroll-snap-type: x mandatory;
		scrollbar-width: none;
	}

	.noosium-hub-grid::-webkit-scrollbar {
		display: none;
	}

	.noosium-hub-card {
		flex: 0 0 72vw;
		min-height: 270px;
		border-top: 1px solid var(--noosium-ink);
		border-left: 1px solid var(--noosium-ink);
		scroll-snap-align: start;
	}

	.noosium-hub-card:hover,
	.noosium-hub-card.is-active {
		box-shadow: none;
		transform: none;
	}

	.noosium-hub-card__main strong {
		margin-top: 42px;
	}

	.noosium-community-layout {
		display: block;
		width: 100%;
		padding: 56px 0 0;
	}

	.noosium-community-feed {
		border-top: 1px solid var(--noosium-ink);
	}

	.noosium-feed-head {
		display: block;
		padding: 20px 24px 16px;
		border-right: 0;
		border-left: 0;
	}

	.noosium-feed-tabs {
		margin-top: 17px;
	}

	.noosium-feed-tabs a {
		flex: 1;
		text-align: center;
	}

	.noosium-feed-composer {
		padding: 10px 24px;
		border-right: 0;
		border-left: 0;
	}

	.noosium-thread-list {
		border-left: 0;
	}

	.noosium-thread {
		grid-template-columns: minmax(0, 1fr) 84px;
		border-right: 0;
	}

	.noosium-thread__body {
		padding: 17px 18px 17px 24px;
	}

	.noosium-thread__title {
		font-size: 0.94rem;
	}

	.noosium-thread__excerpt {
		-webkit-line-clamp: 2;
	}

	.noosium-thread__activity {
		padding: 8px 5px;
	}

	.noosium-thread__activity span {
		display: none;
	}

	.noosium-community-aside {
		position: static;
		padding: 24px;
		background: var(--noosium-paper-2);
	}

	.noosium-aside-card:not(.noosium-aside-card--dark) {
		display: none;
	}

	.noosium-editorial-compact {
		padding: 62px 24px 76px;
	}

	.noosium-editorial-compact .noosium-panel-heading {
		display: block;
	}

	.noosium-editorial-compact .noosium-panel-heading a {
		display: inline-block;
		margin-top: 16px;
	}

	.noosium-editorial-compact__list {
		display: block;
	}

	.noosium-editorial-compact__list a {
		min-height: 118px;
		border-right: 0;
		border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	}

	.noosium-directory {
		margin-top: 26px;
	}

	.noosium-directory__intro {
		padding: 0 0 6px;
	}

	.noosium-directory .noosium-hub-grid {
		margin-right: calc(50% - 50vw);
		margin-bottom: 58px;
		margin-left: calc(50% - 50vw);
	}

	.noosium-directory__editorial {
		padding: 24px;
	}

	.noosium-directory__editorial .noosium-panel-heading {
		display: block;
	}

	.noosium-directory__editorial .noosium-panel-heading a {
		display: inline-block;
		margin-top: 14px;
	}

	.noosium-directory__editorial-links {
		grid-template-columns: 1fr;
	}

	/* 모바일 하단 중앙 글쓰기 버튼을 제품의 주 CTA로 사용. */
	.noosium-mobile-tabbar {
		min-height: 64px;
		padding: 6px 6px calc(6px + env(safe-area-inset-bottom));
		border-top-color: var(--noosium-line);
		background: color-mix(in srgb, var(--noosium-white) 95%, transparent);
		backdrop-filter: blur(12px);
	}

	.noosium-mobile-tab {
		color: #6d7975;
		font-size: 0.63rem;
	}

	.noosium-mobile-tab.is-active {
		color: var(--noosium-mint-dark);
	}

	.noosium-mobile-tab.is-active .noosium-mobile-tab__icon {
		border-radius: 3px;
		background: var(--noosium-mint);
	}

	.noosium-mobile-tab--write {
		margin-top: -22px;
		color: var(--noosium-ink) !important;
	}

	.noosium-mobile-tab--write .noosium-mobile-tab__icon {
		display: grid;
		width: 48px;
		height: 48px;
		margin-bottom: 2px;
		border: 2px solid var(--noosium-white);
		border-radius: 50%;
		background: var(--noosium-mint);
		box-shadow: 0 6px 18px rgba(20, 43, 37, 0.22);
		place-items: center;
	}

	.noosium-mobile-tab--write .noosium-mobile-tab__icon svg {
		width: 21px;
		height: 21px;
	}
}

@media (max-width: 430px) {
	.noosium-edition-line {
		font-size: 0.57rem;
	}

	.noosium-community-hero__board {
		min-height: 270px;
	}

	.noosium-community-hero__board strong {
		font-size: 2rem;
	}

	.noosium-hub-card {
		flex-basis: 82vw;
	}

	.noosium-thread {
		grid-template-columns: minmax(0, 1fr) 72px;
	}

	.noosium-thread__activity strong {
		font-size: 0.68rem;
	}
}

/* ==========================================================================
   2.0.1 — 글 중심 커뮤니티 UI

   랜딩 페이지식 장식과 긴 설명을 제거하고, 기존 누슘의 보라색 브랜드 안에서
   게시판 선택과 글 목록이 첫 화면에 바로 보이도록 재정리한다.
   ========================================================================== */

body {
	background: #f6f7fb;
	color: #0c1b3a;
}

.noosium-header {
	border-bottom: 1px solid #e5e7eb !important;
	background: rgba(255, 255, 255, 0.96) !important;
	box-shadow: 0 1px 2px rgba(12, 27, 58, 0.03);
}

.noosium-header-inner {
	grid-template-columns: 154px minmax(0, 1fr) auto;
	min-height: 64px;
}

.noosium-primary-nav .wp-block-navigation-item__content {
	padding: 21px 0 19px;
	color: #334155 !important;
}

.noosium-primary-nav .wp-block-navigation-item__content:hover,
.noosium-primary-nav .current-menu-item > .wp-block-navigation-item__content {
	border-bottom-color: #6757e8;
	color: #6757e8 !important;
}

.noosium-header-search .wp-block-search__inside-wrapper,
.noosium-header-login {
	border-color: #e5e7eb;
	border-radius: 10px;
	background: #fff;
}

.noosium-header-write {
	border-color: #6757e8;
	border-radius: 10px;
	background: #6757e8;
	color: #fff !important;
}

.noosium-header-write:hover {
	border-color: #5646d4;
	background: #5646d4;
	color: #fff !important;
}

.noosium-community-experience {
	width: min(calc(100% - 40px), 1180px);
	margin: 0 auto;
	padding: 30px 0 70px;
	overflow: visible;
}

.noosium-community-pagebar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 16px;
}

.noosium-community-pagebar h1 {
	margin: 0;
	font-size: 1.65rem;
	font-weight: 850;
	letter-spacing: -0.035em;
}

.noosium-community-pagebar > a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 40px;
	padding: 0 18px;
	border-radius: 10px;
	background: #6757e8;
	color: #fff !important;
	font-size: 0.84rem;
	font-weight: 800;
	text-decoration: none !important;
}

.noosium-community-pagebar > a:hover {
	background: #5646d4;
}

.noosium-community-layout {
	display: grid;
	grid-template-columns: 220px minmax(0, 1fr);
	gap: 18px;
	width: 100%;
	margin: 0;
	padding: 0;
	align-items: start;
}

.noosium-community-layout .noosium-hub-section {
	position: sticky;
	top: 84px;
	padding: 16px;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: #fff;
}

.noosium-community-layout .noosium-section-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 0 8px;
	padding: 0 4px 10px;
	border-bottom: 1px solid #eef0f4;
}

.noosium-community-layout .noosium-section-heading h2 {
	margin: 0;
	font-size: 0.92rem;
	font-weight: 850;
	letter-spacing: -0.02em;
}

.noosium-community-layout .noosium-section-heading a {
	color: #6757e8 !important;
	font-size: 0.72rem;
	font-weight: 750;
	text-decoration: none !important;
}

.noosium-community-layout .noosium-hub-grid {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 0;
	overflow: visible;
	border: 0;
}

.noosium-community-layout .noosium-hub-card {
	display: block;
	min-height: 0;
	border: 0;
	border-radius: 10px;
	background: transparent;
	box-shadow: none;
	transform: none;
}

.noosium-community-layout .noosium-hub-card:hover,
.noosium-community-layout .noosium-hub-card.is-active {
	background: #eeebff;
	box-shadow: none;
	transform: none;
}

.noosium-community-layout .noosium-hub-card__main {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	padding: 10px 11px;
	color: #334155 !important;
}

.noosium-community-layout .noosium-hub-card.is-active .noosium-hub-card__main {
	color: #5646d4 !important;
}

.noosium-community-layout .noosium-hub-card__main strong {
	margin: 0;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: -0.02em;
}

.noosium-community-layout .noosium-hub-card__count {
	margin: 0;
	padding: 0;
	color: #94a3b8;
	font-size: 0.67rem;
	font-weight: 700;
	white-space: nowrap;
}

.noosium-community-layout .noosium-hub-card__topics {
	display: none;
}

.noosium-community-feed {
	min-width: 0;
	overflow: hidden;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 1px 3px rgba(12, 27, 58, 0.04);
}

.noosium-feed-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	min-height: 64px;
	padding: 12px 18px;
	border: 0;
	border-bottom: 1px solid #e5e7eb;
}

.noosium-feed-head h2 {
	margin: 0;
	font-size: 1.06rem;
	font-weight: 850;
	letter-spacing: -0.025em;
}

.noosium-feed-tabs {
	display: flex;
	gap: 2px;
	padding: 3px;
	border-radius: 9px;
	background: #f3f4f8;
}

.noosium-feed-tabs a {
	padding: 7px 11px;
	border-radius: 7px;
	color: #64748b !important;
	font-size: 0.74rem;
}

.noosium-feed-tabs a.is-active {
	background: #fff;
	color: #6757e8 !important;
	box-shadow: 0 1px 3px rgba(12, 27, 58, 0.1);
}

.noosium-feed-composer {
	padding: 10px 14px;
	border: 0;
	border-bottom: 1px solid #e5e7eb;
}

.noosium-feed-composer .noosium-composer__loginbtn,
.noosium-feed-composer .noosium-composer__toggle {
	min-height: 42px;
	padding: 10px 13px;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	background: #f8f8fc;
	color: #475569;
}

.noosium-thread-list {
	border: 0;
}

.noosium-thread {
	grid-template-columns: minmax(0, 1fr) 106px;
	border-right: 0;
	border-bottom: 1px solid #eef0f4;
	background: #fff;
}

.noosium-thread:last-child {
	border-bottom: 0;
}

.noosium-thread:hover {
	background: #faf9ff;
}

.noosium-thread__body {
	padding: 17px 19px;
}

.noosium-thread__eyebrow {
	margin-bottom: 5px;
}

.noosium-thread__eyebrow a,
.noosium-thread__eyebrow span {
	color: #6757e8 !important;
	font-size: 0.67rem;
}

.noosium-thread__title {
	font-size: 0.96rem;
	font-weight: 800;
}

.noosium-thread__title a {
	color: #0c1b3a !important;
}

.noosium-thread__title a:hover {
	color: #6757e8 !important;
}

.noosium-thread__excerpt {
	margin-top: 5px;
	color: #64748b;
	font-size: 0.76rem;
}

.noosium-thread__byline {
	margin-top: 7px;
	color: #94a3b8;
}

.noosium-thread__activity {
	border-left: 1px solid #eef0f4;
	background: #fafbfc;
	color: #475569 !important;
}

.noosium-thread__activity span {
	color: #94a3b8;
}

/* 커뮤니티 글 조회수·추천 */
.noosium-post-engagement {
	display: flex;
	align-items: center;
	gap: 6px;
	width: min(100%, var(--wp--style--global--content-size));
	margin: calc(-1 * var(--wp--preset--spacing--30)) auto var(--wp--preset--spacing--50);
	color: #64748b;
	font-size: 0.78rem;
	font-variant-numeric: tabular-nums;
}

.noosium-post-engagement:not(.noosium-post-engagement--compact) .noosium-post-engagement__views,
.noosium-post-engagement:not(.noosium-post-engagement--compact) .noosium-post-engagement__recommendations,
.noosium-recommend-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 34px;
	padding: 0 10px;
	border-radius: 10px;
	line-height: 1;
	white-space: nowrap;
}

.noosium-post-engagement:not(.noosium-post-engagement--compact) .noosium-post-engagement__views {
	background: #f3f4f8;
	color: #64748b;
}

.noosium-post-engagement:not(.noosium-post-engagement--compact) .noosium-post-engagement__views > span[aria-hidden="true"],
.noosium-recommend-button > span[aria-hidden="true"] {
	display: inline-block;
	flex: 0 0 16px;
	width: 16px;
	height: 16px;
	overflow: hidden;
	background: currentColor;
	font-size: 0;
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
}

.noosium-post-engagement:not(.noosium-post-engagement--compact) .noosium-post-engagement__views > span[aria-hidden="true"] {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5c-5.2 0-9.1 4.2-10.4 6.1a1.55 1.55 0 0 0 0 1.8C2.9 14.8 6.8 19 12 19s9.1-4.2 10.4-6.1a1.55 1.55 0 0 0 0-1.8C21.1 9.2 17.2 5 12 5Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-2.2a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 5c-5.2 0-9.1 4.2-10.4 6.1a1.55 1.55 0 0 0 0 1.8C2.9 14.8 6.8 19 12 19s9.1-4.2 10.4-6.1a1.55 1.55 0 0 0 0-1.8C21.1 9.2 17.2 5 12 5Zm0 11a4 4 0 1 1 0-8 4 4 0 0 1 0 8Zm0-2.2a1.8 1.8 0 1 0 0-3.6 1.8 1.8 0 0 0 0 3.6Z'/%3E%3C/svg%3E");
}

.noosium-recommend-button > span[aria-hidden="true"] {
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21a1 1 0 0 1-.65-.24C4.15 14.6 2 12.27 2 8.5A5.5 5.5 0 0 1 12 5.32 5.5 5.5 0 0 1 22 8.5c0 3.77-2.15 6.1-9.35 12.26A1 1 0 0 1 12 21ZM7.5 5A3.5 3.5 0 0 0 4 8.5c0 2.75 1.64 4.62 8 10.12 6.36-5.5 8-7.37 8-10.12A3.5 3.5 0 0 0 13 8a1 1 0 0 1-2 0 3.5 3.5 0 0 0-3.5-3Z'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21a1 1 0 0 1-.65-.24C4.15 14.6 2 12.27 2 8.5A5.5 5.5 0 0 1 12 5.32 5.5 5.5 0 0 1 22 8.5c0 3.77-2.15 6.1-9.35 12.26A1 1 0 0 1 12 21ZM7.5 5A3.5 3.5 0 0 0 4 8.5c0 2.75 1.64 4.62 8 10.12 6.36-5.5 8-7.37 8-10.12A3.5 3.5 0 0 0 13 8a1 1 0 0 1-2 0 3.5 3.5 0 0 0-3.5-3Z'/%3E%3C/svg%3E");
}

.noosium-post-engagement strong {
	color: inherit;
	font-weight: 800;
}

.noosium-recommend-button {
	-webkit-appearance: none;
	appearance: none;
	border: 1px solid #ddd8ff;
	background: #f2efff;
	color: #5b4bd5 !important;
	font-family: inherit;
	font-size: inherit;
	font-weight: 750;
	text-decoration: none !important;
	cursor: pointer;
	transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.noosium-recommend-button:hover,
.noosium-recommend-button.is-active {
	border-color: #6757e8;
	background: #6757e8;
	color: #fff !important;
}

.noosium-recommend-button:hover {
	transform: translateY(-1px);
}

.noosium-recommend-button:disabled {
	opacity: 0.6;
	cursor: wait;
}

.noosium-post-engagement--compact {
	gap: 8px;
	width: auto;
	margin: 0;
	color: var(--wp--preset--color--muted);
	font-size: 0.72rem;
	white-space: nowrap;
}

.noosium-list-item__meta .noosium-post-engagement--compact {
	margin: 0;
}

body.single-post .noosium-byline:has(.noosium-post-engagement) {
	gap: 7px !important;
	width: min(100%, var(--wp--style--global--content-size));
	margin: var(--wp--preset--spacing--40) auto var(--wp--preset--spacing--50) !important;
	padding: 10px 12px;
	border: 1px solid #e8e6f2;
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.82);
	box-shadow: 0 4px 16px rgba(12, 27, 58, 0.045);
}

body.single-post .noosium-byline:has(.noosium-post-engagement) .noosium-byline__label {
	color: #8b94a7;
	font-size: 0.74rem;
}

body.single-post .noosium-byline:has(.noosium-post-engagement) > .wp-block-post-author-name {
	margin-right: auto;
}

body.single-post .noosium-byline:has(.noosium-post-engagement) .wp-block-post-author-name a {
	font-size: 0.82rem;
	font-weight: 700;
}

body.single-post .noosium-byline:has(.noosium-post-engagement) .noosium-post-engagement:not(.noosium-post-engagement--compact) {
	flex: 0 0 auto;
	width: auto;
	margin: 0 0 0 auto;
}

@media (max-width: 480px) {
	body.single-post .noosium-byline:has(.noosium-post-engagement) {
		padding: 9px 10px;
	}

	.noosium-post-engagement:not(.noosium-post-engagement--compact) .noosium-post-engagement__views,
	.noosium-recommend-button {
		min-height: 32px;
		padding-right: 9px;
		padding-left: 9px;
	}
}

.noosium-empty-state {
	padding: 80px 24px;
	border: 0;
	text-align: center;
}

.noosium-empty-state h3 {
	margin: 0;
	color: #64748b;
	font-size: 0.94rem;
	font-weight: 700;
}

.noosium-empty-state a {
	margin-top: 14px;
	padding: 8px 13px;
	border: 0;
	border-radius: 8px;
	background: #eeebff;
	color: #6757e8 !important;
	font-size: 0.76rem;
}

.noosium-editorial-compact {
	margin-top: 18px;
	padding: 20px;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	background: #fff;
	color: #0c1b3a;
}

.noosium-editorial-compact .noosium-panel-heading {
	align-items: center;
	margin-bottom: 12px;
}

.noosium-editorial-compact .noosium-panel-heading h2 {
	font-size: 1rem;
	font-weight: 850;
	letter-spacing: -0.02em;
}

.noosium-editorial-compact .noosium-panel-heading a {
	color: #6757e8 !important;
	font-size: 0.74rem;
	text-decoration: none;
}

.noosium-editorial-compact__list {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	border: 0;
	border-top: 1px solid #eef0f4;
}

.noosium-editorial-compact__list a {
	display: grid;
	grid-template-columns: 24px minmax(0, 1fr);
	align-items: center;
	gap: 8px;
	min-height: 58px;
	padding: 10px 12px;
	border-right: 0;
	border-bottom: 1px solid #eef0f4;
	color: #334155 !important;
}

.noosium-editorial-compact__list a:nth-child(odd) {
	border-right: 1px solid #eef0f4;
}

.noosium-editorial-compact__list span {
	color: #8b7cf6;
	font-size: 0.65rem;
}

.noosium-editorial-compact__list strong {
	margin: 0;
	overflow: hidden;
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.35;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.noosium-editorial-compact__list a:hover {
	background: #faf9ff;
}

.noosium-directory {
	margin-top: 24px;
}

.noosium-directory__intro {
	margin-bottom: 18px;
}

.noosium-directory__intro > span,
.noosium-directory__intro p {
	display: none;
}

.noosium-directory__intro h2 {
	font-size: 1.2rem;
	letter-spacing: -0.03em;
}

.noosium-directory .noosium-hub-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	margin-bottom: 28px;
	border: 0;
}

.noosium-directory .noosium-hub-card {
	min-height: 0;
	overflow: hidden;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	background: #fff;
}

.noosium-directory .noosium-hub-card:hover,
.noosium-directory .noosium-hub-card.is-active {
	background: #faf9ff;
	border-color: #b9b0ff;
	box-shadow: none;
	transform: none;
}

.noosium-directory .noosium-hub-card__main {
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
	padding: 17px 18px;
}

.noosium-directory .noosium-hub-card__main strong {
	margin: 0;
	font-size: 1rem;
}

.noosium-directory .noosium-hub-card__count {
	margin: 0;
	padding: 0;
	color: #94a3b8;
}

.noosium-directory .noosium-hub-card__topics {
	padding: 12px 18px 15px;
	border-top: 1px solid #eef0f4;
}

.noosium-directory .noosium-hub-card__topics a {
	color: #6757e8 !important;
	text-decoration: none;
}

.noosium-directory__editorial {
	padding: 22px;
	border: 1px solid #e5e7eb;
	border-radius: 16px;
}

.noosium-directory__editorial .noosium-panel-heading h2 {
	font-size: 1.15rem;
}

.noosium-directory__editorial-links {
	gap: 8px;
	border: 0;
}

.noosium-directory__editorial-links a {
	min-height: 66px;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
}

.noosium-directory__editorial-links a:hover {
	background: #eeebff;
}

.wp-block-post-terms a {
	background: #eeebff;
	color: #6757e8;
}

.noosium-ai-badge--generated {
	background: #6757e8;
}

.noosium-composer__submit {
	background: #6757e8;
}

.noosium-composer__submit:hover {
	background: #5646d4;
}

.noosium-footer {
	background: #fff !important;
	color: #64748b;
}

.noosium-footer p,
.noosium-footer a {
	color: #64748b !important;
}

@media (max-width: 782px) {
	.noosium-community-experience {
		width: 100%;
		padding: 18px 0 78px;
	}

	.noosium-community-pagebar {
		padding: 0 18px;
	}

	.noosium-community-pagebar h1 {
		font-size: 1.35rem;
	}

	.noosium-community-pagebar > a {
		min-height: 36px;
		padding: 0 14px;
	}

	.noosium-community-layout {
		display: block;
	}

	.noosium-community-layout .noosium-hub-section {
		position: static;
		padding: 0 0 13px;
		border: 0;
		border-radius: 0;
		background: transparent;
	}

	.noosium-community-layout .noosium-section-heading {
		margin: 0 18px 8px;
		padding: 0;
		border: 0;
	}

	.noosium-community-layout .noosium-hub-grid {
		display: flex;
		flex-direction: row;
		gap: 7px;
		padding: 0 18px 3px;
		overflow-x: auto;
		scroll-snap-type: none;
	}

	.noosium-community-layout .noosium-hub-card {
		flex: 0 0 auto;
		min-height: 0;
		border: 1px solid #e5e7eb;
		border-radius: 999px;
		background: #fff;
	}

	.noosium-community-layout .noosium-hub-card__main {
		gap: 6px;
		padding: 8px 12px;
	}

	.noosium-community-layout .noosium-hub-card__count {
		display: none;
	}

	.noosium-community-feed {
		border-right: 0;
		border-left: 0;
		border-radius: 0;
	}

	.noosium-feed-head {
		display: flex;
		padding: 11px 18px;
	}

	.noosium-feed-tabs {
		margin: 0;
	}

	.noosium-feed-composer {
		padding: 9px 18px;
		border-right: 0;
		border-left: 0;
	}

	.noosium-thread {
		grid-template-columns: minmax(0, 1fr) 76px;
	}

	.noosium-thread__body {
		padding: 15px 12px 15px 18px;
	}

	.noosium-thread__activity {
		padding: 6px 4px;
	}

	.noosium-editorial-compact {
		margin-top: 12px;
		padding: 17px 18px 80px;
		border-right: 0;
		border-left: 0;
		border-radius: 0;
	}

	.noosium-editorial-compact__list {
		display: block;
	}

	.noosium-editorial-compact__list a,
	.noosium-editorial-compact__list a:nth-child(odd) {
		min-height: 54px;
		border-right: 0;
	}

	.noosium-directory .noosium-hub-grid {
		display: grid;
		grid-template-columns: 1fr;
		margin-right: 0;
		margin-left: 0;
		padding: 0;
		overflow: visible;
	}

	.noosium-mobile-tabbar {
		border-top-color: #e5e7eb;
		background: rgba(255, 255, 255, 0.97);
	}

	.noosium-mobile-tab {
		color: #64748b;
	}

	.noosium-mobile-tab.is-active {
		color: #6757e8;
	}

	.noosium-mobile-tab.is-active .noosium-mobile-tab__icon {
		background: #eeebff;
	}

	.noosium-mobile-tab--write {
		color: #6757e8 !important;
	}

	.noosium-mobile-tab--write .noosium-mobile-tab__icon {
		background: #6757e8;
		color: #fff;
		box-shadow: 0 6px 18px rgba(103, 87, 232, 0.28);
	}
}

@media (max-width: 430px) {
	.noosium-feed-head {
		align-items: flex-start;
		flex-direction: column;
		gap: 9px;
	}

	.noosium-feed-tabs {
		width: 100%;
	}

	.noosium-feed-tabs a {
		flex: 1;
		text-align: center;
	}
}

/* 2.0.2 — 헤더 액션 높이 통일, 작성 CTA 좌측 정렬. */
.noosium-header-search .wp-block-search__inside-wrapper {
	min-height: 36px;
}

.noosium-header-search .wp-block-search__input {
	min-height: 34px;
	padding-block: 0;
}

.noosium-header-login,
.noosium-header-write {
	height: 36px;
	min-height: 36px;
	box-sizing: border-box;
	padding: 0 12px;
	font-size: 0.78rem;
	line-height: 1;
}

.noosium-header-login__icon svg {
	width: 14px;
	height: 14px;
}

.noosium-header-write {
	gap: 7px;
}

.noosium-feed-composer .noosium-composer__loginbtn,
.noosium-feed-composer .noosium-composer__toggle {
	justify-content: flex-start;
}

/* 2.0.4 — 로고 원본의 왼쪽 투명 여백(축소 시 약 8px)과 컨테이너
   10px을 합쳐 실제 보이는 첫 픽셀이 본문 18px 기준선에 오도록 한다.
   WordPress의 바깥 has-global-padding까지 제거해야 이 계산이 유지된다. */
@media (max-width: 782px) {
	.noosium-header > .wp-block-group.has-global-padding {
		padding-right: 0 !important;
		padding-left: 0 !important;
	}

	.noosium-header-inner {
		width: 100%;
		box-sizing: border-box;
		margin-inline: 0 !important;
		padding-right: 10px !important;
		padding-left: 10px !important;
	}

	.noosium-header .wp-block-site-logo img {
		transform: none;
	}
}
