/* ─── Ecto Card Carousel ─── */

.ecto-cc-wrap {
	position: relative;
	--ecto-cc-card-width: 280px;
	--ecto-cc-gap: 32px;
	--ecto-cc-ring-color: #d3e3ff;
	--ecto-cc-ring-width: 8px;
}

/* ── Track ── */

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

.ecto-cc-track {
	display: flex;
	gap: var(--ecto-cc-gap);
	transition: transform 0.35s 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-cc-ring-width) + 2px);
}

/* ── Card ── */

.ecto-cc-card {
	flex-shrink: 0;
	width: var(--ecto-cc-card-width);
	background-color: #fafafa;
	border: 1px solid #f4f4f5;
	border-radius: 16px;
	padding: 32px;
	display: flex;
	flex-direction: column;
	gap: 32px;
	overflow: hidden;
	position: relative;
	box-sizing: border-box;
	transition: box-shadow 0.25s ease;
}

.ecto-cc-card--active {
	box-shadow: 0 0 0 var(--ecto-cc-ring-width) var(--ecto-cc-ring-color);
}

/* ── Overlay link (quando card tem URL) ── */

.ecto-cc-card__link {
	position: absolute;
	inset: 0;
	z-index: 0;
	border-radius: inherit;
}

/* ── Icon ── */

.ecto-cc-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	width: 24px;
	height: 24px;
	color: inherit;
	position: relative;
	z-index: 1;
}

.ecto-cc-card__icon svg {
	width: 100%;
	height: 100%;
	display: block;
	fill: currentColor;
}

.ecto-cc-card__icon i {
	font-size: 24px;
	line-height: 1;
}

/* ── Body ── */

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

.ecto-cc-card__title {
	font-size: 20px;
	font-weight: 600;
	line-height: 32px;
	color: #18181b;
	margin: 0;
	padding: 0;
}

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

/* ── Bottom bar (nav + progress) ── */

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

/* ── Nav buttons ── */

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

.ecto-cc-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-cc-btn:disabled {
	opacity: 0.35;
	cursor: not-allowed;
}

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

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

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

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

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

/* ── Progress bar ── */

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

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