/* =========================================================
   嘉时音乐国际 · 暖金晨光
   视觉基准 = 品牌 PDF 第 1 页封面：暖琥珀纵向渐变 + 白色笔触母题 + 书法墨字
   节奏：晨光（hero）→ 纸白（内容）→ 墨色（收尾）
   ========================================================= */

:root {
	/* —— 基底：纸 —— */
	--jx-paper: #FDFAF5;
	--jx-paper-2: #FBF2E6;
	--jx-paper-3: #F7E7D3;
	--jx-card: #FFFFFF;

	/* —— 墨：深色收尾区块 —— */
	--jx-ink: #1A1612;
	--jx-surface: #231D18;
	--jx-surface-2: #2E2721;

	/* —— 品牌琥珀（取自封面渐变）—— */
	--jx-gold: #E8A054;
	--jx-gold-deep: #9C6018;
	--jx-gold-bright: #E38A2C;
	--jx-amber-soft: #F2CBA2;

	/* —— 文字 —— */
	--jx-text: #2A231C;
	--jx-cream: #F5EFE6;
	--jx-muted: #6E6153;
	--jx-dim: #9A8B79;

	/* —— 线与影 —— */
	--jx-line: #EAD6BC;
	--jx-line-soft: rgba(200, 138, 74, 0.18);
	--jx-shadow: 0 18px 44px rgba(90, 58, 24, 0.10);
	--jx-shadow-lg: 0 26px 64px rgba(90, 58, 24, 0.17);

	/* —— 渐变 —— */
	--jx-grad-dawn: linear-gradient(180deg, #FFFFFF 0%, #F9E4CF 22%, #F5D6B7 38%, #EFBC85 58%, #E8A054 80%, #E38A2C 100%);
	--jx-grad-amber: linear-gradient(135deg, #F2C89E 0%, #E8A054 55%, #C8802F 100%);
	--jx-grad-bronze: linear-gradient(135deg, #C8802F 0%, #9C6018 60%, #7E4A11 100%);
	--jx-grad-bright: linear-gradient(135deg, #F5D9B4 0%, #E8A054 60%, #D5924C 100%);

	--jx-maxw: 1200px;
}

/* ---------- 基础 ---------- */
body {
	background-color: var(--jx-paper);
	background-image:
		radial-gradient(1100px 560px at 88% -8%, rgba(232, 160, 84, 0.10), transparent 62%),
		radial-gradient(900px 520px at -12% 12%, rgba(242, 203, 162, 0.16), transparent 58%);
	background-attachment: fixed;
	color: var(--jx-text);
	-webkit-font-smoothing: antialiased;
}

/* 抵消 WP 核心默认 flow 布局根间距（:where(.wp-site-blocks) > * { margin-block-start:24px }），
   让首屏/分区紧跟导航，不再被注入的 24px 顶距推开。 */
.wp-site-blocks > * {
	margin-block-start: 0;
}

a { color: var(--jx-gold-deep); transition: color .25s ease; }
a:hover { color: var(--jx-gold-bright); }

/* 金色渐变文字（浅底默认用铜金，保证可读） */
.jx-gold-text,
.has-gold-gradient-text {
	background: var(--jx-grad-bronze);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
}
/* 深色区块内改用亮琥珀 */
.jx-section--dark .jx-gold-text,
.jx-footer .jx-gold-text {
	background: var(--jx-grad-bright);
	-webkit-background-clip: text;
	background-clip: text;
}

/* ---------- 区块容器 ---------- */
.jx-section { padding: 5.5rem 1.5rem; position: relative; }
.jx-wrap { max-width: var(--jx-maxw); margin: 0 auto; position: relative; z-index: 2; }

/* 首页愿景 · 左右排版（左文案 + 右捷报轮播） */
.jx-vision {
	display: grid;
	grid-template-columns: 1.15fr .85fr;
	gap: 3.5rem;
	align-items: center;
}
.jx-vision__text { min-width: 0; }
.jx-section--tight { padding: 3.8rem 1.5rem; }
.jx-section--alt { background: var(--jx-paper-2); }
.jx-section--sand { background: var(--jx-paper-3); }

/* 深色收尾区块 */
.jx-section--dark {
	background: radial-gradient(80% 120% at 50% 0%, rgba(232, 160, 84, .18) 0%, rgba(232, 160, 84, .06) 42%, transparent 72%), #221A12;
	color: var(--jx-cream);
	border-top: 1px solid rgba(232, 160, 84, .22);
}
.jx-section--dark .jx-h2,
.jx-section--dark h2,
.jx-section--dark h3 { color: var(--jx-cream); }
.jx-section--dark .jx-lead { color: rgba(245, 239, 230, 0.72); }
.jx-section--dark .jx-card {
	background: var(--jx-surface);
	border-color: rgba(232, 160, 84, 0.22);
	box-shadow: none;
}
.jx-section--dark .jx-card h3 { color: var(--jx-cream); }
.jx-section--dark .jx-card p { color: rgba(245, 239, 230, 0.68); }
.jx-section--dark .jx-kicker { color: var(--jx-gold); }
.jx-section--dark .jx-kicker::before { background: var(--jx-gold); }

/* 区块小标题（kicker） */
.jx-kicker {
	display: inline-block;
	font-family: "Playfair Display", serif;
	letter-spacing: .35em;
	text-transform: uppercase;
	font-size: .78rem;
	color: var(--jx-gold-deep);
	margin-bottom: 1rem;
}
.jx-kicker::before {
	content: "";
	display: inline-block;
	width: 28px; height: 1px;
	background: var(--jx-gold-deep);
	vertical-align: middle;
	margin-right: 12px;
	opacity: .7;
}

.jx-h2 {
	font-family: "Noto Serif SC", serif;
	font-weight: 700;
	font-size: clamp(1.8rem, 3.2vw, 2.6rem);
	line-height: 1.2;
	color: var(--jx-ink);
	margin: 0 0 1rem;
}
.jx-lead {
	color: var(--jx-muted);
	font-size: 1.05rem;
	line-height: 1.85;
	max-width: 62ch;
}

/* ---------- 品牌母题：笔触节奏线 ---------- */
.jx-ticks {
	height: 58px;
	background: url('../images/brand/divider-ticks-ink.png') no-repeat center / 100% auto;
	opacity: .55;
	pointer-events: none;
}
.jx-ticks--white { background-image: url('../images/brand/divider-ticks-white.png'); opacity: .9; }
.jx-ticks--wide { height: 78px; }

/* 飘带水印 */
.jx-ribbon {
	position: absolute; inset: 0;
	background: url('../images/brand/ribbon-ink.png') no-repeat;
	background-size: auto 130%;
	background-position: 78% 46%;
	opacity: .09;
	pointer-events: none;
	z-index: 1;
}

/* ---------- 品牌标识（真实书法 mark） ---------- */
.jx-brand {
	display: flex; align-items: center; gap: .7rem;
	font-family: "Noto Serif SC", serif;
	font-weight: 700;
	font-size: 1.12rem;
	color: var(--jx-ink);
	text-decoration: none;
	letter-spacing: .14em;
}
.jx-brand__mark { width: 38px; height: auto; display: block; flex: 0 0 auto; }
.jx-brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.jx-brand__text small {
	font-family: "Playfair Display", serif;
	font-size: .56rem;
	letter-spacing: .3em;
	color: var(--jx-gold-deep);
	font-weight: 500;
	margin-top: 3px;
}
.jx-brand--light { color: var(--jx-cream); }
.jx-brand--light .jx-brand__text small { color: var(--jx-gold); }

/* ---------- 导航 ---------- */
.jx-nav {
	position: sticky;
	top: 0;
	z-index: 50;
	backdrop-filter: blur(16px);
	background: rgba(253, 250, 245, 0.84);
	border-bottom: 1px solid var(--jx-line);
}
.jx-nav ul { list-style: none; display: flex; gap: 1.9rem; margin: 0; padding: 0; }
.jx-nav a { color: var(--jx-muted); font-size: .95rem; text-decoration: none; }
.jx-nav .jx-nav-menu a {
	position: relative;
	padding: .35rem 0;
}
.jx-nav .jx-nav-menu a::after {
	content: "";
	position: absolute; left: 0; bottom: -2px;
	width: 0; height: 1px; background: var(--jx-gold);
	transition: width .3s ease;
}
.jx-nav .jx-nav-menu a:hover { color: var(--jx-ink); }
.jx-nav .jx-nav-menu a:hover::after { width: 100%; }
.jx-nav .jx-cta {
	border: 1px solid var(--jx-gold);
	color: var(--jx-gold-deep);
	border-radius: 999px;
	padding: .5rem 1.4rem;
	text-decoration: none;
	transition: background .25s ease, color .25s ease;
}
.jx-nav .jx-cta:hover { background: var(--jx-grad-amber); color: var(--jx-ink); }

/* 导航下拉二级 */
.jx-nav__item { position: relative; }
.jx-nav__has-children { position: relative; }
/* 不可跳转的父级菜单项（音乐留学） */
.jx-nav .jx-nav-menu a.jx-nav__parent { cursor: default; }
.jx-nav .jx-nav-menu a.jx-nav__parent::after { display: none; }
.jx-nav .jx-nav__has-children > a .jx-caret { font-size: .68em; margin-left: .28rem; opacity: .65; }
.jx-nav .jx-nav__submenu {
	position: absolute;
	top: 100%;
	left: 50%;
	transform: translateX(-50%) translateY(6px);
	min-width: 168px;
	background: var(--jx-paper);
	border: 1px solid var(--jx-line);
	border-radius: 14px;
	box-shadow: 0 14px 34px rgba(26, 22, 18, .14);
	padding: .45rem;
	display: flex;
	flex-direction: column;
	gap: .15rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
	z-index: 60;
}
.jx-nav .jx-nav__submenu::before {
	content: "";
	position: absolute;
	top: -10px; left: 0; right: 0; height: 10px;
}
.jx-nav__has-children:hover > .jx-nav__submenu,
.jx-nav__has-children:focus-within > .jx-nav__submenu {
	opacity: 1;
	visibility: visible;
	transform: translateX(-50%) translateY(0);
}
.jx-nav .jx-nav-menu .jx-nav__submenu a {
	display: block;
	padding: .6rem 1.25rem;
	border-radius: 9px;
	color: var(--jx-ink);
	font-size: .92rem;
	white-space: nowrap;
	text-align: center;
}
.jx-nav .jx-nav-menu .jx-nav__submenu a::after { display: none; }
.jx-nav .jx-nav-menu .jx-nav__submenu a:hover {
	background: var(--jx-paper-2);
	color: var(--jx-gold-deep);
}

/* ---------- 按钮 ---------- */
.jx-btn {
	display: inline-flex; align-items: center; gap: .6rem;
	font-family: "Noto Sans SC", sans-serif; font-weight: 700;
	padding: .9rem 2rem; border-radius: 999px;
	background: var(--jx-grad-amber); color: var(--jx-ink);
	border: none; cursor: pointer; text-decoration: none;
	box-shadow: 0 12px 30px rgba(200, 128, 47, 0.28);
	transition: transform .25s ease, box-shadow .25s ease;
}
.jx-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 42px rgba(200, 128, 47, 0.40);
	color: var(--jx-ink);
}
/* 主按钮 · 浅底版：墨色实心（呼应封面书法墨字），浅色/暖色底上轮廓清晰 */
.jx-btn--ink {
	background: var(--jx-ink); color: var(--jx-cream);
	border: 1px solid rgba(255, 255, 255, 0.14);
	box-shadow: 0 12px 30px rgba(74, 44, 12, 0.30);
}
.jx-btn--ink:hover {
	background: #120E0A; color: var(--jx-cream);
	box-shadow: 0 18px 42px rgba(74, 44, 12, 0.42);
}

/* 次按钮：浅底 = 墨线描边 + 微白玻璃（清晰）；深底 = 琥珀描边（见下方 dark 规则） */
.jx-btn--ghost {
	background: rgba(255, 255, 255, 0.30); color: var(--jx-ink);
	border: 1.5px solid rgba(26, 22, 18, 0.72);
	box-shadow: none;
	-webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px);
}
.jx-btn--ghost:hover {
	background: rgba(255, 255, 255, 0.68); color: var(--jx-ink);
	border-color: var(--jx-ink);
}
.jx-section--dark .jx-btn--ghost,
.jx-footer .jx-btn--ghost {
	background: transparent; color: var(--jx-gold);
	border-color: var(--jx-gold); border-width: 1px;
	-webkit-backdrop-filter: none; backdrop-filter: none;
}
.jx-section--dark .jx-btn--ghost:hover,
.jx-footer .jx-btn--ghost:hover {
	background: rgba(232, 160, 84, 0.16); color: var(--jx-gold); border-color: var(--jx-gold);
}

/* ---------- 卡片 ---------- */
.jx-card {
	background: var(--jx-card);
	border: 1px solid var(--jx-line);
	border-radius: 16px;
	padding: 1.8rem;
	box-shadow: 0 10px 26px rgba(90, 58, 24, 0.06);
	transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.jx-card:hover {
	transform: translateY(-6px);
	border-color: var(--jx-amber-soft);
	box-shadow: var(--jx-shadow);
}
.jx-card h3 { font-family: "Noto Serif SC", serif; color: var(--jx-ink); margin: 0 0 .5rem; font-size: 1.25rem; }
.jx-card p { color: var(--jx-muted); margin: 0; font-size: .95rem; line-height: 1.75; }
/* 院校卡（录取院校 + 校徽） */
.jx-card--school .jx-card__logo {
	display: block;
	width: 100%;
	height: 56px;
	object-fit: contain;
	object-position: left center;
	margin-bottom: 1rem;
}
.jx-card--school h3 { font-size: 1.08rem; line-height: 1.5; }
.jx-card .jx-num {
	font-family: "Playfair Display", serif;
	font-size: 2.4rem; font-weight: 700;
	background: var(--jx-grad-bronze);
	-webkit-background-clip: text; background-clip: text; color: transparent;
}
.jx-section--dark .jx-card .jx-num {
	background: var(--jx-grad-bright);
	-webkit-background-clip: text; background-clip: text;
}

/* ---------- 网格 ---------- */
.jx-grid { display: grid; gap: 1.5rem; }
.jx-grid-2 { grid-template-columns: repeat(2, 1fr); }
.jx-grid-3 { grid-template-columns: repeat(3, 1fr); }
.jx-grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) {
	.jx-grid-3, .jx-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.jx-grid-2, .jx-grid-3, .jx-grid-4 { grid-template-columns: 1fr; }
	.jx-nav ul { display: none; }
}

/* ---------- 嘉时影像 · 视频轮播（一排三个） ---------- */
.jx-vids {
	max-width: var(--jx-maxw);
	margin: 3.6rem auto 0;
	position: relative; z-index: 2;
}
.jx-vids__bar {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 1.2rem; margin-bottom: 1rem;
}
.jx-vids__title h3 {
	font-family: "Noto Serif SC", serif; font-weight: 700;
	font-size: 1.35rem; color: var(--jx-ink); margin: 0 0 .35rem;
}
.jx-vids__title p { margin: 0; color: var(--jx-muted); font-size: .92rem; }
.jx-vids__nav { display: flex; gap: .55rem; flex: none; }
.jx-vids__arrow {
	width: 44px; height: 44px; border-radius: 999px;
	display: grid; place-items: center;
	background: var(--jx-card); color: var(--jx-ink);
	border: 1px solid var(--jx-line); cursor: pointer;
	box-shadow: 0 6px 16px rgba(90, 58, 24, 0.07);
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.jx-vids__arrow svg { width: 18px; height: 18px; }
.jx-vids__arrow:hover {
	background: var(--jx-ink); color: var(--jx-cream);
	border-color: var(--jx-ink); transform: translateY(-1px);
}
.jx-vids__arrow:disabled {
	opacity: .3; cursor: default; transform: none;
	background: var(--jx-card); color: var(--jx-ink); border-color: var(--jx-line);
}

/* 轨道：横向 scroll-snap 容器，桌面一排三个（≥3 张时自动分页） */
.jx-vids__track {
	display: flex; gap: 1.5rem;
	margin: 0; padding: 12px 0 26px; list-style: none;
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; -ms-overflow-style: none;
}
.jx-vids__track::-webkit-scrollbar { display: none; }

/* 一排三个：卡片宽 = (容器 - 2×间距) / 3，因此三张 + 两个间距正好铺满一屏 */
.jx-vid { flex: 0 0 calc((100% - 3rem) / 3); scroll-snap-align: start; }
.jx-vid__media {
	position: relative; aspect-ratio: 16 / 9;
	border-radius: 16px; overflow: hidden;
	background: #140F0A;
	border: 1px solid var(--jx-line);
	box-shadow: 0 12px 28px rgba(90, 58, 24, 0.12);
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
@supports not (aspect-ratio: 16 / 9) {
	.jx-vid__media { height: 0; padding-bottom: 56.25%; }
}
.jx-vid:hover .jx-vid__media {
	transform: translateY(-6px);
	border-color: var(--jx-amber-soft);
	box-shadow: 0 16px 28px rgba(90, 58, 24, 0.18);
}
.jx-vid__media video {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; display: block;
}
/* 未播放时封面底部渐隐，保证画面质感与字重层次 */
.jx-vid__media::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 52%;
	background: linear-gradient(to top, rgba(20, 15, 10, .56), rgba(20, 15, 10, 0));
	pointer-events: none; z-index: 1;
	transition: opacity .4s ease;
}
.jx-vid.is-playing .jx-vid__media::after { opacity: 0; }

/* 播放按钮：米白圆钮 + 琥珀光环（静息缓慢心跳，悬停加速） */
.jx-vid__play {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	width: 62px; height: 62px; border-radius: 999px;
	display: grid; place-items: center;
	background: rgba(253, 250, 245, .92); color: var(--jx-ink);
	border: 1px solid rgba(255, 255, 255, .7);
	box-shadow: 0 10px 26px rgba(20, 15, 10, .34);
	cursor: pointer; z-index: 2;
	transition: opacity .3s ease, background .25s ease, transform .25s ease;
}
.jx-vid__play svg { width: 20px; height: 20px; margin-left: 3px; }
.jx-vid__play::after {
	content: ""; position: absolute; inset: -7px; border-radius: 999px;
	border: 1px solid rgba(232, 160, 84, .7);
	animation: jxRing 3.2s ease-out infinite;
}
.jx-vid:nth-child(2) .jx-vid__play::after { animation-delay: .45s; }
.jx-vid:nth-child(3) .jx-vid__play::after { animation-delay: .9s; }
.jx-vid:nth-child(4) .jx-vid__play::after { animation-delay: 1.35s; }
.jx-vid:nth-child(5) .jx-vid__play::after { animation-delay: 1.8s; }
.jx-vid:nth-child(6) .jx-vid__play::after { animation-delay: 2.25s; }
.jx-vid:hover .jx-vid__play { background: #FFFFFF; transform: translate(-50%, -50%) scale(1.08); }
.jx-vid:hover .jx-vid__play::after { animation-duration: 1.6s; }
.jx-vid.is-playing .jx-vid__play { opacity: 0; pointer-events: none; }
@keyframes jxRing {
	0%   { transform: scale(.88); opacity: .9; }
	70%  { transform: scale(1.2); opacity: 0; }
	100% { transform: scale(1.2); opacity: 0; }
}

.jx-vid__cap {
	display: flex; align-items: baseline; justify-content: space-between; gap: .8rem;
	margin-top: .9rem;
}
.jx-vid__cap strong {
	font-family: "Noto Serif SC", serif; font-weight: 700;
	font-size: 1.02rem; color: var(--jx-ink);
}
.jx-vid__cap span {
	font-family: "Playfair Display", serif; font-size: .68rem;
	letter-spacing: .18em; text-transform: uppercase;
	color: var(--jx-gold-deep); opacity: .8; white-space: nowrap;
}
/* 后台尚未上传视频：只展示封面 + 一枚「即将上线」小标 */
.jx-vid--soon .jx-vid__media::after { opacity: .34; }
.jx-vid__soon {
	position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	z-index: 3; pointer-events: none; white-space: nowrap;
	padding: .42rem .95rem; border-radius: 999px;
	background: rgba(253, 250, 245, .92); color: var(--jx-gold-deep);
	font-size: .76rem; letter-spacing: .14em;
	box-shadow: 0 8px 22px rgba(26, 22, 18, .22);
}
.jx-vid__note { margin: .5rem 0 0; font-size: .8rem; color: var(--jx-muted); }

.jx-vids__dots { display: flex; justify-content: center; gap: .5rem; margin-top: .9rem; }
.jx-vids__dots button {
	width: 9px; height: 9px; padding: 0; border: none; border-radius: 999px;
	background: rgba(26, 22, 18, .18); cursor: pointer;
	transition: width .3s ease, background .3s ease;
}
.jx-vids__dots button.is-on { width: 26px; background: var(--jx-gold-deep); }

@media (max-width: 960px) { .jx-vid { flex-basis: calc((100% - 1.5rem) / 2); } }
@media (max-width: 640px) {
	.jx-vid { flex-basis: 100%; }
	.jx-vids__bar { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) {
	.jx-vids__track { scroll-behavior: auto; }
	.jx-vid__play::after { animation: none; opacity: .55; }
}

/* =========================================================
   内页 Banner（导航下方的整幅实拍首屏）
   换图：改 --jx-pbanner-image 即可，与首页 hero 同一套用法
   ========================================================= */
.jx-pbanner {
	/* 默认 = 品牌封面渐变底（与设计令牌 --jx-grad-dawn 同源，含暖琥珀渐变 + 飘带母题）。
	   换图：在模板里给 .jx-pbanner 加 style="--jx-pbanner-image:url('...')" 即可（关于页即覆盖为钢琴弦实拍图）。 */
	--jx-pbanner-image: var(--jx-grad-dawn);
	position: relative;
	overflow: hidden;
	display: flex; align-items: flex-end;
	min-height: clamp(340px, 42vh, 500px);
	background-color: var(--jx-paper-3);
	background-image: var(--jx-pbanner-image);
	background-size: cover;
	background-position: 70% 52%;
	background-repeat: no-repeat;
}

/* 纸色渐隐遮罩：左侧压白保证标题可读，右侧露出实拍 */
.jx-pbanner__scrim {
	position: absolute; inset: 0; z-index: 1; pointer-events: none;
	background-image:
		linear-gradient(94deg, var(--jx-paper) 0%, rgba(253, 250, 245, .96) 22%,
			rgba(253, 250, 245, .78) 40%, rgba(253, 250, 245, .28) 64%,
			rgba(253, 250, 245, 0) 90%),
		linear-gradient(to top, var(--jx-paper) 0%, rgba(253, 250, 245, .5) 12%,
			rgba(253, 250, 245, 0) 34%);
}

.jx-pbanner__inner {
	position: relative; z-index: 2;
	width: 100%; max-width: var(--jx-maxw); margin: 0 auto;
	padding: 3.6rem 1.5rem 3rem;
}
.jx-pbanner h1 {
	font-family: "Noto Serif SC", serif; font-weight: 900;
	font-size: clamp(2.2rem, 5vw, 3.6rem); line-height: 1.12;
	color: var(--jx-ink);
	margin: .9rem 0 1rem;
}
.jx-pbanner__lead {
	margin: 0; max-width: 44ch;
	font-size: 1.05rem; line-height: 1.95;
	color: var(--jx-muted);
}
.jx-pbanner .jx-kicker { color: var(--jx-gold-deep); }
.jx-pbanner .jx-kicker::before { background: var(--jx-gold-deep); }

/* 入场：比首页 hero 更轻，不抢戏 */
.jx-pbanner__inner > * {
	opacity: 0; transform: translateY(18px);
	animation: jxRise .8s cubic-bezier(.2, .7, .2, 1) forwards;
}
.jx-pbanner__inner > .jx-kicker { animation-delay: .08s; }
.jx-pbanner__inner > h1 { animation-delay: .2s; }
.jx-pbanner__inner > .jx-pbanner__lead { animation-delay: .34s; }

@media (max-width: 640px) {
	.jx-pbanner { min-height: 300px; background-position: 84% 50%; }
	.jx-pbanner__inner { padding: 2.6rem 1.5rem 2.2rem; }
}

/* ---------- 关于我们：品牌自述（书法 logo + 正文） ---------- */
.jx-story {
	display: grid; grid-template-columns: 280px 1fr; gap: 3.4rem; align-items: start;
}
.jx-story__mark { width: 100%; max-width: 210px; height: auto; display: block; }
.jx-story__slogan {
	margin: 1.6rem 0 0; padding-top: 1.4rem;
	border-top: 1px solid var(--jx-line);
	font-family: "Noto Serif SC", serif; font-size: .98rem; line-height: 1.9;
	letter-spacing: .1em; color: var(--jx-muted);
}
.jx-story__body .jx-h2 { margin-bottom: 1.4rem; }
.jx-story__body p {
	margin: 0 0 1.3rem; font-size: 1.02rem; line-height: 2.05; color: var(--jx-muted);
}
.jx-story__body p:first-of-type { color: var(--jx-text); }
@media (max-width: 860px) {
	.jx-story { grid-template-columns: 1fr; gap: 2rem; }
	.jx-story__aside { display: flex; align-items: center; gap: 1.6rem; }
	.jx-story__mark { max-width: 124px; }
	.jx-story__slogan { margin: 0; padding-top: 0; border-top: none; }
}

/* ---------- 数据条 ---------- */
.jx-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
.jx-stat {
	text-align: center; padding: 2rem 1rem 1.7rem;
	background: var(--jx-card); border: 1px solid var(--jx-line);
	border-radius: 18px; box-shadow: var(--jx-shadow);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.jx-stat:hover { transform: translateY(-6px); border-color: var(--jx-gold); box-shadow: var(--jx-shadow-lg); }
.jx-stat b {
	display: block; font-family: "Playfair Display", serif; font-weight: 700;
	font-size: clamp(2rem, 3.6vw, 2.9rem); line-height: 1;
	background: var(--jx-grad-bronze);
	-webkit-background-clip: text; background-clip: text;
	color: transparent; -webkit-text-fill-color: transparent;
}
.jx-stat span { display: block; margin-top: .7rem; font-size: .9rem; color: var(--jx-muted); }
@media (max-width: 760px) { .jx-stats { grid-template-columns: repeat(2, 1fr); } }

/* ---------- 首页数据条（Hero 下方 · 动态数字） ---------- */
.jx-stats-band {
	position: relative;
	background: var(--jx-paper-2);
	border-bottom: 1px solid var(--jx-line);
	padding: clamp(2.6rem, 5vw, 3.6rem) 0 clamp(2.4rem, 4.5vw, 3.2rem);
	overflow: hidden;
}
/* 顶部一道金渐隐细线，承接上方 hero */
.jx-stats-band::before {
	content: ""; position: absolute; left: 0; right: 0; top: 0; height: 2px;
	background: linear-gradient(90deg, transparent, rgba(232, 160, 84, .55), transparent);
}
:is(.jx-stats-band, .jx-stats-anim) .jx-stats { gap: 1.4rem; }
:is(.jx-stats-band, .jx-stats-anim) .jx-stat {
	position: relative; overflow: hidden;
	padding: 2.3rem 1.1rem 2rem; border-radius: 20px;
}
:is(.jx-stats-band, .jx-stats-anim) .jx-stat b { font-size: clamp(2.2rem, 4vw, 3.1rem); letter-spacing: .01em; }
/* 卡内斜向柔光（进入视口时扫过一次） */
:is(.jx-stats-band, .jx-stats-anim) .jx-stat::after {
	content: ""; position: absolute; top: 0; left: -60%; width: 45%; height: 100%;
	background: linear-gradient(100deg, transparent, rgba(232, 160, 84, .18), transparent);
	transform: skewX(-18deg); opacity: 0; pointer-events: none;
}
/* 进入视口：卡片错峰浮入 + 柔光扫过 */
:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat { animation: jxStatPop .55s cubic-bezier(.2, .7, .2, 1) both; }
:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat::after { animation: jxStatShine 1.15s ease .4s 1; }
:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat:nth-child(1) { animation-delay: .04s; }
:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat:nth-child(2) { animation-delay: .12s; }
:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat:nth-child(3) { animation-delay: .20s; }
:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat:nth-child(4) { animation-delay: .28s; }
@keyframes jxStatPop { from { opacity: 0; transform: translateY(26px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes jxStatShine { 0% { left: -60%; opacity: 0; } 15% { opacity: 1; } 100% { left: 135%; opacity: 0; } }
@media (max-width: 560px) {
	.jx-stats-band { padding: 2.2rem 0 2rem; }
	:is(.jx-stats-band, .jx-stats-anim) .jx-stat { padding: 1.9rem .9rem 1.6rem; }
}
@media (prefers-reduced-motion: reduce) {
	:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat { animation: none; }
	:is(.jx-stats-band, .jx-stats-anim).is-in .jx-stat::after { animation: none; opacity: 0; }
}

/* 录取院校标签 */
.jx-chips { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.jx-chips li {
	border: 1px solid var(--jx-line); background: var(--jx-card);
	border-radius: 999px; padding: .5rem 1.1rem;
	font-size: .88rem; color: var(--jx-muted);
	transition: border-color .25s ease, color .25s ease;
}
.jx-chips li:hover { border-color: var(--jx-gold); color: var(--jx-gold-deep); }

/* ---------- 留学选择：分组卡 ---------- */
.jx-major {
	position: relative;
	padding-top: 1.9rem;
	border-top: 2px solid var(--jx-amber-soft);
}
.jx-major h3 {
	font-family: "Noto Serif SC", serif; color: var(--jx-ink);
	font-size: 1.18rem; margin: 0 0 1rem;
	display: flex; align-items: baseline; gap: .55rem; flex-wrap: wrap;
}
.jx-major h3 span {
	font-family: "Playfair Display", serif; font-size: .7rem;
	letter-spacing: .16em; text-transform: uppercase;
	color: var(--jx-gold-deep); font-weight: 500;
}
.jx-major .jx-chips { gap: .5rem; }
.jx-major .jx-chips li { font-size: .82rem; padding: .42rem .9rem; }
@media (max-width: 640px) { .jx-grid--majors { grid-template-columns: 1fr; } }

/* ---------- 留学规划：六步时间线 ---------- */
.jx-steps { list-style: none; margin: 0; padding: 0; position: relative; }
.jx-steps::before {
	content: ""; position: absolute; left: 27px; top: 10px; bottom: 10px; width: 2px;
	background: linear-gradient(var(--jx-line), var(--jx-amber-soft), var(--jx-line));
}
.jx-step {
	position: relative;
	display: grid; grid-template-columns: 56px 1fr; gap: 1.6rem;
	padding: 0 0 2.4rem;
}
.jx-step:last-child { padding-bottom: 0; }
.jx-step__num {
	position: relative; z-index: 2;
	width: 56px; height: 56px; border-radius: 50%; flex: none;
	background: var(--jx-card); border: 2px solid var(--jx-gold);
	color: var(--jx-gold-deep);
	display: grid; place-items: center;
	font-family: "Playfair Display", serif; font-weight: 700; font-size: 1.2rem;
	box-shadow: var(--jx-shadow);
}
.jx-step__body {
	background: var(--jx-card); border: 1px solid var(--jx-line);
	border-radius: 16px; padding: 1.6rem 1.9rem;
	box-shadow: 0 8px 22px rgba(90, 58, 24, .06);
	transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.jx-step__body:hover { transform: translateY(-4px); border-color: var(--jx-amber-soft); box-shadow: var(--jx-shadow); }
.jx-step__body h3 {
	font-family: "Noto Serif SC", serif; color: var(--jx-ink);
	font-size: 1.25rem; margin: 0 0 .9rem;
}
.jx-step__body ul { margin: 0; padding-left: 1.1rem; }
.jx-step__body li { color: var(--jx-muted); font-size: .94rem; line-height: 1.85; margin: .3rem 0; }
.jx-step__body li::marker { color: var(--jx-gold); }
@media (max-width: 560px) {
	.jx-step { grid-template-columns: 44px 1fr; gap: 1.1rem; }
	.jx-step__num { width: 44px; height: 44px; font-size: 1rem; }
	.jx-steps::before { left: 21px; }
}

/* ---------- 工作室实景（真实照片三连） ---------- */
.jx-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.jx-shot {
	margin: 0; border-radius: 18px; overflow: hidden;
	background: var(--jx-card); border: 1px solid var(--jx-line);
	box-shadow: var(--jx-shadow);
	transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease;
}
.jx-shot:hover { transform: translateY(-7px); border-color: var(--jx-gold); box-shadow: var(--jx-shadow-lg); }
.jx-shot__img {
	aspect-ratio: 4 / 3; background-color: var(--jx-paper-3);
	background-size: cover; background-position: center;
	transition: transform .6s ease;
}
@supports not (aspect-ratio: 4 / 3) { .jx-shot__img { height: 300px; } }
.jx-shot:hover .jx-shot__img { transform: scale(1.04); }
.jx-shot figcaption { padding: .95rem 1.2rem 1.1rem; font-size: .88rem; color: var(--jx-muted); }
.jx-shot figcaption strong { display: block; font-size: 1rem; font-weight: 600; color: var(--jx-ink); margin-bottom: .2rem; }
.px-space-sign  { background-image: url('../images/about/space-sign.jpg'); }
.px-space-piano { background-image: url('../images/about/space-piano.jpg'); }
.px-space-books { background-image: url('../images/about/space-books.jpg'); }
@media (max-width: 860px) { .jx-gallery { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .jx-gallery { grid-template-columns: 1fr; } }

/* ---------- 留学介绍：清单 / 体系卡 / 教辅封面 / 实拍 ---------- */
/* 网格内整行通栏（七项核心体系的首卡） */
.jx-span-all { grid-column: 1 / -1; }
/* 卡内清单（金点 + 加粗小标） */
.jx-list { margin: .35rem 0 0; padding-left: 1.15rem; }
.jx-list li { color: var(--jx-muted); font-size: .93rem; line-height: 1.8; margin: .28rem 0; }
.jx-list li::marker { color: var(--jx-gold); }
.jx-list strong { color: var(--jx-ink); font-weight: 600; margin-right: .5rem; }
/* 七项核心体系：编号 + 首卡强调 */
.jx-sys .jx-num { display: block; line-height: .86; margin-bottom: .5rem; }
.jx-sys-feature {
	background: linear-gradient(135deg, var(--jx-paper-3), var(--jx-card));
	border-color: var(--jx-amber-soft);
}
.jx-sys-feature .jx-chips { margin-top: 1.1rem; }
/* 精选教辅 · 书籍封面行 */
.jx-books { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1.4rem 0 0; padding: 0; list-style: none; }
.jx-books li {
	width: 112px; aspect-ratio: 3 / 4; border-radius: 8px; overflow: hidden;
	background: var(--jx-paper-3); border: 1px solid var(--jx-line);
	box-shadow: 0 12px 24px rgba(90, 58, 24, .14);
	transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.jx-books li:hover { transform: translateY(-6px); box-shadow: var(--jx-shadow-lg); border-color: var(--jx-gold); }
.jx-books img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 560px) { .jx-books li { width: 88px; } }
/* 带配图的信息卡（服务涵盖三卡：学位 / 内容 / 背景提升） */
.jx-card--media { padding: 0; overflow: hidden; }
.jx-media {
	aspect-ratio: 3 / 2; background-color: var(--jx-paper-3);
	background-size: cover; background-position: center;
	transition: transform .6s ease;
}
@supports not (aspect-ratio: 3 / 2) { .jx-media { height: 240px; } }
.jx-card--media:hover .jx-media { transform: scale(1.04); }
.jx-card__body { padding: 1.5rem 1.7rem 1.8rem; }
.jx-card__body h3 { margin: 0 0 .85rem; }
.px-prog-degree  { background-image: url('../images/program/card-degree.jpg'); }
.px-prog-content { background-image: url('../images/program/card-content.jpg'); }
.px-prog-boost   { background-image: url('../images/program/card-boost.jpg'); }
/* 留学选择：10 个分类配图 */
.px-major-classical   { background-image: url('../images/majors/classical-performance.jpg?v=2'); }
.px-major-composition { background-image: url('../images/majors/classical-composition.jpg?v=2'); }
.px-major-jazz        { background-image: url('../images/majors/jazz-performance.jpg?v=2'); }
.px-major-production  { background-image: url('../images/majors/music-production.jpg?v=2'); }
.px-major-business    { background-image: url('../images/majors/music-business.jpg?v=2'); }
.px-major-education   { background-image: url('../images/majors/music-education.jpg?v=2'); }
.px-major-improv      { background-image: url('../images/majors/contemporary-improvisation.jpg?v=2'); }
.px-major-therapy     { background-image: url('../images/majors/music-therapy.jpg?v=2'); }
.px-major-musicology  { background-image: url('../images/majors/musicology.jpg?v=2'); }
.px-major-theatre     { background-image: url('../images/majors/musical-theatre.jpg?v=2'); }
/* 服务涵盖国家：逐国优势（三列清单，虚线分隔） */
.jx-countries {
	display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0 2rem; margin: 1.4rem 0 0; padding: 0; list-style: none;
}
.jx-country { padding: .95rem 0 1rem; border-top: 1px dashed var(--jx-line); }
.jx-country b {
	display: flex; align-items: center; gap: .5rem;
	color: var(--jx-ink); font-size: .98rem; font-weight: 600; line-height: 1.4;
}
.jx-country b::before {
	content: ""; flex: none; width: 6px; height: 6px; border-radius: 50%;
	background: var(--jx-gold);
}
.jx-country span {
	display: block; margin-top: .38rem; padding-left: 1.1rem;
	color: var(--jx-muted); font-size: .85rem; line-height: 1.72;
}
/* 兜底项：其他国家 */
.jx-country--more b { color: var(--jx-muted); font-weight: 500; }
.jx-country--more b::before { background: var(--jx-line); }
@media (max-width: 960px) { .jx-countries { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.6rem; } }
@media (max-width: 560px) { .jx-countries { grid-template-columns: 1fr; } }
/* 留学介绍实拍 px 类 */
.px-prog-studio    { background-image: url('../images/program/studio.jpg'); }
.px-prog-recording { background-image: url('../images/program/recording.jpg'); }
.px-prog-ensemble  { background-image: url('../images/program/ensemble.jpg'); }

@media (prefers-reduced-motion: reduce) {
	.jx-pbanner__inner > * { animation: none !important; opacity: 1; transform: none; }
	.jx-shot:hover .jx-shot__img { transform: none; }
	.jx-card--media:hover .jx-media { transform: none; }
}

/* ---------- Hero：品牌封面风「晨光」 ---------- */
.jx-hero {
	position: relative;
	min-height: 88vh;
	display: flex; align-items: flex-start;
	overflow: hidden;
	/* ↓↓↓ 替换 hero 背景图：把 --jx-hero-image 的 none 换成图片地址即可 ↓↓↓
	   例：--jx-hero-image: url('../images/brand/hero.jpg');
	   或后台上传的图：--jx-hero-image: url('/wp-content/uploads/2026/10/hero.jpg'); */
	--jx-hero-image: none;
	--jx-hero-scrim: none; /* 换实拍图后建议开启遮罩以保证文字可读，见下方注释 */
	background-color: #F2C89E;
	background-image: var(--jx-hero-image), var(--jx-grad-dawn);
	background-size: cover, cover;
	background-position: center center, center center;
	background-repeat: no-repeat, no-repeat;
}

/* 背景图之上的可读性遮罩（默认 none 不显示；换实拍图后设
   --jx-hero-scrim: linear-gradient(90deg, rgba(255,252,246,.88) 0%, rgba(255,252,246,.34) 55%, rgba(255,252,246,0) 100%) ） */
.jx-hero::before {
	content: ''; position: absolute; inset: 0; z-index: 0;
	background: var(--jx-hero-scrim); pointer-events: none;
}

/* 金色光晕缓慢扫过 */
.jx-hero::after {
	content: ''; position: absolute; inset: -20% -10%; z-index: 1; pointer-events: none;
	background: linear-gradient(105deg, transparent 40%, rgba(255, 247, 232, .62) 50%, transparent 60%);
	transform: translateX(-65%); opacity: 0;
	animation: jxSweep 7s ease-in-out infinite;
}
.jx-hero__ribbon {
	position: absolute; inset: 0;
	background: url('../images/brand/ribbon-white.png') no-repeat;
	background-size: auto 122%;
	background-position: 74% 18%;
	opacity: .92;
	pointer-events: none;
	z-index: 1;
	will-change: transform;
	animation: jxRibbon 15s ease-in-out infinite alternate;
}
.jx-hero__ticks {
	position: absolute; left: 0; right: 0; bottom: 2.2rem;
	height: 76px;
	background: url('../images/brand/divider-ticks-white.png') no-repeat center bottom / 100% auto;
	opacity: .88;
	pointer-events: none;
	z-index: 1;
	will-change: transform, opacity;
	animation: jxBreathe 6.5s ease-in-out infinite;
}
.jx-hero__inner {
	position: relative; z-index: 2;
	max-width: var(--jx-maxw); margin: 0 auto; padding: 3rem 1.5rem 4rem;
}
.jx-hero__mark { width: 132px; height: auto; display: block; margin-bottom: 1.6rem; }
.jx-hero h1 {
	font-family: "Noto Serif SC", serif;
	font-weight: 900;
	font-size: clamp(2.4rem, 6vw, 4.4rem);
	line-height: 1.12;
	color: var(--jx-ink);
	margin: 1rem 0 1.5rem;
}
.jx-hero p { color: rgba(42, 35, 28, 0.78); font-size: 1.15rem; max-width: 54ch; line-height: 1.9; }
.jx-hero .jx-kicker { color: #8A4F12; }
.jx-hero .jx-kicker::before { background: #8A4F12; }
.jx-hero__slogan {
	font-family: "Noto Serif SC", serif;
	font-size: clamp(1rem, 1.5vw, 1.2rem);
	letter-spacing: .16em;
	color: rgba(42, 35, 28, 0.82);
	margin: 0 0 .4rem;
}

/* ---------- Hero 动效（音乐感） ---------- */

/* 入场：kicker → 标题 → 正文 → 按钮 依次浮入 */
.jx-hero__inner > * {
	opacity: 0; transform: translateY(22px) scale(.985);
	animation: jxRise .8s cubic-bezier(.2, .7, .2, 1) forwards;
}
.jx-hero__inner > .jx-kicker { animation-delay: .12s; }
.jx-hero__inner > h1 { animation-delay: .26s; }
.jx-hero__inner > p:nth-of-type(1) { animation-delay: .44s; }
.jx-hero__inner > p:nth-of-type(2) { animation-delay: .60s; }
@keyframes jxRise { to { opacity: 1; transform: none; } }

/* 飘带缓慢游走（用 background-position，transform 留给 JS 视差） */
@keyframes jxRibbon {
	from { background-position: 74% 18%; }
	to   { background-position: 71% 15%; }
}

/* 节奏线呼吸 */
@keyframes jxBreathe {
	0%, 100% { opacity: .74; }
	50%      { opacity: 1; }
}

/* 光晕扫过 */
@keyframes jxSweep {
	0%   { transform: translateX(-65%); opacity: 0; }
	14%  { opacity: .9; }
	34%  { transform: translateX(65%); opacity: 0; }
	100% { transform: translateX(65%); opacity: 0; }
}

/* 声波均衡器（音乐感主视觉，纯装饰） */
.jx-hero__eq {
	position: absolute; left: 0; right: 0; bottom: 0; height: 56%;
	display: flex; align-items: flex-end; gap: 1.6%;
	padding: 0 4% 2.2rem;
	z-index: 1; pointer-events: none; opacity: .5;
	filter: drop-shadow(0 0 10px rgba(232,160,84,.45));
	-webkit-mask-image: linear-gradient(to top, #000 0%, transparent 99%);
	mask-image: linear-gradient(to top, #000 0%, transparent 99%);
}
/* 背景虚化层，营造纵深 */
.jx-hero__eq--back {
	opacity: .22; filter: blur(7px) drop-shadow(0 0 6px rgba(232,160,84,.35));
	transform: translateY(6px) scaleX(1.04);
}
.jx-hero__eq i {
	flex: 1 1 2px; min-width: 2px; height: 46%;
	border-radius: 4px 4px 0 0;
	background: linear-gradient(to top, #8A4F12 0%, #E8A054 64%, #FBE7C8 100%);
	box-shadow: 0 0 9px rgba(232,160,84,.55);
	transform-origin: bottom;
	animation: jxEq 1.05s ease-in-out infinite;
}
.jx-hero__eq i:nth-child(2n) { height: 74%; animation-duration: .82s; animation-delay: -.4s; }
.jx-hero__eq i:nth-child(3n) { height: 32%; animation-duration: 1.4s; animation-delay: -.9s; }
.jx-hero__eq i:nth-child(5n) { height: 88%; animation-duration: .66s; animation-delay: -1.3s; }
.jx-hero__eq i:nth-child(7n) { height: 58%; animation-duration: 1.22s; animation-delay: -.7s; }
.jx-hero__eq i:nth-child(4n) { animation-delay: -1.7s; }
.jx-hero__eq i:nth-child(11n) { animation-duration: .54s; }
@keyframes jxEq {
	0%, 100% { transform: scaleY(.18); }
	50%      { transform: scaleY(1.14); }
}

/* 主标题暖光脉动（让标题「有温度、有生命」） */
.jx-hero__glow {
	position: absolute; left: 6%; top: 14%; width: 48%; height: 56%;
	background: radial-gradient(ellipse at center, rgba(232,160,84,.30), transparent 70%);
	filter: blur(22px); z-index: 0; pointer-events: none;
	animation: jxPulse 4.2s ease-in-out infinite;
}
@keyframes jxPulse {
	0%, 100% { opacity: .5; transform: scale(.92); }
	50%      { opacity: 1;  transform: scale(1.08); }
}

/* 升腾的音符（音乐生命的信号） */
.jx-hero__notes {
	position: absolute; left: 0; right: 0; top: 0; bottom: 0;
	z-index: 1; pointer-events: none; overflow: hidden;
}
.jx-hero__note {
	position: absolute; bottom: -10%;
	color: #E8A054; font-size: 1.4rem; line-height: 1;
	will-change: transform, opacity;
	animation: jxNote linear infinite;
}
.jx-hero__note::before { content: attr(data-n); }
@keyframes jxNote {
	0%   { transform: translateY(0) rotate(0deg) scale(.7);  opacity: 0; }
	12%  { opacity: .85; }
	82%  { opacity: .5; }
	100% { transform: translateY(-74vh) rotate(26deg) scale(1.15); opacity: 0; }
}

/* 预约按钮心跳光，引导行动 */
.jx-hero .jx-btn:not(.jx-btn--ghost) {
	animation: jxBeat 2.4s ease-in-out infinite;
}
@keyframes jxBeat {
	0%, 100% { box-shadow: 0 12px 30px rgba(74,44,12,.30), 0 0 0 rgba(232,160,84,0); }
	50%      { box-shadow: 0 12px 30px rgba(74,44,12,.30), 0 0 26px rgba(232,160,84,.55); }
}

/* 尊重「减少动态效果」系统偏好 */
@media (prefers-reduced-motion: reduce) {
	.jx-hero__inner > *,
	.jx-hero__ribbon,
	.jx-hero__ticks,
	.jx-hero__eq i,
	.jx-hero__glow,
	.jx-hero__notes,
	.jx-hero .jx-btn,
	.jx-hero::after { animation: none !important; }
	.jx-hero__inner > * { opacity: 1; transform: none; }
	.jx-hero::after,
	.jx-hero__glow { opacity: 0; }
	.jx-hero__notes { display: none; }
}

/* ---------- 创始人 ---------- */
.jx-founder {
	display: grid; grid-template-columns: 300px 1fr; gap: 2rem; align-items: center;
}
.jx-founder__photo {
	aspect-ratio: 3/4; border-radius: 14px;
	background: var(--jx-grad-amber);
	display: flex; align-items: center; justify-content: center;
	font-family: "Noto Serif SC", serif; font-weight: 900; font-size: 5rem; color: var(--jx-ink);
}
@media (max-width: 720px) { .jx-founder { grid-template-columns: 1fr; } }

/* ---------- 页脚（墨色收尾） ---------- */
.jx-footer {
	position: relative;
	background: var(--jx-ink);
	color: var(--jx-cream);
	padding: 3.4rem 1.5rem 1.6rem;
}
.jx-footer::before {
	content: "";
	position: absolute; left: 0; right: 0; top: 1.2rem;
	height: 40px;
	background: url('../images/brand/divider-ticks-white.png') no-repeat center top / 100% auto;
	opacity: .5;
	pointer-events: none;
}
.jx-footer__grid {
	max-width: var(--jx-maxw); margin: 0 auto;
	display: grid; grid-template-columns: 1.25fr .95fr .95fr 1.15fr; gap: 2rem;
	position: relative; z-index: 2;
	align-items: start;
}
@media (max-width: 1024px) { .jx-footer__grid { grid-template-columns: 1fr 1fr; gap: 2rem; } }
@media (max-width: 640px) { .jx-footer__grid { grid-template-columns: 1fr; } }
.jx-footer h4 { color: var(--jx-gold); font-family: "Noto Serif SC", serif; margin: 0 0 1rem; font-size: 1rem; }
.jx-footer a, .jx-footer p { color: rgba(245, 239, 230, 0.72); margin: .35rem 0; display: block; text-decoration: none; }
.jx-footer a:hover { color: var(--jx-gold); }
.jx-footer .jx-brand { margin-bottom: .8rem; display: flex; }
.jx-footer .jx-copy {
	max-width: var(--jx-maxw); margin: 1.8rem auto 0; padding-top: 1.2rem;
	border-top: 1px solid rgba(232, 160, 84, 0.22);
	color: rgba(245, 239, 230, 0.5); font-size: .85rem;
	position: relative; z-index: 2;
}
.jx-footer__slogan {
	color: var(--jx-gold) !important;
	font-family: "Noto Serif SC", serif;
	letter-spacing: .08em;
	font-size: .92rem;
	margin: .5rem 0 .9rem !important;
}
.jx-footer .jx-footer__cta {
	display: inline-block;
	padding: .5rem 1.25rem;
	font-size: .85rem;
	color: #FFFFFF;
	text-shadow: 0 1px 2px rgba(26, 22, 18, .25);
	box-shadow: none;
}
.jx-footer .jx-footer__cta:hover {
	color: #FFFFFF;
	box-shadow: 0 6px 16px rgba(200, 128, 47, .22);
}
.jx-footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.4rem; }
.jx-footer__nav a { margin: .42rem 0; font-size: .88rem; }
.jx-footer__cards {
	display: flex; gap: .7rem;
}
.jx-footer .jx-footer__card {
	flex: 1;
	display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4rem;
	padding: .95rem .5rem .9rem;
	border: 1px solid rgba(232, 160, 84, 0.22);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.035);
	text-align: center;
}
.jx-footer__card svg { width: 24px; height: 24px; color: var(--jx-gold); }
.jx-footer__card b { color: var(--jx-cream); font-size: .86rem; font-weight: 600; }
.jx-footer .jx-footer__qr {
	display: flex; align-items: center; gap: .9rem;
	margin-top: .8rem; padding: .7rem .85rem;
	border: 1px solid rgba(232, 160, 84, 0.22);
	border-radius: 14px;
	background: rgba(255, 255, 255, 0.035);
	transition: border-color .25s ease, background .25s ease;
}
.jx-footer .jx-footer__qr:hover { border-color: rgba(232, 160, 84, 0.45); background: rgba(232, 160, 84, 0.07); }
.jx-footer__qrbox {
	width: 84px; height: 84px; flex: none;
	border: 1px solid rgba(232, 160, 84, 0.35);
	border-radius: 10px;
	background: url('../images/qr/qr-wechat.jpg') center / cover no-repeat, rgba(255, 255, 255, 0.03);
}
.jx-footer__qrtext { display: flex; flex-direction: column; gap: .25rem; }
.jx-footer__qrtext b { color: var(--jx-cream); font-size: .92rem; }
.jx-footer__qrtext small { color: rgba(245, 239, 230, 0.6); font-size: .78rem; }
.jx-footer__clines { margin-top: 0; }
.jx-footer .jx-footer__cline {
	display: flex; align-items: flex-start; gap: .55rem;
	margin: .45rem 0;
	color: rgba(245, 239, 230, 0.72);
	font-size: .84rem; line-height: 1.6;
}
.jx-footer__cline svg { width: 15px; height: 15px; flex: none; margin-top: .28em; color: var(--jx-gold); }
.jx-footer a.jx-footer__cline:hover { color: var(--jx-gold); }

/* 悬浮二维码弹层 */
.jx-footer .jx-footer__card, .jx-footer .jx-footer__qr { position: relative; }
.jx-footer__pop {
	position: absolute; bottom: calc(100% + 12px); left: 50%;
	transform: translate(-50%, 8px);
	width: 148px; padding: .85rem .85rem .7rem;
	background: #FDFAF5;
	border-radius: 16px;
	box-shadow: 0 18px 44px rgba(0, 0, 0, .5), 0 0 0 1px rgba(232, 160, 84, .28);
	display: flex; flex-direction: column; align-items: center; gap: .55rem;
	opacity: 0; visibility: hidden;
	transition: opacity .28s ease, transform .28s ease, visibility .28s;
	z-index: 6;
}
.jx-footer__pop::after {
	content: "";
	position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
	border: 7px solid transparent; border-top-color: #FDFAF5;
}
.jx-footer__card:hover .jx-footer__pop,
.jx-footer__card:focus-within .jx-footer__pop,
.jx-footer .jx-footer__qr:hover .jx-footer__pop,
.jx-footer .jx-footer__qr:focus-within .jx-footer__pop,
.jx-footer__card.is-qr-open .jx-footer__pop,
.jx-footer .jx-footer__qr.is-qr-open .jx-footer__pop {
	opacity: 1; visibility: visible; transform: translate(-50%, 0);
}
.jx-footer__popqr {
	position: relative;
	width: 104px; height: 104px;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	border: 1px solid rgba(232, 160, 84, .4);
}
.jx-footer__popqr img { width: 100%; height: 100%; object-fit: cover; display: block; }
.jx-footer__popqr i { position: absolute; bottom: .3rem; font-style: normal; font-size: .58rem; letter-spacing: .04em; color: #9A8B79; }
.jx-footer__popqr--empty {
	display: grid; place-items: center; text-align: center;
	background: rgba(232, 160, 84, .08);
	border-style: dashed;
	color: #9C6018; font-size: .62rem; line-height: 1.6; font-weight: 500;
}
.jx-footer__popname { color: #1A1612; font-family: "Noto Serif SC", serif; font-size: .84rem; font-weight: 600; }
@media (max-width: 640px) {
	.jx-footer__pop { left: auto; right: -6px; transform: translate(0, 8px); }
	.jx-footer__pop::after { left: auto; right: 26px; transform: none; }
	.jx-footer__card:hover .jx-footer__pop,
	.jx-footer__card:focus-within .jx-footer__pop,
	.jx-footer .jx-footer__qr:hover .jx-footer__pop,
	.jx-footer .jx-footer__qr:focus-within .jx-footer__pop,
	.jx-footer__card.is-qr-open .jx-footer__pop,
	.jx-footer .jx-footer__qr.is-qr-open .jx-footer__pop { transform: translate(0, 0); }
}

/* ---------- 滚动揭示动效 ---------- */
.jx-reveal { opacity: 0; transform: translateY(24px); transition: opacity .7s ease, transform .7s ease; }
.jx-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .jx-reveal { opacity: 1; transform: none; } }

/* =========================================================
   真实肖像与 Offer 截图（源自品牌 PDF 的真实素材）
   ========================================================= */
.jx-portrait {
	background-color: var(--jx-paper-3);
	background-size: cover;
	background-position: center top;
	border: 1px solid var(--jx-line);
	border-radius: 14px;
}

/* 创始人 / 主理人 */
.px-shixu            { background-image: url('../images/team/shixu.jpg'); }
.px-wangjiaxin       { background-image: url('../images/team/wangjiaxin.jpg'); }
/* 名师团队部分成员 */
.px-mu-taibai        { background-image: url('../images/team/mu-taibai.jpg'); }
.px-zhang-aihao      { background-image: url('../images/team/zhang-aihao.jpg'); }
.px-gao-kechao       { background-image: url('../images/team/gao-kechao.jpg'); }
.px-wu-xiao          { background-image: url('../images/team/wu-xiao.jpg'); }
.px-chen-xuzhi       { background-image: url('../images/team/chen-xuzhi.jpg'); }
.px-xu-kaixiang      { background-image: url('../images/team/xu-kaixiang.jpg'); }

/* 创始人卡：底色改为纸色（background-image 交给 .px-* 的真实肖像，勿用 background 简写覆盖） */
.jx-founder__photo.jx-portrait {
	background-color: var(--jx-paper-3);
	background-size: cover;
	background-position: center top;
	background-repeat: no-repeat;
}

/* 名师卡：肖像铺满卡片顶部 */
.jx-master { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.jx-master__photo {
	height: 260px;
	border-radius: 16px 16px 0 0;
	border: none;
	border-bottom: 1px solid var(--jx-line-soft);
	background-position: center 22%;
}
.jx-master__body { padding: 1.3rem 1.5rem 1.6rem; }
.jx-master__role { color: var(--jx-gold-deep) !important; font-weight: 500; margin-bottom: .35rem !important; }
.jx-master__edu  { color: var(--jx-dim) !important; font-size: .88rem !important; }

/* Offer 截图卡片（真实录取捷报） */
.jx-offer {
	aspect-ratio: 3 / 4;
	border-radius: 14px;
	background-color: var(--jx-paper-3);
	background-size: cover;
	background-position: center top;
	border: 1px solid var(--jx-line);
	box-shadow: var(--jx-shadow);
	transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.jx-offer:hover {
	transform: translateY(-6px);
	border-color: var(--jx-gold);
	box-shadow: var(--jx-shadow-lg);
}
.px-offer-berklee    { background-image: url('../images/offers/offer-berklee.jpg'); }
.px-offer-michigan   { background-image: url('../images/offers/offer-michigan.jpg'); }
.px-offer-bimm       { background-image: url('../images/offers/offer-bimm.jpg'); }
.px-offer-newschool  { background-image: url('../images/offers/offer-newschool.jpg'); }
.px-offer-oberlin    { background-image: url('../images/offers/offer-oberlin.jpg'); }
.px-offer-jhu        { background-image: url('../images/offers/offer-jhu.jpg'); }
.px-offer-usc        { background-image: url('../images/offers/offer-usc.jpg'); }
.px-offer-temple     { background-image: url('../images/offers/offer-temple.jpg'); }
.px-offer-ccm        { background-image: url('../images/offers/offer-ccm.jpg'); }
.px-offer-iu         { background-image: url('../images/offers/offer-iu.jpg'); }
.px-offer-unt        { background-image: url('../images/offers/offer-unt.jpg'); }
.px-offer-purchase   { background-image: url('../images/offers/offer-purchase.jpg'); }
.px-offer-berklee2   { background-image: url('../images/offers/offer-berklee2.jpg'); }
.px-offer-berklee3   { background-image: url('../images/offers/offer-berklee3.jpg'); }
.px-offer-berklee4   { background-image: url('../images/offers/offer-berklee4.jpg'); }
.px-offer-berklee5   { background-image: url('../images/offers/offer-berklee5.jpg'); }
.px-offer-michigan2  { background-image: url('../images/offers/offer-michigan2.jpg'); }
.px-offer-newschool2 { background-image: url('../images/offers/offer-newschool2.jpg'); }
.px-offer-newschool3 { background-image: url('../images/offers/offer-newschool3.jpg'); }
.px-offer-newschool4 { background-image: url('../images/offers/offer-newschool4.jpg'); }
.px-offer-newschool5 { background-image: url('../images/offers/offer-newschool5.jpg'); }
.px-offer-ccm2       { background-image: url('../images/offers/offer-ccm2.jpg'); }
.px-offer-unc1       { background-image: url('../images/offers/offer-unc1.jpg'); }
.px-offer-unc2       { background-image: url('../images/offers/offer-unc2.jpg'); }
.px-offer-unc3       { background-image: url('../images/offers/offer-unc3.jpg'); }
.px-offer-unc4       { background-image: url('../images/offers/offer-unc4.jpg'); }
.px-offer-unc5       { background-image: url('../images/offers/offer-unc5.jpg'); }
.px-offer-uco1       { background-image: url('../images/offers/offer-uco1.jpg'); }
.px-offer-uco2       { background-image: url('../images/offers/offer-uco2.jpg'); }
.px-offer-mi         { background-image: url('../images/offers/offer-mi.jpg'); }
.px-offer-nec        { background-image: url('../images/offers/offer-nec.jpg'); }
.px-offer-wisct      { background-image: url('../images/offers/offer-wisct.jpg'); }

/* Offer 数量动态数字高亮 */
.jx-offer-count {
	color: var(--jx-gold-deep);
	font-family: "Playfair Display", serif;
	font-weight: 700;
	font-size: 1.2em;
	padding: 0 .12em;
}

/* Offer 分页页码（每页一排 4 个） */
.jx-pager { display: flex; justify-content: center; gap: .55rem; margin-top: 2.2rem; }
.jx-pager button {
	min-width: 2.5rem;
	height: 2.5rem;
	padding: 0 .6rem;
	border-radius: 999px;
	border: 1px solid var(--jx-line);
	background: var(--jx-card);
	font-family: "Playfair Display", serif;
	font-size: 1rem;
	color: var(--jx-ink);
	cursor: pointer;
	transition: transform .25s ease, border-color .25s ease, background .25s ease, color .25s ease;
}
.jx-pager button:hover { transform: translateY(-2px); border-color: var(--jx-gold); color: var(--jx-gold-deep); }
.jx-pager button.is-active {
	background: var(--jx-gold);
	border-color: var(--jx-gold);
	color: #fff;
	font-weight: 600;
}
.jx-pager button.jx-pager__next {
	font-family: "Noto Sans SC", sans-serif;
	font-size: .9rem;
	letter-spacing: .08em;
	padding: 0 1.1rem;
	min-width: 0;
}
.jx-pager button:disabled {
	opacity: .35;
	cursor: default;
	transform: none;
	border-color: var(--jx-line);
	color: var(--jx-ink);
}

/* =========================================================
   资讯板块（首页 / 资讯页）
   ========================================================= */
.jx-news-head {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 1.2rem; margin-bottom: 2rem; flex-wrap: wrap;
}
.jx-news-head .jx-lead { margin-top: .6rem; }
.jx-news-more {
	flex: none; align-self: center;
	font-weight: 700; text-decoration: none;
	color: var(--jx-gold-deep); border-bottom: 1.5px solid transparent;
	padding-bottom: 2px; transition: border-color .25s ease, color .25s ease;
}
.jx-news-more:hover { border-color: var(--jx-gold); color: var(--jx-gold-bright); }

.jx-news {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem;
}
@media (max-width: 960px) { .jx-news { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .jx-news { grid-template-columns: 1fr; } }

.jx-news-card {
	background: var(--jx-card); border: 1px solid var(--jx-line);
	border-radius: 16px; overflow: hidden; display: flex; flex-direction: column;
	box-shadow: 0 10px 26px rgba(90, 58, 24, .06);
	transition: transform .3s ease, border-color .3s ease, box-shadow .3s ease;
}
.jx-news-card:hover {
	transform: translateY(-6px); border-color: var(--jx-amber-soft); box-shadow: var(--jx-shadow);
}
.jx-news-card__media {
	display: block; position: relative; aspect-ratio: 16 / 9;
	overflow: hidden; background: var(--jx-grad-amber);
}
@supports not (aspect-ratio: 16 / 9) { .jx-news-card__media { height: 0; padding-bottom: 56.25%; } }
.jx-news-card__img {
	position: absolute; inset: 0; width: 100%; height: 100%;
	object-fit: cover; transition: transform .55s ease;
}
.jx-news-card:hover .jx-news-card__img { transform: scale(1.05); }
.jx-news-card__ph {
	position: absolute; inset: 0;
	background:
		url('../images/brand/ribbon-ink.png') no-repeat 78% 28% / 64% auto,
		var(--jx-grad-amber);
	opacity: .92;
}
.jx-news-card__body {
	padding: 1.5rem 1.6rem 1.7rem; display: flex; flex-direction: column; flex: 1;
}
.jx-news-card__meta {
	display: flex; align-items: center; gap: .8rem; margin-bottom: .8rem;
}
.jx-news-card__cat {
	font-size: .72rem; letter-spacing: .12em; font-weight: 600;
	color: var(--jx-gold-deep); background: rgba(232, 160, 84, .12);
	border: 1px solid rgba(232, 160, 84, .30); border-radius: 999px; padding: .2rem .7rem;
}
.jx-news-card__date {
	font-size: .8rem; color: var(--jx-dim); font-family: "Playfair Display", serif;
	letter-spacing: .04em;
}
.jx-news-card__title {
	font-family: "Noto Serif SC", serif; font-size: 1.18rem; line-height: 1.45;
	margin: 0 0 .7rem; color: var(--jx-ink);
}
.jx-news-card__title a { color: inherit; text-decoration: none; }
.jx-news-card__title a:hover { color: var(--jx-gold-deep); }
.jx-news-card__excerpt {
	color: var(--jx-muted); font-size: .92rem; line-height: 1.8; margin: 0 0 1.2rem; flex: 1;
}
.jx-news-card__link {
	font-weight: 700; font-size: .9rem; color: var(--jx-gold-deep); text-decoration: none;
	align-self: flex-start; transition: color .25s ease;
}
.jx-news-card__link:hover { color: var(--jx-gold-bright); }

/* 资讯页：列表容器放宽到全宽（与 .jx-wrap 一致） */
.jx-news-page .jx-news { max-width: var(--jx-maxw); margin: 0 auto; }

/* =========================================================
   文章详情页（single）
   ========================================================= */
.jx-post__meta {
	margin: 1rem 0 0; display: flex; align-items: center; gap: .8rem;
	color: var(--jx-muted); font-size: .92rem;
}
.jx-pbanner .jx-post__meta { color: rgba(253, 250, 245, .85); }
.jx-pbanner .jx-post__meta a,
.jx-pbanner .jx-post__meta .wp-block-post-terms { color: var(--jx-gold); }
.jx-pbanner .jx-post__meta a:hover { color: var(--jx-gold-bright); }
.jx-post__meta .wp-block-post-terms, .jx-post__meta .wp-block-post-date { margin: 0; }
.jx-post__readtime { color: rgba(253, 250, 245, .6); font-size: .85rem; }
.jx-pbanner .jx-post__meta > *:not(:first-child)::before { content: "·"; margin-right: .8rem; opacity: .55; }

/* 知识型长文页头（参考 guopai：meta 行 → 大标题 → 导语 → 正文） */
.jx-post__topmeta {
	display: flex; align-items: center; flex-wrap: wrap; gap: .75rem;
	margin: 1.6rem 0 0;
	color: var(--jx-muted); font-size: .92rem;
}
.jx-post__topmeta .wp-block-post-terms, .jx-post__topmeta .wp-block-post-date { margin: 0; }
.jx-post__topmeta .wp-block-post-terms, .jx-post__topmeta .wp-block-post-terms a {
	color: var(--jx-gold-deep); font-weight: 600; letter-spacing: .06em;
}
.jx-post__topmeta .wp-block-post-terms a:hover { color: var(--jx-gold-bright); }
.jx-post__topmeta > *:not(:first-child)::before { content: "·"; margin-right: .75rem; opacity: .5; }
.jx-post__readtime { color: var(--jx-dim); font-size: .92rem; }
.jx-post h1 {
	font-family: "Noto Serif SC", serif; font-weight: 900;
	font-size: clamp(1.9rem, 4vw, 2.7rem);
	line-height: 1.28; color: var(--jx-ink);
	margin: .7rem 0 2rem;
}
.jx-post__meta .jx-post__cat { color: var(--jx-gold-deep); font-weight: 600; letter-spacing: .06em; }
.jx-post__cover {
	margin: 0 0 2.4rem; border-radius: 18px; overflow: hidden;
	border: 1px solid var(--jx-line); box-shadow: var(--jx-shadow);
}
.jx-post__cover img { width: 100%; height: auto; display: block; }
.jx-post__body { font-size: 1.05rem; line-height: 2.1; color: var(--jx-text); }
.jx-post__body > * { margin: 0 0 1.5rem; }
.jx-post__body > p:first-of-type {
	font-size: 1.15rem;
	line-height: 2;
	color: var(--jx-ink);
	padding-bottom: 1.4rem;
	margin-bottom: 1.8rem;
	border-bottom: 1px solid var(--jx-line);
	text-indent: 0;
}
.jx-post__body > p { text-indent: 2em; }
.jx-post__body > p:has(> img), .jx-post__body > p:has(strong:only-child) { text-indent: 0; }
.jx-post__body h2, .jx-post__body h3 {
	font-family: "Noto Serif SC", serif; color: var(--jx-ink); margin: 2.6rem 0 1.1rem; line-height: 1.4;
	text-indent: 0;
}
.jx-post__body h2 {
	font-size: 1.35rem;
	font-weight: 900;
}
.jx-post__body h3 { font-size: 1.15rem; }
.jx-post__body strong { color: var(--jx-gold-deep); font-weight: 700; }
.jx-post__body a { color: var(--jx-gold-deep); text-decoration: underline; text-underline-offset: 3px; }
.jx-post__body a:hover { color: var(--jx-gold-bright); }
.jx-post__body ul, .jx-post__body ol { padding-left: 1.5rem; }
.jx-post__body li { margin: 0 0 .5rem; }
.jx-post__body li::marker { color: var(--jx-gold); }
.jx-post__body img { border-radius: 14px; max-width: 100%; height: auto; }
.jx-post__body blockquote {
	background: var(--jx-paper-2);
	border-left: 3px solid var(--jx-gold);
	border-radius: 0 12px 12px 0;
	padding: 1rem 1.3rem;
	color: var(--jx-ink);
	font-style: normal;
}
.jx-post__body blockquote p { margin: 0; }
.jx-post__back {
	display: inline-flex; align-items: center; gap: .5rem;
	font-weight: 700; color: var(--jx-gold-deep); text-decoration: none;
}
.jx-post__back:hover { color: var(--jx-gold-bright); }
.jx-post__actions {
	display: flex; justify-content: space-between; align-items: center;
	margin-top: 3rem; padding-top: 1.4rem;
	border-top: 1px solid var(--jx-line);
}
.jx-post__top { color: var(--jx-dim); text-decoration: none; font-size: .92rem; }
.jx-post__top:hover { color: var(--jx-gold-deep); }

/* =========================================================
   联系我们：信息卡 + 微信二维码占位 + 地图占位
   ========================================================= */
.jx-contact-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: start;
}
@media (max-width: 760px) { .jx-contact-grid { grid-template-columns: 1fr; } }

.jx-info-list { margin: 0; padding: 0; list-style: none; }
.jx-info-row {
	display: flex; align-items: baseline; gap: 1.2rem;
	padding: 1.05rem 0; border-bottom: 1px solid var(--jx-line);
}
.jx-info-row:last-child { border-bottom: none; padding-bottom: 0; }
.jx-info-row__k {
	flex: none; width: 5.5rem; font-weight: 700; color: var(--jx-gold-deep);
	font-family: "Noto Serif SC", serif; font-size: .98rem;
}
.jx-info-row__v { color: var(--jx-ink); font-size: 1.05rem; }
.jx-info-row__v small { display: block; color: var(--jx-dim); font-size: .82rem; margin-top: .2rem; }

/* 微信二维码占位（后台上传真实二维码后替换 .jx-qr 背景为图片即可） */
.jx-qr {
	aspect-ratio: 1 / 1; max-width: 240px; margin: 0 auto;
	border: 2px dashed var(--jx-amber-soft); border-radius: 18px;
	background:
		radial-gradient(circle at 50% 38%, rgba(232,160,84,.10), transparent 70%),
		var(--jx-paper-2);
	display: grid; place-items: center; text-align: center;
	color: var(--jx-dim); font-size: .85rem; line-height: 1.7; padding: 1rem;
}
.jx-qr strong { color: var(--jx-gold-deep); font-size: 1.1rem; display: block; margin-bottom: .2rem; }

/* 地图占位（可替换为高德/腾讯地图 iframe） */
.jx-map {
	margin-top: 1.5rem; border-radius: 18px; overflow: hidden;
	border: 1px solid var(--jx-line); position: relative;
	min-height: 260px; display: flex; align-items: flex-end;
	background:
		url('../images/brand/ribbon-ink.png') no-repeat 88% 20% / 60% auto,
		var(--jx-grad-dawn);
}
.jx-map__pin {
	position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%);
	width: 46px; height: 46px; border-radius: 999px 999px 999px 4px;
	background: var(--jx-ink); color: var(--jx-cream);
	display: grid; place-items: center; box-shadow: 0 12px 26px rgba(26,22,18,.28);
	transform: translate(-50%, -50%) rotate(45deg);
}
.jx-map__pin svg { width: 20px; height: 20px; transform: rotate(-45deg); }
.jx-map__card {
	position: relative; z-index: 2; margin: 1.4rem; padding: 1.3rem 1.6rem;
	background: rgba(253, 250, 245, .94); border-radius: 14px;
	box-shadow: 0 14px 34px rgba(90, 58, 24, .14); max-width: 460px;
}
.jx-map__card strong { font-family: "Noto Serif SC", serif; color: var(--jx-ink); font-size: 1.1rem; }
.jx-map__card p { margin: .4rem 0 0; color: var(--jx-muted); font-size: .95rem; }

/* ---------- 名师团队 · 人物卡（创始人 / 主理人） + 详情弹窗 ---------- */
.jx-people {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1.8rem;
	margin: 0 0 1rem;
}
.jx-pcard {
	display: flex; flex-direction: column;
	background: var(--jx-card);
	border: 1px solid var(--jx-line);
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 14px 36px rgba(90, 58, 24, .09);
	transition: transform .3s ease, box-shadow .3s ease;
}
.jx-pcard:hover {
	transform: translateY(-5px);
	box-shadow: 0 22px 48px rgba(90, 58, 24, .15);
}
.jx-pcard__photo {
	position: relative;
	aspect-ratio: 5 / 4;
	background-size: cover;
	background-position: center top;
}
.jx-pcard__photo::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(26, 22, 18, .22) 0%, rgba(26, 22, 18, 0) 32%, rgba(26, 22, 18, 0) 52%, rgba(26, 22, 18, .58) 100%);
}
.jx-pcard__slide {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center top;
	opacity: 0;
	transition: opacity .8s ease;
}
.jx-pcard__slide.is-active { opacity: 1; }
.jx-pcard__dots {
	position: absolute; top: 1.05rem; right: 1.1rem; z-index: 2;
	display: flex; align-items: center; gap: .38rem;
	padding: .32rem .55rem;
	background: rgba(26, 22, 18, .34);
	backdrop-filter: blur(3px);
	border-radius: 999px;
}
.jx-pcard__dot {
	width: 6px; height: 6px; padding: 0;
	border: 0; border-radius: 50%;
	background: rgba(255, 255, 255, .5);
	cursor: pointer;
	transition: background .3s ease, transform .3s ease;
}
.jx-pcard__dot.is-active { background: #fff; transform: scale(1.25); }
.jx-pcard__dot:focus-visible { outline: 2px solid var(--jx-gold); outline-offset: 2px; }
.jx-pcard__en {
	position: absolute; top: 1rem; left: 1.1rem; z-index: 2;
	font-family: "Playfair Display", serif; font-weight: 700;
	font-size: 1rem; letter-spacing: .2em;
	color: var(--jx-ink);
	background: linear-gradient(135deg, #F4BE80 0%, #E8A054 55%, #DE9439 100%);
	padding: .3rem .85rem;
	border-radius: 999px;
	box-shadow: 0 6px 16px rgba(232, 160, 84, .38), inset 0 1px 0 rgba(255, 255, 255, .35);
}
.jx-pcard__namewrap {
	position: absolute; left: 1.35rem; right: 1.35rem; bottom: 1.15rem; z-index: 2;
	color: #fff;
}
.jx-pcard__name {
	display: block;
	font-family: "Noto Serif SC", serif; font-weight: 900;
	font-size: 1.95rem; letter-spacing: .12em;
	text-shadow: 0 4px 16px rgba(26, 22, 18, .45);
}
.jx-pcard__sub {
	display: block; margin-top: .3rem;
	font-size: .84rem; letter-spacing: .16em;
	color: rgba(255, 255, 255, .88);
}
.jx-pcard__body {
	flex: 1;
	display: flex; flex-direction: column; gap: .55rem;
	padding: 1.35rem 1.5rem 1.5rem;
}
.jx-pcard__roles {
	margin: 0;
	padding: 0;
	list-style: none;
}
.jx-pcard__roles li {
	position: relative;
	padding-left: 1rem;
	color: var(--jx-gold-deep);
	font-size: .92rem; font-weight: 500; line-height: 1.55;
}
.jx-pcard__roles li + li { margin-top: .3rem; }
.jx-pcard__roles li::before {
	content: ''; position: absolute; left: 0; top: .62em;
	width: 5px; height: 5px; border-radius: 50%;
	background: var(--jx-gold);
}
.jx-pcard__edu {
	margin: 0;
	padding: 0;
	list-style: none;
}
.jx-pcard__edu li {
	position: relative;
	padding-left: 1rem;
	color: var(--jx-dim);
	font-size: .84rem; line-height: 1.55;
}
.jx-pcard__edu li + li { margin-top: .22rem; }
.jx-pcard__edu li::before {
	content: ''; position: absolute; left: 0; top: .57em;
	width: 5px; height: 5px; border-radius: 50%;
	background: var(--jx-dim); opacity: .5;
}
.jx-pcard__actions {
	margin-top: auto;
	display: flex; align-items: center; gap: .6rem; flex-wrap: wrap;
}
.jx-pcard__btn {
	align-self: flex-start;
	display: inline-flex; align-items: center; gap: .5rem;
	padding: .6rem 1.35rem;
	border-radius: 999px;
	border: 1px solid var(--jx-ink);
	background: transparent; color: var(--jx-ink);
	font-size: .9rem; font-weight: 500; letter-spacing: .06em;
	cursor: pointer;
	transition: background .25s ease, color .25s ease;
}
.jx-pcard__btn svg { width: 16px; height: 16px; transition: transform .25s ease; }
.jx-pcard__btn:hover { background: var(--jx-ink); color: var(--jx-cream); }
.jx-pcard__btn:hover svg { transform: translateX(3px); }
.jx-pcard__book {
	display: inline-flex; align-items: center;
	padding: .6rem 1.35rem;
	border-radius: 999px;
	border: 1px solid rgba(156, 96, 24, .55);
	background: var(--jx-grad-amber); color: #FFFFFF;
	font-size: .9rem; font-weight: 500; letter-spacing: .06em;
	text-decoration: none;
	text-shadow: 0 1px 2px rgba(26, 22, 18, .25);
	transition: transform .25s ease, box-shadow .25s ease;
}
.jx-pcard__book:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(200, 128, 47, .3);
	color: #FFFFFF;
}

/* ---------- 全站咨询预约弹窗 ---------- */
.jx-consult__panel { width: min(460px, 100%); max-height: min(88vh, 760px); overflow-y: auto; }
.jx-consult__body { padding: 2.2rem 2.4rem 2rem; }
.jx-consult__kicker {
	display: inline-block;
	font-family: "Playfair Display", serif; font-size: .72rem; font-weight: 700;
	letter-spacing: .28em; text-transform: uppercase;
	color: var(--jx-gold-deep);
	border: 1px solid rgba(232, 160, 84, .45);
	border-radius: 999px; padding: .2rem .9rem;
}
.jx-consult__title {
	font-family: "Noto Serif SC", serif; font-size: 1.3rem; font-weight: 700;
	color: var(--jx-ink); margin: .9rem 0 1.4rem; line-height: 1.5;
}
.jx-consult__field { margin-bottom: .95rem; }
.jx-consult__field label {
	display: block; font-size: .82rem; font-weight: 600;
	color: var(--jx-ink); margin-bottom: .35rem; letter-spacing: .04em;
}
.jx-consult__field label i { color: #C0392B; font-style: normal; }
.jx-consult__field input,
.jx-consult__field textarea {
	width: 100%; box-sizing: border-box;
	padding: .62rem .85rem;
	border: 1px solid var(--jx-line);
	border-radius: 10px;
	background: #FFFDF9;
	font-family: "Noto Sans SC", sans-serif; font-size: .92rem; color: var(--jx-ink);
	transition: border-color .2s ease, box-shadow .2s ease;
	resize: vertical;
}
.jx-consult__field input:focus,
.jx-consult__field textarea:focus {
	outline: none; border-color: var(--jx-gold);
	box-shadow: 0 0 0 3px rgba(232, 160, 84, .18);
}
.jx-consult__captcha { display: flex; align-items: flex-end; gap: .7rem; }
.jx-consult__captcha-input { flex: 1; }
.jx-consult__captcha canvas {
	width: 112px; height: 44px; flex: none;
	border: 1px solid var(--jx-line); border-radius: 10px;
	cursor: pointer; display: block;
}
.jx-consult__error {
	margin: .2rem 0 .8rem; padding: .55rem .8rem;
	border-radius: 10px;
	background: rgba(192, 57, 43, .08);
	border: 1px solid rgba(192, 57, 43, .25);
	color: #A93226; font-size: .84rem;
}
.jx-consult__submit {
	display: inline-flex; align-items: center; justify-content: center;
	width: 100%;
	padding: .78rem 1.4rem;
	border: none; border-radius: 999px;
	background: var(--jx-grad-amber); color: #FFFFFF;
	font-family: "Noto Sans SC", sans-serif; font-size: .95rem; font-weight: 700; letter-spacing: .1em;
	cursor: pointer;
	text-shadow: 0 1px 2px rgba(26, 22, 18, .25);
	transition: transform .25s ease, box-shadow .25s ease;
}
.jx-consult__submit:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(200, 128, 47, .32); }
.jx-consult__privacy {
	margin: .8rem 0 0; font-size: .74rem; line-height: 1.6;
	color: var(--jx-dim); text-align: center;
}
.jx-consult__done { text-align: center; padding: 1rem 0 .4rem; }
.jx-consult__done-mark {
	display: grid; place-items: center;
	width: 64px; height: 64px; margin: 0 auto 1rem;
	border-radius: 50%;
	background: var(--jx-grad-amber); color: #fff;
	font-size: 1.8rem; font-weight: 700;
	box-shadow: 0 10px 26px rgba(200, 128, 47, .32);
}
.jx-consult__done h4 {
	font-family: "Noto Serif SC", serif; font-size: 1.25rem;
	color: var(--jx-ink); margin: 0 0 .6rem;
}
.jx-consult__done p { font-size: .9rem; line-height: 1.8; color: var(--jx-muted); margin: 0 0 1.4rem; }

/* ---------- 详情弹窗 ---------- */
.jx-modal { position: fixed; inset: 0; z-index: 300; display: none; }
.jx-modal.is-open { display: grid; place-items: center; padding: 1.4rem; }
.jx-modal__backdrop {
	position: absolute; inset: 0;
	background: rgba(26, 22, 18, .55);
	backdrop-filter: blur(4px);
}
.jx-modal__panel {
	position: relative; z-index: 1;
	width: min(900px, 100%);
	max-height: min(86vh, 920px);
	overflow: auto;
	background: var(--jx-paper);
	border: 1px solid var(--jx-line);
	border-radius: 22px;
	box-shadow: 0 30px 80px rgba(26, 22, 18, .35);
	padding: 2.2rem 2.3rem 2.4rem;
	animation: jxModalIn .32s cubic-bezier(.22, .8, .3, 1);
}
@keyframes jxModalIn {
	from { opacity: 0; transform: translateY(20px) scale(.97); }
}
.jx-modal__close {
	position: absolute; top: 1rem; right: 1rem; z-index: 2;
	width: 40px; height: 40px; border-radius: 999px;
	display: grid; place-items: center;
	background: var(--jx-card); color: var(--jx-ink);
	border: 1px solid var(--jx-line); cursor: pointer;
	transition: background .25s ease, color .25s ease;
}
.jx-modal__close svg { width: 17px; height: 17px; }
.jx-modal__close:hover { background: var(--jx-ink); color: var(--jx-cream); border-color: var(--jx-ink); }
.jx-modal__head {
	display: grid;
	grid-template-columns: 230px 1fr;
	gap: 1.8rem;
	margin-bottom: 1.7rem;
}
.jx-modal__photo {
	aspect-ratio: 3 / 4;
	border-radius: 14px;
	background-size: cover;
	background-position: center top;
	box-shadow: 0 12px 30px rgba(26, 22, 18, .18);
}
.jx-modal__gallery { display: flex; gap: .6rem; margin-top: .65rem; }
.jx-modal__gitem {
	flex: 1;
	aspect-ratio: 4 / 3;
	border-radius: 9px;
	background-size: cover;
	background-position: center top;
	box-shadow: 0 6px 16px rgba(26, 22, 18, .14);
}
.jx-modal__meta { padding-top: .3rem; }
.jx-modal__en {
	font-family: "Playfair Display", serif; font-weight: 700;
	font-size: 1.9rem; line-height: 1;
	color: var(--jx-gold-deep);
	letter-spacing: .04em;
}
.jx-modal__meta h3 {
	font-family: "Noto Serif SC", serif; font-weight: 900;
	font-size: 1.85rem; color: var(--jx-ink);
	margin: .55rem 0 .3rem;
	letter-spacing: .1em;
}
.jx-modal__sub { display: block; color: var(--jx-dim); font-size: .88rem; letter-spacing: .12em; }
.jx-modal__roles {
	margin: 1rem 0 0;
	padding: 0;
	list-style: none;
}
.jx-modal__roles li {
	position: relative;
	padding-left: 1rem;
	color: var(--jx-gold-deep);
	font-size: .92rem; font-weight: 500; line-height: 1.6;
}
.jx-modal__roles li + li { margin-top: .3rem; }
.jx-modal__roles li::before {
	content: ''; position: absolute; left: 0; top: .62em;
	width: 5px; height: 5px; border-radius: 50%;
	background: var(--jx-gold);
}
.jx-modal__body { color: var(--jx-muted); font-size: .95rem; line-height: 1.95; }
.jx-modal__body p { margin: 0 0 .9rem; }
.jx-modal__body p:last-child { margin-bottom: 0; }
.jx-modal__quote {
	margin: 1.5rem 0 0;
	font-family: "Noto Serif SC", serif;
	font-size: 1.05rem; color: var(--jx-gold-deep);
	letter-spacing: .05em; line-height: 1.8;
}
.jx-modal__quote::before {
	content: ""; display: block;
	width: 36px; height: 2px;
	background: var(--jx-line);
	margin-bottom: .8rem;
}
html.jx-modal-open, html.jx-modal-open body { overflow: hidden; }

@media (max-width: 900px) {
	.jx-people { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
	.jx-modal__head { grid-template-columns: 1fr; }
	.jx-modal__photo { max-width: 240px; }
	.jx-modal__panel { padding: 1.7rem 1.4rem 1.9rem; }
	.jx-pcard__name { font-size: 1.7rem; }
}

/* ---------- 名师团队 · 一排三个轮播 ---------- */
.jx-masters { margin-top: 3.4rem; }
.jx-masters__bar {
	display: flex; align-items: flex-end; justify-content: space-between;
	gap: 1.2rem; margin-bottom: 1.1rem;
}
.jx-masters__title .jx-h2 { margin: .3rem 0 0; }
.jx-masters__nav { display: flex; gap: .55rem; flex: none; }
.jx-masters__arrow {
	width: 44px; height: 44px; border-radius: 999px;
	display: grid; place-items: center;
	background: var(--jx-card); color: var(--jx-ink);
	border: 1px solid var(--jx-line); cursor: pointer;
	box-shadow: 0 6px 16px rgba(90, 58, 24, 0.07);
	transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease;
}
.jx-masters__arrow svg { width: 18px; height: 18px; }
.jx-masters__arrow:hover {
	background: var(--jx-ink); color: var(--jx-cream);
	border-color: var(--jx-ink); transform: translateY(-1px);
}
.jx-masters__arrow:disabled {
	opacity: .3; cursor: default; transform: none;
	background: var(--jx-card); color: var(--jx-ink); border-color: var(--jx-line);
}

.jx-masters__track {
	display: flex; gap: 1.2rem;
	margin: 0; padding: 12px 0 26px; list-style: none;
	overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
	scrollbar-width: none; -ms-overflow-style: none;
}
.jx-masters__track::-webkit-scrollbar { display: none; }

/* 一排三个：卡片宽 = (容器 - 2×间距) / 3 */
.jx-mcard {
	flex: 0 0 calc((100% - 2.4rem) / 3);
	scroll-snap-align: start;
	background: var(--jx-card);
	border: 1px solid var(--jx-line);
	border-radius: 16px;
	overflow: hidden;
	box-shadow: 0 10px 26px rgba(90, 58, 24, .07);
	transition: transform .25s ease, box-shadow .25s ease;
}
.jx-mcard:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 40px rgba(90, 58, 24, .13);
}
.jx-mcard__photo {
	aspect-ratio: 4 / 3;
	background-size: cover;
	background-position: center top;
}
.jx-mcard__body { padding: .95rem 1rem 1.15rem; }
.jx-mcard__body h3 {
	font-family: "Noto Serif SC", serif;
	font-weight: 700; font-size: 1.08rem;
	color: var(--jx-ink);
	margin: 0 0 .3rem;
}
.jx-mcard__role {
	margin: 0 0 .55rem;
	color: var(--jx-gold-deep);
	font-weight: 500; font-size: .82rem;
	line-height: 1.5;
}
.jx-mcard__edu {
	list-style: none;
	margin: 0; padding: 0;
	display: grid; gap: .22rem;
}
.jx-mcard__edu li {
	position: relative;
	padding-left: .8rem;
	color: var(--jx-dim);
	font-size: .78rem;
	line-height: 1.55;
}
.jx-mcard__edu li::before {
	content: "";
	position: absolute; left: 0; top: .55em;
	width: .3rem; height: .3rem;
	border-radius: 999px;
	background: var(--jx-line);
}

.jx-masters__dots { display: flex; justify-content: center; gap: .5rem; margin-top: .6rem; }
.jx-masters__dots button {
	width: 8px; height: 8px; border-radius: 999px; border: none; cursor: pointer;
	background: var(--jx-line); transition: width .25s ease, background .25s ease;
	padding: 0;
}
.jx-masters__dots button.is-on { width: 26px; background: var(--jx-gold-deep); }

@media (max-width: 1100px) {
	.jx-mcard { flex-basis: calc((100% - 1.2rem) / 2); }
}
@media (max-width: 640px) {
	.jx-mcard { flex-basis: calc(100% - 0rem); }
}

/* ==========================================================================
 * 首页 · 优秀学员真实录取捷报（文字轮播卡）
 * ========================================================================== */
.jx-newsroll {
	position: relative;
	background: var(--jx-paper);
	border: 1px solid var(--jx-line);
	border-radius: 18px;
	padding: 0 1.7rem 1.15rem;
	box-shadow: 0 22px 48px rgba(156, 96, 24, .12);
	overflow: hidden;
}
.jx-newsroll::before {
	content: none;
}
.jx-newsroll__head {
	display: flex;
	align-items: center;
	gap: .7rem;
	margin: 0 -1.7rem 1.1rem;
	padding: 1.2rem 1.7rem 1rem;
	background: linear-gradient(120deg, #E8A054, #E5933D 62%, #D98A35);
	border-radius: 0;
	box-shadow: none;
	position: relative;
	overflow: hidden;
}
.jx-newsroll__head::after {
	content: "";
	margin-left: auto;
	width: 21px;
	height: 13px;
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, .8) 0 3px, transparent 3px 7px);
	flex: none;
}
.jx-newsroll__badge {
	display: inline-block;
	background: rgba(255, 255, 255, .94);
	color: var(--jx-gold-deep);
	font-size: .8rem;
	font-weight: 700;
	letter-spacing: .18em;
	padding: .3em .75em .28em .95em;
	border-radius: 999px;
	box-shadow: 0 1px 3px rgba(156, 96, 24, .25);
}
.jx-newsroll__kicker {
	font-size: 1rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: #fff;
	text-shadow: 0 1px 2px rgba(26, 22, 18, .22);
}
.jx-newsroll__viewport { position: relative; height: calc(7 * 56px); overflow: hidden; }
.jx-newsroll__list {
	list-style: none;
	margin: 0;
	padding: 0;
	will-change: transform;
}
.jx-newsroll__list.is-reset { transition: none; }
.jx-newsroll__item {
	height: 56px;
	display: flex;
	align-items: center;
	padding: 0 1.1rem;
	border-radius: 12px;
	color: var(--jx-ink);
	opacity: .26;
	transition: opacity .35s ease, background .35s ease, box-shadow .35s ease;
}
.jx-newsroll__item.is-cur {
	opacity: 1;
	background: linear-gradient(90deg, #FBF2E6, #F7E7D3 72%, rgba(247, 231, 211, .25));
	box-shadow: inset 3px 0 0 var(--jx-gold);
}
.jx-newsroll__item p {
	margin: 0;
	font-size: .98rem;
	line-height: 1.7;
	color: var(--jx-ink);
	font-family: var(--jx-serif, inherit);
}
.jx-newsroll__item strong { color: var(--jx-gold-deep); font-weight: 700; }
.jx-newsroll__foot { display: none; }
.jx-newsroll__count { font-size: .78rem; letter-spacing: .1em; color: var(--jx-dim); }
.jx-newsroll__pulse {
	width: 8px; height: 8px;
	border-radius: 50%;
	background: var(--jx-gold);
	box-shadow: 0 0 0 0 rgba(232, 160, 84, .5);
	animation: jxNewsPulse 2.4s ease-out infinite;
}
@keyframes jxNewsPulse {
	0%   { box-shadow: 0 0 0 0 rgba(232, 160, 84, .45); }
	70%  { box-shadow: 0 0 0 9px rgba(232, 160, 84, 0); }
	100% { box-shadow: 0 0 0 0 rgba(232, 160, 84, 0); }
}

@media (max-width: 900px) {
	.jx-vision { grid-template-columns: 1fr; gap: 2.4rem; }
	.jx-newsroll__viewport { height: calc(7 * 48px); }
	.jx-newsroll__item { height: 48px; }
}

/* ==========================================================================
 * 文章详情 · 知识型长文完整版（面包屑 + slim 页头 + 上/下篇 + 相关阅读）
 * ========================================================================== */
.jx-breadcrumb {
	display: flex; align-items: center; gap: .55rem;
	padding-top: 1.4rem; padding-bottom: 0;
	font-size: .85rem; color: var(--jx-dim);
	position: relative; z-index: 1;
}
.jx-breadcrumb a { color: var(--jx-muted); text-decoration: none; }
.jx-breadcrumb a:hover { color: var(--jx-gold-deep); }
.jx-breadcrumb span { opacity: .5; }
.jx-breadcrumb em { font-style: normal; color: var(--jx-gold-deep); }

.jx-phero {
	position: relative;
	background: linear-gradient(180deg, var(--jx-paper-2), var(--jx-paper));
	border-bottom: 1px solid var(--jx-line);
	overflow: hidden;
}
.jx-phero::before {
	content: "";
	position: absolute; inset: 0;
	background: url('../images/banners/news-banner.jpg') center 40% / cover no-repeat;
	opacity: .22;
}
.jx-phero::after {
	content: "";
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(251, 242, 230, .45), var(--jx-paper) 94%);
}
.jx-phero__inner { position: relative; z-index: 1; }
.jx-phero__inner { padding: 2.6rem 1.5rem 2.2rem; }
.jx-phero h1 {
	font-family: "Noto Serif SC", serif; font-weight: 900;
	font-size: clamp(1.9rem, 4vw, 2.7rem);
	line-height: 1.28; color: var(--jx-ink);
	margin: .7rem 0 0;
}
.jx-phero__lede {
	margin: 1.1rem 0 0; max-width: 52ch;
	font-size: 1.05rem; line-height: 2;
	color: var(--jx-muted);
}
.jx-phero .jx-post__topmeta { margin-top: 1.3rem; }

.jx-artnav {
	display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem;
	margin: 3rem 0 0;
}
.jx-artnav__item {
	display: flex; align-items: center; gap: .95rem;
	background: #fff;
	border: 1px solid var(--jx-line);
	border-radius: 14px;
	padding: 1rem 1.2rem;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.jx-artnav__item:hover {
	transform: translateY(-2px);
	border-color: var(--jx-gold);
	box-shadow: 0 14px 30px rgba(156, 96, 24, .12);
}
.jx-artnav__item--next { flex-direction: row-reverse; text-align: right; }
.jx-artnav__thumb {
	width: 58px; height: 58px; flex: none;
	border-radius: 10px;
	background: var(--jx-paper-3) center/cover no-repeat;
}
.jx-artnav__body { min-width: 0; display: flex; flex-direction: column; gap: .25rem; }
.jx-artnav__kind { font-size: .78rem; font-weight: 600; letter-spacing: .1em; color: var(--jx-gold-deep); }
.jx-artnav__title {
	font-size: .98rem; font-weight: 700; color: var(--jx-ink); line-height: 1.5;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}

.jx-related { margin-top: 3rem; }
.jx-related__title {
	font-family: "Noto Serif SC", serif; font-size: 1.3rem; font-weight: 900;
	color: var(--jx-ink); margin: 0 0 1.3rem;
}
.jx-related__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.jx-relcard {
	display: flex; flex-direction: column;
	background: #fff;
	border: 1px solid var(--jx-line);
	border-radius: 14px; overflow: hidden;
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.jx-relcard:hover {
	transform: translateY(-3px);
	border-color: var(--jx-gold);
	box-shadow: 0 16px 34px rgba(156, 96, 24, .13);
}
.jx-relcard__media {
	height: 150px;
	background: var(--jx-paper-3) center/cover no-repeat;
}
.jx-relcard__body { padding: 1.05rem 1.2rem 1.2rem; display: flex; flex-direction: column; gap: .45rem; }
.jx-relcard__cat { font-size: .78rem; font-weight: 600; letter-spacing: .1em; color: var(--jx-gold-deep); }
.jx-relcard__title {
	margin: 0; font-family: "Noto Serif SC", serif;
	font-size: 1.02rem; font-weight: 700; line-height: 1.6; color: var(--jx-ink);
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.jx-relcard__date { font-size: .82rem; color: var(--jx-dim); }

.jx-artnav__item--empty { visibility: hidden; }
@media (max-width: 900px) {
	.jx-related__grid { grid-template-columns: 1fr; }
	.jx-artnav { grid-template-columns: 1fr; }
	.jx-artnav__item--empty { display: none; }
}

/* ==========================================================================
 * 留学资讯 · 分类筛选 tab
 * ========================================================================== */
.jx-news-tabs {
	display: flex; flex-wrap: wrap; gap: .6rem;
	margin: 0 0 2.2rem;
}
.jx-news-tab {
	appearance: none;
	background: #fff;
	border: 1px solid var(--jx-line);
	border-radius: 999px;
	padding: .52em 1.35em;
	font-family: inherit;
	font-size: .95rem;
	font-weight: 600;
	color: var(--jx-muted);
	cursor: pointer;
	transition: all .25s ease;
}
.jx-news-tab:hover { color: var(--jx-gold-deep); border-color: var(--jx-gold); }
.jx-news-tab.is-active {
	background: linear-gradient(135deg, #E8A054, #E5933D);
	border-color: transparent;
	color: #fff;
	text-shadow: 0 1px 2px rgba(26, 22, 18, .25);
	box-shadow: 0 6px 16px rgba(232, 160, 84, .3);
}

/* ==========================================================================
 * 文章详情 · 文末 CTA 卡（参考 gp-articlecta：容器内墨底横条，左文案右按钮）
 * ========================================================================== */
.jx-articlecta {
	display: flex; align-items: center; justify-content: space-between; gap: 2rem;
	margin-top: 3rem;
	padding: 1.7rem 2rem;
	background: linear-gradient(115deg, #241E18, #1A1612 65%);
	border-radius: 16px;
	position: relative;
	overflow: hidden;
}
.jx-articlecta::after {
	content: "";
	position: absolute; right: -40px; top: -50%;
	width: 220px; height: 200%;
	background: radial-gradient(closest-side, rgba(232, 160, 84, .16), transparent);
	pointer-events: none;
}
.jx-articlecta__body { position: relative; }
.jx-articlecta__body strong {
	display: block;
	font-family: "Noto Serif SC", serif;
	font-size: 1.18rem; font-weight: 900;
	color: #F5EFE6; letter-spacing: .02em;
}
.jx-articlecta__body p { margin: .45rem 0 0; font-size: .95rem; line-height: 1.8; color: rgba(245, 239, 230, .68); }
.jx-articlecta__btn {
	flex: none;
	display: inline-flex; align-items: center;
	background: linear-gradient(135deg, #E8A054, #E5933D);
	color: #fff; font-weight: 700; font-size: .98rem;
	text-decoration: none; text-shadow: 0 1px 2px rgba(26, 22, 18, .25);
	padding: .82em 1.7em;
	border-radius: 10px;
	box-shadow: 0 10px 24px rgba(232, 160, 84, .35);
	transition: transform .25s ease, box-shadow .25s ease;
	position: relative;
}
.jx-articlecta__btn:hover { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(232, 160, 84, .45); color: #fff; }

@media (max-width: 720px) {
	.jx-articlecta { flex-direction: column; align-items: flex-start; gap: 1.2rem; }
}

/* ============================================================
   首页 · 我们优势（图文卡）1.0.61
   ============================================================ */
.jx-sgrid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; }

.jx-scard {
	background: var(--jx-card);
	border: 1px solid var(--jx-line);
	border-radius: 14px;
	overflow: hidden;
	box-shadow: 0 8px 26px rgba(90, 58, 24, .07);
	transition: transform .35s ease, box-shadow .35s ease;
}
.jx-scard:hover { transform: translateY(-5px); box-shadow: var(--jx-shadow); }

.jx-scard__media { aspect-ratio: 3 / 2; overflow: hidden; background: var(--jx-paper-2); }
.jx-scard__media img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .6s ease;
}
.jx-scard:hover .jx-scard__media img { transform: scale(1.05); }

.jx-scard__body { padding: 1.3rem 1.3rem 1.5rem; }
.jx-scard__body h3 {
	font-family: "Noto Serif SC", serif; color: var(--jx-ink);
	margin: 0 0 .55rem; font-size: 1.15rem; letter-spacing: .02em;
}
.jx-scard__body p { margin: 0; color: var(--jx-muted); font-size: .92rem; line-height: 1.78; }

@media (max-width: 1024px) { .jx-sgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .jx-sgrid { grid-template-columns: 1fr; } }

/* ============================================================
   音乐留学 · banner 下方栏目分类导航（居中）1.0.62
   ============================================================ */
.jx-subnav {
	background: var(--jx-paper);
	border-bottom: 1px solid var(--jx-line);
}
.jx-subnav__inner {
	max-width: var(--jx-maxw);
	margin: 0 auto;
	padding: 1rem 1.5rem;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: .8rem;
}
.jx-subnav__inner a {
	display: inline-block;
	padding: .52rem 1.5rem;
	border-radius: 999px;
	border: 1px solid var(--jx-line);
	background: #FFFFFF;
	color: var(--jx-text);
	font-size: .95rem;
	letter-spacing: .05em;
	text-decoration: none;
	transition: border-color .25s, color .25s, transform .25s, box-shadow .25s;
}
.jx-subnav__inner a:hover {
	border-color: var(--jx-gold);
	color: var(--jx-gold-deep);
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(232, 160, 84, .18);
}
.jx-subnav__inner a[aria-current="page"] {
	background: var(--jx-ink);
	border-color: var(--jx-ink);
	color: var(--jx-cream);
}
@media (max-width: 640px) {
	.jx-subnav__inner { padding: .8rem 1rem; gap: .55rem; }
	.jx-subnav__inner a { padding: .42rem 1.05rem; font-size: .88rem; }
}

/* ============================================================
   首页 · 录取院校轮播（复用 jx-masters 骨架）1.0.63
   ============================================================ */
.jx-mcard--school {
	display: flex;
	flex-direction: column;
}
.jx-mcard--school .jx-schoolcard__logo {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 108px;
	background: var(--jx-card);
	padding: .8rem 1.6rem;
	overflow: hidden;
}
.jx-mcard--school .jx-schoolcard__logo img {
	max-width: 72%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	transition: transform .45s ease;
}
.jx-mcard--school:hover .jx-schoolcard__logo img { transform: scale(1.05); }
.jx-mcard--school .jx-mcard__body { flex: 1; text-align: left; padding: .2rem 1.35rem 1.35rem; }
.jx-mcard--school .jx-mcard__body h3 { font-size: 1.05rem; line-height: 1.45; min-height: 2.9em; }
@media (max-width: 640px) {
	.jx-masters__bar { flex-direction: column; align-items: stretch; gap: .9rem; }
	.jx-masters__nav { justify-content: space-between; }
}

/* 录取院校轮播：桌面一排 4 卡（专家团队保持 3 卡）1.0.65 */
@media (min-width: 1101px) {
	.jx-schools .jx-mcard { flex-basis: calc((100% - 3.6rem) / 4); }
}
