.cards-container {
    container-type: inline-size;
    container-name: cards;

    .cards-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, 17.5rem);
        gap: 1.5rem;
        padding-bottom: 1.5rem;
        justify-content: center;

        @container cards (min-width: 36rem) {
            align-items: stretch;
            justify-content: space-between;
        }
    }

    .cards-slider {
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: 18.5rem;
        gap: 2.7rem;
        padding-bottom: 1.5rem;
        margin-left: -1rem;
        overflow-x: auto;
        clip-path: inset(0 -1rem);

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

        .card-wrapper {
            scroll-snap-align: start;

            .card-uds {
                margin: 0.5rem 0 0 0.5rem;
            }
        }
    }

    .card-wrapper {
        color: var(--body-color) !important;
        display: flex;
        justify-content: center;
        container-name: card;
        container-type: inline-size;

        .card-uds {
            width: 17.5rem;
            height: 26.5rem;
            transition: all 0.2s ease;
            border-radius: var(--border-radius-md);
            border: 1px solid var(--gray-500);
            background: #fff;
            padding: 1.5rem;
            gap: 1rem;
            display: flex;
            flex-direction: column;
            z-index: 2;

            @container cards (min-width: 36rem) {
                max-width: unset;
            }

            .card-title {
                color: var(--body-color);
                font-feature-settings: 'liga' off, 'clig' off;
                font-family: var(--font-family-body);
                font-size: 1rem;
                font-weight: 600;
                line-height: 135%;
            }

            &.card-image {
                padding: 1rem;

                .card-title {
                    display: -webkit-box;
                    -webkit-box-orient: vertical;
                    -webkit-line-clamp: 2;
                    overflow: hidden;
                }

                .card-image img {
                    width: 100%;
                    height: auto;
                    object-fit: cover;
                    object-position: center;
                    aspect-ratio: 31 / 20;
                }

                .card-body {
                    display: flex;
                    flex-direction: column;
                    gap: 0.75rem;
                    overflow: hidden;

                    .card-teaser {
                        color: var(--body-gray);
                        font-feature-settings: 'liga' off, 'clig' off;
                        font-family: var(--font-family-body);
                        font-size: 0.875rem;
                        font-weight: 400;
                        line-height: 150%;
                        display: -webkit-box;
                        -webkit-box-orient: vertical;
                        -webkit-line-clamp: 4;
                        overflow: hidden;
                    }
                }
            }

            &.card-no-image {
                .card-uds-title-container {
                    display: flex;
                    flex-direction: column;

                    .card-uds-category-wrapper {
                        margin-bottom: 1.25rem;

                        svg {
                            margin-right: 0.5rem;
                            padding-left: 0.25rem;
                            padding-right: 0.25rem;
                            background-color: var(--color-fernuni-ultralight);
                            border-radius: var(--border-radius-sm);
                        }

                        .card-title {
                            display: -webkit-box;
                            -webkit-box-orient: vertical;
                            -webkit-line-clamp: 4;
                            overflow: hidden;
                        }

                        .card-uds-category {
                            color: var(--body-gray);
                            font-family: 'Inter', sans-serif;
                            font-size: 14px;
                            line-height: 161.8%;
                            margin-top: unset;
                            align-items: center;
                            font-weight: 400;

                            &:before {
                                margin-right: 0.5rem;
                            }
                        }
                    }

                    hr {
                        margin-top: 0.75rem;
                        margin-bottom: unset;
                        background-color: var(--gray-500);
                        height: 2px;
                        opacity: 1;
                        border: unset;
                    }
                }
            }

            .card-uds-body {
                display: flex;
                flex-direction: column;
                gap: 1rem;

                .card-uds-info {
                    display: flex;
                    flex-direction: column;
                    font-size: 0.875rem;
                    font-weight: 500;
                    gap: 0.375rem;
                    line-height: 1rem;

                    .muted {
                        color: var(--body-gray);
                        font-weight: 400;
                    }
                }
            }
        }

        &:hover .card-uds {
            transform: translateY(-0.5rem) translateX(-0.5rem);
            box-shadow: 0.5rem 0.5rem 0 0 var(--gray-300);

            .card-title {
                color: var(--link-color-default);
            }

            &.card-event .card-uds-title-container hr {
                background-color: var(--link-color-default);
            }
        }

        &:focus .card-uds {
            background-color: var(--gray-300);
        }

        &:active .card-uds {
            transform: scale(0.95) translateY(0) translateX(0);
            background-color: var(--gray-300);

            .card-title {
                color: var(--link-color-default);
            }

            &.card-event .card-uds-title-container hr {
                background-color: var(--link-color-default);
            }
        }
    }

    .card-mini-grid {
        display: flex;
        flex-direction: column;

        .card-mini {
            display: grid;
            grid-template-columns: 5rem auto;
            gap: 1rem;
            width: 17.5rem;
            height: 8.75rem;
            border-bottom: 1px solid var(--color-fernuni-ultralight);

            &:last-child {
                border-bottom: unset;
            }

            img {
                aspect-ratio: 1;
                width: 5rem;
                height: 5rem;
                object-fit: cover;
                object-position: center;
            }

            .card-title {
                color: var(--body-color);
                font-family: var(--font-family-body);
                font-size: 0.875rem;
                font-weight: 500;
                line-height: 150%;
                letter-spacing: 0.21px;
                transition: all 0.2s ease;
            }

            &:hover .card-title {
                color: var(--link-color-hover);
            }
        }
    }
}

.card-tags {
    display: flex;
    flex-direction: row;
    gap: 0.5rem;
    flex-wrap: wrap;

    @container card (min-width: 15rem) {
        gap: 1rem;
    }

    .card-tag {
        display: none;
        margin-top: unset;
        border-radius: var(--border-radius-circle);
        border: 1px solid var(--color-fernuni-light);
        background: var(--bg-fernuni);
        color: var(--primary);
        padding: 0.25rem 0.5rem;
        font-feature-settings: 'liga' off, 'clig' off;
        font-size: 0.75rem;
        font-weight: 500;
        line-height: 1rem;

        &.category-5 {
            border: 1px solid var(--color-law-light);
            background: var(--red-25);
            color: var(--color-law);
        }

        &.category-6 {
            border: 1px solid var(--color-economy-light);
            background: var(--green-25);
            color: var(--color-economy);
        }

        &.category-7 {
            border: 1px solid var(--color-history-light);
            background: var(--orange-25);
            color: var(--color-history);
        }

        &.category-8 {
            border: 1px solid var(--color-maths-light);
            background: var(--cyan-25);
            color: var(--color-maths);
        }

        &.category-9 {
            border: 1px solid var(--color-psychology-light);
            background: var(--pink-25);
            color: var(--color-psychology);
        }

        &:first-child,
        &:nth-child(2) {
            display: block;
        }
    }
}
