/*
Theme Name:        The Nuclear Electrical Engineer
Theme URI:         https://www.nuclearelectricalengineer.com/
Author:            John Livingston
Author URI:        https://www.nuclearelectricalengineer.com/
Description:       Custom trade-journal theme for The Nuclear Electrical Engineer (Direction 2A): paper container, Newsreader/IBM Plex typography, dark-red accents, admin-editable USP strip, Tip of the Week conversion card, live fleet ribbon, full-width data shell.
Version:           1.0.4
Requires at least: 6.0
Tested up to:      7.0
Requires PHP:      8.0
License:           GPL-2.0-or-later
License URI:       https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:       nee
*/

/* =========================================================================
   1. Design tokens (spec Rev 2A.1 — single source of truth)
   ========================================================================= */
:root {
	--nee-ink: #2E2B27;
	--nee-ink-strong: #332F29;
	--nee-paper: #FBFAF7;
	--nee-paper-alt: #F6F3EE;
	--nee-page-bg: #EAE7E0;
	--nee-accent: #9A2B22;
	--nee-usp-bg: #FCEDE9;
	--nee-usp-border: #E4C9C2;
	--nee-usp-text: #4B443B;
	--nee-muted: #6B5F52;
	--nee-mono-gray: #7A6F60;
	--nee-hairline: #E2DDD3;
	--nee-hairline-dark: #DAD6CE;
	--nee-band-border: #C9C2B4;
	--nee-nav-ink: #413C36;
	--nee-live-green: #2FA36B;
	--nee-footer-text: #D2CCC1;
	--nee-footer-head: #B08A6E;
	--nee-footer-wordmark: #F4EFE7;
	--nee-tip-text: #FCF0EA;
	--nee-label-underline: #4B443B;

	--nee-serif: 'Newsreader', Georgia, 'Times New Roman', serif;
	--nee-sans: 'IBM Plex Sans', -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
	--nee-mono: 'IBM Plex Mono', ui-monospace, Menlo, Consolas, monospace;
}

/* =========================================================================
   2. Self-hosted fonts (trimmed set — spec Design Tokens)
   ========================================================================= */
@font-face { font-family: 'Newsreader'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/newsreader-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Newsreader'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/newsreader-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'Newsreader'; font-style: italic; font-weight: 400; font-display: swap; src: url('assets/fonts/newsreader-latin-400-italic.woff2') format('woff2'); }
@font-face { font-family: 'Newsreader'; font-style: italic; font-weight: 600; font-display: swap; src: url('assets/fonts/newsreader-latin-600-italic.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/ibm-plex-sans-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/ibm-plex-sans-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Sans'; font-style: normal; font-weight: 600; font-display: swap; src: url('assets/fonts/ibm-plex-sans-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('assets/fonts/ibm-plex-mono-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'IBM Plex Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('assets/fonts/ibm-plex-mono-latin-500-normal.woff2') format('woff2'); }

/* =========================================================================
   3. Base / reset
   ========================================================================= */
*, *::before, *::after { box-sizing: border-box; }
body {
	margin: 0;
	background: var(--nee-page-bg);
	color: var(--nee-ink);
	font-family: var(--nee-sans);
	font-size: 16px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--nee-accent); }
input:focus, button:focus, a:focus-visible, [tabindex]:focus-visible {
	outline: 2px solid var(--nee-accent);
	outline-offset: 1px;
}
.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	position: absolute !important;
	width: 1px; height: 1px; overflow: hidden; word-wrap: normal !important;
}
.nee-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100;
	background: var(--nee-ink-strong); color: var(--nee-paper);
	padding: 10px 18px; font-family: var(--nee-sans); font-size: 14px;
}
.nee-skip-link:focus { left: 8px; top: 8px; color: var(--nee-paper); }

/* =========================================================================
   4. Paper container
   ========================================================================= */
.nee-page { padding: 40px 24px 80px; }
.nee-paper {
	max-width: 1160px;
	margin: 0 auto;
	background: var(--nee-paper);
	border: 1px solid var(--nee-hairline-dark);
	box-shadow: 0 30px 80px -40px rgba(30, 20, 10, 0.4);
	overflow: hidden;
}
.nee-paper--data { max-width: 1320px; }

/* =========================================================================
   5. Masthead
   ========================================================================= */
.nee-masthead { padding: 34px 48px 22px; text-align: center; }
body:not(.home) .nee-masthead { padding: 28px 48px 18px; }
.nee-eyebrow {
	font-family: var(--nee-sans);
	font-size: 12px; letter-spacing: 0.34em; text-transform: uppercase;
	color: var(--nee-accent); margin-bottom: 10px;
}
.nee-wordmark {
	font-family: var(--nee-serif); font-weight: 600;
	font-size: 64px; line-height: 0.95; letter-spacing: -0.015em;
	color: var(--nee-ink); margin: 0;
}
body:not(.home) .nee-wordmark { font-size: 52px; }
.nee-wordmark a:hover { color: var(--nee-ink); }
.nee-tagline {
	font-family: var(--nee-serif); font-style: italic;
	font-size: 20px; color: var(--nee-muted); margin-top: 12px;
}
body:not(.home) .nee-tagline { font-size: 17px; }

/* Compact masthead (data shell) */
.nee-masthead--compact {
	display: flex; align-items: center; justify-content: space-between;
	gap: 20px; padding: 18px 40px; text-align: left;
}
.nee-masthead--compact .nee-mast-left { display: flex; align-items: center; gap: 16px; }
.nee-mast-thumb {
	width: 120px; height: 52px; flex: 0 0 auto;
	background-size: cover; background-position: 47% 64%;
	border: 1px solid var(--nee-band-border);
}
.nee-masthead--compact .nee-eyebrow { margin-bottom: 2px; font-size: 10px; }
.nee-masthead--compact .nee-wordmark { font-size: 28px; line-height: 1; }

/* =========================================================================
   6. Photo band
   ========================================================================= */
.nee-band {
	height: 170px;
	background-image: image-set(
		url('assets/img/cooling-towers-1600.webp') type('image/webp'),
		url('assets/img/cooling-towers-1600.jpg') type('image/jpeg')
	);
	background-image: url('assets/img/cooling-towers-1600.jpg'); /* fallback for no image-set */
	background-size: cover;
	background-position: 84% 34%;
	border-top: 1px solid var(--nee-band-border);
}
@supports (background-image: image-set(url('a.webp') type('image/webp'))) {
	.nee-band {
		background-image: image-set(
			url('assets/img/cooling-towers-1600.webp') type('image/webp'),
			url('assets/img/cooling-towers-1600.jpg') type('image/jpeg')
		);
	}
}
body:not(.home) .nee-band { height: 120px; background-position: 47% 64%; }
/* Home focal position / height are overridden by Customizer inline CSS. */

/* =========================================================================
   7. USP strip
   ========================================================================= */
.nee-usp {
	background: var(--nee-usp-bg);
	border-top: 1px solid var(--nee-usp-border);
	border-bottom: 1px solid var(--nee-usp-border);
	padding: 14px 48px; text-align: center;
}
body:not(.home) .nee-usp { padding: 12px 48px; }
.nee-paper--data .nee-usp { padding: 10px 40px; }
.nee-usp p {
	margin: 0 auto; max-width: 920px;
	font-family: var(--nee-serif); font-size: 16px; line-height: 1.5;
	color: var(--nee-usp-text); text-wrap: pretty;
}
body:not(.home) .nee-usp p { font-size: 15px; }
.nee-usp strong { font-weight: 600; color: var(--nee-accent); }

/* =========================================================================
   8. Primary nav
   ========================================================================= */
.nee-navbar {
	display: flex; align-items: center; justify-content: space-between;
	padding: 0 48px;
	border-top: 1px solid var(--nee-hairline-dark);
	border-bottom: 1px solid var(--nee-hairline-dark);
}
.nee-nav-toggle {
	display: none;
	font-family: var(--nee-sans); font-size: 14px; font-weight: 600;
	background: none; border: 1px solid var(--nee-hairline-dark);
	color: var(--nee-nav-ink); padding: 10px 16px; margin: 8px 0;
	cursor: pointer; min-height: 44px;
}
.nee-nav ul { display: flex; gap: 28px; list-style: none; margin: 0; padding: 0; }
.nee-nav a {
	display: inline-block; padding: 15px 0;
	font-family: var(--nee-sans); font-size: 14px; font-weight: 500;
	color: var(--nee-nav-ink); border-bottom: 2px solid transparent;
}
.nee-nav a:hover { color: var(--nee-accent); }
.nee-nav .current-menu-item > a,
.nee-nav .current-menu-ancestor > a,
.nee-nav .current_page_item > a {
	color: var(--nee-accent);
	border-bottom-color: var(--nee-accent);
}
/* Dropdown sub-menus (spec Rev 2A.3): hover + keyboard (:focus-within) */
.nee-nav li { position: relative; }
.nee-nav .menu-item-has-children > a::after {
	content: ' \25BE';
	font-size: 9px;
	color: var(--nee-mono-gray);
	vertical-align: 2px;
}
.nee-nav .sub-menu {
	display: none;
	position: absolute;
	top: 100%; left: -18px;
	min-width: 220px;
	background: var(--nee-paper);
	border: 1px solid var(--nee-hairline-dark);
	box-shadow: 0 18px 40px -22px rgba(30, 20, 10, 0.45);
	padding: 6px 0;
	margin: 0;
	z-index: 60;
	flex-direction: column;
	gap: 0;
}
.nee-nav li:hover > .sub-menu,
.nee-nav li:focus-within > .sub-menu { display: block; }
.nee-nav .sub-menu li { width: 100%; }
.nee-nav .sub-menu a {
	display: block;
	padding: 9px 18px;
	font-size: 13.5px;
	border-bottom: 0;
	white-space: nowrap;
}
.nee-nav .sub-menu .current-menu-item > a { color: var(--nee-accent); border-bottom: 0; }

.nee-nav-right { display: flex; align-items: center; gap: 16px; }
.nee-search-form input[type="search"] {
	font-family: var(--nee-sans); font-size: 13px; padding: 8px 12px;
	border: 1px solid var(--nee-hairline-dark); background: #FDFCFA;
	width: 160px; color: var(--nee-ink);
}
.nee-login-link { font-size: 13px; font-weight: 600; color: var(--nee-nav-ink); white-space: nowrap; }

/* =========================================================================
   9. Live ribbon (home only)
   ========================================================================= */
.nee-ribbon {
	display: flex; align-items: center;
	background: #3A362F; color: #E5E0D6;
	font-family: var(--nee-mono); font-size: 12px;
	padding: 0 48px; gap: 0;
}
.nee-ribbon-label {
	padding: 11px 0; letter-spacing: 0.12em; text-transform: uppercase;
	color: #C89A72;
}
.nee-ribbon-sep { margin: 0 16px; opacity: 0.35; }
.nee-ribbon-date { margin-left: auto; color: #B7B0A3; }
a.nee-ribbon-date { padding: 11px 0; }
a.nee-ribbon-date:hover, a.nee-ribbon-date:focus-visible {
	color: #E8A79E;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* =========================================================================
   10. Home (front-page.php)
   ========================================================================= */
.nee-home-grid { display: grid; grid-template-columns: 1fr 344px; }
.nee-home-main { padding: 40px 40px 48px; border-right: 1px solid var(--nee-hairline); }
.nee-kicker {
	font-family: var(--nee-mono); font-size: 11px; font-weight: 500;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--nee-accent);
	margin-bottom: 12px;
}
.nee-kicker a { color: var(--nee-accent); }
.nee-lead-title {
	font-family: var(--nee-serif); font-weight: 600; font-size: 46px;
	line-height: 1.03; letter-spacing: -0.015em; margin: 0 0 20px;
}
.nee-lead-thumb, .nee-lead-thumb img { display: block; width: 100%; }
.nee-lead-thumb img { height: 320px; object-fit: cover; }
.nee-standfirst {
	font-family: var(--nee-serif); font-size: 20px; line-height: 1.45;
	color: var(--nee-nav-ink); margin: 20px 0 14px;
}
.nee-readmore {
	font-family: var(--nee-sans); font-size: 14px; font-weight: 600;
	color: var(--nee-accent); text-decoration: underline; text-underline-offset: 3px;
}
.nee-readmore:hover { color: var(--nee-ink-strong); }
.nee-divider { border: 0; border-top: 1px solid var(--nee-hairline); margin: 38px 0; }
.nee-secondaries { display: grid; grid-template-columns: 1fr 1fr; gap: 34px; }
.nee-secondary-thumb img { display: block; width: 100%; height: 150px; object-fit: cover; }
.nee-card-title {
	font-family: var(--nee-serif); font-weight: 600; font-size: 27px;
	line-height: 1.12; margin: 12px 0 10px;
}
.nee-card-title a:hover, .nee-lead-title a:hover, .nee-row-title a:hover { color: var(--nee-accent); }
.nee-excerpt { font-family: var(--nee-sans); font-size: 16px; line-height: 1.5; color: var(--nee-ink); margin: 0 0 10px; }
.nee-section-label {
	display: inline-block;
	font-family: var(--nee-sans); font-size: 12px; font-weight: 700;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--nee-ink);
	border-bottom: 2px solid var(--nee-label-underline);
	padding-bottom: 6px; margin: 0 0 24px;
}
.nee-journal-rows { display: grid; gap: 22px; }
.nee-journal-row { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: baseline; }
.nee-row-title { font-family: var(--nee-serif); font-weight: 600; font-size: 21px; line-height: 1.2; margin: 0 0 4px; }
.nee-row-dek { font-family: var(--nee-sans); font-size: 14.5px; color: var(--nee-muted); margin: 0; }
.nee-row-cat {
	font-family: var(--nee-mono); font-size: 11px; letter-spacing: 0.06em;
	text-transform: uppercase; color: var(--nee-mono-gray); text-align: right; white-space: nowrap;
}
.nee-archive-btn {
	display: inline-block; margin-top: 34px;
	font-family: var(--nee-sans); font-size: 13.5px; font-weight: 600;
	color: var(--nee-accent); border: 1px solid var(--nee-accent);
	padding: 11px 20px;
}
.nee-archive-btn:hover { background: var(--nee-accent); color: var(--nee-tip-text); }

/* =========================================================================
   11. Sidebar
   ========================================================================= */
.nee-sidebar { padding: 40px 34px 48px; background: var(--nee-paper-alt); }
.nee-sidebar section + section, .nee-sidebar .widget { margin-top: 36px; }
.nee-sidebar .nee-section-label, .nee-sidebar .widget-title {
	display: inline-block;
	font-family: var(--nee-sans); font-size: 12px; font-weight: 700;
	letter-spacing: 0.14em; text-transform: uppercase; color: var(--nee-ink);
	border-bottom: 2px solid var(--nee-label-underline);
	padding-bottom: 6px; margin: 0 0 18px;
}
.nee-sidebar ul { list-style: none; margin: 0; padding: 0; }
.nee-sidebar li { margin: 0 0 12px; }
.nee-sidebar li a { font-family: var(--nee-sans); font-size: 14.5px; line-height: 1.4; color: var(--nee-ink); }
.nee-sidebar li a:hover { color: var(--nee-accent); }
.nee-dept-cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.nee-dept-cloud a {
	display: inline-block; font-family: var(--nee-sans); font-size: 12.5px;
	border: 1px solid #D6D0C6; background: var(--nee-paper);
	padding: 6px 10px; color: var(--nee-ink);
}
.nee-dept-cloud a:hover { border-color: var(--nee-accent); color: var(--nee-accent); }

/* Tip of the Week card (conversion component — do not lose) */
.nee-tip {
	background: var(--nee-accent); color: var(--nee-tip-text);
	padding: 28px 24px;
	box-shadow: 0 18px 40px -20px rgba(154, 43, 34, 0.55);
}
.nee-tip-label {
	font-family: var(--nee-sans); font-size: 11px; font-weight: 600;
	letter-spacing: 0.2em; text-transform: uppercase; opacity: 0.9; margin: 0 0 12px;
}
.nee-tip-hook {
	font-family: var(--nee-serif); font-style: italic; font-weight: 600;
	font-size: 25px; line-height: 1.15; margin: 0 0 12px; color: var(--nee-tip-text);
}
.nee-tip-copy { font-family: var(--nee-sans); font-size: 13px; line-height: 1.5; margin: 0 0 16px; opacity: 0.95; }
.nee-tip form { margin: 0; }
.nee-tip input[type="email"], .nee-tip input[type="text"] {
	display: block; width: 100%; font-family: var(--nee-sans); font-size: 14px;
	padding: 11px 12px; border: 0; margin: 0 0 10px; background: #FDFCFA; color: var(--nee-ink);
}
.nee-tip button, .nee-tip input[type="submit"] {
	display: block; width: 100%; cursor: pointer;
	font-family: var(--nee-sans); font-size: 13px; font-weight: 600;
	letter-spacing: 0.06em; text-transform: uppercase;
	background: var(--nee-ink-strong); color: var(--nee-paper);
	border: 0; padding: 13px 12px;
}
.nee-tip button:hover, .nee-tip input[type="submit"]:hover { background: #211E19; }
.nee-tip-micro { font-family: var(--nee-sans); font-size: 11.5px; opacity: 0.8; margin: 10px 0 0; }
.nee-tip-admin-note {
	font-family: var(--nee-sans); font-size: 12px; background: rgba(0,0,0,0.25);
	padding: 10px; margin-top: 8px;
}

/* =========================================================================
   11b. Sticky-note component (Rev 2A.4, renamed Rev 2A.5) — aside for page
   content. Apply class "nee-sticky-note" to any Group/HTML block (e.g. the
   login page's membership-benefits section).
   NOTE: ".nee-note" is RESERVED by nee-data-widgets for dashboard hint
   boxes — the theme must never style it (Rev 2A.5 collision fix).
   ========================================================================= */
.nee-sticky-note {
	background: #FBF3C4;
	border: 1px solid #E3D289;
	padding: 24px 26px;
	margin: 28px 0;
	box-shadow: 0 14px 30px -18px rgba(30, 20, 10, 0.45);
}
.nee-sticky-note h2, .nee-sticky-note h3 {
	font-family: var(--nee-serif);
	margin-top: 0;
}
.nee-sticky-note a { color: var(--nee-accent); }

/* =========================================================================
   12. Article (single.php)
   ========================================================================= */
.nee-article-grid { display: grid; grid-template-columns: 1fr 320px; }
.nee-article-main { padding: 44px 56px 52px; border-right: 1px solid var(--nee-hairline); }
.nee-breadcrumb {
	font-family: var(--nee-mono); font-size: 11.5px; color: var(--nee-mono-gray);
	margin-bottom: 18px; letter-spacing: 0.02em;
}
.nee-breadcrumb a { color: var(--nee-mono-gray); }
.nee-breadcrumb a:hover { color: var(--nee-accent); }
.nee-breadcrumb .current { color: var(--nee-accent); }
.nee-article-title {
	font-family: var(--nee-serif); font-weight: 600; font-size: 52px;
	line-height: 1.02; letter-spacing: -0.02em; margin: 0 0 24px;
}
.nee-byline { display: flex; align-items: center; gap: 14px; margin: 0 0 28px; flex-wrap: wrap; }
.nee-avatar {
	width: 44px; height: 44px; border-radius: 50%; flex: 0 0 auto;
	background: var(--nee-accent); color: var(--nee-tip-text);
	font-family: var(--nee-sans); font-size: 15px; font-weight: 600;
	display: flex; align-items: center; justify-content: center;
}
.nee-byline-name { font-family: var(--nee-sans); font-size: 14px; font-weight: 600; }
.nee-byline-meta { font-family: var(--nee-mono); font-size: 12px; color: var(--nee-mono-gray); }
.nee-byline-actions { margin-left: auto; display: flex; gap: 10px; }
.nee-byline-actions button {
	font-family: var(--nee-sans); font-size: 12.5px; font-weight: 500; cursor: pointer;
	background: none; border: 1px solid var(--nee-hairline-dark); color: var(--nee-nav-ink);
	padding: 7px 14px;
}
.nee-byline-actions button:hover { border-color: var(--nee-accent); color: var(--nee-accent); }
.nee-hero img { display: block; width: 100%; height: 360px; object-fit: cover; }
.nee-hero-caption { font-family: var(--nee-mono); font-size: 11.5px; color: var(--nee-mono-gray); margin: 8px 0 0; }

/* Article body typography (mirrored in editor.css for editor parity) */
.nee-content { font-family: var(--nee-serif); font-size: 18px; line-height: 1.65; margin-top: 30px; }
.nee-content > p:first-child { font-size: 22px; line-height: 1.5; color: var(--nee-nav-ink); }
.nee-content h2 { font-family: var(--nee-serif); font-weight: 600; font-size: 30px; line-height: 1.15; margin: 38px 0 16px; }
.nee-content h3 { font-family: var(--nee-serif); font-weight: 600; font-size: 24px; margin: 32px 0 12px; }
.nee-content a { color: var(--nee-accent); text-decoration: underline; text-underline-offset: 3px; }
.nee-content a:hover { color: var(--nee-ink-strong); }
.nee-content blockquote {
	font-family: var(--nee-serif); font-style: italic; font-size: 26px; line-height: 1.35;
	color: var(--nee-usp-text); border-left: 3px solid var(--nee-accent);
	margin: 36px 0; padding-left: 28px;
}
.nee-content blockquote p { margin: 0; }
.nee-content img { height: auto; }
.nee-content figcaption { font-family: var(--nee-mono); font-size: 11.5px; color: var(--nee-mono-gray); }
.nee-content code { font-family: var(--nee-mono); font-size: 0.85em; background: var(--nee-paper-alt); padding: 1px 5px; }
.nee-content table { border-collapse: collapse; width: 100%; font-family: var(--nee-sans); font-size: 15px; }
.nee-content th, .nee-content td { border: 1px solid var(--nee-hairline); padding: 8px 10px; text-align: left; }
.nee-page-links { font-family: var(--nee-sans); font-size: 14px; margin-top: 24px; }

/* =========================================================================
   13. Data shell (template-data.php)
   ========================================================================= */
.nee-data-header { padding: 30px 40px 22px; border-bottom: 1px solid var(--nee-hairline); }
.nee-data-title { font-family: var(--nee-serif); font-weight: 600; font-size: 40px; line-height: 1.05; margin: 10px 0 8px; }
.nee-data-desc { font-family: var(--nee-sans); font-size: 15.5px; color: var(--nee-muted); margin: 0; }
.nee-data-meta { display: flex; align-items: center; gap: 12px; margin-top: 14px; }
.nee-live-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--nee-live-green); display: inline-block; }
.nee-data-pill {
	font-family: var(--nee-mono); font-size: 11.5px; color: var(--nee-mono-gray);
	border: 1px solid var(--nee-hairline-dark); border-radius: 999px; padding: 4px 12px;
}
.nee-data-body { padding: 30px 40px 48px; }

/* =========================================================================
   14. Archive / search / 404 / page
   ========================================================================= */
.nee-archive-main { padding: 40px 48px 48px; max-width: 860px; }
.nee-archive-header { margin-bottom: 30px; }
.nee-archive-title { font-family: var(--nee-serif); font-weight: 600; font-size: 40px; line-height: 1.05; margin: 8px 0; }
.nee-archive-desc { font-family: var(--nee-sans); font-size: 15px; color: var(--nee-muted); }
.nee-pagination { margin-top: 38px; font-family: var(--nee-sans); font-size: 14px; font-weight: 500; }
.nee-pagination .page-numbers {
	display: inline-block; padding: 8px 13px; border: 1px solid var(--nee-hairline-dark);
	color: var(--nee-nav-ink); margin-right: 6px;
}
.nee-pagination .page-numbers.current { background: var(--nee-accent); border-color: var(--nee-accent); color: var(--nee-tip-text); }
.nee-pagination a.page-numbers:hover { border-color: var(--nee-accent); color: var(--nee-accent); }
.nee-notfound { padding: 70px 48px 90px; text-align: center; max-width: 620px; margin: 0 auto; }
.nee-notfound h1 { font-family: var(--nee-serif); font-weight: 600; font-size: 44px; margin: 0 0 14px; }
.nee-notfound p { font-family: var(--nee-serif); font-size: 18px; color: var(--nee-muted); }
.nee-notfound .nee-search-form { margin: 26px auto; display: inline-block; }
.nee-notfound .nee-search-form input[type="search"] { width: 280px; }
.nee-page-main { padding: 44px 56px 52px; max-width: 860px; margin: 0 auto; }
.nee-page-title { font-family: var(--nee-serif); font-weight: 600; font-size: 44px; line-height: 1.05; margin: 0 0 20px; }

/* =========================================================================
   15. Footer
   ========================================================================= */
.nee-footer { background: var(--nee-ink-strong); color: var(--nee-footer-text); padding: 36px 48px; }
.nee-footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.nee-footer-wordmark { font-family: var(--nee-serif); font-weight: 600; font-size: 24px; color: var(--nee-footer-wordmark); margin: 0 0 8px; }
.nee-footer-tagline { font-family: var(--nee-serif); font-style: italic; font-size: 14.5px; margin: 0 0 14px; }
.nee-footer-copy { font-family: var(--nee-sans); font-size: 12.5px; opacity: 0.75; }
.nee-footer-head {
	font-family: var(--nee-mono); font-size: 12px; letter-spacing: 0.14em;
	text-transform: uppercase; color: var(--nee-footer-head); margin: 0 0 14px;
}
.nee-footer ul { list-style: none; margin: 0; padding: 0; }
.nee-footer li { margin: 0 0 10px; }
.nee-footer li a { font-family: var(--nee-sans); font-size: 13.5px; color: var(--nee-footer-text); }
.nee-footer li a:hover { color: var(--nee-footer-wordmark); }

/* =========================================================================
   16. Responsive (spec Rev 2A.1 — Responsive behavior)
   ========================================================================= */
@media (max-width: 1360px) {
	.nee-paper--data { max-width: none; margin: 0; }
	.nee-data-body { overflow-x: auto; }
}
@media (max-width: 900px) {
	.nee-page { padding: 0; }
	.nee-paper { max-width: none; border: 0; box-shadow: none; }
	.nee-masthead { padding: 26px 24px 16px; }
	.nee-wordmark, body:not(.home) .nee-wordmark { font-size: 40px; }
	.nee-tagline { font-size: 16px; }
	.nee-band { height: 110px !important; }
	body:not(.home) .nee-band { height: 90px !important; }
	.nee-usp, body:not(.home) .nee-usp { padding: 12px 24px; }
	.nee-footer { padding: 30px 24px; }
	.nee-footer-grid { grid-template-columns: 1fr; gap: 26px; }

	/* Nav collapses to a disclosure button */
	.nee-navbar { flex-wrap: wrap; padding: 0 24px; }
	.nee-nav-toggle { display: inline-block; }
	.nee-nav { display: none; width: 100%; }
	.nee-nav.is-open { display: block; }
	.nee-nav ul { flex-direction: column; gap: 0; padding: 6px 0 12px; }
	.nee-nav a { display: block; padding: 12px 0; min-height: 44px; font-size: 15px; }

	/* Collapsed nav: sub-menus render inline, indented, always visible */
	.nee-nav .sub-menu {
		display: block;
		position: static;
		min-width: 0;
		background: transparent;
		border: 0;
		box-shadow: none;
		padding: 0 0 0 18px;
	}
	.nee-nav .sub-menu a { padding: 10px 0; min-height: 44px; font-size: 14px; white-space: normal; }
	.nee-nav .menu-item-has-children > a::after { content: ''; }
	.nee-nav-right { display: none; width: 100%; padding: 0 0 14px; }
	.nee-nav.is-open + .nee-nav-right, .nee-navbar.is-open .nee-nav-right { display: flex; }
	.nee-search-form input[type="search"] { width: 100%; }
	.nee-search-form { flex: 1; }

	/* Ribbon wraps */
	.nee-ribbon { flex-wrap: wrap; padding: 4px 24px; row-gap: 0; }
	.nee-ribbon-date { margin-left: 0; flex-basis: 100%; padding-bottom: 8px; }

	/* Grids stack — sidebar below main, Tip card first */
	.nee-home-grid, .nee-article-grid { grid-template-columns: 1fr; }
	.nee-home-main, .nee-article-main { border-right: 0; padding: 28px 24px 36px; }
	.nee-secondaries { grid-template-columns: 1fr; gap: 28px; }
	.nee-lead-title { font-size: 32px; }
	.nee-article-title { font-size: 34px; }
	.nee-content h2 { font-size: 24px; }
	.nee-content blockquote { font-size: 22px; }
	.nee-sidebar { padding: 30px 24px 40px; }
	.nee-archive-main, .nee-page-main { padding: 28px 24px 40px; }
	.nee-data-header, .nee-data-body { padding-left: 24px; padding-right: 24px; }
	.nee-masthead--compact { flex-direction: column; align-items: flex-start; padding: 18px 24px; }
	.nee-journal-row { grid-template-columns: 1fr; gap: 4px; }
	.nee-row-cat { text-align: left; }
}

/* Print */
@media print {
	.nee-navbar, .nee-ribbon, .nee-sidebar, .nee-footer, .nee-usp, .nee-byline-actions, .nee-skip-link { display: none !important; }
	.nee-home-grid, .nee-article-grid { grid-template-columns: 1fr; }
	.nee-paper { border: 0; box-shadow: none; }
	body { background: #fff; }
}
