/* Promo banners row */
.promo-banners { display: grid; gap: var(--space-4); grid-template-columns: repeat(var(--banner-cols, 3), minmax(0, 1fr)); }
.promo-banner { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; gap: var(--space-3); min-height: 240px; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--banner-bg, var(--color-dark)); color: var(--color-on-dark); }
.promo-banner:hover { color: var(--color-on-dark); }
.promo-banner__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .4s ease; }
.promo-banner:hover .promo-banner__image { transform: scale(1.04); }
.promo-banner::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgb(0 0 0 / .65), rgb(0 0 0 / .05)); }
.promo-banner__label { padding: 0.25em 0.7em; border-radius: var(--radius-pill); background: var(--color-primary); font-size: var(--fs-xs); font-weight: var(--fw-medium); }
.promo-banner__title { font-size: var(--fs-lg); font-weight: var(--fw-bold); line-height: 1.2; max-width: 16ch; }
.promo-banner__cta { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--fs-sm); font-weight: var(--fw-medium); }
.promo-banner__cta .icon { width: 1rem; height: 1rem; }
@media (max-width: 860px) { .promo-banners { grid-template-columns: 1fr; } }
