/* 江西新文道考研 · 主题样式 v0.3（原生 CSS，移动端优先）
 * 设计语言：大留白、大字号、渐变与毛玻璃、圆角大卡片、克制的动效；蓝为主、品牌红只用于咨询类强调。
 */
:root {
	--c-primary: #2f6bff;
	--c-primary-2: #5b8cff;
	--c-primary-dark: #1f4fd1;
	--c-primary-soft: #eef3ff;
	--c-accent: #e00010;
	--c-accent-dark: #b8000d;
	--c-ink: #0b1220;
	--c-ink-2: #121a2e;
	--c-text: #101828;
	--c-muted: #5b6578;
	--c-line: rgb(16 24 40 / 9%);
	--c-bg: #fff;
	--c-bg-alt: #f5f7fb;
	--radius: 16px;
	--radius-lg: 24px;
	--radius-sm: 10px;
	--shadow-sm: 0 1px 2px rgb(16 24 40 / 4%), 0 8px 24px rgb(16 24 40 / 6%);
	--shadow: 0 2px 4px rgb(16 24 40 / 4%), 0 16px 40px rgb(16 24 40 / 8%);
	--shadow-lg: 0 30px 70px rgb(31 79 209 / 20%);
	--container: 1280px;
	--header-h: 72px;
	--ease: cubic-bezier(.22, .61, .36, 1);
	--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; font-family: var(--font); font-size: 16px; line-height: 1.75; color: var(--c-text); background: var(--c-bg); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-primary); text-decoration: none; }
a:hover { color: var(--c-primary-dark); }
a:focus-visible, button:focus-visible, input:focus-visible { outline: 2px solid var(--c-primary); outline-offset: 3px; }
h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 .5em; letter-spacing: -.01em; text-wrap: balance; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
.icon { flex: none; vertical-align: -0.2em; }

.container { width: min(100% - 40px, var(--container)); margin-inline: auto; }
.section { padding-block: 72px; }
.section--alt { background: var(--c-bg-alt); }
@media (min-width: 900px) { .section { padding-block: 104px; } }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 8px; left: 8px; z-index: 200; width: auto; height: auto; clip: auto; padding: 8px 14px; background: #fff; border-radius: var(--radius-sm); }
.grad { background: linear-gradient(100deg, #1f4fd1 0%, #2f6bff 45%, #7aa2ff 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* ---------- 滚动显现（仅在 JS 可用时隐藏，避免无 JS 看不到内容） ---------- */
.js [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: var(--d, 0s); }
.js [data-reveal].is-visible { opacity: 1; transform: none; }

/* ---------- 按钮 ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 26px; background: linear-gradient(135deg, var(--c-primary), var(--c-primary-2)); color: #fff; border: 1px solid transparent; border-radius: 999px; font-size: 15px; font-weight: 600; line-height: 1.2; cursor: pointer; box-shadow: 0 8px 20px rgb(47 107 255 / 28%); transition: transform .25s var(--ease), box-shadow .25s var(--ease), background .25s; }
.btn:hover { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 30px rgb(47 107 255 / 36%); }
.btn--accent { background: linear-gradient(135deg, #2f6bff, #5b8cff); box-shadow: 0 8px 20px rgb(47 107 255 / 28%); }
.btn--accent:hover { box-shadow: 0 14px 30px rgb(47 107 255 / 38%); }
.btn--ghost { background: rgb(255 255 255 / 70%); color: var(--c-text); border-color: var(--c-line); box-shadow: none; backdrop-filter: blur(8px); }
.btn--ghost:hover { background: #fff; color: var(--c-primary); box-shadow: var(--shadow-sm); }
.btn--lg { padding: 15px 32px; font-size: 16px; }
.btn--block { display: flex; width: 100%; }

/* ---------- 页头 ---------- */
.site-header { position: sticky; top: 0; z-index: 100; background: rgb(255 255 255 / 78%); backdrop-filter: saturate(180%) blur(20px); border-bottom: 1px solid var(--c-line); transition: background .3s, box-shadow .3s; }
.site-header.is-scrolled { background: rgb(255 255 255 / 92%); box-shadow: 0 6px 24px rgb(16 24 40 / 8%); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--header-h); }
.site-branding { flex: none; }
/* Logo = 凤凰图标（img）+ 文字（品牌名 + 标语）。--logo-h 为整体高度，其余尺寸按设计稿 452 单位等比换算 */
:root { --logo-h: 48px; }
@media (max-width: 480px) { :root { --logo-h: 44px; } }
.custom-logo-link { display: block; line-height: 0; }
.custom-logo { width: auto; max-width: none; height: var(--logo-h); }
.site-logo { --logo-ink: #131d38; --logo-font: "Noto Sans SC", "Source Han Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; display: flex; align-items: flex-start; gap: calc(var(--logo-h) * .0781); width: fit-content; height: var(--logo-h); color: var(--logo-ink); line-height: 1; text-decoration: none; }
.site-logo:hover { color: var(--logo-ink); }
.site-logo__mark { display: block; flex: none; width: auto; max-width: none; height: var(--logo-h); }
.site-logo__text { display: flex; flex-direction: column; padding-top: calc(var(--logo-h) * .1045); font-family: var(--logo-font); font-weight: 900; white-space: nowrap; }
.site-logo__name { font-size: calc(var(--logo-h) * .4513); line-height: 1.196; }
.site-logo__slogan { display: flex; align-items: center; justify-content: center; gap: calc(var(--logo-h) * .1173); margin-top: calc(var(--logo-h) * .0188); font-size: calc(var(--logo-h) * .1504); line-height: 1.236; letter-spacing: calc(var(--logo-h) * .115); }
.site-logo__slogan::before, .site-logo__slogan::after { content: ""; flex: none; width: calc(var(--logo-h) * .4137); height: calc(var(--logo-h) * .0155); background: currentColor; position: relative; top: calc(var(--logo-h) * .01); }
.site-logo__slogan::after { margin-left: calc(var(--logo-h) * -.1062); }

.nav-toggle { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; background: none; border: 0; cursor: pointer; }
.nav-toggle__bar, .nav-toggle__bar::before, .nav-toggle__bar::after { display: block; width: 22px; height: 2px; background: var(--c-text); border-radius: 2px; transition: transform .25s, opacity .25s; }
.nav-toggle__bar { position: relative; }
.nav-toggle__bar::before, .nav-toggle__bar::after { content: ""; position: absolute; left: 0; }
.nav-toggle__bar::before { top: -7px; }
.nav-toggle__bar::after { top: 7px; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar { background: transparent; }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::before { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] .nav-toggle__bar::after { transform: translateY(-7px) rotate(-45deg); }

.site-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; max-height: calc(100vh - var(--header-h)); overflow-y: auto; background: #fff; border-bottom: 1px solid var(--c-line); padding: 8px 20px 24px; box-shadow: 0 24px 40px rgb(16 24 40 / 10%); }
.site-nav.is-open { display: block; }
.site-nav ul { list-style: none; }
.site-nav li a { display: block; padding: 14px 4px; color: var(--c-text); font-weight: 500; border-bottom: 1px solid var(--c-line); }
.site-nav li a:hover, .site-nav .current-menu-item > a, .site-nav .current-menu-ancestor > a { color: var(--c-primary); }
.site-nav .sub-menu { padding-left: 16px; }
.site-nav .sub-menu a { padding-block: 11px; font-size: 15px; font-weight: 400; color: var(--c-muted); }
.site-nav__cta { margin-top: 18px; width: 100%; }
.site-nav__cta strong { font-size: 17px; letter-spacing: .02em; }
.site-nav__cta small { font-size: 14px; font-weight: 500; opacity: .9; }

@media (min-width: 1280px) {
	.nav-toggle { display: none; }
	.site-nav { display: flex; flex: 1; justify-content: flex-end; align-items: center; gap: 24px; min-width: 0; position: static; max-height: none; padding: 0; background: none; border: 0; box-shadow: none; overflow: visible; }
	.site-nav > ul { display: flex; gap: 2px; }
	.site-nav li { position: relative; }
	.site-nav li a { position: relative; padding: 10px 14px; border: 0; border-radius: 999px; font-size: 15px; white-space: nowrap; transition: background .2s, color .2s; }
	.site-nav > ul > li > a:hover { background: var(--c-primary-soft); }
	.site-nav .current-menu-item > a, .site-nav .current-menu-ancestor > a { background: var(--c-primary-soft); }
	.site-nav .menu-item-has-children > a::after { content: ""; display: inline-block; width: 6px; height: 6px; margin: -3px 0 0 8px; border: solid currentcolor; border-width: 0 1.6px 1.6px 0; transform: rotate(45deg); opacity: .55; }
	.site-nav .sub-menu { position: absolute; top: calc(100% + 8px); left: 0; min-width: 190px; padding: 8px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); box-shadow: var(--shadow); opacity: 0; visibility: hidden; transform: translateY(8px); transition: opacity .2s, transform .2s, visibility .2s; }
	.site-nav > ul > li:nth-last-child(-n+2) > .sub-menu { left: auto; right: 0; }
	.site-nav li:hover > .sub-menu, .site-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
	.site-nav .sub-menu a { padding: 10px 14px; border-radius: var(--radius-sm); color: var(--c-text); font-size: 14.5px; }
	.site-nav .sub-menu a:hover { background: var(--c-primary-soft); color: var(--c-primary); }
	.site-nav__cta { display: none; }
}

/* ---------- 页面标题区 / 面包屑 ---------- */
.page-hero { position: relative; overflow: hidden; padding: 40px 0 44px; background: radial-gradient(700px 260px at 90% -20%, #dbe5ff, transparent 70%), linear-gradient(180deg, #f4f7ff, #fff); border-bottom: 1px solid var(--c-line); }
.page-hero__title { margin: 10px 0 0; font-size: clamp(30px, 4.6vw, 46px); font-weight: 800; }
.page-hero__desc { max-width: 720px; margin: 14px 0 0; font-size: 17px; color: var(--c-muted); }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 4px 8px; list-style: none; font-size: 13px; color: var(--c-muted); }
.breadcrumbs li + li::before { content: "›"; margin-right: 8px; color: #b0b7c6; }
.breadcrumbs a { color: var(--c-muted); }
.breadcrumbs a:hover { color: var(--c-primary); }
.breadcrumbs [aria-current] { color: var(--c-text); }
.crumb-bar { padding: 14px 0; background: var(--c-bg-alt); border-bottom: 1px solid var(--c-line); }
.crumb-bar .breadcrumbs ol { margin: 0; }

/* ---------- 通用布局 ---------- */
.page-body { padding-block: 48px 80px; }
.page-body--article { padding-top: 40px; }
.layout { display: grid; gap: 48px; }
@media (min-width: 1000px) { .layout--side { grid-template-columns: minmax(0, 1fr) 330px; align-items: start; } .layout__side { position: sticky; top: calc(var(--header-h) + 20px); } }

.grid { display: grid; gap: 22px; list-style: none; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 560px) { .grid--2, .grid--3, .grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 900px) { .grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .grid { gap: 26px; } }

.section__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 10px 24px; margin-bottom: 40px; }
.section__head--center { flex-direction: column; align-items: center; text-align: center; margin-bottom: 48px; }
.eyebrow { margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-primary); }
.section__title { margin: 0; font-size: clamp(28px, 4vw, 42px); font-weight: 800; }
.section__sub { flex-basis: 100%; max-width: 640px; margin: 10px 0 0; font-size: 17px; color: var(--c-muted); }
.section__head--center .section__sub { margin-inline: auto; }
.section__more { display: inline-flex; align-items: center; gap: 4px; font-size: 15px; font-weight: 600; }
.section__more .icon { transition: transform .25s var(--ease); }
.section__more:hover .icon { transform: translateX(4px); }

/* ---------- 分类筛选 ---------- */
.term-nav ul { display: flex; flex-wrap: wrap; gap: 10px; list-style: none; margin: 0 0 32px; }
.term-nav a { display: block; padding: 8px 20px; background: #fff; border: 1px solid var(--c-line); border-radius: 999px; color: var(--c-text); font-size: 14.5px; transition: all .2s; }
.term-nav a:hover { border-color: var(--c-primary); color: var(--c-primary); }
.term-nav a[aria-current="page"] { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }

/* ---------- 卡片 ---------- */
.card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-sm); transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow); }
.card__thumb { display: block; overflow: hidden; background: var(--c-bg-alt); }
.card__thumb img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s var(--ease); }
.card:hover .card__thumb img { transform: scale(1.05); }
.card__thumb--portrait img { aspect-ratio: 3 / 4; object-position: top; }
.card__body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 24px; }
.card__tag { align-self: flex-start; margin-bottom: 10px; padding: 3px 12px; background: var(--c-primary-soft); color: var(--c-primary); border-radius: 999px; font-size: 12px; font-weight: 700; }
.card__title { margin: 0 0 6px; font-size: 19px; font-weight: 700; }
.card__title a { color: var(--c-text); }
.card__title a:hover { color: var(--c-primary); }
.card__meta { margin: 0 0 8px; font-size: 13px; color: var(--c-muted); }
.card__excerpt { margin: 0; font-size: 14.5px; color: var(--c-muted); }
.card__excerpt p { margin: 0; }
.card__cta { margin-top: auto; padding-top: 16px; display: inline-flex; align-items: center; gap: 6px; font-size: 14.5px; font-weight: 600; }
.card__cta .icon { transition: transform .25s var(--ease); }
.card:hover .card__cta .icon { transform: translateX(4px); }

.card--course .card__facts { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 4px; padding: 0; list-style: none; font-size: 13px; color: var(--c-muted); }
.card--course .card__facts li { display: inline-flex; align-items: center; gap: 4px; }
.card--teacher .card__title { font-size: 18px; }
.card--teacher .card__body { padding-top: 16px; }

.card--student { position: relative; }
.card--student .card__score { display: flex; align-items: baseline; gap: 8px; margin: 0 0 10px; font-size: 52px; font-weight: 800; line-height: 1; letter-spacing: -.03em; background: linear-gradient(120deg, #1f4fd1, #5b8cff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.card--student .card__score small { font-size: 13px; font-weight: 500; letter-spacing: 0; -webkit-text-fill-color: var(--c-muted); }
.card--student .card__school { margin: 0; font-weight: 700; }
.card--student .card__meta { margin: 2px 0 0; }

.card--campus .card__row { display: flex; gap: 8px; margin: 0 0 4px; font-size: 14px; color: var(--c-muted); }
.card--campus .card__row .icon { margin-top: 4px; color: var(--c-primary); }
.card--campus .card__tag { background: var(--c-primary-soft); color: var(--c-primary); }

/* ---------- 文章列表行 ---------- */
.article-list { display: grid; list-style: none; border-top: 1px solid var(--c-line); }
.article-row { display: grid; gap: 16px; padding: 26px 0; border-bottom: 1px solid var(--c-line); transition: padding .3s var(--ease); }
.article-row--thumb { grid-template-columns: 1fr; }
@media (min-width: 640px) { .article-row--thumb { grid-template-columns: 240px minmax(0, 1fr); } }
.article-row__thumb { display: block; overflow: hidden; border-radius: var(--radius); }
.article-row__thumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .6s var(--ease); }
.article-row:hover .article-row__thumb img { transform: scale(1.05); }
.article-row__title { margin: 0 0 8px; font-size: 20px; font-weight: 700; }
.article-row__title a { color: var(--c-text); }
.article-row__title a:hover { color: var(--c-primary); }
.article-row__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin: 0 0 8px; font-size: 13px; color: var(--c-muted); }
.article-row__meta a { padding: 1px 10px; background: var(--c-primary-soft); border-radius: 999px; font-weight: 600; }
.article-row__excerpt { margin: 0; color: var(--c-muted); font-size: 15px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- 侧栏 ---------- */
.widget { margin-bottom: 24px; padding: 26px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); }
.widget__title { margin: 0 0 14px; font-size: 17px; font-weight: 700; }
.widget ul { list-style: none; }
.widget li { padding: 10px 0; border-bottom: 1px solid var(--c-line); font-size: 15px; }
.widget li:last-child { border-bottom: 0; }
.widget li a { color: var(--c-text); }
.widget li a:hover { color: var(--c-primary); }
.widget__sub a { color: var(--c-muted); font-size: 14px; }
.widget--consult { position: relative; overflow: hidden; background: linear-gradient(145deg, #1f4fd1, #2f6bff 60%, #6a93ff); border: 0; color: #fff; box-shadow: var(--shadow-lg); }
.widget--consult::after { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: rgb(255 255 255 / 12%); }
.widget--consult .widget__title { color: #fff; }
.widget--consult p { color: rgb(255 255 255 / 85%); font-size: 14px; }
.widget--consult .widget__tel { position: relative; z-index: 1; display: block; margin: 4px 0 14px; font-size: 30px; font-weight: 800; color: #fff; letter-spacing: .02em; }
.widget--consult .btn { background: #fff; color: var(--c-primary); box-shadow: none; }

/* ---------- 单页 / 正文 ---------- */
.entry { min-width: 0; }
.entry__header { margin-bottom: 28px; }
.entry__title { margin: 0 0 14px; font-size: clamp(28px, 4vw, 40px); font-weight: 800; }
.entry__meta { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; font-size: 14px; color: var(--c-muted); }
.entry__meta a { color: var(--c-primary); font-weight: 600; }
.entry__thumb { margin: 0 0 28px; border-radius: var(--radius-lg); overflow: hidden; }
.entry__content { font-size: 17px; line-height: 1.95; overflow-wrap: anywhere; }
.entry__content h2 { margin: 2em 0 .7em; padding-left: 14px; border-left: 4px solid var(--c-primary); font-size: 23px; }
.entry__content h3 { margin: 1.6em 0 .5em; font-size: 19px; }
.entry__content img { margin-block: 20px; border-radius: var(--radius); }
.entry__content a { text-decoration: underline; text-underline-offset: 3px; }
.entry__content blockquote { margin: 1.4em 0; padding: 16px 22px; background: var(--c-bg-alt); border-left: 4px solid var(--c-primary); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; color: var(--c-muted); }
.entry__content table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 1.2em 0; }
.entry__content th, .entry__content td { padding: 8px 12px; border: 1px solid var(--c-line); }
.entry__content iframe { max-width: 100%; border: 0; }
.entry__content ul, .entry__content ol { margin: 0 0 1em 1.4em; }
.related { margin-top: 56px; }
.related__title { margin-bottom: 8px; font-size: 22px; }
.post-navigation .nav-links { display: grid; gap: 14px; margin-top: 48px; }
@media (min-width: 640px) { .post-navigation .nav-links { grid-template-columns: 1fr 1fr; } }
.post-navigation a { display: block; padding: 16px 20px; background: var(--c-bg-alt); border-radius: var(--radius); color: var(--c-text); font-size: 15px; transition: background .2s; }
.post-navigation a:hover { background: var(--c-primary-soft); color: var(--c-primary); }
.post-navigation small { display: block; margin-bottom: 4px; color: var(--c-muted); }
.post-navigation .nav-next { text-align: right; }

.facts { display: grid; gap: 14px 28px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); list-style: none; margin: 20px 0 0; padding: 20px 24px; background: var(--c-bg-alt); border-radius: var(--radius-lg); }
.facts li { display: flex; flex-direction: column; font-weight: 700; }
.facts span { font-size: 13px; font-weight: 400; color: var(--c-muted); }

.course-layout { display: grid; gap: 36px; }
@media (min-width: 1000px) { .course-layout { grid-template-columns: minmax(0, 1fr) 330px; align-items: start; } .course-aside { position: sticky; top: calc(var(--header-h) + 20px); } }
.course-poster .entry__content { font-size: 0; line-height: 0; }
.course-poster .entry__content img { width: 100%; margin: 0; border-radius: var(--radius-lg); box-shadow: var(--shadow); }

.teacher-layout { display: grid; gap: 36px; }
@media (min-width: 800px) { .teacher-layout { grid-template-columns: 320px minmax(0, 1fr); align-items: start; } }
.teacher-photo { margin: 0; }
.teacher-photo img { width: 100%; border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.teacher-body h2 { margin: 1.5em 0 .4em; padding-left: 14px; border-left: 4px solid var(--c-primary); font-size: 21px; }
.teacher-body h2:first-of-type { margin-top: 0; }
.entry__title small { margin-left: 10px; font-size: 15px; font-weight: 400; color: var(--c-muted); }
.pill { display: inline-block; margin: 0 6px 6px 0; padding: 4px 14px; background: var(--c-primary-soft); color: var(--c-primary); border-radius: 999px; font-size: 13px; font-weight: 700; }

/* ---------- 首页：首屏 ---------- */
.hero { position: relative; overflow: hidden; padding: 56px 0 112px; background: #f6f8ff; }
.hero__bg { position: absolute; inset: 0; pointer-events: none; background:
	radial-gradient(640px 420px at 82% 12%, rgb(91 140 255 / 30%), transparent 70%),
	radial-gradient(520px 360px at 6% 78%, rgb(160 130 255 / 18%), transparent 70%),
	linear-gradient(rgb(47 107 255 / 6%) 1px, transparent 1px) 0 0 / 56px 56px,
	linear-gradient(90deg, rgb(47 107 255 / 6%) 1px, transparent 1px) 0 0 / 56px 56px;
	-webkit-mask-image: linear-gradient(180deg, #000 55%, transparent); mask-image: linear-gradient(180deg, #000 55%, transparent); }
.hero__grid { position: relative; display: grid; gap: 56px; align-items: center; }
@media (min-width: 1000px) { .hero { padding: 88px 0 120px; } .hero__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 72px; } }
.hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; margin: 0 0 22px; padding: 7px 16px 7px 12px; background: rgb(255 255 255 / 80%); border: 1px solid var(--c-line); border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--c-text); backdrop-filter: blur(8px); box-shadow: var(--shadow-sm); }
.hero__eyebrow .dot { width: 8px; height: 8px; border-radius: 50%; background: #1fc16b; box-shadow: 0 0 0 0 rgb(31 193 107 / 50%); animation: pulse 2.4s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 10px rgb(31 193 107 / 0%); } 100% { box-shadow: 0 0 0 0 rgb(31 193 107 / 0%); } }
.hero__title { margin: 0 0 22px; font-size: clamp(40px, 6.4vw, 74px); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; }
.hero__desc { max-width: 540px; margin: 0 0 34px; font-size: 18px; line-height: 1.8; color: var(--c-muted); }
.hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 14px; font-weight: 500; color: var(--c-muted); }
.chips li { display: inline-flex; align-items: center; gap: 6px; }
.chips .icon { color: #1fc16b; }

.hero__visual { position: relative; padding: 0 0 36px; }
.hero__photo { margin: 0; overflow: hidden; border-radius: 32px; box-shadow: var(--shadow-lg); }
.hero__photo img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; }
.hero__photo:not(.hero__photo--sm) img { aspect-ratio: 4 / 3; object-position: 80% center; }
.hero__photo--sm { position: absolute; left: -28px; bottom: 0; width: 38%; border: 6px solid #fff; border-radius: 24px; box-shadow: var(--shadow); }
.hero__photo--sm img { aspect-ratio: 1; object-position: 42% center; }
.glass { background: rgb(255 255 255 / 72%); border: 1px solid rgb(255 255 255 / 70%); backdrop-filter: blur(18px) saturate(160%); box-shadow: 0 12px 40px rgb(16 24 40 / 14%); }
.hero__float { position: absolute; display: flex; align-items: center; gap: 12px; padding: 12px 18px; border-radius: 18px; font-size: 14px; line-height: 1.35; }
.hero__float strong { display: block; font-size: 15px; }
.hero__float small { color: var(--c-muted); font-size: 12px; }
.hero__float--teachers { top: 24px; right: -14px; }
.hero__float--score { right: 20px; bottom: 6px; }
.hero__float--score .num { font-size: 30px; font-weight: 800; letter-spacing: -.03em; background: linear-gradient(120deg, #1f4fd1, #5b8cff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.avatars { display: flex; }
.avatars img { width: 36px; height: 36px; margin-left: -10px; border: 2px solid #fff; border-radius: 50%; object-fit: cover; object-position: top; }
.avatars img:first-child { margin-left: 0; }
@media (max-width: 999px) { .hero__photo--sm { left: 12px; } .hero__float--teachers { right: 10px; } .hero__float--score { display: none; } }

.statwrap { position: relative; z-index: 2; margin-top: -72px; }
.statbar { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0; margin: 0; padding: 8px; list-style: none; border-radius: 28px; }
@media (min-width: 800px) { .statbar { grid-template-columns: repeat(4, 1fr); } }
.statbar li { padding: 22px 20px; text-align: center; }
@media (min-width: 800px) { .statbar li + li { border-left: 1px solid var(--c-line); } }
.statbar strong { display: block; font-size: clamp(30px, 4vw, 44px); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; color: var(--c-text); }
.statbar span { font-size: 14px; color: var(--c-muted); }
.statwrap + .section { padding-top: 72px; }
@media (min-width: 900px) { .statwrap + .section { padding-top: 104px; } }

/* ---------- 首页：优势 bento ---------- */
.bento { display: grid; gap: 18px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .bento { grid-template-columns: repeat(2, 1fr); } .tile--lg, .tile--wide { grid-column: span 2; } }
@media (min-width: 1000px) { .bento { grid-template-columns: repeat(4, 1fr); grid-auto-rows: minmax(250px, auto); gap: 22px; } .tile--lg { grid-column: span 2; grid-row: span 2; } .tile--wide { grid-column: auto; } }
.tile { position: relative; isolation: isolate; display: flex; flex-direction: column; justify-content: flex-end; min-height: 250px; padding: 28px; overflow: hidden; border-radius: var(--radius-lg); background: var(--c-bg-alt); color: var(--c-text); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.tile:hover { transform: translateY(-6px); box-shadow: var(--shadow); color: var(--c-text); }
.tile__tag { margin: 0 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .08em; opacity: .7; }
.tile h3 { margin: 0 0 8px; font-size: 24px; font-weight: 800; }
.tile p { margin: 0; font-size: 15px; opacity: .85; }
.tile__icon { position: absolute; top: 24px; left: 28px; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 16px; background: #fff; color: var(--c-primary); box-shadow: var(--shadow-sm); }
.tile__go { position: absolute; top: 24px; right: 24px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgb(255 255 255 / 80%); color: var(--c-text); transition: transform .3s var(--ease), background .3s; }
.tile:hover .tile__go { transform: rotate(-45deg); background: #fff; }
.tile--photo { color: #fff; background: var(--c-ink) var(--bg) center / cover; }
.tile--photo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgb(11 18 32 / 0%) 25%, rgb(11 18 32 / 82%)); }
.tile--photo:hover { color: #fff; }
.tile--photo h3 { font-size: 30px; }
.tile--blue { background: linear-gradient(145deg, #1f4fd1, #2f6bff 55%, #6a93ff); color: #fff; }
.tile--blue:hover { color: #fff; }
.tile--blue .tile__icon { background: rgb(255 255 255 / 18%); color: #fff; box-shadow: none; }
.tile--dark { background: linear-gradient(145deg, #0b1220, #1a2744); color: #fff; }
.tile--dark:hover { color: #fff; }
.tile--dark .tile__icon { background: rgb(255 255 255 / 10%); color: #8fb0ff; box-shadow: none; }
.tile--light { background: #fff; border: 1px solid var(--c-line); box-shadow: var(--shadow-sm); }
.tile--soft { background: linear-gradient(145deg, #eef3ff, #f7f0ff); }
.tile .avatars { position: absolute; top: 28px; left: 28px; }
.tile .avatars img { width: 44px; height: 44px; border-width: 3px; }

/* ---------- 首页：课程班型 ---------- */
.types { display: grid; gap: 20px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .types { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .types { grid-template-columns: repeat(6, 1fr); gap: 24px; } .type { grid-column: span 2; } .types--rem2 .type:nth-last-child(-n+2) { grid-column: span 3; } }
.type { --tint: #eef3ff; --ink: #2f6bff; position: relative; display: flex; flex-direction: column; padding: 32px; overflow: hidden; background: linear-gradient(160deg, var(--tint), #fff 75%); border: 1px solid var(--c-line); border-radius: var(--radius-lg); color: var(--c-text); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.type:hover { transform: translateY(-6px); box-shadow: var(--shadow); color: var(--c-text); }
.type[data-type="weekend"] { --tint: #f1ebff; --ink: #7a4dff; }
.type[data-type="vip"] { --tint: #fff4e0; --ink: #f08a00; }
.type[data-type="boarding"] { --tint: #e3f7f1; --ink: #0fa37f; }
.type[data-type="online"] { --tint: #ffebef; --ink: #e5365a; }
.type[data-type="custom"] { --tint: #e8eef7; --ink: #475a7a; }
.type__icon { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 22px; border-radius: 18px; background: #fff; color: var(--ink); box-shadow: var(--shadow-sm); }
.type h3 { margin: 0 0 8px; font-size: 22px; font-weight: 800; }
.type p { flex: 1; margin: 0 0 20px; font-size: 15px; color: var(--c-muted); }
.type__meta { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 700; color: var(--ink); }
.type__meta .icon { transition: transform .25s var(--ease); }
.type:hover .type__meta .icon { transform: translateX(5px); }
.type::after { content: ""; position: absolute; right: -40px; bottom: -40px; width: 160px; height: 160px; border-radius: 50%; background: var(--ink); opacity: .06; transition: transform .6s var(--ease); }
.type:hover::after { transform: scale(1.6); }

/* ---------- 首页：师资横向滑动 ---------- */
.rail-wrap { position: relative; }
.rail { display: grid; grid-auto-flow: column; grid-auto-columns: min(72vw, 270px); gap: 18px; padding: 6px 4px 28px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.rail::-webkit-scrollbar { display: none; }
@media (min-width: 900px) { .rail { grid-auto-columns: 280px; gap: 22px; } }
.rail-ctrl { display: none; gap: 10px; }
@media (min-width: 900px) { .rail-ctrl { display: flex; } }
.rail-ctrl button { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; background: #fff; color: var(--c-text); border: 1px solid var(--c-line); border-radius: 50%; cursor: pointer; transition: all .2s; }
.rail-ctrl button:hover { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
.rail-ctrl button[disabled] { opacity: .35; pointer-events: none; }
.rail-ctrl [data-dir="-1"] .icon { transform: rotate(180deg); }
.tt { position: relative; scroll-snap-align: start; display: block; overflow: hidden; border-radius: var(--radius-lg); background: var(--c-bg-alt); color: #fff; aspect-ratio: 3 / 4.1; box-shadow: var(--shadow-sm); transition: transform .4s var(--ease), box-shadow .4s var(--ease); }
.tt:hover { transform: translateY(-6px); box-shadow: var(--shadow); color: #fff; }
.tt img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .8s var(--ease); }
.tt:hover img { transform: scale(1.06); }
.tt::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 45%, rgb(11 18 32 / 88%)); }
.tt__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 22px; }
.tt__tag { display: inline-block; margin-bottom: 8px; padding: 2px 12px; background: rgb(255 255 255 / 20%); border: 1px solid rgb(255 255 255 / 30%); border-radius: 999px; font-size: 12px; font-weight: 600; backdrop-filter: blur(8px); }
.tt__name { margin: 0; font-size: 22px; font-weight: 800; color: #fff; }
.tt__desc { margin: 4px 0 0; font-size: 13px; line-height: 1.55; color: rgb(255 255 255 / 80%); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

/* ---------- 首页：深色喜报 ---------- */
.section--dark { position: relative; overflow: hidden; background: radial-gradient(800px 420px at 85% 0%, rgb(47 107 255 / 28%), transparent 70%), radial-gradient(600px 400px at 0% 100%, rgb(122 77 255 / 20%), transparent 70%), var(--c-ink); color: #fff; }
.section--dark .section__title { color: #fff; }
.section--dark .section__sub { color: rgb(255 255 255 / 65%); }
.section--dark .eyebrow { color: #8fb0ff; }
.section--dark .section__more { color: #8fb0ff; }
.section--dark .card--student { background: rgb(255 255 255 / 5%); border-color: rgb(255 255 255 / 12%); box-shadow: none; backdrop-filter: blur(10px); }
.section--dark .card--student:hover { background: rgb(255 255 255 / 9%); border-color: rgb(143 176 255 / 50%); }
.section--dark .card--student .card__score { background: linear-gradient(120deg, #8fb0ff, #fff); -webkit-background-clip: text; background-clip: text; }
.section--dark .card--student .card__score small, .section--dark .card--student .card__meta { -webkit-text-fill-color: rgb(255 255 255 / 60%); color: rgb(255 255 255 / 60%); }
.section--dark .card--student .card__title a, .section--dark .card--student .card__school { color: #fff; }

/* ---------- 首页：环境相册 ---------- */
.gallery { display: grid; gap: 14px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 800px) { .gallery { grid-template-columns: repeat(3, 1fr); gap: 20px; } .gallery figure:first-child { grid-column: span 2; grid-row: span 2; } }
.gallery figure { position: relative; margin: 0; overflow: hidden; border-radius: var(--radius-lg); }
.gallery img { width: 100%; height: 100%; aspect-ratio: 16 / 10; object-fit: cover; transition: transform .8s var(--ease); }
.gallery figure:hover img { transform: scale(1.06); }

/* ---------- 首页：资讯标签页 ---------- */
.tabs { display: none; flex-wrap: wrap; gap: 10px; margin: 0 0 28px; }
.js .tabs { display: flex; }
.tabs button { padding: 10px 24px; background: #fff; color: var(--c-text); border: 1px solid var(--c-line); border-radius: 999px; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; transition: all .2s; }
.tabs button:hover { border-color: var(--c-primary); color: var(--c-primary); }
.tabs button[aria-selected="true"] { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
.tabpanel { display: grid; gap: 0 48px; }
@media (min-width: 900px) { .tabpanel { grid-template-columns: repeat(2, 1fr); } }
.js .tabpanel[hidden] { display: none; }
.tabpanel__foot { grid-column: 1 / -1; margin-top: 20px; }
.news-item { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--c-line); color: var(--c-text); transition: padding .3s var(--ease), color .2s; }
.news-item:hover { padding-left: 10px; color: var(--c-primary); }
.news-item span:first-child { font-size: 16.5px; font-weight: 500; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; }
.news-item time { flex: none; font-size: 13px; color: var(--c-muted); font-variant-numeric: tabular-nums; }

/* ---------- 首页：校区 ---------- */
.campus-grid { display: grid; gap: 16px; grid-template-columns: 1fr; }
@media (min-width: 640px) { .campus-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .campus-grid { grid-template-columns: repeat(4, 1fr); } }
.campus-chip { display: flex; flex-direction: column; gap: 8px; padding: 22px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); color: var(--c-text); transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.campus-chip:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: rgb(47 107 255 / 35%); color: var(--c-text); }
.campus-chip__name { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 17px; font-weight: 700; }
.campus-chip__badge { padding: 1px 9px; background: var(--c-primary-soft); color: var(--c-primary); border-radius: 999px; font-size: 11px; font-weight: 700; }
.campus-chip p { display: flex; gap: 8px; margin: 0; font-size: 14px; color: var(--c-muted); }
.campus-chip .icon { margin-top: 4px; color: var(--c-primary); }

/* ---------- 咨询横幅 ---------- */
.cta-band { position: relative; overflow: hidden; padding: 88px 0; background: radial-gradient(700px 360px at 85% -10%, rgb(91 140 255 / 45%), transparent 70%), radial-gradient(500px 300px at 5% 110%, rgb(122 77 255 / 30%), transparent 70%), var(--c-ink); color: #fff; text-align: center; }
.cta-band__title { margin: 0 0 12px; font-size: clamp(30px, 4.6vw, 48px); font-weight: 800; color: #fff; }
.cta-band__desc { margin: 0 0 32px; font-size: 17px; color: rgb(255 255 255 / 70%); }
.cta-band__tel { display: block; margin: 0 0 28px; font-size: clamp(36px, 6vw, 64px); font-weight: 800; letter-spacing: .02em; line-height: 1.1; background: linear-gradient(120deg, #8fb0ff, #fff 70%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cta-band__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.cta-band .btn--ghost { background: rgb(255 255 255 / 10%); color: #fff; border-color: rgb(255 255 255 / 25%); }
.cta-band .btn--ghost:hover { background: rgb(255 255 255 / 18%); color: #fff; }

/* ---------- 分页 / 搜索 / 空状态 ---------- */
.pagination { margin-top: 48px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.pagination .page-numbers { min-width: 44px; padding: 9px 16px; text-align: center; border: 1px solid var(--c-line); border-radius: 999px; color: var(--c-text); font-weight: 500; }
.pagination a.page-numbers:hover { border-color: var(--c-primary); color: var(--c-primary); }
.pagination .page-numbers.current { background: var(--c-ink); border-color: var(--c-ink); color: #fff; }
.pagination .dots { border: 0; }
.search-form { display: flex; gap: 10px; }
.search-form label { flex: 1; }
.search-form .search-field { width: 100%; padding: 13px 20px; border: 1px solid var(--c-line); border-radius: 999px; font: inherit; background: #fff; }
.search-form .search-field:focus { border-color: var(--c-primary); outline: 0; box-shadow: 0 0 0 4px var(--c-primary-soft); }
.search-form .search-submit { padding: 13px 26px; background: var(--c-ink); color: #fff; border: 0; border-radius: 999px; font: inherit; font-weight: 600; cursor: pointer; }
.empty { padding: 64px 0; text-align: center; color: var(--c-muted); }
.not-found { padding: 88px 0; text-align: center; }
.not-found__code { margin: 0; font-size: 110px; font-weight: 800; line-height: 1; letter-spacing: -.04em; background: linear-gradient(120deg, #1f4fd1, #8fb0ff); -webkit-background-clip: text; background-clip: text; color: transparent; }
.not-found .search-form { max-width: 480px; margin: 28px auto; }

/* ---------- 页面专用 ---------- */
.entry--page { max-width: 860px; margin-inline: auto; }
.entry--environment { max-width: none; }
.entry--environment .entry__content { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.entry--environment .entry__content h2 { grid-column: 1 / -1; margin: 18px 0 0; }
.entry--environment .entry__content figure { margin: 0; overflow: hidden; border-radius: var(--radius-lg); }
.entry--environment .entry__content img { width: 100%; margin: 0; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; transition: transform .8s var(--ease); }
.entry--environment .entry__content figure:hover img { transform: scale(1.06); }
.entry--about .entry__content > p:first-child { font-size: 22px; font-weight: 700; color: var(--c-text); }
.entry--contact .entry__content a[href^="tel"] { font-size: 30px; font-weight: 800; text-decoration: none; }
.entry .xwd-facts a[href^="tel"] { font-size: inherit; font-weight: 700; color: var(--c-primary); }
.related .grid { margin-top: 22px; }
.entry--page .facts { margin-bottom: 24px; }

/* ---------- 页脚 ---------- */
.site-footer { background: var(--c-bg-alt); border-top: 1px solid var(--c-line); color: var(--c-muted); font-size: 14.5px; }
.footer-grid { display: grid; gap: 36px 40px; padding-block: 56px 40px; align-items: start; }
@media (min-width: 700px) { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .footer-grid { grid-template-columns: 1.1fr .8fr .8fr 1.9fr; } }
@media (min-width: 1280px) { .footer-grid { grid-template-columns: 1.1fr .8fr .8fr 2.4fr; } .footer-contact li span { white-space: nowrap; } }
/* 手机：精简页脚（链接栏在导航抽屉里已有）——logo 独占一行，联系信息与二维码并排 */
@media (max-width: 699px) {
	.footer-grid { grid-template-columns: minmax(0, 1fr) auto; gap: 20px 16px; padding-block: 32px 24px; }
	.footer-brand { display: contents; }
	.footer-brand__logo { grid-column: 1 / -1; margin: 0; }
	.footer-col:not(.footer-contact) { display: none; }
	.footer-contact { grid-column: 1; grid-row: 2; min-width: 0; }
	.footer-contact .footer-col__title { display: none; }
	.footer-contact li { padding: 5px 0; }
	.footer-qr { grid-column: 2; grid-row: 2; margin: 0; }
	.footer-qr img { width: 96px; height: 96px; }
	.footer-bottom__inner { padding-right: 68px; }
}
@media (min-width: 1000px) { .footer-brand__logo, .footer-col__title { display: flex; align-items: center; min-height: 52px; } }
.footer-brand__logo { margin-bottom: 16px; }
@media (min-width: 481px) { .footer-brand__logo { --logo-h: 52px; } }
.footer-qr { display: inline-flex; flex-direction: column; align-items: center; gap: 8px; margin: 6px 0 0; }
.footer-qr img { width: 112px; height: 112px; padding: 7px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius); }
.footer-qr figcaption { font-size: 12px; }
.footer-col__title { margin: 0 0 16px; font-size: 16px; font-weight: 700; color: var(--c-text); }
.footer-col ul { list-style: none; }
.footer-col li { padding: 6px 0; }
.footer-col a { color: var(--c-muted); transition: color .2s, padding .2s; }
.footer-col a:hover { color: var(--c-primary); padding-left: 4px; }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; }
.footer-contact .icon { margin-top: 4px; color: var(--c-primary); }
.footer-bottom { border-top: 1px solid var(--c-line); background: #fff; }
.footer-bottom__inner { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 28px; padding-block: 18px; padding-bottom: calc(18px + env(safe-area-inset-bottom)); }
.footer-bottom p { margin: 0; }
.footer-bottom a { color: var(--c-muted); }
.footer-nav ul { display: flex; flex-wrap: wrap; gap: 4px 18px; list-style: none; }

/* ---------- 手机底部咨询栏 + 回到顶部 ---------- */
.mobile-bar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgb(255 255 255 / 88%); backdrop-filter: blur(16px) saturate(180%); border-top: 1px solid var(--c-line); }
.mobile-bar__btn { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 12px 8px; background: var(--c-primary-soft); color: var(--c-primary); border-radius: 999px; font-size: 15px; font-weight: 700; }
.mobile-bar__btn--call { background: linear-gradient(135deg, #2f6bff, #5b8cff); color: #fff; box-shadow: 0 6px 16px rgb(47 107 255 / 28%); }
.nav-open .mobile-bar { display: none; }
.to-top { position: fixed; right: 16px; bottom: 84px; z-index: 90; width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; background: rgb(255 255 255 / 90%); color: var(--c-text); border: 1px solid var(--c-line); border-radius: 50%; box-shadow: var(--shadow); backdrop-filter: blur(10px); cursor: pointer; }
.to-top[hidden] { display: none; }
body { padding-bottom: 70px; }
@media (min-width: 900px) { .mobile-bar { display: none; } body { padding-bottom: 0; } .to-top { bottom: 28px; right: 30px; width: 40px; height: 40px; } }

/* 隐藏百度商桥自带的悬浮图标（由悬浮条「在线咨询」代为触发，见 main.js）。注意不要隐藏 #aff-im-root 与对话 iframe */
#aff-ai-agent-icon { display: none !important; }

/* ---------- 桌面端右侧悬浮咨询（轻量工具栏）---------- */
.dock { display: none; }
@media (min-width: 900px) {
	.dock { position: fixed; right: 20px; top: 50%; z-index: 90; transform: translateY(-50%); display: flex; flex-direction: column; gap: 2px; width: 60px; padding: 6px; background: #fff; border: 1px solid var(--c-line); border-radius: 16px; box-shadow: 0 4px 20px rgb(16 24 40 / 6%); }
	.dock__item { position: relative; }
	.dock__btn { width: 100%; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 8px 0 7px; background: transparent; border: 0; border-radius: 12px; color: var(--c-muted); font: inherit; font-size: 11px; font-weight: 500; line-height: 1.2; cursor: pointer; transition: background .2s var(--ease), color .2s var(--ease); }
	.dock__ico { width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--c-text); transition: transform .25s var(--ease), background .2s var(--ease), color .2s var(--ease); }
	.dock .icon { width: 18px; height: 18px; stroke-width: 1.6; vertical-align: 0; }
	.dock__btn:hover, .dock__btn:focus-visible { background: var(--c-primary-soft); color: var(--c-primary); }
	.dock__btn:hover .dock__ico, .dock__btn:focus-visible .dock__ico { color: var(--c-primary); transform: translateY(-2px); }
	.dock__btn--call { color: var(--c-primary); font-weight: 600; }
	.dock__btn--call .dock__ico { background: var(--c-primary); color: #fff; box-shadow: 0 4px 10px rgb(47 107 255 / 30%); }
	.dock__btn--call:hover .dock__ico, .dock__btn--call:focus-visible .dock__ico { background: var(--c-primary-dark); color: #fff; }
	.dock__pop { position: absolute; right: calc(100% + 14px); top: 50%; min-width: 168px; padding: 14px 16px; background: #fff; border: 1px solid var(--c-line); border-radius: 14px; box-shadow: 0 8px 28px rgb(16 24 40 / 8%); text-align: center; opacity: 0; visibility: hidden; transform: translate(8px, -50%); transition: opacity .2s var(--ease), transform .2s var(--ease), visibility .2s; }
	.dock__pop::after { content: ""; position: absolute; left: 100%; top: 0; width: 20px; height: 100%; }
	.dock__item:hover .dock__pop, .dock__item:focus-within .dock__pop { opacity: 1; visibility: visible; transform: translate(0, -50%); }
	.dock__pop strong { display: block; font-size: 12px; color: var(--c-muted); font-weight: 500; }
	.dock__pop p { margin: 6px 0 0; font-size: 12px; color: var(--c-muted); }
	.dock__num, .dock__num:hover { color: var(--c-primary); }
	.dock__num { display: block; margin-top: 4px; font-size: 20px; font-weight: 700; letter-spacing: .5px; white-space: nowrap; }
	.dock__pop--qr img { display: block; margin: 0 auto; border-radius: 8px; }
	.dock__pop--qr p { margin-top: 8px; color: var(--c-text); font-weight: 500; }
}

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } .js [data-reveal] { opacity: 1; transform: none; } }
@media print { .site-header, .site-footer, .mobile-bar, .to-top, .layout__side, .cta-band { display: none !important; } body { padding: 0; } }
