/*
  Global UI System (重构版)
  - 颜色管理与变量
  - 排版大小与基础设定
  - 间距工具（5px 至 80px）
  - 栅格系统（响应式 12 列）
  - Flex 布局（含响应式）
  - 按钮体系（大小、镂空/实心、圆角）
  - 文本与背景工具类
*/

/* 变量 */
:root {
	/* 颜色 */
	--color-primary: #5378b8;
	--color-topic-primary: #0184de;
	/* 主色：文字、背景、按钮等 */
	--color-secondary: #ed8614;
	/* 辅色：按钮背景、文字等 */
	--color-text: #182231;
	/* 默认文字 */
	--color-text-muted: rgba(24, 34, 49, 0.7);
	/* 默认文字的浅色（70%）与浅背景弱化文字 */
	--color-white: #ffffff;
	/* 白色：文字/背景 */
	--color-white-muted: rgba(255, 255, 255, 0.7);
	/* 白色浅色文字（约70%） */
	--color-body-bg: #f1f5f9;
	/* 页面默认背景色 */
	--color-border: #e4e8ed;
	/* 边框色（常用） */
	--color-border-light: #e5e8ed;
	/* 边框浅色 */

	/* 排版大小 */
	--font-size-14: 14px;
	--font-size-16: 16px;
	--font-size-18: 18px;
	--font-size-20: 20px;
	--font-size-22: 22px;
	--font-size-24: 24px;
	--font-size-30: 30px;
	--font-size-36: 36px;
	--font-size-48: 48px;
	--font-size-60: 60px;

	/* 圆角与阴影 */
	--radius-base: 10px;
	/* 默认圆角 */
	--shadow-base: 0 0 15px rgba(24, 34, 49, 0.12);
	/* 默认投影 */

	/* 间距（5px 起） */
	--space-1: 5px;
	--space-2: 10px;
	--space-3: 15px;
	--space-4: 20px;
	--space-5: 25px;
	--space-6: 30px;
	--space-7: 35px;
	--space-8: 40px;
	--space-9: 45px;
	--space-10: 50px;
	--space-11: 55px;
	--space-12: 60px;
	--space-13: 80px;

	/* 栅格断点 */
	--bp-sm: 576px;
	--bp-md: 768px;
	--bp-lg: 992px;
	--bp-xl: 1200px;
	--bp-xxl: 1400px;
	--bp-max: 1580px;
	/* 按钮尺寸 */
	--btn-h-sm: 44px;
	--btn-h-md: 50px;
	--btn-h-lg: 60px;
	--btn-pad-x: 18px;
	--btn-pad-y: 0;
	/* 垂直由高度控制 */
}

/* 基础设置 */
/* reset */
div,
p,
ul,
li {
	margin: 0;
	padding: 0;
}

li,
dl,
dd,
dt {
	list-style: none;
	margin: 0;
	padding: 0;
}

a {
	text-decoration: none;
	color: var(--color-text);
}
a:hover {
	color: var(--color-primary);
}
i { font-style: normal; }
h1,
h2,
h3,
h4,
h5,
h6,
dt {
	font-weight: 400;
	margin: 0;
	padding: 0;
}

.icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	vertical-align: middle;
}

.icon svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

html {
	box-sizing: border-box;
	font-size: var(--font-size-16);
}

*,
*::before,
*::after {
	box-sizing: inherit;
}

body {
	margin: 0;
	background: var(--color-body-bg);
	color: var(--color-text);
	font-size: var(--font-size-16);
	line-height: 1.6;
	width: 100%;
	overflow-x: hidden;
}

img,
svg {
	display: inline-block;
	vertical-align: middle;
	margin: 0;
	padding: 0;
}

.block {
	display: block;
}

.in-block,.vlm {
	display: inline-block;
}
.vlm {
	vertical-align: middle;
}
/* 图标：inline SVG 跟随文字颜色并可控尺寸 */
.icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 0;
	vertical-align: middle;
}

.icon svg {
	width: 100%;
	height: 100%;
	fill: currentColor;
}

/* 透明度设置 */
.opt-light {
	opacity: 0.7;
}
.opt-sm {
	opacity: 0.4;
}
.opt-xs {
	opacity: 0.2;
}
/* 容器 */
.container {
	width: 100%;
	margin-inline: auto;
	padding-inline: var(--space-3);
	max-width: 1580px;
}
.float-l {
	float: left;
}
.float-r {
	float: right;
}
.clear::after {
	content: ""; display: block; clear: both;
} 
.img-cover,.overflow-h {
	overflow: hidden; 
}

.img-cover img{
	transition: all 0.3s; object-fit: cover; width: 100%; height: 100%;
}
.img-cover:hover img {	
	transform: scale(1.1);
}

/* 栅格系统（12列） */
.row {
	display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--space-3);
}

[class*="col-"] {
	min-width: 0;
}

.col-1 {
	grid-column: span 1;
}

.col-2 {
	grid-column: span 2;
}

.col-3 {
	grid-column: span 3;
}

.col-4 {
	grid-column: span 4;
}

.col-5 {
	grid-column: span 5;
}

.col-6 {
	grid-column: span 6;
}

.col-7 {
	grid-column: span 7;
}

.col-8 {
	grid-column: span 8;
}

.col-9 {
	grid-column: span 9;
}

.col-10 {
	grid-column: span 10;
}

.col-11 {
	grid-column: span 11;
}

.col-12 {
	grid-column: span 12;
}



/* Flex 布局 */
.flex {
	display: flex;
}

.inline-flex {
	display: inline-flex;
}

.flex-row {
	flex-direction: row;
}

.flex-col {
	flex-direction: column;
}

.items-start {
	align-items: flex-start;
}

.items-center {
	align-items: center;
}

.items-end {
	align-items: flex-end;
}

.justify-start {
	justify-content: flex-start;
}

.justify-center {
	justify-content: center;
}

.justify-end {
	justify-content: flex-end;
}

.justify-between {
	justify-content: space-between;
}

.justify-around {
	justify-content: space-around;
}

.flex-wrap {
	flex-wrap: wrap;
}

.gap-1 {
	gap: var(--space-1);
}

.gap-2 {
	gap: var(--space-2);
}

.gap-3 {
	gap: var(--space-3);
}

.gap-4 {
	gap: var(--space-4);
}

.gap-5 {
	gap: var(--space-5);
}




/* 间距工具（合并写法示例） */
.mg-1 {
	margin: var(--space-1);
}

.mgt-1,
.mgy-1 {
	margin-top: var(--space-1);
}

.mgr-1,
.mgx-1 {
	margin-right: var(--space-1);
}

.mgb-1,
.mgy-1 {
	margin-bottom: var(--space-1);
}

.mgl-1,
.mgx-1 {
	margin-left: var(--space-1);
}

.pd-1 {
	padding: var(--space-1);
}

.pdt-1,
.pdy-1 {
	padding-top: var(--space-1);
}

.pdr-1,
.pdx-1 {
	padding-right: var(--space-1);
}

.pdb-1,
.pdy-1 {
	padding-bottom: var(--space-1);
}

.pdl-1,
.pdx-1 {
	padding-left: var(--space-1);
}

.mg-2 {
	margin: var(--space-2);
}

.mgt-2,
.mgy-2 {
	margin-top: var(--space-2);
}

.mgr-2,
.mgx-2 {
	margin-right: var(--space-2);
}

.mgb-2,
.mgy-2 {
	margin-bottom: var(--space-2);
}

.mgl-2,
.mgx-2 {
	margin-left: var(--space-2);
}

.pd-2 {
	padding: var(--space-2);
}

.pdt-2,
.pdy-2 {
	padding-top: var(--space-2);
}

.pdr-2,
.pdx-2 {
	padding-right: var(--space-2);
}

.pdb-2,
.pdy-2 {
	padding-bottom: var(--space-2);
}

.pdl-2,
.pdx-2 {
	padding-left: var(--space-2);
}

.mg-3 {
	margin: var(--space-3);
}

.mgt-3,
.mgy-3 {
	margin-top: var(--space-3);
}

.mgr-3,
.mgx-3 {
	margin-right: var(--space-3);
}

.mgb-3,
.mgy-3 {
	margin-bottom: var(--space-3);
}

.mgl-3,
.mgx-3 {
	margin-left: var(--space-3);
}

.pd-3 {
	padding: var(--space-3);
}

.pdt-3,
.pdy-3 {
	padding-top: var(--space-3);
}

.pdr-3,
.pdx-3 {
	padding-right: var(--space-3);
}

.pdb-3,
.pdy-3 {
	padding-bottom: var(--space-3);
}

.pdl-3,
.pdx-3 {
	padding-left: var(--space-3);
}

.mg-4 {
	margin: var(--space-4);
}

.mgt-4,
.mgy-4 {
	margin-top: var(--space-4);
}

.mgr-4,
.mgx-4 {
	margin-right: var(--space-4);
}

.mgb-4,
.mgy-4 {
	margin-bottom: var(--space-4);
}

.mgl-4,
.mgx-4 {
	margin-left: var(--space-4);
}

.pd-4 {
	padding: var(--space-4);
}

.pdt-4,
.pdy-4 {
	padding-top: var(--space-4);
}

.pdr-4,
.pdx-4 {
	padding-right: var(--space-4);
}

.pdb-4,
.pdy-4 {
	padding-bottom: var(--space-4);
}

.pdl-4,
.pdx-4 {
	padding-left: var(--space-4);
}

.mg-5 {
	margin: var(--space-5);
}

.mgt-5,
.mgy-5 {
	margin-top: var(--space-5);
}

.mgr-5,
.mgx-5 {
	margin-right: var(--space-5);
}

.mgb-5,
.mgy-5 {
	margin-bottom: var(--space-5);
}

.mgl-5,
.mgx-5 {
	margin-left: var(--space-5);
}

.pd-5 {
	padding: var(--space-5);
}

.pdt-5,
.pdy-5 {
	padding-top: var(--space-5);
}

.pdr-5,
.pdx-5 {
	padding-right: var(--space-5);
}

.pdb-5,
.pdy-5 {
	padding-bottom: var(--space-5);
}

.pdl-5,
.pdx-5 {
	padding-left: var(--space-5);
}

.mg-6 {
	margin: var(--space-6);
}

.mgt-6,
.mgy-6 {
	margin-top: var(--space-6);
}

.mgr-6,
.mgx-6 {
	margin-right: var(--space-6);
}

.mgb-6,
.mgy-6 {
	margin-bottom: var(--space-6);
}

.mgl-6,
.mgx-6 {
	margin-left: var(--space-6);
}

.pd-6 {
	padding: var(--space-6);
}

.pdt-6,
.pdy-6 {
	padding-top: var(--space-6);
}

.pdr-6,
.pdx-6 {
	padding-right: var(--space-6);
}

.pdb-6,
.pdy-6 {
	padding-bottom: var(--space-6);
}

.pdl-6,
.pdx-6 {
	padding-left: var(--space-6);
}

.mg-7 {
	margin: var(--space-7);
}

.mgt-7,
.mgy-7 {
	margin-top: var(--space-7);
}

.mgr-7,
.mgx-7 {
	margin-right: var(--space-7);
}

.mgb-7,
.mgy-7 {
	margin-bottom: var(--space-7);
}

.mgl-7,
.mgx-7 {
	margin-left: var(--space-7);
}

.pd-7 {
	padding: var(--space-7);
}

.pdt-7,
.pdy-7 {
	padding-top: var(--space-7);
}

.pdr-7,
.pdx-7 {
	padding-right: var(--space-7);
}

.pdb-7,
.pdy-7 {
	padding-bottom: var(--space-7);
}

.pdl-7,
.pdx-7 {
	padding-left: var(--space-7);
}

.mg-8 {
	margin: var(--space-8);
}

.mgt-8,
.mgy-8 {
	margin-top: var(--space-8);
}

.mgr-8,
.mgx-8 {
	margin-right: var(--space-8);
}

.mgb-8,
.mgy-8 {
	margin-bottom: var(--space-8);
}

.mgl-8,
.mgx-8 {
	margin-left: var(--space-8);
}

.pd-8 {
	padding: var(--space-8);
}

.pdt-8,
.pdy-8 {
	padding-top: var(--space-8);
}

.pdr-8,
.pdx-8 {
	padding-right: var(--space-8);
}

.pdb-8,
.pdy-8 {
	padding-bottom: var(--space-8);
}

.pdl-8,
.pdx-8 {
	padding-left: var(--space-8);
}

.mg-9 {
	margin: var(--space-9);
}

.mgt-9,
.mgy-9 {
	margin-top: var(--space-9);
}

.mgr-9,
.mgx-9 {
	margin-right: var(--space-9);
}

.mgb-9,
.mgy-9 {
	margin-bottom: var(--space-9);
}

.mgl-9,
.mgx-9 {
	margin-left: var(--space-9);
}

.pd-9 {
	padding: var(--space-9);
}

.pdt-9,
.pdy-9 {
	padding-top: var(--space-9);
}

.pdr-9,
.pdx-9 {
	padding-right: var(--space-9);
}

.pdb-9,
.pdy-9 {
	padding-bottom: var(--space-9);
}

.pdl-9,
.pdx-9 {
	padding-left: var(--space-9);
}

.mg-10 {
	margin: var(--space-10);
}

.mgt-10,
.mgy-10 {
	margin-top: var(--space-10);
}

.mgr-10,
.mgx-10 {
	margin-right: var(--space-10);
}

.mgb-10,
.mgy-10 {
	margin-bottom: var(--space-10);
}

.mgl-10,
.mgx-10 {
	margin-left: var(--space-10);
}

.pd-10 {
	padding: var(--space-10);
}

.pdt-10,
.pdy-10 {
	padding-top: var(--space-10);
}

.pdr-10,
.pdx-10 {
	padding-right: var(--space-10);
}

.pdb-10,
.pdy-10 {
	padding-bottom: var(--space-10);
}

.pdl-10,
.pdx-10 {
	padding-left: var(--space-10);
}

.mg-11 {
	margin: var(--space-11);
}

.mgt-11,
.mgy-11 {
	margin-top: var(--space-11);
}

.mgr-11,
.mgx-11 {
	margin-right: var(--space-11);
}

.mgb-11,
.mgy-11 {
	margin-bottom: var(--space-11);
}

.mgl-11,
.mgx-11 {
	margin-left: var(--space-11);
}

.pd-11 {
	padding: var(--space-11);
}

.pdt-11,
.pdy-11 {
	padding-top: var(--space-11);
}

.pdr-11,
.pdx-11 {
	padding-right: var(--space-11);
}

.pdb-11,
.pdy-11 {
	padding-bottom: var(--space-11);
}

.pdl-11,
.pdx-11 {
	padding-left: var(--space-11);
}

.mg-12 {
	margin: var(--space-12);
}

.mgt-12,
.mgy-12 {
	margin-top: var(--space-12);
}

.mgr-12,
.mgx-12 {
	margin-right: var(--space-12);
}

.mgb-12,
.mgy-12 {
	margin-bottom: var(--space-12);
}

.mgl-12,
.mgx-12 {
	margin-left: var(--space-12);
}

.pd-12 {
	padding: var(--space-12);
}

.pdt-12,
.pdy-12 {
	padding-top: var(--space-12);
}

.pdr-12,
.pdx-12 {
	padding-right: var(--space-12);
}

.pdb-12,
.pdy-12 {
	padding-bottom: var(--space-12);
}

.pdl-12,
.pdx-12 {
	padding-left: var(--space-12);
}

.mg-13 {
	margin: var(--space-13);
}

.mgt-13,
.mgy-13 {
	margin-top: var(--space-13);
}

.mgr-13,
.mgx-13 {
	margin-right: var(--space-13);
}

.mgb-13,
.mgy-13 {
	margin-bottom: var(--space-13);
}

.mgl-13,
.mgx-13 {
	margin-left: var(--space-13);
}

.pd-13 {
	padding: var(--space-13);
}

.pdt-13,
.pdy-13 {
	padding-top: var(--space-13);
}

.pdr-13,
.pdx-13 {
	padding-right: var(--space-13);
}

.pdb-13,
.pdy-13 {
	padding-bottom: var(--space-13);
}

.pdl-13,
.pdx-13 {
	padding-left: var(--space-13);
}

/* 文本大小工具 */
.text-0 {
	font-size: 0;
}
.text-14 {
	font-size: var(--font-size-14);
}

.text-16 {
	font-size: var(--font-size-16);
}

.text-18 {
	font-size: var(--font-size-18);
}

.text-20 {
	font-size: var(--font-size-20);
}

.text-22 {
	font-size: var(--font-size-22);
}

.text-24 {
	font-size: var(--font-size-24);
}

.text-30 {
	font-size: var(--font-size-30);
}

.text-36 {
	font-size: var(--font-size-36);
}

.text-48 {
	font-size: var(--font-size-48);
}

.text-60 {
	font-size: var(--font-size-60);
}

/* 文本与背景、边框与阴影 */
.text-primary {
	color: var(--color-primary);
}

.text-secondary {
	color: var(--color-secondary);
}

.text-default {
	color: var(--color-text);
}

.text-muted {
	color: var(--color-text-muted);
}

.text-white {
	color: var(--color-white);
}

.text-white-muted {
	color: var(--color-white-muted);
}

/* .text */
.text-center {
	text-align: center;
}

.text-right {
	text-align: right;
}

.bg-primary {
	background-color: var(--color-primary);
}

.bg-secondary {
	background-color: var(--color-secondary);
}

.bg-white {
	background-color: var(--color-white);
}

.bg-body {
	background-color: var(--color-body-bg);
}

.border {
	border: 1px solid var(--color-border);
}

.border-light {
	border: 1px solid var(--color-border-light);
}

.rounded {
	border-radius: var(--radius-base);
}

.shadow {
	box-shadow: var(--shadow-base);
}
.ani {
	transition: 0.3s all;
}
/* 按钮体系 */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	height: var(--btn-h-md);
	/* padding: var(--btn-pad-y) var(--btn-pad-x); */
	border-radius: var(--radius-base);
	border: 1px solid transparent;
	font-size: var(--font-size-16);
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
	transition: 0.3s all;
}
.btn-cir {
	border-radius: 999px;
}
.btn-sm {
	height: var(--btn-h-sm);
	font-size: var(--font-size-14);
}

.btn-lg {
	height: var(--btn-h-lg);
	font-size: var(--font-size-18);
}

.btn-round {
	border-radius: 999px;
}

/* 实心按钮 */
.btn-primary {
	background: var(--color-primary);
	color: var(--color-white);
	border-color: var(--color-primary);
}
.btn-primary:hover {
	color: var(--color-white);
}
.btn-secondary {
	background: var(--color-secondary);
	color: var(--color-white);
	border-color: var(--color-secondary);
}

.btn-default {
	background: var(--color-text);
	color: var(--color-white);
	border-color: var(--color-text);
}
.btn-white {
	background: var(--color-white);
	color: var(--color-text);
	border-color: var(--color-text);
}

/* 镂空按钮（outline） */
.btn-outline {
	background: transparent;
}

.btn-primary.btn-outline {
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.btn-secondary.btn-outline {
	color: var(--color-secondary);
	border-color: var(--color-secondary);
}

.btn-default.btn-outline {
	color: var(--color-text);
	border-color: var(--color-border);
}

.btn-more,.btn-more-md {
	display: inline-block;
	height: 44px;
	line-height: 44px;
	font-size: var(--font-size-14);
	text-align: center;
	min-width: 120px;
	border-radius: 999px;
	border: 1px solid var(--color-border);
	background-color: var(--color-white);
	color: var(--color-primary);
}
.btn-more-md {
	height: 48px;
	font-size: var(--font-size-16);
}
.btn-more:hover,.btn-more-md:hover {
	background-color: var(--color-primary);
	color: var(--color-white);
}
/* 悬停与按压（简要） */
.btn:hover {
	filter: brightness(1.05);
}

.btn:active {
	filter: brightness(0.95);
}
.btn-default.btn-outline.btn:hover {
	background-color: var(--color-secondary);
	color: var(--color-white);
}
/* 示例头尾区域（若存在） */
.site-header {
	background: var(--color-white);
	color: var(--color-text);
	position: relative;
	z-index: 99;
}

.site-footer {
	background: var(--color-text);
	color: var(--color-white-muted);
}

/* Header Navigation */

.site-header .logo {
	display: inline-flex;
	align-items: center;
	gap: var(--space-2);
	color: var(--color-text);
}

.site-header .logo img {
	height: 70px;
	object-fit: contain;
}

.site-nav {
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}
.site-nav-toggle {
	display: none;
}
.nav-item-subtoggle {
	display: none;
}
.site-nav .nav-item {
	position: relative;
	z-index: 9;
}

.site-nav .nav-link {
	height: 120px;
	display: flex;
	align-items: center;
	padding: 0 var(--space-6);
	color: var(--color-text);
	font-size: var(--font-size-18);
}

.site-nav .nav-item:hover .nav-link,
.site-nav .nav-item.active .nav-link,
.site-nav .nav-item.active:hover .nav-link
{
	color: var(--color-white);
}
.site-nav .nav-item.noactive .nav-link {
	color: var(--color-text);
}
.site-nav-active {
	position: absolute;
	background: var(--color-secondary);	
	left: 0;
	bottom: 0;
	width: 96px;
	top: 0;
}

/* 二级菜单样式 - 恢复原始样式 */
.site-nav .submenu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	background: var(--color-white);
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
}

.site-nav .nav-item:hover .submenu {
	opacity: 1;
	visibility: visible;
}

.site-nav .submenu-item {
	position: relative;
}

.site-nav .submenu-item a {
	display: block;
	padding: var(--space-4) var(--space-6);
	color: var(--color-text);
	transition: all 0.3s ease;
}

.site-nav .submenu-item:hover>a {
	background: var(--color-secondary);
	color: var(--color-white);
}

/* 三级菜单样式 - 与二级菜单保持一致 */
.site-nav .submenu-item-has-children {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.site-nav .submenu-item-has-children a {
	flex: 1;
}

.site-nav .submenu-third {
	position: absolute;
	top: 0;
	left: 100%;
	min-width: 200px;
	background: var(--color-white) ;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s ease;
	z-index: 10;
}

.site-nav .submenu-item-has-children:hover .submenu-third {
	opacity: 1;
	visibility: visible;
}

.site-nav .submenu-third .submenu-item a {
	display: block;
	padding: var(--space-4) var(--space-6);
	color: var(--color-text);
	transition: all 0.3s ease;
}

.site-nav .submenu-third .submenu-item:hover a {
	background: var(--color-secondary);
	color: var(--color-white);
}

/* 移动端样式保持不变 */


.ui-modal { position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 1000; display: none; }
.ui-modal.show { display: block; }
.ui-modal .ui-modal-box { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); background: var(--color-white); color: var(--color-text); border-radius: var(--radius-base); box-shadow: var(--shadow-base); width: min(480px, 92vw); padding: var(--space-6) var(--space-5); }
.ui-modal .ui-modal-close { position: absolute; right: var(--space-4); top: var(--space-4); font-size: 24px; line-height: 1; cursor: pointer; color: var(--color-text); }
.ui-modal .ui-modal-title { font-size: var(--font-size-20); margin-bottom: var(--space-3); }
.ui-modal .ui-modal-message { font-size: var(--font-size-16); line-height: 1.6; }
.ui-modal .ui-modal-actions { margin-top: var(--space-5); text-align: right; }
.ui-modal .ui-btn { display: inline-flex; align-items: center; justify-content: center; height: var(--btn-h-sm); padding: 0 var(--btn-pad-x); border-radius: var(--radius-base); border: 1px solid var(--color-border); background: var(--color-white); color: var(--color-text); cursor: pointer; }
.ui-modal .ui-btn-primary { background: var(--color-primary); color: var(--color-white); border-color: var(--color-primary); }
.ui-modal .ui-modal-box.ui-success { border: 2px solid rgba(83,120,184,0.25); }
.ui-modal .ui-modal-box.ui-error { border: 2px solid rgba(237,134,20,0.35); }

.site-nav .submenu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	opacity: 0;
	visibility: hidden;
	transform: translateY(100%);
	background: var(--color-white);
	color: var(--color-text);
	border: 1px solid var(--color-border);
	z-index: 20;
}

.site-nav .submenu .submenu-item a {
	display: block;
	padding: var(--space-2) var(--space-4);
	color: var(--color-text);
}

.site-nav .submenu-third .submenu-item a {
	display: block;
	background: var(--color-white);
}

.site-nav .submenu .submenu-item a:hover {
	background: var(--color-primary);
	color: var(--color-white);
}

.site-nav .nav-item:hover>.submenu {	
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* footer */
.site-footer a {
	color: var(--color-white-muted);
}

/* === Footer (start around line 421) === */
.site-footer .footer-main {
	padding: var(--space-9) 0;
}

.site-footer .footer-bottom {
	text-align: center;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding: var(--space-2) 0;
}

.site-footer .footer-brand {
	color: var(--color-white-muted);
}

.site-footer .footer-logo {
	height: 150px;
	display: inline-block;
	font-weight: 300;
}

.site-footer .footer-contact {
	list-style: none;
	border-top: 1px solid rgba(255, 255, 255, 0.10);
}

.site-footer .footer-contact li {
	display: flex;
	align-items: center;
	gap: var(--space-2);
	margin-bottom: var(--space-3);
}

.site-footer .footer-contact svg,
.site-footer .footer-contact i {
	color: var(--color-white);
}

.footer-columns {
	padding-top: 100px;
}

.site-footer .footer-columns dl {
	margin: 0;
}
.site-footer .footer-columns dt {
	color: var(--color-white);
	height: 51px;
	padding-bottom: var(--space-3);
	margin-bottom: var(--space-3);
	border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}

.site-footer .footer-columns dd {
	margin: 0 0 var(--space-2);
}

.site-footer .footer-columns a {
	color: var(--color-white-muted);
}

.site-footer .footer-columns a:hover {
	color: var(--color-white);
}

/* === Footer end === */
/* m-title-link */
.m-title-text {
	position: relative;
}
.m-title-text::after {
	content: "";
	position: absolute;
	height: 3px;
	background-color: var(--color-secondary);
	width: 70px;
	left: 0;
	bottom: -6px;
}
.m-title-left {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: var(--space-2);
}
.m-title-link .btn {
	margin-left: 12px;
}
.m-title-link .btn.last {
	background-color: #ecf0f3;
}
.m-title-center {
	justify-content: center; text-align: center;
}
.m-title-center .m-title-text {
	display: inline-flex;
}
.m-title-center .m-title-text::after {
	left: 50%;
	transform: translateX(-50%);
}
/* ny-banner */
.ny-banner {
	height: 580px;
	color: var(--color-white);
	background-size: cover;
	background-position: center;
	text-shadow: 0 0 12px rgba(0, 0, 0, 0.15);
	position: relative;
}
.ny-banner-nav {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 80px;
	line-height: 80px;
	z-index: 9;
	background-color: rgba(255,255,255,0.8) ;
	font-size: 0;
}
.ny-banner-nav .container {
	white-space: nowrap; overflow: auto;
}
.ny-banner-nav a {
	display: inline-block; border-right: 1px solid var(--color-border); padding: 0 var(--space-8); font-size: var(--font-size-18);
}
.ny-banner-nav a:first-child {
	border-left: 1px solid var(--color-border);
}
.ny-banner-nav a.active, .ny-banner-nav a:hover {
	color: var(--color-white);
	background-color: var(--color-topic-primary);
}
/* index-partner */
.m-partner-list {	
	flex-wrap: wrap;
}
.m-partner .item {
	text-align: center;
	overflow: hidden;
	padding: 10px;
	width: 280px;
	height: 132px;
	background-color: var(--color-white);
	margin-bottom: 20px;
	font-size: 0;
	transition: all 0.3s ease-in-out;
}
.m-partner .item:hover {
	transform: translateY(-10px); cursor: pointer;
	box-shadow: 0 0 14px rgba(0, 0, 0, 0.2);
}
.m-partner .item:hover img {
	transform: scale(1.1);
}
.m-partner .item::after {
	content: "";
	display: inline-block;
	height: 100%;
	vertical-align: middle;
}
.m-partner .item img {
	width:  99%;
	vertical-align: middle;
	transition: all 0.3s ease-in-out;
}
.m-partner-list .item.last {
	margin: 0; height: 0; padding: 0;
}
/* c-form */
.c-form {
	padding: 10px;
}
.fc-form-input {
	height: 56px;
}
.fc-form-input,
.fc-form-textarea {
	outline: none;
	padding: 10px 12px;
	width: 100%;	
	border-radius: var(--radius-base);
	background-color: var(--color-body-bg);
	border: 1px solid var(--color-border);
}
.fc-form-textarea {
	min-height: 160px;
}
.c-form-group {
	padding: 15px 0;
}
.c-form-item {
	flex:1;
}
/* biz-article-content */
.article-content {
	border-top: 1px solid var(--color-border);
	border-bottom: 1px solid var(--color-border);
}
.article-control-prev {
	padding-right: var(--space-2);
}
.article-control-next {
	padding-left: var(--space-2);
}
.article-control-prev,.article-control-next {
	width: 50%; align-items: center;
}
.article-control-prev .btn,.article-control-next .btn {
	word-break: normal; white-space: nowrap;
}
/* pages */
.pages {
	text-align: center;
	font-size: 18px;
	padding-top: var(--space-6);
	padding-bottom: var(--space-6);
}
.pages .item {
	display: inline-block;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-base);
	padding: 0 15px;
	min-width: 60px;
	height: 56px;
	line-height: 56px;
	margin: 0 6px;
	transition: all 0.3s ease-in-out;
	vertical-align: middle;
	background-color: var(--color-white);
	margin-bottom: var(--space-4);
}
.pages .item .icon {
	font-size: 24px;
}
.pages .item:hover,.pages .item.active {
	background-color: var(--color-primary);
	color: var(--color-white);
	border-color: var(--color-primary);
}
.pages .item:hover {
	opacity: 0.7;
}
.pages .item.disable {
	color: var(--color-border);
	border-color: var(--color-border-light);
	background-color: var(--color-white);
	cursor: not-allowed;
}

/* 动画类 */
@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes zoomIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes fadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes fadeInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* 悬浮组件样式 */
.float-top {
	position: absolute;
	top: -50px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 28px;
	color: var(--color-white);
	cursor: pointer;
	width: 40px;
	height: 40px;
	line-height: 36px;
	text-align: center;
	background-color: var(--color-text);
	opacity: 0.5;
	border-radius: 50%;
	box-shadow: var(--shadow-base);
	display: none;

}

/* 面包屑导航样式 */
.ny-bread {
  display: flex;
  align-items: center;
  margin-bottom: 20px;
}

.ny-bread .ri-map-pin-line {
  margin-right: 8px;
  color: #999;
}

.bread-item {
  color: #666;
  text-decoration: none;
  transition: color 0.3s;
}

.bread-item:hover {
  color: #1890ff;
  text-decoration: none;
}

.bread-item.bread-current {
  color: #1890ff;
  font-weight: 500;
}

.bread-separator {
  color: #999;
  margin: 0 8px;
}
.float-top:hover {
    transform: translateX(-50%) scale(1.1);
	opacity: 0.8;
}
.float-contact {
    position: fixed;
    bottom: var(--space-8);
    right: var(--space-8);
    z-index: 999;
}

.float-contact-btn {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--color-primary);
    color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: var(--shadow-base);
    transition: all 0.3s ease;
    font-size: 28px;
}

.float-contact-btn:hover {
    background: var(--color-secondary);
    transform: scale(1.1);
}

.float-contact-menu {
    position: absolute;
    bottom: 100%;
    right: 0;
    margin-bottom: var(--space-3);
    background: var(--color-white);
    border-radius: var(--radius-base);
    box-shadow: var(--shadow-base);
    padding: var(--space-3);
    display: none;
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.3s ease;
}

.float-contact-menu.show {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

.float-contact-menu::after {
    content: '';
    position: absolute;
    top: 100%;
    right: var(--space-4);
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid var(--color-white);
}

.float-contact-menu .contact-item {
    display: block;
    padding: var(--space-1) var(--space-2);
    margin-bottom: var(--space-2);
    border-radius: var(--radius-base);
    text-align: left;
    color: var(--color-text);
    text-decoration: none;
    transition: all 0.3s ease;
    font-size: var(--font-size-14);
	min-width: 180px;
}

.float-contact-menu .contact-item:last-child {
    margin-bottom: 0;
}

.float-contact-menu .contact-item:hover {
    background: var(--color-primary);
    color: var(--color-white);
}

.float-contact-menu .contact-item .icon {
    font-size: 20px;
    margin-bottom: var(--space-1);
	vertical-align: middle;
	margin: 0;
}
.float-contact-menu .contact-item span {
	vertical-align: middle; display: inline-block;
}

/* 留言弹窗样式 */
.contact-modal {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    z-index: 1000;
    display: none;
    align-items: center;
    justify-content: center;
}

.contact-modal.show {
    display: flex;
}

.contact-modal .modal-content {
    background: var(--color-white);
    border-radius: var(--radius-base);
    box-shadow: var(--shadow-base);
    width: min(600px, 92vw);
    max-height: 80vh;
    overflow-y: auto;
    position: relative;
}

.contact-modal .modal-header {
    padding: var(--space-4) var(--space-5);
    border-bottom: 1px solid var(--color-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.contact-modal .modal-title {
    font-size: var(--font-size-20);
    color: var(--color-text);
    margin: 0;
}

.contact-modal .modal-close {
    background: none;
    border: none;
    font-size: 24px;
    color: var(--color-text-muted);
    cursor: pointer;
    padding: 0;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.contact-modal .modal-close:hover {
    background: var(--color-body-bg);
    color: var(--color-text);
}

.contact-modal .modal-body {
    padding: var(--space-5);
}