/**
 * Text Carousel – frontend styles
 */

.tc-carousel {
	position: relative;
	display: block;
	width: 100%;
	line-height: 1.25;
	overflow: hidden;
	/* Prevent layout shift – height is set by JS to tallest line if needed */
}

.tc-carousel .tc-line {
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	margin: 0;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	will-change: opacity, transform;
}

.tc-carousel .tc-line.is-active {
	position: relative;
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	z-index: 1;
}

/* ---------- Transitions ---------- */

/* Fade */
.tc-carousel.tc-transition-fade .tc-line {
	transition: opacity var(--tc-speed, 600ms) ease;
}

.tc-carousel.tc-transition-fade .tc-line.is-leaving {
	opacity: 0;
}

.tc-carousel.tc-transition-fade .tc-line.is-entering {
	opacity: 0;
}

.tc-carousel.tc-transition-fade .tc-line.is-entering.is-active {
	opacity: 1;
}

/* Slide up */
.tc-carousel.tc-transition-slide-up .tc-line {
	transition: opacity var(--tc-speed, 600ms) ease, transform var(--tc-speed, 600ms) ease;
	transform: translateY(30%);
}

.tc-carousel.tc-transition-slide-up .tc-line.is-active {
	transform: translateY(0);
}

.tc-carousel.tc-transition-slide-up .tc-line.is-leaving {
	opacity: 0;
	transform: translateY(-30%);
}

.tc-carousel.tc-transition-slide-up .tc-line.is-entering {
	opacity: 0;
	transform: translateY(30%);
}

.tc-carousel.tc-transition-slide-up .tc-line.is-entering.is-active {
	opacity: 1;
	transform: translateY(0);
}

/* Slide down */
.tc-carousel.tc-transition-slide-down .tc-line {
	transition: opacity var(--tc-speed, 600ms) ease, transform var(--tc-speed, 600ms) ease;
	transform: translateY(-30%);
}

.tc-carousel.tc-transition-slide-down .tc-line.is-active {
	transform: translateY(0);
}

.tc-carousel.tc-transition-slide-down .tc-line.is-leaving {
	opacity: 0;
	transform: translateY(30%);
}

.tc-carousel.tc-transition-slide-down .tc-line.is-entering {
	opacity: 0;
	transform: translateY(-30%);
}

.tc-carousel.tc-transition-slide-down .tc-line.is-entering.is-active {
	opacity: 1;
	transform: translateY(0);
}

/* Slide left */
.tc-carousel.tc-transition-slide-left .tc-line {
	transition: opacity var(--tc-speed, 600ms) ease, transform var(--tc-speed, 600ms) ease;
	transform: translateX(40px);
}

.tc-carousel.tc-transition-slide-left .tc-line.is-active {
	transform: translateX(0);
}

.tc-carousel.tc-transition-slide-left .tc-line.is-leaving {
	opacity: 0;
	transform: translateX(-40px);
}

.tc-carousel.tc-transition-slide-left .tc-line.is-entering {
	opacity: 0;
	transform: translateX(40px);
}

.tc-carousel.tc-transition-slide-left .tc-line.is-entering.is-active {
	opacity: 1;
	transform: translateX(0);
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.tc-carousel .tc-line {
		transition: none !important;
	}
}
