/* ============================================================
   SPORTERRA TICKETS — crimson accent (--c-tickets #B51A1A)
   ============================================================ */
:root{
  --tk:      #B51A1A;
  --tk-700:  #991313;
  --tk-800:  #7A0F0F;
  --tk-50:   #FCEBEB;
  --tk-100:  #F7D6D6;
}

.tk .eyebrow { color: var(--tk-700); }
.tk .eyebrow::before { background: var(--tk-700); }

.btn-tk { background: var(--tk); color:#fff; border:1px solid var(--tk); }
.btn-tk:hover { background: var(--tk-700); color:#fff; box-shadow:0 12px 26px -12px rgba(181,26,26,.55); transform:translateY(-1px); }

/* hero */
.tk-hero { background:
   radial-gradient(120% 130% at 88% -10%, var(--tk-50), transparent 55%), #fff; padding-top:2.4rem; }
.tk-search { display:flex; align-items:center; gap:.6rem; background:#fff; border:1px solid var(--line-2);
  border-radius:999px; padding:.55rem .55rem .55rem 1.2rem; box-shadow:var(--shadow-sm); max-width:560px; }
.tk-search input { border:0; outline:0; flex:1; font-size:1rem; font-family:var(--font); color:var(--ink); background:transparent; }
.tk-search input::placeholder { color:#9aa8a1; }

/* category pills */
.pill-scroll { display:flex; gap:.6rem; overflow-x:auto; padding-bottom:.4rem; scrollbar-width:none; }
.pill-scroll::-webkit-scrollbar { display:none; }
.tk-pill { flex:0 0 auto; display:inline-flex; align-items:center; gap:.5rem; background:#fff; border:1px solid var(--line);
  border-radius:999px; padding:.55rem 1.05rem; font-weight:600; font-size:.92rem; color:var(--ink-2); cursor:pointer; transition:all .2s var(--ease); white-space:nowrap; }
.tk-pill i { color:var(--tk-700); }
.tk-pill:hover { border-color:var(--tk); }
.tk-pill.active { background:var(--ink); color:#fff; border-color:var(--ink); }
.tk-pill.active i { color:#ff9a9a; }

/* filters (shared look, crimson controls) */
.filter-panel { position:sticky; top:90px; }
.filter-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.4rem; }
.filter-group + .filter-group { margin-top:1.3rem; padding-top:1.3rem; border-top:1px solid var(--line); }
.filter-group h6 { font-size:.78rem; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:700; margin-bottom:.8rem; }
.tk .form-check-input:checked { background-color:var(--tk); border-color:var(--tk); }
.tk .form-check-input:focus { box-shadow:0 0 0 .2rem rgba(181,26,26,.2); border-color:var(--tk); }
.form-check-label { font-size:.95rem; color:var(--ink-2); cursor:pointer; }
.tk .form-range::-webkit-slider-thumb { background:var(--tk); }
.tk .form-range::-moz-range-thumb { background:var(--tk); }
.sort-select { border:1px solid var(--line-2); border-radius:999px; padding:.5rem 1rem; font-family:var(--font); font-weight:600; color:var(--ink); background:#fff; }

/* event cards */
.ev-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; }
@media (max-width: 767px){ .ev-grid { grid-template-columns:1fr; } }
.ev-card { background:#fff; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; display:flex; flex-direction:column; transition: transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease); }
.ev-card:hover { transform: translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.ev-media { position:relative; aspect-ratio:16/9; background:var(--bg-soft); overflow:hidden; }
.ev-media img { width:100%; height:100%; object-fit:cover; transition: transform .5s var(--ease); }
.ev-card:hover .ev-media img { transform: scale(1.05); }
.ev-fallback { background: linear-gradient(135deg,#e9d3d3,#f6eaea); }
.ev-date { position:absolute; top:.7rem; left:.7rem; background:#fff; border-radius:11px; padding:.4rem .6rem; text-align:center; box-shadow:var(--shadow-sm); line-height:1; }
.ev-date .d { font-size:1.3rem; font-weight:800; color:var(--ink); letter-spacing:-.02em; }
.ev-date .m { font-size:.7rem; font-weight:700; text-transform:uppercase; color:var(--tk-700); letter-spacing:.06em; }
.ev-badge { position:absolute; top:.7rem; right:.7rem; font-size:.72rem; font-weight:800; padding:.28rem .55rem; border-radius:8px; backdrop-filter:blur(6px); }
.ev-badge.resale { background:rgba(19,33,26,.85); color:#fff; }
.ev-badge.hot { background:var(--tk); color:#fff; }
.ev-body { padding:1.1rem 1.2rem 1.25rem; display:flex; flex-direction:column; flex:1; }
.ev-cat { font-size:.76rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--tk-700); }
.ev-name { font-weight:800; font-size:1.18rem; letter-spacing:-.018em; margin:.2rem 0 .3rem; line-height:1.25; }
.ev-meta { color:var(--muted); font-size:.88rem; display:flex; flex-direction:column; gap:.25rem; }
.ev-meta span { display:flex; align-items:center; gap:.45rem; }
.ev-foot { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:.9rem; }
.ev-price small { color:var(--muted); display:block; font-size:.75rem; }
.ev-price b { font-size:1.2rem; font-weight:800; letter-spacing:-.02em; }

/* detail */
.ed-hero { aspect-ratio:21/9; border-radius:var(--radius-lg); overflow:hidden; background:var(--bg-soft); border:1px solid var(--line); }
.ed-hero img { width:100%; height:100%; object-fit:cover; }
.ed-fact { display:flex; gap:.8rem; align-items:flex-start; padding:.8rem 0; border-bottom:1px solid var(--line); }
.ed-fact i { width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--tk-50);color:var(--tk-700);flex:0 0 auto; }
.ed-fact .lbl { font-size:.78rem; color:var(--muted); text-transform:uppercase; letter-spacing:.05em; font-weight:700; }
.ed-fact .val { font-weight:700; }

/* ticket tiers / buy widget */
.buy-card { position:sticky; top:90px; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:1.5rem; box-shadow:var(--shadow-sm); }
.seg { display:flex; background:var(--bg-soft); border-radius:999px; padding:4px; margin-bottom:1.1rem; }
.seg button { flex:1; border:0; background:transparent; padding:.5rem; border-radius:999px; font-weight:700; cursor:pointer; color:var(--muted); font-family:var(--font); transition:all .2s var(--ease); display:flex; align-items:center; justify-content:center; gap:.4rem; }
.seg button.active { background:#fff; color:var(--ink); box-shadow:var(--shadow-sm); }
.seg button.active i { color:var(--tk-700); }

.tier { border:1.5px solid var(--line-2); border-radius:13px; padding:.9rem 1rem; cursor:pointer; transition:all .2s var(--ease); margin-bottom:.7rem; }
.tier:hover { border-color:var(--tk); }
.tier.active { border-color:var(--tk); background:var(--tk-50); }
.tier.sold { opacity:.5; cursor:not-allowed; }
.tier .tname { font-weight:800; }
.tier .tsub { font-size:.82rem; color:var(--muted); }
.tier .tprice { font-weight:800; font-size:1.1rem; letter-spacing:-.02em; }

.resale-row { border:1px solid var(--line); border-radius:13px; padding:.85rem 1rem; margin-bottom:.7rem; display:flex; align-items:center; justify-content:between; gap:1rem; }
.resale-row .seller { font-size:.82rem; color:var(--muted); }
.verified-chip { font-size:.72rem; font-weight:700; color:var(--brand); background:var(--brand-100); padding:.15rem .5rem; border-radius:999px; display:inline-flex; align-items:center; gap:.3rem; }

.qty-stepper { display:inline-flex; align-items:center; border:1px solid var(--line-2); border-radius:999px; overflow:hidden; }
.qty-stepper button { border:0; background:#fff; width:40px; height:44px; font-size:1.2rem; font-weight:700; cursor:pointer; color:var(--ink); }
.qty-stepper button:hover { background:var(--bg-soft); }
.qty-stepper span { min-width:40px; text-align:center; font-weight:800; }

.buy-total { display:flex; justify-content:space-between; font-weight:800; font-size:1.25rem; margin-top:.8rem; padding-top:.8rem; border-top:1px solid var(--line); }

/* confirmation + wallet */
.confirm-check { width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:var(--tk-50);color:var(--tk-700);font-size:2.4rem;margin:0 auto 1.4rem; }
.ticket-stub { background:#fff; border:1px solid var(--line); border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); position:relative; }
.ticket-stub .top { padding:1.1rem 1.3rem; }
.ticket-stub .perf { border-top:2px dashed var(--line-2); position:relative; padding:1.1rem 1.3rem; display:flex; gap:1rem; align-items:center; }
.ticket-stub .perf::before, .ticket-stub .perf::after { content:""; position:absolute; top:-11px; width:20px; height:20px; border-radius:50%; background:var(--bg-soft); }
.ticket-stub .perf::before { left:-10px; }
.ticket-stub .perf::after { right:-10px; }
.qr-mini { width:92px;height:92px;flex:0 0 auto; }
.qr-mini svg { width:100%;height:100%; }

.empty-state { text-align:center; padding:4rem 1rem; color:var(--muted); }
.empty-state i { font-size:2.4rem; color:var(--line-2); margin-bottom:1rem; }
.info-ic { width:46px; height:46px; border-radius:12px; display:grid; place-items:center; background:var(--tk-50); color:var(--tk-700); font-size:1.2rem; flex:0 0 auto; }
