/* Promotions — ticket-stub cards (signature 2) at full width. */
.promo-list { display: grid; gap: 14px; }
.promo-stub { --cx: 58%; position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); background: linear-gradient(90deg, var(--color-surface-2), var(--color-surface-1)); border-radius: var(--radius-lg); filter: drop-shadow(0 12px 22px rgba(0,0,0,.4));
  -webkit-mask: radial-gradient(circle at var(--cx) 0, #0000 12px, #000 12.5px) 0 0/100% 51% no-repeat, radial-gradient(circle at var(--cx) 100%, #0000 12px, #000 12.5px) 0 100%/100% 51% no-repeat;
  mask: radial-gradient(circle at var(--cx) 0, #0000 12px, #000 12.5px) 0 0/100% 51% no-repeat, radial-gradient(circle at var(--cx) 100%, #0000 12px, #000 12.5px) 0 100%/100% 51% no-repeat; }
.promo-stub-main { padding: clamp(22px, 3vw, 36px); }
.promo-stub-main h3 { margin-top: 12px; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem); }
.promo-stub-main p { margin-top: 10px; color: var(--color-muted); }
.promo-stub-meta { margin: 0; display: grid; gap: 12px; align-content: center; padding: clamp(22px, 3vw, 36px); border-left: 2px dashed color-mix(in srgb, var(--color-border) 90%, #fff 10%); }
.promo-stub-meta dt { font: 600 11px/1.2 var(--font-body); letter-spacing: .14em; text-transform: uppercase; color: var(--color-brand); }
.promo-stub-meta dd { margin: 4px 0 0; color: var(--color-muted); font-size: 14.5px; }
.promo-empty { position: relative; padding: clamp(40px, 6vw, 72px) clamp(24px, 5vw, 64px); border-radius: var(--radius-lg); text-align: center; background: radial-gradient(60% 100% at 50% 0%, color-mix(in srgb, var(--color-brand) 14%, transparent), transparent 70%), var(--color-surface-1); box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-brand) 40%, var(--color-border)) inset, var(--shadow-3); }
.promo-empty > :not(.bulbs) { position: relative; z-index: 3; }
.promo-empty .bulbs { inset: 9px; z-index: 2; }
.promo-empty-ico { display: grid; place-items: center; width: 72px; height: 72px; margin: 0 auto 18px; border-radius: 50%; background: var(--color-ink); box-shadow: 0 0 0 1px color-mix(in srgb, var(--color-brand) 50%, transparent) inset, 0 0 28px -6px rgba(212,175,55,.6); color: var(--color-brand-hi); }
.promo-empty-ico .icon { width: 30px; height: 30px; }
.promo-empty h3 { font-size: clamp(1.3rem, 1.1rem + .8vw, 1.8rem); }
.promo-empty p { max-width: 62ch; margin: 12px auto 0; color: var(--color-muted); }
.promo-stub--spec { margin-bottom: 18px; }
.promo-rules { margin-top: 18px; }
@media (max-width: 760px) {
  .promo-stub { grid-template-columns: minmax(0, 1fr); -webkit-mask: none; mask: none; }
  .promo-stub-meta { border-left: 0; border-top: 2px dashed color-mix(in srgb, var(--color-border) 90%, #fff 10%); }
}
