/* lib/styles/components/resource_card.css */

.resource-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    border: var(--border-width-thin, 1px) solid var(--color-border-subtle, #eaeaea);
    border-radius: var(--radius-xl, 1rem);
    background: var(--color-surface-base, #ffffff);
    box-shadow: var(--shadow-sm);
    
    /* Hooked into structured motion tokens for consistent timing */
    transition: transform var(--motion-transition-interactive), 
                box-shadow var(--motion-transition-interactive);
                
    height: 100%; 
}

.resource-card:hover:not(:focus-within) {
    transform: translateY(-0.125rem); /* Subtle lift */
    box-shadow: var(--shadow-md);
}

/* --- Media / Image (Strict Boundaries) --- */
.resource-card__media-link {
    display: block;
    text-decoration: none;
    width: 100%;
    aspect-ratio: 16 / 9;
    position: relative;
    background-color: var(--color-surface-subtle, #f3f4f6); 
    overflow: hidden;
}

.resource-card__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--motion-transition-interactive);
}

.resource-card:hover .resource-card__image {
    transform: scale(1.05);
}

/* --- Main Content --- */
.resource-card__content {
    display: flex;
    flex-direction: column;
    flex: 1; 
    padding: var(--space-6, 1.5rem);
}

.resource-card__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    font-size: var(--font-size-micro, 0.75rem);
    color: var(--color-text-muted, #6b7280);
    margin-bottom: var(--space-3, 0.75rem);
    font-weight: 500;
}

.resource-card__type {
    display: inline-flex;
    align-items: center;
    padding: 0.125rem 0.625rem;
    border-radius: var(--radius-pill, 9999px);
    background: color-mix(in srgb, var(--color-primary, #0052e0) 10%, transparent); 
    color: var(--color-primary, #0052e0);
    font-weight: 600;
    letter-spacing: var(--letter-spacing-wide, 0.05em);
    text-transform: uppercase;
}

.resource-card__title {
    font-family: var(--font-heading, system-ui, sans-serif);
    font-size: var(--font-size-h5, 1.125rem);
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 var(--space-2, 0.5rem) 0;
}

.resource-card__title-link {
    color: var(--color-heading, #111827); 
    text-decoration: none;
    transition: color var(--motion-transition-interactive);
}

.resource-card__title-link:hover,
.resource-card__title-link:focus-visible {
    color: var(--color-primary, #0052e0);
}

.resource-card__summary {
    font-size: var(--font-size-body-sm, 0.875rem);
    color: var(--color-body-muted, #4b5563);
    line-height: 1.6;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* --- Footer --- */
.resource-card__footer {
    margin-top: auto; 
    display: flex;
    flex-direction: column;
    gap: var(--space-4, 1rem);
    padding-top: var(--space-5, 1.25rem);
}

.resource-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-2, 0.5rem);
}

.resource-card__tag {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border: var(--border-width-thin, 1px) solid var(--color-border-subtle, #eaeaea);
    border-radius: var(--radius-pill, 9999px);
    background: var(--color-surface-subtle, #f9fafb);
    font-size: var(--font-size-micro, 0.75rem);
    color: var(--color-text-muted, #6b7280);
}

.resource-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-2, 0.5rem);
    color: var(--color-primary, #0052e0);
    font-weight: 600;
    font-size: var(--font-size-body-sm, 0.875rem);
    text-decoration: none;
    transition: gap var(--motion-transition-interactive), 
                opacity var(--motion-transition-interactive);
}

.resource-card__link:hover {
    gap: var(--space-3, 0.75rem);
    opacity: 0.8;
}

/* Reduced Motion Override */
@media (prefers-reduced-motion: reduce) {
    .resource-card:hover {
        transform: none !important;
    }
    .resource-card__image {
        transform: none !important;
    }
    .resource-card__link:hover {
        gap: var(--space-2, 0.5rem) !important;
    }
}