/* VWR — "where our guests are coming from" LIVE registration board.
 *
 * Drop a <section class="vwr-origins" data-event="both|texas|michigan"></section> anywhere;
 * origins-map.js fetches /api/guest-origins and builds the whole board inside it. All rules
 * are scoped under .vwr-origins so nothing collides with the rest of the site.
 * Colours come from the site tokens (--cream, --moss, --save …) so it themes automatically.
 */
.vwr-origins{--vo-gold:#cba23f;--vo-canada:#c0673f;--vo-live:#e6362d;--vo-tile:#e7e1d3;
  padding:clamp(40px,6vw,72px) 1.25rem;display:block}
.vwr-origins .vo-card{max-width:1000px;margin:0 auto;background:#fff;border:1px solid var(--line);
  border-radius:24px;padding:clamp(22px,3.4vw,40px);box-shadow:0 26px 60px -34px rgba(20,40,28,.5);
  position:relative;overflow:hidden;opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.vwr-origins .vo-card.in{opacity:1;transform:none}
.vwr-origins .vo-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;
  background:linear-gradient(90deg,var(--moss),var(--save) 45%,var(--vo-canada))}

.vwr-origins .vo-live-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.vwr-origins .vo-live{display:inline-flex;align-items:center;gap:7px;background:var(--vo-live);color:#fff;
  font-weight:800;font-size:.72rem;letter-spacing:.1em;padding:5px 11px 5px 9px;border-radius:999px}
.vwr-origins .vo-live .vo-dot{width:8px;height:8px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 0 rgba(255,255,255,.9);animation:vo-pulse 1.6s ease-out infinite}
.vwr-origins .vo-live-sub{font-size:.85rem;color:var(--text-2)}
.vwr-origins .vo-recent{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-2);margin:0 0 16px;min-height:1.2em}
.vwr-origins .vo-recent .vo-rdot{width:9px;height:9px;border-radius:50%;background:#1f9d55;flex:none;
  box-shadow:0 0 0 0 rgba(31,157,85,.7);animation:vo-pulse 1.8s ease-out infinite}
.vwr-origins .vo-recent .vo-rlabel{color:var(--text-3);font-weight:600}
.vwr-origins .vo-recent .vo-rstate{font-weight:800;color:var(--text);transition:opacity .28s ease}

.vwr-origins .vo-top{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;margin-bottom:22px}
.vwr-origins .vo-eyebrow{margin:0;text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;font-weight:800;color:var(--save)}
.vwr-origins .vo-tabs{display:inline-flex;background:var(--cream-2,#efe9dc);border-radius:999px;padding:4px;gap:2px}
.vwr-origins .vo-tab{appearance:none;border:0;background:transparent;cursor:pointer;font:inherit;
  display:flex;flex-direction:column;align-items:center;gap:1px;line-height:1.15;
  color:var(--text-2);padding:7px 18px;border-radius:999px;transition:all .18s ease}
.vwr-origins .vo-tab-name{font-weight:700;font-size:.9rem}
.vwr-origins .vo-tab-date{font-weight:600;font-size:.66rem;letter-spacing:.01em;color:var(--text-3)}
.vwr-origins .vo-tab[aria-selected="true"]{background:#fff;color:var(--moss-deep);box-shadow:0 1px 4px rgba(0,0,0,.14)}
.vwr-origins .vo-tab[aria-selected="true"] .vo-tab-date{color:var(--moss)}
.vwr-origins .vo-tab:focus-visible{outline:2px solid var(--save);outline-offset:2px}

.vwr-origins .vo-grid{display:grid;grid-template-columns:1.02fr 1.05fr;gap:clamp(24px,4vw,48px);align-items:center}
@media (max-width:760px){.vwr-origins .vo-grid{grid-template-columns:1fr;text-align:center}}
.vwr-origins .vo-date{display:inline-flex;align-items:center;gap:7px;margin:0 0 8px;font-size:.85rem;font-weight:700;
  color:var(--text-2);background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:5px 13px}
.vwr-origins .vo-date.soon{color:#fff;background:var(--moss-deep);border-color:var(--moss-deep)}
.vwr-origins .vo-h{margin:4px 0 0;font-size:clamp(1.7rem,3.7vw,2.4rem);font-weight:800;letter-spacing:-.022em;line-height:1.12}
.vwr-origins .vo-h .vo-n{color:var(--save);font-variant-numeric:tabular-nums}
.vwr-origins .vo-h .vo-plus{color:var(--vo-canada)}
.vwr-origins .vo-grow{display:inline-block;margin-left:8px;font-size:.5em;font-weight:800;color:var(--vo-canada);vertical-align:middle;white-space:nowrap}
.vwr-origins .vo-grow::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;
  margin-right:6px;vertical-align:middle;animation:vo-blink 1.8s ease-in-out infinite}
.vwr-origins .vo-tracker{display:inline-flex;align-items:baseline;gap:3px;margin:14px 0 2px;padding:9px 16px;border-radius:14px;
  background:var(--save-soft,#eaf6ec);border:1px solid color-mix(in srgb,var(--save) 26%,transparent)}
.vwr-origins .vo-tnum{font-size:1.85rem;font-weight:900;color:var(--save);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1}
.vwr-origins .vo-tplus{font-size:1.3rem;font-weight:900;color:var(--save);line-height:1}
.vwr-origins .vo-tlbl{font-size:.9rem;font-weight:800;color:var(--text-2);margin-left:7px;align-self:center}
.vwr-origins .vo-lead{margin:14px 0 0;color:var(--text-2);font-size:1.03rem;max-width:46ch}
@media (max-width:760px){.vwr-origins .vo-lead,.vwr-origins .vo-tracker{margin-inline:auto}.vwr-origins .vo-chips{justify-content:center}}
.vwr-origins .vo-chips{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}
.vwr-origins .vo-chip{font-size:.82rem;font-weight:600;color:var(--text-2);background:var(--cream);border:1px solid var(--line);border-radius:999px;padding:5px 12px}
.vwr-origins .vo-chip.home{color:#fff;background:var(--moss-deep);border-color:var(--moss-deep)}

.vwr-origins .vo-mapwrap{display:flex;flex-direction:column;align-items:center;gap:14px}
.vwr-origins .vo-can-row{width:100%;max-width:520px;display:flex;justify-content:flex-end}
.vwr-origins .vo-canada-badge{display:inline-flex;align-items:center;gap:6px;background:var(--vo-canada);color:#fff;
  font-weight:800;font-size:.82rem;padding:6px 13px;border-radius:999px;box-shadow:0 6px 16px -6px rgba(192,103,63,.7)}
.vwr-origins .vo-map{width:100%;max-width:520px;height:auto;display:block}
.vwr-origins .vo-map path{fill:var(--vo-tile);stroke:#fff;stroke-width:1;transition:fill .3s ease}
.vwr-origins .vo-map path.lit{fill:var(--moss)}
.vwr-origins .vo-map path.home{fill:var(--moss-deep);stroke:var(--vo-gold);stroke-width:2.2}
.vwr-origins .vo-legend{margin:0;font-size:.78rem;color:var(--text-3);display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:center}
.vwr-origins .vo-lg{width:13px;height:13px;border-radius:4px;display:inline-block}
.vwr-origins .vo-lg.home{background:var(--moss-deep);box-shadow:inset 0 0 0 2px var(--vo-gold)}
.vwr-origins .vo-lg.lit{background:var(--moss);margin-left:10px}
.vwr-origins .vo-lg.can{background:var(--vo-canada);margin-left:10px}

@keyframes vo-pulse{0%{box-shadow:0 0 0 0 rgba(255,255,255,.8)}70%{box-shadow:0 0 0 7px rgba(255,255,255,0)}100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}}
@keyframes vo-blink{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}
@media (prefers-reduced-motion:reduce){
  .vwr-origins .vo-dot,.vwr-origins .vo-rdot,.vwr-origins .vo-grow::before{animation:none}
  .vwr-origins .vo-card{transition:none}
}
