/********* SLIDER *********/
.du-slider {
    --cols: 6;
    --gap: var(--du-spacing-2xl);
    --offset: 0px;
    --item-width: calc(
        calc(calc(100% - calc(calc(var(--cols) - 1) * var(--gap))) / var(--cols)) - var(--offset)
    );
}

.du-slider-content {
    display: grid;
    gap: var(--du-spacing-3xl) var(--gap);
    grid-template-columns: minmax(0, 1fr);
    position: relative;
}

.du-slider__items {
    position: relative;
    display: flex;
    gap: var(--gap);
}

.du-slider__item {
    transition: all 0.5s !important;
    flex: 1 0 var(--item-width);
    padding-right: var(--gap);
    height: 100%;
    min-width: 0;
    max-width: 100%;
}
.du-slider__nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    transform: translateY(-50%);
    left: 0;
    right: 0;
    position: absolute;
    top: 50%;

    .du-next {
        transform: translateX(50%);
    }
    .du-prev {
        transform: rotate(180deg) translateX(50%) !important;
    }

    .disabled {
        visibility: hidden;
    }
}

.du-slider__dot-nav {
    display: flex;
    justify-content: center;
    gap: var(--du-spacing-xs);
    margin-top: var(--du-spacing-xs);

    .du-slider__dot {
        width: 16px;
        height: 16px;
        border-radius: 50%;
        background-color: var(--du-color-black-20);
        cursor: pointer;
        transition: opacity var(--du-transition-duration);

        &.active,
        &:hover {
            background-color: var(--du-color-blue-dark);
        }
    }
}

@media (max-width: 992px) {
    .du-slider {
        --cols: 4;
        --gap: 0;
    }
}
@media (max-width: 569px) {
    .du-slider {
        --cols: 2;
    }
}

/***** SUBTITLE SHAPE *****/
.du-subtitle-shape {
    display: flex;
    align-items: center;
    --bg-color: var(--du-color-secondary);
    --color: var(--du-color-primary);

    span {
        height: 26px;
        line-height: 26px;
        display: block;
        text-transform: uppercase;
        font-size: 13px;
        border-radius: 4px 0 0 4px;
        background-color: var(--bg-color);
        color: var(--color);
        font-weight: 600;
        padding-left: var(--du-spacing-xs);
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
}

/********** LIST **********/
.du-checkbox-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: var(--du-spacing-sm);
    --du-color-text: var(--du-color-blue-dark);

    .du-checkbox-list__item {
        display: flex;
        align-items: center;
        gap: var(--du-spacing-xs);

        .du-checkbox-list__item--icon {
            width: 20px;
            height: 20px;
        }

        .du-checkbox-list__item--label {
            font-size: var(--du-font-size-md);
            font-weight: 400;
            color: var(--du-color-text);

            &.strong {
                font-weight: 700;
            }
        }
    }
}

/***** SECTION HEADER *****/
.du-section-header {
    display: flex;
    flex-direction: column;
    gap: var(--du-spacing-md);
    align-items: center;
    margin: 0;
    padding: 0;
    text-align: center;

    .du-section-header__title {
        font-size: var(--du-font-size-5xl);
        font-weight: 800;
        color: var(--du-color-blue-dark);
        line-height: 112%;
        letter-spacing: -0.22px;
    }

    .du-section-header__subtitle {
        font-size: var(--du-font-size-md);
        font-weight: 400;
        color: var(--du-color-blue-dark);
        line-height: 132%;
    }

    .du-section-header__content {
        color: var(--du-color-black-80);
        font-size: 16px;
        font-weight: 400;
        line-height: 148%;
        opacity: 0.8;
    }

    @media (max-width: 569px) {
        .du-section-header__title {
            font-size: var(--du-font-size-3xl);
            letter-spacing: -0.16px;
        }

        .du-section-header__subtitle {
            font-size: var(--du-font-size-sm);
        }

        .du-section-header__content {
            width: 100%;
        }
    }

    &.du-dark {
        .du-section-header__subtitle {
            --du-color-text: var(--du-color-white-20);

            strong {
                --du-color-text: var(--du-color-white);
                font-weight: 700;
            }
        }
    }
}

/***** IMAGE WITH TEXT ****/
.du-image-with-text__container {
    .du-image-with-text {
        display: flex;
        align-items: center;
        gap: 136px;

        &.du-image-with-text__right {
            flex-direction: row-reverse;
        }

        .du-image-with-text__image {
            max-width: 100%;
            height: auto;
        }

        .du-image-with-text__text {
            max-width: 488px;
            display: flex;
            flex-direction: column;
            gap: var(--du-spacing-2xl);

            .du-image-with-text__subtitle {
                --du-color-text: var(--du-color-black-50);
                font-size: var(--du-font-size-xs);
                font-weight: 600;
                text-transform: uppercase;
                margin: 0;
                color: var(--du-color-text);
            }
            .du-image-with-text__title {
                color: var(--du-color-blue-dark);
                font-size: var(--du-font-size-4xl);
                font-weight: 800;
                line-height: 112%;
                letter-spacing: -0.18px;
            }
            .du-image-with-text__content {
                color: var(--du-color-black-80);
                font-size: var(--du-font-size-md);
                font-weight: 400;
                line-height: 148%;
                display: flex;
                flex-direction: column;
                gap: var(--du-spacing-2xl);
            }
        }
    }
    @media (max-width: 992px) {
        padding-top: 0 !important;
        .du-image-with-text {
            gap: var(--du-spacing-3xl);

            .du-image-with-text__image {
                min-width: 40%;
            }
        }
    }
    @media (max-width: 569px) {
        .du-image-with-text {
            flex-direction: column;
            gap: var(--du-spacing-2xl);

            &.du-image-with-text__right {
                flex-direction: column;
            }

            .du-image-with-text__image {
                width: 100%;
            }

            .du-image-with-text__text {
                gap: 20px;
                .du-image-with-text__title {
                    font-size: var(--du-font-size-xl) !important;
                }
                .du-image-with-text__content {
                    gap: 20px;
                }
            }
        }
    }
}

/******** CAROUSEL ********/
.du-carousel {
    .du-carousel__slides {
        display: block;
        position: relative;

        .du-carousel__slide {
            opacity: 0;
            height: 0;
            width: 0;
            transition: opacity 0.5s ease-in-out;
            overflow: hidden;

            &.active {
                height: 100%;
                width: 100%;
                opacity: 1;
            }
        }
    }

    .du-carousel__navigation {
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        width: 100%;
        position: absolute;
        bottom: 50%;
        transform: translateY(50%);
        left: 0;
        right: 0;
        margin-inline: auto;
    }
}

/********* TABS ***********/
.du-tabs {
    .du-tabs__switcher {
        --count: 1;
        --selected: 0;
        position: relative;
        display: flex;
        align-items: center;
        height: 36px;
        width: calc(132px * var(--count));
        background-color: var(--du-color-white);
        border-radius: var(--du-border-radius);
        overflow: hidden;
        justify-self: end;
        align-self: end;

        &.du-tabs__switcher--full {
            width: 100%;
            grid-column: 1/-1;
        }
        &::after {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: calc(100% / var(--count));
            height: 100%;
            z-index: 1;
            background-color: var(--du-color-blue-dark-2);
            border-radius: var(--du-border-radius);
            transform: translateX(calc(100% * var(--selected)));
            transition: all 0.3s;
        }

        .du-tabs__switcher--item {
            position: relative;
            z-index: 2;
            display: block;
            flex: 0 1 calc(100% / var(--count));
            background-color: transparent;
            color: var(--du-color-blue-dark-2) !important;
            font-size: var(--text-size-md);
            line-height: var(--text-line-md);
            font-weight: 600;
            transition: all 0.3s;

            &.active {
                color: var(--du-color-white) !important;
            }
        }
    }

    .du-tabs__content {
        grid-column: 1 / -1;

        .du-tabs__panel {
            opacity: 0;
            height: 0;
            display: flex;
            flex-direction: column;
            gap: var(--du-spacing-5xl);
            align-items: center;
            pointer-events: none;

            &.active {
                opacity: 1;
                height: auto;
                transition: opacity 0.8s ease-out;
                pointer-events: all;
            }
        }
    }

    @media (max-width: 1023px) {
        grid-template-columns: 3fr 1fr;
    }

    @media (max-width: 767px) {
        grid-template-columns: minmax(0, 1fr);
        .du-tabs__switcher {
            width: 100%;
            justify-self: start;
        }
    }
}

/****** PAGE HEADER *******/
#page-header-new .uncont {
    padding-top: 0 !important;
}

.du-page-header {
    .du-page-header__menu {
        height: 150px;
        background-color: var(--du-color-secondary);
    }

    .du-container {
        display: flex;
        flex-direction: column;
        gap: var(--du-spacing-4xl);
        padding: 72px var(--du-spacing-md);

        &.du-page-header-center {
            align-items: center;
            text-align: center;

            .du-header__main {
                align-items: center;
                text-align: center;
            }
        }

        .du-header__main {
            display: flex;
            flex-direction: column;
            gap: var(--du-spacing-2xl);

            .du-page-header__title {
                --header-color: var(--du-color-blue-dark);
                font-size: var(--du-font-size-6xl);
                font-weight: 800;
                color: var(--header-color) !important;
                font-size: 52px;
                line-height: 112%; /* 58.24px */
                letter-spacing: -0.26px;

                & > * {
                    color: var(--du-color-text) !important;
                }
            }

            .du-page-header__subtitle {
                color: var(--du-color-black-50) !important;
                font-size: var(--du-font-size-xs);
                font-weight: 600;
                line-height: 100%;
                text-transform: uppercase;
            }

            .du-page-header__description {
                color: var(--du-color-black-80) !important;
                font-size: 16px;
                font-weight: 400;
                line-height: 148%;
                opacity: 0.8;
                white-space: break-spaces;
            }
        }
    }

    @media (max-width: 992px) {
        .du-page-header__menu {
            height: 100px;
        }
    }
}

/******** BACKDROP *********/
.du-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 9999;
    display: none;

    &.active {
        display: flex;
    }
}

/******** ACCORDION ********/
.du-accordion-group {
    .du-accordion-item {
        .du-accordion-item__header {
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: var(--du-spacing-sm);
            cursor: pointer;
        }

        .du-accordion-toggle {
            flex: 0 0 var(--du-spacing-4xl);
            width: var(--du-spacing-4xl);
            height: var(--du-spacing-4xl);
            padding: var(--du-spacing-xs) !important;
            margin: 0 !important;

            .du-icon-plus {
                display: inline-block;
                width: 8px;
                height: 2px;
                background-color: var(--du-color-white);
                position: relative;

                &::after {
                    content: '';
                    position: absolute;
                    top: 50%;
                    left: 50%;
                    transform: translate(-50%, -50%) rotate(-90deg);
                    display: block;
                    width: 8px;
                    height: 2px;
                    background-color: var(--du-color-white);
                    transition: transform 0.3s ease-in-out;
                }
            }

            &:hover {
                background-color: var(--du-color-grey);
            }
        }

        .du-accordion-content {
            padding: 0;
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.3s ease-in-out, padding 0.3s ease-in-out;
        }

        &.active {
            .du-accordion-toggle {
                .du-icon-plus::after {
                    transform: translate(-50%, -50%) rotate(0deg);
                }
            }
        }
    }
}

/********** MODAL **********/
.du-modal {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--du-color-white);
    border-radius: var(--du-border-radius);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    width: 90%;
    max-width: 600px;
    padding: var(--du-spacing-4xl);
    display: flex;
    flex-direction: column;
    gap: var(--du-spacing-3xl);

    .du-modal__header {
        display: flex;
        justify-content: space-between;
        align-items: center;

        .du-modal__title {
            font-size: var(--du-font-size-4xl);
            font-weight: 700;
            color: var(--du-color-blue-dark);
        }

        .du-modal__close {
            cursor: pointer;
            font-size: var(--du-font-size-lg);
            color: var(--du-color-black-70);
        }
    }

    .du-modal__content {
        font-size: var(--du-font-size-md);
        color: var(--du-color-black-80);
        line-height: 1.5;
    }

    .du-modal__footer {
        display: flex;
        justify-content: flex-end;

        .du-btn {
            margin-left: var(--du-spacing-sm);
        }
    }
}

/**** HORIZONTAL DIVIDER ***/
.du-horizontal-divider {
    display: block;
    width: 100%;
    height: 1px;
    background-color: var(--du-color-black-10);
    margin: var(--du-spacing-lg) 0;
    position: relative;

    &.du-horizontal-divider-with-label {
        margin: calc(var(--du-spacing-lg) + 10px) 0;

        .du-horizontal-divider__label {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: var(--du-color-white);
            padding: 0 var(--du-spacing-lg);
            font-size: var(--du-font-size-md);
            color: var(--du-color-purple) !important;
            font-weight: 600;
            line-height: 132%;
            white-space: nowrap;
        }
    }

    &.du-dark {
        background-color: var(--du-color-white);
    }
}

/***** VERTICAL DIVIDER ****/
.du-vertical-divider {
    display: block;
    width: 1px;
    min-height: 100%;
    background-color: var(--du-color-black-10);
    margin: 0 var(--du-spacing-2xs);

    &.du-dark {
        background-color: var(--du-color-white);
    }
}

/******* COLORED BOX *******/
.du-colored-box {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--du-spacing-md);
    border-radius: var(--du-border-radius);
    background-color: var(--du-color-grey-dark);
    color: var(--du-color-black-90);
    font-size: var(--du-font-size-sm);
    text-align: center;

    &.du-colored-box--primary {
        background-color: var(--du-color-primary);
        color: var(--du-color-white);
    }

    &.du-colored-box--secondary {
        background-color: var(--du-color-secondary);
        color: var(--du-color-text);
    }
}
