/*
Theme Name: 观云环境 Guanyun Weather
Theme URI: https://example.com/guanyun-weather/
Author: 观云者
Author URI: https://example.com/
Description: 为「盐城观云环境科技有限公司」(虚构演示)设计的气象观测风企业主题:云白底、青灰蓝等压线细纹、风向标与气象风杆图标系统,数据以天气预报卡与观测记录表呈现,像一座专业气象站的官网。含观测设备(product)自定义类型、排放预报对比、蓝黄两级预警响应与呼叫观测站板块。
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: guanyun-weather
Tags: business, custom-menu, custom-logo, one-column, two-columns, translation-ready
*/

/* --------------------------------------------------
   0. 变量:气象台配色(云白 / 青灰蓝 / 深云青 / 云影灰 / 预警黄)
-------------------------------------------------- */
:root {
	--gw-cloud: #fcfdfe;      /* 云白底 */
	--gw-panel: #f3f7fa;      /* 更浅的面板底 */
	--gw-mist: #dbe4ec;       /* 云影灰浅底块 */
	--gw-line: #c9d7e2;       /* 细边线 */
	--gw-blue: #4f7ea3;       /* 主色:青灰蓝(灰调低饱和) */
	--gw-blue-deep: #3f6b8e;  /* 深一档,用于链接/小字号色块 */
	--gw-ink: #2c4a61;        /* 深云青正文(对云白 ≥ 7:1) */
	--gw-muted: #47637a;      /* 次级文字 */
	--gw-alert: #e0a800;      /* 预警黄:仅限极小面积标签 */
	--gw-alert-ink: #1f2d38;  /* 预警黄上的深字 */
	--gw-r: 6px;              /* 仪表卡微圆角 */
	--gw-rs: 3px;             /* 标签小圆角 */
	--gw-shadow: 0 12px 28px rgba(44, 74, 97, 0.08);
	--gw-font: "PingFang SC", "Hiragino Sans GB", "Source Han Sans SC", "Microsoft YaHei", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* --------------------------------------------------
   1. 基础
-------------------------------------------------- */
*,
*::before,
*::after {
	box-sizing: border-box;
}

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

body {
	margin: 0;
	font-family: var(--gw-font);
	font-size: 16px;
	line-height: 1.75;
	color: var(--gw-ink);
	background: var(--gw-cloud);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	line-height: 1.32;
	margin: 0 0 0.6em;
	font-weight: 700;
	color: var(--gw-ink);
}

p {
	margin: 0 0 1em;
}

a {
	color: var(--gw-blue-deep);
	text-decoration: none;
	transition: color 0.2s ease;
}

a:hover {
	color: var(--gw-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

img {
	max-width: 100%;
	height: auto;
	border-radius: var(--gw-r);
}

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

table {
	width: 100%;
	border-collapse: collapse;
}

::selection {
	background: var(--gw-mist);
	color: var(--gw-ink);
}

:focus-visible {
	outline: 2px dashed var(--gw-blue-deep);
	outline-offset: 2px;
}

.num,
.gw-num,
.gw-reading,
.obs-table td,
.gw-ticker {
	font-variant-numeric: tabular-nums lining-nums;
	font-feature-settings: "tnum" 1;
}

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

.skip-link {
	position: absolute;
	left: 8px;
	top: -48px;
	z-index: 200;
	padding: 8px 16px;
	background: var(--gw-ink);
	color: #fff;
	border-radius: var(--gw-rs);
	transition: top 0.2s ease;
}

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

.gw-wrap {
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 22px;
}

/* --------------------------------------------------
   2. 顶部速报条(观测速报)
-------------------------------------------------- */
.gw-ticker {
	background: var(--gw-panel);
	border-bottom: 1px solid var(--gw-line);
	font-size: 12.5px;
	color: var(--gw-muted);
}

.gw-ticker-inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 6px 22px;
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}

.gw-ticker-station {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--gw-blue-deep);
	font-weight: 600;
	letter-spacing: 0.04em;
}

.gw-ticker-item {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding-left: 14px;
	border-left: 1px dashed var(--gw-line);
}

.gw-ticker .gw-tag {
	transform: translateY(-1px);
}

/* --------------------------------------------------
   3. 页头与导航(≤768px 汉堡)
-------------------------------------------------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(252, 253, 254, 0.94);
	backdrop-filter: blur(6px);
	border-bottom: 1px solid var(--gw-line);
	transition: box-shadow 0.25s ease;
}

.site-header.is-scrolled {
	box-shadow: 0 6px 18px rgba(44, 74, 97, 0.09);
}

.header-inner {
	max-width: 1140px;
	margin: 0 auto;
	padding: 14px 22px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.site-branding {
	display: flex;
	align-items: center;
	gap: 10px;
	min-width: 0;
}

.site-branding .gw-logo-mark {
	color: var(--gw-blue);
	flex: none;
}

.site-title {
	margin: 0;
	font-size: 20px;
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
}

.site-title a {
	color: var(--gw-ink);
	text-decoration: none;
}

.site-latin {
	display: block;
	font-size: 11px;
	letter-spacing: 0.22em;
	text-transform: uppercase;
	color: var(--gw-blue-deep);
}

.custom-logo {
	max-height: 52px;
	width: auto;
}

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

.site-nav a {
	display: inline-block;
	padding: 8px 13px;
	font-size: 15px;
	color: var(--gw-ink);
	border-radius: var(--gw-r);
	text-decoration: none;
	border: 1px solid transparent;
}

.site-nav a:hover {
	color: var(--gw-blue-deep);
	border-color: var(--gw-line);
	background: var(--gw-panel);
	text-decoration: none;
}

.site-nav .current-menu-item > a,
.site-nav .current_page_item > a {
	color: var(--gw-blue-deep);
	border-color: var(--gw-line);
	background: var(--gw-panel);
}

.nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 44px;
	height: 40px;
	padding: 0 10px;
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	cursor: pointer;
}

.nav-toggle-bar {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--gw-ink);
	border-radius: 2px;
	transition: transform 0.25s ease, opacity 0.25s ease;
}

.nav-open .nav-toggle-bar:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.nav-open .nav-toggle-bar:nth-child(2) {
	opacity: 0;
}

.nav-open .nav-toggle-bar:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

/* --------------------------------------------------
   4. 首屏:等压线场上的观测站
-------------------------------------------------- */
.gw-hero {
	position: relative;
	overflow: hidden;
	border-bottom: 1px solid var(--gw-line);
	background: var(--gw-cloud);
}

.gw-isobars {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.gw-hero-inner {
	position: relative;
	max-width: 1140px;
	margin: 0 auto;
	padding: 72px 22px 56px;
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: 48px;
	align-items: center;
}

.gw-hero-kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	letter-spacing: 0.16em;
	color: var(--gw-blue-deep);
	border: 1px solid var(--gw-line);
	background: #fff;
	border-radius: 999px;
	padding: 5px 14px;
	margin-bottom: 20px;
}

.gw-hero h1 {
	font-size: clamp(30px, 4.6vw, 46px);
	letter-spacing: 0.02em;
	margin-bottom: 16px;
}

.gw-hero h1 .gw-accent {
	color: var(--gw-blue-deep);
}

.gw-hero-lead {
	font-size: 17px;
	color: var(--gw-muted);
	max-width: 34em;
	margin-bottom: 12px;
}

.gw-hero-slogan {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	color: var(--gw-ink);
	margin-bottom: 26px;
}

.gw-hero-slogan .gw-icon {
	color: var(--gw-blue);
}

.gw-hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.gw-station-holder {
	position: relative;
	min-width: 0;
}

.gw-station {
	display: block;
	width: 100%;
	height: auto;
}

/* 观测站 SVG 细节 */
.gw-spray path {
	stroke-dasharray: 3 5;
	animation: gw-fall 1.6s linear infinite;
}

.gw-blink {
	animation: gw-blink 2.2s ease-in-out infinite;
}

@keyframes gw-fall {
	to {
		stroke-dashoffset: -16;
	}
}

@keyframes gw-blink {
	0%, 100% { opacity: 1; }
	50% { opacity: 0.25; }
}

/* --------------------------------------------------
   5. 预报卡(天气 App 式数据卡)
-------------------------------------------------- */
.gw-forecast-strip {
	position: relative;
	margin-top: -34px;
	z-index: 5;
}

.gw-forecast-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.gw-fcard {
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	box-shadow: var(--gw-shadow);
	padding: 18px 20px 16px;
	position: relative;
}

.gw-fcard-label {
	font-size: 12.5px;
	letter-spacing: 0.12em;
	color: var(--gw-muted);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 8px;
}

.gw-fcard-label .gw-icon {
	color: var(--gw-blue);
}

.gw-fcard-value {
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	color: var(--gw-ink);
	display: flex;
	align-items: baseline;
	gap: 6px;
}

.gw-fcard-unit {
	font-size: 13px;
	font-weight: 400;
	color: var(--gw-muted);
}

.gw-fcard-note {
	margin: 8px 0 0;
	font-size: 12.5px;
	color: var(--gw-muted);
}

.gw-trend-down {
	color: var(--gw-blue-deep);
	font-weight: 600;
}

.gw-trend-up {
	color: var(--gw-blue-deep);
	font-weight: 600;
}

/* --------------------------------------------------
   6. 区块通用:观测项目编号 + 虚线云朵分隔
-------------------------------------------------- */
.gw-section {
	padding: 72px 0;
}

.gw-section-panel {
	background-color: var(--gw-panel);
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='360' viewBox='0 0 480 360'%3E%3Cg fill='none' stroke='%234f7ea3' stroke-opacity='.09'%3E%3Cpath d='M240 60c70 0 130 38 130 96s-60 108-130 108-130-50-130-108 60-96 130-96z'/%3E%3Cpath d='M240 96c48 0 88 27 88 62s-40 74-88 74-88-39-88-74 40-62 88-62z'/%3E%3Cpath d='M240 132c27 0 48 14 48 28s-21 34-48 34-48-20-48-34 21-28 48-28z'/%3E%3C/g%3E%3Ctext x='352' y='140' font-family='sans-serif' font-size='10' fill='%234f7ea3' fill-opacity='.3'%3E1013%3C/text%3E%3Ctext x='120' y='250' font-family='sans-serif' font-size='10' fill='%234f7ea3' fill-opacity='.24'%3E1008%3C/text%3E%3C/svg%3E");
	border-top: 1px solid var(--gw-line);
	border-bottom: 1px solid var(--gw-line);
}

.gw-sec-head {
	max-width: 720px;
	margin-bottom: 40px;
}

.gw-sec-head.is-center {
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.gw-sec-kicker {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	letter-spacing: 0.2em;
	color: var(--gw-blue-deep);
	margin-bottom: 10px;
}

.gw-sec-kicker .gw-icon {
	color: var(--gw-blue);
}

.gw-sec-head h2 {
	font-size: clamp(24px, 3vw, 32px);
	margin-bottom: 10px;
}

.gw-sec-lead {
	color: var(--gw-muted);
	margin: 0;
}

.gw-divider {
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: 1140px;
	margin: 0 auto;
	padding: 0 22px;
	color: var(--gw-blue);
}

.gw-divider-line {
	flex: 1;
	border-top: 1px dashed var(--gw-line);
}

/* --------------------------------------------------
   7. 卡片 / 按钮 / 标签
-------------------------------------------------- */
.gw-card {
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 24px;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.gw-card:hover {
	box-shadow: var(--gw-shadow);
	transform: translateY(-2px);
}

.btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 11px 22px;
	border-radius: var(--gw-r);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	cursor: pointer;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

.btn:hover {
	text-decoration: none;
}

.btn-primary {
	background: var(--gw-ink);
	color: #fff;
}

.btn-primary:hover {
	background: var(--gw-blue-deep);
	color: #fff;
}

.btn-ghost {
	background: #fff;
	border-color: var(--gw-blue);
	color: var(--gw-ink);
}

.btn-ghost:hover {
	background: var(--gw-panel);
	color: var(--gw-blue-deep);
}

.gw-tag {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.06em;
	padding: 2px 9px;
	border-radius: var(--gw-rs);
	line-height: 1.6;
}

.gw-tag-blue {
	background: var(--gw-blue-deep);
	color: #fff;
}

.gw-tag-alert {
	background: var(--gw-alert);
	color: var(--gw-alert-ink);
}

.gw-tag-line {
	border: 1px solid var(--gw-blue);
	color: var(--gw-blue-deep);
	background: #fff;
}

/* --------------------------------------------------
   8. 观测设备(产品卡)
-------------------------------------------------- */
.gw-product-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.gw-pcard {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 26px 24px 22px;
	transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.gw-pcard:hover {
	box-shadow: var(--gw-shadow);
	transform: translateY(-3px);
}

.gw-pcard-top {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin-bottom: 14px;
}

.gw-pcard-top .gw-icon {
	color: var(--gw-blue);
}

.gw-pcard-model {
	font-size: 22px;
	font-weight: 700;
	letter-spacing: 0.03em;
	margin: 0 0 2px;
}

.gw-pcard-model a {
	color: var(--gw-ink);
	text-decoration: none;
}

.gw-pcard-model a:hover {
	color: var(--gw-blue-deep);
}

.gw-pcard-kind {
	font-size: 13px;
	color: var(--gw-muted);
	margin-bottom: 12px;
}

.gw-pcard-line {
	color: var(--gw-muted);
	font-size: 14.5px;
	margin-bottom: 16px;
}

.gw-pcard-readings {
	list-style: none;
	margin: 0 0 18px;
	padding: 12px 0 0;
	border-top: 1px dashed var(--gw-line);
	font-size: 14px;
}

.gw-pcard-readings li {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	padding: 5px 0;
}

.gw-pcard-readings .gw-reading {
	color: var(--gw-ink);
	font-weight: 600;
}

.gw-pcard-readings .k {
	color: var(--gw-muted);
}

.gw-pcard-foot {
	margin-top: auto;
}

/* --------------------------------------------------
   9. 成云致雨(工艺四步)
-------------------------------------------------- */
.gw-steps {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	counter-reset: gwstep;
}

.gw-step {
	position: relative;
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 24px 20px 20px;
}

.gw-step::before {
	counter-increment: gwstep;
	content: "0" counter(gwstep);
	position: absolute;
	top: 14px;
	right: 16px;
	font-size: 12px;
	letter-spacing: 0.14em;
	color: var(--gw-blue-deep);
}

.gw-step .gw-icon {
	color: var(--gw-blue);
	margin-bottom: 10px;
}

.gw-step h3 {
	font-size: 17px;
	margin-bottom: 6px;
}

.gw-step p {
	font-size: 14px;
	color: var(--gw-muted);
	margin: 0;
}

.gw-step-tail {
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px dashed var(--gw-line);
	font-size: 12.5px;
	color: var(--gw-blue-deep);
}

/* --------------------------------------------------
   10. 排放预报(治理前 → 治理后)
-------------------------------------------------- */
.gw-compare-grid {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 14px;
}

.gw-ccard {
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 18px 12px 16px;
	text-align: center;
}

.gw-ccard-name {
	font-size: 14px;
	font-weight: 600;
	margin-bottom: 12px;
}

.gw-ccard-before,
.gw-ccard-after {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
}

.gw-ccard-before .gw-icon {
	color: var(--gw-muted);
}

.gw-ccard-after .gw-icon {
	color: var(--gw-blue);
}

.gw-ccard-phase {
	font-size: 11.5px;
	letter-spacing: 0.12em;
	color: var(--gw-muted);
}

.gw-ccard-val {
	font-size: 15px;
	font-weight: 600;
	color: var(--gw-muted);
}

.gw-ccard-after .gw-ccard-val {
	color: var(--gw-ink);
	font-size: 17px;
}

.gw-ccard-arrow {
	margin: 10px auto;
	width: 1px;
	height: 22px;
	border-left: 1px dashed var(--gw-blue);
	position: relative;
}

.gw-ccard-arrow::after {
	content: "";
	position: absolute;
	left: -4px;
	bottom: -1px;
	border: 4px solid transparent;
	border-top-color: var(--gw-blue);
}

.gw-ccard .gw-tag-line {
	margin-top: 10px;
}

.gw-compare-note {
	margin: 18px 0 0;
	font-size: 13px;
	color: var(--gw-muted);
	text-align: center;
}

/* --------------------------------------------------
   11. 预警响应(蓝 / 黄)
-------------------------------------------------- */
.gw-alert-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

.gw-acard {
	background: #fff;
	border: 1px solid var(--gw-line);
	border-left-width: 4px;
	border-radius: var(--gw-r);
	padding: 24px;
}

.gw-acard-blue {
	border-left-color: var(--gw-blue-deep);
}

.gw-acard-yellow {
	border-left-color: var(--gw-alert);
}

.gw-acard-head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.gw-acard-head h3 {
	margin: 0;
	font-size: 18px;
}

.gw-acard-sub {
	font-size: 13.5px;
	color: var(--gw-muted);
	margin-bottom: 14px;
}

.gw-acard ul {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 14.5px;
}

.gw-acard li {
	display: flex;
	justify-content: space-between;
	gap: 14px;
	padding: 9px 0;
	border-top: 1px dashed var(--gw-line);
}

.gw-acard li strong {
	white-space: nowrap;
	color: var(--gw-blue-deep);
}

.gw-alert-note {
	margin: 18px 0 0;
	font-size: 13.5px;
	color: var(--gw-muted);
	text-align: center;
}

/* --------------------------------------------------
   12. 晴空档案(案例)
-------------------------------------------------- */
.gw-case-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

.gw-case {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 24px;
}

.gw-case-place {
	font-size: 17px;
	font-weight: 700;
	margin: 10px 0 2px;
}

.gw-case-ind {
	font-size: 13px;
	color: var(--gw-muted);
	margin-bottom: 14px;
}

.gw-case-forecast {
	position: relative;
	background: var(--gw-panel);
	border: 1px dashed var(--gw-line);
	border-radius: var(--gw-r);
	padding: 14px 16px;
	font-size: 14px;
	color: var(--gw-ink);
	margin-bottom: 12px;
}

.gw-case-forecast .k {
	display: block;
	font-size: 11.5px;
	letter-spacing: 0.16em;
	color: var(--gw-blue-deep);
	margin-bottom: 4px;
}

.gw-case-live {
	font-size: 14px;
	color: var(--gw-muted);
	margin-bottom: 14px;
}

.gw-case-live strong {
	color: var(--gw-ink);
}

.gw-case-data {
	margin-top: auto;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 8px;
	border-top: 1px dashed var(--gw-line);
	padding-top: 12px;
	font-size: 12.5px;
	color: var(--gw-muted);
	text-align: center;
}

.gw-case-data b {
	display: block;
	font-size: 15px;
	color: var(--gw-ink);
	font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------
   13. 观测结论(板材说明)+ 圆形记录章
-------------------------------------------------- */
.gw-conclusion {
	position: relative;
	max-width: 860px;
	margin: 0 auto;
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 40px 44px;
}

.gw-conclusion blockquote {
	margin: 0;
	font-size: 18px;
	line-height: 2;
	color: var(--gw-ink);
}

.gw-conclusion-meta {
	margin-top: 18px;
	font-size: 13px;
	color: var(--gw-muted);
	display: flex;
	gap: 18px;
	flex-wrap: wrap;
}

.gw-stamp {
	position: absolute;
	right: 30px;
	bottom: 24px;
	width: 92px;
	height: 92px;
	border: 1.5px solid var(--gw-blue);
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 11px;
	line-height: 1.5;
	letter-spacing: 0.1em;
	color: var(--gw-blue-deep);
	transform: rotate(-8deg);
	opacity: 0.85;
}

.gw-stamp::before {
	content: "";
	position: absolute;
	inset: 5px;
	border: 1px dashed var(--gw-blue);
	border-radius: 50%;
}

/* --------------------------------------------------
   14. 气象快报(新闻列表)
-------------------------------------------------- */
.gw-news-list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--gw-line);
}

.gw-news-list li {
	display: flex;
	align-items: baseline;
	gap: 18px;
	padding: 16px 4px;
	border-bottom: 1px dashed var(--gw-line);
}

.gw-news-date {
	flex: none;
	font-size: 13px;
	color: var(--gw-blue-deep);
	background: var(--gw-panel);
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-rs);
	padding: 1px 8px;
	font-variant-numeric: tabular-nums;
}

.gw-news-list a {
	color: var(--gw-ink);
	text-decoration: none;
}

.gw-news-list a:hover {
	color: var(--gw-blue-deep);
	text-decoration: underline;
}

.gw-news-more {
	margin-top: 22px;
}

/* --------------------------------------------------
   15. 呼叫观测站(联系)+ 大风向标
-------------------------------------------------- */
.gw-contact-grid {
	display: grid;
	grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
	gap: 40px;
	align-items: start;
}

.gw-contact-list {
	list-style: none;
	margin: 0 0 22px;
	padding: 0;
}

.gw-contact-list li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 0;
	border-bottom: 1px dashed var(--gw-line);
	font-size: 15.5px;
}

.gw-contact-list .gw-icon {
	color: var(--gw-blue);
	flex: none;
	margin-top: 3px;
}

.gw-contact-list b {
	display: block;
	font-size: 12.5px;
	letter-spacing: 0.12em;
	color: var(--gw-muted);
	font-weight: 600;
}

.gw-vane-holder {
	text-align: center;
}

.gw-vane {
	width: min(230px, 60vw);
	height: auto;
	margin: 0 auto 18px;
	display: block;
}

.gw-vane-needle {
	transform-box: view-box;
	transform-origin: 50% 50%;
}

.gw-vane-needle--fb {
	transform-box: fill-box;
	transform-origin: center;
}

.gw-guide-card {
	text-align: left;
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 22px 24px;
}

.gw-guide-card h3 {
	font-size: 16px;
	margin-bottom: 8px;
}

.gw-guide-card p {
	font-size: 14px;
	color: var(--gw-muted);
	margin-bottom: 8px;
}

.gw-guide-card .gw-hours {
	font-size: 13.5px;
	color: var(--gw-ink);
	border-top: 1px dashed var(--gw-line);
	padding-top: 10px;
	margin: 10px 0 0;
}

/* --------------------------------------------------
   16. 页脚
-------------------------------------------------- */
.site-footer {
	background: var(--gw-panel);
	border-top: 1px solid var(--gw-line);
	padding: 52px 0 30px;
	font-size: 14px;
	color: var(--gw-muted);
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr);
	gap: 36px;
	margin-bottom: 30px;
}

.footer-brand .site-latin {
	margin-bottom: 10px;
}

.footer-brand h3 {
	font-size: 18px;
	margin-bottom: 4px;
}

.footer-slogan {
	color: var(--gw-blue-deep);
	font-weight: 600;
	margin-bottom: 10px;
}

.footer-title {
	font-size: 13px;
	letter-spacing: 0.16em;
	color: var(--gw-blue-deep);
	margin-bottom: 12px;
	display: inline-flex;
	align-items: center;
	gap: 7px;
}

.site-footer .menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.site-footer .menu li {
	padding: 4px 0;
}

.site-footer .menu a {
	color: var(--gw-muted);
}

.site-footer .menu a:hover {
	color: var(--gw-ink);
}

.footer-contact p {
	margin: 0 0 6px;
}

.footer-supply {
	border-top: 1px dashed var(--gw-line);
	padding-top: 18px;
	font-size: 13px;
}

.footer-legal {
	margin-top: 14px;
	font-size: 12.5px;
	display: flex;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}

/* --------------------------------------------------
   17. 内页通用 / 文章 / 归档
-------------------------------------------------- */
.gw-page-hero {
	background: var(--gw-panel);
	border-bottom: 1px solid var(--gw-line);
	padding: 52px 0 40px;
}

.gw-page-hero h1 {
	font-size: clamp(26px, 3.4vw, 36px);
	margin: 8px 0 6px;
}

.gw-page-hero .gw-sec-kicker {
	margin-bottom: 0;
}

.gw-page-hero-lead {
	color: var(--gw-muted);
	margin: 0;
	max-width: 46em;
}

.gw-content-area {
	padding: 56px 0 72px;
}

.gw-content-cols {
	display: grid;
	grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	gap: 44px;
	align-items: start;
}

.entry {
	margin-bottom: 34px;
}

.entry-card {
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 26px 28px;
	margin-bottom: 22px;
}

.entry-title {
	font-size: 22px;
	margin-bottom: 6px;
}

.entry-title a {
	color: var(--gw-ink);
	text-decoration: none;
}

.entry-title a:hover {
	color: var(--gw-blue-deep);
}

.entry-meta {
	font-size: 13px;
	color: var(--gw-muted);
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}

.entry-meta .gw-icon {
	color: var(--gw-blue);
}

.entry-summary,
.entry-content {
	color: var(--gw-ink);
}

.entry-content h2,
.entry-content h3 {
	margin-top: 1.6em;
}

.entry-content blockquote {
	margin: 1.2em 0;
	padding: 12px 18px;
	background: var(--gw-panel);
	border-left: 3px solid var(--gw-blue);
	border-radius: var(--gw-rs);
	color: var(--gw-muted);
}

.entry-content table th,
.entry-content table td {
	border: 1px solid var(--gw-line);
	padding: 8px 12px;
	text-align: left;
}

.entry-content table th {
	background: var(--gw-panel);
}

.entry-content a {
	text-decoration: underline;
	text-underline-offset: 3px;
}

.read-more {
	font-weight: 600;
}

.gw-pagination {
	margin-top: 30px;
}

.gw-pagination .nav-links {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: center;
}

.gw-pagination .page-numbers {
	display: inline-block;
	min-width: 38px;
	text-align: center;
	padding: 7px 12px;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	background: #fff;
	color: var(--gw-ink);
	text-decoration: none;
	font-variant-numeric: tabular-nums;
}

.gw-pagination .page-numbers.current {
	background: var(--gw-ink);
	border-color: var(--gw-ink);
	color: #fff;
}

.gw-pagination .page-numbers:hover {
	border-color: var(--gw-blue);
	color: var(--gw-blue-deep);
	text-decoration: none;
}

.post-navigation .nav-links {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 26px;
	font-size: 14.5px;
}

/* 侧栏 */
.widget {
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 20px 22px;
	margin-bottom: 20px;
	font-size: 14.5px;
}

.widget-title {
	font-size: 13px;
	letter-spacing: 0.16em;
	color: var(--gw-blue-deep);
	margin-bottom: 12px;
	display: flex;
	align-items: center;
	gap: 7px;
}

.widget ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.widget li {
	padding: 6px 0;
	border-bottom: 1px dashed var(--gw-line);
}

.widget li:last-child {
	border-bottom: 0;
}

/* 搜索表单 */
.search-form {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
}

.search-form .search-field {
	flex: 1;
	min-width: 200px;
	padding: 10px 14px;
	font-size: 15px;
	font-family: inherit;
	color: var(--gw-ink);
	background: #fff;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
}

.search-form .search-field:focus {
	border-color: var(--gw-blue);
	outline: none;
	box-shadow: 0 0 0 3px rgba(79, 126, 163, 0.15);
}

.search-form .search-submit {
	padding: 10px 20px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	color: #fff;
	background: var(--gw-ink);
	border: 0;
	border-radius: var(--gw-r);
	cursor: pointer;
}

.search-form .search-submit:hover {
	background: var(--gw-blue-deep);
}

/* 评论 */
.comments-area {
	margin-top: 40px;
	border-top: 1px dashed var(--gw-line);
	padding-top: 26px;
}

.comment-list {
	list-style: none;
	margin: 0 0 20px;
	padding: 0;
}

.comment-list .comment {
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	background: #fff;
	padding: 16px 18px;
	margin-bottom: 14px;
}

.comment-list .children {
	list-style: none;
	margin: 14px 0 0;
	padding-left: 18px;
	border-left: 1px dashed var(--gw-line);
}

.comment-meta {
	font-size: 13px;
	color: var(--gw-muted);
	margin-bottom: 8px;
}

.comment-form label {
	display: block;
	font-size: 13.5px;
	color: var(--gw-muted);
	margin-bottom: 4px;
}

.comment-form input[type="text"],
.comment-form input[type="email"],
.comment-form input[type="url"],
.comment-form textarea {
	width: 100%;
	padding: 10px 12px;
	font-family: inherit;
	font-size: 15px;
	color: var(--gw-ink);
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	background: #fff;
	margin-bottom: 14px;
}

.comment-form .submit {
	padding: 10px 22px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	color: #fff;
	background: var(--gw-ink);
	border: 0;
	border-radius: var(--gw-r);
	cursor: pointer;
}

/* --------------------------------------------------
   18. 观测记录表(参数表)
-------------------------------------------------- */
.obs-table-wrap {
	overflow-x: auto;
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	background: #fff;
}

.obs-table {
	min-width: 560px;
	font-size: 14.5px;
}

.obs-table caption {
	text-align: left;
	padding: 14px 18px 0;
	font-size: 13px;
	letter-spacing: 0.14em;
	color: var(--gw-blue-deep);
}

.obs-table th,
.obs-table td {
	padding: 11px 18px;
	text-align: left;
	border-bottom: 1px dashed var(--gw-line);
}

.obs-table thead th {
	background: var(--gw-panel);
	font-size: 12.5px;
	letter-spacing: 0.12em;
	color: var(--gw-muted);
	border-bottom: 1px solid var(--gw-line);
}

.obs-table tbody tr:last-child td {
	border-bottom: 0;
}

.obs-table tbody tr:hover td {
	background: var(--gw-panel);
}

.obs-table .t {
	color: var(--gw-blue-deep);
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.obs-table .trend {
	white-space: nowrap;
	color: var(--gw-blue-deep);
	font-weight: 600;
}

/* --------------------------------------------------
   19. 产品单页 / 产品归档
-------------------------------------------------- */
.gw-product-head {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 20px;
	flex-wrap: wrap;
	margin-bottom: 26px;
}

.gw-product-head h1 {
	margin: 6px 0 4px;
}

.gw-product-tax {
	font-size: 13.5px;
	color: var(--gw-muted);
}

.gw-product-tax a {
	color: var(--gw-blue-deep);
}

.gw-inquiry {
	margin-top: 34px;
	background: var(--gw-panel);
	border: 1px solid var(--gw-line);
	border-radius: var(--gw-r);
	padding: 28px;
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 24px;
	align-items: center;
}

.gw-inquiry h2 {
	font-size: 20px;
	margin-bottom: 8px;
}

.gw-inquiry p {
	font-size: 14.5px;
	color: var(--gw-muted);
	margin: 0;
}

.gw-inquiry-actions {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	justify-content: flex-end;
}

.gw-back-link {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	margin-bottom: 18px;
}

.gw-product-forecast {
	max-width: 720px;
	margin-bottom: 24px;
}

/* --------------------------------------------------
   20. 搜索页 / 404
-------------------------------------------------- */
.gw-search-intro {
	margin-bottom: 26px;
	color: var(--gw-muted);
}

.gw-404 {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
	padding: 40px 0;
}

.gw-404 .gw-icon {
	color: var(--gw-blue);
}

.gw-404-code {
	font-size: 64px;
	font-weight: 700;
	letter-spacing: 0.08em;
	color: var(--gw-blue-deep);
	margin: 10px 0 4px;
	font-variant-numeric: tabular-nums;
}

.gw-404 h1 {
	font-size: 24px;
}

.gw-404 p {
	color: var(--gw-muted);
}

.gw-404 .search-form {
	margin: 24px auto;
	max-width: 440px;
}

/* --------------------------------------------------
   21. 入场动画 / 无障碍与降级
-------------------------------------------------- */
.reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.is-visible {
	opacity: 1;
	transform: none;
}

.no-js .reveal {
	opacity: 1;
	transform: none;
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
	.reveal {
		opacity: 1;
		transform: none;
	}
	.gw-spray path,
	.gw-blink {
		animation: none !important;
	}
}

/* --------------------------------------------------
   22. 响应式
-------------------------------------------------- */
@media (max-width: 1024px) {
	.gw-forecast-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.gw-compare-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.gw-steps {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.gw-product-grid,
	.gw-case-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.gw-hero-inner {
		grid-template-columns: 1fr;
		padding-top: 56px;
	}
	.gw-station-holder {
		max-width: 560px;
		margin: 0 auto;
	}
	.gw-content-cols {
		grid-template-columns: 1fr;
	}
	.footer-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 768px) {
	.nav-toggle {
		display: flex;
	}
	.site-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--gw-cloud);
		border-bottom: 1px solid var(--gw-line);
		box-shadow: 0 14px 26px rgba(44, 74, 97, 0.12);
		display: none;
	}
	.nav-open .site-nav {
		display: block;
	}
	.site-nav ul {
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 10px 18px 16px;
	}
	.site-nav a {
		display: block;
		padding: 12px 10px;
		border-bottom: 1px dashed var(--gw-line);
		border-radius: 0;
	}
	.site-nav li:last-child a {
		border-bottom: 0;
	}
	/* 无 JS 时移动端菜单直接展开可用 */
	.no-js .site-nav {
		display: block;
		position: static;
		box-shadow: none;
		border-bottom: 0;
	}
	.no-js .nav-toggle {
		display: none;
	}
	.gw-ticker-item:nth-child(n+4) {
		display: none;
	}
	.gw-section {
		padding: 54px 0;
	}
	.gw-contact-grid {
		grid-template-columns: 1fr;
	}
	.gw-inquiry {
		grid-template-columns: 1fr;
	}
	.gw-inquiry-actions {
		justify-content: flex-start;
	}
	.gw-conclusion {
		padding: 28px 24px 96px;
	}
}

@media (max-width: 560px) {
	.gw-forecast-grid,
	.gw-compare-grid,
	.gw-steps,
	.gw-product-grid,
	.gw-case-grid,
	.gw-alert-grid,
	.footer-grid {
		grid-template-columns: 1fr;
	}
	.gw-hero-inner {
		padding: 44px 22px 48px;
	}
	.gw-forecast-strip {
		margin-top: 24px;
	}
	.gw-news-list li {
		flex-direction: column;
		gap: 6px;
	}
}
