/**
 * Schuebeler Consulting - Carousel Styles
 * 
 * Responsive carousel for Services, Portfolio, and Testimonials
 * 
 * @package Schuebeler_Consulting
 * @version 2.0.0
 */

/* ==========================================================================
   Base Carousel Styles
   ========================================================================== */

.schuebeler-carousel {
	position: relative;
	overflow: hidden;
	padding: 0 50px; /* Space for navigation buttons */
}

.carousel-track {
	display: flex;
	transition: transform 0.5s cubic-bezier(0.25, 0.1, 0.25, 1);
	will-change: transform;
}

.carousel-item {
	flex: 0 0 calc(100% / 3); /* Default: 3 items */
	padding: 0 1rem;
	box-sizing: border-box;
}

/* Responsive items per view */
@media (max-width: 768px) {
	.carousel-item {
		flex: 0 0 50%; /* 2 items */
	}
}

@media (max-width: 480px) {
	.carousel-item {
		flex: 0 0 100%; /* 1 item */
	}
	
	.schuebeler-carousel {
		padding: 0 40px;
	}
}

/* ==========================================================================
   Navigation Buttons
   ========================================================================== */

.carousel-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 10;
}

.carousel-prev,
.carousel-next {
	width: 44px;
	height: 44px;
	border: none;
	border-radius: 50%;
	background: var(--electric-blue, #0066FF);
	color: white;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: all 0.3s ease;
	box-shadow: 0 4px 15px rgba(0, 102, 255, 0.3);
}

.carousel-prev:hover,
.carousel-next:hover {
	background: var(--deep-purple, #6366F1);
	transform: scale(1.1);
}

.carousel-prev:focus,
.carousel-next:focus {
	outline: 2px solid var(--electric-blue, #0066FF);
	outline-offset: 2px;
}

.carousel-prev {
	left: 0;
}

.carousel-next {
	right: 0;
}

.carousel-prev svg,
.carousel-next svg {
	width: 20px;
	height: 20px;
}

/* ==========================================================================
   Dot Indicators
   ========================================================================== */

.carousel-dots {
	display: flex;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 2rem;
}

.carousel-dot {
	width: 12px;
	height: 12px;
	border: none;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.2);
	cursor: pointer;
	transition: all 0.3s ease;
	padding: 0;
}

.carousel-dot:hover {
	background: rgba(0, 0, 0, 0.4);
}

.carousel-dot.active {
	background: var(--electric-blue, #0066FF);
	transform: scale(1.2);
}

/* ==========================================================================
   No Scroll State (when all items fit)
   ========================================================================== */

.carousel-no-scroll .carousel-nav,
.carousel-no-scroll .carousel-dots {
	display: none;
}

.carousel-no-scroll .carousel-track {
	justify-content: center;
}

.carousel-no-scroll {
	padding: 0;
}

/* ==========================================================================
   Dark Mode (Tech Premium)
   ========================================================================== */

body.design-tech-premium .carousel-prev,
body.design-tech-premium .carousel-next {
	background: var(--neon-cyan, #00D9FF);
	color: var(--space-dark, #0A0A1A);
	box-shadow: 0 4px 15px rgba(0, 217, 255, 0.3);
}

body.design-tech-premium .carousel-prev:hover,
body.design-tech-premium .carousel-next:hover {
	background: var(--neon-purple, #A855F7);
	color: white;
}

body.design-tech-premium .carousel-dot {
	background: rgba(255, 255, 255, 0.2);
}

body.design-tech-premium .carousel-dot:hover {
	background: rgba(255, 255, 255, 0.4);
}

body.design-tech-premium .carousel-dot.active {
	background: var(--neon-cyan, #00D9FF);
}

/* ==========================================================================
   Classic Trust
   ========================================================================== */

body.design-classic-trust .carousel-prev,
body.design-classic-trust .carousel-next {
	background: var(--navy, #0A1F44);
	border-radius: 0;
}

body.design-classic-trust .carousel-prev:hover,
body.design-classic-trust .carousel-next:hover {
	background: var(--gold, #C5A572);
	color: var(--navy, #0A1F44);
}

body.design-classic-trust .carousel-dot {
	border-radius: 0;
}

body.design-classic-trust .carousel-dot.active {
	background: var(--navy, #0A1F44);
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	.carousel-track {
		transition: none;
	}
	
	.carousel-prev:hover,
	.carousel-next:hover,
	.carousel-dot.active {
		transform: none;
	}
}

/* Focus visible for keyboard navigation */
.schuebeler-carousel:focus {
	outline: 2px solid var(--electric-blue, #0066FF);
	outline-offset: 4px;
}

.schuebeler-carousel:focus:not(:focus-visible) {
	outline: none;
}

/* ==========================================================================
   Services Carousel Specific
   ========================================================================== */

.schuebeler-services-carousel .carousel-item {
	flex: 0 0 calc(100% / 3);
}

@media (max-width: 900px) {
	.schuebeler-services-carousel .carousel-item {
		flex: 0 0 50%;
	}
}

@media (max-width: 600px) {
	.schuebeler-services-carousel .carousel-item {
		flex: 0 0 100%;
	}
}

/* ==========================================================================
   Testimonials Carousel Specific
   ========================================================================== */

.schuebeler-testimonials-carousel .carousel-item {
	flex: 0 0 calc(100% / 3);
}

@media (max-width: 1024px) {
	.schuebeler-testimonials-carousel .carousel-item {
		flex: 0 0 50%;
	}
}

@media (max-width: 600px) {
	.schuebeler-testimonials-carousel .carousel-item {
		flex: 0 0 100%;
	}
}

/* ==========================================================================
   Portfolio Carousel Specific
   ========================================================================== */

.schuebeler-portfolio-carousel .carousel-item {
	flex: 0 0 calc(100% / 3);
}

@media (max-width: 900px) {
	.schuebeler-portfolio-carousel .carousel-item {
		flex: 0 0 50%;
	}
}

@media (max-width: 600px) {
	.schuebeler-portfolio-carousel .carousel-item {
		flex: 0 0 100%;
	}
}
