/* =====================================================================
   Badge — Figma "Badge" component set (node 276:1772, docs 495:42852)
   Types: Neutral (every sport / topic / label) and Staff Pick (the only
   highlighted badge, purple). Theme: Light / Dark. Optional Icon and Count (+N).
   Neutral:   bg badge/neutral-bg, 1px border, text text-sm, 12px x-pad.
   Staff Pick: badge/staff-pick/background + foreground, 16px star, 8px x-pad, inset top highlight.
   ===================================================================== */
.badge{
  --badge-bg:var(--badge-neutral-bg);
  --badge-border:var(--badge-neutral-border);
  --badge-fg:var(--badge-neutral-text);
  display:inline-flex;align-items:center;justify-content:center;gap:0;flex:none;
  min-height:24px;padding:3px var(--space-12);border-radius:var(--radius-sm);
  border:1px solid var(--badge-border);box-sizing:border-box;
  font:var(--text-sm);text-transform:uppercase;white-space:nowrap;
  color:var(--badge-fg);background:var(--badge-bg);
  transition:filter .2s,transform .2s var(--ease-out,ease);
}
a.badge,button.badge{cursor:pointer;text-decoration:none}
/* Hover: border steps up to border/strong (Figma 636:7691); no fill change */
a.badge:hover,button.badge:hover,.badge.is-hover{--badge-border:var(--border-strong)}
a.badge:active,button.badge:active{transform:scale(.97)}
/* Dark theme override for use on dark surfaces (studios, footer) */
.badge--dark{--badge-bg:var(--neutral-300);--badge-border:var(--neutral-500);--badge-fg:var(--neutral-900)}
.badge--dark.badge--staff-pick{--badge-bg:var(--complementary-purple-dark);--badge-border:transparent;--badge-fg:var(--complementary-purple-lightest)}
.badge--dark.is-hover,a.badge--dark:hover{--badge-border:var(--neutral-700)}
.badge--staff-pick.is-hover,a.badge--staff-pick:hover,button.badge--staff-pick:hover{--badge-border:transparent;filter:brightness(.94)}

.badge--staff-pick{
  --badge-bg:var(--badge-staff-pick-bg);--badge-border:transparent;--badge-fg:var(--badge-staff-pick-fg);
  padding-inline:var(--space-8);gap:var(--space-4);font:var(--text-xs);text-transform:none;
  box-shadow:inset 0 1px 0 var(--neutral-0);
}
.badge__sport{width:14px;height:14px;object-fit:contain;flex:none;margin-right:var(--space-4)}
/* Person Recommended: pill with a 16px avatar + name */
.badge--person{border-radius:var(--radius-full);padding:var(--space-4) var(--space-12) var(--space-4) var(--space-4);gap:var(--space-8);text-transform:none}
.badge__avatar{width:16px;height:16px;border-radius:50%;object-fit:cover;object-position:50% 20%;flex:none;display:block}
.badge__icon{width:16px;height:16px;fill:currentColor;flex:none}
.badge__count{margin-left:var(--space-4);font:var(--text-xs);text-transform:uppercase}
.badge--count{padding-inline:var(--space-8)}

.badge-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* Large (Figma: 66x32, padding 16/8) — used above article titles */
.badge--lg{padding:var(--space-8) var(--space-16)}

/* Sponsored-by pill (stories only). Solid, so it stays legible on any photo. */
.sponsor-pill{display:inline-flex;align-items:center;gap:var(--space-8);min-height:24px;padding:var(--space-4) var(--space-8);border-radius:var(--radius-sm);background:var(--surface-default,#fff);color:var(--text-secondary);border:1px solid var(--border-default);font:var(--text-metadata-sm);text-transform:uppercase;white-space:nowrap;box-sizing:border-box}
.sponsor-pill__logo{height:22px;border-radius:2px;width:auto;display:block;color:var(--text-primary)}
.sponsor-pill--inline{align-self:flex-start}
