@charset "UTF-8";
/**
 * 贞匠装饰 · 全新设计系统 (app.css)
 *
 * 取代原 site.css(248KB,原站抓取残留) + theme.css(12KB)。
 * 内容标记(含 Elementor 结构类)保持不变,视觉与动效全部由此文件定义。
 *
 * 设计语言:深海军蓝 + 香槟金 / 白色画布 / 大留白 / 丝滑动效
 *
 * 索引:
 *   1  设计令牌与基础
 *   2  布局原语(wrapper / elementor section·container·column·widget)
 *   3  页头导航(桌面 + 移动抽屉 + 搜索)
 *   4  Hero
 *   5  Elementor 组件(标题/文本/图片/按钮/图标盒/分隔线/图标列表/告示/社交)
 *   6  图片轮播 + 品牌走马灯
 *   7  图库(justified / WordPress 原生) + 灯箱
 *   8  文章卡片 / 分页 / 相关文章 / 预约 CTA
 *   9  正文排版(entry-content / 区块)
 *   10 预约表单
 *   11 页脚 / 返回顶部
 *   12 404 / 无结果 / 辅助
 *   13 动效系统(滚动显现 / 头部收缩)
 *   14 响应式与偏好
 */

/* ==================================================================
 * 1. 设计令牌与基础
 * ================================================================== */

:root {
	/* 品牌 */
	--zj-navy-950: #0f2436;
	--zj-navy-900: #152f45;
	--zj-navy-800: #1c3a52;
	--zj-navy-700: #24486a;
	--zj-navy-100: #e8eff5;
	--zj-gold-600: #b08c50;
	--zj-gold-500: #c9a266;
	--zj-gold-400: #d9bc85;
	--zj-gold-100: #f6eedd;
	/* 中性 */
	--zj-ink: #1d2a35;
	--zj-body: #47555f;
	--zj-mute: #8494a0;
	--zj-line: #e5eaee;
	--zj-bg: #f5f8fa;
	--zj-card: #ffffff;
	/* 形状与投影 */
	--zj-radius: 16px;
	--zj-radius-sm: 10px;
	--zj-shadow-sm: 0 1px 2px rgba(21, 47, 69, .05), 0 3px 10px rgba(21, 47, 69, .05);
	--zj-shadow-md: 0 6px 22px rgba(21, 47, 69, .10);
	--zj-shadow-lg: 0 18px 48px rgba(15, 36, 54, .18);
	/* 动效 */
	--zj-ease: cubic-bezier(.22, .61, .36, 1);
	--zj-ease-out: cubic-bezier(.16, 1, .3, 1);
	/* 版式 */
	--zj-container: 1200px;
	--zj-gutter: clamp(16px, 4vw, 40px);
	--zj-wgap: 24px;
}

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
		"Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	line-height: 1.75;
	color: var(--zj-body);
	background: var(--zj-card);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

img,
svg,
video {
	max-width: 100%;
	height: auto;
}

a {
	color: var(--zj-navy-700);
	text-decoration: none;
	transition: color .25s var(--zj-ease);
}

a:hover {
	color: var(--zj-gold-600);
}

h1, h2, h3, h4, h5, h6 {
	color: var(--zj-ink);
	line-height: 1.35;
	font-weight: 700;
	margin: 0 0 .6em;
	letter-spacing: .01em;
}

p {
	margin: 0 0 1em;
}

button {
	font: inherit;
	cursor: pointer;
}

:focus-visible {
	outline: 2px solid var(--zj-gold-500);
	outline-offset: 2px;
	border-radius: 4px;
}

::selection {
	background: var(--zj-gold-500);
	color: #fff;
}

/* 无障碍辅助 */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	width: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	word-wrap: normal !important;
}

.skip-link {
	position: absolute !important;
	left: -9999px;
	top: 0;
	z-index: 100000;
}

.skip-link:focus {
	left: 8px;
	top: 8px;
	background: var(--zj-navy-800);
	color: #fff;
	padding: 10px 18px;
	border-radius: 8px;
}

/* 原站残留的元素隐藏类:有 JS 的浏览器里按滚动显现处理,这里兜底隐藏 */
.elementor-screen-only {
	display: none;
}

/* 原站 Elementor 绝对定位的装饰图标(线条花纹):设计语言已更换,不再使用 */
.elementor-widget-icon.elementor-absolute {
	display: none;
}

/* ==================================================================
 * 2. 布局原语
 * ================================================================== */

.wrapper {
	max-width: var(--zj-container);
	margin-inline: auto;
	padding-inline: var(--zj-gutter);
}

/* 内容区:全出血 —— 分区自带 .elementor-container 控制宽度 */
.site-content .wrapper {
	max-width: none;
	padding-inline: 0;
}

#content {
	display: block;
}

/* —— Elementor 结构原语 —— */

.elementor-section {
	position: relative;
	width: 100%;
}

.site-content .elementor-top-section {
	padding-block: clamp(36px, 5vw, 76px);
}

.elementor-container {
	max-width: var(--zj-container);
	margin-inline: auto;
	padding-inline: var(--zj-gutter);
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	width: 100%;
}

/* 列间距:默认 12px —— 列自带内缩,容器内边距等量补偿,
 * 使列内内容与栅格精确对齐(不能用负外边距:会覆盖 auto 居中) */
.elementor-column-gap-default {
	--zj-colpad: 12px;
	padding-inline: calc(var(--zj-gutter) - var(--zj-colpad));
}

.elementor-column-gap-no {
	--zj-colpad: 0px;
}

.elementor-column-gap-default > .elementor-column {
	padding-inline: var(--zj-colpad);
}

.elementor-column {
	width: 100%;
	min-width: 0;
}

.elementor-col-100 { width: 100%; }
.elementor-col-50  { width: 50%; }
.elementor-col-33  { width: 33.333%; }
.elementor-col-25  { width: 25%; }
.elementor-col-66  { width: 66.666%; }

.elementor-column-wrap,
.elementor-widget-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
	min-width: 0;
	gap: var(--zj-wgap);
}

.elementor-widget-wrap > * {
	max-width: 100%;
}

.elementor-widget {
	width: 100%;
	min-width: 0;
}

.elementor-widget__width-auto {
	width: auto;
	flex: 0 0 auto;
}

.elementor-widget__width-initial {
	width: initial;
}

/* 分区对齐 */
.elementor-section-content-middle > .elementor-container { align-items: center; }
.elementor-section-items-middle > .elementor-container   { align-items: center; }
.elementor-section-items-bottom > .elementor-container   { align-items: flex-end; }

/* 内容里的动效残留容器(原 Elementor motion-effects),保证不产生偏移 */
.elementor-motion-effects-element > .elementor-widget-container {
	transform: none !important;
}

/* ==================================================================
 * 3. 页头导航
 * ================================================================== */

.site-header {
	position: sticky;
	top: 0;
	z-index: 990;
	background: rgba(255, 255, 255, .94);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid transparent;
	transition: box-shadow .35s var(--zj-ease), border-color .35s var(--zj-ease),
		background .35s var(--zj-ease);
}

body.zj-scrolled .site-header {
	border-bottom-color: var(--zj-line);
	box-shadow: 0 10px 30px rgba(15, 36, 54, .07);
}

#header-content {
	/* 原标记保留的容器 */
}

.site-header-main {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	min-height: 68px;
}

/* —— 品牌区 —— */

.site-branding {
	display: flex;
	align-items: center;
	flex: 0 0 auto;
}

.site-identity {
	display: flex;
	align-items: baseline;
	gap: 12px;
}

.site-title {
	margin: 0;
	font-size: 22px;
	font-weight: 800;
	letter-spacing: .06em;
	line-height: 1;
}

.site-title a {
	color: var(--zj-navy-800);
	transition: color .25s var(--zj-ease);
}

.site-title a:hover {
	color: var(--zj-gold-600);
}

/* 品牌名后的金色点缀(纯 CSS,不动标记) */
.site-title a::after {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-left: 6px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--zj-gold-400), var(--zj-gold-600));
	vertical-align: 2px;
}

.site-description {
	margin: 0;
	font-size: 12px;
	color: var(--zj-mute);
	letter-spacing: .14em;
}

/* —— 汉堡按钮(移动) —— */

.menu-toggle {
	display: none; /* 桌面隐藏 */
	appearance: none;
	border: 1.5px solid var(--zj-navy-100);
	background: var(--zj-card);
	color: var(--zj-navy-800);
	width: 44px;
	height: 44px;
	border-radius: 12px;
	align-items: center;
	justify-content: center;
	transition: background .25s var(--zj-ease), border-color .25s var(--zj-ease),
		color .25s var(--zj-ease);
}

.menu-toggle .icon {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

.menu-toggle .icon-close { display: none; }

/* "Menu"文字标签:图标按钮只留图形 */
.menu-toggle .menu-label {
	display: none;
}

body.primary-menu-open .menu-toggle .icon-bars { display: none; }
body.primary-menu-open .menu-toggle .icon-close { display: block; }

body.primary-menu-open .menu-toggle {
	background: var(--zj-navy-800);
	border-color: var(--zj-navy-800);
	color: #fff;
}

/* —— 桌面菜单 —— */

.site-primary-menu {
	flex: 1 1 auto;
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.primary-menu-container {
	display: flex;
	align-items: center;
}

.primary-menu {
	display: flex;
	align-items: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.primary-menu > li {
	position: relative;
}

.primary-menu a {
	display: flex;
	align-items: center;
	gap: 5px;
	padding: 10px 16px;
	font-size: 15.5px;
	font-weight: 600;
	color: var(--zj-ink);
	border-radius: 10px;
	position: relative;
	transition: color .25s var(--zj-ease), background .25s var(--zj-ease);
}

/* 悬停/当前的金色短下划线 */
.primary-menu a::after {
	content: "";
	position: absolute;
	left: 16px;
	right: 16px;
	bottom: 4px;
	height: 2.5px;
	border-radius: 2px;
	background: linear-gradient(90deg, var(--zj-gold-400), var(--zj-gold-600));
	transform: scaleX(0);
	transform-origin: left center;
	transition: transform .35s var(--zj-ease-out);
}

.primary-menu a:hover::after,
.primary-menu .current-menu-item > a::after,
.primary-menu .current-menu-ancestor > a::after {
	transform: scaleX(1);
}

.primary-menu .current-menu-item > a {
	color: var(--zj-gold-600);
}

.primary-menu a .icon-angle-down {
	width: 12px;
	height: 12px;
	fill: currentColor;
	opacity: .55;
	transition: transform .3s var(--zj-ease);
}

li.sub-menu-open > a .icon-angle-down,
li.menu-item-has-children:hover > a .icon-angle-down {
	transform: rotate(180deg);
}

/* 下拉展开按钮(桌面隐藏,仅移动端出现) */
.primary-menu .dropdown-toggle {
	display: none;
	appearance: none;
	background: none;
	border: 0;
	padding: 6px;
	color: var(--zj-mute);
}

.primary-menu .dropdown-toggle .icon {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

/* —— 下拉子菜单(桌面) —— */

.primary-menu .sub-menu {
	position: absolute;
	top: calc(100% + 10px);
	left: 8px;
	min-width: 208px;
	margin: 0;
	padding: 8px;
	list-style: none;
	background: var(--zj-card);
	border: 1px solid var(--zj-line);
	border-radius: 14px;
	box-shadow: var(--zj-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transform-origin: top center;
	transition: opacity .3s var(--zj-ease), transform .3s var(--zj-ease-out),
		visibility 0s linear .3s;
}

.primary-menu li.sub-menu-open > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

.primary-menu .sub-menu li {
	position: relative;
}

.primary-menu .sub-menu a {
	display: block;
	padding: 10px 14px;
	border-radius: 9px;
	font-size: 14.5px;
	font-weight: 500;
	color: var(--zj-body);
	white-space: nowrap;
}

.primary-menu .sub-menu a::after {
	display: none;
}

.primary-menu .sub-menu a:hover,
.primary-menu .sub-menu .current-menu-item > a {
	background: var(--zj-bg);
	color: var(--zj-gold-600);
}

/* 二级子菜单纵向展开(移动端逻辑复用;桌面极少出现) */
.sub-menu .sub-menu {
	position: static;
	box-shadow: none;
	border: 0;
	padding: 0 0 0 12px;
	min-width: 0;
	opacity: 1;
	visibility: visible;
	transform: none;
	display: none;
}

li.sub-menu-open > .sub-menu {
	display: block;
}

/* —— 搜索 —— */

.primary-search-wrapper {
	flex: 0 0 auto;
}

.menu-search-main-toggle {
	appearance: none;
	background: none;
	border: 0;
	padding: 8px;
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--zj-navy-800);
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .08em;
	transition: color .25s var(--zj-ease);
}

.menu-search-main-toggle:hover {
	color: var(--zj-gold-600);
}

.menu-search-main-toggle .icon {
	width: 19px;
	height: 19px;
	fill: currentColor;
}

.menu-search-main-toggle .icon-close { display: none; }
body.search-open .menu-search-main-toggle .icon-search { display: none; }
body.search-open .menu-search-main-toggle .icon-close { display: block; }
.menu-search-main-toggle .menu-label-prefix { display: none; }

#search-container-main .search-container {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: rgba(255, 255, 255, .97);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	border-bottom: 1px solid var(--zj-line);
	box-shadow: 0 24px 40px rgba(15, 36, 54, .10);
	padding: 18px clamp(16px, 4vw, 40px);
	display: none;
}

body.search-open #search-container-main .search-container {
	display: block;
	animation: zj-fade-slide .35s var(--zj-ease-out);
}

.search-form {
	display: flex;
	gap: 10px;
	max-width: 640px;
	margin-inline: auto;
}

.search-form .search-field {
	flex: 1;
	border: 1.5px solid var(--zj-line);
	border-radius: 12px;
	padding: 11px 16px;
	font-size: 15px;
	color: var(--zj-ink);
	background: var(--zj-card);
	transition: border-color .25s var(--zj-ease), box-shadow .25s var(--zj-ease);
}

.search-form .search-field:focus {
	outline: none;
	border-color: var(--zj-gold-500);
	box-shadow: 0 0 0 4px rgba(201, 162, 102, .16);
}

.search-form .search-submit {
	appearance: none;
	border: 0;
	border-radius: 12px;
	background: var(--zj-navy-800);
	color: #fff;
	width: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .25s var(--zj-ease), transform .25s var(--zj-ease);
}

.search-form .search-submit:hover {
	background: var(--zj-gold-600);
	transform: translateY(-1px);
}

.search-form .search-submit .icon {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

/* ==================================================================
 * 4. Hero
 * ================================================================== */

.custom-header {
	position: relative;
	overflow: hidden;
	background: var(--zj-navy-900);
}

.custom-header .wrapper {
	position: static;
}

.custom-header .wp-custom-header img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: .42;
	filter: saturate(.8);
	z-index: 0;
}

.custom-header .custom-header-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	background: linear-gradient(100deg,
		rgba(15, 36, 54, .94) 6%,
		rgba(21, 47, 69, .74) 52%,
		rgba(28, 58, 82, .42) 100%);
}

.custom-header-media {
	position: static;
}

.custom-header-content {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	min-height: clamp(280px, 40vw, 460px);
	padding-block: clamp(40px, 6vw, 80px);
}

.entry-container {
	max-width: 720px;
}

.entry-container .entry-title {
	margin: 0 0 14px;
	color: #fff;
	font-size: clamp(28px, 4.4vw, 48px);
	font-weight: 800;
	letter-spacing: .05em;
	line-height: 1.25;
}

.site-header-text {
	margin: 0 0 26px;
	color: rgba(255, 255, 255, .82);
	font-size: clamp(15px, 1.6vw, 18px);
	letter-spacing: .12em;
}

/* Hero 按钮 */
.more-link {
	display: inline-block;
}

.more-link .more-button {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 13px 34px;
	border-radius: 999px;
	background: linear-gradient(120deg, var(--zj-gold-400), var(--zj-gold-600));
	color: var(--zj-navy-950);
	font-size: 15.5px;
	font-weight: 700;
	letter-spacing: .08em;
	box-shadow: 0 10px 26px rgba(201, 162, 102, .38);
	transition: transform .35s var(--zj-ease-out), box-shadow .35s var(--zj-ease-out),
		filter .3s var(--zj-ease);
}

.more-link:hover .more-button {
	transform: translateY(-3px);
	box-shadow: 0 16px 34px rgba(201, 162, 102, .5);
	filter: brightness(1.05);
	color: var(--zj-navy-950);
}

/* 文章页 hero:日期 + 标题 */
.custom-header .entry-meta {
	margin: 0 0 10px;
	font-size: 13px;
	letter-spacing: .12em;
	color: var(--zj-gold-400);
}

/* 发布日期与更新日期之间的分隔点(标记里两个 <time> 相邻) */
.custom-header .entry-meta .updated::before {
	content: "·";
	margin: 0 7px;
	opacity: .75;
}

.custom-header .entry-meta a {
	color: inherit;
}

.custom-header .entry-title {
	font-size: clamp(24px, 3.4vw, 38px);
}

.custom-header .entry-header {
	max-width: 860px;
}

/* ==================================================================
 * 5. Elementor 组件
 * ================================================================== */

/* —— 标题 —— */

.elementor-heading-title {
	margin: 0;
	padding: 0;
	line-height: 1.4;
	color: var(--zj-ink);
}

.elementor-heading-title.elementor-size-small  { font-size: 15px; }
.elementor-heading-title.elementor-size-medium { font-size: 19px; }
.elementor-heading-title.elementor-size-large  { font-size: clamp(22px, 2.6vw, 29px); }
.elementor-heading-title.elementor-size-xl     { font-size: clamp(26px, 3.2vw, 39px); }
.elementor-heading-title.elementor-size-xxl    { font-size: clamp(32px, 4.4vw, 56px); }

.elementor-widget-heading:not(:first-child) .elementor-heading-title {
	position: relative;
}

/* —— 正文文本 —— */

.elementor-widget-text-editor {
	color: var(--zj-body);
	font-size: 15.5px;
	line-height: 1.95;
}

.elementor-widget-text-editor p:last-child {
	margin-bottom: 0;
}

/* —— 图片 —— */

.elementor-widget-image img {
	border-radius: var(--zj-radius-sm);
	box-shadow: var(--zj-shadow-sm);
}

.elementor-widget-image a {
	display: block;
	line-height: 0;
}

.elementor-widget-image .elementor-animation-grow,
.elementor-widget-image .elementor-animation-float,
.elementor-widget-image .elementor-animation-rotate {
	transition: transform .5s var(--zj-ease-out), filter .5s var(--zj-ease);
}

.elementor-widget-image .elementor-animation-grow:hover { transform: scale(1.05); }
.elementor-widget-image .elementor-animation-float:hover { transform: translateY(-6px); }
.elementor-widget-image .elementor-animation-rotate:hover { transform: rotate(4deg); }

/* —— 按钮 —— */

.elementor-button-wrapper .elementor-button,
.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	padding: 13px 32px;
	border-radius: 999px;
	background: linear-gradient(120deg, var(--zj-gold-400), var(--zj-gold-600));
	color: var(--zj-navy-950);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .05em;
	border: 0;
	box-shadow: 0 8px 22px rgba(201, 162, 102, .35);
	transition: transform .35s var(--zj-ease-out), box-shadow .35s var(--zj-ease-out),
		color .25s var(--zj-ease);
}

.elementor-button-wrapper .elementor-button:hover,
.elementor-widget-button .elementor-button:hover {
	transform: translateY(-3px);
	box-shadow: 0 14px 30px rgba(201, 162, 102, .48);
	color: var(--zj-navy-950);
}

.elementor-button-wrapper .elementor-button .icon,
.elementor-widget-button .elementor-button .icon {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.elementor-button.elementor-size-sm {
	padding: 10px 24px;
	font-size: 14px;
}

/* —— 图标盒 —— */

.elementor-icon-box-wrapper {
	display: flex;
	align-items: flex-start;
	gap: 16px;
	background: var(--zj-card);
	border: 1px solid var(--zj-line);
	border-radius: var(--zj-radius);
	padding: 26px 24px;
	height: 100%;
	box-shadow: var(--zj-shadow-sm);
	transition: transform .45s var(--zj-ease-out), box-shadow .45s var(--zj-ease-out),
		border-color .45s var(--zj-ease);
}

.elementor-icon-box-wrapper:hover {
	transform: translateY(-6px);
	box-shadow: var(--zj-shadow-md);
	border-color: rgba(201, 162, 102, .45);
}

.elementor-icon-box-icon {
	flex: 0 0 auto;
}

.elementor-icon-box-icon .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--zj-gold-100), #fff);
	color: var(--zj-gold-600);
	font-size: 24px;
	box-shadow: inset 0 0 0 1px rgba(201, 162, 102, .28);
	transition: transform .45s var(--zj-ease-out);
}

.elementor-icon-box-wrapper:hover .elementor-icon-box-icon .elementor-icon {
	transform: scale(1.08) rotate(-4deg);
}

.elementor-icon-box-icon .elementor-icon svg,
.elementor-icon-box-icon .elementor-icon i {
	width: 24px;
	height: 24px;
}

.elementor-icon-box-content {
	flex: 1;
}

.elementor-icon-box-title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 700;
	color: var(--zj-ink);
}

.elementor-icon-box-title a {
	color: inherit;
}

.elementor-icon-box-description {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.85;
	color: var(--zj-body);
}

/* —— 图标 —— */

.elementor-icon-wrapper .elementor-icon {
	color: var(--zj-gold-600);
	font-size: 40px;
	display: inline-block;
	line-height: 1;
}

.elementor-icon-wrapper .elementor-icon svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* —— 分隔线 —— */

.elementor-widget-divider .elementor-divider {
	padding: 6px 0;
}

.elementor-widget-divider .elementor-divider-separator {
	display: block;
	width: 100%;
	border-top: 1px solid var(--zj-line);
	margin: 0;
}

/* —— 图标列表 —— */

.elementor-icon-list-items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.elementor-icon-list-item {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	color: var(--zj-body);
}

.elementor-icon-list-icon {
	color: var(--zj-gold-600);
	display: inline-flex;
}

.elementor-icon-list-icon svg,
.elementor-icon-list-icon i {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

/* —— 告示条 —— */

.elementor-alert {
	position: relative;
	padding: 16px 46px 16px 20px;
	border-radius: 12px;
	border-left: 4px solid var(--zj-navy-700);
	background: var(--zj-navy-100);
	text-align: left;
}

.elementor-alert .elementor-alert-title {
	display: block;
	font-weight: 700;
	color: var(--zj-navy-800);
}

.elementor-alert .elementor-alert-description {
	font-size: 14px;
	color: var(--zj-body);
}

.elementor-alert-danger {
	border-left-color: #d9534f;
	background: #fdf1f0;
}

.elementor-alert-danger .elementor-alert-title { color: #b23c39; }

.elementor-alert-info {
	border-left-color: #3d8fd1;
	background: #eef6fd;
}

.elementor-alert-info .elementor-alert-title { color: #2a6da5; }

button.elementor-alert-dismiss {
	position: absolute;
	top: 50%;
	right: 14px;
	transform: translateY(-50%);
	appearance: none;
	background: none;
	border: 0;
	font-size: 20px;
	line-height: 1;
	color: inherit;
	opacity: .5;
	transition: opacity .2s;
}

button.elementor-alert-dismiss:hover { opacity: 1; }

/* —— 社交图标 —— */

.elementor-social-icons-wrapper {
	display: flex;
	gap: 10px;
}

.elementor-social-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--zj-navy-800);
	color: #fff;
	transition: background .3s var(--zj-ease), transform .3s var(--zj-ease-out);
}

.elementor-social-icon:hover {
	background: var(--zj-gold-600);
	transform: translateY(-3px);
	color: #fff;
}

.elementor-social-icon svg,
.elementor-social-icon i {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

/* ==================================================================
 * 6. 图片轮播 + 品牌走马灯
 * ================================================================== */

.zj-carousel {
	position: relative;
	width: 100%;
	border-radius: var(--zj-radius);
	overflow: hidden;
	box-shadow: var(--zj-shadow-md);
}

.zj-carousel .zj-track {
	display: grid;
}

.zj-carousel .zj-slide {
	grid-area: 1 / 1;
	opacity: 0;
	transition: opacity .8s var(--zj-ease);
	line-height: 0;
	pointer-events: none;
}

.zj-carousel .zj-slide.zj-slide-active {
	opacity: 1;
	pointer-events: auto;
}

.zj-carousel .swiper-slide-inner {
	display: block;
	margin: 0;
	line-height: 0;
}

.zj-carousel .swiper-slide-image {
	width: 100%;
	height: auto;
	display: block;
}

.zj-carousel .swiper-pagination {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 14px;
	display: flex;
	justify-content: center;
	gap: 8px;
	z-index: 3;
}

.zj-carousel .zj-dot {
	appearance: none;
	border: 0;
	padding: 0;
	width: 22px;
	height: 4px;
	border-radius: 4px;
	background: rgba(255, 255, 255, .55);
	transition: background .3s var(--zj-ease), width .3s var(--zj-ease-out);
}

.zj-carousel .zj-dot.zj-dot-active {
	width: 34px;
	background: linear-gradient(90deg, var(--zj-gold-400), var(--zj-gold-600));
}

/* —— 品牌 logo 走马灯 —— */

.zj-brandstrip {
	container-type: inline-size;
	position: relative;
	overflow: hidden;
	padding-block: 6px;
}

.zj-brandstrip::before,
.zj-brandstrip::after {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	width: 72px;
	z-index: 2;
	pointer-events: none;
}

.zj-brandstrip::before {
	left: 0;
	background: linear-gradient(90deg, #fff 10%, rgba(255, 255, 255, 0));
}

.zj-brandstrip::after {
	right: 0;
	background: linear-gradient(-90deg, #fff 10%, rgba(255, 255, 255, 0));
}

.zj-brandstrip .zj-brandstrip-track {
	display: flex;
	align-items: center;
	gap: clamp(28px, 4cqw, 48px);
	width: max-content;
	animation: zj-brand-scroll 70s linear infinite;
	will-change: transform;
}

.zj-brandstrip:hover .zj-brandstrip-track,
.zj-brandstrip:focus-within .zj-brandstrip-track {
	animation-play-state: paused;
}

.zj-brandstrip .zj-brand {
	flex: 0 0 auto;
	width: calc((100cqw - 120px) / 4);
	display: block;
	line-height: 0;
	filter: grayscale(1);
	opacity: .62;
	transition: filter .45s var(--zj-ease), opacity .45s var(--zj-ease),
		transform .45s var(--zj-ease-out);
}

.zj-brandstrip .zj-brand:hover {
	filter: grayscale(0);
	opacity: 1;
	transform: translateY(-3px);
}

.zj-brandstrip .swiper-slide-inner {
	display: block;
	margin: 0;
	line-height: 0;
}

.zj-brandstrip .swiper-slide-image {
	width: 100%;
	display: block;
}

@keyframes zj-brand-scroll {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}

/* ==================================================================
 * 7. 图库 + 灯箱
 * ================================================================== */

.e-gallery-container {
	position: relative;
	display: flex;
	flex-wrap: wrap;
}

.e-gallery-container:not(.e-gallery-grid) {
	transition: padding-bottom .35s var(--zj-ease);
}

/* justified:JS 计算的变量由本文件的定位公式消费(与原 Elementor 语义一致) */
.e-gallery-justified {
	padding-bottom: calc(var(--container-aspect-ratio, 1) * 100%);
}

.e-gallery-justified .e-gallery-item {
	position: absolute;
	width: calc(var(--item-width, 1) * (100% - var(--hgap, 10px) * var(--gap-count, 0)));
	height: var(--item-height, auto);
	top: calc(var(--item-top, 0%) + var(--row, 0) * var(--vgap, 10px));
}

.e-gallery-item {
	position: relative;
	flex-grow: 0;
	flex-shrink: 0;
	border-radius: var(--zj-radius-sm);
	overflow: hidden;
	transform: translateZ(0);
}

.e-gallery-image {
	display: block;
	background-position: center center;
	background-size: cover;
	background-repeat: no-repeat;
	width: 100%;
	height: 100%;
	transition: transform .8s var(--zj-ease-out), filter .5s var(--zj-ease);
}

.e-gallery-item:hover .e-gallery-image {
	transform: scale(1.06);
	filter: brightness(.94);
}

/* 悬停遮罩:金线 + 轻暗化 */
.elementor-gallery-item__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 36, 54, 0) 55%, rgba(15, 36, 54, .55));
	opacity: 0;
	transition: opacity .45s var(--zj-ease);
	pointer-events: none;
}

.e-gallery-item:hover .elementor-gallery-item__overlay {
	opacity: 1;
}

.e-gallery-item::after {
	content: "";
	position: absolute;
	inset: 10px;
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 6px;
	opacity: 0;
	transform: scale(1.08);
	transition: opacity .45s var(--zj-ease), transform .45s var(--zj-ease-out);
	pointer-events: none;
}

.e-gallery-item:hover::after {
	opacity: 1;
	transform: scale(1);
}

/* —— WordPress 原生图库(品牌中心等) —— */

.gallery {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(4, 1fr);
	margin: 0;
}

.gallery-columns-4 .gallery-item { width: auto; margin: 0; }

.gallery-item {
	border-radius: var(--zj-radius-sm);
	overflow: hidden;
	line-height: 0;
	background: var(--zj-bg);
}

.gallery-item img {
	width: 100%;
	display: block;
	transition: transform .7s var(--zj-ease-out), filter .5s var(--zj-ease);
}

.gallery-item:hover img {
	transform: scale(1.06);
	filter: brightness(.95);
}

/* —— 灯箱 —— */

html.zj-lb-lock {
	overflow: hidden;
}

.zj-lightbox {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(15, 36, 54, .92);
	-webkit-backdrop-filter: blur(8px);
	backdrop-filter: blur(8px);
	opacity: 0;
	transition: opacity .35s var(--zj-ease);
}

.zj-lightbox.open {
	display: flex;
	opacity: 1;
}

.zj-lightbox .zj-lb-figure {
	margin: 0;
	max-width: min(1180px, 92vw);
	max-height: 88vh;
	position: relative;
}

.zj-lightbox .zj-lb-figure img {
	display: block;
	max-width: 100%;
	max-height: 88vh;
	border-radius: 10px;
	box-shadow: var(--zj-shadow-lg);
	animation: zj-lb-in .45s var(--zj-ease-out);
}

@keyframes zj-lb-in {
	from { opacity: 0; transform: scale(.96) translateY(10px); }
	to   { opacity: 1; transform: none; }
}

.zj-lightbox figcaption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: -38px;
	text-align: center;
	color: rgba(255, 255, 255, .85);
	font-size: 14px;
	letter-spacing: .04em;
}

.zj-lightbox .zj-lb-close,
.zj-lightbox .zj-lb-prev,
.zj-lightbox .zj-lb-next {
	position: fixed;
	appearance: none;
	border: 0;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .12);
	color: #fff;
	font-size: 24px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .25s var(--zj-ease), transform .25s var(--zj-ease);
}

.zj-lightbox .zj-lb-close:hover,
.zj-lightbox .zj-lb-prev:hover,
.zj-lightbox .zj-lb-next:hover {
	background: var(--zj-gold-600);
	transform: scale(1.06);
}

.zj-lightbox .zj-lb-close { top: 22px; right: 22px; }
.zj-lightbox .zj-lb-prev  { left: 22px; top: 50%; transform: translateY(-50%); }
.zj-lightbox .zj-lb-next  { right: 22px; top: 50%; transform: translateY(-50%); }

.zj-lightbox .zj-lb-prev:hover,
.zj-lightbox .zj-lb-next:hover {
	transform: translateY(-50%) scale(1.06);
}

/* ==================================================================
 * 8. 文章卡片 / 分页 / 相关文章 / CTA
 * ================================================================== */

.elementor-posts-container.elementor-grid {
	display: grid;
	gap: 26px;
	width: 100%;
}

.elementor-grid-3 .elementor-grid-item { min-width: 0; }
.elementor-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.elementor-grid-tablet-2 { }
.elementor-grid-mobile-1 { }

.elementor-posts .elementor-post {
	margin: 0;
}

.elementor-posts--skin-cards .elementor-post__card {
	position: relative;
	background: var(--zj-card);
	border: 1px solid var(--zj-line);
	border-radius: var(--zj-radius);
	overflow: hidden;
	height: 100%;
	display: flex;
	flex-direction: column;
	box-shadow: var(--zj-shadow-sm);
	transition: transform .5s var(--zj-ease-out), box-shadow .5s var(--zj-ease-out),
		border-color .5s var(--zj-ease);
}

.elementor-posts--skin-cards .elementor-post__card:hover {
	transform: translateY(-7px);
	box-shadow: var(--zj-shadow-md);
	border-color: rgba(201, 162, 102, .4);
}

.elementor-post__thumbnail__link {
	display: block;
	position: relative;
	line-height: 0;
}

.elementor-post__thumbnail {
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--zj-bg);
}

.elementor-post__thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .8s var(--zj-ease-out);
}

.elementor-post__card:hover .elementor-post__thumbnail img {
	transform: scale(1.07);
}

/* 悬停渐变(hover-gradient) */
.elementor-posts__hover-gradient .elementor-post__thumbnail__link::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(15, 36, 54, 0) 45%, rgba(15, 36, 54, .5));
	opacity: 0;
	transition: opacity .5s var(--zj-ease);
}

.elementor-posts__hover-gradient .elementor-post__card:hover .elementor-post__thumbnail__link::after {
	opacity: 1;
}

.elementor-post__badge {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 5px 14px;
	border-radius: 999px;
	background: linear-gradient(120deg, var(--zj-gold-400), var(--zj-gold-600));
	color: var(--zj-navy-950);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	box-shadow: 0 4px 12px rgba(15, 36, 54, .25);
}

.elementor-post__text {
	padding: 22px 24px 18px;
	display: flex;
	flex-direction: column;
	flex: 1;
	align-items: flex-start;
}

.elementor-post__title {
	margin: 0 0 10px;
	font-size: 17.5px;
	line-height: 1.5;
}

.elementor-post__title a {
	color: var(--zj-ink);
}

.elementor-post__title a:hover {
	color: var(--zj-gold-600);
}

.elementor-post__excerpt {
	font-size: 14px;
	line-height: 1.85;
	color: var(--zj-body);
	margin-bottom: 14px;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.elementor-post__excerpt p {
	margin: 0;
}

.elementor-post__read-more {
	margin-top: auto;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13.5px;
	font-weight: 700;
	letter-spacing: .06em;
	color: var(--zj-gold-600);
}

.elementor-post__read-more::after {
	content: "→";
	transition: transform .35s var(--zj-ease-out);
}

.elementor-post__read-more:hover::after {
	transform: translateX(5px);
}

.elementor-post__meta-data {
	padding: 13px 24px;
	border-top: 1px solid var(--zj-line);
	font-size: 12.5px;
	color: var(--zj-mute);
	letter-spacing: .04em;
	display: flex;
	gap: 14px;
}

.elementor-card-shadow-yes .elementor-post__card {
	/* 已含基础投影,保留钩子 */
}

/* —— 分页 —— */

.elementor-pagination {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 42px 0 8px;
}

.elementor-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	border-radius: 999px;
	border: 1.5px solid var(--zj-line);
	background: var(--zj-card);
	color: var(--zj-body);
	font-size: 14px;
	font-weight: 600;
	transition: all .3s var(--zj-ease);
}

.elementor-pagination .page-numbers.current {
	background: var(--zj-navy-800);
	border-color: var(--zj-navy-800);
	color: #fff;
	box-shadow: 0 6px 16px rgba(28, 58, 82, .3);
}

.elementor-pagination a.page-numbers:hover {
	border-color: var(--zj-gold-500);
	color: var(--zj-gold-600);
	transform: translateY(-2px);
}

/* —— 相关文章(yarpp 结构保留) —— */

.yarpp-related {
	margin-top: 46px;
	padding-top: 34px;
	border-top: 1px solid var(--zj-line);
}

.yarpp-related h3 {
	font-size: 20px;
	margin-bottom: 22px;
}

.yarpp-thumbnails-horizontal {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.yarpp-thumbnail {
	display: block;
	border-radius: var(--zj-radius-sm);
	overflow: hidden;
	background: var(--zj-card);
	border: 1px solid var(--zj-line);
	transition: transform .45s var(--zj-ease-out), box-shadow .45s var(--zj-ease-out);
}

.yarpp-thumbnail:hover {
	transform: translateY(-5px);
	box-shadow: var(--zj-shadow-md);
}

.yarpp-thumbnail img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	display: block;
}

.yarpp-thumbnail .yarpp-thumbnail-title {
	display: block;
	padding: 12px 14px 14px;
	font-size: 13.5px;
	line-height: 1.6;
	color: var(--zj-ink);
	font-weight: 600;
}

.yarpp-thumbnail:hover .yarpp-thumbnail-title {
	color: var(--zj-gold-600);
}

/* —— 预约 CTA(文章页底部) —— */

.awac-wrapper {
	margin-top: 40px;
	text-align: center;
}

.awac-wrapper .zj-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 15px 40px;
	border-radius: 999px;
	background: linear-gradient(120deg, var(--zj-gold-400), var(--zj-gold-600));
	color: var(--zj-navy-950);
	font-size: 16.5px;
	font-weight: 800;
	letter-spacing: .1em;
	box-shadow: 0 12px 30px rgba(201, 162, 102, .4);
	position: relative;
	overflow: hidden;
	transition: transform .4s var(--zj-ease-out), box-shadow .4s var(--zj-ease-out);
}

.awac-wrapper .zj-cta svg {
	width: 22px;
	height: 22px;
}

.awac-wrapper .zj-cta::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: -80%;
	width: 45%;
	background: linear-gradient(105deg, rgba(255, 255, 255, 0) 20%, rgba(255, 255, 255, .55) 50%, rgba(255, 255, 255, 0) 80%);
	transform: skewX(-20deg);
	animation: zj-cta-sheen 3.2s var(--zj-ease) infinite;
}

@keyframes zj-cta-sheen {
	0%, 55% { left: -80%; }
	85%, 100% { left: 130%; }
}

.awac-wrapper .zj-cta:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 40px rgba(201, 162, 102, .55);
	color: var(--zj-navy-950);
}

/* ==================================================================
 * 9. 正文排版(entry-content / 区块)
 * ================================================================== */

.singular-content-wrap {
	max-width: 860px;
	margin-inline: auto;
}

.entry-content {
	font-size: 16px;
	line-height: 2;
	color: var(--zj-body);
}

.entry-content > h2,
.entry-content h2 {
	font-size: clamp(21px, 2.4vw, 26px);
	margin: 1.8em 0 .8em;
	padding-left: 14px;
	border-left: 4px solid var(--zj-gold-500);
}

.entry-content > h3 { font-size: 19px; margin: 1.6em 0 .7em; }
.entry-content > h4 { font-size: 17px; }

.entry-content p {
	margin: 0 0 1.15em;
}

.entry-content a {
	color: var(--zj-navy-700);
	border-bottom: 1px solid rgba(201, 162, 102, .45);
	transition: color .2s, border-color .2s;
}

.entry-content a:hover {
	color: var(--zj-gold-600);
	border-bottom-color: var(--zj-gold-600);
}

.entry-content img {
	border-radius: var(--zj-radius-sm);
	height: auto;
}

.entry-content ul,
.entry-content ol {
	padding-left: 1.5em;
}

.entry-content li {
	margin-bottom: .5em;
}

.entry-content blockquote {
	margin: 1.6em 0;
	padding: 18px 24px;
	border-left: 4px solid var(--zj-gold-500);
	background: var(--zj-bg);
	border-radius: 0 var(--zj-radius-sm) var(--zj-radius-sm) 0;
	color: var(--zj-ink);
}

/* 区块编辑器常用元素兜底 */
.wp-block-image img {
	height: auto;
}

.wp-block-image figcaption,
.wp-block-gallery figcaption {
	font-size: 13px;
	color: var(--zj-mute);
	text-align: center;
}

.wp-block-table {
	overflow-x: auto;
}

.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
}

.wp-block-table th,
.wp-block-table td {
	border: 1px solid var(--zj-line);
	padding: 10px 14px;
}

/* —— 文章页脚(标签/分类) —— */

.entry-footer {
	margin-top: 34px;
	padding-top: 20px;
	border-top: 1px solid var(--zj-line);
}

.entry-footer .entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 10px 22px;
	font-size: 13.5px;
	color: var(--zj-mute);
}

.entry-footer .meta-icon svg {
	width: 15px;
	height: 15px;
	fill: var(--zj-gold-600);
	vertical-align: -2px;
	margin-right: 4px;
}

.entry-footer a {
	color: var(--zj-navy-700);
}

.entry-footer a:hover {
	color: var(--zj-gold-600);
}

/* —— 上一篇/下一篇 —— */

.post-navigation {
	margin-top: 38px;
}

.post-navigation .nav-links {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
}

.post-navigation .nav-links a {
	display: block;
	padding: 18px 22px;
	background: var(--zj-card);
	border: 1px solid var(--zj-line);
	border-radius: var(--zj-radius-sm);
	transition: transform .4s var(--zj-ease-out), box-shadow .4s var(--zj-ease-out),
		border-color .4s var(--zj-ease);
}

.post-navigation .nav-links a:hover {
	transform: translateY(-4px);
	box-shadow: var(--zj-shadow-sm);
	border-color: rgba(201, 162, 102, .4);
}

.post-navigation .nav-subtitle {
	display: block;
	font-size: 12px;
	letter-spacing: .18em;
	color: var(--zj-mute);
	margin-bottom: 6px;
	text-transform: uppercase;
}

.post-navigation .nav-subtitle-icon-wrapper svg {
	width: 13px;
	height: 13px;
	fill: var(--zj-gold-600);
	transform: rotate(180deg);
	margin-right: 5px;
	vertical-align: -2px;
}

.nav-next .nav-subtitle-icon-wrapper svg {
	transform: rotate(-90deg);
}

.nav-previous .nav-subtitle-icon-wrapper svg {
	transform: rotate(90deg);
}

.post-navigation .nav-title {
	font-size: 15px;
	font-weight: 600;
	color: var(--zj-ink);
	line-height: 1.6;
}

.post-navigation .nav-links a:hover .nav-title {
	color: var(--zj-gold-600);
}

/* ==================================================================
 * 10. 预约表单
 * ================================================================== */

.elementor-form {
	max-width: 640px;
	margin-inline: auto;
}

.elementor-form-fields-wrapper {
	display: flex;
	flex-direction: column;
	gap: 18px;
}

.elementor-field-group {
	width: 100%;
}

.elementor-field-label {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--zj-ink);
	letter-spacing: .02em;
}

.elementor-field-textual,
select.elementor-field-textual {
	width: 100%;
	padding: 12.5px 16px;
	border: 1.5px solid var(--zj-line);
	border-radius: var(--zj-radius-sm);
	background: var(--zj-card);
	color: var(--zj-ink);
	font-size: 15px;
	font-family: inherit;
	transition: border-color .25s var(--zj-ease), box-shadow .25s var(--zj-ease),
		background .25s var(--zj-ease);
	appearance: none;
	-webkit-appearance: none;
}

.elementor-field-textual::placeholder {
	color: #a9b5bf;
}

.elementor-field-textual:focus {
	outline: none;
	border-color: var(--zj-gold-500);
	box-shadow: 0 0 0 4px rgba(201, 162, 102, .15);
	background: #fff;
}

textarea.elementor-field-textual {
	min-height: 120px;
	resize: vertical;
	line-height: 1.8;
}

/* 下拉框的自绘箭头 */
.elementor-select-wrapper {
	position: relative;
}

.elementor-select-wrapper select {
	padding-right: 42px;
	cursor: pointer;
}

.select-caret-down-wrapper {
	position: absolute;
	right: 15px;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	color: var(--zj-mute);
	display: flex;
}

.select-caret-down-wrapper .icon {
	width: 14px;
	height: 14px;
	fill: currentColor;
}

.elementor-form .elementor-button[type="submit"],
.elementor-form .elementor-button {
	width: 100%;
	justify-content: center;
	padding: 15px;
	font-size: 16px;
	border-radius: var(--zj-radius-sm);
}

/* 提交结果提示 */
.zj-booking-notice {
	padding: 14px 18px;
	border-radius: var(--zj-radius-sm);
	font-size: 14.5px;
	margin-bottom: 18px;
	animation: zj-fade-slide .4s var(--zj-ease-out);
}

.zj-notice-ok {
	background: #eef8f0;
	border: 1px solid #bfe3c8;
	color: #2e7d43;
}

.zj-notice-spam,
.zj-notice-error {
	background: #fdf1f0;
	border: 1px solid #f0c8c5;
	color: #b23c39;
}

/* 蜜罐 */
.zj-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ==================================================================
 * 11. 页脚 / 返回顶部
 * ================================================================== */

.site-footer {
	margin-top: clamp(40px, 6vw, 80px);
	background: var(--zj-navy-950);
	color: rgba(255, 255, 255, .72);
}

#site-generator {
	position: relative;
}

.site-footer .wrapper {
	padding-block: 26px;
}

.site-footer .copyright {
	text-align: center;
	font-size: 13px;
	letter-spacing: .03em;
	line-height: 2;
}

.site-footer a {
	color: rgba(255, 255, 255, .85);
	transition: color .25s var(--zj-ease);
}

.site-footer a:hover {
	color: var(--zj-gold-400);
}

.site-footer .sep img {
	display: inline-block;
	width: 14px;
	height: 14px;
	vertical-align: -2px;
	margin: 0 3px;
}

/* —— 返回顶部 —— */

#to_top_scrollup {
	position: fixed;
	right: 26px;
	bottom: 30px;
	z-index: 980;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--zj-navy-800);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 10px 26px rgba(15, 36, 54, .35);
	opacity: 0;
	visibility: hidden;
	transform: translateY(16px);
	cursor: pointer;
	transition: opacity .35s var(--zj-ease), transform .35s var(--zj-ease-out),
		visibility 0s linear .35s, background .25s var(--zj-ease);
}

#to_top_scrollup.show {
	opacity: 1;
	visibility: visible;
	transform: none;
	transition-delay: 0s;
}

#to_top_scrollup:hover {
	background: var(--zj-gold-600);
	transform: translateY(-3px);
}

#to_top_scrollup svg {
	width: 20px;
	height: 20px;
	fill: currentColor;
}

/* ==================================================================
 * 12. 404 / 无结果
 * ================================================================== */

.no-results {
	text-align: center;
	padding: clamp(30px, 5vw, 60px) 0;
}

.no-results .page-title {
	font-size: clamp(20px, 2.4vw, 26px);
}

.no-results ul {
	list-style: none;
	padding: 0;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	gap: 12px;
	margin: 22px 0;
}

.no-results ul a {
	display: inline-block;
	padding: 10px 22px;
	border: 1.5px solid var(--zj-line);
	border-radius: 999px;
	font-weight: 600;
	transition: all .3s var(--zj-ease);
}

.no-results ul a:hover {
	border-color: var(--zj-gold-500);
	color: var(--zj-gold-600);
	transform: translateY(-2px);
}

.no-results .search-form {
	margin-top: 18px;
}

/* ==================================================================
 * 13. 动效系统
 * ================================================================== */

@keyframes zj-fade-slide {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: none; }
}

/*
 * 滚动显现:内容标记里的 .animated(fadeInUp / fadeIn / zoomIn …)由
 * site.js 的 IntersectionObserver 触发,进入视口后加 .zj-in。
 * 仅在支持 IO 的浏览器(html.zj-anim)启用隐藏态,无 JS 一律可见。
 */
html.zj-anim .animated:not(.pulse) {
	opacity: 0;
	will-change: opacity, transform;
}

html.zj-anim .animated.fadeInUp:not(.zj-in):not(.pulse) { transform: translateY(34px); }
html.zj-anim .animated.fadeInDown:not(.zj-in):not(.pulse) { transform: translateY(-34px); }
html.zj-anim .animated.fadeInLeft:not(.zj-in):not(.pulse) { transform: translateX(-36px); }
html.zj-anim .animated.fadeInRight:not(.zj-in):not(.pulse) { transform: translateX(36px); }
html.zj-anim .animated.fadeIn:not(.zj-in):not(.pulse) { transform: none; }
html.zj-anim .animated.zoomIn:not(.zj-in):not(.pulse) { transform: scale(.9); }

html.zj-anim .animated.zj-in:not(.pulse) {
	opacity: 1;
	transform: none;
	transition: opacity .9s var(--zj-ease-out), transform .9s var(--zj-ease-out);
	transition-delay: var(--zj-delay, 0ms);
	will-change: auto;
}

html.zj-anim .animated.animated-slow.zj-in {
	transition-duration: 1.6s;
}

/* pulse 保持循环动画(图标呼吸感) */
.pulse:not(.zj-in) {
	animation: zj-pulse 2.4s var(--zj-ease) infinite;
}

@keyframes zj-pulse {
	0%, 100% { transform: scale(1); }
	50%      { transform: scale(1.07); }
}

/* ==================================================================
 * 14. 响应式与偏好
 * ================================================================== */

/* ≤1024:平板 */
@media (max-width: 1024px) {
	.elementor-grid-tablet-2 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.yarpp-thumbnails-horizontal {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.gallery {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* ≤767:手机 */
@media (max-width: 767px) {
	.elementor-col-25,
	.elementor-col-33,
	.elementor-col-50,
	.elementor-col-66 {
		width: 100%;
	}

	.elementor-column-gap-default {
		--zj-colpad: 0px;
		padding-inline: var(--zj-gutter);
	}

	.elementor-container {
		padding-inline: 18px;
	}

	.elementor-grid-mobile-1 {
		grid-template-columns: minmax(0, 1fr);
	}

	.yarpp-thumbnails-horizontal {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.gallery {
		grid-template-columns: repeat(2, 1fr);
		gap: 10px;
	}

	.site-content .elementor-top-section {
		padding-block: 34px;
	}

	.post-navigation .nav-links {
		grid-template-columns: 1fr;
	}

	.zj-brandstrip .zj-brand {
		width: calc((100cqw - 60px) / 2);
	}

	#to_top_scrollup {
		right: 16px;
		bottom: 20px;
		width: 42px;
		height: 42px;
	}

	/* —— 移动端导航抽屉 —— */

	.menu-toggle {
		display: flex;
	}

	.site-primary-menu {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		flex-direction: column;
		align-items: stretch;
		background: var(--zj-card);
		border-bottom: 1px solid var(--zj-line);
		box-shadow: 0 30px 50px rgba(15, 36, 54, .14);
		padding: 10px 18px 20px;
		display: none;
		max-height: calc(100vh - 68px);
		overflow-y: auto;
	}

	body.primary-menu-open .site-primary-menu {
		display: block;
		animation: zj-drawer .35s var(--zj-ease-out);
	}

	@keyframes zj-drawer {
		from { opacity: 0; transform: translateY(-10px); }
		to   { opacity: 1; transform: none; }
	}

	.primary-menu {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
	}

	.primary-menu > li {
		border-bottom: 1px solid var(--zj-line);
	}

	.primary-menu > li:last-child {
		border-bottom: 0;
	}

	.primary-menu a {
		justify-content: space-between;
		padding: 14px 4px;
		border-radius: 0;
		font-size: 15.5px;
	}

	.primary-menu a::after {
		display: none;
	}

	/* 锚点内的小箭头隐藏,展开交给右侧独立的下拉按钮 */
	.primary-menu a .icon-angle-down {
		display: none;
	}

	.primary-menu .current-menu-item > a {
		color: var(--zj-gold-600);
	}

	.primary-menu .dropdown-toggle {
		display: flex;
		position: absolute;
		right: 0;
		top: 6px;
		padding: 10px;
	}

	.primary-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: 0;
		border-radius: 0;
		padding: 0 0 4px 14px;
		min-width: 0;
		display: none;
		background: none;
		transition: none;
	}

	li.sub-menu-open > .sub-menu {
		display: block;
	}

	.primary-menu .sub-menu a {
		padding: 11px 10px;
		font-size: 14.5px;
	}

	.primary-menu .sub-menu a:hover {
		background: none;
	}

	.primary-search-wrapper {
		margin-top: 14px;
	}

	#search-container-main .search-container {
		position: static;
		box-shadow: none;
		border: 0;
		padding: 12px 0 0;
	}

	/* 内容全出血在手机上保持,分区自带的 container 提供 18px 边距 */
	.site-content .wrapper {
		padding-inline: 0;
	}

	.singular-content-wrap {
		max-width: none;
	}

	.entry-content {
		padding-inline: 18px;
	}

	.single .site-content .wrapper,
	.archive .site-content .wrapper,
	.search .site-content .wrapper,
	.error404 .site-content .wrapper {
		padding-inline: var(--zj-gutter);
	}

	.entry-content {
		padding-inline: 0;
	}

	.custom-header-content {
		min-height: 250px;
	}

	.site-title {
		font-size: 19px;
	}

	.site-description {
		display: none;
	}
}

/* 平板横屏等中间宽度:导航仍走桌面样式(≥768px) */

/* 减少动态效果偏好:全部动画直接呈现 */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}

	html.zj-anim .animated:not(.pulse) {
		opacity: 1;
		transform: none;
	}

	.zj-brandstrip .zj-brandstrip-track {
		animation: none;
	}
}
