:host {
    display: block; 
    --card-bg: var(--bg-color, #ffffff);
    --card-text: var(--text-color, #212529);
    --card-accent: var(--accent-color, #007bff);
    --card-shadow: 0 4px 8px rgba(0,0,0,0.1);
    --card-border-radius: 8px;
}

.card {
    background-color: var(--card-bg);
    color: var(--card-text);
    border-radius: var(--card-border-radius);
    box-shadow: var(--card-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    height: 100%; 
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px rgba(0,0,0,0.2);
}

.card__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.card__content {
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.card__title { margin: 0 0 0.5rem; font-size: 1.5rem; }
.card__description { margin: 0 0 1.5rem; flex-grow: 1; line-height: 1.6; }
.card__link { text-decoration: none; color: var(--card-accent); font-weight: bold; }
.card__link:hover { text-decoration: underline; }