/*
Theme Name: PumpCalcs
Theme URI: https://pumpcalcs.com/
Description: Child theme of WikiPress for PumpCalcs.com — a free pump engineering reference and calculator library. Reskins the WikiPress encyclopedia layout with an industrial "instrument panel" identity: a restrained steel-blue palette, tabular-figure numerals for calculator output, dedicated formula / warning / cavitation-risk callouts, engineering-grade reference tables, print-ready calculator and data pages, and a non-affiliation footer notice. Tools first, encyclopedia behind.
Author: PumpCalcs
Author URI: https://pumpcalcs.com/
Template: wikipress
Version: 1.1.1
Requires at least: 5.8
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: pumpcalcs
Tags: education, two-columns, left-sidebar, right-sidebar, custom-colors, custom-logo, custom-menu, editor-style, featured-images, translation-ready, block-styles, wide-blocks

PumpCalcs is an independent reference site. It is not affiliated with, endorsed by,
or connected to Pumps & Systems magazine, Cahaba Media Group, or any pump
manufacturer or distributor.

PumpCalcs child theme, (C) 2026 PumpCalcs.
Built on WikiPress (C) WikiPress Team, distributed under the GNU GPL v2 or later.
*/

/* ============================================================
   PumpCalcs — WikiPress child theme
   Loaded AFTER the parent assets/css/main.css (see functions.php),
   so these rules override the parent by source order.

   Design register (project blueprint §14.4): "instrument panel,
   not consumer app." Precise, dense, legible. One strong accent
   for results/active states; amber for warnings; red reserved for
   validation errors and cavitation-risk flags.
   ============================================================ */

/* ------------------------------------------------------------
   1. Brand tokens — re-point the parent's own custom properties.
   Redefining the --wikipress-* variables rebrands links, buttons,
   headings, borders, focus rings, etc. across the entire parent
   stylesheet in one place.
   ------------------------------------------------------------ */
:root {
	/* Industrial steel-blue, deliberately distinct from Wikipedia blue
	   (#0645ad) and from any finance/crypto green. */
	--wikipress-primary: #12507f;
	--wikipress-primary-hover: #0d3c61;

	--wikipress-heading: #0b2a43;   /* instrument navy */
	--wikipress-text: #1c2733;      /* dark slate */
	--wikipress-text-light: #586573;

	--wikipress-border: #9fb0bf;
	--wikipress-border-light: #e2e8ee;

	--wikipress-bg: #ffffff;
	--wikipress-bg-off: #f4f6f9;    /* cool panel gray */
	--wikipress-accent: #eef3f7;

	/* --------------------------------------------------------
	   PumpCalcs engineering / calculator tokens (new namespace).
	   -------------------------------------------------------- */
	--pc-navy: #0b2a43;
	--pc-primary: #12507f;
	--pc-primary-hover: #0d3c61;

	/* Single strong accent for results & active states (reads as
	   water / hydraulics, not finance). */
	--pc-accent: #0e7490;
	--pc-accent-hover: #0b596f;
	--pc-accent-soft: #e2f1f5;

	/* Status colors. Amber = advisory/warning. Red = validation
	   error or cavitation-risk flag ONLY. Green used sparingly for
	   "verified" affordances, never for emphasis. */
	--pc-warning: #b45309;
	--pc-warning-bg: #fef4e6;
	--pc-warning-border: #f0c48a;

	--pc-danger: #b91c1c;
	--pc-danger-bg: #fdecec;
	--pc-danger-border: #f0b4b4;

	--pc-ok: #15803d;
	--pc-ok-bg: #e9f6ee;
	--pc-ok-border: #a7d9ba;

	/* Numeric / code stack — tabular figures so results align in
	   columns like an instrument readout. */
	--pc-mono: ui-monospace, "SFMono-Regular", "Cascadia Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Consolas, "Liberation Mono", monospace;

	--pc-radius: 6px;
	--pc-radius-sm: 4px;
	--pc-shadow: 0 1px 2px rgba(11, 42, 67, 0.06), 0 2px 8px rgba(11, 42, 67, 0.06);
}

/* ------------------------------------------------------------
   2. Numeric discipline — tabular figures everywhere numbers
   need to line up: data tables, infobox values, calculator output.
   ------------------------------------------------------------ */
table td,
table th,
.infobox-table td,
.infobox-table th,
.pc-num,
.pc-calc output,
.pc-calc input[type="number"],
.pc-calc .pc-result-value {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
}

/* ------------------------------------------------------------
   3. Header / brand identity
   ------------------------------------------------------------ */
.site-header {
	border-bottom: 2px solid var(--pc-navy);
}

/* Wordmark: plural, industrial, unmistakable from the first screen
   (blueprint §4.3 anti-confusion guardrail). */
.site-title a {
	font-family: var(--wikipress-font-ui);
	font-weight: 700;
	letter-spacing: -0.01em;
	color: var(--pc-navy);
}
.site-title a:hover,
.site-title a:focus {
	color: var(--pc-primary);
	text-decoration: none;
}

.site-description {
	font-family: var(--wikipress-font-ui);
	color: var(--wikipress-text-light);
	letter-spacing: 0.01em;
}

/* Active / current nav item gets the accent underline (active state). */
.main-navigation .current-menu-item > a,
.main-navigation .current_page_item > a {
	box-shadow: inset 0 -2px 0 var(--pc-accent);
}

/* ------------------------------------------------------------
   4. Reference & data tables — engineers read these constantly.
   Denser, ruled rows, sticky-friendly headers.
   ------------------------------------------------------------ */
.entry-content table,
.article-content table {
	font-family: var(--wikipress-font-ui);
	font-size: 0.95rem;
}

.entry-content table th,
.article-content table th {
	background: var(--pc-navy);
	color: #ffffff;
	font-weight: 600;
	text-align: left;
}

.entry-content table tbody tr:nth-child(even),
.article-content table tbody tr:nth-child(even) {
	background: var(--wikipress-bg-off);
}

.entry-content table tbody tr:hover,
.article-content table tbody tr:hover {
	background: var(--pc-accent-soft);
}

/* A ".pc-table--data" modifier for dense reference tables (pipe
   schedule, roughness, K-factors, etc.). */
.pc-table--data td,
.pc-table--data th {
	padding: 6px 12px;
	border: 1px solid var(--wikipress-border-light);
}
.pc-table--data td.pc-num {
	text-align: right;
}

/* ------------------------------------------------------------
   5. Calculator UI components (.pc-calc)
   Server-render the shell as static HTML, then hydrate. These
   styles make an un-hydrated shell already look correct and avoid
   layout shift (blueprint §14.3).
   ------------------------------------------------------------ */
.pc-calc {
	font-family: var(--wikipress-font-ui);
	background: var(--wikipress-bg);
	border: 1px solid var(--wikipress-border);
	border-radius: var(--pc-radius);
	box-shadow: var(--pc-shadow);
	padding: 20px;
	margin: 1.75em 0;
}

.pc-calc__title {
	font-family: var(--wikipress-font-ui);
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--pc-navy);
	margin: 0 0 4px;
	border: 0;
	padding: 0;
}

.pc-calc__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px 20px;
	margin: 16px 0;
}

.pc-field {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.pc-field label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--wikipress-text-light);
}

/* Input + unit affordance sit together like a metered field. */
.pc-field .pc-input {
	display: flex;
	align-items: stretch;
	border: 1px solid var(--wikipress-border);
	border-radius: var(--pc-radius-sm);
	overflow: hidden;
	background: #fff;
}
.pc-field .pc-input:focus-within {
	border-color: var(--pc-accent);
	box-shadow: 0 0 0 2px var(--pc-accent-soft);
}
.pc-field .pc-input input,
.pc-field .pc-input select {
	border: 0;
	padding: 8px 10px;
	font: inherit;
	min-width: 0;
	flex: 1 1 auto;
	background: transparent;
}
.pc-field .pc-input input:focus,
.pc-field .pc-input select:focus {
	outline: none;
}
.pc-field .pc-unit {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	padding: 0 10px;
	background: var(--wikipress-bg-off);
	border-left: 1px solid var(--wikipress-border-light);
	color: var(--wikipress-text-light);
	font-size: 0.85rem;
	font-family: var(--pc-mono);
}

/* Result readout — the one strong accent lives here. */
.pc-result {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 8px 14px;
	margin-top: 8px;
	padding: 14px 16px;
	background: var(--pc-accent-soft);
	border: 1px solid var(--pc-accent);
	border-left-width: 4px;
	border-radius: var(--pc-radius-sm);
}
.pc-result__label {
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--pc-accent-hover);
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.pc-result__value,
.pc-result-value {
	font-family: var(--pc-mono);
	font-size: 1.5rem;
	font-weight: 700;
	color: var(--pc-navy);
	line-height: 1.1;
}
.pc-result__unit {
	font-family: var(--pc-mono);
	color: var(--wikipress-text-light);
	font-size: 1rem;
}

/* US / SI unit toggle (global + per-calculator active state). */
.pc-unit-toggle {
	display: inline-flex;
	border: 1px solid var(--wikipress-border);
	border-radius: 999px;
	overflow: hidden;
	font-size: 0.8rem;
	font-family: var(--wikipress-font-ui);
}
.pc-unit-toggle button {
	border: 0;
	background: transparent;
	padding: 5px 14px;
	cursor: pointer;
	color: var(--wikipress-text-light);
	font-weight: 600;
}
.pc-unit-toggle button[aria-pressed="true"] {
	background: var(--pc-accent);
	color: #fff;
}

/* ------------------------------------------------------------
   6. Method / formula & callout components
   ------------------------------------------------------------ */

/* Collapsible "Formula & method" block, expanded by default on
   desktop (blueprint §1.4). Uses native <details>. */
.pc-formula {
	margin: 1.5em 0;
	border: 1px solid var(--wikipress-border-light);
	border-left: 4px solid var(--pc-primary);
	border-radius: var(--pc-radius-sm);
	background: var(--wikipress-bg-off);
}
.pc-formula > summary {
	cursor: pointer;
	padding: 12px 16px;
	font-family: var(--wikipress-font-ui);
	font-weight: 600;
	color: var(--pc-navy);
	list-style: none;
}
.pc-formula > summary::-webkit-details-marker { display: none; }
.pc-formula > summary::before {
	content: "\0192  ";   /* ƒ */
	font-style: italic;
	color: var(--pc-primary);
}
.pc-formula[open] > summary {
	border-bottom: 1px solid var(--wikipress-border-light);
}
.pc-formula__body {
	padding: 14px 16px;
}
/* Equation line — clean HTML/CSS math, never an image. */
.pc-equation {
	font-family: var(--wikipress-font-content);
	font-size: 1.15rem;
	text-align: center;
	margin: 0.5em 0 1em;
	overflow-x: auto;
}
.pc-equation sub,
.pc-equation sup { font-size: 0.7em; }

/* Generic callout / note boxes. */
.pc-note {
	margin: 1.25em 0;
	padding: 12px 16px;
	border: 1px solid var(--wikipress-border-light);
	border-left: 4px solid var(--wikipress-border);
	border-radius: var(--pc-radius-sm);
	background: var(--wikipress-bg-off);
	font-family: var(--wikipress-font-ui);
	font-size: 0.95rem;
}
.pc-note__title {
	display: block;
	font-weight: 700;
	margin-bottom: 2px;
}

.pc-note--warning {
	border-left-color: var(--pc-warning);
	border-color: var(--pc-warning-border);
	background: var(--pc-warning-bg);
}
.pc-note--warning .pc-note__title { color: var(--pc-warning); }

/* Reserved for validation errors and cavitation-risk flags only. */
.pc-note--danger {
	border-left-color: var(--pc-danger);
	border-color: var(--pc-danger-border);
	background: var(--pc-danger-bg);
}
.pc-note--danger .pc-note__title { color: var(--pc-danger); }

.pc-note--ok {
	border-left-color: var(--pc-ok);
	border-color: var(--pc-ok-border);
	background: var(--pc-ok-bg);
}
.pc-note--ok .pc-note__title { color: var(--pc-ok); }

/* Inline field-level validation message. */
.pc-field.is-error .pc-input { border-color: var(--pc-danger); }
.pc-field .pc-error {
	color: var(--pc-danger);
	font-size: 0.8rem;
	font-weight: 600;
}

/* Standards reference chip (ANSI/HI, API 610, ISO 5199, NFPA 20…). */
.pc-standard {
	display: inline-block;
	font-family: var(--pc-mono);
	font-size: 0.75rem;
	padding: 2px 8px;
	border: 1px solid var(--wikipress-border);
	border-radius: 999px;
	color: var(--wikipress-text-light);
	background: #fff;
	white-space: nowrap;
}

/* Verification footer required on every calculator (blueprint §1.4). */
.pc-verify {
	margin-top: 16px;
	padding-top: 12px;
	border-top: 1px dashed var(--wikipress-border);
	font-family: var(--wikipress-font-ui);
	font-size: 0.8rem;
	color: var(--wikipress-text-light);
	line-height: 1.5;
}

/* Homepage / calculator-page trust strip. */
.pc-trust-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	align-items: center;
	font-family: var(--wikipress-font-ui);
	font-size: 0.85rem;
	color: var(--wikipress-text-light);
	margin: 12px 0;
}
.pc-trust-strip li {
	list-style: none;
	position: relative;
	padding-right: 12px;
}
.pc-trust-strip li:not(:last-child)::after {
	content: "\00b7";  /* middot */
	position: absolute;
	right: 2px;
	color: var(--wikipress-border);
}

/* ------------------------------------------------------------
   7. Footer — non-affiliation notice (blueprint §4.2).
   Parent footer is dark (#0f172a); keep this text muted-light.
   ------------------------------------------------------------ */
.pc-noaffiliation {
	width: 100%;
	margin-top: 16px;
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
	font-family: var(--wikipress-font-ui);
	font-size: 0.8rem;
	line-height: 1.6;
	color: #8592a3;
}

/* ------------------------------------------------------------
   8. Print — engineers print calculators and reference tables and
   take them into the field (blueprint §14.4). The parent already
   hides header/sidebar/footer/breadcrumbs/mobile-TOC; extend it.
   ------------------------------------------------------------ */
@media print {
	.comments-area,
	.post-navigation,
	.related-articles,
	.article-related-terms,
	.pc-unit-toggle,
	.menu-toggle,
	.search-toggle {
		display: none !important;
	}

	.pc-calc,
	.pc-note,
	.pc-formula,
	.entry-content table,
	.article-content table,
	.pc-table--data {
		break-inside: avoid;
		page-break-inside: avoid;
		box-shadow: none;
	}

	/* Keep result & status boxes legible in mono/grayscale print. */
	.pc-result {
		background: #fff !important;
		border: 1.5pt solid #000 !important;
	}
	.pc-result__value,
	.pc-result-value { color: #000; }

	.entry-content table th,
	.article-content table th,
	.pc-table--data th {
		background: #fff !important;
		color: #000 !important;
		border: 1pt solid #000 !important;
	}

	.pc-formula { background: #fff; border-left: 2pt solid #000; }
	.pc-note { background: #fff; border: 1pt solid #666; }

	/* Ensure the verification disclaimer always prints. */
	.pc-verify { color: #000; }
}

/* ------------------------------------------------------------
   9. Accessibility — honour reduced-motion for our own components.
   ------------------------------------------------------------ */
@media (prefers-reduced-motion: reduce) {
	.pc-input,
	.pc-unit-toggle button,
	.pc-result {
		transition: none !important;
	}
}

/* ============================================================
   10. 2026 front-end system
   A complete presentation layer for the homepage, editorial
   pages, archives, calculator templates, and recovery states.
   ============================================================ */

:root {
	--wikipress-max-width: 1360px;
	--wikipress-content-max: 820px;
	--wikipress-bg-off: #f3f7f9;
	--wikipress-border: #aebcc6;
	--wikipress-border-light: #dfe7ec;
	--pc-ink: #12232f;
	--pc-muted: #5b6c77;
	--pc-paper: #fbfcfc;
	--pc-line: #d8e2e8;
	--pc-panel: #edf4f6;
	--pc-teal: #0f8091;
	--pc-teal-bright: #19a6b9;
	--pc-radius-lg: 14px;
	--pc-shadow-lg: 0 22px 55px rgba(8, 47, 73, 0.11);
}

html {
	scroll-padding-top: 92px;
}

body {
	background:
		linear-gradient(rgba(8, 47, 73, 0.025) 1px, transparent 1px),
		linear-gradient(90deg, rgba(8, 47, 73, 0.025) 1px, transparent 1px),
		#edf3f6;
	background-size: 32px 32px;
	color: var(--pc-ink);
}

.site {
	max-width: none;
	box-shadow: 0 0 80px rgba(8, 47, 73, 0.08);
}

.site-header {
	border-bottom: 1px solid rgba(8, 47, 73, 0.12);
	background: rgba(255, 255, 255, 0.94);
	box-shadow: 0 8px 28px rgba(8, 47, 73, 0.05);
}

.header-inner {
	min-height: 72px;
	padding: 10px clamp(20px, 4vw, 54px);
	gap: 28px;
}

.site-branding {
	position: relative;
	padding-left: 19px;
}

.site-branding::before {
	content: "";
	position: absolute;
	left: 0;
	top: 4px;
	bottom: 4px;
	width: 5px;
	background: var(--pc-accent);
	border-radius: 1px;
}

.site-title {
	font-size: 1.45rem;
	line-height: 1.05;
	letter-spacing: -0.035em;
}

.site-title a {
	font-weight: 800;
}

.site-description {
	margin-top: 5px;
	font-size: 0.69rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.main-navigation {
	font-size: 0.84rem;
	font-weight: 650;
}

.primary-menu {
	gap: 4px;
}

.primary-menu a {
	padding: 9px 12px;
	border-radius: 6px;
}

.primary-menu a:hover,
.primary-menu a:focus {
	background: var(--pc-panel);
}

.search-toggle,
.menu-toggle {
	border-color: var(--pc-line);
	border-radius: 7px;
	color: var(--pc-navy);
}

.search-toggle:hover,
.menu-toggle:hover {
	background: var(--pc-panel);
	border-color: var(--pc-accent);
}

.content-wrapper {
	width: 100%;
}

.site-main {
	padding: clamp(28px, 4vw, 52px);
}

.sidebar-section {
	padding: 34px 22px;
	background: #f8fafb;
	border-right-color: var(--pc-line);
}

.sidebar-section .widget-title {
	font-size: 0.72rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--pc-muted);
}

.sidebar-section .widget a {
	display: block;
	padding: 4px 6px;
	margin-left: -6px;
	border-radius: 4px;
}

.sidebar-section .widget a:hover {
	background: var(--pc-panel);
	text-decoration: none;
}

.pc-kicker {
	margin: 0 0 12px;
	font-family: var(--wikipress-font-ui);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.13em;
	line-height: 1.4;
	text-transform: uppercase;
	color: var(--pc-accent);
}

.pc-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 10px 18px;
	border: 1px solid var(--pc-primary);
	border-radius: 6px;
	background: var(--pc-primary);
	color: #fff;
	font-family: var(--wikipress-font-ui);
	font-size: 0.86rem;
	font-weight: 750;
	text-decoration: none;
}

.pc-button:hover,
.pc-button:focus {
	background: var(--pc-primary-hover);
	border-color: var(--pc-primary-hover);
	color: #fff;
	text-decoration: none;
}

.pc-button--light {
	border-color: #fff;
	background: #fff;
	color: var(--pc-navy);
}

.pc-button--light:hover,
.pc-button--light:focus {
	background: var(--pc-accent-soft);
	border-color: var(--pc-accent-soft);
	color: var(--pc-navy);
}

.pc-text-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: #d8ecf2;
	font-family: var(--wikipress-font-ui);
	font-size: 0.84rem;
	font-weight: 750;
	text-decoration: none;
}

.pc-text-link span {
	transition: transform 0.18s ease;
}

.pc-text-link:hover,
.pc-text-link:focus {
	color: #fff;
	text-decoration: none;
}

.pc-text-link:hover span,
.pc-text-link:focus span {
	transform: translateX(3px);
}

.pc-text-link--dark {
	color: var(--pc-primary);
}

.pc-text-link--dark:hover,
.pc-text-link--dark:focus {
	color: var(--pc-primary-hover);
}

/* ---- Homepage ---- */
.pc-home {
	width: 100%;
	padding: 0;
	overflow: hidden;
}

.pc-home-hero {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1.08fr) minmax(360px, 0.92fr);
	gap: clamp(34px, 6vw, 90px);
	align-items: center;
	min-height: 620px;
	padding: clamp(68px, 9vw, 118px) clamp(30px, 6vw, 88px);
	background:
		radial-gradient(circle at 78% 20%, rgba(25, 166, 185, 0.18), transparent 27%),
		linear-gradient(125deg, #071f31 0%, #0a3650 58%, #0a4259 100%);
	color: #fff;
	isolation: isolate;
}

.pc-home-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0.11;
	background:
		linear-gradient(rgba(255,255,255,.25) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.25) 1px, transparent 1px);
	background-size: 54px 54px;
	mask-image: linear-gradient(to right, #000, transparent 78%);
}

.pc-home-hero__copy {
	max-width: 700px;
}

.pc-home-hero .pc-kicker {
	color: #6ed4df;
}

.pc-home-hero h1 {
	max-width: 780px;
	margin: 0;
	padding: 0;
	border: 0;
	color: #fff;
	font-size: clamp(2.65rem, 5.1vw, 5.25rem);
	font-weight: 750;
	line-height: 0.99;
	letter-spacing: -0.055em;
	text-wrap: balance;
}

.pc-home-hero__lede {
	max-width: 650px;
	margin: 27px 0 0;
	color: #c8dbe3;
	font-family: var(--wikipress-font-ui);
	font-size: clamp(1rem, 1.6vw, 1.23rem);
	line-height: 1.65;
}

.pc-hero-search {
	display: flex;
	max-width: 650px;
	margin: 32px 0 0;
	padding: 5px;
	border: 1px solid rgba(255,255,255,.24);
	border-radius: 8px;
	background: rgba(255,255,255,.11);
	backdrop-filter: blur(8px);
}

.pc-hero-search input {
	min-width: 0;
	flex: 1;
	padding: 12px 14px;
	border: 0;
	outline: 0;
	background: transparent;
	color: #fff;
	font: 0.95rem var(--wikipress-font-ui);
}

.pc-hero-search input::placeholder {
	color: #a9c0ca;
}

.pc-hero-search:focus-within {
	border-color: #62d3df;
	box-shadow: 0 0 0 3px rgba(25,166,185,.2);
}

.pc-hero-search button {
	flex: 0 0 auto;
	padding: 10px 20px;
	border: 0;
	border-radius: 5px;
	background: var(--pc-teal-bright);
	color: #042b38;
	font: 800 0.84rem var(--wikipress-font-ui);
	cursor: pointer;
}

.pc-hero-search button:hover {
	background: #70d8e3;
}

.pc-home-hero__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
	margin-top: 22px;
}

.pc-curve-panel {
	position: relative;
	max-width: 500px;
	margin-left: auto;
	padding: 18px;
	border: 1px solid rgba(143, 207, 218, 0.35);
	border-radius: 10px;
	background: rgba(3, 25, 39, 0.48);
	box-shadow: 0 30px 70px rgba(0,0,0,.28);
	font-family: var(--wikipress-font-ui);
}

.pc-curve-panel::after {
	content: "";
	position: absolute;
	inset: 7px;
	pointer-events: none;
	border: 1px solid rgba(255,255,255,.06);
	border-radius: 6px;
}

.pc-curve-panel__top {
	display: flex;
	justify-content: space-between;
	gap: 18px;
	padding: 1px 3px 15px;
	border-bottom: 1px solid rgba(255,255,255,.13);
	color: #9db7c1;
	font-family: var(--pc-mono);
	font-size: 0.67rem;
	letter-spacing: 0.09em;
}

.pc-status-dot {
	color: #74d8ca;
}

.pc-status-dot::before {
	content: "";
	display: inline-block;
	width: 7px;
	height: 7px;
	margin-right: 7px;
	border-radius: 50%;
	background: #40c9aa;
	box-shadow: 0 0 0 4px rgba(64,201,170,.12);
}

.pc-curve-plot {
	position: relative;
	height: 270px;
	margin: 22px 8px 6px;
	overflow: hidden;
	background:
		linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
	background-size: 36px 36px;
}

.pc-curve-axis {
	position: absolute;
	background: rgba(218,238,243,.55);
}

.pc-curve-axis--y {
	left: 24px;
	top: 8px;
	bottom: 22px;
	width: 1px;
}

.pc-curve-axis--x {
	left: 24px;
	right: 8px;
	bottom: 22px;
	height: 1px;
}

.pc-curve-line {
	position: absolute;
	left: 20%;
	width: 68%;
	height: 160px;
	border-radius: 50%;
}

.pc-curve-line--pump {
	top: 6%;
	border-bottom: 3px solid #53c7d6;
	transform: rotate(-17deg);
}

.pc-curve-line--system {
	top: 35%;
	border-top: 3px solid #f0bd68;
	transform: rotate(20deg);
}

.pc-duty-point {
	position: absolute;
	left: 58%;
	top: 44%;
	width: 13px;
	height: 13px;
	border: 3px solid #071f31;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 0 0 5px rgba(255,255,255,.17);
}

.pc-curve-label {
	position: absolute;
	color: #91acb7;
	font: 0.72rem var(--pc-mono);
}

.pc-curve-label--head {
	left: 8px;
	top: 0;
}

.pc-curve-label--flow {
	right: 0;
	bottom: 1px;
}

.pc-curve-readouts {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	overflow: hidden;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: 5px;
	background: rgba(255,255,255,.12);
}

.pc-curve-readouts div {
	padding: 11px 12px;
	background: rgba(2, 24, 37, .85);
}

.pc-curve-readouts span,
.pc-curve-readouts strong {
	display: block;
}

.pc-curve-readouts span {
	color: #8da7b2;
	font-size: 0.66rem;
	text-transform: uppercase;
	letter-spacing: 0.07em;
}

.pc-curve-readouts strong {
	margin-top: 2px;
	color: #f4fafb;
	font-family: var(--pc-mono);
	font-size: 1.15rem;
}

.pc-curve-readouts small {
	color: #9db3bc;
	font-size: .62em;
	font-weight: 500;
}

.pc-curve-panel > p {
	margin: 12px 3px 0;
	color: #809ba6;
	font-size: 0.69rem;
	line-height: 1.45;
}

.pc-proof-strip {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	margin: 0;
	padding: 0 clamp(30px, 6vw, 88px);
	border-bottom: 1px solid var(--pc-line);
	background: #fff;
	list-style: none;
}

.pc-proof-strip li {
	padding: 21px 25px;
	border-right: 1px solid var(--pc-line);
	color: var(--pc-muted);
	font: 0.76rem var(--wikipress-font-ui);
}

.pc-proof-strip li:first-child {
	border-left: 1px solid var(--pc-line);
}

.pc-proof-strip strong {
	display: block;
	color: var(--pc-navy);
	font-size: 0.9rem;
	font-weight: 800;
}

.pc-home-section {
	padding: clamp(66px, 8vw, 112px) clamp(30px, 6vw, 88px);
}

.pc-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 32px;
	margin-bottom: 34px;
}

.pc-section-heading h2,
.pc-home-feature h2 {
	max-width: 760px;
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--pc-navy);
	font-size: clamp(2rem, 3.3vw, 3.35rem);
	font-weight: 730;
	line-height: 1.08;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.pc-section-heading p:not(.pc-kicker) {
	max-width: 690px;
	margin: 13px 0 0;
	color: var(--pc-muted);
	font-family: var(--wikipress-font-ui);
	font-size: 0.98rem;
}

.pc-home-tools {
	background: #fff;
}

.pc-tool-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	border-top: 1px solid var(--pc-line);
	border-left: 1px solid var(--pc-line);
}

.pc-tool-card {
	position: relative;
	display: flex;
	min-height: 265px;
	flex-direction: column;
	padding: 24px;
	border-right: 1px solid var(--pc-line);
	border-bottom: 1px solid var(--pc-line);
	background: #fff;
	text-decoration: none;
	transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}

.pc-tool-card:hover,
.pc-tool-card:focus {
	z-index: 1;
	background: #f5fafb;
	box-shadow: 0 16px 36px rgba(8,47,73,.1);
	transform: translateY(-3px);
	text-decoration: none;
}

.pc-tool-card__number {
	position: absolute;
	top: 22px;
	right: 22px;
	color: #b5c3cb;
	font: 0.75rem var(--pc-mono);
}

.pc-tool-card__meta {
	margin-bottom: 30px;
	color: var(--pc-accent);
	font: 800 0.65rem var(--wikipress-font-ui);
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.pc-tool-card strong {
	max-width: 240px;
	color: var(--pc-navy);
	font-family: var(--wikipress-font-ui);
	font-size: 1.13rem;
	line-height: 1.25;
}

.pc-tool-card__desc {
	margin-top: 10px;
	color: var(--pc-muted);
	font-family: var(--wikipress-font-ui);
	font-size: 0.81rem;
	line-height: 1.55;
}

.pc-tool-card__go {
	margin-top: auto;
	padding-top: 20px;
	color: var(--pc-primary);
	font: 750 0.77rem var(--wikipress-font-ui);
}

.pc-home-feature {
	display: grid;
	grid-template-columns: minmax(250px, .48fr) minmax(0, 1.52fr);
	gap: clamp(35px, 6vw, 80px);
	align-items: start;
	background: var(--pc-panel);
	border-block: 1px solid var(--pc-line);
}

.pc-feature-intro {
	position: sticky;
	top: 110px;
	padding-top: 12px;
}

.pc-feature-intro > p:not(.pc-kicker) {
	margin-top: 22px;
	color: var(--pc-muted);
	font-family: var(--wikipress-font-ui);
}

.pc-check-list {
	margin: 28px 0 0;
	padding: 0;
	list-style: none;
	font: 0.86rem var(--wikipress-font-ui);
}

.pc-check-list li {
	position: relative;
	padding: 11px 0 11px 25px;
	border-bottom: 1px solid var(--pc-line);
}

.pc-check-list li::before {
	content: "✓";
	position: absolute;
	left: 0;
	color: var(--pc-accent);
	font-weight: 900;
}

.pc-home-feature__tool .pc-calc {
	margin: 0;
	border-color: #c5d5dd;
	border-radius: 10px;
	box-shadow: var(--pc-shadow-lg);
}

.pc-sizing-path {
	background: #082b40;
	color: #fff;
}

.pc-sizing-path .pc-kicker {
	color: #65cbd7;
}

.pc-sizing-path .pc-section-heading h2 {
	color: #fff;
}

.pc-path-list {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	margin: 0;
	padding: 0;
	border-top: 1px solid rgba(255,255,255,.17);
	border-left: 1px solid rgba(255,255,255,.17);
	list-style: none;
}

.pc-path-list li {
	position: relative;
	min-height: 220px;
	padding: 24px;
	border-right: 1px solid rgba(255,255,255,.17);
	border-bottom: 1px solid rgba(255,255,255,.17);
}

.pc-path-list li:not(:last-child)::after {
	content: "→";
	position: absolute;
	top: 20px;
	right: -13px;
	z-index: 2;
	display: grid;
	width: 25px;
	height: 25px;
	place-items: center;
	border-radius: 50%;
	background: #082b40;
	color: #65cbd7;
	font-family: var(--wikipress-font-ui);
}

.pc-path-list span,
.pc-path-list strong,
.pc-path-list small {
	display: block;
	font-family: var(--wikipress-font-ui);
}

.pc-path-list span {
	margin-bottom: 54px;
	color: #65cbd7;
	font-family: var(--pc-mono);
	font-size: 0.75rem;
}

.pc-path-list strong {
	font-size: 1rem;
}

.pc-path-list small {
	margin-top: 9px;
	color: #a9c0ca;
	font-size: 0.76rem;
	line-height: 1.5;
}

.pc-home-guides {
	background: #fff;
}

.pc-guide-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.pc-guide-card {
	display: flex;
	min-height: 285px;
	flex-direction: column;
	padding: 27px;
	border: 1px solid var(--pc-line);
	border-radius: 8px;
	background: var(--pc-paper);
}

.pc-guide-card__meta {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	color: var(--pc-muted);
	font: 0.67rem var(--wikipress-font-ui);
	letter-spacing: .03em;
	text-transform: uppercase;
}

.pc-guide-card__meta span {
	color: var(--pc-accent);
	font-weight: 800;
}

.pc-guide-card h3 {
	margin: 28px 0 10px;
	font-size: 1.25rem;
	font-weight: 720;
}

.pc-guide-card h3 a {
	color: var(--pc-navy);
}

.pc-guide-card p {
	color: var(--pc-muted);
	font: 0.84rem/1.6 var(--wikipress-font-ui);
}

.pc-guide-card .pc-text-link {
	margin-top: auto;
}

.pc-home-page-content {
	background: #fff;
}

/* ---- Shared editorial hero and article polish ---- */
.breadcrumbs {
	margin-bottom: 26px;
	padding: 0;
	font-family: var(--wikipress-font-ui);
	font-size: 0.72rem;
}

.breadcrumbs-list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
}

.breadcrumbs-sep {
	color: #9aabb5;
}

.article-header,
.pc-article-hero {
	margin-bottom: 35px;
}

.wiki-article > .article-header {
	padding: clamp(25px, 4vw, 48px);
	border: 1px solid var(--pc-line);
	border-radius: 10px;
	background:
		linear-gradient(135deg, rgba(14,116,144,.08), transparent 55%),
		#f8fbfc;
}

.article-title,
.page-title,
.error-404 h1 {
	margin: 0;
	padding: 0;
	border: 0;
	color: var(--pc-navy);
	font-size: clamp(2.1rem, 4vw, 3.85rem);
	font-weight: 740;
	line-height: 1.06;
	letter-spacing: -0.045em;
	text-wrap: balance;
}

.article-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 11px;
	align-items: center;
	margin-top: 22px;
	padding-top: 17px;
	border-top: 1px solid var(--pc-line);
	color: var(--pc-muted);
	font-size: 0.74rem;
}

.article-meta .meta-divider {
	color: #b2bfc7;
}

.pc-article-deck {
	max-width: 760px;
	margin: 18px 0 0;
	color: var(--pc-muted);
	font-family: var(--wikipress-font-ui);
	font-size: 1.08rem;
	line-height: 1.65;
}

.article-featured-image {
	margin-top: 28px;
	overflow: hidden;
	border-radius: 8px;
	background: var(--pc-panel);
}

.article-featured-image img {
	display: block;
	width: 100%;
	max-height: 560px;
	object-fit: cover;
}

.article-content-wrapper {
	gap: clamp(28px, 4vw, 54px);
}

.article-body {
	max-width: 790px;
}

.article-content {
	font-size: 1.04rem;
	line-height: 1.82;
}

.article-content > p:first-child {
	font-size: 1.12rem;
	color: #314752;
}

.article-content h2 {
	margin-top: 2.35em;
	padding-bottom: 0.42em;
	border-bottom: 1px solid var(--pc-line);
	color: var(--pc-navy);
	font-size: 1.7rem;
	font-weight: 720;
	letter-spacing: -0.025em;
}

.article-content h3 {
	margin-top: 1.9em;
	color: var(--pc-navy);
	font-weight: 700;
}

.article-content blockquote {
	margin: 2em 0;
	padding: 22px 26px;
	border: 0;
	border-left: 4px solid var(--pc-accent);
	background: var(--pc-panel);
	color: #2f4652;
}

.article-content code:not(pre code) {
	padding: 2px 5px;
	border: 1px solid var(--pc-line);
	border-radius: 3px;
	background: #f3f7f8;
	font-family: var(--pc-mono);
	font-size: .88em;
}

.article-sidebar {
	width: min(280px, 30%);
}

.toc-container,
.infobox {
	overflow: hidden;
	border-color: var(--pc-line);
	border-radius: 8px;
	box-shadow: 0 8px 22px rgba(8,47,73,.06);
}

.toc-title,
.infobox-title {
	background: var(--pc-panel);
}

.article-section,
.related-articles,
.post-navigation {
	margin-top: 52px;
	padding-top: 34px;
	border-top: 1px solid var(--pc-line);
}

/* ---- Archive and search pages ---- */
.pc-page-hero {
	position: relative;
	margin: calc(clamp(28px, 4vw, 52px) * -1) calc(clamp(28px, 4vw, 52px) * -1) 42px;
	padding: clamp(45px, 6vw, 82px) clamp(28px, 5vw, 66px) 0;
	overflow: hidden;
	background:
		linear-gradient(120deg, rgba(14,116,144,.12), transparent 58%),
		#f4f9fa;
	border-bottom: 1px solid var(--pc-line);
}

.pc-page-hero::after {
	content: "Q  ·  H  ·  η";
	position: absolute;
	right: 5%;
	top: 18%;
	color: rgba(8,47,73,.055);
	font: 700 clamp(2.5rem, 8vw, 7.8rem) var(--pc-mono);
	letter-spacing: -.1em;
	pointer-events: none;
}

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

.pc-page-hero .page-title,
.pc-page-hero .article-title {
	max-width: 820px;
}

.pc-page-hero > p:not(.pc-kicker),
.pc-page-hero .archive-description,
.pc-page-hero .pc-calc-purpose {
	max-width: 760px;
	margin-top: 18px;
	color: var(--pc-muted);
	font-family: var(--wikipress-font-ui);
	font-size: 1.02rem;
	line-height: 1.65;
}

.pc-page-hero__rule {
	display: flex;
	justify-content: space-between;
	gap: 24px;
	margin-top: 45px;
	padding: 14px 0;
	border-top: 1px solid var(--pc-line);
	color: var(--pc-muted);
	font: 0.69rem var(--wikipress-font-ui);
	letter-spacing: 0.07em;
	text-transform: uppercase;
}

.pc-archive-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.pc-resource-card.archive-entry {
	display: grid;
	grid-template-columns: 145px minmax(0, 1fr);
	min-height: 245px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--pc-line);
	border-radius: 9px;
	background: #fff;
	box-shadow: none;
}

.pc-resource-card.archive-entry:hover {
	border-color: #a8c7d1;
	box-shadow: 0 16px 36px rgba(8,47,73,.09);
	transform: translateY(-2px);
}

.pc-resource-card .entry-thumbnail,
.pc-resource-card__visual {
	position: relative;
	display: block;
	width: auto;
	min-height: 100%;
	margin: 0;
	overflow: hidden;
	border-radius: 0;
	background:
		linear-gradient(145deg, rgba(25,166,185,.3), transparent 60%),
		#0a3850;
}

.pc-resource-card .entry-thumbnail img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pc-resource-card__mark {
	position: absolute;
	left: 18px;
	top: 16px;
	color: rgba(255,255,255,.86);
	font: 700 2.4rem var(--pc-mono);
}

.pc-resource-card__lines::before,
.pc-resource-card__lines::after {
	content: "";
	position: absolute;
	left: 20px;
	right: -25px;
	border-top: 2px solid rgba(115,217,229,.55);
	border-radius: 50%;
	transform: rotate(-18deg);
}

.pc-resource-card__lines::before {
	top: 55%;
	height: 75px;
}

.pc-resource-card__lines::after {
	top: 70%;
	height: 45px;
	border-color: rgba(246,193,101,.6);
	transform: rotate(17deg);
}

.pc-resource-card .entry-details {
	display: flex;
	min-width: 0;
	flex-direction: column;
	padding: 21px 22px;
}

.pc-resource-card__meta {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	color: var(--pc-muted);
	font: 0.64rem var(--wikipress-font-ui);
	letter-spacing: .04em;
	text-transform: uppercase;
}

.pc-resource-card__meta span {
	color: var(--pc-accent);
	font-weight: 800;
}

.pc-resource-card .entry-title {
	margin: 20px 0 8px;
	padding: 0;
	border: 0;
	font-size: 1.15rem;
	font-weight: 720;
	line-height: 1.28;
}

.pc-resource-card .entry-title a {
	color: var(--pc-navy);
}

.pc-resource-card .entry-summary {
	color: var(--pc-muted);
	font: 0.8rem/1.55 var(--wikipress-font-ui);
}

.pc-resource-card .entry-summary p {
	margin: 0;
}

.pc-resource-card__footer {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	margin-top: auto;
	padding-top: 17px;
	color: var(--pc-muted);
	font: 0.7rem var(--wikipress-font-ui);
}

.pc-resource-card__footer a {
	font-weight: 750;
}

.pagination,
.nav-links {
	font-family: var(--wikipress-font-ui);
}

.pagination .page-numbers {
	display: inline-grid;
	min-width: 38px;
	height: 38px;
	margin: 0 2px;
	place-items: center;
	border: 1px solid var(--pc-line);
	border-radius: 5px;
	background: #fff;
}

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

/* ---- Calculator directory and calculator single ---- */
.pc-calculator-directory .pc-page-hero {
	margin-bottom: 0;
}

.pc-directory-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
	margin: 0 calc(clamp(28px, 4vw, 52px) * -1) 35px;
	padding: 14px clamp(28px, 4vw, 52px);
	border-bottom: 1px solid var(--pc-line);
	background: #fff;
	font: 0.76rem var(--wikipress-font-ui);
}

.pc-directory-nav > span {
	margin-right: 3px;
	color: var(--pc-muted);
	font-weight: 750;
}

.pc-directory-nav a {
	padding: 5px 10px;
	border: 1px solid var(--pc-line);
	border-radius: 999px;
	color: var(--pc-primary);
	font-weight: 700;
}

.pc-directory-nav a:hover {
	border-color: var(--pc-accent);
	background: var(--pc-panel);
	text-decoration: none;
}

.pc-calc-grid {
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 15px;
	margin: 0 0 2em;
}

.pc-calc-card {
	position: relative;
	min-height: 245px;
	flex-direction: column;
	gap: 0;
	padding: 24px;
	border-color: var(--pc-line);
	border-radius: 8px;
}

.pc-calc-card__index {
	position: absolute;
	top: 21px;
	right: 21px;
	color: #b0bec7;
	font: 0.73rem var(--pc-mono);
}

.pc-calc-card__body {
	display: flex;
	min-height: 100%;
	flex: 1;
	flex-direction: column;
}

.pc-calc-card__silo {
	margin-bottom: 34px;
	color: var(--pc-accent);
	font: 800 0.65rem var(--wikipress-font-ui);
	letter-spacing: .08em;
	text-transform: uppercase;
}

.pc-calc-card__title {
	max-width: 245px;
	font-size: 1.08rem;
	font-weight: 750;
	line-height: 1.28;
}

.pc-calc-card__desc {
	margin-top: 10px;
	line-height: 1.55;
}

.pc-calc-card__action {
	margin-top: auto;
	padding-top: 22px;
	color: var(--pc-primary);
	font: 750 0.75rem var(--wikipress-font-ui);
}

.pc-calculator-article > .article-header {
	padding: clamp(26px, 4vw, 46px);
	border: 1px solid var(--pc-line);
	border-radius: 10px;
	background:
		linear-gradient(135deg, rgba(14,116,144,.1), transparent 62%),
		#f8fbfc;
}

.pc-calculator-eyebrow {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	margin-bottom: 16px;
	color: var(--pc-muted);
	font: 800 0.67rem var(--wikipress-font-ui);
	letter-spacing: .09em;
	text-transform: uppercase;
}

.pc-calculator-eyebrow span:first-child {
	color: var(--pc-accent);
}

.pc-calc-purpose {
	max-width: 790px;
	margin: 15px 0 0;
	font-size: 1.05rem;
	line-height: 1.62;
}

.pc-calc-trust {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 22px 0 0;
	padding: 0;
	list-style: none;
}

.pc-calc-trust li {
	padding: 5px 10px;
	border: 1px solid #c9d9df;
	border-radius: 999px;
	background: rgba(255,255,255,.7);
	color: var(--pc-muted);
	font: 700 0.68rem var(--wikipress-font-ui);
}

.pc-calculator-article > .pc-calc {
	margin-top: 24px;
	border-color: #bdcdd5;
	border-radius: 10px;
	box-shadow: 0 18px 44px rgba(8,47,73,.1);
}

.pc-calc {
	padding: clamp(18px, 3vw, 30px);
}

.pc-calc__toolbar {
	margin-bottom: 18px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--pc-line);
}

.pc-calc__title {
	font-size: 1.25rem;
	font-weight: 750;
}

.pc-field label {
	color: #435763;
	font-size: 0.78rem;
	letter-spacing: .015em;
}

.pc-field .pc-input {
	min-height: 43px;
	border-color: #aebfc8;
}

.pc-result {
	margin-top: 18px;
	padding: 18px 20px;
	border-color: var(--pc-teal);
	background: #e7f4f6;
}

.pc-result__value,
.pc-result-value {
	font-size: 1.85rem;
}

.pc-section > h2,
.pc-calc-copy h2 {
	font-weight: 720;
	letter-spacing: -.025em;
}

/* ---- 404 ---- */
.pc-error-page {
	width: 100%;
	min-height: 68vh;
	padding: clamp(50px, 8vw, 110px) clamp(28px, 7vw, 96px);
	background:
		linear-gradient(rgba(8,47,73,.035) 1px, transparent 1px),
		linear-gradient(90deg, rgba(8,47,73,.035) 1px, transparent 1px),
		#f8fbfc;
	background-size: 42px 42px;
}

.pc-error-card {
	display: grid;
	grid-template-columns: minmax(260px, .75fr) minmax(0, 1.25fr);
	gap: clamp(40px, 8vw, 105px);
	align-items: center;
	max-width: 1100px;
	margin: 0 auto;
}

.pc-error-code {
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--pc-navy);
	font: 800 clamp(6rem, 14vw, 12rem)/1 var(--pc-mono);
	letter-spacing: -.12em;
}

.pc-error-code i {
	position: relative;
	display: inline-block;
	width: .62em;
	height: .62em;
	margin: 0 .04em;
	border: .055em solid var(--pc-accent);
	border-radius: 50%;
}

.pc-error-code i::before,
.pc-error-code i::after {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	background: var(--pc-accent);
	transform-origin: left center;
}

.pc-error-code i::before {
	width: 42%;
	height: .035em;
	transform: rotate(-36deg);
}

.pc-error-code i::after {
	width: 31%;
	height: .035em;
	transform: rotate(34deg);
}

.pc-error-copy h1 {
	max-width: 650px;
}

.pc-error-copy > p:not(.pc-kicker) {
	max-width: 640px;
	margin-top: 20px;
	color: var(--pc-muted);
	font-family: var(--wikipress-font-ui);
	font-size: 1.02rem;
	line-height: 1.7;
}

.pc-error-search {
	max-width: 620px;
	border-color: var(--pc-line);
	background: #fff;
	box-shadow: 0 12px 30px rgba(8,47,73,.08);
}

.pc-error-search input {
	color: var(--pc-ink);
}

.pc-error-search input::placeholder {
	color: #758792;
}

.pc-error-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 22px;
	margin-top: 22px;
}

.pc-error-tools {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	max-width: 1100px;
	margin: 70px auto 0;
	padding-top: 20px;
	border-top: 1px solid var(--pc-line);
	font: 0.76rem var(--wikipress-font-ui);
}

.pc-error-tools p {
	width: 100%;
	margin: 0 0 4px;
	color: var(--pc-muted);
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.pc-error-tools a {
	padding: 7px 11px;
	border: 1px solid var(--pc-line);
	border-radius: 5px;
	background: #fff;
	font-weight: 700;
}

/* ---- Footer ---- */
.site-footer {
	border-top: 0;
	background: #071f31;
	color: #bdd0d8;
}

.site-footer::before {
	background: linear-gradient(90deg, var(--pc-teal), #72d3df);
}

.footer-inner {
	padding: 50px clamp(28px, 5vw, 62px) 28px;
}

.footer-widget-title {
	color: #fff;
	font-size: .73rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.site-footer a {
	color: #d8e9ee;
}

.footer-bottom {
	border-top-color: rgba(255,255,255,.12);
}

/* ---- Responsive ---- */
@media (max-width: 1100px) {
	.pc-home-hero {
		grid-template-columns: 1fr 0.78fr;
		gap: 36px;
	}

	.pc-home-hero h1 {
		font-size: clamp(2.7rem, 6vw, 4.5rem);
	}

	.pc-tool-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pc-home-feature {
		grid-template-columns: 1fr;
	}

	.pc-feature-intro {
		position: static;
		max-width: 760px;
	}

	.pc-path-list {
		grid-template-columns: repeat(3, 1fr);
	}

	.pc-path-list li:nth-child(3)::after {
		display: none;
	}

	.pc-calc-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pc-archive-grid {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 820px) {
	.header-inner {
		min-height: 64px;
		gap: 12px;
	}

	.pc-home-hero {
		grid-template-columns: 1fr;
		min-height: auto;
	}

	.pc-curve-panel {
		width: 100%;
		max-width: 630px;
		margin: 10px 0 0;
	}

	.pc-proof-strip {
		grid-template-columns: repeat(2, 1fr);
	}

	.pc-proof-strip li:nth-child(odd) {
		border-left: 1px solid var(--pc-line);
	}

	.pc-guide-grid {
		grid-template-columns: 1fr;
	}

	.pc-guide-card {
		min-height: 235px;
	}

	.pc-error-card {
		grid-template-columns: 1fr;
	}

	.pc-error-code {
		justify-content: flex-start;
		font-size: 7rem;
	}
}

@media (max-width: 640px) {
	body {
		background: #fff;
	}

	.site-main {
		padding: 24px 18px;
	}

	.pc-home {
		padding: 0;
	}

	.pc-home-hero,
	.pc-home-section {
		padding-left: 20px;
		padding-right: 20px;
	}

	.pc-home-hero {
		padding-top: 58px;
		padding-bottom: 58px;
	}

	.pc-home-hero h1 {
		font-size: clamp(2.45rem, 12vw, 3.4rem);
	}

	.pc-hero-search {
		flex-direction: column;
		padding: 5px;
	}

	.pc-hero-search button {
		width: 100%;
	}

	.pc-curve-plot {
		height: 215px;
	}

	.pc-curve-readouts strong {
		font-size: .95rem;
	}

	.pc-proof-strip {
		padding: 0 12px;
	}

	.pc-proof-strip li {
		padding: 16px 10px;
	}

	.pc-section-heading {
		display: block;
	}

	.pc-section-heading > .pc-text-link {
		margin-top: 18px;
	}

	.pc-tool-grid,
	.pc-path-list,
	.pc-calc-grid {
		grid-template-columns: 1fr;
	}

	.pc-tool-card {
		min-height: 230px;
	}

	.pc-path-list li {
		min-height: 165px;
	}

	.pc-path-list li::after {
		display: none;
	}

	.pc-path-list span {
		margin-bottom: 30px;
	}

	.pc-page-hero {
		margin: -24px -18px 30px;
		padding: 42px 18px 0;
	}

	.pc-page-hero__rule {
		display: block;
	}

	.pc-page-hero__rule span {
		display: block;
	}

	.pc-page-hero__rule span + span {
		margin-top: 5px;
	}

	.pc-directory-nav {
		margin: -30px -18px 28px;
		padding: 13px 18px;
	}

	.pc-resource-card.archive-entry {
		grid-template-columns: 1fr;
	}

	.pc-resource-card .entry-thumbnail,
	.pc-resource-card__visual {
		min-height: 150px;
	}

	.wiki-article > .article-header,
	.pc-calculator-article > .article-header {
		padding: 24px 20px;
	}

	.article-title,
	.page-title,
	.error-404 h1 {
		font-size: 2.25rem;
	}

	.article-meta .meta-divider {
		display: none;
	}

	.article-meta > span {
		width: 100%;
	}

	.pc-error-page {
		padding: 52px 20px;
	}

	.pc-error-code {
		font-size: 5.5rem;
	}

	.pc-result__value,
	.pc-result-value {
		font-size: 1.45rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pc-tool-card,
	.pc-calc-card,
	.pc-resource-card,
	.pc-text-link span {
		transition: none !important;
	}
}
