/*
 * iNRISE Site Components (공용)
 * — Header / Footer / Section frame / Buttons / Hero / Points / Cards 등
 * — iframe 페이지에서만 로드 (shell은 별도)
 */

@import url('tokens.css');

/* ─────────────────────────────── TOP BAR */
.top-bar {
	background:
		linear-gradient(90deg, #001a34 0%, #003664 48%, #001a34 100%);
	color: rgba(255,255,255,0.86);
	font-size: 13px;
	letter-spacing: 0.02em;
	padding: 0 24px;
	border-bottom: 1px solid rgba(255,255,255,0.10);
}
.top-bar__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
	padding: 9px 0;
	display: flex; align-items: center; justify-content: center;
	gap: 0;
}
.top-bar__promo {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.01em;
	text-decoration: none;
	text-align: center;
	line-height: 1.2;
}
.top-bar__promo strong {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	flex-wrap: wrap;
}
.top-bar__promo:hover { color: #fff; }
.top-bar__emoji {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	line-height: 1;
	transform: translateY(-0.5px);
}
.top-bar__brand {
	color: rgba(255, 255, 255, 0.84);
	font-weight: 800;
}
.top-bar__highlight {
	position: relative;
	display: inline-flex;
	align-items: center;
	padding: 0;
	background: transparent;
	color: #ffd84f;
	text-decoration: none;
	isolation: auto;
}
.top-bar__label {
	color: #fff;
	font-weight: 850;
}
.top-bar__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-left: 2px;
	color: #ffffff;
	transform: translateY(0.5px);
	animation: topBarArrowSlide 1.35s ease-in-out infinite;
}
.top-bar__promo:hover .top-bar__arrow {
	animation-duration: 0.85s;
}
@keyframes topBarArrowSlide {
	0%, 100% { transform: translate(0, 0.5px); }
	50% { transform: translate(3px, 0.5px); }
}
@media (prefers-reduced-motion: reduce) {
	.top-bar__arrow {
		animation: none;
	}
}
.top-bar__dot {
	width: 6px; height: 6px; border-radius: 50%;
	background: var(--yellow);
	display: inline-block; margin-right: 8px;
	animation: pulse 2s ease-in-out infinite;
}
@keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
.top-bar__links { display: flex; gap: 18px; color: rgba(255,255,255,0.5); }
.top-bar__links a:hover { color: var(--yellow); }

/* ─────────────────────────────── HEADER */
.hdr {
	position: sticky; top: 0; z-index: 100;
	background: #ffffff;
	border-bottom: 1px solid var(--line);
	padding: 0 24px;
	transition: min-height 200ms var(--ease-out), border-color 200ms ease;
}
.hdr__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
	padding: 0;
	display: flex; align-items: stretch; gap: 36px;
	min-height: 78px;
	transition: min-height 200ms var(--ease-out);
}
.hdr__logo, .hdr__actions { align-self: center; }
/* 헤더 스크롤 시 컴팩트 — 시각 변화는 미세하게 */
.hdr--compact .hdr__inner { min-height: 60px; }
.hdr--compact .hdr__nav-item > a { padding: 19px 18px; }
.hdr--compact { border-bottom-color: rgba(0,54,100,0.12); }
.hdr__logo {
	display: flex; align-items: center;
	line-height: 0;
	flex-shrink: 0;
	text-decoration: none;
}
.hdr__logo-img {
	height: 32px;
	width: auto;
	display: block;
}
/* 워드마크 폴백 (이미지 로드 실패 시) */
.hdr__logo-mark {
	font-family: var(--font-sans);
	font-weight: 800;
	font-size: 24px;
	letter-spacing: -0.04em;
	line-height: 1;
	color: var(--navy);
	display: inline-flex;
	align-items: baseline;
}
.hdr__logo-mark em {
	font-family: var(--font-serif);
	font-style: italic;
	font-weight: 400;
	color: var(--gold);
	font-size: 1.15em;
	line-height: 0.9;
	margin-right: -0.06em;
}

/* 메뉴 = 가운데 정렬 (Apple/Linear/매거진 톤) */
.hdr__nav {
	display: none;
	gap: 0;
	flex: 1;
	align-items: stretch;
	justify-content: center;
	position: relative;       /* 슬라이딩 indicator 기준 */
}
@media (min-width: 1024px) { .hdr__nav { display: flex; } }
.hdr__nav-item {
	position: relative;
	display: flex;
	align-items: stretch;
}
.hdr__nav-item > a {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 28px 18px;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink-3);
	letter-spacing: 0.01em;
	white-space: nowrap;
	transition: color 200ms var(--ease-out), padding 200ms var(--ease-out);
}
.hdr__nav-item > a:hover,
.hdr__nav-item:focus-within > a { color: var(--navy); }
.hdr__nav-item.is-active > a { color: var(--navy); font-weight: 700; }

/* ::after underbar는 fallback only (JS slide bar가 메인) */
.hdr__nav-item > a::after { display: none; }

/* 슬라이딩 indicator — JS가 위치 제어 */
.hdr__nav-bar {
	position: absolute;
	bottom: -1px;
	left: 0;
	width: 0;
	height: 2px;
	background: var(--navy);
	pointer-events: none;
	opacity: 0;
	transition: left 320ms var(--ease-out),
	            width 320ms var(--ease-out),
	            opacity 200ms ease;
}
.hdr__nav-bar.is-visible { opacity: 1; }

.hdr__caret {
	display: inline-block;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	opacity: 0.7;
	transition: transform 160ms ease, opacity 160ms ease;
}
.hdr__nav-item:hover .hdr__caret,
.hdr__nav-item:focus-within .hdr__caret {
	transform: translateY(2px) rotate(45deg);
	opacity: 1;
}

/* 드롭다운 — 갭 brigde는 ::before로만, padding-bottom hack 제거 */
.hdr__sub {
	position: absolute;
	top: calc(100% - 1px);     /* 헤더 border 바로 아래 */
	left: 0;
	background: var(--bg-white);
	border: 1px solid var(--line);
	padding: 8px 0;
	min-width: 220px;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-4px);
	visibility: hidden;
	margin: 0;
	z-index: 120;
	box-shadow: 0 18px 36px rgba(8, 12, 28, 0.12);
	transition: opacity 160ms ease, transform 160ms ease, visibility 0s linear 160ms;
}
/* 갭 bridge — a와 sub 사이 빈 공간 호버 영역 */
.hdr__sub::before {
	content: "";
	position: absolute;
	top: -8px; left: 0; right: 0;
	height: 8px;
}
.hdr__nav-item:hover .hdr__sub,
.hdr__nav-item:focus-within .hdr__sub {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
	visibility: visible;
	transition: opacity 160ms ease, transform 160ms ease, visibility 0s linear 0s;
}
.hdr__sub a {
	display: block;
	padding: 10px 18px;
	font-size: 13px;
	color: var(--ink-2);
}
.hdr__sub a:hover { background: var(--navy-50); color: var(--navy); }

.hdr__actions {
	display: flex; align-items: center; gap: 18px;
	margin-left: auto;
}
.hdr__link {
	font-size: 13px;
	font-weight: 500;
	color: var(--ink-4);
	padding: 8px 0;
	letter-spacing: 0.01em;
	transition: color 160ms ease;
}
.hdr__link:hover { color: var(--navy); }
.hdr__link--muted { color: var(--ink-4); }

/* 로그인 아이콘 박스 */
.hdr__link--icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px; height: 38px;
	padding: 0;
	border: 1px solid var(--line);
	color: var(--ink-3);
	transition: color 160ms ease, border-color 160ms ease;
}
.hdr__link--icon:hover { color: var(--navy); border-color: var(--navy); }

/* 햄버거 (메뉴 열기 전용) */
.hdr__hamburger {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px; height: 40px;
	padding: 0;
	background: transparent;
	border: 0;
	color: var(--ink-2);
	cursor: pointer;
	align-self: center;
	transition: color 160ms ease;
}
.hdr__hamburger:hover { color: var(--navy); }
@media (min-width: 1024px) { .hdr__hamburger { display: none; } }

/* 백드롭 */
.hdr__backdrop {
	position: fixed;
	inset: 0;
	background: rgba(8, 12, 28, 0.45);
	z-index: 60;
	opacity: 0;
	pointer-events: none;
	transition: opacity 240ms ease;
}
.hdr.is-open .hdr__backdrop {
	opacity: 1;
	pointer-events: auto;
}

/* 모바일 drawer (우측 슬라이드 패널) */
.hdr__mobile {
	position: fixed;
	top: 0; right: 0; bottom: 0;
	width: min(380px, 88vw);
	background: #fff;
	z-index: 61;
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 320ms cubic-bezier(0.32, 0.72, 0, 1);
	box-shadow: -16px 0 40px rgba(0, 0, 0, 0.12);
	visibility: hidden;
}
.hdr.is-open .hdr__mobile {
	transform: translateX(0);
	visibility: visible;
}

.hdr__mobile-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 16px 14px 20px;
	border-bottom: 1px solid var(--line);
	flex-shrink: 0;
}
.hdr__mobile-brand img {
	height: 22px;
	width: auto;
	display: block;
}
.hdr__mobile-close {
	width: 40px; height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border: 0;
	background: transparent;
	color: var(--ink-2);
	cursor: pointer;
	transition: color 160ms ease;
}
.hdr__mobile-close:hover { color: var(--navy); }

.hdr__mobile-body {
	flex: 1;
	overflow-y: auto;
	padding: 16px 20px 28px;
	-webkit-overflow-scrolling: touch;
}

.hdr__mobile-list {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}
.hdr__mobile-item { border-bottom: 1px solid var(--line); }
.hdr__mobile-link {
	display: block;
	padding: 16px 0 14px;
	font-size: 17px;
	font-weight: 700;
	color: var(--ink);
	letter-spacing: -0.015em;
}
.hdr__mobile-item.is-active .hdr__mobile-link { color: var(--navy); }
.hdr__mobile-subs {
	list-style: none;
	margin: 0;
	padding: 0 0 14px 0;
}
.hdr__mobile-subs li a {
	display: block;
	padding: 8px 0;
	font-size: 13.5px;
	color: var(--ink-4);
}
.hdr__mobile-subs li a:hover { color: var(--navy); }

.hdr__mobile-actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.hdr__mobile-actions a {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 13px 16px;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: -0.005em;
}
.hdr__mobile-account {
	border: 1px solid var(--line-2);
	color: var(--ink-2);
	justify-content: flex-start;
	padding-left: 16px;
}
.hdr__mobile-account svg { color: var(--ink-3); }
.hdr__mobile-tel {
	border: 1px solid var(--navy);
	color: var(--navy);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.02em;
}
.hdr__mobile-kakao {
	background: var(--yellow);
	color: var(--ink);
}

@media (min-width: 1024px) {
	.hdr__mobile, .hdr__backdrop { display: none !important; }
}

/* ─────────────────────────────── SECTION FRAME */
.sec { padding: 96px 24px; position: relative; }
.sec__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
}
.sec--alt   { background: var(--bg-alt); }
.sec--cream { background: var(--bg-cream); }
.sec--dark  { background: var(--ink); color: #fff; }
.sec--navy  { background: var(--navy); color: #fff; }
@media (max-width: 768px) { .sec { padding: 64px 20px; } }

/* ─────────────────────────────── 모바일 헤더 / 톱바 정리 */
@media (max-width: 1024px) {
	/* 톱바: 좌측 메시지는 한 줄 ellipsis, 우측 링크 숨김 */
	.top-bar { padding: 0 16px; }
	.top-bar__inner { gap: 12px; justify-content: center; }
	.top-bar__promo {
		font-size: 12px;
		line-height: 1.35;
		flex-wrap: wrap;
	}
	.top-bar__promo strong { gap: 5px; }
	.top-bar__emoji { font-size: 12px; }
	.top-bar__arrow svg {
		width: 14px;
		height: 14px;
	}

	/* 헤더 폭·여백 정리 (높이 줄임) */
	.hdr { padding: 0 16px; }
	.hdr__inner { gap: 12px; min-height: 52px; }
	.hdr--compact .hdr__inner { min-height: 50px; }

	/* 데스크탑 우측 액션 숨김 (햄버거만) */
	.hdr__actions { display: none; }
	.hdr__hamburger { margin-left: auto; width: 36px; height: 36px; }

	/* 로고 살짝 줄임 */
	.hdr__logo-img { height: 22px; }
}

.eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--navy);
	margin-bottom: 18px;
}
.eyebrow::before {
	content: ""; width: 24px; height: 1px; background: var(--navy);
}
.sec--dark .eyebrow, .sec--navy .eyebrow { color: var(--gold); }
.sec--dark .eyebrow::before, .sec--navy .eyebrow::before { background: var(--gold); }

.sec__title {
	font-size: 40px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.25;
	margin: 0 0 20px;
	color: inherit;
}
.sec__title .serif { font-weight: 400; font-style: italic; }

/* ─────────────────────────────── EN-SUB (영문 서브헤드 — 통합 시스템)
   기본: 부모 헤드와 같은 크기, 네이비, 딱 붙음 (매거진 한 덩어리)
   변형 사이즈: --sm (0.42em), --xs (0.32em)
   다크 컨텍스트(.sec--dark, .sec--navy, .hero--video, .pr-sec, .pr-hero, .pr-cta)
   에 들어가면 색만 자동 전환 (gold 또는 white) */

.en-sub {
	display: block;
	font-family: var(--font-serif);
	font-style: italic;
	font-weight: 400;
	font-size: 1em;
	letter-spacing: -0.02em;
	color: var(--navy);
	margin-top: 0;
	line-height: 1;
}
.en-sub--sm {
	font-size: 0.42em;
	margin-top: 14px;
	letter-spacing: 0.005em;
	line-height: 1.1;
}
.en-sub--xs {
	font-size: 0.32em;
	margin-top: 18px;
	letter-spacing: 0.005em;
	line-height: 1.1;
}

/* 다크 컨텍스트 자동 색 전환 (gold) */
.sec--dark .en-sub,
.sec--navy .en-sub,
.pr-sec .en-sub,
.pr-hero .en-sub,
.pr-cta .en-sub {
	color: var(--gold);
	opacity: 0.9;
}

/* 메인 비디오 헤로 — 화이트 톤 + nowrap (특수 케이스) */
.hero--video .en-sub {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.55em;
	margin-top: 22px;
	letter-spacing: 0;
	line-height: 1.1;
	white-space: nowrap;
}

@media (max-width: 768px) {
	.en-sub { font-size: 0.9em; }
	.en-sub--sm { font-size: 0.5em; }
	.en-sub--xs { font-size: 0.42em; }
	.hero--video .en-sub { font-size: 0.6em; white-space: normal; }
}
.sec__lead {
	font-size: 16px;
	color: var(--ink-4);
	max-width: 640px;
	line-height: 1.75;
	margin: 0 0 48px;
}
.sec--dark .sec__lead, .sec--navy .sec__lead { color: rgba(255, 255, 255, 0.7); }

.sec__head {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 40px; flex-wrap: wrap;
	margin-bottom: 56px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
}
.sec--dark .sec__head, .sec--navy .sec__head { border-bottom-color: rgba(255, 255, 255, 0.12); }
.sec__head .sec__title { margin: 0; }
.sec__head .sec__title + .sec__lead { margin: 12px 0 0; max-width: 480px; }
.sec__meta {
	flex-shrink: 0;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--ink-5);
}
.sec--dark .sec__meta, .sec--navy .sec__meta { color: rgba(201, 163, 68, 0.7); }
.sec__meta a { color: var(--navy); border-bottom: 1px solid currentColor; font-style: normal; font-family: var(--font-sans); font-weight: 600; font-size: 13px; }
.sec--dark .sec__meta a, .sec--navy .sec__meta a { color: var(--gold); }

.sec__num {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--ink-5);
	letter-spacing: 0.02em;
	margin-bottom: 8px;
}
.sec--dark .sec__num, .sec--navy .sec__num { color: rgba(201, 163, 68, 0.7); }

@media (max-width: 1024px) {
	.sec__head { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media (max-width: 768px) {
	.sec__title { font-size: 28px; }
}

/* ─────────────────────────────── BUTTONS */
.btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 14px 24px;
	font-size: 14px; font-weight: 700;
	letter-spacing: -0.005em;
	border: 0;
	transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
	white-space: nowrap;
	cursor: pointer;
}
.btn--primary { background: var(--navy); color: #fff; }
.btn--primary:hover { background: var(--navy-ink); }
/* .btn--gold — JP LP 스타일 옐로 CTA (배경 옐로 + 검정 글자) */
.btn--gold { background: var(--yellow); color: #000000; }
.btn--gold:hover { background: var(--yellow-ink); color: #000000; }
.btn--outline {
	background: transparent; color: var(--navy);
	border: 1.5px solid var(--navy);
}
.btn--outline:hover { background: var(--navy); color: #fff; }
.btn--ghost {
	background: transparent; color: inherit;
	border: 1px solid currentColor;
}
.btn--ghost:hover { background: rgba(0, 0, 0, 0.04); }
.sec--dark .btn--ghost:hover, .sec--navy .btn--ghost:hover { background: rgba(255, 255, 255, 0.06); }
.btn--lg { padding: 16px 28px; font-size: 15px; }
.btn--sm { padding: 9px 16px; font-size: 12px; }

/* ─────────────────────────────── HERO */
.hero {
	background: var(--bg);
	padding: 48px 24px 72px;
	border-bottom: 1px solid var(--line);
	position: relative;
	overflow: hidden;
}
.hero__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 64px;
	align-items: end;
}
@media (max-width: 1024px) {
	.hero__inner { grid-template-columns: 1fr; gap: 40px; }
}

/* HERO — 비디오 배경 변형 */
.hero--video {
	background: #0b1024;
	color: #fff;
	border-bottom: 0;
	padding: 0;
	min-height: 640px;
	display: flex;
	align-items: center;
}
.hero--video .hero__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.hero--video .hero__overlay {
	position: absolute;
	inset: 0;
	background:
		linear-gradient(90deg, rgba(8, 12, 28, 0.88) 0%, rgba(8, 12, 28, 0.72) 38%, rgba(8, 12, 28, 0.35) 70%, rgba(8, 12, 28, 0.15) 100%),
		linear-gradient(180deg, rgba(8, 12, 28, 0.25) 0%, rgba(8, 12, 28, 0.1) 50%, rgba(8, 12, 28, 0.55) 100%);
	z-index: 1;
}
.hero--video .hero__inner {
	position: relative;
	z-index: 2;
	width: 100%;
	display: block;
	padding: 96px 32px;
}
.hero--video .hero__copy { max-width: 720px; }

/* 상단 데코 — 매거진 마크 (옐로 정사각 · 흰 라인 · 흰 점) */
.hero--video .hero__topmark {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 16px;
}
.hero--video .hero__topmark-square {
	width: 12px; height: 12px;
	background: var(--yellow);
	flex-shrink: 0;
}
.hero--video .hero__topmark-line {
	width: 72px; height: 1px;
	background: rgba(255, 255, 255, 0.6);
	flex-shrink: 0;
}
.hero--video .hero__topmark-dot {
	width: 6px; height: 6px;
	background: rgba(255, 255, 255, 0.6);
	border-radius: 50%;
	flex-shrink: 0;
}
.hero--video .hero__topbar {
	height: 3px;
	width: 40px;
	background: var(--yellow);
	margin-bottom: 36px;
}

.hero--video .hero__title { color: #fff; font-size: 76px; line-height: 1.06; letter-spacing: -0.04em; }
.hero--video .hero__title .underline::after { background: var(--yellow); opacity: 1; height: 14px; bottom: 0; }
.hero--video .hero__desc { color: rgba(255, 255, 255, 0.82); font-size: 17px; max-width: 540px; line-height: 1.7; margin-top: 28px; }
.hero--video .en-sub {
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.55em;
	margin-top: 22px;
	letter-spacing: 0;
	white-space: nowrap;
}
.hero--video .btn--ghost { color: #fff; border-color: rgba(255, 255, 255, 0.55); }
.hero--video .btn--ghost:hover { background: #fff; color: var(--ink); border-color: #fff; }

@media (max-width: 1024px) {
	.hero--video { min-height: 560px; }
	.hero--video .hero__inner { padding: 72px 24px; }
	.hero--video .hero__title { font-size: 56px; }
}
@media (max-width: 768px) {
	.hero--video { min-height: 480px; }
	.hero--video .hero__inner { padding: 56px 20px; overflow: hidden; }
	.hero--video .hero__copy { min-width: 0; }
	.hero--video .hero__title { font-size: 40px; }
	.hero--video .en-sub { white-space: normal; font-size: 0.6em; margin-top: 16px; }
	.hero--video .hero__desc {
		max-width: 100%;
		word-break: break-all;
		overflow-wrap: anywhere;
	}
	.hero--video .hero__overlay {
		background:
			linear-gradient(180deg, rgba(8, 12, 28, 0.55) 0%, rgba(8, 12, 28, 0.78) 100%);
	}
}
.hero__editorial-mark {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--ink-5);
	margin-bottom: 20px;
	display: flex; align-items: center; gap: 14px;
}
.hero__editorial-mark::before {
	content: ""; width: 32px; height: 1px; background: var(--ink-5);
}
.hero__kicker {
	font-size: 12px; font-weight: 700;
	color: var(--navy);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	margin-bottom: 24px;
}
.hero__title {
	font-size: 62px;
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.035em;
	margin: 0 0 28px;
	color: var(--ink);
}
.hero__title .serif { font-weight: 400; font-style: italic; letter-spacing: -0.02em; }
.hero__title .underline {
	position: relative; display: inline-block;
}
.hero__title .underline::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 2px;
	height: 10px;
	background: var(--gold);
	opacity: 0.45;
	z-index: -1;
}
@media (max-width: 1024px) { .hero__title { font-size: 44px; } }
@media (max-width: 768px)  { .hero__title { font-size: 34px; letter-spacing: -0.03em; } }

.hero__desc {
	font-size: 16px;
	color: var(--ink-4);
	margin: 0 0 36px;
	max-width: 460px;
	line-height: 1.75;
}
.hero__ctas { display: flex; gap: 10px; flex-wrap: wrap; }

/* ─────────────────────────────── HOME DECISION STRIP */
.home-decision {
	background: var(--bg-white);
	border-bottom: 1px solid var(--line);
	padding: 34px 24px;
}
.home-decision__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: minmax(260px, 0.74fr) 1.6fr;
	gap: 32px;
	align-items: stretch;
}
.home-decision__lead {
	padding-right: 24px;
	border-right: 1px solid var(--line);
}
.home-decision__lead .eyebrow {
	margin-bottom: 12px;
}
.home-decision__lead h2 {
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.25;
	margin: 0 0 10px;
	color: var(--ink);
}
.home-decision__lead p {
	font-size: 14px;
	line-height: 1.7;
	color: var(--ink-4);
	margin: 0;
}
.home-decision__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}
.home-decision__item {
	min-height: 148px;
	background: var(--bg-white);
	padding: 22px 20px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
}
.home-decision__item span {
	font-size: 11px;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--navy);
}
.home-decision__item strong {
	display: block;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin: 16px 0 8px;
}
.home-decision__item small {
	display: block;
	font-size: 12px;
	line-height: 1.55;
	color: var(--ink-5);
}
.home-decision__item--cta {
	background: var(--navy);
	color: #fff;
}
.home-decision__item--cta span,
.home-decision__item--cta strong {
	color: #fff;
}
.home-decision__item--cta .btn {
	align-self: flex-start;
}

@media (max-width: 1024px) {
	.home-decision__inner {
		grid-template-columns: 1fr;
		gap: 24px;
	}
	.home-decision__lead {
		padding-right: 0;
		border-right: 0;
	}
	.home-decision__grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 640px) {
	.home-decision {
		padding: 28px 16px;
	}
	.home-decision__grid {
		grid-template-columns: 1fr;
	}
	.home-decision__item {
		min-height: 124px;
	}
}

/* ─────────────────────────────── HOME DIAGNOSIS */
.home-diagnosis {
	background: var(--bg);
}
.home-diagnosis__grid {
	display: grid;
	grid-template-columns: minmax(280px, 0.72fr) 1.28fr;
	gap: 48px;
	align-items: start;
}
.home-diagnosis__copy {
	position: sticky;
	top: 104px;
}
.home-diagnosis__copy .sec__title {
	margin-bottom: 18px;
}
.home-diagnosis__copy .sec__lead {
	margin-bottom: 28px;
}
.home-diagnosis__ctas {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}
.diagnosis-flow {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}
.diagnosis-flow__item {
	background: #fff;
	min-height: 218px;
	padding: 30px 28px;
	display: flex;
	flex-direction: column;
}
.diagnosis-flow__item span {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 34px;
	line-height: 1;
	color: var(--navy);
	margin-bottom: 22px;
}
.diagnosis-flow__item strong {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin-bottom: 10px;
}
.diagnosis-flow__item p {
	font-size: 14px;
	line-height: 1.75;
	color: var(--ink-4);
	margin: 0;
}

@media (max-width: 1024px) {
	.home-diagnosis__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.home-diagnosis__copy {
		position: static;
	}
}
@media (max-width: 640px) {
	.diagnosis-flow {
		grid-template-columns: 1fr;
	}
	.diagnosis-flow__item {
		min-height: auto;
		padding: 24px 22px;
	}
}

/* ─────────────────────────────── HOME METHOD SYSTEM */
.method-system {
	margin-top: 34px;
}
.method-system__intro {
	max-width: 720px;
	margin-bottom: 42px;
}
.method-system__intro p {
	font-size: 17px;
	line-height: 1.85;
	color: var(--ink-2);
	margin: 0;
}
.method-system__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}
.method-system__item {
	background: #fff;
	padding: 34px 30px;
	min-height: 260px;
	display: flex;
	flex-direction: column;
}
.method-system__item span {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--navy);
	margin-bottom: 18px;
}
.method-system__item h3 {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.3;
	color: var(--ink);
	margin: 0 0 14px;
}
.method-system__item p {
	font-size: 14px;
	line-height: 1.8;
	color: var(--ink-4);
	margin: 0;
}

@media (max-width: 960px) {
	.method-system__grid {
		grid-template-columns: 1fr;
	}
	.method-system__item {
		min-height: auto;
	}
}

/* ─────────────────────────────── HOME PROGRAM */
.home-program {
	display: grid;
	gap: 32px;
}
.home-program__summary {
	display: grid;
	grid-template-columns: 1fr minmax(280px, 360px);
	gap: 32px;
	align-items: stretch;
}
.home-program__summary p {
	font-size: 16px;
	line-height: 1.85;
	color: var(--ink-2);
	max-width: 760px;
	margin: 0;
}
.home-program__price {
	background: var(--navy);
	color: #fff;
	padding: 26px 28px;
	display: flex;
	flex-direction: column;
	justify-content: center;
}
.home-program__price span {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--gold);
	font-size: 14px;
	margin-bottom: 8px;
}
.home-program__price strong {
	font-size: 22px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.35;
	margin-bottom: 10px;
}
.home-program__price small {
	font-size: 12px;
	line-height: 1.6;
	color: rgba(255, 255, 255, 0.68);
}
.home-levels {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}
.home-level {
	background: #fff;
	min-height: 290px;
	padding: 30px 26px;
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	transition: background 160ms ease, color 160ms ease;
}
.home-level:hover {
	background: var(--navy);
	color: #fff;
}
.home-level__score {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 44px;
	line-height: 1;
	color: var(--navy);
	margin-bottom: 22px;
	transition: color 160ms ease;
}
.home-level strong {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--ink);
	margin-bottom: 12px;
	transition: color 160ms ease;
}
.home-level p {
	font-size: 13.5px;
	line-height: 1.75;
	color: var(--ink-4);
	margin: 0 0 20px;
	transition: color 160ms ease;
}
.home-level em {
	margin-top: auto;
	align-self: flex-start;
	font-style: normal;
	font-size: 12px;
	font-weight: 800;
	color: var(--navy);
	background: var(--navy-50);
	padding: 5px 10px;
	transition: background 160ms ease, color 160ms ease;
}
.home-level:hover .home-level__score,
.home-level:hover strong,
.home-level:hover p {
	color: #fff;
}
.home-level:hover em {
	background: rgba(255, 255, 255, 0.14);
	color: var(--gold);
}
.home-program__actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

@media (max-width: 1100px) {
	.home-levels {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 820px) {
	.home-program__summary {
		grid-template-columns: 1fr;
	}
}
@media (max-width: 580px) {
	.home-levels {
		grid-template-columns: 1fr;
	}
	.home-level {
		min-height: auto;
	}
}

/* Hero 우측 스탯 스트립 */
.hero__stat {
	background: var(--ink);
	color: #fff;
	padding: 36px 32px;
	position: relative;
}
.hero__stat::before {
	content: ""; position: absolute;
	top: -1px; left: 0;
	width: 56px; height: 3px;
	background: var(--gold);
}
.hero__stat-label {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--gold);
	margin-bottom: 20px;
}
.hero__stat-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px 40px;
	padding-bottom: 24px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
	margin-bottom: 24px;
}
.hero__stat-num {
	font-size: 36px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
}
.hero__stat-num .unit {
	font-family: var(--font-serif);
	font-weight: 400;
	font-style: italic;
	color: var(--gold);
	font-size: 0.55em;
	margin-left: 2px;
}
.hero__stat-lbl {
	font-size: 12px;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 6px;
	letter-spacing: 0.02em;
}
.hero__stat-foot {
	display: flex; align-items: center; gap: 12px;
	font-size: 13px;
	color: rgba(255, 255, 255, 0.8);
}
.hero__stat-foot .live {
	width: 6px; height: 6px; border-radius: 50%;
	background: var(--yellow);
	animation: pulse 2s ease-in-out infinite;
	flex-shrink: 0;
}
.hero__stat-foot b { color: #fff; font-weight: 700; }
.hero__stat-foot a {
	margin-left: auto;
	color: var(--gold);
	border-bottom: 1px solid rgba(201, 163, 68, 0.4);
	font-size: 12px; font-weight: 600;
	white-space: nowrap;
}

.hero__trust {
	max-width: var(--shell-max);
	margin: 56px auto 0;
	padding: 24px 0 0;
	border-top: 1px solid var(--line);
	display: flex; align-items: center; gap: 40px; flex-wrap: wrap;
	font-size: 13px; color: var(--ink-4);
}
.hero__trust-label {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--ink-5);
}
.hero__trust-list {
	display: flex; gap: 28px; flex-wrap: wrap;
	font-weight: 600; color: var(--ink-3);
}
@media (max-width: 768px) {
	.hero__trust { gap: 16px; }
	.hero__trust-list { gap: 12px; font-size: 12px; }
}

/* ─────────────────────────────── POINTS 3-col */
.points {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
@media (max-width: 768px) { .points { grid-template-columns: 1fr; } }
.point {
	padding: 40px 32px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	background: var(--bg-white);
	transition: background 160ms ease;
}
.point:hover { background: var(--bg-alt); }
.point__num {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 16px;
	color: var(--navy);
	margin-bottom: 24px;
	letter-spacing: 0.02em;
}
.point__title {
	font-size: 20px; font-weight: 700;
	margin: 0 0 10px;
	letter-spacing: -0.015em;
	line-height: 1.4;
	color: var(--ink);
}
.point__body {
	font-size: 14px;
	color: var(--ink-4);
	margin: 0;
	line-height: 1.75;
}
.sec--dark .points, .sec--navy .points { border-color: rgba(255, 255, 255, 0.12); }
.sec--dark .point, .sec--navy .point { background: transparent; border-color: rgba(255, 255, 255, 0.12); }
.sec--dark .point:hover, .sec--navy .point:hover { background: rgba(255, 255, 255, 0.03); }
.sec--dark .point__num, .sec--navy .point__num { color: var(--gold); }
.sec--dark .point__title, .sec--navy .point__title { color: #fff; }
.sec--dark .point__body, .sec--navy .point__body { color: rgba(255, 255, 255, 0.65); }

/* ─────────────────────────────── CURRICULUM */
.curric {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}
@media (max-width: 1024px) { .curric { grid-template-columns: 1fr; gap: 20px; } }
.curric__card {
	border: 1px solid var(--line);
	padding: 40px;
	background: var(--bg-white);
	transition: border-color 160ms ease;
	display: flex; flex-direction: column;
	text-decoration: none;
	color: inherit;
}
.curric__card:hover { border-color: var(--navy); }
.curric__pill {
	display: inline-block;
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	padding: 4px 10px;
	background: var(--navy-50);
	color: var(--navy);
	margin-bottom: 20px;
	align-self: flex-start;
}
.curric__code {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--ink-5);
	font-size: 14px;
	margin-bottom: 8px;
}
.curric__title {
	font-size: 32px;
	font-weight: 800;
	letter-spacing: -0.025em;
	margin: 0 0 16px;
	color: var(--ink);
	line-height: 1.2;
}
.curric__desc {
	color: var(--ink-4);
	font-size: 14px;
	margin: 0 0 28px;
	line-height: 1.75;
	flex: 1;
}
.curric__tags {
	display: flex; gap: 8px; flex-wrap: wrap;
	margin-bottom: 28px;
}
.curric__tag {
	font-size: 12px;
	padding: 5px 12px;
	background: var(--bg-alt);
	color: var(--ink-3);
	border: 1px solid var(--line);
}
.curric__foot {
	display: flex; align-items: baseline; justify-content: space-between;
	padding-top: 24px;
	border-top: 1px solid var(--line);
}
.curric__arrow {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--navy);
	font-size: 14px;
}

.program-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}
.program-card {
	background: #fff;
	padding: 32px 28px;
	color: inherit;
	text-decoration: none;
	display: flex;
	flex-direction: column;
	min-height: 300px;
	transition: background 160ms ease, color 160ms ease;
}
.program-card:hover {
	background: var(--navy);
	color: #fff;
}
.program-card__eyebrow {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--navy);
	margin-bottom: 16px;
	transition: color 160ms ease;
}
.program-card__title {
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
	color: var(--ink);
	margin: 0 0 16px;
	transition: color 160ms ease;
}
.program-card__body {
	font-size: 14px;
	line-height: 1.75;
	color: var(--ink-4);
	margin: 0 0 24px;
	transition: color 160ms ease;
}
.program-card__tags {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: auto;
}
.program-card__tags span {
	font-size: 11px;
	font-weight: 700;
	color: var(--ink-3);
	background: var(--bg-alt);
	border: 1px solid var(--line);
	padding: 4px 9px;
	transition: background 160ms ease, color 160ms ease, border-color 160ms ease;
}
.program-card:hover .program-card__eyebrow,
.program-card:hover .program-card__title,
.program-card:hover .program-card__body {
	color: #fff;
}
.program-card:hover .program-card__tags span {
	background: rgba(255, 255, 255, 0.12);
	color: var(--gold);
	border-color: rgba(255, 255, 255, 0.18);
}
.program-matrix {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--line);
	border: 1px solid var(--line);
}
.program-matrix__item {
	background: #fff;
	padding: 30px 26px;
	min-height: 240px;
}
.program-matrix__item span {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 15px;
	color: var(--navy);
	display: block;
	margin-bottom: 18px;
}
.program-matrix__item h3 {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.3;
	color: var(--ink);
	margin: 0 0 12px;
}
.program-matrix__item p {
	font-size: 14px;
	line-height: 1.75;
	color: var(--ink-4);
	margin: 0;
}
.program-note {
	background: var(--navy);
	color: #fff;
	padding: 28px 30px;
	margin-top: 32px;
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 28px;
	align-items: center;
}
.program-note span {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 15px;
	color: var(--gold);
}
.program-note strong {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.4;
	display: block;
}
.program-note p {
	font-size: 14px;
	line-height: 1.75;
	color: rgba(255, 255, 255, 0.7);
	margin: 6px 0 0;
}
.program-cta {
	text-align: center;
	max-width: 720px;
	margin: 0 auto;
}
.program-cta .sec__title {
	color: #fff;
}
.program-cta__actions {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 28px;
}
.program-detail-lead {
	font-size: 17px;
	line-height: 1.85;
	color: var(--ink-2);
	max-width: 760px;
	margin: 0 0 44px;
}

@media (max-width: 1100px) {
	.program-grid,
	.program-matrix {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 680px) {
	.program-grid,
	.program-matrix {
		grid-template-columns: 1fr;
	}
	.program-card,
	.program-matrix__item {
		min-height: auto;
	}
	.program-note {
		grid-template-columns: 1fr;
	}
}

/* ─────────────────────────────── TESTIMONIAL grid */
.testi {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
@media (max-width: 768px) { .testi { grid-template-columns: 1fr; } }
.testi__card {
	padding: 36px 28px;
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	display: flex; flex-direction: column;
	background: var(--bg-white);
}
.testi__score {
	margin-bottom: 14px;
	display: flex; align-items: center; gap: 10px;
}
.testi__delta {
	font-size: 11px; font-weight: 700;
	background: var(--gold); color: var(--ink);
	padding: 2px 8px;
	letter-spacing: 0.02em;
}
.testi__big {
	font-size: 22px; font-weight: 800;
	color: var(--ink);
	letter-spacing: -0.015em;
}
.testi__quote {
	font-size: 14px;
	line-height: 1.75;
	flex: 1;
	margin: 0 0 24px;
	color: var(--ink-2);
}
.testi__foot {
	padding-top: 18px;
	border-top: 1px solid var(--line);
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
}
.testi__name { font-size: 13.5px; font-weight: 700; color: var(--ink); }
.testi__meta { font-size: 11.5px; color: var(--ink-5); }
/* avatar 컴포넌트 사용 안 함 — 클래스만 보존 */
.testi__avatar { display: none; }

/* 미디어 슬롯 — 영상/사진 후기 */
.testi__media {
	aspect-ratio: 16/10;
	margin: -36px -28px 22px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: var(--bg-alt);
	color: var(--ink-4);
}
.testi__media-tag {
	position: absolute;
	top: 12px; left: 12px;
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	padding: 4px 10px;
	font-size: 10px;
	letter-spacing: 0.12em;
	font-weight: 700;
}
/* 비디오 재생 아이콘 (placeholder) */
.testi__media--video {
	background: linear-gradient(135deg, #1a1f2e 0%, #0b1024 100%);
}
.testi__media--video::after {
	content: "";
	width: 0; height: 0;
	border-left: 22px solid #fff;
	border-top: 13px solid transparent;
	border-bottom: 13px solid transparent;
	margin-left: 6px;
	opacity: 0.9;
}
/* 사진(성적표 캡처 등) placeholder */
.testi__media--photo {
	background:
		repeating-linear-gradient(0deg, var(--bg-alt) 0 8px, #eef1f6 8px 9px),
		var(--bg-alt);
}

/* ─────────────────────────────── 학교 방패 심볼 카드 (다크 기본 + 라이트 변형) */
.schools {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 600px) { .schools { grid-template-columns: 1fr 1fr; } }
.school {
	background: var(--ink);
	padding: 36px 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	aspect-ratio: 1 / 0.85;
	transition: background 200ms var(--ease-out);
}
.school:hover { background: #1a1d2c; }
.school__crest {
	width: 64px;
	height: 76px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 14px;
	color: rgba(255, 255, 255, 0.92);
}
.school__crest::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 76' fill='none' stroke='white' stroke-width='1.4' stroke-linejoin='round'><path d='M4 4 L60 4 L60 42 Q60 58 32 72 Q4 58 4 42 Z'/><line x1='4' y1='18' x2='60' y2='18' stroke-width='0.8' opacity='0.5'/></svg>");
	background-repeat: no-repeat;
	background-size: contain;
	opacity: 0.85;
}
.school__abbr {
	position: relative;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 18px;
	letter-spacing: 0.01em;
	line-height: 1;
	margin-top: 6px;
}
.school__abbr--xs { font-size: 11px; letter-spacing: 0.06em; }
.school__abbr--sm { font-size: 13px; letter-spacing: 0.04em; }
.school__name {
	font-size: 12.5px;
	font-weight: 600;
	color: rgba(255, 255, 255, 0.85);
	letter-spacing: -0.005em;
}
.school__sub {
	font-size: 10.5px;
	color: rgba(255, 255, 255, 0.42);
	margin-top: 4px;
	letter-spacing: 0.04em;
}

/* ─────────────────────────────── 학교 마퀴 (3행 무한 슬라이드, 풀폭) */
.school-marquee {
	display: flex;
	flex-direction: column;
	gap: 18px;
	/* viewport 풀폭으로 빠져나옴 (컨테이너 max-width 무시) */
	position: relative;
	width: 100vw;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
	margin-top: 36px;
	margin-bottom: 64px;
}
.marquee {
	overflow: hidden;
	position: relative;
	width: 100%;
	mask-image: linear-gradient(90deg, transparent 0, black 8%, black 92%, transparent 100%);
	-webkit-mask-image: linear-gradient(90deg, transparent 0, black 8%, black 92%, transparent 100%);
	padding: 6px 0;
}
.marquee__track {
	display: flex;
	gap: 72px;
	width: max-content;
	will-change: transform;
}
.marquee--right .marquee__track {
	animation: marquee-rtl 60s linear infinite;
}
.marquee--left .marquee__track {
	animation: marquee-ltr 60s linear infinite;
}
.marquee:hover .marquee__track { animation-play-state: paused; }

@keyframes marquee-rtl {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}
@keyframes marquee-ltr {
	from { transform: translateX(-50%); }
	to   { transform: translateX(0); }
}

.marquee__item {
	flex: 0 0 auto;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 64px;
	min-width: 80px;
	transition: filter 280ms var(--ease-out), opacity 280ms var(--ease-out);
	filter: grayscale(1);
	opacity: 0.5;
}
.marquee__item:hover { filter: grayscale(0); opacity: 1; }
.marquee__item img {
	max-height: 100%;
	max-width: 180px;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

@media (max-width: 768px) {
	.marquee__item { height: 48px; min-width: 60px; }
	.marquee__item img { max-width: 130px; }
	.marquee__track { gap: 48px; }
}

.proof-strip {
	margin: 34px 0 54px;
	border: 1px solid var(--line);
	background: #fff;
	display: grid;
	grid-template-columns: 240px 1fr;
}
.proof-strip__head {
	padding: 22px 24px;
	background: var(--navy);
	color: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 6px;
}
.proof-strip__head span {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--gold);
}
.proof-strip__head strong {
	font-size: 18px;
	line-height: 1.3;
	letter-spacing: -0.015em;
}
.proof-strip__items {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1px;
	background: var(--line);
}
.proof-strip__items span {
	background: #fff;
	min-height: 64px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 12px;
	font-size: 14px;
	font-weight: 800;
	color: var(--ink-2);
	letter-spacing: -0.01em;
}

@media (max-width: 900px) {
	.proof-strip {
		grid-template-columns: 1fr;
	}
	.proof-strip__items {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 520px) {
	.proof-strip__items {
		grid-template-columns: 1fr;
	}
}

/* ─────────────────────────────── COLUMNS — 3열 캐러셀 (스크롤바 숨김) */
.cols {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 48px) / 3);
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-padding-left: 0;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.cols::-webkit-scrollbar { display: none; }
@media (max-width: 1024px) {
	.cols { grid-auto-columns: calc((100% - 24px) / 2); gap: 20px; }
}
@media (max-width: 768px) {
	.cols { grid-auto-columns: 86%; gap: 16px; }
}

.col-card {
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--line);
	transition: border-color 180ms ease, transform 220ms var(--ease-out);
	color: inherit;
	text-decoration: none;
}
.col-card:hover { border-color: var(--navy); transform: translateY(-2px); }
.col-card__thumb {
	aspect-ratio: 16/10;
	background:
		linear-gradient(135deg, var(--navy-50) 0%, var(--navy-100) 100%),
		var(--bg-alt);
	position: relative;
	overflow: hidden;
}
.col-card__thumb::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(circle at 30% 30%, rgba(0, 54, 100, 0.14) 0%, transparent 50%),
		radial-gradient(circle at 70% 70%, rgba(255, 215, 0, 0.08) 0%, transparent 50%);
}
.col-card__body {
	padding: 22px 22px 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	flex: 1;
}
.col-card__cat {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--navy);
	text-transform: uppercase;
}
.col-card__title {
	font-size: 18px;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.4;
	color: var(--ink);
	margin: 0;
}
.col-card:hover .col-card__title { color: var(--navy); }
.col-card__excerpt {
	font-size: 13.5px;
	line-height: 1.7;
	color: var(--ink-4);
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.col-card__meta {
	font-size: 11.5px;
	color: var(--ink-5);
	margin-top: auto;
	padding-top: 6px;
	font-variant-numeric: tabular-nums;
}

/* ─────────────────────────────── 후기 3-tier 구조 (영상 → 사진 → 텍스트) */

.testi-tier__label {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--navy);
	letter-spacing: 0.02em;
	margin: 40px 0 18px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.testi-tier__label::before {
	content: "";
	width: 28px; height: 1px;
	background: var(--navy);
}
.testi-tier__label:first-of-type { margin-top: 0; }

/* Tier 1 — 유튜브 영상 캐러셀 (2열, 가로 스크롤, 스크롤바 숨김) */
.testi-yt-row {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 24px) / 2);
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;     /* Firefox */
	-ms-overflow-style: none;  /* IE/Edge */
}
.testi-yt-row::-webkit-scrollbar { display: none; }  /* Chrome/Safari */
@media (max-width: 768px) {
	.testi-yt-row { grid-auto-columns: 86%; gap: 14px; }
}

.testi-yt {
	scroll-snap-align: start;
	position: relative;
	aspect-ratio: 16/9;
	display: block;
	overflow: hidden;
	background: #000;
	color: #fff;
	text-decoration: none;
	transition: transform 280ms var(--ease-out);
}
.testi-yt:hover { transform: translateY(-2px); }
.testi-yt__thumb {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	background:
		radial-gradient(circle at 50% 35%, #1a1f2e 0%, #0b1024 70%);
}
/* 하단 어둠 그라데이션 + 텍스트 가독성 */
.testi-yt::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: 0;
	height: 70%;
	background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.85) 100%);
	z-index: 1;
}
.testi-yt__tag {
	position: absolute;
	top: 14px; left: 14px;
	background: #FF0000;  /* YouTube 레드 */
	color: #fff;
	padding: 4px 10px;
	font-size: 10px;
	letter-spacing: 0.14em;
	font-weight: 700;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.testi-yt__tag::before {
	content: "";
	width: 0; height: 0;
	border-left: 7px solid #fff;
	border-top: 4px solid transparent;
	border-bottom: 4px solid transparent;
}
.testi-yt__play {
	position: absolute;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 64px; height: 64px;
	border-radius: 50%;
	background: rgba(255, 0, 0, 0.92);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 3;
	transition: transform 240ms var(--ease-out), background 200ms ease;
}
.testi-yt:hover .testi-yt__play { transform: translate(-50%, -50%) scale(1.06); background: #FF0000; }
.testi-yt__play::before {
	content: "";
	width: 0; height: 0;
	border-left: 20px solid #fff;
	border-top: 12px solid transparent;
	border-bottom: 12px solid transparent;
	margin-left: 5px;
}
.testi-yt__overlay {
	position: absolute;
	left: 18px; right: 18px; bottom: 16px;
	z-index: 3;
}
.testi-yt__delta {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 700;
	background: var(--yellow);
	color: var(--ink);
	padding: 3px 8px;
	letter-spacing: 0.04em;
	margin-bottom: 8px;
}
.testi-yt__caption {
	font-size: 16px;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.35;
	color: #fff;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.testi-yt__sub {
	font-size: 11.5px;
	color: rgba(255, 255, 255, 0.78);
	margin-top: 4px;
	letter-spacing: -0.005em;
}

/* Tier 2 — 사진(성적표 캡처) 카드 */
.testi-photos {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
}
@media (max-width: 1024px) { .testi-photos { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .testi-photos { grid-template-columns: 1fr; } }

.testi-photo {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--line);
	overflow: hidden;
	color: inherit;
	text-decoration: none;
	transition: border-color 180ms ease, transform 220ms var(--ease-out);
}
.testi-photo:hover { border-color: var(--navy); transform: translateY(-2px); }
.testi-photo__media {
	aspect-ratio: 4/3;
	background:
		repeating-linear-gradient(0deg, var(--bg-alt) 0 8px, #eef1f6 8px 9px),
		var(--bg-alt);
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--ink-5);
	font-size: 11px;
	letter-spacing: 0.12em;
	font-weight: 700;
}
.testi-photo__tag {
	position: absolute;
	top: 12px; left: 12px;
	background: rgba(0, 0, 0, 0.7);
	color: #fff;
	padding: 3px 9px;
	font-size: 10px;
	letter-spacing: 0.12em;
	font-weight: 700;
}
.testi-photo__body { padding: 18px 20px 20px; }
.testi-photo__score {
	display: flex; align-items: baseline; gap: 10px;
	margin-bottom: 8px;
}
.testi-photo__delta {
	font-size: 11px; font-weight: 700;
	background: var(--yellow); color: var(--ink);
	padding: 2px 8px;
	letter-spacing: 0.04em;
}
.testi-photo__big {
	font-size: 18px; font-weight: 800;
	color: var(--ink);
	letter-spacing: -0.015em;
}
.testi-photo__name {
	font-size: 13px; font-weight: 700;
	color: var(--ink);
	margin-top: 4px;
}
.testi-photo__meta { font-size: 11.5px; color: var(--ink-5); margin-top: 2px; }

/* Tier 3 — 텍스트 후기 (JP `.review` 패턴 light 변형) */
.testi-rv-list {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.testi-rv {
	border-left: 3px solid var(--navy);
	padding: 22px 28px;
	background: var(--bg-alt);
}
.testi-rv__score {
	font-size: 22px;
	font-weight: 700;
	color: var(--ink);
	letter-spacing: -0.02em;
	margin: 0 0 6px;
}
.testi-rv__score em {
	color: var(--navy);
	font-style: normal;
	font-weight: 800;
}
.testi-rv__info {
	font-size: 12.5px;
	color: var(--ink-5);
	margin: 0 0 14px;
	letter-spacing: 0.01em;
}
.testi-rv__body {
	font-size: 14.5px;
	color: var(--ink-3);
	line-height: 1.85;
	margin: 0;
	max-width: 760px;
}

/* ─────────────────────────────── BIG STAT (dark) */
.bigstat {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 48px;
	padding: 40px 0;
}
@media (max-width: 1024px) { .bigstat { grid-template-columns: 1fr 1fr; gap: 32px; } }
.bigstat__item {
	border-left: 1px solid rgba(255, 255, 255, 0.14);
	padding-left: 28px;
}
.bigstat__num {
	font-size: 64px;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1;
	color: #fff;
}
.bigstat__num .unit {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 22px;
	color: var(--gold);
	font-weight: 400;
	margin-left: 4px;
}
.bigstat__lbl {
	font-size: 13px;
	color: rgba(255, 255, 255, 0.6);
	margin-top: 12px;
	letter-spacing: 0.01em;
}
@media (max-width: 768px) {
	.bigstat { grid-template-columns: 1fr 1fr; gap: 24px 16px; padding: 24px 0; }
	.bigstat__item { padding-left: 14px; }
	.bigstat__num { font-size: 36px; }
	.bigstat__num .unit { font-size: 14px; }
}

/* ─────────────────────────────── NOAH */
.noah {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 80px;
	align-items: center;
}
@media (max-width: 1024px) { .noah { grid-template-columns: 1fr; gap: 40px; } }
.noah__portrait {
	aspect-ratio: 4/5;
	background:
		linear-gradient(135deg, rgba(0, 54, 100, 0.8), rgba(0, 26, 51, 0.9)),
		#0b1024;
	position: relative;
	display: flex; align-items: flex-end;
	padding: 32px;
	color: #fff;
	overflow: hidden;
}
.noah__portrait::before {
	content: "N";
	position: absolute;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 460px;
	font-weight: 400;
	color: rgba(201, 163, 68, 0.18);
	line-height: 0.75;
	top: -30px; right: -20px;
	letter-spacing: -0.04em;
}
.noah__portrait-cap {
	position: relative;
	font-size: 12px;
	letter-spacing: 0.08em;
	color: rgba(255, 255, 255, 0.85);
}
.noah__portrait-cap b {
	display: block;
	font-size: 15px;
	font-weight: 700;
	margin-bottom: 4px;
}
.noah__quote {
	font-size: 28px;
	font-weight: 600;
	line-height: 1.5;
	letter-spacing: -0.02em;
	margin: 0 0 28px;
	color: var(--ink);
	padding-left: 20px;
	border-left: 3px solid var(--gold);
	font-style: normal;
}
@media (max-width: 1024px) { .noah__quote { font-size: 22px; } }
.noah__cred {
	font-size: 13px;
	color: var(--ink-4);
	line-height: 1.8;
}
.noah__cred b {
	color: var(--ink);
	font-weight: 700;
	display: block;
	margin-bottom: 4px;
	font-size: 14px;
}
.noah__cred b + p { margin-bottom: 16px; }

/* ─────────────────────────────── FAQ */
.faq { border-top: 1px solid var(--line); }
.sec--dark .faq, .sec--navy .faq { border-top-color: rgba(255, 255, 255, 0.12); }
.faq__row {
	border-bottom: 1px solid var(--line);
}
.sec--dark .faq__row, .sec--navy .faq__row { border-bottom-color: rgba(255, 255, 255, 0.12); }
.faq__row summary {
	padding: 24px 0;
	cursor: pointer;
	list-style: none;
	display: flex; justify-content: space-between; align-items: center;
	gap: 24px;
	font-size: 17px; font-weight: 600;
	letter-spacing: -0.01em;
	color: var(--ink);
}
.sec--dark .faq__row summary, .sec--navy .faq__row summary { color: #fff; }
.faq__row summary::-webkit-details-marker { display: none; }
.faq__num {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--ink-5);
	font-size: 14px;
	margin-right: 20px;
	flex-shrink: 0;
	width: 32px;
}
.sec--dark .faq__num, .sec--navy .faq__num { color: rgba(201, 163, 68, 0.7); }
.faq__text { flex: 1; }
.faq__mark {
	width: 32px; height: 32px;
	border: 1px solid var(--line-2);
	display: flex; align-items: center; justify-content: center;
	font-size: 16px;
	color: var(--navy);
	flex-shrink: 0;
	transition: transform 200ms var(--ease-out);
}
.sec--dark .faq__mark, .sec--navy .faq__mark {
	border-color: rgba(255, 255, 255, 0.2); color: var(--gold);
}
.faq__row[open] .faq__mark { transform: rotate(45deg); }
.faq__answer {
	padding: 0 0 24px 52px;
	font-size: 14px;
	color: var(--ink-4);
	line-height: 1.8;
}
.sec--dark .faq__answer, .sec--navy .faq__answer { color: rgba(255, 255, 255, 0.7); }

/* ─────────────────────────────── NOTICE list */
.notice {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0 48px;
	border-top: 1px solid var(--line);
}
@media (max-width: 1024px) { .notice { grid-template-columns: 1fr; gap: 0; } }
.notice__row {
	display: flex; align-items: center; gap: 16px;
	padding: 20px 0;
	border-bottom: 1px solid var(--line);
	font-size: 14px;
}
.notice__tag {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 12px;
	color: var(--navy);
	flex-shrink: 0;
	width: 80px;
}
.notice__title { flex: 1; font-weight: 500; color: var(--ink-2); }
.notice__row:hover .notice__title { color: var(--navy); }
.notice__date {
	font-size: 12px;
	color: var(--ink-5);
	flex-shrink: 0;
	font-variant-numeric: tabular-nums;
}

/* ─────────────────────────────── BOARD (게시판 — notices·archive) */
.board {
	border-top: 2px solid var(--ink);
	margin-top: 24px;
}
.board__head {
	display: grid;
	grid-template-columns: 64px 110px 1fr 100px 80px;
	gap: 16px;
	padding: 14px 18px;
	border-bottom: 1px solid var(--line-2);
	font-size: 11.5px;
	font-weight: 700;
	color: var(--ink-4);
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
.board__head > span:nth-child(3) { padding-left: 4px; }
.board__head > span:nth-child(4),
.board__head > span:nth-child(5) { text-align: right; }

.board__row {
	display: grid;
	grid-template-columns: 64px 110px 1fr 100px 80px;
	gap: 16px;
	padding: 18px;
	border-bottom: 1px solid var(--line);
	align-items: center;
	font-size: 14px;
	color: var(--ink-2);
	text-decoration: none;
	transition: background 160ms ease;
}
.board__row:hover { background: var(--bg-alt); }
.board__num {
	font-size: 13px;
	color: var(--ink-5);
	font-variant-numeric: tabular-nums;
	text-align: center;
}
.board__pin {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 700;
	background: var(--navy);
	color: #fff;
	padding: 3px 8px;
	letter-spacing: 0;
	text-transform: none;
}
.board__cat {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0;
	text-transform: none;
	color: var(--navy);
	text-align: left;
}
.board__cat--event   { color: var(--warn); }
.board__cat--update  { color: var(--ink-3); }
.board__title {
	font-weight: 500;
	color: var(--ink);
	letter-spacing: -0.005em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.board__row:hover .board__title { color: var(--navy); }
.board__row--pinned { background: var(--bg-alt); }
.board__row--pinned .board__title { font-weight: 700; }
.board__date {
	font-size: 12.5px;
	color: var(--ink-5);
	font-variant-numeric: tabular-nums;
	text-align: right;
}
.board__views {
	font-size: 12px;
	color: var(--ink-5);
	font-variant-numeric: tabular-nums;
	text-align: right;
}

/* 게시판 검색·필터 헤더 */
.board-tools {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 20px;
	padding: 12px 0 24px;
	border-bottom: 1px solid var(--line);
	flex-wrap: wrap;
}
.board-tools__count {
	font-size: 13px;
	color: var(--ink-4);
}
.board-tools__count b { color: var(--ink); font-weight: 700; }
.board-tools__search {
	display: flex;
	align-items: center;
	gap: 0;
	border: 1px solid var(--line-2);
	background: #fff;
}
.board-tools__search input {
	border: 0;
	background: transparent;
	padding: 9px 12px;
	font-family: inherit;
	font-size: 13px;
	color: var(--ink-2);
	width: 220px;
	outline: none;
}
.board-tools__search input::placeholder { color: var(--ink-5); }
.board-tools__search button {
	background: var(--navy);
	color: #fff;
	border: 0;
	padding: 9px 14px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
}

@media (max-width: 768px) {
	.board__head { display: none; }
	.board__row {
		grid-template-columns: auto 1fr auto;
		gap: 10px;
		padding: 14px 4px;
	}
	.board__row .board__num,
	.board__row .board__views { display: none; }
	.board__title { white-space: normal; }
	.board-tools__search input { width: 100%; }
	.board-tools__search { flex: 1; }
}

/* ─────────────────────────────── FOOTER */
.ftr {
	background: var(--ink);
	color: rgba(255, 255, 255, 0.7);
	padding: 72px 24px 32px;
	font-size: 13px;
}
.ftr__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
}
.ftr__top {
	display: grid;
	grid-template-columns: 1.4fr 1fr 1fr 1fr;
	gap: 48px;
	padding-bottom: 48px;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
@media (max-width: 1024px) {
	.ftr__top { grid-template-columns: 1fr 1fr; gap: 32px; }
	.ftr__brand { grid-column: 1 / -1; }
}
.ftr__brand-mark {
	font-family: var(--font-sans);
	font-weight: 800;
	font-size: 22px;
	letter-spacing: -0.035em;
	color: #fff;
	margin-bottom: 16px;
}
.ftr__brand-mark em {
	font-family: var(--font-serif);
	font-style: italic;
	font-weight: 400;
	color: var(--gold);
}
.ftr__brand-tag {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--gold);
	font-size: 14px;
	display: block;
	margin-bottom: 12px;
}
.ftr__brand-desc { font-size: 13px; line-height: 1.7; margin: 0 0 16px; color: rgba(255, 255, 255, 0.7); }
.ftr__brand-phone {
	font-size: 22px;
	font-weight: 800;
	color: #fff;
	letter-spacing: -0.01em;
	font-variant-numeric: tabular-nums;
}
.ftr__brand-hours { font-size: 12px; color: rgba(255, 255, 255, 0.5); margin-top: 4px; }

.ftr__col-title {
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--gold);
	margin: 0 0 20px;
}
.ftr__col ul { list-style: none; margin: 0; padding: 0; }
.ftr__col li { margin-bottom: 10px; color: rgba(255, 255, 255, 0.7); }
.ftr__col a { color: rgba(255, 255, 255, 0.7); }
.ftr__col a:hover { color: #fff; }

.ftr__bottom {
	padding-top: 32px;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.4);
	line-height: 1.9;
}
.ftr__bottom b { color: rgba(255, 255, 255, 0.7); font-weight: 600; }
.ftr__bottom .sep { color: rgba(255, 255, 255, 0.2); margin: 0 6px; }
.ftr__menu {
	display: flex; flex-wrap: wrap; gap: 16px;
	margin: 12px 0;
	list-style: none; padding: 0;
}
.ftr__menu a { color: rgba(255, 255, 255, 0.5); font-size: 12px; }
.ftr__menu a:hover { color: #fff; }
.ftr__copy { color: rgba(255, 255, 255, 0.3); font-size: 12px; margin-top: 12px; }

/* ─────────────────────────────── FLOATERS */
.floaters {
	position: fixed;
	right: 20px; bottom: 24px;
	display: flex; flex-direction: column;
	gap: 10px;
	z-index: 35;
}
.floater {
	width: 56px; height: 56px;
	background: var(--navy);
	color: #fff;
	display: flex; align-items: center; justify-content: center;
	transition: transform 160ms var(--ease-out);
	position: relative;
}
.floater:hover { transform: translateY(-2px); color: #fff; }
.floater--kakao { background: #FEE500; color: #3C1E1E; }
.floater__label { display: none; }

.final-cta {
	overflow: hidden;
	background:
		radial-gradient(circle at 14% 16%, color-mix(in srgb, var(--yellow) 18%, transparent) 0, transparent 28%),
		radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--navy-600) 36%, transparent) 0, transparent 34%),
		linear-gradient(135deg, var(--cta-navy-start) 0%, var(--navy-ink) 42%, var(--navy) 72%, var(--cta-navy-end) 100%);
}
.final-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background:
		linear-gradient(120deg, color-mix(in srgb, var(--bg-white) 8%, transparent), transparent 32%),
		repeating-linear-gradient(90deg, color-mix(in srgb, var(--bg-white) 5.5%, transparent) 0 1px, transparent 1px 82px);
	opacity: 0.38;
	pointer-events: none;
}
.final-cta .sec__inner {
	position: relative;
	z-index: 1;
}
.final-cta__title {
	color: #fff;
	font-size: 48px;
}
.final-cta .sec__lead {
	color: rgba(255, 255, 255, 0.78);
}

@media (max-width: 768px) {
	body { padding-bottom: 74px; }
	.floaters {
		left: 0;
		right: 0;
		bottom: 0;
		flex-direction: row;
		gap: 0;
		padding: 8px;
		background: rgba(255, 255, 255, 0.96);
		border-top: 1px solid var(--line);
		backdrop-filter: blur(14px);
	}
	.floater {
		width: auto;
		height: 48px;
		flex: 1 1 0;
		gap: 8px;
		font-size: 13px;
		font-weight: 800;
	}
	.floater:hover {
		transform: none;
	}
	.floater__label {
		display: inline;
	}
	.final-cta__title {
		font-size: 30px;
	}
}

/* ─────────────────────────────── WIP page */
.wip {
	min-height: 60vh;
	padding: 120px 40px;
	display: flex; align-items: center; justify-content: center;
	flex-direction: column;
	text-align: center;
	color: var(--ink-4);
	background:
		repeating-linear-gradient(45deg, transparent, transparent 12px, var(--bg-alt) 12px, var(--bg-alt) 13px);
}
.wip__tag {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--gold);
	font-size: 13px;
	letter-spacing: 0.08em;
	margin-bottom: 12px;
}
.wip__title {
	font-size: 36px;
	font-weight: 800;
	letter-spacing: -0.025em;
	color: var(--ink);
	margin-bottom: 12px;
	line-height: 1.2;
}
.wip__sub { font-size: 15px; color: var(--ink-4); max-width: 540px; line-height: 1.75; }
.wip__path {
	margin-top: 24px;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 12px;
	color: var(--ink-5);
	background: var(--bg-white);
	padding: 6px 12px;
	border: 1px solid var(--line);
}

/* ═════════════════════════════════ PAGE HERO (간단 버전) */
.page-hero {
	padding: 42px 24px 44px;
	background: var(--bg);
	border-bottom: 1px solid var(--line);
}
.page-hero__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
}
.page-hero__mark {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--ink-5);
	margin-bottom: 16px;
	display: flex; align-items: center; gap: 14px;
}
.page-hero__mark::before { content: ""; width: 32px; height: 1px; background: var(--ink-5); }
.page-hero__title {
	font-size: 48px;
	font-weight: 800;
	letter-spacing: -0.03em;
	line-height: 1.1;
	color: var(--ink);
	margin-bottom: 16px;
}
.page-hero__title .serif { font-weight: 400; font-style: italic; }
.page-hero__lead {
	font-size: 16px;
	color: var(--ink-4);
	max-width: 640px;
	line-height: 1.75;
}
@media (max-width: 768px) {
	.page-hero { padding: 36px 20px 40px; }
	.page-hero__title { font-size: 32px; }
}

.inrise-kboard-section {
	padding-top: 54px;
}
.inrise-kboard-section .sec__inner {
	max-width: var(--shell-max);
}
.inrise-kboard-empty {
	margin: 0;
	padding: 40px 0;
	border-bottom: 1px solid var(--line);
	color: var(--ink-4);
	text-align: center;
}
@media (max-width: 768px) {
	.inrise-kboard-section { padding-top: 36px; }
}

/* ═════════════════════════════════ BREADCRUMB */
.crumb {
	font-size: 12px;
	color: var(--ink-5);
	margin-bottom: 20px;
	display: flex; align-items: center; gap: 8px;
	flex-wrap: wrap;
}
.crumb a:hover { color: var(--navy); }
.crumb__sep { color: var(--line-2); }
.crumb .crumb__current { color: var(--ink-3); font-weight: 600; }

/* ═════════════════════════════════ CHIPS (카테고리 필터) */
.chips {
	display: flex; gap: 8px; flex-wrap: wrap;
	margin-bottom: 40px;
}
.chip {
	padding: 8px 16px;
	border: 1px solid var(--line-2);
	font-size: 13px;
	font-weight: 600;
	color: var(--ink-3);
	background: var(--bg-white);
	cursor: pointer;
	transition: all 120ms ease;
	text-decoration: none;
}
.chip:hover { border-color: var(--navy); color: var(--navy); }
.chip.is-active {
	background: var(--navy);
	color: #fff;
	border-color: var(--navy);
}

/* ═════════════════════════════════ ARTICLE LIST (칼럼·공지 아카이브) */
.art-list {
	border-top: 1px solid var(--line);
}
.art-row {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 32px;
	padding: 32px 0;
	border-bottom: 1px solid var(--line);
	align-items: start;
	text-decoration: none;
	color: inherit;
}
.art-row:hover .art-row__title { color: var(--navy); }
.art-row__thumb {
	aspect-ratio: 4/3;
	background: var(--bg-alt);
	display: flex; align-items: center; justify-content: center;
	position: relative;
	overflow: hidden;
}
.art-row__thumb-fallback {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 40px;
	color: var(--navy-200);
	letter-spacing: -0.02em;
}
.art-row__cat {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 12px;
	color: var(--navy);
	margin-bottom: 8px;
	letter-spacing: 0.02em;
}
.art-row__title {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.35;
	margin-bottom: 10px;
	color: var(--ink);
	transition: color 160ms ease;
}
.art-row__excerpt {
	font-size: 14px;
	color: var(--ink-4);
	line-height: 1.75;
	margin-bottom: 16px;
}
.art-row__meta {
	font-size: 12px;
	color: var(--ink-5);
	display: flex; gap: 14px;
}
.art-row__meta .dot { color: var(--line-2); }
@media (max-width: 768px) {
	.art-row { grid-template-columns: 1fr; gap: 16px; }
	.art-row__title { font-size: 18px; }
}

/* ═════════════════════════════════ ARTICLE SINGLE (칼럼/후기 단일) */
.art {
	max-width: 760px;
	margin: 0 auto;
	padding: 64px 24px 120px;
}
.art__cat {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--navy);
	margin-bottom: 16px;
	display: inline-block;
}
.art__title {
	font-size: 40px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.2;
	color: var(--ink);
	margin-bottom: 20px;
}
.art__meta {
	font-size: 13px;
	color: var(--ink-5);
	padding-bottom: 32px;
	border-bottom: 1px solid var(--line);
	display: flex; gap: 16px; flex-wrap: wrap;
	margin-bottom: 40px;
}
.art__meta .dot { color: var(--line-2); }
.art__body { font-size: 17px; line-height: 1.85; color: var(--ink-2); }
.art__body p { margin-bottom: 20px; }
.art__body h2 {
	font-size: 24px;
	font-weight: 700;
	color: var(--ink);
	margin: 56px 0 16px;
	letter-spacing: -0.02em;
}
.art__body h3 {
	font-size: 18px;
	font-weight: 700;
	color: var(--ink);
	margin: 36px 0 12px;
}
.art__body ul, .art__body ol { margin: 20px 0 20px 24px; }
.art__body li { margin-bottom: 8px; }
.art__body blockquote {
	margin: 32px 0;
	padding: 16px 24px;
	border-left: 3px solid var(--gold);
	background: var(--gold-08);
	font-size: 17px;
	color: var(--ink);
	font-style: normal;
}
.art__body a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 768px) {
	.art { padding: 48px 20px 80px; }
	.art__title { font-size: 28px; }
}

/* ═════════════════════════════════ COLUMN SINGLE */
.inrise-main--column-single {
	background:
		linear-gradient(180deg, #f7f9fc 0%, #ffffff 360px);
}
.column-single {
	max-width: var(--shell-max);
	margin: 0 auto;
	padding: 46px 24px 120px;
}
.column-crumb {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 18px;
	color: var(--ink-5);
	font-size: 13px;
	font-weight: 750;
}
.column-crumb a {
	color: inherit;
	text-decoration: none;
}
.column-crumb a:hover {
	color: var(--navy);
}
.column-article {
	border-bottom: 1px solid var(--line);
	padding-bottom: 64px;
}
.column-article__hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
	gap: 48px;
	align-items: end;
	padding: 28px 0 46px;
	border-bottom: 1px solid var(--line);
}
.column-article__hero-text {
	max-width: 820px;
}
.column-article__cat {
	display: inline-flex;
	align-items: center;
	min-height: 32px;
	padding: 0 12px;
	margin-bottom: 18px;
	background: rgba(0, 54, 100, 0.08);
	color: var(--navy);
	font-size: 12px;
	font-weight: 850;
	text-decoration: none;
}
.column-article__cat:hover {
	background: var(--navy);
	color: #fff;
}
.column-article__title {
	margin: 0;
	color: var(--ink);
	font-size: clamp(34px, 4.8vw, 58px);
	font-weight: 850;
	line-height: 1.12;
	letter-spacing: 0;
	text-wrap: balance;
}
.column-article__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 9px;
	margin-top: 20px;
	color: var(--ink-5);
	font-size: 13px;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
}
.column-article__meta .dot {
	color: var(--line-2);
}
.column-article__dek {
	max-width: 760px;
	margin: 24px 0 0;
	color: var(--ink-3);
	font-size: 17px;
	line-height: 1.75;
}
.column-article__thumb {
	position: relative;
	aspect-ratio: 4 / 3;
	margin: 0;
	overflow: hidden;
	border: 1px solid var(--line);
	background: var(--bg-alt);
}
.column-article__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.column-article__layout {
	display: grid;
	grid-template-columns: 220px minmax(0, 820px);
	gap: 56px;
	align-items: start;
	padding-top: 50px;
}
.column-article__aside {
	position: sticky;
	top: 128px;
}
.column-article__aside-box {
	border-top: 2px solid var(--navy);
	padding-top: 18px;
}
.column-article__aside-label {
	margin-bottom: 12px;
	color: var(--ink-5);
	font-size: 11px;
	font-weight: 850;
	text-transform: uppercase;
}
.column-article__aside-link {
	display: block;
	padding: 11px 0;
	border-bottom: 1px solid var(--line);
	color: var(--ink-2);
	font-size: 14px;
	font-weight: 800;
	text-decoration: none;
}
.column-article__aside-link:hover {
	color: var(--navy);
}
.column-article__body {
	min-width: 0;
	color: var(--ink-2);
	font-size: 17px;
	line-height: 1.92;
	word-break: keep-all;
	overflow-wrap: anywhere;
}
.column-article__body > *:first-child {
	margin-top: 0;
}
.column-article__body p {
	margin: 0 0 22px;
}
.column-article__body h2 {
	margin: 58px 0 18px;
	color: var(--ink);
	font-size: 28px;
	font-weight: 850;
	line-height: 1.32;
	letter-spacing: 0;
}
.column-article__body h3 {
	margin: 38px 0 14px;
	color: var(--ink);
	font-size: 22px;
	font-weight: 850;
	line-height: 1.35;
	letter-spacing: 0;
}
.column-article__body h4 {
	margin: 30px 0 12px;
	color: var(--ink);
	font-size: 18px;
	font-weight: 850;
	line-height: 1.45;
}
.column-article__body ul,
.column-article__body ol {
	margin: 0 0 26px;
	padding-left: 1.25em;
}
.column-article__body li {
	margin: 0 0 9px;
}
.column-article__body blockquote {
	margin: 34px 0;
	padding: 24px 26px;
	border-left: 4px solid var(--gold);
	background: #fff8df;
	color: var(--ink);
	font-size: 17px;
	line-height: 1.82;
}
.column-article__body a {
	color: var(--navy);
	font-weight: 750;
	text-decoration: underline;
	text-underline-offset: 4px;
}
.column-article__body img {
	max-width: 100%;
	height: auto;
}
.column-article__body table {
	width: 100%;
	margin: 28px 0;
	border-collapse: collapse;
	background: #fff;
	color: var(--ink-2);
	font-size: 14px;
	line-height: 1.55;
}
.column-article__body th,
.column-article__body td {
	padding: 12px 14px;
	border: 1px solid var(--line);
	vertical-align: top;
}
.column-article__body th {
	background: var(--navy);
	color: #fff;
	font-weight: 850;
}
.column-article__body .wp-block-table {
	overflow-x: auto;
}
.column-neighbor {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
	margin: 32px 0 72px;
}
.column-neighbor__item {
	display: block;
	min-height: 118px;
	padding: 22px;
	border: 1px solid var(--line);
	background: #fff;
	color: inherit;
	text-decoration: none;
}
.column-neighbor__item:hover {
	border-color: var(--navy);
}
.column-neighbor__item span {
	display: block;
	margin-bottom: 10px;
	color: var(--ink-5);
	font-size: 12px;
	font-weight: 850;
}
.column-neighbor__item strong {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	color: var(--ink);
	font-size: 17px;
	line-height: 1.45;
}
.column-neighbor__item--next {
	text-align: right;
}
.column-related {
	margin: 0 0 70px;
	padding-top: 48px;
	border-top: 1px solid var(--line);
}
.column-related__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	margin-bottom: 24px;
}
.column-related__head h2 {
	margin: 0;
	color: var(--ink);
	font-size: 28px;
	font-weight: 850;
	letter-spacing: 0;
}
.column-related__head a {
	color: var(--navy);
	font-size: 13px;
	font-weight: 850;
	text-decoration: underline;
	text-underline-offset: 4px;
	white-space: nowrap;
}
.column-related__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 22px;
}
.column-related__grid .col-card {
	min-width: 0;
}
.column-related__grid .col-card__title {
	font-size: 17px;
}
.column-comments {
	margin-top: 70px;
	padding-top: 48px;
	border-top: 1px solid var(--line);
}
.column-comments__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 24px;
}
.column-comments__head h2,
.column-comments__reply-title {
	margin: 0;
	color: var(--ink);
	font-size: 26px;
	font-weight: 850;
	letter-spacing: 0;
}
.column-comments__head span {
	color: var(--ink-5);
	font-size: 13px;
	font-weight: 800;
}
.column-comments__list {
	margin: 0 0 34px;
	padding: 0;
	list-style: none;
}
.column-comments__item {
	margin: 0;
	padding: 22px 0;
	border-bottom: 1px solid var(--line);
}
.column-comments__comment {
	display: grid;
	grid-template-columns: 44px minmax(0, 1fr);
	gap: 16px;
}
.column-comments__avatar img {
	display: block;
	border-radius: 50%;
}
.column-comments__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}
.column-comments__meta strong {
	color: var(--ink);
	font-size: 14px;
	font-weight: 850;
}
.column-comments__meta time {
	color: var(--ink-5);
	font-size: 12px;
	font-weight: 700;
}
.column-comments__text {
	color: var(--ink-2);
	font-size: 15px;
	line-height: 1.75;
}
.column-comments__text p {
	margin: 0 0 12px;
}
.column-comments__pending {
	margin: 0 0 10px;
	color: var(--navy);
	font-size: 13px;
	font-weight: 800;
}
.comment-reply-link {
	display: inline-flex;
	margin-top: 10px;
	color: var(--navy);
	font-size: 13px;
	font-weight: 850;
	text-decoration: none;
}
.column-comments__form {
	padding: 26px;
	border: 1px solid var(--line);
	background: #fff;
}
.column-comments__form .logged-in-as,
.column-comments__form .comment-notes {
	margin: 8px 0 18px;
	color: var(--ink-5);
	font-size: 13px;
}
.column-comments__form label {
	display: block;
	margin-bottom: 8px;
	color: var(--ink);
	font-size: 13px;
	font-weight: 850;
}
.column-comments__form textarea,
.column-comments__form input[type="text"],
.column-comments__form input[type="email"],
.column-comments__form input[type="url"] {
	width: 100%;
	border: 1px solid var(--line);
	background: #fff;
	color: var(--ink);
	font: inherit;
	font-size: 15px;
	padding: 13px 14px;
}
.column-comments__form textarea:focus,
.column-comments__form input:focus {
	outline: 2px solid rgba(0, 54, 100, 0.18);
	border-color: var(--navy);
}
.column-comments__submit {
	min-height: 44px;
	padding: 0 20px;
	border: 1px solid var(--navy);
	background: var(--navy);
	color: #fff;
	font-size: 14px;
	font-weight: 850;
	cursor: pointer;
}
.column-comments__submit:hover {
	background: var(--navy-ink);
}
.column-comments__login,
.column-comments__closed {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	padding: 24px;
	border: 1px solid var(--line);
	background: #fff;
}
.column-comments__login strong {
	display: block;
	color: var(--ink);
	font-size: 17px;
}
.column-comments__login p,
.column-comments__closed {
	margin: 6px 0 0;
	color: var(--ink-4);
	font-size: 14px;
	line-height: 1.65;
}
.column-comments__login a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 42px;
	padding: 0 18px;
	background: var(--navy);
	color: #fff;
	font-size: 13px;
	font-weight: 850;
	text-decoration: none;
	white-space: nowrap;
}
@media (max-width: 1024px) {
	.column-article__hero,
	.column-article__layout {
		grid-template-columns: 1fr;
	}
	.column-article__aside {
		position: static;
		order: 2;
	}
	.column-article__body {
		order: 1;
	}
	.column-related__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 768px) {
	.column-single {
		padding: 34px 20px 88px;
	}
	.column-article__hero {
		gap: 28px;
		padding: 18px 0 34px;
	}
	.column-article__title {
		font-size: 34px;
		line-height: 1.18;
	}
	.column-article__dek,
	.column-article__body {
		font-size: 16px;
	}
	.column-article__layout {
		gap: 34px;
		padding-top: 36px;
	}
	.column-neighbor,
	.column-related__grid {
		grid-template-columns: 1fr;
	}
	.column-neighbor__item--next {
		text-align: left;
	}
	.column-related__head,
	.column-comments__head,
	.column-comments__login {
		align-items: flex-start;
		flex-direction: column;
	}
	.column-comments__form,
	.column-comments__login {
		padding: 20px;
	}
}

/* ═════════════════════════════════ PAGINATION */
.pager {
	display: flex;
	justify-content: center;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 56px;
}
.pager a {
	display: inline-flex;
	align-items: center; justify-content: center;
	min-width: 38px; height: 38px;
	padding: 0 12px;
	border: 1px solid var(--line-2);
	background: var(--bg-white);
	color: var(--ink-4);
	font-size: 13px;
}
.pager a:hover { border-color: var(--navy); color: var(--navy); }
.pager a.is-current { background: var(--navy); color: #fff; border-color: var(--navy); }

/* ═════════════════════════════════ PROGRAM HUB / DETAIL */
.prog-hero {
	padding: 46px 24px 50px;
	background: var(--bg);
	border-bottom: 1px solid var(--line);
}
.prog-hero__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1.3fr 1fr;
	gap: 48px;
	align-items: end;
}
.prog-hero__code {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--ink-5);
	margin-bottom: 16px;
}
.prog-hero__kicker {
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--navy);
	margin-bottom: 18px;
}
.prog-hero__title {
	font-size: 56px; font-weight: 800;
	letter-spacing: -0.035em;
	line-height: 1.08;
	color: var(--ink);
	margin-bottom: 24px;
}
.prog-hero__title em,
.prog-hero__title .serif { font-family: var(--font-serif); font-style: italic; font-weight: 400; }
.prog-hero__lead {
	font-size: 16px;
	color: var(--ink-4);
	line-height: 1.75;
	margin-bottom: 28px;
	max-width: 520px;
}
.prog-hero__ctas { display: flex; gap: 10px; flex-wrap: wrap; }

.prog-facts {
	background: var(--ink);
	color: #fff;
	padding: 36px 32px;
	position: relative;
}
.prog-facts::before {
	content: ""; position: absolute; top: -1px; left: 0;
	width: 56px; height: 3px; background: var(--gold);
}
.prog-facts__label {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--gold);
	margin-bottom: 20px;
}
.prog-facts__grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 20px 40px;
}
.prog-facts__k { font-size: 11px; color: rgba(255,255,255,0.5); letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 4px; }
.prog-facts__v { font-size: 16px; font-weight: 700; }
@media (max-width: 1024px) {
	.prog-hero__inner { grid-template-columns: 1fr; gap: 32px; }
	.prog-hero__title { font-size: 40px; }
}
@media (max-width: 768px) {
	html,
	body {
		max-width: 100%;
		overflow-x: hidden;
	}
	.prog-hero { padding: 38px 20px 44px; overflow: hidden; }
	.prog-hero__inner,
	.prog-facts,
	.sec__inner,
	.point,
	.program-matrix__item,
	.program-note,
	.level,
	.week > * {
		min-width: 0;
	}
	.prog-hero__inner > *,
	.sec__head > *,
	.program-note > * {
		min-width: 0;
	}
	.prog-hero__title,
	.program-note strong {
		word-break: keep-all;
		line-break: anywhere;
		overflow-wrap: anywhere;
	}
	.sec__title,
	.point__title,
	.program-matrix__item h3 {
		word-break: break-all;
		overflow-wrap: anywhere;
	}
	.prog-hero__lead,
	.sec__lead,
	.point__body,
	.program-matrix__item p,
	.program-note p,
	.level__criteria,
	.week__desc {
		word-break: break-all;
		overflow-wrap: anywhere;
	}
	.prog-facts__v { overflow-wrap: anywhere; }
	.prog-facts__grid { gap: 20px; }
}

/* 레벨 편성 테이블 */
.levels {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 0;
	border: 1px solid var(--line);
}
.level {
	padding: 28px 24px;
	background: var(--bg-white);
	border-right: 1px solid var(--line);
}
.level:last-child { border-right: 0; }
.level__code {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 36px;
	color: var(--navy);
	line-height: 1;
	margin-bottom: 14px;
}
.level__title { font-size: 16px; font-weight: 700; color: var(--ink); margin-bottom: 8px; letter-spacing: -0.01em; }
.level__criteria { font-size: 12px; color: var(--ink-4); line-height: 1.65; margin-bottom: 12px; }
.level__dur {
	font-size: 12px; font-weight: 700;
	color: var(--navy);
	padding: 3px 10px;
	background: var(--navy-50);
	display: inline-block;
}
@media (max-width: 1024px) { .levels { grid-template-columns: 1fr 1fr; } .level:nth-child(2) { border-right: 0; } .level { border-bottom: 1px solid var(--line); } .level:nth-last-child(-n+2) { border-bottom: 0; } }
@media (max-width: 600px) { .levels { grid-template-columns: 1fr; } .level { border-right: 0; border-bottom: 1px solid var(--line); } }

/* 주차별 커리큘럼 */
.weeks { border-top: 1px solid var(--line); }
.week {
	display: grid;
	grid-template-columns: 80px 1fr 200px;
	gap: 32px;
	padding: 24px 0;
	border-bottom: 1px solid var(--line);
	align-items: start;
}
.week__num {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 24px;
	color: var(--navy);
}
.week__num b {
	display: block;
	font-family: var(--font-sans);
	font-style: normal;
	font-size: 11px; font-weight: 700;
	color: var(--ink-5);
	letter-spacing: 0.12em;
	margin-top: 4px;
}
.week__title { font-size: 16px; font-weight: 700; margin-bottom: 6px; letter-spacing: -0.01em; color: var(--ink); }
.week__desc { font-size: 13px; color: var(--ink-4); line-height: 1.75; margin: 0; }
.week__tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.week__tag { font-size: 11px; padding: 3px 8px; background: var(--bg-alt); color: var(--ink-3); border: 1px solid var(--line); }
@media (max-width: 768px) {
	.week { grid-template-columns: 60px 1fr; }
	.week__tags { grid-column: 1 / -1; justify-content: flex-start; margin-top: 8px; }
}

/* 방식 비교 그리드 */
.modes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.mode {
	padding: 32px 28px;
	background: var(--bg-white);
	border: 1px solid var(--line);
}
.mode__label {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 14px;
	color: var(--navy);
	margin-bottom: 12px;
}
.mode__title { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; margin-bottom: 14px; color: var(--ink); }
.mode__ul { list-style: none; padding: 0; font-size: 13px; color: var(--ink-4); line-height: 1.9; }
.mode__ul li::before { content: "— "; color: var(--navy); }
@media (max-width: 1024px) { .modes { grid-template-columns: 1fr; } }

/* ═════════════════════════════════ PRICE TABLE */
.price-wrap { overflow-x: auto; }
.price {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
	background: var(--bg-white);
	border: 1px solid var(--line);
}
.price th, .price td {
	padding: 18px 20px;
	text-align: left;
	border-bottom: 1px solid var(--line);
}
.price th {
	background: var(--bg-alt);
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.price td.name { font-weight: 700; color: var(--ink); }
.price td.name span { display: block; font-size: 12px; color: var(--ink-5); font-weight: 400; margin-top: 2px; }
.price td.amount {
	text-align: right;
	font-weight: 800;
	color: var(--navy);
	font-size: 17px;
	letter-spacing: -0.015em;
	font-variant-numeric: tabular-nums;
}
.price td.amount s { color: var(--ink-5); font-weight: 400; font-size: 13px; margin-right: 8px; }
.price td.note { color: var(--ink-4); font-size: 12px; }
.price tr:hover td { background: var(--bg); }

.price-note {
	background: var(--bg-alt);
	border: 1px solid var(--line);
	padding: 20px 24px;
	margin-top: 24px;
	font-size: 13px;
	color: var(--ink-3);
	line-height: 1.8;
}
.price-note b { color: var(--ink); font-weight: 700; display: block; margin-bottom: 6px; }

/* ═════════════════════════════════ SCHEDULE TABLE */
.sched-wrap { overflow-x: auto; }
.sched {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
	background: var(--bg-white);
	border: 1px solid var(--line);
}
.sched th, .sched td {
	padding: 14px 16px;
	text-align: left;
	border-bottom: 1px solid var(--line);
}
.sched th {
	background: var(--bg-alt);
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--ink-3);
}
.sched td.course b { color: var(--ink); font-weight: 700; }
.sched td.course span { display: block; font-size: 12px; color: var(--ink-5); margin-top: 2px; }
.sched .mode-pill {
	display: inline-block;
	font-size: 11px;
	padding: 3px 9px;
	border: 1px solid var(--line-2);
	color: var(--ink-3);
	letter-spacing: 0.04em;
}
.sched .mode-pill.live { background: var(--navy); color: #fff; border-color: var(--navy); }
.sched .mode-pill.offline { background: var(--gold); color: var(--ink); border-color: var(--gold); }
.sched .mode-pill.vod { background: var(--bg-alt); }
.sched .price-col { font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
.sched .seats { font-variant-numeric: tabular-nums; }
.sched .seats .low { color: var(--warn); font-weight: 700; }
.sched .seats .soldout { color: var(--ink-5); text-decoration: line-through; }

/* ═════════════════════════════════ SHOP GRID (과정 리스트) */
.shop-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
@media (max-width: 1024px) { .shop-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .shop-grid { grid-template-columns: 1fr; } }
.shop-card {
	padding: 32px 28px;
	background: var(--bg-white);
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	transition: background 160ms ease;
	text-decoration: none; color: inherit;
	display: flex; flex-direction: column;
}
.shop-card:hover { background: var(--bg-alt); }
.shop-card__code {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 12px;
	color: var(--ink-5);
	margin-bottom: 10px;
}
.shop-card__title {
	font-size: 20px; font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.3;
	color: var(--ink);
	margin-bottom: 10px;
}
.shop-card__desc {
	font-size: 13px; color: var(--ink-4); line-height: 1.75; flex: 1; margin-bottom: 18px;
}
.shop-card__foot {
	display: flex; align-items: baseline; justify-content: space-between;
	padding-top: 18px;
	border-top: 1px solid var(--line);
}
.shop-card__price { font-size: 20px; font-weight: 800; color: var(--navy); letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.shop-card__price .serif { font-family: var(--font-serif); font-style: italic; font-weight: 400; font-size: 12px; color: var(--ink-5); margin-right: 4px; }
.shop-card__arrow { font-family: var(--font-serif); font-style: italic; color: var(--navy); font-size: 13px; }

/* ═════════════════════════════════ PRODUCT DETAIL */
.prod {
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 56px;
	margin-top: 32px;
}
.prod__visual {
	background: linear-gradient(180deg, #0b1024, #001a33);
	color: #fff;
	padding: 48px;
	aspect-ratio: 4/5;
	display: flex; flex-direction: column; justify-content: space-between;
	position: relative; overflow: hidden;
}
.prod__visual::before { content: ""; position: absolute; top: -1px; left: 0; width: 80px; height: 3px; background: var(--gold); }
.prod__visual .wm {
	position: absolute; bottom: -20px; right: -10px;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 220px;
	color: rgba(201, 163, 68, 0.1);
	line-height: 0.8;
}
.prod__visual .code { position: relative; font-family: var(--font-serif); font-style: italic; font-size: 14px; color: var(--gold); }
.prod__visual .t { position: relative; font-size: 44px; font-weight: 800; letter-spacing: -0.03em; line-height: 1.12; margin: 24px 0 0; }
.prod__visual .m {
	position: relative;
	display: flex; gap: 24px;
	padding-top: 24px;
	border-top: 1px solid rgba(255,255,255,0.15);
	font-size: 13px;
	color: rgba(255,255,255,0.85);
}
.prod__visual .m div b {
	display: block;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 11px;
	color: var(--gold);
	margin-bottom: 2px;
	font-weight: 400;
}

.prod__info h1 { font-size: 28px; font-weight: 800; letter-spacing: -0.025em; line-height: 1.3; margin-bottom: 12px; color: var(--ink); }
.prod__info .cat { font-size: 13px; color: var(--navy); font-weight: 600; margin-bottom: 8px; }
.prod__info .desc {
	font-size: 14px; color: var(--ink-4);
	line-height: 1.8;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
	margin-bottom: 24px;
}

.var-group { margin-bottom: 24px; }
.var-group .var-label {
	font-size: 12px; font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 10px;
	display: flex; justify-content: space-between;
}
.var-group .var-label .req { font-family: var(--font-serif); font-style: italic; color: var(--ink-5); text-transform: none; letter-spacing: 0; }
.var-opts { display: grid; gap: 8px; }
.var-opt {
	border: 1px solid var(--line-2);
	padding: 14px 16px;
	cursor: pointer;
	display: flex; align-items: center; gap: 12px;
	background: var(--bg-white);
	position: relative;
	transition: border-color 120ms ease;
}
.var-opt:hover { border-color: var(--navy); }
.var-opt.is-selected { border-color: var(--navy); background: var(--navy-50); }
.var-opt.is-selected::after { content: "✓"; position: absolute; top: 10px; right: 12px; color: var(--navy); font-weight: 800; }
.var-opt .v-t { font-size: 13px; font-weight: 700; color: var(--ink); }
.var-opt .v-s { font-size: 11px; color: var(--ink-5); margin-top: 2px; }
.var-opt .v-r { margin-left: auto; text-align: right; }
.var-opt .v-p { font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums; }

.prod__summary {
	padding: 20px 0 24px;
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	margin: 24px 0;
}
.prod__summary .row { display: flex; justify-content: space-between; font-size: 13px; color: var(--ink-4); margin-bottom: 8px; }
.prod__summary .row.total {
	border-top: 1px solid var(--line);
	padding-top: 14px; margin-top: 14px;
	align-items: baseline; font-weight: 700; color: var(--ink-3);
}
.prod__summary .row.total .big { font-size: 28px; font-weight: 800; color: var(--navy); letter-spacing: -0.02em; }
.prod__actions { display: grid; grid-template-columns: 1fr 2fr; gap: 8px; }
.prod__note {
	margin-top: 20px; padding: 16px;
	background: var(--bg-alt); font-size: 12px;
	color: var(--ink-4); line-height: 1.7;
}
.prod__note b { color: var(--ink-2); display: block; margin-bottom: 4px; font-size: 12px; }
@media (max-width: 1024px) { .prod { grid-template-columns: 1fr; gap: 32px; } }

/* ═════════════════════════════════ CART */
.cart {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	background: var(--bg-white);
	border: 1px solid var(--line);
	font-size: 14px;
}
.cart th, .cart td { padding: 18px 16px; border-bottom: 1px solid var(--line); text-align: left; }
.cart th { background: var(--bg-alt); font-size: 11px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-3); }
.cart .c-name b { color: var(--ink); font-weight: 700; }
.cart .c-name span { display: block; font-size: 12px; color: var(--ink-5); margin-top: 2px; }
.cart .c-price { font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.cart .c-qty { display: inline-flex; border: 1px solid var(--line-2); }
.cart .c-qty button { width: 32px; height: 36px; background: var(--bg-white); border: 0; color: var(--ink-3); }
.cart .c-qty input { width: 40px; height: 36px; text-align: center; border: 0; border-left: 1px solid var(--line-2); border-right: 1px solid var(--line-2); font-weight: 700; }
.cart .c-rm { color: var(--ink-5); font-size: 12px; text-decoration: underline; cursor: pointer; }

.cart-total {
	margin-top: 32px;
	padding: 28px;
	background: var(--bg-alt);
	border: 1px solid var(--line);
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 40px;
}
.cart-total__coupon { display: flex; gap: 8px; }
.cart-total__coupon input {
	flex: 1; padding: 11px 14px;
	border: 1px solid var(--line-2);
	background: var(--bg-white);
	font-family: inherit; font-size: 13px;
}
.cart-total__sum .row { display: flex; justify-content: space-between; font-size: 13px; color: var(--ink-4); margin-bottom: 8px; }
.cart-total__sum .row.discount { color: var(--warn); }
.cart-total__sum .row.total {
	font-size: 13px; color: var(--ink-3);
	border-top: 1px solid var(--line); padding-top: 14px; margin-top: 14px;
	align-items: baseline; font-weight: 700;
}
.cart-total__sum .row.total .big { font-size: 28px; font-weight: 800; color: var(--navy); letter-spacing: -0.02em; }
@media (max-width: 768px) { .cart-total { grid-template-columns: 1fr; } }

/* ═════════════════════════════════ CHECKOUT */
.ck {
	display: grid;
	grid-template-columns: 1.5fr 1fr;
	gap: 56px;
	margin-top: 32px;
}
@media (max-width: 1024px) { .ck { grid-template-columns: 1fr; gap: 32px; } }
.ck__block {
	margin-bottom: 40px;
	padding-bottom: 32px;
	border-bottom: 1px solid var(--line);
}
.ck__block:last-child { border-bottom: 0; }
.ck__block h3 {
	font-size: 18px; font-weight: 700;
	margin-bottom: 20px;
	letter-spacing: -0.01em;
	display: flex; align-items: center; gap: 12px;
	color: var(--ink);
}
.ck__block h3 .step {
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--ink-5);
	font-size: 15px;
	font-weight: 400;
}

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.form-row.full { grid-template-columns: 1fr; }
.form-f label {
	display: block;
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--ink-3);
	margin-bottom: 6px;
}
.form-f input, .form-f select, .form-f textarea {
	width: 100%;
	padding: 12px 14px;
	font-family: inherit; font-size: 14px;
	border: 1px solid var(--line-2);
	background: var(--bg-white);
	color: var(--ink);
}
.form-f input:focus, .form-f select:focus, .form-f textarea:focus { outline: none; border-color: var(--navy); }

.pay-opts { display: grid; gap: 10px; }
.pay-opt {
	padding: 16px; border: 1px solid var(--line-2);
	cursor: pointer; display: flex; align-items: center; gap: 14px;
	background: var(--bg-white);
}
.pay-opt.is-selected { border-color: var(--navy); background: var(--navy-50); }
.pay-opt .dot { width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--line-2); flex-shrink: 0; position: relative; }
.pay-opt.is-selected .dot { border-color: var(--navy); }
.pay-opt.is-selected .dot::after { content: ""; width: 8px; height: 8px; background: var(--navy); border-radius: 50%; position: absolute; top: 3px; left: 3px; }
.pay-opt b { font-size: 13px; font-weight: 700; color: var(--ink); }
.pay-opt span { font-size: 12px; color: var(--ink-5); display: block; }

.order-sum {
	background: var(--bg-alt);
	padding: 28px;
	position: sticky; top: 80px;
	align-self: start;
	border: 1px solid var(--line);
}
.order-sum h3 { font-size: 15px; font-weight: 700; margin-bottom: 20px; padding-bottom: 14px; border-bottom: 1px solid var(--line); color: var(--ink); }
.order-sum .item { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.order-sum .item b { display: block; font-size: 13px; font-weight: 700; color: var(--ink); margin-bottom: 2px; }
.order-sum .item span { color: var(--ink-5); font-size: 12px; }
.order-sum .item .p { margin-left: auto; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; white-space: nowrap; }
.order-sum .rows { margin: 20px 0; }
.order-sum .rows .row { display: flex; justify-content: space-between; font-size: 13px; color: var(--ink-4); margin-bottom: 8px; }
.order-sum .total { padding-top: 16px; border-top: 1px solid var(--line); display: flex; align-items: baseline; justify-content: space-between; }
.order-sum .total .lbl { font-size: 13px; font-weight: 700; color: var(--ink-3); }
.order-sum .total .amt { font-size: 26px; font-weight: 800; color: var(--navy); letter-spacing: -0.02em; }

/* ═════════════════════════════════ ACCOUNT NAV */
.acct {
	display: grid;
	grid-template-columns: 240px 1fr;
	gap: 56px;
	margin-top: 32px;
}
@media (max-width: 1024px) { .acct { grid-template-columns: 1fr; gap: 24px; } }
.acct-nav {
	list-style: none;
	border: 1px solid var(--line);
	background: var(--bg-white);
	padding: 0;
}
.acct-nav li a {
	display: block;
	padding: 14px 20px;
	font-size: 13px; font-weight: 600;
	color: var(--ink-3);
	border-bottom: 1px solid var(--line);
}
.acct-nav li:last-child a { border-bottom: 0; }
.acct-nav li a:hover { background: var(--bg-alt); color: var(--navy); }
.acct-nav li.is-active a { background: var(--navy); color: #fff; }

.acct-card {
	border: 1px solid var(--line);
	background: var(--bg-white);
	padding: 32px;
	margin-bottom: 16px;
}
.acct-card h3 { font-size: 18px; font-weight: 700; margin-bottom: 16px; color: var(--ink); letter-spacing: -0.01em; }
.acct-row { display: grid; grid-template-columns: 140px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.acct-row:last-child { border-bottom: 0; }
.acct-row .k { font-size: 12px; color: var(--ink-5); font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.acct-row .v { color: var(--ink-2); }

/* ═════════════════════════════════ DOC / MATERIALS LIST */
.docs {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 0;
	border-top: 1px solid var(--line);
	border-left: 1px solid var(--line);
}
@media (max-width: 768px) { .docs { grid-template-columns: 1fr; } }
.doc-item {
	padding: 24px 24px;
	background: var(--bg-white);
	border-right: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
	display: flex; align-items: flex-start; gap: 16px;
	text-decoration: none; color: inherit;
	transition: background 160ms ease;
}
.doc-item:hover { background: var(--bg-alt); }
.doc-item__icon {
	width: 40px; height: 48px;
	background: var(--bg-alt);
	border: 1px solid var(--line);
	display: flex; align-items: center; justify-content: center;
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 11px;
	color: var(--navy);
	letter-spacing: 0.04em;
	flex-shrink: 0;
}
.doc-item__meta { flex: 1; min-width: 0; }
.doc-item__title { font-size: 15px; font-weight: 700; color: var(--ink); letter-spacing: -0.01em; margin-bottom: 4px; }
.doc-item__sub { font-size: 12px; color: var(--ink-5); }
.doc-item__sub b { color: var(--navy); font-weight: 600; }

/* ═════════════════════════════════ SEARCH */
.search-form {
	display: flex;
	max-width: 560px;
	margin-bottom: 40px;
	border: 1.5px solid var(--ink-2);
}
.search-form input {
	flex: 1;
	padding: 14px 18px;
	font-family: inherit; font-size: 15px;
	border: 0;
	background: transparent;
}
.search-form input:focus { outline: none; }
.search-form button {
	padding: 0 24px;
	background: var(--ink-2);
	color: #fff;
	font-weight: 700;
	font-size: 13px;
	border: 0;
}

/* ═════════════════════════════════ 404 */
.nf {
	min-height: 60vh;
	padding: 120px 24px;
	text-align: center;
	display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.nf__mark {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 160px;
	line-height: 0.9;
	color: var(--navy);
	letter-spacing: -0.04em;
	margin-bottom: 24px;
}
.nf__mark em { color: var(--gold); font-style: italic; }
.nf__title {
	font-size: 28px; font-weight: 800;
	color: var(--ink);
	letter-spacing: -0.02em;
	margin-bottom: 12px;
}
.nf__lead { color: var(--ink-4); max-width: 460px; line-height: 1.8; margin-bottom: 28px; }
.nf__ctas { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
@media (max-width: 768px) { .nf__mark { font-size: 100px; } }

/* ═════════════════════════════════ REVIEW / POST HERO (수강후기 단일) */
.review-hero {
	background: var(--ink);
	color: #fff;
	padding: 64px 24px 56px;
	position: relative;
	overflow: hidden;
}
.review-hero::before { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 80px; height: 3px; background: var(--gold); }
.review-hero__inner { max-width: 760px; margin: 0 auto; }
.review-hero__tag {
	font-family: var(--font-serif);
	font-style: italic;
	font-size: 13px;
	color: var(--gold);
	margin-bottom: 16px;
}
.review-hero__score {
	font-size: 52px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.1;
	margin-bottom: 12px;
}
.review-hero__score .delta {
	display: inline-block;
	font-size: 14px; font-weight: 700;
	background: var(--gold); color: var(--ink);
	padding: 3px 10px;
	margin-left: 12px;
	vertical-align: middle;
	letter-spacing: 0.02em;
}
.review-hero__meta {
	font-size: 13px; color: rgba(255,255,255,0.7);
	margin-top: 8px;
}
.review-hero__meta .sep { color: rgba(255,255,255,0.25); margin: 0 8px; }

/* ─────────────────────────────── REVIEW SINGLE */
.review-single {
	margin-top: 6px;
}
.review-single__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);
	gap: 28px;
	align-items: start;
}
.review-single__panel,
.review-single__aside {
	background: #fff;
	border: 1px solid var(--line);
}
.review-single__panel {
	padding: 28px;
}
.review-single__aside {
	padding: 24px;
	position: sticky;
	top: 92px;
}
.review-single__media {
	margin-bottom: 24px;
	background: var(--bg-alt);
	border: 1px solid var(--line);
	overflow: hidden;
}
.review-single__media iframe,
.review-single__media img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 9;
	border: 0;
}
.review-single__meta {
	display: grid;
	gap: 0;
}
.review-single__meta-item {
	padding: 14px 0;
	border-bottom: 1px solid var(--line);
}
.review-single__meta-item:last-child {
	border-bottom: 0;
}
.review-single__meta-label {
	font-size: 12px;
	color: var(--ink-5);
	margin-bottom: 4px;
}
.review-single__meta-value {
	font-size: 15px;
	font-weight: 700;
	color: var(--ink);
}
.review-single__cta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 24px;
}
@media (max-width: 960px) {
	.review-single__grid { grid-template-columns: 1fr; }
	.review-single__aside { position: static; }
}

/* ─────────────────────────────── REVIEW ARCHIVE */
.review-archive__intro {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 28px;
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--line);
}
.review-archive__intro-copy {
	flex: 1;
	min-width: 0;
}
.review-archive__intro-meta {
	flex-shrink: 0;
	min-width: 140px;
	padding: 18px 20px;
	background: var(--bg-alt);
	border: 1px solid var(--line);
	text-align: right;
}
.review-archive__intro-meta strong {
	display: block;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--ink);
	line-height: 1;
}
.review-archive__intro-meta span {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--ink-5);
}
.review-archive__tools {
	margin-bottom: 40px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.review-archive__stats {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 12px;
}
.review-archive__stat {
	padding: 18px 18px 16px;
	background: #fff;
	border: 1px solid var(--line);
}
.review-archive__stat strong {
	display: block;
	font-size: 26px;
	font-weight: 800;
	letter-spacing: -0.02em;
	color: var(--ink);
	line-height: 1;
}
.review-archive__stat span {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--ink-5);
}
.review-archive__filter-row {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	flex-wrap: wrap;
}
.review-archive__filter-row--compact .chips { margin-bottom: 0; }
.review-archive__filter-label {
	min-width: 60px;
	padding-top: 8px;
	font-size: 13px;
	font-weight: 700;
	color: var(--ink-4);
}
.review-archive__empty {
	padding: 44px 20px;
	margin-top: 20px;
	text-align: center;
	background: var(--bg-alt);
	border: 1px solid var(--line);
}
.review-archive__empty strong {
	display: block;
	font-size: 18px;
	font-weight: 800;
	color: var(--ink);
	margin-bottom: 8px;
}
.review-archive__empty p {
	margin: 0;
	font-size: 14px;
	color: var(--ink-4);
}
.review-archive__pager {
	margin-top: 44px;
}
.pager__gap {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 28px;
	height: 38px;
	color: var(--ink-5);
	font-size: 13px;
}
@media (max-width: 960px) {
	.review-archive__intro {
		flex-direction: column;
		align-items: flex-start;
	}
	.review-archive__intro-meta {
		text-align: left;
	}
}
@media (max-width: 768px) {
	.review-archive__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.review-archive__filter-label {
		min-width: 52px;
	}
}

/* ═════════════════════════════════ WORDPRESS CONTENT PAGES */
.inrise-main--page,
.inrise-main--single,
.inrise-main--columns {
	background: var(--bg);
	min-height: 58vh;
	padding: 0;
}
.inrise-main--premium { background: #000; }
.inrise-main--columns .sec { padding: 0; }
.inrise-page > .ct,
.inrise-main--single .ct,
.inrise-main--columns .sec__inner {
	max-width: var(--shell-max);
	margin: 0 auto;
	padding: 48px 24px 112px;
}
.inrise-page__header,
.inrise-single__header,
.inrise-archive__header {
	max-width: 780px;
	margin-bottom: 32px;
}
.inrise-page__title,
.inrise-single__title,
.inrise-archive__title {
	font-size: clamp(34px, 5vw, 56px);
	line-height: 1.08;
	letter-spacing: -0.035em;
	color: var(--ink);
	font-weight: 850;
}
.inrise-page__body,
.inrise-single__body {
	max-width: 860px;
	color: var(--ink-2);
}
.inrise-single__meta,
.inrise-post__meta {
	margin-top: 14px;
	color: var(--ink-5);
	font-size: 13px;
}
.inrise-single__body p,
.inrise-page__body p {
	margin: 0 0 18px;
	line-height: 1.85;
}
.inrise-single__body h2,
.inrise-page__body h2 {
	margin: 42px 0 16px;
	font-size: 26px;
	line-height: 1.25;
	letter-spacing: -0.025em;
	color: var(--ink);
}
.inrise-single__body h3,
.inrise-page__body h3 {
	margin: 28px 0 12px;
	font-size: 20px;
	letter-spacing: -0.015em;
	color: var(--ink);
}
.inrise-single__body ul,
.inrise-page__body ul {
	list-style: disc;
	padding-left: 1.25em;
	margin: 0 0 22px;
}
.nav-links,
.pagination {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-top: 46px;
}
.nav-links .page-numbers,
.pagination .page-numbers {
	min-width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--line);
	background: #fff;
	color: var(--ink-3);
	font-weight: 750;
	font-size: 13px;
}
.nav-links .page-numbers.current,
.pagination .page-numbers.current {
	background: var(--navy);
	color: #fff;
	border-color: var(--navy);
}

/* Legacy floating snippet guard. The old WPCode snippet is disabled on production;
   this keeps cached copies from overlapping theme floaters. */
.floating-buttons { display: none !important; }

@media (max-width: 768px) {
	.inrise-page > .ct,
	.inrise-main--single .ct,
	.inrise-main--columns .sec__inner {
		padding: 40px 20px 88px;
	}
}

.inrise-main--columns .sec__head {
	align-items: flex-end;
	margin-bottom: 26px;
}
.column-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 28px;
}
.column-filter__chip {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 0 15px;
	border: 1px solid var(--line);
	background: #fff;
	color: var(--ink-3);
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	transition: border-color 160ms ease, color 160ms ease, background 160ms ease;
}
.column-filter__chip:hover {
	border-color: var(--navy);
	color: var(--navy);
}
.column-filter__chip.is-active {
	background: var(--navy);
	border-color: var(--navy);
	color: #fff;
}
.inrise-main--columns .cols {
	display: grid;
	grid-auto-flow: initial;
	grid-auto-columns: initial;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	overflow: visible;
	scroll-snap-type: none;
}
.inrise-main--columns .col-card {
	min-width: 0;
	scroll-snap-align: none;
}
.col-card__thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.col-card__thumb-fallback {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: rgba(0, 54, 100, 0.42);
	font-size: 22px;
	font-weight: 850;
	letter-spacing: 0;
	z-index: 1;
}
.column-loader {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	margin-top: 42px;
	min-height: 72px;
}
.column-loader__button {
	min-width: 128px;
	height: 42px;
	border: 1px solid var(--navy);
	background: var(--navy);
	color: #fff;
	font-size: 13px;
	font-weight: 850;
	cursor: pointer;
	transition: transform 160ms ease, background 160ms ease;
}
.column-loader__button:hover {
	background: var(--navy-ink);
	transform: translateY(-1px);
}
.column-loader__status {
	min-height: 20px;
	margin: 0;
	color: var(--ink-5);
	font-size: 13px;
}
.column-loader__sentinel {
	width: 100%;
	height: 1px;
}
.column-loader.is-loading .column-loader__button {
	opacity: 0.72;
	pointer-events: none;
}
.column-loader.is-observed {
	min-height: 44px;
}
.column-loader.is-observed .column-loader__button {
	display: none;
}
.column-loader.is-finished .column-loader__button,
.column-loader.is-finished .column-loader__sentinel {
	display: none;
}
@media (max-width: 1024px) {
	.inrise-main--columns .cols {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
	}
}
@media (max-width: 768px) {
	.inrise-main--columns .sec__head {
		align-items: flex-start;
	}
	.column-filter {
		flex-wrap: nowrap;
		margin: 0 -20px 24px;
		padding: 0 20px 2px;
		overflow-x: auto;
		scrollbar-width: none;
	}
	.column-filter::-webkit-scrollbar {
		display: none;
	}
	.column-filter__chip {
		white-space: nowrap;
	}
	.inrise-main--columns .cols {
		grid-template-columns: 1fr;
		gap: 16px;
	}
}
