<!-- 카드 그리드 블록: 2~4열 카드 배열 -->
<div class="block-card-grid" style="--card-count: {{ cards|length }}">
    {% for card in cards %}
    <div class="card" style="border-top-color: {{ card.color | default('var(--color-accent)') }}">
        {% if card.icon %}<div class="card-icon">{{ card.icon }}</div>{% endif %}
        <div class="card-title">{{ card.title }}</div>
        {% if card.category %}<span class="card-category">{{ card.category }}</span>{% endif %}
        <div class="card-description">{{ card.description }}</div>
        {% if card.source %}<div class="card-source">{{ card.source }}</div>{% endif %}
    </div>
    {% endfor %}
</div>

<style>
.block-card-grid {
    display: grid;
    grid-template-columns: repeat(var(--card-count, 3), 1fr);
    gap: var(--spacing-inner);
    height: 100%;
}
.card {
    background: var(--color-bg);
    border: var(--border-width) solid var(--color-border);
    border-top: var(--accent-border) solid var(--color-accent);
    border-radius: var(--radius);
    padding: var(--spacing-inner);
    display: flex;
    flex-direction: column;
}
.card-icon {
    font-size: 1.5rem;
    margin-bottom: var(--spacing-small);
}
.card-title {
    font-size: var(--font-subtitle);
    font-weight: var(--weight-bold);
    color: var(--color-primary);
    margin-bottom: 4px;
}
.card-category {
    font-size: var(--font-small);
    font-weight: var(--weight-medium);
    color: var(--color-accent);
    background: #dbeafe;
    padding: 2px 8px;
    border-radius: 12px;
    display: inline-block;
    margin-bottom: var(--spacing-small);
    width: fit-content;
}
.card-description {
    font-size: var(--font-body);
    color: var(--color-text);
    line-height: var(--line-height-ko);
    flex: 1;
}
.card-source {
    font-size: var(--font-small);
    color: var(--color-text-light);
    font-style: italic;
    margin-top: var(--spacing-small);
    border-top: var(--border-width) solid var(--color-border);
    padding-top: var(--spacing-small);
}
</style>
