/*
Theme Name: Diqiu
Theme URI: https://example.com/diqiu
Author: 定制开发
Author URI: https://example.com
Description: 高端装备制造企业官网主题。全宽横幅、旋转地球、产业矩阵、全球服务网络地图、数据统计、新闻中心与合作伙伴模块，内置多语言切换位与完整的「主题设置」自定义面板。
Version: 4.0.0
Requires at least: 5.6
Tested up to: 6.8
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: diqiu
Tags: full-width-template, custom-colors, custom-logo, custom-menu, featured-images, translation-ready, threaded-comments
*/

/* =========================================================================
   1. 设计令牌 —— 所有颜色/字体/间距均由 Customizer 输出为 CSS 变量
   ========================================================================= */
:root {
	/* ------------------------------------------------------------------
	   主色体系
	   参照站用草绿做唯一强调色，本站按客户要求整组换成深蓝墨色 #0f283d；
	   -2 / -3 是同色系提亮档，用于悬停与渐变，-line 用于分隔线一类的弱化描边。
	   两种明暗模式下强调色都不变，只有中性色整组翻转。
	   ------------------------------------------------------------------ */
	--dq-primary: #0f283d;
	--dq-primary-2: #1c4a6e;
	--dq-primary-3: #2d6a97;
	--dq-primary-soft: rgba(15, 40, 61, 0.12);
	--dq-primary-line: rgba(15, 40, 61, 0.32);

	/* 中性色 */
	--dq-ink: #3e3a39;
	--dq-ink-2: #8b8988;
	--dq-muted: #9a9a98;
	--dq-line: #e0e0e0;
	--dq-line-soft: #f0f0f0;

	/* 背景 */
	--dq-bg: #ffffff;
	--dq-bg-alt: #f5f5f5;
	--dq-bg-dark: #333333;
	--dq-bg-darker: #2b2b2b;

	/* 反色前景：底色为 --dq-ink 的色块上用它写字，明暗模式下与 --dq-ink 互换 */
	--dq-bright: #ffffff;

	/* 字体 */
	--dq-font-heading: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	--dq-font-body: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Source Han Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
	/* 数字专用字体。参照站用商业字体 DinPro，这里换成度量接近的免费字体。 */
	--dq-font-num: "Oswald", "DIN Alternate", "Roboto Condensed", "Noto Sans SC", sans-serif;
	--dq-lh-base: 1.4;

	/* 形状 */
	--dq-radius: 0px;
	--dq-radius-lg: 0px;
	--dq-shadow: 0 6px 30px rgba(0, 0, 0, 0.08);
	--dq-shadow-lg: 0 18px 60px rgba(0, 0, 0, 0.12);

	/* ------------------------------------------------------------------
	   流体比例系统
	   参照站的规则实测如下，两套单位不能混用：

	   · 容器宽度用百分比    .app-container { width: 66.6667%; max-width: 1440px }
	     页头/页脚容器 83.3333%。百分比算在文档宽里，不含滚动条。
	   · 字号与间距用 vw     1920px 稿的 Npx 落到手挑的 vw 值，
	     ≤1440px 再回落到固定像素。

	   之前整套用 vw 折算容器宽，1470px 视口下容器算成 980px，
	   而参照站的文档宽只有 1455px，容器应为 970px —— 左右各差 5px。
	   所以容器一律改回百分比，只有字号间距保留 vw。
	   ------------------------------------------------------------------ */
	--dq-container: 66.6667%;      /* 970 / 1455 */
	--dq-container-max: 1440px;
	--dq-container-wide: 83.3333%; /* 1213 / 1455，页头与页脚主区 */
	--dq-space: 3vw;               /* 44.1 / 1470 */
	--dq-space-sm: 1.667vw;
	--dq-header-h: 4.422vw;        /* 65 / 1470 */
	--dq-hero-h: 47.823vw;         /* 703 / 1470 */

	/* 字号阶梯：clamp 的上下界即参照站 >1920 与 ≤1440 两档的固定值 */
	--dq-fs-base: clamp(12px, 0.8333vw, 16px);   /* 正文 12.25 */
	--dq-fs-title: clamp(22px, 2vw, 36px);       /* 板块标题 29.4 */
	--dq-fs-title-2: clamp(18px, 1.3338vw, 26px);/* 次级标题 19.6 */
	--dq-fs-lead: clamp(16px, 1.25vw, 20px);     /* 引导文案 18.375 */
	--dq-fs-stat: clamp(20px, 1.94vw, 32px);     /* 统计中列 28.5 */
	--dq-fs-note: clamp(15px, 1.388vw, 22px);    /* 统计右列 20.4 */
	--dq-fs-card: clamp(13px, 1.01vw, 19px);     /* 卡片标题 14.85 */

	/* 首屏各元素的绝对位置（全部换算自实测值） */
	--dq-hero-pad-top: 4.082vw;    /* 60px */
	--dq-hero-inner-h: 18.75vw;    /* 276px */
	--dq-hero-photo-h: 25vw;       /* 368px */
	--dq-hero-title-fs: clamp(24px, 3.75vw, 54px);
	--dq-hero-slogan-fs: clamp(24px, 3.27vw, 48px);
	--dq-globe-size: 38.912vw;     /* 572px */
	--dq-globe-top: 25.646vw;      /* 377px */
	--dq-globe-left: 43.401vw;     /* 638px */

	--dq-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* =========================================================================
   1.5 深色模式
   变量整组覆盖，所有组件自动跟随，不需要逐个写深色规则。
   主题色 #0f283d 在深底上几乎不可见，深色下换用提亮版本。
   ========================================================================= */
/* 参照站首页默认就跑在深色模式下（html.is-dark），所以这里是「常态配色」，
   浅色反而是切换出来的备用态。中性色整组翻转，强调色保持草绿不变。 */
:root[data-theme="dark"] {
	--dq-ink: #ffffff;
	--dq-ink-2: rgba(255, 255, 255, 0.6);
	--dq-muted: #9a9a98;
	--dq-line: rgba(255, 255, 255, 0.14);
	--dq-line-soft: rgba(255, 255, 255, 0.08);

	--dq-bg: #3e3a39;
	--dq-bg-alt: #333333;
	--dq-bg-dark: #333333;

	/* 深色下反色前景变深：白底色块（产业条、资讯白卡、伙伴 logo 片）上的字 */
	--dq-bright: #333333;

	color-scheme: dark;
}

/* 深色下需要单独处理的几处 */
:root[data-theme="dark"] .dq-globe-section {
	background: linear-gradient(180deg, #3e3a39 0%, #322f2e 100%);
}

:root[data-theme="dark"] .dq-footer {
	background: #2b2b2b;
}

:root[data-theme="dark"] .dq-footer__bottom {
	background: #232020;
}

:root[data-theme="dark"] .dq-service-card {
	background: var(--dq-bg-alt);
	border-color: var(--dq-line);
}

:root[data-theme="dark"] .dq-search-overlay {
	background: rgba(62, 58, 57, 0.98);
}

:root[data-theme="dark"] .dq-map__canvas {
	filter: invert(1) brightness(1.35) hue-rotate(180deg);
}

/* 官网页头使用紧凑型明暗开关，不显示独立的大号太阳图标。 */
.dq-theme-toggle {
	position: relative;
	width: 38px;
	height: 24px;
	border-radius: 2px;
	background: #eef2e8;
	overflow: hidden;
}

.dq-theme-toggle::before {
	content: "";
	position: absolute;
	top: 4px;
	left: 4px;
	width: 16px;
	height: 16px;
	border-radius: 1px;
	background:
		linear-gradient(#fff, #fff) 4px 4px / 8px 1px no-repeat,
		linear-gradient(#fff, #fff) 4px 7px / 8px 1px no-repeat,
		linear-gradient(#fff, #fff) 4px 10px / 8px 1px no-repeat,
		#30383d;
	transition: transform 0.25s var(--dq-ease);
}

.dq-theme-toggle::after {
	content: "";
	position: absolute;
	top: 7px;
	right: 5px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: #d7c83d;
	box-shadow: -3px -1px 0 #eef2e8 inset;
}

.dq-theme-toggle__sun,
.dq-theme-toggle__moon {
	display: none;
}

:root[data-theme="dark"] .dq-theme-toggle::before {
	transform: translateX(14px);
}

:root[data-theme="dark"] .dq-theme-toggle::after {
	right: auto;
	left: 5px;
}

/* =========================================================================
   2. 复位与基础排版
   ========================================================================= */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: var(--dq-header-h);
	overflow-x: hidden;
}

body {
	margin: 0;
	background: var(--dq-bg);
	color: var(--dq-ink);
	font-family: var(--dq-font-body);
	font-size: var(--dq-fs-base);
	line-height: var(--dq-lh-base);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

body.dq-no-scroll {
	overflow: hidden;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 0.5em;
	font-family: var(--dq-font-heading);
	font-weight: 700;
	line-height: 1.25;
	color: var(--dq-ink);
}

p {
	margin: 0 0 1em;
}

a {
	color: inherit;
	text-decoration: none;
	transition: color 0.3s var(--dq-ease);
}

a:hover {
	color: var(--dq-primary);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
	border: 0;
}

figure {
	margin: 0;
}

ul, ol {
	margin: 0 0 1em;
	padding-left: 1.25em;
}

button {
	font: inherit;
	color: inherit;
	cursor: pointer;
	border: 0;
	background: none;
}

input, textarea, select {
	font: inherit;
	color: inherit;
}

table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 1.5em;
}

th, td {
	padding: 12px 16px;
	border: 1px solid var(--dq-line);
	text-align: left;
}

blockquote {
	margin: 0 0 1.5em;
	padding: 4px 0 4px 24px;
	border-left: 3px solid var(--dq-primary);
	color: var(--dq-ink-2);
}

code, pre {
	font-family: SFMono-Regular, Menlo, Consolas, monospace;
	background: var(--dq-bg-alt);
}

pre {
	padding: 20px;
	overflow-x: auto;
}

code {
	padding: 2px 6px;
	font-size: 0.9em;
}

hr {
	border: 0;
	border-top: 1px solid var(--dq-line);
	margin: 2em 0;
}

::selection {
	background: var(--dq-primary);
	color: #fff;
}

/* 无障碍：跳转到主内容 */
.dq-skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: 12px 20px;
	background: var(--dq-primary);
	color: #fff;
}

.dq-skip-link:focus {
	left: 8px;
	top: 8px;
	color: #fff;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

:focus-visible {
	outline: 2px solid var(--dq-primary-3);
	outline-offset: 3px;
}

/* =========================================================================
   3. 布局工具
   ========================================================================= */
/* 容器宽度用百分比而不是 vw：百分比算在文档宽里（不含滚动条），
   与参照站的 .app-container 逐像素一致；用 vw 会把滚动条宽度算进去，
   1470px 视口下会多出 10px。 */
.dq-container {
	width: var(--dq-container);
	max-width: var(--dq-container-max);
	margin-left: auto;
	margin-right: auto;
}

/* 页头与页脚主区用更宽的一档 */
.dq-container--wide {
	width: var(--dq-container-wide);
	max-width: var(--dq-container-max);
}

.dq-container--narrow {
	width: 46vw;
}

.dq-section {
	padding: var(--dq-space) 0;
	position: relative;
}

.dq-section--alt {
	background: var(--dq-bg-alt);
}

.dq-section--dark {
	background: var(--dq-bg-dark);
	color: #fff;
}

.dq-section--dark h1,
.dq-section--dark h2,
.dq-section--dark h3 {
	color: #fff;
}

.dq-section--flush {
	padding: 0;
}

.dq-section--tight {
	padding: var(--dq-space-sm) 0;
}

.dq-grid {
	display: grid;
	gap: 30px;
}

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

/* =========================================================================
   4. 板块标题
   ========================================================================= */
.dq-heading {
	margin-bottom: var(--dq-space-sm);
}

.dq-heading--center {
	text-align: center;
}

.dq-heading__eyebrow {
	display: block;
	margin-bottom: 0.95vw;
	font-size: 0.88vw;
	font-weight: 600;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--dq-primary);
}

/* 板块标题 2vw，与参照站的 29.4px@1470 一致 */
.dq-heading__title {
	margin: 0;
	font-size: 2vw;
	font-weight: 700;
	letter-spacing: -0.01em;
}

.dq-heading__desc {
	margin: 1.2vw 0 0;
	max-width: 49vw;
	color: var(--dq-ink-2);
	font-size: 0.95vw;
}

.dq-heading--center .dq-heading__desc {
	margin-left: auto;
	margin-right: auto;
}

/* 标题下的短下划线，参考站的强调笔触 */
.dq-underline {
	position: relative;
	display: inline-block;
	padding-bottom: 10px;
}

.dq-underline::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 46px;
	height: 4px;
	background: var(--dq-primary);
}

.dq-heading--center .dq-underline::after {
	left: 50%;
	transform: translateX(-50%);
}

/* =========================================================================
   5. 按钮
   ========================================================================= */
.dq-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 14px 34px;
	border: 1px solid var(--dq-primary);
	border-radius: var(--dq-radius);
	background: var(--dq-primary);
	color: #fff;
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
	text-align: center;
	cursor: pointer;
	transition: all 0.3s var(--dq-ease);
}

.dq-btn:hover {
	background: var(--dq-primary-2);
	border-color: var(--dq-primary-2);
	color: #fff;
}

.dq-btn--outline {
	background: transparent;
	color: var(--dq-ink);
	border-color: var(--dq-ink);
}

.dq-btn--outline:hover {
	background: var(--dq-primary);
	border-color: var(--dq-primary);
	color: #fff;
}

.dq-btn--ghost {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.6);
}

.dq-btn--ghost:hover {
	background: #fff;
	border-color: #fff;
	color: var(--dq-primary);
}

.dq-btn--text {
	padding: 0;
	border: 0;
	background: none;
	color: var(--dq-primary);
}

.dq-btn--text:hover {
	background: none;
	color: var(--dq-primary-2);
	gap: 16px;
}

.dq-btn--sm {
	padding: 10px 24px;
	font-size: 14px;
}

.dq-btn__arrow {
	width: 1em;
	height: 1em;
	flex: none;
	transition: transform 0.3s var(--dq-ease);
}

.dq-btn:hover .dq-btn__arrow {
	transform: translateX(4px);
}

/* =========================================================================
   6. 页头
   ========================================================================= */
.dq-header {
	position: relative;
	z-index: 100;
	width: 100%;
	background: var(--dq-bg);
	font-size: 16px;
	border-bottom: 1px solid transparent;
	transition: background 0.3s var(--dq-ease), box-shadow 0.3s var(--dq-ease);
}

.dq-header--sticky {
	position: sticky;
	top: 0;
}

.dq-header.is-stuck {
	background: var(--dq-bg);
	box-shadow: 0 2px 20px rgba(0, 0, 0, 0.08);
}

.dq-header__inner {
	display: flex;
	align-items: center;
	gap: 1.7vw;
	min-height: var(--dq-header-h);
}

/* 页头的内容列比正文容器宽一档（实测 83.333vw） */
.dq-header .dq-container {
	width: 83.333vw;
}

/* 页头叠在首屏 / 内页横幅之上，不占据高度（参照站全站如此）。
   透明只在「未吸顶」时成立，所以直接用 :not(.is-stuck) 限定——
   否则它会和下面的吸顶规则争同一个 background，首次绘制时解析成透明，
   滚过去的内容会从固定导航里透出来。 */
.home .dq-header--sticky,
.dq-has-hero .dq-header--sticky {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
}

.home .dq-header--sticky:not(.is-stuck),
.dq-has-hero .dq-header--sticky:not(.is-stuck) {
	background: transparent;
}

.home .dq-header--sticky.is-stuck,
.dq-has-hero .dq-header--sticky.is-stuck {
	position: fixed;
	background: var(--dq-bg);
}


/* 内页横幅是深色的，未滚动时页头文字转白 */
.dq-has-hero .dq-header--sticky:not(.is-stuck) .dq-header__logo-text,
.dq-has-hero .dq-header--sticky:not(.is-stuck) .dq-header__logo-mark,
.dq-has-hero .dq-header--sticky:not(.is-stuck) .dq-menu > li > a,
.dq-has-hero .dq-header--sticky:not(.is-stuck) .dq-icon-btn,
.dq-has-hero .dq-header--sticky:not(.is-stuck) .dq-header__lang {
	color: #fff;
	fill: #fff;
}

.dq-has-hero .dq-header--sticky:not(.is-stuck) .dq-header__tagline {
	color: rgba(255, 255, 255, 0.7);
}

.dq-has-hero .dq-header--sticky:not(.is-stuck) .dq-burger span {
	background: #fff;
}

/* 内页横幅顶部要留出被页头盖住的高度 */
.dq-has-hero .dq-page-hero {
	padding-top: 10.498vw;
}

.dq-header__brand {
	flex: none;
	display: flex;
	align-items: center;
	gap: 12px;
}

.dq-header__logo img {
	height: var(--dq-logo-h, 34px);
	width: auto;
	object-fit: contain;
}

.dq-header__logo-mark {
	display: block;
	width: 10vw;
	max-width: 147px;
	height: auto;
	fill: var(--dq-ink);
}

.dq-header__logo-text {
	font-family: Arial, Helvetica, sans-serif;
	font-size: clamp(28px, 2.45vw, 36px);
	font-weight: 900;
	letter-spacing: -0.035em;
	color: var(--dq-ink);
	line-height: 1;
}

.dq-header__tagline {
	display: none;
}

.dq-header__nav {
	flex: 1 1 auto;
	display: flex;
	align-self: stretch;
	align-items: center;
	justify-content: flex-end;
	padding-right: 3vw;
}

.dq-header__tools {
	flex: none;
	display: flex;
	align-items: center;
	gap: 20px;
}

/* --- 主菜单 --- */
.dq-menu {
	display: flex;
	align-items: center;
	gap: 0;
	height: 100%;
	margin: 0;
	padding: 0;
	list-style: none;
}

.dq-menu > li {
	position: relative;
	display: flex;
	align-items: center;
	height: 100%;
}

.dq-menu > li > a {
	display: flex;
	align-items: center;
	height: 100%;
	padding: 1.42vw 1.05vw;
	font-size: 0.92vw;
	font-weight: 500;
	color: var(--dq-ink);
	white-space: nowrap;
}

.dq-menu > li > a:hover,
.dq-menu > li.current-menu-item > a,
.dq-menu > li.current-menu-ancestor > a,
.dq-menu > li.current_page_item > a {
	color: var(--dq-primary);
}

/* 二级导航：官网使用贴在页头下方的全宽浮层，而不是普通竖向下拉框。 */
.dq-menu > li > .sub-menu {
	position: fixed;
	top: var(--dq-header-h);
	left: 0;
	z-index: 99;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0;
	width: 100vw;
	min-width: 0;
	margin: 0;
	padding: 13px 16.667vw;
	list-style: none;
	background: var(--dq-bg);
	box-shadow: 0 14px 30px rgba(0, 0, 0, 0.05);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-8px);
	transition: opacity 0.24s var(--dq-ease), transform 0.24s var(--dq-ease), visibility 0.24s;
}

.dq-menu > li:hover > .sub-menu,
.dq-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: none;
}

.dq-menu > li > .sub-menu a {
	display: block;
	padding: 7px 1.45vw;
	font-size: 0.88vw;
	color: var(--dq-ink-2);
	white-space: nowrap;
}

.dq-menu > li > .sub-menu a:hover {
	background: transparent;
	color: var(--dq-primary);
}

.dq-menu > li:not(:nth-child(2)) > .sub-menu {
	height: clamp(41px, 2.82vw, 48px);
	padding-top: 0;
	padding-bottom: 0;
}

.dq-menu > li:not(:nth-child(2)) > .sub-menu > li,
.dq-menu > li:not(:nth-child(2)) > .sub-menu > li > a {
	height: 100%;
}

.dq-menu > li:not(:nth-child(2)) > .sub-menu > li > a {
	display: flex;
	align-items: center;
	padding-top: 0;
	padding-bottom: 0;
}

/* 产品与解决方案：七列图标式大菜单，默认使用中性线框图标。 */
.dq-menu > li:nth-child(2) > .sub-menu {
	align-items: stretch;
	height: 12.585vw;
	min-height: 170px;
	max-height: 185px;
	padding-top: 2.65vw;
	padding-bottom: 1.1vw;
}

.dq-menu > li:nth-child(2) > .sub-menu > li {
	flex: 1 1 0;
	min-width: 0;
}

.dq-menu > li:nth-child(2) > .sub-menu > li > a {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	gap: 0.65vw;
	height: 100%;
	padding: 0 0.7vw;
	font-size: 0.82vw;
	line-height: 1.35;
	text-align: center;
	color: var(--dq-ink);
	white-space: normal;
}

/* 产品下拉里的图标：用产业条那套精灵图，常态取上半张，
   悬停切到下半张，和产业条的交互保持一致。 */
.dq-submenu__icon {
	display: block;
	width: 5.1vw;
	height: 5.1vw;
	max-width: 76px;
	max-height: 76px;
	min-width: 64px;
	min-height: 64px;
	overflow: hidden;
}

.dq-submenu__icon img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	transition: object-position 0.28s var(--dq-ease), transform 0.28s var(--dq-ease);
}

.dq-menu .sub-menu li > a:hover .dq-submenu__icon img {
	object-position: bottom;
	transform: translateY(-2px);
}

.dq-submenu__label {
	display: block;
}

/* 三级仍保留普通侧向展开，兼容后台未来增加更深层级。 */
.dq-menu .sub-menu .sub-menu {
	position: absolute;
	top: 0;
	left: 100%;
	min-width: 200px;
	margin: 0;
	padding: 10px 0;
	list-style: none;
	background: var(--dq-bg);
	box-shadow: var(--dq-shadow);
	opacity: 0;
	visibility: hidden;
	transform: translateX(6px);
	transition: opacity 0.24s var(--dq-ease), transform 0.24s var(--dq-ease), visibility 0.24s;
}

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

.dq-menu .sub-menu li:hover > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateX(0);
}

/* --- 语言切换 / 搜索 / 菜单按钮 --- */
.dq-header__lang {
	position: relative;
	font-size: 13px;
	color: var(--dq-ink-2);
}

.dq-header__lang .fanyi2-switcher,
.dq-header__lang select {
	font-size: 13px;
}

.dq-lang-fallback {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: default;
	color: var(--dq-ink-2);
}

.dq-icon-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	color: var(--dq-ink);
	transition: color 0.3s var(--dq-ease);
}

.dq-icon-btn.dq-theme-toggle {
	width: 38px;
	height: 24px;
}

.dq-icon-btn:hover {
	color: var(--dq-primary);
}

.dq-search-toggle {
	width: 26px;
}

.dq-search-toggle svg {
	width: 14px;
	height: 14px;
}

/* 全宽菜单打开时官网会暂时遮去首屏文案，避免文字从菜单底部露出。 */
.dq-header:has(.dq-menu > li:hover > .sub-menu) ~ .dq-main .dq-hero__copy,
.dq-header:has(.dq-menu > li:focus-within > .sub-menu) ~ .dq-main .dq-hero__copy {
	opacity: 0;
}

.dq-icon-btn svg {
	width: 20px;
	height: 20px;
}

/* 汉堡按钮 */
.dq-burger {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 44px;
	padding: 0 10px;
}

.dq-burger span {
	display: block;
	height: 2px;
	width: 100%;
	background: var(--dq-burger-color, var(--dq-ink));
	transition: transform 0.3s var(--dq-ease), opacity 0.2s var(--dq-ease);
}

.dq-burger.is-open span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.dq-burger.is-open span:nth-child(2) {
	opacity: 0;
}

.dq-burger.is-open span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* --- 搜索浮层 --- */
.dq-search-overlay {
	position: fixed;
	inset: 0;
	z-index: 200;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.98);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s var(--dq-ease), visibility 0.3s var(--dq-ease);
}

.dq-search-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.dq-search-overlay__form {
	display: flex;
	align-items: center;
	gap: 16px;
	width: min(760px, 88vw);
	padding-bottom: 18px;
	border-bottom: 2px solid var(--dq-primary);
}

.dq-search-overlay__form input[type="search"] {
	flex: 1;
	border: 0;
	background: none;
	font-size: clamp(20px, 3vw, 34px);
	outline: none;
}

.dq-search-overlay__close {
	position: absolute;
	top: 32px;
	right: 32px;
	width: 48px;
	height: 48px;
	color: var(--dq-ink);
}

/* --- 移动端抽屉 --- */
.dq-mobile-nav {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 150;
	width: min(420px, 88vw);
	height: 100dvh;
	padding: 90px 0 40px;
	background: var(--dq-bg);
	box-shadow: var(--dq-shadow-lg);
	transform: translateX(100%);
	transition: transform 0.36s var(--dq-ease);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.dq-mobile-nav.is-open {
	transform: translateX(0);
}

.dq-mobile-nav__close {
	position: absolute;
	top: 12px;
	right: 14px;
	width: 44px;
	height: 44px;
	color: var(--dq-ink);
}

.dq-mobile-nav__close svg {
	width: 22px;
	height: 22px;
}

.dq-mobile-nav__backdrop {
	position: fixed;
	inset: 0;
	z-index: 140;
	background: rgba(0, 0, 0, 0.45);
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.3s var(--dq-ease), visibility 0.3s var(--dq-ease);
}

.dq-mobile-nav__backdrop.is-open {
	opacity: 1;
	visibility: visible;
}

.dq-mobile-menu,
.dq-mobile-menu .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dq-mobile-menu li {
	position: relative;
	border-bottom: 1px solid var(--dq-line-soft);
}

.dq-mobile-menu a {
	display: block;
	padding: 16px 28px;
	font-size: 16px;
	font-weight: 500;
}

.dq-mobile-menu .sub-menu {
	display: none;
	background: var(--dq-bg-alt);
}

.dq-mobile-menu .sub-menu a {
	padding-left: 44px;
	font-size: 15px;
	font-weight: 400;
	color: var(--dq-ink-2);
}

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

.dq-mobile-menu__toggle {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	color: var(--dq-muted);
}

.dq-mobile-menu__toggle svg {
	width: 14px;
	height: 14px;
	transition: transform 0.3s var(--dq-ease);
}

.dq-mobile-menu li.is-open > .dq-mobile-menu__toggle svg {
	transform: rotate(180deg);
}

.dq-mobile-menu li > a {
	position: relative;
}

.dq-mobile-nav__lang {
	padding: 24px 28px;
}

/* =========================================================================
   7. 首页 Hero
   ========================================================================= */
/* 首屏是三段常规流，不是绝对定位：
   顶部 60px 留白 → 文案区 18.75vw(276px) → 媒体区 25vw(368px)，
   合计 47.823vw(703px)。文案在自己那 276px 里垂直居中，
   地球再叠在文案区与媒体区的交界上。 */
.dq-hero {
	position: relative;
	height: var(--dq-hero-h);
	padding-top: var(--dq-hero-pad-top);
	background: var(--dq-bg);
	overflow: visible;
	z-index: 1;
}

.dq-hero__copy {
	position: relative;
	width: var(--dq-container);
	max-width: var(--dq-container-max);
	margin: 0 auto;
	height: var(--dq-hero-inner-h);
	min-height: 150px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	z-index: 3;
}

.dq-hero__eyebrow {
	font-size: var(--dq-fs-base);
	font-weight: 400;
	color: var(--dq-ink-2);
	margin-bottom: 1.5em;
}

.dq-hero__title {
	margin: 0;
	line-height: 1.4;
}

.dq-hero__title-main {
	display: block;
	font-size: var(--dq-hero-title-fs);
	font-weight: 700;
	color: var(--dq-ink);
}

.dq-hero__slogan {
	display: flex;
	align-items: center;
	font-size: var(--dq-hero-slogan-fs);
	font-weight: 900;
	letter-spacing: 2px;
	line-height: 1;
	min-height: 35px;
	margin-bottom: 1em;
	color: var(--dq-primary);
	text-transform: uppercase;
	white-space: pre;
}

/* 句末闪烁的绿色光标 */
.dq-hero__slogan::after {
	content: "";
	display: inline-block;
	width: 0.15em;
	height: 0.8em;
	margin-left: 0.2em;
	transform: translateY(1px);
	background: currentColor;
	animation: dq-blink-caret 0.5s ease infinite;
}

@keyframes dq-blink-caret {
	0%, 49%  { opacity: 1; }
	50%, 100% { opacity: 0; }
}

/* 逐字母入场，与参照站一致 */
.dq-hero__slogan span {
	display: inline-block;
	will-change: transform, opacity;
}

@media (prefers-reduced-motion: reduce) {
	.dq-hero__slogan::after {
		animation: none;
	}
}

/* 媒体区接在文案区下方，铺到首屏底部 */
.dq-hero__media {
	position: relative;
	height: var(--dq-hero-photo-h);
	min-height: 200px;
	overflow: hidden;
	background: var(--dq-bg-alt);
	z-index: 1;
}

.dq-hero__media img,
.dq-hero__media video {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* 未上传横幅素材时显示中性抽象占位；上传后自动由图片或视频替换。 */
.dq-hero__media--placeholder {
	overflow: hidden;
	background: #1c1a19;
}

/* 没上传横幅视频/图片时，铺主题自带的深色方块场景，
   再叠一层极慢的缩放位移，静图也有视频的呼吸感。 */
.dq-hero__media--placeholder::before {
	content: "";
	position: absolute;
	inset: -4%;
	background: url("assets/img/hero-cubes.jpg") center 62% / cover no-repeat;
	animation: dq-hero-drift 32s ease-in-out infinite alternate;
	will-change: transform;
}

@keyframes dq-hero-drift {
	from { transform: scale(1) translate3d(0, 0, 0); }
	to   { transform: scale(1.06) translate3d(-1.2%, -0.8%, 0); }
}

@media (prefers-reduced-motion: reduce) {
	.dq-hero__media--placeholder::before {
		animation: none;
	}
}

.dq-hero__slides {
	position: relative;
	width: 100%;
	height: 100%;
}

.dq-hero__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	transition: opacity 0.9s var(--dq-ease);
}

.dq-hero__slide.is-active {
	opacity: 1;
}

.dq-hero__dots {
	position: absolute;
	left: 50%;
	bottom: 26px;
	transform: translateX(-50%);
	display: flex;
	gap: 10px;
	z-index: 3;
}

.dq-hero__dot {
	width: 34px;
	height: 3px;
	background: rgba(255, 255, 255, 0.45);
	transition: background 0.3s var(--dq-ease);
}

.dq-hero__dot.is-active {
	background: #fff;
}

/* =========================================================================
   8. 全球板块 + 旋转地球
   ========================================================================= */
/* 首屏包裹层：横幅 + 地球 + 全球板块共处同一坐标系，
   地球才能横跨两者的交界（参照站正是这个关系） */
.dq-top {
	position: relative;
	background: var(--dq-bg);
}

/* 全球板块是常规流：padding-top 2em，然后左列文案，再接产业条。
   高度由内容撑开（实测 411px），不写死。 */
.dq-globe-section {
	position: relative;
	padding-top: 2em;
	font-size: var(--dq-fs-base);
	z-index: 2;
}

.dq-globe-section__inner {
	position: relative;
}

/* 左列文案：宽 21.5vw（316px），常规流排在产业条上方。
   层级要高于地球，否则「查看详情」按钮会被球体盖住。 */
.dq-globe-section__copy {
	position: relative;
	width: 21.5vw;
	min-width: 245px;
	padding: 1.5em 0 0.8em;
	z-index: 5;
}

.dq-globe-section__title {
	margin: 0;
	font-size: var(--dq-fs-title);
	font-weight: 700;
	line-height: 1.4;
	color: var(--dq-ink);
}

.dq-globe-section__desc {
	margin: 1em 0;
	color: var(--dq-ink-2);
	font-size: 1em;
	line-height: 1.7;
	text-align: justify;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 4;
	overflow: hidden;
}

/* 3D 地球：绝对定位到实测坐标，叠在横幅与全球板块之上 */
.dq-globe {
	position: absolute;
	top: var(--dq-globe-top);
	left: var(--dq-globe-left);
	width: var(--dq-globe-size);
	height: var(--dq-globe-size);
	z-index: 4;
	pointer-events: none;
}

/* 地球始终不接收指针事件：它绝对定位、面积很大，一旦接收就会盖住
   下面的产业条链接，而外层板块自带层叠上下文，靠 z-index 抢不回来。
   拖拽改由外层容器监听 + 圆形命中判定（见 globe.js）。
   光标提示挂在 .dq-top 上，指针进入球体范围时才变成抓取手势。 */
.dq-top:has(.dq-globe.is-hover) {
	cursor: grab;
}

.dq-top:has(.dq-globe.is-dragging) {
	cursor: grabbing;
	user-select: none;
}

/* 拖拽期间禁止选中文字，避免拖出一片高亮 */
.dq-globe.is-dragging ~ * {
	user-select: none;
}

.dq-globe canvas {
	display: block;
	width: 100%;
	height: 100%;
}

/* WebGL 不可用时回退到贴图球 */
.dq-globe--fallback {
	border-radius: 50%;
	overflow: hidden;
	box-shadow:
		inset -1.9vw -1.2vw 4.8vw rgba(0, 0, 0, 0.55),
		inset 1.1vw 0.8vw 3.1vw rgba(255, 255, 255, 0.18);
	background: #0b1a2b;
}

.dq-globe__map {
	position: absolute;
	inset: 0;
	background-image: var(--dq-globe-img);
	background-repeat: repeat-x;
	background-size: auto 100%;
	animation: dq-globe-spin var(--dq-globe-speed, 44s) linear infinite;
}

.dq-globe--neutral .dq-globe__map {
	background-image:
		radial-gradient(circle at 33% 28%, rgba(110, 168, 212, 0.5), transparent 28%),
		repeating-linear-gradient(20deg, transparent 0 18px, rgba(255, 255, 255, 0.035) 19px 20px),
		linear-gradient(135deg, #1c4a6e, #0b1a2b);
	background-size: 100% 100%;
	animation: none;
}

.dq-globe__shade {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background:
		radial-gradient(circle at 32% 28%, rgba(255, 255, 255, 0.32) 0%, rgba(255, 255, 255, 0) 46%),
		radial-gradient(circle at 72% 76%, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0) 62%);
	pointer-events: none;
}

.dq-globe__ring {
	position: absolute;
	inset: -6%;
	border-radius: 50%;
	border: 1px solid var(--dq-primary-line);
	pointer-events: none;
}

.dq-globe__orbit {
	position: absolute;
	inset: -6%;
	border-radius: 50%;
	border: 1px dashed rgba(15, 40, 61, 0.28);
	animation: dq-orbit 26s linear infinite;
	pointer-events: none;
}

@keyframes dq-globe-spin {
	from { background-position: 70% center; }
	to { background-position: -130% center; }
}

@keyframes dq-orbit {
	from { transform: rotate(0deg); }
	to { transform: rotate(360deg); }
}

/* Canvas 版本（开启后替换贴图球） */
.dq-globe canvas {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
}

/* =========================================================================
   9. 产业条 + 产品线图标行
   ========================================================================= */
/* 产业条：嵌在「全球」板块底部，整条宽度等于容器宽。
   层级要高于地球（z-index 4），否则可拖拽的地球会盖住这里的链接；
   但容器本身不接收点击，只有真正的横条和产品线格接收，
   这样地球在空白处仍可拖动，按钮也不会被吃掉。 */
.dq-industry__strip {
	position: relative;
	width: 100%;
	padding-top: var(--dq-space);
	z-index: 5;
	pointer-events: none;
}

.dq-industry__tab,
.dq-lineup__item {
	pointer-events: auto;
}

/* 大类横条：按各自产品线数量成比例跨列，恰好压在下方图标组的上边 */
.dq-industry__tabs {
	display: grid;
	gap: 2%;
	padding: 0.5em 0;
}

/* 横条是反色块：浅色模式深底白字，深色模式白底深字 */
.dq-industry__tab {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--dq-ink);
	color: var(--dq-bright);
	font-size: 1em;
	font-weight: 400;
	text-align: center;
	transition: background 0.3s var(--dq-ease), color 0.3s var(--dq-ease);
}

.dq-industry__tab:hover,
.dq-industry__tab.is-active {
	background: var(--dq-primary);
	color: #fff;
}

/* 产品线格：逐格等宽铺满容器，格宽 = 100/条数 % */
.dq-lineup {
	display: grid;
	margin-top: 1.5em;
}

.dq-lineup__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	text-align: center;
	color: var(--dq-ink);
}

.dq-lineup__icon {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 6.25vw;            /* 与参照站一致 */
	height: 6.25vw;
	max-width: 100px;
	max-height: 100px;
	min-width: 60px;
	min-height: 60px;
	flex: none;
	overflow: hidden;
}

/* 图标外的两段圆弧，悬停时旋转并加深 */
.dq-lineup__icon::before {
	content: "";
	position: absolute;
	inset: -0.6vw;
	border-radius: 50%;
	border: 0.11vw solid var(--dq-primary);
	clip-path: polygon(0 0, 38% 0, 38% 100%, 0 100%, 0 0, 100% 0, 100% 100%, 62% 100%, 62% 0, 100% 0);
	opacity: 0.5;
	transition: opacity 0.3s var(--dq-ease), transform 0.5s var(--dq-ease);
}

.dq-lineup__item:hover .dq-lineup__icon::before {
	opacity: 1;
	transform: rotate(90deg);
}

.dq-lineup__icon img,
.dq-lineup__icon svg {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
	color: var(--dq-ink-2);
	transition: object-position 0.3s var(--dq-ease), color 0.3s var(--dq-ease), transform 0.4s var(--dq-ease);
}

/* 演示产品线图标来自参照站，原图中的亮绿色统一转换为客户指定的深蓝墨色。
   只作用于带 --recolor 的图标（模板按 _yz_src 标记加上），客户自己换的图不受影响。 */
.dq-lineup__icon--recolor img {
	filter: hue-rotate(135deg) saturate(1.8) brightness(0.42);
}

.dq-lineup__item:hover .dq-lineup__icon img {
	object-position: bottom;
}

.dq-lineup__item:hover .dq-lineup__icon svg {
	color: var(--dq-primary);
	transform: scale(1.06);
}

/* 名称与说明默认隐藏，悬停或选中时浮现（与参照站一致） */
.dq-lineup__labels {
	display: flex;
	flex-direction: column;
	align-items: center;
	font-size: var(--dq-fs-base);
	line-height: 1.6;
	color: var(--dq-ink);
	opacity: 0;
	transition: opacity 0.3s var(--dq-ease);
}

.dq-lineup__item:hover .dq-lineup__labels,
.dq-lineup__item.is-active .dq-lineup__labels {
	opacity: 1;
}

/* 第一行：带浅绿下划线的英文名 */
.dq-lineup__title {
	margin: 0;
	padding: 0 0.5em;
	border-bottom: 1px solid var(--dq-primary-2);
	font-size: 1em;
	font-weight: 400;
	color: inherit;
}

/* 第二行：中文名，不折行 */
.dq-lineup__desc {
	margin: 0;
	font-size: 1em;
	color: inherit;
	white-space: nowrap;
}

/* =========================================================================
   10. 产品轮播
   ========================================================================= */
/* 左 17% 操作柱 + 右 83% 卡片轨。卡片轨向右溢出到视口边缘，
   下一张卡片会被裁在屏幕外，这是参照站这块最明显的特征。 */
.dq-products {
	padding: var(--dq-space) 0;
	font-size: var(--dq-fs-base);
	overflow: hidden;
}

.dq-products__swiper {
	display: flex;
	align-items: stretch;
	position: relative;
}

.dq-products__aside {
	display: flex;
	flex: 0 0 auto;
	flex-direction: column;
	justify-content: flex-end;
	position: relative;
	width: 17%;
	color: #fff;
}

/* 压在左侧溢出卡片上的深色遮板，让上一张卡片从视觉上「沉」到操作柱后面 */
.dq-products__aside::after {
	content: "";
	position: absolute;
	top: -2.5em;
	bottom: -2.5em;
	right: -4.2vw;
	left: -40vw;
	z-index: 0;
	background: linear-gradient(90deg, var(--dq-bg) 0%, var(--dq-bg) 72%, rgba(62, 58, 57, 0) 100%);
}

.dq-products__arrows {
	display: flex;
	position: relative;
	z-index: 9;
}

.dq-products__arrows button {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 0;
	background: none;
	color: #fff;
	cursor: pointer;
	transition: color 0.3s var(--dq-ease), transform 0.3s var(--dq-ease);
}

.dq-products__arrows button + button {
	margin-left: 2.5em;
}

.dq-products__arrows button:hover {
	color: var(--dq-primary);
}

.dq-products__arrows svg {
	width: 0.9em;
	height: 0.9em;
	fill: currentColor;
}

.dq-products__pager {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: space-between;
	position: relative;
	z-index: 9;
	width: 50%;
	margin-top: 3em;
	font-family: var(--dq-font-num);
	line-height: 1;
	color: var(--dq-muted);
}

.dq-products__count {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	width: 100%;
}

.dq-products__current {
	font-size: var(--dq-hero-slogan-fs);
	font-weight: 500;
	color: #fff;
}

.dq-products__total {
	font-size: var(--dq-fs-note);
}

.dq-products__progress {
	width: 100%;
	height: 2px;
	margin-top: 0.2em;
	background: var(--dq-muted);
}

.dq-products__progress-fill {
	display: block;
	height: 100%;
	background: #fff;
	transition: width 1s var(--dq-ease);
}

/* 卡片轨：右侧溢出到视口边缘，滚动条隐藏 */
.dq-products__rail {
	display: flex;
	flex: 1 1 auto;
	gap: 20px;
	min-width: 0;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	margin-right: calc((100% - 100vw) / 2);
	padding-right: calc((100vw - 100%) / 2);
}

.dq-products__rail::-webkit-scrollbar {
	display: none;
}

/* ---------------------------------------------------------------------
   通用卡片
   商城列表页、归档页的商品格子也用 .dq-card，所以基础样式必须留着；
   首页轮播里的深色宽卡是它的变体，靠 .dq-products__rail 提高权重覆盖。
   --------------------------------------------------------------------- */
.dq-card {
	display: flex;
	flex-direction: column;
	background: var(--dq-bg);
	border: 1px solid var(--dq-line);
	color: var(--dq-ink);
	transition: border-color 0.3s var(--dq-ease), transform 0.3s var(--dq-ease);
}

.dq-card:hover {
	border-color: var(--dq-primary);
	transform: translateY(-4px);
}

.dq-card__media {
	position: relative;
	height: 0;
	padding-bottom: 75%;
	overflow: hidden;
	background: var(--dq-bg-alt);
}

.dq-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.dq-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 1.5em;
}

/* 未上传图片时的占位块。底色跟随明暗模式，别写死浅灰，
   否则深色模式下会变成一块纯黑。 */
.dq-media-placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 0.8em;
	background: var(--dq-bg-alt);
	color: var(--dq-ink-2);
}

.dq-media-placeholder svg {
	width: 28%;
	max-width: 160px;
	height: auto;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	opacity: 0.45;
}

.dq-media-placeholder span {
	font-size: 0.95em;
	letter-spacing: 0.08em;
	opacity: 0.7;
}

.dq-card__cat {
	color: var(--dq-ink-2);
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.dq-card__title {
	margin: 0.5em 0;
	font-size: var(--dq-fs-title-2);
	font-weight: 700;
	line-height: 1.4;
}

.dq-card__excerpt {
	margin: 0;
	color: var(--dq-ink-2);
	line-height: 1.6;
}

/* 深色宽卡：左图右文，底边一条绿线 */
.dq-products__rail .dq-card {
	display: flex;
	flex-direction: row;
	align-items: stretch;
	justify-content: space-between;
	flex: 0 0 auto;
	border: 0;
	transform: none;
	width: 50.17vw;
	padding: 2.85em;
	scroll-snap-align: start;
	background: var(--dq-bg-dark);
	border-bottom: 0.78em solid var(--dq-primary);
	color: #fff;
}

.dq-products__rail .dq-card__media {
	position: relative;
	flex: 0 0 auto;
	width: 43%;
	height: 0;
	padding-bottom: 32.5%;   /* 43% × 75.5% */
	overflow: hidden;
}

.dq-products__rail .dq-card__media img,
.dq-products__rail .dq-card__media picture {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s var(--dq-ease);
}

.dq-products__rail .dq-card:hover .dq-card__media img {
	transform: scale(1.1);
}

.dq-products__rail .dq-card__body {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	width: 54%;
	padding: 0;
}

.dq-products__rail .dq-card__body > div {
	width: 100%;
}

.dq-products__rail .dq-card__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	min-height: 3em;
	margin: 0 0 0.2em;
	padding-bottom: 0.2em;
	border-bottom: 1px solid var(--dq-ink-2);
	font-size: var(--dq-fs-title);
	font-weight: 700;
	line-height: 1.4;
	color: #fff;
	transition: color 0.3s var(--dq-ease);
}

.dq-products__rail .dq-card:hover .dq-card__title {
	color: var(--dq-primary);
}

.dq-products__rail .dq-card__excerpt {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	margin: 0;
	color: rgba(255, 255, 255, 0.6);
	line-height: 1.4;
	text-align: justify;
}

.dq-products__rail .dq-card__more {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 280px;
	height: 35px;
	margin-top: 1em;
	padding: 0.1em 1.5em;
	border: 1px solid #fff;
	line-height: 1;
	white-space: nowrap;
	transition: color 0.3s var(--dq-ease), border-color 0.3s var(--dq-ease);
}

.dq-products__rail .dq-card:hover .dq-card__more {
	border-color: var(--dq-primary);
	color: var(--dq-primary);
}

/* =========================================================================
   10.5 绿色世界（左文右图的双栏板块）
   ========================================================================= */
/* 与下面的数据统计共用同一块深色底，两者之间不留缝 */
.dq-green-section {
	padding-top: var(--dq-space);
	background: var(--dq-bg-alt);
	font-size: var(--dq-fs-base);
}

.dq-green {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	position: relative;
	z-index: 2;
}

.dq-green__article {
	flex: 0 0 auto;
	width: 40.625%;
	min-width: 260px;
}

.dq-green__title {
	margin: 0;
	font-size: var(--dq-fs-title);
	font-weight: 700;
	line-height: 1.4;
}

/* 选项卡：选中项文字变绿并带 2px 绿色下边线 */
.dq-green__tabs {
	display: flex;
	flex-wrap: wrap;
	margin-top: 0.4em;
	font-size: var(--dq-fs-card);
}

.dq-green__tab {
	display: inline-block;
	margin-right: 3em;
	margin-bottom: 0.1em;
	padding-bottom: 0.2em;
	border-bottom: 2px solid transparent;
	color: var(--dq-ink);
	white-space: nowrap;
	cursor: pointer;
	transition: color 0.3s var(--dq-ease), border-color 0.3s var(--dq-ease);
}

.dq-green__tab:last-child {
	margin-right: 0;
}

.dq-green__tab:hover,
.dq-green__tab.is-active {
	border-bottom-color: var(--dq-primary);
	color: var(--dq-primary);
}

.dq-green__panels {
	margin-top: 1em;
}

.dq-green__panel {
	display: none;
}

.dq-green__panel.is-active {
	display: block;
}

.dq-green__desc {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	overflow: hidden;
	margin: 0 0 1.5em;
	color: var(--dq-ink-2);
	line-height: 1.7;
	text-align: justify;
}

.dq-green__picture {
	width: 48.9%;
	flex: none;
}

.dq-green__picture-inner {
	position: relative;
	height: 0;
	/* 参照站这张图是 479x333，比例 69.5%，不是常见的 16:10 */
	padding-bottom: 69.5%;
	overflow: hidden;
}

.dq-green__picture img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* =========================================================================
   11. 数据统计
   ========================================================================= */

.dq-stats-section {
	padding: var(--dq-space) 0;
	background: var(--dq-bg-alt);
	font-size: var(--dq-fs-base);
}

/* 紧跟在绿色世界后面时，两块共用一块底色，中间不再叠加上边距 */
.dq-green-section + .dq-stats-section {
	padding-top: var(--dq-space);
}

.dq-stats-section__head {
	text-align: center;
}

.dq-stats-section__title {
	margin: 0;
	font-size: var(--dq-fs-title);
	font-weight: 700;
	line-height: 1.4;
}

/* 三行数据居中占 68% 宽，每行是「数字 / 短语 / 说明」三列 */
.dq-stats {
	width: 68%;
	margin: 0 auto;
	padding-top: 1.5em;
}

.dq-stat {
	display: flex;
	align-items: center;
	padding: 1.2em 0;
}

.dq-stat__num {
	display: flex;
	align-items: baseline;
	width: 35%;
	font-family: var(--dq-font-num);
	font-size: var(--dq-hero-slogan-fs);
	font-weight: 500;
	line-height: 1.2;
}

.dq-stat__unit {
	padding-bottom: 0.5em;
	transform: translateY(-6px);
	font-family: var(--dq-font-body);
	font-size: var(--dq-fs-base);
	color: var(--dq-ink-2);
}

.dq-stat__label {
	width: 30%;
	font-size: var(--dq-fs-stat);
	font-weight: 500;
}

/* 短语末尾那截绿色下划块 */
.dq-stat__label::after {
	content: "";
	display: inline-block;
	width: 1em;
	height: 4px;
	margin-left: 0.1em;
	background: var(--dq-primary);
}

.dq-stat__desc {
	width: 35%;
	margin: 0;
	font-size: var(--dq-fs-note);
	color: var(--dq-ink-2);
	line-height: 1.5;
}

/* =========================================================================
   12. 资讯
   ========================================================================= */

.dq-news {
	padding: var(--dq-space) 0;
	background: var(--dq-bg-alt);
	font-size: var(--dq-fs-base);
}

.dq-news__head {
	text-align: center;
}

.dq-news__title {
	margin: 0;
	font-size: var(--dq-fs-title);
	font-weight: 700;
	line-height: 1.4;
}

/* 头条：左侧 16:9 大图，右侧 225px 反色卡片 */
.dq-news__lead {
	display: flex;
	align-items: stretch;
	margin-top: 2em;
	background: var(--dq-ink);
}

.dq-news__lead-media {
	position: relative;
	width: calc(100% - 225px);
}

.dq-news__lead-media-inner {
	position: relative;
	height: 0;
	padding-bottom: 56.25%;
	overflow: hidden;
}

.dq-news__lead-media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s var(--dq-ease);
}

.dq-news__lead:hover .dq-news__lead-media img {
	transform: scale(1.05);
}

.dq-news__lead-body {
	display: flex;
	flex-direction: column;
	flex: none;
	width: 225px;
	padding: 5em 1.5em;
	color: var(--dq-bright);
}

.dq-news__lead-title {
	margin: 0;
	font-size: var(--dq-fs-card);
	font-weight: 400;
	line-height: 1.5;
	/* 全局 h1-h6 会强制上 --dq-ink，在这张反色卡片上正好和底色撞成同色，
	   所以这里必须显式跟随父级的 --dq-bright。 */
	color: inherit;
}

.dq-news__lead-date {
	margin-top: 2em;
}

/* 四列网格 */
.dq-news__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	padding-top: 2.5em;
}

.dq-post-card {
	display: flex;
	flex-direction: column;
	color: var(--dq-ink);
}

.dq-post-card__media {
	position: relative;
	height: 0;
	padding-bottom: 56.25%;
	overflow: hidden;
	background: var(--dq-line-soft);
}

.dq-post-card__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.35s var(--dq-ease);
}

.dq-post-card:hover .dq-post-card__media img {
	transform: scale(1.05);
}

.dq-post-card__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	justify-content: space-between;
	padding: 0.5em 0;
}

.dq-post-card__title {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	margin: 0.2em 0;
	padding: 0 0.4em;
	font-size: 1em;
	font-weight: 400;
	line-height: 1.6;
	color: inherit;
	transition: color 0.3s var(--dq-ease);
}

.dq-post-card:hover .dq-post-card__title {
	color: var(--dq-primary);
}

.dq-post-card__date {
	margin-top: 1em;
	padding: 0 0.4em;
	color: inherit;
}

/* =========================================================================
   13. 视频 / 访谈
   ========================================================================= */
/* 影像：整宽大视频在上（28.89vw），下方 4 格横排（15.646×14.268vw） */
.dq-video {
	display: block;
}

.dq-video__main {
	position: relative;
	height: 28.89vw;
	overflow: hidden;
	background: var(--dq-bg-dark);
}

.dq-video__main img,
.dq-video__main video,
.dq-video__main iframe {
	width: 100%;
	height: 100%;
	object-fit: cover;
	border: 0;
}

.dq-video__side {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 1.36vw;
	padding-top: 2.083vw;
}

.dq-video__cell {
	position: relative;
	height: 14.268vw;
	overflow: hidden;
	background: var(--dq-bg-alt);
}

.dq-video__cell img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--dq-ease);
}

.dq-video__cell:hover img {
	transform: scale(1.05);
}

.dq-video__caption {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 40px 24px 20px;
	background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.78) 100%);
	color: #fff;
	font-size: 16px;
	font-weight: 500;
}

.dq-play {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 78px;
	height: 78px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.9);
	color: var(--dq-primary);
	transition: transform 0.3s var(--dq-ease), background 0.3s var(--dq-ease);
}

.dq-play:hover {
	transform: translate(-50%, -50%) scale(1.08);
	background: #fff;
	color: var(--dq-primary);
}

.dq-play svg {
	width: 26px;
	height: 26px;
	margin-left: 4px;
}

/* =========================================================================
   14. 合作伙伴
   ========================================================================= */

/* 本块不加外层内边距：上下留白由头部和 logo 轨自己带，
   再叠一层会比参照站高出约 88px。 */
.dq-partners-section {
	font-size: var(--dq-fs-base);
}

/* 头部左标题右简介，两端对齐 */
.dq-partners__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 2em;
}

.dq-partners__title {
	flex: 0 0 auto;
	max-width: 55%;
	margin: 0;
	font-size: var(--dq-fs-title);
	font-weight: 700;
	line-height: 1.4;
}

.dq-partners__intro {
	width: 40%;
	margin: 0;
	color: var(--dq-ink-2);
	line-height: 1.6;
	text-align: justify;
}

/* logo 双排：整轨溢出容器做全幅跑马灯，视觉上左右都是切掉的 */
.dq-partners {
	padding: 3em 0 var(--dq-space);
	overflow: hidden;
}

.dq-partners__track {
	display: grid;
	grid-auto-flow: column;
	grid-template-rows: repeat(2, auto);
	grid-auto-columns: 15vw;
	gap: 1em;
	width: max-content;
	animation: dq-partners-marquee 48s linear infinite;
}

.dq-partners:hover .dq-partners__track {
	animation-play-state: paused;
}

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

@media (prefers-reduced-motion: reduce) {
	.dq-partners__track {
		animation: none;
	}
}

.dq-partners__item {
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 160px;
	min-height: 1.4em;
	background: #fff;
	border-bottom: 0.5em solid var(--dq-primary);
}

.dq-partners__item img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: contain;
}

.dq-partners__placeholder {
	color: #b6b6b6;
	font-size: 0.9em;
	letter-spacing: 0.24em;
}

/* =========================================================================
   15. 联系我们横条 + 加入我们横条
   ========================================================================= */

.dq-bar {
	font-size: var(--dq-fs-base);
}

.dq-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2em;
}

/* 绿底联系条：整条通栏，右侧白底绿字按钮 */
.dq-bar--contact {
	background: var(--dq-primary);
	padding: 2em 0;
}

.dq-bar__title {
	margin: 0;
	font-size: var(--dq-fs-title-2);
	font-weight: 700;
	color: #fff;
	line-height: 1.4;
}

.dq-bar__desc {
	margin: 0.4em 0 0;
	color: rgba(255, 255, 255, 0.85);
	line-height: 1.6;
}

.dq-bar__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	padding: 0.8em 3.5em;
	background: #fff;
	color: var(--dq-primary);
	font-size: var(--dq-fs-lead);
	line-height: 1;
	white-space: nowrap;
	transition: background 0.5s var(--dq-ease), color 0.5s var(--dq-ease);
}

.dq-bar__btn:hover {
	background: #3e3a39;
	color: #fff;
}

.dq-bar__btn svg {
	display: none;
}

/* 深色「加入我们」条：紧贴在绿条下方，只有一行字加一个箭头 */
.dq-bar--join {
	background: #3e3a39;
	padding: 1.5em 0;
}

.dq-bar--join .dq-bar__title {
	font-size: var(--dq-fs-lead);
	font-weight: 400;
}

.dq-bar__link {
	display: inline-flex;
	align-items: center;
	flex: none;
	margin-right: 2.4em;
	color: #fff;
	font-size: var(--dq-fs-lead);
	white-space: nowrap;
}

.dq-bar__link svg {
	height: 0.5em;
	width: auto;
	margin-left: 0.5em;
	fill: currentColor;
	transition: transform 0.3s var(--dq-ease);
}

.dq-bar__link:hover svg {
	transform: translateX(5px);
}

/* =========================================================================
   16. 全球服务网络地图（自研模块）
   ========================================================================= */
.dq-map {
	position: relative;
	width: 100%;
	background: var(--dq-bg);
}

.dq-map__canvas {
	position: relative;
	width: 100%;
	aspect-ratio: 2 / 1;
	min-height: 300px;
	background: var(--dq-map-img) center / contain no-repeat;
}

/* 没有上传底图时用点阵渐变兜底，保证模块永远可用 */
.dq-map__canvas--dots {
	background-image:
		radial-gradient(circle, #dcdfe3 1.5px, transparent 1.6px);
	background-size: 14px 14px;
	background-position: center;
	background-repeat: repeat;
	-webkit-mask-image: var(--dq-map-mask, none);
	mask-image: var(--dq-map-mask, none);
	-webkit-mask-size: contain;
	mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
}

.dq-map__pin {
	position: absolute;
	transform: translate(-50%, -50%);
	z-index: 2;
}

.dq-map__dot {
	position: relative;
	display: block;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background: var(--dq-primary);
	border: 2px solid #fff;
	box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
	cursor: pointer;
	transition: transform 0.3s var(--dq-ease);
}

.dq-map__pin:hover .dq-map__dot,
.dq-map__pin.is-active .dq-map__dot {
	transform: scale(1.35);
}

/* 脉冲 */
.dq-map__dot::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 50%;
	border: 1px solid var(--dq-primary);
	opacity: 0;
	animation: dq-pulse 2.4s var(--dq-ease) infinite;
}

@keyframes dq-pulse {
	0% { transform: scale(0.7); opacity: 0.8; }
	100% { transform: scale(1.9); opacity: 0; }
}

.dq-map__flag {
	position: absolute;
	left: 22px;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
	pointer-events: none;
}

.dq-map__flag img {
	width: 26px;
	height: auto;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}

.dq-map__flag span {
	font-size: 14px;
	color: var(--dq-ink-2);
}

/* 弹出信息卡 */
.dq-map__card {
	position: absolute;
	z-index: 5;
	width: min(430px, 84vw);
	padding: 8px 0 22px;
	background: var(--dq-primary);
	color: #fff;
	box-shadow: var(--dq-shadow-lg);
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: all 0.28s var(--dq-ease);
}

.dq-map__card.is-open {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.dq-map__card-item + .dq-map__card-item {
	border-top: 1px solid rgba(255, 255, 255, 0.22);
}

.dq-map__card-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 15px 26px;
	font-size: 16px;
	font-weight: 500;
	text-align: left;
	color: #fff;
}

.dq-map__card-head svg {
	width: 14px;
	height: 14px;
	flex: none;
	transition: transform 0.3s var(--dq-ease);
}

.dq-map__card-item.is-open .dq-map__card-head svg {
	transform: rotate(180deg);
}

.dq-map__card-body {
	display: none;
	padding: 0 26px 18px;
	font-size: 15px;
	color: rgba(255, 255, 255, 0.9);
}

.dq-map__card-item.is-open .dq-map__card-body {
	display: block;
}

.dq-map__card-body p {
	margin: 0 0 8px;
}

.dq-map__contact {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	margin-top: 14px;
}

.dq-map__contact svg {
	width: 26px;
	height: 26px;
	flex: none;
	margin-top: 4px;
}

.dq-map__contact-lines {
	font-size: 19px;
	line-height: 1.6;
}

.dq-map__contact-lines a {
	color: #fff;
}

.dq-map__close {
	position: absolute;
	top: 10px;
	right: 12px;
	width: 30px;
	height: 30px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 20px;
	line-height: 1;
}

/* 移动端把地图换成列表，避免坐标热点点不中 */
.dq-map__list {
	display: none;
	margin-top: 24px;
	border-top: 1px solid var(--dq-line);
}

.dq-map__list-item {
	border-bottom: 1px solid var(--dq-line);
}

.dq-map__list-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 16px 4px;
	font-size: 16px;
	font-weight: 500;
	text-align: left;
}

.dq-map__list-body {
	display: none;
	padding: 0 4px 18px;
	font-size: 15px;
	color: var(--dq-ink-2);
}

.dq-map__list-item.is-open .dq-map__list-body {
	display: block;
}

/* =========================================================================
   17. 悬浮联系 / 返回顶部
   ========================================================================= */
.dq-float {
	position: fixed;
	z-index: 90;
	top: 50%;
	transform: translateY(-50%);
	display: flex;
	flex-direction: column;
	gap: 1px;
	filter: drop-shadow(0 10px 24px rgba(0, 0, 0, 0.12));
}

.dq-float--right { right: 0; }
.dq-float--left { left: 0; }

.dq-float__item {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 50px;
	height: 50px;
	background: var(--dq-primary);
	color: #fff;
	transition: background 0.3s var(--dq-ease);
}

.dq-float--right:not(.dq-float--rounded) .dq-float__item {
	border-radius: 8px 0 0 8px;
}

.dq-float--left:not(.dq-float--rounded) .dq-float__item {
	border-radius: 0 8px 8px 0;
}

.dq-float--rounded .dq-float__item {
	border-radius: 50%;
	margin-bottom: 8px;
}

.dq-float__item:hover {
	background: var(--dq-primary-2);
	color: #fff;
}

.dq-float__item svg {
	width: 21px;
	height: 21px;
}

.dq-float__tip {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	padding: 8px 16px;
	background: var(--dq-bg-dark);
	color: #fff;
	font-size: 14px;
	white-space: nowrap;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s var(--dq-ease);
	pointer-events: none;
}

.dq-float--right .dq-float__tip { right: calc(100% + 10px); }
.dq-float--left .dq-float__tip { left: calc(100% + 10px); }

.dq-float__item:hover .dq-float__tip {
	opacity: 1;
	visibility: visible;
}

.dq-float__qr {
	position: absolute;
	top: 50%;
	transform: translateY(-50%) scale(0.94);
	padding: 8px;
	background: #fff;
	box-shadow: var(--dq-shadow);
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s var(--dq-ease);
}

.dq-float--right .dq-float__qr { right: calc(100% + 10px); }
.dq-float--left .dq-float__qr { left: calc(100% + 10px); }

.dq-float__item:hover .dq-float__qr {
	opacity: 1;
	visibility: visible;
	transform: translateY(-50%) scale(1);
}

.dq-float__qr img {
	width: 130px;
	height: 130px;
	object-fit: contain;
}

/* 底部固定联系条（参考站右下角的头像联系块） */
/* 绿色联系胶囊：贴在视口右缘，条高固定 40px，
   左端的圆形头像比条本身高，靠负的上外边距浮出条外。 */
.dq-contact-tab {
	position: fixed;
	right: 0;
	top: 10vw;
	z-index: 99;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 40px;
	padding: 0 1.5em;
	background: var(--dq-primary);
	color: #fff;
	font-size: var(--dq-fs-base);
	white-space: nowrap;
	transition: opacity 0.2s var(--dq-ease);
}

.dq-contact-tab img {
	width: 50px;
	height: 50px;
	margin-top: -25px;
	margin-right: 1.5em;
	border: 2px solid #fff;
	border-radius: 50%;
	object-fit: cover;
	transition: transform 0.2s var(--dq-ease);
}

.dq-contact-tab:hover {
	color: #fff;
}

.dq-contact-tab:hover img {
	transform: translateY(-5px);
}

.dq-to-top {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	background: var(--dq-bg-dark);
	color: #fff;
	opacity: 0;
	visibility: hidden;
	transition: all 0.3s var(--dq-ease);
}

.dq-to-top.is-visible {
	opacity: 1;
	visibility: visible;
}

.dq-to-top:hover {
	background: var(--dq-primary);
	color: #fff;
}

.dq-to-top svg {
	width: 18px;
	height: 18px;
}

/* =========================================================================
   18. 内页
   ========================================================================= */
/* 内页横幅：高 36.72vw，标题落在 top 10.498vw 处，左对齐容器 */
.dq-page-hero {
	position: relative;
	display: flex;
	align-items: flex-start;
	min-height: 36.72vw;
	padding: 10.498vw 0 4vw;
	background: var(--dq-bg-dark) center / cover no-repeat;
	color: #fff;
}

.dq-page-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(15, 40, 61, 0.58);
}

.dq-page-hero > * {
	position: relative;
	z-index: 1;
}

/* 与首屏主标题同字号同字重（3.673vw / 700） */
.dq-page-hero__title {
	margin: 0;
	font-size: 3.673vw;
	font-weight: 700;
	line-height: 1.2;
	color: #fff;
}

.dq-page-hero__subtitle {
	margin: 1.2vw 0 0;
	max-width: 44vw;
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.02vw;
	line-height: 1.7;
}

/* 面包屑 */
.dq-breadcrumb {
	padding: 16px 0;
	font-size: 14px;
	color: var(--dq-muted);
	border-bottom: 1px solid var(--dq-line-soft);
}

.dq-breadcrumb a:hover {
	color: var(--dq-primary);
}

.dq-breadcrumb__sep {
	margin: 0 8px;
}

/* 内页左侧悬浮锚点导航：磨砂玻璃面板，固定在视口左侧
   实测：left 1.666vw / top 7.5vw / 宽 10.25vw / 背景 rgba(255,255,255,.75) + blur(5px) */
.dq-anchor {
	position: fixed;
	left: 1.666vw;
	top: 7.5vw;
	z-index: 9;
	width: 10.25vw;
	background: rgba(255, 255, 255, 0.75);
	-webkit-backdrop-filter: blur(5px);
	backdrop-filter: blur(5px);
	padding: 0.7vw 0;
}

:root[data-theme="dark"] .dq-anchor {
	background: rgba(43, 43, 43, 0.72);
}

.dq-anchor__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.dq-anchor__item a {
	display: block;
	padding: 0.28vw 0.7vw 0.28vw 1vw;
	border-left: 0.14vw solid transparent;
	font-size: 0.833vw;
	font-weight: 400;
	line-height: 1.156vw;
	color: var(--dq-ink-2);
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition: color 0.3s var(--dq-ease), border-color 0.3s var(--dq-ease);
}

.dq-anchor__item a:hover {
	color: var(--dq-primary);
}

.dq-anchor__item.is-active a {
	color: var(--dq-primary);
	border-left-color: var(--dq-primary);
	font-weight: 500;
}

/* 内页次级导航条 —— 参考站「关于」下的横向子菜单 */
.dq-subnav {
	background: var(--dq-bg-alt);
	border-bottom: 1px solid var(--dq-line);
}

.dq-subnav__list {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 4px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.dq-subnav__list a {
	display: block;
	padding: 16px 22px;
	font-size: 15px;
	color: var(--dq-ink-2);
}

.dq-subnav__list a:hover,
.dq-subnav__list .current-menu-item > a {
	color: var(--dq-primary);
	box-shadow: inset 0 -3px 0 var(--dq-primary);
}

/* 文章正文 */
.dq-entry {
	font-size: 16px;
	line-height: 1.9;
	color: var(--dq-ink-2);
}

.dq-entry > h2,
.dq-entry > h3,
.dq-entry > h4 {
	margin-top: 1.8em;
	color: var(--dq-ink);
}

.dq-entry img {
	margin: 1.5em 0;
}

.dq-entry a {
	color: var(--dq-primary);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.dq-entry ul,
.dq-entry ol {
	padding-left: 1.4em;
}

.dq-entry li {
	margin-bottom: 0.5em;
}

.alignleft { float: left; margin: 0 1.5em 1em 0; }
.alignright { float: right; margin: 0 0 1em 1.5em; }
.aligncenter { margin-left: auto; margin-right: auto; }
.alignwide { width: 100%; }
.wp-caption { max-width: 100%; }
.wp-caption-text { font-size: 14px; color: var(--dq-muted); text-align: center; }
.sticky .dq-post-card__title::before { content: "★ "; color: var(--dq-primary); }

/* 分页 */
.dq-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: var(--dq-space-sm);
}

.dq-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border: 1px solid var(--dq-line);
	font-size: 15px;
}

.dq-pagination .page-numbers:hover,
.dq-pagination .page-numbers.current {
	background: var(--dq-primary);
	border-color: var(--dq-primary);
	color: #fff;
}

/* 表单 */
.dq-form {
	display: grid;
	gap: 20px;
}

.dq-form__row {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}

.dq-field label {
	display: block;
	margin-bottom: 8px;
	font-size: 14px;
	font-weight: 500;
}

.dq-field input[type="text"],
.dq-field input[type="email"],
.dq-field input[type="tel"],
.dq-field input[type="search"],
.dq-field select,
.dq-field textarea {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--dq-line);
	border-radius: var(--dq-radius);
	background: var(--dq-bg);
	font-size: 15px;
	transition: border-color 0.3s var(--dq-ease);
}

.dq-field input:focus,
.dq-field select:focus,
.dq-field textarea:focus {
	outline: none;
	border-color: var(--dq-primary);
}

.dq-field textarea {
	min-height: 150px;
	resize: vertical;
}

/* 手风琴（FAQ / 下载分组） */
.dq-accordion__item {
	border-bottom: 1px solid var(--dq-line);
}

.dq-accordion__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 22px 0;
	font-size: 17px;
	font-weight: 500;
	text-align: left;
}

.dq-accordion__head svg {
	width: 16px;
	height: 16px;
	flex: none;
	color: var(--dq-primary);
	transition: transform 0.3s var(--dq-ease);
}

.dq-accordion__item.is-open .dq-accordion__head svg {
	transform: rotate(180deg);
}

.dq-accordion__body {
	display: none;
	padding: 0 0 24px;
	color: var(--dq-ink-2);
}

.dq-accordion__item.is-open .dq-accordion__body {
	display: block;
}

/* 空状态 */
.dq-empty {
	padding: clamp(50px, 6vw, 100px) 0;
	text-align: center;
	color: var(--dq-muted);
}

/* =========================================================================
   19. 页脚
   ========================================================================= */
/* 两区结构：左侧 15.625% 品牌区，右侧 61% 菜单区（列间有竖分隔线），
   底部再压一条更深的版权条。品牌水印铺在主区背景上。 */
.dq-footer {
	position: relative;
	overflow: hidden;
	background: var(--dq-bg-dark);
	color: #fff;
	font-size: var(--dq-fs-base);
}

/* 巨型品牌水印：只比底色亮一点点，压在内容下面 */
.dq-footer::before {
	content: attr(data-watermark);
	position: absolute;
	left: 0;
	right: 0;
	bottom: calc(5 * var(--dq-fs-base));
	z-index: 0;
	font-size: 17vw;
	font-weight: 900;
	line-height: 0.8;
	letter-spacing: 0.02em;
	text-align: center;
	color: #373737;
	white-space: nowrap;
	overflow: hidden;
	pointer-events: none;
	user-select: none;
}

.dq-footer__main {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	position: relative;
	z-index: 1;
	padding: 5em 0;
	gap: 2em;
}

.dq-footer__brand {
	flex: 0 0 auto;
	width: 15.625%;
	min-width: 170px;
}

.dq-footer__brand p {
	margin: 1.5em 0 0;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.6;
}

/* 页脚字标撑满品牌列宽，与参照站一致 */
.dq-footer__brand-mark {
	display: block;
	width: 100%;
}

.dq-footer__brand-mark svg {
	display: block;
	width: 100%;
	height: auto;
	fill: #fff;
	color: #fff;
}

.dq-footer__social {
	display: flex;
	align-items: center;
	gap: 1em;
	/* 这一行和热线行都用更大的字号，1.5em 的间距才落在参照站的 30.6px 上 */
	font-size: var(--dq-fs-note);
	margin-top: 1.5em;
}

.dq-footer__social a {
	display: inline-flex;
	color: #fff;
	transition: color 0.3s var(--dq-ease);
}

.dq-footer__social a:hover {
	color: var(--dq-primary);
}

.dq-footer__social svg {
	width: auto;
	height: 1.2em;
	fill: currentColor;
}

/* 选择器要盖过上面的 .dq-footer__brand p，否则下外边距会被吃掉 */
.dq-footer__brand .dq-footer__hotline {
	font-size: var(--dq-fs-note);
	margin: 1.5em 0;
	line-height: 1.6;
	white-space: nowrap;
	color: #fff;
}

.dq-footer__hotline strong {
	font-family: var(--dq-font-num);
	font-weight: 500;
	letter-spacing: 0.02em;
}

/* 二维码：白底 + 一圈绿边，右侧留白让它不占满整列 */
.dq-footer__qr {
	padding-right: 45%;
}

.dq-footer__qr-inner {
	background: #fff;
	border: 0.3em solid var(--dq-primary);
	line-height: 0;
}

.dq-footer__qr img {
	display: block;
	width: 100%;
	height: auto;
}

/* 菜单区：四列等宽，列与列之间一条竖线，首尾不出边 */
.dq-footer__menus {
	display: flex;
	flex: 0 0 auto;
	width: 61%;
}

.dq-footer__col {
	width: 25%;
	padding: 0 0.8em;
	border-left: 1px solid #4d4d4d;
	border-right: 1px solid #5a5a5a;
}

.dq-footer__col:first-child {
	border-left: 0;
}

.dq-footer__col:last-child {
	border-right: 0;
}

.dq-footer__col-title {
	display: inline-flex;
	margin: 0;
	padding-bottom: 0.3em;
	border-bottom: 1px solid #adadad;
	font-size: 1em;
	font-weight: 400;
	color: #fff;
}

.dq-footer__list {
	margin: 0;
	padding: 0.8em 0 0;
	list-style: none;
}

.dq-footer__list li {
	padding: 0.5em 0;
}

.dq-footer__list a {
	color: rgba(255, 255, 255, 0.8);
	transition: color 0.3s var(--dq-ease);
}

.dq-footer__list a:hover,
.dq-footer__col-title a:hover {
	color: var(--dq-primary);
}

.dq-footer__contact p {
	margin: 0;
	padding: 0.5em 0;
	color: rgba(255, 255, 255, 0.8);
	line-height: 1.6;
}

.dq-footer__contact a {
	color: rgba(255, 255, 255, 0.8);
	transition: color 0.3s var(--dq-ease);
}

.dq-footer__contact a:hover {
	color: var(--dq-primary);
}

.dq-footer__phone {
	font-family: var(--dq-font-num);
	letter-spacing: 0.02em;
}

/* 版权条：比页脚主体更深的一条 */
.dq-footer__bottom {
	position: relative;
	z-index: 1;
	background: #3e3a39;
	padding: 0.8em 0;
}

.dq-footer__copyright {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5em;
	color: rgba(255, 255, 255, 0.75);
}

.dq-footer__copyright a {
	color: rgba(255, 255, 255, 0.75);
	transition: color 0.3s var(--dq-ease);
}

.dq-footer__copyright a:hover {
	color: var(--dq-primary);
}

/* =========================================================================
   20. 响应式 —— 1400 / 1200 / 992 / 768 / 576
   ========================================================================= */
/* 屏幕越窄，内容列占比越大，避免小屏上挤成一条 */
@media (max-width: 1400px) {
	:root {
		--dq-container: 74vw;
	}

	.dq-menu > li > a {
		padding: 0.85vw 1vw;
		font-size: 1.08vw;
	}
}

@media (max-width: 1200px) {
	:root {
		--dq-container: 80vw;
		--dq-header-h: 5.6vw;
		--dq-globe-size: 34vw;
		--dq-globe-left: 50vw;
	}

	.dq-menu > li > a {
		padding: 0.8vw 0.85vw;
		font-size: 1.2vw;
	}

	.dq-header__inner {
		gap: 16px;
	}

	.dq-globe-section__inner {
		gap: 24px;
	}
}

/* 平板及以下退出 vw 等比缩放：首屏改为正常流式堆叠，字号回到固定值，
   否则 vw 换算出来的正文会小到读不清 */
@media (max-width: 992px) {
	:root {
		--dq-container: 100%;
		--dq-gutter: 24px;
		--dq-header-h: 64px;
		--dq-space: 56px;
		--dq-space-sm: 24px;
	}

	.dq-container {
		width: 100%;
		padding-left: var(--dq-gutter);
		padding-right: var(--dq-gutter);
	}

	.dq-header__tools {
		margin-left: auto;
	}

	.dq-header__logo-mark {
		width: 112px;
		max-width: 32vw;
	}

	.dq-top {
		padding-bottom: 0;
	}

	.dq-header .dq-container {
		width: 100%;
	}

	.dq-heading__eyebrow {
		margin-bottom: 10px;
		font-size: 12px;
	}

	.dq-heading__title {
		font-size: clamp(25px, 4.5vw, 32px);
	}

	.dq-heading__desc {
		max-width: 680px;
		margin-top: 12px;
		font-size: 15px;
		line-height: 1.7;
	}

	/* 首屏改为常规流：文案在上，媒体在下，地球独占一段 */
	.home .dq-header--sticky {
		position: sticky;
		background: var(--dq-bg);
	}

	.dq-hero {
		height: auto;
	}

	.dq-hero__copy {
		position: static;
		transform: none;
		width: 100%;
		height: auto;
		padding: 32px var(--dq-gutter) 24px;
	}

	.dq-hero__eyebrow,
	.dq-hero__title,
	.dq-hero__slogan {
		position: static;
	}

	.dq-hero__eyebrow {
		display: block;
		margin-bottom: 12px;
		font-size: 13px;
	}

	.dq-hero__title-main {
		font-size: clamp(30px, 6.4vw, 46px);
	}

	.dq-hero__slogan {
		flex-wrap: wrap;
		margin-top: 12px;
		font-size: 16px;
		letter-spacing: 0.18em;
	}

	.dq-hero__slogan::before {
		width: 34px;
		margin-right: 10px;
	}

	.dq-hero__media {
		position: static;
		height: auto;
		aspect-ratio: 16 / 9;
	}

	/* 地球回到常规流，居中显示 */
	.dq-globe {
		position: relative;
		top: auto;
		left: auto;
		width: min(78vw, 460px);
		height: min(78vw, 460px);
		margin: 32px auto 0;
	}

	.dq-globe-section {
		height: auto;
		margin-top: 0;
		padding: 40px 0 48px;
	}

	.dq-globe-section__copy {
		position: static;
		width: 100%;
		text-align: center;
	}

	.dq-globe-section__title {
		font-size: clamp(24px, 5vw, 34px);
	}

	.dq-globe-section__desc {
		font-size: 15px;
		margin: 14px 0 20px;
	}

	/* 产业条回到常规流 */
	.dq-industry__strip {
		position: static;
		height: auto;
		margin-top: 36px;
	}

	.dq-industry__tabs {
		height: auto;
		gap: 10px;
	}

	.dq-industry__tab {
		padding: 12px 16px;
		font-size: 15px;
	}

	.dq-lineup {
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 20px;
		margin-top: 26px;
	}

	.dq-lineup__item {
		height: auto;
	}

	.dq-lineup__icon {
		width: 80px;
		height: 80px;
	}

	.dq-lineup__icon svg,
	.dq-lineup__icon img {
		width: 100%;
		height: 100%;
	}

	/* 小屏没有 hover，标签常驻显示 */
	.dq-lineup__labels {
		opacity: 1;
		transform: none;
		margin-top: 12px;
	}

	.dq-lineup__title {
		font-size: 14px;
		white-space: normal;
	}

	.dq-lineup__desc {
		font-size: 12px;
	}

	/* 窄屏没有富余的边距放悬浮目录 */
	.dq-anchor {
		display: none;
	}

	/* 内页横幅：小屏改用固定高度和字号 */
	.dq-page-hero {
		min-height: 220px;
		padding: 48px 0 40px;
		align-items: center;
	}

	.dq-page-hero__title {
		font-size: clamp(26px, 5.6vw, 40px);
	}

	.dq-page-hero__subtitle {
		max-width: none;
		margin-top: 12px;
		font-size: 15px;
	}

	.dq-header__logo-text {
		font-size: 22px;
	}

	.dq-header__tagline {
		font-size: 11px;
		margin-top: 3px;
	}

	.dq-header__nav {
		display: none;
	}

	.dq-burger {
		display: flex;
	}

	.dq-globe-section__inner {
		grid-template-columns: 1fr;
		text-align: center;
	}

	.dq-globe-section__copy {
		max-width: none;
		margin-inline: auto;
	}

	.dq-globe-section .dq-underline::after {
		left: 50%;
		transform: translateX(-50%);
	}

	.dq-video {
		grid-template-columns: 1fr;
	}

	.dq-video__side {
		grid-template-rows: none;
		grid-template-columns: repeat(2, 1fr);
	}

	.dq-duo {
		grid-template-columns: 1fr;
	}

	.dq-grid--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	.dq-footer__main {
		grid-template-columns: repeat(2, 1fr);
		gap: 32px;
		padding: 48px var(--dq-gutter);
	}

	.dq-footer {
		font-size: 14px;
	}

	.dq-footer .dq-container {
		width: 100%;
	}

	.dq-footer__copyright {
		min-height: 0;
		padding: 16px var(--dq-gutter);
		font-size: 12px;
	}

	.dq-partners {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	/* 地图在窄屏改为可折叠列表 */
	.dq-map__canvas {
		display: none;
	}

	.dq-map__list {
		display: block;
	}
}

@media (max-width: 768px) {
	:root {
		--dq-header-h: 64px;
		--dq-gutter: 18px;
	}

	.dq-header__logo-text {
		font-size: 21px;
	}

	.dq-header__inner {
		justify-content: space-between;
		gap: 8px;
	}

	.dq-header__brand {
		min-width: 0;
	}

	.dq-header__tagline {
		display: none;
	}

	.dq-header__tools {
		gap: 2px;
	}

	.dq-hero__media {
		aspect-ratio: 4 / 3;
		min-height: 0;
	}

	.dq-video__main {
		height: auto;
		aspect-ratio: 16 / 9;
	}

	.dq-video__side {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
		padding-top: 12px;
	}

	.dq-video__cell {
		height: auto;
		aspect-ratio: 4 / 3;
	}

	.dq-grid--2,
	.dq-grid--3,
	.dq-grid--4 {
		grid-template-columns: 1fr;
	}

	.dq-news__grid {
		grid-template-columns: 1fr;
		gap: 38px;
	}

	.dq-products__head {
		flex-direction: column;
		align-items: flex-start;
	}

	.dq-rail-nav {
		display: none;
	}

	.dq-rail {
		grid-auto-columns: minmax(240px, 78%);
	}

	.dq-stats {
		grid-template-columns: 1fr;
	}

	/* 列数由模板内联指定，这里要盖掉它 */
	.dq-lineup {
		grid-template-columns: repeat(2, 1fr) !important;
	}

	.dq-lineup__icon {
		width: 72px;
		height: 72px;
	}

	.dq-lineup__icon img,
	.dq-lineup__icon svg {
		width: 100%;
		height: 100%;
	}

	.dq-form__row {
		grid-template-columns: 1fr;
	}

	.dq-footer__main {
		grid-template-columns: 1fr;
	}

	.dq-footer__copyright {
		flex-direction: column;
		align-items: flex-start;
	}

	.dq-contact-tab span {
		display: none;
	}

	.dq-contact-tab {
		padding: 8px;
		bottom: 22%;
	}

	.dq-bar--contact {
		padding: 24px 0;
	}

	.dq-bar__inner {
		align-items: flex-start;
		flex-direction: column;
		gap: 16px;
	}

	.dq-bar--contact .dq-bar__inner {
		min-height: 0;
	}

	.dq-bar__title {
		font-size: 20px;
	}

	.dq-bar__desc {
		margin-top: 5px;
		font-size: 14px;
	}

	.dq-bar__btn {
		padding: 9px 18px;
		font-size: 14px;
	}

	.dq-float {
		top: auto;
		right: 14px;
		bottom: 76px;
		left: auto;
		transform: none;
		gap: 8px;
		filter: none;
	}

	.dq-float__item {
		width: 44px;
		height: 44px;
		border-radius: 50% !important;
		box-shadow: 0 8px 22px rgba(0, 0, 0, 0.16);
	}

	.dq-to-top {
		right: 14px;
		bottom: 18px;
		width: 44px;
		height: 44px;
	}

	.dq-float__qr {
		display: none;
	}
}

@media (max-width: 576px) {
	.dq-video__side {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.dq-partners {
		grid-template-columns: repeat(2, 1fr);
	}

	.dq-hero__slogan {
		letter-spacing: 0.06em;
	}
}

/* 尊重系统的减少动效偏好 */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

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

/* 打印 */
@media print {
	.dq-header,
	.dq-footer,
	.dq-float,
	.dq-contact-tab,
	.dq-to-top,
	.dq-mobile-nav,
	.dq-search-overlay {
		display: none !important;
	}
}
