/**
 * National Upskill – theme styles (front end + editor canvas).
 *
 * Colour tokens come from theme.json (--wp--preset--color--*).
 * Contrast notes (WCAG 2.2 AA):
 *   - copper-deep #9E4B33: 5.49:1 on alabaster, 4.93:1 on stone → use for text/links/buttons on light.
 *   - copper #C86D51: 5.01:1 on obsidian → only on obsidian (or large text).
 *   - copper-light #E08A70: 4.87:1 on emerald, 6.99:1 on obsidian → small text on dark.
 *   - muted-on-dark #B4B8B2: 6.33:1 on emerald, 9.08:1 on obsidian.
 *   - form borders ≥3:1 against their backgrounds (1.4.11).
 */

/* -------------------------------------------------------------------------
 * 1. Tokens & base
 * ---------------------------------------------------------------------- */
:root {
	--nu-obsidian: var(--wp--preset--color--obsidian, #111615);
	--nu-emerald: var(--wp--preset--color--emerald, #1a382e);
	--nu-alabaster: var(--wp--preset--color--alabaster, #f6f5f2);
	--nu-stone: var(--wp--preset--color--stone, #ebe9e2);
	--nu-copper: var(--wp--preset--color--copper, #c86d51);
	--nu-copper-deep: var(--wp--preset--color--copper-deep, #9e4b33);
	--nu-copper-light: var(--wp--preset--color--copper-light, #e08a70);
	--nu-muted: var(--wp--preset--color--muted, #525856);
	--nu-muted-dark: var(--wp--preset--color--muted-on-dark, #b4b8b2);
	--nu-line: var(--wp--preset--color--border-light, #dcd9d0);
	--nu-line-dark: var(--wp--preset--color--border-dark, #263d35);
	--nu-field-border: #6b6962; /* 4.52:1 on stone, 5.49:1 on white */
	--nu-field-border-dark: #8d9b95; /* 6.31:1 on obsidian, 4.4:1 on emerald */
	--nu-obsidian-hover: #1f2e29;
	--nu-emerald-hover: #0f2a22;
	--nu-gutter: var(--wp--custom--gutter, clamp(1rem, 4vw, 3rem));
	--nu-ease: var(--wp--custom--ease, cubic-bezier(0.19, 1, 0.22, 1));
	--nu-header-h: 5rem;
	--nu-mono: var(--wp--preset--font-family--mono);
	--nu-display: var(--wp--preset--font-family--display);
	--nu-focus: var(--nu-copper-deep);
}

html {
	scroll-behavior: smooth;
	/* Keep focused/anchored content clear of the sticky header (2.4.11 Focus Not Obscured). */
	scroll-padding-top: calc(var(--nu-header-actual, var(--nu-header-h)) + var(--wp-admin--admin-bar--height, 0px) + 1rem);
}

body {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: clip;
}

::selection {
	background: var(--nu-copper-deep);
	color: var(--nu-alabaster);
}

/* Dark contexts switch the focus ring and link colours. */
.has-obsidian-background-color,
.has-emerald-background-color,
.nu-dark {
	--nu-focus: var(--nu-copper-light);
}
.has-alabaster-background-color,
.has-stone-background-color,
.has-white-background-color,
.nu-light {
	--nu-focus: var(--nu-copper-deep);
}

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 3px solid var(--nu-focus);
	outline-offset: 3px;
}
:where(input, select, textarea):focus-visible {
	outline-offset: 1px;
}

.has-obsidian-background-color a:not(.wp-element-button):not(.wp-block-button__link),
.has-emerald-background-color a:not(.wp-element-button):not(.wp-block-button__link),
.nu-dark a:not(.wp-element-button):not(.wp-block-button__link) {
	color: var(--nu-copper-light);
}
.has-obsidian-background-color a:not(.wp-element-button):not(.wp-block-button__link):hover,
.has-emerald-background-color a:not(.wp-element-button):not(.wp-block-button__link):hover,
.nu-dark a:not(.wp-element-button):not(.wp-block-button__link):hover {
	color: var(--nu-alabaster);
}

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

/* WordPress adds a skip link automatically for block themes; make it match. */
.skip-link.screen-reader-text:focus {
	clip: auto !important;
	clip-path: none;
	height: auto;
	width: auto;
	margin: 0;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 100000;
	padding: 0.85rem 1.25rem;
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
	font-family: var(--nu-mono);
	font-size: 0.8125rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	text-decoration: none;
	outline: 3px solid var(--nu-copper-light);
}

/* Subtle paper grain (purely decorative, never intercepts pointer). */
body::after {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 9999;
	opacity: 0.028;
	background-image: url("data:image/svg+xml;utf8,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
@media (forced-colors: active) {
	body::after { display: none; }
}

.nu-icon {
	display: inline-block;
	flex: none;
	vertical-align: -0.15em;
}

strong,
b {
	font-weight: 600;
}

/* -------------------------------------------------------------------------
 * 2. Layout helpers
 * ---------------------------------------------------------------------- */
.nu-inner {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto !important;
	padding-inline: var(--nu-gutter);
}
.nu-inner > * {
	max-width: none;
}

.nu-section {
	padding-block: var(--wp--preset--spacing--80);
	border-bottom: 1px solid var(--nu-line);
}
.nu-section.has-obsidian-background-color,
.nu-section.has-emerald-background-color {
	border-bottom-color: var(--nu-line-dark);
}
.nu-section--tight {
	padding-block: var(--wp--preset--spacing--70);
}

/* Full-width sections stack flush inside page content. */
.wp-site-blocks > * + *,
.wp-block-post-content > .alignfull + .alignfull,
.wp-block-post-content > .alignfull:first-child,
.entry-content > .alignfull:first-child {
	margin-block-start: 0;
}
.wp-block-post-content > .alignfull:last-child {
	margin-block-end: 0;
}
main.wp-block-group {
	margin-block: 0;
}

/* Responsive grids (use as "Additional CSS class" on a Group). */
.nu-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--40);
}
.nu-grid > * {
	margin: 0 !important;
}
@media (min-width: 640px) {
	.nu-grid--2,
	.nu-grid--3,
	.nu-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.nu-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nu-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* Hairline grid: 1px dividers between cells. */
.is-style-nu-hairline {
	gap: 1px !important;
	background: var(--nu-line);
	border: 1px solid var(--nu-line);
}
.has-obsidian-background-color .is-style-nu-hairline,
.has-emerald-background-color .is-style-nu-hairline,
.is-style-nu-hairline.is-dark {
	background: var(--nu-line-dark);
	border-color: var(--nu-line-dark);
}
.is-style-nu-hairline > * {
	background: var(--nu-alabaster);
}
.has-obsidian-background-color .is-style-nu-hairline > * {
	background: var(--nu-obsidian);
}

.is-style-nu-rule-top {
	border-top: 1px solid var(--nu-line);
	padding-top: var(--wp--preset--spacing--30);
}
.is-style-nu-rule-bottom {
	border-bottom: 1px solid var(--nu-line);
	padding-bottom: var(--wp--preset--spacing--30);
}
:is(.has-obsidian-background-color, .has-emerald-background-color) :is(.is-style-nu-rule-top, .is-style-nu-rule-bottom) {
	border-color: var(--nu-line-dark);
}

.is-style-nu-box {
	border: 1px solid var(--nu-line);
	padding: clamp(1.5rem, 3vw, 1.75rem);
}
.is-style-nu-card {
	border: 1px solid var(--nu-line);
	background: var(--nu-alabaster);
	padding: clamp(1.5rem, 3vw, 2.5rem);
}

/* Flex/grid containers manage their own spacing: cancel WordPress flow-layout margins inside them. */
:is(.nu-utility__inner, .nu-utility__group, .nu-header__inner, .nu-brand, .nu-steps, .nu-trust, .nu-trust__item, .nu-pills,
	.nu-hero-pane__top, .nu-hero-pane__foot, .nu-step__top, .nu-step__foot, .nu-faq-layout, .nu-footer__top, .nu-footer__nav,
	.nu-footer__cols, .nu-footer__bar, .nu-badges, .nu-section-head, .nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4, .nu-mega-callout, .nu-with-aside,
	.nu-insight__meta, .nu-row, .nu-grid) > * {
	margin-block: 0 !important;
}

/* Row of two items pushed apart, wraps on small screens. */
.nu-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem 1rem;
}
.nu-row > * {
	margin: 0 !important;
}

/* -------------------------------------------------------------------------
 * 3. Text styles
 * ---------------------------------------------------------------------- */
.is-style-nu-kicker,
.is-style-nu-label,
.is-style-nu-tag,
.nu-mono {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.14em;
	text-transform: uppercase;
	line-height: 1.5;
	font-weight: 600;
}
h1.is-style-nu-kicker,
h2.is-style-nu-kicker,
h3.is-style-nu-kicker,
h4.is-style-nu-kicker,
h2.is-style-nu-label,
h3.is-style-nu-label,
h4.is-style-nu-label {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: 0.14em;
}

.is-style-nu-kicker {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}
.is-style-nu-kicker:not(.has-text-color) {
	color: var(--nu-copper-deep);
}
:is(.has-obsidian-background-color, .has-emerald-background-color, .nu-dark) .is-style-nu-kicker:not(.has-text-color) {
	color: var(--nu-copper-light);
}
.is-style-nu-kicker::before {
	content: "";
	flex: none;
	width: 0.5rem;
	height: 0.5rem;
	background: var(--nu-copper);
}

.is-style-nu-tag {
	display: inline-block;
	width: fit-content;
	padding: 0.25rem 0.625rem;
	border: 1px solid var(--nu-line);
	font-weight: 500;
	letter-spacing: 0.1em;
}
:is(.has-obsidian-background-color, .has-emerald-background-color, .nu-dark) .is-style-nu-tag {
	border-color: var(--nu-line-dark);
}
:is(.has-obsidian-background-color, .has-emerald-background-color, .nu-dark) .is-style-nu-tag:not(.has-text-color) {
	color: var(--nu-muted-dark);
}

.is-style-nu-index {
	font-family: var(--nu-mono);
	font-size: 1.875rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0;
}
.is-style-nu-index:not(.has-text-color) {
	color: var(--nu-copper-deep);
}
:is(.has-obsidian-background-color, .has-emerald-background-color) .is-style-nu-index:not(.has-text-color) {
	color: var(--nu-copper);
}

.has-muted-color strong,
.has-muted-color b {
	color: var(--nu-obsidian);
}
.has-muted-on-dark-color strong,
.has-muted-on-dark-color b {
	color: var(--nu-alabaster);
}

/* Section header: kicker + heading left, intro right. */
.nu-section-head {
	display: grid;
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--60) !important;
}
.nu-section-head > * {
	margin: 0 !important;
}
.nu-section-head__main > * + * {
	margin-top: 1rem;
}
.nu-section-head__main h2 {
	margin-bottom: 0;
}
@media (min-width: 1024px) {
	.nu-section-head {
		grid-template-columns: 7fr 5fr;
		align-items: end;
		gap: var(--wp--preset--spacing--50);
	}
}

/* -------------------------------------------------------------------------
 * 4. Buttons
 * ---------------------------------------------------------------------- */
.wp-element-button,
.wp-block-button__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	isolation: isolate;
	overflow: hidden;
	text-decoration: none;
	min-height: 44px;
	box-sizing: border-box;
	transition: color 0.4s var(--nu-ease), border-color 0.4s ease, background-color 0.3s ease;
}

/* Arrow (toggle "Show arrow" in the button sidebar, or add class has-nu-arrow). */
.has-nu-arrow .wp-block-button__link::after,
.wp-element-button.has-nu-arrow::after,
.is-style-nu-text .wp-block-button__link::after {
	content: "";
	flex: none;
	width: 0.875rem;
	height: 0.875rem;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.25'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.35s var(--nu-ease);
}
.has-nu-arrow .wp-block-button__link:hover::after,
.wp-element-button.has-nu-arrow:hover::after,
.is-style-nu-text .wp-block-button__link:hover::after {
	transform: translateX(4px);
}

/* Wipe: a colour panel sweeps in behind the label on hover/focus. */
.is-style-nu-fill .wp-block-button__link::before,
.is-style-nu-outline-light .wp-block-button__link::before,
.is-style-nu-outline-dark .wp-block-button__link::before,
.nu-btn::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--nu-wipe, var(--nu-obsidian));
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.5s var(--nu-ease);
}
.is-style-nu-fill .wp-block-button__link:is(:hover, :focus-visible)::before,
.is-style-nu-outline-light .wp-block-button__link:is(:hover, :focus-visible)::before,
.is-style-nu-outline-dark .wp-block-button__link:is(:hover, :focus-visible)::before,
.nu-btn:is(:hover, :focus-visible)::before {
	transform: scaleX(1);
	transform-origin: left;
}

/* Solid: wipe colour chosen so hover text contrast stays ≥ 4.5:1. */
.is-style-nu-fill .wp-block-button__link {
	--nu-wipe: var(--nu-obsidian);
	border-color: transparent;
}
.is-style-nu-fill .wp-block-button__link:hover {
	background-color: inherit;
}
.is-style-nu-fill .wp-block-button__link.has-obsidian-background-color {
	--nu-wipe: var(--nu-copper-deep);
}
.is-style-nu-fill .wp-block-button__link:is(.has-alabaster-background-color, .has-stone-background-color, .has-white-background-color):is(:hover, :focus-visible) {
	color: var(--nu-alabaster) !important;
}
:is(.has-obsidian-background-color) .is-style-nu-fill .wp-block-button__link.has-copper-deep-background-color {
	--nu-wipe: var(--nu-emerald);
}

/* Outline for dark backgrounds: light border, fills alabaster, text turns obsidian. */
.is-style-nu-outline-light .wp-block-button__link {
	--nu-wipe: var(--nu-alabaster);
	background: transparent !important;
	border: 1px solid rgba(246, 245, 242, 0.55) !important;
	color: var(--nu-alabaster) !important;
}
.is-style-nu-outline-light .wp-block-button__link:is(:hover, :focus-visible) {
	color: var(--nu-obsidian) !important;
	border-color: var(--nu-alabaster) !important;
}

/* Outline for light backgrounds: obsidian border, fills obsidian, text turns alabaster. */
.is-style-nu-outline-dark .wp-block-button__link {
	--nu-wipe: var(--nu-obsidian);
	background: transparent !important;
	border: 1px solid var(--nu-obsidian) !important;
	color: var(--nu-obsidian) !important;
}
.is-style-nu-outline-dark .wp-block-button__link:is(:hover, :focus-visible) {
	color: var(--nu-alabaster) !important;
}

/* Text link with arrow. */
.is-style-nu-text .wp-block-button__link {
	background: transparent !important;
	padding: 0.5rem 0 !important;
	color: inherit;
	min-height: 24px;
}
.is-style-nu-text .wp-block-button__link:hover {
	color: var(--nu-copper-deep) !important;
}

/* Internal button classes (used by custom blocks). */
.nu-btn {
	--nu-wipe: var(--nu-obsidian);
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
	border: 0;
	cursor: pointer;
}
.nu-btn:hover {
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
}
.nu-btn--copper,
.nu-btn--copper:hover {
	--nu-wipe: var(--nu-obsidian);
	background: var(--nu-copper-deep);
}
.nu-btn--block {
	display: flex;
	width: 100%;
}

.wp-block-buttons {
	gap: 1rem;
}

/* -------------------------------------------------------------------------
 * 5. Utility bar
 * ---------------------------------------------------------------------- */
.nu-utility {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	border-bottom: 1px solid var(--nu-line-dark);
}
.nu-utility__inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.25rem 1.5rem;
	min-height: 2.5rem;
	padding-block: 0.375rem;
}
.nu-utility__group {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.25rem 1.5rem;
}
.nu-utility__group > * {
	margin: 0 !important;
}
.nu-utility p {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	white-space: nowrap;
}
.nu-utility a {
	color: inherit !important;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}
.nu-utility a:hover {
	color: var(--nu-copper-light) !important;
	text-decoration: underline;
}
.nu-utility .nu-lower {
	text-transform: none;
	letter-spacing: 0.02em;
}

/* CSS icons (decorative). */
.nu-ico::before {
	content: "";
	flex: none;
	width: 0.75rem;
	height: 0.75rem;
	background: var(--nu-copper);
	-webkit-mask: var(--nu-ico) center / contain no-repeat;
	mask: var(--nu-ico) center / contain no-repeat;
}
.nu-ico--dot::before {
	width: 0.375rem;
	height: 0.375rem;
	-webkit-mask: none;
	mask: none;
}
.nu-ico--phone {
	--nu-ico: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'%3E%3Cpath d='M21 16.5v3a2 2 0 0 1-2.2 2A19 19 0 0 1 2.5 5.2 2 2 0 0 1 4.5 3h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.6a2 2 0 0 1-.5 2.1L8.5 10.6a15 15 0 0 0 4.9 4.9l1.2-1.2a2 2 0 0 1 2.1-.5c.8.3 1.7.6 2.6.7a2 2 0 0 1 1.7 2z'/%3E%3C/svg%3E");
}
.nu-ico--mail {
	--nu-ico: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'%3E%3Crect x='3' y='5' width='18' height='14'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E");
}
.nu-ico--shield {
	--nu-ico: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'%3E%3Cpath d='m12 3 8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z'/%3E%3Cpath d='M12 3v18'/%3E%3C/svg%3E");
}
@media (forced-colors: active) {
	.nu-ico::before { background: CanvasText; }
}

@media (max-width: 639px) {
	.nu-hide-sm { display: none !important; }
}
@media (max-width: 781px) {
	.nu-hide-md { display: none !important; }
}
@media (max-width: 1023px) {
	.nu-hide-lg { display: none !important; }
}

/* -------------------------------------------------------------------------
 * 6. Header + mega menu
 * ---------------------------------------------------------------------- */
.wp-site-blocks > .nu-header-part,
.wp-site-blocks > header.wp-block-template-part:has(.nu-header) {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 50;
}
@media (max-width: 600px) {
	/* The admin bar is not fixed on small screens. */
	.wp-site-blocks > .nu-header-part,
	.wp-site-blocks > header.wp-block-template-part:has(.nu-header) {
		top: 0;
	}
}

.nu-header {
	background: var(--nu-header-bg, rgba(246, 245, 242, 0.97));
	border-bottom: 1px solid var(--nu-line);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
.nu-header__inner {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 1rem;
	min-height: var(--nu-header-h);
}
.nu-header__inner > * {
	margin: 0 !important;
}
.nu-brand {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	flex: none;
	padding-block: 1rem; /* breathing room above and below the logo */
}
.nu-brand > * {
	margin: 0 !important;
}
.nu-brand .wp-block-site-logo img {
	/* Size comes from the Site Logo block's "Image width" setting. */
	height: auto;
	max-width: 100%;
	object-fit: contain;
}
.nu-brand .wp-block-site-logo {
	max-width: min(100%, 60vw);
}
.nu-brand:has(.wp-block-site-logo img) .wp-block-site-title {
	/* The logo link already carries the site name, so remove the duplicate link entirely
	   (a visually hidden link would take keyboard focus invisibly). */
	display: none;
}
.nu-brand .wp-block-site-title {
	font-family: var(--nu-display);
	font-weight: 800;
	font-size: 1.125rem;
	letter-spacing: -0.01em;
	text-transform: uppercase;
}
.nu-brand .wp-block-site-title a {
	color: var(--nu-obsidian);
	text-decoration: none;
}
.nu-header__cta {
	align-items: center;
	flex: none;
}
.nu-header__cta .wp-block-button__link {
	padding: 0.95rem 1.5rem;
}
@media (max-width: 639px) {
	.nu-header__cta { display: none !important; }
}

/* Mega menu */
.nu-mega {
	display: flex;
	align-items: stretch;
	margin-left: auto !important;
	font-size: var(--wp--preset--font-size--small);
}
.nu-mega__drawer {
	display: flex;
	align-items: stretch;
}
.nu-mega__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: stretch;
}
.nu-mega__item {
	display: flex;
	align-items: stretch;
	margin: 0;
}
.nu-mega__link,
.nu-mega__trigger {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0 1.25rem;
	min-height: 44px;
	border: 0;
	border-left: 1px solid var(--nu-line);
	background: none;
	color: var(--nu-obsidian);
	font: inherit;
	font-weight: 500;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
	transition: color 0.2s ease;
}
.nu-mega__link:hover,
.nu-mega__trigger:hover,
.nu-mega__trigger[aria-expanded="true"] {
	color: var(--nu-copper-deep);
}
.nu-mega__link[aria-current="page"] {
	text-decoration: underline;
	text-underline-offset: 0.35em;
	text-decoration-thickness: 2px;
}
.nu-mega__chevron {
	transition: transform 0.25s ease;
	opacity: 0.8;
}
.nu-mega__trigger[aria-expanded="true"] .nu-mega__chevron {
	transform: rotate(180deg);
}

.nu-mega__panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	z-index: 60;
	background-color: var(--nu-panel-bg, #f6f5f2) !important; /* always solid: nothing behind may show through */
	border-top: 1px solid var(--nu-line);
	border-bottom: 1px solid var(--nu-line);
	box-shadow: 0 30px 60px -20px rgba(17, 22, 21, 0.35);
	max-height: calc(100vh - var(--nu-header-actual, var(--nu-header-h)) - var(--wp-admin--admin-bar--height, 0px));
	overflow-y: auto;
}
.nu-mega__panel-inner {
	max-width: var(--wp--style--global--wide-size, 1440px);
	margin-inline: auto;
	padding-inline: var(--nu-gutter);
	box-sizing: border-box;
}
.nu-mega__panel-inner > * {
	margin-block: 0;
}
.nu-mega__overview {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 1.25rem 0 0;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--nu-copper-deep);
}

/* Progressive enhancement: with JS, panels are toggled; without JS they open on hover/focus. */
.nu-js .nu-mega__panel {
	display: none;
}
.nu-js .nu-mega__panel.is-open {
	display: block;
	opacity: 1;
	animation: nu-drop-in 0.25s var(--nu-ease);
}
@keyframes nu-drop-in {
	from { transform: translateY(-6px); }
	to { transform: none; }
}
html:not(.nu-js) .nu-mega__panel {
	visibility: hidden;
	opacity: 0;
}
html:not(.nu-js) .nu-mega__item:is(:hover, :focus-within) .nu-mega__panel {
	visibility: visible;
	opacity: 1;
}

@keyframes nu-fade-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

.nu-mega__toggle {
	display: none;
	align-items: center;
	gap: 0.5rem;
	align-self: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 0.875rem;
	border: 1px solid var(--nu-field-border);
	background: transparent;
	color: var(--nu-obsidian);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	cursor: pointer;
}
.nu-mega__toggle:hover {
	border-color: var(--nu-copper-deep);
	color: var(--nu-copper-deep);
}
.nu-mega__toggle-close,
.nu-mega__toggle[aria-expanded="true"] .nu-mega__toggle-open {
	display: none;
}
.nu-mega__toggle[aria-expanded="true"] .nu-mega__toggle-close {
	display: inline-block;
}
.nu-mega__mobile-cta {
	display: none;
}

/* Mega menu – mobile & tablet (< 1200px): toggle + accordion drawer. */
@media (max-width: 1199px) {
	.nu-js .nu-mega__toggle {
		display: inline-flex;
	}
	.nu-mega__drawer {
		display: block;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		z-index: 60;
		background: var(--nu-alabaster);
		border-bottom: 1px solid var(--nu-line);
		box-shadow: 0 30px 60px -20px rgba(17, 22, 21, 0.35);
		max-height: calc(100vh - var(--nu-header-actual, var(--nu-header-h)) - var(--wp-admin--admin-bar--height, 0px));
		overflow-y: auto;
	}
	html:not(.nu-js) .nu-mega__drawer {
		position: static;
		box-shadow: none;
	}
	.nu-js .nu-mega__drawer:not(.is-open) {
		display: none;
	}
	.nu-mega__list {
		flex-direction: column;
	}
	.nu-mega__item {
		flex-direction: column;
		border-bottom: 1px solid var(--nu-line);
	}
	.nu-mega__link,
	.nu-mega__trigger {
		justify-content: space-between;
		border-left: 0;
		padding: 1rem var(--nu-gutter);
		min-height: 52px;
		font-size: 1rem;
		text-align: left;
	}
	.nu-mega__panel {
		position: static;
		box-shadow: none;
		border: 0;
		max-height: none;
		background: var(--nu-stone);
	}
	html:not(.nu-js) .nu-mega__panel {
		visibility: visible;
		opacity: 1;
	}
	.nu-mega__panel-inner {
		padding-block: 0.5rem 1.25rem;
	}
	.nu-mega__mobile-cta {
		display: block;
		padding: 1.25rem var(--nu-gutter) 1.5rem;
	}
	.nu-mega__cta {
		width: 100%;
		background: var(--nu-copper-deep);
	}
}

/* Mega panel content helpers.
   Column layouts can be chosen in the editor: select the panel's Group → Styles →
   "Menu panel: 3 columns" / "Menu panel: 4 columns" (legacy classes still supported). */
:is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4) {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}
:is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4) > * {
	margin: 0 !important;
	padding: 1.5rem 0;
}
@media (min-width: 1200px) {
	/* Columns sit inside the same container as the header, so text lines up with the logo. */
	:is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4) {
		grid-template-columns: 5fr 4fr 3fr;
		margin-inline: 0 !important;
	}
	:is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4):not(.is-style-nu-hairline) > * {
		padding: 2.5rem 2.5rem 2.75rem;
		border-left: 1px solid var(--nu-line);
	}
	:is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4):not(.is-style-nu-hairline) > :first-child {
		padding-left: 0;
		border-left: 0;
	}
	/* A coloured column (the call-to-action box) keeps its own padding and meets the panel edge. */
	:is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4) > .has-background {
		border-left: 0;
	}
	.is-style-nu-mega-3 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
	.nu-mega-grid--4,
	.nu-mega-grid--cols4,
	.is-style-nu-mega-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	/* Card grids (e.g. Employers / Learners) sit as a boxed row inside the panel. */
	.nu-mega__panel-inner .is-style-nu-hairline {
		margin-block: 2rem !important;
	}
}
/* Forgiving structure: ignore an extra Row/Stack wrapper and empty leftover groups inside a panel. */
.nu-mega__panel-inner > .wp-block-group:has(> :is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4)) {
	display: block !important;
	margin: 0 !important;
	padding: 0 !important;
}
.nu-mega__panel-inner .wp-block-group:empty {
	display: none !important;
}
.nu-mega__panel-inner :is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4) + :is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4) {
	margin-top: 0 !important;
}
:is(.nu-mega-grid, .is-style-nu-mega-3, .is-style-nu-mega-4) > * > * + * {
	margin-top: 2rem;
}
.nu-mega-callout {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 1rem;
}
.nu-mega-callout > * {
	margin: 0 !important;
}
@media (max-width: 1199px) {
	.nu-mega-callout {
		padding: 1.5rem !important;
		margin-bottom: 1rem !important;
	}
}

/* Programme list (mega menu / footer) */
.nu-plist__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	padding-bottom: 0.75rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid var(--nu-line);
}
.nu-plist__head p {
	margin: 0;
}
.nu-plist__title {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--nu-copper-deep);
}
.nu-plist__count {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nu-muted);
	white-space: nowrap;
}
.nu-plist__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.125rem;
}
.nu-plist__link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 0.375rem 0;
	min-height: 32px;
	color: var(--nu-obsidian) !important;
	text-decoration: none;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}
.nu-plist__link:hover {
	color: var(--nu-copper-deep) !important;
}
.nu-plist__link:hover .nu-badge {
	background: var(--nu-copper-deep);
	color: var(--nu-alabaster);
}
.nu-plist__empty {
	font-size: var(--wp--preset--font-size--small);
	color: var(--nu-muted);
}
.nu-dark .nu-plist__head,
.has-obsidian-background-color .nu-plist__head {
	border-color: var(--nu-line-dark);
}
.nu-dark .nu-plist__title,
.has-obsidian-background-color .nu-plist__title {
	color: var(--nu-copper-light);
}
.has-obsidian-background-color .nu-plist__link {
	color: var(--nu-muted-dark) !important;
}

/* Badges */
.nu-badge {
	display: inline-block;
	flex: none;
	padding: 0.2rem 0.55rem;
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: background-color 0.3s ease, color 0.3s ease;
}
.nu-badge--light {
	background: var(--nu-stone);
	color: var(--nu-obsidian);
}

/* Link card */
.nu-link-card {
	position: relative;
	padding: 2rem;
	transition: background-color 0.3s ease;
}
.nu-link-card:hover,
.nu-link-card:focus-within {
	background-color: var(--nu-stone);
}
.nu-link-card > * {
	margin: 0;
}
.nu-link-card__kicker {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nu-copper-deep);
	margin-bottom: 0.5rem;
}
.nu-link-card__title {
	font-size: 1rem;
	line-height: 1.35;
	margin-bottom: 0.5rem;
	letter-spacing: -0.01em;
}
.nu-link-card__link {
	color: var(--nu-obsidian) !important;
	text-decoration: none;
}
.nu-link-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
}
.nu-link-card__link:focus-visible {
	outline: none;
}
.nu-link-card:has(.nu-link-card__link:focus-visible) {
	outline: 3px solid var(--nu-focus);
	outline-offset: -3px;
}
.nu-link-card:hover .nu-link-card__link {
	color: var(--nu-copper-deep) !important;
	text-decoration: underline;
}
.nu-link-card__text {
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--nu-muted);
}
@media (max-width: 1199px) {
	.nu-mega .nu-link-card {
		padding: 1rem 0;
	}
}

/* -------------------------------------------------------------------------
 * 7. Split hero (colour change on hover – no sliding)
 * ---------------------------------------------------------------------- */
.wp-block-columns.is-style-nu-split {
	gap: 0 !important;
	margin-block: 0 !important;
	border-bottom: 1px solid var(--nu-line-dark);
}
@media (max-width: 1023px) {
	.wp-block-columns.is-style-nu-split {
		flex-direction: column;
	}
	.wp-block-columns.is-style-nu-split > .wp-block-column {
		flex-basis: 100% !important;
		width: 100%;
	}
}
@media (min-width: 1024px) {
	.wp-block-columns.is-style-nu-split > .wp-block-column {
		min-height: min(calc(100vh - 7.5rem), 58rem);
	}
	.wp-block-columns.is-style-nu-split > .wp-block-column + .wp-block-column {
		border-left: 1px solid var(--nu-line-dark);
	}
}

.wp-block-column.is-style-nu-hero-pane {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
	padding: clamp(2rem, 5vw, 5rem);
	box-sizing: border-box;
	transition: background-color 0.5s ease;
}
.wp-block-column.is-style-nu-hero-pane > * {
	position: relative;
	z-index: 1;
	margin-block: 0;
}
/* Architectural line art. */
.wp-block-column.is-style-nu-hero-pane::after {
	content: "";
	position: absolute;
	right: 0;
	bottom: 0;
	width: min(420px, 80%);
	aspect-ratio: 1;
	z-index: 0;
	pointer-events: none;
	opacity: 0.05;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='40' y='40' width='320' height='320'/%3E%3Crect x='90' y='90' width='220' height='220'/%3E%3Crect x='140' y='140' width='120' height='120'/%3E%3Cpath d='M0 200h400M200 0v400'/%3E%3Ccircle cx='200' cy='200' r='110'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='black' stroke-width='1.5'%3E%3Crect x='40' y='40' width='320' height='320'/%3E%3Crect x='90' y='90' width='220' height='220'/%3E%3Crect x='140' y='140' width='120' height='120'/%3E%3Cpath d='M0 200h400M200 0v400'/%3E%3Ccircle cx='200' cy='200' r='110'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: opacity 0.5s ease;
}
.wp-block-column.is-style-nu-hero-pane:nth-child(even)::after {
	-webkit-mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='200' cy='200' r='160'/%3E%3Ccircle cx='200' cy='200' r='110'/%3E%3Ccircle cx='200' cy='200' r='60'/%3E%3Cpath d='M40 360 360 40M200 40v320M40 200h320'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400' fill='none' stroke='black' stroke-width='1.5'%3E%3Ccircle cx='200' cy='200' r='160'/%3E%3Ccircle cx='200' cy='200' r='110'/%3E%3Ccircle cx='200' cy='200' r='60'/%3E%3Cpath d='M40 360 360 40M200 40v320M40 200h320'/%3E%3C/svg%3E");
}
/* Copper accent bar fades in on hover. */
.wp-block-column.is-style-nu-hero-pane::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: var(--nu-copper);
	opacity: 0;
	transition: opacity 0.4s ease;
}
/* The hover state: a colour change only. Also applied on keyboard focus within the pane. */
.wp-block-column.is-style-nu-hero-pane:is(:hover, :focus-within)::after {
	opacity: 0.11;
}
.wp-block-column.is-style-nu-hero-pane:is(:hover, :focus-within)::before {
	opacity: 1;
}
.wp-block-column.is-style-nu-hero-pane.has-obsidian-background-color:is(:hover, :focus-within) {
	background-color: var(--nu-obsidian-hover) !important;
}
.wp-block-column.is-style-nu-hero-pane.has-emerald-background-color:is(:hover, :focus-within) {
	background-color: var(--nu-emerald-hover) !important;
}

.nu-hero-pane__top,
.nu-hero-pane__foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0.75rem 1rem;
}
.nu-hero-pane__top {
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--nu-line-dark);
}
.nu-hero-pane__foot {
	padding-top: 1.5rem;
	border-top: 1px solid var(--nu-line-dark);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.nu-hero-pane__top > *,
.nu-hero-pane__foot > * {
	margin: 0 !important;
}
.nu-hero-pane__body {
	margin-block: auto !important;
	padding-block: 1rem;
}
.nu-hero-pane__body > * {
	margin: 0;
}
.nu-hero-pane__body h1,
.nu-hero-pane__body h2 {
	margin-bottom: 1.5rem;
	font-size: var(--wp--preset--font-size--hero);
	line-height: 0.98;
	letter-spacing: -0.035em;
}
.nu-hero-pane__body > p {
	max-width: 36rem;
	margin-bottom: 2rem;
}
.nu-hero-pane__body .wp-block-buttons {
	margin-top: 2.5rem;
}

/* Value pills */
.nu-pills {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.75rem;
	max-width: 36rem;
}
@media (min-width: 640px) {
	.nu-pills { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.nu-pills > * {
	margin: 0 !important;
}
.is-style-nu-pill {
	border: 1px solid var(--nu-line-dark);
	background: rgba(255, 255, 255, 0.03);
	padding: 0.75rem;
	font-family: var(--nu-mono);
}
.is-style-nu-pill > * {
	margin: 0 !important;
}
.is-style-nu-pill > :first-child {
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.is-style-nu-pill > :first-child:not(.has-text-color) {
	color: var(--nu-copper-light);
}
.is-style-nu-pill > :last-child:not(:first-child) {
	font-size: 0.6875rem;
	line-height: 1.5;
}
.is-style-nu-pill > :last-child:not(:first-child):not(.has-text-color) {
	color: var(--nu-muted-dark);
}

/* -------------------------------------------------------------------------
 * 8. Trust strip
 * ---------------------------------------------------------------------- */
.nu-trust {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}
.nu-trust > * {
	margin: 0 !important;
}
@media (min-width: 640px) {
	.nu-trust { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.nu-trust { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.nu-trust__item {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: 1.75rem var(--nu-gutter);
	border-top: 1px solid var(--nu-line);
}
.nu-trust__item > * {
	margin: 0 !important;
}
@media (min-width: 640px) {
	.nu-trust__item {
		padding: 2rem;
		border-top: 0;
		border-left: 1px solid var(--nu-line);
	}
	.nu-trust__item:nth-child(odd) { border-left: 0; }
	.nu-trust__item:nth-child(n + 3) { border-top: 1px solid var(--nu-line); }
}
@media (min-width: 1024px) {
	.nu-trust__item:nth-child(n) { border-top: 0; border-left: 1px solid var(--nu-line); }
	.nu-trust__item:first-child { border-left: 0; }
}
.nu-trust__item:first-child { border-top: 0; }
.nu-trust__num {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	color: var(--nu-copper-deep);
	padding-top: 0.2rem;
}
.nu-trust__item h3 {
	font-size: 0.875rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 0.25rem !important;
}
.nu-trust__item p:not(.nu-trust__num) {
	font-size: 0.8125rem;
	line-height: 1.55;
	color: var(--nu-muted);
	margin: 0;
}
.nu-trust__text > * {
	margin: 0;
}

/* -------------------------------------------------------------------------
 * 9. Programme explorer
 * ---------------------------------------------------------------------- */
.nu-explorer__controls {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding-block: 1rem;
	margin-bottom: 2.5rem;
	border-top: 1px solid var(--nu-line);
	border-bottom: 1px solid var(--nu-line);
}
@media (min-width: 900px) {
	.nu-explorer__controls {
		flex-direction: row;
		align-items: flex-end;
		justify-content: space-between;
	}
}
.nu-explorer__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.nu-filter {
	min-height: 44px;
	padding: 0.625rem 1rem;
	border: 1px solid var(--nu-field-border);
	background: var(--nu-stone);
	color: var(--nu-obsidian);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.nu-filter:hover {
	border-color: var(--nu-obsidian);
}
.nu-filter[aria-pressed="true"] {
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
}
.nu-filter[aria-pressed="true"]::before {
	/* Non-colour indicator of the selected filter (1.4.1). */
	content: "";
	display: inline-block;
	width: 0.4rem;
	height: 0.4rem;
	margin-right: 0.5rem;
	vertical-align: 0.1em;
	background: var(--nu-copper);
}
.nu-explorer__search {
	min-width: min(100%, 17rem);
}
.nu-explorer__search-label {
	display: block;
	margin-bottom: 0.375rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.nu-explorer__search-field {
	position: relative;
}
.nu-explorer__search-field .nu-icon {
	position: absolute;
	left: 0.875rem;
	top: 50%;
	transform: translateY(-50%);
	color: var(--nu-muted);
	pointer-events: none;
}
.nu-explorer .nu-explorer__search input[type="search"] {
	width: 100%;
	min-height: 44px;
	padding: 0.625rem 1rem 0.625rem 2.25rem;
}

.nu-explorer__grid {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1px;
	background: var(--nu-line);
	border: 1px solid var(--nu-line);
}
@media (min-width: 768px) {
	.nu-explorer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.nu-explorer__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.nu-pcard {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	margin: 0;
	padding: clamp(1.5rem, 3vw, 2rem);
	background: var(--nu-alabaster);
	transition: background-color 0.3s ease;
}
.nu-pcard[hidden] {
	display: none;
}
.nu-pcard:hover,
.nu-pcard:focus-within {
	background: var(--nu-card-hover, #efede7);
}
.nu-pcard:hover .nu-badge {
	background: var(--nu-copper-deep);
}
.nu-pcard__body > * {
	margin: 0;
}
.nu-pcard__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 1.25rem !important;
}
.nu-pcard__duration {
	display: inline-flex;
	align-items: center;
	gap: 0.375rem;
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	color: var(--nu-muted);
}
.nu-pcard__duration .nu-icon {
	color: var(--nu-copper-deep);
}
.nu-pcard__sector {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nu-copper-deep);
	margin-bottom: 0.5rem !important;
}
.nu-pcard__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.3;
	margin-bottom: 0.75rem !important;
	letter-spacing: -0.01em;
}
.nu-pcard__title a {
	color: var(--nu-obsidian);
	text-decoration: none;
}
.nu-pcard__title a:hover {
	color: var(--nu-copper-deep);
	text-decoration: underline;
}
.nu-pcard__summary {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	color: var(--nu-muted);
	margin-bottom: 1.5rem !important;
}
.nu-pcard__foot {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.75rem;
	padding-top: 1rem;
	border-top: 1px solid var(--nu-line);
}
.nu-pcard__meta {
	margin: 0;
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	font-weight: 500;
}
.nu-pcard__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.5rem 1.25rem;
	width: 100%;
}
.nu-pcard__details,
.nu-pcard__enquire {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	text-decoration: none;
	cursor: pointer;
}
.nu-pcard__details {
	color: var(--nu-obsidian) !important;
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}
.nu-pcard__details:hover {
	color: var(--nu-copper-deep) !important;
	text-decoration-thickness: 2px;
}
.nu-pcard__details .nu-icon {
	transition: transform 0.3s var(--nu-ease);
}
.nu-pcard__details:hover .nu-icon {
	transform: translateX(3px);
}
.nu-pcard__enquire {
	margin-left: auto;
	padding: 0 0.9rem;
	border: 1px solid var(--nu-field-border);
	background: transparent;
	color: var(--nu-obsidian);
	transition: background-color 0.2s ease, color 0.2s ease;
}
.nu-pcard__enquire:hover {
	background: var(--nu-obsidian);
	border-color: var(--nu-obsidian);
	color: var(--nu-alabaster);
}
.nu-explorer__empty {
	border: 1px solid var(--nu-line);
	background: var(--nu-stone-50, rgba(235, 233, 226, 0.5));
	padding: 3rem 1.5rem;
	text-align: center;
}
.nu-explorer__empty-title {
	font-family: var(--nu-display);
	font-weight: 600;
	font-size: 1.125rem;
}

/* -------------------------------------------------------------------------
 * 10. Delivery steps
 * ---------------------------------------------------------------------- */
.nu-steps {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
}
@media (min-width: 768px) {
	.nu-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1200px) {
	.nu-steps { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.is-style-nu-step {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: clamp(1.75rem, 3vw, 2.5rem);
	transition: background-color 0.5s ease;
}
.is-style-nu-step > * {
	margin: 0 !important;
}
.is-style-nu-step:hover {
	background-color: var(--nu-step-hover, #182a24) !important; /* muted-on-dark stays 7.3:1, copper-light 5.3:1 */
}
.is-style-nu-step:hover h3 {
	color: var(--nu-copper-light);
}
.is-style-nu-step h3 {
	font-size: var(--wp--preset--font-size--x-large);
	margin-bottom: 1rem !important;
	transition: color 0.3s ease;
}
.is-style-nu-step p:not([class*="is-style"]) {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.65;
}
.nu-step__top {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-bottom: 2.5rem !important;
}
.nu-step__top > *,
.nu-step__foot > * {
	margin: 0 !important;
}
.nu-step__foot {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: 2rem !important;
	padding-top: 1rem;
	border-top: 1px solid var(--nu-line-dark);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nu-muted-dark);
}
.nu-step__foot .nu-icon-block {
	color: var(--nu-copper);
}

/* -------------------------------------------------------------------------
 * 11. Funding calculator
 * ---------------------------------------------------------------------- */
.nu-calc {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	border: 1px solid var(--nu-line);
	background: var(--nu-alabaster);
	box-shadow: 0 1px 2px rgba(17, 22, 21, 0.06);
}
@media (min-width: 1024px) {
	.nu-calc { grid-template-columns: 7fr 5fr; }
}
.nu-calc__inputs {
	padding: clamp(1.75rem, 5vw, 3.5rem);
	border-bottom: 1px solid var(--nu-line);
}
@media (min-width: 1024px) {
	.nu-calc__inputs {
		border-bottom: 0;
		border-right: 1px solid var(--nu-line);
	}
}
.nu-calc__intro > * {
	margin-top: 0;
	margin-bottom: 0.75rem;
}
.nu-calc__intro {
	margin-bottom: 2rem;
}
.nu-calc__form {
	display: grid;
	gap: 2rem;
}
.nu-calc__group {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}
.nu-calc__group[disabled] {
	opacity: 0.55;
}
.nu-calc__legend {
	display: block;
	padding: 0;
	margin-bottom: 0.75rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--nu-obsidian);
}
.nu-calc__options {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 0.75rem;
}
@media (min-width: 640px) {
	.nu-calc__options--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nu-calc__options--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* Radio card */
.nu-option {
	position: relative;
	display: flex;
	gap: 0.75rem;
	align-items: flex-start;
	padding: 1rem;
	border: 1px solid var(--nu-field-border);
	background: var(--nu-stone-40, rgba(235, 233, 226, 0.4));
	color: var(--nu-obsidian);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.nu-option:hover {
	border-color: var(--nu-obsidian);
}
.nu-option input {
	flex: none;
	width: 1.125rem;
	height: 1.125rem;
	margin: 0.125rem 0 0;
	accent-color: var(--nu-copper-deep);
}
.nu-option__box {
	display: grid;
	gap: 0.25rem;
}
.nu-option__title {
	font-family: var(--nu-display);
	font-weight: 700;
	font-size: 0.875rem;
	line-height: 1.35;
}
.nu-option__text {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	color: var(--nu-muted);
}
.nu-option:has(input:checked) {
	background: var(--nu-obsidian);
	border-color: var(--nu-obsidian);
	color: var(--nu-alabaster);
	box-shadow: inset 0 0 0 1px var(--nu-obsidian);
}
.nu-option:has(input:checked) .nu-option__text {
	color: var(--nu-muted-dark);
}
.nu-option:has(input:checked) input {
	accent-color: var(--nu-copper-light);
}
.nu-option:has(input:focus-visible) {
	outline: 3px solid var(--nu-copper-deep);
	outline-offset: 3px;
}
.nu-option input:focus-visible {
	outline: none;
}
.nu-calc__group[disabled] .nu-option {
	cursor: not-allowed;
}

.nu-calc__output {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 2rem;
	padding: clamp(1.75rem, 5vw, 3.5rem);
	background: var(--nu-emerald);
	color: var(--nu-alabaster);
	--nu-focus: var(--nu-copper-light);
}
.nu-calc__output p {
	margin: 0;
}
.nu-calc__output-head {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 0.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--nu-line-dark);
}
.nu-calc__output-heading {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nu-copper-light);
}
.nu-calc__badge {
	padding: 0.2rem 0.6rem;
	background: var(--nu-copper-deep);
	color: var(--nu-alabaster);
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.nu-calc__figures {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.5rem;
}
.nu-calc__figure-label {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nu-muted-dark);
	margin-bottom: 0.25rem !important;
}
.nu-calc__amount {
	font-family: var(--nu-mono);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
	line-height: 1.15;
	color: var(--nu-alabaster);
}
.nu-calc__amount--accent {
	color: var(--nu-copper-light);
}
.nu-calc__pct {
	margin-top: 0.25rem !important;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--nu-muted-dark);
}
.nu-calc__pct--accent {
	color: var(--nu-copper-light);
}
.nu-calc__insight {
	padding: 1.25rem;
	background: rgba(17, 22, 21, 0.4);
	border: 1px solid var(--nu-line-dark);
}
.nu-calc__insight-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.5rem !important;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nu-copper-light);
}
.nu-calc__insight-body {
	font-size: 0.8125rem;
	line-height: 1.65;
	color: var(--nu-soft-on-dark, #d5d8d3);
}
.nu-calc__cta {
	display: grid;
	gap: 0.75rem;
}
.nu-calc__footnote {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	line-height: 1.5;
	color: var(--nu-muted-dark);
	text-align: center;
}
.nu-calc .nu-btn--copper {
	--nu-wipe: var(--nu-obsidian);
}

/* Select wrapper with a custom chevron */
.nu-select {
	position: relative;
}
.nu-select select {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	padding-right: 2.5rem !important;
	cursor: pointer;
}
.nu-select::after {
	content: "";
	position: absolute;
	right: 1rem;
	top: 50%;
	width: 0.6rem;
	height: 0.6rem;
	margin-top: -0.4rem;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg);
	pointer-events: none;
}

/* -------------------------------------------------------------------------
 * 12. Form fields
 * ---------------------------------------------------------------------- */
.nu-explorer input[type="search"],
.nu-calc select,
.nu-form input:not([type="hidden"]),
.nu-form select,
.nu-form textarea {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	padding: 0.7rem 0.9rem;
	border: 1px solid var(--nu-field-border);
	border-radius: 0;
	background: var(--wp--preset--color--white, #fff);
	color: var(--nu-obsidian);
	font-family: var(--wp--preset--font-family--body);
	font-size: 1rem; /* ≥16px avoids iOS zoom */
	line-height: 1.4;
}
.nu-calc input[type="number"] {
	box-sizing: border-box;
	width: 100%;
	min-height: 44px;
	padding: 0.9rem 1rem;
	border: 1px solid var(--nu-field-border);
	border-radius: 0;
	background: #fff;
	font-family: var(--nu-mono);
	font-size: 1rem;
}
.nu-calc__hint {
	margin: 0.5rem 0 0;
	font-size: 0.8125rem;
	color: var(--nu-muted);
}
.nu-calc select {
	background: var(--nu-stone-50, rgba(235, 233, 226, 0.5));
	font-size: 0.9375rem;
	font-weight: 500;
	padding: 0.9rem 1rem;
}
.nu-explorer input[type="search"] {
	font-family: var(--nu-mono);
	font-size: 0.875rem;
	background: var(--nu-stone-60, rgba(235, 233, 226, 0.6));
}
.nu-explorer input::placeholder,
.nu-form input::placeholder,
.nu-form textarea::placeholder {
	color: #6b6f6c; /* 4.9:1 on white */
	opacity: 1;
}
.nu-form input[readonly] {
	background: var(--nu-stone);
	font-family: var(--nu-mono);
	font-size: 0.8125rem;
}

.nu-form__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1rem 1rem;
}
@media (min-width: 560px) {
	.nu-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.nu-field--full { grid-column: 1 / -1; }
}
.nu-field {
	display: flex;
	flex-direction: column;
}
.nu-field__label {
	margin-bottom: 0.4rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.06em;
}
.nu-field__req {
	color: var(--nu-copper-deep);
}
.nu-field__error {
	order: 2;
	margin: 0.4rem 0 0;
	font-size: 0.8125rem;
	font-weight: 600;
	color: #a52a1a; /* 6.3:1 on alabaster */
}
.nu-field__error::before {
	content: "! ";
}
.nu-field select,
.nu-field input,
.nu-field textarea,
.nu-field .nu-select {
	order: 1;
}
.nu-field [aria-invalid="true"] {
	border-color: #a52a1a !important;
	box-shadow: inset 0 0 0 1px #a52a1a;
}
.nu-form__form > * {
	margin-top: 0;
}
.nu-form__form > * + * {
	margin-top: 1.25rem;
}
.nu-form__note,
.nu-form__privacy {
	font-size: 0.8125rem;
	line-height: 1.55;
	margin-bottom: 0;
	color: var(--nu-muted);
}
.nu-form__errors {
	padding: 1rem;
	border: 2px solid #a52a1a;
	background: #fbeeeb;
	color: #7d1f13;
	font-weight: 600;
	font-size: 0.875rem;
}
.nu-form__errors ul {
	margin: 0.5rem 0 0;
	padding-left: 1.25rem;
	font-weight: 400;
}
.nu-form__errors a {
	color: inherit !important;
}
.nu-form__hp {
	position: absolute !important;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.nu-form__submit {
	--nu-wipe: var(--nu-copper-deep);
	gap: 0.75rem;
}
.nu-form__status:empty {
	display: none;
}
.nu-form__success,
.nu-form__failure {
	margin: 0;
	padding: 1rem;
	font-family: var(--nu-mono);
	font-size: 0.8125rem;
	line-height: 1.55;
}
.nu-form__success {
	background: var(--nu-emerald);
	color: var(--nu-alabaster);
	border-left: 4px solid var(--nu-copper-light);
}
.nu-form__failure {
	background: #fbeeeb;
	color: #7d1f13;
	border-left: 4px solid #a52a1a;
}

/* Dark variant (footer) */
.nu-form--dark {
	--nu-focus: var(--nu-copper-light);
}
.nu-form--dark .nu-field__label {
	color: var(--nu-soft-on-dark, #d5d8d3);
}
.nu-form--dark input:not([type="hidden"]):not([readonly]),
.nu-form--dark select,
.nu-form--dark textarea {
	background: var(--nu-field-dark-bg, #1a201e);
	border-color: var(--nu-field-border-dark);
	color: var(--nu-alabaster);
}
.nu-form--dark input::placeholder,
.nu-form--dark textarea::placeholder {
	color: #9ea39d;
}
.nu-form--dark select option {
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
}
.nu-form--dark .nu-field__req {
	color: var(--nu-copper-light);
}
.nu-form--dark .nu-field__error {
	color: #ffb4a3; /* 9.9:1 on obsidian */
}
.nu-form--dark .nu-field [aria-invalid="true"] {
	border-color: #ffb4a3 !important;
	box-shadow: inset 0 0 0 1px #ffb4a3;
}
.nu-form--dark .nu-form__note,
.nu-form--dark .nu-form__privacy {
	color: var(--nu-muted-dark);
}
.nu-form--dark .nu-form__submit {
	background: var(--nu-copper-deep);
	--nu-wipe: var(--nu-emerald);
}

/* -------------------------------------------------------------------------
 * 13. Levels matrix (table)
 * ---------------------------------------------------------------------- */
.wp-block-table.is-style-nu-matrix {
	overflow-x: auto;
	border: 1px solid var(--nu-line);
	margin: 0;
}
.wp-block-table.is-style-nu-matrix table {
	width: 100%;
	min-width: 760px;
	border-collapse: collapse;
	text-align: left;
	background: var(--nu-alabaster);
}
.wp-block-table.is-style-nu-matrix thead {
	border: 0;
}
.wp-block-table.is-style-nu-matrix th {
	padding: 1.25rem;
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border: 0;
	border-right: 1px solid var(--nu-line-dark);
}
.wp-block-table.is-style-nu-matrix td {
	padding: 1.25rem;
	border: 0;
	border-top: 1px solid var(--nu-line);
	border-right: 1px solid var(--nu-line);
	color: var(--nu-muted);
	vertical-align: top;
}
.wp-block-table.is-style-nu-matrix :is(th, td):last-child {
	border-right: 0;
}
.wp-block-table.is-style-nu-matrix tbody tr:nth-child(even) {
	background: var(--nu-stone-35, rgba(235, 233, 226, 0.35));
}
.wp-block-table.is-style-nu-matrix tbody tr:hover {
	background: var(--nu-stone-70, rgba(235, 233, 226, 0.7));
}
.wp-block-table.is-style-nu-matrix td:first-child {
	font-family: var(--nu-display);
	font-weight: 700;
	color: var(--nu-obsidian);
}
.wp-block-table.is-style-nu-matrix td:nth-child(2) {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	color: var(--nu-copper-deep);
	white-space: nowrap;
}
.wp-block-table.is-style-nu-matrix td:nth-child(4) {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--nu-obsidian);
	white-space: nowrap;
}
.wp-block-table.is-style-nu-matrix td:last-child {
	color: var(--nu-obsidian);
	font-weight: 500;
}
.wp-block-table.is-style-nu-matrix figcaption {
	padding: 0.75rem 1rem;
	font-size: 0.8125rem;
	color: var(--nu-muted);
	text-align: left;
}

/* -------------------------------------------------------------------------
 * 14. Insights (query loop)
 * ---------------------------------------------------------------------- */
.nu-insights .wp-block-post-template {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1px;
	background: var(--nu-line);
	border: 1px solid var(--nu-line);
	margin: 0;
	padding: 0;
}
@media (min-width: 1024px) {
	.nu-insights .wp-block-post-template { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.nu-insights .wp-block-post-template > li {
	margin: 0;
	display: flex;
}
.nu-insight {
	display: flex;
	flex-direction: column;
	width: 100%;
	padding: clamp(1.75rem, 3vw, 2.5rem);
	background: var(--nu-alabaster);
}
.nu-insight > * {
	margin: 0 !important;
}
.nu-insight__meta {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem;
	padding-bottom: 1rem;
	margin-bottom: 1.5rem !important;
	border-bottom: 1px solid var(--nu-line);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nu-muted);
}
.nu-insight__meta > * {
	margin: 0 !important;
}
.nu-insight__cat a {
	color: var(--nu-copper-deep);
	font-weight: 600;
	text-decoration: none;
}
.nu-insight__cat a:hover {
	text-decoration: underline;
}
.nu-insight .nu-post-panel {
	margin-bottom: 1.5rem !important;
}
.nu-insight__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.3;
	margin-bottom: 0.75rem !important;
}
.nu-insight__title a {
	color: var(--nu-obsidian);
	text-decoration: none;
}
.nu-insight__title a:hover {
	color: var(--nu-copper-deep);
	text-decoration: underline;
}
.nu-insight__excerpt {
	flex-grow: 1;
	font-size: var(--wp--preset--font-size--small);
	color: var(--nu-muted);
	margin-bottom: 1.5rem !important;
}
.nu-insight__excerpt p {
	margin: 0;
}
.nu-insight__excerpt .wp-block-post-excerpt__more-text {
	display: none;
}
.wp-block-read-more.nu-insight__more,
.nu-insight__more {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	width: fit-content;
	min-height: 32px;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--nu-obsidian);
	text-decoration: none;
}
.nu-insight__more:hover {
	color: var(--nu-copper-deep);
	text-decoration: underline;
}
.nu-insight__more::after {
	content: "→";
	font-family: var(--nu-display);
	transition: transform 0.3s var(--nu-ease);
}
.nu-insight__more:hover::after {
	transform: translateX(3px);
}

/* Card graphic */
.nu-post-panel__img {
	display: block;
	width: 100%;
	height: 11rem;
	object-fit: cover;
}
.nu-post-panel__graphic {
	position: relative;
	overflow: hidden;
	height: 11rem;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 1.5rem;
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
}
.wp-block-post-template > li:nth-child(even) .nu-post-panel__graphic {
	background: var(--nu-emerald);
}
.nu-post-panel__label {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.14em;
	color: var(--nu-copper-light);
}
.nu-post-panel__headline {
	position: relative;
	z-index: 1;
	font-family: var(--nu-display);
	font-weight: 700;
	font-size: 1.375rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.nu-post-panel__shape {
	position: absolute;
	right: -1.5rem;
	bottom: -1.5rem;
	width: 9rem;
	height: 9rem;
	opacity: 0.12;
}

/* -------------------------------------------------------------------------
 * 15. FAQ
 * ---------------------------------------------------------------------- */
.nu-faq-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--60);
	align-items: start;
}
.nu-faq-layout > * {
	margin: 0 !important;
}
@media (min-width: 1024px) {
	.nu-faq-layout {
		grid-template-columns: 5fr 7fr;
	}
	.nu-faq-layout__aside {
		position: sticky;
		top: calc(var(--nu-header-actual, var(--nu-header-h)) + var(--wp-admin--admin-bar--height, 0px) + 2rem);
	}
}
.nu-faq-layout__aside > * + * {
	margin-top: 1.25rem;
}
.nu-faq-layout__list {
	border-top: 1px solid var(--nu-line);
}
.nu-faq-layout__list > * {
	margin: 0 !important;
}

.wp-block-details.is-style-nu-faq {
	border-bottom: 1px solid var(--nu-line);
	padding: 0;
}
.wp-block-details.is-style-nu-faq summary {
	position: relative;
	display: block;
	list-style: none;
	padding: 1.5rem 3rem 1.5rem 0;
	font-family: var(--nu-display);
	font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
	font-weight: 700;
	line-height: 1.35;
	letter-spacing: -0.01em;
	cursor: pointer;
	transition: color 0.2s ease;
}
.wp-block-details.is-style-nu-faq summary::-webkit-details-marker {
	display: none;
}
.wp-block-details.is-style-nu-faq summary:hover {
	color: var(--nu-copper-deep);
}
.wp-block-details.is-style-nu-faq summary::after {
	content: "+";
	position: absolute;
	right: 0.25rem;
	top: 1.3rem;
	font-family: var(--nu-mono);
	font-size: 1.75rem;
	font-weight: 300;
	line-height: 1;
	transition: transform 0.3s ease, color 0.3s ease;
}
.wp-block-details.is-style-nu-faq[open] summary::after {
	transform: rotate(45deg);
	color: var(--nu-copper-deep);
}
.wp-block-details.is-style-nu-faq > :not(summary) {
	margin: 0 3rem 1rem 0;
	color: var(--nu-muted);
	font-size: clamp(0.9375rem, 1.2vw, 1rem);
	line-height: 1.7;
}
.wp-block-details.is-style-nu-faq > :last-child {
	margin-bottom: 1.5rem;
}
.wp-block-details.is-style-nu-faq strong {
	color: var(--nu-obsidian);
}

/* -------------------------------------------------------------------------
 * 16. Footer
 * ---------------------------------------------------------------------- */
.nu-footer__top.nu-inner {
	padding-inline: 0;
}
.nu-footer__top {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	border-bottom: 1px solid var(--nu-line-dark);
}
.nu-footer__top > * {
	margin: 0 !important;
	padding: clamp(2rem, 5vw, 4rem) var(--nu-gutter);
}
@media (min-width: 1024px) {
	.nu-footer__top {
		grid-template-columns: 5fr 7fr;
	}
	.nu-footer__top > * + * {
		border-left: 1px solid var(--nu-line-dark);
	}
	.nu-footer__top > * {
		padding: 4rem;
	}
}
@media (max-width: 1023px) {
	.nu-footer__top > * + * {
		border-top: 1px solid var(--nu-line-dark);
	}
}
.nu-footer__form > * {
	margin-top: 0;
	margin-bottom: 0.75rem;
}
.nu-footer__form .nu-form {
	margin-top: 1.5rem;
}
.nu-footer__nav {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: 3rem;
}
.nu-footer__nav > * {
	margin: 0 !important;
}
.nu-footer__cols {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 2rem;
}
@media (min-width: 640px) {
	.nu-footer__cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.nu-footer__cols > * {
	margin: 0 !important;
}
.nu-footer__cols h2 {
	margin: 0 0 1rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nu-copper-light);
}

.wp-block-navigation.is-style-nu-footer-links {
	font-size: 0.8125rem;
	--navigation-layout-align: flex-start;
}
.wp-block-navigation.is-style-nu-footer-links .wp-block-navigation__container {
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
}
.wp-block-navigation.is-style-nu-footer-links .wp-block-navigation-item__content {
	display: inline-block;
	padding-block: 0.25rem;
	color: var(--nu-muted-dark) !important;
	text-decoration: none;
}
.wp-block-navigation.is-style-nu-footer-links .wp-block-navigation-item__content:hover {
	color: var(--nu-copper-light) !important;
	text-decoration: underline;
}

.nu-contact-list > * {
	margin: 0 0 1rem;
}
.nu-contact-list p {
	margin: 0;
	font-family: var(--nu-mono);
	font-size: 0.8125rem;
}
.nu-contact-list .nu-contact-list__label {
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nu-muted-dark);
}
.nu-contact-list a {
	color: var(--nu-alabaster) !important;
	text-decoration: none;
	word-break: break-word;
}
.nu-contact-list a:hover {
	color: var(--nu-copper-light) !important;
	text-decoration: underline;
}
.nu-footer__bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding-top: 2rem;
	border-top: 1px solid var(--nu-line-dark);
}
.nu-footer__bar > * {
	margin: 0 !important;
}
.nu-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
}
.nu-badges > * {
	margin: 0 !important;
	padding: 0.375rem 0.75rem !important;
	background: rgba(255, 255, 255, 0.02);
}
.nu-copyright {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: var(--nu-muted-dark);
}

/* -------------------------------------------------------------------------
 * 17. Enquiry drawer (native <dialog>)
 * ---------------------------------------------------------------------- */
.nu-drawer {
	position: fixed;
	inset: 0 0 0 auto;
	width: min(36rem, 100%);
	max-width: 100%;
	height: 100%;
	max-height: 100%;
	margin: 0 0 0 auto;
	padding: 0;
	border: 0;
	border-left: 1px solid var(--nu-line);
	background: var(--nu-alabaster);
	color: var(--nu-obsidian);
	box-shadow: -30px 0 60px -20px rgba(17, 22, 21, 0.45);
	--nu-focus: var(--nu-copper-deep);
}
.nu-drawer:not([open]) {
	display: none;
}
.nu-drawer::backdrop {
	background: rgba(17, 22, 21, 0.75);
	-webkit-backdrop-filter: blur(3px);
	backdrop-filter: blur(3px);
}
.nu-drawer[open] {
	animation: nu-drawer-in 0.45s var(--nu-ease);
}
@keyframes nu-drawer-in {
	from { transform: translateX(40px); opacity: 0; }
	to { transform: none; opacity: 1; }
}
.nu-drawer__panel {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	min-height: 100%;
}
.nu-drawer__main {
	padding: clamp(1.5rem, 5vw, 2.5rem);
}
.nu-drawer__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 1rem;
	padding-bottom: 1.5rem;
	margin-bottom: 2rem;
	border-bottom: 1px solid var(--nu-line);
}
.nu-drawer__head p,
.nu-drawer__head h2 {
	margin: 0;
}
.nu-drawer__kicker {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nu-copper-deep);
}
.nu-drawer__title {
	margin-top: 0.25rem !important;
	font-size: 1.5rem;
	line-height: 1.2;
	letter-spacing: -0.02em;
}
.nu-drawer__close {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--nu-field-border);
	background: transparent;
	color: var(--nu-obsidian);
	cursor: pointer;
	transition: background-color 0.2s ease, color 0.2s ease;
}
.nu-drawer__close:hover {
	background: var(--nu-obsidian);
	color: var(--nu-alabaster);
}
.nu-drawer__details {
	margin-bottom: 2rem;
	padding: 1.5rem;
	background: var(--nu-stone);
	border: 1px solid var(--nu-line);
}
.nu-drawer__details[hidden] {
	display: none;
}
.nu-drawer__details p {
	margin: 0;
}
.nu-drawer__details-row,
.nu-drawer__details-foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
}
.nu-drawer__details-row {
	color: var(--nu-copper-deep);
	font-weight: 600;
	margin-bottom: 0.5rem !important;
}
.nu-drawer__details-summary {
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
	margin-bottom: 1rem !important;
}
.nu-drawer__details-foot {
	padding-top: 0.75rem;
	border-top: 1px solid var(--nu-line);
	font-size: 0.6875rem;
	color: var(--nu-muted);
}
.nu-drawer__foot {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.5rem 1rem;
	padding: 1.25rem clamp(1.5rem, 5vw, 2.5rem);
	background: var(--nu-stone);
	border-top: 1px solid var(--nu-line);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	color: var(--nu-muted);
}
.nu-drawer__foot p {
	margin: 0;
}
.nu-drawer__foot a {
	color: var(--nu-obsidian);
}
html.nu-drawer-open {
	overflow: hidden;
}

/* -------------------------------------------------------------------------
 * 18. Page, post & programme templates
 * ---------------------------------------------------------------------- */
.nu-page-head {
	padding-block: var(--wp--preset--spacing--70);
	border-bottom: 1px solid var(--nu-line-dark);
}
.nu-page-head .nu-inner > * {
	margin-top: 0;
	margin-bottom: 1rem;
}
.nu-page-head .nu-inner > :last-child {
	margin-bottom: 0;
}
.nu-page-head h1 {
	font-size: clamp(2.25rem, 4.4vw, 4.25rem);
	max-width: 20ch;
}
.nu-page-head .wp-block-post-excerpt,
.nu-page-head .nu-lead {
	max-width: 42rem;
	font-size: var(--wp--preset--font-size--large);
	color: var(--nu-muted-dark);
}
.nu-page-head .wp-block-post-excerpt p {
	margin: 0;
}
.nu-page-head .wp-block-post-excerpt__more-text {
	display: none;
}
.nu-page-head .wp-block-post-terms a,
.nu-page-head .wp-block-post-date {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.12em;
}

.nu-content {
	padding-block: var(--wp--preset--spacing--70);
}
.nu-content .wp-block-post-content > :first-child {
	margin-top: 0;
}
.nu-content .wp-block-post-content h2 {
	font-size: var(--wp--preset--font-size--xx-large);
	margin-top: 2.5em;
}
.nu-content .wp-block-post-content :is(p, li) {
	max-width: 70ch;
}

.nu-with-aside {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--wp--preset--spacing--60);
	align-items: start;
}
.nu-with-aside > * {
	margin: 0 !important;
}
@media (min-width: 1024px) {
	.nu-with-aside {
		grid-template-columns: minmax(0, 8fr) minmax(0, 4fr);
	}
	.nu-with-aside > :last-child {
		position: sticky;
		top: calc(var(--nu-header-actual, var(--nu-header-h)) + var(--wp-admin--admin-bar--height, 0px) + 2rem);
	}
}

.nu-facts {
	border: 1px solid var(--nu-line);
	background: var(--nu-stone);
	padding: 1.75rem;
}
.nu-facts__heading {
	margin: 0 0 1rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: var(--nu-copper-deep);
}
.nu-facts__list {
	margin: 0 0 1.5rem;
}
.nu-facts__row {
	display: grid;
	grid-template-columns: 7rem minmax(0, 1fr);
	gap: 1rem;
	padding: 0.75rem 0;
	border-top: 1px solid var(--nu-line);
	font-size: var(--wp--preset--font-size--small);
}
.nu-facts__row dt {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nu-muted);
	padding-top: 0.15rem;
}
.nu-facts__row dd {
	margin: 0;
	font-weight: 500;
}
.nu-facts__row--stack {
	grid-template-columns: minmax(0, 1fr);
	gap: 0.5rem;
}
.nu-facts__jobs {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	gap: 0.375rem;
}
.nu-facts__jobs li {
	padding: 0.25rem 0.6rem;
	border: 1px solid var(--nu-field-border);
	background: var(--nu-alabaster);
	font-size: 0.8125rem;
	font-weight: 500;
}

.wp-block-query-pagination {
	margin-top: 2.5rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
}
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	min-width: 44px;
	min-height: 44px;
	justify-content: center;
}

.wp-block-search__label {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.wp-block-search__input {
	min-height: 44px;
	border: 1px solid var(--nu-field-border) !important;
	border-radius: 0;
	padding: 0.7rem 0.9rem !important;
	font-size: 1rem;
}
.wp-block-search__button {
	margin-left: 0 !important;
}

/* -------------------------------------------------------------------------
 * 19. Reveal on scroll (only with JS and when motion is OK)
 * ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.nu-js .nu-reveal {
		opacity: 0;
		transform: translateY(24px);
		transition: opacity 0.75s var(--nu-ease), transform 0.75s var(--nu-ease);
	}
	.nu-js .nu-reveal.is-visible {
		opacity: 1;
		transform: none;
	}
}

/* -------------------------------------------------------------------------
 * 20. Reduced motion: remove wipes, slides and animations (2.3.3 / user preference)
 * ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* Tighter header between 1200px and 1439px so everything fits on one line. */
@media (min-width: 1200px) and (max-width: 1439px) {
	.nu-mega__link,
	.nu-mega__trigger {
		padding: 0 0.85rem;
	}
	.nu-header__cta .wp-block-button__link {
		padding: 0.95rem 1.1rem;
		letter-spacing: 0.08em;
	}
}

/* -------------------------------------------------------------------------
 * Social proof: testimonials, employer logos, Trustpilot
 * ---------------------------------------------------------------------- */
.nu-quotes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1px;
	background: var(--nu-line);
	border: 1px solid var(--nu-line);
}
@media (min-width: 768px) {
	.nu-quotes--2,
	.nu-quotes--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.nu-quotes--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.nu-quote {
	margin: 0;
	background: var(--nu-alabaster);
}
.nu-quote__figure {
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
	margin: 0;
	padding: clamp(1.75rem, 3vw, 2.5rem);
}
.nu-quote__mark {
	color: var(--nu-copper);
	margin-bottom: 1.25rem;
}
.nu-quote__text {
	flex-grow: 1;
	margin: 0 0 1.75rem;
	padding: 0;
	border: 0;
}
.nu-quote__text p {
	margin: 0;
	font-family: var(--nu-display);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 500;
	line-height: 1.5;
	color: var(--nu-obsidian);
}
.nu-quote__cite {
	display: flex;
	align-items: center;
	gap: 0.875rem;
	padding-top: 1rem;
	border-top: 1px solid var(--nu-line);
}
.nu-quote__photo {
	flex: none;
	width: 3rem;
	height: 3rem;
	object-fit: cover;
	border-radius: 50%;
}
.nu-quote__who {
	display: grid;
	gap: 0.125rem;
}
.nu-quote__name {
	font-weight: 600;
	color: var(--nu-obsidian);
}
.nu-quote__role {
	font-size: 0.875rem;
	color: var(--nu-muted);
}
.nu-quote__programme {
	width: fit-content;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--nu-copper-deep);
	padding-block: 0.25rem;
}
/* On dark sections */
:is(.has-obsidian-background-color, .has-emerald-background-color) .nu-quotes {
	background: var(--nu-line-dark);
	border-color: var(--nu-line-dark);
}

.nu-logos {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	min-width: 0;
}
@media (min-width: 1024px) {
	.nu-logos {
		flex-direction: row;
		align-items: center;
		gap: 2.5rem;
	}
}
.nu-logos__label {
	flex: none;
	margin: 0;
	max-width: 14rem;
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--nu-muted);
}
.nu-logos__viewport {
	flex: 1 1 auto;
	min-width: 0;
	overflow: hidden;
}
.nu-logos__track {
	display: flex;
	width: max-content;
	max-width: 100%;
}
.nu-logos__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1.5rem 3rem;
}
.nu-logos__list--copy {
	display: none;
}

/* Carousel: only when the script finds the logos don't fit on one line */
.nu-logos.is-scrolling .nu-logos__viewport {
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.nu-logos.is-measuring .nu-logos__track {
	max-width: none;
}
.nu-logos.is-measuring .nu-logos__list {
	flex-wrap: nowrap;
}
.nu-logos.is-scrolling .nu-logos__track {
	max-width: none;
	animation: nu-logos-scroll var(--nu-logos-duration, 40s) linear infinite;
}
.nu-logos.is-scrolling .nu-logos__list {
	flex-wrap: nowrap;
	padding-right: 3rem;
}
.nu-logos.is-scrolling .nu-logos__list--copy {
	display: flex;
}
.nu-logos.is-scrolling:is(:hover, :focus-within) .nu-logos__track,
.nu-logos.is-paused .nu-logos__track {
	animation-play-state: paused;
}
@keyframes nu-logos-scroll {
	to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
	.nu-logos.is-scrolling .nu-logos__track {
		animation: none;
	}
}
.nu-logos__toggle {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 1px solid var(--nu-field-border);
	border-radius: 50%;
	background: var(--nu-card-bg, #ffffff);
	color: var(--nu-obsidian);
	cursor: pointer;
}
.nu-logos__toggle[hidden] {
	display: none;
}
.nu-logos__toggle:hover {
	border-color: var(--nu-obsidian);
}
.nu-logos__toggle:focus-visible {
	outline: 3px solid var(--nu-focus);
	outline-offset: 2px;
}
.nu-logos__play,
.nu-logos.is-paused .nu-logos__pause {
	display: none;
}
.nu-logos.is-paused .nu-logos__play {
	display: block;
}
@media (max-width: 1023px) {
	.nu-logos__toggle {
		position: absolute;
		top: -0.5rem;
		right: 0;
	}
}
.nu-logos__item {
	margin: 0;
}
.nu-logos__item a {
	display: inline-block;
}
.nu-logos__img {
	display: block;
	height: auto;
	max-height: 2.75rem;
	max-width: 9rem;
	width: auto;
	object-fit: contain;
	transition: filter 0.3s ease, opacity 0.3s ease;
}
.nu-logos--grey .nu-logos__img {
	filter: grayscale(1);
	opacity: 0.8;
}
.nu-logos--grey .nu-logos__item:is(:hover, :focus-within) .nu-logos__img {
	filter: none;
	opacity: 1;
}

.nu-trustpilot {
	min-height: 24px;
}
.nu-trustpilot__fallback {
	font-weight: 600;
}
.nu-trustpilot--editor {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.75rem 1rem;
	border: 1px dashed var(--nu-field-border);
	font-size: 0.875rem;
}
.nu-trustpilot__stars {
	color: #00b67a;
	letter-spacing: 0.1em;
}

.nu-proof {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	align-items: center;
}
.nu-proof > * {
	margin: 0 !important;
}
@media (min-width: 1024px) {
	.nu-proof {
		grid-template-columns: minmax(0, 1fr) 20rem;
		gap: 3rem;
	}
}

.nu-empty-note {
	margin: 0;
	padding: 1rem;
	border: 1px dashed var(--nu-field-border);
	font-size: 0.875rem;
	color: var(--nu-muted);
}

/* Coloured words in headings use <mark>; never fall back to the browser's yellow highlight. */
mark.has-inline-color:not([style*="background"]) {
	background-color: transparent;
}
mark:not([style]):not([class]) {
	background-color: transparent;
	color: inherit;
}

/* -------------------------------------------------------------------------
 * Standard: KSBs & duties
 * ---------------------------------------------------------------------- */
.nu-ksb {
	margin-block: var(--wp--preset--spacing--60) 0;
}
.nu-ksb__heading {
	font-size: var(--wp--preset--font-size--xx-large);
	margin: 0 0 0.75rem;
}
.nu-ksb__intro {
	max-width: 70ch;
	color: var(--nu-muted);
	margin: 0 0 1.5rem;
}
.nu-ksb__overview {
	margin: 0 0 1.5rem;
	padding: 1.25rem 1.5rem;
	border-left: 4px solid var(--nu-copper);
	background: var(--nu-stone);
}
.nu-ksb__overview p {
	margin: 0;
}
.nu-ksb__overview p + p {
	margin-top: 0.25rem;
	font-family: var(--nu-display);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
	line-height: 1.45;
}
.nu-ksb__label {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--nu-copper-deep);
}
.nu-ksb__groups {
	border-top: 1px solid var(--nu-line);
}
.nu-ksb__group {
	border-bottom: 1px solid var(--nu-line);
}
.nu-ksb__group > summary {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	list-style: none;
	padding: 1.1rem 3rem 1.1rem 0;
	cursor: pointer;
}
.nu-ksb__group > summary::-webkit-details-marker {
	display: none;
}
.nu-ksb__group > summary::after {
	content: "+";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	transform: translateY(-50%);
	font-family: var(--nu-mono);
	font-size: 1.6rem;
	font-weight: 300;
	line-height: 1;
	transition: transform 0.3s ease;
}
.nu-ksb__group[open] > summary::after {
	transform: translateY(-50%) rotate(45deg);
	color: var(--nu-copper-deep);
}
.nu-ksb__group > summary:hover .nu-ksb__group-title {
	color: var(--nu-copper-deep);
}
.nu-ksb__group-title {
	font-family: var(--nu-display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
}
.nu-ksb__count {
	font-family: var(--nu-mono);
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--nu-muted);
}
.nu-ksb__group-sub {
	font-size: 0.875rem;
	color: var(--nu-muted);
}
.nu-ksb__list {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
}
.nu-ksb__item {
	display: grid;
	grid-template-columns: 4.5rem minmax(0, 1fr);
	gap: 1rem;
	padding: 0.75rem 0;
	border-top: 1px solid var(--nu-line);
	line-height: 1.6;
}
.nu-ksb__group--d .nu-ksb__item {
	grid-template-columns: 5.5rem minmax(0, 1fr);
}
.nu-ksb__code {
	font-family: var(--nu-mono);
	font-size: 0.8125rem;
	font-weight: 600;
	color: var(--nu-copper-deep);
	padding-top: 0.15rem;
}
.nu-ksb__map {
	display: block;
	margin-top: 0.35rem;
	font-family: var(--nu-mono);
	font-size: 0.75rem;
	color: var(--nu-muted);
}
.nu-ksb__entry > :first-child {
	margin-top: 0;
}
.nu-ksb__source {
	margin: 1.25rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.6;
	color: var(--nu-muted);
}

/* -------------------------------------------------------------------------
 * Overview video
 * ---------------------------------------------------------------------- */
.nu-video {
	margin: 0 0 var(--wp--preset--spacing--60);
}
.nu-video__frame {
	position: relative;
	aspect-ratio: 16 / 9;
	background: var(--nu-obsidian);
	overflow: hidden;
}
.nu-video__frame video,
.nu-video__iframe {
	display: block;
	width: 100%;
	height: 100%;
	border: 0;
}
.nu-video__play {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	padding: 0;
	border: 0;
	background: var(--nu-obsidian);
	cursor: pointer;
	--nu-focus: var(--nu-copper-light);
}
.nu-video__play:focus-visible {
	outline-offset: -6px;
}
.nu-video__poster {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.6s var(--nu-ease), opacity 0.3s ease;
}
.nu-video__play:hover .nu-video__poster {
	opacity: 0.85;
}
.nu-video__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-start;
	padding: clamp(1.25rem, 4vw, 2.5rem);
	background:
		radial-gradient(circle at 85% 80%, rgba(200, 109, 81, 0.25), transparent 45%),
		linear-gradient(135deg, var(--nu-obsidian), var(--nu-emerald));
	color: var(--nu-alabaster);
	font-family: var(--nu-display);
	font-size: clamp(1.25rem, 3vw, 2rem);
	font-weight: 700;
	line-height: 1.15;
	text-align: left;
}
.nu-video__placeholder span {
	max-width: 22ch;
}
.nu-video__badge {
	position: absolute;
	left: clamp(1rem, 3vw, 2rem);
	bottom: clamp(1rem, 3vw, 2rem);
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	padding: 0.7rem 1.1rem 0.7rem 0.8rem;
	background: var(--nu-copper-deep);
	color: var(--nu-alabaster);
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	transition: background-color 0.2s ease;
}
.nu-video__play:hover .nu-video__badge,
.nu-video__play:focus-visible .nu-video__badge {
	background: var(--nu-obsidian);
}
.nu-video__label {
	display: inline-flex;
	gap: 0.75rem;
	align-items: center;
}
.nu-video__time {
	padding-left: 0.75rem;
	border-left: 1px solid rgba(246, 245, 242, 0.5);
}
.nu-video__consent {
	position: absolute;
	right: 0.75rem;
	top: 0.75rem;
	margin: 0;
	padding: 0.35rem 0.6rem;
	background: rgba(17, 22, 21, 0.85);
	color: var(--nu-alabaster);
	font-size: 0.75rem;
	line-height: 1.4;
	max-width: 60%;
}
.nu-video__consent a {
	color: var(--nu-copper-light) !important;
}
.nu-video__caption {
	display: grid;
	gap: 0.5rem;
	padding-top: 0.75rem;
	font-size: 0.875rem;
	color: var(--nu-muted);
}
.nu-video__title {
	font-weight: 600;
	color: var(--nu-obsidian);
}
.nu-video__transcript summary {
	width: fit-content;
	padding-block: 0.25rem;
	font-weight: 600;
	color: var(--nu-copper-deep);
	cursor: pointer;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.nu-video__transcript-text {
	max-height: 22rem;
	overflow: auto;
	margin-top: 0.5rem;
	padding: 1rem 1.25rem;
	background: var(--nu-stone);
	color: var(--nu-obsidian);
	line-height: 1.7;
}
.nu-video__transcript-text p {
	margin: 0 0 0.75rem;
}
@media (max-width: 560px) {
	.nu-video__consent {
		position: static;
		max-width: none;
	}
	.nu-video__frame:has(.nu-video__consent) {
		aspect-ratio: auto;
	}
	.nu-video__play {
		position: relative;
		aspect-ratio: 16 / 9;
		display: block;
	}
}
.nu-programme-main > * {
	margin-top: 0;
}
.nu-programme-main > * + * {
	margin-top: var(--wp--preset--spacing--50);
}

/* -------------------------------------------------------------------------
 * Role fit checker: the role today vs. what it grows into
 * ---------------------------------------------------------------------- */
.nu-role-fit-section {
	container-type: inline-size;
}
.nu-role-fit-section > * + * {
	margin-top: 1rem;
}
.nu-role-fit-section > .nu-rf {
	margin-top: 1.75rem;
}
.nu-rf {
	--nu-rf-today: var(--nu-obsidian);
	--nu-rf-grow: var(--nu-copper-deep);
	container-type: inline-size;
	display: grid;
	gap: 1.5rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: var(--nu-card-bg, #ffffff);
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-radius-lg, 0);
}
.nu-rf > *,
.nu-rf p {
	margin: 0;
}
.nu-rf fieldset {
	margin: 0;
	padding: 0;
	border: 0;
	min-width: 0;
}
.nu-rf__std {
	font-family: var(--nu-mono);
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--nu-muted);
}
.nu-rf__label {
	padding: 0;
	margin-bottom: 0.75rem;
	font-size: 0.9375rem;
	font-weight: 700;
	color: var(--nu-obsidian);
}

/* 1. Role pills */
.nu-rf__pills {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}
.nu-rf__pill {
	position: relative;
	cursor: pointer;
}
.nu-rf__pill input,
.nu-rf__seg input {
	position: absolute;
	opacity: 0;
	width: 1px;
	height: 1px;
}
.nu-rf__pill > span {
	display: inline-flex;
	align-items: center;
	min-height: 2.5rem;
	padding: 0.4rem 0.9rem;
	border: 1px solid var(--nu-field-border);
	border-radius: var(--nu-btn-radius, 0);
	background: var(--nu-card-bg, #ffffff);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--nu-obsidian);
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.nu-rf__pill:hover > span {
	border-color: var(--nu-obsidian);
}
.nu-rf__pill input:checked + span {
	background: var(--nu-obsidian);
	border-color: var(--nu-obsidian);
	color: var(--nu-alabaster);
}
.nu-rf__pill input:focus-visible + span,
.nu-rf__seg input:focus-visible + span {
	outline: 3px solid var(--nu-focus);
	outline-offset: 2px;
}

/* Snapshot: today vs. grows into */
.nu-rf__snap {
	display: grid;
	gap: 0.75rem;
}
@container (min-width: 560px) {
	.nu-rf__snap {
		grid-template-columns: 1fr 1fr;
	}
}
.nu-rf__card {
	display: flex;
	flex-direction: column;
	gap: 0.6rem;
	padding: 1rem 1.1rem;
	border: 1px solid var(--nu-line);
	border-top: 3px solid var(--nu-rf-today);
	border-radius: var(--nu-radius, 0);
	background: var(--nu-stone-35, #f3f2ee);
}
.nu-rf__card--grow {
	border-top-color: var(--nu-rf-grow);
	background: var(--nu-tint, #fbf3f0);
}
.nu-rf__card-title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	font-size: 0.8125rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: var(--nu-obsidian);
}
.nu-rf__key {
	flex: none;
	width: 0.75rem;
	height: 0.75rem;
	background: var(--nu-rf-today);
}
.nu-rf__card--grow .nu-rf__key {
	background: transparent;
	border: 2px solid var(--nu-rf-grow);
}
.nu-rf__card-text {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--nu-obsidian);
}
.nu-rf__tags {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem;
}
.nu-rf__tags li {
	margin: 0;
	padding: 0.2rem 0.55rem;
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-radius-sm, 0);
	background: var(--nu-card-bg, #ffffff);
	font-size: 0.75rem;
	font-weight: 500;
	color: var(--nu-obsidian);
}
.nu-rf__card--today .nu-rf__tags li::before {
	content: "✓ ";
}
.nu-rf__card--grow .nu-rf__tags li::before {
	content: "+ ";
	color: var(--nu-rf-grow);
	font-weight: 700;
}

/* 2. Areas */
.nu-rf__list,
.nu-rf__tags,
.nu-rf__areas,
.nu-rf__area,
.nu-rf p {
	max-width: none !important;
}
.nu-rf__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}
.nu-rf__area {
	display: grid;
	gap: 0.75rem;
	align-items: center;
	margin: 0;
	padding: 0.85rem 1rem;
	border: 1px solid var(--nu-line);
	border-left: 3px solid var(--nu-rf-grow);
	border-radius: var(--nu-radius, 0);
	background: var(--nu-card-bg, #ffffff);
	transition: background-color 0.2s ease, border-color 0.2s ease;
}
.nu-rf__area.is-today {
	border-left-color: var(--nu-rf-today);
	background: var(--nu-stone-35, #f3f2ee);
}
@container (min-width: 560px) {
	.nu-rf__area {
		grid-template-columns: minmax(0, 1fr) auto;
		gap: 1.25rem;
	}
}
.nu-rf__area-text {
	display: grid;
	gap: 0.2rem;
}
.nu-rf__area-title {
	font-weight: 700;
	font-size: 0.9375rem;
	color: var(--nu-obsidian);
}
.nu-rf__area-desc {
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--nu-muted);
}
.nu-rf__area-duties {
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	color: var(--nu-muted);
}
.nu-rf__seg {
	display: inline-flex;
	justify-self: start;
	padding: 3px;
	border: 1px solid var(--nu-field-border);
	border-radius: var(--nu-btn-radius, 0);
	background: var(--nu-card-bg, #ffffff);
}
.nu-rf__seg label {
	position: relative;
	cursor: pointer;
}
.nu-rf__seg label > span {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	padding: 0.25rem 0.8rem;
	border: 2px solid transparent;
	border-radius: var(--nu-btn-radius, 0);
	font-size: 0.8125rem;
	font-weight: 600;
	white-space: nowrap;
	color: var(--nu-muted);
}
.nu-rf__seg label:hover > span {
	color: var(--nu-obsidian);
}
.nu-rf__seg input[value="today"]:checked + span {
	background: var(--nu-rf-today);
	color: var(--nu-alabaster);
}
.nu-rf__seg label > span > span {
	margin-right: 0.3rem;
}
.nu-rf__seg input[value="grow"]:checked + span {
	background: var(--nu-tint, #fbf3f0);
	border-color: var(--nu-rf-grow);
	color: var(--nu-rf-grow);
}

/* Result */
.nu-rf__result {
	display: grid;
	gap: 0.6rem;
	padding-top: 1.25rem;
	border-top: 1px solid var(--nu-line);
}
.nu-rf__bar {
	display: flex;
	gap: 4px;
	max-width: 16rem;
}
.nu-rf__bar span {
	flex: 1;
	height: 0.6rem;
	border: 2px solid var(--nu-rf-grow);
	background: var(--nu-tint, #fbf3f0);
	border-radius: 2px;
}
.nu-rf__bar span.is-today {
	border-color: var(--nu-rf-today);
	background: var(--nu-rf-today);
}
.nu-rf__count {
	font-weight: 700;
	color: var(--nu-obsidian);
}
.nu-rf__verdict {
	font-size: 0.9375rem;
	line-height: 1.55;
	color: var(--nu-muted);
}
.nu-rf__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75rem 1.5rem;
	margin-top: 0.5rem !important;
}
.nu-rf__link {
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--nu-copper-deep);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.nu-rf__small {
	font-size: 0.75rem;
	color: var(--nu-muted);
}
@media (prefers-reduced-motion: reduce) {
	.nu-rf__pill span,
	.nu-rf__area {
		transition: none;
	}
}


/* Programme page sections that live inside the main column. */
.nu-programme-main {
	container-type: inline-size;
}
.nu-programme-block {
	margin-top: var(--wp--preset--spacing--70) !important;
}
.nu-programme-block > * {
	margin-top: 0;
	margin-bottom: 0;
}
.nu-programme-block > * + * {
	margin-top: 1rem;
}
.nu-programme-block > h3 {
	margin-top: 2.25rem;
	font-size: var(--wp--preset--font-size--large);
}
.nu-faq-list {
	border-top: 1px solid var(--nu-line);
}
.nu-faq-list > * {
	margin: 0 !important;
}
.nu-faq-list .wp-block-details.is-style-nu-faq summary {
	font-size: 1.0625rem;
	padding-block: 1.1rem;
}
.nu-faq-list .wp-block-details.is-style-nu-faq summary::after {
	top: 0.9rem;
}
/* The calculator stacks when its column is narrow (e.g. on programme pages). */
@container (max-width: 899px) {
	.nu-calc {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.nu-calc__inputs {
		border-right: 0 !important;
		border-bottom: 1px solid var(--nu-line) !important;
	}
}

/* -------------------------------------------------------------------------
 * 21. Alternative homepage layouts (Classic & Guided) and their sections
 * ---------------------------------------------------------------------- */

/* Feature card: the "Feature card" style of the Link card block */
.nu-link-card.is-style-nu-feature {
	display: flex;
	flex-direction: column;
	height: 100%;
	box-sizing: border-box;
	padding: clamp(1.5rem, 2.5vw, 2.25rem);
	background: var(--nu-card-bg, #ffffff);
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-radius-lg, 0);
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.nu-link-card.is-style-nu-feature:is(:hover, :focus-within) {
	background: var(--nu-card-bg, #ffffff);
	border-color: var(--nu-copper-deep);
	box-shadow: 0 12px 28px -18px rgba(0, 0, 0, 0.35);
}
.is-style-nu-feature .nu-link-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1.5rem;
	background: var(--nu-tint, #fbf3f0);
	color: var(--nu-copper-deep);
	border-radius: var(--nu-radius, 0);
}
.is-style-nu-feature .nu-link-card__kicker {
	margin-bottom: 0.5rem;
}
.is-style-nu-feature .nu-link-card__title {
	font-family: var(--nu-display);
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	line-height: 1.25;
	margin-bottom: 0.75rem;
}
.is-style-nu-feature .nu-link-card__text {
	font-size: 0.9375rem;
	margin-bottom: 1.5rem;
}
.nu-link-card__cta {
	margin-top: auto !important;
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--nu-copper-deep);
}
.nu-link-card__cta .nu-icon {
	transition: transform 0.25s ease;
}
.nu-link-card:is(:hover, :focus-within) .nu-link-card__cta .nu-icon {
	transform: translateX(4px);
}
.nu-feature-grid > * {
	min-width: 0;
}
.nu-feature-grid__more {
	margin-top: clamp(2rem, 4vw, 3rem) !important;
	justify-content: center;
}

/* Classic hero */
.nu-classic-hero {
	padding-block: clamp(3rem, 6vw, 6rem);
	border-bottom: 1px solid var(--nu-line);
}
.nu-classic-hero__grid {
	display: grid;
	gap: clamp(2rem, 4vw, 4.5rem);
	align-items: center;
}
.nu-classic-hero__main > * {
	margin: 0 !important;
}
.nu-classic-hero__main > * + * {
	margin-top: 1.5rem !important;
}
.nu-classic-hero__main h1 {
	max-width: 20ch;
	line-height: 1.08;
	letter-spacing: -0.025em;
}
.nu-classic-hero__main .wp-block-buttons {
	margin-top: 2rem !important;
}
@media (min-width: 1024px) {
	.nu-classic-hero__grid {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}
}

/* Tick list */
.nu-ticks {
	list-style: none;
	padding: 0 !important;
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.75rem;
	font-size: 0.9375rem;
	font-weight: 500;
}
.nu-ticks li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
}
.nu-ticks li::before {
	content: "";
	flex: none;
	width: 1.25rem;
	height: 1.25rem;
	background: var(--nu-copper-deep);
	-webkit-mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4'%3E%3Cpath d='m5 12 5 5 9-10'/%3E%3C/svg%3E") center / contain no-repeat;
}
:is(.has-obsidian-background-color, .has-emerald-background-color) .nu-ticks li::before {
	background: var(--nu-copper-light);
}

/* "At a glance" panel */
.nu-glance {
	padding: clamp(1.75rem, 3vw, 2.5rem);
	border-radius: var(--nu-radius-lg, 0);
}
.nu-glance > * {
	margin: 0 !important;
}
.nu-glance .is-style-nu-label {
	margin-bottom: 1rem !important;
}
.nu-glance__row {
	display: grid;
	grid-template-columns: minmax(7.5rem, 10rem) minmax(0, 1fr);
	gap: 1rem;
	align-items: baseline;
	padding-block: 1rem;
	border-top: 1px solid var(--nu-line-dark);
}
.nu-glance__row > * {
	margin: 0 !important;
}
.nu-glance__num {
	font-family: var(--nu-display);
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.15;
	color: var(--nu-copper-light);
}
.nu-glance__text {
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--nu-muted-dark);
}
.nu-glance__foot {
	margin-top: 1rem !important;
	padding-top: 1rem;
	border-top: 1px solid var(--nu-line-dark);
}
@media (max-width: 479px) {
	.nu-glance__row {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.25rem;
	}
}

/* Why choose us */
.nu-points {
	gap: clamp(1.75rem, 3vw, 2.5rem);
}
.nu-point > * {
	margin: 0 !important;
}
.nu-point__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1.25rem !important;
	background: var(--nu-card-bg, #ffffff);
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-radius, 0);
	color: var(--nu-copper-deep);
}
.nu-point__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.3;
	margin-bottom: 0.5rem !important;
}
.nu-point__text {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--nu-muted);
}

/* How it works: numbered steps */
.nu-steps__item {
	position: relative;
}
.nu-steps__item > * {
	margin: 0 !important;
}
.nu-steps__num {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3rem;
	height: 3rem;
	margin-bottom: 1.25rem !important;
	border: 2px solid var(--nu-copper-deep);
	background: var(--nu-alabaster);
	color: var(--nu-copper-deep);
	font-family: var(--nu-display);
	font-size: 1.125rem;
	font-weight: 700;
}
html[data-nu-shape] .nu-steps__num {
	border-radius: 50%;
}
.nu-steps__title {
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.3;
	margin-bottom: 0.5rem !important;
}
.nu-steps__item p:not(.nu-steps__num) {
	font-size: 0.9375rem;
	line-height: 1.6;
	color: var(--nu-muted);
}
@media (min-width: 1024px) {
	.nu-steps__item:not(:last-child)::after {
		content: "";
		position: absolute;
		top: 1.5rem;
		left: 3.75rem;
		right: calc(-1 * var(--wp--preset--spacing--40) + 0.75rem);
		height: 2px;
		background: var(--nu-line);
	}
}

/* Call-to-action band */
.nu-cta-band {
	display: grid;
	gap: 2rem;
	align-items: center;
}
.nu-cta-band > *,
.nu-cta-band__text > * {
	margin: 0 !important;
}
.nu-cta-band__text > * + * {
	margin-top: 0.75rem !important;
}
.nu-cta-band__text h2 {
	letter-spacing: -0.02em;
}
@media (min-width: 1024px) {
	.nu-cta-band {
		grid-template-columns: minmax(0, 1fr) auto;
	}
	.nu-cta-band__text {
		max-width: 44rem;
	}
}

/* Guided hero */
.nu-guided-hero {
	padding-block: clamp(3.5rem, 7vw, 6.5rem);
	border-bottom: 1px solid var(--nu-line);
}
.nu-guided-hero__head {
	max-width: 46rem;
	margin: 0 auto clamp(2.5rem, 4vw, 3.5rem) !important;
	text-align: center;
}
.nu-guided-hero__head > * {
	margin: 0 !important;
}
.nu-guided-hero__head > * + * {
	margin-top: 1.25rem !important;
}
.nu-guided-hero__head .is-style-nu-kicker {
	justify-content: center;
}
.nu-guided-hero__head h1 {
	line-height: 1.08;
	letter-spacing: -0.025em;
}
.nu-choices .nu-link-card__title {
	font-size: var(--wp--preset--font-size--xx-large);
	letter-spacing: -0.015em;
}
.nu-choices .nu-link-card__icon {
	width: 3.5rem;
	height: 3.5rem;
}
.nu-guided-hero__help {
	margin: clamp(2rem, 3vw, 2.5rem) 0 0 !important;
	color: var(--nu-muted);
}
.nu-guided-hero__help a {
	color: var(--nu-obsidian);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}
.nu-guided-hero__help a:hover {
	color: var(--nu-copper-deep);
}

@media (prefers-reduced-motion: reduce) {
	.nu-link-card.is-style-nu-feature,
	.nu-link-card__cta .nu-icon {
		transition: none;
	}
	.nu-link-card:is(:hover, :focus-within) .nu-link-card__cta .nu-icon {
		transform: none;
	}
}

/* -------------------------------------------------------------------------
 * 22. Learner resources: document list
 * ---------------------------------------------------------------------- */
.nu-docs-layout {
	display: grid;
	gap: clamp(2rem, 4vw, 4rem);
	align-items: start;
}
@media (min-width: 1024px) {
	.nu-docs-layout {
		grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
	}
	.nu-docs-layout__side {
		position: sticky;
		top: calc(var(--nu-header-actual, 5rem) + 1.5rem);
	}
}
.nu-docs-layout > *,
.nu-docs-layout__side > *,
.nu-docs-layout__main > * {
	margin: 0 !important;
}
.nu-docs-layout__side {
	display: grid;
	gap: 1.5rem;
}
.nu-docs-nav ul {
	list-style: none;
	margin: 0.75rem 0 0;
	padding: 0;
	border-top: 1px solid var(--nu-line);
}
.nu-docs-nav li {
	margin: 0;
	border-bottom: 1px solid var(--nu-line);
}
.nu-docs-nav a {
	display: block;
	padding: 0.75rem 0;
	font-weight: 600;
	color: var(--nu-obsidian);
	text-decoration: none;
}
.nu-docs-nav a:hover {
	color: var(--nu-copper-deep);
	text-decoration: underline;
}
.nu-docs-help > * {
	margin: 0 !important;
}
.nu-docs-help > * + * {
	margin-top: 0.75rem !important;
}
.nu-docs-layout__main {
	display: grid;
	gap: clamp(2.5rem, 5vw, 4rem);
}
.nu-docs-section {
	scroll-margin-top: calc(var(--nu-header-actual, 5rem) + 1rem);
}
.nu-docs-section > * {
	margin: 0 !important;
}
.nu-docs-section > * + * {
	margin-top: 1rem !important;
}
.nu-docs-section h2 {
	font-size: var(--wp--preset--font-size--xx-large);
}
.nu-docs__list {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--nu-line);
}
.nu-docs__item {
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	margin: 0;
	padding: 1rem 0;
	border-bottom: 1px solid var(--nu-line);
}
.nu-docs__icon {
	flex: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 3.25rem;
	height: 2.5rem;
	padding: 0 0.4rem;
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-radius-sm, 0);
	background: var(--nu-tint, #fbf3f0);
	color: var(--nu-copper-deep);
	font-family: var(--nu-mono);
	font-size: 0.6875rem;
	font-weight: 600;
	text-transform: uppercase;
}
.nu-docs__body {
	display: grid;
	gap: 0.25rem;
	min-width: 0;
}
.nu-docs__link {
	font-weight: 600;
	font-size: 1.0625rem;
	line-height: 1.4;
	color: var(--nu-obsidian);
	text-decoration: underline;
	text-decoration-color: var(--nu-line);
	text-underline-offset: 0.2em;
}
.nu-docs__link:hover {
	color: var(--nu-copper-deep);
	text-decoration-color: currentColor;
}
.nu-docs__meta {
	font-weight: 400;
	font-size: 0.9375rem;
	color: var(--nu-muted);
}
.nu-docs__desc {
	font-size: 0.9375rem;
	line-height: 1.5;
	color: var(--nu-muted);
}
.nu-docs__date {
	font-size: 0.875rem;
	color: var(--nu-muted);
}
.nu-docs__empty {
	margin: 0;
	padding: 1rem 1.25rem;
	border: 1px dashed var(--nu-field-border);
	color: var(--nu-muted);
}
