/* ==========================================================================
   WXWDWL Dance 主题主样式
   品牌色：中国红 #A6212C ｜ 辅助色：鎏金 #C8A96A ｜ 中性色：墨 #2B2B2B / 宣纸 #F7F4EF
   字体：PingFang SC / Hiragino Sans GB / Microsoft YaHei（中国境内系统字体）
   ========================================================================== */

:root {
	--wx-red: #a6212c;
	--wx-red-dark: #7e161e;
	--wx-gold: #c8a96a;
	--wx-gold-light: #e6d5b0;
	--wx-ink: #2b2b2b;
	--wx-gray: #6f6f6f;
	--wx-line: #e6e0d8;
	--wx-paper: #f7f4ef;
	--wx-white: #ffffff;
	--wx-radius: 6px;
	--wx-shadow: 0 4px 18px rgba(43, 30, 20, 0.09);
	--wx-font: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", "Noto Sans CJK SC", "WenQuanYi Micro Hei", sans-serif;
	--wx-serif: "Songti SC", "SimSun", "STSong", "NSimSun", serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--wx-font);
	font-size: 16px;
	line-height: 1.8;
	color: var(--wx-ink);
	background: var(--wx-white);
}
img { max-width: 100%; height: auto; }
a { color: var(--wx-red); text-decoration: none; transition: color 0.2s ease; }
a:hover, a:focus { color: var(--wx-red-dark); }
h1, h2, h3, h4 { line-height: 1.4; margin: 0 0 0.6em; font-weight: 600; }
p { margin: 0 0 1em; }

.wx-container { max-width: 1180px; margin: 0 auto; padding: 0 20px; }

/* ---------- 顶部条 ---------- */
.wx-topbar {
	background: var(--wx-red);
	color: rgba(255, 255, 255, 0.92);
	font-size: 13px;
	padding: 6px 0;
}
.wx-topbar-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 6px; }
.wx-topbar a { color: #fff; }

/* ---------- 页头 ---------- */
.wx-header {
	background: var(--wx-white);
	border-bottom: 3px solid var(--wx-red);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
	position: relative;
	z-index: 50;
}
.wx-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 84px; }
.wx-logo { display: flex; align-items: center; gap: 12px; }
.wx-logo img { display: block; }
.wx-logo-name { display: block; font-size: 22px; font-weight: 700; color: var(--wx-red); letter-spacing: 2px; }
.wx-logo-sub { display: block; font-size: 11px; letter-spacing: 1.5px; color: var(--wx-gray); text-transform: uppercase; }
.custom-logo-link img { max-height: 64px; width: auto; }

/* 主导航 */
.wx-nav-list { display: flex; flex-wrap: wrap; gap: 2px; list-style: none; margin: 0; padding: 0; }
.wx-nav-list > li { position: relative; }
.wx-nav-list > li > a {
	display: block;
	padding: 30px 18px;
	color: var(--wx-ink);
	font-size: 16px;
	font-weight: 500;
}
.wx-nav-list > li > a:hover,
.wx-nav-list > li.current-menu-item > a { color: var(--wx-red); }
.wx-nav-list > li > a::after {
	content: "";
	display: block;
	height: 3px;
	width: 0;
	background: var(--wx-gold);
	transition: width 0.25s ease;
}
.wx-nav-list > li:hover > a::after { width: 100%; }
.wx-nav-list .sub-menu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 180px;
	background: var(--wx-white);
	border-top: 3px solid var(--wx-gold);
	box-shadow: var(--wx-shadow);
	list-style: none;
	margin: 0;
	padding: 6px 0;
	z-index: 60;
}
.wx-nav-list > li:hover > .sub-menu { display: block; animation: wxFadeIn 0.25s ease; }
.wx-nav-list .sub-menu a { display: block; padding: 10px 18px; color: var(--wx-ink); font-size: 14px; }
.wx-nav-list .sub-menu a:hover { background: var(--wx-paper); color: var(--wx-red); }

/* 汉堡按钮 */
.wx-hamburger { display: none; background: none; border: 0; cursor: pointer; padding: 8px; }
.wx-hamburger-bar { display: block; width: 24px; height: 2px; background: var(--wx-ink); margin: 5px 0; transition: transform 0.3s ease, opacity 0.3s ease; }
.wx-hamburger[aria-expanded="true"] .wx-hamburger-bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.wx-hamburger[aria-expanded="true"] .wx-hamburger-bar:nth-child(2) { opacity: 0; }
.wx-hamburger[aria-expanded="true"] .wx-hamburger-bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.wx-hamburger-text { display: block; font-size: 12px; color: var(--wx-gray); }

/* ---------- Banner 轮播 ---------- */
.wx-banner { position: relative; height: 520px; overflow: hidden; background: #3a1418; }
.wx-banner-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 0.8s ease; z-index: 1; }
.wx-banner-slide.is-active { opacity: 1; z-index: 2; }
.wx-banner-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.wx-banner-slide::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(30, 10, 12, 0.66) 0%, rgba(30, 10, 12, 0.28) 60%, rgba(30, 10, 12, 0.05) 100%);
}
.wx-banner-caption { position: relative; z-index: 3; max-width: 1180px; margin: 0 auto; padding: 150px 20px 0; color: #fff; }
.wx-banner-kicker { display: inline-block; font-size: 14px; letter-spacing: 4px; border: 1px solid var(--wx-gold); color: var(--wx-gold); padding: 4px 14px; margin: 0 0 18px; }
.wx-banner-title { font-family: var(--wx-serif); font-size: 44px; letter-spacing: 6px; margin-bottom: 14px; }
.wx-banner-desc { max-width: 560px; font-size: 16px; color: rgba(255, 255, 255, 0.88); }
.wx-banner-dots { position: absolute; z-index: 4; bottom: 22px; left: 0; right: 0; text-align: center; }
.wx-banner-dots button {
	width: 28px; height: 4px; margin: 0 4px; border: 0; cursor: pointer;
	background: rgba(255, 255, 255, 0.4); transition: background 0.3s ease;
}
.wx-banner-dots button.is-active { background: var(--wx-gold); }

/* ---------- 按钮 ---------- */
.wx-btn {
	display: inline-block;
	padding: 11px 30px;
	background: var(--wx-red);
	color: #fff;
	border-radius: var(--wx-radius);
	border: 1px solid var(--wx-red);
	font-size: 15px;
	cursor: pointer;
	transition: all 0.25s ease;
}
.wx-btn:hover { background: var(--wx-red-dark); color: #fff; box-shadow: 0 6px 16px rgba(166, 33, 44, 0.35); transform: translateY(-1px); }
.wx-btn-gold { background: var(--wx-gold); border-color: var(--wx-gold); color: #3a2c10; }
.wx-btn-gold:hover { background: #d6bc85; color: #3a2c10; }
.wx-btn-ghost { background: transparent; border-color: var(--wx-red); color: var(--wx-red); }
.wx-btn-ghost:hover { background: var(--wx-red); color: #fff; }

/* ---------- 分区 ---------- */
.wx-section { padding: 68px 0; }
.wx-section-gray { background: var(--wx-paper); }
.wx-section-head { text-align: center; margin-bottom: 42px; }
.wx-section-title {
	display: inline-block;
	font-family: var(--wx-serif);
	font-size: 30px;
	letter-spacing: 4px;
	color: var(--wx-ink);
	margin: 0 0 8px;
}
.wx-section-head::before {
	content: "◆";
	display: block;
	color: var(--wx-gold);
	font-size: 14px;
	margin-bottom: 8px;
}
.wx-section-sub { color: var(--wx-gray); font-size: 14px; letter-spacing: 2px; margin: 0; }

/* 栅格 */
.wx-grid { display: grid; gap: 26px; }
.wx-grid-3 { grid-template-columns: repeat(3, 1fr); }
.wx-grid-4 { grid-template-columns: repeat(4, 1fr); }

/* 卡片 */
.wx-card {
	background: var(--wx-white);
	border-radius: var(--wx-radius);
	border: 1px solid var(--wx-line);
	overflow: hidden;
	transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.wx-card:hover { transform: translateY(-4px); box-shadow: var(--wx-shadow); }
.wx-card-entry { text-align: center; padding: 34px 22px; position: relative; }
.wx-card-entry::before {
	content: "";
	position: absolute;
	top: 0; left: 50%;
	transform: translateX(-50%);
	width: 46px; height: 3px;
	background: var(--wx-gold);
}
.wx-card-icon { margin-bottom: 12px; }
.wx-card-entry h3 { font-size: 19px; color: var(--wx-ink); }
.wx-card-entry p, .wx-card-body p { font-size: 14px; color: var(--wx-gray); }
.wx-card-thumb { display: block; aspect-ratio: 16/9; background: linear-gradient(135deg, #8e2230 0%, #c8a96a 100%); }
.wx-card-thumb img { width: 100%; height: 100%; object-fit: cover; }
.wx-card-thumb-pattern { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,0.06) 0 12px, transparent 12px 24px), linear-gradient(135deg, #8e2230 0%, #a6212c 55%, #c8a96a 100%); }
.wx-card-body { padding: 18px 20px 22px; }
.wx-card-body h3 { font-size: 17px; margin-bottom: 8px; }
.wx-card-body h3 a { color: var(--wx-ink); }
.wx-card-body h3 a:hover { color: var(--wx-red); }
.wx-link-more { font-size: 13px; color: var(--wx-gold); }
.wx-link-more::after { content: " →"; }

/* 数据统计带 */
.wx-stats {
	background: linear-gradient(135deg, var(--wx-red) 0%, var(--wx-red-dark) 100%);
	background-size: cover;
	color: #fff;
}
.wx-stat { text-align: center; padding: 10px 0; }
.wx-stat strong { display: block; font-size: 40px; font-family: Georgia, "Times New Roman", serif; color: var(--wx-gold-light); line-height: 1.2; }
.wx-stat strong::after { content: "+"; font-size: 24px; }
.wx-stat span { font-size: 14px; opacity: 0.92; letter-spacing: 1px; }

/* 新闻列表 */
.wx-news-list { list-style: none; margin: 0; padding: 0; max-width: 860px; }
.wx-news-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 15px 6px;
	border-bottom: 1px dashed var(--wx-line);
}
.wx-news-item::before { content: "·"; color: var(--wx-red); font-weight: 700; }
.wx-news-item a { color: var(--wx-ink); font-size: 15px; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wx-news-item a:hover { color: var(--wx-red); }
.wx-news-item time { color: #a09a90; font-size: 13px; font-family: Georgia, serif; }
.wx-more-wrap { text-align: center; margin-top: 34px; }

/* 联系横带 */
.wx-contact-band { background: var(--wx-paper); border-top: 1px solid var(--wx-line); }
.wx-contact-band-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 18px; }
.wx-contact-band h2 { font-family: var(--wx-serif); font-size: 26px; letter-spacing: 3px; margin: 0; color: var(--wx-red); }
.wx-contact-band p { margin: 4px 0 0; color: var(--wx-gray); font-size: 14px; }
.wx-contact-actions { display: flex; align-items: center; gap: 22px; }
.wx-tel-link { font-family: Georgia, serif; font-size: 24px; color: var(--wx-ink); font-weight: bold; }
.wx-tel-link::before { content: "☎ "; color: var(--wx-red); font-size: 18px; }

/* ---------- 页头横幅（内页） ---------- */
.wx-page-banner {
	background: linear-gradient(135deg, #8e2230 0%, #a6212c 60%, #7e161e 100%);
	color: #fff;
	padding: 54px 0;
	position: relative;
	overflow: hidden;
}
.wx-page-banner::after {
	content: "";
	position: absolute;
	right: -60px; top: -40px;
	width: 240px; height: 240px;
	border: 1px solid rgba(200, 169, 106, 0.5);
	border-radius: 50%;
}
.wx-page-title { font-family: var(--wx-serif); font-size: 30px; letter-spacing: 5px; margin: 12px 0 0; }

/* 面包屑 */
.wx-breadcrumb { font-size: 13px; color: rgba(255, 255, 255, 0.8); }
.wx-breadcrumb a { color: rgba(255, 255, 255, 0.9); }
.wx-breadcrumb a:hover { color: var(--wx-gold); }
.wx-breadcrumb .sep { margin: 0 8px; color: var(--wx-gold); }

/* ---------- 内容区 ---------- */
.wx-content-wrap { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; padding: 60px 20px 72px; max-width: 1180px; margin: 0 auto; }
.wx-content-narrow { grid-template-columns: minmax(0, 760px); }
.wx-prose { font-size: 15.5px; }
.wx-prose h2 {
	font-family: var(--wx-serif);
	font-size: 22px;
	letter-spacing: 2px;
	border-left: 4px solid var(--wx-red);
	padding-left: 12px;
	margin: 38px 0 14px;
}
.wx-prose h2:first-child { margin-top: 0; }
.wx-lead { font-size: 16px; color: var(--wx-gray); }
.wx-single-meta { color: #a09a90; font-size: 13px; margin-bottom: 18px; display: flex; gap: 14px; }
.wx-single-thumb { margin: 0 0 22px; border-radius: var(--wx-radius); overflow: hidden; }
.wx-single-thumb img { width: 100%; }
.wx-service-band { background: var(--wx-paper); border: 1px solid var(--wx-line); border-radius: var(--wx-radius); padding: 16px 20px; margin-top: 30px; }
.wx-service-band p { margin: 0; }
.wx-page-content { line-height: 2; }
.wx-page-links { margin: 24px 0; }

/* 联系列表 */
.wx-contact-list { list-style: none; padding: 0; margin: 0 0 24px; }
.wx-contact-list li { padding: 10px 0; border-bottom: 1px dashed var(--wx-line); font-size: 15px; }
.wx-contact-list strong { color: var(--wx-red); margin-right: 4px; }

/* FAQ */
.wx-faq-list { margin: 10px 0; }
.wx-faq-item { border: 1px solid var(--wx-line); border-radius: var(--wx-radius); margin-bottom: 14px; padding: 0 20px; background: var(--wx-white); }
.wx-faq-item summary { cursor: pointer; font-weight: 600; padding: 15px 0; font-size: 15.5px; }
.wx-faq-item summary::marker { color: var(--wx-red); }
.wx-faq-item p { color: var(--wx-gray); font-size: 14.5px; padding-bottom: 16px; margin: 0; }

/* 侧栏 */
.wx-side-block { background: var(--wx-paper); border-radius: var(--wx-radius); padding: 20px; margin-bottom: 22px; }
.wx-side-title { font-size: 16px; margin: 0 0 12px; padding-left: 10px; border-left: 3px solid var(--wx-red); }
.wx-side-nav { list-style: none; margin: 0; padding: 0; }
.wx-side-nav li { border-bottom: 1px dashed var(--wx-line); }
.wx-side-nav a { display: block; padding: 9px 4px; color: var(--wx-ink); font-size: 14.5px; }
.wx-side-nav a:hover { color: var(--wx-red); padding-left: 8px; transition: padding 0.2s ease; }
.wx-side-tel { font-family: Georgia, serif; font-size: 22px; margin: 0; }
.wx-side-tel a { color: var(--wx-red); }
.wx-side-hours { font-size: 13px; color: var(--wx-gray); margin: 4px 0 0; }
.widget { margin-bottom: 26px; font-size: 14.5px; }
.widget-title { font-size: 16px; border-left: 3px solid var(--wx-red); padding-left: 10px; }

/* 搜索表单 */
.wx-searchform { display: flex; margin: 18px 0; max-width: 420px; }
.wx-search-input { flex: 1; padding: 10px 14px; border: 1px solid var(--wx-line); border-right: 0; border-radius: var(--wx-radius) 0 0 var(--wx-radius); font-family: inherit; font-size: 14px; }
.wx-search-submit { padding: 10px 20px; background: var(--wx-red); color: #fff; border: 1px solid var(--wx-red); border-radius: 0 var(--wx-radius) var(--wx-radius) 0; cursor: pointer; font-size: 14px; }
.wx-search-submit:hover { background: var(--wx-red-dark); }

/* 分页 */
.wx-news-pager { border-bottom: 0 !important; padding-top: 22px; }
.page-numbers { display: inline-block; padding: 6px 13px; border: 1px solid var(--wx-line); margin: 0 4px; font-size: 14px; color: var(--wx-ink); border-radius: 4px; }
.page-numbers.current { background: var(--wx-red); border-color: var(--wx-red); color: #fff; }
.page-numbers:hover:not(.current) { border-color: var(--wx-red); color: var(--wx-red); }

/* 评论 */
.wx-comments { margin-top: 46px; border-top: 2px solid var(--wx-red); padding-top: 26px; }
.wx-comment-list { list-style: none; padding: 0; }
.wx-comment-list .comment-body { border: 1px solid var(--wx-line); border-radius: var(--wx-radius); padding: 14px 18px; margin-bottom: 16px; }
.comment-form input[type="text"], .comment-form input[type="email"], .comment-form input[type="url"], .comment-form textarea {
	width: 100%; padding: 10px 12px; border: 1px solid var(--wx-line); border-radius: 4px; font-family: inherit;
}
.comment-form .submit { background: var(--wx-red); color: #fff; border: 0; padding: 10px 26px; border-radius: var(--wx-radius); cursor: pointer; }
.comment-form .submit:hover { background: var(--wx-red-dark); }

/* 404 */
.wx-404 { text-align: center; padding: 110px 20px; background: var(--wx-paper); }
.wx-404-code { font-family: Georgia, serif; font-size: 96px; color: var(--wx-red); margin: 0; line-height: 1; }
.wx-404 h1 { font-family: var(--wx-serif); font-size: 26px; letter-spacing: 3px; margin: 18px 0 8px; }
.wx-404-actions { margin: 26px 0; }
.wx-404 .wx-searchform { margin: 0 auto; }

/* ---------- 页脚 ---------- */
.wx-footer { background: #26130f; color: #cbbfae; font-size: 14px; margin-top: 0; }
.wx-footer-grid { display: grid; grid-template-columns: 2.2fr 1fr 1.6fr; gap: 44px; padding: 58px 20px 42px; }
.wx-footer-logo { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; color: #fff; font-size: 18px; letter-spacing: 2px; }
.wx-footer-title { color: var(--wx-gold); font-size: 16px; letter-spacing: 2px; border-bottom: 1px solid rgba(200, 169, 106, 0.35); padding-bottom: 10px; margin-bottom: 16px; font-weight: 600; }
.wx-footer-intro p { line-height: 2; margin: 0 0 12px; font-size: 13.5px; }
.wx-footer .wx-seal { border-color: var(--wx-gold); color: var(--wx-gold); font-size: 12px; }
.wx-footer-nav { list-style: none; margin: 0; padding: 0; }
.wx-footer-nav li { padding: 6px 0; }
.wx-footer-nav a, .wx-footer-contact a { color: #cbbfae; }
.wx-footer-nav a:hover, .wx-footer-contact a:hover { color: var(--wx-gold); }
.wx-footer-contact { list-style: none; margin: 0; padding: 0; }
.wx-footer-contact li { padding: 7px 0; line-height: 1.7; }
.wx-footer-contact .wx-ico { display: inline-block; color: var(--wx-gold); min-width: 44px; }
.wx-footer-bottom { border-top: 1px solid rgba(255, 255, 255, 0.08); padding: 16px 0; font-size: 13px; color: #9c8f7e; }
.wx-footer-bottom-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding-top: 0; padding-bottom: 0; }
.wx-footer-bottom a { color: #9c8f7e; margin-right: 14px; }
.wx-footer-bottom a:hover { color: var(--wx-gold); }

/* 动画 */
@keyframes wxFadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.wx-section .wx-card, .wx-section .wx-stat { animation: wxFadeIn 0.5s ease both; }

/* 加载动画 */
.wx-loading-bar { position: fixed; top: 0; left: 0; height: 2px; width: 0; background: var(--wx-gold); z-index: 999; transition: width 0.3s ease; }

/* ---------- 移动端适配 ---------- */
@media (max-width: 992px) {
	.wx-grid-4 { grid-template-columns: repeat(2, 1fr); }
	.wx-grid-3 { grid-template-columns: repeat(2, 1fr); }
	.wx-content-wrap { grid-template-columns: minmax(0, 1fr); }
	.wx-banner { height: 420px; }
	.wx-banner-caption { padding-top: 90px; }
	.wx-banner-title { font-size: 32px; }
}
@media (max-width: 768px) {
	.wx-hamburger { display: block; }
	.wx-nav {
		display: none;
		position: absolute;
		top: 100%; left: 0; right: 0;
		background: var(--wx-white);
		border-bottom: 3px solid var(--wx-red);
		box-shadow: var(--wx-shadow);
		max-height: 70vh; overflow-y: auto;
	}
	.wx-nav.is-open { display: block; animation: wxFadeIn 0.25s ease; }
	.wx-nav-list { flex-direction: column; }
	.wx-nav-list > li > a { padding: 13px 22px; border-bottom: 1px solid var(--wx-line); }
	.wx-nav-list .sub-menu { display: block; position: static; border: 0; box-shadow: none; padding-left: 20px; background: var(--wx-paper); }
	.wx-header-inner { min-height: 64px; }
	.wx-logo-name { font-size: 18px; }
	.wx-grid-3, .wx-grid-4 { grid-template-columns: 1fr; }
	.wx-section { padding: 44px 0; }
	.wx-banner { height: 360px; }
	.wx-banner-title { font-size: 26px; letter-spacing: 3px; }
	.wx-stat strong { font-size: 30px; }
	.wx-footer-grid { grid-template-columns: 1fr; gap: 26px; }
	.wx-contact-band-inner { flex-direction: column; text-align: center; }
	.wx-topbar-tel { display: none; }
}
