
/* ============================================================
   NEWMAG — 디자인 시스템 (detail/3 계승)
   기존 ttj.kr 스타일과 절대 충돌 안 함 (모든 클래스 .nw- prefix)
   ============================================================ */
.nw, .nw *, .nw *::before, .nw *::after {
	box-sizing:border-box; margin:0; padding:0; border-radius:0 !important;
	font-style:normal !important;
}
/* / 전체 페이지 공통 — body 기본 여백 제거 (상단 여백 0) */
body { margin:0; margin-top:0; }
.nw {
	--bg:#FFFFFF; --fg:#0a0a0a;
	--muted:#FAFAFA; --muted-2:#F5F5F5;
	--cream:#FAF8F3; --cream-2:#F3EFE7;
	--ink:#0F0E0C; --ink-soft:#1A1815;
	--muted-fg:#525252; --muted-fg-2:#737373;
	--border:#0a0a0a; --border-light:#E5E5E5; --border-ultra-light:#F0F0F0; --border-cream:#E8E2D5;
	--gold:#C79A4A; --gold-d:#8A6529; --gold-soft:#E7C884;
	--font:'Pretendard Variable','Pretendard',-apple-system,sans-serif;
	--font-mono:'JetBrains Mono','SF Mono',Menlo,monospace;
	--font-serif:'Noto Serif KR','Noto Serif','Pretendard Variable',serif;
	--font-italic:'Cormorant Garamond','Plus Jakarta Sans',serif;

	background:var(--bg); color:var(--fg);
	font-family:var(--font); font-weight:400; line-height:1.55;
	letter-spacing:-0.01em;
	-webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
	min-height:100vh; position:relative;
}

/* PC(1280px 이상)에서 사이트 전체를 110%로 (CEO 10/7 — 브라우저 110% 배율이 적당하다고 함).
   zoom 은 화면 높이(vh) 값도 1.1배로 키우므로, 화면을 꽉 채우는 무대·팝업은 1.1로 나눠 화면에 딱 맞춘다. */
@media (min-width:1280px){
	html{zoom:1.1;}
	.v2-modal{max-height:calc(92vh / 1.1) !important;}   /* 결제 팝업 (홈은 home_new_b.php 에 따로) */
}

/* em 기본 — Pretendard bold (이탤릭 X, editor-note만 예외) */
.nw em { font-style:normal !important; font-weight:700; color:inherit; }
.nw .nw-editor-note em { font-family:var(--font-italic); font-style:italic !important; font-weight:500; }
.nw .nw-editor-note .nw-quote-mark { font-family:var(--font-italic); font-style:italic !important; font-weight:500; font-size:1.4em; line-height:1; vertical-align:-0.18em; margin:0 0.06em; opacity:0.7; }

/* 인용부호 — 본문용 (Pretendard) */
.nw .nw-quote-mark {
	font-family:var(--font); font-weight:300; font-style:normal !important;
	font-size:1.3em; line-height:1; color:currentColor; vertical-align:-0.12em; margin:0 0.04em;
	opacity:0.45;
}
.nw .nw-dot-pattern {
	background-image:radial-gradient(circle, rgba(255,255,255,0.08) 1px, transparent 1.5px);
	background-size:18px 18px;
}
.nw a { color:inherit; text-decoration:none; }
.nw img { display:block; max-width:100%; }
.nw ul, .nw ol, .nw li { list-style:none; }
.nw button { font-family:var(--font); cursor:pointer; }

/* ===== 전역 포인트 컬러(GOLD) — 모든 페이지 공통 액센트 =====
   대비 확보: 라이트 배경 마커/넘버는 딥골드(--gold-d, 흰바탕 5:1), 다크(ink) 히어로 마커만 라이트골드(--gold, 검정바탕 7.5:1).
   마커의 ::before/::after 라인은 background:currentColor라 자동으로 같은 골드가 됨. */
/* (1) 라이트 배경 섹션 마커 + 디스플레이 넘버 → 딥골드 */
.nw-a-related-eyebrow, .nw-aff-eyebrow, .nw-book-feature-eyebrow,
.nw-ccat-head-eyebrow, .nw-cd-sect-eyebrow, .nw-ck-eyebrow, .nw-cls-tools-eyebrow,
.nw-coverstory-eyebrow, .nw-mat-eyebrow, .nw-numbers-eyebrow, .nw-page-head-eyebrow,
.nw-picks-eyebrow, .nw-rc-eyebrow, .nw-sd-sec-eyebrow, .nw-section-h-eyebrow, .nw-sl-head-eyebrow,
.nw-chal-kicker, .nw-gd-kicker, .nw-opening-kicker,
.nw-ccat-strip-mark, .nw-cd-inst-mark, .nw-deskmargin-mark,
.nw-sectintro-mark, .nw-cls-empty-mark, .nw-search-overlay-mark,
.nw-coverstory-no, .nw-secthead-no, .nw-cd-ch-no, .nw-cd-jr-step-no, .nw-cd-vol-no,
.nw-mcard-no, .nw-pick-no, .nw-rc-stage-no, .nw-sd-chapter-no, .nw-sd-target-no,
.nw-cd-inc-no, .nw-cd-lec-no, .nw-cd-faq-q-no {
	color: var(--gold-d) !important;
}
/* (2) 다크(ink) 배경 히어로 마커 → 라이트골드 */
.nw-chal-eyebrow, .nw-gd-eyebrow, .nw-cd-hero-eyebrow, .nw-cd-pricing-eyebrow,
.nw-aff-hero-eyebrow, .nw-aff-cta-mark, .nw-sd-eyebrow,
.nw-class-hero-l-kicker, .nw-endpaper-kicker, .nw-endpaper-mark {
	color: var(--gold) !important;
}

/* 로고 */
.nw .ttj-mark {
	display:inline-block; font-family:'Plus Jakarta Sans','Inter',var(--font);
	font-weight:900; font-style:italic !important; letter-spacing:-0.06em;
	line-height:0.85; text-transform:lowercase;
}

/* ============================================================
   레이아웃
   ============================================================ */
.nw-wrap { max-width:1280px; margin:0 auto; padding:0 32px; }
.nw-narrow { max-width:880px; margin:0 auto; padding:0 32px; }
.nw-rule { display:block; width:100%; height:2px; background:#000; border:none; }
.nw-rule-ultra { display:block; width:100%; height:6px; background:#000; border:none; }
.nw-rule-hair { display:block; width:100%; height:1px; background:var(--border-light); border:none; }

/* ============================================================
   NAV · 마스트헤드
   ============================================================ */
.nw-nav {
	position:sticky; top:0; z-index:50;
	background:rgba(255,255,255,0.95);
	backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
	border-bottom:1px solid var(--border-light);
}
.nw-nav-inner { display:flex; align-items:center; justify-content:space-between; padding:10px 0; gap:24px; }
.nw-nav-logo { display:flex; align-items:center; gap:14px; }
.nw-nav-logo .ttj-mark { font-size:32px; color:#000; }
.nw-nav-logo-div { width:1px; height:20px; background:var(--border-light); }
.nw-nav-slogan {
	font-family:var(--font); font-size:13px; font-weight:500;
	letter-spacing:-0.02em; color:var(--ink); line-height:1.35;
	display:flex; flex-direction:column; gap:1px;
}
.nw-nav-slogan b { font-weight:700; }
.nw-nav-slogan .l2 { color:var(--muted-fg); }
.nw-nav-r { display:flex; align-items:center; gap:4px; }
.nw-nav-tools { display:flex; align-items:center; gap:4px; }
.nw-nav-link {
	padding:10px 14px; font-size:12.5px; font-weight:600; color:var(--muted-fg);
	letter-spacing:0.04em; transition:color 100ms;
	display:flex; align-items:center; gap:6px;
	border-bottom:2px solid transparent;
}
.nw-nav-link i { font-size:10.5px; opacity:0.7; }
.nw-nav-label { display:inline-flex; align-items:center; }
.nw-nav-update-dot {
	display:inline-block; width:7px; height:7px; margin-left:5px; flex:none;
	border-radius:50% !important; background:#ef3b3b; box-shadow:0 0 0 1px rgba(239,59,59,.16);
	transform:translateY(-4px);
}
.nw-nav-link:hover { color:#000; }
.nw-nav-link.is-active { color:#000; border-bottom-color:#000; }
.nw-nav-group { position:relative; display:flex; align-items:stretch; }
.nw-nav-group > .nw-nav-link::after {
	content:'+'; margin-left:1px; font-family:var(--font-mono); font-size:11px;
	font-weight:500; line-height:1; color:currentColor; opacity:.55;
}
.nw-nav-category-menu {
	position:absolute; z-index:60; top:calc(100% - 1px); left:0; width:300px;
	padding:9px; border:1px solid var(--border-light); background:#fff;
	box-shadow:0 20px 42px rgba(15,14,12,.13);
	opacity:0; visibility:hidden; pointer-events:none; transform:translateY(7px);
	transition:opacity 140ms,visibility 140ms,transform 140ms;
}
.nw-nav-group:hover .nw-nav-category-menu,
.nw-nav-group:focus-within .nw-nav-category-menu {
	opacity:1; visibility:visible; pointer-events:auto; transform:none;
}
.nw-nav-category-menu a {
	display:block; padding:12px 13px; border-bottom:1px solid var(--border-ultra-light);
	color:var(--ink); transition:background 120ms;
}
.nw-nav-category-menu a:last-child { border-bottom:0; }
.nw-nav-category-menu a:hover,
.nw-nav-category-menu a:focus { background:var(--muted); }
.nw-nav-category-menu b { display:block; font-size:13px; line-height:1.35; letter-spacing:-.02em; }
.nw-nav-category-menu small { display:block; margin-top:4px; color:var(--muted-fg); font-size:10.5px; line-height:1.45; }
/* 메뉴 3단 — 수강생 전용 가이드북 (2026-10-15): 하위 항목은 들여 쓰고, 메뉴가 화면보다 길면 안에서 스크롤 */
.nw-nav-category-menu { max-height:calc(100vh - 90px); overflow-y:auto; }
.nw-nav-category-menu a.nw-nav-sub { position:relative; padding:8px 13px 9px 30px; }
.nw-nav-category-menu a.nw-nav-sub::before { content:'└'; position:absolute; left:15px; top:8px; color:var(--muted-fg); font-size:11px; }
.nw-nav-category-menu a.nw-nav-sub b { font-size:12.5px; font-weight:600; color:var(--muted-fg); }
.nw-nav-category-menu a.nw-nav-sub:hover b, .nw-nav-category-menu a.nw-nav-sub:focus b { color:var(--ink); }
.nw-mobile-menu-link.is-sub { padding-left:34px; font-size:13px; }
body.new-b-page .nwb-mobile-link.is-sub { padding-left:30px; }
body.new-b-page .nwb-mobile-link.is-sub b { font-size:13px; }
.nw-nav-search {
	width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center;
	border:1px solid var(--border-light); color:#000;
	transition:background 100ms, color 100ms; cursor:pointer;
}
.nw-nav-search:hover { background:#000; color:#fff; }

/* 전체화면 검색 오버레이 */
.nw-search-overlay {
	position:fixed; inset:0; z-index:10002;
	background:rgba(15,14,12,0.96); backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px);
	display:none; flex-direction:column;
	opacity:0; transition:opacity 200ms;
}
.nw-search-overlay.open { display:flex; opacity:1; }
.nw-search-overlay-top {
	display:flex; align-items:center; justify-content:space-between;
	padding:24px 32px; border-bottom:1px solid rgba(255,255,255,0.12);
}
.nw-search-overlay-mark {
	font-family:var(--font-mono); font-size:11px; font-weight:600;
	letter-spacing:0.22em; color:rgba(255,255,255,0.55); text-transform:uppercase;
	display:inline-flex; align-items:center; gap:12px;
}
.nw-search-overlay-mark::before { content:''; width:18px; height:1px; background:currentColor; opacity:0.5; }
.nw-search-overlay-close {
	width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center;
	border:1px solid rgba(255,255,255,0.25); color:#fff; font-size:16px;
	cursor:pointer; transition:background 100ms, color 100ms;
	background:transparent;
}
.nw-search-overlay-close:hover { background:#fff; color:var(--ink); }
.nw-search-overlay-body {
	flex:1; display:flex; flex-direction:column; justify-content:center; align-items:center;
	padding:40px 32px;
}
.nw-search-overlay-form {
	width:100%; max-width:760px; position:relative;
}
.nw-search-overlay-input {
	width:100%; padding:18px 56px 18px 0;
	background:transparent; border:none;
	border-bottom:2px solid rgba(255,255,255,0.35);
	color:#fff; font-family:var(--font); font-size:clamp(24px, 3.6vw, 44px);
	font-weight:500; letter-spacing:-0.035em; line-height:1.2;
	outline:none; transition:border-color 200ms;
}
.nw-search-overlay-input::placeholder { color:rgba(255,255,255,0.35); }
.nw-search-overlay-input:focus { border-bottom-color:#fff; }
.nw-search-overlay-submit {
	position:absolute; right:0; top:50%; transform:translateY(-50%);
	width:48px; height:48px; display:inline-flex; align-items:center; justify-content:center;
	background:transparent; border:none; color:rgba(255,255,255,0.6);
	font-size:20px; cursor:pointer; transition:color 100ms;
}
.nw-search-overlay-submit:hover { color:#fff; }
.nw-search-overlay-hint {
	margin-top:40px; max-width:760px; width:100%;
	display:flex; align-items:center; gap:18px; flex-wrap:wrap;
	font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:0.18em;
	color:rgba(255,255,255,0.5); text-transform:uppercase;
}
.nw-search-overlay-hint kbd {
	display:inline-block; padding:4px 8px;
	background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.15);
	color:rgba(255,255,255,0.8); font-family:var(--font-mono); font-size:10.5px;
	font-weight:600; letter-spacing:0.06em;
}
.nw-search-overlay-chips {
	margin-top:32px; max-width:760px; width:100%;
	display:flex; flex-wrap:wrap; gap:8px; align-items:center;
}
.nw-search-overlay-chips .lbl {
	font-family:var(--font-mono); font-size:11px; font-weight:600; letter-spacing:0.18em;
	color:rgba(255,255,255,0.5); margin-right:8px; text-transform:uppercase;
}
.nw-search-overlay-chips a {
	padding:8px 14px; border:1px solid rgba(255,255,255,0.2);
	font-family:var(--font); font-size:13px; font-weight:500; color:rgba(255,255,255,0.85);
	letter-spacing:-0.005em; transition:background 100ms, color 100ms, border-color 100ms;
}
.nw-search-overlay-chips a:hover { background:#fff; color:var(--ink); border-color:#fff; }

/* Auth (로그인/회원가입) */
.nw-nav-auth {
	display:inline-flex; align-items:center; gap:2px;
	padding-left:12px; margin-left:6px;
	border-left:1px solid var(--border-light);
	position:relative;
}
.nw-nav-auth a {
	padding:8px 10px; font-size:12.5px; font-weight:600; color:var(--muted-fg);
	letter-spacing:-0.005em; transition:color 100ms;
}
.nw-nav-auth a:hover { color:var(--ink); }
.nw-nav-auth a.signup { color:var(--ink); font-weight:700; }

/* 로그인 시 — 이름 드롭다운 */
.nw-nav-user {
	display:inline-flex; align-items:center; gap:6px;
	padding:8px 12px;
	font-size:12.5px; font-weight:700; color:var(--ink);
	letter-spacing:-0.005em; cursor:pointer;
	transition:background 100ms;
}
.nw-nav-user:hover { background:var(--muted); }
.nw-nav-user i { font-size:9px; opacity:0.6; transition:transform 200ms; }
.nw-nav-user.is-open i { transform:rotate(180deg); }
.nw-nav-submenu {
	position:absolute; top:calc(100% + 8px); right:0;
	min-width:180px; background:#fff; border:1px solid var(--border-light);
	box-shadow:0 24px 48px -16px rgba(15,14,12,0.18);
	display:none; flex-direction:column;
	z-index:60;
}
.nw-nav-submenu.is-open { display:flex; }
.nw-nav-submenu a {
	display:flex; align-items:center; gap:10px;
	padding:14px 18px; font-size:13px; font-weight:600; color:var(--ink);
	border-bottom:1px solid var(--border-light); letter-spacing:-0.005em;
	transition:background 100ms, color 100ms;
}
.nw-nav-submenu a:last-child { border-bottom:none; }
.nw-nav-submenu a:hover { background:var(--ink); color:#fff; }
.nw-nav-submenu a i { font-size:11px; opacity:0.6; width:14px; }
.nw-nav-submenu a.logout { color:var(--muted-fg); }
.nw-nav-submenu a.logout:hover { background:#dc2626; color:#fff; }

.nw-nav-cta {
	display:inline-flex !important; align-items:center; gap:8px;
	padding:11px 18px; background:#000 !important; color:#fff !important;
	font-size:12.5px; font-weight:700; letter-spacing:-0.005em;
	transition:background 100ms;
	margin-left:6px;
	text-decoration:none;
}
.nw-nav-cta i { color:#fff !important; }
.nw-nav-cta:hover { background:#262626 !important; }

/* 모바일 햄버거 버튼 */
.nw-nav-hamburger {
	display:none;
	width:36px; height:36px; align-items:center; justify-content:center;
	border:1px solid var(--border-light); background:#fff; cursor:pointer;
	transition:background 100ms, color 100ms; color:var(--ink); font-size:14px;
	padding:0; margin-left:6px;
}
.nw-nav-hamburger:hover { background:var(--ink); color:#fff; }

/* 모바일 메뉴 오버레이 */
.nw-mobile-menu {
	position:fixed; inset:0; z-index:10001;
	background:#fff; display:none; flex-direction:column;
	opacity:0; transition:opacity 200ms;
}
.nw-mobile-menu.open { display:flex; opacity:1; }
.nw-mobile-menu-top {
	display:flex; align-items:center; justify-content:space-between;
	padding:18px 22px; border-bottom:1px solid var(--border-light);
}
.nw-mobile-menu-top .ttj-mark { font-size:26px; color:var(--ink); }
.nw-mobile-menu-close {
	width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
	border:1px solid var(--border-light); background:#fff; color:var(--ink);
	font-size:16px; cursor:pointer; padding:0;
}
.nw-mobile-menu-close:hover { background:var(--ink); color:#fff; }
.nw-mobile-menu-body {
	flex:1; overflow-y:auto;
	display:flex; flex-direction:column;
}
.nw-mobile-menu-section {
	padding:24px 22px;
	border-bottom:1px solid var(--border-light);
}
.nw-mobile-menu-section:last-child { border-bottom:none; }
.nw-mobile-menu-label {
	font-family:var(--font-mono); font-size:10.5px; font-weight:700; letter-spacing:0.22em;
	color:var(--muted-fg); text-transform:uppercase; margin-bottom:14px;
	display:inline-flex; align-items:center; gap:10px;
}
.nw-mobile-menu-label::before { content:''; width:18px; height:1px; background:currentColor; opacity:0.5; }
.nw-mobile-menu-link {
	display:flex; align-items:center; justify-content:space-between;
	padding:16px 0; font-family:var(--font);
	font-size:18px; font-weight:700; color:var(--ink); letter-spacing:-0.025em;
	border-bottom:1px solid var(--border-ultra-light);
	transition:color 100ms;
}
.nw-mobile-menu-link:last-child { border-bottom:none; }
.nw-mobile-menu-link i { font-size:13px; color:var(--muted-fg); }
.nw-mobile-menu-link:hover { color:var(--muted-fg); }
.nw-mobile-menu-link.is-active { color:var(--ink); }
.nw-mobile-menu-link.is-active::after { content:'·'; color:var(--ink); margin-left:8px; }
.nw-mobile-menu-link.is-child { padding-left:18px; font-size:14px; background:var(--muted); }

/* Mobile menu auth */
.nw-mobile-menu-auth {
	display:flex; flex-direction:column; gap:10px;
}
.nw-mobile-menu-auth-btn {
	padding:16px 20px; font-family:var(--font); font-size:14px; font-weight:700;
	letter-spacing:-0.005em; text-align:center;
	border:1.5px solid var(--ink); cursor:pointer;
	display:flex; align-items:center; justify-content:center; gap:10px;
	transition:background 100ms, color 100ms;
}
.nw-mobile-menu-auth-btn.primary { background:var(--ink); color:#fff; }
.nw-mobile-menu-auth-btn.primary:hover { background:transparent; color:var(--ink); }
.nw-mobile-menu-auth-btn.outline { background:#fff; color:var(--ink); }
.nw-mobile-menu-auth-btn.outline:hover { background:var(--ink); color:#fff; }
.nw-mobile-menu-auth-btn.logout { color:var(--muted-fg); border-color:var(--border-light); }
.nw-mobile-menu-auth-btn.logout:hover { background:#dc2626; color:#fff; border-color:#dc2626; }
.nw-mobile-menu-user {
	padding:10px 0 18px; font-family:var(--font); font-size:18px; font-weight:700;
	color:var(--ink); letter-spacing:-0.02em;
}
.nw-mobile-menu-user b { font-weight:800; }
.nw-mobile-menu-foot {
	padding:24px 22px; background:var(--cream);
	font-family:var(--font); font-size:13px; color:var(--muted-fg); line-height:1.6;
}
.nw-mobile-menu-foot .slogan {
	font-size:15px; font-weight:600; color:var(--ink); letter-spacing:-0.02em; margin-bottom:6px;
}
.nw-mobile-menu-foot .slogan b { font-weight:800; }

/* ============================================================
   PROGRESS BAR
   ============================================================ */
.nw-progress {
	position:fixed; left:0; top:0; height:2px; background:#000;
	width:0%; transition:width 100ms linear; z-index:51;
}

/* ============================================================
   ICONS
   ============================================================ */
.nw .fa, .nw .fas, .nw .far, .nw .fab {
	font-style:normal !important;
	display:inline-flex; align-items:center; justify-content:center;
}
.nw-ico {
	display:inline-flex; align-items:center; justify-content:center;
	width:36px; height:36px; border:1.5px solid #000;
	font-size:14px; color:#000; flex-shrink:0;
	transition:background 100ms, color 100ms, border-color 100ms;
}
.nw-ico-sm { width:28px; height:28px; font-size:11px; border-width:1px; }
.nw-ico-lg { width:48px; height:48px; font-size:18px; }
.nw-ico.on-dark { border-color:#fff; color:#fff; }
.nw-ico-inline { font-size:0.85em; margin-right:8px; opacity:0.7; vertical-align:-1px; }

/* ============================================================
   BUTTONS
   ============================================================ */
.nw-btn {
	display:inline-flex; align-items:center; justify-content:center; gap:10px;
	padding:14px 24px; font-family:var(--font);
	font-size:13.5px; font-weight:600; letter-spacing:-0.005em;
	transition:background 100ms, color 100ms, border-color 100ms;
	cursor:pointer; border:none;
}
.nw-btn-lg { padding:18px 32px; font-size:14.5px; }
.nw-btn-arrow { font-size:13px; transition:transform 150ms; }
.nw-btn:hover .nw-btn-arrow { transform:translateX(3px); }
.nw-btn-primary { background:#000; color:#fff; border:1.5px solid #000; }
.nw-btn-primary:hover { background:#fff; color:#000; }
.nw-btn-outline { background:transparent; color:#000; border:1.5px solid #000; }
.nw-btn-outline:hover { background:#000; color:#fff; }
.nw-btn-ghost { background:transparent; color:var(--muted-fg); padding:6px 12px; font-size:12.5px; }
.nw-btn-ghost:hover { color:#000; }

/* ============================================================
   LABELS · CATEGORY · META
   ============================================================ */
.nw-label {
	display:inline-flex; align-items:center; gap:8px;
	font-family:var(--font-mono); font-size:11px; font-weight:600;
	letter-spacing:0.16em; text-transform:uppercase; color:var(--muted-fg);
}
.nw-label::before { content:''; display:inline-block; width:18px; height:1px; background:currentColor; }
.nw-cat-pill {
	display:inline-block; padding:4px 8px;
	font-family:var(--font-mono); font-size:10.5px; font-weight:700;
	letter-spacing:0.12em; text-transform:uppercase; color:#000;
	border:1px solid #000;
}
.nw-cat-pill.on-bg { background:#000; color:#fff; }
.nw-meta {
	font-family:var(--font-mono); font-size:11px; font-weight:500;
	letter-spacing:0.06em; color:var(--muted-fg-2);
}

/* ============================================================
   PAGE HEADERS
   ============================================================ */
.nw-page-head {
	padding:80px 0 56px; border-bottom:2px solid #000;
}
.nw-page-head-eyebrow { margin-bottom:24px; }
.nw-page-head-h {
	font-size:88px; font-weight:800; line-height:0.98; letter-spacing:-0.045em;
	color:#000; margin:0 0 20px;
}
.nw-page-head-d {
	font-size:18px; line-height:1.6; color:var(--muted-fg); max-width:640px;
}

/* ============================================================
   FOOTER (메인)
   ============================================================ */
.nw-foot {
	padding:80px 0 36px; border-top:6px solid #000; background:#fff; margin-top:120px;
}
.nw-foot-top {
	display:flex; align-items:center; justify-content:space-between;
	padding-bottom:48px; border-bottom:1px solid var(--border-light); flex-wrap:wrap; gap:24px;
}
.nw-foot-wm { color:#000; font-size:clamp(80px, 14vw, 200px); line-height:0.85; }
.nw-foot-right {
	display:flex; flex-direction:column; align-items:flex-end; gap:18px;
}
.nw-foot-soc { display:flex; gap:6px; }
.nw-foot-soc a {
	width:40px; height:40px; display:flex; align-items:center; justify-content:center;
	border:1px solid var(--border-light); color:#000;
	transition:background 100ms, color 100ms, border-color 100ms; font-size:14px;
}
.nw-foot-soc a:hover { background:#000; color:#fff; border-color:#000; }
.nw-foot-newsletter {
	font-size:13px; color:var(--muted-fg); letter-spacing:-0.005em;
}
.nw-foot-newsletter a { color:#000; font-weight:700; border-bottom:1px solid #000; padding-bottom:2px; }

/* 구독 폼 (푸터) */
.nw-foot-subscribe {
	margin-top:18px; max-width:340px;
}
.nw-foot-subscribe-label {
	font-family:var(--font-mono); font-size:10.5px; font-weight:700; letter-spacing:0.18em;
	color:var(--muted-fg); text-transform:uppercase; margin-bottom:10px;
}
.nw-foot-subscribe-row {
	display:flex; gap:0; border:1.5px solid var(--ink);
}
.nw-foot-subscribe-row input {
	flex:1; padding:12px 14px; border:none; outline:none; background:#fff;
	font-family:var(--font); font-size:13px; color:var(--ink); letter-spacing:-0.005em;
}
.nw-foot-subscribe-row button {
	padding:0 16px; background:var(--ink); color:#fff; border:none; cursor:pointer;
	font-family:var(--font); font-size:12.5px; font-weight:700; letter-spacing:-0.005em;
	display:inline-flex; align-items:center; gap:6px;
	transition:background 100ms;
}
.nw-foot-subscribe-row button:hover { background:#000; }
.nw-foot-subscribe-row button i { font-size:10px; }
.nw-foot-subscribe-msg {
	margin-top:8px; font-family:var(--font-mono); font-size:10.5px; font-weight:600;
	letter-spacing:0.06em; color:var(--ink); min-height:14px;
}
.nw-foot-subscribe-msg.error { color:#dc2626; }
.nw-foot-subscribe-msg.success { color:#16a34a; }

/* 구독 status (로그인 사용자) */
.nw-foot-subscribe-status {
	display:flex; align-items:center; justify-content:space-between; gap:12px;
	padding:10px 14px; border:1.5px solid var(--ink); background:#fff;
	font-family:var(--font); font-size:13px; color:var(--ink); letter-spacing:-0.01em;
}
.nw-foot-subscribe-status span {
	display:inline-flex; align-items:center; gap:8px;
	overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;
}
.nw-foot-subscribe-status span i { color:#16a34a; font-size:11px; flex-shrink:0; }
.nw-foot-subscribe-status button {
	flex-shrink:0; padding:6px 10px; border:none; background:transparent;
	font-family:var(--font-mono); font-size:11px; font-weight:700; letter-spacing:0.06em;
	color:var(--muted-fg); cursor:pointer; transition:color 100ms;
}
.nw-foot-subscribe-status button:hover { color:var(--ink); }
#nwFootSubscribeOneClickBtn { color:var(--ink); font-weight:700; }
#nwFootUnsubscribeBtn:hover { color:#dc2626; }

.nw-foot-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; padding:40px 0 32px; border-bottom:1px solid var(--border-light); }
.nw-foot-brand-l { font-size:13px; font-weight:700; margin-bottom:10px; }
.nw-foot-brand-d { font-size:13.5px; color:var(--muted-fg); line-height:1.7; max-width:320px; }
.nw-foot-block-l { font-size:11px; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; color:var(--muted-fg); margin-bottom:18px; }
.nw-foot-block ul li { font-size:13.5px; line-height:2; }
.nw-foot-block ul li a { color:var(--muted-fg); transition:color 100ms; }
.nw-foot-block ul li a:hover { color:#000; }

.nw-foot-bot {
	padding-top:28px; display:flex; align-items:baseline; justify-content:space-between;
	flex-wrap:wrap; gap:14px; font-size:11px; color:var(--muted-fg);
	font-family:var(--font-mono); letter-spacing:0.06em;
}

/* ============================================================
   반응형
   ============================================================ */
@media (max-width:1024px) {
	.nw-page-head-h { font-size:64px; }
}
@media (max-width:880px) {
	.nw-wrap, .nw-narrow { padding:0 22px; }
	.nw-nav-inner { padding:10px 5px; gap:14px; }
	.nw-nav-logo .ttj-mark { font-size:26px; }
	.nw-nav-slogan { font-size:10.5px; line-height:1.2; gap:0; }
	.nw-nav-logo { gap:8px; }
	.nw-nav-link.hide-m, .nw-nav-group.hide-m, .nw-nav-auth.hide-m { display:none; }
	.nw-nav-hamburger { display:inline-flex; }
	.nw-nav-cta { padding:9px 14px; font-size:11.5px; }
	.nw-page-head { padding:48px 0 36px; }
	.nw-page-head-h { font-size:36px; letter-spacing:-0.035em; }
	.nw-page-head-d { font-size:15px; }
	.nw-foot { padding:48px 0 28px; margin-top:64px; }
	.nw-foot-grid { grid-template-columns:1fr 1fr; gap:32px; }
}

/* ============================================================
   AUTH MODAL (로그인 / 회원가입 — 기존 ttj.kr 시스템 이식)
   ============================================================ */
.modal-backdrop {
	position:fixed; top:0; left:0; right:0; bottom:0;
	background:rgba(0,0,0,0.7); z-index:10000; display:none;
}
.modal-backdrop.open { display:block; }
.auth-modal {
	position:fixed; top:0; right:-100%; width:100%; max-width:420px; height:100%;
	background:#fff; z-index:10001; transition:right 0.3s ease; overflow-y:auto;
}
.auth-modal.open { right:0; }
.modal-content { padding:40px 30px; }
.modal-close {
	position:absolute; top:20px; right:20px; width:40px; height:40px;
	display:flex; align-items:center; justify-content:center;
	background:#f5f5f5; border-radius:50%; cursor:pointer; font-size:18px; color:#666;
	transition:all 0.3s;
}
.modal-close:hover { background:#eee; color:#000; }
.modal-title { font-size:24px; font-weight:700; margin-bottom:30px; color:#000; }
.form-group { margin-bottom:20px; }
.form-label { display:block; font-size:13px; font-weight:600; color:#333; margin-bottom:8px; }
.form-input {
	width:100%; height:50px; padding:0 16px; font-size:15px;
	border:1px solid #ddd; border-radius:10px; transition:all 0.3s;
	font-family:var(--font); color:#000; background:#fff;
	box-sizing:border-box;
}
.form-input:focus { outline:none; border-color:#000; }
.form-btn {
	width:100%; height:54px; background:#000; color:#fff; font-size:16px; font-weight:700;
	border:none; border-radius:10px; cursor:pointer; transition:all 0.3s;
	font-family:var(--font);
}
.form-btn:hover { background:#222; }
.social-divider {
	display:flex; align-items:center; margin:20px 0; color:#aaa; font-size:13px;
}
.social-divider::before, .social-divider::after {
	content:''; flex:1; height:1px; background:#e0e0e0;
}
.social-divider span { padding:0 12px; }
.form-links { text-align:center; margin-top:30px; font-size:13px; color:#888; }
.form-links a { color:#000; font-weight:600; text-decoration:none; }
.gender-btns { display:flex; gap:10px; }
.gender-btn {
	flex:1; height:50px; border:1px solid #ddd; border-radius:10px;
	background:#fff; font-size:14px; cursor:pointer; transition:all 0.3s;
	font-family:var(--font); color:#000;
}
.gender-btn.active { background:#000; color:#fff; border-color:#000; }
.checkbox-group { margin-top:20px; }
.checkbox-item { display:flex; align-items:center; gap:10px; margin-bottom:10px; cursor:pointer; }
.checkbox-item input { width:18px; height:18px; }
.checkbox-item label { font-size:13px; cursor:pointer; color:#333; }

.loading-overlay {
	position:fixed; top:0; left:0; right:0; bottom:0;
	background:rgba(0,0,0,0.7); z-index:99999;
	display:none; align-items:center; justify-content:center; flex-direction:column; gap:20px;
}
.loading-overlay.show { display:flex; }
.loading-spinner {
	width:50px; height:50px;
	border:3px solid rgba(255,255,255,0.2); border-top-color:#fbbf24;
	border-radius:50%; animation:nwspin 1s linear infinite;
}
@keyframes nwspin { to { transform:rotate(360deg); } }
.loading-text { color:#fff; font-size:14px; }

