/* ==========================================================================
   NuWeb Network — design system
   Ported from the NuCast 2026 site. Every colour reads from a token, and
   the per-brand accent tokens (--nw-accent*) are printed inline by
   functions.php from the active brand preset.
   ========================================================================== */

/* ---------- 1. Tokens ---------- */

:root {
	/* Brand accent (overridden inline per brand) */
	--nw-accent: #8E2BD0;
	--nw-accent-2: #7209B7;
	--nw-accent-ink: #7209B7;
	--nw-accent-soft: #C16EF7;
	--nw-accent-rgb: 142, 43, 208;

	/* Shared network palette */
	--nw-navy: #343E56;
	--nw-navy-deep: #252D3D;
	--nw-cyan: #4CC9F0;
	--nw-yellow: #F4C146;
	--nw-yellow-hover: #E3AE2E;
	--nw-success: #20A875;
	--nw-danger: #C2414E;

	/* Light scheme */
	--nw-bg: #F7F9FC;
	--nw-surface: #FFFFFF;
	--nw-surface-2: #F7F9FC;
	--nw-surface-3: #EEF3F9;
	--nw-heading: #343E56;
	--nw-text: #5D6678;
	--nw-muted: #6B7385;
	--nw-border: #E5EAF0;
	--nw-border-strong: #D5DCE6;
	--nw-link: var(--nw-accent-ink);
	--nw-accent-text: var(--nw-accent-ink);
	--nw-shadow-sm: 0 6px 18px rgba(52, 62, 86, .06);
	--nw-shadow: 0 17px 38px rgba(52, 62, 86, .075);
	--nw-shadow-lg: 0 22px 60px rgba(52, 62, 86, .14);
	--nw-header-bg: rgba(255, 255, 255, .985);
	--nw-topbar-bg: linear-gradient(90deg, #F8FCFF 0%, #EDF8FF 45%, #DDF3FF 100%);
	--nw-footer-bg: linear-gradient(180deg, #F8FCFF 0%, #EDF8FF 18%, #DEEFFB 45%, #C9E4F6 72%, #B5D9EF 100%);
	--nw-footer-text: #343E56;
	--nw-footer-muted: #4F5A70;
	--nw-hero-overlay: linear-gradient(90deg, rgba(24, 31, 45, .94) 0%, rgba(31, 40, 57, .89) 38%, rgba(37, 45, 61, .7) 62%, rgba(37, 45, 61, .45) 100%);
	--nw-hero-base: radial-gradient(circle at 82% 18%, rgba(var(--nw-accent-rgb), .38), transparent 42%), radial-gradient(circle at 70% 90%, rgba(76, 201, 240, .22), transparent 40%), linear-gradient(135deg, #1C2436 0%, #252D3D 55%, #2E3850 100%);

	/* Type & shape */
	--nw-font: "Plus Jakarta Sans", -apple-system, "Segoe UI", Roboto, sans-serif;
	--nw-radius-sm: 8px;
	--nw-radius: 14px;
	--nw-radius-lg: 18px;
	--nw-container: 1220px;
	--nw-gutter: 30px;
	--nw-header-h: 80px;
	--nw-ease: cubic-bezier(.2, .7, .2, 1);

	color-scheme: light;
}

html[data-theme="dark"] {
	--nw-bg: #0D1422;
	--nw-surface: #162033;
	--nw-surface-2: #111A2B;
	--nw-surface-3: #19233A;
	--nw-heading: #EEF2F8;
	--nw-text: #B9C3D4;
	--nw-muted: #97A3B8;
	--nw-border: rgba(148, 163, 190, .18);
	--nw-border-strong: rgba(148, 163, 190, .3);
	--nw-link: var(--nw-accent-soft);
	--nw-accent-text: var(--nw-accent-soft);
	--nw-shadow-sm: 0 6px 18px rgba(0, 0, 0, .18);
	--nw-shadow: 0 17px 38px rgba(0, 0, 0, .225);
	--nw-shadow-lg: 0 22px 60px rgba(0, 0, 0, .39);
	--nw-header-bg: rgba(22, 32, 51, .985);
	--nw-topbar-bg: linear-gradient(90deg, #111A2B 0%, #192934 45%, #192A34 100%);
	--nw-footer-bg: linear-gradient(180deg, #111A2B 0%, #0D1422 100%);
	--nw-footer-text: #EEF2F8;
	--nw-footer-muted: #B9C3D4;
	--nw-hero-overlay: linear-gradient(90deg, rgba(10, 16, 27, .95) 0%, rgba(25, 35, 58, .9) 38%, rgba(25, 35, 58, .72) 62%, rgba(25, 35, 58, .5) 100%);
	--nw-hero-base: radial-gradient(circle at 82% 18%, rgba(var(--nw-accent-rgb), .32), transparent 42%), radial-gradient(circle at 70% 90%, rgba(76, 201, 240, .16), transparent 40%), linear-gradient(135deg, #0A101B 0%, #111A2B 55%, #19233A 100%);

	color-scheme: dark;
}

/* ---------- 2. Base ---------- */

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--nw-header-h) + 20px); }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

body {
	margin: 0;
	background: var(--nw-bg);
	color: var(--nw-text);
	font-family: var(--nw-font);
	font-size: 16px;
	line-height: 1.75;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
.nw-js body { transition: background-color .25s ease, color .25s ease; }

h1, h2, h3, h4, h5, h6 {
	margin: 0 0 .6em;
	color: var(--nw-heading);
	font-family: var(--nw-font);
	font-weight: 800;
	line-height: 1.15;
	letter-spacing: -.02em;
}
h1 { font-size: clamp(36px, 4.6vw, 56px); letter-spacing: -.035em; }
h2 { font-size: clamp(28px, 3.4vw, 40px); }
h3 { font-size: 20px; letter-spacing: -.01em; }
h4 { font-size: 17px; }

p { margin: 0 0 1.2em; }
a { color: var(--nw-link); text-underline-offset: 3px; }
a:hover { color: var(--nw-heading); }
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
hr { border: 0; border-top: 1px solid var(--nw-border); margin: 2.5em 0; }
strong, b { color: var(--nw-heading); font-weight: 800; }
::selection { background: rgba(var(--nw-accent-rgb), .22); color: var(--nw-heading); }

:focus-visible { outline: 2px solid var(--nw-accent); outline-offset: 3px; border-radius: 4px; }

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

.nw-skip-link {
	position: absolute; left: 16px; top: -60px; z-index: 1000;
	padding: 10px 16px; border-radius: var(--nw-radius-sm);
	background: var(--nw-yellow); color: var(--nw-navy); font-weight: 800; text-decoration: none;
}
.nw-skip-link:focus { top: 12px; }

.nw-main { display: block; outline: 0; }

.nw-container {
	width: min(var(--nw-container), calc(100% - (var(--nw-gutter) * 2)));
	margin-inline: auto;
}
.nw-container--narrow { width: min(780px, calc(100% - (var(--nw-gutter) * 2))); }

@media (max-width: 700px) { :root { --nw-gutter: 16px; } }

/* ---------- 3. Shared components ---------- */

.nw-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	margin-bottom: 17px; padding: 7px 13px;
	border-radius: 100px;
	background: rgba(var(--nw-accent-rgb), .11);
	color: var(--nw-accent-text);
	font-size: 12.5px; font-weight: 800; line-height: 1;
	letter-spacing: .07em; text-transform: uppercase;
}
.nw-eyebrow::before {
	content: ""; width: 7px; height: 7px; border-radius: 50%;
	background: var(--nw-accent);
}
.nw-eyebrow--plain { padding: 0; background: none; margin-bottom: 8px; }
.nw-eyebrow--plain::before { display: none; }

.nw-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 50px; padding: 14px 23px;
	border: 0; border-radius: var(--nw-radius-sm);
	background: var(--nw-yellow); color: var(--nw-navy);
	font: 800 15px/1 var(--nw-font);
	text-decoration: none; cursor: pointer;
	transition: transform .2s var(--nw-ease), background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.nw-btn:hover { transform: translateY(-2px); background: var(--nw-yellow-hover); color: var(--nw-navy); box-shadow: 0 10px 25px rgba(244, 193, 70, .25); }
.nw-btn:active { transform: translateY(0); }
.nw-btn--sm { min-height: 42px; padding: 0 14px; font-size: 13px; border-radius: 9px; }
.nw-btn--secondary {
	border: 1px solid var(--nw-border);
	background: var(--nw-surface); color: var(--nw-heading);
}
.nw-btn--secondary:hover { background: var(--nw-surface-2); color: var(--nw-heading); box-shadow: var(--nw-shadow-sm); border-color: var(--nw-border-strong); }
.nw-btn--accent { background: var(--nw-accent-ink); color: #fff; }
.nw-btn--accent:hover { background: var(--nw-accent-ink); color: #fff; filter: brightness(1.08); box-shadow: 0 10px 25px rgba(var(--nw-accent-rgb), .3); }
.nw-btn--ghost {
	border: 1px solid rgba(255, 255, 255, .25);
	background: rgba(255, 255, 255, .1); color: #fff;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.nw-btn--ghost:hover { background: rgba(255, 255, 255, .17); border-color: rgba(255, 255, 255, .42); color: #fff; box-shadow: 0 10px 25px rgba(0, 0, 0, .12); }
.nw-btn .nw-icon { flex: 0 0 auto; }

.nw-link-arrow {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--nw-accent-text); font-weight: 800; font-size: 14.5px; text-decoration: none;
}
.nw-link-arrow .nw-icon { transition: transform .2s var(--nw-ease); }
.nw-link-arrow:hover { color: var(--nw-heading); }
.nw-link-arrow:hover .nw-icon { transform: translateX(3px); }

.nw-badge {
	display: inline-flex; align-items: center;
	margin-left: 7px; padding: 3px 7px 2px;
	border-radius: 100px;
	font-size: 9.5px; font-weight: 800; line-height: 1.2;
	letter-spacing: .06em; text-transform: uppercase; vertical-align: middle;
	white-space: nowrap;
}
.nw-badge--new { color: #fff; background: linear-gradient(135deg, #7209B7, #8E2BD0); }
.nw-badge--updated { color: var(--nw-navy); background: var(--nw-yellow); }
.nw-badge--soon { color: #fff; background: linear-gradient(135deg, #343E56, #7209B7); }
.nw-badge--beta { color: #0B3B2A; background: #7EE7C0; }
html[data-theme="dark"] .nw-badge--soon { background: linear-gradient(135deg, #19233A, #7209B7); }

.nw-section { padding: clamp(64px, 8vw, 104px) 0; }
.nw-section--alt { background: var(--nw-surface); }
html[data-theme="dark"] .nw-section--alt { background: var(--nw-surface-2); }
.nw-section--tint { background: var(--nw-surface-3); }
html[data-theme="dark"] .nw-section--tint { background: var(--nw-surface); }

.nw-section-head { max-width: 760px; margin: 0 auto 46px; text-align: center; }
.nw-section-head h2 { margin-bottom: 14px; }
.nw-section-head p { margin: 0 auto; max-width: 680px; }
.nw-section-head--left { margin-left: 0; text-align: left; }

.nw-card {
	position: relative;
	padding: 28px;
	border: 1px solid var(--nw-border);
	border-radius: var(--nw-radius-lg);
	background: var(--nw-surface);
	transition: transform .25s var(--nw-ease), box-shadow .25s ease, border-color .25s ease;
}
html[data-theme="dark"] .nw-section--alt .nw-card,
html[data-theme="dark"] .nw-section--tint .nw-card { background: var(--nw-surface-2); }
.nw-card--hover:hover { transform: translateY(-4px); box-shadow: var(--nw-shadow); border-color: var(--nw-border-strong); }

.nw-icon-tile {
	display: inline-grid; place-items: center;
	width: 46px; height: 46px; margin-bottom: 18px;
	border-radius: 11px;
	background: rgba(var(--nw-accent-rgb), .11);
	color: var(--nw-accent-text);
}

.nw-grid { display: grid; gap: 22px; }
.nw-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nw-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nw-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 1000px) { .nw-grid--3, .nw-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nw-grid--2, .nw-grid--3, .nw-grid--4 { grid-template-columns: 1fr; } }

.nw-checklist { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }
.nw-checklist li { display: flex; gap: 11px; align-items: flex-start; color: var(--nw-heading); font-weight: 600; }
.nw-checklist li::before {
	content: ""; flex: 0 0 22px; height: 22px; margin-top: 2px; border-radius: 6px;
	background: rgba(32, 168, 117, .12) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7' fill='none' stroke='%2320A875' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 13px no-repeat;
}

/* ---------- 4. Header ---------- */

.nw-header { position: sticky; top: 0; z-index: 100; }
.admin-bar .nw-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .nw-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .nw-header { top: 0; } }

.nw-topbar {
	background: var(--nw-topbar-bg);
	border-bottom: 1px solid rgba(76, 201, 240, .14);
	color: var(--nw-heading);
	font-size: 13.5px; line-height: 1.3;
	transition: margin-top .3s var(--nw-ease);
}
.nw-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 41px; }
.nw-topbar__promo { display: flex; align-items: center; gap: 8px; min-width: 0; font-weight: 600; }
.nw-topbar__promo a { color: inherit; text-decoration: none; display: inline-flex; gap: 6px; }
.nw-topbar__promo a:hover span { text-decoration: underline; }
.nw-topbar__promo strong { color: var(--nw-accent-text); letter-spacing: .02em; white-space: nowrap; }
.nw-topbar__promo-icon { display: inline-flex; color: var(--nw-accent-text); }
.nw-promo { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.nw-promo--season { display: none; }
/* Keep quick links on one line; the promo shortens with "…" instead. */
.nw-topbar__links a, .nw-topbar__links button { white-space: nowrap; }
.nw-topbar__promo { overflow: hidden; }
.nw-promo strong { white-space: nowrap; }
.nw-promo span:not(.nw-topbar__promo-icon) { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nw-topbar__links { display: flex; gap: 20px; flex: 0 0 auto; }
.nw-topbar__links a {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--nw-heading); opacity: .85; font-weight: 600; text-decoration: none;
	transition: color .2s, opacity .2s;
}
.nw-topbar__links a:hover { color: var(--nw-accent-text); opacity: 1; }
.nw-topbar__links .nw-icon { color: var(--nw-accent-text); }
.nw-header.is-scrolled .nw-topbar { margin-top: -42px; }
@media (max-width: 760px) {
	.nw-topbar__links span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
	.nw-topbar__links { gap: 14px; }
	.nw-topbar__promo { font-size: 12.5px; }
	.nw-topbar__promo span:not(.nw-topbar__promo-icon) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

.nw-header__main {
	position: relative;
	background: var(--nw-header-bg);
	border-bottom: 1px solid var(--nw-border);
	box-shadow: 0 8px 30px rgba(11, 19, 43, .035);
	-webkit-backdrop-filter: saturate(140%) blur(10px); backdrop-filter: saturate(140%) blur(10px);
}
.nw-header.is-scrolled .nw-header__main { box-shadow: var(--nw-shadow); }
.nw-header__inner { display: flex; align-items: center; gap: 18px; min-height: var(--nw-header-h); }

/* Logo */
.nw-logo { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; color: var(--nw-heading); text-decoration: none; }
.nw-logo:hover { color: var(--nw-heading); }
.nw-logo__img { width: auto; max-height: 44px; }
.nw-logo--footer .nw-logo__img { max-height: 48px; }
.nw-logo__img--dark { display: none; }
html[data-theme="dark"] .nw-logo__img--light:has(+ .nw-logo__img--dark) { display: none; }
html[data-theme="dark"] .nw-logo__img--dark { display: block; }
.nw-logo__mark {
	display: grid; place-items: center;
	width: 40px; height: 40px; border-radius: 11px;
	background: linear-gradient(135deg, var(--nw-accent), var(--nw-accent-2));
	color: #fff; font-size: 14px; font-weight: 800; letter-spacing: -.02em;
	box-shadow: 0 8px 20px rgba(var(--nw-accent-rgb), .28);
}
.nw-logo__text { font-size: 21px; font-weight: 800; letter-spacing: -.03em; white-space: nowrap; }
.nw-logo__nu { color: var(--nw-accent-text); }

/* Desktop nav panel */
.nw-nav-panel { display: flex; align-items: center; gap: 14px; flex: 1 1 auto; min-width: 0; }
.nw-nav { flex: 1 1 auto; display: flex; justify-content: center; min-width: 0; }
.nw-nav-panel__account { display: none; }

.nw-menu { display: flex; align-items: center; gap: 2px; margin: 0; padding: 0; list-style: none; }
.nw-menu__item { position: relative; display: flex; align-items: center; }
.nw-menu__link {
	position: relative;
	display: inline-flex; align-items: center; gap: 6px;
	height: var(--nw-header-h); padding: 0 11px;
	border: 0; background: none;
	color: var(--nw-heading);
	font: 700 14px/1 var(--nw-font);
	text-decoration: none; white-space: nowrap; cursor: pointer;
	transition: color .2s;
}
.nw-menu__link::before {
	content: ""; position: absolute; left: 11px; right: 11px; bottom: 0; height: 3px;
	border-radius: 3px 3px 0 0;
	background: linear-gradient(90deg, var(--nw-accent-2), var(--nw-accent));
	transform: scaleX(0); transform-origin: left; transition: transform .25s var(--nw-ease);
}
.nw-menu__item:hover > .nw-menu__link,
.nw-menu__item.is-open > .nw-menu__link,
.nw-menu__item.is-current > .nw-menu__link { color: var(--nw-accent-text); }
.nw-menu__item:hover > .nw-menu__link::before,
.nw-menu__item.is-open > .nw-menu__link::before,
.nw-menu__item.is-current > .nw-menu__link::before { transform: scaleX(1); }
.nw-menu__link .nw-badge { margin-left: 2px; }
.nw-menu__toggle--caret {
	display: inline-grid; place-items: center; width: 22px; height: 30px; margin-left: -8px;
	border: 0; background: none; color: var(--nw-heading); cursor: pointer;
}
.nw-menu__caret {
	width: 7px; height: 7px; margin-top: -3px;
	border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
	transform: rotate(45deg); transition: transform .2s; opacity: .7;
}
.nw-menu__item.is-open .nw-menu__caret { transform: rotate(225deg); margin-top: 3px; }

/* Mega panel */
.nw-sub {
	position: absolute; top: calc(100% - 6px); left: 50%; z-index: 20;
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 10px;
	width: min(640px, 92vw); margin: 0; padding: 16px;
	list-style: none;
	border: 1px solid var(--nw-border); border-radius: 15px;
	background: var(--nw-surface);
	box-shadow: var(--nw-shadow-lg);
	opacity: 0; visibility: hidden;
	transform: translate(-50%, 8px);
	transition: opacity .18s ease, transform .22s var(--nw-ease), visibility 0s .22s;
}
.nw-sub:has(> li:only-child),
.nw-sub:has(> li:nth-child(2):last-child) { grid-template-columns: 1fr; width: 340px; }
.nw-menu__item:hover > .nw-sub,
.nw-menu__item:focus-within > .nw-sub,
.nw-menu__item.is-open > .nw-sub {
	opacity: 1; visibility: visible; transform: translate(-50%, 0);
	transition: opacity .18s ease, transform .22s var(--nw-ease), visibility 0s;
}
.nw-menu__item.is-closed > .nw-sub { opacity: 0; visibility: hidden; }
.nw-sub__link {
	display: block; padding: 12px 14px; border-radius: 10px;
	color: var(--nw-heading); text-decoration: none;
	transition: background .2s;
}
.nw-sub__link:hover,
.nw-sub__item.is-current .nw-sub__link { background: linear-gradient(135deg, rgba(var(--nw-accent-rgb), .07), rgba(76, 201, 240, .07)); }
.nw-sub__title { display: flex; align-items: center; font-size: 14.5px; font-weight: 800; line-height: 1.3; }
.nw-sub__link:hover .nw-sub__title { color: var(--nw-accent-text); }
.nw-sub__title .nw-badge { margin-left: 8px; }
.nw-sub__desc { display: block; margin-top: 3px; color: var(--nw-muted); font-size: 13px; line-height: 1.45; font-weight: 500; }

/* Brand switcher */
.nw-switcher { position: relative; flex: 0 0 auto; }
.nw-switcher__toggle {
	display: inline-flex; align-items: center; gap: 7px;
	height: 34px; padding: 0 10px;
	border: 1px solid rgba(var(--nw-accent-rgb), .25); border-radius: 9px;
	background: transparent; color: var(--nw-heading);
	font: 800 11px/1 var(--nw-font); letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
	transition: background .2s, border-color .2s;
}
.nw-switcher__toggle .nw-icon { color: var(--nw-accent-text); }
.nw-switcher__toggle:hover,
.nw-switcher.is-open .nw-switcher__toggle { background: rgba(var(--nw-accent-rgb), .08); border-color: rgba(var(--nw-accent-rgb), .45); }
.nw-switcher.is-open .nw-menu__caret { transform: rotate(225deg); margin-top: 3px; }
.nw-switcher__panel {
	position: absolute; top: calc(100% + 18px); left: 0; z-index: 30;
	width: min(590px, 92vw); padding: 22px;
	border: 1px solid var(--nw-border); border-radius: 15px;
	background: var(--nw-surface); box-shadow: var(--nw-shadow-lg);
}
.nw-switcher__panel[hidden] { display: none; }
.nw-switcher__head { margin-bottom: 16px; }
.nw-switcher__title { margin: 0; color: var(--nw-heading); font-size: 18px; font-weight: 800; line-height: 1.3; }
.nw-switcher__intro { margin: 2px 0 0; color: var(--nw-muted); font-size: 13.5px; line-height: 1.5; }
.nw-switcher__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.nw-switcher__grid > li { min-width: 0; }
.nw-switcher__brand {
	position: relative; display: flex; gap: 12px; align-items: center; height: 100%; min-height: 84px; padding: 14px 34px 14px 14px;
	border: 1px solid var(--nw-border); border-radius: 10px;
	background: linear-gradient(135deg, rgba(114, 9, 183, .043), rgba(76, 201, 240, .05));
	color: var(--nw-heading); text-decoration: none;
	transition: border-color .2s, background .2s, transform .2s var(--nw-ease), box-shadow .2s;
}
a.nw-switcher__brand:hover { border-color: rgba(var(--b-rgb), .55); transform: translateY(-2px); box-shadow: 0 10px 24px rgba(11, 19, 43, .08); color: var(--nw-heading); }
.nw-switcher__brand.is-current { border-color: rgba(var(--nw-accent-rgb), .45); background: linear-gradient(135deg, rgba(var(--nw-accent-rgb), .09), rgba(var(--nw-accent-rgb), .03)); }
.nw-switcher__brand.is-inactive { cursor: default; }
.nw-switcher__mark {
	display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; overflow: hidden; border-radius: 10px;
	background: linear-gradient(135deg, var(--b1), var(--b2)); color: var(--b-ink); font-size: 21px; font-weight: 800; line-height: 1;
}
.nw-switcher__mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nw-switcher__copy { display: grid; gap: 2px; min-width: 0; line-height: 1.35; }
.nw-switcher__name { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.nw-switcher__name strong { font-size: 14.5px; font-weight: 800; }
.nw-switcher__text { color: var(--nw-muted); font-size: 12.5px; }
.nw-switcher__current {
	justify-self: start; margin-top: 3px; padding: 3px 7px; border-radius: 999px;
	background: var(--nw-accent); color: #fff; font-style: normal; font-size: 9.5px; font-weight: 800; letter-spacing: .06em; line-height: 1.2; text-transform: uppercase;
}
.nw-switcher__chevron {
	position: absolute; top: 50%; right: 16px; width: 8px; height: 8px; margin-top: -4px;
	border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg);
	color: var(--nw-muted); opacity: .6; transition: right .2s, opacity .2s, color .2s;
}
a.nw-switcher__brand:hover .nw-switcher__chevron { right: 13px; opacity: 1; color: var(--nw-accent-text); }
html[data-theme="dark"] .nw-switcher__brand { background: linear-gradient(135deg, rgba(114, 9, 183, .12), rgba(76, 201, 240, .06)); }
html[data-theme="dark"] .nw-switcher__brand--nuweb .nw-switcher__mark { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); }
html[data-theme="dark"] a.nw-switcher__brand:hover { box-shadow: 0 10px 24px rgba(0, 0, 0, .3); }
.nw-switcher__foot {
	display: flex; justify-content: space-between; align-items: center; gap: 6px 12px; flex-wrap: wrap;
	margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--nw-border);
	color: var(--nw-muted); font-size: 13px;
}
.nw-switcher__foot span:first-child { color: var(--nw-heading); font-weight: 700; }

/* Header actions */
.nw-header__actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; margin-left: auto; }
.nw-theme-toggle {
	display: inline-grid; place-items: center; width: 42px; height: 42px; padding: 0;
	border: 1px solid var(--nw-border-strong); border-radius: 9px;
	background: transparent; color: var(--nw-heading); cursor: pointer;
	transition: background .2s, border-color .2s;
}
.nw-theme-toggle:hover { background: rgba(var(--nw-accent-rgb), .08); border-color: rgba(var(--nw-accent-rgb), .45); }
.nw-theme-toggle > span { display: inline-flex; }
.nw-theme-toggle__sun { display: none !important; }
html[data-theme="dark"] .nw-theme-toggle__sun { display: inline-flex !important; }
html[data-theme="dark"] .nw-theme-toggle__moon { display: none !important; }
.nw-header__account { box-shadow: 0 8px 20px rgba(244, 193, 70, .18); }

.nw-burger {
	display: none; place-items: center; align-content: center; gap: 4px;
	width: 42px; height: 42px; padding: 0;
	border: 1px solid var(--nw-border-strong); border-radius: 9px;
	background: var(--nw-surface); color: var(--nw-heading); cursor: pointer;
}
.nw-burger span { display: block; width: 18px; height: 2px; border-radius: 2px; background: currentColor; transition: transform .25s var(--nw-ease), opacity .2s; }
.nw-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.nw-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nw-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

/* Medium screens: tighten */
@media (max-width: 1240px) {
	.nw-menu__link { padding: 0 8px; font-size: 13.5px; }
	.nw-menu__link::before { left: 8px; right: 8px; }
	.nw-switcher__toggle span:not(.nw-menu__caret) { display: none; }
}

/* Mobile / tablet: drawer */
@media (max-width: 1080px) {
	:root { --nw-header-h: 70px; }
	.nw-burger { display: inline-grid; }
	.nw-header__account span { display: none; }
	.nw-header__account { width: 42px; padding: 0; }

	.nw-nav-panel {
		position: absolute; top: 100%; left: 0; right: 0;
		display: none; flex-direction: column; align-items: stretch; gap: 14px;
		max-height: calc(100vh - var(--nw-header-h) - 40px); overflow-y: auto; overscroll-behavior: contain;
		padding: 16px var(--nw-gutter) 24px;
		border-top: 1px solid var(--nw-border);
		background: var(--nw-surface); box-shadow: var(--nw-shadow);
	}
	.nw-header.is-menu-open .nw-nav-panel { display: flex; }
	.nw-nav { display: block; }
	.nw-menu { flex-direction: column; align-items: stretch; gap: 0; }
	.nw-menu__item { flex-wrap: wrap; border-bottom: 1px solid var(--nw-border); }
	.nw-menu__link { flex: 1 1 auto; height: auto; padding: 15px 2px; font-size: 15.5px; justify-content: space-between; }
	.nw-menu__link::before { display: none; }
	.nw-menu__toggle--caret { width: 44px; height: 44px; margin: 0; }
	.nw-sub,
	.nw-menu__item:hover > .nw-sub,
	.nw-menu__item:focus-within > .nw-sub {
		position: static; display: none; width: 100%; grid-template-columns: 1fr;
		margin: 0 0 12px; padding: 4px 0 4px 12px;
		border: 0; border-left: 2px solid rgba(var(--nw-accent-rgb), .3); border-radius: 0;
		background: none; box-shadow: none;
		opacity: 1; visibility: visible; transform: none; transition: none;
	}
	.nw-menu__item.is-open > .nw-sub { display: grid; }
	.nw-sub__link { padding: 10px 12px; }

	.nw-switcher { order: 2; }
	.nw-switcher__toggle { width: 100%; height: 44px; justify-content: flex-start; }
	.nw-switcher__toggle span:not(.nw-menu__caret) { display: inline; }
	.nw-switcher__toggle .nw-menu__caret { margin-left: auto; }
	.nw-switcher__panel { position: static; width: 100%; margin-top: 10px; padding: 14px; box-shadow: none; }
	.nw-nav-panel__account { display: inline-flex; order: 3; width: 100%; min-height: 48px; }
}
@media (max-width: 520px) {
	.nw-switcher__grid { grid-template-columns: 1fr; }
	.nw-header__account { display: none; }
	.nw-logo__text { font-size: 19px; }
	.nw-logo__mark { width: 36px; height: 36px; }
}

/* ---------- 5. Page header ---------- */

/* Page banner — the NuCast inner-page hero (template-parts/page-banner.php). */
.nw-banner {
	position: relative; overflow: hidden;
	padding: 88px 0 82px;
	background:
		radial-gradient(circle at 85% 18%, rgba(var(--nw-accent-rgb), .17), transparent 30%),
		radial-gradient(circle at 10% 90%, rgba(114, 9, 183, .05), transparent 26%),
		var(--nw-surface);
}
html[data-theme="dark"] .nw-banner {
	background:
		radial-gradient(circle at 85% 18%, rgba(var(--nw-accent-rgb), .2), transparent 32%),
		radial-gradient(circle at 10% 90%, rgba(114, 9, 183, .1), transparent 26%),
		var(--nw-surface-2);
}
.nw-banner--has-strip { padding-bottom: 110px; }
.nw-banner__grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 56px; align-items: center; }
.nw-banner--media .nw-banner__grid { grid-template-columns: minmax(0, 1.13fr) minmax(0, 1fr); }
.nw-banner:not(.nw-banner--media) .nw-banner__copy { max-width: 760px; }
.nw-banner__pills { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 17px; }
.nw-banner__pills .nw-eyebrow { margin-bottom: 0; font-size: 13px; letter-spacing: .07em; }
.nw-price-pill {
	display: inline-flex; align-items: center; gap: 5px; padding: 8px 14px; border-radius: 100px;
	background: #FFF8E5; color: #816A28; font-size: 13px; font-weight: 800; line-height: 1; text-transform: uppercase;
}
.nw-price-pill strong { color: var(--nw-navy); text-transform: none; }
html[data-theme="dark"] .nw-price-pill { background: rgba(244, 193, 70, .14); color: #E9C76A; }
html[data-theme="dark"] .nw-price-pill strong { color: #FFE7A6; }
.nw-banner__title {
	margin: 0 0 21px; color: var(--nw-heading);
	font-size: clamp(38px, 5.2vw, 59px); font-weight: 800; line-height: 1.025; letter-spacing: -.043em;
}
.nw-banner__title span { display: block; color: var(--nw-accent-text); }
.nw-banner__lead { max-width: 620px; margin: 0 0 27px; color: var(--nw-text); font-size: 16px; line-height: 1.7; }
.nw-banner__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 26px; }
.nw-banner__checks { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0; padding: 0; list-style: none; }
.nw-banner__checks li { display: inline-flex; align-items: center; gap: 8px; color: var(--nw-text); font-size: 14px; font-weight: 700; }
.nw-banner__checks li::before {
	content: "✓"; display: grid; place-items: center; width: 18px; height: 18px; border-radius: 50%;
	background: rgba(32, 168, 117, .12); color: var(--nw-success); font-size: 10px; font-weight: 900; line-height: 1;
}
.nw-banner__media {
	position: relative; overflow: hidden; aspect-ratio: 5 / 4; border: 1px solid var(--nw-border); border-radius: 22px;
	background: var(--nw-surface-3); box-shadow: var(--nw-shadow-lg);
}
.nw-banner__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nw-banner__media::after {
	content: ""; position: absolute; inset: auto -40px -40px auto; width: 180px; height: 180px; border-radius: 50%;
	background: radial-gradient(circle, rgba(var(--nw-accent-rgb), .35), transparent 70%); pointer-events: none;
}
@media (max-width: 980px) {
	.nw-banner { padding: 64px 0 60px; }
	.nw-banner--has-strip { padding-bottom: 88px; }
	.nw-banner--media .nw-banner__grid { grid-template-columns: 1fr; gap: 40px; }
	.nw-banner__media { max-width: 560px; aspect-ratio: 16 / 10; }
}
@media (max-width: 560px) {
	.nw-banner__actions .nw-btn { flex: 1 1 100%; }
}

/* Feature strip overlapping the bottom of the banner. */
.nw-banner-strip { position: relative; z-index: 2; margin-top: -28px; }
.nw-banner-strip__grid {
	display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	border: 1px solid var(--nw-border); border-radius: 14px; background: var(--nw-surface); box-shadow: var(--nw-shadow);
	overflow: hidden;
}
.nw-banner-strip__item { display: grid; justify-items: center; align-content: start; gap: 2px; padding: 23px 18px; text-align: center; }
.nw-banner-strip__item + .nw-banner-strip__item { border-left: 1px solid var(--nw-border); }
.nw-banner-strip__icon {
	display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 10px; border-radius: 8px;
	background: rgba(var(--nw-accent-rgb), .11); color: var(--nw-accent-text); font-size: 12px; font-weight: 900; text-transform: uppercase;
}
.nw-banner-strip__item strong { color: var(--nw-heading); font-size: 16px; font-weight: 800; }
.nw-banner-strip__item span:last-child:not(.nw-banner-strip__icon) { color: var(--nw-muted); font-size: 14px; line-height: 1.5; }
@media (max-width: 760px) {
	.nw-banner-strip__grid { grid-template-columns: 1fr 1fr; }
	.nw-banner-strip__item:nth-child(3) { border-left: 0; }
	.nw-banner-strip__item:nth-child(n+3) { border-top: 1px solid var(--nw-border); }
}

.nw-page-header {
	position: relative; overflow: hidden;
	padding: clamp(56px, 7vw, 92px) 0 clamp(48px, 6vw, 76px);
	background:
		radial-gradient(circle at 85% 15%, rgba(var(--nw-accent-rgb), .12), transparent 40%),
		radial-gradient(circle at 10% 100%, rgba(76, 201, 240, .1), transparent 38%),
		var(--nw-surface);
	border-bottom: 1px solid var(--nw-border);
	text-align: center;
}
html[data-theme="dark"] .nw-page-header {
	background:
		radial-gradient(circle at 85% 15%, rgba(var(--nw-accent-rgb), .18), transparent 40%),
		radial-gradient(circle at 10% 100%, rgba(76, 201, 240, .1), transparent 38%),
		var(--nw-surface-2);
}
.nw-page-header__title { max-width: 900px; margin: 0 auto 10px; }
.nw-page-header__lead { max-width: 680px; margin: 0 auto; font-size: 17.5px; }
.nw-page-header .nw-post-meta { justify-content: center; margin-top: 14px; }
.nw-breadcrumbs { margin-bottom: 14px; font-size: 13.5px; color: var(--nw-muted); }
.nw-breadcrumbs a { color: var(--nw-muted); text-decoration: none; }
.nw-breadcrumbs a:hover { color: var(--nw-accent-text); }

/* ---------- 6. Content (prose) ---------- */

.nw-content-wrap { padding: clamp(48px, 6vw, 80px) 0 clamp(64px, 8vw, 104px); }
.nw-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 56px; align-items: start; }
@media (max-width: 980px) { .nw-layout { grid-template-columns: 1fr; } }

.nw-prose { font-size: 17px; line-height: 1.8; }
.nw-prose > *:first-child { margin-top: 0; }
.nw-prose h2 { margin-top: 1.8em; font-size: clamp(25px, 2.6vw, 31px); }
.nw-prose h3 { margin-top: 1.6em; font-size: 21px; }
.nw-prose ul, .nw-prose ol { padding-left: 1.3em; margin: 0 0 1.3em; }
.nw-prose li { margin-bottom: .45em; }
.nw-prose li::marker { color: var(--nw-accent); }
.nw-prose blockquote {
	margin: 1.8em 0; padding: 22px 26px;
	border-left: 4px solid var(--nw-accent); border-radius: 0 var(--nw-radius) var(--nw-radius) 0;
	background: rgba(var(--nw-accent-rgb), .06);
	color: var(--nw-heading); font-size: 18.5px; font-weight: 600;
}
.nw-prose blockquote p:last-child { margin: 0; }
.nw-prose img, .nw-prose figure img { border-radius: var(--nw-radius); }
.nw-prose figure { margin: 2em 0; }
.nw-prose figcaption, .wp-element-caption { margin-top: 10px; color: var(--nw-muted); font-size: 14px; text-align: center; }
.nw-prose code { padding: 2px 6px; border-radius: 5px; background: var(--nw-surface-3); color: var(--nw-heading); font-size: .9em; }
.nw-prose pre { overflow-x: auto; padding: 20px; border-radius: var(--nw-radius); background: #0D1422; color: #EEF2F8; font-size: 14px; line-height: 1.6; }
.nw-prose pre code { padding: 0; background: none; color: inherit; }
.nw-prose table { width: 100%; border-collapse: collapse; margin: 1.6em 0; font-size: 15px; }
.nw-prose th, .nw-prose td { padding: 12px 14px; border-bottom: 1px solid var(--nw-border); text-align: left; }
.nw-prose th { color: var(--nw-heading); font-weight: 800; background: var(--nw-surface-3); }
.nw-prose a:not([class]) { font-weight: 600; }

.alignwide { width: min(1100px, 100vw - (var(--nw-gutter) * 2)); margin-left: 50%; transform: translateX(-50%); max-width: none; }
.alignfull { width: 100vw; margin-left: 50%; transform: translateX(-50%); max-width: none; }
.alignleft { float: left; margin: .3em 1.6em 1em 0; }
.alignright { float: right; margin: .3em 0 1em 1.6em; }
.aligncenter { margin-left: auto; margin-right: auto; }

/* Block button + core styles to match */
.wp-block-button__link,
.wp-element-button { border-radius: var(--nw-radius-sm); background: var(--nw-yellow); color: var(--nw-navy); font-weight: 800; padding: 14px 23px; }
.wp-block-button__link:hover { background: var(--nw-yellow-hover); color: var(--nw-navy); }
.is-style-outline > .wp-block-button__link { border: 1px solid var(--nw-border-strong); background: transparent; color: var(--nw-heading); }

/* ---------- 7. Elementor & full-width templates ---------- */

.nw-full-width .nw-main > .nw-entry,
.nw-elementor .nw-main > .nw-entry { width: 100%; }
.nw-elementor .elementor-section.elementor-section-boxed > .elementor-container { max-width: var(--nw-container); }
body.nw-canvas { background: var(--nw-bg); }

/* ---------- 8. Post cards & archives ---------- */

.nw-posts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.nw-layout .nw-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1000px) { .nw-posts { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nw-posts, .nw-layout .nw-posts { grid-template-columns: 1fr; } }

.nw-post-card {
	display: flex; flex-direction: column; overflow: hidden;
	border: 1px solid var(--nw-border); border-radius: var(--nw-radius-lg);
	background: var(--nw-surface);
	transition: transform .25s var(--nw-ease), box-shadow .25s ease;
}
.nw-post-card:hover { transform: translateY(-4px); box-shadow: var(--nw-shadow); }
.nw-post-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--nw-surface-3); }
.nw-post-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--nw-ease); }
.nw-post-card:hover .nw-post-card__media img { transform: scale(1.04); }
.nw-post-card__media--empty {
	display: grid; place-items: center;
	background: radial-gradient(circle at 80% 20%, rgba(var(--nw-accent-rgb), .28), transparent 50%), linear-gradient(135deg, #252D3D, #343E56);
	color: rgba(255, 255, 255, .85);
}
.nw-post-card__body { display: flex; flex-direction: column; flex: 1; padding: 22px 24px 24px; }
.nw-post-card__cat { margin-bottom: 8px; color: var(--nw-accent-text); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.nw-post-card__title { margin: 0 0 8px; font-size: 19px; line-height: 1.3; }
.nw-post-card__title a { color: var(--nw-heading); text-decoration: none; }
.nw-post-card__title a:hover { color: var(--nw-accent-text); }
.nw-post-card__excerpt { margin: 0 0 16px; font-size: 15px; line-height: 1.65; }
.nw-post-card .nw-post-meta { margin-top: auto; }

.nw-post-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; color: var(--nw-muted); font-size: 13.5px; font-weight: 600; }

.nw-featured-image { margin: 0 0 40px; overflow: hidden; border-radius: var(--nw-radius-lg); box-shadow: var(--nw-shadow); }
.nw-featured-image img { width: 100%; }

.nw-post-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 56px; }
.nw-post-nav a {
	display: block; padding: 18px 20px; border: 1px solid var(--nw-border); border-radius: var(--nw-radius);
	background: var(--nw-surface); color: var(--nw-heading); font-weight: 800; text-decoration: none; line-height: 1.4;
}
.nw-post-nav a:hover { border-color: rgba(var(--nw-accent-rgb), .45); }
.nw-post-nav small { display: block; margin-bottom: 4px; color: var(--nw-muted); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.nw-post-nav__next { text-align: right; }
@media (max-width: 640px) { .nw-post-nav { grid-template-columns: 1fr; } .nw-post-nav__next { text-align: left; } }

.nw-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 36px; }
.nw-tags a {
	padding: 6px 12px; border: 1px solid var(--nw-border); border-radius: 100px;
	color: var(--nw-heading); font-size: 13px; font-weight: 700; text-decoration: none;
}
.nw-tags a:hover { border-color: var(--nw-accent); color: var(--nw-accent-text); }

.nw-pagination { margin-top: 48px; }
.nw-pagination .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.nw-pagination .page-numbers {
	display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 14px;
	border: 1px solid var(--nw-border); border-radius: 10px;
	background: var(--nw-surface); color: var(--nw-heading); font-weight: 800; text-decoration: none;
}
.nw-pagination .page-numbers.current { background: var(--nw-heading); border-color: var(--nw-heading); color: var(--nw-surface); }
.nw-pagination a.page-numbers:hover { border-color: var(--nw-accent); color: var(--nw-accent-text); }

/* Sidebar widgets */
.nw-sidebar { display: grid; gap: 22px; position: sticky; top: calc(var(--nw-header-h) + 24px); }
.nw-widget { padding: 24px; border: 1px solid var(--nw-border); border-radius: var(--nw-radius-lg); background: var(--nw-surface); }
.nw-widget__title { margin-bottom: 14px; font-size: 16px; }
.nw-widget ul { margin: 0; padding: 0; list-style: none; }
.nw-widget li { padding: 8px 0; border-bottom: 1px solid var(--nw-border); font-size: 15px; }
.nw-widget li:last-child { border-bottom: 0; }
.nw-widget a { color: var(--nw-heading); text-decoration: none; font-weight: 600; }
.nw-widget a:hover { color: var(--nw-accent-text); }

/* ---------- 9. Forms ---------- */

input[type="text"], input[type="email"], input[type="url"], input[type="password"],
input[type="search"], input[type="number"], input[type="tel"], select, textarea {
	width: 100%; min-height: 48px; padding: 11px 14px;
	border: 1px solid var(--nw-border-strong); border-radius: 10px;
	background: var(--nw-surface); color: var(--nw-heading);
	font: 500 15px/1.5 var(--nw-font);
	transition: border-color .2s, box-shadow .2s;
}
textarea { min-height: 140px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 0; border-color: var(--nw-accent); box-shadow: 0 0 0 4px rgba(var(--nw-accent-rgb), .14); }
::placeholder { color: var(--nw-muted); opacity: 1; }
label { color: var(--nw-heading); font-weight: 700; font-size: 14.5px; }
button, input[type="submit"] { font-family: var(--nw-font); }
input[type="submit"], .wpcf7-submit, .wpforms-submit {
	min-height: 50px; padding: 14px 23px; border: 0; border-radius: var(--nw-radius-sm);
	background: var(--nw-yellow); color: var(--nw-navy); font-weight: 800; font-size: 15px; cursor: pointer;
}
input[type="submit"]:hover { background: var(--nw-yellow-hover); }

.nw-search-form { display: flex; gap: 8px; width: 100%; max-width: 560px; }
.nw-search-form label { flex: 1; margin: 0; }
.nw-search-form__btn { flex: 0 0 auto; }
.nw-page-header .nw-search-form { margin: 24px auto 0; }

/* ---------- 10. Comments ---------- */

.nw-comments { margin-top: 64px; padding-top: 40px; border-top: 1px solid var(--nw-border); }
.nw-comments .comment-list { margin: 0 0 40px; padding: 0; list-style: none; }
.nw-comments .comment-list .children { list-style: none; padding-left: 28px; }
.nw-comments .comment-body { margin-bottom: 18px; padding: 20px 22px; border: 1px solid var(--nw-border); border-radius: var(--nw-radius); background: var(--nw-surface); }
.nw-comments .comment-meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 8px; font-size: 14px; }
.nw-comments .comment-author img { border-radius: 50%; display: inline-block; vertical-align: middle; margin-right: 8px; }
.nw-comments .comment-metadata a { color: var(--nw-muted); text-decoration: none; }
.nw-comments .reply a { font-size: 13.5px; font-weight: 800; }
.comment-form p { margin-bottom: 16px; }

/* ---------- 11. 404 & empty ---------- */

.nw-empty { padding: clamp(64px, 9vw, 120px) 0; text-align: center; }
.nw-empty__code {
	display: block; margin-bottom: 8px;
	background: linear-gradient(135deg, var(--nw-accent), var(--nw-cyan));
	-webkit-background-clip: text; background-clip: text; color: transparent;
	font-size: clamp(80px, 14vw, 150px); font-weight: 800; line-height: 1; letter-spacing: -.06em;
}
.nw-empty .nw-search-form { margin: 28px auto 0; }
.nw-empty__links { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 28px; }

/* ---------- 12. Footer ---------- */

.nw-footer {
	position: relative; overflow: hidden; isolation: isolate;
	padding: 68px 0 0;
	background: var(--nw-footer-bg);
	color: var(--nw-footer-text);
	font-size: 14.5px;
}
.nw-footer__glow { position: absolute; z-index: -1; width: 560px; height: 560px; border-radius: 50%; pointer-events: none; }
.nw-footer__glow--a { left: -200px; top: -220px; background: radial-gradient(circle, rgba(76, 201, 240, .14), transparent 70%); }
.nw-footer__glow--b { right: -160px; bottom: -260px; background: radial-gradient(circle, rgba(var(--nw-accent-rgb), .14), transparent 70%); }

.nw-footer__primary { display: grid; grid-template-columns: minmax(0, 1.45fr) repeat(3, minmax(0, 1fr)); gap: 40px; padding-bottom: 44px; }
@media (max-width: 1000px) { .nw-footer__primary { grid-template-columns: repeat(3, minmax(0, 1fr)); } .nw-footer__brand { grid-column: 1 / -1; } }
@media (max-width: 640px) { .nw-footer__primary { grid-template-columns: 1fr 1fr; gap: 32px 20px; } }

.nw-footer .nw-logo { color: var(--nw-footer-text); }
.nw-footer__intro { max-width: 380px; margin: 18px 0 22px; color: var(--nw-footer-muted); line-height: 1.7; }
.nw-footer__proof { display: flex; flex-wrap: wrap; gap: 10px; }
.nw-status, .nw-rating {
	display: inline-flex; align-items: center; gap: 11px;
	padding: 11px 14px; border-radius: 12px;
	border: 1px solid rgba(52, 62, 86, .1);
	background: rgba(255, 255, 255, .62);
	color: var(--nw-footer-text); text-decoration: none; line-height: 1.25;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	transition: transform .2s var(--nw-ease), box-shadow .2s;
}
html[data-theme="dark"] .nw-status,
html[data-theme="dark"] .nw-rating { border-color: rgba(148, 163, 190, .18); background: rgba(22, 32, 51, .6); }
.nw-status:hover, .nw-rating:hover { transform: translateY(-2px); box-shadow: var(--nw-shadow-sm); color: var(--nw-footer-text); }
.nw-status small, .nw-rating small { display: block; color: var(--nw-footer-muted); font-size: 11.5px; font-weight: 700; letter-spacing: .03em; }
.nw-status strong, .nw-rating strong { font-size: 13.5px; }
.nw-status__dot { position: relative; width: 10px; height: 10px; border-radius: 50%; background: var(--nw-success); }
.nw-status__dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid rgba(32, 168, 117, .35); animation: nw-pulse 2.4s ease-out infinite; }
@keyframes nw-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .nw-status__dot::after { animation: none; } }
.nw-rating__stars { color: #00B67A; font-size: 16px; letter-spacing: 1px; }

.nw-footer__heading { margin: 4px 0 16px; color: var(--nw-footer-text); font-size: 15px; letter-spacing: -.01em; }
.nw-footer__menu { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.nw-footer__menu li { display: flex; align-items: center; flex-wrap: wrap; }
.nw-footer__menu a { color: var(--nw-footer-muted); font-size: 14px; font-weight: 500; text-decoration: none; transition: color .2s; }
.nw-footer__menu a:hover { color: var(--nw-accent-text); }
.nw-footer__menu .nw-badge { margin-left: 6px; }

.nw-footer__eyebrow {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--nw-footer-text); opacity: .75;
	font-size: 11.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
}

.nw-partners { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; padding: 24px 0; border-top: 1px solid rgba(52, 62, 86, .11); }
html[data-theme="dark"] .nw-partners { border-color: rgba(148, 163, 190, .14); }
.nw-partners__list { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; padding: 0; list-style: none; }
.nw-partner { color: var(--nw-footer-text); opacity: .62; font-size: 14px; font-weight: 800; letter-spacing: -.01em; }

.nw-footer__commerce { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 18px 30px; padding: 22px 0; border-top: 1px solid rgba(52, 62, 86, .11); }
html[data-theme="dark"] .nw-footer__commerce { border-color: rgba(148, 163, 190, .14); }
.nw-social, .nw-footer__pay { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.nw-social__links { display: flex; gap: 8px; }
.nw-social__link {
	display: inline-grid; place-items: center; width: 38px; height: 38px;
	border-radius: 10px; border: 1px solid rgba(52, 62, 86, .12);
	background: rgba(255, 255, 255, .6); color: var(--nw-footer-text);
	transition: background .2s, color .2s, transform .2s var(--nw-ease);
}
html[data-theme="dark"] .nw-social__link { border-color: rgba(148, 163, 190, .18); background: rgba(22, 32, 51, .6); }
.nw-social__link:hover { transform: translateY(-2px); background: var(--nw-accent-2); border-color: transparent; color: #fff; }
.nw-payments { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nw-payment {
	padding: 5px 10px; border-radius: 7px;
	background: #fff; border: 1px solid rgba(52, 62, 86, .1);
	color: #343E56; font-size: 11.5px; font-weight: 800; letter-spacing: .01em;
}
.nw-payment--visa { color: #1A1F71; font-style: italic; }
.nw-payment--paypal { color: #003087; }
.nw-payment--stripe { color: #635BFF; }

.nw-footer__bottom {
	display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 16px 28px;
	padding: 23px 0 28px; border-top: 1px solid rgba(52, 62, 86, .11);
	color: var(--nw-footer-muted); font-size: 13px;
}
html[data-theme="dark"] .nw-footer__bottom { border-color: rgba(148, 163, 190, .14); }
.nw-footer__company { margin: 0; line-height: 1.6; }

/* "Made in the United Kingdom" with the Union flag clipped to a heart, as on NuCast. */
.nw-made-uk {
	display: inline-flex; align-items: center; gap: 9px; justify-self: center; padding: 7px 11px;
	border: 1px solid rgba(52, 62, 86, .1); border-radius: 9px; background: rgba(255, 255, 255, .45);
}
html[data-theme="dark"] .nw-made-uk { border-color: rgba(148, 163, 190, .18); background: rgba(22, 32, 51, .6); }
.nw-made-uk__copy {
	display: flex; flex-direction: column; color: var(--nw-footer-muted);
	font-size: 8.5px; font-weight: 600; line-height: 1.15; letter-spacing: .04em; text-transform: uppercase;
}
.nw-made-uk__copy strong { margin-top: 2px; color: var(--nw-footer-text); font-size: 10.5px; font-weight: 700; letter-spacing: 0; }
.nw-uk-heart {
	position: relative; display: block; flex: 0 0 25px; width: 25px; height: 23px; overflow: hidden;
	clip-path: path("M 12.5 22 C 10.7 19.8 2 14.2 2 7.5 C 2 3.7 4.7 1.5 7.8 1.5 C 10 1.5 11.6 2.8 12.5 4.2 C 13.4 2.8 15 1.5 17.2 1.5 C 20.3 1.5 23 3.7 23 7.5 C 23 14.2 14.3 19.8 12.5 22 Z");
}
.nw-uk-heart__flag {
	--uk-white: #fff;
	position: absolute; inset: 0;
	background:
		linear-gradient(90deg, transparent 40%, #CF142B 40%, #CF142B 60%, transparent 60%),
		linear-gradient(0deg, transparent 39%, #CF142B 39%, #CF142B 61%, transparent 61%),
		linear-gradient(90deg, transparent 31%, var(--uk-white) 31%, var(--uk-white) 69%, transparent 69%),
		linear-gradient(0deg, transparent 30%, var(--uk-white) 30%, var(--uk-white) 70%, transparent 70%),
		linear-gradient(33deg, transparent 43%, #CF142B 43%, #CF142B 49%, transparent 49%),
		linear-gradient(-33deg, transparent 43%, #CF142B 43%, #CF142B 49%, transparent 49%),
		linear-gradient(33deg, transparent 37%, var(--uk-white) 37%, var(--uk-white) 55%, transparent 55%),
		linear-gradient(-33deg, transparent 37%, var(--uk-white) 37%, var(--uk-white) 55%, transparent 55%),
		#00247D;
}

.nw-legal { display: flex; flex-wrap: wrap; justify-content: flex-end; justify-self: end; gap: 6px 18px; margin: 0; padding: 0; list-style: none; }
.nw-legal a { color: var(--nw-footer-muted); text-decoration: none; font-weight: 600; }
.nw-legal a:hover { color: var(--nw-accent-text); }
@media (max-width: 860px) {
	.nw-footer__bottom { grid-template-columns: 1fr; justify-items: center; text-align: center; }
	.nw-made-uk { order: -1; }
	.nw-legal { justify-content: center; justify-self: center; }
}

/* Official logo files in the partner and payment rows. */
.nw-partner--logo img { display: block; width: auto; height: 26px; max-width: 120px; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .2s, opacity .2s; }
.nw-partner--logo:hover img { filter: none; opacity: 1; }
html[data-theme="dark"] .nw-partner--logo img { filter: grayscale(1) brightness(0) invert(1); opacity: .7; }
html[data-theme="dark"] .nw-partner--logo:hover img { filter: brightness(0) invert(1); opacity: 1; }
.nw-partner a { color: inherit; text-decoration: none; }
.nw-payment--logo { display: grid; place-items: center; height: 30px; padding: 4px 8px; }
.nw-payment--logo img { display: block; width: auto; height: 20px; max-width: 64px; object-fit: contain; }

/* ---------- 13. Motion ---------- */

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* ---------- 14. Brand scope ----------
   Wrap any block in .nw-brand-scope with inline --nw-accent* values
   (see nuweb_brand_style()) to show it in another brand's colours. */
.nw-brand-scope { --nw-accent-text: var(--nw-accent-ink); --nw-link: var(--nw-accent-ink); }
html[data-theme="dark"] .nw-brand-scope { --nw-accent-text: var(--nw-accent-soft); --nw-link: var(--nw-accent-soft); }
