/**
 * Atlas Tours - Home Page Styles
 * Hero section, Swiper carousel, and page-specific styles
 */

/* ============================================
 * Hero Swiper
 * ============================================ */

.hero-swiper {
  width: 100%;
  height: 100%;
}

.hero-swiper .swiper-slide {
  overflow: hidden;
}

.hero-swiper .swiper-slide img {
  transition: transform 6s ease-out;
}

.hero-swiper .swiper-slide-active img {
  transform: scale(1.08);
}

/* ============================================
 * Hero Content
 * ============================================ */

.hero-title {
  font-family: var(--font-display);
  letter-spacing: var(--tracking-tight);
  line-height: var(--leading-none);
  text-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.hero-subtitle {
  font-size: var(--text-sm);
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  font-weight: var(--font-medium);
  transition: all var(--transition-slow);
}

.hero-description {
  font-size: var(--text-lg);
  font-weight: var(--font-light);
  line-height: var(--leading-relaxed);
  color: rgba(255, 255, 255, 0.8);
  max-width: 42rem;
  transition: all var(--transition-slow);
}

@media (min-width: 768px) {
  .hero-subtitle {
    font-size: var(--text-base);
  }

  .hero-description {
    font-size: var(--text-xl);
  }
}

/* ============================================
 * Bottom Bar Content Transition
 * ============================================ */

.bottom-bar-content {
  transition: opacity 0.4s ease, transform 0.4s ease;
}

.bottom-bar-content.changing {
  opacity: 0;
  transform: translateY(10px);
}

/* ============================================
 * Progress Bar
 * ============================================ */

.progress-bar {
  transform: scaleX(0);
  transform-origin: left;
  background-size: 200% 100%;
}

.progress-bar.active {
  animation:
    progressFill 6s linear forwards,
    gradientMove 2s ease-in-out infinite;
}

/* Progress bar fill animation */
@keyframes progressFill {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}

/* Animated gradient shimmer effect */
@keyframes gradientMove {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

/* Glow pulse effect using currentColor */
@keyframes glowPulse {
  0%, 100% {
    filter: drop-shadow(0 0 4px currentColor);
  }
  50% {
    filter: drop-shadow(0 0 8px currentColor) drop-shadow(0 0 16px currentColor);
  }
}

/* ============================================
 * Reduced Motion Preferences
 * ============================================ */

@media (prefers-reduced-motion: reduce) {
  .hero-swiper .swiper-slide img,
  .bottom-bar-content,
  .progress-bar {
    transition: none;
    animation: none;
  }

  .progress-bar.active {
    transform: scaleX(1);
  }
}

/* ============================================
 * Hero Gradient Overlays
 * ============================================ */

.hero-overlay {
  background: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.4) 0%,
    transparent 40%,
    transparent 60%,
    rgba(0, 0, 0, 0.8) 100%
  );
}

/* ============================================
 * Header Bar
 * ============================================ */

.header-bar {
  backdrop-filter: blur(8px);
  background-color: rgba(255, 255, 255, 0.05);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

/* ============================================
 * Bottom Info Bar
 * ============================================ */

.bottom-info-bar {
  backdrop-filter: blur(8px);
}

.bottom-info-bar__progress {
  width: 100%;
  height: 3px;
  background-color: rgba(255, 255, 255, 0.1);
  overflow: hidden;
}

.bottom-info-bar__grid {
  display: grid;
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .bottom-info-bar__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

@media (min-width: 1024px) {
  .bottom-info-bar__grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

/* ============================================
 * Mobile-specific adjustments
 * ============================================ */

@media (max-width: 767px) {
  .info-card {
    background-color: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(12px);
  }
}
