/**
 * Design variants: alternative looks over the same content.
 *
 * Five independent attributes on <html> (set by the site default or the design switcher):
 *   data-nu-style    colour palette   corporate | sleek | graphite | mono   (none = Editorial)
 *   data-nu-shape    corners          soft | round                          (none = square)
 *   data-nu-layout   grids            cards                                 (none = hairlines)
 *   data-nu-type     typography       sans | modern | serif                 (none = editorial)
 *   data-nu-density  section spacing  compact | airy                        (none = standard)
 *
 * Every colour pair has been checked to WCAG 2.2 AA (4.5:1 text, 3:1 UI boundaries/large text).
 */

html {
	--nu-radius-sm: 0;
	--nu-radius: 0;
	--nu-radius-lg: 0;
	--nu-btn-radius: 0;
	--nu-gap: 1.25rem;
	--nu-shadow-rgb: 15, 23, 42;
	--nu-shadow: 0 1px 2px rgba(var(--nu-shadow-rgb), 0.05), 0 8px 24px -12px rgba(var(--nu-shadow-rgb), 0.2);
	--nu-card-bg: #ffffff;
}

/* =========================================================================
 * 1. PALETTES
 * ====================================================================== */

/* Corporate: navy & blue on white */
html[data-nu-style="corporate"] {
	--wp--preset--color--obsidian: #0b2545;
	--wp--preset--color--emerald: #13315c;
	--wp--preset--color--alabaster: #ffffff;
	--wp--preset--color--stone: #eef3f8;
	--wp--preset--color--copper: #5fb3e4;
	--wp--preset--color--copper-deep: #0a5c8a;
	--wp--preset--color--copper-light: #8fd3f5;
	--wp--preset--color--muted: #4a5568;
	--wp--preset--color--muted-on-dark: #b8c6d9;
	--wp--preset--color--border-light: #d6dee8;
	--wp--preset--color--border-dark: #1e3a5f;
	--nu-field-border: #6b7a8f;
	--nu-field-border-dark: #8fa3bf;
	--nu-obsidian-hover: #12335e;
	--nu-emerald-hover: #0a2140;
	--nu-step-hover: #12335e;
	--nu-card-hover: #f5f8fb;
	--nu-header-bg: #ffffff;
	--nu-panel-bg: #ffffff;
	--nu-soft-on-dark: #dbe4ef;
	--nu-field-dark-bg: #0f2c50;
	--nu-tint: #eaf4fb;
	--nu-stone-35: #f5f8fb;
	--nu-stone-40: #f5f8fb;
	--nu-stone-50: #eef3f8;
	--nu-stone-60: #eef3f8;
	--nu-stone-70: #e6edf5;
	--nu-shadow-rgb: 11, 37, 69;
}

/* Sleek: warm charcoal, slate and warm greys */
html[data-nu-style="sleek"] {
	--wp--preset--color--obsidian: #21201d;
	--wp--preset--color--emerald: #33393f;
	--wp--preset--color--alabaster: #f5f5f4;
	--wp--preset--color--stone: #ebe9e7;
	--wp--preset--color--copper: #d1cdca;
	--wp--preset--color--copper-deep: #4f5b66;
	--wp--preset--color--copper-light: #e6e3e0;
	--wp--preset--color--muted: #55534e;
	--wp--preset--color--muted-on-dark: #aaaaaa;
	--wp--preset--color--border-light: #d1cdca;
	--wp--preset--color--border-dark: #45443f;
	--nu-field-border: #76736f;
	--nu-field-border-dark: #99968f;
	--nu-obsidian-hover: #2f2e2a;
	--nu-emerald-hover: #2a2f34;
	--nu-step-hover: #2f2e2a;
	--nu-card-hover: #ffffff;
	--nu-header-bg: rgba(245, 245, 244, 0.9);
	--nu-panel-bg: #ffffff;
	--nu-soft-on-dark: #e6e3e0;
	--nu-field-dark-bg: #2b2a27;
	--nu-tint: #eceef0;
	--nu-stone-35: #f0efed;
	--nu-stone-40: #efedeb;
	--nu-stone-50: #ebe9e7;
	--nu-stone-60: #e6e4e1;
	--nu-stone-70: #e0ddda;
	--nu-shadow-rgb: 33, 32, 29;
}

/* Graphite: charcoal greys with a teal accent */
html[data-nu-style="graphite"] {
	--wp--preset--color--obsidian: #1c1f22;
	--wp--preset--color--emerald: #2b3036;
	--wp--preset--color--alabaster: #f4f4f5;
	--wp--preset--color--stone: #e6e7e8;
	--wp--preset--color--copper: #5ccfc0;
	--wp--preset--color--copper-deep: #0d6b63;
	--wp--preset--color--copper-light: #99e6dc;
	--wp--preset--color--muted: #4a5057;
	--wp--preset--color--muted-on-dark: #b8bec4;
	--wp--preset--color--border-light: #d4d6d9;
	--wp--preset--color--border-dark: #3a4047;
	--nu-field-border: #6b7178;
	--nu-field-border-dark: #8a939c;
	--nu-obsidian-hover: #2a2f34;
	--nu-emerald-hover: #363c43;
	--nu-step-hover: #2a2f34;
	--nu-card-hover: #fafafa;
	--nu-header-bg: #ffffff;
	--nu-panel-bg: #ffffff;
	--nu-soft-on-dark: #dfe2e5;
	--nu-field-dark-bg: #262a2e;
	--nu-tint: #e7f5f3;
	--nu-stone-35: #f0f0f1;
	--nu-stone-40: #ececed;
	--nu-stone-50: #e6e7e8;
	--nu-stone-60: #e1e2e3;
	--nu-stone-70: #dcdddf;
	--nu-shadow-rgb: 28, 31, 34;
}

/* Monochrome: black, white and neutral greys only */
html[data-nu-style="mono"] {
	--wp--preset--color--obsidian: #0d0d0d;
	--wp--preset--color--emerald: #262626;
	--wp--preset--color--alabaster: #fafafa;
	--wp--preset--color--stone: #ececec;
	--wp--preset--color--copper: #e0e0e0;
	--wp--preset--color--copper-deep: #1a1a1a;
	--wp--preset--color--copper-light: #f2f2f2;
	--wp--preset--color--muted: #525252;
	--wp--preset--color--muted-on-dark: #bdbdbd;
	--wp--preset--color--border-light: #d4d4d4;
	--wp--preset--color--border-dark: #404040;
	--nu-field-border: #6e6e6e;
	--nu-field-border-dark: #8c8c8c;
	--nu-obsidian-hover: #1f1f1f;
	--nu-emerald-hover: #333333;
	--nu-step-hover: #1f1f1f;
	--nu-card-hover: #ffffff;
	--nu-header-bg: #fafafa;
	--nu-panel-bg: #ffffff;
	--nu-soft-on-dark: #e5e5e5;
	--nu-field-dark-bg: #1a1a1a;
	--nu-tint: #f2f2f2;
	--nu-stone-35: #f4f4f4;
	--nu-stone-40: #f0f0f0;
	--nu-stone-50: #ececec;
	--nu-stone-60: #e6e6e6;
	--nu-stone-70: #e0e0e0;
	--nu-shadow-rgb: 0, 0, 0;
}

/* Paper grain is part of the Editorial palette only */
html[data-nu-style] body::after {
	display: none;
}

/* Palette-specific finishing touches */
html[data-nu-style="corporate"] .nu-header {
	box-shadow: 0 1px 0 var(--nu-line), 0 6px 18px -12px rgba(11, 37, 69, 0.25);
	border-bottom-color: transparent;
}
html[data-nu-style="corporate"] .wp-block-column.is-style-nu-hero-pane::after {
	display: none;
}
html[data-nu-style="sleek"] .wp-block-column.is-style-nu-hero-pane {
	background-image: radial-gradient(circle at 85% 90%, rgba(79, 91, 102, 0.35), transparent 55%);
}
html[data-nu-style="sleek"] .wp-block-column.is-style-nu-hero-pane::after {
	opacity: 0.035;
}
html[data-nu-style="graphite"] .wp-block-column.is-style-nu-hero-pane {
	background-image: linear-gradient(135deg, rgba(92, 207, 192, 0.1), transparent 45%);
}
html[data-nu-style="graphite"] .nu-header {
	border-bottom: 3px solid var(--nu-obsidian);
}
html[data-nu-style="mono"] .wp-block-column.is-style-nu-hero-pane::after {
	opacity: 0.05;
}
/* In Sleek the accent on dark is a warm light grey, so on light backgrounds decoration uses the slate instead */
html[data-nu-style="sleek"] .is-style-nu-kicker::before {
	background-color: currentColor;
}
html[data-nu-style="sleek"] .nu-quote__mark {
	color: var(--nu-copper-deep);
}

/* In Monochrome the near-black accent would vanish on dark sections, so filled buttons there turn white */
html[data-nu-style="mono"] :is(.has-obsidian-background-color, .has-emerald-background-color) .wp-block-button__link.has-copper-deep-background-color {
	background-color: var(--nu-alabaster) !important;
	color: var(--nu-obsidian) !important;
	--nu-wipe: var(--nu-emerald);
}
html[data-nu-style="mono"] :is(.has-obsidian-background-color, .has-emerald-background-color) .wp-block-button__link.has-copper-deep-background-color:is(:hover, :focus-visible) {
	color: var(--nu-alabaster) !important;
}
html[data-nu-style="mono"] :is(.nu-calc .nu-btn--copper, .nu-form--dark .nu-form__submit, :is(.has-obsidian-background-color, .has-emerald-background-color) .nu-btn--copper) {
	background: var(--nu-alabaster);
	color: var(--nu-obsidian);
	--nu-wipe: var(--nu-emerald);
}
html[data-nu-style="mono"] :is(.nu-calc .nu-btn--copper, .nu-form--dark .nu-form__submit, :is(.has-obsidian-background-color, .has-emerald-background-color) .nu-btn--copper):is(:hover, :focus-visible) {
	color: var(--nu-alabaster);
}
html[data-nu-style="mono"] .nu-calc__badge {
	background: var(--nu-alabaster);
	color: var(--nu-obsidian);
}
/* Grey accents on white are too faint for decoration, so use the text colour instead */
html[data-nu-style="mono"] .is-style-nu-kicker::before {
	background-color: currentColor;
}
html[data-nu-style="mono"] .nu-quote__mark {
	color: var(--nu-muted);
}

/* In Monochrome the accent is grey, so highlighted words in headings are set in italic to keep the emphasis */
html[data-nu-style="mono"] :is(h1, h2, .wp-block-heading) mark {
	font-style: italic;
}

/* =========================================================================
 * 2. CORNERS
 * ====================================================================== */
html[data-nu-shape="soft"] {
	--nu-radius-sm: 6px;
	--nu-radius: 8px;
	--nu-radius-lg: 12px;
	--nu-btn-radius: 6px;
}
html[data-nu-shape="round"] {
	--nu-radius-sm: 10px;
	--nu-radius: 14px;
	--nu-radius-lg: 20px;
	--nu-btn-radius: 999px;
}

html[data-nu-shape] :is(.wp-element-button, .wp-block-button__link, .nu-btn, .nu-filter, .nu-pcard__enquire, .nu-mega__toggle, .nu-drawer__close, .nu-mega__cta) {
	border-radius: var(--nu-btn-radius);
}
html[data-nu-shape] :is(.nu-badge, .is-style-nu-tag, .nu-calc__badge, .nu-facts__jobs li, .nu-video__badge) {
	border-radius: var(--nu-radius-sm);
}
html[data-nu-shape="round"] :is(.nu-badge, .is-style-nu-tag, .nu-calc__badge, .nu-facts__jobs li, .nu-video__badge) {
	border-radius: 999px;
}
html[data-nu-shape] :is(.nu-form input:not([type="hidden"]), .nu-form select, .nu-form textarea, .nu-explorer input[type="search"], .nu-calc select, .nu-calc input[type="number"], .nu-fit select, .wp-block-search__input) {
	border-radius: var(--nu-radius-sm);
}
html[data-nu-shape] :is(.nu-option, .nu-fit__check, .is-style-nu-pill, .nu-calc__insight, .nu-form__errors, .nu-form__success, .nu-form__failure) {
	border-radius: var(--nu-radius-sm);
}
html[data-nu-shape] .nu-fit__bar span {
	border-radius: 3px;
}
html[data-nu-shape] :is(.nu-calc, .nu-facts, .nu-rf, .is-style-nu-box, .is-style-nu-card, .nu-explorer__empty, .nu-drawer__details, .nu-ksb__overview, .nu-video__frame, .nu-post-panel__graphic, .nu-post-panel__img, .nu-mega-callout, .wp-block-table.is-style-nu-matrix) {
	border-radius: var(--nu-radius-lg);
	overflow: hidden;
}
html[data-nu-shape="soft"] .is-style-nu-kicker::before {
	width: 1.5rem;
	height: 3px;
}
html[data-nu-shape="round"] .is-style-nu-kicker::before {
	border-radius: 50%;
	width: 0.55rem;
	height: 0.55rem;
}
html[data-nu-shape="round"] .nu-drawer {
	border-radius: var(--nu-radius-lg) 0 0 var(--nu-radius-lg);
}
html[data-nu-shape] .nu-ksb__overview {
	border-left-width: 0;
	box-shadow: inset 4px 0 0 var(--nu-copper);
}

/* =========================================================================
 * 3. GRIDS: hairline dividers become separate cards with gaps
 * ====================================================================== */
html[data-nu-layout="cards"] :is(.nu-explorer__grid, .is-style-nu-hairline, .nu-insights .wp-block-post-template, .nu-quotes) {
	gap: var(--nu-gap) !important;
	background: transparent !important;
	border: 0 !important;
}
html[data-nu-layout="cards"] :is(.nu-explorer__grid > .nu-pcard, .is-style-nu-hairline > *, .nu-insights .wp-block-post-template > li, .nu-quotes > .nu-quote) {
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-radius-lg);
	overflow: hidden;
	box-shadow: var(--nu-shadow);
	background: var(--nu-card-bg);
}
html[data-nu-layout="cards"] :is(.has-obsidian-background-color, .has-emerald-background-color) .is-style-nu-hairline > * {
	border-color: var(--nu-line-dark) !important;
	background: rgba(255, 255, 255, 0.04) !important;
	box-shadow: none !important;
}
html[data-nu-layout="cards"] .nu-insights .wp-block-post-template > li > .nu-insight {
	background: transparent;
}
html[data-nu-layout="cards"] :is(.nu-pcard, .nu-link-card, .is-style-nu-step) {
	transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease;
}
html[data-nu-layout="cards"] .nu-pcard:hover,
html[data-nu-layout="cards"] .nu-pcard:focus-within {
	transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
	html[data-nu-layout="cards"] .nu-pcard:hover,
	html[data-nu-layout="cards"] .nu-pcard:focus-within {
		transform: none;
	}
}
html[data-nu-layout="cards"] .nu-mega__panel-inner .is-style-nu-hairline > * {
	box-shadow: none;
}
html[data-nu-layout="cards"] :is(.nu-calc, .nu-facts, .nu-rf) {
	box-shadow: var(--nu-shadow);
}
html[data-nu-layout="cards"] .nu-mega__panel {
	box-shadow: 0 24px 48px -18px rgba(var(--nu-shadow-rgb), 0.28);
}
html[data-nu-layout="cards"] :is(.nu-mega__link, .nu-mega__trigger) {
	border-left-color: transparent;
}
html[data-nu-layout="cards"] .wp-block-columns.is-style-nu-split > .wp-block-column + .wp-block-column {
	border-left-color: transparent;
}
/* FAQs: each question as its own card */
html[data-nu-layout="cards"] :is(.nu-faq-layout__list, .nu-faq-list) {
	border-top: 0;
	display: grid;
	gap: 0.75rem;
}
html[data-nu-layout="cards"] .wp-block-details.is-style-nu-faq {
	border: 1px solid var(--nu-line);
	border-radius: var(--nu-radius);
	padding-inline: 1.25rem;
	background: var(--nu-card-bg);
}
html[data-nu-layout="cards"] .wp-block-details.is-style-nu-faq summary::after {
	right: 0;
}

/* New homepage sections: add depth to the feature cards and panels */
html[data-nu-layout="cards"] :is(.nu-link-card.is-style-nu-feature, .nu-glance) {
	box-shadow: var(--nu-shadow);
}
html[data-nu-layout="cards"] .nu-link-card.is-style-nu-feature:is(:hover, :focus-within) {
	transform: translateY(-2px);
}
@media (prefers-reduced-motion: reduce) {
	html[data-nu-layout="cards"] .nu-link-card.is-style-nu-feature:is(:hover, :focus-within) {
		transform: none;
	}
}

/* =========================================================================
 * 4. TYPOGRAPHY
 * ====================================================================== */

/* All three alternatives swap the code-style labels for the body typeface */
html[data-nu-type] {
	--wp--preset--font-family--mono: "Inter", ui-sans-serif, system-ui, sans-serif;
}
html[data-nu-type] :is(.is-style-nu-kicker, .is-style-nu-label, .is-style-nu-tag, .nu-mono, .nu-plist__title, .nu-link-card__kicker, .nu-pcard__sector, .nu-calc__legend, .nu-field__label, .nu-rf__label, .nu-explorer__search-label, .nu-facts__heading, .nu-drawer__kicker, .nu-ksb__label, .nu-footer__cols h2) {
	letter-spacing: 0.06em;
}

/* Clean sans: one typeface throughout */
html[data-nu-type="sans"] {
	--wp--preset--font-family--display: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
html[data-nu-type="sans"] :is(h1, h2, h3, .wp-block-heading) {
	letter-spacing: -0.015em;
}

/* Modern: sentence-case labels */
html[data-nu-type="modern"] :is(.is-style-nu-kicker, .is-style-nu-label, .nu-plist__title, .nu-link-card__kicker, .nu-pcard__sector, .nu-calc__legend, .nu-field__label, .nu-rf__label, .nu-explorer__search-label, .nu-facts__heading, .nu-drawer__kicker, .nu-ksb__label) {
	text-transform: none;
	letter-spacing: 0;
	font-size: 0.875rem;
}

/* Serif headings: quieter, more literary */
html[data-nu-type="serif"] {
	--wp--preset--font-family--display: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;
}
html[data-nu-type="serif"] :is(h1, h2, h3, h4, .wp-block-heading, .wp-block-post-title) {
	font-weight: 600;
	letter-spacing: -0.01em;
}
html[data-nu-type="serif"] h1 {
	line-height: 1.05;
}
html[data-nu-type="serif"] :is(.nu-quote__text p, .nu-ksb__overview p + p) {
	font-weight: 500;
	font-style: italic;
}
html[data-nu-type="serif"] :is(.is-style-nu-kicker, .is-style-nu-label, .nu-plist__title, .nu-pcard__sector, .nu-facts__heading, .nu-footer__cols h2) {
	letter-spacing: 0.12em;
	font-size: 0.75rem;
}

/* =========================================================================
 * 5. SPACING
 * ====================================================================== */
html[data-nu-density="compact"] {
	--wp--preset--spacing--60: clamp(1.5rem, 3vw, 2.25rem);
	--wp--preset--spacing--70: clamp(2.25rem, 4.5vw, 3.5rem);
	--wp--preset--spacing--80: clamp(3rem, 5.5vw, 4.75rem);
	--nu-gap: 1rem;
}
html[data-nu-density="airy"] {
	--wp--preset--spacing--60: clamp(2.5rem, 5vw, 4rem);
	--wp--preset--spacing--70: clamp(3.5rem, 8vw, 6.5rem);
	--wp--preset--spacing--80: clamp(5rem, 11vw, 9.5rem);
	--nu-gap: 1.75rem;
}
html[data-nu-density="airy"] :is(p, li) {
	line-height: 1.7;
}

/* =========================================================================
 * 6. TEXT SIZE: "Larger" scales all text and spacing by 12.5% (16px body text becomes 18px,
 *    menus and small print reach 14–16px) while keeping headings the same size.
 * ====================================================================== */
html[data-nu-text="large"] {
	font-size: 112.5%;
	--wp--preset--font-size--hero: clamp(2.3rem, 4.8vw, 4.67rem);
	--wp--preset--font-size--section: clamp(1.8rem, 3.6vw, 3.33rem);
	--wp--preset--font-size--xx-large: clamp(1.4rem, 2.4vw, 2rem);
	--wp--preset--font-size--x-small: 0.8125rem;
}
/* Nothing smaller than about 14px */
html[data-nu-text="large"] .nu-plist__count,
html[data-nu-text="large"] .nu-badge,
html[data-nu-text="large"] .is-style-nu-pill > :last-child:not(:first-child),
html[data-nu-text="large"] .nu-pcard__duration,
html[data-nu-text="large"] .nu-pcard__sector,
html[data-nu-text="large"] .nu-pcard__meta,
html[data-nu-text="large"] .nu-option__text,
html[data-nu-text="large"] .nu-calc__badge,
html[data-nu-text="large"] .nu-calc__figure-label,
html[data-nu-text="large"] .nu-calc__footnote,
html[data-nu-text="large"] .nu-post-panel__label,
html[data-nu-text="large"] .nu-contact-list .nu-contact-list__label,
html[data-nu-text="large"] .nu-copyright,
html[data-nu-text="large"] .nu-drawer__details-foot,
html[data-nu-text="large"] .nu-facts__row dt,
html[data-nu-text="large"] .nu-rf__area-duties,
html[data-nu-text="large"] .nu-docs__icon {
	font-size: 0.8125rem;
}
html[data-nu-text="large"] :is(.is-style-nu-label, .is-style-nu-tag, .nu-logos__label) {
	font-size: 0.8125rem;
}
/* Let the menu breathe a little less so it still fits on one line */
@media (min-width: 1200px) {
	html[data-nu-text="large"] .nu-mega__list > li > :is(.nu-mega__link, .nu-mega__trigger) {
		padding-inline: 0.85rem;
	}
}
/* The top bar drops its least important item so it stays on one line */
@media (max-width: 1599px) {
	html[data-nu-text="large"] .nu-utility .nu-hide-md {
		display: none;
	}
}
@media (min-width: 1200px) and (max-width: 1439px) {
	html[data-nu-text="large"] .nu-mega__list > li > :is(.nu-mega__link, .nu-mega__trigger) {
		padding-inline: 0.55rem;
	}
	html[data-nu-text="large"] .nu-header__cta .wp-block-button__link {
		padding-inline: 1rem;
		letter-spacing: 0.04em;
	}
	html[data-nu-text="large"] .nu-header__inner {
		gap: 1rem;
	}
}

/* =========================================================================
 * The switcher control (fixed neutral styling so it reads the same in every variant)
 * ---------------------------------------------------------------------- */
.nu-switcher {
	position: fixed;
	left: 1rem;
	bottom: 1rem;
	z-index: 9000;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.5rem;
	font-family: "Inter", ui-sans-serif, system-ui, sans-serif;
	font-size: 0.875rem;
	line-height: 1.4;
	color: #111827;
}
.nu-switcher__toggle {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	min-height: 44px;
	padding: 0.5rem 1rem;
	border: 1px solid #374151;
	border-radius: 999px;
	background: #111827;
	color: #ffffff;
	font: inherit;
	cursor: pointer;
	box-shadow: 0 8px 24px -8px rgba(0, 0, 0, 0.45);
}
.nu-switcher__toggle:hover {
	background: #1f2937;
}
.nu-switcher__toggle:focus-visible,
.nu-switcher__btn:focus-visible,
.nu-switcher__fine summary:focus-visible,
.nu-switcher__field select:focus-visible {
	outline: 3px solid #f59e0b;
	outline-offset: 2px;
}
.nu-switcher__panel {
	width: min(22rem, calc(100vw - 2rem));
	max-height: calc(100vh - 6rem);
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 1rem;
	border: 1px solid #d1d5db;
	border-radius: 14px;
	background: #ffffff;
	box-shadow: 0 20px 48px -12px rgba(0, 0, 0, 0.35);
}
.nu-switcher__panel[hidden] {
	display: none;
}
.nu-switcher__set {
	margin: 0;
	padding: 0;
	border: 0;
	display: grid;
	gap: 0.5rem;
}
.nu-switcher__legend {
	margin-bottom: 0.5rem;
	padding: 0;
	font-weight: 700;
	font-size: 0.9375rem;
}
.nu-switcher__option {
	display: grid;
	grid-template-columns: auto auto 1fr;
	align-items: center;
	gap: 0.75rem;
	padding: 0.6rem 0.75rem;
	border: 1px solid #d1d5db;
	border-radius: 10px;
	cursor: pointer;
}
.nu-switcher__option:hover {
	border-color: #6b7280;
}
.nu-switcher__option:has(input:checked) {
	border-color: #111827;
	box-shadow: inset 0 0 0 1px #111827;
	background: #f9fafb;
}
.nu-switcher__option:has(input:focus-visible) {
	outline: 3px solid #f59e0b;
	outline-offset: 2px;
}
.nu-switcher__option input {
	width: 1.1rem;
	height: 1.1rem;
	margin: 0;
	accent-color: #111827;
}
.nu-switcher__swatches {
	display: flex;
}
.nu-switcher__swatches span {
	width: 1.1rem;
	height: 1.1rem;
	border-radius: 50%;
	border: 2px solid #ffffff;
	box-shadow: 0 0 0 1px #9ca3af;
	margin-left: -0.35rem;
}
.nu-switcher__swatches span:first-child {
	margin-left: 0;
}
.nu-switcher__name {
	display: block;
	font-weight: 600;
}
.nu-switcher__desc {
	display: block;
	font-size: 0.8125rem;
	color: #4b5563;
}
.nu-switcher__note {
	margin: 0.75rem 0 0.5rem;
	font-size: 0.8125rem;
	color: #4b5563;
}
.nu-switcher__btn {
	min-height: 36px;
	padding: 0.35rem 0.8rem;
	border: 1px solid #6b7280;
	border-radius: 8px;
	background: #ffffff;
	color: #111827;
	font: inherit;
	font-size: 0.8125rem;
	cursor: pointer;
}
.nu-switcher__btn:hover {
	background: #f3f4f6;
}
.nu-switcher__layouts {
	margin-top: 0.75rem;
	border-top: 1px solid #e5e7eb;
	padding-top: 0.75rem;
}
.nu-switcher__layouts ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 0.5rem;
}
.nu-switcher__layout {
	display: block;
	padding: 0.5rem 0.75rem;
	border: 1px solid #d1d5db;
	border-radius: 10px;
	color: #111827;
	text-decoration: none;
}
.nu-switcher__layout:hover {
	border-color: #6b7280;
}
.nu-switcher__layout:focus-visible {
	outline: 3px solid #f59e0b;
	outline-offset: 2px;
}
.nu-switcher__layout[aria-current="page"] {
	border-color: #111827;
	box-shadow: inset 0 0 0 1px #111827;
	background: #f9fafb;
}
.nu-switcher__layout[aria-current="page"] .nu-switcher__name::after {
	content: " (this page)";
	font-weight: 400;
	color: #4b5563;
}
.nu-switcher__fine {
	margin-top: 0.75rem;
	border-top: 1px solid #e5e7eb;
	padding-top: 0.5rem;
}
.nu-switcher__fine summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 36px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
.nu-switcher__fine summary::-webkit-details-marker {
	display: none;
}
.nu-switcher__fine summary::after {
	content: "+";
	font-size: 1.125rem;
	line-height: 1;
}
.nu-switcher__fine[open] summary::after {
	content: "\2212";
}
.nu-switcher__hint {
	margin: 0 0 0.5rem;
	font-size: 0.8125rem;
	color: #4b5563;
}
.nu-switcher__fields {
	display: grid;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
}
.nu-switcher__field {
	display: grid;
	grid-template-columns: 6rem 1fr;
	align-items: center;
	gap: 0.5rem;
}
.nu-switcher__field label {
	font-weight: 500;
}
.nu-switcher__field select {
	min-height: 36px;
	width: 100%;
	padding: 0.25rem 0.5rem;
	border: 1px solid #6b7280;
	border-radius: 8px;
	background: #ffffff;
	color: #111827;
	font: inherit;
	font-size: 0.8125rem;
}
.nu-switcher__status {
	margin: 0.4rem 0 0;
	font-size: 0.8125rem;
	color: #065f46;
}
.nu-switcher__status:empty {
	display: none;
}
@media print {
	.nu-switcher { display: none; }
}
