/*
Theme Name: Softgen
Theme URI: https://wp.dynamiclayers.net/softgen
Author: DynamicLayers
Author URI: https://themeforest.net/user/dynamiclayers
Description: Softgen is a Software and Technology WordPress theme. Specially designed for Software Agency and IT Solution provider representing a software company with innovative technologies.
Version: 1.0.4
Requires at least: 5.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
Text Domain: softgen
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* Carousel Styles */
.custom-carousel .dl-carousel {
    height: 300px;
    overflow: hidden;
    margin: -10px;
}

.custom-carousel .dl-carousel .slick-list {
    padding: 10px;
}

.custom-carousel .elementor-widget-softgen-sponsor-carousel .dl-carousel {
    height: 100px;
}

.custom-carousel .carousel-preloader {
    background-color: rgba(255, 255, 255, 0.98);
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.custom-carousel .carousel-preloader .dot-flashing {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 5px;
    background-color: var(--softgen-primary-color, #4b83ff);
    color: #fff;
    animation: dotFlashing 1s infinite linear alternate;
    animation-delay: .5s;
}

.custom-carousel .carousel-preloader .dot-flashing::before, .carousel-preloader .dot-flashing::after {
    content: '';
    display: inline-block;
    position: absolute;
    top: 0;
}

.custom-carousel .carousel-preloader .dot-flashing::before {
    left: -15px;
    width: 8px;
    height: 8px;
    border-radius: 5px;
    background-color: var(--softgen-primary-color, #4b83ff);
    color: #fff;
    animation: dotFlashing 1s infinite alternate;
    animation-delay: 0s;
}

.custom-carousel .carousel-preloader .dot-flashing::after {
    left: 15px;
    width: 8px;
    height: 8px;
    border-radius: 5px;
    background-color: var(--softgen-primary-color, #4b83ff);
    color: #fff;
    animation: dotFlashing 1s infinite alternate;
    animation-delay: 1s;
}

@keyframes dotFlashing {
    0% {
        opacity: 1;
    }

    50%, 100% {
        opacity: 0.5;
    }
}

.custom-carousel .elementor-widget-softgen-sponsor-carousel .slick-initialized,
.custom-carousel .slick-initialized {
    height: auto;
}

.custom-carousel .slick-initialized .carousel-preloader {
    opacity: 0;
    visibility: hidden;
    transition: all 0.2s linear;
}

/* Carousel Controls */
.custom-carousel .slick-next.nav-hidden,
.custom-carousel .slick-prev.nav-hidden {
    display: none;
}

/* Nav */
.custom-carousel .dl-carousel-nav button {
    background-color: var(--softgen-primary-color, #4b83ff);
    padding: 0;
    width: 60px;
    height: 45px;
    border-radius: 2px;
    font-size: 20px;
    line-height: 1;
    color: #fff;
    transition: all 0.2s ease-in-out;
}

.custom-carousel .nav-centered.dl-carousel-nav button {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translate(-50%, -50%);
}

.custom-carousel .nav-centered.dl-carousel-nav button.slick-next {
    left: auto;
    right: 0;
    transform: translate(50%, -50%);
}

.custom-carousel .dl-carousel-nav button:not(.slick-disabled):hover {
    background-color: var(--softgen-secondary-color, #089fac);
}

.custom-carousel .dl-carousel-nav button.slick-disabled {
    cursor: not-allowed;
    opacity: 0.1;
}

.custom-carousel .navi-top-right .slick-slider {
    padding-top: 50px;
}

.custom-carousel .dl-carousel-nav.nav-top-right {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    column-gap: 5px;
    position: absolute;
    right: 0;
    top: 0;
}

.rtl .custom-carousel .dl-carousel-nav.nav-top-right{
    right: auto;
    left: 0;
}

/* Dots */
.custom-carousel .dl-carousel-dots {
    display: block;
    margin-top: 30px;
}

.custom-carousel .dl-carousel-dots .slick-dots {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    column-gap: 10px;
}

.custom-carousel .dl-carousel-dots .slick-dots li {
    display: block;
    width: 10px;
    height: 10px;
    cursor: pointer;
}

.custom-carousel .dl-carousel-dots .slick-dots li span {
    background-color: #bbb;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: block;
    cursor: pointer;
    transition: all 0.3s ease-in-out;

}

.custom-carousel .dl-carousel-dots .slick-dots li.slick-active span {
    background-color: var(--softgen-primary-color, #4b83ff);
    box-shadow: 0px 0px 0px 3px rgba(75, 131, 255, 0.5);
}

@media (max-width: 992px) {
    .custom-carousel .dots-none.dl-carousel-dots {
        display: none;
    }
    .custom-carousel .nav-none.dl-carousel-nav {
        display: none;
    }
}

/* Swiper Carousel Styles */
.dl-carousel {
    height: 300px; /* Chiều cao của carousel */
    overflow: hidden; /* Ẩn phần tràn */
    margin: -10px; /* Khoảng cách bên ngoài */
}

.elementor-image-carousel-wrapper {
    position: relative;
    overflow: hidden; /* Ẩn phần tràn */
}

.elementor-image-carousel .swiper-wrapper {
    display: flex; /* Sắp xếp các slide theo hàng */
}

.elementor-image-carousel .swiper-slide {
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto; /* Để tự động điều chỉnh chiều rộng */
    transition: transform 0.3s ease; /* Hiệu ứng chuyển động mượt mà */
    margin-right: 10px; /* Khoảng cách giữa các slide */
}

.elementor-image-carousel .swiper-slide:last-child {
    margin-right: 0; /* Không có khoảng cách cho slide cuối cùng */
}

.elementor-image-carousel .swiper-slide img {
    max-width: 100%; /* Đảm bảo hình ảnh không vượt quá chiều rộng của slide */
    height: auto; /* Giữ tỷ lệ khung hình */
}

.carousel-preloader {
    background-color: rgba(255, 255, 255, 0.98);
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

.carousel-preloader .dot-flashing {
    position: relative;
    width: 8px;
    height: 8px;
    border-radius: 5px;
    background-color: var(--softgen-primary-color, #4b83ff);
    color: #fff;
    animation: dotFlashing 1s infinite linear alternate;
    animation-delay: .5s;
}

.carousel-preloader .dot-flashing::before, .carousel-preloader .dot-flashing::after {
    content: '';
    display: inline-block;
    position: absolute;
    top: 0;
}

.carousel-preloader .dot-flashing::before {
    left: -15px;
    width: 8px;
    height: 8px;
    border-radius: 5px;
    background-color: var(--softgen-primary-color, #4b83ff);
    color: #fff;
    animation: dotFlashing 1s infinite alternate;
    animation-delay: 0s;
}

.carousel-preloader .dot-flashing::after {
    left: 15px;
    width: 8px;
    height: 8px;
    border-radius: 5px;
    background-color: var(--softgen-primary-color, #4b83ff);
    color: #fff;
    animation: dotFlashing 1s infinite alternate;
    animation-delay: 1s;
}

@keyframes dotFlashing {
    0% {
        opacity: 1;
    }

    50%, 100% {
        opacity: 0.5;
    }
}

/* Dots */
.dl-carousel-dots {
    display: block;
    margin-top: 30px;
}

.dl-carousel-dots .swiper-pagination {
    display: flex;
    justify-content: center;
    column-gap: 10px;
}

.dl-carousel-dots .swiper-pagination-bullet {
    background-color: #bbb; /* Màu nền cho bullet */
    opacity: 0.7; /* Độ mờ */
    transition: background 0.3s; /* Hiệu ứng chuyển động mượt mà */
}

.dl-carousel-dots .swiper-pagination-bullet-active {
    background-color: var(--softgen-primary-color, #4b83ff); /* Màu nền cho bullet đang hoạt động */
    opacity: 1; /* Độ mờ */
}

/* Navigation */
.dl-carousel-nav button {
    background-color: var(--softgen-primary-color, #4b83ff);
    padding: 0;
    width: 60px;
    height: 45px;
    border-radius: 2px;
    font-size: 20px;
    line-height: 1;
    color: #fff;
    transition: all 0.2s ease-in-out;
}

.dl-carousel-nav button:hover {
    background-color: var(--softgen-secondary-color, #089fac);
}

.dl-carousel-nav button.slick-disabled {
    cursor: not-allowed;
    opacity: 0.1;
}