:root {
	--color-navy: #22408a;
	--color-navy-rgb: 34, 64, 138;
	--color-sky-blue: #3d96c8;
	--color-sky-blue-rgb: 61, 150, 200;

	--color-white: #ffffff;
	--color-white-rgb: 255, 255, 255;
	--color-surface: #f7f9fc;
	--color-surface-muted: #eef3f8;
	--color-surface-accent: #f2f7fc;
	--color-surface-accent-strong: #e7f1f8;
	--color-card: #ffffff;

	--color-border: #e5eaf0;
	--color-border-strong: #c8d7e6;

	--color-text: #1a1a1a;
	--color-text-rgb: 26, 26, 26;
	--color-muted-text: #5f6b7a;
	--color-label-text: #4f6f8f;
	--color-overlay-rgb: 15, 23, 42;

	--color-primary-cta: #c46e27;
	--color-primary-cta-hover: #a95d20;
	--color-primary-cta-active: #96521b;

	--color-focus: #3d96c8;
	--color-link-active: #1b3270;
	--color-secondary-active: #e3eaf2;

	--radius-card: 20px;
	--radius-button: 999px;

	--shadow-soft: 0 4px 12px rgba(17, 24, 39, 0.04);
	--shadow-soft-lifted: 0 10px 28px rgba(17, 24, 39, 0.08);
}

.ns-card,
.ns-form-card,
.ns-spec-card {
	background: var(--color-card);
	border: 1px solid var(--color-border);
	border-radius: var(--radius-card);
	transition:
		border-color 0.18s ease,
		box-shadow 0.18s ease,
		background-color 0.18s ease;
}

.ns-card--featured {
	box-shadow:
		inset 0 4px 0 rgba(var(--color-sky-blue-rgb), 0.86),
		var(--shadow-soft);
	overflow: hidden;
	position: relative;
}

.ns-spec-card {
	background: var(--color-surface-muted);
	border-color: rgba(var(--color-sky-blue-rgb), 0.16);
}

.ns-card:hover,
.ns-card:focus-within,
.ns-form-card:hover,
.ns-form-card:focus-within,
.ns-spec-card:hover,
.ns-spec-card:focus-within {
	border-color: rgba(var(--color-sky-blue-rgb), 0.34);
}

.ns-card--featured:hover,
.ns-card--featured:focus-within {
	box-shadow:
		inset 0 4px 0 rgba(var(--color-sky-blue-rgb), 0.86),
		var(--shadow-soft-lifted);
}

.ns-feature-band {
	background:
		radial-gradient(circle at top right, rgba(var(--color-white-rgb), 0.16), transparent 36%),
		linear-gradient(135deg, rgba(var(--color-navy-rgb), 0.96) 0%, rgba(20, 42, 96, 0.96) 58%, rgba(var(--color-sky-blue-rgb), 0.82) 100%);
	border-color: rgba(var(--color-sky-blue-rgb), 0.2);
	box-shadow: 0 20px 34px rgba(10, 18, 46, 0.18);
	overflow: hidden;
	position: relative;
}

.ns-feature-band > * {
	position: relative;
	z-index: 1;
}

.ns-feature-band .ns-model-section-header h2,
.ns-feature-band .ns-model-copy,
.ns-feature-band .ns-model-copy p,
.ns-feature-band .ns-inventory-single-description,
.ns-feature-band .ns-inventory-single-description p,
.ns-feature-band .ns-warranty-prose-block h2,
.ns-feature-band .ns-warranty-richtext p {
	color: var(--color-white);
}

.ns-feature-band .ns-model-copy p,
.ns-feature-band .ns-inventory-single-description p,
.ns-feature-band .ns-warranty-richtext p {
	opacity: 0.92;
}

.ns-button {
	appearance: none;
	align-items: center;
	background: transparent;
	border: 1px solid transparent;
	border-radius: var(--radius-button);
	box-sizing: border-box;
	cursor: pointer;
	display: inline-flex;
	font-weight: 700;
	gap: 0.5rem;
	justify-content: center;
	line-height: 1.2;
	padding: 0.95rem 1.35rem;
	text-decoration: none;
	transition:
		background-color 0.18s ease,
		border-color 0.18s ease,
		box-shadow 0.18s ease,
		color 0.18s ease,
		transform 0.18s ease;
}

.ns-button:hover,
.ns-button:focus-visible {
	transform: translateY(-1px);
}

.ns-button:focus-visible,
.ns-link:focus-visible,
.ns-form-input:focus-visible,
.ns-form-select:focus-visible,
.ns-form-textarea:focus-visible {
	outline: 0;
	box-shadow: 0 0 0 3px rgba(61, 150, 200, 0.22);
}

.ns-button--primary {
	background: var(--color-primary-cta);
	border: 1px solid var(--color-primary-cta);
	color: var(--color-white);
}

.ns-button--primary:hover,
.ns-button--primary:focus-visible {
	background: var(--color-primary-cta-hover);
	border-color: var(--color-primary-cta-hover);
	color: var(--color-white);
}

.ns-button--primary:active {
	background: var(--color-primary-cta-active);
	border-color: var(--color-primary-cta-active);
	box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.12);
	transform: translateY(0);
}

button.ns-button--primary,
input.ns-button--primary[type="submit"],
input.ns-button--primary[type="button"] {
	background: var(--color-primary-cta) !important;
	background-image: none !important;
	border-color: var(--color-primary-cta) !important;
	color: var(--color-white) !important;
}

button.ns-button--primary:hover,
button.ns-button--primary:focus-visible,
input.ns-button--primary[type="submit"]:hover,
input.ns-button--primary[type="submit"]:focus-visible,
input.ns-button--primary[type="button"]:hover,
input.ns-button--primary[type="button"]:focus-visible {
	background: var(--color-primary-cta-hover) !important;
	background-image: none !important;
	border-color: var(--color-primary-cta-hover) !important;
	color: var(--color-white) !important;
}

button.ns-button--primary:active,
input.ns-button--primary[type="submit"]:active,
input.ns-button--primary[type="button"]:active {
	background: var(--color-primary-cta-active) !important;
	background-image: none !important;
	border-color: var(--color-primary-cta-active) !important;
	color: var(--color-white) !important;
}

.ns-button--secondary {
	background: transparent;
	border: 1px solid var(--color-border);
	color: var(--color-navy);
}

.ns-button--secondary:hover,
.ns-button--secondary:focus-visible {
	background: rgba(var(--color-sky-blue-rgb), 0.08);
	border-color: rgba(var(--color-sky-blue-rgb), 0.26);
	color: var(--color-navy);
}

.ns-button--secondary:active {
	background: rgba(var(--color-sky-blue-rgb), 0.14);
	transform: translateY(0);
}

.ns-button--secondary-emphasis {
	border-color: var(--color-navy);
}

.ns-link {
	color: var(--color-navy);
	text-decoration-color: currentColor;
	text-underline-offset: 0.14em;
	transition: color 0.18s ease, text-decoration-color 0.18s ease;
}

.ns-link:hover,
.ns-link:focus-visible {
	color: var(--color-sky-blue);
}

.ns-link:active {
	color: var(--color-link-active);
	text-decoration-thickness: 2px;
}

.ns-form-card {
	padding: 1.25rem;
}

.ns-form-input,
.ns-form-select,
.ns-form-textarea {
	background: var(--color-white);
	border: 1px solid var(--color-border);
	border-radius: 14px;
	color: var(--color-text);
	transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
	width: 100%;
}

.ns-form-input:focus-visible,
.ns-form-select:focus-visible,
.ns-form-textarea:focus-visible {
	background: rgba(var(--color-sky-blue-rgb), 0.03);
	border-color: var(--color-focus);
}

.ns-badge {
	background: rgba(var(--color-sky-blue-rgb), 0.1);
	border: 1px solid rgba(var(--color-sky-blue-rgb), 0.18);
	border-radius: 999px;
	color: var(--color-navy);
	display: inline-flex;
	font-weight: 700;
	padding: 0.35rem 0.75rem;
}

/*
 * Plugin-owned templates render the active block-theme header/footer manually.
 * Give the header and its navigation dropdowns a stronger stacking layer so
 * image-treated hero cards do not sit on top of submenu hit areas.
 */
body.wp-theme-twentytwentyfive .wp-site-blocks > header,
body.wp-theme-twentytwentyfive header.wp-block-template-part {
	isolation: isolate;
	position: relative;
	z-index: 2000;
}

body.wp-theme-twentytwentyfive .wp-site-blocks > header .wp-block-navigation,
body.wp-theme-twentytwentyfive header.wp-block-template-part .wp-block-navigation {
	position: relative;
	z-index: 2001;
}

body.wp-theme-twentytwentyfive .wp-site-blocks > header .wp-block-navigation__responsive-container.is-menu-open,
body.wp-theme-twentytwentyfive header.wp-block-template-part .wp-block-navigation__responsive-container.is-menu-open {
	z-index: 2003;
}

body.wp-theme-twentytwentyfive .wp-site-blocks > header .wp-block-navigation__submenu-container,
body.wp-theme-twentytwentyfive header.wp-block-template-part .wp-block-navigation__submenu-container {
	z-index: 2002;
}

body.wp-theme-twentytwentyfive .wp-site-blocks > header + main#primary {
	margin-block-start: 0;
}
