/* ===== #280 (2026-10-21): retired chains defined NATIVELY in this family's own sheet.
   Values are the canonical d3 values the retired d3-convert.css bridge
   used to remap to — same computed result, no second layer. Retired names
   survive ONLY as definitions in this sheet. The bridge file leaves service
   when the last in-scope family drops its link. ===== */
:root[data-theme="d3"] {
  /* desert chain (canonical values) */
  --desert-bg: #0C121B; --desert-bg-rgb: 12,18,27;
  --desert-card: #141F2C; --desert-card-rgb: 20,31,44;
  --desert-pressed: #1B2A3B; --desert-pressed-rgb: 27,42,59;
  --desert-ink: #C7D0DA; --desert-ink-rgb: 199,208,218;
  --desert-ink-dim: #A4B3C2; --desert-ink-faint: #8FA3B5;
  --desert-rule: #223343;
  --desert-accent: #F2BC68; --desert-accent-rgb: 242,188,104;
  --desert-accent-soft: rgba(242,188,104,.12);
  --desert-accent-faint: rgba(242,188,104,.08);
  --desert-accent-ember: #F2BC68;
  --desert-accent-glow: rgba(242,188,104,.35);
  --desert-accent-glow-lg: rgba(242,188,104,.55);
  --desert-accent-deep: #B07E2E; --desert-accent-deep-rgb: 176,126,46;
  --desert-glass: rgba(12,18,27,.92);
  --desert-shadow: rgba(0,0,0,.45); --desert-shadow-rgb: 0,0,0;
  --desert-scrim-strong: rgba(12,18,27,.95);
  --desert-scrim-mid: rgba(12,18,27,.55);
  --desert-scrim-soft: rgba(12,18,27,.35);
  --desert-win-wash: rgba(242,188,104,.08);
  /* brand chain */
  --brand-red: #F2BC68; --brand-red-deep: #B07E2E;
  --brand-red-rgb: 242,188,104; --brand-red-ember: #F2BC68;
  --brand-action: #F2BC68; --brand-bg: #0C121B;
  --brand-ink: #C7D0DA; --brand-secondary: #A4B3C2;
  /* color chain */
  --color-bg: #0C121B; --color-surface: #141F2C;
  --color-surface-deep: #0A0F16; --color-text: #C7D0DA;
  --color-text-dim: #A4B3C2; --color-text-faint: #8FA3B5;
  --color-line: #223343; --color-accent: #F2BC68;
  --color-accent-deep: #B07E2E; --color-on-accent: #0C121B;
  --color-live: #F46B62;
  /* bible chain (the subset bible.css components consume on d3 pages) */
  --bible-bg: #0C121B; --bible-card: #141F2C; --bible-ink: #C7D0DA;
  --bible-ink-soft: #A4B3C2; --bible-ink-dim: #8FA3B5;
  --bible-red: #F2BC68; --bible-red-deep: #B07E2E;
  --bible-rule: #223343; --bible-minibar: rgba(12,18,27,.97);
  --bible-indexbar: rgba(12,18,27,.96); --bible-tabbar: rgba(12,18,27,.97);
  --bible-white: #F9F8F3; --bible-cream: #F9F8F3;
  --bible-cream-dim: rgba(249,248,243,.82);
  --bible-serif: 'Previously Display',Georgia,serif;
  --bible-hero-a: #1B2A3B; --bible-hero-b: #0C121B;
  --bible-hero-c: #0A0F16; --bible-hero-d: #0A0F16;
  --bible-art-a: #223343; --bible-art-b: #141F2C; --bible-art-c: #0A0F16;
  /* display token: the family's measured value (bridge :root re-point) */
  --d3-font-display: 'Previously Display', 'Inter', sans-serif;
  /* pv + generic font pins (tokens.css aliases resolve through these) */
  --pv-serif: 'Previously Display',Georgia,serif;
  --pv-live: #F46B62;
  --font-serif: 'Previously Display',Georgia,serif;
}
/* ============================================================
   PREVIOUSLY — THE VEGAS BOARD (vegas-board.css)
   Scoped entirely under .vb — Vegas styling never leaks out.
   Tokens: brand gold read from the sports token sheet
   (hub-unified.css): --gold #F2BC68 / --gold-deep #D9A44E.
   RAIL RESKIN 2026-10-24 (owner-approved preview /preview/rail/):
   the module sits on the page ground — blue box, blue rules, the
   masthead and the filled live chip are cut. Hairlines + muted ink
   only; gold is the one accent, coral marks live.
   ============================================================ */
.vb{
  --vb-bg:#0C121B;
  --vb-panel:#0C121B;
  --vb-panel2:#101825;
  --vb-line:rgba(199,208,218,.14);
  --vb-line-soft:rgba(199,208,218,.08);
  --vb-green:#2EE06F;
  --vb-green-dim:#1B9E4B;
  --vb-gold:#F2BC68;
  --vb-gold-deep:#D9A44E;
  --vb-boardred:#FF2A1F;
  --vb-ink:#F2F6FA;
  --vb-dim:#8FA3B8;
  --vb-body-ink:#C7D0DA;
  --vb-faint:#8298B0;
  --vb-red:#F46B62;
  --vb-display:'Previously Display','Arial Narrow',sans-serif;
  --vb-head:'Previously Headline','Arial Narrow',Arial,sans-serif;
  --vb-serif:'Previously Display',Georgia,serif;
  --vb-body:'Inter',system-ui,-apple-system,'Segoe UI',Arial,sans-serif;
  background:var(--vb-bg);
  color:var(--vb-ink);
  font-family:var(--vb-body);
  border:0;
  border-radius:0;
  overflow:visible;
  font-size:15px;
  line-height:1.35;
}
.vb *{box-sizing:border-box}
.vb [hidden]{display:none!important}

/* ---------- header / brand ---------- */
.vb-head{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;
  padding:14px 16px 10px;
  border-bottom:1px solid var(--vb-line);
}
.vb-titleblock{line-height:1.05}
.vb-title{
  font-family:var(--vb-display);font-size:26px;letter-spacing:.01em;
  color:var(--vb-ink);line-height:1.05;
}
.vb-subtitle{
  font-family:var(--vb-body);letter-spacing:.03em;font-size:12.5px;
  color:var(--vb-dim);margin-top:4px;
}
.vb-fresh{
  margin-left:auto;text-align:right;font-size:12px;color:var(--vb-dim);
  font-variant-numeric:tabular-nums;line-height:1.5;
}
.vb-fresh b{color:var(--vb-ink);font-weight:600}
.vb-livedot{display:inline-flex;align-items:center;gap:6px;color:var(--vb-ink);font-weight:700;letter-spacing:.06em}
.vb-livedot i{width:7px;height:7px;border-radius:50%;background:var(--vb-red);flex:none}
/* compact head line (front embeds): live status + book + one as-of */
.vb-obhead{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:2px 0 6px;font-size:12.5px;color:var(--vb-dim)}
.vb-ob-live{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:700;letter-spacing:.1em;color:var(--vb-ink)}
.vb-obdot{width:7px;height:7px;border-radius:50%;background:var(--vb-red);flex:none}
.vb-ob-asof{margin-left:auto}

/* ---------- controls ---------- */
.vb-controls{
  display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;
  padding:10px 16px;border-bottom:1px solid var(--vb-line);
}
.vb-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.vb-group__label{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--vb-faint);
  margin-right:2px;
}
.vb-btn{
  appearance:none;border:1px solid var(--vb-line-soft);background:transparent;
  color:var(--vb-dim);font-family:var(--vb-body);font-weight:600;letter-spacing:.05em;
  font-size:13px;padding:7px 12px;border-radius:3px;
  cursor:pointer;min-height:34px;
}
.vb-btn:hover{color:var(--vb-ink);border-color:var(--vb-line)}
.vb-btn[aria-pressed="true"]{
  background:var(--vb-gold);border-color:var(--vb-gold);color:#1A1206;font-weight:700;
}
.vb-btn--gold[aria-pressed="true"]{background:var(--vb-gold);border-color:var(--vb-gold);color:#1A1206}
.vb-btn:focus-visible,.vb-rowbtn:focus-visible,.vb-link:focus-visible{
  outline:2px solid var(--vb-gold);outline-offset:2px;
}
.vb-select{
  background:transparent;color:var(--vb-ink);border:1px solid var(--vb-line-soft);
  border-radius:3px;font-family:var(--vb-body);font-size:13px;padding:7px 8px;min-height:34px;
}
.vb-controls__spacer{flex:1}

/* ---------- sport toggle (2026-10-28, owner order) ----------
   The board's sport switcher: its own bar pinned to the top of the
   board, full-size labels readable at a glance — never the small
   dim print of the controls row. Gold marks the active sport. */
.vb-sportbar{
  position:sticky;top:0;z-index:30;
  display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;
  padding:10px 16px;
  background:var(--vb-bg);
  border-bottom:1px solid var(--vb-line);
}
.vb-sportbtn{
  appearance:none;cursor:pointer;
  border:1px solid var(--vb-line);border-radius:3px;
  background:var(--vb-panel2);
  color:var(--vb-ink);
  font-family:var(--vb-head);font-size:18px;font-weight:700;letter-spacing:.05em;
  padding:11px 20px;min-height:48px;line-height:1.1;white-space:nowrap;
}
.vb-sportbtn:hover{border-color:var(--vb-gold-deep);color:var(--vb-gold)}
.vb-sportbtn[aria-pressed="true"]{
  background:var(--vb-gold);border-color:var(--vb-gold);color:#1A1206;
}
.vb-sportbtn:focus-visible{outline:2px solid var(--vb-gold);outline-offset:2px}
@media (max-width:760px){
  .vb-sportbar{flex-wrap:nowrap;overflow-x:auto;padding:8px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .vb-sportbar::-webkit-scrollbar{display:none}
  .vb-sportbtn{flex:none;font-size:16px;padding:10px 15px;min-height:46px}
}

/* ---------- panels grid ---------- */
.vb-panels{
  display:grid;grid-template-columns:1fr;gap:0;
}
@media (min-width:1100px){
  .vb-panels{grid-template-columns:1fr 1fr}
  .vb-panel:nth-child(odd){border-right:1px solid var(--vb-line-soft)}
}
@media (min-width:1760px){
  .vb-panels{grid-template-columns:1fr 1fr 1fr}
  .vb-panel{border-right:1px solid var(--vb-line-soft)}
}
.vb-panel{padding:0 0 6px;min-width:0}
.vb-panel__head{
  display:flex;align-items:center;gap:12px;padding:12px 16px 4px;
}
.vb-panel__league{
  font-family:var(--vb-display);font-size:22px;letter-spacing:.01em;color:var(--vb-ink);
  line-height:1;
}
.vb-panel__rule{flex:1 1 40px;height:1px;background:var(--vb-line)}
.vb-dotlive{display:inline-flex;align-items:center;gap:6px;color:var(--vb-red);font-weight:700;font-size:11.5px;letter-spacing:.04em}
.vb-daylabel{
  padding:8px 16px 2px;font-size:10.5px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;
  color:var(--vb-dim);font-family:var(--vb-body);
}

/* ---------- the table ---------- */
.vb-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.vb-table th{
  font-family:var(--vb-body);font-weight:700;font-size:11px;letter-spacing:.12em;
  color:var(--vb-dim);text-transform:uppercase;text-align:right;
  padding:6px 10px;border-bottom:1px solid var(--vb-line);white-space:nowrap;
  position:sticky;top:0;background:var(--vb-panel);z-index:2;
}
.vb-table th:first-child{text-align:left}
.vb-table td{
  padding:5px 10px;text-align:right;vertical-align:top;white-space:nowrap;
  border-bottom:1px solid var(--vb-line-soft);
}
.vb-table td:first-child{text-align:left;white-space:normal}
.vb-game-sep td{border-bottom:1px solid var(--vb-line);padding:0;height:0}
.vb-time{
  display:block;font-size:11.5px;color:var(--vb-dim);letter-spacing:.04em;
  font-variant-numeric:tabular-nums;
}
.vb-time .vb-liveflag{color:var(--vb-red);font-weight:700;letter-spacing:.08em}
.vb-time .vb-clock{color:var(--vb-ink)}
.vb-team{
  display:block;font-family:var(--vb-body);font-weight:600;font-size:14.5px;letter-spacing:0;
  color:var(--vb-body-ink);line-height:1.25;
}
.vb-team .vb-abbr{color:var(--vb-faint);font-size:12px;letter-spacing:.08em;margin-left:6px}
.vb-num{font-weight:700;color:var(--vb-ink);font-size:15.5px}
.vb-price{color:var(--vb-dim);font-size:12.5px;margin-left:6px}
.vb-ml{font-weight:700;color:var(--vb-ink);font-size:15.5px}
.vb-missing{color:var(--vb-faint)}
.vb-move{font-size:11px;margin-left:5px;vertical-align:2px}
.vb-move--up{color:var(--vb-green)}
.vb-move--down{color:var(--vb-red)}
.vb-rowbtn{
  appearance:none;background:none;border:0;padding:0;margin:0;cursor:pointer;
  color:inherit;font:inherit;text-align:left;display:block;width:100%;
}
tbody.vb-game{cursor:pointer}
tbody.vb-game:hover td{background:rgba(255,255,255,.03)}
tbody.vb-game.is-selected td{background:rgba(242,188,104,.07)}
td.vb-flash{animation:vbflash 1.6s ease-out}
@keyframes vbflash{0%{background:rgba(242,188,104,.25)}100%{background:transparent}}
@media (prefers-reduced-motion: reduce){
  td.vb-flash{animation:none}
  .vb *{scroll-behavior:auto!important}
}

/* ---------- states ---------- */
.vb-state{padding:34px 20px;text-align:center;color:var(--vb-dim)}
.vb-state b{color:var(--vb-ink);font-family:var(--vb-head);letter-spacing:.12em;
  text-transform:uppercase;display:block;font-size:17px;margin-bottom:6px;font-weight:400}
.vb-state .vb-btn{margin-top:12px}
.vb-foot{
  display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;
  padding:9px 18px;border-top:1px solid var(--vb-line);
  font-size:11.5px;color:var(--vb-faint);
}
.vb-foot .vb-legend{margin-left:auto}

/* ---------- detail (docked panel / mobile sheet) ---------- */
.vb-detail{
  border-top:1px solid var(--vb-line);background:var(--vb-panel2);
  padding:14px 18px 16px;
}
.vb-detail__head{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline}
.vb-detail__match{
  font-family:var(--vb-head);font-size:21px;letter-spacing:.06em;color:var(--vb-ink);
  text-transform:uppercase;
}
.vb-detail__match .vb-vs{color:var(--vb-gold);margin:0 6px}
.vb-detail__sub{color:var(--vb-dim);font-size:12.5px;font-variant-numeric:tabular-nums}
.vb-detail__close{margin-left:auto}
.vb-detail__grid{
  display:grid;grid-template-columns:1fr;gap:12px 26px;margin-top:10px;
}
@media (min-width:900px){.vb-detail__grid{grid-template-columns:1.2fr 1fr 1fr}}
.vb-detail h4{
  font-family:var(--vb-body);font-weight:700;font-size:11px;letter-spacing:.14em;
  color:var(--vb-dim);text-transform:uppercase;margin:0 0 6px;
}
.vb-detail table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums;font-size:13.5px}
.vb-detail td,.vb-detail th{padding:3.5px 6px;text-align:right;border-bottom:1px solid var(--vb-line-soft)}
.vb-detail td:first-child,.vb-detail th:first-child{text-align:left}
.vb-detail .vb-tname{color:var(--vb-body-ink);font-family:var(--vb-body);font-weight:600;letter-spacing:0;font-size:14px}
.vb-detail p{margin:4px 0;color:var(--vb-dim);font-size:13px}
.vb-detail p b{color:var(--vb-ink)}
.vb-link{color:var(--vb-gold);text-decoration:none;border-bottom:1px solid var(--vb-line)}
.vb-link:hover{color:var(--vb-ink)}
.vb-detail__links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:4px;font-size:13.5px}


/* ---------- compact (hub module) ---------- */
.vb--compact{font-size:14px}
.vb--compact .vb-team{font-size:15px}
.vb--compact .vb-panel__league{font-size:20px}
.vb--compact .vb-panels{grid-template-columns:1fr!important}

/* ---------- mobile board ---------- */
@media (max-width:760px){
  .vb-head{padding:12px 12px 9px}
  .vb-title{font-size:19px}
  .vb-fresh{margin-left:0;text-align:left;width:100%}
  .vb-controls{padding:8px 12px;gap:7px 10px}
  .vb-btn{padding:7px 10px;font-size:12px;min-height:38px}
  .vb-table th,.vb-table td{padding:5px 6px}
  .vb-table th{font-size:10.5px;letter-spacing:.1em}
  .vb-team{font-size:14.5px}
  .vb-num,.vb-ml{font-size:14px;display:block}
  .vb-price{display:block;margin-left:0;font-size:11.5px}
  .vb-panel__head{padding:10px 12px 2px}
  .vb-daylabel{padding-left:12px}
  .vb-detail{
    position:fixed;left:0;right:0;bottom:0;z-index:3000;max-height:82vh;overflow:auto;
    border-top:2px solid var(--vb-line);border-radius:10px 10px 0 0;
    box-shadow:0 -12px 40px rgba(0,0,0,.6);padding:14px 14px 20px;
  }
}

/* #280 step 2: tokens consumed by this family's remaining sheets
   (sports/css/tokens.css aliases, micro.css, nav.css, league-nav.css)
   homed at their measured values after the legacy design-tokens.css
   link was cut. */
:root[data-theme="d3"] {
  --color-warn: #8A5A12; --color-win: #2E7D4F;
  --font-sans: -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --surface-cream: #141F2C; --shadow-brown-deep-rgb: 60, 38, 10;
}

/* ==========================================================================
   FULL-BLEED BOARD ON PHONE — 2026-10-23 (James: inset board "looks cut
   off" on mobile). At <=760px the board spans edge to edge on its two home
   mounts: the /sports/ front (inside .sp-home, whose phone gutter is
   --pv-gutter-sm) and the Odds Board page (inside .vb-page, 6px phone
   padding). Negative margins cancel exactly the mount's own gutter; the
   board's internal row/cell padding is unchanged, so team names and the
   ML column never touch the glass. Desktop geometry is untouched — this
   block is mobile-only. League-hub mounts keep their card framing.
   Rollback: delete this block.
   ========================================================================== */
@media (max-width:760px){
  .vb-page .vb,
  .sp-home .vb{
    border-left:0;border-right:0;border-radius:0;
  }
  .vb-page .vb{margin-left:-6px;margin-right:-6px}
  .sp-home .vb{
    margin-left:calc(-1 * var(--pv-gutter-sm,20px));
    margin-right:calc(-1 * var(--pv-gutter-sm,20px));
  }
}

/* ==========================================================================
   VEGAS ROTATION - 2026-10-25 (James, from his sportsbook photo;
   color placement refined the same day on his word). The rotation
   number opens each team line in board red (--vb-boardred
   #FF2A1F, measured 5.0:1 on the #0C121B ground): bold tabular
   digits at the team name's own size, so the line reads
   number-then-name like a real board. The matchup alternation
   rides the TEAM NAMES: both names of a matchup in one color,
   alternating down each league panel - board green (--vb-green
   #2EE06F, 10.7:1) then house gold (--vb-gold #F2BC68, 10.9:1) -
   "two green, two gold"; the name's abbr follows the name color
   so each name reads as one color. Odds values, movement arrows
   and the functional LIVE coral (--vb-red) are untouched. The first ship colored
   the NUMBERS green/gold with ink names; this refinement moved
   the alternation to the names and the numbers to red - the old
   number-color rules are deleted here, not overridden.
   ========================================================================== */
.vb-rot{
  font-weight:700;font-size:14.5px;letter-spacing:.02em;margin-right:7px;
  color:var(--vb-boardred);font-variant-numeric:tabular-nums;
}
.vb-game--grn .vb-team{color:var(--vb-green)}
.vb-game--gold .vb-team{color:var(--vb-gold)}
.vb-game--grn .vb-team .vb-abbr,
.vb-game--gold .vb-team .vb-abbr{color:inherit}
.vb--compact .vb-rot{font-size:15px}
@media (max-width:760px){
  .vb-rot{font-size:14.5px;margin-right:6px}
}

/* Team logos (2026-10-29 — owner standing rule: a team's logo shows
   wherever its name appears). Producers carry the ESPN scoreboard mark
   per team; the board renders it left of the name, sized to the row. */
.vb-logo{width:18px;height:18px;object-fit:contain;vertical-align:-4px;margin-right:6px}
.vb--compact .vb-logo{width:19px;height:19px}
.vb-detail__match .vb-logo{width:20px;height:20px}
.vb-tname .vb-logo{width:16px;height:16px;vertical-align:-3px}
.vb-link .vb-logo{width:15px;height:15px;vertical-align:-3px;margin-right:5px}

/* PM strip — Polymarket comparison line under matched games. Owner
   design rule (2026-10-12): PM blue, distinct from book odds. Restored
   2026-11-04 after the Vegas Board rebuild dropped the per-game strip. */
.vb-pmrow td{padding:1px 10px 7px}
.vb-pm{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vb-pm-badge{flex:0 0 auto;font:800 9px/1 var(--bible-sans, sans-serif);letter-spacing:.14em;color:#FFFFFF;background:#2970BC;border-radius:3px;padding:3px 5px 2px}
.vb-pm-line{font-size:11px;font-weight:600;letter-spacing:.03em;color:#6CB4FF;font-variant-numeric:tabular-nums;line-height:1.5}

/* VEGAS PRICES layer (owner-approved mockup, 2026-11-04) — the eight
   Vegas retail books under each pregame game's main line + PM strip,
   the BEST PRICE IN VEGAS block on top of the panel, and the one-line
   VSiN credit at the very bottom of the board. Structure and type
   follow the mockup; colors ride the board's own tokens. On phones
   the book table collapses behind the VEGAS PRICES header (tap to
   open, first game open); on desktop the strips are simply open. */
.vb-vgrow>td{padding:2px 10px 8px}
.vb-vg{border-top:1px solid var(--vb-line-soft);padding-top:7px}
.vb-vg-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;cursor:pointer}
.vb-vg-title{font-size:11px;letter-spacing:.16em;color:var(--vb-ink);font-weight:700}
.vb-vg-best{font-size:12px;color:var(--vb-gold);font-variant-numeric:tabular-nums}
.vb-vg-chev{color:var(--vb-faint);margin-left:auto;font-size:11px}
.vb-vg-books{width:100%;border-collapse:collapse;margin-top:5px;font-size:12.5px;font-variant-numeric:tabular-nums}
.vb-vg-books th{text-align:left;color:var(--vb-faint);font-size:10px;letter-spacing:.1em;padding:3px 8px 3px 0;font-weight:700}
.vb-vg-books td{padding:4px 8px 4px 0;border-bottom:1px solid var(--vb-line-soft);color:var(--vb-body-ink)}
.vb-vg-books .vb-vg-bk{color:var(--vb-dim)}
.vb-vg-bestcell{color:var(--vb-gold);font-weight:700}
.vb-vg-books tr.vb-vg-np td{color:var(--vb-faint)}
.vb-vg-npcell{letter-spacing:.06em;font-size:11.5px}
.vb-bp{border:1px solid var(--vb-line);border-top:3px solid var(--vb-gold);padding:12px 16px 4px;margin:8px 16px 2px;background:var(--vb-panel2)}
.vb-bp-head{font-family:var(--vb-head);font-size:19px;letter-spacing:.06em;color:var(--vb-gold);font-weight:700}
.vb-bp-sub{color:var(--vb-dim);font-size:12px;letter-spacing:0;font-family:var(--vb-body);font-weight:400}
.vb-bp-grid{display:flex;flex-wrap:wrap}
.vb-bp-item{flex:1 1 200px;padding:8px 14px 10px 0}
.vb-bp-team{font-size:10.5px;letter-spacing:.1em;color:var(--vb-dim)}
.vb-bp-price{font-size:24px;font-weight:700;color:var(--vb-gold);font-variant-numeric:tabular-nums}
.vb-bp-book{font-size:11.5px;color:var(--vb-ink);letter-spacing:.08em}
.vb-bp-vs{font-size:11.5px;color:var(--vb-faint)}
.vb-vgfoot{padding:10px 18px 12px;border-top:1px solid var(--vb-line);color:var(--vb-faint);font-size:11.5px;line-height:1.7}
@media (max-width:520px){
  .vb-vg .vb-vg-books{display:none}
  .vb-vg.is-open .vb-vg-books{display:table}
  .vb-vg .vb-vg-best{display:none}
  .vb-vg.is-open .vb-vg-best{display:inline}
  .vb-vg-chev{transform:rotate(-90deg)}
  .vb-vg.is-open .vb-vg-chev{transform:none}
  .vb-bp{margin:8px 10px 2px;padding:10px 12px 2px}
  .vb-bp-item{flex-basis:140px}
}
