body.nxtorigin-contact-page { background: var(--nx-bg); }

.nxcontact-public {
	padding-bottom: clamp(40px, 6vw, 72px);
	font-family: var(--nx-font-family);
	font-size: var(--nx-console-text-base);
	color: var(--nx-text);
}

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

.nxcontact-public__heading,
.nxcontact-public__workspace {
	width: 100%;
}

.nxcontact-public__heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 20px 22px;
	border: 1px solid var(--nx-border);
	border-radius: var(--nx-border-radius);
	background: linear-gradient(145deg, var(--nx-panel), var(--nx-bg));
}

.nxcontact-public .nx-eyebrow {
	margin: 0 0 5px;
	color: var(--nx-cyan);
	font-size: var(--nx-console-text-eyebrow);
	font-weight: 800;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.nxcontact-public__heading h1 {
	margin: 0;
	color: var(--nx-text);
	font-size: clamp(26px, 2.5vw, 34px);
	line-height: 1.15;
}

.nxcontact-public__heading div > span {
	display: block;
	max-width: 760px;
	margin-top: 7px;
	color: var(--nx-text-soft);
	font-size: var(--nx-console-text-action);
	line-height: 1.55;
}

.nxcontact-public__workspace {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 18px;
	margin-top: var(--nx-console-block-gap);
}

.nxcontact-public__rail,
.nxcontact-card {
	border: 1px solid var(--nx-border);
	border-radius: var(--nx-border-radius);
	background: color-mix(in srgb, var(--nx-panel) 94%, transparent);
}

.nxcontact-public__rail {
	display: grid;
	gap: 18px;
	padding: 18px;
}

.nxcontact-public__rail-heading {
	display: grid;
	gap: 3px;
}

.nxcontact-public__rail-heading > strong {
	color: var(--nx-text);
	font-size: 18px;
}

.nxcontact-public__rail-heading > span,
.nxcontact-public__rail-note span {
	color: var(--nx-text-soft);
	font-size: var(--nx-console-text-supporting);
	line-height: 1.5;
}

.nxcontact-public__rail nav {
	display: grid;
	gap: 6px;
}

.nxcontact-public__rail nav a {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	gap: 9px;
	align-items: start;
	padding: 10px;
	border: 1px solid transparent;
	border-radius: 9px;
	color: var(--nx-text);
	text-decoration: none;
}

.nxcontact-public__rail nav a:hover,
.nxcontact-public__rail nav a:focus-visible,
.nxcontact-public__rail nav a.is-active {
	border-color: var(--nx-border);
	background: var(--nx-panel-soft);
}

.nxcontact-public__rail nav a.is-active {
	border-color: color-mix(in srgb, var(--nx-cyan) 45%, var(--nx-border));
}

.nxcontact-public__rail nav b {
	display: grid;
	place-items: center;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	background: color-mix(in srgb, var(--nx-cyan) 12%, transparent);
	color: var(--nx-cyan);
	font-size: var(--nx-console-text-eyebrow);
}

.nxcontact-public__rail nav strong,
.nxcontact-public__rail nav small {
	display: block;
}

.nxcontact-public__rail nav strong {
	font-size: var(--nx-console-text-control);
	line-height: 1.3;
}

.nxcontact-public__rail nav small {
	margin-top: 3px;
	color: var(--nx-text-soft);
	font-size: var(--nx-console-text-supporting);
	line-height: 1.4;
}

.nxcontact-public__rail-note {
	display: grid;
	gap: 5px;
	padding-top: 16px;
	border-top: 1px solid var(--nx-border);
}

.nxcontact-public__rail-note strong {
	font-size: var(--nx-console-text-control);
}

.nxcontact-card {
	width: 100%;
	max-width: 1124px;
	min-width: 0;
	justify-self: center;
	padding: 22px;
	scroll-margin-top: 18px;
}

.nxcontact-card__heading,
.nxcontact-form {
	max-width: 1080px;
	margin-inline: auto;
}

.nxcontact-card__heading h2 {
	margin: 0;
	color: var(--nx-text);
	font-size: clamp(22px, 2.2vw, 28px);
	line-height: 1.2;
}

.nxcontact-card__heading > p:last-child {
	margin: 7px 0 0;
	color: var(--nx-text-soft);
	font-size: var(--nx-console-text-supporting);
}

.nxcontact-form { width: 100%; margin-top: 20px; }
.nxcontact-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; margin-top: 16px; }
.nxcontact-field { display: grid; min-width: 0; gap: 6px; color: var(--nx-text); font-size: var(--nx-console-text-control); font-weight: 700; }
.nxcontact-field--wide { grid-column: 1 / -1; }
.nxcontact-field > span { line-height: 1.35; }
.nxcontact-field[hidden] { display: none; }

.nxcontact-field input,
.nxcontact-field select,
.nxcontact-field textarea {
	width: 100%;
	min-height: 44px;
	padding: 10px 12px;
	border: 1px solid var(--nx-border);
	border-radius: 9px;
	background: var(--nx-panel-soft);
	color: var(--nx-text);
	font: 500 var(--nx-console-text-control)/1.45 var(--nx-font-family);
	outline: none;
}

.nxcontact-field select { color-scheme: dark; }
.nxcontact-field textarea { min-height: 144px; resize: vertical; }
.nxcontact-field input:focus, .nxcontact-field select:focus, .nxcontact-field textarea:focus { border-color: var(--nx-cyan); box-shadow: 0 0 0 3px color-mix(in srgb, var(--nx-cyan) 18%, transparent); }
.nxcontact-field small, .nxcontact-actions span { color: var(--nx-text-soft); font-size: var(--nx-console-text-supporting); font-weight: 500; line-height: 1.5; }
.nxcontact-consent { display: flex; gap: 10px; align-items: flex-start; color: var(--nx-text-soft); font-size: var(--nx-console-text-control); line-height: 1.5; }
.nxcontact-consent input { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 2px; accent-color: var(--nx-cyan); }
.nxcontact-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.nxcontact-route { margin: 16px 0; padding: 16px; border: 1px solid var(--nx-info-surface-border); border-radius: 9px; background: var(--nx-info-surface); }
.nxcontact-route strong { display: block; font-size: 17px; }
.nxcontact-route p { color: var(--nx-text-soft); font-size: var(--nx-console-text-control); line-height: 1.55; }
.nxcontact-route[hidden], .nxcontact-fields[hidden] { display: none; }
.nxcontact-form-status { min-height: 0; margin-top: 16px; padding: 0; border-radius: 9px; font-size: var(--nx-console-text-control); line-height: 1.55; }
.nxcontact-form-status:not(:empty) { padding: 12px 14px; }
.nxcontact-form-status.is-working { background: var(--nx-info-surface); border: 1px solid var(--nx-info-surface-border); }
.nxcontact-form-status.is-success { background: var(--nx-success-surface); border: 1px solid var(--nx-success-surface-border); }
.nxcontact-form-status.is-error { background: var(--nx-danger-surface); border: 1px solid var(--nx-danger-surface-border); }
.nxcontact-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

@media (max-width: 900px) {
	.nxcontact-public__workspace { grid-template-columns: 1fr; }
	.nxcontact-public__rail { overflow: hidden; }
	.nxcontact-public__rail nav { display: flex; overflow-x: auto; padding-bottom: 4px; }
	.nxcontact-public__rail nav a { flex: 0 0 230px; }
	.nxcontact-public__rail-note { display: none; }
}

@media (max-width: 620px) {
	.nxcontact-public__heading { align-items: flex-start; flex-direction: column; padding: 18px; }
	.nxcontact-public__heading .nx-btn { width: 100%; }
	.nxcontact-card { padding: 17px; }
	.nxcontact-fields { grid-template-columns: 1fr; }
	.nxcontact-field--wide { grid-column: auto; }
}

/* Book a demo rail card — accent border marks the sales path to /book-a-demo/. */
.nxcontact-public__rail-demo { border-color: var(--nx-cyan) !important; }
.nxcontact-public__rail-demo b { color: var(--nx-cyan); }
