/*
Theme Name: zeroY Child
Theme URI: https://www.zeroy.app
Template: zeroY
Description: zeroY workspace child theme. Mutable overrides live here; the parent theme remains the baseline shell.
Version: 0.1.1
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 8.0
Author: Yansir
Author URI: https://www.zeroy.app
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: zeroy-child
*/

/* ==========================================================================
   Reveal animation killswitch
   --------------------------------------------------------------------------
   背景：
     zeroY 设计系统的全局 CSS 里定义了 .reveal { opacity:0; transform:translateY(24px); }
     的初始隐藏规则，期望配合 JS 触发的 .visible 类实现"滚动进入视口才淡入"的效果。
     我们已经在 assets/js/reveal.js 里补上了配套的 IntersectionObserver 运行时，
     技术上淡入动画是可用的。

   但对于 B2B 站，我们的原则是内容优先于动效：买家第一眼就要看到完整内容，
   不希望任何内容因为 JS 没跑起来或加载延迟而被隐藏。因此用下面这条 !important
   规则强制让所有 .reveal 元素始终完全可见，覆盖设计系统的 opacity:0 规则。

   想重新启用滚动淡入效果时：
     1. 删除或注释掉下面 .reveal 那个规则块即可
     2. 刷新浏览器，reveal.js 会自动接管，元素开始按视口触发淡入
     3. 反悔了想关掉？把规则放回来就行
   ========================================================================== */
.reveal {
	opacity: 1 !important;
	transform: none !important;
}

/* ==========================================================================
   In-page anchor navigation (CTA button → form on same page)
   --------------------------------------------------------------------------
   策略（locked 2026-04-24）：
     - 每个"有表单"的页面，给表单容器加 id="[semantic-name]" + class="form-anchor"
     - CTA 按钮的 href 指向该 id（例如 href="#quick-quote"）
     - 没有表单的页面，CTA 按钮 fallback 到 /contact/
   .form-anchor 的 scroll-margin-top 确保跳转后表单不会被 80px 的 sticky header 遮住。
   ========================================================================== */

html {
	scroll-behavior: smooth;
}

.form-anchor {
	scroll-margin-top: 100px;
}

/* ==========================================================================
   全站宽度标准（locked 2026-04-29）
   --------------------------------------------------------------------------
   背景：
     zeroY 编辑器在不同版本默认 max-width 不一（早期 1280，最近 1024），
     8 页历史内容里散落 720/760/768/800/820/840/860/880/900/920/980/1000/1140
     共 14 种窄宽，视觉极不统一。

   设计依据：
     1140 — Bootstrap 3 / Elementor 经典值，14" 笔记本（FHD）有呼吸空间
     900  — ≈ 65 英文字符 / 80 中文字符的最佳阅读行宽（长篇文章正文）
     760  — ≈ 55 英文字符（居中标题 + 描述文字最舒服）
     560  — 表单白卡刚好容纳一列输入字段不挤不松

   使用：
     <section><div class="bldc-shell">...</div></section>
     <article class="bldc-prose">长篇正文</article>
     <div class="bldc-narrow">居中 intro 段落</div>
     <div class="bldc-form-card">表单卡</div>

   相邻类可叠加 — 例如 .bldc-shell 内嵌 .bldc-prose（外宽内窄）。
   ========================================================================== */

.bldc-shell {
	max-width: 1140px;
	margin-left: auto;
	margin-right: auto;
}

.bldc-prose {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
}

.bldc-narrow {
	max-width: 760px;
	margin-left: auto;
	margin-right: auto;
}

.bldc-form-card {
	max-width: 560px;
	margin-left: auto;
	margin-right: auto;
}

/* ==========================================================================
   .btn-accent — 琥珀色 CTA 按钮
   --------------------------------------------------------------------------
   专用于设计系统的 Accent 颜色 (#FFB547) 按钮。
   - 仅用于青色 #1CA0C4 section 背景上的 CTA，利用互补色组合最大化吸引力
   - 设计系统规则：#FFB547 仅限"信号提示 / 偶尔强调"，不可作大面积背景 — 按钮合规
   - 在白色或浅色背景上不要用（对比度不足，且偏离设计系统用法）
   ========================================================================== */

.btn-accent {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #FFB547;
	color: #3D2500;  /* 深琥珀棕 — 琥珀家族最暗色，暖色温统一、对比度 8.17:1 过 AAA */
	padding: 16px 30px;
	border-radius: 4px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 0.01em;
	text-decoration: none;
	box-shadow: 0 4px 14px -4px rgba(255, 181, 71, 0.55);
	transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
	white-space: nowrap;
	border: none;
	cursor: pointer;
}

.btn-accent:hover {
	background: #F59E3F;
	color: #3D2500;
	box-shadow: 0 6px 20px -4px rgba(245, 158, 63, 0.7);
	transform: translateY(-1px);
}

/* ==========================================================================
   .btn-primary — 青色主按钮（site-wide fallback）
   --------------------------------------------------------------------------
   zeroY 插件按页面"用到的 class"按需编译 CSS，导致同样的 .btn-primary markup
   在不同页面表现不一致：编辑时 zeroY 没检测到该 class 就不编译规则。
   把规则同时放在子主题 style.css 里作为 site-wide fallback，让任何页面只
   要有 class="btn-primary" 都生效，不再依赖 zeroY per-page 缓存。
   首次出现：1023 (/features-category/intelligent-toilet-pumps/) sidebar v2
   按钮与 1025 markup 一字不差但渲染不一致（1023 编译 CSS 缺该规则）。
   ========================================================================== */

.btn-primary {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #1CA0C4;
	color: #fff;
	padding: 16px 26px;
	border-radius: 4px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	border: none;
	cursor: pointer;
	box-shadow: 0 4px 14px -4px rgba(28, 160, 196, 0.55);
	transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
	text-decoration: none;
}

.btn-primary:hover {
	background: #0B5E8F;
	box-shadow: 0 6px 20px -4px rgba(11, 94, 143, 0.6);
	transform: translateY(-1px);
}

/* ==========================================================================
   .kicker — section 上方的小标题（◆ ALL CAPS · monospace 视觉）
   --------------------------------------------------------------------------
   同 .btn-primary 问题：zeroY 按页面已用 class 编译 CSS，导致 .kicker 规则
   在不同页面的编译产物里有/没有。把规则加到 child theme style.css 作
   site-wide fallback，与 1025（hair-removal）当前渲染保持一致。
   注：font-family 故意保留 'JetBrains Mono', monospace —— JetBrains Mono
   未在站内加载（per font policy），浏览器实际回退到系统 monospace；这与
   1025 现状一致。Round 2 全站字体 sweep 时把 .kicker 也换成 system sans。
   ========================================================================== */

.kicker {
	font-family: 'JetBrains Mono', monospace;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #1CA0C4;
}

/* ==========================================================================
   .product-card / .grid-bg / .grid-bg-dark — site-wide fallbacks
   --------------------------------------------------------------------------
   Same zeroY per-page CSS compilation issue as .btn-primary / .kicker:
   these classes only get compiled on pages where zeroY's editor "saw" them,
   so a freshly created or rarely edited page (e.g., 989 protein skimmer
   cloned from 985 via WP-CLI direct DB write) would lack these rules
   and the cards would render unstyled (no border, no shadow, no hover).
   First incident: 989 cards looked different from byte-identical 985 cards.
   ========================================================================== */

.product-card {
	background: #FFFFFF;
	border: 1px solid #E3E8EE;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 1px 2px rgba(6, 42, 66, 0.06), 0 1px 0 rgba(6, 42, 66, 0.04);
	transition: box-shadow 0.25s, transform 0.2s;
	display: flex;
	flex-direction: column;
}

.product-card:hover {
	box-shadow: 0 8px 24px -8px rgba(6, 42, 66, 0.18), 0 2px 6px rgba(6, 42, 66, 0.06);
	transform: translateY(-3px);
}

.grid-bg {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M 32 0 L 0 0 0 32' fill='none' stroke='rgba(11,94,143,0.08)' stroke-width='1'/%3E%3C/svg%3E");
}

.grid-bg-dark {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32'%3E%3Cpath d='M 32 0 L 0 0 0 32' fill='none' stroke='rgba(91,196,222,0.1)' stroke-width='1'/%3E%3C/svg%3E");
}

/* Half-width article image utility — desktop 50% centered, mobile 100%.
   First user: post 1059 (DMX512) wiring diagram. Reusable for any narrow
   diagram/illustration that should not stretch full article column on desktop. */
.bldc-image-half {
	width: 50%;
	height: auto;
	margin: 0 auto;
	display: block;
}

/* ==========================================================================
   Mobile responsive overrides (site-wide)
   --------------------------------------------------------------------------
   背景：
     zeroY 设计系统的全局 CSS 里完全没有 @media 查询，AI 编辑器生成的页面
     内容又以 inline style 为主（多列网格 + 56px 横向 padding），导致在手机
     viewport 下所有 section 布局都会挤成无法阅读的状态。
     下面这些规则用属性选择器（[style*="..."]） + !important 强制覆盖 inline
     style，在窄屏把多列折叠成单列、把横向 padding 收紧。

   作用范围：
     全站生效（包括 footer zeroY 模板、Pump Series / Pump 单页模板）。
     副作用正向 — footer 的 4 列在手机上也会合理堆叠。

   断点：
     - 768px：iPad 竖屏及以下  → 多列 → 1 列，padding 56 → 20
     - 480px：iPhone 及小屏    → padding 20 → 16（再紧凑一档）

   如何扩展：
     将来 AI 生成的页面若出现新的 inline 布局模式（比如 `repeat(4,1fr)`），
     就在下面 @media 块里增加一条对应的 [style*="..."] 选择器。
   ========================================================================== */

@media (max-width: 768px) {
	/* ── Section 横向 padding：56px → 20px ──
	   prefix 匹配所有 padding:Npx 56px[...] 变体 */
	section[style*="padding:80px 56px"],
	section[style*="padding:72px 56px"],
	section[style*="padding:64px 56px"],
	section[style*="padding:60px 56px"],
	section[style*="padding:56px"],
	section[style*="padding:48px 56px"],
	section[style*="padding:40px 56px"] {
		padding-left: 20px !important;
		padding-right: 20px !important;
	}

	/* ── 所有多列 inline 网格 → 单列 ──
	   覆盖 repeat(2/3/4/5/6, 1fr) / 1fr 1fr / 1.1fr 0.9fr / 1.2fr 1fr / 1.3fr */
	[style*="grid-template-columns:repeat(2,1fr)"],
	[style*="grid-template-columns:repeat(3,1fr)"],
	[style*="grid-template-columns:repeat(4,1fr)"],
	[style*="grid-template-columns:repeat(5,1fr)"],
	[style*="grid-template-columns:repeat(6,1fr)"],
	[style*="grid-template-columns:1fr 1fr"],
	[style*="grid-template-columns:1.1fr 0.9fr"],
	[style*="grid-template-columns:1.2fr 1fr"],
	[style*="grid-template-columns:1.3fr"],
	/* Application page article+sidebar grid: 1fr <Npx>. Covers 1025/1023/1009/1001/1011 hero+sidebar layouts. */
	[style*="grid-template-columns:1fr 340px"],
	[style*="grid-template-columns:1fr 360px"],
	[style*="grid-template-columns:1fr 380px"],
	[style*="grid-template-columns:1fr 240px"] {
		grid-template-columns: 1fr !important;
	}

	/* ── 窄屏 gap 收紧 ── */
	[style*="grid-template-columns:repeat(3,1fr)"],
	[style*="grid-template-columns:repeat(4,1fr)"],
	[style*="grid-template-columns:repeat(5,1fr)"],
	[style*="grid-template-columns:repeat(6,1fr)"],
	[style*="grid-template-columns:1.3fr"] {
		gap: 24px !important;
	}

	/* ── Hero banner 单列时最小高度变小 ── */
	section[aria-label="Hero Banner"],
	section[aria-label="Page title"] {
		min-height: auto !important;
	}

	/* ── flex 双栏（Block #3 CTA / 各种 hero+button 横排）在窄屏强制换行 ──
	   匹配特征：display:flex + justify-content:space-between + gap:Xpx */
	[style*="display:flex"][style*="justify-content:space-between"][style*="gap:40px"],
	[style*="display:flex"][style*="justify-content:space-between"][style*="gap:48px"],
	[style*="display:flex"][style*="justify-content:space-between"][style*="gap:64px"] {
		flex-wrap: wrap !important;
	}

	/* ── 卡片内 padding 收紧（Hero 表单卡、Contact info 卡、产品卡等） ── */
	[style*="padding:32px 28px"],
	[style*="padding:36px"],
	[style*="padding:32px"]:not([style*="padding:32px 56px"]) {
		padding: 24px !important;
	}

	/* ── 大字 Hero/Display 在窄屏不要太张扬（已用 clamp 但兜底）── */
	h1[style*="font-size:clamp(40px,6vw,72px)"],
	h1[style*="font-size:clamp(36px,4.5vw,58px)"] {
		font-size: clamp(32px, 8vw, 44px) !important;
	}

	/* ── Half-width article image → full-width on mobile ── */
	.bldc-image-half {
		width: 100% !important;
	}
}

@media (max-width: 480px) {
	/* ── 超窄屏（iPhone 等）：padding 再收到 16px ── */
	section[style*="padding:80px 56px"],
	section[style*="padding:72px 56px"],
	section[style*="padding:64px 56px"],
	section[style*="padding:60px 56px"],
	section[style*="padding:56px"],
	section[style*="padding:48px 56px"],
	section[style*="padding:40px 56px"] {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	/* ── 卡片内 padding 再降一档 ── */
	[style*="padding:32px 28px"],
	[style*="padding:36px"],
	[style*="padding:32px"]:not([style*="padding:32px 56px"]) {
		padding: 20px !important;
	}

	/* ── 极小屏 grid gap 再降 ── */
	[style*="grid-template-columns:repeat(3,1fr)"],
	[style*="grid-template-columns:repeat(4,1fr)"],
	[style*="grid-template-columns:repeat(5,1fr)"],
	[style*="grid-template-columns:repeat(6,1fr)"] {
		gap: 18px !important;
	}
}

/* ==========================================================================
   Pump Selector Page (/pump-selector/)
   - Quick Model Search: autocomplete dropdown for typing model names
   - Advanced Selector: filter pumps by head, flow, voltage, customizable
   - Result Cards: matched pumps with specs and datasheet link
   ========================================================================== */

/* ── Container ── */
.pump-selector-container {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  line-height: 1.6;
  max-width: 1200px;
  margin: 60px auto 40px auto;
  padding: 0 20px;
}

/* ── Intro heading ── */
.pump-selector-container .selector-intro {
  text-align: center;
  margin-bottom: 40px;
}
.pump-selector-container .selector-intro h2 {
  font-size: 32px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 12px;
  letter-spacing: -0.5px;
}
.pump-selector-container .selector-intro p {
  font-size: 15px;
  color: #666;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.7;
}

/* ── Quick Model Search section (blue gradient) ── */
.pump-selector-container .quick-search-section {
  background: linear-gradient(135deg, #007cba 0%, #005f9a 100%);
  border-radius: 12px;
  padding: 32px;
  margin-bottom: 32px;
  box-shadow: 0 4px 16px rgba(0, 124, 186, 0.15);
}
.pump-selector-container .quick-search-header {
  color: white;
  margin-bottom: 20px;
}
.pump-selector-container .quick-search-header h3 {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px 0;
  letter-spacing: -0.2px;
  color: #ffffff;
}
.pump-selector-container .quick-search-header p {
  font-size: 14px;
  margin: 0;
  opacity: 0.9;
  color: #ffffff;
}

/* Search input */
.pump-selector-container .model-search-container {
  position: relative;
  max-width: 600px;
}
.pump-selector-container .model-search-input {
  width: 100%;
  padding: 14px 48px 14px 18px;
  font-size: 16px;
  border: none;
  border-radius: 8px;
  background: white;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  transition: all 0.3s ease;
}
.pump-selector-container .model-search-input:focus {
  outline: none;
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}
.pump-selector-container .model-search-input::placeholder {
  color: #a0aec0;
}
.pump-selector-container .search-icon {
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  opacity: 0.5;
  pointer-events: none;
}

/* Autocomplete dropdown */
.pump-selector-container .autocomplete-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 4px;
  background: white;
  border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  max-height: 400px;
  overflow-y: auto;
  z-index: 1000;
  display: none;
}
.pump-selector-container .autocomplete-dropdown.show {
  display: block;
}
.pump-selector-container .autocomplete-item {
  padding: 12px 16px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
  transition: background-color 0.2s ease;
}
.pump-selector-container .autocomplete-item:last-child {
  border-bottom: none;
}
.pump-selector-container .autocomplete-item:hover,
.pump-selector-container .autocomplete-item.selected {
  background-color: #f7f9fb;
}
.pump-selector-container .autocomplete-item-title {
  font-size: 15px;
  font-weight: 600;
  color: #1a1a1a;
  margin-bottom: 4px;
}
.pump-selector-container .autocomplete-item-title mark {
  background-color: #fef3c7;
  color: inherit;
  padding: 0 2px;
  border-radius: 2px;
}
.pump-selector-container .autocomplete-item-details {
  font-size: 13px;
  color: #718096;
  line-height: 1.4;
}
.pump-selector-container .autocomplete-item-details span {
  margin-right: 12px;
  white-space: nowrap;
}
.pump-selector-container .no-results {
  padding: 20px;
  text-align: center;
  color: #718096;
  font-size: 14px;
}

/* ── Section divider ("Advanced Selector") ── */
.pump-selector-container .section-divider {
  text-align: center;
  margin: 36px 0;
  position: relative;
}
.pump-selector-container .section-divider::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, #007cba 20%, #007cba 80%, transparent);
}
.pump-selector-container .section-divider span {
  position: relative;
  background: white;
  padding: 8px 24px;
  color: #007cba;
  font-size: 15px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  font-weight: 600;
  border: 2px solid #007cba;
  border-radius: 20px;
  display: inline-block;
}

/* ── Advanced Selector form ── */
.pump-selector-container .pump-selector-form {
  background: linear-gradient(135deg, #ffffff 0%, #f8fafb 100%);
  border: 1px solid #e1e8ed;
  padding: 32px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  margin-bottom: 40px;
}
.pump-selector-container .form-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 20px;
}
.pump-selector-container .form-group {
  margin-bottom: 0;
}
.pump-selector-container .form-group label {
  display: block;
  font-weight: 500;
  font-size: 14px;
  margin: 0 0 6px 0;
  padding: 0;
  color: #4a5568;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.pump-selector-container .form-group label .label-hint {
  font-size: 12px;
  color: #718096;
  text-transform: none;
  letter-spacing: normal;
  display: block;
  margin: 2px 0 0 0;
  font-weight: 400;
}
.pump-selector-container .form-group input[type="number"],
.pump-selector-container .form-group select {
  width: 100%;
  padding: 12px 14px;
  border: 1.5px solid #e1e8ed;
  border-radius: 8px;
  box-sizing: border-box;
  font-size: 15px;
  background-color: #fff;
  transition: all 0.2s ease;
}
.pump-selector-container .form-group input[type="number"]:focus,
.pump-selector-container .form-group select:focus {
  outline: none;
  border-color: #007cba;
  box-shadow: 0 0 0 3px rgba(0, 124, 186, 0.1);
}
.pump-selector-container .form-group select {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%234a5568' d='M6 9L1 4h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}

/* Advanced options (checkbox) */
.pump-selector-container .advanced-options {
  border-top: 1px solid #e1e8ed;
  margin-top: 24px;
  padding-top: 24px;
}
.pump-selector-container .advanced-options h4 {
  margin: 0 0 16px 0;
  font-size: 14px;
  font-weight: 500;
  color: #4a5568;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.pump-selector-container .checkbox-group {
  display: flex;
  align-items: center;
  gap: 10px;
}
.pump-selector-container .checkbox-group input[type="checkbox"] {
  margin: 0;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  cursor: pointer;
}
.pump-selector-container .checkbox-group label {
  margin: 0;
  font-weight: normal;
  font-size: 15px;
  color: #4a5568;
  cursor: pointer;
  text-transform: none;
  letter-spacing: normal;
}
.pump-selector-container .checkbox-group label a {
  color: #007cba;
  font-weight: 500;
  text-decoration: none;
  border-bottom: 1px dotted #007cba;
}
.pump-selector-container .checkbox-group label a:hover {
  border-bottom-style: solid;
}

/* "Find Matching Pumps" button */
.pump-selector-container #find-pump-btn {
  background: linear-gradient(135deg, #007cba 0%, #005f9a 100%);
  color: white;
  padding: 14px 32px;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  transition: all 0.3s ease;
  margin-top: 24px;
  box-shadow: 0 4px 12px rgba(0, 124, 186, 0.2);
}
.pump-selector-container #find-pump-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0, 124, 186, 0.3);
}
.pump-selector-container #find-pump-btn:active {
  transform: translateY(0);
}

/* ── Result cards ── */
.pump-selector-container #pump-results h3 {
  font-size: 16px;
  font-weight: 500;
  color: #4a5568;
  margin: 32px 0 24px 0;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.pump-selector-container .pump-result-card {
  background: #fff;
  border: 1px solid #e1e8ed;
  border-radius: 10px;
  margin-bottom: 16px;
  overflow: hidden;
  transition: all 0.3s ease;
}
.pump-selector-container .pump-result-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.pump-selector-container .pump-result-card .card-header {
  background: linear-gradient(135deg, #f7f9fb 0%, #ffffff 100%);
  padding: 18px 24px;
  border-bottom: 1px solid #e1e8ed;
}
.pump-selector-container .pump-result-card .card-header a {
  font-size: 18px;
  font-weight: 600;
  color: #1a1a1a;
  text-decoration: none;
  transition: color 0.2s ease;
}
.pump-selector-container .pump-result-card .card-header a:hover {
  color: #007cba;
}
.pump-selector-container .pump-result-card .card-body {
  padding: 24px;
}
.pump-selector-container .pump-result-card .card-body ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.pump-selector-container .pump-result-card .card-body li {
  font-size: 14px;
}
.pump-selector-container .pump-result-card .card-body li strong {
  display: block;
  color: #718096;
  font-weight: 500;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin-bottom: 4px;
}
.pump-selector-container .pump-result-card .card-body li span {
  color: #2d3748;
  font-size: 15px;
  font-weight: 500;
}

/* Card buttons (Datasheet only — Add to Quote removed) */
.pump-selector-container .card-buttons {
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #e1e8ed;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.pump-selector-container .btn-card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 20px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
}
.pump-selector-container .btn-datasheet {
  background-color: #f7f9fb;
  color: #4a5568;
  border: 1.5px solid #cbd5e0;
}
.pump-selector-container .btn-datasheet:hover {
  background-color: #edf2f7;
  border-color: #a0aec0;
  color: #2d3748;
}

/* "View All N Results" button */
.pump-selector-container #show-more-btn {
  background-color: transparent;
  color: #007cba;
  padding: 12px 24px;
  border: 2px solid #007cba;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.3s ease;
}
.pump-selector-container #show-more-btn:hover {
  background-color: #007cba;
  color: white;
  box-shadow: 0 4px 12px rgba(0, 124, 186, 0.2);
}

/* Default "Enter your specs" placeholder text */
.pump-selector-container #pump-results > p {
  text-align: center;
  color: #718096;
  font-size: 15px;
  padding: 40px 20px;
  background: #f7f9fb;
  border-radius: 8px;
  margin: 20px 0;
}

/* ── Mobile responsive ── */
@media (max-width: 768px) {
  .pump-selector-container {
    margin-top: 40px;
  }
  .pump-selector-container .selector-intro h2 {
    font-size: 26px;
  }
  .pump-selector-container .form-grid {
    grid-template-columns: 1fr;
  }
  .pump-selector-container .pump-result-card .card-body ul {
    grid-template-columns: repeat(2, 1fr);
  }
  .pump-selector-container .autocomplete-item-details span {
    display: block;
    margin-right: 0;
    margin-bottom: 2px;
  }
}

/* ==========================================================================
   Pump Series & Pump Single Templates
   - Section 1: hero (2-col: carousel + info)
   - Section 2: specs / docs / models (gray bg, white cards)
   - Contact CTA section at bottom
   ========================================================================== */

/* ── Global font override for templates (zeroy injects mono fonts via design system) ── */
.pump-template-hero,
.pump-template-content,
.pump-contact-cta {
  font-family: -apple-system, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* ── Section 1: Hero (shared by both templates) ── */
.pump-template-hero {
  max-width: 1200px;
  margin: 40px auto;
  padding: 0 20px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}

/* Image carousel */
.pump-carousel {
  position: relative;
  background: #fff;
  border: 1px solid #e1e8ed;
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 1 / 1;
}
.pump-carousel-track {
  display: flex;
  height: 100%;
  transition: transform 0.4s ease;
}
.pump-carousel-track img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  flex-shrink: 0;
  background: #fff;
  padding: 16px;
}
.pump-carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.85);
  border: 1px solid #e1e8ed;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  font-size: 20px;
  line-height: 34px;
  text-align: center;
  cursor: pointer;
  color: #2c3e50;
  transition: background 0.2s, box-shadow 0.2s;
  z-index: 10;
}
.pump-carousel-arrow:hover {
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.pump-carousel-arrow.prev { left: 10px; }
.pump-carousel-arrow.next { right: 10px; }
.pump-carousel-dots {
  position: absolute;
  bottom: 14px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
}
.pump-carousel-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(0,0,0,0.25);
  cursor: pointer;
  transition: background 0.3s;
}
.pump-carousel-dot.active {
  background: #007cba;
}
.pump-carousel-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  background: #f7f9fb;
  border-radius: 10px;
  color: #718096;
  font-size: 15px;
}

/* Hero info column */
.pump-hero-info h1,
.pump-hero-info h2 {
  font-size: 28px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 8px 0;
}
.pump-hero-info .series-description {
  font-size: 15px;
  color: #4a5568;
  line-height: 1.7;
  margin: 0 0 20px 0;
}
.back-to-series {
  display: inline-block;
  color: #007cba;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  margin-bottom: 16px;
  transition: color 0.2s;
}
.back-to-series:hover {
  color: #005f9a;
}
.pump-hero-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}
.pump-hero-buttons .btn-download {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #007cba 0%, #005f9a 100%);
  color: #fff;
  padding: 12px 24px;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.3s;
  box-shadow: 0 4px 12px rgba(0,124,186,0.2);
}
.pump-hero-buttons .btn-download:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(0,124,186,0.3);
}
.pump-hero-buttons .btn-quote {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  color: #007cba;
  padding: 12px 24px;
  border: 2px solid #007cba;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  transition: all 0.3s;
}
.pump-hero-buttons .btn-quote:hover {
  background: #007cba;
  color: #fff;
  box-shadow: 0 4px 12px rgba(0, 124, 186, 0.2);
}

/* ── Section 2: Content area (gray background) ── */
.pump-template-content {
  background: #f7f9fb;
  padding: 48px 0;
}
.pump-template-content-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  flex-direction: column;
  gap: 32px;
}

/* White cards inside Section 2 */
.pump-content-card {
  background: #fff;
  border: 1px solid #e1e8ed;
  border-radius: 10px;
  padding: 32px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
  transition: box-shadow 0.3s;
}
.pump-content-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
}
.pump-content-card h3 {
  font-size: 22px;
  font-weight: 600;
  color: #1a1a1a;
  margin: 0 0 24px 0;
  padding-bottom: 12px;
  border-bottom: 2px solid #e1e8ed;
}

/* Series Specifications grid (Pump Series template) */
/* Series specs table — matches .tech-specs-table style exactly */
.series-specs-table {
  width: 100%;
}
.series-specs-table table {
  width: 100%;
  border-collapse: collapse;
}
.series-specs-table tr {
  border-bottom: 1px solid #e9ecef;
}
.series-specs-table tr:last-child {
  border-bottom: none;
}
.series-specs-table td {
  padding: 16px 20px;
  vertical-align: top;
  font-family: -apple-system, "system-ui", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}
.series-specs-table td:first-child {
  color: #6c757d;
  font-weight: 500;
  width: 40%;
}
.series-specs-table td:last-child {
  color: #2c3e50;
}

/* Technical Specifications table (Pump template) */
.tech-specs-table {
  width: 100%;
}
.tech-specs-table table {
  width: 100%;
  border-collapse: collapse;
}
.tech-specs-table tr {
  border-bottom: 1px solid #e9ecef;
}
.tech-specs-table tr:last-child {
  border-bottom: none;
}
.tech-specs-table td {
  padding: 16px 20px;
  vertical-align: top;
}
.tech-specs-table td:first-child {
  color: #6c757d;
  font-weight: 500;
  width: 40%;
}
.tech-specs-table td:last-child {
  color: #2c3e50;
}

/* Technical Documentation — side by side images */
.tech-docs-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  max-width: 700px;
  margin: 0 auto;
}
.tech-doc-item {
  text-align: center;
}
.tech-doc-item img {
  max-width: 100%;
  height: auto;
  border: 1px solid #e9ecef;
  border-radius: 8px;
}
.tech-doc-item .doc-label {
  margin-top: 10px;
  font-size: 14px;
  font-weight: 500;
  color: #4a5568;
}

/* Model cards grid (shared by [pump_series_models] and [related_pump_models]) */
.models-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.model-card {
  border: 1.5px solid #e9ecef;
  border-radius: 8px;
  padding: 24px;
  text-decoration: none;
  display: block;
  background: #fafafa;
  transition: all 0.3s ease;
}
.model-card:hover {
  border-color: #007cba;
  box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  transform: translateY(-2px);
}
.model-card-title {
  font-size: 18px;
  font-weight: 700;
  color: #1a1a1a;
  margin: 0 0 12px 0;
}
.model-card-specs {
  list-style: none;
  padding: 0;
  margin: 0;
}
.model-card-specs li {
  padding: 5px 0;
  font-size: 14px;
  color: #555;
}
.model-card-specs li strong {
  color: #2c3e50;
  font-weight: 600;
}
.model-card-link {
  display: inline-block;
  margin-top: 14px;
  color: #007cba;
  font-weight: 600;
  font-size: 14px;
}

/* ── Contact CTA Section ── */
.pump-contact-cta {
  background: linear-gradient(135deg, #007cba 0%, #005f9a 100%);
  padding: 56px 20px;
  text-align: center;
  color: rgba(255,255,255,0.85);
}
.pump-contact-cta h3 {
  font-size: 28px;
  font-weight: 600;
  color: #fff;
  margin: 0 0 12px 0;
}
.pump-contact-cta p {
  font-size: 15px;
  color: rgba(255,255,255,0.7);
  margin: 0 0 24px 0;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
}
.pump-contact-cta .contact-form-placeholder {
  max-width: 600px;
  margin: 0 auto;
  padding: 32px;
  background: rgba(255,255,255,0.1);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 8px;
  color: rgba(255,255,255,0.7);
  font-size: 14px;
}

/* ── Mobile responsive for templates ── */
@media (max-width: 768px) {
  .pump-template-hero {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 24px;
  }
  /* series-specs-table uses standard table, no grid override needed */
  /* tech-docs-grid already 1 column on desktop */
  .pump-hero-info h1,
  .pump-hero-info h2 {
    font-size: 24px;
  }
}

/* ==========================================================================
   Contact Form 7 Styles
   --------------------------------------------------------------------------
   对齐 Contact 页 mockup 表单的视觉基准（被用户验收过的"完美表单样式"）：
     - 大写 monospace label（YOUR NAME / YOUR EMAIL / YOUR MESSAGE）
       11px / letter-spacing:0.12em / color:#6B7A88
     - 输入框：白底 + 1.5px #E3E8EE 边 + 4px 圆角 + padding 12px 16px + 15px 字
     - Focus 态：边框换成 accent cyan #1CA0C4
     - 提交按钮：cyan + 大写 + letter-spacing:0.08em + 内嵌 → SVG 箭头
       (CSS background-image 实现，因为 <input type=submit> 不支持伪元素/子节点)

   依赖：functions.php 中已禁用 wpcf7_autop（add_filter('wpcf7_autop_or_not','__return_false')），
   所以表单模板用 <div class="wpcf7-row"> 自包字段，<div class="wpcf7-actions"> 自包按钮。
   不再有任何 CF7 自动注入的 <p> 或 <br />。

   作用域：.wpcf7-form（任何 CF7 表单自动继承，不用挨个页面 override）。
   注：html_id="contact-form-zjf" 是 GTM 追踪 ID，与样式无关。
   ========================================================================== */

.wpcf7-form {
	line-height: 1.5;
}

/* 每个字段行（label + input/textarea）— 行间距 14px */
.wpcf7-form .wpcf7-row {
	margin-bottom: 14px;
}

/* Submit 区 — message 字段下方紧贴 14px，按钮自身不再叠 margin
   position:relative 给 spinner 提供 absolute 定位上下文 */
.wpcf7-form .wpcf7-actions {
	margin-top: 14px;
	position: relative;
}

/* 大写 monospace label（mockup 标志性元素，纯 system font stack 无下载） */
.wpcf7-form .wpcf7-label {
	display: block;
	font-family: ui-monospace, "SF Mono", Menlo, Consolas, "Courier New", monospace;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #6B7A88;
	margin-bottom: 6px;
}

/* 文本类输入框统一风格（text / email / tel / url / number / date / select） */
.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-tel,
.wpcf7-form-control.wpcf7-url,
.wpcf7-form-control.wpcf7-number,
.wpcf7-form-control.wpcf7-date,
.wpcf7-form-control.wpcf7-textarea,
.wpcf7-form-control.wpcf7-select {
	width: 100%;
	padding: 12px 16px;
	border: 1.5px solid #E3E8EE;
	border-radius: 4px;
	background: #FFFFFF;
	color: #0F2533;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
	outline: none;
	transition: border-color 0.2s;
	box-sizing: border-box;
}

/* Placeholder 文字颜色 — 比正文浅、但仍清晰可读 */
.wpcf7-form-control::placeholder {
	color: #6B7A88;
}

/* Focus 态：边框换成 accent cyan — 呼应设计系统 */
.wpcf7-form-control.wpcf7-text:focus,
.wpcf7-form-control.wpcf7-email:focus,
.wpcf7-form-control.wpcf7-tel:focus,
.wpcf7-form-control.wpcf7-url:focus,
.wpcf7-form-control.wpcf7-number:focus,
.wpcf7-form-control.wpcf7-date:focus,
.wpcf7-form-control.wpcf7-textarea:focus,
.wpcf7-form-control.wpcf7-select:focus {
	border-color: #1CA0C4;
}

/* Textarea 特有：6 行起步 + 行高 + 只允许纵向拉伸（mockup rows="6"） */
.wpcf7-form-control.wpcf7-textarea {
	height: 168px;
	min-height: 90px;
	line-height: 1.6;
	resize: vertical;
}

/* 提交按钮 — cyan + 大写 + 内嵌 → 箭头（mockup 视觉规格）
   注：<input type=submit> 不支持伪元素，用 background-image 嵌入 SVG 箭头 */
.wpcf7-form .wpcf7-submit {
	width: 100%;
	padding: 15px 50px 15px 26px;
	margin: 0;
	background-color: #1CA0C4;
	background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M2 8h12M9 4l4 4-4 4' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 18px center;
	background-size: 16px 16px;
	color: #FFFFFF;
	border: none;
	border-radius: 4px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 4px 14px -4px rgba(28, 160, 196, 0.55);
	transition: background-color 0.2s, transform 0.15s, box-shadow 0.2s;
}

.wpcf7-form .wpcf7-submit:hover {
	background-color: #0B5E8F;
	box-shadow: 0 6px 20px -4px rgba(11, 94, 143, 0.6);
	transform: translateY(-1px);
}

/* CF7 spinner —— CF7 自带 visibility:hidden + display:inline-block + width/height:24px，
   表面看不见但仍占布局，被 submit 按钮 (width:100%) 挤到下一行多出约 24px 空白。
   策略：默认彻底 display:none，提交进行时改 absolute 浮在按钮右侧。 */
.wpcf7-form .wpcf7-spinner {
	display: none;
}

.wpcf7-form.submitting .wpcf7-spinner {
	display: inline-block;
	visibility: visible;
	position: absolute;
	top: 50%;
	right: 18px;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	margin: 0;
	background-color: rgba(255, 255, 255, 0.85);
}

/* 校验失败提示 — 淡化为小号红字，不喧宾夺主 */
.wpcf7-not-valid-tip {
	color: #B91C1C;
	font-size: 12px;
	margin-top: 4px;
	display: block;
}

.wpcf7-form-control.wpcf7-not-valid {
	border-color: #B91C1C;
}

/* 提交后的反馈条（成功/失败/validation summary） */
.wpcf7-response-output {
	margin: 14px 0 0 !important;
	padding: 12px 14px !important;
	border-radius: 4px !important;
	font-size: 13px;
	line-height: 1.5;
}

/* ============================================================
   Video Modal (driven by assets/js/video-modal.js)
   触发：[data-youtube-modal="VIDEO_ID"] 元素 click → 打开
   关闭：点 backdrop / ESC / 点 × — 任一即可
   设计：黑色半透 backdrop + 居中容器 + 16:9 比例 iframe
   ============================================================ */
.video-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.82);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	animation: video-modal-fade 0.18s ease-out;
}

@keyframes video-modal-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.video-modal-frame {
	position: relative;
	width: 100%;
	max-width: 960px;
	background: #000;
	border-radius: 8px;
	overflow: visible;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
}

.video-modal-aspect {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	background: #000;
	border-radius: 8px;
	overflow: hidden;
}

.video-modal-aspect iframe {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border: 0;
	display: block;
}

.video-modal-close {
	position: absolute;
	top: -44px;
	right: 0;
	width: 36px;
	height: 36px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.12);
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	color: #ffffff;
	cursor: pointer;
	transition: background 0.15s, transform 0.15s;
}

.video-modal-close:hover,
.video-modal-close:focus-visible {
	background: rgba(255, 255, 255, 0.22);
	transform: scale(1.05);
	outline: none;
}

@media (max-width: 768px) {
	.video-modal-backdrop { padding: 16px; }
	.video-modal-close {
		top: 8px;
		right: 8px;
		background: rgba(0, 0, 0, 0.55);
		border-color: rgba(255, 255, 255, 0.4);
	}
}

/* ============================================================
   Gallery Modal (driven by assets/js/gallery-modal.js)
   触发：[data-gallery-images="url1|url2|url3"] 元素 click → 打开
   关闭：点 backdrop / ESC / 点 ×
   切换：← → 键 / 左右箭头按钮 / 底部圆点
   设计：白色卡片 + 居中图片（max aspect 4:3）+ 圆点指示器
   ============================================================ */
.gallery-modal-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.82);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	animation: gallery-modal-fade 0.18s ease-out;
}

@keyframes gallery-modal-fade {
	from { opacity: 0; }
	to   { opacity: 1; }
}

.gallery-modal-frame {
	position: relative;
	width: 100%;
	max-width: 960px;
	background: #FFFFFF;
	border-radius: 12px;
	padding: 48px 64px 32px;
	box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
}

.gallery-modal-stage {
	width: 100%;
	aspect-ratio: 4 / 3;
	display: flex;
	align-items: center;
	justify-content: center;
	background: #FFFFFF;
	border-radius: 8px;
	overflow: hidden;
}

.gallery-modal-img {
	max-width: 100%;
	max-height: 100%;
	width: auto;
	height: auto;
	object-fit: contain;
	display: block;
}

.gallery-modal-close {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 36px;
	height: 36px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	color: #062A42;
	cursor: pointer;
	border-radius: 50%;
	transition: background 0.15s;
}

.gallery-modal-close:hover,
.gallery-modal-close:focus-visible {
	background: rgba(6, 42, 66, 0.08);
	outline: none;
}

.gallery-modal-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 42px;
	height: 42px;
	padding: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(255, 255, 255, 0.96);
	border: 1px solid #E3E8EE;
	color: #062A42;
	cursor: pointer;
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(6, 42, 66, 0.12);
	transition: transform 0.15s, box-shadow 0.15s;
}

.gallery-modal-nav:hover,
.gallery-modal-nav:focus-visible {
	transform: translateY(-50%) scale(1.05);
	box-shadow: 0 6px 18px rgba(6, 42, 66, 0.18);
	outline: none;
}

.gallery-modal-prev { left: 14px; }
.gallery-modal-next { right: 14px; }

.gallery-modal-dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 20px;
}

.gallery-modal-dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border-radius: 50%;
	background: #D5DDE5;
	border: 0;
	cursor: pointer;
	transition: background 0.15s, transform 0.15s;
}

.gallery-modal-dot.is-active {
	background: #1CA0C4;
	transform: scale(1.25);
}

.gallery-modal-dot:hover,
.gallery-modal-dot:focus-visible {
	background: #1CA0C4;
	outline: none;
}

@media (max-width: 768px) {
	.gallery-modal-backdrop { padding: 12px; }
	.gallery-modal-frame { padding: 44px 16px 26px; border-radius: 10px; }
	.gallery-modal-nav { width: 38px; height: 38px; }
	.gallery-modal-prev { left: 6px; }
	.gallery-modal-next { right: 6px; }
}

/* ==========================================================================
   .bldc-table — 全站标准数据表格（取代 TablePress）
   --------------------------------------------------------------------------
   视觉锚点（与 971 "How Important Is Circulation Pump" 对比表对齐）：
     - 外壳：圆角 8px + 1px #E3E8EE 边框 + 柔软投影 → 卡片感
     - 表头：dark navy #062A42 底 + cyan #5BC4DE uppercase tracked 文字
     - 表体：白底 + #E3E8EE 网格线 + 第一列深字加粗 + 其他列灰字居中
     - 字体：system-ui（与正文一致），不再是 monospace
     - 强调列：thead th 加 class="accent" → 该列表头变 amber #FFB547

   使用：
     <div class="bldc-table-wrap">
       <table class="bldc-table">
         <caption>可选标题</caption>
         <thead><tr><th>Features</th><th>AC Pumps</th><th class="accent">Brushless DC Pumps</th></tr></thead>
         <tbody><tr><td>Power Source</td><td>AC</td><td>DC</td></tr></tbody>
       </table>
     </div>

   修饰类（叠加在 .bldc-table 上，可组合）：
     .bldc-table--striped     偶数行浅灰底
     .bldc-table--compact     紧凑行高（规格密集表）
     .bldc-table--first-col-label  第一列浅灰底 + 灰字（无表头的参数表）

   单元格修饰：
     <th class="accent">      该列表头变琥珀色（用于"我们家产品列"这种突出胜出列）
     <td class="num"> / <th class="num">  该列右对齐 + 等宽数字（用于流量/扬程/数值列）

   .bldc-table-wrap 提供窄屏横向滚动；不要把 .bldc-table 直接裸放到容器里，
   否则 5+ 列的表格在 480px 屏会撑破布局。
   ========================================================================== */

.bldc-table-wrap {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: 8px;
	border: 1px solid #E3E8EE;
	background: #ffffff;
	box-shadow: 0 2px 8px -2px rgba(15, 37, 51, 0.08);
}

.bldc-table {
	width: 100%;
	min-width: 560px;
	border-collapse: collapse;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 14px;
	line-height: 1.55;
	color: #0F2533;
	background: #ffffff;
}

.bldc-table caption {
	caption-side: top;
	text-align: left;
	padding: 14px 18px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: #6c757d;
	background: #F8FAFB;
	border-bottom: 1px solid #E3E8EE;
}

.bldc-table thead th {
	padding: 14px 16px;
	text-align: center;
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: #5BC4DE;
	background: #062A42;
	border-right: 1px solid rgba(91, 196, 222, 0.2);
	white-space: nowrap;
}

.bldc-table thead th:first-child {
	text-align: left;
	padding-left: 18px;
}

.bldc-table thead th:last-child {
	border-right: none;
}

/* 强调列（"我们家产品"突出胜出列）— amber 文字 + 加粗 */
.bldc-table thead th.accent {
	color: #FFB547;
	font-weight: 700;
}

/* body 单元格强调（同列）— navy 加粗，配合 thead .accent 形成完整列高亮 */
.bldc-table tbody td.accent {
	color: #0B5E8F;
	font-weight: 600;
}

.bldc-table tbody td {
	padding: 11px 14px;
	text-align: center;
	color: #6B7A88;
	border-right: 1px solid #E3E8EE;
	border-bottom: 1px solid #E3E8EE;
	vertical-align: top;
}

.bldc-table tbody td:first-child {
	text-align: left;
	padding-left: 18px;
	color: #0F2533;
	font-weight: 500;
}

.bldc-table tbody td:last-child {
	border-right: none;
}

.bldc-table tbody tr:last-child td {
	border-bottom: none;
}

/* 数字列右对齐（手动加 .num 到 td/th 上 — 覆盖默认居中） */
.bldc-table .num {
	text-align: right;
	font-variant-numeric: tabular-nums;
}

/* 斑马纹（可选）— 低调浅灰，不抢网格线视觉 */
.bldc-table--striped tbody tr:nth-child(even) td {
	background: #FAFBFC;
}

/* 紧凑行高 */
.bldc-table--compact thead th { padding: 11px 12px; }
.bldc-table--compact tbody td { padding: 9px 12px; font-size: 13px; }

/* 第一列灰 label 风（无表头的参数表，常配合无 thead 用）*/
.bldc-table--first-col-label tbody td:first-child {
	color: #6c757d;
	font-weight: 500;
	width: 38%;
	background: #F8FAFB;
	text-align: left;
}

@media (max-width: 768px) {
	.bldc-table { font-size: 13px; min-width: 520px; }
	.bldc-table thead th { padding: 11px 12px; font-size: 11px; }
	.bldc-table tbody td { padding: 9px 11px; }
	.bldc-table thead th:first-child,
	.bldc-table tbody td:first-child { padding-left: 14px; }
}

/* ==========================================================================
   .bldc-toc — 全站标准目录（取代 LuckyWP TOC 插件）
   --------------------------------------------------------------------------
   使用：
     在文章正文外层加 class="bldc-article"，TOC 容器写：
       <nav class="bldc-toc"
            data-toc-scope=".bldc-article"
            data-toc-levels="h2,h3"
            aria-label="Table of Contents">
       </nav>
     toc.js 会扫描 scope 内的 h2/h3 自动生成嵌套目录 + scrollspy 高亮。

   data-toc-scope    必填  CSS 选择器，扫描标题的范围（默认 .bldc-article）
   data-toc-levels   可选  逗号分隔的标题级别，默认 "h2,h3"
   data-toc-title    可选  目录顶部标题，默认 "On this page"

   桌面端可选 sticky 用法：把 .bldc-toc 放在双栏布局的左/右窄列里，
   父列加 inline style position:sticky; top:96px; align-self:start;
   ========================================================================== */

.bldc-toc {
	display: block;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	background: #F8FAFB;
	border: 1px solid #e1e8ed;
	border-left: 3px solid #1CA0C4;
	border-radius: 6px;
	padding: 24px 28px 24px 40px;
	margin: 0 0 32px;
	font-size: 15px;
	line-height: 1.55;
}

.bldc-toc__title {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #1CA0C4;
	margin: 0 0 12px;
}

.bldc-toc__list,
.bldc-toc__list ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* Top-level CSS counter (only top-level items get "1." "2." prefixes; nested ul stays unnumbered) */
.bldc-toc__list {
	counter-reset: bldc-toc-num;
}

.bldc-toc__list > li {
	counter-increment: bldc-toc-num;
	margin: 0;
	padding: 0;
}

.bldc-toc__list ul li {
	margin: 0;
	padding: 0;
}

.bldc-toc__list a {
	display: block;
	padding: 5px 0 5px 12px;
	color: #2c3e50;
	text-decoration: none;
	border-left: 2px solid transparent;
	margin-left: -14px;
	padding-left: 12px;
	transition: color 0.15s, border-color 0.15s, background 0.15s;
}

/* Top-level item — show counter "1." "2." in cyan, reserve room via increased padding-left */
.bldc-toc__list > li > a {
	position: relative;
	padding-left: 36px;
}

.bldc-toc__list > li > a::before {
	content: counter(bldc-toc-num) ".";
	position: absolute;
	left: 12px;
	top: 5px;
	color: #1CA0C4;
	font-weight: 700;
	font-variant-numeric: tabular-nums;
	min-width: 18px;
}

.bldc-toc__list > li > a.is-active::before {
	color: #062A42;
}

.bldc-toc__list a:hover {
	color: #1CA0C4;
	border-left-color: #5BC4DE;
}

.bldc-toc__list a.is-active {
	color: #062A42;
	font-weight: 600;
	border-left-color: #1CA0C4;
	background: #F2FAFC;
}

/* 二级嵌套（h3） */
.bldc-toc__list ul {
	margin-left: 16px;
	border-left: 1px dashed #d5dde5;
	padding-left: 0;
}

.bldc-toc__list ul a {
	font-size: 14px;
	color: #6c757d;
	padding-left: 14px;
	margin-left: 0;
}

.bldc-toc__list ul a:hover {
	color: #1CA0C4;
}

.bldc-toc__list ul a.is-active {
	color: #062A42;
}

/* 可折叠（移动端友好）：toc.js 会在窄屏给容器加 .is-collapsible / .is-open */
.bldc-toc__toggle {
	display: none;
}

.bldc-toc.is-collapsible .bldc-toc__toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: transparent;
	border: none;
	color: #1CA0C4;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	cursor: pointer;
	padding: 0;
	margin-left: 8px;
}

.bldc-toc.is-collapsible .bldc-toc__list {
	display: none;
}

.bldc-toc.is-collapsible.is-open .bldc-toc__list {
	display: block;
	margin-top: 14px;
}

.bldc-toc.is-collapsible .bldc-toc__toggle::after {
	content: "▾";
	transition: transform 0.15s;
}

.bldc-toc.is-collapsible.is-open .bldc-toc__toggle::after {
	transform: rotate(180deg);
}

@media (max-width: 768px) {
	.bldc-toc { padding: 18px 18px 18px 28px; margin-bottom: 24px; }
	.bldc-toc__list a { padding: 6px 0 6px 12px; }
	.bldc-toc__list > li > a { padding-left: 32px; }
}

/* ==========================================================================
   .bldc-hotspot — Block #12 Image Hotspot

   Why: vanilla replacement for Elementor JetTricks Hotspot widget. Authors
        place transparent dots over an image at percentage coordinates;
        hover/click reveals a tooltip with parts info.

   Markup contract (post_content):
     <figure class="bldc-hotspot-figure" data-bldc-hotspot>
       <img src="..." alt="..." />
       <button type="button" class="bldc-hotspot-dot"
               data-hotspot-x="47" data-hotspot-y="49"
               aria-label="Rotor Fan">
         <span class="bldc-hotspot-tooltip">
           <strong>Rotor Fan</strong> — body text...
         </span>
       </button>
       <!-- ... more dots ... -->
     </figure>

   JS at assets/js/hotspot.js sets data-side-x (left|right) and data-side-y
   (top|bottom) on each dot based on coordinates so the tooltip emerges
   away from the figure edge. Pure CSS handles hover; click toggles
   .is-open for sticky display (mobile-friendly).
   ========================================================================== */

.bldc-hotspot-figure {
	position: relative;
	display: block;
	margin: 0 auto;
	max-width: 800px;
	line-height: 0;        /* avoid stray text-node baseline */
}

.bldc-hotspot-figure > img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 8px;
}

/* The clickable dot (positioned by JS via inline left/top %).
   3-color hollow target: amber #FFB547 ring + dual-side halo (white outer + navy inner outline)
   + center white pinpoint, transparent middle area. The user can SEE THROUGH the dot to read
   the pump structure underneath; the bright amber ring + dual halo + pulse animation grab
   attention without blocking the image. Works on dark, light, metallic, and colored photos. */
.bldc-hotspot-dot {
	position: absolute;
	width: 22px;
	height: 22px;
	margin: 0;
	padding: 0;
	border: 2.5px solid #FFB547;
	border-radius: 50%;
	background: transparent;
	box-shadow:
		0 0 0 1.5px rgba(6, 42, 66, 0.85),                    /* navy thin outline — pops on light bg */
		0 0 0 4px rgba(255, 255, 255, 0.4),                   /* white outer halo — pops on dark bg */
		0 0 14px 3px rgba(255, 181, 71, 0.55);                /* amber glow — strengthens "look at me" */
	cursor: pointer;
	transform: translate(-50%, -50%);
	transition: transform 0.2s, box-shadow 0.2s, border-width 0.2s;
	z-index: 2;
}

/* Center pinpoint — small white dot for "this exact spot" semantic; transparent ring around it */
.bldc-hotspot-dot::after {
	content: "";
	position: absolute;
	inset: 7px;
	background: #FFFFFF;
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgba(6, 42, 66, 0.6);
	pointer-events: none;
}

.bldc-hotspot-dot:focus {
	outline: 0;
}

.bldc-hotspot-dot:focus-visible {
	outline: 3px solid #1CA0C4;
	outline-offset: 4px;
}

/* Pulse ring (amber to match ring) */
.bldc-hotspot-dot::before {
	content: "";
	position: absolute;
	inset: -8px;
	border: 2px solid rgba(255, 181, 71, 0.75);
	border-radius: 50%;
	animation: bldc-hotspot-pulse 1.6s ease-out infinite;
	pointer-events: none;
}

@keyframes bldc-hotspot-pulse {
	0%   { transform: scale(0.7); opacity: 1; }
	100% { transform: scale(1.7); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.bldc-hotspot-dot::before { animation: none; opacity: 0; }
	.bldc-hotspot-dot { transition: none; }
}

.bldc-hotspot-dot:hover,
.bldc-hotspot-dot.is-open {
	transform: translate(-50%, -50%) scale(1.15);
	border-width: 3px;
	box-shadow:
		0 0 0 1.5px rgba(6, 42, 66, 1),
		0 0 0 5px rgba(255, 255, 255, 0.6),
		0 0 22px 6px rgba(255, 181, 71, 0.75);
}

/* Tooltip card (hidden by default, shown on hover or .is-open) */
.bldc-hotspot-tooltip {
	position: absolute;
	display: block;
	width: max-content;
	max-width: 280px;
	padding: 12px 14px;
	background: #FFFFFF;
	color: #0F2533;
	font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.55;
	letter-spacing: 0;
	text-align: left;
	white-space: normal;
	border: 1px solid #E3E8EE;
	border-radius: 8px;
	box-shadow: 0 12px 28px -10px rgba(6, 42, 66, 0.28), 0 2px 4px rgba(6, 42, 66, 0.08);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity 0.18s, transform 0.18s;
	z-index: 3;
}

.bldc-hotspot-tooltip strong {
	color: #062A42;
	font-weight: 600;
}

/* Tooltip side placement (set by JS based on dot x/y) */
.bldc-hotspot-dot[data-side-x="right"] .bldc-hotspot-tooltip {
	left: 28px;
	transform: translateY(-50%) translateX(-6px);
}
.bldc-hotspot-dot[data-side-x="right"]:hover .bldc-hotspot-tooltip,
.bldc-hotspot-dot[data-side-x="right"].is-open .bldc-hotspot-tooltip {
	transform: translateY(-50%) translateX(0);
}

.bldc-hotspot-dot[data-side-x="left"] .bldc-hotspot-tooltip {
	right: 28px;
	transform: translateY(-50%) translateX(6px);
}
.bldc-hotspot-dot[data-side-x="left"]:hover .bldc-hotspot-tooltip,
.bldc-hotspot-dot[data-side-x="left"].is-open .bldc-hotspot-tooltip {
	transform: translateY(-50%) translateX(0);
}

/* Vertical baseline — anchor tooltip vertical center to dot center.
   For dots near top edge, push tooltip downward so it doesn't clip. */
.bldc-hotspot-dot[data-side-y="bottom"] .bldc-hotspot-tooltip {
	top: 0;
}
.bldc-hotspot-dot[data-side-y="top"] .bldc-hotspot-tooltip {
	bottom: 0;
	top: auto;
	transform: translateY(50%) translateX(var(--bldc-hotspot-tx, 0));
}

/* Show on hover (desktop fine pointer) and on .is-open (click-toggle) */
.bldc-hotspot-dot:hover .bldc-hotspot-tooltip,
.bldc-hotspot-dot:focus-visible .bldc-hotspot-tooltip,
.bldc-hotspot-dot.is-open .bldc-hotspot-tooltip {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}

/* Tooltip arrow */
.bldc-hotspot-tooltip::before {
	content: "";
	position: absolute;
	width: 10px;
	height: 10px;
	background: #FFFFFF;
	border: 1px solid #E3E8EE;
	transform: rotate(45deg);
}

.bldc-hotspot-dot[data-side-x="right"] .bldc-hotspot-tooltip::before {
	left: -6px;
	top: 50%;
	margin-top: -5px;
	border-right: 0;
	border-top: 0;
}
.bldc-hotspot-dot[data-side-x="left"] .bldc-hotspot-tooltip::before {
	right: -6px;
	top: 50%;
	margin-top: -5px;
	border-left: 0;
	border-bottom: 0;
}

/* Mobile: ≤480px — tooltip becomes bottom drawer, full image width.
   At very narrow widths, edge-flipping isn't enough; force a docked card below the image. */
@media (max-width: 480px) {
	.bldc-hotspot-tooltip {
		position: fixed;
		left: 16px;
		right: 16px;
		bottom: 16px;
		top: auto !important;
		max-width: none;
		width: auto;
		transform: translateY(8px) !important;
		box-shadow: 0 -8px 28px -8px rgba(6, 42, 66, 0.35);
	}
	.bldc-hotspot-dot.is-open .bldc-hotspot-tooltip,
	.bldc-hotspot-dot:focus-visible .bldc-hotspot-tooltip {
		transform: translateY(0) !important;
	}
	.bldc-hotspot-tooltip::before { display: none; }
	/* Hide hover-only tooltip on touch — only .is-open shows it */
	.bldc-hotspot-dot:hover .bldc-hotspot-tooltip { opacity: 0; visibility: hidden; }
}

/* ============================================================
   Blog archive (post 1294 zeroy_template, type=blog)
   Replaces inline-style font stacks that broke PHP quote nesting.
   ============================================================ */
.archive-title-h1 {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: clamp(26px, 4vw, 38px);
	font-weight: 600;
	color: #062A42;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 0 0 12px;
}
.archive-description-p {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 15px;
	color: #6B7A88;
	line-height: 1.6;
	margin: 0;
}

/* ==========================================================================
   Block #12 — hotspot figure decoration helpers (site-wide)
   --------------------------------------------------------------------------
   First user: /support/the-structure-of-bldc-pump/ (post 1019).
   Promoted from per-page zeroY compiled CSS so any page using the
   <figure class="bldc-hotspot-figure"> markup can wrap it with corner-marks
   + annot-line + chip-row. Font stacks normalised to system sans (was
   ui-monospace / JetBrains Mono, banned by font strategy memory).
   ========================================================================== */
.corner-marks { position: relative; }
.corner-marks::before,
.corner-marks::after,
.corner-marks .cm-br,
.corner-marks .cm-bl {
	content: "";
	position: absolute;
	width: 16px;
	height: 16px;
	border-color: #1CA0C4;
	border-style: solid;
	border-width: 0;
	pointer-events: none;
}
/* !important is necessary: zeroY page-local compiled CSS occasionally emits
   the .corner-marks rule block 2-3 times when the class is reused on a single
   page (1049 = 3x: hero, hotspot, certifications), and its later repetitions
   reset border-width to 0 without restoring all four corner specifics. The
   !important here ensures every corner remains visible regardless of any
   downstream cascade that re-emits the base rule. */
.corner-marks::before { top: 10px    !important; left: 10px   !important; border-top-width: 1.5px    !important; border-left-width: 1.5px  !important; }
.corner-marks::after  { top: 10px    !important; right: 10px  !important; border-top-width: 1.5px    !important; border-right-width: 1.5px !important; }
.corner-marks .cm-br  { bottom: 10px !important; right: 10px  !important; border-bottom-width: 1.5px !important; border-right-width: 1.5px !important; }
.corner-marks .cm-bl  { bottom: 10px !important; left: 10px   !important; border-bottom-width: 1.5px !important; border-left-width: 1.5px  !important; }

.annot-line {
	display: flex;
	align-items: center;
	gap: 0;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 11px;
	color: #1CA0C4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	white-space: nowrap;
}
.annot-line::before,
.annot-line::after {
	content: "";
	display: block;
	height: 1px;
	background: #1CA0C4;
	flex: 1;
	min-width: 18px;
}
.annot-line::before { margin-right: 8px; }
.annot-line::after  { margin-left: 8px; }

.chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 4px 9px;
	border-radius: 999px;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}
.chip-brand   { background: #E6F4F9; color: #0B5E8F; border: 1px solid rgba(28, 160, 196, 0.25); }
.chip-neutral { background: #F6F8FA; color: #0F2533; border: 1px solid #E3E8EE; }

/* ============================================================
   Pump Archive (/pump/) — zeroy_template post 1358
   Session 23 — 2026-05-11
   ============================================================ */
.pump-archive-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}
.pump-card {
	display: flex;
	flex-direction: column;
	background: #fff;
	border-radius: 8px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
	transition: transform 0.2s, box-shadow 0.2s;
}
.pump-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(6, 42, 66, 0.10);
}
.pump-card-image {
	aspect-ratio: 1 / 1;
	background: #F6F8FA;
	overflow: hidden;
}
.pump-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.pump-card-image-placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #94A3B8;
	font-size: 13px;
}
.pump-card-body {
	padding: 20px;
	display: flex;
	flex-direction: column;
	flex: 1;
}
.pump-card-title {
	font-size: 18px;
	font-weight: 700;
	color: #062A42;
	margin: 0 0 14px;
	line-height: 1.3;
}
.pump-card-specs {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 6px 14px;
	font-size: 13px;
	color: #475569;
	margin: 0 0 18px;
}
.pump-card-specs dt { white-space: nowrap; }
.pump-card-specs dd {
	margin: 0;
	text-align: right;
	font-weight: 600;
	color: #062A42;
	white-space: nowrap;
}
.pump-card-cta {
	margin-top: auto;
	align-self: flex-start;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #1CA0C4;
	color: #fff;
	padding: 9px 16px;
	border-radius: 6px;
	font-size: 13px;
	font-weight: 600;
}
.pump-archive-pagination {
	margin-top: 48px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.pump-archive-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	background: #fff;
	color: #062A42;
	text-decoration: none;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
	transition: background 0.15s, color 0.15s;
}
.pump-archive-pagination .page-numbers:hover { background: #E2E8F0; }
.pump-archive-pagination .page-numbers.current,
.pump-archive-pagination .page-numbers.current:hover {
	background: #1CA0C4;
	color: #fff;
}
.pump-archive-pagination .page-numbers.dots {
	background: transparent;
	box-shadow: none;
}
@media (max-width: 768px) {
	.pump-archive-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
}
@media (max-width: 480px) {
	.pump-archive-grid { grid-template-columns: 1fr; }
}
