.tb-banner {
    position: fixed;
    top: var(--tb-menu-height);
    left: 50%;
    width: 100%;
    transform: translateX(-50%);
    max-width: var(--tb-breakpoint-large);
    z-index: -1;
    aspect-ratio: var(--tb-banner-aspect-ratio);
    transition: top var(--tb-transition-duration-medium);
}

.tb-banner .swiper {
    width: 100%;
    height: 100%;
}

.tb-banner .swiper-slide {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: var(--tb-spacing-100) var(--tb-spacing-60);
}

.tb-banner .tb-banner-img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

.tb-banner .tb-banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 50%;
    mix-blend-mode: multiply;
    z-index: -1;
    background-color: var(--tb-color-black);
}

.tb-banner .tb-banner-overlay.tb-theme-yellow {
    background-color: var(--tb-color-yellow-700);
}

.tb-banner .tb-banner-overlay.tb-theme-blue {
    background-color: var(--tb-color-blue-700);
}

.tb-banner .tb-banner-content {
    width: 100%;
    height: 100%;
    max-width: var(--tb-breakpoint-medium);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 30px;
}

.tb-banner .tb-text-title-large {
    color: var(--tb-color-white);
}

.tb-banner .tb-text-subtitle-large {
    color: var(--tb-color-white);
}

.tb-banner .tb-banner-cta-container {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--tb-spacing-10) var(--tb-spacing-20);
}

.tb-banner .swiper-pagination {
    bottom: var(--tb-spacing-40);
}

.tb-banner .swiper-pagination-bullet {
    border: 1px solid var(--tb-color-white);
}

@media (max-width: 1024px) {
    .tb-banner .swiper-slide {
        padding: var(--tb-spacing-50);
    }
}

@media (max-width: 768px) {
    .tb-banner .swiper-pagination {
        top: var(--tb-spacing-30);
        bottom: unset;
    }

    .tb-banner .tb-banner-content {
        justify-content: flex-end;
        align-items: center;
        text-align: center;
        gap: 25px;
    }
}

@media (max-width: 500px) {
    .tb-banner .swiper-pagination {
        top: var(--tb-spacing-20);
    }

    .tb-banner .swiper-slide {
        padding: var(--tb-spacing-40) var(--tb-spacing-20);
    }

    .tb-banner .tb-banner-content {
        gap: var(--tb-spacing-20);
    }
}
