/* Conteneur et Slider */
.sw-main-container { 
    border-radius: 20px; 
    overflow: hidden; 
    color: #fff; 
    font-family: 'Montserrat', sans-serif; 
    background: #061121;
}

.sw-pro-slider { 
    width: 100%; 
    display: flex; 
}
.swiper-slide {
    display: flex;
    align-items: stretch;
}

/* Disposition Interne (Flexbox strict) */
.sw-slide-inner {
    display: flex; 
    align-items: center; 
    justify-content: space-between;
    width: 100%; 
    box-sizing: border-box;
    padding: 60px; /* Surpassable via Elementor (slide_padding) */
}

/* Ordre Flexbox : Inverse le sens selon le choix */
.sw-align-left { flex-direction: row; text-align: left; }
.sw-align-right { flex-direction: row-reverse; text-align: right; }

.sw-col-content, .sw-col-image { 
    width: 48%; 
    z-index: 5; 
    display: flex; 
    flex-direction: column; 
}

/* Alignement strict du texte */
.sw-align-left .sw-col-content { align-items: flex-start; }
.sw-align-right .sw-col-content { align-items: flex-end; }

/* L'image est un conteneur flex horizontal pour pouvoir la justifier via Elementor (img_align) */
.sw-col-image {
    flex-direction: row;
    align-items: center;
}

/* Typographie & Bouton */
.sw-title { font-size: 3rem; font-weight: 900; line-height: 1.1; margin-bottom: 15px; }
.sw-subtitle { color: #ffc107; font-size: 1.6rem; margin-bottom: 25px; font-weight: 700;}

.sw-btn {
    background: #ffc107; 
    color: #000; 
    padding: 15px 35px;
    border-radius: 50px; 
    font-weight: bold; 
    text-decoration: none;
    transition: 0.3s ease;
    display: inline-block;
}
.sw-btn:hover { background: #ffca28; transform: translateY(-3px); box-shadow: 0 5px 15px rgba(255, 193, 7, 0.3); }

/* ---- L'IMAGE & LES MASQUES CSS ---- */
.sw-product-img { 
    height: auto; 
    max-width: 100%;
    object-fit: contain;
    transition: all 0.3s ease;
}

.sw-mask-left {
    -webkit-mask-image: linear-gradient(to right, transparent 0%, black 30%);
    mask-image: linear-gradient(to right, transparent 0%, black 30%);
}
.sw-mask-right {
    -webkit-mask-image: linear-gradient(to left, transparent 0%, black 30%);
    mask-image: linear-gradient(to left, transparent 0%, black 30%);
}
.sw-mask-bottom {
    -webkit-mask-image: linear-gradient(to top, transparent 0%, black 30%);
    mask-image: linear-gradient(to top, transparent 0%, black 30%);
}
.sw-mask-radial {
    -webkit-mask-image: radial-gradient(circle, black 50%, transparent 100%);
    mask-image: radial-gradient(circle, black 50%, transparent 100%);
}

/* UI Swiper */
.swiper-button-next, .swiper-button-prev { color: rgba(255,255,255,0.6) !important; transform: scale(0.6); }
.swiper-pagination-bullet { background: #fff !important; }
.swiper-pagination-bullet-active { background: #ffc107 !important; }

/* Barre du bas */
.sw-bottom-bar { 
    background: rgba(0,0,0,0.4); 
    padding: 20px 40px; 
    display: flex; 
    justify-content: space-between; 
    border-top: 1px solid rgba(255,255,255,0.05); 
}
.sw-info { display: flex; align-items: center; gap: 10px; font-size: 0.95rem; }
.sw-info i { color: #ffc107; font-size: 1.3rem;}


/* =========================================
   RESPONSIVITÉ STRICTE (Tablette & Mobile)
   ========================================= */

@media (max-width: 992px) {
    .sw-slide-inner { padding: 40px; }
    .sw-title { font-size: 2.4rem; }
    .sw-subtitle { font-size: 1.3rem; }
}

@media (max-width: 768px) {
    /* Sur mobile, on casse l'ordre d'affichage (Texte en haut, Image en bas) */
    .sw-slide-inner { 
        flex-direction: column !important; 
        text-align: center !important; 
        padding: 40px 20px; 
    }
    
    /* Les colonnes prennent 100% de la largeur */
    .sw-col-content, .sw-col-image { 
        width: 100%; 
        align-items: center !important; 
        justify-content: center !important; 
    }
    
    .sw-col-content { margin-bottom: 40px; }
    .sw-title { font-size: 2rem; margin-bottom: 10px; }
    
    /* La barre du bas passe en colonne */
    .sw-bottom-bar { 
        flex-direction: column; 
        gap: 15px; 
        align-items: center; 
        text-align: center;
        padding: 20px;
    }
}