/**
 * Native registration pages inside the shared Event Resolver shell.
 */

.nxtorigin-registration-native-page__layout,
.nxtorigin-registration-native-page__main {
	background: transparent;
	box-sizing: border-box;
}

.nxtorigin-registration-native-page__layout {
	--nxtorigin-registration-rail-width: 80px;
}

.nxtorigin-registration-native-page__main {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	min-height: 0;
	overflow: hidden;
	padding: clamp(20px, 3vh, 32px) 24px;
}

.nxtorigin-registration-native-page__content {
	display: block;
	width: min(1180px, 100%);
	/* This element is THE scroller for every native registration page, and the
	   browser scrollbar is locked by the event viewport — so its height must be
	   bounded by construction, not by hoping a percentage chain resolves.
	   Belt: height:auto + align-self:stretch gives the flex item a definite
	   height even under the parent's align-items:flex-start (a bare
	   height:100% failed to resolve here and the form grew unbounded — no
	   element scrolled). Suspenders: an absolute viewport-based cap, the same
	   calc the shell uses for its navigation rail, so a future layout change
	   can degrade this to a slightly-off bound but never back to unscrollable. */
	height: auto;
	align-self: stretch;
	max-height: calc(
		var(--nxtorigin-event-viewport-height, 100dvh)
		- var(--nxtorigin-native-shell-top-reserve, 96px)
		- var(--nxtorigin-native-shell-bottom-reserve, 0px)
		- 2 * clamp(20px, 3vh, 32px)
	);
	min-width: 0;
	min-height: 0;
	margin: 0 auto;
	overflow-x: hidden;
	overflow-y: auto;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
}

.nxtorigin-registration-native-page__content > .nxrs-journey,
.nxtorigin-registration-native-page__content > .nxrs-journey > .nxrs-journey__content {
	height: auto;
	min-height: 0;
	overflow: visible;
}

.nxtorigin-registration-native-page__content > .nxar-shell,
.nxtorigin-registration-native-page__content > .nxrs-journey > .nxrs-journey__content > .nxar-shell {
	width: 100%;
	height: auto;
	min-height: 0;
	max-height: none;
	margin: 0 auto;
}

/* ONE scroller per registration page: the __content section above. The step
   panel must be plain flow here — its standalone advertiser styling makes it
   an inner scroller with overscroll-behavior:contain, and `contain` on an
   element with nothing to scroll SWALLOWS the wheel instead of chaining to
   the real scroller. The cursor is always over the form, so the page read as
   "scrolling is broken" (measured headless 2026-07-31: wheel over the step →
   nothing moved; wheel beside it → scrolled fine). */
.nxtorigin-registration-native-page__content .nxar-step {
	flex: 1 1 auto;
	min-height: 0 !important;
	max-height: none;
	overflow: visible !important;
	overscroll-behavior: auto;
	touch-action: pan-y;
}

.nxtorigin-registration-native-page__content > .nxar-message,
.nxtorigin-registration-native-page__content > .nxar-registration-state,
.nxtorigin-registration-native-page__content > .nxlr-state {
	width: min(980px, 100%);
	max-height: 100%;
	margin: 0 auto;
	overflow: auto;
}

.nxtorigin-registration-native-page--exhibitor-packages .nxtorigin-registration-native-page__content {
	display: block;
	padding: 0 4px 24px;
	overflow-x: hidden;
	overflow-y: auto;
	scrollbar-width: none;
}

.nxtorigin-registration-native-page--exhibitor-packages .nxtorigin-registration-native-page__content::-webkit-scrollbar {
	display: none;
}

.nxtorigin-registration-native-page--exhibitor-packages .nxtorigin-exhibitor-packages {
	width: 100%;
	margin: 0 auto;
}

.nxtorigin-registration-native-page__layout.has-side-navigation .nxtorigin-registration-native-page__main {
	width: calc(100% + var(--nxtorigin-registration-rail-width));
	margin-left: calc(-1 * var(--nxtorigin-registration-rail-width));
	padding-right: calc(24px + var(--nxtorigin-registration-rail-width));
	padding-left: calc(24px + var(--nxtorigin-registration-rail-width));
}

body.nxtorigin-registration-native-page.nxtorigin-background-page .nxtorigin-registration-native-page__layout,
body.nxtorigin-registration-native-page.nxtorigin-background-page .nxtorigin-registration-native-page__main {
	background: transparent;
}

@media (max-width: 1080px) {
	.nxtorigin-registration-native-page__main {
		padding: 18px;
	}

	.nxtorigin-registration-native-page__layout.has-side-navigation .nxtorigin-registration-native-page__main {
		padding-right: calc(18px + var(--nxtorigin-registration-rail-width));
		padding-left: calc(18px + var(--nxtorigin-registration-rail-width));
	}
}

@media (max-width: 820px) {
	.nxtorigin-registration-native-page__main {
		padding: 14px;
	}

	.nxtorigin-registration-native-page__layout.has-side-navigation .nxtorigin-registration-native-page__main {
		width: 100%;
		margin-left: 0;
		padding: 14px;
	}

	.nxtorigin-registration-native-page__content > .nxar-shell,
	.nxtorigin-registration-native-page__content > .nxrs-journey > .nxrs-journey__content > .nxar-shell {
		height: auto;
		min-height: 0;
		max-height: none;
	}

	.nxtorigin-registration-native-page__content > .nxrs-journey {
		gap: 7px;
	}
}

@media (max-width: 600px) {
	.nxtorigin-registration-native-page__main {
		padding: 8px 0;
	}

	.nxtorigin-registration-native-page__layout.has-side-navigation .nxtorigin-registration-native-page__main {
		padding: 8px 0;
	}

	.nxtorigin-registration-native-page__content {
		width: 100%;
	}

	.nxtorigin-registration-native-page__content > .nxar-shell,
	.nxtorigin-registration-native-page__content > .nxrs-journey > .nxrs-journey__content > .nxar-shell {
		border-radius: 0;
	}
}

@media (max-height: 620px) {
	.nxtorigin-registration-native-page__main,
	.nxtorigin-registration-native-page__layout.has-side-navigation .nxtorigin-registration-native-page__main {
		padding-top: 8px;
		padding-bottom: 8px;
	}
}
