/* ==========================================================================
   GRITS — Indie Punk site layer (v1)
   Loaded last on every page. Presentation only: no behaviour, no data.
   Jet black / deep charcoal / crisp white / electric orange. Square edges.
   ========================================================================== */
:root{
  --pk-black:#000;--pk-ink:#1A1A1A;--pk-ink2:#111;--pk-white:#fff;--pk-orange:#FF3E00;
  --pk-head:"Archivo Black","Arial Black",Impact,sans-serif;
  --pk-mono:"Roboto Mono",ui-monospace,Menlo,Consolas,monospace;
  --brand:#000;--bg:#000;
  --glass:#1A1A1A;--glass-strong:#242424;--glass-solid:#000;
  --line:rgba(255,255,255,.22);--line-strong:rgba(255,255,255,.55);
  --text:#fff;--muted:rgba(255,255,255,.84);--dim:rgba(255,255,255,.66);--ink:#000;
  --gold:#FF3E00;--gold-soft:rgba(255,62,0,.16);--accent:#FF3E00;--accent2:#FF3E00;--accent-ink:#000;
  --good:#22c55e;--warn:#facc15;--orange:#FF3E00;--bad:#ff4d4d;
  --r-sm:0;--r:0;--r-lg:0;--r-xl:0;--blur:none;--shadow:6px 6px 0 #FF3E00;
  --font-display:var(--pk-head);--font-sans:var(--pk-mono);
}
html,body{background:#000!important}
body{color:#fff;font-family:var(--pk-mono)}
body::before,body::after{background:#000!important;background-image:none!important}
::selection{background:#FF3E00;color:#000}
a{color:inherit}
a:not([class]){text-decoration-color:#FF3E00;text-underline-offset:3px}
*,*::before,*::after{border-radius:0!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}

/* type */
h1,h2,h3,.display,.hero h1,.top h1{font-family:var(--pk-head)!important;font-weight:400!important;letter-spacing:-.01em;text-transform:uppercase;line-height:1.02;color:#fff}
h1{font-size:clamp(2rem,5vw,3.6rem)}
h2{font-size:clamp(1.4rem,3vw,2.2rem)}
h3{font-size:1.15rem}
h4,h5,h6,.eyebrow,label,th,.pill,.chip,.badge{font-family:var(--pk-mono)!important;letter-spacing:.06em}
.eyebrow,.kicker{color:#FF3E00!important;text-transform:uppercase;font-weight:700}
.lead,.muted,.tm-muted,small{color:rgba(255,255,255,.84)}

/* header / footer */
.tm-header,.site-header,header.top-bar{background:#000!important;border-bottom:4px solid #FF3E00!important;box-shadow:none!important}
.brand,.brand-mark{font-family:var(--pk-head)!important;text-transform:uppercase;color:#fff!important}
.navlinks a,.tm-nav a{font-family:var(--pk-mono);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#fff}
.navlinks a[aria-current],.navlinks a.active,.tm-nav a.active{background:#fff!important;color:#000!important}
.promo-strip,.strip{background:#FF3E00!important;color:#000!important;border:0!important}
.promo-strip a,.strip a,.promo-strip *,.strip *{color:#000!important}
.tm-footer,footer{background:#000!important;border-top:4px solid #FF3E00!important;color:rgba(255,255,255,.84)}
#tm360SignedInBar{background:#111!important;border-bottom:2px solid #FF3E00!important;color:#fff!important}
#tm360SignedInBar strong{color:#FF3E00!important}

/* surfaces — white flyer cards, black ink, heavy border, orange block shadow */
html body :is(.card,.panel,.ticket-panel,.signup,.cta-final,.event-row,.compare,.table-wrap,.tablewrap,.strip>div,.trust div,.trust li,.ethos li,.rate,.calc-out,.ticket,.availability-box,.key-details,.empty,.loading,.modal-card){
  background:#fff!important;color:#000!important;border:3px solid #000!important;outline:0!important;box-shadow:6px 6px 0 #FF3E00!important}
html body :is(.card,.panel,.ticket-panel,.event-row,.signup,.strip>div,.ticket,.rate,.calc-out) :is(h1,h2,h3,h4,p,li,label,strong,b,small,dt,dd,em,span,.muted,.meta,.when,.venue,.date,.title,.price,.eyebrow){color:#000!important}
html body :is(.card,.panel,.ticket-panel,.event-row,.signup,.ticket) :is(.eyebrow,.kicker){color:#C42F00!important}
html body :is(.card,.panel,.ticket-panel,.signup,.ticket) input:not([type=checkbox]):not([type=radio]):not([type=range]),html body :is(.card,.panel,.ticket-panel,.signup,.ticket) :is(select,textarea){background:#fff!important;color:#000!important;border:2px solid #000!important}
html body :is(.card,.panel,.ticket-panel,.signup,.ticket) input::placeholder{color:#555!important}
html body :is(.card,.panel) a:not([class]){color:#C42F00!important}
.event-row:hover,.card:hover{box-shadow:9px 9px 0 #FF3E00!important}
.navlinks,.tm-nav{background:none!important;border:0!important;box-shadow:none!important;outline:0!important}
.navlinks a,.tm-nav a{color:#fff!important}
.error{color:#ff6b6b}

/* buttons — flat, square, never rust frames */
.btn,.button,button,input[type=submit],input[type=button],a.cta,.buy-badge{
  font-family:var(--pk-mono)!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.06em;
  background:#FF3E00!important;background-image:none!important;color:#000!important;
  border:2px solid #000!important;box-shadow:4px 4px 0 #fff!important;cursor:pointer;
  transition:transform .08s,box-shadow .08s;border-image:none!important}
.btn:hover,.button:hover,button:hover,a.cta:hover,.buy-badge:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 #fff!important}
.btn:active,.button:active,button:active{transform:translate(2px,2px);box-shadow:1px 1px 0 #fff!important}
.btn.secondary,.btn.ghost,.btn-ghost,.button.secondary,button.secondary,button.ghost,.btn-outline,.switch button{
  background:#000!important;color:#fff!important;border:2px solid #fff!important;box-shadow:4px 4px 0 #FF3E00!important}
button:disabled,.btn[disabled],.btn.disabled{background:#333!important;color:#aaa!important;box-shadow:none!important;cursor:not-allowed;transform:none}
.btn *,.button *,.buy-badge *{color:inherit!important}

html body :is(.card,.panel,.ticket-panel,.signup,.ticket) :is(.btn,.button,button,input[type=submit]){box-shadow:4px 4px 0 #000!important}
html body :is(.card,.panel,.ticket-panel,.signup,.ticket) :is(.btn,.button,button) *{color:#000!important}
html body :is(.card,.panel,.signup,.ticket) :is(.btn.secondary,.btn.ghost,button.secondary,.btn-outline){background:#000!important;color:#fff!important}
html body :is(.card,.panel,.signup,.ticket) :is(.btn.secondary,.btn.ghost,button.secondary,.btn-outline) *{color:#fff!important}
html body :is(.card,.panel) :is(.nofee-tag,.tag,.chip,.pill){background:#000!important;color:#fff!important;border-color:#000!important}
html body :is(.card,.panel) .nofee-tag{background:#FF3E00!important;color:#000!important}
html body :is(.card,.panel,.table-wrap,.tablewrap,.compare) td{color:#fff!important}
html body :is(.card,.panel,.table-wrap,.tablewrap,.compare) th{color:#000!important}

/* forms */
input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]):not([type=range]),select,textarea{
  background:#000!important;color:#fff!important;border:2px solid #fff!important;font-family:var(--pk-mono)!important;box-shadow:none!important}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,.55)!important}
input:focus,select:focus,textarea:focus{outline:3px solid #FF3E00!important;outline-offset:0}
select option{background:#000;color:#fff}
input[type=checkbox],input[type=radio],input[type=range]{accent-color:#FF3E00}
label{color:#fff}

/* tables — legible */
table{border-collapse:collapse;width:100%;background:#000;color:#fff;border:2px solid #fff}
th{background:#fff!important;color:#000!important;font-weight:700;text-transform:uppercase;font-size:.78rem;padding:10px 12px!important;text-align:left}
td{color:#fff!important;padding:10px 12px!important;border-bottom:1px solid rgba(255,255,255,.18)!important;background:transparent}
tbody tr:nth-child(even) td{background:#111!important}
tbody tr:hover td{background:#2a1208!important}
td a{color:#FF8a5c!important}

/* chips / badges / tags */
.pill,.chip,.badge,.tag,.nofee-tag{background:#000!important;color:#fff!important;border:2px solid #fff!important;font-weight:700;text-transform:uppercase;font-size:.72rem}
.pill.active,.chip.active,.chip[aria-pressed=true],.pill[aria-pressed=true]{background:#FF3E00!important;color:#000!important;border-color:#000!important}
.nofee-tag,.no-fee{background:#FF3E00!important;color:#000!important;border-color:#000!important}
.good{color:#22c55e!important}.bad,.error{color:#ff6b6b!important}.warn{color:#facc15!important}
.availability-bar{background:#333!important}.availability-fill{background:#FF3E00!important}

/* misc */
hr{border:0;border-top:2px solid #fff}
code,pre,kbd{font-family:var(--pk-mono);background:#111;color:#FF8a5c;border:1px solid #333}
img{border-radius:0!important}
:focus-visible{outline:3px solid #FF3E00!important;outline-offset:2px}

/* override old silver ticket plates / masks */
html body :is(#page .panel,#page .key-details,.checkout .panel,#cards .card,.event-row){
  background:#fff!important;color:#000!important;border:3px solid #000!important;border-image:none!important;
  -webkit-mask:none!important;mask:none!important;filter:none!important;box-shadow:6px 6px 0 #FF3E00!important}
html body #page .panel :is(h1,h2,h3,p,span,strong,small,label,li,div){color:#000}
/* table cells always dark rows with white text, header white with black */
html body table td{background:#000!important;color:#fff!important}
html body table tbody tr:nth-child(even) td{background:#161616!important}
html body table tbody tr:hover td{background:#2a1208!important}
html body table td :is(span,strong,b,small,em,div){color:inherit}
html body table th{background:#fff!important;color:#000!important}
/* old silver nav plate */
@media(min-width:900px){html body .tm-nav .navlinks{background:none!important;box-shadow:none!important;-webkit-mask:none!important;mask:none!important;border:0!important;border-image:none!important;padding:0!important}}
html body .tm-nav .navlinks a:not([href="promoters.html"]):not([aria-current]){color:#fff!important}
html body .tm-nav .navlinks a.nav2 b{color:#fff!important}
html body .tm-nav .navlinks a[aria-current]{background:#fff!important;color:#000!important}
html body .tm-nav .navlinks a[aria-current] b{color:#000!important}
html body .tm-nav .navlinks a.nav2 i{background:#FF3E00!important;color:#000!important;border-color:#FF3E00!important;box-shadow:none!important}
.tm-footer *{color:rgba(255,255,255,.84)}
/* boosted table + hint fixes */
html body table:not(#_) td{background:#000!important;color:#fff!important}
html body table:not(#_) tbody tr:nth-child(even) td{background:#161616!important}
html body table:not(#_) th{background:#fff!important;color:#000!important}
html body table:not(#_){background:#000!important;border:2px solid #000!important}
html body :is(.panel,.card,.signup):not(#_) :is(.hint,.note,.privacy,.message,.help,.sub){background:transparent!important;color:#222!important}
html body :is(.panel,.card,.signup):not(#_) .error,html body :is(.panel,.card):not(#_) .message.error{color:#C42F00!important}
html body .cx-bar .lab{color:#fff!important}
html body :is(.error,.empty,.loading):not(#_){background:#fff!important;color:#C42F00!important;border:3px solid #000!important}
html body .tm-footer:not(#_){background:#000!important}
html body .tm-nav .navlinks a[aria-current].nav2 b,html body .tm-nav .navlinks a[aria-current]:not(#_) b{color:#000!important}


/* contrast guard v2: dark tags inside light panels must keep light text */
html body :is(.card,.panel,.ticket-panel,.event-row,.signup,.ticket,.rate,.calc-out,form,dialog,.modal):not(#_) :is(.nofee-tag,.tag,.pill,.badge,.chip) :is(span,strong,b,small,em){color:inherit!important}
html body :not(#_) .chiplist .chip{background:#fff!important;color:#000!important;border:2px solid #000!important;text-transform:none;font-size:.85rem;padding:4px 4px 4px 10px}
html body :not(#_) .chiplist .chip span{color:#000!important}
html body:not(#_) .chiplist .chip button{all:unset;cursor:pointer;display:inline-grid;place-items:center;width:24px;height:24px;margin-left:6px;background:#FF3E00!important;color:#000!important;font-weight:700;font-size:1rem;line-height:1;box-shadow:none!important}
html body:not(#_) .chiplist .chip button:hover{background:#000!important;color:#fff!important}

/* Checkout contrast guard: ticket panel is always white with black text */
html body:not(#_):not(#__) #page .ticket-panel .ticket-summary{background:#fff!important;border:3px solid #000!important;box-shadow:4px 4px 0 #FF3E00!important}
html body:not(#_):not(#__) #page .ticket-panel .ticket-summary strong{color:#000!important;-webkit-text-fill-color:#000!important}
html body:not(#_):not(#__) #page .ticket-panel .ticket-summary span{color:#1a1a1a!important;-webkit-text-fill-color:#1a1a1a!important;opacity:1!important}
html body:not(#_):not(#__) #page .ticket-panel #promo{background:#fff!important;color:#000!important;-webkit-text-fill-color:#000!important;border:3px solid #000!important}
html body:not(#_):not(#__) #page .ticket-panel #promo::placeholder{color:#555!important;-webkit-text-fill-color:#555!important;opacity:1!important}
html body:not(#_):not(#__) #page .ticket-panel .promo-message{color:#000!important}
html body:not(#_):not(#__) #page .ticket-panel .error{color:#B00020!important;background:#fff!important}
html body:not(#_):not(#__) #page .ticket-panel .nofee{background:#000!important;color:#fff!important;-webkit-text-fill-color:#fff!important;opacity:1!important}
