.text-banner {
    position: relative;
    overflow: hidden;
    background-color: var(--black);
    padding-top: var(--header-height-initial, 0)
}

.text-banner::before {
    content: "";
    position: absolute;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    background: rgba(22, 53, 77, .9)
}

.text-banner__bg {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
    object-fit: cover;
    position: absolute;
    top: 0;
    left: 0
}

.text-banner__main {
    position: relative;
    z-index: 2;
    padding: 40px 0 20px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse
}

.text-banner__breadcrumbs {
    margin-top: 20px
}

@media (min-width: 1200px) {
    .text-banner::before {
        background: rgba(22, 53, 77, .75)
    }

    .text-banner__main {
        padding: 80px 0;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column
    }

    .text-banner__breadcrumbs {
        margin-top: 0;
        margin-bottom: 40px
    }
}

@media (max-width: 1199.98px) {
    .text-banner__breadcrumbs .breadcrumbs__list a {
        color: var(--primary);
        font-size: 10px;
        line-height: 1.6em;
    }

    .text-banner__breadcrumbs .breadcrumbs__list-link.is-active {
        color: var(--primary-active);
        font-size: 10px;
        line-height: 1.6em;
    }

    .text-banner__breadcrumbs .breadcrumbs__list-icon {
        color: var(--primary);
        margin: 0 2px;
    }
}

.text-banner__wrapper {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-orient: vertical;
    -webkit-box-direction: reverse;
    -ms-flex-direction: column-reverse;
    flex-direction: column-reverse;
    gap: 20px 16px
}

@media (min-width: 1034px) {
    .text-banner__wrapper {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start
    }
}

.text-banner__content {
    width: 100%;
    max-width: 1209px
}

.text-banner--v2 .text-banner__content {
    max-width: max-content;
    text-align: center;
}

.text-banner__title {
    color: var(--white)
}

.text-banner__description {
    margin-top: 20px;
    color: var(--white);
    line-height: var(--lh-default);
    width: 100%;
    max-width: 660px
}

@media (min-width: 1200px) {
    .text-banner__description {
        margin-top: 25.5px;
        line-height: var(--lh-sm)
    }
}

.text-banner__description--fw {
    max-width: 100%
}

.text-banner__btns {
    margin-top: 14px;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 20px 40px
}

@media (min-width: 1200px) {
    .text-banner__btns {
        margin-top: 40px;
        -webkit-box-pack: start;
        -ms-flex-pack: start;
        justify-content: flex-start
    }

    .text-banner--v2 .text-banner__btns {
        justify-content: center;
    }
}

.text-banner__btn {
    width: 100%;
    max-width: 300px;
    -webkit-box-flex: 0;
    -ms-flex: none;
    flex: none
}

@media (min-width: 1200px) {
    .text-banner__btn {
        -webkit-box-flex: initial;
        -ms-flex: initial;
        flex: initial;
        padding-left: 23px;
        width: auto;
        max-width: 100%
    }

    .text-banner__btn.btn--primary {
        width: 100%;
        max-width: 300px
    }
}

.text-banner__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: contain;
    object-fit: contain
}

.text-banner__image-col {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1;
    width: 100%;
    max-width: 223px;
    margin: 0 auto
}

@media (min-width: 1034px) {
    .text-banner__image-col {
        max-width: 784px;
        margin: 0
    }
}

.text-banner__image-wrapper {
    position: relative;
    padding-bottom: 41.072%
}

.text-banner__cards {
    margin-top: 20px;
    max-width: 1209px;
    width: 100%;
    padding: 0 19px;
}

.text-banner__cards-grid {
    display: -ms-grid;
    display: grid;
    -ms-grid-columns:(1fr) [ 1 ];
    grid-template-columns:repeat(1, 1fr);
    gap: 8px
}

.text-banner__main .container {
    position: relative;
    z-index: 3;
}

@media (min-width: 760px) {
    .text-banner__cards-grid {
        -ms-grid-columns:(1fr) [ 2 ];
        grid-template-columns:repeat(2, 1fr)
    }
}

@media (min-width: 1200px) {
    .text-banner__cards {
        margin-top: 40px;
        padding: 0
    }

    .text-banner__cards-grid {
        -ms-grid-columns:(1fr) [ 4 ];
        grid-template-columns:repeat(4, 1fr);
        gap: 20px
    }
}

.text-banner__card {
    border-radius: 20px;
    border: 1px solid var(--primary);
    padding: 11px 19px;
    position: relative;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    text-align: center;
    overflow: hidden;
    cursor: default
}

.text-banner__card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    background: radial-gradient(286.71% 91.64% at 12% 20%, rgba(111, 181, 241, .18) 0, rgba(111, 181, 241, 0) 28%), radial-gradient(286.71% 91.64% at 88% 80%, rgba(111, 181, 241, .12) 0, rgba(111, 181, 241, 0) 28%), linear-gradient(98deg, rgba(255, 255, 255, .04) 0, rgba(255, 255, 255, .04) .05%, rgba(255, 255, 255, 0) .05%, rgba(255, 255, 255, 0) 2.8%)
}

.text-banner__card-image-wrapper {
    position: relative;
    z-index: 1;
    width: 28px;
    height: 28px;
    margin: 0 auto
}

.text-banner__card-name {
    position: relative;
    z-index: 1;
    color: var(--white);
    font-size: var(--text-size-14);
    font-weight: var(--fw-bold);
    line-height: var(--lh-default)
}

@media (min-width: 1200px) {
    .text-banner__card {
        min-height: 170px;
        padding: 47px 11px 28px
    }

    .text-banner__card:hover .text-banner__card-name {
        -webkit-transform: translateY(-90px);
        -ms-transform: translateY(-90px);
        transform: translateY(-90px)
    }

    .text-banner__card:hover .text-banner__card-text {
        opacity: 1;
        visibility: visible;
        -webkit-transform: translateY(-78px);
        -ms-transform: translateY(-78px);
        transform: translateY(-78px)
    }

    .text-banner__card-image-wrapper {
        width: 47px;
        height: 47px
    }

    .text-banner__card-name {
        font-size: var(--text-size);
        line-height: 1.2;
        min-height: 2.4em;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: center;
        -ms-flex-pack: center;
        justify-content: center;
        -webkit-transition: -webkit-transform var(--transition);
        transition: -webkit-transform var(--transition);
        transition: transform var(--transition);
        transition: transform var(--transition), -webkit-transform var(--transition)
    }

    .text-banner__card-name-item {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis
    }
}

.text-banner__card-text {
    color: var(--white);
    font-size: var(--text-size-12);
    font-weight: var(--fw-normal);
    line-height: var(--lh-default);
    margin-top: 8px
}

@media (min-width: 1200px) {
    .text-banner__card-text {
        font-size: var(--text-size-14);
        line-height: 1.2;
        display: -webkit-box;
        -webkit-line-clamp: 4;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        opacity: 0;
        visibility: hidden;
        padding: 0 20px;
        -webkit-transition: opacity var(--transition), visibility var(--transition), -webkit-transform var(--transition);
        transition: opacity var(--transition), visibility var(--transition), -webkit-transform var(--transition);
        transition: transform var(--transition), opacity var(--transition), visibility var(--transition);
        transition: transform var(--transition), opacity var(--transition), visibility var(--transition), -webkit-transform var(--transition)
    }
}

.text-banner__cards-count {
    display: flex;
    justify-content: center;
    gap: 94px;
    margin-top: 40px;
    max-width: 100%;
}

.text-banner__card-count {
    padding: 32px 0;
    min-width: 288px;
    max-width: 288px;
}

.text-banner__card-title {
    font-size: var(--text-size-64);
    font-weight: 400;
    letter-spacing: 0.02em;
    color: var(--white);
    line-height: 0.63em;
}

.text-banner__card-title span {
    font-size: var(--text-size-48);
}

.text-banner__card-count p {
    margin-top: 28px;
    margin-bottom: 0;
    font-size: var(--text-size-20);
    line-height: var(--lh-sm);
    letter-spacing: 0;
    color: var(--white);
}

@media (max-width: 1199px) {
    .text-banner--v2 .text-banner__btns {
        display: none;
    }

    .text-banner--v2 .text-banner__content {
        text-align: left;
    }

    .text-banner__card-title,
    .text-banner__card-title span {
        font-size: var(--text-size-32);
        line-height: 1;
    }

    .text-banner__card-count p {
        margin-top: 0;
        font-size: var(--text-size-12);
        line-height: 1;
    }

    .text-banner__card-count {
        padding: 20px 0;
    }

    .text-banner__cards-count {
        flex-direction: column;
        align-items: center;
        gap: 12px;
        margin-top: 20px;
    }
}

.text-banner__main::before {
    content: "";
    position: absolute;
    width: clamp(185px, 35vw, 615px);
    height: 100%;
    background: #437EAF8C;
    transform: skewX(-10deg);
    bottom: 0;
    left: 60vw;
    z-index: 2;
}

.text-banner__main::after {
    content: "";
    position: absolute;
    width: clamp(52px, 13vw, 350px);
    height: 100%;
    background: #31618861;
    transform: skewX(-10deg);
    bottom: 0;
    left: 47vw;
    z-index: 1;
}

@media (min-width: 1200px) {
    .text-banner__main::before {
        width: clamp(185px, 35vw, 615px);
        height: calc(100% - 100px);
    }

    .text-banner__main::after {
        width: clamp(52px, 20vw, 350px);
        height: 100%;
        left: 52vw;
    }
}