/**
 * FinPal Stacked Carousel Component
 *
 * A premium horizontal carousel with stacked card positioning.
 * Center card is prominent, side cards visible but dimmed.
 *
 * Usage:
 * <div class="stacked-carousel-section">
 *   <div class="stacked-carousel-container">
 *     <button class="carousel-arrow" id="prevBtn">‹</button>
 *     <button class="carousel-arrow carousel-next" id="nextBtn">›</button>
 *     <div class="stacked-carousel">
 *       <div class="stacked-card" data-card-index="0">Card 1</div>
 *       <div class="stacked-card" data-card-index="1">Card 2</div>
 *       <div class="stacked-card" data-card-index="2">Card 3</div>
 *     </div>
 *     <div class="carousel-nav">
 *       <button class="carousel-dot active"></button>
 *       <button class="carousel-dot"></button>
 *       <button class="carousel-dot"></button>
 *     </div>
 *   </div>
 * </div>
 */

/* Container */
.stacked-carousel-section {
    margin: 3rem 0;
}

.stacked-carousel-container {
    position: relative;
    overflow: hidden;
    padding: 1rem 0;
    padding-left: 80px;
    padding-right: 80px;
    min-height: 500px;
}

@media (max-width: 768px) {
    .stacked-carousel-container {
        padding-left: 20px;
        padding-right: 20px;
        min-height: auto;
    }
}

/* Carousel */
.stacked-carousel {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0;
    position: relative;
    padding: 2rem 0;
    height: 480px;
    touch-action: pan-y pinch-zoom; /* Allow vertical scroll but enable horizontal swipe detection */
}

/* Cards - Stacked Positioning */
.stacked-card {
    position: absolute;
    width: 450px;
    max-width: 90vw;
    background: linear-gradient(135deg, rgba(168, 85, 247, 0.08) 0%, rgba(147, 51, 234, 0.05) 100%);
    border: 1.5px solid rgba(168, 85, 247, 0.2);
    border-radius: 20px;
    padding: 2rem;
    overflow: hidden;
    cursor: pointer;
    /* Separate transitions for smoother animation */
    transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1),
                opacity 0.6s ease,
                filter 0.6s ease,
                z-index 0s;
    transform-origin: center center;
    will-change: transform, opacity, filter;
}

/* Shimmer effect on cards */
.stacked-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent, var(--purple-500), transparent);
    animation: shimmer 3s infinite;
}

@keyframes shimmer {
    0% {
        transform: translateX(-100%);
    }
    100% {
        transform: translateX(100%);
    }
}

/* Center card (active) - Position 0 */
.stacked-card[data-position="0"] {
    z-index: 3;
    transform: translateX(0) scale(1);
    opacity: 1;
    filter: blur(0);
    pointer-events: all;
    backdrop-filter: blur(24px) saturate(180%);
}

.stacked-card[data-position="0"]:hover {
    transform: translateX(0) scale(1.02);
    box-shadow: 0 20px 60px rgba(168, 85, 247, 0.3);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

/* Left card (previous) - Position -1 */
.stacked-card[data-position="-1"] {
    z-index: 2;
    transform: translateX(-380px) scale(0.85);
    opacity: 0.5;
    filter: blur(1px);
}

.stacked-card[data-position="-1"]:hover {
    transform: translateX(-380px) scale(0.9);
    opacity: 0.7;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Right card (next) - Position 1 */
.stacked-card[data-position="1"] {
    z-index: 2;
    transform: translateX(380px) scale(0.85);
    opacity: 0.5;
    filter: blur(1px);
}

.stacked-card[data-position="1"]:hover {
    transform: translateX(380px) scale(0.9);
    opacity: 0.7;
    transition: transform 0.3s ease, opacity 0.3s ease;
}

/* Far cards - Hidden (positions beyond -1 and 1) */
.stacked-card[data-position="-2"],
.stacked-card[data-position="2"],
.stacked-card[data-position="-3"],
.stacked-card[data-position="3"],
.stacked-card[data-position="-4"],
.stacked-card[data-position="4"],
.stacked-card[data-position="-5"],
.stacked-card[data-position="5"],
.stacked-card[data-position="-6"],
.stacked-card[data-position="6"],
.stacked-card[data-position="-7"],
.stacked-card[data-position="7"],
.stacked-card[data-position="-8"],
.stacked-card[data-position="8"],
.stacked-card[data-position="-9"],
.stacked-card[data-position="9"],
.stacked-card[data-position="-10"],
.stacked-card[data-position="10"] {
    z-index: 0;
    transform: translateX(0) scale(0.7);
    opacity: 0;
    pointer-events: none;
}

/* Tablets (769-1024px) */
@media (min-width: 769px) and (max-width: 1024px) {
    .stacked-card {
        width: 380px;
    }

    .stacked-card[data-position="-1"] {
        transform: translateX(-320px) scale(0.85);
    }

    .stacked-card[data-position="-1"]:hover {
        transform: translateX(-320px) scale(0.9);
        opacity: 0.7;
    }

    .stacked-card[data-position="1"] {
        transform: translateX(320px) scale(0.85);
    }

    .stacked-card[data-position="1"]:hover {
        transform: translateX(320px) scale(0.9);
        opacity: 0.7;
    }
}

/* Small tablets (641-768px) - tighter spacing */
@media (min-width: 641px) and (max-width: 768px) {
    .stacked-card {
        width: 340px;
    }

    .stacked-card[data-position="-1"] {
        transform: translateX(-280px) scale(0.85);
    }

    .stacked-card[data-position="-1"]:hover {
        transform: translateX(-280px) scale(0.9);
        opacity: 0.7;
    }

    .stacked-card[data-position="1"] {
        transform: translateX(280px) scale(0.85);
    }

    .stacked-card[data-position="1"]:hover {
        transform: translateX(280px) scale(0.9);
        opacity: 0.7;
    }
}

/* Large mobile (481-640px) - tighter spacing */
@media (min-width: 481px) and (max-width: 640px) {
    .stacked-card {
        width: 320px;
    }

    .stacked-card[data-position="-1"] {
        transform: translateX(-260px) scale(0.85);
    }

    .stacked-card[data-position="-1"]:hover {
        transform: translateX(-260px) scale(0.9);
        opacity: 0.7;
    }

    .stacked-card[data-position="1"] {
        transform: translateX(260px) scale(0.85);
    }

    .stacked-card[data-position="1"]:hover {
        transform: translateX(260px) scale(0.9);
        opacity: 0.7;
    }
}

/* Small mobile (0-480px) - show center card prominently with blurred side hints */
@media (max-width: 480px) {
    .stacked-carousel {
        height: auto;
        min-height: 450px;
    }

    .stacked-card {
        width: 85vw;
        max-width: 340px;
    }

    /* Center card - prominent and interactive */
    .stacked-card[data-position="0"] {
        z-index: 3;
        transform: translateX(0) scale(1);
        opacity: 1;
        filter: blur(0);
        pointer-events: all;
    }

    /* Left card - peek/hint (closer for better visibility) */
    .stacked-card[data-position="-1"] {
        z-index: 1;
        transform: translateX(-55vw) scale(0.8);
        opacity: 0.4;
        filter: blur(2px);
        pointer-events: all;
    }

    /* Right card - peek/hint (closer for better visibility) */
    .stacked-card[data-position="1"] {
        z-index: 1;
        transform: translateX(55vw) scale(0.8);
        opacity: 0.4;
        filter: blur(2px);
        pointer-events: all;
    }

    /* Hide far cards */
    .stacked-card[data-position="-2"],
    .stacked-card[data-position="2"],
    .stacked-card[data-position="-3"],
    .stacked-card[data-position="3"],
    .stacked-card[data-position="-4"],
    .stacked-card[data-position="4"],
    .stacked-card[data-position="-5"],
    .stacked-card[data-position="5"],
    .stacked-card[data-position="-6"],
    .stacked-card[data-position="6"],
    .stacked-card[data-position="-7"],
    .stacked-card[data-position="7"],
    .stacked-card[data-position="-8"],
    .stacked-card[data-position="8"],
    .stacked-card[data-position="-9"],
    .stacked-card[data-position="9"],
    .stacked-card[data-position="-10"],
    .stacked-card[data-position="10"] {
        display: none;
    }

    /* Disable hover effects on mobile */
    .stacked-card[data-position="0"]:hover {
        transform: translateX(0) scale(1);
        box-shadow: none;
    }

    .stacked-card[data-position="-1"]:hover {
        transform: translateX(-55vw) scale(0.8);
        opacity: 0.4;
    }

    .stacked-card[data-position="1"]:hover {
        transform: translateX(55vw) scale(0.8);
        opacity: 0.4;
    }
}

/* Navigation Arrows */
.carousel-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(10, 10, 10, 0.9);
    backdrop-filter: blur(10px);
    border: 1.5px solid rgba(168, 85, 247, 0.3);
    color: var(--purple-400);
    font-size: 1.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s ease;
    z-index: 10;
}

.carousel-arrow:first-of-type {
    left: 0;
}

.carousel-arrow.carousel-next {
    right: 0;
}

.carousel-arrow:hover {
    background: rgba(168, 85, 247, 0.2);
    border-color: var(--purple-400);
    transform: translateY(-50%) scale(1.1);
}

.carousel-arrow:active {
    transform: translateY(-50%) scale(0.95);
}

.carousel-arrow.disabled {
    opacity: 0.3;
    cursor: not-allowed;
    pointer-events: none;
}

@media (max-width: 768px) {
    .carousel-arrow {
        display: none;
    }
}

/* Navigation Dots */
.carousel-nav {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 3.5rem;
}

.carousel-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(168, 85, 247, 0.3);
    border: none;
    cursor: pointer;
    transition: all 0.3s;
}

.carousel-dot.active {
    background: var(--purple-500);
    width: 30px;
    border-radius: 5px;
}

.carousel-dot:hover {
    background: rgba(168, 85, 247, 0.5);
}
