/**
 * Novixa Testimonial Carousel.
 *
 * Everything is namespaced `novixa-testimonial`. Design presets only set CSS
 * custom properties on the widget root (plus a few structural rules); the
 * Elementor style controls override those variables / properties with a
 * higher specificity (`{{WRAPPER}} .novixa-testimonial ...`), so presets stay
 * fully editable without custom CSS.
 */

/* ------------------------------------------------------------------ root */

.novixa-testimonial {
	/* Layout (overridden by responsive Elementor controls). */
	--nt-spv: 3;
	--nt-scroll: 1;
	--nt-gap: 24px;
	--nt-speed: 600ms;
	--nt-lines: 4;
	--nt-nav-gap: 28px;

	/* Default look = "Modern Premium Cards". */
	--nt-section-bg: transparent;
	--nt-section-pad: 0;
	--nt-card-bg: #fff;
	--nt-card-color: #475467;
	--nt-name-color: #101828;
	--nt-meta-color: #667085;
	--nt-accent: #6366f1;
	--nt-star: #f59e0b;
	--nt-star-off: #e4e7ec;
	--nt-card-radius: 20px;
	--nt-card-pad: 32px;
	--nt-card-border: 1px solid #eef0f4;
	--nt-card-shadow: 0 10px 30px -12px rgba(16, 24, 40, 0.12), 0 2px 6px rgba(16, 24, 40, 0.04);
	--nt-card-shadow-hover: 0 24px 48px -16px rgba(16, 24, 40, 0.2);
	--nt-hover-y: -4px;
	--nt-quote-color: rgba(99, 102, 241, 0.2);
	--nt-avatar-bg: #eef2ff;
	--nt-verified: #2f80ed;
	--nt-more-color: var(--nt-accent);
	--nt-dot: #d0d5dd;
	--nt-dot-active: #6366f1;
	--nt-arrow-bg: #fff;
	--nt-arrow-color: #101828;
	--nt-arrow-bg-hover: #6366f1;
	--nt-arrow-color-hover: #fff;
	--nt-arrow-bd: #e4e7ec;
	--nt-progress-bg: #e4e7ec;
	--nt-progress-fill: #6366f1;
	--nt-filter-color: #475467;
	--nt-filter-bg: #f2f4f7;
	--nt-filter-active-color: #fff;
	--nt-filter-active-bg: #6366f1;
	--nt-font: inherit;
	--nt-name-transform: none;
	--nt-name-spacing: normal;
	--nt-text-style: normal;

	position: relative;
	box-sizing: border-box;
	max-width: 100%;
	min-width: 0;
	padding: var(--nt-section-pad);
	background: var(--nt-section-bg);
	font-family: var(--nt-font);
}

.novixa-testimonial *,
.novixa-testimonial *::before,
.novixa-testimonial *::after {
	box-sizing: border-box;
}

@media (max-width: 1024px) {
	.novixa-testimonial {
		--nt-spv: 2;
	}
}

@media (max-width: 767px) {
	.novixa-testimonial {
		--nt-spv: 1;
		--nt-card-pad: 24px;
	}
}

/* -------------------------------------------------------------- presets */

.novixa-testimonial.novixa-testimonial--preset-luxury-gold {
	--nt-section-bg: #0a0a0a;
	--nt-section-pad: 56px 40px;
	--nt-card-bg: #121212;
	--nt-card-color: #d9d2c3;
	--nt-name-color: #d4b483;
	--nt-meta-color: #a69a82;
	--nt-accent: #c9a96e;
	--nt-star: #c9a96e;
	--nt-star-off: #3a342a;
	--nt-card-radius: 2px;
	--nt-card-pad: 40px 36px;
	--nt-card-border: 1px solid rgba(201, 169, 110, 0.45);
	--nt-card-shadow: 0 0 0 4px #0a0a0a, 0 0 0 5px rgba(201, 169, 110, 0.18);
	--nt-card-shadow-hover: 0 0 0 4px #0a0a0a, 0 0 0 5px rgba(201, 169, 110, 0.6);
	--nt-hover-y: 0px;
	--nt-quote-color: #c9a96e;
	--nt-avatar-bg: #2a2418;
	--nt-verified: #c9a96e;
	--nt-dot: #3a342a;
	--nt-dot-active: #c9a96e;
	--nt-arrow-bg: transparent;
	--nt-arrow-color: #c9a96e;
	--nt-arrow-bg-hover: #c9a96e;
	--nt-arrow-color-hover: #0a0a0a;
	--nt-arrow-bd: #c9a96e;
	--nt-progress-bg: #2a2418;
	--nt-progress-fill: #c9a96e;
	--nt-filter-color: #c9a96e;
	--nt-filter-bg: transparent;
	--nt-filter-active-color: #0a0a0a;
	--nt-filter-active-bg: #c9a96e;
	--nt-font: Georgia, 'Times New Roman', serif;
	--nt-name-transform: uppercase;
	--nt-name-spacing: 0.12em;
	--nt-text-style: italic;
}

.novixa-testimonial.novixa-testimonial--preset-luxury-ivory {
	--nt-section-bg: #faf6ec;
	--nt-section-pad: 56px 40px;
	--nt-card-bg: #fffdf7;
	--nt-card-color: #4a4336;
	--nt-name-color: #8a6d2f;
	--nt-meta-color: #8c8165;
	--nt-accent: #b8924a;
	--nt-star: #b8924a;
	--nt-star-off: #e6dcc3;
	--nt-card-radius: 2px;
	--nt-card-pad: 40px 36px;
	--nt-card-border: 1px solid rgba(184, 146, 74, 0.5);
	--nt-card-shadow: 0 0 0 4px #faf6ec, 0 0 0 5px rgba(184, 146, 74, 0.25);
	--nt-card-shadow-hover: 0 0 0 4px #faf6ec, 0 0 0 5px rgba(184, 146, 74, 0.7);
	--nt-hover-y: 0px;
	--nt-quote-color: #b8924a;
	--nt-avatar-bg: #f1e8d0;
	--nt-verified: #b8924a;
	--nt-dot: #e0d4b6;
	--nt-dot-active: #b8924a;
	--nt-arrow-bg: transparent;
	--nt-arrow-color: #8a6d2f;
	--nt-arrow-bg-hover: #b8924a;
	--nt-arrow-color-hover: #fffdf7;
	--nt-arrow-bd: #b8924a;
	--nt-progress-bg: #e6dcc3;
	--nt-progress-fill: #b8924a;
	--nt-filter-color: #8a6d2f;
	--nt-filter-bg: transparent;
	--nt-filter-active-color: #fffdf7;
	--nt-filter-active-bg: #b8924a;
	--nt-font: Georgia, 'Times New Roman', serif;
	--nt-name-transform: uppercase;
	--nt-name-spacing: 0.12em;
	--nt-text-style: italic;
}

.novixa-testimonial.novixa-testimonial--preset-minimal {
	--nt-section-bg: #fff;
	--nt-section-pad: 40px 24px;
	--nt-card-bg: #fff;
	--nt-card-color: #4b5563;
	--nt-name-color: #111;
	--nt-meta-color: #777;
	--nt-accent: #111;
	--nt-star: #f5a623;
	--nt-star-off: #e5e7eb;
	--nt-card-radius: 8px;
	--nt-card-pad: 28px;
	--nt-card-border: 1px solid #f0f0f0;
	--nt-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
	--nt-card-shadow-hover: 0 6px 18px rgba(0, 0, 0, 0.1);
	--nt-hover-y: 0px;
	--nt-quote-color: rgba(0, 0, 0, 0.12);
	--nt-avatar-bg: #f3f4f6;
	--nt-dot: #ddd;
	--nt-dot-active: #111;
	--nt-arrow-bg: transparent;
	--nt-arrow-color: #111;
	--nt-arrow-bg-hover: #111;
	--nt-arrow-color-hover: #fff;
	--nt-arrow-bd: #ddd;
	--nt-progress-bg: #eee;
	--nt-progress-fill: #111;
	--nt-filter-color: #444;
	--nt-filter-bg: #f4f4f5;
	--nt-filter-active-color: #fff;
	--nt-filter-active-bg: #111;
}

.novixa-testimonial.novixa-testimonial--preset-glass {
	--nt-section-bg: linear-gradient(135deg, #4f46e5 0%, #9333ea 50%, #ec4899 100%);
	--nt-section-pad: 56px 40px;
	--nt-card-bg: rgba(255, 255, 255, 0.14);
	--nt-card-color: rgba(255, 255, 255, 0.92);
	--nt-name-color: #fff;
	--nt-meta-color: rgba(255, 255, 255, 0.72);
	--nt-accent: #fff;
	--nt-star: #ffd166;
	--nt-star-off: rgba(255, 255, 255, 0.3);
	--nt-card-border: 1px solid rgba(255, 255, 255, 0.28);
	--nt-card-shadow: 0 8px 32px rgba(31, 38, 135, 0.25);
	--nt-card-shadow-hover: 0 16px 40px rgba(31, 38, 135, 0.35);
	--nt-quote-color: rgba(255, 255, 255, 0.35);
	--nt-avatar-bg: rgba(255, 255, 255, 0.2);
	--nt-verified: #fff;
	--nt-dot: rgba(255, 255, 255, 0.4);
	--nt-dot-active: #fff;
	--nt-arrow-bg: rgba(255, 255, 255, 0.16);
	--nt-arrow-color: #fff;
	--nt-arrow-bg-hover: #fff;
	--nt-arrow-color-hover: #4f46e5;
	--nt-arrow-bd: rgba(255, 255, 255, 0.35);
	--nt-progress-bg: rgba(255, 255, 255, 0.25);
	--nt-progress-fill: #fff;
	--nt-filter-color: #fff;
	--nt-filter-bg: rgba(255, 255, 255, 0.16);
	--nt-filter-active-color: #4f46e5;
	--nt-filter-active-bg: #fff;
	--nt-blur: 16px;
}

.novixa-testimonial--preset-glass .novixa-testimonial__card {
	-webkit-backdrop-filter: blur(var(--nt-blur, 16px)) saturate(140%);
	backdrop-filter: blur(var(--nt-blur, 16px)) saturate(140%);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.novixa-testimonial.novixa-testimonial--preset-glass {
		--nt-card-bg: rgba(40, 30, 100, 0.55);
	}
}

.novixa-testimonial.novixa-testimonial--preset-dark {
	--nt-section-bg: #0f1117;
	--nt-section-pad: 56px 40px;
	--nt-card-bg: #171a23;
	--nt-card-color: #c3c8d6;
	--nt-name-color: #fff;
	--nt-meta-color: #8b92a5;
	--nt-accent: #8b5cf6;
	--nt-star: #fbbf24;
	--nt-star-off: #353a4a;
	--nt-card-radius: 16px;
	--nt-card-border: 1px solid #262a37;
	--nt-card-shadow: 0 20px 40px -20px rgba(0, 0, 0, 0.6);
	--nt-card-shadow-hover: 0 28px 50px -18px rgba(139, 92, 246, 0.35);
	--nt-quote-color: rgba(139, 92, 246, 0.4);
	--nt-avatar-bg: #232736;
	--nt-dot: #353a4a;
	--nt-dot-active: #8b5cf6;
	--nt-arrow-bg: #171a23;
	--nt-arrow-color: #fff;
	--nt-arrow-bg-hover: #8b5cf6;
	--nt-arrow-color-hover: #fff;
	--nt-arrow-bd: #262a37;
	--nt-progress-bg: #262a37;
	--nt-progress-fill: #8b5cf6;
	--nt-filter-color: #c3c8d6;
	--nt-filter-bg: #171a23;
	--nt-filter-active-color: #fff;
	--nt-filter-active-bg: #8b5cf6;
}

.novixa-testimonial.novixa-testimonial--preset-featured {
	--nt-card-pad: 40px;
	--nt-card-shadow: 0 24px 50px -20px rgba(16, 24, 40, 0.25);
}

.novixa-testimonial.novixa-testimonial--preset-classic {
	--nt-spv: 1;
	--nt-card-bg: transparent;
	--nt-card-border: 0 solid transparent;
	--nt-card-shadow: none;
	--nt-card-shadow-hover: none;
	--nt-hover-y: 0px;
	--nt-card-pad: 24px 56px;
	--nt-card-color: #333;
	--nt-quote-color: var(--nt-accent);
	--nt-font: Georgia, 'Times New Roman', serif;
	--nt-text-style: italic;
}

.novixa-testimonial.novixa-testimonial--preset-split {
	--nt-spv: 1;
	--nt-card-pad: 0;
	--nt-split-media: 40%;
	--nt-card-radius: 20px;
}

@media (max-width: 767px) {
	.novixa-testimonial.novixa-testimonial--preset-luxury-gold,
	.novixa-testimonial.novixa-testimonial--preset-luxury-ivory,
	.novixa-testimonial.novixa-testimonial--preset-glass,
	.novixa-testimonial.novixa-testimonial--preset-dark {
		--nt-section-pad: 32px 16px;
	}

	.novixa-testimonial.novixa-testimonial--preset-classic {
		--nt-card-pad: 16px 8px;
	}

	.novixa-testimonial.novixa-testimonial--preset-luxury-gold,
	.novixa-testimonial.novixa-testimonial--preset-luxury-ivory {
		--nt-card-pad: 28px 22px;
	}
}

/* ----------------------------------------------------- stage / viewport */

.novixa-testimonial__stage {
	position: relative;
}

.novixa-testimonial__viewport {
	/* Breathing room so card shadows are not clipped by overflow:hidden. */
	overflow: hidden;
	padding: 40px min(var(--nt-gap), 16px);
	margin: -40px calc(-1 * min(var(--nt-gap), 16px));
	touch-action: pan-y;
}

.novixa-testimonial.is-draggable .novixa-testimonial__viewport {
	cursor: grab;
}

.novixa-testimonial.is-dragging .novixa-testimonial__viewport {
	cursor: grabbing;
	user-select: none;
	-webkit-user-select: none;
}

.novixa-testimonial__track {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: var(--nt-gap);
	transition: transform var(--nt-speed) cubic-bezier(0.22, 0.61, 0.36, 1);
	will-change: transform;
}

.novixa-testimonial--equal .novixa-testimonial__track {
	align-items: stretch;
}

.novixa-testimonial.is-dragging .novixa-testimonial__track {
	transition: none;
}

.novixa-testimonial__slide {
	display: flex;
	flex: 0 0 calc((100% - var(--nt-gap) * (var(--nt-spv) - 1)) / var(--nt-spv));
	min-width: 0;
	margin: 0;
	transition: opacity 0.4s ease, transform 0.4s ease;
}

.novixa-testimonial__slide.is-filtered-out {
	display: none;
}

.novixa-testimonial.is-instant .novixa-testimonial__track,
.novixa-testimonial.is-instant .novixa-testimonial__slide {
	transition: none;
}

/* Fade transition: all slides stacked in one grid cell. */
.novixa-testimonial--fade .novixa-testimonial__track {
	display: grid;
	gap: 0;
	transition: none;
	transform: none !important;
}

.novixa-testimonial--fade .novixa-testimonial__slide {
	grid-area: 1 / 1;
	flex: none;
	width: 100%;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--nt-speed) ease, visibility 0s linear var(--nt-speed);
}

.novixa-testimonial--fade .novixa-testimonial__slide.is-active {
	opacity: 1;
	visibility: visible;
	transition-delay: 0s;
}

/* Centre-active mode (always on for the Featured preset). */
.novixa-testimonial--center .novixa-testimonial__slide {
	opacity: 0.5;
	transform: scale(0.88);
}

.novixa-testimonial--center .novixa-testimonial__slide.is-active {
	opacity: 1;
	transform: scale(1);
}

.novixa-testimonial--center .novixa-testimonial__slide:not(.is-active) .novixa-testimonial__card {
	pointer-events: none;
}

/* ------------------------------------------------------------------ card */

.novixa-testimonial__card {
	position: relative;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	padding: var(--nt-card-pad);
	color: var(--nt-card-color);
	background: var(--nt-card-bg);
	border: var(--nt-card-border);
	border-radius: var(--nt-card-radius);
	box-shadow: var(--nt-card-shadow);
	transition: transform 0.35s ease, box-shadow 0.35s ease, background-color 0.35s ease, border-color 0.35s ease;
}

.novixa-testimonial__card:hover {
	background: var(--nt-card-bg-hover, var(--nt-card-bg));
	box-shadow: var(--nt-card-shadow-hover, var(--nt-card-shadow));
	transform: translateY(var(--nt-hover-y, 0));
}

.novixa-testimonial__body {
	position: relative;
	z-index: 1;
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-width: 0;
}

/* ----------------------------------------------------------- quote icon */

.novixa-testimonial__quote {
	position: absolute;
	top: 22px;
	right: 26px;
	z-index: 0;
	display: block;
	font-size: 34px;
	line-height: 1;
	color: var(--nt-quote-color);
	pointer-events: none;
}

.novixa-testimonial__quote i,
.novixa-testimonial__quote svg {
	display: block;
}

.novixa-testimonial__quote svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

/* In-flow positions. */
.novixa-testimonial--quote-top-left .novixa-testimonial__quote,
.novixa-testimonial--quote-top-center .novixa-testimonial__quote {
	position: relative;
	top: auto;
	right: auto;
	margin-bottom: 14px;
}

.novixa-testimonial--quote-top-center .novixa-testimonial__quote {
	text-align: center;
}

.novixa-testimonial--quote-top-center .novixa-testimonial__quote i,
.novixa-testimonial--quote-top-center .novixa-testimonial__quote svg {
	margin-inline: auto;
}

.novixa-testimonial--quote-bottom-right .novixa-testimonial__quote {
	top: auto;
	bottom: 22px;
}

.novixa-testimonial--preset-classic .novixa-testimonial__quote {
	font-size: 64px;
}

/* ---------------------------------------------------------------- stars */

.novixa-testimonial__stars {
	display: flex;
	gap: 3px;
	margin-bottom: 14px;
	line-height: 1;
	justify-content: var(--nt-justify, flex-start);
}

.novixa-testimonial__star {
	font-size: 18px;
	line-height: 1;
	color: transparent;
	-webkit-text-fill-color: transparent;
	background: linear-gradient(90deg, var(--nt-star) var(--nt-fill, 100%), var(--nt-star-off) var(--nt-fill, 100%));
	-webkit-background-clip: text;
	background-clip: text;
}

@media (forced-colors: active) {
	.novixa-testimonial__star {
		color: CanvasText;
		-webkit-text-fill-color: CanvasText;
		background: none;
	}
}

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

.novixa-testimonial__text-wrap {
	margin-bottom: 22px;
}

.novixa-testimonial blockquote.novixa-testimonial__text {
	margin: 0;
	padding: 0;
	border: 0;
	background: none;
	quotes: none;
	font-size: 16px;
	font-style: var(--nt-text-style);
	line-height: 1.7;
	color: var(--nt-card-color);
}

.novixa-testimonial__text::before,
.novixa-testimonial__text::after {
	content: none;
}

.novixa-testimonial__text.is-clamped {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: var(--nt-lines);
	line-clamp: var(--nt-lines);
	overflow: hidden;
}

.novixa-testimonial__slide.is-expanded .novixa-testimonial__text.is-clamped {
	display: block;
	-webkit-line-clamp: unset;
	line-clamp: unset;
	overflow: visible;
}

.novixa-testimonial--preset-classic .novixa-testimonial__text {
	font-size: 22px;
	line-height: 1.6;
}

/* --------------------------------------------------------------- author */

.novixa-testimonial__author {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-top: auto;
	justify-content: var(--nt-justify, flex-start);
}

.novixa-testimonial__avatar {
	display: block;
	flex: 0 0 auto;
	width: 56px;
	height: 56px;
	max-width: none;
	border-radius: 50%;
	object-fit: cover;
	-webkit-user-drag: none;
	transition: transform 0.4s ease;
}

.novixa-testimonial__avatar--initials {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	font-weight: 600;
	color: var(--nt-accent);
	background: var(--nt-avatar-bg);
}

.novixa-testimonial__info {
	min-width: 0;
}

.novixa-testimonial__name {
	font-size: 16px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--nt-name-color);
	text-transform: var(--nt-name-transform);
	letter-spacing: var(--nt-name-spacing);
}

.novixa-testimonial__link,
.novixa-testimonial__link:hover,
.novixa-testimonial__link:focus {
	color: inherit;
	text-decoration: none;
}

.novixa-testimonial__link:hover {
	text-decoration: underline;
}

.novixa-testimonial__meta {
	margin-top: 2px;
	font-size: 14px;
	line-height: 1.4;
	color: var(--nt-meta-color);
}

.novixa-testimonial__designation {
	color: var(--nt-meta-color);
}

.novixa-testimonial__company {
	color: var(--nt-company-color, var(--nt-meta-color));
}

.novixa-testimonial__sep {
	margin: 0 6px;
	opacity: 0.6;
}

.novixa-testimonial__location {
	margin-top: 2px;
	font-size: 13px;
	line-height: 1.4;
	color: var(--nt-meta-color);
	opacity: 0.85;
}

.novixa-testimonial__logo-wrap {
	margin-left: auto;
}

.novixa-testimonial__logo {
	display: block;
	width: auto;
	max-width: 110px;
	height: 28px;
	object-fit: contain;
}

.novixa-testimonial__verified {
	display: inline-flex;
	margin-left: 6px;
	vertical-align: middle;
	font-size: 0.95em;
	color: var(--nt-verified);
}

.novixa-testimonial__sr {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.novixa-testimonial__empty {
	margin: 0;
	padding: 24px;
	text-align: center;
	border: 1px dashed #c3c4c7;
}

/* ----------------------------------------------------- buttons (shared) */

.novixa-testimonial__more,
.novixa-testimonial__arrow,
.novixa-testimonial__dot,
.novixa-testimonial__filter,
.novixa-testimonial__toggle {
	margin: 0;
	font-family: inherit;
	text-transform: none;
	text-shadow: none;
	letter-spacing: normal;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.novixa-testimonial__more:focus-visible,
.novixa-testimonial__arrow:focus-visible,
.novixa-testimonial__dot:focus-visible,
.novixa-testimonial__filter:focus-visible,
.novixa-testimonial__toggle:focus-visible,
.novixa-testimonial__link:focus-visible {
	outline: 2px solid var(--nt-accent);
	outline-offset: 3px;
}

.novixa-testimonial__more,
.novixa-testimonial__more:hover,
.novixa-testimonial__more:focus {
	display: inline-block;
	margin-top: 10px;
	padding: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--nt-more-color);
	text-decoration: underline;
	text-underline-offset: 3px;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
}

/* --------------------------------------------------------------- arrows */

.novixa-testimonial__arrow {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	padding: 0;
	font-size: 16px;
	line-height: 1;
	color: var(--nt-arrow-color);
	background: var(--nt-arrow-bg);
	border: 1px solid var(--nt-arrow-bd);
	border-radius: 50%;
	box-shadow: none;
	transition: background-color 0.25s ease, color 0.25s ease, border-color 0.25s ease, transform 0.25s ease, opacity 0.25s ease;
}

.novixa-testimonial__arrow svg {
	width: 1em;
	height: 1em;
	fill: currentColor;
}

.novixa-testimonial__arrow:hover:not(:disabled),
.novixa-testimonial__arrow:focus-visible:not(:disabled) {
	color: var(--nt-arrow-color-hover);
	background: var(--nt-arrow-bg-hover);
}

.novixa-testimonial__arrow:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

/* Position: sides. */
.novixa-testimonial__arrows--sides {
	position: absolute;
	inset: 0;
	z-index: 3;
	pointer-events: none;
}

.novixa-testimonial__arrows--sides .novixa-testimonial__arrow {
	position: absolute;
	top: 50%;
	translate: 0 -50%;
	pointer-events: auto;
}

.novixa-testimonial__arrows--sides .novixa-testimonial__arrow--prev {
	left: var(--nt-arrow-offset, 4px);
}

.novixa-testimonial__arrows--sides .novixa-testimonial__arrow--next {
	right: var(--nt-arrow-offset, 4px);
}

/* Position: bottom (flows inside the nav row, around the dots). */
.novixa-testimonial__arrows--bottom {
	display: contents;
}

.novixa-testimonial__arrows--bottom .novixa-testimonial__arrow--prev {
	order: -1;
}

.novixa-testimonial__arrows--bottom .novixa-testimonial__arrow--next {
	order: 2;
}

/* Position: top right. */
.novixa-testimonial__arrows--top {
	/* Sit above the slider viewport: its -40px top margin (room for card
	   shadows) would otherwise overlap these buttons and swallow the clicks. */
	position: relative;
	z-index: 5;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-bottom: 20px;
}

/* ------------------------------------------------------------ nav + dots */

.novixa-testimonial__nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	margin-top: var(--nt-nav-gap);
}

.novixa-testimonial__dots {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 8px;
	order: 1;
}

.novixa-testimonial__dot {
	position: relative;
	width: var(--nt-dot-size, 8px);
	height: var(--nt-dot-size, 8px);
	padding: 0;
	background: var(--nt-dot);
	border: 0;
	border-radius: 999px;
	box-shadow: none;
	transition: width 0.3s ease, background-color 0.3s ease;
}

.novixa-testimonial__dot::before {
	content: '';
	position: absolute;
	inset: -8px -4px;
}

.novixa-testimonial__dot[aria-current='true'] {
	width: var(--nt-dot-active-w, 24px);
	background: var(--nt-dot-active);
}

.novixa-testimonial__toggle {
	order: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	padding: 0;
	color: var(--nt-arrow-color);
	background: transparent;
	border: 1px solid var(--nt-arrow-bd);
	border-radius: 50%;
	box-shadow: none;
}

.novixa-testimonial__toggle-icon {
	display: block;
	width: 8px;
	height: 10px;
	border-right: 3px solid currentColor;
	border-left: 3px solid currentColor;
}

.novixa-testimonial__toggle.is-paused .novixa-testimonial__toggle-icon {
	width: 0;
	height: 0;
	margin-left: 2px;
	border-top: 5px solid transparent;
	border-right: 0;
	border-bottom: 5px solid transparent;
	border-left: 8px solid currentColor;
}

/* -------------------------------------------------------------- progress */

.novixa-testimonial__progress {
	position: relative;
	height: 3px;
	margin-top: var(--nt-progress-gap, 20px);
	overflow: hidden;
	background: var(--nt-progress-bg);
	border-radius: 999px;
}

/* Progress bar above the slider (Navigation > Progress Position). */
.novixa-testimonial--progress-top .novixa-testimonial__progress {
	margin-top: 0;
	margin-bottom: var(--nt-progress-gap, 20px);
}

.novixa-testimonial__progress-fill {
	position: absolute;
	inset: 0;
	background: var(--nt-progress-fill);
	border-radius: inherit;
	transform: scaleX(var(--nt-progress, 0));
	transform-origin: left center;
	transition: transform var(--nt-speed) cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* --------------------------------------------------------------- filters */

.novixa-testimonial__filters {
	position: relative;
	z-index: 5; /* above the slider viewport's top bleed, so the buttons stay clickable */
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin-bottom: 28px;
}

.novixa-testimonial__filter {
	padding: 8px 18px;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.2;
	color: var(--nt-filter-color);
	background: var(--nt-filter-bg);
	border: 1px solid transparent;
	border-radius: 999px;
	box-shadow: none;
	transition: background-color 0.25s ease, color 0.25s ease;
}

.novixa-testimonial__filter:hover,
.novixa-testimonial__filter.is-active {
	color: var(--nt-filter-active-color);
	background: var(--nt-filter-active-bg);
}

/* ---------------------------------------------------------- split layout */

.novixa-testimonial--preset-split .novixa-testimonial__card {
	display: grid;
	grid-template-columns: var(--nt-split-media, 40%) minmax(0, 1fr);
}

.novixa-testimonial--preset-split .novixa-testimonial__media {
	position: relative;
	min-height: 280px;
	overflow: hidden;
}

.novixa-testimonial--preset-split .novixa-testimonial__media .novixa-testimonial__avatar {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	border-radius: 0;
}

.novixa-testimonial--preset-split .novixa-testimonial__quote {
	position: absolute;
	top: 22px;
	right: 26px;
	left: auto;
	margin: 0;
}

.novixa-testimonial--preset-split .novixa-testimonial__avatar--initials {
	font-size: 64px;
}

.novixa-testimonial--preset-split .novixa-testimonial__body {
	justify-content: center;
	padding: 40px;
}

/* Image on the right-hand side (Layout > Split Image Side). */
.novixa-testimonial-split-right .novixa-testimonial--preset-split .novixa-testimonial__card {
	grid-template-columns: minmax(0, 1fr) var(--nt-split-media, 40%);
}

.novixa-testimonial-split-right .novixa-testimonial--preset-split .novixa-testimonial__media {
	order: 2;
}

@media (max-width: 767px) {
	.novixa-testimonial--preset-split .novixa-testimonial__card,
	.novixa-testimonial-split-right .novixa-testimonial--preset-split .novixa-testimonial__card {
		grid-template-columns: 1fr;
	}

	.novixa-testimonial-split-right .novixa-testimonial--preset-split .novixa-testimonial__media {
		order: 0;
	}

	.novixa-testimonial--preset-split .novixa-testimonial__media {
		min-height: 220px;
	}

	.novixa-testimonial--preset-split .novixa-testimonial__body {
		padding: 24px;
	}
}

/* ------------------------------------------------------- classic / featured */

.novixa-testimonial--preset-classic .novixa-testimonial__body {
	align-items: center;
	text-align: center;
	--nt-justify: center;
}

.novixa-testimonial--preset-classic .novixa-testimonial__author {
	flex-direction: column;
	text-align: center;
}

.novixa-testimonial--preset-classic .novixa-testimonial__logo-wrap {
	margin-left: 0;
}

.novixa-testimonial--preset-classic .novixa-testimonial__quote {
	position: relative;
	top: auto;
	right: auto;
	text-align: center;
}

.novixa-testimonial--preset-featured .novixa-testimonial__slide.is-active .novixa-testimonial__card {
	box-shadow: var(--nt-card-shadow);
}

/* --------------------------------------------------------- luxury accents */

.novixa-testimonial--preset-luxury-gold .novixa-testimonial__body,
.novixa-testimonial--preset-luxury-ivory .novixa-testimonial__body {
	text-align: center;
	--nt-justify: center;
	align-items: center;
}

.novixa-testimonial--preset-luxury-gold .novixa-testimonial__avatar {
	border: 1px solid #c9a96e;
	padding: 3px;
	background: #121212;
}

.novixa-testimonial--preset-luxury-ivory .novixa-testimonial__avatar {
	border: 1px solid #b8924a;
	padding: 3px;
	background: #fffdf7;
}

/* --------------------------------------------------------- small screens */

@media (max-width: 767px) {
	.novixa-testimonial__arrows--sides .novixa-testimonial__arrow {
		width: 36px;
		height: 36px;
	}

	.novixa-testimonial__arrows--sides .novixa-testimonial__arrow--prev {
		left: var(--nt-arrow-offset, 0px);
	}

	.novixa-testimonial__arrows--sides .novixa-testimonial__arrow--next {
		right: var(--nt-arrow-offset, 0px);
	}

	.novixa-testimonial--preset-classic .novixa-testimonial__text {
		font-size: 18px;
	}
}

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

@media (prefers-reduced-motion: reduce) {
	.novixa-testimonial,
	.novixa-testimonial *,
	.novixa-testimonial *::before,
	.novixa-testimonial *::after {
		transition-duration: 0.01ms !important;
		transition-delay: 0s !important;
		animation: none !important;
		scroll-behavior: auto !important;
	}

	.novixa-testimonial__card:hover {
		transform: none;
	}
}
