.custom-programs-v12 {
    --bg-color: #F1F1F1;
    --card-height: 650px;
    --card-header-height: 120px;
    --border-radius: 20px;
    --transition-time: .25s;

    --section-side-padding: 25px;
    --title-font-size: 26px;
    --text-font-size: 20px;

    --accent-bg-color-1: #a6bad6;
    --accent-bg-color-2: #e3b081;
    --accent-bg-color-3: #212c35;
    --accent-bg-color-4: #bd0113;

    --accent-text-color-1: #000000;
    --accent-text-color-2: #000000;
    --accent-text-color-3: #FFFFFF;
    --accent-text-color-4: #FFFFFF;

    @media screen and (max-width: 1499px) {
        --card-height: 550px;
    }

    @media screen and (max-width: 767px) {
        --card-height: 450px;
        --card-header-height: 80px;
        --title-font-size: 22px;
        --text-font-size: 16px;
    }

    background-color: var(--bg-color);

    .custom-programs-v12-intro {
        margin-bottom: 30px;
    }

    .header-slot-container {
        color: var(--section-title-color, var(--primary-color));
    }

    .custom-programs-list {
        display: flex;

        .custom-programs-wrapper {
            width: 100%;
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            column-gap: 1.5%;
            margin-bottom: 30px;

            @media screen and (max-width: 1199px) {
                grid-template-columns: repeat(2, 1fr);
            }

            @media screen and (max-width: 599px) {
                grid-template-columns: repeat(1, 1fr);
            }

            &>div:nth-child(1) {
                --card-accent-bg-color: var(--accent-bg-color-1);
                --card-accent-text-color: var(--accent-text-color-1);
            }

            &>div:nth-child(2) {
                --card-accent-bg-color: var(--accent-bg-color-2);
                --card-accent-text-color: var(--accent-text-color-2);
            }

            &>div:nth-child(3) {
                --card-accent-bg-color: var(--accent-bg-color-3);
                --card-accent-text-color: var(--accent-text-color-3);
            }

            &>div:nth-child(4) {
                --card-accent-bg-color: var(--accent-bg-color-4);
                --card-accent-text-color: var(--accent-text-color-4);
            }
        }

        .custom-programs-item {
            height: var(--card-height);
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            border-radius: var(--border-radius);
            overflow: hidden;
            position: relative;
            background-color: var(--card-accent-bg-color);
            box-sizing: border-box;
            margin-bottom: 30px;

            .custom-programs-item__image {
                width: 100%;
                height: calc(var(--card-height) - var(--card-header-height));

                img {
                    width: 100%;
                    height: 100%;
                    object-fit: cover;
                }
            }

            .custom-programs-item__content {
                position: absolute;
                width: 100%;
                height: 100%;
                top: 0;
                left: 0;
                color: var(--card-accent-text-color);
                background-color: transparent;
                transition: background-color var(--transition-time) linear, padding var(--transition-time) linear;
                box-sizing: border-box;
                isolation: isolate;
                display: flex;
                flex-direction: column;

                &:after {
                    content: '';
                    display: block;
                    width: 100%;
                    height: 100%;
                    top: 0;
                    left: 0;
                    position: absolute;
                    background-color: var(--card-accent-bg-color);
                    z-index: -1;
                    opacity: 0;
                    visibility: hidden;
                    transition: opacity var(--transition-time) linear, visibility var(--transition-time) linear;
                }

                .program-item-title__wrap {
                    height: var(--card-header-height);
                    display: flex;
                    align-items: center;
                    padding: 10px var(--section-side-padding);
                    box-sizing: border-box;
                    position: relative;

                    &:before {
                        content: '';
                        display: block;
                        width: 50%;
                        height: 2px;
                        position: absolute;
                        bottom: 0;
                        opacity: 0;
                        background-color: var(--card-accent-text-color);
                        transition: all var(--transition-time) linear;
                    }
                }

                .program-item-title {
                    color: inherit;
                    display: block;
                    width: 100%;
                    font-weight: 700;
                    --font-size: var(--title-font-size);
                    --line-height: 1.45;
                    --lines-to-show: 2;

                    display: block;
                    display: -webkit-box;
                    font-size: var(--font-size);
                    line-height: var(--line-height);
                    height: calc(var(--line-height) * var(--lines-to-show));
                    overflow: hidden;
                    text-overflow: ellipsis;
                    -webkit-box-orient: vertical;
                    -webkit-line-clamp: var(--lines-to-show);
                }

                .program-item-description__wrap {
                    padding: 20px var(--section-side-padding);
                    opacity: 0;
                    visibility: hidden;
                    transition: opacity var(--transition-time) linear, visibility var(--transition-time) linear, transform var(--transition-time) linear;
                    transform: translateY(200px);
                    transition: all .25s linear;

                    .program-item-description {
                        font-size: var(--text-font-size);
                        line-height: 1.3;
                    }
                }
            }

            &:hover {

                .custom-programs-item__content {
                    padding-top: var(--card-header-height);

                    &:after {
                        opacity: .9;
                        visibility: visible;
                    }
                }

                .program-item-title__wrap {
                    padding-top: 20px;
                    height: auto;

                    &:before {
                        opacity: 1;
                        top: 0;
                        bottom: 100%;
                    }

                    .program-item-title {
                        -webkit-line-clamp: unset;
                    }
                }

                .program-item-description__wrap {
                    opacity: 1;
                    visibility: visible;
                    transform: translateY(0);
                    opacity: 1;
                }
            }
        }
    }
}