.layout-banner-section {
    padding-top: 80px;
    padding-bottom: 80px;
}

.layout-banner-image {
    flex: 0 1 626px;
    max-width: 626px;
    width: 100%;
}

.layout-info-wrapper {
    flex: 1 1 50%;
    min-width: 300px;
    align-content: flex-end;
}

.layout-banner-content {
    gap: 20px;
}

.layout-banner-cards {
    overflow: hidden;
    margin-right: calc(-50vw + 60% - var(--bs-gutter-x, 0.75rem));
    padding-right: var(--bs-gutter-x, 0.75rem);
}

.layout-card {
    display: flex;
    padding: 24px;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    min-width: 312px;
    max-width: 410px;
    flex-shrink: 0;
}

.layout-card.has-image {
    padding: 0;
    max-width: 248px;
    min-width: min-content;
    gap: 0;

    .layout-card-title {
        font-size: 20px;
        line-height: 24px;
        padding-inline: 20px;
        padding-top: 20px;
    }

    .layout-card-text {
        padding-inline: 20px;
    }
}

.layout-card.numbers-variation {
    max-width: 411px;
    .layout-card-title {
        color: var(--bs-black);
        font-family: "DM Sans";
        font-size: 28px;
        font-style: normal;
        font-weight: 800;
        line-height: 32px;
        text-transform: uppercase;
    }
}

.layout-card-text ul {
    margin-left: 0;
    list-style: none;
    padding-left: 0;
}

.layout-card-text li {
    position: relative;
    padding-left: 20px;
}

.layout-card-text li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 6px;
    width: 8px;
    height: 8px;
    background-repeat: no-repeat;
    background-size: contain;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8' fill='none'%3E%3Cpath d='M6.29738 3.64457C6.14189 3.72732 5.99028 3.79878 5.84257 3.85896C5.69485 3.91914 5.54325 3.96427 5.38776 3.99436C5.69874 4.05454 6.00194 4.17489 6.29738 4.35543L8 5.3371L7.16035 6.67983L5.45773 5.69817C5.14674 5.53268 4.89796 5.35214 4.71137 5.15656C4.80467 5.42736 4.85131 5.71697 4.85131 6.02539V8H3.14869V6.04796C3.14869 5.88999 3.15646 5.73578 3.17201 5.58533C3.19534 5.43489 3.23032 5.29196 3.27697 5.15656C3.1759 5.26187 3.06317 5.35966 2.93878 5.44993C2.81438 5.53267 2.68222 5.61542 2.54227 5.69817L0.83965 6.65726L0 5.31453L1.70262 4.35543C2.00583 4.18242 2.30515 4.06206 2.60058 3.99436C2.45287 3.97179 2.30126 3.93042 2.14577 3.87024C1.99806 3.80254 1.85034 3.72732 1.70262 3.64457L0 2.6629L0.83965 1.30888L2.54227 2.30183C2.85326 2.46732 3.10204 2.64786 3.28863 2.84344C3.19534 2.57264 3.14869 2.28303 3.14869 1.97461V0H4.85131V1.95204C4.85131 2.11001 4.83965 2.26422 4.81633 2.41467C4.80078 2.56511 4.76968 2.70804 4.72303 2.84344C4.8241 2.73813 4.93683 2.6441 5.06122 2.56135C5.18562 2.47109 5.31778 2.38458 5.45773 2.30183L7.16035 1.33145L8 2.68547L6.29738 3.64457Z' fill='%23ABABAB'/%3E%3C/svg%3E");
}

.layout-banner-cards-track {
    display: flex;
    gap: 8px;
    transition: transform 0.3s ease-in-out;
}

/* Carousel Navigation Arrows */
.carousel-arrow {
    transform: translateY(-50%);
    background: #FFFFFF;
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s ease;
}

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


.carousel-arrow.prev {
    left: -20px;
}

.carousel-arrow.prev svg {
    transform: rotate(180deg);
}


.carousel-arrow svg {
    width: 20px;
    height: 20px;
}

/* Carousel Indicators */
.carousel-indicators {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 24px;
    position: relative;
}

.carousel-indicator {
    width: 40px;
    height: 4px;
    background: var(--bs-neutral);
    border: none;
    cursor: pointer;
    transition: background 0.3s ease;
    padding: 0;
    border-radius: 2px;
}

.carousel-indicator.active {
    background: var(--bs-black);
}

.carousel-indicator:hover {
    background: var(--bs-black);
}

.full-width {
    width: 100%;
}

.half {
    width: 50%;
}

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

    .half {
        width: 100%;
    }
}


.layout-banner-variation {
    background-color: var(--bs-accent-500);
    min-width: 626px;
    width: 626px;
    min-height: 312px;
    height: 312px;
    position: relative;
}

.variation-wrapper {
    padding-bottom: 32px;
    padding-left: 32px;
    justify-content: flex-end;
    width: 50%;
}

.variation-image {
    display: flex;
    justify-content: flex-end;
    min-width: 265px;
    position: absolute;
    right: 0;
    bottom: 0;
}

.variation-cta {
    text-decoration: none;
    background-color: var(--bs-secondary-500);
    padding: 12px 32px;
    color: var(--bs-white);
    text-transform: uppercase;
    text-decoration: none;
}

.variation-cta a {
    color: var(--bs-white);
    text-decoration: none !important;
}

.layout-banner-mobile-variation {
    background-color: var(--bs-accent-500);
    height: 256px;
    margin-top: 24px;
}

.variation-mobile-image {
    width: 50%;
    display: flex;
    justify-content: end;
    align-items: flex-end;
}

.variation-mobile-image img {
    max-height: 202px;
}

.arrow-nav {
    top: 40%;
}

.carousel-arrow {
    background-color: var(--bs-main-500);
}

/* Variations of Cards */
.normal-variant {
    
}

.dynamic-variant {
    max-width: 303px !important;

    .layout-card-title {
        font-size: 28px;
        line-height: 32px;
    }
}

/* Corrige overflow-x del swiper en mobile */
.layout-banner-cards-wrapper.swiper {
    overflow: hidden; /* evita scroll horizontal externo */
    width: 100%;
}

.layout-banner-cards-wrapper .swiper-wrapper {
    box-sizing: border-box;
    padding-right: 1px; /* evita pixel gap */
}

.layout-banner-cards-wrapper .swiper-slide .numbers-variation {
    flex-shrink: 0;
    width: auto; /* necesario para freeMode */
    max-width: 411px; /* evita que una slide se salga del viewport */
}


/* SWIPER **/
.layout-banner-cards-wrapper {
    .layout-card {
        height: -webkit-fill-available;
    }

    .dynamic-variant {
        min-width: 411px;
        width: 411px;
        margin-right: 32px !important;
    }

    .swiper-pagination {
        position: initial;
        display: flex;
        gap: 8px;
        justify-content: center;
        padding-top: 16px;
        padding-right: 24px;
    }
    
    .swiper-pagination-bullet {
        height: 3px;
        border-radius: 0;
        margin: 0 !important;
        width: 62px
    }
    
    .swiper-pagination-bullet {
        background: var(--bs-lighter);
        opacity: 1;
    }

    .swiper-pagination-bullet-active {
        background: var(--bs-black);
    }

    .swiper-button-next, .swiper-button-prev {
        border-radius: 40px;
        background: var(--bs-main-500);
    }

    .swiper-button-next,
    .swiper-button-prev {
        background: none !important;
        width: 40px;
        height: 40px;
    }

    /* Arrow Right */
    .swiper-button-next::after {
        content: "";
        display: block;
        width: 40px;
        height: 40px;
        background-color: var(--bs-main-500) !important;
        border-radius: 40px;
        background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'><path d='M7.97951 1.76087L15.5615 9.34286C15.7368 9.51819 15.833 9.75168 15.833 10.0062C15.833 10.2606 15.7368 10.4893 15.5615 10.6644L7.98689 18.2393C7.81156 18.4146 7.57779 18.511 7.32841 18.511C7.07904 18.511 6.84526 18.4146 6.66993 18.2393L6.11217 17.6815C5.93684 17.5062 5.8401 17.2724 5.8401 17.023C5.8401 16.7736 5.93684 16.5399 6.11217 16.3645L12.4731 10.0036L6.1048 3.63587C5.92975 3.46054 5.83301 3.22706 5.83301 2.9774C5.83301 2.72774 5.92947 2.49453 6.1048 2.3192L6.66284 1.76116C7.02598 1.3983 7.61666 1.3983 7.97951 1.76116V1.76087Z' fill='%2307080D'/></svg>") no-repeat center center;
    }

    /* Arrow Left */
    .swiper-button-prev::after {
        content: "";
        display: block;
        width: 40px;
        height: 40px;
        border-radius: 40px;
        background-color: var(--bs-main-500) !important;
        background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none' style='transform: rotate(180deg);'><path d='M7.97951 1.76087L15.5615 9.34286C15.7368 9.51819 15.833 9.75168 15.833 10.0062C15.833 10.2606 15.7368 10.4893 15.5615 10.6644L7.98689 18.2393C7.81156 18.4146 7.57779 18.511 7.32841 18.511C7.07904 18.511 6.84526 18.4146 6.66993 18.2393L6.11217 17.6815C5.93684 17.5062 5.8401 17.2724 5.8401 17.023C5.8401 16.7736 5.93684 16.5399 6.11217 16.3645L12.4731 10.0036L6.1048 3.63587C5.92975 3.46054 5.83301 3.22706 5.83301 2.9774C5.83301 2.72774 5.92947 2.49453 6.1048 2.3192L6.66284 1.76116C7.02598 1.3983 7.61666 1.3983 7.97951 1.76116V1.76087Z' fill='%2307080D'/></svg>") no-repeat center center;
    }

}



@media (max-width: 992px) {
    /* SWIPER MOBILE */
    .layout-banner-inner {
        padding-inline: 0;
    }

    .layout-banner-inner > *:not(.layout-banner-cards-wrapper) {
        padding-inline: 24px;
    }
    .layout-banner-cards-wrapper.swiper {
        padding-inline: 24px;
    }

    .swiper-button-next, .swiper-button-prev {
        display: none;
    }

    .swiper-pagination{
        justify-content: space-between;
        padding-top: 8px;
    }

    .layout-banner-inner {
        padding-bottom: 40px;
    }

    .dynamic-variant {
        min-width: 327px !important;
        width: 327px !important;
        max-width: 327px !important;
    }

    .layout-banner-cards-wrapper {
        .dynamic-variant {
            margin-right: 8px !important;
        }
    }

    /* END SWIPER MOBILE */ 

    .variation-wrapper {
        padding-bottom: 24px;
        padding-left: 24px;
        width: fit-content;
    }

    .variation-cta {
        width: fit-content;
        max-width: 192px;
    }

    .variation-icon {
        margin-bottom: 16px !important;
    }

    .variation-description {
        margin-bottom: 16px !important;
    }
}

@media (max-width: 576px) {

   .layout-card.numbers-variation {
        max-width: 327px;
   }

   .layout-banner-section {
        padding-top: 40px;
        padding-bottom: 0;
   }

   .layout-card.numbers-variation {
        gap: 0;
   }

   .numbers-variation {
        .layout-card-icon img {
            width: 26px;
            height: 28px;
            object-fit: contain;
        }

        .layout-card-title {
            font-size: 18px !important;
            line-height: 20px !important;
            margin-bottom: 16px;
        }

        .layout-card-text {
            font-size: 14px !important;
            line-height: 20px !important;
        }
   }

   .dynamic-variant {
        min-width: 100% !important;
        max-width: none !important;
   }

   .layout-card {
        height: initial !important; 
    }
}


