/**
 * Blockora Morph slider chrome (Splide theme hooks).
 */
.bm-slider {
	position: relative;
	width: 100%;
	box-sizing: border-box;
}

.bm-slider .splide {
	visibility: hidden;
}

.bm-slider.is-bm-slider-ready .splide,
.bm-slider .splide.is-initialized,
.bm-slider .splide.is-rendered {
	visibility: visible;
}

.bm-slider .splide__arrow {
	background: var(--bm-slider-arrow-bg, rgba(255, 255, 255, 0.92));
	opacity: 1;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	width: var(--bm-slider-arrow-box, 2.25rem);
	height: var(--bm-slider-arrow-box, 2.25rem);
	padding: var(--bm-slider-arrow-pad, 0.625rem);
	border: 0;
	border-radius: 50%;
	outline: none;
	box-shadow: none;
}

.bm-slider .splide__arrow:focus,
.bm-slider .splide__arrow:focus-visible,
.bm-slider .splide__arrow:active,
.bm-slider .splide.is-focus-in .splide__arrow:focus,
.bm-slider .splide.is-focus-in .splide__arrow:focus-visible {
	outline: none;
	box-shadow: none;
}

.bm-slider .splide__arrow svg {
	fill: var(--bm-slider-arrow-color, #131b2e);
	width: var(--bm-slider-arrow-icon, 1rem);
	height: var(--bm-slider-arrow-icon, 1rem);
	flex-shrink: 0;
}

.bm-slider .splide__arrow--prev {
	left: var(--bm-slider-arrow-inset, 1rem);
}

.bm-slider .splide__arrow--next {
	right: var(--bm-slider-arrow-inset, 1rem);
}

/*
 * Arrow behavior: Fixed (default) vs Reveal on hover.
 * Prev slides in from the left; next from the right (translateX + fade).
 * Keep translateY(-50%) so Splide’s vertical centering stays intact.
 */
.bm-slider--arrows-hover .splide__arrow {
	opacity: 0;
	pointer-events: none;
	transition:
		opacity 0.35s cubic-bezier(0.25, 1, 0.5, 1),
		transform 0.35s cubic-bezier(0.25, 1, 0.5, 1);
}

.bm-slider--arrows-hover .splide__arrow--prev {
	transform: translate3d(-0.9rem, -50%, 0);
}

.bm-slider--arrows-hover .splide__arrow--next {
	transform: translate3d(0.9rem, -50%, 0);
}

.bm-slider--arrows-hover:hover .splide__arrow,
.bm-slider--arrows-hover:focus-within .splide__arrow {
	opacity: 1;
	pointer-events: auto;
}

.bm-slider--arrows-hover:hover .splide__arrow--prev,
.bm-slider--arrows-hover:focus-within .splide__arrow--prev {
	transform: translate3d(0, -50%, 0);
}

.bm-slider--arrows-hover:hover .splide__arrow--next,
.bm-slider--arrows-hover:focus-within .splide__arrow--next {
	transform: translate3d(0, -50%, 0);
}

.bm-slider--arrows-hover:hover .splide__arrow:disabled,
.bm-slider--arrows-hover:focus-within .splide__arrow:disabled {
	opacity: 0.3;
}

/* Touch / no-hover: keep arrows usable without a hover state. */
@media (hover: none) {
	.bm-slider--arrows-hover .splide__arrow {
		opacity: 1;
		pointer-events: auto;
		transform: translate3d(0, -50%, 0);
	}

	.bm-slider--arrows-hover .splide__arrow:disabled {
		opacity: 0.3;
	}
}

@media (prefers-reduced-motion: reduce) {
	.bm-slider--arrows-hover .splide__arrow {
		transition: opacity 0.2s ease;
	}

	.bm-slider--arrows-hover .splide__arrow--prev,
	.bm-slider--arrows-hover .splide__arrow--next {
		transform: translate3d(0, -50%, 0);
	}
}

/* Arrow size tokens: box ≥ icon + 2× padding for a comfortable hit area. */
.bm-slider--arrow-sm {
	--bm-slider-arrow-box: 1.75rem;
	--bm-slider-arrow-pad: 0.5rem;
	--bm-slider-arrow-icon: 0.75rem;
	--bm-slider-arrow-inset: 0.75rem;
}

.bm-slider--arrow-md {
	--bm-slider-arrow-box: 2.25rem;
	--bm-slider-arrow-pad: 0.625rem;
	--bm-slider-arrow-icon: 1rem;
	--bm-slider-arrow-inset: 1rem;
}

.bm-slider--arrow-lg {
	--bm-slider-arrow-box: 2.75rem;
	--bm-slider-arrow-pad: 0.75rem;
	--bm-slider-arrow-icon: 1.25rem;
	--bm-slider-arrow-inset: 1rem;
}

.bm-slider--arrow-xl {
	--bm-slider-arrow-box: 3.25rem;
	--bm-slider-arrow-pad: 0.875rem;
	--bm-slider-arrow-icon: 1.5rem;
	--bm-slider-arrow-inset: 1.125rem;
}

.bm-slider--arrow-xxl {
	--bm-slider-arrow-box: 3.75rem;
	--bm-slider-arrow-pad: 1rem;
	--bm-slider-arrow-icon: 1.75rem;
	--bm-slider-arrow-inset: 1.25rem;
}

.bm-slider--arrow-xxxl {
	--bm-slider-arrow-box: 4.75rem;
	--bm-slider-arrow-pad: 1.25rem;
	--bm-slider-arrow-icon: 2.25rem;
	--bm-slider-arrow-inset: 1.5rem;
}

.bm-slider .splide__pagination__page {
	background: var(--bm-slider-dot-color, rgba(255, 255, 255, 0.45));
	opacity: 1;
}

.bm-slider .splide__pagination__page.is-active {
	background: var(--bm-slider-dot-active, #ffffff);
	transform: scale(1.25);
}

.bm-hero-slider .bm-hero {
	min-height: var(--bm-min-height, 28rem);
}

.bm-hero-slider .splide__slide {
	height: auto;
}

/* Equal-height: stretch slides + fill hero sections to the tallest slide. */
.bm-slider--equal-height .splide__slide {
	display: flex;
	flex-direction: column;
	box-sizing: border-box;
}

.bm-slider--equal-height .splide__slide > .bm-hero,
.bm-slider--equal-height .splide__slide > * {
	flex: 1 1 auto;
	width: 100%;
	min-height: 100%;
	height: 100%;
	box-sizing: border-box;
}

.bm-slider--equal-height .bm-hero__grid,
.bm-slider--equal-height .bm-hero__inner {
	flex: 1 1 auto;
	width: 100%;
	min-height: 100%;
	box-sizing: border-box;
}

.bm-slider--equal-height .bm-hero {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.bm-hero-slider__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45em;
	text-decoration: none;
	font-weight: 600;
	color: var(--bm-label-color, #fff);
	background: var(--bm-label-bg, #3525cd);
	padding: var(--bm-label-pad-y, 0.75rem) var(--bm-label-pad-x, 1.25rem);
	border-radius: var(--bm-label-border-radius, 8px);
	box-shadow: var(--bm-label-shadow, none);
	margin-top: 0.5rem;
}

.bm-hero-slider__cta:hover {
	background: var(--bm-label-bg-hover, var(--bm-label-bg, #2a1ea4)) !important;
	color: var(--bm-label-color-hover, var(--bm-label-color, #fff)) !important;
}

/*
 * Transition animations (fade-based effects).
 * Splide owns inline transform + `transition: opacity` on `.splide__slide`
 * for fade stacking — so we animate the *inner* content, not the slide itself.
 *
 * Settled clear state = `.is-active` (never leave the visible slide blurred/scaled).
 * “From” state only on inactive slides once Splide is ready.
 */
.bm-slider--effect-fade .splide__track,
.bm-slider--effect-zoom .splide__track,
.bm-slider--effect-fade-up .splide__track,
.bm-slider--effect-fade-down .splide__track,
.bm-slider--effect-blur .splide__track {
	overflow: hidden;
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-zoom .splide__slide > *,
.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-up .splide__slide > *,
.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-down .splide__slide > *,
.bm-slider.is-bm-slider-ready.bm-slider--effect-blur .splide__slide > * {
	transform-origin: center center;
	transition:
		transform var(--bm-slider-speed, 500ms) cubic-bezier(0.25, 1, 0.5, 1),
		filter var(--bm-slider-speed, 500ms) cubic-bezier(0.25, 1, 0.5, 1);
}

/* Inactive “from” state */
.bm-slider.is-bm-slider-ready.bm-slider--effect-zoom .splide__slide:not(.is-active) > * {
	transform: scale(1.1);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-up .splide__slide:not(.is-active) > * {
	transform: translateY(2.75rem);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-down .splide__slide:not(.is-active) > * {
	transform: translateY(-2.75rem);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-blur .splide__slide:not(.is-active) > * {
	filter: blur(14px);
	transform: scale(1.04);
}

/* Active settled “to” state — always sharp/clear in editor + frontend */
.bm-slider.is-bm-slider-ready.bm-slider--effect-zoom .splide__slide.is-active > * {
	transform: scale(1);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-up .splide__slide.is-active > * {
	transform: translateY(0);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-down .splide__slide.is-active > * {
	transform: translateY(0);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-blur .splide__slide.is-active > * {
	filter: blur(0);
	transform: scale(1);
}

/*
 * Optional replay kick: briefly force “from” on the incoming active slide
 * so next/prev still animates even when `.is-active` was already present.
 */
.bm-slider.is-bm-slider-ready.bm-slider--effect-zoom .splide__slide.is-active.is-bm-effect-from > * {
	transform: scale(1.1);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-up .splide__slide.is-active.is-bm-effect-from > * {
	transform: translateY(2.75rem);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-down .splide__slide.is-active.is-bm-effect-from > * {
	transform: translateY(-2.75rem);
}

.bm-slider.is-bm-slider-ready.bm-slider--effect-blur .splide__slide.is-active.is-bm-effect-from > * {
	filter: blur(14px);
	transform: scale(1.04);
}

@media (prefers-reduced-motion: reduce) {
	.bm-slider.is-bm-slider-ready.bm-slider--effect-zoom .splide__slide > *,
	.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-up .splide__slide > *,
	.bm-slider.is-bm-slider-ready.bm-slider--effect-fade-down .splide__slide > *,
	.bm-slider.is-bm-slider-ready.bm-slider--effect-blur .splide__slide > * {
		transition: none !important;
		transform: none !important;
		filter: none !important;
	}
}
