/* Carousel Component Styles - FlexNetJSX Architecture */

/* Carousel Section Container */
.carousel-section-container {
  padding: var(--spacing-2xl);
  border-radius: var(--radius-lg);
  background-color: var(--bg-card);
}

/* Carousel Container */
.carousel-container {
  /* Base container styles */
}

/* Carousel Title Container */
.carousel-title-container {
  text-align: center;
  margin-bottom: var(--spacing-2xl);
}

/* Carousel Title */
.carousel-title {
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--text-primary);
}

@media (min-width: 640px) {
  .carousel-title {
    font-size: var(--text-4xl);
  }
}

/* Carousel Wrapper */
.carousel-wrapper {
  position: relative;
  overflow: hidden;
}

/* Carousel Track */
.carousel-track {
  display: flex;
  transition: transform 0.7s ease-in-out;
}

/* Carousel Slide */
.carousel-slide {
  flex: none;
  width: 100%;
  padding: 0 var(--spacing-lg);
}

@media (min-width: 768px) {
  .carousel-slide {
    width: 33.333333%;
  }
}

/* Carousel Item */
.carousel-item {
  background-color: var(--bg-secondary);
  border: 1px solid var(--border-primary);
  border-radius: var(--radius-lg);
  padding: var(--spacing-xl);
  text-align: center;
  transform: translateZ(0);
  transition: transform var(--transition-normal);
  cursor: pointer;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.carousel-item:hover {
  transform: scale(1.05);
}

/* Carousel Item Content */
.carousel-item-content {
  flex-grow: 1;
  display: flex;
  flex-direction: column;
}

/* Carousel Item Image */
.carousel-item-image {
  width: 100%;
  height: 12rem;
  object-fit: cover;
  border-radius: var(--radius-lg);
  margin-bottom: var(--spacing-lg);
}

/* Carousel Item Title */
.carousel-item-title {
  font-size: var(--text-xl);
  font-weight: 600;
  margin-bottom: var(--spacing-sm);
  color: var(--text-primary);
}

/* Carousel Item Description */
.carousel-item-description {
  color: var(--color-primary);
  font-size: var(--text-sm);
}

/* Carousel Indicators */
.carousel-indicators {
  display: flex;
  justify-content: center;
  margin-top: var(--spacing-xl);
  gap: var(--spacing-sm);
}

/* Carousel Indicator */
.carousel-indicator {
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 50%;
  transition: background-color var(--transition-normal);
  background-color: var(--bg-tertiary);
  border: none;
  cursor: pointer;
}

.carousel-indicator--active {
  background-color: var(--color-primary);
}

/* Carousel Navigation */
.carousel-nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(0, 0, 0, 0.5);
  color: var(--text-primary);
  padding: var(--spacing-sm);
  border-radius: 50%;
  transition: all var(--transition-normal);
  z-index: var(--z-carousel-nav);
  border: none;
  cursor: pointer;
}

.carousel-nav:hover {
  background-color: rgba(0, 0, 0, 0.7);
}

.carousel-prev {
  left: var(--spacing-lg);
}

.carousel-next {
  right: var(--spacing-lg);
}

/* Carousel Navigation Icon */
.carousel-nav-icon {
  width: 1.5rem;
  height: 1.5rem;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .carousel-section-container {
    padding: var(--spacing-lg);
  }
  
  .carousel-slide {
    padding: 0 var(--spacing-sm);
  }
  
  .carousel-item {
    padding: var(--spacing-lg);
  }
  
  .carousel-item-image {
    height: 10rem;
  }
  
  .carousel-nav {
    padding: var(--spacing-xs);
  }
  
  .carousel-nav-icon {
    width: 1.25rem;
    height: 1.25rem;
  }
  
  .carousel-prev {
    left: var(--spacing-sm);
  }
  
  .carousel-next {
    right: var(--spacing-sm);
  }
}

/* Focus states for accessibility */
.carousel-nav:focus,
.carousel-indicator:focus {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
}

/* Animation for carousel items */
@keyframes carouselFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.carousel-item {
  animation: carouselFadeIn 0.5s ease-out;
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  .carousel-track {
    transition: none;
  }
  
  .carousel-item {
    transition: none;
    animation: none;
  }
  
  .carousel-item:hover {
    transform: none;
  }
  
  .carousel-indicator {
    transition: none;
  }
  
  .carousel-nav {
    transition: none;
  }
}
