/**
 * Hero V1 — Centered carousel.
 *
 * Targets Elementor Free wrappers and the reference markup.
 * Colors/type/spacing come from tokens.css. Do not copy hex or font names here.
 * Editor-stack for slides lives in assets/css/slider.css (do not duplicate here).
 * Button hover/active is theme-wide in assets/css/base.css (--nl-btn-*).
 */

.nl-hero-v1 {
	--nl-hero-v1-min-height: 680px;
	--nl-hero-v1-content: 900px;
	--nl-hero-v1-heading: 760px;
	--nl-hero-v1-copy: 620px;
	--nl-hero-v1-btn-height: var(--nl-space-xl);
	--min-height: 0px;
	--padding-top: 0px;
	--padding-bottom: 0px;
	--gap: 0px;

	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-sizing: border-box !important;
	min-height: var(--nl-hero-v1-min-height) !important;
	padding-block: var(--nl-space-3xl) !important;
	padding-inline: var(--nl-pad-inline);
	gap: 0 !important;
	background-color: var(--nl-color-background);
	background-image: radial-gradient(
		ellipse 80% 55% at 50% 0%,
		color-mix(in srgb, var(--nl-color-primary) 10%, transparent),
		transparent 70%
	);
	color: var(--nl-color-body);
	text-align: center;
}

.nl-hero-v1::after {
	content: "" !important;
	position: absolute;
	z-index: 0;
	pointer-events: none;
	width: min(52rem, 80%);
	height: min(28rem, 70%);
	top: -12%;
	left: 50%;
	translate: -50% 0;
	border-radius: 50%;
	background: var(--nl-color-primary);
	opacity: 0.06;
	filter: blur(64px);
}

.nl-hero-v1__slider,
.nl-hero-v1__navigation,
.nl-hero-v1 > .e-con-inner {
	position: relative;
	z-index: 1;
}

.nl-hero-v1 .e-con-inner,
.nl-hero-v1__slider,
.nl-hero-v1__content {
	max-width: 100%;
}

.nl-hero-v1__slider,
.nl-hero-v1 .nl-hero-v1__slider.e-con,
.nl-hero-v1 .nl-hero-v1__slider > .e-con-inner {
	position: relative;
	width: 100%;
}

.nl-hero-v1 .nl-hero-v1__slide,
.nl-hero-v1 .nl-hero-v1__slide.e-con {
	box-sizing: border-box;
	width: 100%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	position: absolute !important;
	inset: 0;
	min-height: 0 !important;
	margin: 0;
	overflow: hidden;
	transition: opacity 500ms ease, visibility 500ms ease;
}

.nl-hero-v1 .nl-hero-v1__slide.nl-hero-v1__slide--active,
.nl-hero-v1 .nl-hero-v1__slide--active.e-con {
	position: relative !important;
	inset: auto;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	overflow: visible;
}

.nl-hero-v1__content,
.nl-hero-v1__slide .e-con-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	width: 100%;
	max-width: var(--nl-hero-v1-content);
	margin-inline: auto;
}

.nl-hero-v1 .nl-hero-v1__slider.e-con,
.nl-hero-v1 .nl-hero-v1__slide.e-con,
.nl-hero-v1 .nl-hero-v1__content.e-con {
	--gap: 0px;
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	gap: 0 !important;
	padding: 0 !important;
}

.nl-hero-v1 .elementor-widget-container,
.nl-hero-v1 .elementor-widget p,
.nl-hero-v1 .elementor-heading-title {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

.nl-hero-v1__eyebrow,
.nl-hero-v1__content > .elementor-widget-text-editor:first-child {
	margin: 0 0 var(--nl-space-sm) !important;
	color: var(--nl-color-primary);
	font-family: var(--nl-font-body);
	font-size: 12px;
	font-weight: var(--nl-fw-semibold);
	letter-spacing: 0.125em;
	line-height: 1.4;
	text-transform: uppercase;
}

.nl-hero-v1__eyebrow p,
.nl-hero-v1__eyebrow .elementor-widget-container,
.nl-hero-v1__content > .elementor-widget-text-editor:first-child p,
.nl-hero-v1__content > .elementor-widget-text-editor:first-child .elementor-widget-container {
	margin: 0;
	color: inherit;
	font: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
}

.nl-hero-v1__heading,
.nl-hero-v1__content > .elementor-widget-heading {
	max-width: var(--nl-hero-v1-heading);
	margin: 0 auto var(--nl-space-md) !important;
	text-align: center;
	color: var(--nl-color-heading);
	font-family: var(--nl-font-heading);
	font-size: 2.5rem; /* 40px mobile */
	font-weight: 700;
	line-height: 1.1;
	letter-spacing: -0.03em;
}

.nl-hero-v1__heading .elementor-heading-title,
.nl-hero-v1__content > .elementor-widget-heading .elementor-heading-title {
	margin: 0 !important;
	color: var(--nl-color-heading) !important;
	font-family: inherit;
	font-size: inherit !important;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
}

.nl-hero-v1__description,
.nl-hero-v1__content > .elementor-widget-heading + .elementor-widget-text-editor {
	max-width: var(--nl-hero-v1-copy);
	margin: 0 auto var(--nl-space-lg) !important;
	color: var(--nl-color-body);
	font-family: var(--nl-font-body);
	font-size: 1.125rem;
	font-weight: var(--nl-fw-regular);
	line-height: 1.6;
}

.nl-hero-v1__description p,
.nl-hero-v1__description .elementor-widget-container,
.nl-hero-v1__content > .elementor-widget-heading + .elementor-widget-text-editor p {
	margin: 0;
	color: inherit;
	font: inherit;
}

.nl-hero-v1__actions,
.nl-hero-v1__actions.e-con,
.nl-hero-v1__actions > .e-con-inner {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	gap: var(--nl-space-sm);
	--gap: var(--nl-space-sm);
	--padding-top: 0px;
	--padding-right: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	width: min(100%, 22rem);
	margin: 0 auto var(--nl-space-md) !important;
	padding: 0 !important;
	align-self: center;
}

.nl-hero-v1__actions .elementor-widget-button,
.nl-hero-v1__actions .elementor-widget-button .elementor-button {
	width: 100%;
}

.nl-hero-v1__primary .elementor-button,
.nl-hero-v1__secondary .elementor-button,
.nl-hero-v1__actions > .nl-hero-v1__primary,
.nl-hero-v1__actions > .nl-hero-v1__secondary,
.nl-hero-v1__actions .elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	min-height: var(--nl-hero-v1-btn-height);
	padding: 0 var(--nl-space-md) !important;
	border-radius: var(--nl-radius-md) !important;
	font-family: var(--nl-font-button);
	font-size: 1rem !important;
	font-weight: var(--nl-fw-semibold);
	line-height: 1;
	text-decoration: none;
	transition: background-color 150ms ease, color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.nl-hero-v1__primary .elementor-button,
.nl-hero-v1__actions > .nl-hero-v1__primary,
.nl-hero-v1__actions > .elementor-widget-button:first-child .elementor-button {
	background: var(--nl-color-primary) !important;
	border: 1px solid var(--nl-color-primary) !important;
	color: var(--nl-color-on-accent) !important;
}

.nl-hero-v1__secondary .elementor-button,
.nl-hero-v1__actions > .nl-hero-v1__secondary,
.nl-hero-v1__actions > .elementor-widget-button:last-child .elementor-button {
	background: transparent !important;
	border: 1px solid var(--nl-color-primary) !important;
	color: var(--nl-color-primary) !important;
}

.nl-hero-v1__trust,
.nl-hero-v1__content > .elementor-widget-text-editor:last-child {
	margin: 0 0 var(--nl-space-md) !important;
	color: var(--nl-color-light-text);
	font-family: var(--nl-font-body);
	font-size: 13px;
	line-height: 1.5;
	text-transform: none;
	letter-spacing: 0;
	font-weight: var(--nl-fw-regular);
}

.nl-hero-v1__trust p,
.nl-hero-v1__trust .elementor-widget-container,
.nl-hero-v1__content > .elementor-widget-text-editor:last-child p {
	margin: 0;
	color: inherit;
	font: inherit;
	text-transform: none;
	letter-spacing: 0;
}

.nl-hero-v1__navigation,
.nl-hero-v1__navigation.e-con,
.nl-hero-v1__navigation > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--nl-space-sm);
	width: 100%;
}

.nl-hero-v1__navigation > .elementor-widget,
.nl-hero-v1__navigation > .e-con,
.nl-hero-v1__dots .elementor-widget-button {
	position: relative;
	flex: 0 0 auto !important;
	width: auto !important;
	max-width: none;
	background: transparent !important;
	line-height: 0 !important;
	font-size: 0 !important;
	min-height: 0 !important;
}

.nl-hero-v1__arrow,
.nl-hero-v1__navigation > .elementor-widget-button {
	display: none;
}

.nl-hero-v1__arrow .elementor-button,
.nl-hero-v1__navigation > .elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px !important;
	min-width: 44px !important;
	height: 44px !important;
	padding: 0 !important;
	border: 1px solid var(--nl-color-border) !important;
	border-radius: var(--nl-radius-pill) !important;
	background: var(--nl-color-background) !important;
	color: var(--nl-color-heading) !important;
	text-decoration: none;
	cursor: pointer;
	font-size: 1.25rem !important;
	line-height: 1;
}

.nl-hero-v1__navigation > .elementor-widget-button .elementor-button-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

.nl-hero-v1__navigation > .elementor-widget-button:first-child .elementor-button::before {
	content: "‹";
}

.nl-hero-v1__navigation > .elementor-widget-button:last-child .elementor-button::before {
	content: "›";
}

.nl-hero-v1__dots,
.nl-hero-v1__dots.e-con,
.nl-hero-v1__dots > .e-con-inner {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: center !important;
	gap: var(--nl-space-xs);
	width: auto !important;
	flex: 0 0 auto !important;
}

.nl-hero-v1__dot,
.nl-hero-v1__dots .elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	width: 8px !important;
	min-width: 8px !important;
	max-width: 8px !important;
	height: 8px !important;
	min-height: 8px !important;
	max-height: 8px !important;
	padding: 0 !important;
	border: 0 !important;
	border-radius: var(--nl-radius-pill) !important;
	background: var(--nl-color-border) !important;
	overflow: hidden;
	cursor: pointer;
	font-size: 0 !important;
	line-height: 0 !important;
	color: transparent !important;
}

.nl-hero-v1__dots .elementor-widget-button .elementor-button-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	border: 0;
}

button.nl-hero-v1__dot.nl-hero-v1__dot--active,
a.nl-hero-v1__dot.nl-hero-v1__dot--active,
.nl-hero-v1__dots .elementor-widget-button.nl-hero-v1__dot--active .elementor-button,
.nl-hero-v1:not(.nl-hero-v1--ready) .nl-hero-v1__dots .elementor-widget-button:first-child .elementor-button {
	width: 22px !important;
	min-width: 22px !important;
	max-width: 22px !important;
	background: var(--nl-color-primary) !important;
}

.nl-hero-v1__dots .elementor-widget-button.nl-hero-v1__dot--active {
	background: transparent !important;
}

.nl-hero-v1 a:focus-visible,
.nl-hero-v1 button:focus-visible,
.nl-hero-v1 .elementor-button:focus-visible {
	outline: 2px solid var(--nl-color-primary);
	outline-offset: 3px;
}

@media (min-width: 768px) {
	.nl-hero-v1__heading,
	.nl-hero-v1__heading .elementor-heading-title,
	.nl-hero-v1__content > .elementor-widget-heading,
	.nl-hero-v1__content > .elementor-widget-heading .elementor-heading-title {
		font-size: 3.25rem !important; /* 52px */
		line-height: 1.08;
	}

	.nl-hero-v1__actions,
	.nl-hero-v1__actions.e-con,
	.nl-hero-v1__actions > .e-con-inner {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
		max-width: none;
		width: auto;
	}

	.nl-hero-v1__primary .elementor-button,
	.nl-hero-v1__secondary .elementor-button,
	.nl-hero-v1__actions > .nl-hero-v1__primary,
	.nl-hero-v1__actions > .nl-hero-v1__secondary,
	.nl-hero-v1__actions .elementor-widget-button,
	.nl-hero-v1__actions .elementor-widget-button .elementor-button {
		width: auto;
	}

	.nl-hero-v1__arrow,
	.nl-hero-v1__arrow .elementor-button,
	.nl-hero-v1__navigation > .elementor-widget-button {
		display: inline-flex;
	}
}

@media (min-width: 1025px) {
	.nl-hero-v1__heading,
	.nl-hero-v1__heading .elementor-heading-title,
	.nl-hero-v1__content > .elementor-widget-heading,
	.nl-hero-v1__content > .elementor-widget-heading .elementor-heading-title {
		font-size: 4rem !important; /* 64px */
		line-height: 1.05;
	}
}

@media (prefers-reduced-motion: reduce) {
	.nl-hero-v1__slide,
	.nl-hero-v1__primary .elementor-button,
	.nl-hero-v1__secondary .elementor-button,
	.nl-hero-v1__actions > .nl-hero-v1__primary,
	.nl-hero-v1__actions > .nl-hero-v1__secondary {
		transition: none;
	}
}
