/* ─── Ecto Testimonials Widget ─── */

.ecto-ts-wrap {
	position: relative;
	--ecto-ts-card-width: 561px;
	--ecto-ts-gap: 24px;
	--ecto-ts-ring-color: #d3e3ff;
	--ecto-ts-ring-width: 8px;
}

/* ── Track ── */

.ecto-ts-track-outer {
	overflow: visible;
}

.ecto-ts-track {
	display: flex;
	gap: var(--ecto-ts-gap);
	transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
	will-change: transform;
	/* Extra space so the active ring on the last card isn't clipped */
	padding-inline-end: calc(var(--ecto-ts-ring-width) + 2px);
}

/* ── Card ── */

.ecto-ts-card {
	flex-shrink: 0;
	width: var(--ecto-ts-card-width);
	min-height: 616px;
	background-color: #fafafa;
	border: 1px solid #f4f4f5;
	border-radius: 16px;
	padding: 56px;
	display: flex;
	flex-direction: column;
	gap: 80px;
	overflow: hidden;
	position: relative;
	box-sizing: border-box;
	transition: box-shadow 0.25s ease, border-color 0.25s ease;
	text-decoration: none;
}

.ecto-ts-card--active {
	border-color: #84b6ff;
	box-shadow: 0 0 0 var(--ecto-ts-ring-width) var(--ecto-ts-ring-color);
}

/* Link overlay (card clicável) */
.ecto-ts-card__link {
	position: absolute;
	inset: 0;
	z-index: 2;
	display: block;
	border-radius: inherit;
}

/* ── Blobs decorativos ── */

.ecto-ts-blobs {
	position: absolute;
	inset: 0;
	border-radius: inherit;
	overflow: hidden;
	pointer-events: none;
}

.ecto-ts-blob {
	position: absolute;
	width: 460px;
	height: 460px;
	border-radius: 50%;
	filter: blur(70px);
}

.ecto-ts-blob--1 {
	--ecto-ts-blob1: #84b6ff;
	background: radial-gradient(circle at center, var(--ecto-ts-blob1) 0%, transparent 70%);
	right: -120px;
	top: 180px;
}

.ecto-ts-blob--2 {
	--ecto-ts-blob2: #6ee7b7;
	background: radial-gradient(circle at center, var(--ecto-ts-blob2) 0%, transparent 70%);
	left: 30px;
	bottom: -160px;
}

/* ── Logo ── */

.ecto-ts-card__logo {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	min-height: 56px;
	flex-shrink: 0;
}

.ecto-ts-card__logo-img {
	display: block;
	max-height: 56px;
	max-width: 200px;
	width: auto;
	height: auto;
	object-fit: contain;
	object-position: left center;
}

.ecto-ts-card__logo-text {
	font-size: 24px;
	font-weight: 700;
	color: #18181b;
	line-height: 1;
}

/* ── Conteúdo ── */

.ecto-ts-card__content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.ecto-ts-card__headline {
	font-size: 40px;
	font-weight: 500;
	line-height: 56px;
	color: #18181b;
	margin: 0;
	padding: 0;
}

.ecto-ts-card__desc {
	font-size: 18px;
	font-weight: 400;
	line-height: 24px;
	color: #52525a;
	margin: 0;
	padding: 0;
}

.ecto-ts-card__desc p {
	margin: 0;
}

/* ── Bottom bar ── */

.ecto-ts-bottom {
	display: flex;
	align-items: center;
	gap: 32px;
	margin-top: 56px;
}

/* ── Nav buttons ── */

.ecto-ts-nav {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}

.ecto-ts-btn {
	-webkit-appearance: none;
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 999px !important;
	cursor: pointer;
	padding: 0 !important;
	overflow: hidden;
	flex-shrink: 0;
	background: transparent !important;
	box-shadow: none !important;
	text-shadow: none;
	outline: none;
	transition: background-color 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}

.ecto-ts-btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

.ecto-ts-btn svg {
	width: 20px;
	height: 20px;
	flex-shrink: 0;
	pointer-events: none;
}

.ecto-ts-btn--prev {
	background-color: #fafafa !important;
	border: 1px solid transparent !important;
	color: #18181b !important;
}

.ecto-ts-btn--prev:not(:disabled):hover {
	background-color: #f4f4f5 !important;
}

.ecto-ts-btn--next {
	background-color: transparent !important;
	border: 1px solid #d4d4d8 !important;
	color: #18181b !important;
}

.ecto-ts-btn--next:not(:disabled):hover {
	border-color: #717179 !important;
}

/* ── Progress bar ── */

.ecto-ts-progress {
	flex: 1;
	min-width: 0;
	height: 4px;
	background-color: #e4e4e7;
	border-radius: 100px;
	overflow: hidden;
}

.ecto-ts-progress__fill {
	height: 100%;
	width: 0%;
	background-color: #2f6af7;
	border-radius: 100px;
	transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
