/**
 * Firefly Interview Scroller V2 styles.
 *
 * Normal in-flow autoplay carousel. The visual defaults mirror the original
 * Firefly scroller frame while staying overridable through Elementor controls.
 */
.ffisv2{
	--ffisv2-accent: var(--ffisv2-accent-default, #996BE8);
	--ffisv2-ink: var(--e-global-color-2890e26, #021127);
	--ffisv2-soft: var(--e-global-color-0df3eba, #F4F4F8);
	--ffisv2-muted: var(--e-global-color-text, #7A7A7A);
	--ffisv2-panel-bg-default: var(--ffisv2-panel-surface, #F6F4FE);
	--ffisv2-panel-bc-default: var(--ffisv2-panel-border-default, #FFFFFF);
	--ffisv2-card-bc-default: var(--ffisv2-card-border-default, #FFFFFF);
	position: relative;
	box-sizing: border-box;
}
.ffisv2 *{ box-sizing: border-box; }

.ffisv2__stage{
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	gap: clamp(1.5rem, 3vh, 3rem);
	padding: clamp(1.25rem, 3vh, 3rem) clamp(1.25rem, 6vw, 6rem);
	overflow: hidden;
}

.ffisv2__body{
	display: grid;
	grid-template-columns: minmax(220px, 1fr) 1.7fr;
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
	width: 100%;
	max-width: 1440px;
	margin: 0 auto;
}

.ffisv2__left{ display: flex; gap: 1.25rem; align-items: stretch; }
.ffisv2__bar{
	position: relative;
	width: 4px;
	border-radius: 4px;
	background: var(--ffisv2-soft);
	flex: 0 0 auto;
	align-self: stretch;
	min-height: 170px;
}
.ffisv2__bar-fill{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 0;
	background: var(--ffisv2-accent);
	border-radius: 4px;
	transition: height .08s linear;
}
.ffisv2__step-num{
	display: block;
	font-family: var(--e-global-typography-83102b5-font-family, "Font Spring", sans-serif);
	font-size: var(--e-global-typography-83102b5-font-size, 28px);
	color: var(--ffisv2-muted);
	opacity: .55;
	margin-bottom: .75rem;
	letter-spacing: .02em;
}
.ffisv2__step-title{
	font-family: var(--e-global-typography-83102b5-font-family, "Font Spring", sans-serif);
	font-size: var(--e-global-typography-83102b5-font-size, 28px);
	font-weight: 700;
	color: var(--ffisv2-ink);
	margin: 0 0 1rem;
}
.ffisv2__step-desc{
	font-family: var(--e-global-typography-e3368c3-font-family, "Inter", sans-serif);
	font-size: var(--e-global-typography-e3368c3-font-size, 16px);
	line-height: 1.6;
	color: var(--ffisv2-muted);
	margin: 0;
	max-width: 40ch;
}

.ffisv2__viewport{
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	min-height: 440px;
	overflow: hidden;
	-webkit-overflow-scrolling: touch;
	background: var(--ffisv2-panel-bg, var(--ffisv2-panel-bg-default));
	border: var(--ffisv2-panel-bw, 8px) solid var(--ffisv2-panel-bc, var(--ffisv2-panel-bc-default));
	border-radius: var(--ffisv2-panel-radius, 16px);
	padding: clamp(1rem, 3vh, 2.5rem) 0;
	box-shadow: 0 16px 28px -20px var(--ffisv2-shadow, rgba(2, 17, 39, .15));
	cursor: grab;
	touch-action: pan-y;
	user-select: none;
}
.ffisv2__viewport.is-dragging{ cursor: grabbing; }
.ffisv2__track{
	display: flex;
	flex: 0 0 100%;
	width: 100%;
	max-width: 100%;
	gap: clamp(1rem, 2vw, 1.75rem);
	align-items: center;
	padding: 0 clamp(1rem, 4vw, 4rem);
	will-change: transform;
	transition: transform var(--ffisv2-transition, 650ms) cubic-bezier(.22, .61, .36, 1);
}
.ffisv2__card{
	position: relative;
	flex: 0 0 75%;
	width: 75%;
	border-radius: var(--ffisv2-card-radius, 22px);
	overflow: hidden;
	background: var(--ffisv2-card-bg, var(--ffisv2-soft));
	border: var(--ffisv2-card-bw, 9px) solid var(--ffisv2-card-bc, var(--ffisv2-card-bc-default));
	box-shadow: 0 18px 44px -22px var(--ffisv2-shadow, rgba(2, 17, 39, .40));
	opacity: 1;
	transform: none;
}
.ffisv2__card-media{ position: relative; width: 100%; }
.ffisv2__card-media img{
	width: 100%;
	height: auto;
	object-fit: contain;
	display: block;
	pointer-events: none;
}

/* Navigation arrows */
.ffisv2__nav{
	position: absolute;
	top: 50%;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: var(--ffisv2-nav-size, 48px);
	height: var(--ffisv2-nav-size, 48px);
	padding: 0;
	border-radius: var(--ffisv2-nav-radius, 50%);
	border: var(--ffisv2-nav-bw, 0px) solid var(--ffisv2-nav-bc, transparent);
	background: var(--ffisv2-nav-bg, #FFFFFF);
	color: var(--ffisv2-nav-color, var(--ffisv2-ink));
	cursor: pointer;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-50%);
	transition: opacity .25s ease, background .2s ease, color .2s ease, border-color .2s ease;
	box-shadow: 0 6px 18px -8px var(--ffisv2-shadow, rgba(2, 17, 39, .45));
	-webkit-appearance: none;
	appearance: none;
}
.ffisv2__nav svg,
.ffisv2__nav i{
	width: var(--ffisv2-nav-icon, 20px);
	height: var(--ffisv2-nav-icon, 20px);
	font-size: var(--ffisv2-nav-icon, 20px);
	line-height: 1;
	display: block;
}
.ffisv2__nav--prev{ left: var(--ffisv2-nav-offset, 16px); }
.ffisv2__nav--next{ right: var(--ffisv2-nav-offset, 16px); }

/* Shown (resting) state — revealed only while the SLIDER PANEL is hovered */
.ffisv2--nav-hover .ffisv2__viewport:hover .ffisv2__nav,
.ffisv2--nav-always .ffisv2__nav{
	opacity: var(--ffisv2-nav-opacity, 1);
	visibility: visible;
}

/* Interactive hover / focus of the button itself */
.ffisv2--nav-hover .ffisv2__viewport:hover .ffisv2__nav:hover,
.ffisv2--nav-hover .ffisv2__viewport:hover .ffisv2__nav:focus-visible,
.ffisv2--nav-always .ffisv2__nav:hover,
.ffisv2--nav-always .ffisv2__nav:focus-visible{
	opacity: var(--ffisv2-nav-opacity-h, 1);
	background: var(--ffisv2-nav-bg-h, var(--ffisv2-accent));
	color: var(--ffisv2-nav-color-h, #FFFFFF);
	border-color: var(--ffisv2-nav-bc-h, var(--ffisv2-nav-bc, transparent));
	outline: none;
}

@media (max-width: 1100px){
	.ffisv2__stage{
		padding-left: 0;
		padding-right: 0;
	}
	.ffisv2__body{ gap: clamp(1rem, 3vw, 2rem); }
	.ffisv2__track{ padding-left: 1rem; padding-right: 1rem; }
}

@media (max-width: 767px){
	.ffisv2__stage{
		padding-left: 1rem;
		padding-right: 1rem;
	}
	.ffisv2__body{ grid-template-columns: 1fr; }
	.ffisv2__viewport{ order: 1; }
	.ffisv2__left{
		order: 2;
		justify-content: flex-start;
		text-align: left;
	}
	.ffisv2__step-num,
	.ffisv2__step-title,
	.ffisv2__step-desc{ text-align: left; }
	.ffisv2__card{ flex-basis: 84%; width: 84%; }
	/* Touch devices have no hover: keep arrows reachable. */
	.ffisv2--nav-hover .ffisv2__nav{ opacity: var(--ffisv2-nav-opacity, 1); visibility: visible; }
}