.eccfe-widget {
	--eccfe-ratio: 1.55;
	--eccfe-opacity: .72;
	--eccfe-scale: .96;
	--eccfe-speed: 550ms;
	--eccfe-peek-card-width: 86%;
	width: 100%;
	overflow: hidden;
}

.eccfe-track {
	display: flex;
	align-items: stretch;
	gap: 18px;
	width: 100%;
}

.eccfe-card {
	flex: 1 1 0;
	min-width: 0;
	opacity: var(--eccfe-opacity);
	transform: scale(var(--eccfe-scale));
	transform-origin: center bottom;
	transition: flex-grow var(--eccfe-speed) cubic-bezier(.22, 1, .36, 1), opacity var(--eccfe-speed), transform var(--eccfe-speed) cubic-bezier(.22, 1, .36, 1);
}

.eccfe-widget[data-click="yes"] .eccfe-card {
	cursor: pointer;
}

.eccfe-card.is-active {
	flex-grow: var(--eccfe-ratio);
	opacity: 1;
	transform: scale(1);
}

.eccfe-card[role="button"]:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 5px;
}

.eccfe-link {
	display: block;
	color: inherit;
	text-decoration: none;
}

.eccfe-image {
	height: 430px;
	overflow: hidden;
	box-sizing: border-box;
	border-style: solid;
	border-width: 0;
	border-color: #000;
	border-radius: 14px;
	background: transparent;
	background-clip: padding-box;
	isolation: isolate;
	transform: translateZ(0);
}

.eccfe-image img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	border: 0;
	border-radius: 0 !important;
	object-fit: cover;
	transition: transform var(--eccfe-speed);
}

.eccfe-card.is-active .eccfe-image img {
	transform: scale(1.015);
}

.eccfe-content {
	padding-top: 16px;
}

.eccfe-heading {
	margin: 0;
}

.eccfe-description {
	margin-top: 8px;
}

.eccfe-highlight {
	margin-top: 16px;
	font-size: .72em;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.eccfe-card .eccfe-heading,
.eccfe-card .eccfe-description {
	transition: color var(--eccfe-speed) ease;
}

.eccfe-arrows {
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	margin-top: 20px;
}

.eccfe-arrow {
	width: 46px;
	height: 46px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #1d1d1d;
	color: #fff;
	cursor: pointer;
	font-size: 22px;
}

.eccfe-arrow:disabled {
	cursor: not-allowed;
	opacity: .45;
}

.eccfe-dots {
	display: flex;
	justify-content: center;
	gap: 16px;
	margin-top: 22px;
}

.eccfe-dot {
	width: 10px;
	height: 10px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: #c8c8c8;
	cursor: pointer;
}

.eccfe-dot.is-active {
	background: #1d1d1d;
	transform: scale(1.12);
}

.eccfe-arrow,
.eccfe-dot {
	border-style: solid;
	border-width: 0;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}

.eccfe-arrow:focus,
.eccfe-dot:focus {
	outline: none !important;
	box-shadow: none !important;
}

.eccfe-arrow:focus-visible,
.eccfe-dot:focus-visible,
.eccfe-autoplay-toggle:focus-visible {
	outline: 2px solid currentColor !important;
	outline-offset: 3px;
}

.eccfe-autoplay-toggle {
	display: block;
	margin: 14px auto 0;
	padding: 4px 8px;
	border: 0;
	background: transparent;
	color: inherit;
	cursor: pointer;
	font: inherit;
	font-size: .875em;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.eccfe-autoplay-toggle[hidden] {
	display: none;
}

.eccfe-widget.eccfe-arrows-above {
	display: flex;
	flex-direction: column;
}

.eccfe-arrows-above .eccfe-arrows {
	order: -1;
	justify-content: center;
	margin: 0 0 20px;
}

.eccfe-arrows-below .eccfe-arrows,
.eccfe-arrows-center .eccfe-arrows {
	justify-content: center;
}

.eccfe-arrows-left,
.eccfe-arrows-right {
	position: relative;
}

.eccfe-arrows-left .eccfe-arrows,
.eccfe-arrows-right .eccfe-arrows {
	position: absolute;
	top: 50%;
	z-index: 5;
	flex-direction: column;
	margin: 0;
	transform: translateY(-50%);
}

.eccfe-arrows-left .eccfe-arrows {
	left: 12px;
}

.eccfe-arrows-right .eccfe-arrows {
	right: 12px;
}

/* Active + Peek. The JS clamps the translated track between 0 and its far edge,
   so the first and last cards sit flush without an empty outer gutter. */
.eccfe-layout-peek {
	position: relative;
	overflow: hidden;
}

.eccfe-layout-peek .eccfe-track {
	display: flex;
	width: max-content;
	min-width: max-content;
	max-width: none;
	overflow: visible;
	padding: 0 0 6px;
	touch-action: pan-y;
	will-change: transform;
	transform: translate3d(0, 0, 0);
}

.eccfe-layout-peek .eccfe-card,
.eccfe-layout-peek .eccfe-card.is-active {
	flex: 0 0 var(--eccfe-peek-card-width);
	width: var(--eccfe-peek-card-width);
	min-width: 0;
	max-width: none !important;
	box-sizing: border-box;
	opacity: 1;
	transform: none;
}

.eccfe-layout-peek .eccfe-content,
.eccfe-layout-peek .eccfe-heading,
.eccfe-layout-peek .eccfe-description,
.eccfe-layout-peek .eccfe-highlight {
	width: 100%;
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	overflow-wrap: anywhere;
}

/* Single Card uses the same translated track as Peek, with full-width slides. */
.eccfe-layout-single {
	position: relative;
	overflow: hidden;
}

.eccfe-layout-single .eccfe-track {
	display: flex;
	align-items: flex-start;
	width: max-content;
	min-width: max-content;
	max-width: none;
	gap: 0 !important;
	overflow: hidden;
	touch-action: pan-y;
	will-change: transform, height;
	transform: translate3d(0, 0, 0);
}

.eccfe-layout-single .eccfe-card,
.eccfe-layout-single .eccfe-card.is-active {
	display: block;
	flex: 0 0 100%;
	width: 100%;
	min-width: 0;
	max-width: none;
	box-sizing: border-box;
	opacity: 1;
	transform: none;
}

.eccfe-layout-stack {
	overflow: visible;
}

.eccfe-layout-stack .eccfe-track {
	display: block;
}

.eccfe-layout-stack .eccfe-card,
.eccfe-layout-stack .eccfe-card.is-active {
	width: 100%;
	max-width: 100%;
	margin-bottom: 26px;
	opacity: 1;
	transform: none;
}

.eccfe-layout-stack .eccfe-arrows,
.eccfe-layout-stack .eccfe-dots,
.eccfe-layout-stack .eccfe-autoplay-toggle {
	display: none;
}

@media (prefers-reduced-motion: reduce) {
	.eccfe-card,
	.eccfe-image img,
	.eccfe-track,
	.eccfe-card .eccfe-heading,
	.eccfe-card .eccfe-description {
		transition-duration: 1ms !important;
	}
}
