/* Trang lưu trữ Khuyến mãi: hero dùng chuẩn .vf-hero (components.css), file này chỉ lo danh sách. */
.vf-promo__list { padding-block: var(--space-12) var(--space-16); }
.vf-promo__grid { display: grid; gap: var(--space-6); }
.vf-promo-card { overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.vf-promo-card__thumb { margin: 0; padding: 0; display: block; aspect-ratio: 3 / 2; }
.vf-promo-card__thumb-link { display: block; width: 100%; height: 100%; }
.vf-promo-card__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.vf-promo-card__body { padding: var(--space-5); }
.vf-promo-card__title { margin: 0 0 var(--space-2); font-size: var(--text-xl); line-height: var(--leading-snug); }
.vf-promo-card__title a { color: var(--color-text-primary); text-decoration: none; }
.vf-promo-card__title a:hover { color: var(--color-brand-primary); }
.vf-promo-card__body p { margin: 0 0 var(--space-3); color: var(--color-text-secondary); line-height: var(--leading-relaxed); }
.vf-promo-card__more { font-weight: var(--font-bold); text-decoration: none; }
.vf-promo__empty { max-width: var(--container-narrow); margin: 0; font-size: var(--text-lg); line-height: var(--leading-relaxed); color: var(--color-text-secondary); }
@media (min-width: 768px) { .vf-promo__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .vf-promo__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.vf-promo-badge { display: inline-block; margin-bottom: var(--space-2); padding: var(--space-1) var(--space-3); border-radius: var(--radius-full, 999px); background: var(--color-brand-light); color: var(--color-brand-primary); font-size: var(--text-sm); font-weight: var(--font-bold); }
.vf-promo-badge--ended { background: var(--color-surface); color: var(--color-text-secondary); border: 1px solid var(--color-border); }
.vf-promo-single__cover { margin: 0 0 var(--space-8); }
.vf-promo-single__cover img { display: block; width: 100%; height: auto; border-radius: var(--radius-lg); }
.vf-promo-single__caption { margin-top: var(--space-2); font-size: var(--text-sm); color: var(--color-text-secondary); text-align: center; }
.vf-promo-single__body { padding-block: var(--space-10) var(--space-16); }
.vf-promo-single__body .vf-prose { max-width: var(--container-narrow); }
.vf-promo-single__footer { margin-top: var(--space-8); }
.vf-promo-single__back { display: inline-block; font-weight: var(--font-bold); text-decoration: none; }
.vf-promo-single__back:hover, .vf-promo-single__back:focus { text-decoration: underline; }
