.nbi-widget { --nbi-accent: #002dff; --nbi-columns: 2; margin-block: 1.5rem; }
.nbi-widget.nbi-columns-1 { --nbi-columns: 1; }
.nbi-widget.nbi-columns-3 { --nbi-columns: 3; }
.nbi-widget.nbi-columns-4 { --nbi-columns: 4; }
.nbi-widget .nbi-grid { display: grid; grid-template-columns: repeat(var(--nbi-columns), minmax(0, 1fr)); gap: 1rem; }
.nbi-widget .nbi-card { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; padding: clamp(1.25rem, 3vw, 2rem); border: 1px solid var(--theme-color-bd_color, #d8d8df); border-top: 3px solid var(--nbi-accent); border-radius: 12px; background: var(--theme-color-alter_bg_color, #fff); color: var(--theme-color-text_dark, #16171c); overflow-wrap: anywhere; }
.nbi-widget .nbi-badge { font: 600 .75rem/1.4 sans-serif; letter-spacing: .06em; text-transform: uppercase; padding: .3rem .55rem; border-radius: 4px; background: #e8edff; color: #0026d9; }
.nbi-widget .nbi-card .nbi-card-title { font-family: inherit; font-size: 1.2rem; font-weight: 700; line-height: 1.4; letter-spacing: 0; text-transform: none; margin: 0; color: inherit; }
.nbi-widget .nbi-card p { margin: 0; }
.nbi-widget .nbi-card .nbi-card-price { font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 750; line-height: 1.2; letter-spacing: -.025em; }
.nbi-widget .nbi-card-price span { display: inline-block; margin-inline-start: .25rem; font-size: .875rem; font-weight: 400; letter-spacing: 0; }
.nbi-widget .nbi-description, .nbi-widget .nbi-quantity { font-size: .95rem; line-height: 1.6; }
.nbi-widget .nbi-card a.nbi-button { display: flex; align-items: center; justify-content: space-between; gap: 1rem; box-sizing: border-box; width: 100%; min-height: 48px; margin-top: auto; padding: .85rem 1rem; border: 2px solid var(--nbi-accent); border-radius: 6px; background: var(--nbi-accent); color: #fff !important; font-family: inherit; font-size: .95rem; font-weight: 650; line-height: 1.4; text-decoration: none; }
.nbi-widget .nbi-card a.nbi-button:hover { filter: brightness(.9); color: #fff !important; }
/* Keep ticket buttons legible when the event theme forces link colors/underlines. */
.nbi-widget .nbi-card a.nbi-button,
body.single-tribe_events #tribe-events-content .tribe-events-content .nbi-widget .nbi-card a.nbi-button { color: #fff !important; text-decoration: none !important; }
.nbi-widget a:focus-visible { outline: 3px solid currentColor; outline-offset: 4px; }
.nbi-widget .nbi-card--unavailable { border-top-color: #73737d; }
.nbi-widget .nbi-card--unavailable .nbi-badge { color: #44444c; background: #eaeaed; }
.nbi-widget .nbi-footnote, .nbi-widget .nbi-updated { margin: .85rem 0 0; font-size: .8rem; line-height: 1.6; }
.nbi-widget .nbi-warning { padding: .8rem 1rem; border-left: 3px solid #b06b00; background: #fff4df; color: #583600; font-size: .9rem; }
.nbi-widget .nbi-starting-price { margin: 0; font-weight: 650; }
.nbi-editor-preview { pointer-events: none; }
.single-tribe_events .tribe-events-cost, .single-tribe_events .tribe-events-event-cost { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 900px) { .nbi-widget.nbi-columns-4 { --nbi-columns: 2; } }
@media (max-width: 640px) { .nbi-widget .nbi-grid { grid-template-columns: minmax(0, 1fr); } }
