/*
 * This file is part of the UX SDC Bundle
 *
 * (c) Jozef Môstka <https://github.com/tito10047/ux-sdc>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

/* Styles for Card component */
@layer components {
    .card {
        background: var(--color-bg-surface-glass);
        border: 1px solid var(--color-border-glass);
        border-radius: var(--radius-lg);
        backdrop-filter: blur(var(--glass-blur));
        -webkit-backdrop-filter: blur(var(--glass-blur));
        overflow: hidden;
        display: flex;
        flex-direction: column;
        transition: transform var(--transition-physical), box-shadow var(--transition-physical);
        position: relative;

        & .card__image-link {
            display: block;
            width: 100%;
            height: 100%;
            position: relative;
            text-decoration: none;
        }

        & .card__overlay {
            position: absolute;
            inset: 0;
            background: color-mix(in srgb, var(--color-bg-deep) 60%, transparent);
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transition: opacity var(--transition-physical);
            backdrop-filter: blur(2px);
            -webkit-backdrop-filter: blur(2px);
            z-index: 3;
        }

        & .card__view-button {
            padding: var(--space-xs) var(--space-md);
            background: var(--color-bg-surface-glass);
            border: 1px solid var(--color-border-glass);
            border-radius: var(--radius-md);
            color: var(--color-text-heading);
            font-family: var(--font-family-heading);
            text-transform: uppercase;
            font-size: 0.75rem;
            font-weight: 700;
            letter-spacing: 1px;
            transform: translateY(10px);
            transition: transform var(--transition-physical);
        }

        &:hover {
            transform: translateY(-8px) scale(1.02);
            box-shadow: var(--shadow-premium);
            border-color: var(--color-accent-blue);

            & .card__glare {
                opacity: 1;
                transform: translateX(200%) skewX(-20deg);
            }

            & .card__overlay {
                opacity: 1;
            }

            & .card__view-button {
                transform: translateY(0);
            }
        }

        &[data-orientation="horizontal"] {
            @media (min-width: 640px) {
                grid-column: span 2;
            }

            & .card__image-wrapper {
                aspect-ratio: 1.57;
            }
        }

        & .card__image-wrapper {
            position: relative;
            aspect-ratio: 3/4;
            width: 100%;
            overflow: hidden;
            background: var(--color-bg-surface);
        }

        & .card__image {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: block;
        }

        & .card__image-placeholder {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--color-text-main);
            font-size: 0.875rem;
        }

        & .card__glare {
            position: absolute;
            top: 0;
            left: -100%;
            width: 50%;
            height: 100%;
            background: linear-gradient(
                to right,
                rgba(255, 255, 255, 0) 0%,
                rgba(255, 255, 255, 0.1) 50%,
                rgba(255, 255, 255, 0) 100%
            );
            transform: skewX(-20deg);
            opacity: 0;
            transition: transform 0.6s ease, opacity 0.6s ease;
            pointer-events: none;
            z-index: 2;
        }

        & .card__content {
            padding: var(--space-md);
            display: flex;
            flex-direction: column;
            flex-grow: 1;
            /*gap: var(--space-sm);*/
        }

        & .card__title {
            font-size: 1rem;
            margin: 0;
            line-height: 1.2;
            color: var(--color-text-heading);
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
            transition: color var(--transition-physical);
        }

        & .card__title-link {
            text-decoration: none;
            color: inherit;

            &:hover .card__title {
                color: var(--color-accent-blue);
            }
        }

        & .card__details {
            display: flex;
            flex-wrap: wrap;
            gap: var(--space-xs);
            margin-bottom: auto;
            cursor: help;
        }

        & .card__detail {
            font-size: 0.75rem;
            background: color-mix(in srgb, var(--color-text-heading) 6%, transparent);
            padding: 2px 6px;
            border-radius: var(--radius-sm);
            color: var(--color-text-main);
            & svg{
                vertical-align: middle;
            }
        }

        & .card__footer {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: var(--space-sm);
            padding-top: var(--space-sm);
            border-top: 1px solid var(--color-border-glass);
        }

        & .card__price {
            font-family: var(--font-family-heading);
            font-size: 1.25rem;
            font-weight: 700;
            color: var(--color-text-heading);
        }
    }
}
