/*--------------
    Cases
--------------*/
.cases
{
    .filter
    {
        margin-bottom: var(--block_padding_s);


        &.l_m
        {
            margin-bottom: var(--block_padding_l);
        }


        .row
        {
            display: flex;
            align-content: stretch;
            align-items: stretch;
            flex-wrap: wrap;
            justify-content: flex-start;
            gap: var(--inner_gap_xs);
        }


        a
        {
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: center;
            gap: var(--inner_gap_xxs);

            min-height: 37px;
            padding-inline: var(--block_padding_s);

            font-size: var(--font_size_xs);
            font-weight: 600;

            transition: .2s linear;
            text-align: center;
            text-decoration: none;

            color: currentColor;
            border: 1px solid #d1dfec;


            .icon
            {
                display: block;

                width: 4px;

                transition: color .2s linear;
                transform: translateY(1px);

                color: var(--primary_color);

                aspect-ratio: 1 / 1.5;
            }


            @media (hover: hover) and (pointer: fine)
            {
                &:hover
                {
                    color: var(--primary_color);
                    background: #e9ecef;
                }
            }


            &.active
            {
                color: var(--light_color);
                background: var(--primary_color);


                .icon
                {
                    color: currentColor;
                }
            }
        }
    }


    .swiper
    {
        overflow: visible;

        padding-bottom: var(--outside_gap_xxs);

        --spaceBetween-0: var(--inner_gap_s);
        --slidesPerView-0: auto;
        --spaceBetween-768: var(--inner_gap);
        --slidesPerView-768: 3;
        --spaceBetween-1280: var(--block_padding_s);
        --slidesPerView-1280: 4;


        &.big
        {
            --slidesPerView-1280: 3;
        }


        &:not(.swiper-initialized)
        {
            .swiper-wrapper
            {
                gap: var(--spaceBetween-1280);
            }


            .swiper-slide
            {
                width: calc(100% / var(--slidesPerView-1280) - var(--spaceBetween-1280));
            }
        }
    }


    .data
    {
        .grid_row
        {
            --gap_x: var(--block_padding_s);
            --gap_y: var(--block_padding_s);
        }
    }


    .case
    {
        display: flex;
        flex-direction: column;
        gap: var(--inner_gap);


        .image
        {
            position: relative;

            display: block;
            overflow: hidden;

            text-decoration: none;

            color: currentColor;
        }


        .thumb
        {
            display: block;

            background: var(--bg_grey);

            clip-path: var(--clip_path_corner_top_left);
            aspect-ratio: 1 / .666;


            img
            {
                transition: transform .3s linear;
            }
        }


        .logo
        {
            position: absolute;
            z-index: 3;
            bottom: -1px;
            left: 0;

            display: block;
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: flex-start;

            width: 110px;
            max-width: 100%;
            height: 60px;
            padding-block: var(--inner_gap_xs);
            padding-inline: 0 var(--inner_gap_xs);

            background: var(--bg);

            clip-path: var(--clip_path_corner_top_right_small);


            img
            {
                display: block;

                max-width: 100%;
                max-height: 100%;
            }
        }


        .info
        {
            display: flex;
            flex-direction: column;
            gap: var(--inner_gap_xs);
        }


        .categories
        {
            display: flex;
            align-content: flex-start;
            align-items: flex-start;
            flex-wrap: wrap;
            justify-content: flex-start;
            gap: var(--inner_gap_xs);

            margin-bottom: var(--inner_gap_xxs);

            font-size: var(--font_size_xs);
            font-weight: 600;
            line-height: 141.667%;


            & > *
            {
                display: flex;
                align-content: center;
                align-items: center;
                flex-wrap: wrap;
                justify-content: center;
                gap: var(--inner_gap_xxs);

                padding-block: var(--inner_gap_xxs);
                padding-inline: var(--inner_gap_xs);

                transition: color .2s linear;
                text-decoration: none;

                color: currentColor;
                border: 1px solid #cbcbcb;


                @media (hover: hover) and (pointer: fine)
                {
                    &:hover
                    {
                        color: var(--primary_color);
                    }
                }
            }


            .icon
            {
                &,
                img
                {
                    display: block;
                }
            }
        }


        .name
        {
            font-family: var(--font_family_secondary);
            font-size: var(--font_size_xl);
            font-weight: 600;
            line-height: 130%;


            a
            {
                display: inline-block;

                vertical-align: top;
                text-decoration: none;

                color: currentColor;
            }
        }


        .desc
        {
            display: flex;
            flex-direction: column;
            gap: var(--inner_gap_xs);

            width: 330px;
            max-width: 100%;

            font-size: var(--font_size_xs);
            font-weight: 300;
            line-height: 166.667%;
        }


        .link
        {
            display: flex;
            align-content: center;
            align-items: center;
            flex-wrap: wrap;
            justify-content: flex-start;
            gap: var(--inner_gap_xxs);

            width: fit-content;

            font-size: 11px;
            font-weight: 600;

            text-decoration: none;

            color: var(--primary_color);


            .icon
            {
                display: block;

                width: 4px;

                transform: translateY(1px);

                aspect-ratio: 1 / 1.5;
            }
        }


        @media (hover: hover) and (pointer: fine)
        {
            &:hover
            {
                .thumb
                {
                    img
                    {
                        transform: scale(1.1);
                    }
                }
            }
        }
    }
}



@media print,
(max-width: 1439px)
{
    .cases
    {
        .filter
        {
            &.l_m
            {
                margin-bottom: var(--block_padding);
            }
        }
    }
}



@media print,
(max-width: 1279px)
{
    .cases
    {
        .data
        {
            .grid_row
            {
                --items_per_line: 3;
                --gap_x: var(--inner_gap_l);
            }
        }


        .swiper
        {
            padding-bottom: var(--block_padding);


            &:not(.swiper-initialized)
            {
                .swiper-wrapper
                {
                    gap: var(--spaceBetween-768);
                }


                .swiper-slide
                {
                    width: calc(100% / var(--slidesPerView-768) - var(--spaceBetween-768));
                }
            }
        }
    }
}



@media print,
(max-width: 1023px)
{
    .cases
    {
        .filter
        {
            .row
            {
                display: grid;
                overflow: auto;
                gap: var(--inner_gap_xs);

                width: calc(100% + var(--cont_padding_double));
                margin-block: 0 var(--block_padding_s);
                margin-inline: calc(var(--cont_padding) * -1);
                padding-inline: var(--cont_padding);

                grid-auto-flow: column;
                grid-auto-columns: max-content;
                scroll-padding: 0 var(--cont_padding);
                scroll-snap-type: x mandatory;
                scrollbar-color: transparent transparent;
                scrollbar-width: thin;


                &::-webkit-scrollbar
                {
                    display: none;

                    width: 0;
                    height: 0;

                    background-color: transparent;
                }


                &::-webkit-scrollbar-thumb
                {
                    background-color: transparent;
                }


                & > *
                {
                    width: auto;
                    margin: 0;

                    scroll-snap-align: start;
                }
            }
        }


        .case
        {
            .categories
            {
                gap: var(--inner_gap_xxs);
            }


            .name
            {
                font-size: var(--font_size_l);
            }
        }
    }
}



@media (max-width: 767px)
{
    .cases
    {
        .swiper
        {
            &:not(.swiper-initialized)
            {
                .swiper-wrapper
                {
                    gap: var(--spaceBetween-0);
                }


                .swiper-slide
                {
                    width: 300px;
                }
            }



            .swiper-slide
            {
                width: 300px;
            }
        }


        .data
        {
            .grid_row
            {
                --items_per_line: 1;
                --gap_x: var(--zero_px);
            }
        }


        .case
        {
            .name
            {
                font-size: var(--font_size);
            }
        }
    }
}
