/**
 * Hero / Content slider — ultra-light, zero external libraries.
 *
 * Movement is delegated to the native browser engine:
 *   - `.fast-hs--slide`: `scroll-snap-type: x mandatory` on the viewport, so
 *     touch scrolling stays on the compositor with no JS scroll loop.
 *   - `.fast-hs--fade`: stacked grid slides toggled by the `is-active` class,
 *     animated with opacity/transform only (compositor friendly).
 */

.fast-hs {
	--fast-hs-fade-duration: 700ms;
	--fast-hs-ease: cubic-bezier(0.4, 0, 0.2, 1);
	--fast-hs-dot-size: 10px;
	--fast-hs-arrow-gap: 16px;
	--fast-hs-slide-gap: 0px;

	position: relative;
	display: block;
	width: 100%;
	min-height: 560px;
	overflow: hidden;
	background-color: #101010;
	color: #ffffff;
	isolation: isolate;
}

.fast-hs__viewport {
	position: relative;
	z-index: 1;
	height: 100%;
	min-height: inherit;
}

.fast-hs__track {
	position: relative;
	height: 100%;
	min-height: inherit;
}

.fast-hs__slide {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	height: 100%;
	min-height: inherit;
	overflow: hidden;
}

.fast-hs__bg {
	position: absolute;
	inset: 0;
	z-index: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: var(--fast-hs-bg-size, cover);
	object-position: var(--fast-hs-bg-position, center center);
	pointer-events: none;
	/* The background layer never animates, so it must not be promoted. */
}

.fast-hs__overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
	display: block;
	pointer-events: none;
}

.fast-hs__content {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: flex;
	flex-direction: column;
	width: auto;
	max-width: none;
	padding: var(--fast-hs-inset-y, 40px) var(--fast-hs-inset-x, 48px);
	box-sizing: border-box;
	pointer-events: none;
}

.fast-hs__copy,
.fast-hs__actions {
	pointer-events: auto;
	max-width: var(--fast-hs-copy-max, 820px);
	width: 100%;
}

.fast-hs__content--v-top {
	justify-content: flex-start;
}

.fast-hs__content--v-center {
	justify-content: center;
}

.fast-hs__content--v-bottom {
	justify-content: flex-end;
}

.fast-hs__content--h-left {
	align-items: flex-start;
}

.fast-hs__content--h-center {
	align-items: center;
}

.fast-hs__content--h-right {
	align-items: flex-end;
}

.fast-hs__content--h-left .fast-hs__copy {
	text-align: left;
}

.fast-hs__content--h-center .fast-hs__copy {
	text-align: center;
}

.fast-hs__content--h-right .fast-hs__copy {
	text-align: right;
}

.fast-hs__content--text-left .fast-hs__copy {
	text-align: left;
}

.fast-hs__content--text-center .fast-hs__copy {
	text-align: center;
}

.fast-hs__content--text-right .fast-hs__copy {
	text-align: right;
}

.fast-hs__actions--h-left {
	align-self: flex-start;
	justify-content: flex-start;
}

.fast-hs__actions--h-center {
	align-self: center;
	justify-content: center;
}

.fast-hs__actions--h-right {
	align-self: flex-end;
	justify-content: flex-end;
}

.fast-hs--btn-v-bottom .fast-hs__actions {
	margin-top: auto;
}

.fast-hs--btn-v-top .fast-hs__copy {
	order: 2;
}

.fast-hs--btn-v-top .fast-hs__actions {
	order: 1;
	margin-top: 0;
	margin-bottom: auto;
}

.fast-hs__subtitle {
	display: inline-block;
	margin-bottom: 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #ffffff;
}

.fast-hs__title {
	margin: 0 0 16px;
	font-size: 48px;
	font-weight: 700;
	line-height: 1.15;
	color: #ffffff;
}

.fast-hs__desc {
	font-size: 18px;
	line-height: 1.6;
	color: #ffffff;
}

.fast-hs__desc > :first-child {
	margin-top: 0;
}

.fast-hs__desc > :last-child {
	margin-bottom: 0;
}

.fast-hs__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 28px;
}

.fast-hs--actions-column .fast-hs__actions {
	flex-direction: column;
}

.fast-hs--actions-column .fast-hs__content--h-left .fast-hs__actions,
.fast-hs--actions-column .fast-hs__actions--h-left {
	align-items: flex-start;
}

.fast-hs--actions-column .fast-hs__content--h-center .fast-hs__actions,
.fast-hs--actions-column .fast-hs__actions--h-center {
	align-items: center;
}

.fast-hs--actions-column .fast-hs__content--h-right .fast-hs__actions,
.fast-hs--actions-column .fast-hs__actions--h-right {
	align-items: flex-end;
}

.fast-hs--btn-pill .fast-hs__btn {
	border-radius: 999px;
}

.fast-hs--btn-square .fast-hs__btn {
	border-radius: 0;
}

.fast-hs--btn-rounded .fast-hs__btn {
	border-radius: 6px;
}

.fast-hs__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
	border: 2px solid transparent;
	border-radius: 6px;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 200ms var(--fast-hs-ease), color 200ms var(--fast-hs-ease), border-color 200ms var(--fast-hs-ease), transform 200ms var(--fast-hs-ease);
}

.fast-hs__btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.fast-hs__btn--solid {
	background-color: #0d6efd;
	color: #ffffff;
}

.fast-hs__btn--solid:hover {
	background-color: #0b5ed7;
	transform: translate3d(0, -2px, 0);
}

.fast-hs__btn--outline {
	background-color: transparent;
	border-color: currentColor;
	color: #ffffff;
}

.fast-hs__btn--outline:hover {
	background-color: #ffffff;
	color: #0d6efd;
	transform: translate3d(0, -2px, 0);
}

/* ------------------------------------------------------------- navigation */

.fast-hs__arrow {
	position: absolute;
	top: 50%;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-top: -24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: #000000;
	color: #ffffff;
	cursor: pointer;
	opacity: 0.65;
	transition: opacity 200ms var(--fast-hs-ease), background-color 200ms var(--fast-hs-ease), color 200ms var(--fast-hs-ease);
}

.fast-hs__arrow:hover {
	opacity: 1;
}

.fast-hs__arrow:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
	opacity: 1;
}

.fast-hs__arrow--prev {
	left: var(--fast-hs-arrow-gap);
}

.fast-hs__arrow--next {
	right: var(--fast-hs-arrow-gap);
}

.fast-hs__arrow-icon {
	display: block;
	pointer-events: none;
}

.fast-hs--arrow-square .fast-hs__arrow {
	border-radius: 4px;
}

.fast-hs--arrow-minimal .fast-hs__arrow {
	background-color: transparent;
	box-shadow: none;
}

.fast-hs--arrow-minimal .fast-hs__arrow:hover {
	background-color: rgba(0, 0, 0, 0.35);
}

.fast-hs--arrow-pos-bottom .fast-hs__arrow {
	top: auto;
	bottom: 24px;
	margin-top: 0;
}

.fast-hs--arrow-pos-bottom .fast-hs__arrow--prev {
	left: 50%;
	right: auto;
	margin-left: -60px;
}

.fast-hs--arrow-pos-bottom .fast-hs__arrow--next {
	right: 50%;
	left: auto;
	margin-right: -60px;
}

.fast-hs__dots {
	position: absolute;
	right: 0;
	bottom: 24px;
	left: 0;
	z-index: 3;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 0 16px;
}

.fast-hs__dot {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--fast-hs-dot-size);
	height: var(--fast-hs-dot-size);
	padding: 0;
	border: 0;
	border-radius: 50%;
	background-color: #ffffff;
	color: #101010;
	font-size: 11px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	opacity: 0.5;
	transition: opacity 200ms var(--fast-hs-ease), width 200ms var(--fast-hs-ease), transform 200ms var(--fast-hs-ease);
}

.fast-hs__dot:hover {
	opacity: 0.8;
}

.fast-hs__dot.is-active {
	opacity: 1;
	transform: scale(1.2);
}

.fast-hs__dot:focus-visible {
	outline: 2px solid #ffffff;
	outline-offset: 3px;
	opacity: 1;
}

.fast-hs__dot-index {
	display: none;
}

.fast-hs--dots-line .fast-hs__dot {
	width: 28px;
	height: 3px;
	border-radius: 3px;
}

.fast-hs--dots-number .fast-hs__dot {
	width: 32px;
	height: 32px;
	background-color: rgba(0, 0, 0, 0.35);
	color: #ffffff;
}

.fast-hs--dots-number .fast-hs__dot-index {
	display: inline;
}

.fast-hs--dots-number .fast-hs__dot.is-active {
	background-color: #ffffff;
	color: #101010;
}

/* ------------------------------------------------------- slide (scroll snap) */

.fast-hs--slide .fast-hs__viewport {
	overflow-x: auto;
	overflow-y: hidden;
	width: 100%;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}

.fast-hs--slide .fast-hs__viewport::-webkit-scrollbar {
	display: none;
}

.fast-hs--slide .fast-hs__track {
	display: flex;
	flex-wrap: nowrap;
	align-items: stretch;
	width: 100%;
	gap: 0;
}

.fast-hs--slide .fast-hs__slide {
	box-sizing: border-box;
	flex: 0 0 100%;
	width: 100%;
	min-width: 100%;
	max-width: 100%;
	scroll-snap-align: start;
	scroll-snap-stop: always;
}

/* ------------------------------------------------ stacked (fade / zoom / vertical) */

.fast-hs--fade .fast-hs__viewport,
.fast-hs--zoom .fast-hs__viewport,
.fast-hs--slide-up .fast-hs__viewport,
.fast-hs--slide-down .fast-hs__viewport,
.fast-hs--stacked .fast-hs__viewport {
	overflow: hidden;
}

.fast-hs--fade .fast-hs__track,
.fast-hs--zoom .fast-hs__track,
.fast-hs--slide-up .fast-hs__track,
.fast-hs--slide-down .fast-hs__track,
.fast-hs--stacked .fast-hs__track {
	display: block;
	position: relative;
	min-height: inherit;
}

.fast-hs--fade .fast-hs__slide,
.fast-hs--zoom .fast-hs__slide,
.fast-hs--slide-up .fast-hs__slide,
.fast-hs--slide-down .fast-hs__slide,
.fast-hs--stacked .fast-hs__slide {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	min-height: inherit;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	z-index: 0;
	transform: translate3d(0, 0, 0);
	transition: opacity var(--fast-hs-fade-duration) var(--fast-hs-ease), transform var(--fast-hs-fade-duration) var(--fast-hs-ease), visibility 0s linear var(--fast-hs-fade-duration);
}

.fast-hs--fade .fast-hs__slide.is-active,
.fast-hs--zoom .fast-hs__slide.is-active,
.fast-hs--slide-up .fast-hs__slide.is-active,
.fast-hs--slide-down .fast-hs__slide.is-active,
.fast-hs--stacked .fast-hs__slide.is-active {
	position: relative;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 1;
	transform: translate3d(0, 0, 0);
	transition: opacity var(--fast-hs-fade-duration) var(--fast-hs-ease), transform var(--fast-hs-fade-duration) var(--fast-hs-ease), visibility 0s linear 0s;
}

.fast-hs--zoom .fast-hs__slide {
	transform: scale(1.08);
}

.fast-hs--zoom .fast-hs__slide.is-active {
	transform: scale(1);
}

.fast-hs--slide-up .fast-hs__slide {
	transform: translate3d(0, 48px, 0);
}

.fast-hs--slide-up .fast-hs__slide.is-active {
	transform: translate3d(0, 0, 0);
}

.fast-hs--slide-down .fast-hs__slide {
	transform: translate3d(0, -48px, 0);
}

.fast-hs--slide-down .fast-hs__slide.is-active {
	transform: translate3d(0, 0, 0);
}

/* ---------------------------------------------------------- text entrance */

[class*="fast-hs--text-"] .fast-hs__subtitle,
[class*="fast-hs--text-"] .fast-hs__title,
[class*="fast-hs--text-"] .fast-hs__desc,
[class*="fast-hs--text-"] .fast-hs__actions {
	opacity: 0;
	filter: blur(0);
	clip-path: inset(0);
	transform-origin: center center;
	transition: opacity 560ms var(--fast-hs-ease), transform 560ms var(--fast-hs-ease), filter 560ms var(--fast-hs-ease), clip-path 560ms var(--fast-hs-ease);
}

.fast-hs--text-fade-up .fast-hs__subtitle,
.fast-hs--text-fade-up .fast-hs__title,
.fast-hs--text-fade-up .fast-hs__desc,
.fast-hs--text-fade-up .fast-hs__actions {
	transform: translate3d(0, 28px, 0);
}

.fast-hs--text-fade-down .fast-hs__subtitle,
.fast-hs--text-fade-down .fast-hs__title,
.fast-hs--text-fade-down .fast-hs__desc,
.fast-hs--text-fade-down .fast-hs__actions {
	transform: translate3d(0, -28px, 0);
}

.fast-hs--text-fade-left .fast-hs__subtitle,
.fast-hs--text-fade-left .fast-hs__title,
.fast-hs--text-fade-left .fast-hs__desc,
.fast-hs--text-fade-left .fast-hs__actions {
	transform: translate3d(-36px, 0, 0);
}

.fast-hs--text-fade-right .fast-hs__subtitle,
.fast-hs--text-fade-right .fast-hs__title,
.fast-hs--text-fade-right .fast-hs__desc,
.fast-hs--text-fade-right .fast-hs__actions {
	transform: translate3d(36px, 0, 0);
}

.fast-hs--text-zoom .fast-hs__subtitle,
.fast-hs--text-zoom .fast-hs__title,
.fast-hs--text-zoom .fast-hs__desc,
.fast-hs--text-zoom .fast-hs__actions {
	transform: scale(0.92);
}

.fast-hs--text-zoom-out .fast-hs__subtitle,
.fast-hs--text-zoom-out .fast-hs__title,
.fast-hs--text-zoom-out .fast-hs__desc,
.fast-hs--text-zoom-out .fast-hs__actions {
	transform: scale(1.12);
}

.fast-hs--text-blur .fast-hs__subtitle,
.fast-hs--text-blur .fast-hs__title,
.fast-hs--text-blur .fast-hs__desc,
.fast-hs--text-blur .fast-hs__actions {
	filter: blur(16px);
	transform: translate3d(0, 12px, 0);
}

.fast-hs--text-wipe-up .fast-hs__subtitle,
.fast-hs--text-wipe-up .fast-hs__title,
.fast-hs--text-wipe-up .fast-hs__desc,
.fast-hs--text-wipe-up .fast-hs__actions {
	clip-path: inset(100% 0 0 0);
	transform: translate3d(0, 16px, 0);
}

.fast-hs--text-wipe-left .fast-hs__subtitle,
.fast-hs--text-wipe-left .fast-hs__title,
.fast-hs--text-wipe-left .fast-hs__desc,
.fast-hs--text-wipe-left .fast-hs__actions {
	clip-path: inset(0 100% 0 0);
	transform: translate3d(16px, 0, 0);
}

.fast-hs--text-flip .fast-hs__subtitle,
.fast-hs--text-flip .fast-hs__title,
.fast-hs--text-flip .fast-hs__desc,
.fast-hs--text-flip .fast-hs__actions {
	transform-origin: center bottom;
	transform: perspective(900px) rotateX(28deg);
}

.fast-hs--text-bounce .fast-hs__subtitle,
.fast-hs--text-bounce .fast-hs__title,
.fast-hs--text-bounce .fast-hs__desc,
.fast-hs--text-bounce .fast-hs__actions {
	transform: translate3d(0, 42px, 0);
	transition-timing-function: cubic-bezier(0.22, 1.35, 0.32, 1);
}

.fast-hs--text-skew .fast-hs__subtitle,
.fast-hs--text-skew .fast-hs__title,
.fast-hs--text-skew .fast-hs__desc,
.fast-hs--text-skew .fast-hs__actions {
	transform: translate3d(-24px, 0, 0) skewX(12deg);
}

[class*="fast-hs--text-"] .fast-hs__slide.is-active .fast-hs__subtitle,
[class*="fast-hs--text-"] .fast-hs__slide.is-active .fast-hs__title,
[class*="fast-hs--text-"] .fast-hs__slide.is-active .fast-hs__desc,
[class*="fast-hs--text-"] .fast-hs__slide.is-active .fast-hs__actions {
	opacity: 1;
	filter: blur(0);
	clip-path: inset(0);
	transform: none;
}

[class*="fast-hs--text-"] .fast-hs__slide.is-active .fast-hs__title {
	transition-delay: 80ms;
}

[class*="fast-hs--text-"] .fast-hs__slide.is-active .fast-hs__desc {
	transition-delay: 160ms;
}

[class*="fast-hs--text-"] .fast-hs__slide.is-active .fast-hs__actions {
	transition-delay: 240ms;
}

.fast-hs--text-bounce .fast-hs__slide.is-active .fast-hs__subtitle,
.fast-hs--text-bounce .fast-hs__slide.is-active .fast-hs__title,
.fast-hs--text-bounce .fast-hs__slide.is-active .fast-hs__desc,
.fast-hs--text-bounce .fast-hs__slide.is-active .fast-hs__actions {
	transition-timing-function: cubic-bezier(0.22, 1.35, 0.32, 1);
}

/* -------------------------------------------------------------- ken burns */

.fast-hs--ken-burns .fast-hs__bg {
	transform: scale(1);
	transform-origin: center center;
}

.fast-hs--ken-burns .fast-hs__slide.is-active .fast-hs__bg {
	animation: fast-hs-ken-burns 14s var(--fast-hs-ease) forwards;
}

@keyframes fast-hs-ken-burns {
	from {
		transform: scale(1);
	}

	to {
		transform: scale(1.12);
	}
}

/* Editor preview keeps every slide visible side by side. */
.elementor-editor-active .fast-hs--slide .fast-hs__viewport {
	overflow-x: auto;
	scroll-snap-type: none;
}

.elementor-editor-active .fast-hs--slide .fast-hs__slide {
	flex: 0 0 100%;
}

/* --------------------------------------------------------- reduced motion */

@media (prefers-reduced-motion: reduce) {
	.fast-hs--slide .fast-hs__viewport {
		scroll-behavior: auto;
	}

	.fast-hs--fade .fast-hs__slide,
	.fast-hs--zoom .fast-hs__slide,
	.fast-hs--slide-up .fast-hs__slide,
	.fast-hs--slide-down .fast-hs__slide,
	.fast-hs--stacked .fast-hs__slide {
		transition: none;
		will-change: auto;
	}

	[class*="fast-hs--text-"] .fast-hs__subtitle,
	[class*="fast-hs--text-"] .fast-hs__title,
	[class*="fast-hs--text-"] .fast-hs__desc,
	[class*="fast-hs--text-"] .fast-hs__actions {
		transition: none;
		will-change: auto;
		opacity: 1;
		transform: none;
		filter: none;
		clip-path: none;
	}

	.fast-hs--fade .fast-hs__slide.is-active,
	.fast-hs--zoom .fast-hs__slide.is-active,
	.fast-hs--slide-up .fast-hs__slide.is-active,
	.fast-hs--slide-down .fast-hs__slide.is-active,
	.fast-hs--stacked .fast-hs__slide.is-active {
		opacity: 1;
		transform: none;
	}

	.fast-hs--ken-burns .fast-hs__slide.is-active .fast-hs__bg {
		animation: none;
	}

	.fast-hs__btn,
	.fast-hs__arrow,
	.fast-hs__dot {
		transition: none;
	}

	.fast-hs__btn:hover,
	.fast-hs__btn--solid:hover,
	.fast-hs__btn--outline:hover,
	.fast-hs__dot.is-active {
		transform: none;
	}
}

/* ------------------------------------------------------------------- print */

@media print {
	.fast-hs__arrow,
	.fast-hs__dots {
		display: none;
	}

	.fast-hs--slide .fast-hs__viewport {
		overflow: visible;
		scroll-snap-type: none;
	}

	.fast-hs--slide .fast-hs__track {
		display: block;
	}

	.fast-hs--slide .fast-hs__slide {
		page-break-after: always;
	}

	.fast-hs--stacked .fast-hs__slide {
		opacity: 1;
		visibility: visible;
	}
}