@charset "utf-8";
/* ============================================================================
   qz-union.css — 海外联盟页
   依据：qz-website-delivery 的 AlliancePage.jsx
   加载顺序：common.css → qz-theme.css → qz-layout.css → 本文件
   ========================================================================== */

/* ============================================================================
   01  全球协作网络面板
   ========================================================================== */

.qz-network {
	padding: var(--qz-section-y) 0;
	background: var(--qz-slate-50);
}

.qz-network-panel {
	position: relative;
	overflow: hidden;
	padding: 24px;
	border: 1px solid rgba(226, 232, 240, .7);
	border-radius: var(--qz-radius-panel);
	background: #fff;
	box-shadow: 0 24px 60px -32px rgba(21, 80, 168, .16);
}

@media (min-width: 768px) {
	.qz-network-panel { padding: 48px; }
}

.qz-network-grid {
	position: absolute;
	inset: 0;
	background-image: linear-gradient(to right, rgba(56, 98, 143, .05) 1px, transparent 1px);
	background-size: 8.3333% 100%;
	opacity: .8;
	pointer-events: none;
}

.qz-network-blob {
	position: absolute;
	border-radius: 50%;
	filter: blur(64px);
	pointer-events: none;
}

.qz-network-blob--tr {
	right: -96px;
	top: -96px;
	width: 256px;
	height: 256px;
	background: rgba(69, 145, 161, .1);
}

.qz-network-blob--bl {
	left: -96px;
	bottom: -128px;
	width: 288px;
	height: 288px;
	background: rgba(73, 141, 114, .1);
}

.qz-network-inner { position: relative; }

/* 头部：左文案 + 右图例 */
.qz-network-head {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px 40px;
}

.qz-network-headtext { max-width: 576px; }

.qz-network-eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	color: var(--qz-mint-dark);
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .18em;
	text-transform: uppercase;
}

.qz-network-eyebrow::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--qz-mint);
}

.qz-network-title {
	margin: 16px 0 0;
	color: var(--qz-slate-900);
	font-size: 26px;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: -.01em;
}

@media (min-width: 768px) {
	.qz-network-title { font-size: 30px; }
}

.qz-network-desc {
	margin: 12px 0 0;
	color: var(--qz-slate-500);
	font-size: 14px;
	line-height: 28px;
}

/* 图例 */
.qz-network-legend {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--qz-slate-400);
	font-size: 11px;
}

.qz-network-legend li { display: flex; align-items: center; gap: 6px; }

.qz-legend-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
}

.qz-legend-dot--hq { background: var(--qz-mint); box-shadow: 0 0 8px rgba(73, 141, 114, .45); }
.qz-legend-dot--office { background: var(--qz-teal); box-shadow: 0 0 8px rgba(69, 145, 161, .45); }
.qz-legend-line { display: inline-block; width: 16px; height: 1px; border-top: 1px dashed rgba(54, 110, 123, .7); }
.qz-legend-dot--expand { width: 6px; height: 6px; background: transparent; border: 1px solid var(--qz-slate-300); }

/* ── 网络图（Canvas 点阵世界地图 + 航线动画，见 qz-worldmap.js） ─────── */
.qz-network-map {
	position: relative;
	margin-top: 32px;
	overflow: hidden;
	border: 1px solid var(--qz-slate-100);
	border-radius: var(--qz-radius-card);
	background: linear-gradient(to bottom, #f7fbfd, #f2f7f5);
	padding: 12px;
}

.qz-worldmap {
	position: relative;
	width: 100%;
	aspect-ratio: 125 / 80;
}

.qz-worldmap canvas {
	display: block;
	width: 100%;
	height: 100%;
}

@media (min-width: 768px) {
	.qz-network-map { padding: 24px; }
}

/* 底部数据 */
.qz-network-stats {
	display: grid;
	gap: 28px;
	margin-top: 36px;
	padding-top: 32px;
	border-top: 1px solid var(--qz-slate-100);
}

@media (min-width: 640px) {
	.qz-network-stats { grid-template-columns: repeat(3, 1fr); }
	.qz-network-stat + .qz-network-stat { border-left: 1px solid var(--qz-slate-100); }
}

.qz-network-stat { text-align: center; }

.qz-network-num {
	display: block;
	background: linear-gradient(to right, var(--qz-navy), var(--qz-teal-dark));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-size: 30px;
	font-weight: 700;
	letter-spacing: -.02em;
	font-variant-numeric: tabular-nums;
}

@media (min-width: 768px) {
	.qz-network-num { font-size: 34px; }
}

.qz-network-label {
	display: block;
	margin-top: 6px;
	color: var(--qz-slate-400);
	font-size: 12px;
}

/* ============================================================================
   02  区域布局
   ========================================================================== */

.qz-regions {
	padding: var(--qz-section-y) 0;
	background: #fff;
}

.qz-region-grid {
	display: grid;
	gap: 24px;
	margin-top: 48px;
}

@media (min-width: 768px) {
	.qz-region-grid { grid-template-columns: repeat(3, 1fr); }
}

.qz-region-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	overflow: hidden;
	border: 1px solid var(--qz-slate-100);
	border-radius: var(--qz-radius-card);
	background: #fff;
	box-shadow: var(--qz-shadow-card);
}

.qz-region-card:hover {
	transform: translateY(-4px);
	border-color: rgba(69, 145, 161, .2);
	box-shadow: var(--qz-shadow-hover);
}

.qz-region-media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	background: var(--qz-slate-900);
}

.qz-region-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .7s ease-out;
}

.qz-region-card:hover .qz-region-media img { transform: scale(1.05); }

.qz-region-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top,
		rgba(8, 15, 23, .4) 0%, transparent 45%, rgba(8, 15, 23, .15) 100%);
}

.qz-region-place {
	position: absolute;
	left: 16px;
	top: 16px;
	z-index: 1;
	display: flex;
	align-items: center;
	gap: 6px;
	padding: 6px 12px;
	border-radius: var(--qz-radius-pill);
	background: rgba(255, 255, 255, .95);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
	color: var(--qz-navy);
	font-size: 11px;
	font-weight: 600;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .05);
}

.qz-region-place .fa { font-size: 11px; }

.qz-region-en {
	position: absolute;
	right: 16px;
	bottom: 12px;
	z-index: 1;
	color: rgba(255, 255, 255, .7);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 10px;
	letter-spacing: .22em;
}

.qz-region-body {
	display: flex;
	flex: 1;
	flex-direction: column;
	padding: 28px;
}

.qz-region-name {
	margin: 0;
	color: var(--qz-slate-900);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
}

.qz-region-card:hover .qz-region-name { color: var(--qz-teal); }

.qz-region-desc {
	margin: 10px 0 0;
	color: var(--qz-slate-500);
	font-size: 13px;
	line-height: 24px;
}

.qz-region-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 16px;
}

.qz-region-tag {
	padding: 4px 10px;
	border: 1px solid var(--qz-slate-200);
	border-radius: var(--qz-radius-pill);
	background: var(--qz-slate-50);
	color: var(--qz-slate-500);
	font-size: 11px;
}

.qz-region-card:hover .qz-region-tag {
	border-color: rgba(69, 145, 161, .3);
	color: var(--qz-teal-dark);
}

/* ============================================================================
   03  更多市场（滚动词云）
   ========================================================================== */

.qz-markets {
	padding: var(--qz-section-y) 0;
	background: var(--qz-slate-50);
}

.qz-markets-panel {
	margin-top: 48px;
	overflow: hidden;
	padding: 28px 8px;
	border: 1px solid rgba(226, 232, 240, .7);
	border-radius: var(--qz-radius-panel);
	background: #fff;
	box-shadow: 0 24px 60px -32px rgba(21, 80, 168, .14);
}

@media (min-width: 768px) {
	.qz-markets-panel { padding: 36px 24px; }
}

.qz-marquee {
	overflow: hidden;
	padding: 8px 0;
}

@media (min-width: 768px) {
	.qz-marquee { padding: 10px 0; }
}

.qz-marquee-track {
	display: flex;
	width: max-content;
	animation: qz-marquee 30s linear infinite;
}

.qz-marquee--reverse .qz-marquee-track {
	animation-direction: reverse;
	animation-duration: 40s;
}

.qz-marquee:hover .qz-marquee-track { animation-play-state: paused; }

@keyframes qz-marquee {
	from { transform: translateX(0); }
	to { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.qz-marquee-track { animation: none; }
}

.qz-market-word {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding-right: 48px;
	white-space: nowrap;
}

.qz-market-name { line-height: 1.2; }

.qz-market-code {
	color: var(--qz-slate-300);
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 12px;
	letter-spacing: .28em;
	text-transform: uppercase;
}

/* 四档词级 */
.qz-market--pre .qz-market-name {
	color: var(--qz-navy);
	font-size: 30px;
	font-weight: 700;
}

.qz-market--deepen .qz-market-name {
	background: linear-gradient(to right, var(--qz-navy), var(--qz-mint-dark));
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	font-size: 30px;
	font-weight: 700;
}

.qz-market--intent .qz-market-name {
	color: rgba(56, 98, 143, .7);
	font-size: 21px;
	font-weight: 600;
}

.qz-market--research .qz-market-name {
	color: var(--qz-slate-400);
	font-size: 16px;
}

/* 图例 */
.qz-markets-legend {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 16px;
	margin: 24px 0 0;
	padding: 20px 0 0;
	border-top: 1px solid var(--qz-slate-100);
	list-style: none;
}

.qz-markets-legend li {
	display: flex;
	align-items: center;
	gap: 6px;
	color: var(--qz-slate-500);
	font-size: 12px;
}

/* ============================================================================
   04  联盟资讯
   ========================================================================== */

.qz-alliance-news {
	padding: var(--qz-section-y) 0;
	background: #fff;
}
