/* ==========================================================================
   FAXAS CIGARS - Advanced Slider Animations
   ========================================================================== */

/* --------------------------------------------------------------------------
   Layer Entry Animations
   -------------------------------------------------------------------------- */

/* Fade Animations */
@keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInUp {
    from { opacity: 0; transform: translate(-50%, -50%) translateY(40px); }
    to { opacity: 1; transform: translate(-50%, -50%) translateY(0); }
}

@keyframes fadeInDown {
    from { opacity: 0; transform: translate(-50%, -50%) translateY(-40px); }
    to { opacity: 1; transform: translate(-50%, -50%) translateY(0); }
}

@keyframes fadeInLeft {
    from { opacity: 0; transform: translate(-50%, -50%) translateX(-40px); }
    to { opacity: 1; transform: translate(-50%, -50%) translateX(0); }
}

@keyframes fadeInRight {
    from { opacity: 0; transform: translate(-50%, -50%) translateX(40px); }
    to { opacity: 1; transform: translate(-50%, -50%) translateX(0); }
}

/* Zoom Animations */
@keyframes zoomIn {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes zoomInUp {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.5) translateY(40px); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1) translateY(0); }
}

@keyframes zoomInDown {
    from { opacity: 0; transform: translate(-50%, -50%) scale(0.5) translateY(-40px); }
    to { opacity: 1; transform: translate(-50%, -50%) scale(1) translateY(0); }
}

/* Slide Animations */
@keyframes slideInUp {
    from { transform: translate(-50%, -50%) translateY(100%); }
    to { transform: translate(-50%, -50%) translateY(0); }
}

@keyframes slideInDown {
    from { transform: translate(-50%, -50%) translateY(-100%); }
    to { transform: translate(-50%, -50%) translateY(0); }
}

@keyframes slideInLeft {
    from { transform: translate(-50%, -50%) translateX(-100%); }
    to { transform: translate(-50%, -50%) translateX(0); }
}

@keyframes slideInRight {
    from { transform: translate(-50%, -50%) translateX(100%); }
    to { transform: translate(-50%, -50%) translateX(0); }
}

/* Bounce Animations */
@keyframes bounceIn {
    0% { opacity: 0; transform: translate(-50%, -50%) scale(0.3); }
    50% { transform: translate(-50%, -50%) scale(1.05); }
    70% { transform: translate(-50%, -50%) scale(0.9); }
    100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}

@keyframes bounceInUp {
    0% { opacity: 0; transform: translate(-50%, -50%) translateY(40px); }
    60% { opacity: 1; transform: translate(-50%, -50%) translateY(-10px); }
    80% { transform: translate(-50%, -50%) translateY(5px); }
    100% { transform: translate(-50%, -50%) translateY(0); }
}

@keyframes bounceInDown {
    0% { opacity: 0; transform: translate(-50%, -50%) translateY(-40px); }
    60% { opacity: 1; transform: translate(-50%, -50%) translateY(10px); }
    80% { transform: translate(-50%, -50%) translateY(-5px); }
    100% { transform: translate(-50%, -50%) translateY(0); }
}

/* Rotate Animations */
@keyframes rotateIn {
    from { opacity: 0; transform: translate(-50%, -50%) rotate(-180deg); }
    to { opacity: 1; transform: translate(-50%, -50%) rotate(0); }
}

@keyframes flipInX {
    from { opacity: 0; transform: translate(-50%, -50%) perspective(400px) rotateX(90deg); }
    to { opacity: 1; transform: translate(-50%, -50%) perspective(400px) rotateX(0); }
}

@keyframes flipInY {
    from { opacity: 0; transform: translate(-50%, -50%) perspective(400px) rotateY(90deg); }
    to { opacity: 1; transform: translate(-50%, -50%) perspective(400px) rotateY(0); }
}

/* --------------------------------------------------------------------------
   Background Animations
   -------------------------------------------------------------------------- */

/* Ken Burns Effect */
@keyframes kenBurnsZoomIn {
    from { transform: scale(1); }
    to { transform: scale(1.15); }
}

@keyframes kenBurnsZoomOut {
    from { transform: scale(1.15); }
    to { transform: scale(1); }
}

@keyframes kenBurnsPanLeft {
    from { transform: scale(1.1) translateX(5%); }
    to { transform: scale(1.1) translateX(-5%); }
}

@keyframes kenBurnsPanRight {
    from { transform: scale(1.1) translateX(-5%); }
    to { transform: scale(1.1) translateX(5%); }
}

.slide-bg-ken-burns img {
    animation: kenBurnsZoomIn 8s ease-out forwards;
}

.slide-bg-ken-burns-out img {
    animation: kenBurnsZoomOut 8s ease-out forwards;
}

.slide-bg-zoom img {
    animation: kenBurnsZoomIn 6s ease-out forwards;
}

.slide-bg-parallax {
    transform: translateZ(0);
}

/* --------------------------------------------------------------------------
   Slider Container Styles
   -------------------------------------------------------------------------- */

.faxas-slider {
    position: relative;
    width: 100%;
    /* Default height - overridden by .faxas-slider-dynamic inline styles */
    height: 400px;
    overflow: hidden;
}

@media (min-width: 768px) {
    .faxas-slider {
        height: 500px;
    }
}

@media (min-width: 1024px) {
    .faxas-slider {
        height: 600px;
    }
}

/* Dynamic height class takes priority */
.faxas-slider.faxas-slider-dynamic {
    /* Heights set via inline <style> tag from database values */
}

.faxas-slider .swiper {
    width: 100%;
    height: 100%;
}

.faxas-slider .swiper-slide {
    position: relative;
    overflow: hidden;
}

/* Background Image */
.slide-background {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.slide-background img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* Overlay */
.slide-overlay {
    position: absolute;
    inset: 0;
}

/* Layers Container */
.slide-layers {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.slide-layer {
    position: absolute;
    opacity: 0;
    pointer-events: auto;
}

.slide-layer.animated {
    opacity: 1;
}

/* --------------------------------------------------------------------------
   Swiper Navigation & Pagination Customization
   -------------------------------------------------------------------------- */

.faxas-slider .swiper-button-next,
.faxas-slider .swiper-button-prev {
    color: white;
    opacity: 0.7;
    transition: opacity 0.3s ease;
}

.faxas-slider .swiper-button-next:hover,
.faxas-slider .swiper-button-prev:hover {
    opacity: 1;
}

.faxas-slider .swiper-button-next::after,
.faxas-slider .swiper-button-prev::after {
    font-size: 24px;
}

.faxas-slider .swiper-pagination-bullet {
    background: white;
    opacity: 0.5;
    width: 12px;
    height: 12px;
}

.faxas-slider .swiper-pagination-bullet-active {
    opacity: 1;
    background: #d97706; /* amber-600 */
}

/* --------------------------------------------------------------------------
   Layer Exit Animations (for transitions)
   -------------------------------------------------------------------------- */

@keyframes fadeOut {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes fadeOutUp {
    from { opacity: 1; transform: translate(-50%, -50%) translateY(0); }
    to { opacity: 0; transform: translate(-50%, -50%) translateY(-40px); }
}

@keyframes fadeOutDown {
    from { opacity: 1; transform: translate(-50%, -50%) translateY(0); }
    to { opacity: 0; transform: translate(-50%, -50%) translateY(40px); }
}

@keyframes zoomOut {
    from { opacity: 1; transform: translate(-50%, -50%) scale(1); }
    to { opacity: 0; transform: translate(-50%, -50%) scale(0.5); }
}

/* --------------------------------------------------------------------------
   Parallax Scroll Effect Styles
   -------------------------------------------------------------------------- */

/* Enable hardware acceleration for parallax */
.faxas-slider[data-parallax="true"] {
    will-change: opacity;
    transform: translateZ(0);
}

.faxas-slider[data-parallax="true"] .slide-background {
    /* Extend background for parallax movement */
    top: -10%;
    height: 120%;
    will-change: transform;
}

.faxas-slider[data-parallax="true"] .slide-background img {
    will-change: transform;
    transform: scale(1.2);
    transition: none;
}

.faxas-slider[data-parallax="true"] .slide-layer {
    will-change: transform;
    transition: none;
}

/* Smooth fade transition for parallax fade effect */
.faxas-slider[data-parallax-fade="true"] {
    transition: opacity 0.1s ease-out;
}
