/* ============================================================
   私游季 · M3 目的地系统样式
   命名空间：#zg-dest（目的地页）/ #zg-dests（归档页）
   导航：body.zg-dest / body.zg-dests 作用域下 .zg-dnav / .zg-ddrawer
   不含任何全局裸选择器；不影响首页 / 产品页 / Blog / Elementor 页
   色彩：墨 #1b222c · 暖纸 #f7f4ee · 陶橘 #c2551f · 香槟金 #a87f4b
   ============================================================ */

/* ---------- 隐藏主题自带头部（M3 页面专用作用域） ---------- */
body.zg-dest #site-header,
body.zg-dests #site-header {
	display: none;
}

/* ---------- 极简导航（.zg-dnav 全新命名空间） ---------- */
.zg-dnav {
	position: fixed;
	inset: 0 0 auto 0;
	z-index: 900;
	background: rgba(27, 34, 44, .97); /* M3 页面：面包屑紧随导航，常驻墨色保证可读 */
	transition: background-color .55s cubic-bezier(.16,1,.3,1), box-shadow .55s cubic-bezier(.16,1,.3,1);
}
.zg-dnav.is-solid {
	background: rgba(27, 34, 44, .96);
	box-shadow: 0 1px 0 rgba(255, 255, 255, .08);
}
.zg-dnav-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 22px 32px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.zg-dnav-brand {
	color: #fff;
	text-decoration: none;
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-weight: 700;
	font-size: 20px;
	letter-spacing: .12em;
}
.zg-dnav-links {
	display: flex;
	gap: 34px;
	list-style: none;
	margin: 0;
	padding: 0;
}
.zg-dnav-links a {
	color: rgba(255, 255, 255, .82);
	text-decoration: none;
	font-size: 14.5px;
	letter-spacing: .06em;
	padding-bottom: 3px;
	border-bottom: 1px solid transparent;
	transition: color .3s, border-color .3s;
}
.zg-dnav-links a:hover {
	color: #fff;
	border-bottom-color: var(--zg-primary, #c2551f);
}
.zg-dnav-cta {
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	letter-spacing: .08em;
	padding: 10px 22px;
	background: var(--zg-primary, #c2551f);
	border-radius: 6px;
	transition: background-color .3s;
}
.zg-dnav-cta:hover {
	background: #a84715;
}
.zg-dnav-burger {
	display: none;
	background: none;
	border: 0;
	cursor: pointer;
	padding: 8px;
}
.zg-dnav-burger span {
	display: block;
	width: 22px;
	height: 2px;
	background: #fff;
	margin: 5px 0;
	transition: transform .3s, opacity .3s;
}

/* 移动抽屉 */
.zg-ddrawer {
	position: fixed;
	inset: 0;
	z-index: 890;
	background: rgba(27, 34, 44, .98);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	visibility: hidden;          /* 关闭时真正不可见：避免内部按钮仍能 Tab 聚焦（新增关闭按钮后必需） */
	pointer-events: none;
	transition: opacity .4s cubic-bezier(.16,1,.3,1);
}
.zg-ddrawer.open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.zg-ddrawer ul {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: center;
}
.zg-ddrawer li a {
	display: block;
	color: rgba(255, 255, 255, .9);
	text-decoration: none;
	font-size: 19px;
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	letter-spacing: .1em;
	padding: 14px 20px;
}
.zg-ddrawer li a.zg-ddrawer-cta {
	color: var(--zg-primary, #c2551f);
	font-weight: 700;
}
body.zg-ddrawer-open {
	overflow: hidden;
}

/* ---------- 通用区块结构 ---------- */
#zg-dest,
#zg-dests {
	background: #f7f4ee;
	color: #1b222c;
	font-size: 16.5px;
	line-height: 1.85;
}
.zg-dwrap {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 32px;
}
.zg-dsec {
	padding: 88px 0;
}
.zg-dsec-alt {
	background: #fff;
}
.zg-deyebrow {
	color: #a87f4b;
	font-size: 12.5px;
	letter-spacing: .34em;
	text-transform: uppercase;
	margin: 0 0 14px;
	padding-left: 18px;
	position: relative;
}
.zg-deyebrow::before {
	content: "";
	position: absolute;
	left: 0;
	top: .55em;
	width: 10px;
	height: 2px;
	background: #a87f4b;
}
.zg-dsec-title {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: clamp(26px, 3.2vw, 38px);
	font-weight: 900;
	margin: 0 0 36px;
	line-height: 1.3;
	color: #1b222c;
}
.zg-dsec-body p {
	max-width: 760px;
	margin: 0 0 18px;
	color: #3c4654;
}

/* ---------- Hero（目的地页） ---------- */
.zg-dhero {
	position: relative;
	min-height: 72vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}
.zg-dhero-ph {
	position: absolute;
	inset: 0;
	background: linear-gradient(160deg, #2a3340 0%, #1b222c 60%, #232c38 100%);
}
.zg-dhero-ph::after {
	content: "";
	position: absolute;
	inset: 0;
	background:
		radial-gradient(ellipse 60% 40% at 70% 30%, rgba(168, 127, 75, .14), transparent 70%),
		radial-gradient(ellipse 50% 35% at 30% 65%, rgba(194, 85, 31, .10), transparent 70%);
}
.zg-dhero-inner {
	position: relative;
	z-index: 2;
	max-width: 1200px;
	margin: 0 auto;
	width: 100%;
	padding: 140px 32px 72px;
}
.zg-dhero-inner .zg-deyebrow {
	color: #c9a87e;
}
.zg-dhero-title {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: clamp(44px, 7vw, 84px);
	font-weight: 900;
	color: #fff;
	margin: 0 0 18px;
	line-height: 1.12;
	letter-spacing: .04em;
	text-shadow: 0 2px 24px rgba(0, 0, 0, .35);
}
.zg-dhero-tagline {
	color: rgba(255, 255, 255, .88);
	font-size: clamp(17px, 2vw, 22px);
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	margin: 0 0 34px;
	letter-spacing: .05em;
}
.zg-dph-note {
	position: absolute;
	right: 20px;
	bottom: 16px;
	z-index: 2;
	color: rgba(255, 255, 255, .38);
	font-size: 11.5px;
	letter-spacing: .18em;
	margin: 0;
}

/* ---------- 按钮 ---------- */
.zg-dbtn {
	display: inline-block;
	color: #fff;
	text-decoration: none;
	background: var(--zg-primary, #c2551f);
	font-size: 15px;
	letter-spacing: .1em;
	padding: 15px 38px;
	border-radius: 6px;
	transition: background-color .3s, transform .3s;
}
.zg-dbtn:hover {
	background: #a84715;
}

/* ---------- 02 直答介绍 ---------- */
.zg-dlead {
	padding: 64px 0 8px;
}
.zg-dlead-text {
	max-width: 860px;
	margin: 0 auto;
	font-size: 19px;
	line-height: 2;
	color: #2c3542;
	text-align: center;
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
}

/* ---------- 04 Highlights ---------- */
.zg-dhl-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 36px 44px;
}
.zg-dhl-item {
	border-top: 2px solid #e3ddd2;
	padding-top: 22px;
}
.zg-dhl-name {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 10px;
	color: #1b222c;
}
.zg-dhl-name::after {
	content: "";
	display: block;
	width: 34px;
	height: 2px;
	background: #a87f4b;
	margin-top: 10px;
}
.zg-dhl-desc {
	margin: 0;
	color: #4a5462;
	font-size: 15.5px;
}

/* ---------- 05-08 出行规划 ---------- */
.zg-dplan {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 40px 56px;
}
.zg-dplan-item {
	border-left: 2px solid #a87f4b;
	padding-left: 22px;
}
.zg-dplan-name {
	font-size: 13.5px;
	letter-spacing: .22em;
	color: #a87f4b;
	font-weight: 600;
	margin: 0 0 8px;
}
.zg-dplan-item p {
	margin: 0;
	color: #3c4654;
}

/* ---------- 09 Suggested Trips ---------- */
.zg-dtrip-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 36px 40px;
}
.zg-dtrip {
	border: 1px solid #e5dfd4;
	background: #f7f4ee;
	padding: 30px 28px;
	border-radius: 8px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.zg-dtrip-days {
	color: #a87f4b;
	font-size: 13px;
	letter-spacing: .18em;
	margin: 0;
}
.zg-dtrip-title {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: 19px;
	font-weight: 700;
	margin: 0;
	line-height: 1.5;
	color: #1b222c;
}
.zg-dtrip-link {
	margin-top: auto;
	color: var(--zg-primary, #c2551f);
	text-decoration: none;
	font-size: 14.5px;
	letter-spacing: .04em;
	padding-top: 12px;
}
.zg-dtrip-link:hover {
	text-decoration: underline;
}
.zg-dtrip-soon {
	border: 1px dashed #cfc6b6;
	border-radius: 8px;
	padding: 48px 32px;
	text-align: center;
	max-width: 560px;
	margin: 0 auto;
}
.zg-dtrip-soon-text {
	color: #6b7583;
	font-size: 17px;
	margin: 0 0 22px;
}
.zg-dguides {
	margin-top: 64px;
	border-top: 1px solid #e5dfd4;
	padding-top: 40px;
}
.zg-dguides-title {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 18px;
	color: #1b222c;
}
.zg-dguides-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 10px 36px;
}
.zg-dguides-list a {
	color: #2c3542;
	text-decoration: none;
	font-size: 15.5px;
	padding: 6px 0 6px 18px;
	position: relative;
}
.zg-dguides-list a::before {
	content: "→";
	position: absolute;
	left: 0;
	color: #a87f4b;
}
.zg-dguides-list a:hover {
	color: var(--zg-primary, #c2551f);
}

/* ---------- 10 FAQ ---------- */
.zg-dfaq-list {
	max-width: 860px;
}
.zg-dfaq-list details {
	border-bottom: 1px solid #e5dfd4;
}
.zg-dfaq-list summary {
	cursor: pointer;
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: 17.5px;
	font-weight: 700;
	padding: 22px 4px;
	list-style: none;
	color: #1b222c;
	transition: color .25s;
}
.zg-dfaq-list summary::-webkit-details-marker {
	display: none;
}
.zg-dfaq-list summary::after {
	content: "+";
	float: right;
	color: #a87f4b;
	font-size: 20px;
	font-weight: 400;
}
.zg-dfaq-list details[open] summary::after {
	content: "–";
}
.zg-dfaq-list summary:hover {
	color: var(--zg-primary, #c2551f);
}
.zg-dfaq-list details p {
	margin: 0;
	padding: 0 4px 24px;
	color: #4a5462;
}

/* ---------- 11 Related Destinations ---------- */
.zg-drel-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 32px;
}
.zg-drel-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	text-decoration: none;
	background: linear-gradient(160deg, #2a3340, #1b222c);
	border-radius: 8px;
	padding: 44px 32px 34px;
	color: #fff;
	transition: transform .55s cubic-bezier(.16,1,.3,1);
}
.zg-drel-card:hover {
	transform: translateY(-4px);
}
.zg-drel-card .zg-deyebrow {
	color: #c9a87e;
	margin: 0;
}
.zg-drel-name {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: 30px;
	font-weight: 900;
	letter-spacing: .05em;
}
.zg-drel-tag {
	color: rgba(255, 255, 255, .75);
	font-size: 14.5px;
}
.zg-drel-go {
	margin-top: 14px;
	color: var(--zg-primary, #c2551f);
	font-size: 14.5px;
	letter-spacing: .05em;
}

/* ---------- 12 Final CTA ---------- */
.zg-dfinal {
	background: #1b222c;
	color: #fff;
	padding: 110px 0;
	text-align: center;
}
.zg-dfinal-title {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: clamp(26px, 3.4vw, 40px);
	font-weight: 900;
	margin: 0 0 16px;
	line-height: 1.35;
	color: #fff; /* 显式声明：避免被主题标题颜色规则覆盖 */
}
.zg-dfinal-sub {
	color: rgba(255, 255, 255, .72);
	margin: 0 0 36px;
	font-size: 16.5px;
}

/* ---------- 归档页 /destinations/ ---------- */
.zg-ds-hero {
	padding: 170px 0 70px;
	background: linear-gradient(160deg, #2a3340 0%, #1b222c 100%);
	color: #fff;
}
.zg-ds-hero .zg-deyebrow {
	color: #c9a87e;
}
.zg-ds-title {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: clamp(36px, 5.6vw, 64px);
	font-weight: 900;
	margin: 0 0 20px;
	letter-spacing: .04em;
	color: #fff; /* 显式声明：避免被主题 h1 颜色规则覆盖 */
}
.zg-ds-intro {
	max-width: 720px;
	color: rgba(255, 255, 255, .82);
	font-size: 17.5px;
	line-height: 2;
	margin: 0;
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
}
.zg-ds-grid-sec {
	padding: 80px 0 96px;
}
.zg-ds-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 34px;
}
.zg-ds-card {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	background: #fff;
	border-radius: 10px;
	overflow: hidden;
	color: #1b222c;
	transition: transform .55s cubic-bezier(.16,1,.3,1), box-shadow .55s cubic-bezier(.16,1,.3,1);
}
.zg-ds-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 44px rgba(27, 34, 44, .12);
}
.zg-ds-ph {
	display: block;
	aspect-ratio: 16 / 9;
	background: linear-gradient(150deg, #3a4451, #232c38 70%);
	position: relative;
}
.zg-ds-ph::after {
	content: "视觉占位 · 待接入真实摄影";
	position: absolute;
	right: 14px;
	bottom: 10px;
	color: rgba(255, 255, 255, .4);
	font-size: 11px;
	letter-spacing: .14em;
}
.zg-ds-card-body {
	padding: 30px 32px 34px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.zg-ds-en {
	margin: 0;
}
.zg-ds-name {
	font-family: var(--zg-font-serif, "Noto Serif SC", serif);
	font-size: 32px;
	font-weight: 900;
	letter-spacing: .05em;
}
.zg-ds-tagline {
	color: #57616f;
	font-size: 15.5px;
}
.zg-ds-go {
	margin-top: 14px;
	color: var(--zg-primary, #c2551f);
	font-size: 14.5px;
	letter-spacing: .05em;
}

/* ---------- 面包屑微调（M3 页面上深色 Hero 紧邻） ---------- */
body.zg-dest .zg-crumb,
body.zg-dests .zg-crumb {
	background: #efeade;
}

/* ============================================================
   响应式：≤900 单列（390 基准 / 360 兜底）
   ============================================================ */
@media (max-width: 900px) {
	.zg-dnav-inner {
		padding: 16px 20px;
	}
	.zg-dnav-links,
	.zg-dnav-cta {
		display: none;
	}
	.zg-dnav-burger {
		display: block;
	}

	/* ----------------------------------------------------------
	   移动端菜单定位修复（≤900px），与首页同规格
	   原实现 position:fixed; inset:0; align-items:center; justify-content:center
	   → 打开后菜单停在屏幕正中；现改为右侧固定抽屉。
	   ---------------------------------------------------------- */
	.zg-ddrawer {
		inset: 0 0 0 auto; left: auto;
		width: 86vw; max-width: 360px;
		display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start;
		padding: 92px 26px 32px;
		background: #1b222c;   /* 实色：原 .98 半透明会让下层亮块透出，边缘出现色差 */
		box-shadow: -18px 0 44px rgba(10, 14, 20, .34);
		overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain;
		transform: translateX(100%);
		visibility: hidden; pointer-events: none;
		z-index: 1000;                      /* 高于 .zg-dnav(900) 与浮动联系条(999) */
		/* visibility 不参与插值：打开时 0s 立即生效，关闭时延后 .4s 才隐藏（滑出动画可见） */
		transition: transform .4s cubic-bezier(.16, 1, .3, 1), opacity .4s cubic-bezier(.16, 1, .3, 1), visibility 0s linear .4s;
	}
	.zg-ddrawer.open {
		transform: translateX(0);
		visibility: visible; pointer-events: auto;
		transition: transform .4s cubic-bezier(.16, 1, .3, 1), opacity .4s cubic-bezier(.16, 1, .3, 1), visibility 0s linear 0s;
	}
	.zg-ddrawer ul { text-align: left; width: 100%; }
	.zg-ddrawer li a { padding: 15px 2px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
	.zg-ddrawer li:last-child a { border-bottom: 0; }
	body.zg-ddrawer-open::before {
		content: ""; position: fixed; inset: 0; z-index: 899;   /* 低于 .zg-dnav(900)，汉堡键仍可点 */
		background: rgba(10, 14, 20, .5);
	}
	body.zg-ddrawer-open .zg-float-contact { opacity: 0; pointer-events: none; }
	.zg-ddrawer-close {
		position: absolute; top: 18px; right: 20px;
		width: 44px; height: 44px; padding: 0;
		display: flex; align-items: center; justify-content: center;
		background: none; border: 0; cursor: pointer; color: rgba(255, 255, 255, .9);
	}
	/* 主题 reset.css 有 button:focus{background:#c36} 与 button:focus-visible{box-shadow:0 0 0 4px #fff}，
	   特异度(0,1,1)压过单类选择器 → 这里显式声明各状态，避免出现玫红方块与白圈 */
	.zg-ddrawer-close,
	.zg-ddrawer-close:hover,
	.zg-ddrawer-close:focus,
	.zg-ddrawer-close:active { background: none; border: 0; color: rgba(255, 255, 255, .9); }
	.zg-ddrawer-close:focus-visible {
		outline: 2px solid #c9a86a; outline-offset: 2px; border-radius: 6px; box-shadow: none;
	}
	.zg-ddrawer a:focus-visible { outline: 1px solid rgba(201, 168, 106, .75); outline-offset: 2px; box-shadow: none; }
	.zg-ddrawer-close span { position: relative; display: block; width: 22px; height: 22px; }
	.zg-ddrawer-close span::before,
	.zg-ddrawer-close span::after {
		content: ""; position: absolute; left: 0; top: 50%; width: 22px; height: 1.5px;
		background: rgba(255, 255, 255, .9); border-radius: 2px;
	}
	.zg-ddrawer-close span::before { transform: rotate(45deg); }
	.zg-ddrawer-close span::after { transform: rotate(-45deg); }
	.zg-dwrap {
		padding: 0 20px;
	}
	.zg-dsec {
		padding: 60px 0;
	}
	.zg-dhero {
		min-height: 78vh;
	}
	.zg-dhero-inner {
		padding: 120px 20px 56px;
	}
	.zg-dlead {
		padding: 48px 0 4px;
	}
	.zg-dlead-text {
		font-size: 17px;
		text-align: left;
	}
	.zg-dplan {
		grid-template-columns: 1fr;
		gap: 30px;
	}
	.zg-dhl-list {
		grid-template-columns: 1fr;
		gap: 28px;
	}
	.zg-dtrip-grid {
		grid-template-columns: 1fr;
	}
	.zg-dguides-list {
		grid-template-columns: 1fr;
	}
	.zg-drel-grid {
		grid-template-columns: 1fr;
	}
	.zg-ds-grid {
		grid-template-columns: 1fr;
	}
	.zg-ds-hero {
		padding: 130px 0 52px;
	}
	.zg-ds-card-body {
		padding: 24px 22px 28px;
	}
	.zg-ds-name {
		font-size: 27px;
	}
	.zg-dfinal {
		padding: 80px 0;
	}
	.zg-dfinal .zg-dbtn {
		display: block;
		text-align: center;
		max-width: 320px;
		margin: 0 auto;
	}
	.zg-dtrip-soon {
		padding: 36px 22px;
	}
}

@media (max-width: 380px) {
	.zg-dwrap {
		padding: 0 16px;
	}
	.zg-dhero-inner {
		padding: 110px 16px 48px;
	}
	.zg-dhero-title {
		font-size: 42px;
	}
	.zg-ds-name {
		font-size: 24px;
	}
	.zg-dbtn {
		padding: 14px 26px;
		font-size: 14px;
	}
}
