/* ============================================================
   PRIMETYME FITNESS — Global Stylesheet
   Brand: Black / PrimeTyme Red (#E21F26) / White
   Identity: bold ITALIC condensed (Saira) + barbell-speed accents.
   (Reskinned from the shared engine — distinct look per client.)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Saira+Condensed:wght@500;600;700;800;900&family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  --black: #0a0a0b;
  --black-soft: #121214;
  --black-card: #17181b;
  --gold: #E21F26;          /* primary (kept var name for engine compatibility) */
  --gold-light: #FF3B41;
  --gold-dark: #A3141A;
  --white: #ffffff;
  --gray-light: #f5f5f5;
  --gray-mid: #888888;
  --gray-dark: #333333;
  --red: #E21F26;
  --font-heading: 'Saira Condensed', 'Oswald', 'Arial Black', sans-serif;
  --font-body: 'Inter', 'Helvetica Neue', Arial, sans-serif;
  --transition: 0.25s ease;
  --radius: 3px;
  --shadow: 0 4px 24px rgba(0,0,0,0.35);
  --shadow-gold: 0 6px 28px rgba(226,31,38,0.40);
}

/* PrimeTyme identity: angular italic display headings echoing the PTF logo */
h1, h2, h3 { font-style: italic; font-weight: 800; letter-spacing: 0.01em; }

/* Reset */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
/* Honor [hidden] even when an author CSS rule sets display: flex/grid/etc */
[hidden] { display: none !important; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--font-body);
  background: var(--black);
  color: var(--white);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--gold); text-decoration: none; transition: color var(--transition); }
a:hover { color: var(--gold-light); }
ul { list-style: none; }

/* Typography */
h1, h2, h3, h4, h5 {
  font-family: var(--font-heading);
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
h1 { font-size: clamp(2.2rem, 5vw, 4rem); }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.8rem); }
h3 { font-size: clamp(1.3rem, 2.5vw, 1.8rem); }
h4 { font-size: 1.2rem; }
p { margin-bottom: 1rem; }

/* Utility */
.container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; }
.container--narrow { max-width: 800px; margin: 0 auto; padding: 0 1.5rem; }
.text-gold { color: var(--gold); }
.text-center { text-align: center; }
.text-white { color: var(--white); }
.bg-black { background: var(--black); }
.bg-card { background: var(--black-card); }
.section-pad { padding: 80px 0; }
.section-pad-sm { padding: 50px 0; }
.hidden { display: none; }

/* Section Labels */
.section-label {
  display: inline-block;
  font-family: var(--font-body);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(226,31,38,0.12);
  border: 1px solid rgba(226,31,38,0.3);
  padding: 5px 14px;
  border-radius: 100px;
  margin-bottom: 1rem;
}

/* Divider */
.gold-line {
  width: 60px;
  height: 3px;
  background: var(--gold);
  margin: 1rem auto 1.5rem;
}
.gold-line--left { margin-left: 0; }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 14px 32px;
  border-radius: var(--radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all var(--transition);
  text-decoration: none;
}
.btn--primary {
  background: var(--gold);
  color: var(--black);
  border-color: var(--gold);
}
.btn--primary:hover {
  background: var(--gold-light);
  color: var(--black);
  border-color: var(--gold-light);
  transform: translateY(-2px);
  box-shadow: var(--shadow-gold);
}
.btn--outline {
  background: transparent;
  color: var(--gold);
  border-color: var(--gold);
}
.btn--outline:hover {
  background: var(--gold);
  color: var(--black);
  transform: translateY(-2px);
}
.btn--white {
  background: var(--white);
  color: var(--black);
  border-color: var(--white);
}
.btn--white:hover {
  background: transparent;
  color: var(--white);
  transform: translateY(-2px);
}
.btn--lg { padding: 18px 40px; font-size: 1.1rem; }
.btn--sm { padding: 10px 22px; font-size: 0.85rem; }

/* ============================================================
   NAVIGATION
   ============================================================ */
.navbar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: rgba(10,10,10,0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(226,31,38,0.15);
  transition: all var(--transition);
}
.navbar.scrolled {
  background: rgba(10,10,10,0.98);
  border-bottom-color: rgba(226,31,38,0.3);
}
.navbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 72px;
}
.navbar__logo {
  font-family: var(--font-heading);
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1;
  text-decoration: none;
}
.navbar__logo:hover { color: var(--white); }
.navbar__logo span { color: var(--gold); }
.navbar__logo img { display:block; }
.navbar__nav {
  display: flex;
  align-items: center;
  gap: 2rem;
}
.navbar__nav a {
  color: var(--white);
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color var(--transition);
  position: relative;
}
.navbar__nav a::after {
  content: '';
  position: absolute;
  bottom: -3px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--gold);
  transition: width var(--transition);
}
.navbar__nav a:hover, .navbar__nav a.active { color: var(--gold); }
.navbar__nav a:hover::after, .navbar__nav a.active::after { width: 100%; }
.navbar__cta { margin-left: 1rem; }

/* Dropdown */
.navbar__nav .dropdown { position: relative; }
.navbar__nav .dropdown-toggle { cursor: pointer; }
.dropdown-menu {
  position: absolute;
  top: calc(100% + 16px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--black-card);
  border: 1px solid rgba(226,31,38,0.2);
  border-radius: var(--radius);
  min-width: 200px;
  padding: 8px 0;
  opacity: 0;
  visibility: hidden;
  transition: all var(--transition);
  box-shadow: var(--shadow);
}
.dropdown:hover .dropdown-menu,
.dropdown:focus-within .dropdown-menu {
  opacity: 1;
  visibility: visible;
  top: calc(100% + 8px);
}
.dropdown-menu a {
  display: block;
  padding: 10px 20px;
  font-size: 0.82rem;
  color: var(--white);
  border-bottom: none;
}
.dropdown-menu a::after { display: none; }
.dropdown-menu a:hover { background: rgba(226,31,38,0.1); color: var(--gold); }

/* Mobile nav */
.navbar__hamburger {
  display: none;
  flex-direction: column;
  gap: 5px;
  cursor: pointer;
  background: none;
  border: none;
  padding: 5px;
}
.navbar__hamburger span {
  display: block;
  width: 26px;
  height: 2px;
  background: var(--white);
  transition: all var(--transition);
}
.mobile-nav {
  display: none;
  position: fixed;
  top: 72px;
  left: 0;
  right: 0;
  bottom: 0;
  background: var(--black);
  z-index: 999;
  padding: 2rem 1.5rem;
  overflow-y: auto;
}
.mobile-nav.open { display: block; }
.mobile-nav a {
  display: block;
  font-family: var(--font-heading);
  font-size: 1.5rem;
  color: var(--white);
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.mobile-nav a:hover, .mobile-nav a.active { color: var(--gold); }
.mobile-nav .mobile-cta { margin-top: 2rem; display: block; text-align: center; }

/* ============================================================
   HERO
   ============================================================ */
.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--black);
}
.hero__bg {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(135deg, #0a0a0a 0%, #150a0b 50%, #0a0a0a 100%);
}
.hero__bg-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: 65% center;
  opacity: 0.45;
}
.hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(10,10,10,0.92) 45%, rgba(10,10,10,0.3) 100%);
}
.hero__content {
  position: relative;
  z-index: 1;
  padding: 120px 0 80px;
  max-width: 680px;
}
.hero__eyebrow {
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 10px;
}
.hero__eyebrow::before {
  content: '';
  display: inline-block;
  width: 30px;
  height: 2px;
  background: var(--gold);
}
.hero h1 { margin-bottom: 1.25rem; }
.hero h1 span { color: var(--gold); }
.hero__subtitle {
  font-size: 1.15rem;
  color: rgba(255,255,255,0.8);
  margin-bottom: 2rem;
  max-width: 520px;
}
.hero__ctas { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 2.5rem; }
.hero__trust {
  display: flex;
  gap: 2rem;
  flex-wrap: wrap;
}
.hero__trust-item {
  display: flex;
  flex-direction: column;
}
.hero__trust-item .number {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  color: var(--gold);
  line-height: 1;
}
.hero__trust-item .label {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

/* Page Hero (inner pages) */
.page-hero {
  padding: 140px 0 70px;
  background: var(--black-soft);
  position: relative;
  overflow: hidden;
}
.page-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 20% 50%, rgba(226,31,38,0.1) 0%, transparent 60%);
  z-index: 0;
}
.page-hero__bg-image {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 25%;
  opacity: 0.22;
  z-index: 0;
}
.page-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right, rgba(10,10,10,0.95) 30%, rgba(10,10,10,0.5) 100%);
  z-index: 0;
}
.page-hero__content { position: relative; z-index: 1; }
.page-hero h1 { margin-bottom: 1rem; }
.page-hero h1 span { color: var(--gold); }
.breadcrumb {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 0.82rem;
  color: var(--gray-mid);
  margin-bottom: 1.5rem;
}
.breadcrumb a { color: var(--gray-mid); }
.breadcrumb a:hover { color: var(--gold); }
.breadcrumb span { color: var(--gold); }

/* ============================================================
   SERVICES GRID
   ============================================================ */
.services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
}
.service-card {
  background: var(--black-card);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 2rem;
  transition: all var(--transition);
  position: relative;
  overflow: hidden;
}
.service-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--gold), var(--gold-light));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--transition);
}
.service-card:hover {
  border-color: rgba(226,31,38,0.35);
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.service-card:hover::before { transform: scaleX(1); }
.service-card__icon {
  width: 52px;
  height: 52px;
  background: rgba(226,31,38,0.12);
  border: 1px solid rgba(226,31,38,0.2);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  font-size: 1.4rem;
  color: var(--gold);
}
.service-card h3 { margin-bottom: 0.75rem; font-size: 1.2rem; }
.service-card p { color: rgba(255,255,255,0.65); font-size: 0.9rem; margin-bottom: 1.25rem; }
.service-card__link {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gold);
  display: flex;
  align-items: center;
  gap: 6px;
}
.service-card__link:hover { color: var(--gold-light); gap: 10px; }

/* ============================================================
   ABOUT / TRAINER SECTION
   ============================================================ */
.trainer-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}
.trainer-section__image {
  position: relative;
}
.trainer-section__image-wrap {
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--black-card);
  aspect-ratio: 4/5;
  display: flex;
  align-items: center;
  justify-content: center;
}
.trainer-section__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.trainer-section__image-accent {
  position: absolute;
  top: -16px;
  right: -16px;
  width: 80px;
  height: 80px;
  background: var(--gold);
  border-radius: var(--radius);
  z-index: -1;
}
.trainer-section__image-badge {
  position: absolute;
  bottom: 24px;
  left: -20px;
  background: var(--black-card);
  border: 1px solid rgba(226,31,38,0.3);
  border-radius: var(--radius);
  padding: 14px 20px;
  box-shadow: var(--shadow);
}
.trainer-section__image-badge .years {
  font-family: var(--font-heading);
  font-size: 2rem;
  color: var(--gold);
  line-height: 1;
}
.trainer-section__image-badge .label {
  font-size: 0.75rem;
  color: rgba(255,255,255,0.6);
  text-transform: uppercase;
  letter-spacing: 0.1em;
}
.credential-list { margin: 1.5rem 0; }
.credential-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  font-size: 0.9rem;
  color: rgba(255,255,255,0.8);
}
.credential-list li::before {
  content: '\f00c';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  color: var(--gold);
  font-size: 0.75rem;
  margin-top: 3px;
  flex-shrink: 0;
}

/* ============================================================
   PRICING CARDS
   ============================================================ */
.pricing-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.5rem;
  align-items: start;
}
.pricing-card {
  background: var(--black-card);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
  padding: 2rem;
  position: relative;
  transition: all var(--transition);
}
.pricing-card:hover {
  border-color: rgba(226,31,38,0.3);
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.pricing-card--featured {
  border-color: var(--gold);
  background: linear-gradient(135deg, var(--black-card) 0%, rgba(226,31,38,0.07) 100%);
}
.pricing-card__badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gold);
  color: var(--black);
  font-family: var(--font-body);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 100px;
  white-space: nowrap;
}
.pricing-card h3 { margin-bottom: 0.5rem; font-size: 1.1rem; }
.pricing-card__desc { font-size: 0.85rem; color: rgba(255,255,255,0.5); margin-bottom: 1.5rem; }
.pricing-card__price {
  display: flex;
  align-items: baseline;
  gap: 4px;
  margin-bottom: 1.5rem;
}
.pricing-card__price .currency {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  color: var(--gold);
}
.pricing-card__price .amount {
  font-family: var(--font-heading);
  font-size: 3rem;
  color: var(--white);
  line-height: 1;
}
.pricing-card__price .period {
  font-size: 0.85rem;
  color: rgba(255,255,255,0.5);
}
.pricing-card__features {
  margin-bottom: 1.75rem;
}
.pricing-card__features li {
  display: block;
  position: relative;
  padding: 6px 0 6px 22px;
  font-size: 0.88rem;
  line-height: 1.45;
  color: rgba(255,255,255,0.75);
}
.pricing-card__features li::before {
  content: '\f00c';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  color: var(--gold);
  font-size: 0.75rem;
  position: absolute;
  left: 0;
  top: 10px;
}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}
.testimonial-card {
  background: var(--black-card);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 1.75rem;
}
.testimonial-card__stars {
  color: var(--gold);
  font-size: 0.9rem;
  letter-spacing: 2px;
  margin-bottom: 1rem;
  letter-spacing: 3px;
}
.testimonial-card p {
  font-size: 0.92rem;
  color: rgba(255,255,255,0.8);
  margin-bottom: 1.25rem;
  font-style: italic;
  line-height: 1.7;
}
.testimonial-card__author {
  display: flex;
  align-items: center;
  gap: 12px;
}
.testimonial-card__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(226,31,38,0.15);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 1rem;
  color: var(--gold);
  flex-shrink: 0;
}
.testimonial-card__author-name {
  font-weight: 700;
  font-size: 0.88rem;
}
.testimonial-card__author-detail {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.45);
}

/* ============================================================
   FAQ
   ============================================================ */
.faq-list { max-width: 760px; margin: 0 auto; }
.faq-item {
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.faq-item__question {
  width: 100%;
  background: none;
  border: none;
  text-align: left;
  cursor: pointer;
  padding: 1.25rem 0;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  font-family: var(--font-heading);
  font-size: 1rem;
  color: var(--white);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  transition: color var(--transition);
}
.faq-item__question:hover { color: var(--gold); }
.faq-item__icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border: 1px solid rgba(226,31,38,0.4);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  color: var(--gold);
  transition: transform var(--transition);
}
.faq-item.open .faq-item__icon { transform: rotate(45deg); }
.faq-item__answer {
  display: none;
  padding: 0 0 1.25rem;
  font-size: 0.92rem;
  color: rgba(255,255,255,0.72);
  line-height: 1.75;
}
.faq-item.open .faq-item__answer { display: block; }

/* ============================================================
   LEAD CAPTURE / CTA BANNER
   ============================================================ */
.cta-banner {
  background: linear-gradient(135deg, #150a0b 0%, #0a0a0a 50%, #150a0b 100%);
  border-top: 1px solid rgba(226,31,38,0.2);
  border-bottom: 1px solid rgba(226,31,38,0.2);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
}
.cta-banner::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -20%;
  width: 60%;
  height: 200%;
  background: radial-gradient(ellipse, rgba(226,31,38,0.1) 0%, transparent 70%);
}
.cta-banner__content {
  position: relative;
  z-index: 1;
  text-align: center;
  max-width: 680px;
  margin: 0 auto;
}
.cta-banner h2 { margin-bottom: 1rem; }
.cta-banner p { color: rgba(255,255,255,0.7); margin-bottom: 2rem; font-size: 1.05rem; }
.cta-banner__ctas { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; }

/* Lead Capture Form */
.lead-form {
  display: flex;
  gap: 0;
  max-width: 480px;
  margin: 0 auto;
}
.lead-form input {
  flex: 1;
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(226,31,38,0.3);
  border-right: none;
  color: var(--white);
  padding: 14px 18px;
  font-size: 0.95rem;
  border-radius: var(--radius) 0 0 var(--radius);
  outline: none;
  transition: border-color var(--transition);
}
.lead-form input:focus { border-color: var(--gold); }
.lead-form input::placeholder { color: rgba(255,255,255,0.4); }
.lead-form button {
  background: var(--gold);
  color: var(--black);
  border: none;
  padding: 14px 24px;
  font-family: var(--font-heading);
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 0 var(--radius) var(--radius) 0;
  transition: background var(--transition);
}
.lead-form button:hover { background: var(--gold-light); }

/* ============================================================
   CONTACT FORM
   ============================================================ */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 4rem;
  align-items: start;
}
.contact-info { padding-top: 0.5rem; }
.contact-info h2 { margin-bottom: 1rem; }
.contact-info p { color: rgba(255,255,255,0.7); margin-bottom: 2rem; }
.contact-detail {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  margin-bottom: 1.5rem;
}
.contact-detail__icon {
  width: 44px;
  height: 44px;
  background: rgba(226,31,38,0.12);
  border: 1px solid rgba(226,31,38,0.2);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.1rem;
  color: var(--gold);
}
.contact-detail__text strong { display: block; font-size: 0.82rem; color: var(--gold); text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 3px; }
.contact-detail__text span { font-size: 0.9rem; color: rgba(255,255,255,0.7); }

.form-card {
  background: var(--black-card);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: var(--radius);
  padding: 2.5rem;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.form-group {
  margin-bottom: 1.25rem;
}
.form-group label {
  display: block;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
  margin-bottom: 8px;
}
.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.1);
  color: var(--white);
  padding: 12px 16px;
  font-size: 0.92rem;
  font-family: var(--font-body);
  border-radius: var(--radius);
  outline: none;
  transition: border-color var(--transition);
  -webkit-appearance: none;
}
.form-group select { cursor: pointer; }
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--gold);
  background: rgba(226,31,38,0.05);
}
.form-group textarea { resize: vertical; min-height: 120px; }
.form-group input::placeholder,
.form-group textarea::placeholder { color: rgba(255,255,255,0.3); }
.form-group select option { background: var(--black-card); }

/* ============================================================
   BLOG
   ============================================================ */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.75rem;
}
.blog-card {
  background: var(--black-card);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  overflow: hidden;
  transition: all var(--transition);
}
.blog-card:hover {
  border-color: rgba(226,31,38,0.2);
  transform: translateY(-4px);
  box-shadow: var(--shadow);
}
.blog-card__image {
  background: rgba(226,31,38,0.1);
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  position: relative;
  overflow: hidden;
  text-decoration: none;
  color: var(--gold);
}
.blog-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}
.blog-card:hover .blog-card__image img {
  transform: scale(1.04);
}

/* Article hero image — fills width below the page-hero header */
.article-hero {
  margin: 0;
  padding: 0;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
  padding: 0 1.5rem;
}
.article-hero img {
  width: 100%;
  height: auto;
  max-height: 480px;
  object-fit: cover;
  border-radius: var(--radius);
  display: block;
  box-shadow: 0 20px 60px rgba(0,0,0,0.4);
}
@media (max-width: 768px) {
  .article-hero { padding: 0 1rem; }
  .article-hero img { max-height: 300px; }
}
.blog-card__cat {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--gold);
  color: var(--black);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 3px;
}
.blog-card__body { padding: 1.5rem; }
.blog-card__meta {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.4);
  margin-bottom: 0.75rem;
  display: flex;
  gap: 12px;
}
.blog-card h3 { font-size: 1.1rem; margin-bottom: 0.75rem; }
.blog-card h3 a { color: var(--white); }
.blog-card h3 a:hover { color: var(--gold); }
.blog-card p { font-size: 0.87rem; color: rgba(255,255,255,0.6); }
.blog-card__readmore {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gold);
  margin-top: 0.75rem;
}

/* ============================================================
   STATS BAR
   ============================================================ */
.stats-bar {
  background: var(--gold);
  padding: 2rem 0;
}
.stats-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  text-align: center;
}
.stat-item .number {
  font-family: var(--font-heading);
  font-size: 2.5rem;
  color: var(--white);
  line-height: 1;
}
.stat-item .label {
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.75);
  margin-top: 4px;
}

/* ============================================================
   CELEBRITIES / SOCIAL PROOF
   ============================================================ */
.social-proof-bar {
  border-top: 1px solid rgba(255,255,255,0.06);
  border-bottom: 1px solid rgba(255,255,255,0.06);
  padding: 2rem 0;
}
.social-proof-bar p {
  text-align: center;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.35);
  margin-bottom: 1.5rem;
}
.proof-items {
  display: flex;
  gap: 3rem;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.proof-item {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  color: rgba(255,255,255,0.5);
  letter-spacing: 0.05em;
  transition: color var(--transition);
}
.proof-item:hover { color: var(--gold); }

/* ============================================================
   FOOTER
   ============================================================ */
footer {
  background: var(--black-soft);
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 60px 0 30px;
}
.footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 3rem;
  margin-bottom: 3rem;
}
.footer-brand .logo {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  color: var(--white);
  margin-bottom: 0.75rem;
}
.footer-brand .logo span { color: var(--gold); }
.footer-brand p {
  font-size: 0.87rem;
  color: rgba(255,255,255,0.5);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}
.social-links { display: flex; gap: 10px; }
.social-link {
  width: 40px;
  height: 40px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--white);
  font-size: 1rem;
  transition: all var(--transition);
}
.social-link:hover {
  background: var(--gold);
  border-color: var(--gold);
  color: var(--black);
  transform: translateY(-2px);
}
.footer-col h4 {
  font-size: 0.8rem;
  letter-spacing: 0.15em;
  color: var(--gold);
  margin-bottom: 1.25rem;
}
.footer-col ul li {
  margin-bottom: 0.6rem;
}
.footer-col ul li a {
  font-size: 0.87rem;
  color: rgba(255,255,255,0.5);
}
.footer-col ul li a:hover { color: var(--white); }
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,0.06);
  padding-top: 1.5rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}
.footer-bottom p { font-size: 0.82rem; color: rgba(255,255,255,0.35); margin: 0; }
.footer-bottom a { color: rgba(255,255,255,0.35); font-size: 0.82rem; }
.footer-bottom a:hover { color: var(--gold); }
.footer-bottom .made-by { color: rgba(255,255,255,0.4); white-space: nowrap; }
.footer-bottom .made-by a { color: var(--gold); font-weight: 700; font-size: 0.82rem; letter-spacing: 0.02em; }
.footer-bottom .made-by a:hover { color: var(--gold-light); text-decoration: underline; }

/* ============================================================
   TRAP BOXING HERO — Two-column: text left, Mike cutout right
   ============================================================ */
.trap-hero {
  position: relative;
  min-height: calc(85vh - 60px);
  display: block;
  overflow: visible;
  background: #030008;
}
.trap-hero__bg-blur {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(135deg,#0a0a0b 0%,#170a0b 55%,#2a0d10 100%); /* TODO: real PrimeTyme action photo */
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: blur(4px) saturate(1.3);
  opacity: 0.55;
}
.trap-hero__bg-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to right,
    rgba(3,0,8,0.85) 0%,
    rgba(3,0,8,0.55) 45%,
    rgba(3,0,8,0.45) 100%
  );
}
.trap-hero__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 65% 90% at 75% 55%, rgba(0,70,220,0.22) 0%, transparent 65%),
    radial-gradient(ellipse 45% 55% at 25% 35%, rgba(0,160,60,0.07) 0%, transparent 55%),
    radial-gradient(ellipse 90% 45% at 50% 100%, rgba(60,0,120,0.28) 0%, transparent 65%);
}
.trap-hero__inner {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1fr);
  gap: 0;
  align-items: stretch;
  min-height: calc(85vh - 60px);
  padding-top: 110px;
  padding-bottom: 30px;
  position: relative;
  z-index: 1;
}
.trap-hero__content {
  padding: 1rem 1.5rem 1rem 0;
  align-self: center;
}
.trap-hero__logo {
  height: 78px;
  width: auto;
  display: block;
  margin-bottom: 1.5rem;
  filter: brightness(0) invert(1);
}
.trap-hero__sub {
  font-family: var(--font-heading);
  font-size: 0.75rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.75rem;
}
.trap-hero__title {
  font-family: var(--font-heading);
  font-size: clamp(2.4rem, 4.5vw, 4rem);
  line-height: 1.08;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 1.25rem;
}
.trap-hero__desc {
  color: rgba(255,255,255,0.68);
  max-width: 480px;
  font-size: 1.05rem;
  line-height: 1.65;
  margin-bottom: 2rem;
}
.trap-hero__image {
  display: flex;
  align-items: flex-end;
  justify-content: flex-start;
  position: relative;
  z-index: 2;
  margin-left: -2rem;
  /* Drop-shadow on the parent — follows the masked silhouette instead of being clipped by the mask */
  filter: drop-shadow(0 0 50px rgba(0,200,80,0.25)) drop-shadow(0 0 100px rgba(0,80,220,0.18));
}
.trap-hero__cutout {
  height: 92vh;
  max-height: 92vh;
  width: auto;
  max-width: none;
  object-fit: contain;
  object-position: bottom left;
  display: block;
  margin-bottom: -110px;
  -webkit-mask-image: linear-gradient(to bottom, black 0%, black 80%, transparent 100%);
  mask-image: linear-gradient(to bottom, black 0%, black 80%, transparent 100%);
}

/* ============================================================
   TRAP BOXING PHOTO GALLERY — 6 equal tiles, no gaps
   ============================================================ */
.trap-gallery {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-auto-rows: 300px;
  gap: 8px;
}
.trap-gallery__item {
  overflow: hidden;
  border-radius: var(--radius);
  background: var(--black-card);
}
.trap-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
  display: block;
  transition: transform 0.4s ease;
}
.trap-gallery__item:hover img { transform: scale(1.04); }

@media (max-width: 1024px) {
  .trap-hero__inner { gap: 1rem; }
  .trap-hero__title { font-size: clamp(2rem, 4vw, 3rem); }
}
@media (max-width: 1024px) {
  .trap-hero__inner { gap: 1rem; }
  .trap-hero__title { font-size: clamp(2rem, 4vw, 3rem); }
  .trap-hero__logo { height: 62px; }
  .trap-hero__image { margin-left: 0; }
  .trap-hero__cutout { height: 80vh; max-height: 80vh; }
}
@media (max-width: 768px) {
  .trap-hero {
    min-height: auto;
    overflow: hidden;
  }
  .trap-hero__logo {
    height: 110px;
    margin: 0 auto 1.25rem;
  }
  .trap-hero__inner {
    grid-template-columns: 1fr;
    gap: 0;
    min-height: auto;
    padding: 110px 0 50px;
    align-items: center;
  }
  .trap-hero__content {
    padding: 0;
    text-align: center;
    order: 1;
  }
  .trap-hero__content .breadcrumb { justify-content: center; }
  .trap-hero__sub { text-align: center; }
  .trap-hero__title { margin-bottom: 1rem; }
  .trap-hero__desc { max-width: 100%; margin: 0 auto 1.5rem; }
  .trap-hero__content > div:last-child { justify-content: center; }
  /* Hide Mike cutout on mobile — logo carries the brand */
  .trap-hero__image { display: none; }
  .trap-gallery { grid-template-columns: 1fr 1fr; grid-auto-rows: 200px; }
}
@media (max-width: 480px) {
  .trap-gallery { grid-template-columns: 1fr; grid-auto-rows: 220px; }
}

/* ============================================================
   HOMEPAGE TRAP BOXING FEATURE — signature event under hero
   ============================================================ */
.home-trap {
  position: relative;
  padding: 5rem 0;
  background: #030008;
  overflow: hidden;
  border-top: 1px solid rgba(226,31,38,0.3);
  border-bottom: 1px solid rgba(226,31,38,0.3);
}
.home-trap__bg { position: absolute; inset: 0; pointer-events: none; }
.home-trap__bg-image {
  position: absolute; inset: 0;
  background-image: linear-gradient(135deg,#0a0a0b 0%,#170a0b 50%,#2a0d10 100%); /* TODO: real PrimeTyme hero photo */
  background-size: cover;
  background-position: center;
  filter: blur(5px) saturate(1.3);
  opacity: 0.32;
}
.home-trap__bg-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(3,0,8,0.92) 0%, rgba(3,0,8,0.65) 55%, rgba(3,0,8,0.85) 100%);
}
.home-trap__bg-glow {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 70% at 80% 50%, rgba(226,31,38,0.22) 0%, transparent 60%),
    radial-gradient(ellipse 40% 50% at 20% 30%, rgba(0,160,60,0.08) 0%, transparent 55%),
    radial-gradient(ellipse 80% 40% at 50% 100%, rgba(60,0,120,0.28) 0%, transparent 65%);
}
.home-trap__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
}
.home-trap__logo {
  height: 64px;
  width: auto;
  display: block;
  filter: brightness(0) invert(1);
  margin-bottom: 1.25rem;
}
.home-trap h2 {
  font-size: clamp(2rem, 3.5vw, 3rem);
  line-height: 1.08;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 1.25rem;
}
.home-trap__lede {
  color: rgba(255,255,255,0.72);
  font-size: 1.05rem;
  line-height: 1.65;
  margin: 1rem 0 1.75rem;
  max-width: 540px;
}
.home-trap__stats {
  display: grid;
  grid-template-columns: repeat(3, auto);
  gap: 2.25rem;
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
}
.home-trap__stats li {
  display: flex;
  flex-direction: column;
}
.home-trap__stats strong {
  font-family: var(--font-heading);
  font-size: 2.25rem;
  color: var(--gold);
  line-height: 1;
}
.home-trap__stats span {
  font-size: 0.74rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.55);
  margin-top: 0.5rem;
}
.home-trap__ctas {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.home-trap__venues {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  color: rgba(255,255,255,0.45);
  text-transform: uppercase;
  margin: 0;
}
.home-trap__gallery {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  grid-template-rows: 200px 200px;
  gap: 10px;
}
.home-trap__gallery img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: var(--radius);
  display: block;
  box-shadow: 0 10px 30px rgba(0,0,0,0.4);
}
.home-trap__gallery img:nth-child(1) {
  grid-row: span 2;
  height: 410px;
}
.home-trap__gallery img:nth-child(4) {
  grid-column: 2;
}

/* Top-level Trap Boxing nav item — flame styling so it pops */
.nav-trap {
  color: var(--gold) !important;
  font-weight: 700;
}
.nav-trap:hover { color: var(--gold-light) !important; }
.mobile-nav .nav-trap { color: var(--gold) !important; font-weight: 700; }

@media (max-width: 900px) {
  .home-trap__inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .home-trap__lede { max-width: 100%; }
}
@media (max-width: 768px) {
  .home-trap { padding: 3.5rem 0; }
  .home-trap__stats { gap: 1.5rem; }
  .home-trap__stats strong { font-size: 1.85rem; }
  .home-trap__gallery { grid-template-rows: 150px 150px; }
  .home-trap__gallery img:nth-child(1) { height: 310px; }
  .home-trap__logo { height: 54px; }
}
@media (max-width: 480px) {
  .home-trap__stats { gap: 1rem; }
  .home-trap__stats strong { font-size: 1.5rem; }
  .home-trap__stats span { font-size: 0.66rem; }
}

/* ============================================================
   ABOUT PAGE SPECIFIC
   ============================================================ */
.celebrity-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
}
.celebrity-card {
  background: var(--black-card);
  border: 1px solid rgba(226,31,38,0.15);
  border-radius: var(--radius);
  padding: 1.5rem;
  text-align: center;
}
.celebrity-card__emoji { font-size: 2rem; margin-bottom: 0.75rem; color: var(--gold); }
.celebrity-card h4 { font-size: 1rem; color: var(--gold); }
.celebrity-card p { font-size: 0.82rem; color: rgba(255,255,255,0.55); margin: 0; }

/* ============================================================
   LOCATION BADGES
   ============================================================ */
.location-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
}
.location-card {
  background: var(--black-card);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.location-card h4 { color: var(--gold); margin-bottom: 0.5rem; font-size: 1rem; }
.location-card p { font-size: 0.85rem; color: rgba(255,255,255,0.6); margin: 0; }
.location-card .schedule { margin-top: 0.75rem; font-size: 0.8rem; color: var(--gold); }

/* ============================================================
   LEAD CAPTURE STRIP
   ============================================================ */
.lead-strip {
  background: linear-gradient(135deg, #0f0000 0%, #150a0b 50%, #0d0d0d 100%);
  border-top: 1px solid rgba(226,31,38,0.25);
  border-bottom: 1px solid rgba(226,31,38,0.25);
  padding: 2.25rem 0;
}
.lead-strip__inner {
  display: flex;
  align-items: center;
  gap: 2.5rem;
  flex-wrap: wrap;
}
.lead-strip__text {
  flex: 1;
  min-width: 220px;
}
.lead-strip__text strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 0.3rem;
}
.lead-strip__text span {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.55);
}
.lead-strip__form {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  flex: 2;
  min-width: 280px;
}
.lead-strip__form input {
  flex: 1;
  min-width: 150px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(226,31,38,0.35);
  border-radius: var(--radius);
  padding: 0.7rem 1rem;
  color: var(--white);
  font-size: 0.9rem;
  font-family: var(--font-body);
  outline: none;
  transition: border-color var(--transition);
}
.lead-strip__form input::placeholder { color: rgba(255,255,255,0.35); }
.lead-strip__form input:focus { border-color: var(--gold); }

/* ============================================================
   SOCIAL LINKS (footer)
   ============================================================ */
.success-msg {
  display: none;
  background: rgba(226,31,38,0.12);
  border: 1px solid rgba(226,31,38,0.4);
  border-radius: var(--radius);
  padding: 1.25rem;
  color: var(--gold);
  text-align: center;
  margin-top: 1rem;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1024px) {
  .trainer-section { grid-template-columns: 1fr; gap: 3rem; }
  .trainer-section__image { max-width: 480px; }
  .contact-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}

/* ============================================================
   LEAD POP-UP (slide-in)
   ============================================================ */
.lead-popup {
  position: fixed;
  bottom: -420px;
  right: 1.5rem;
  width: 320px;
  background: var(--black-card);
  border: 1px solid rgba(226,31,38,0.4);
  border-radius: var(--radius-lg, 12px);
  padding: 1.75rem;
  z-index: 9000;
  box-shadow: 0 20px 60px rgba(0,0,0,0.7);
  transition: bottom 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.lead-popup.is-open { bottom: 1.5rem; }
.lead-popup__close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: none;
  border: none;
  color: rgba(255,255,255,0.4);
  font-size: 1.1rem;
  cursor: pointer;
  line-height: 1;
  padding: 4px;
  transition: color var(--transition);
}
.lead-popup__close:hover { color: var(--white); }
.lead-popup__icon {
  font-size: 1.5rem;
  color: var(--gold);
  margin-bottom: 0.75rem;
}
.lead-popup h4 {
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--white);
  margin-bottom: 0.35rem;
}
.lead-popup p {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.55);
  margin-bottom: 1rem;
}
.lead-popup__form {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}
.lead-popup__form input {
  width: 100%;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(226,31,38,0.35);
  border-radius: var(--radius);
  padding: 0.65rem 0.9rem;
  color: var(--white);
  font-size: 0.88rem;
  font-family: var(--font-body);
  outline: none;
  transition: border-color var(--transition);
  box-sizing: border-box;
}
.lead-popup__form input::placeholder { color: rgba(255,255,255,0.3); }
.lead-popup__form input:focus { border-color: var(--gold); }
.lead-popup__form .btn { width: 100%; justify-content: center; margin-top: 0.25rem; }
.lead-popup__success {
  display: none;
  text-align: center;
  padding: 1rem 0;
  color: var(--gold);
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.04em;
}

/* ============================================================
   MOBILE STICKY CTA BAR (mobile only — price + button row)
   ============================================================ */
.sticky-cta-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 8000;
  background: linear-gradient(180deg, rgba(15,0,15,0.95) 0%, rgba(5,0,5,0.99) 100%);
  border-top: 1px solid rgba(226,31,38, 0.5);
  padding: 0.7rem 1rem;
  align-items: center;
  gap: 0.75rem;
  box-shadow: 0 -8px 32px rgba(0,0,0,0.7);
  backdrop-filter: blur(8px);
}
.sticky-cta-bar__price {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  flex-shrink: 0;
}
.sticky-cta-bar__amount {
  font-family: var(--font-heading);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--white);
  letter-spacing: 0.02em;
}
.sticky-cta-bar__label {
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.sticky-cta-bar__btn {
  flex: 1;
  background: linear-gradient(135deg, var(--gold), #FF3B41);
  color: var(--white);
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0.85rem 0.75rem;
  border-radius: var(--radius);
  text-align: center;
  box-shadow: 0 4px 14px rgba(226,31,38, 0.5);
  transition: transform 0.15s, box-shadow 0.2s;
  white-space: nowrap;
}
.sticky-cta-bar__btn:active {
  transform: scale(0.97);
  box-shadow: 0 2px 8px rgba(226,31,38, 0.4);
  color: var(--white);
}
@media (max-width: 768px) {
  .sticky-cta-bar { display: flex; }
  /* Push body content up so the bar doesn't cover the footer */
  body.has-urgency-banner { padding-bottom: 76px; }
}

/* ============================================================
   EXIT-INTENT POPUP (/trap-boxing/checkout, desktop only)
   ============================================================ */
.exit-intent {
  position: fixed;
  inset: 0;
  z-index: 9000;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.exit-intent__inner {
  width: 100%;
  max-width: 480px;
  background: linear-gradient(135deg, #1a1a1a 0%, #0a0a0a 100%);
  border: 2px solid var(--gold);
  border-radius: var(--radius);
  padding: 2.25rem 2rem 2rem;
  text-align: center;
  position: relative;
  box-shadow: 0 24px 80px rgba(226,31,38, 0.4);
}
.exit-intent__close {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.06);
  border: none;
  color: var(--white);
  border-radius: 50%;
  font-size: 1.4rem;
  cursor: pointer;
  line-height: 1;
}
.exit-intent__close:hover { background: rgba(255,255,255,0.14); }
.exit-intent__eyebrow {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.6rem;
}
.exit-intent__title {
  font-family: var(--font-heading);
  font-size: 1.8rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  margin-bottom: 0.5rem;
}
.exit-intent__sub {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.95rem;
  line-height: 1.5;
  margin-bottom: 1.5rem;
}
.exit-intent__code {
  display: inline-block;
  background: rgba(226,31,38, 0.15);
  border: 2px dashed var(--gold);
  border-radius: var(--radius);
  padding: 0.85rem 1.5rem;
  font-family: var(--font-heading);
  font-size: 1.4rem;
  letter-spacing: 0.18em;
  color: #FFEB3B;
  margin-bottom: 1.5rem;
}
.exit-intent__btn {
  display: block;
  width: 100%;
  background: linear-gradient(135deg, var(--gold), #FF3B41);
  color: var(--white);
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 1rem;
  border: none;
  border-radius: var(--radius);
  cursor: pointer;
  text-decoration: none;
  margin-bottom: 0.75rem;
}
.exit-intent__btn:hover { filter: brightness(1.1); color: var(--white); }
.exit-intent__decline {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.82rem;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 4px;
  padding: 0.25rem;
}
.exit-intent__decline:hover { color: var(--white); }
@media (max-width: 768px) {
  /* Disable on mobile — there's no exit intent gesture there */
  .exit-intent { display: none !important; }
}

@media (max-width: 768px) {
  .navbar__nav, .navbar__cta { display: none; }
  .navbar__hamburger { display: flex; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .hero__ctas { flex-direction: column; align-items: flex-start; }
  .hero__trust { gap: 1.25rem; }
  .form-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .footer-bottom { flex-direction: column; text-align: center; }
  .lead-form { flex-direction: column; }
  .lead-form input { border-right: 1px solid rgba(226,31,38,0.3); border-radius: var(--radius) var(--radius) 0 0; }
  .lead-form button { border-radius: 0 0 var(--radius) var(--radius); }
  .proof-items { gap: 1.5rem; }
  .cta-banner__ctas { flex-direction: column; align-items: center; }
  .lead-strip__form { flex-direction: column; }
  .lead-strip__inner { gap: 1.25rem; }
  .lead-popup { width: calc(100vw - 2rem); right: 1rem; }
  body.lead-popup-open { padding-bottom: 60px; }
}

@media (max-width: 480px) {
  .section-pad { padding: 55px 0; }
  .hero__content { padding: 110px 0 60px; }
  .page-hero { padding: 120px 0 50px; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
}


/* ============================================================
   URGENCY BANNER (top of trap-boxing page)
   ============================================================ */
.urgency-banner {
  background: linear-gradient(90deg, #FF3B41 0%, #E21F26 50%, #FF3B41 100%);
  background-size: 200% 100%;
  animation: urgency-pulse 6s ease-in-out infinite;
  color: #FFFFFF;
  padding: 0.75rem 0;
  text-align: center;
  font-family: var(--font-heading);
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1001;
  line-height: 1.3;
  box-shadow: 0 2px 12px rgba(226,31,38, 0.5);
}
/* Stack: banner on top, navbar pushed down by banner height. */
body.has-urgency-banner .navbar { top: 44px; }
body.has-urgency-banner { padding-top: 44px; }
.urgency-banner strong { color: #FFEB3B; }
.urgency-banner em { font-style: normal; }
.urgency-banner__icon { display: inline-block; margin-right: 0.4rem; animation: urgency-flicker 1.4s ease-in-out infinite; }
@keyframes urgency-pulse {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}
@keyframes urgency-flicker {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.85; transform: scale(1.15); }
}
@media (max-width: 600px) {
  .urgency-banner { font-size: 0.78rem; padding: 0.6rem 0.5rem; letter-spacing: 0.02em; }
  body.has-urgency-banner .navbar { top: 36px; }
  body.has-urgency-banner { padding-top: 36px; }
}

/* ============================================================
   LITE YOUTUBE FACADE
   ============================================================ */
.video-section { position: relative; }
.lite-yt {
  position: relative;
  cursor: pointer;
  background: #000;
  aspect-ratio: 16 / 9;
  width: 100%;
  overflow: hidden;
  border-radius: var(--radius);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.5);
  border: 1px solid rgba(226,31,38, 0.3);
  isolation: isolate;
}
.lite-yt__poster {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease, filter 0.3s ease;
  filter: brightness(0.85);
}
.lite-yt:hover .lite-yt__poster { transform: scale(1.03); filter: brightness(1); }
.lite-yt__play {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  filter: drop-shadow(0 4px 16px rgba(0, 0, 0, 0.7));
  transition: transform 0.2s ease;
}
.lite-yt:hover .lite-yt__play { transform: translate(-50%, -50%) scale(1.1); }
.lite-yt iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  border-radius: inherit;
}

/* ============================================================
   TICKET COUNTER (live capacity tracker on trap-boxing hero)
   ============================================================ */
.ticket-counter {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  margin-top: 1.5rem;
  padding: 0.5rem 1rem;
  background: rgba(226,31,38, 0.15);
  border: 1px solid rgba(226,31,38, 0.4);
  border-radius: 100px;
  font-family: var(--font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.85);
}
.ticket-counter__dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #2ecc71;
  box-shadow: 0 0 10px #2ecc71;
  animation: dot-pulse 1.6s ease-in-out infinite;
}
.ticket-counter--low .ticket-counter__dot { background: #FFC107; box-shadow: 0 0 10px #FFC107; }
.ticket-counter--sold-out .ticket-counter__dot { background: #FF3B41; box-shadow: 0 0 10px #FF3B41; }
.ticket-counter--sold-out .ticket-counter__text { color: #FFEB3B; }
@keyframes dot-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(0.85); }
}

/* ============================================================
   HERO REASSURANCE STRIP (under CTA buttons)
   ============================================================ */
.trap-hero__reassurance {
  margin-top: 1rem;
  font-size: 0.78rem;
  letter-spacing: 0.05em;
  color: rgba(255, 255, 255, 0.55);
}
.trap-hero__reassurance i { color: var(--gold); margin-right: 0.3rem; }

/* ============================================================
   SOLD-OUT PROOF BLOCK
   ============================================================ */
.sold-out-proof {
  background: linear-gradient(135deg, rgba(226,31,38, 0.08), rgba(0, 0, 0, 0.4));
  border: 1px solid rgba(226,31,38, 0.3);
  border-radius: var(--radius);
  padding: 2rem;
  text-align: center;
}
.sold-out-proof__label {
  font-family: var(--font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 1rem;
}
.sold-out-proof__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.75rem 1.5rem;
}
.sold-out-proof__list li {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
}
.sold-out-proof__list span { color: rgba(255, 255, 255, 0.65); }
.sold-out-proof__list strong {
  color: #FF3838;
  font-family: var(--font-heading);
  font-weight: 700;
  letter-spacing: 0.08em;
  font-size: 0.78rem;
  padding: 3px 10px;
  border: 1px solid rgba(255, 56, 56, 0.5);
  border-radius: 100px;
  background: rgba(255, 56, 56, 0.1);
  text-transform: uppercase;
}
.sold-out-proof__note {
  margin-top: 1.25rem;
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 0;
}

/* ============================================================
   TICKET TIERS (pricing reveal on tickets section)
   ============================================================ */
.ticket-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
  max-width: 960px;
  margin: 0 auto;
}
.ticket-tier {
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.75rem 1.5rem;
  text-align: center;
  position: relative;
  transition: transform 0.25s, border-color 0.25s, box-shadow 0.25s;
}
.ticket-tier:hover {
  transform: translateY(-4px);
  border-color: rgba(226,31,38, 0.4);
}
.ticket-tier--featured {
  border-color: var(--gold);
  background: linear-gradient(135deg, rgba(226,31,38, 0.15), var(--black-card));
  box-shadow: 0 8px 32px rgba(226,31,38, 0.25);
}
.ticket-tier__badge {
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--gold);
  color: var(--black);
  font-family: var(--font-heading);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 4px 14px;
  border-radius: 100px;
  white-space: nowrap;
}
.ticket-tier__price {
  font-family: var(--font-heading);
  font-size: 2.6rem;
  color: var(--white);
  line-height: 1;
  margin-bottom: 0.4rem;
}
.ticket-tier__label {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gold);
  margin-bottom: 0.5rem;
}
.ticket-tier__detail {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.9rem;
  line-height: 1.5;
}
.ticket-tier__detail code {
  background: rgba(226,31,38, 0.15);
  border: 1px solid rgba(226,31,38, 0.4);
  padding: 1px 8px;
  border-radius: 4px;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  color: #FFEB3B;
}

/* ============================================================
   CHECKOUT PAGE — /trap-boxing/checkout
   ============================================================ */
.checkout-page main { padding-top: 0; }
.checkout-main {
  padding: 110px 0 80px;
  background: var(--black);
  min-height: 100vh;
}
.checkout-grid {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 3rem;
  align-items: start;
}
.checkout-back {
  display: inline-flex;
  align-items: center;
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 1.5rem;
  font-family: var(--font-heading);
}
.checkout-back:hover { color: var(--gold); }
.checkout-h1 {
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  margin-bottom: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.checkout-event {
  padding: 1rem 1.25rem;
  background: rgba(226,31,38, 0.08);
  border: 1px solid rgba(226,31,38, 0.25);
  border-radius: var(--radius);
  margin-bottom: 2rem;
}
.checkout-event__date {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  letter-spacing: 0.05em;
  color: var(--white);
  margin-bottom: 0.2rem;
}
.checkout-event__venue {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
}

/* Checkout date picker — shown only when 2+ events are on sale. */
.event-picker {
  display: grid;
  gap: 0.6rem;
  margin-bottom: 1.5rem;
}
.event-picker__label {
  font-family: var(--font-heading);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--white);
}
.event-picker__option {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  text-align: left;
  padding: 0.85rem 1rem;
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.05s ease;
}
.event-picker__option:hover { border-color: rgba(226,31,38, 0.6); }
.event-picker__option:active { transform: translateY(1px); }
.event-picker__option.is-selected {
  border-color: var(--red, #E21F26);
  background: rgba(226,31,38, 0.1);
}
.event-picker__date {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  color: var(--white);
}
.event-picker__venue {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}
.cfg-block { margin-bottom: 2rem; }
.cfg-label {
  display: block;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--white);
  margin-bottom: 0.75rem;
}

/* Quantity selector */
.cfg-qty {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.cfg-qty__btn {
  width: 44px;
  height: 44px;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.15);
  color: var(--white);
  font-size: 1.4rem;
  font-weight: 700;
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color var(--transition), color var(--transition);
}
.cfg-qty__btn:hover { border-color: var(--gold); color: var(--gold); }
.cfg-qty input {
  width: 80px;
  height: 44px;
  text-align: center;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius);
  color: var(--white);
  font-family: var(--font-heading);
  font-size: 1.3rem;
  -moz-appearance: textfield;
}
.cfg-qty input::-webkit-outer-spin-button,
.cfg-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.cfg-qty__price {
  margin-left: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.92rem;
}
.cfg-hint { color: rgba(255, 255, 255, 0.5); font-size: 0.85rem; margin-top: 0.5rem; }
.cfg-hint code {
  background: rgba(226,31,38, 0.15);
  border: 1px solid rgba(226,31,38, 0.4);
  padding: 1px 7px;
  border-radius: 4px;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: #FFEB3B;
}

/* Tee toggle */
.cfg-toggle {
  display: flex;
  gap: 1rem;
  align-items: center;
  cursor: pointer;
  padding: 1rem 1.25rem;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  transition: border-color var(--transition);
}
.cfg-toggle:hover { border-color: rgba(226,31,38, 0.4); }
.cfg-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.cfg-toggle__box {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  background: transparent;
  position: relative;
  transition: all var(--transition);
}
.cfg-toggle input:checked ~ .cfg-toggle__box {
  background: var(--gold);
  border-color: var(--gold);
}
.cfg-toggle input:checked ~ .cfg-toggle__box::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 6px;
  width: 6px;
  height: 10px;
  border: solid var(--black);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.cfg-toggle__copy { line-height: 1.4; }
.cfg-toggle__copy strong { display: block; color: var(--white); font-size: 0.98rem; }
.cfg-toggle__copy small { color: rgba(255, 255, 255, 0.55); font-size: 0.82rem; }

.cfg-tee-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
  margin-top: 0.75rem;
}
.cfg-row label {
  display: block;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 0.3rem;
}
.cfg-row select {
  width: 100%;
  padding: 0.6rem 0.75rem;
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius);
  color: var(--white);
  font-family: inherit;
  font-size: 0.95rem;
}

/* Inline qty stepper used inside tee/tank options */
.cfg-qty--inline {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.cfg-qty--inline .cfg-qty__btn { width: 38px; height: 38px; font-size: 1.1rem; }
.cfg-qty--inline input { flex: 1; min-width: 0; height: 38px; }

/* Order-bump styling — dashed gold edge to flag it as an extra add-on */
.cfg-bump {
  position: relative;
  border: 2px dashed rgba(226,31,38, 0.55);
  border-radius: var(--radius);
  padding: 1.25rem 1rem 1rem;
  background: rgba(226,31,38, 0.04);
}
.cfg-bump__badge {
  position: absolute;
  top: -10px;
  left: 14px;
  background: var(--gold);
  color: #fff;
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 4px;
  font-weight: 700;
}
.cfg-bump .cfg-toggle { border-color: rgba(226,31,38, 0.35); }

/* Coupon row */
.cfg-coupon {
  display: flex;
  gap: 0.5rem;
}
.cfg-coupon input {
  flex: 1;
  padding: 0.7rem 0.9rem;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-family: var(--font-heading);
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}
.cfg-coupon__msg {
  font-size: 0.82rem;
  margin-top: 0.4rem;
  color: rgba(255, 255, 255, 0.55);
}
.cfg-coupon__msg--ok { color: #2ecc71; }
.cfg-coupon__msg--err { color: #FF5050; }

/* Order summary */
.checkout-side { position: sticky; top: 100px; }
.checkout-summary {
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.checkout-summary h2 {
  font-size: 0.9rem;
  letter-spacing: 0.12em;
  margin-bottom: 1rem;
  color: rgba(255, 255, 255, 0.7);
}
.summary-row {
  display: flex;
  justify-content: space-between;
  padding: 0.5rem 0;
  font-size: 0.95rem;
  border-bottom: 1px dashed rgba(255, 255, 255, 0.08);
}
.summary-row:last-of-type { border-bottom: none; }
.summary-row--discount { color: #2ecc71; }
.summary-row--total {
  margin-top: 0.5rem;
  padding-top: 1rem;
  border-top: 2px solid rgba(255, 255, 255, 0.15) !important;
  border-bottom: none !important;
  font-family: var(--font-heading);
  font-size: 1.3rem;
  letter-spacing: 0.04em;
}
.checkout-summary__note {
  margin-top: 1rem;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.4);
  text-align: center;
}
.checkout-summary--mobile { display: none; margin: 1.5rem 0; }

/* CTA */
.checkout-cta {
  width: 100%;
  margin-top: 1rem;
  font-size: 1.05rem;
}
.checkout-cta:disabled { opacity: 0.6; cursor: progress; }
.checkout-error {
  margin-top: 1rem;
  padding: 0.75rem 1rem;
  background: rgba(255, 80, 80, 0.12);
  border: 1px solid rgba(255, 80, 80, 0.5);
  color: #FFB3B3;
  border-radius: var(--radius);
  font-size: 0.9rem;
}

/* PayPal — additional payment option below the Stripe CTA */
.paypal-wrap { margin-top: 1rem; }
.paypal-or {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0.5rem 0 0.85rem;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.paypal-or::before,
.paypal-or::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(255, 255, 255, 0.14);
}
.paypal-buttons { min-height: 45px; }

/* Trust row */
.trust-row {
  list-style: none;
  margin: 1.5rem 0 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}
.trust-row li i { color: var(--gold); margin-right: 0.4rem; }

/* Inline quote */
.checkout-quote {
  margin-top: 2rem;
  padding: 1.25rem;
  background: rgba(226,31,38, 0.05);
  border-left: 3px solid var(--gold);
  border-radius: 0 var(--radius) var(--radius) 0;
}
.checkout-quote__stars {
  color: var(--gold);
  font-size: 0.95rem;
  letter-spacing: 0.1em;
  margin-bottom: 0.5rem;
}
.checkout-quote p {
  font-style: italic;
  color: rgba(255, 255, 255, 0.85);
  margin-bottom: 0.5rem;
  font-size: 0.95rem;
}
.checkout-quote__author {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.5);
}

/* Stripe Embedded Checkout overlay */
.checkout-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(8px);
}
.checkout-overlay__inner {
  background: #FFFFFF;
  border-radius: var(--radius);
  width: 100%;
  max-width: 540px;
  max-height: 92vh;
  overflow-y: auto;
  position: relative;
}
.checkout-overlay__close {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  width: 36px;
  height: 36px;
  background: rgba(0, 0, 0, 0.05);
  border: none;
  border-radius: 50%;
  font-size: 1.4rem;
  cursor: pointer;
  z-index: 10;
}
.checkout-overlay__close:hover { background: rgba(0, 0, 0, 0.1); }
#checkoutMount { padding: 1rem; }

/* Mobile */
@media (max-width: 900px) {
  .checkout-grid { grid-template-columns: 1fr; gap: 1.5rem; }
  .checkout-side { display: none; }
  .checkout-summary--mobile { display: block; }
}
@media (max-width: 600px) {
  .checkout-main { padding: 95px 0 60px; }
  .checkout-h1 { font-size: 1.6rem; }
  .cfg-tee-options { grid-template-columns: 1fr; }
}

/* ============================================================
   UPSELL PAGE — /trap-boxing/upsell
   ============================================================ */
.upsell-page {
  background: radial-gradient(ellipse at top, rgba(226,31,38,0.08) 0%, transparent 70%), var(--black);
  min-height: 100vh;
}
.upsell-main { padding: 60px 0 80px; }
.upsell-receipt {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: rgba(46, 204, 113, 0.08);
  border: 1px solid rgba(46, 204, 113, 0.4);
  border-radius: var(--radius);
  padding: 0.85rem 1.1rem;
  margin-bottom: 1.5rem;
}
.upsell-receipt__check {
  font-size: 1.5rem;
  color: #2ecc71;
  flex-shrink: 0;
}
.upsell-receipt__copy { font-size: 0.92rem; line-height: 1.4; }
.upsell-receipt__copy strong { display: block; color: var(--white); margin-bottom: 0.1rem; }
.upsell-receipt__copy span { color: rgba(255,255,255,0.65); font-size: 0.85rem; }

.upsell-card {
  background: linear-gradient(180deg, var(--black-card), var(--black-soft));
  border: 2px solid rgba(226,31,38, 0.35);
  border-radius: 12px;
  padding: 2rem;
  position: relative;
  overflow: hidden;
}
.upsell-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--gold), #FFEB3B, var(--gold));
}
.upsell-card__eyebrow {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: #FFEB3B;
  background: rgba(255, 235, 59, 0.1);
  border: 1px solid rgba(255, 235, 59, 0.3);
  padding: 4px 12px;
  border-radius: 100px;
  margin-bottom: 1rem;
}
.upsell-card__title {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  margin-bottom: 1.25rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  line-height: 1.1;
}
.upsell-card__hero {
  margin: 0 -2rem 1.5rem;
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: var(--black);
}
.upsell-card__hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.upsell-card__offer {
  font-size: 1.4rem;
  margin-bottom: 0.75rem;
}
.upsell-card__pricing {
  display: flex;
  align-items: baseline;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
}
.upsell-card__strike {
  text-decoration: line-through;
  color: rgba(255, 255, 255, 0.45);
  font-size: 1rem;
}
.upsell-card__price {
  font-family: var(--font-heading);
  font-size: 2rem;
  color: var(--gold);
  letter-spacing: 0.02em;
}
.upsell-card__save {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  background: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
  padding: 4px 10px;
  border-radius: 100px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.upsell-card__bullets {
  list-style: none;
  margin: 0 0 2rem 0;
  padding: 0;
}
.upsell-card__bullets li {
  display: flex;
  gap: 0.7rem;
  padding: 0.45rem 0;
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.95rem;
}
.upsell-card__bullets li i { color: #2ecc71; flex-shrink: 0; margin-top: 0.25rem; }
.upsell-cta { width: 100%; font-size: 1.05rem; }
.upsell-cta:disabled { opacity: 0.7; cursor: progress; }
.upsell-card__safe {
  margin-top: 0.85rem;
  text-align: center;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}
.upsell-card__safe i { color: var(--gold); margin-right: 0.3rem; }
.upsell-decline {
  display: block;
  margin: 1.5rem auto 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.88rem;
  letter-spacing: 0.04em;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.upsell-decline:hover { color: rgba(255, 255, 255, 0.75); }
.upsell-error {
  margin-top: 1rem;
  padding: 0.7rem 1rem;
  background: rgba(255, 80, 80, 0.12);
  border: 1px solid rgba(255, 80, 80, 0.5);
  color: #FFB3B3;
  border-radius: var(--radius);
  font-size: 0.9rem;
  text-align: center;
}

/* Recipient picker (upsell-extra: friend vs self) */
.recipient-picker {
  border: none;
  padding: 0;
  margin: 0 0 1.25rem;
}
.recipient-picker__legend {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin: 0 0 0.6rem;
  padding: 0;
}
.recipient-picker__opt {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  margin-bottom: 0.6rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}
.recipient-picker__opt:hover { border-color: rgba(226,31,38, 0.4); }
.recipient-picker__opt input[type="radio"] {
  margin-top: 0.25rem;
  accent-color: var(--red, #E21F26);
  flex-shrink: 0;
}
.recipient-picker__opt:has(input:checked) {
  border-color: var(--red, #E21F26);
  background: rgba(226,31,38, 0.08);
}
.recipient-picker__opt-body { display: flex; flex-direction: column; gap: 0.2rem; }
.recipient-picker__opt-body strong { font-size: 0.98rem; color: #fff; }
.recipient-picker__opt-body small { font-size: 0.82rem; color: rgba(255, 255, 255, 0.6); line-height: 1.4; }

.recipient-picker__friend {
  display: grid;
  gap: 0.65rem;
  padding: 0.9rem 1rem 1rem;
  margin-top: -0.2rem;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-top: none;
  border-radius: 0 0 var(--radius) var(--radius);
}
.recipient-picker__friend[hidden] { display: none; }
.recipient-picker__field { display: flex; flex-direction: column; gap: 0.25rem; }
.recipient-picker__field span {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
}
.recipient-picker__field input {
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  color: #fff;
  padding: 0.6rem 0.75rem;
  font-size: 0.95rem;
  font-family: inherit;
}
.recipient-picker__field input:focus {
  outline: none;
  border-color: var(--red, #E21F26);
  background: rgba(0, 0, 0, 0.55);
}
.recipient-picker__field input.invalid {
  border-color: #ff5050;
  background: rgba(255, 80, 80, 0.08);
}
.recipient-picker__hint {
  margin: 0.2rem 0 0;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.5);
  line-height: 1.4;
}
.recipient-picker__hint i { color: var(--gold); margin-right: 0.3rem; }

/* ============================================================
   THANK-YOU PAGE — /trap-boxing/thank-you
   ============================================================ */
.thank-you-page {
  background: radial-gradient(ellipse at top, rgba(46,204,113,0.08) 0%, transparent 70%), var(--black);
  min-height: 100vh;
}
.thank-you-main { padding: 60px 0 80px; }
.thanks-hero { text-align: center; padding: 2rem 0; }
.thanks-hero__check {
  font-size: 4rem;
  color: #2ecc71;
  margin-bottom: 1rem;
  filter: drop-shadow(0 0 20px rgba(46, 204, 113, 0.5));
}
.thanks-hero__title {
  font-size: clamp(2.5rem, 6vw, 4rem);
  margin-bottom: 1rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}
.thanks-hero__sub {
  font-size: 1.1rem;
  color: rgba(255, 255, 255, 0.7);
  max-width: 540px;
  margin: 0 auto;
  line-height: 1.5;
}
.thanks-hero__upsell {
  margin-top: 1rem;
  padding: 0.75rem 1.25rem;
  background: rgba(255, 235, 59, 0.08);
  border: 1px solid rgba(255, 235, 59, 0.3);
  border-radius: var(--radius);
  display: inline-block;
  color: rgba(255, 235, 59, 0.95);
  font-size: 0.95rem;
}

.thanks-summary {
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin: 2rem 0;
}
.thanks-summary h2 { font-size: 1.1rem; margin-bottom: 1rem; }
.thanks-summary dl { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem 1rem; margin: 0; }
.thanks-summary dt { color: rgba(255, 255, 255, 0.6); font-size: 0.92rem; }
.thanks-summary dd {
  margin: 0;
  font-family: var(--font-heading);
  color: var(--white);
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}

.thanks-actions {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
  margin: 2rem 0;
}

/* ========== Deliver tickets to friends ========== */
.thanks-deliver {
  background: linear-gradient(135deg, rgba(226,31,38, 0.08), rgba(0, 0, 0, 0.55));
  border: 1px solid rgba(226,31,38, 0.3);
  border-radius: var(--radius);
  padding: 1.75rem;
  margin: 2rem 0;
}
.thanks-deliver__head { margin-bottom: 1.25rem; }
.thanks-deliver__head h2 {
  font-size: 1.5rem;
  margin: 0 0 0.4rem;
  color: var(--white);
}
.thanks-deliver__sub {
  color: rgba(255, 255, 255, 0.78);
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
}
.thanks-deliver__sub strong { color: var(--white); }

.thanks-deliver__loading {
  background: rgba(255, 255, 255, 0.04);
  border: 1px dashed rgba(255, 255, 255, 0.15);
  border-radius: var(--radius);
  padding: 1.25rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.95rem;
}

.thanks-deliver__sent {
  background: rgba(0, 200, 80, 0.06);
  border: 1px solid rgba(0, 200, 80, 0.25);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}
.thanks-deliver__sent h3 {
  font-size: 0.95rem;
  margin: 0 0 0.5rem;
  color: rgba(255, 255, 255, 0.85);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.thanks-deliver__sent ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.4rem;
}
.thanks-deliver__sent li {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.92rem;
}
.thanks-deliver__sent li i { color: #4ade80; margin-right: 0.5rem; }

.thanks-deliver__rows {
  display: grid;
  gap: 1rem;
  margin-bottom: 1rem;
}
.deliver-row {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  padding: 1rem 1.1rem 1.1rem;
  margin: 0;
  transition: border-color 0.2s ease;
}
.deliver-row legend {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  padding: 0 0.4rem;
}
.deliver-row__grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0.75rem;
}
@media (max-width: 640px) {
  .deliver-row__grid { grid-template-columns: 1fr; }
}
.deliver-field { display: flex; flex-direction: column; gap: 0.3rem; }
.deliver-field span {
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: rgba(255, 255, 255, 0.6);
  text-transform: uppercase;
}
.deliver-field input {
  padding: 0.65rem 0.8rem;
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 0.95rem;
  width: 100%;
}
.deliver-field input::placeholder { color: rgba(255, 255, 255, 0.32); }
.deliver-field input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(226,31,38, 0.18);
}
.deliver-field input.is-invalid {
  border-color: #ef4444;
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.15);
}
.deliver-field input:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.deliver-row.is-sent {
  border: 1px solid rgba(0, 200, 80, 0.4);
  background: rgba(0, 200, 80, 0.06);
}
.deliver-row.is-sent legend { color: #4ade80; }

.deliver-row__status {
  margin-top: 0.85rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius);
  font-size: 0.88rem;
  background: rgba(0, 200, 80, 0.1);
  color: #86efac;
}
.deliver-row__status i { margin-right: 0.4rem; }
.deliver-row__status.is-error {
  background: rgba(239, 68, 68, 0.1);
  color: #fca5a5;
}

.thanks-deliver__warn {
  margin: 0.75rem 0 1.25rem;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.6);
  line-height: 1.5;
}
.thanks-deliver__warn i { color: var(--gold); margin-right: 0.4rem; }

.thanks-deliver__cta {
  width: 100%;
}

.thanks-deliver__error {
  margin-top: 0.85rem;
  padding: 0.75rem 1rem;
  background: rgba(239, 68, 68, 0.1);
  border: 1px solid rgba(239, 68, 68, 0.4);
  border-radius: var(--radius);
  color: #fecaca;
  font-size: 0.92rem;
}

.thanks-deliver__skip {
  margin: 0.85rem 0 0;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
  text-align: center;
}
.thanks-deliver__skip a { color: var(--gold); }

@media (max-width: 640px) {
  .thanks-deliver { padding: 1.25rem 1rem; }
}

.thanks-refer {
  background: linear-gradient(135deg, rgba(226,31,38, 0.08), rgba(0, 0, 0, 0.4));
  border: 1px solid rgba(226,31,38, 0.3);
  border-radius: var(--radius);
  padding: 1.5rem;
  margin: 2rem 0;
  text-align: center;
}
.thanks-refer h3 {
  font-size: 1.3rem;
  margin-bottom: 0.5rem;
}
.thanks-refer p { color: rgba(255, 255, 255, 0.7); margin-bottom: 1rem; }
.thanks-refer__link {
  display: flex;
  gap: 0.5rem;
  max-width: 480px;
  margin: 0 auto;
}
.thanks-refer__link input {
  flex: 1;
  padding: 0.6rem 0.85rem;
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: var(--radius);
  color: var(--white);
  font-family: monospace;
  font-size: 0.85rem;
}

/* Brag-about-your-ticket */
.thanks-brag {
  background: linear-gradient(135deg, rgba(255, 0, 102, 0.10), rgba(0, 0, 0, 0.55));
  border: 1px solid rgba(255, 0, 102, 0.32);
  border-radius: var(--radius);
  padding: 1.75rem 1.5rem;
  margin: 2rem 0;
}
.thanks-brag__head { text-align: center; margin-bottom: 1.25rem; }
.thanks-brag__eyebrow {
  display: inline-block;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #ff3b8a;
  font-weight: 700;
  margin-bottom: 0.4rem;
}
.thanks-brag__head h3 { font-size: 1.5rem; margin: 0 0 0.4rem; }
.thanks-brag__head p { color: rgba(255, 255, 255, 0.72); margin: 0; font-size: 0.95rem; }

.brag-list {
  display: grid;
  gap: 0.85rem;
}

.brag-card {
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1rem 1.1rem 0.85rem;
  transition: border-color 0.18s ease, transform 0.18s ease;
}
.brag-card:hover { border-color: rgba(255, 0, 102, 0.45); }
.brag-card__text {
  color: var(--white);
  font-size: 0.98rem;
  line-height: 1.5;
  margin: 0 0 0.85rem;
}

.brag-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}

.brag-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-width: 38px;
  height: 38px;
  padding: 0 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.04);
  color: var(--white);
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.12s ease;
}
.brag-btn:hover { background: rgba(255, 255, 255, 0.10); border-color: rgba(255, 255, 255, 0.28); }
.brag-btn:active { transform: scale(0.96); }
.brag-btn i { font-size: 0.95rem; }
.brag-btn--copy { background: rgba(255, 0, 102, 0.18); border-color: rgba(255, 0, 102, 0.45); }
.brag-btn--copy:hover { background: rgba(255, 0, 102, 0.30); border-color: rgba(255, 0, 102, 0.65); }
.brag-btn--copy.is-copied { background: rgba(46, 204, 113, 0.22); border-color: rgba(46, 204, 113, 0.55); }
.brag-btn--x:hover  { background: #000; border-color: #fff; }
.brag-btn--fb:hover { background: #1877f2; border-color: #1877f2; }
.brag-btn--wa:hover { background: #25d366; border-color: #25d366; color: #000; }
.brag-btn--th:hover { background: #fff; border-color: #fff; color: #000; }
.brag-btn--sms:hover{ background: #34c759; border-color: #34c759; color: #000; }
.brag-btn--native:hover { background: rgba(255, 215, 0, 0.18); border-color: rgba(255, 215, 0, 0.55); }

.thanks-brag__foot {
  margin: 1rem 0 0;
  text-align: center;
  color: #2ecc71;
  font-size: 0.88rem;
  font-weight: 600;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.thanks-brag__foot.is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 600px) {
  .thanks-brag { padding: 1.25rem 1rem; }
  .brag-card__text { font-size: 0.94rem; }
  .brag-btn { padding: 0 0.55rem; font-size: 0.8rem; min-width: 36px; height: 36px; }
}

.thanks-classes {
  text-align: center;
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.thanks-classes h3 { font-size: 1.4rem; margin-bottom: 0.5rem; }
.thanks-classes p { color: rgba(255, 255, 255, 0.65); margin-bottom: 1.25rem; }
.thanks-classes > div { justify-content: center; display: flex; }

@media (max-width: 600px) {
  .upsell-card { padding: 1.5rem; }
  .upsell-card__hero { margin: 0 -1.5rem 1.25rem; }
  .upsell-card__title { font-size: 1.7rem; }
  .upsell-card__price { font-size: 1.6rem; }
  .upsell-cta { font-size: 0.92rem; }
  .thanks-hero__check { font-size: 3rem; }
  .thanks-hero__title { font-size: 2.2rem; }
}

/* ============================================================
   MY TICKETS PAGE
   ============================================================ */
.my-tickets-page { background: var(--black); min-height: 100vh; }
.my-tickets-main { padding: 100px 0 60px; }
.mt-loggedout {
  text-align: center;
  max-width: 460px;
  margin: 4rem auto 0;
}
.mt-loggedout h1 { font-size: clamp(2rem, 4vw, 2.6rem); margin-bottom: 0.75rem; }
.mt-loggedout p { color: rgba(255, 255, 255, 0.65); margin-bottom: 1.5rem; }
.mt-email-form { display: flex; gap: 0.5rem; }
.mt-email-form input {
  flex: 1;
  padding: 0.85rem 1rem;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 1rem;
}
.mt-msg {
  margin-top: 1rem;
  padding: 0.7rem 1rem;
  background: rgba(46, 204, 113, 0.1);
  border: 1px solid rgba(46, 204, 113, 0.4);
  border-radius: var(--radius);
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.9rem;
}
.mt-msg--error {
  background: rgba(255, 80, 80, 0.1);
  border-color: rgba(255, 80, 80, 0.4);
  color: #FFB3B3;
}

/* Credit-claim section (extra-ticket "save for later" path) */
.mt-credit {
  max-width: 560px;
  margin: 3rem auto 0;
}
.mt-credit__head { text-align: center; margin-bottom: 1.75rem; }
.mt-credit__eyebrow {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gold);
  background: rgba(226,31,38, 0.12);
  padding: 4px 12px;
  border-radius: 100px;
  margin-bottom: 0.85rem;
}
.mt-credit__eyebrow i { margin-right: 0.35rem; }
.mt-credit__head h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); margin: 0 0 0.5rem; }
.mt-credit__sub { color: rgba(255, 255, 255, 0.65); font-size: 0.98rem; line-height: 1.5; }
.mt-credit__events { display: grid; gap: 0.7rem; }
.mt-credit__event {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-align: left;
  padding: 1rem 1.1rem;
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  color: #fff;
  cursor: pointer;
  font-family: inherit;
  transition: border-color 0.15s, background 0.15s, transform 0.05s;
}
.mt-credit__event:hover {
  border-color: var(--red, #E21F26);
  background: rgba(226,31,38, 0.08);
}
.mt-credit__event:active { transform: translateY(1px); }
.mt-credit__event:disabled { opacity: 0.45; cursor: not-allowed; }
.mt-credit__event.is-loading { border-color: var(--gold); }
.mt-credit__event-name { font-weight: 600; font-size: 1.05rem; }
.mt-credit__event-meta { font-size: 0.88rem; color: rgba(255, 255, 255, 0.6); }
.mt-credit__event-cta {
  margin-top: 0.4rem;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--red, #E21F26);
}
.mt-credit__empty, .mt-credit__expired {
  text-align: center;
  color: rgba(255, 255, 255, 0.6);
  padding: 1rem;
  background: var(--black-card, #181818);
  border-radius: var(--radius);
}

.mt-header { margin-bottom: 1.5rem; }
.mt-header h1 { font-size: clamp(1.8rem, 4vw, 2.4rem); margin-bottom: 0.25rem; }
.mt-email { color: rgba(255, 255, 255, 0.55); font-size: 0.92rem; }

.mt-tickets { display: grid; gap: 1rem; }

.mt-transfer-note {
  margin: 1.5rem 0 0;
  text-align: center;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.55);
}
.mt-transfer-note a {
  color: var(--gold);
  font-weight: 600;
  white-space: nowrap;
}

.mt-card {
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.mt-card__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1rem;
}
.mt-card__head h3 { font-size: 1.2rem; margin: 0 0 0.2rem; }
.mt-card__date { color: rgba(255, 255, 255, 0.6); font-size: 0.88rem; }
.mt-badge {
  font-family: var(--font-heading);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  padding: 4px 10px;
  border-radius: 100px;
  text-transform: uppercase;
  white-space: nowrap;
}
.mt-badge--check {
  background: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
  border: 1px solid rgba(46, 204, 113, 0.4);
}
.mt-badge--gone {
  background: rgba(255, 255, 255, 0.05);
  color: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.mt-card__qr {
  background: #fff;
  border-radius: var(--radius);
  padding: 1rem;
  text-align: center;
  margin-bottom: 1rem;
}
.mt-card__qr img { display: block; margin: 0 auto; max-width: 100%; height: auto; }
.mt-card__addon {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 0.75rem;
}
.mt-card__note {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
  margin: 0 0 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
}
.mt-card__note i { color: var(--gold, #E21F26); }
.mt-card__actions { display: flex; gap: 0.5rem; flex-wrap: wrap; }

/* Reschedule modal — date picker (mirrors the credit-claim event list) */
.mt-reschedule__events { display: grid; gap: 0.7rem; margin-top: 0.5rem; }
.mt-reschedule__event {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  text-align: left;
  padding: 1rem 1.1rem;
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.05s ease;
}
.mt-reschedule__event:hover {
  border-color: var(--red, #E21F26);
  background: rgba(226,31,38, 0.08);
}
.mt-reschedule__event:active { transform: translateY(1px); }
.mt-reschedule__event:disabled { opacity: 0.45; cursor: not-allowed; }
.mt-reschedule__event.is-loading { border-color: var(--gold, #E21F26); }
.mt-reschedule__event-name { font-weight: 600; font-size: 1.05rem; }
.mt-reschedule__event-meta { font-size: 0.88rem; color: rgba(255, 255, 255, 0.6); }
.mt-reschedule__event-cta {
  margin-top: 0.4rem;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--red, #E21F26);
}
.mt-reschedule__empty {
  text-align: center;
  color: rgba(255, 255, 255, 0.6);
  padding: 1rem 0.5rem;
}
.mt-reschedule__ok {
  text-align: center;
  color: var(--gold, #E21F26);
  font-weight: 600;
  padding: 1rem 0.5rem;
}

.mt-empty { text-align: center; padding: 3rem 1rem; }
.mt-empty p { color: rgba(255, 255, 255, 0.6); margin-bottom: 1rem; }

/* Transfer modal */
.mt-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(8px);
}
.mt-modal__inner {
  background: var(--black-card);
  border: 1px solid rgba(226,31,38, 0.25);
  border-radius: var(--radius);
  width: 100%;
  max-width: 480px;
  padding: 2rem;
  position: relative;
}
.mt-modal__close {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.05);
  border: none;
  color: var(--white);
  border-radius: 50%;
  font-size: 1.4rem;
  cursor: pointer;
}
.mt-modal h2 { font-size: 1.4rem; margin-bottom: 0.5rem; }
.mt-modal p { color: rgba(255, 255, 255, 0.65); margin-bottom: 1rem; font-size: 0.9rem; }
.mt-transfer-form label {
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  color: rgba(255, 255, 255, 0.6);
  margin: 0.6rem 0 0.3rem;
  text-transform: uppercase;
}
.mt-transfer-form input {
  width: 100%;
  padding: 0.7rem 0.85rem;
  background: var(--black);
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 1rem;
  margin-bottom: 0.4rem;
}
.mt-transfer-form button { margin-top: 1rem; }

/* ============================================================
   SCAN PAGE — buyer landing for /scan/{id}.{sig}
   ============================================================ */
.scan-page {
  background: var(--black);
  min-height: 100vh;
  display: flex;
  align-items: center;
}
.scan-main { padding: 2rem 0; width: 100%; }
.scan-card {
  background: var(--black-card);
  border-radius: var(--radius);
  padding: 2rem;
  text-align: center;
  border: 1px solid rgba(226,31,38, 0.2);
}
.scan-card__icon {
  font-size: 3rem;
  color: var(--gold);
  margin-bottom: 1rem;
}
.scan-card h1 { font-size: 2rem; margin-bottom: 0.5rem; }
.scan-card__intro {
  color: rgba(255, 255, 255, 0.65);
  margin-bottom: 1.5rem;
}
.scan-card__qr-wrap {
  background: #fff;
  border-radius: var(--radius);
  padding: 1rem;
  display: inline-block;
  margin-bottom: 1.5rem;
}
.scan-card__qr-wrap img { display: block; }
.scan-card__hint { color: rgba(255, 255, 255, 0.5); font-size: 0.88rem; margin-bottom: 0.75rem; }
.scan-card__safe {
  margin-top: 1.5rem;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}
.scan-card__safe i { color: var(--gold); margin-right: 0.3rem; }

/* ============================================================
   STAFF DOOR SCANNER (/checkin)
   ============================================================ */
.checkin-app {
  margin: 0;
  padding: 0;
}
.checkin-root { min-height: 100vh; display: flex; flex-direction: column; }

/* Login screen — dialpad style */
.checkin-login {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem 1rem;
  min-height: 100vh;
  background:
    radial-gradient(ellipse 70% 60% at 50% 0%, rgba(226,31,38, 0.18) 0%, transparent 60%),
    radial-gradient(ellipse 50% 50% at 50% 100%, rgba(60, 0, 100, 0.25) 0%, transparent 60%),
    #050007;
}
.checkin-login__inner {
  width: 100%;
  max-width: 380px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.checkin-login__brand {
  text-align: center;
  margin-bottom: 1.5rem;
}
.checkin-login__logo {
  font-family: var(--font-heading);
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--white);
  text-shadow: 0 2px 24px rgba(226,31,38, 0.4);
  margin-bottom: 0.3rem;
}
.checkin-login__logo span { color: var(--gold); }
.checkin-login__sub {
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.72rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.checkin-login__hint {
  margin-top: 1.5rem;
  text-align: center;
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.35);
  letter-spacing: 0.04em;
}

/* Email row */
.dial-email {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  color: var(--white);
  padding: 0.7rem 1rem;
  border-radius: 100px;
  cursor: pointer;
  font-family: inherit;
  font-size: 0.92rem;
  transition: border-color var(--transition), background var(--transition);
}
.dial-email:hover { border-color: rgba(226,31,38, 0.4); background: rgba(226,31,38, 0.06); }
.dial-email__icon {
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(226,31,38, 0.15);
  border-radius: 50%;
  color: var(--gold);
  font-size: 0.85rem;
}
.dial-email__display {
  flex: 1;
  text-align: left;
  color: rgba(255, 255, 255, 0.85);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.dial-email__edit {
  color: rgba(255, 255, 255, 0.4);
  font-size: 0.85rem;
}

/* PIN dot display */
.dial-dots {
  display: flex;
  justify-content: center;
  gap: 1rem;
  margin: 2rem 0 0;
  height: 24px;
}
.dial-dots--shake { animation: dialShake 0.4s ease; }
.dial-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: transparent;
  border: 2px solid rgba(255, 255, 255, 0.2);
  transition: background 0.2s, border-color 0.2s, transform 0.15s;
}
.dial-dot--filled {
  background: var(--gold);
  border-color: var(--gold);
  box-shadow: 0 0 14px rgba(226,31,38, 0.5);
  transform: scale(1.05);
}
@keyframes dialShake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-10px); }
  40%, 80% { transform: translateX(10px); }
}

.dial-status {
  text-align: center;
  margin: 0.6rem 0 1.5rem;
  min-height: 1.2rem;
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.02em;
}
.dial-status--err { color: #FF6B6B; font-weight: 600; }

/* Dialpad */
.dialpad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.85rem;
}
.dialpad__key {
  position: relative;
  height: 72px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 50%;
  color: var(--white);
  cursor: pointer;
  font-family: var(--font-heading);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  transition: transform 0.12s ease, background 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}
.dialpad__key span {
  font-size: 1.85rem;
  font-weight: 600;
  line-height: 1;
  letter-spacing: 0.02em;
}
.dialpad__key em {
  font-style: normal;
  font-family: var(--font-body);
  font-size: 0.55rem;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.4);
  margin-top: 2px;
}
.dialpad__key:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.18);
}
.dialpad__key:active,
.dialpad__key--press {
  transform: scale(0.94);
  background: rgba(226,31,38, 0.18);
  border-color: rgba(226,31,38, 0.5);
  box-shadow: 0 0 24px rgba(226,31,38, 0.35);
}
.dialpad__key--ghost {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
}
.dialpad__key--ghost:hover { color: var(--white); border-color: rgba(255, 255, 255, 0.15); }
.dialpad__key--ghost span { font-size: 1.2rem; }
.dialpad__key--enter {
  background: linear-gradient(135deg, var(--gold), #FF3B41);
  border-color: var(--gold);
  color: var(--white);
  box-shadow: 0 4px 18px rgba(226,31,38, 0.45);
}
.dialpad__key--enter:hover {
  filter: brightness(1.1);
  box-shadow: 0 6px 24px rgba(226,31,38, 0.6);
}
.dialpad__key--enter:active {
  background: linear-gradient(135deg, var(--gold-dark), var(--gold));
  border-color: var(--gold);
  box-shadow: 0 0 30px rgba(226,31,38, 0.7);
}
.dialpad__key--enter span { font-size: 1.3rem; }

/* Email modal */
.email-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  backdrop-filter: blur(8px);
}
.email-modal__inner {
  width: 100%;
  max-width: 360px;
  background: var(--black-card);
  border: 1px solid rgba(226,31,38, 0.25);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.email-modal h2 { font-size: 1.2rem; margin-bottom: 1rem; }
.email-modal input {
  width: 100%;
  padding: 0.85rem 1rem;
  background: var(--black);
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 1rem;
  margin-bottom: 1rem;
}
.email-modal__actions {
  display: flex;
  gap: 0.5rem;
  justify-content: flex-end;
}
.email-modal__close {
  position: absolute;
  top: 0.5rem;
  right: 0.75rem;
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.05);
  border: none;
  color: var(--white);
  border-radius: 50%;
  font-size: 1.4rem;
  cursor: pointer;
  line-height: 1;
}
.email-modal__close:hover { background: rgba(255, 255, 255, 0.12); }
.email-modal__inner { position: relative; }
.email-modal__hint {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 1rem;
}
.dial-email--shake {
  animation: dialShake 0.5s ease;
  border-color: var(--gold) !important;
  background: rgba(226,31,38, 0.12) !important;
}

/* Scanner */
.checkin-scanner {
  flex: 1;
  display: flex;
  flex-direction: column;
  background: #000;
  position: relative;
}
.checkin-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  background: #0a0a0a;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  z-index: 5;
}
.checkin-bar strong {
  display: block;
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.04em;
}
.checkin-bar__date {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.5);
  letter-spacing: 0.06em;
}
.checkin-bar__logout {
  background: none;
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
}
.checkin-bar__signout {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: rgba(255, 80, 80, 0.08);
  border: 1px solid rgba(255, 80, 80, 0.35);
  color: #FFB3B3;
  padding: 0.4rem 0.85rem;
  border-radius: 100px;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--transition);
}
.checkin-bar__signout:hover {
  background: rgba(255, 80, 80, 0.15);
  color: #FFFFFF;
  border-color: rgba(255, 80, 80, 0.6);
}
.checkin-bar__switch {
  background: rgba(226,31,38, 0.12);
  border: 1px solid rgba(226,31,38, 0.4);
  color: var(--gold);
  width: 38px;
  height: 38px;
  border-radius: 50%;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 0.5rem;
  transition: all var(--transition);
}
.checkin-bar__switch:hover { background: rgba(226,31,38, 0.22); }
.checkin-bar__event { flex: 1; min-width: 0; }
.checkin-bar__event strong { display: block; }

/* Event picker */
.checkin-picker {
  flex: 1;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(ellipse at top, rgba(226,31,38, 0.1), transparent 60%),
    #050007;
  min-height: 100vh;
}
.checkin-bar--picker {
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.checkin-bar__brand {
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.1em;
  color: var(--white);
  font-weight: 700;
}
.checkin-bar__brand span { color: var(--gold); }
.checkin-picker__inner {
  flex: 1;
  width: 100%;
  max-width: 540px;
  margin: 0 auto;
  padding: 2rem 1rem;
}
.checkin-picker__title {
  font-size: 1.6rem;
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.checkin-picker__sub {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  margin-bottom: 1.5rem;
}
.checkin-picker__list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.checkin-picker__loading,
.checkin-picker__empty {
  padding: 2.5rem 1rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.55);
  background: var(--black-card);
  border: 1px dashed rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
}
.picker-card {
  width: 100%;
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.1rem 1.25rem;
  cursor: pointer;
  text-align: left;
  color: var(--white);
  transition: all var(--transition);
  font-family: inherit;
}
.picker-card:hover {
  background: rgba(226,31,38, 0.06);
  border-color: rgba(226,31,38, 0.4);
  transform: translateY(-2px);
}
.picker-card:active { transform: translateY(0); }
.picker-card__top { margin-bottom: 0.6rem; }
.picker-card__name {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.picker-card__date {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.85rem;
  margin-top: 0.15rem;
}
.picker-card__bar {
  height: 6px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 100px;
  overflow: hidden;
  margin-bottom: 0.4rem;
}
.picker-card__bar span {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, var(--gold), #FFEB3B);
}
.picker-card__nums {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.55);
}
.picker-card__badge {
  font-family: var(--font-heading);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  padding: 2px 8px;
  border-radius: 100px;
  text-transform: uppercase;
}
.picker-card__badge--live {
  background: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
  border: 1px solid rgba(46, 204, 113, 0.4);
  animation: livePulse 1.4s ease-in-out infinite;
}
.picker-card__badge--past {
  background: rgba(255, 255, 255, 0.06);
  color: rgba(255, 255, 255, 0.5);
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.picker-card__badge--last {
  background: rgba(226,31,38, 0.12);
  color: var(--gold);
  border: 1px solid rgba(226,31,38, 0.4);
}
.picker-card--last {
  border-color: rgba(226,31,38, 0.4) !important;
  background: linear-gradient(135deg, rgba(226,31,38, 0.04), var(--black-card));
}
@keyframes livePulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0.5); }
  50% { box-shadow: 0 0 0 4px rgba(46, 204, 113, 0); }
}

.checkin-viewport {
  flex: 1;
  width: 100%;
  height: 100%;
  background: #000;
  position: relative;
  overflow: hidden;
  min-height: 50vh;
}
.checkin-viewport video { width: 100% !important; height: 100% !important; object-fit: cover; }

.checkin-counter {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  padding: 0.75rem 1rem;
  background: #0a0a0a;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  position: relative;
  z-index: 5;
}
.checkin-counter__main {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  letter-spacing: 0.05em;
}
.checkin-counter__main strong { color: var(--gold); font-size: 1.3rem; }
.checkin-counter__sub { font-size: 0.78rem; color: rgba(255, 255, 255, 0.55); }

/* Scan result overlay */
.scan-result {
  position: fixed;
  inset: 0;
  z-index: 10;
  background: rgba(0, 0, 0, 0.92);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
}
.scan-result__inner {
  width: 100%;
  max-width: 380px;
  background: var(--black-card);
  border-radius: 12px;
  padding: 2rem;
  text-align: center;
  border: 3px solid var(--gold);
}
.scan-result--allow .scan-result__inner { border-color: #2ecc71; }
.scan-result--deny .scan-result__inner { border-color: #FF3838; }
.scan-result__icon {
  font-size: 4rem;
  margin-bottom: 1rem;
}
.scan-result--allow .scan-result__icon { color: #2ecc71; filter: drop-shadow(0 0 16px rgba(46, 204, 113, 0.6)); }
.scan-result--deny .scan-result__icon { color: #FF3838; filter: drop-shadow(0 0 16px rgba(255, 56, 56, 0.6)); }
.scan-result__title { font-size: 1.5rem; margin-bottom: 0.5rem; }
.scan-result__detail { color: rgba(255, 255, 255, 0.7); margin-bottom: 1rem; }
.scan-result__notes {
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
}
.scan-result__notes li {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.85);
  padding: 0.25rem 0;
}

/* Merch hand-over banner — high-contrast gold so the door can't miss it. */
.scan-merch {
  margin: 0 0 1.25rem;
  border-radius: 10px;
  padding: 0.85rem 1rem 1rem;
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.22), rgba(212, 175, 55, 0.08));
  border: 2px solid #E21F26;
  box-shadow: 0 0 18px rgba(212, 175, 55, 0.35);
  animation: scan-merch-pulse 1.1s ease-in-out infinite;
}
.scan-merch__head {
  font-family: var(--font-heading), 'Oswald', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #E21F26;
  margin-bottom: 0.5rem;
}
.scan-merch__item {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.scan-merch__item + .scan-merch__item {
  margin-top: 0.5rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(212, 175, 55, 0.25);
}
.scan-merch__label {
  font-family: var(--font-heading), 'Oswald', sans-serif;
  font-size: 1.4rem;
  line-height: 1.2;
  font-weight: 700;
  color: #fff;
  text-wrap: balance;
}
@keyframes scan-merch-pulse {
  0%, 100% { box-shadow: 0 0 14px rgba(212, 175, 55, 0.30); }
  50%      { box-shadow: 0 0 26px rgba(212, 175, 55, 0.55); }
}

/* ============================================================
   ADMIN DASHBOARD (/admin)
   ============================================================ */
.admin-app { background: var(--black); color: var(--white); }

.admin-login {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem 1rem;
  background: radial-gradient(ellipse at top, rgba(226,31,38, 0.12), transparent 60%), #000;
}
.admin-login__inner { width: 100%; max-width: 420px; text-align: center; }
.admin-login__brand { margin-bottom: 2rem; }
.admin-login__logo {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--white);
}
.admin-login__logo span { color: var(--gold); }
.admin-login__modes {
  display: flex;
  gap: 0.4rem;
  margin-bottom: 1rem;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  padding: 0.25rem;
}
.admin-login__mode {
  flex: 1;
  background: transparent;
  border: none;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.55rem 0.5rem;
  cursor: pointer;
  border-radius: calc(var(--radius) - 2px);
  transition: background 0.15s ease, color 0.15s ease;
}
.admin-login__mode--active {
  background: var(--gold);
  color: var(--black);
  font-weight: 600;
}
.admin-login__form { display: flex; flex-direction: column; gap: 0.5rem; text-align: left; }
.admin-login__form label {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-top: 0.5rem;
}
.admin-login__form input {
  padding: 0.85rem 1rem;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 1rem;
}
.admin-login__form button { margin-top: 1.25rem; }
.admin-login__msg {
  margin-top: 1rem;
  padding: 0.65rem 1rem;
  background: rgba(46, 204, 113, 0.1);
  border: 1px solid rgba(46, 204, 113, 0.4);
  border-radius: var(--radius);
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.88rem;
  text-align: center;
}
.admin-login__msg--err {
  background: rgba(255, 80, 80, 0.1);
  border-color: rgba(255, 80, 80, 0.4);
  color: #FFB3B3;
}
.admin-login__magic {
  background: none;
  border: none;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.85rem;
  margin-top: 1rem;
  cursor: pointer;
  text-align: center;
  display: block;
  width: 100%;
  padding: 0.5rem;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.admin-login__magic:hover { color: var(--gold); }

/* Header bar */
.admin-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1.5rem;
  background: #0a0a0a;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  position: sticky;
  top: 0;
  z-index: 100;
  flex-wrap: wrap;
  gap: 1rem;
}
.admin-bar__brand {
  font-family: var(--font-heading);
  font-size: 1rem;
  letter-spacing: 0.06em;
}
.admin-bar__brand span { color: var(--gold); }
.admin-tabs { display: flex; gap: 0.5rem; flex-wrap: wrap; }
.admin-tab {
  background: none;
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: rgba(255, 255, 255, 0.7);
  padding: 0.4rem 0.95rem;
  border-radius: 100px;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--transition);
}
.admin-tab:hover { color: var(--white); border-color: rgba(255, 255, 255, 0.3); }
.admin-tab--active {
  background: var(--gold);
  color: var(--black);
  border-color: var(--gold);
}
.admin-bar__right { display: flex; align-items: center; gap: 0.75rem; }
.admin-bar__who { font-size: 0.82rem; color: rgba(255, 255, 255, 0.55); }
.admin-bar__logout {
  background: none;
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
}
.admin-bar__logout:hover { color: var(--white); border-color: var(--gold); }

/* Main */
.admin-main { padding: 2rem 1.5rem; }
.admin-h2 { font-size: 1.05rem; letter-spacing: 0.06em; margin: 1.5rem 0 0.75rem; color: rgba(255, 255, 255, 0.6); }
.admin-h3 { font-size: 0.92rem; letter-spacing: 0.08em; margin: 1.5rem 0 0.5rem; color: rgba(255, 255, 255, 0.55); text-transform: uppercase; }

/* Stripe-mode toggle pane */
.stripe-mode-box {
  border: 2px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  padding: 1.5rem;
  background: var(--black-card);
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 1rem 0 2rem;
}
.stripe-mode-box__label { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(255, 255, 255, 0.45); }
.stripe-mode-box__value { font-family: var(--font-heading); font-size: 2.4rem; line-height: 1; letter-spacing: 0.04em; }
.stripe-mode-box__hint { font-size: 0.85rem; color: rgba(255, 255, 255, 0.55); }
.stripe-mode-box--test .stripe-mode-box__value { color: #4ade80; }
.stripe-mode-box--test { border-color: rgba(74, 222, 128, 0.4); }
.stripe-mode-box--live .stripe-mode-box__value { color: var(--gold); }
.stripe-mode-box--live { border-color: rgba(226,31,38, 0.5); background: rgba(226,31,38, 0.06); }

.stripe-mode-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.stripe-mode-action {
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.stripe-mode-action strong { font-size: 1rem; }
.stripe-mode-action small { color: rgba(255, 255, 255, 0.55); font-size: 0.82rem; line-height: 1.45; }
.stripe-mode-action input {
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 4px;
  color: var(--white);
  padding: 0.5rem 0.75rem;
  font-family: var(--font-heading);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.stripe-mode-action--danger { border-color: rgba(226,31,38, 0.4); }

.stripe-mode-readiness { display: flex; flex-direction: column; gap: 0.5rem; }
.stripe-mode-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 1rem;
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  font-size: 0.9rem;
}
.stripe-mode-row small { color: rgba(255, 255, 255, 0.55); font-size: 0.8rem; }
.stripe-mode-row--ok { border-color: rgba(74, 222, 128, 0.4); }
.stripe-mode-row--ok span:first-child { color: #4ade80; }
.stripe-mode-row--missing { border-color: rgba(226,31,38, 0.4); }
.stripe-mode-row--missing span:first-child { color: var(--gold); }

@media (max-width: 720px) {
  .stripe-mode-actions { grid-template-columns: 1fr; }
}

.admin-stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}
.admin-stat {
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
}
.admin-stat span {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  display: block;
  margin-bottom: 0.4rem;
}
.admin-stat strong {
  font-family: var(--font-heading);
  font-size: 2.2rem;
  letter-spacing: 0.02em;
  display: block;
  line-height: 1;
  margin-bottom: 0.4rem;
}
.admin-stat small {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.55);
}
.admin-stat--event {
  border-color: rgba(226,31,38, 0.4);
  background: linear-gradient(135deg, rgba(226,31,38, 0.08), var(--black-card));
}
.admin-stat--upsell {
  border-color: rgba(255, 196, 0, 0.45);
  background: linear-gradient(135deg, rgba(255, 196, 0, 0.08), var(--black-card));
}
.admin-stat--mrr {
  border-color: rgba(80, 200, 120, 0.5);
  background: linear-gradient(135deg, rgba(80, 200, 120, 0.08), var(--black-card));
}
.admin-pill--ok { background: rgba(80, 200, 120, 0.18); color: #76e3a1; }
.admin-pill--active { background: rgba(255, 200, 0, 0.16); color: #ffd34d; }
.blast-panel {
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1rem 1.1rem;
  margin-bottom: 1.5rem;
}
.blast-panel__row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 0.75rem;
  align-items: center;
}
.blast-panel__status {
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.75);
  margin-left: 0.4rem;
}
.blast-panel__preview {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.blast-panel__sample {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
  font-size: 0.88rem;
}
.blast-panel__sample small { color: rgba(255, 255, 255, 0.5); margin-left: 0.4rem; }

.admin-badge {
  display: inline-block;
  margin-left: 0.6rem;
  padding: 3px 10px;
  background: rgba(255, 200, 0, 0.15);
  color: #ffd34d;
  border: 1px solid rgba(255, 200, 0, 0.35);
  border-radius: 100px;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  vertical-align: middle;
}
.admin-pill--warn { background: rgba(255, 165, 0, 0.18); color: #ffc266; }
.admin-event-detail__upsells {
  margin: 1rem 0 1.25rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(255, 196, 0, 0.25);
  border-radius: 8px;
  background: rgba(255, 196, 0, 0.04);
}
.admin-event-detail__upsells > summary {
  cursor: pointer;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #ffd34d;
  font-size: 0.85rem;
}
.admin-upsell-bysku {
  list-style: none;
  padding: 0;
  margin: 0.75rem 0 0.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.25rem;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.8);
}

/* Tables */
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.admin-table th, .admin-table td {
  text-align: left;
  padding: 0.75rem 0.85rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  vertical-align: top;
}
.admin-table th {
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}
.admin-table small { color: rgba(255, 255, 255, 0.5); font-size: 0.8rem; }
.admin-pill {
  display: inline-block;
  background: rgba(226,31,38, 0.12);
  border: 1px solid rgba(226,31,38, 0.3);
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.72rem;
  padding: 2px 8px;
  border-radius: 100px;
  margin: 0 4px 4px 0;
}

/* Search */
.admin-search {
  width: 100%;
  max-width: 460px;
  padding: 0.7rem 1rem;
  background: var(--black-card);
  border: 2px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 1rem;
  margin-bottom: 1rem;
}

.admin-empty {
  padding: 1.5rem;
  text-align: center;
  color: rgba(255, 255, 255, 0.5);
  background: var(--black-card);
  border: 1px dashed rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
}

/* Live event card */
.admin-event-card {
  background: linear-gradient(135deg, rgba(226,31,38, 0.08), var(--black-card));
  border: 1px solid rgba(226,31,38, 0.3);
  border-radius: var(--radius);
  padding: 1.5rem;
}
.admin-event-card h3 { font-size: 1.4rem; margin-bottom: 0.25rem; }
.admin-event-card__date { color: rgba(255, 255, 255, 0.6); margin-bottom: 1rem; font-size: 0.92rem; }
.admin-event-card__bar {
  height: 12px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 100px;
  overflow: hidden;
  margin-bottom: 0.6rem;
}
.admin-event-card__fill {
  height: 100%;
  background: linear-gradient(90deg, var(--gold), #FFEB3B);
  transition: width 0.6s ease;
}
.admin-event-card__nums {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  letter-spacing: 0.04em;
}
.admin-event-card__nums strong { color: var(--gold); font-size: 1.2rem; margin-right: 0.25rem; }

.admin-help {
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.88rem;
  margin-bottom: 1rem;
}
.admin-help code {
  background: rgba(226,31,38, 0.15);
  padding: 1px 7px;
  border-radius: 4px;
  font-size: 0.82rem;
}

.admin-staff-form,
.admin-event-form {
  display: grid;
  grid-template-columns: 1.5fr 1.5fr 1fr 1fr auto;
  gap: 0.75rem;
  align-items: end;
  margin-bottom: 1.5rem;
  background: var(--black-card);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.25rem;
}
.admin-event-form { display: block; }
.admin-event-form__row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.admin-event-form__row > div { display: flex; flex-direction: column; }
.admin-event-form label,
.admin-event-form input,
.admin-event-form select {
  font-family: inherit;
}
.admin-event-form label {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 0.3rem;
}
.admin-event-form input,
.admin-event-form select {
  padding: 0.6rem 0.75rem;
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 0.95rem;
}
.admin-event-form > button { margin-top: 0.5rem; }
@media (max-width: 700px) {
  .admin-event-form__row { grid-template-columns: 1fr; }
}

.admin-pill--live {
  background: rgba(46, 204, 113, 0.15);
  color: #2ecc71;
  border-color: rgba(46, 204, 113, 0.4);
}
.admin-pill--upcoming {
  background: rgba(226,31,38, 0.12);
  color: var(--gold);
  border-color: rgba(226,31,38, 0.4);
}
.admin-pill--cancelled {
  background: rgba(255, 80, 80, 0.1);
  color: #FF5050;
  border-color: rgba(255, 80, 80, 0.35);
}
.admin-inline-select {
  padding: 0.4rem 0.6rem;
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 0.85rem;
}
.admin-staff-form > div { display: flex; flex-direction: column; }
.admin-staff-form label {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 0.3rem;
}
.admin-staff-form input,
.admin-staff-form select {
  padding: 0.6rem 0.75rem;
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  color: var(--white);
  font-size: 0.95rem;
  font-family: inherit;
}
.admin-staff-form button { white-space: nowrap; }

@media (max-width: 900px) {
  .admin-staff-form { grid-template-columns: 1fr 1fr; }
  .admin-staff-form > button { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .admin-bar { padding: 0.6rem 1rem; }
  .admin-tabs { width: 100%; order: 3; }
  .admin-bar__right { margin-left: auto; }
  .admin-table { font-size: 0.82rem; }
  .admin-table th, .admin-table td { padding: 0.5rem 0.5rem; }
  .admin-staff-form { grid-template-columns: 1fr; }
}

/* ===== Door scanner: recent scans feed ===== */
.checkin-feed-toggle {
  position: fixed; bottom: 5.5rem; right: 1rem;
  z-index: 50;
  width: 48px; height: 48px; border-radius: 50%;
  background: rgba(0,0,0,0.78); color: #fff;
  border: 1px solid rgba(255,255,255,0.22);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.05rem; cursor: pointer;
  backdrop-filter: blur(8px);
}
.checkin-feed-toggle:hover { background: rgba(226,31,38,0.9); border-color: #E21F26; }

.checkin-feed {
  position: fixed; right: 0; top: 0; bottom: 0;
  width: min(360px, 92vw);
  background: #0a0a0a;
  border-left: 1px solid rgba(255,255,255,0.12);
  z-index: 80;
  display: flex; flex-direction: column;
  color: #fff;
  box-shadow: -10px 0 40px rgba(0,0,0,0.6);
}
.checkin-feed__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0.9rem 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-family: 'Oswald', sans-serif; letter-spacing: 0.04em;
}
.checkin-feed__head button {
  background: none; border: 0; color: #999;
  font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.checkin-feed__head button:hover { color: #fff; }
.checkin-feed__list {
  list-style: none; margin: 0; padding: 0;
  overflow-y: auto;
  flex: 1;
}
.checkin-feed__row {
  display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; gap: 0.6rem;
  padding: 0.6rem 1rem;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  font-size: 0.88rem;
}
.checkin-feed__act {
  font-family: 'Oswald', sans-serif; font-size: 0.78rem;
  padding: 0.18rem 0.45rem; border-radius: 4px;
  background: rgba(255,255,255,0.08);
  text-transform: uppercase; letter-spacing: 0.05em;
  white-space: nowrap;
}
.checkin-feed__act--check-in { background: rgba(46,204,113,0.18); color: #2ecc71; }
.checkin-feed__act--duplicate-attempt { background: rgba(255,170,0,0.18); color: #ffb733; }
.checkin-feed__act--invalid-signature,
.checkin-feed__act--wrong-event,
.checkin-feed__act--refunded-attempt { background: rgba(255,56,56,0.18); color: #ff6b6b; }
.checkin-feed__act--transferred-out { background: rgba(140,140,255,0.18); color: #b0b0ff; }
.checkin-feed__who {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.checkin-feed__who small {
  display: block; color: #888; font-size: 0.72rem;
}
.checkin-feed__time { color: #888; font-size: 0.78rem; white-space: nowrap; }
.checkin-feed__empty { padding: 1.2rem; color: #666; text-align: center; }

/* ===== Refund modal ===== */
.refund-modal {
  position: fixed; inset: 0; z-index: 9000;
  background: rgba(0,0,0,0.7);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}
.refund-modal__inner {
  background: #161616; color: #fff;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 12px;
  width: 100%; max-width: 460px;
  padding: 1.5rem 1.5rem 1.25rem;
  position: relative;
  box-shadow: 0 24px 60px rgba(0,0,0,0.6);
}
.refund-modal__close {
  position: absolute; top: 0.5rem; right: 0.75rem;
  background: none; border: 0; color: #999;
  font-size: 1.6rem; line-height: 1; cursor: pointer;
}
.refund-modal__close:hover { color: #fff; }
.refund-modal h3 { margin: 0 0 0.25rem; font-family: 'Oswald', sans-serif; font-size: 1.4rem; }
.refund-modal__sub { margin: 0 0 1rem; color: #aaa; font-size: 0.9rem; }
.refund-modal label {
  display: block; font-size: 0.8rem; color: #aaa;
  margin: 0.75rem 0 0.3rem; text-transform: uppercase; letter-spacing: 0.04em;
}
.refund-modal textarea, .refund-modal input[type=number] {
  width: 100%; background: #0c0c0c; color: #fff;
  border: 1px solid rgba(255,255,255,0.18); border-radius: 6px;
  padding: 0.55rem 0.7rem; font: inherit; resize: vertical;
}
.refund-modal__check {
  display: flex !important; align-items: center; gap: 0.5rem;
  margin: 1rem 0 0.5rem !important; cursor: pointer;
  text-transform: none !important; letter-spacing: 0 !important;
  color: #fff !important; font-size: 0.95rem !important;
}
.refund-modal__check input { width: auto; }
.refund-modal__actions {
  display: flex; gap: 0.6rem; justify-content: flex-end;
  margin-top: 1.25rem;
}
.refund-modal__msg {
  margin: 0.75rem 0 0; padding: 0.6rem 0.8rem;
  background: rgba(226,31,38,0.15); border: 1px solid rgba(226,31,38,0.4);
  border-radius: 6px; color: #ff8888; font-size: 0.9rem;
}

/* ============================================================
   BOOK FREE CLASS — multi-step picker (location → date → slot → form)
   ============================================================ */
.booking-step { margin-bottom: 2.75rem; }
.booking-step__head {
  display: flex; align-items: flex-start; gap: 1rem;
  margin-bottom: 1.25rem;
}
.booking-step__num {
  flex: 0 0 auto;
  width: 40px; height: 40px;
  border-radius: 50%;
  background: rgba(226,31,38,0.15);
  border: 1.5px solid rgba(226,31,38,0.45);
  color: var(--gold);
  font-family: var(--font-heading);
  font-size: 1.2rem;
  display: flex; align-items: center; justify-content: center;
}
.booking-step__title {
  font-size: 1.4rem; margin: 0;
  text-transform: uppercase; letter-spacing: 0.04em;
}
.booking-step__sub {
  margin: 0.15rem 0 0;
  color: rgba(255,255,255,0.6);
  font-size: 0.92rem;
}

/* Location cards */
.loc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.85rem;
}
.loc-card {
  background: var(--black-card);
  border: 1.5px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 1.1rem 1rem;
  color: var(--white);
  text-align: left;
  cursor: pointer;
  display: flex; flex-direction: column; gap: 0.25rem;
  font-family: var(--font-body);
  transition: border-color var(--transition), background var(--transition), transform var(--transition);
}
.loc-card i {
  color: var(--gold);
  font-size: 1.1rem;
  margin-bottom: 0.4rem;
}
.loc-card strong {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.loc-card span {
  color: rgba(255,255,255,0.6);
  font-size: 0.85rem;
}
.loc-card em {
  font-style: normal;
  color: var(--gold);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  margin-top: 0.4rem;
}
.loc-card:hover {
  border-color: rgba(226,31,38,0.5);
  background: #1f1414;
  transform: translateY(-1px);
}
.loc-card.is-selected {
  border-color: var(--gold);
  background: rgba(226,31,38,0.12);
  box-shadow: 0 0 0 3px rgba(226,31,38,0.18);
}

/* Date grid */
.date-grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.5rem;
}
@media (max-width: 640px) {
  .date-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.date-card {
  background: var(--black-card);
  border: 1.5px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 0.7rem 0.4rem 0.55rem;
  color: var(--white);
  cursor: pointer;
  display: flex; flex-direction: column; align-items: center; gap: 0.15rem;
  font-family: var(--font-body);
  transition: border-color var(--transition), background var(--transition), transform var(--transition);
}
.date-card__dow {
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
}
.date-card__day {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  line-height: 1;
}
.date-card__mon {
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: rgba(255,255,255,0.55);
  text-transform: uppercase;
}
.date-card__pill {
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  color: var(--gold);
  background: rgba(226,31,38,0.12);
  border-radius: 100px;
  padding: 2px 7px;
  margin-top: 0.3rem;
  text-transform: uppercase;
  font-weight: 700;
  white-space: nowrap;
}
.date-card:hover:not(.is-disabled) {
  border-color: rgba(226,31,38,0.5);
  transform: translateY(-1px);
}
.date-card.is-selected {
  border-color: var(--gold);
  background: rgba(226,31,38,0.12);
  box-shadow: 0 0 0 3px rgba(226,31,38,0.18);
}
.date-card.is-disabled {
  opacity: 0.32;
  cursor: not-allowed;
  pointer-events: none;
}
.date-card.is-disabled .date-card__pill {
  color: rgba(255,255,255,0.4);
  background: rgba(255,255,255,0.05);
}

/* Slot grid */
.slot-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.6rem;
}
.slot-card {
  background: var(--black-card);
  border: 1.5px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 0.95rem 1rem;
  color: var(--white);
  cursor: pointer;
  display: flex; flex-direction: column; gap: 0.2rem; align-items: flex-start;
  font-family: var(--font-body);
  text-align: left;
  transition: border-color var(--transition), background var(--transition), transform var(--transition);
}
.slot-card__time {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  letter-spacing: 0.03em;
}
.slot-card__type {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.6);
}
.slot-card__pill {
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  color: var(--gold);
  background: rgba(226,31,38,0.12);
  border-radius: 100px;
  padding: 2px 7px;
  margin-top: 0.4rem;
  text-transform: uppercase;
  font-weight: 700;
}
.slot-card:hover {
  border-color: rgba(226,31,38,0.5);
  transform: translateY(-1px);
}
.slot-card.is-selected {
  border-color: var(--gold);
  background: rgba(226,31,38,0.12);
  box-shadow: 0 0 0 3px rgba(226,31,38,0.18);
}

/* Booking summary panel (above form) */
.booking-summary {
  background: linear-gradient(135deg, rgba(226,31,38,0.08), rgba(226,31,38,0.02));
  border: 1px solid rgba(226,31,38,0.35);
  border-radius: 10px;
  padding: 1rem 1.15rem;
  margin-bottom: 1.5rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.7rem 1.25rem;
}
.booking-summary > div { display: flex; flex-direction: column; gap: 2px; }
.booking-summary span {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.5);
  font-weight: 600;
}
.booking-summary strong {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--white);
}

/* Booking form */
.booking-form .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
@media (max-width: 540px) {
  .booking-form .form-row { grid-template-columns: 1fr; }
}
.booking-form__submit {
  width: 100%;
  justify-content: center;
  font-size: 1rem;
  margin-top: 0.5rem;
}
.booking-form__submit:disabled { opacity: 0.7; cursor: wait; }
.booking-form__legal {
  font-size: 0.78rem;
  color: rgba(255,255,255,0.4);
  text-align: center;
  margin-top: 0.85rem;
}

/* Success state */
.booking-success {
  text-align: center;
  padding: 1rem 0 0;
}
.booking-success__icon {
  font-size: 3.5rem;
  color: #2ecc71;
  margin-bottom: 0.5rem;
  animation: bookingPop 0.4s ease-out;
}
@keyframes bookingPop {
  0% { transform: scale(0.4); opacity: 0; }
  70% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); }
}
.booking-success h2 {
  font-size: 2.2rem;
  margin-bottom: 0.5rem;
}
.booking-success__lead {
  color: var(--gold);
  font-weight: 600;
  font-size: 1.05rem;
  max-width: 540px;
  margin: 0 auto 1.5rem;
}
.booking-success__details {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 0.75rem;
  background: var(--black-card);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 10px;
  padding: 1rem 1.15rem;
  margin: 0 auto 1.5rem;
  max-width: 700px;
  text-align: left;
}
.booking-success__details > div { display: flex; flex-direction: column; gap: 2px; }
.booking-success__details span {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255,255,255,0.5);
  font-weight: 600;
}
.booking-success__details strong {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 0.95rem;
}
.booking-success__next {
  color: rgba(255,255,255,0.7);
  max-width: 580px;
  margin: 0 auto 1.5rem;
  font-size: 0.95rem;
}
.booking-success__ctas {
  display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap;
}

/* ============================================================
   Admin: event detail panel + comp form + ticket-status pills
   + order detail modal + event picker
   ============================================================ */

.admin-h4 { font-size: 0.95rem; margin: 1.4rem 0 0.5rem; color: rgba(255,255,255,0.78); letter-spacing: 0.04em; text-transform: uppercase; }

/* Status pills for tickets — extends .admin-pill */
.admin-pill--issued { background: rgba(70,130,255,0.14); color: #6aa6ff; border-color: rgba(70,130,255,0.35); }
.admin-pill--checked_in { background: rgba(46,204,113,0.16); color: #2ecc71; border-color: rgba(46,204,113,0.4); }
.admin-pill--no_show { background: rgba(255,150,30,0.14); color: #ff9f3d; border-color: rgba(255,150,30,0.35); }
.admin-pill--refunded { background: rgba(255,80,80,0.12); color: #ff7070; border-color: rgba(255,80,80,0.35); }
.admin-pill--transferred { background: rgba(180,180,180,0.12); color: #ccc; border-color: rgba(255,255,255,0.18); }

/* Expandable event row */
.admin-event-toggle {
  background: none; border: 0; color: inherit; padding: 0;
  font-family: inherit; font-size: 1rem; cursor: pointer; text-align: left;
}
.admin-event-toggle:hover { color: var(--gold); }
.admin-event-toggle__caret {
  display: inline-block; width: 1em; color: rgba(255,255,255,0.4); font-size: 0.75rem;
}
.admin-event-detail-row > td {
  background: rgba(255,255,255,0.025);
  border-top: 1px solid rgba(255,255,255,0.06);
  padding: 1.25rem 1.25rem 1.5rem;
}
.admin-event-detail__stats {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 0.5rem; margin-bottom: 1rem;
}
.admin-event-detail__stat {
  background: var(--black); border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius); padding: 0.7rem 0.9rem;
  display: flex; flex-direction: column; gap: 0.1rem;
}
.admin-event-detail__stat span {
  font-size: 0.68rem; letter-spacing: 0.1em; text-transform: uppercase;
  color: rgba(255,255,255,0.5);
}
.admin-event-detail__stat strong {
  font-size: 1.25rem; color: #fff;
}

/* Comp ticket form (collapsible) */
.admin-event-detail__comp {
  background: rgba(212,175,55,0.05);
  border: 1px solid rgba(212,175,55,0.2);
  border-radius: var(--radius);
  padding: 0.65rem 1rem; margin-bottom: 1rem;
}
.admin-event-detail__comp summary {
  cursor: pointer; color: var(--gold); font-weight: 600; padding: 0.1rem 0;
}
.admin-event-detail__comp[open] summary { margin-bottom: 0.5rem; }
.admin-comp-form__row {
  display: flex; gap: 0.5rem; align-items: center; margin-top: 0.5rem; flex-wrap: wrap;
}
.admin-comp-form__row input {
  padding: 0.5rem 0.7rem; background: var(--black);
  border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius);
  color: #fff; font-size: 0.9rem; flex: 1; min-width: 120px;
}
.admin-comp-form__check {
  display: flex; align-items: center; gap: 0.3rem;
  font-size: 0.85rem; color: rgba(255,255,255,0.7);
  white-space: nowrap;
}
.admin-comp-form__msg {
  margin: 0.5rem 0 0; font-size: 0.85rem; color: rgba(255,255,255,0.7);
}

/* Inline tables (inside detail panels) */
.admin-table--inline {
  margin-top: 0.5rem; font-size: 0.88rem;
}
.admin-table--inline th, .admin-table--inline td {
  padding: 0.55rem 0.75rem;
}

/* Live event picker */
.admin-event-picker {
  display: flex; gap: 0.5rem; align-items: center; margin: 0.5rem 0 1rem;
  flex-wrap: wrap;
}
.admin-event-picker label {
  font-size: 0.8rem; color: rgba(255,255,255,0.6);
}
.admin-event-picker select {
  padding: 0.45rem 0.7rem; background: var(--black);
  border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius);
  color: #fff; font-size: 0.9rem; min-width: 240px;
}

/* Order detail modal */
.admin-modal {
  position: fixed; inset: 0; z-index: 9000;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}
.admin-modal__backdrop {
  position: absolute; inset: 0; background: rgba(0,0,0,0.7);
}
.admin-modal__inner {
  position: relative; z-index: 1;
  background: var(--black-card); border: 1px solid rgba(255,255,255,0.1);
  border-radius: var(--radius); padding: 1.5rem 1.75rem 1.75rem;
  max-width: 760px; width: 100%; max-height: 90vh; overflow: auto;
}
.admin-modal__inner h2 {
  font-size: 1.2rem; margin: 0 0 0.75rem; color: #fff;
}
.admin-modal__close {
  position: absolute; top: 0.7rem; right: 0.85rem;
  background: none; border: 0; color: rgba(255,255,255,0.6);
  font-size: 1.6rem; line-height: 1; cursor: pointer;
}
.admin-modal__close:hover { color: #fff; }
.admin-order-detail__head {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 1rem; padding: 0.75rem 0.95rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
}

/* Fulfillment addons (TEE / TANK) — bright yellow + bold so Mike can't miss
   what physical items need to be at the door for each order. */
.admin-addon {
  display: inline-block;
  margin: 0.25rem 0.4rem 0 0;
  padding: 0.22rem 0.55rem;
  background: rgba(212, 175, 55, 0.14);
  color: #ffd84a;
  border: 1px solid rgba(255, 216, 74, 0.35);
  border-radius: var(--radius);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  white-space: nowrap;
}
.admin-addon--tank {
  background: rgba(212, 175, 55, 0.18);
}
.admin-order-detail__addons {
  margin: 0.85rem 0 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

/* ============================================================
   Trap Boxing — Vendor CTA on landing page
   ============================================================ */

.vendor-cta {
  margin: 3rem auto 0;
  max-width: 880px;
  padding: 1.5rem 1.75rem;
  background: linear-gradient(135deg, rgba(212,175,55,0.08), rgba(226,31,38,0.05));
  border: 1px solid rgba(212,175,55,0.25);
  border-radius: var(--radius);
}
.vendor-cta__inner {
  display: flex;
  gap: 1.5rem;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.vendor-cta h3 {
  font-size: 1.5rem;
  margin: 0.25rem 0 0.5rem;
}
.vendor-cta p {
  margin: 0;
  color: rgba(255,255,255,0.7);
  font-size: 0.95rem;
  line-height: 1.5;
  max-width: 540px;
}
.vendor-cta__btn {
  flex-shrink: 0;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .vendor-cta__inner { flex-direction: column; align-items: flex-start; }
  .vendor-cta__btn { width: 100%; text-align: center; }
}

/* ============================================================
   PARTNER / SPONSORSHIP page — /trap-boxing/partner
   ============================================================ */
.partner-main { padding: 1.5rem 0 4rem; }
.partner-hero {
  max-width: 820px;
  margin: 0 auto 2.5rem;
  text-align: center;
  padding: 1rem;
}
.partner-hero h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.1;
  margin: 0.5rem 0 1rem;
}
.partner-hero__sub {
  color: rgba(255, 255, 255, 0.7);
  font-size: 1.05rem;
  line-height: 1.55;
  margin: 0 auto 1rem;
  max-width: 640px;
}
.partner-hero__event {
  display: inline-block;
  margin-top: 0.5rem;
  padding: 0.55rem 1rem;
  background: rgba(212, 175, 55, 0.1);
  border: 1px solid rgba(212, 175, 55, 0.3);
  border-radius: 100px;
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.8);
}

.partner-tiers {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1rem;
  max-width: 1280px;
  margin: 0 auto 2.5rem;
}
.partner-tiers__loading { text-align: center; color: rgba(255, 255, 255, 0.5); padding: 2rem; }

.tier-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 1.5rem 1.25rem 1.25rem;
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
  transition: border-color 0.15s, transform 0.1s;
}
.tier-card:hover { border-color: rgba(226,31,38, 0.45); }
.tier-card.is-selected {
  border-color: var(--red, #E21F26);
  box-shadow: 0 0 0 1px var(--red, #E21F26);
}
.tier-card--featured {
  border-color: rgba(212, 175, 55, 0.45);
  background: linear-gradient(180deg, rgba(212,175,55,0.06) 0%, var(--black-card, #181818) 60%);
}
.tier-card--sold-out { opacity: 0.55; }
.tier-card--sold-out:hover { border-color: rgba(255, 255, 255, 0.1); }
.tier-card__ribbon {
  position: absolute;
  top: -10px;
  right: 14px;
  background: var(--gold, #E21F26);
  color: #000;
  font-family: var(--font-heading);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 100px;
}
.tier-card__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.tier-card__head h3 { margin: 0; font-size: 1.2rem; }
.tier-badge {
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 3px 9px;
  border-radius: 100px;
  white-space: nowrap;
  flex-shrink: 0;
}
.tier-badge--limited { background: rgba(70, 130, 255, 0.15); color: #6aa6ff; border: 1px solid rgba(70, 130, 255, 0.35); }
.tier-badge--hot { background: rgba(255, 150, 30, 0.16); color: #ff9f3d; border: 1px solid rgba(255, 150, 30, 0.4); }
.tier-badge--out { background: rgba(255, 80, 80, 0.16); color: #ff8080; border: 1px solid rgba(255, 80, 80, 0.4); }

.tier-card__price {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.tier-card__price strong {
  font-family: var(--font-heading);
  font-size: 2.1rem;
  color: var(--gold, #E21F26);
  letter-spacing: 0.02em;
}
.tier-card__price small { color: rgba(255, 255, 255, 0.5); font-size: 0.85rem; }
.tier-card__best-for {
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.92rem;
  line-height: 1.4;
  margin: 0 0 0.65rem;
  min-height: 2.6em;
}
.tier-card__tickets {
  display: inline-block;
  margin: 0 0 0.9rem;
  padding: 4px 10px;
  background: rgba(226,31,38, 0.15);
  border: 1px solid rgba(226,31,38, 0.35);
  color: #ff9090;
  border-radius: 6px;
  font-size: 0.82rem;
}
.tier-card__tickets i { margin-right: 0.3rem; color: var(--gold, #E21F26); }
.tier-card__perks {
  list-style: none;
  margin: 0 0 1.25rem;
  padding: 0;
  flex: 1;
}
.tier-card__perks li {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  padding: 0.3rem 0;
  font-size: 0.88rem;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.4;
}
.tier-card__perks li i {
  color: #2ecc71;
  font-size: 0.78rem;
  flex-shrink: 0;
  margin-top: 0.25rem;
}
.tier-card__cta { width: 100%; }
.tier-card__cta:disabled { cursor: not-allowed; opacity: 0.6; }

/* Form */
.partner-form-wrap {
  max-width: 640px;
  margin: 0 auto 3rem;
  padding: 1.5rem 1.5rem 1.75rem;
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
}
.partner-form-head h2 { font-size: 1.5rem; margin: 0 0 0.4rem; }
.partner-form-head p { color: rgba(255, 255, 255, 0.65); margin: 0 0 1.25rem; font-size: 0.95rem; }
.partner-form__row { margin-bottom: 1rem; display: flex; flex-direction: column; }
.partner-form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 1rem; }
.partner-form__grid > div { display: flex; flex-direction: column; }
.partner-form label {
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 0.35rem;
}
.partner-form__hint { text-transform: none; letter-spacing: normal; color: rgba(255, 255, 255, 0.4); font-size: 0.78rem; }
.partner-form input,
.partner-form textarea {
  background: var(--black, #0a0a0a);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 6px;
  color: #fff;
  padding: 0.65rem 0.8rem;
  font-size: 0.95rem;
  font-family: inherit;
}
.partner-form input:focus,
.partner-form textarea:focus {
  outline: none;
  border-color: var(--red, #E21F26);
}
.partner-form textarea { resize: vertical; }

.partner-form__summary {
  background: rgba(212, 175, 55, 0.06);
  border: 1px solid rgba(212, 175, 55, 0.25);
  border-radius: var(--radius);
  padding: 0.9rem 1.1rem;
  margin: 1.25rem 0;
}
.partner-form__summary div {
  display: flex;
  justify-content: space-between;
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.75);
  padding: 0.2rem 0;
}
.partner-form__summary div strong { color: #fff; }
.partner-form__summary-total {
  margin-top: 0.4rem;
  padding-top: 0.6rem;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 1.05rem;
}
.partner-form__summary-total strong { color: var(--gold, #E21F26); font-size: 1.15rem; }

.partner-cta { width: 100%; }
.partner-cta:disabled { opacity: 0.7; cursor: progress; }
.partner-cta__label:not([hidden]) { display: inline-block; }

.partner-faq {
  max-width: 720px;
  margin: 3rem auto 1rem;
  padding: 0 1rem;
}
.partner-faq h2 { font-size: 1.6rem; margin-bottom: 1rem; text-align: center; }
.partner-faq details {
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 0.9rem 1.1rem;
  margin-bottom: 0.65rem;
}
.partner-faq summary {
  cursor: pointer;
  font-weight: 600;
  color: #fff;
  list-style: none;
}
.partner-faq summary::marker { display: none; }
.partner-faq summary::-webkit-details-marker { display: none; }
.partner-faq details[open] summary { margin-bottom: 0.6rem; }
.partner-faq details p {
  margin: 0;
  color: rgba(255, 255, 255, 0.7);
  font-size: 0.92rem;
  line-height: 1.55;
}
.partner-faq details a { color: var(--red, #E21F26); }

/* Logo uploader (partner form, cornerman+) */
.logo-uploader { display: block; }
.logo-uploader__drop {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1.4rem 1rem;
  background: rgba(0, 0, 0, 0.4);
  border: 2px dashed rgba(255, 255, 255, 0.18);
  border-radius: var(--radius);
  text-align: center;
  color: rgba(255, 255, 255, 0.75);
  transition: border-color 0.15s, background 0.15s;
}
.logo-uploader__drop.is-dragover {
  border-color: var(--red, #E21F26);
  background: rgba(226,31,38, 0.08);
}
.logo-uploader__drop i { font-size: 1.5rem; color: var(--gold, #E21F26); }
.logo-uploader__label { font-size: 0.95rem; }
.logo-uploader__pick {
  background: none;
  border: none;
  color: var(--red, #E21F26);
  text-decoration: underline;
  cursor: pointer;
  font: inherit;
  padding: 0;
}
.logo-uploader__hint { font-size: 0.78rem; color: rgba(255, 255, 255, 0.45); }
.logo-uploader__preview {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.85rem 1rem;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--radius);
}
.logo-uploader__preview[hidden] { display: none; }
.logo-uploader__preview img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  background: #fff;
  border-radius: 6px;
  padding: 4px;
  flex-shrink: 0;
}
.logo-uploader__meta { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.logo-uploader__meta strong { font-size: 0.92rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.logo-uploader__meta small { font-size: 0.78rem; color: rgba(255, 255, 255, 0.5); }
.logo-uploader__remove {
  background: rgba(255, 80, 80, 0.12);
  border: 1px solid rgba(255, 80, 80, 0.35);
  color: #ff8080;
  border-radius: 6px;
  width: 32px;
  height: 32px;
  cursor: pointer;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}
.logo-uploader__remove:hover { background: rgba(255, 80, 80, 0.22); }
.logo-uploader__status {
  margin-top: 0.5rem;
  font-size: 0.85rem;
  padding: 0.4rem 0.7rem;
  border-radius: 6px;
}
.logo-uploader__status[data-kind="info"] { background: rgba(70, 130, 255, 0.12); color: #8ab6ff; }
.logo-uploader__status[data-kind="ok"]   { background: rgba(46, 204, 113, 0.14); color: #6fdc97; }
.logo-uploader__status[data-kind="error"]{ background: rgba(255, 80, 80, 0.14); color: #FFB3B3; }

/* ============================================================
   SPONSOR STRIP — /trap-boxing landing-page social proof
   ============================================================ */
.sponsor-strip {
  margin: 2.5rem auto;
  max-width: 1080px;
  padding: 0 1rem;
}
.sponsor-strip[hidden] { display: none; }
.sponsor-strip__title-lockup {
  text-align: center;
  margin-bottom: 1.5rem;
  padding: 1.25rem 1.5rem;
  background: linear-gradient(135deg, rgba(212,175,55,0.12), rgba(226,31,38,0.06));
  border: 1px solid rgba(212, 175, 55, 0.4);
  border-radius: var(--radius);
}
.sponsor-strip__title-eyebrow {
  display: inline-block;
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold, #E21F26);
  margin-bottom: 0.7rem;
}
.sponsor-strip__title-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  flex-wrap: wrap;
}
.sponsor-strip__title-brand img { max-height: 64px; max-width: 220px; }
.sponsor-strip__title-brand span {
  font-family: var(--font-heading);
  font-size: 1.6rem;
  color: #fff;
}
.sponsor-strip__row {
  margin-bottom: 1rem;
}
.sponsor-strip__row-label {
  font-family: var(--font-heading);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.45);
  margin-bottom: 0.5rem;
  text-align: center;
}
.sponsor-strip__logos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1.25rem 1.75rem;
  padding: 0.6rem 0.5rem;
}
.sponsor-strip__logo {
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 6px;
  padding: 0.35rem 0.7rem;
}
.sponsor-strip__logo img { display: block; object-fit: contain; }
.sponsor-strip__logo--headliner img { max-height: 56px; max-width: 160px; }
.sponsor-strip__logo--cornerman img { max-height: 42px; max-width: 120px; }
.sponsor-strip__logo--vendor_plus img { max-height: 32px; max-width: 90px; }
.sponsor-strip__logo-text {
  font-size: 0.92rem;
  color: rgba(255, 255, 255, 0.7);
  padding: 0.3rem 0.6rem;
}
.sponsor-strip__cta {
  text-align: center;
  margin-top: 1rem;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
}
.sponsor-strip__cta a { color: var(--gold, #E21F26); }

/* ============================================================
   Trap Boxing landing — hero next-event strip
   ============================================================ */

.next-event-strip {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin: 0.5rem 0 1.25rem;
  padding: 0.75rem 1rem;
  background: rgba(212, 175, 55, 0.08);
  border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  max-width: 420px;
}
.next-event-strip__row {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.92);
}
.next-event-strip__row i {
  color: var(--gold);
  font-size: 0.95rem;
  width: 1.1rem;
  text-align: center;
  line-height: 1.45;
  flex-shrink: 0;
}
.next-event-strip__address {
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.6);
  margin-top: 0.1rem;
  line-height: 1.35;
}

/* Multi-date variant — "pick your date" list when 2+ events are on sale. */
.next-event-strip--multi { gap: 0.55rem; }
.next-event-strip__heading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gold);
}
.next-event-date {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.6rem 0.8rem;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--radius);
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.next-event-date:hover {
  border-color: var(--gold);
  background: rgba(212, 175, 55, 0.1);
}
.next-event-date__info { display: flex; flex-direction: column; gap: 0.1rem; }
.next-event-date__when {
  font-weight: 600;
  font-size: 0.98rem;
  color: rgba(255, 255, 255, 0.95);
}
.next-event-date__where {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.6);
}
.next-event-date__cta {
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}

/* ============================================================
   Admin Funnel pane
   ============================================================ */

.funnel-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; flex-wrap: wrap; margin-bottom: 0.5rem;
}
.funnel-range {
  display: inline-flex; gap: 0.25rem;
  background: rgba(255, 255, 255, 0.04);
  padding: 0.2rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
}
.funnel-range-btn {
  background: none; border: 0;
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.85rem; font-weight: 600;
  padding: 0.4rem 0.75rem;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease;
}
.funnel-range-btn:hover { color: #fff; }
.funnel-range-btn--active {
  background: var(--gold);
  color: #111;
}
.funnel-stages {
  display: flex; flex-direction: column; gap: 0;
  margin: 1.5rem 0 1rem;
}
.funnel-stage {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 1rem; align-items: center;
  padding: 1.25rem 1.5rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
}
.funnel-stage__icon {
  font-size: 2rem; line-height: 1;
  width: 56px; height: 56px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(212, 175, 55, 0.1);
  border: 1px solid rgba(212, 175, 55, 0.25);
  border-radius: 50%;
}
.funnel-stage__label {
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 0.15rem;
}
.funnel-stage__num {
  font-size: 1.9rem;
  font-weight: 700;
  color: #fff;
  line-height: 1.05;
  font-family: var(--font-heading);
}
.funnel-stage__sub {
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 0.2rem;
}
.funnel-stage__rate {
  text-align: right;
}
.funnel-stage__rate strong {
  font-size: 1.4rem;
  color: var(--gold);
  display: block;
}
.funnel-stage__rate span {
  font-size: 0.78rem;
  color: rgba(255, 255, 255, 0.55);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.funnel-arrow {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.4rem 0 0.4rem 28px;
  margin: 0 0 0 28px;
  border-left: 2px dashed rgba(212, 175, 55, 0.4);
  font-size: 0.85rem;
}
.funnel-arrow__pct {
  display: inline-block;
  background: rgba(212, 175, 55, 0.18);
  color: var(--gold);
  border: 1px solid rgba(212, 175, 55, 0.35);
  border-radius: 999px;
  padding: 0.18rem 0.65rem;
  font-weight: 700;
  font-size: 0.85rem;
}
.funnel-arrow__label {
  color: rgba(255, 255, 255, 0.55);
}

.funnel-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.75rem;
  margin-top: 1rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.funnel-summary > div {
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 0.85rem 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.funnel-summary span {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.45);
}
.funnel-summary strong {
  font-size: 1.5rem;
  color: var(--gold);
  font-family: var(--font-heading);
}
.funnel-summary small {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.4);
}

/* Per-source breakdown — answers "which traffic source clicks through?" */
.funnel-sources {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}
.funnel-sources__header h3 {
  margin: 0 0 0.25rem;
  font-size: 1rem;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-family: var(--font-heading);
}
.funnel-sources__header p {
  margin: 0 0 1rem;
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.5);
}
.funnel-sources__list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.funnel-source {
  display: grid;
  grid-template-columns: 7rem 1fr 4rem 5rem;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0.75rem;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 6px;
  font-size: 0.85rem;
}
.funnel-source__name {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 600;
  text-transform: lowercase;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.funnel-source__bar {
  height: 8px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  overflow: hidden;
  position: relative;
}
.funnel-source__bar span {
  display: block;
  height: 100%;
  border-radius: 999px;
  transition: width 0.4s ease;
}
.funnel-source__pct {
  text-align: right;
  font-weight: 700;
  color: #fff;
  font-variant-numeric: tabular-nums;
}
.funnel-source__count {
  text-align: right;
  color: rgba(255, 255, 255, 0.45);
  font-size: 0.78rem;
  font-variant-numeric: tabular-nums;
}
@media (max-width: 600px) {
  .funnel-source { grid-template-columns: 5.5rem 1fr 3.5rem; }
  .funnel-source__count { display: none; }
}

/* ============================================================
   Trap Boxing Punch Card page
   ============================================================ */

.punch-main { padding: 3rem 0 4rem; min-height: 70vh; }

.punch-hero {
  text-align: center;
  margin-bottom: 2.5rem;
}
.punch-hero__badge {
  display: inline-block;
  padding: 0.4rem 0.95rem;
  margin-bottom: 1rem;
  background: rgba(212, 175, 55, 0.15);
  border: 1px solid rgba(212, 175, 55, 0.4);
  border-radius: 999px;
  color: var(--gold);
  font-size: 0.82rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}
.punch-hero h1 {
  font-size: clamp(2rem, 5vw, 3rem);
  line-height: 1.15;
  margin: 0 0 1rem;
}
.punch-hero__sub {
  max-width: 580px;
  margin: 0 auto;
  color: rgba(255, 255, 255, 0.7);
  line-height: 1.55;
  font-size: 1rem;
}

.punch-lookup, .punch-status {
  background: var(--black-card, #181818);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
  padding: 1.75rem 1.75rem 1.5rem;
  margin: 0 0 2rem;
}
.punch-lookup h2, .punch-status h2 {
  font-size: 1.25rem;
  margin: 0 0 0.5rem;
}
.punch-lookup__hint {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.92rem;
}
.punch-lookup form {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
}
.punch-lookup input {
  flex: 1;
  min-width: 200px;
  padding: 0.7rem 0.9rem;
  background: var(--black);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: var(--radius);
  color: #fff;
  font-size: 0.95rem;
}
.punch-lookup input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.2);
}
.punch-lookup__error {
  margin: 0.75rem 0 0;
  color: #ff7070;
  font-size: 0.9rem;
}

.punch-status__head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  flex-wrap: wrap;
}
.punch-status__switch {
  background: none;
  border: 0;
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.85rem;
  text-decoration: underline;
  cursor: pointer;
}
.punch-status__switch:hover { color: rgba(255, 255, 255, 0.85); }

.punch-stamps {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 0.55rem;
  margin: 1.25rem 0 0.5rem;
}
.punch-stamp {
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.04);
  border: 2px dashed rgba(255, 255, 255, 0.15);
  border-radius: 50%;
  font-size: clamp(1.5rem, 5vw, 2.2rem);
  color: rgba(255, 255, 255, 0.18);
  font-weight: 700;
  position: relative;
  transition: transform 0.2s ease;
}
.punch-stamp--filled {
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.22), rgba(226,31,38, 0.18));
  border: 2px solid var(--gold);
  color: #fff;
  box-shadow: 0 0 12px rgba(212, 175, 55, 0.3);
  transform: rotate(-6deg);
}
.punch-stamp__number {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.35);
  font-family: var(--font-heading);
}

.punch-status__count {
  text-align: center;
  font-size: 0.9rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.55);
  margin: 0.75rem 0 1.25rem;
}

.punch-status__claim {
  text-align: center;
  padding: 1.25rem;
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.15), rgba(226,31,38, 0.12));
  border: 1px solid rgba(212, 175, 55, 0.4);
  border-radius: var(--radius);
}
.punch-status__claim-msg {
  font-size: 1.1rem;
  color: #fff;
  margin: 0 0 1rem;
  font-weight: 600;
}
.punch-status__claim-hint {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.55);
}

.punch-status__progress {
  text-align: center;
  padding: 1.25rem;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius);
}
.punch-status__progress p {
  margin: 0 0 1rem;
  color: rgba(255, 255, 255, 0.78);
}

.punch-attended {
  margin-top: 1.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.07);
  padding-top: 1.25rem;
}
.punch-attended h3 {
  font-size: 0.92rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(255, 255, 255, 0.6);
  margin: 0 0 0.6rem;
}
.punch-attended ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.punch-attended li {
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 0.92rem;
}
.punch-attended li:last-child { border-bottom: 0; }

.punch-faq {
  margin-top: 2.5rem;
}
.punch-faq h2 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
  text-align: center;
}

/* Punch-applied banner on the checkout page */
.punch-applied {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  margin: 0 0 1.25rem;
  background: linear-gradient(135deg, rgba(212, 175, 55, 0.18), rgba(226,31,38, 0.12));
  border: 1px solid rgba(212, 175, 55, 0.45);
  border-radius: var(--radius);
}
.punch-applied__icon { font-size: 1.4rem; }
.punch-applied__text { flex: 1; font-size: 0.92rem; line-height: 1.4; }
.punch-applied__text strong { color: var(--gold); display: block; margin-bottom: 0.15rem; }

/* Vendor-flow thank-you next-steps block */
.thanks-vendor {
  background: var(--black-card, #181818);
  border-left: 3px solid var(--gold);
  border-radius: var(--radius);
  padding: 1.25rem 1.5rem;
  margin: 1.5rem auto 0;
  max-width: 540px;
}
.thanks-vendor h2 {
  font-size: 1.1rem;
  margin: 0 0 0.75rem;
  color: #fff;
}
.thanks-vendor ol {
  margin: 0;
  padding-left: 1.25rem;
  color: rgba(255,255,255,0.78);
  line-height: 1.55;
  font-size: 0.95rem;
}
.thanks-vendor ol li { margin-bottom: 0.4rem; }
.thanks-vendor__hint {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  color: rgba(255,255,255,0.45);
}


/* ============================================================
   LIGHT THEME PROTOTYPE — overrides layered on the dark base.
   Warm off-white ground · near-black Saira headings · red accent ·
   frosted-glass hero. (Prototype: refine before production.)
   ============================================================ */
:root{
  --black:#F4F3F1;        /* page ground (was near-black) */
  --black-soft:#ECEAE5;   /* alt section */
  --black-card:#FFFFFF;   /* card surface */
  --white:#18171A;        /* now the INK / primary text */
  --ink:#18171A; --muted:#54545B; --hair:rgba(20,18,16,.12);
  --shadow:0 8px 30px rgba(20,18,16,.10);
}
body{background:var(--black);color:var(--ink);}
h1,h2,h3,h4,h5{color:var(--ink);}
.text-gold,.hero__eyebrow,.section-label,.home-trap h2 .text-gold,.footer-col h4{color:var(--red)!important;}
/* white-opacity muted text → dark muted */
.hero__subtitle,.hero__trust-item .label,.service-card p,.pricing-card__desc,
.testimonial-card p,.footer-brand p,.footer-bottom p,.footer-col a,.home-trap__lede,
.location-card p,.cta-banner__content p,.proof-item,.credential-list li,.stat-item .label{color:var(--muted)!important;}
.footer-col a:hover,.proof-item:hover{color:var(--red)!important;}
/* dark section grounds → light */
.home-trap,.trap-hero{background:#F8F6F3!important;border-color:var(--hair)!important;}
.cta-banner,.lead-strip{background:linear-gradient(135deg,#FBFAF8 0%,#F0EEEA 50%,#F6F4F0 100%)!important;border-top:1px solid var(--hair)!important;border-bottom:1px solid var(--hair)!important;}
[style*="--black-soft"]{background:var(--black-soft)!important;}
.stats-bar{background:var(--red)!important;}
.stats-bar .stat-item .num,.stats-bar .stat-item .label{color:#fff!important;}
/* cards */
.service-card,.pricing-card,.testimonial-card,.blog-card,.form-card,.location-card{
  background:#fff!important;border:1px solid var(--hair)!important;box-shadow:var(--shadow)!important;color:var(--ink)!important;}
.service-card:hover,.location-card:hover{border-color:rgba(226,31,38,.4)!important;}
.service-card__icon,.faq-item__icon,.testimonial-card__avatar{background:rgba(226,31,38,.10)!important;border-color:rgba(226,31,38,.22)!important;color:var(--red)!important;}
/* nav → light */
.navbar{background:rgba(248,247,245,.92)!important;border-bottom:1px solid var(--hair)!important;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.navbar.scrolled{background:rgba(249,248,246,.98)!important;}
.navbar__logo{color:var(--ink)!important;}
.navbar__nav a{color:var(--ink)!important;}
.navbar__nav a:hover,.navbar__nav a.active,.dropdown-toggle.active{color:var(--red)!important;}
.dropdown-menu{background:#fff!important;border:1px solid var(--hair)!important;box-shadow:var(--shadow)!important;}
.dropdown-menu a{color:var(--ink)!important;}
.mobile-nav{background:#fff!important;}
.mobile-nav a{color:var(--ink)!important;}
/* borders that were white-opacity */
.footer-grid{border-top:1px solid var(--hair)!important;}
/* form inputs */
.form-group input,.form-group textarea,.lead-form input{background:#fff!important;border:1px solid var(--hair)!important;color:var(--ink)!important;}
.form-group input::placeholder,.lead-form input::placeholder{color:#9a9aa2!important;}
/* buttons: keep red primary, white text */
.btn--primary{background:var(--red)!important;color:#fff!important;}
.btn--primary:hover{background:var(--gold-light)!important;}
.btn--outline{color:var(--red)!important;border-color:var(--red)!important;background:transparent!important;}
.btn--outline:hover{background:var(--red)!important;color:#fff!important;}
/* footer → deep contrast (keep dark for grounding) */
footer{background:#141315!important;}
footer, .footer-bottom{border-color:rgba(255,255,255,.08)!important;}
footer .footer-brand p,footer .footer-col a,footer .footer-bottom p{color:rgba(255,255,255,.55)!important;}
footer h4,footer .footer-col h4{color:var(--red)!important;}
footer .navbar__logo,footer .footer-brand{color:#fff!important;}
/* ---- HERO → full-bleed photo + frosted glass panel ---- */
.hero{background:#E9E7E3!important;}
.hero__bg-image{opacity:1!important;}
.hero__overlay{background:linear-gradient(to bottom,rgba(10,10,10,.55) 0%,rgba(10,10,10,0) 22%)!important;}
.hero__content{
  background:rgba(246,244,240,.80)!important;
  -webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);
  border-left:8px solid var(--red);
  border-radius:6px; padding:2.6rem 2.8rem!important;
  box-shadow:0 20px 60px rgba(0,0,0,.28);
}
.hero h1,.hero__subtitle{color:var(--ink)!important;}
.hero h1 span{color:var(--red)!important;}
.hero__trust-item .num{color:var(--red)!important;}
/* fix: signature "Bars & Bands" section → light (override inner bg + glow) */
.home-trap__bg{background:linear-gradient(135deg,#FBFAF8 0%,#F2F0EB 55%,#F7F5F1 100%)!important;}
.home-trap__bg::before,.home-trap__bg::after,.home-trap__glow{background:none!important;opacity:0!important;}
.home-trap h2{color:var(--ink)!important;}
.home-trap__lede,.home-trap__stats .label,.home-trap__stats .sub{color:var(--muted)!important;}
.home-trap__stats .num,.home-trap__stats strong{color:var(--red)!important;}
.trap-hero__bg-blur,.trap-hero__bg-overlay,.trap-hero__glow{opacity:0!important;}
/* fix: force hero/primary button label fully white (kill leftover highlight span color) */
.btn--primary, .btn--primary *{color:#fff!important;}
.btn--outline *{color:inherit!important;}
/* fix v2: signature section inner layers → light, and un-force the logo color */
.home-trap__bg-image{background-image:linear-gradient(135deg,#FBFAF8 0%,#F2F0EB 55%,#F7F5F1 100%)!important;opacity:1!important;filter:none!important;}
.home-trap__bg-overlay{background:none!important;}
.home-trap__bg-glow{background:radial-gradient(ellipse 60% 70% at 82% 50%, rgba(226,31,38,.10) 0%, transparent 60%)!important;}
.home-trap__logo{filter:none!important;}
.home-trap__venues{color:var(--muted)!important;}
/* ---- rollout finals ---- */
.hero__content{background:rgba(246,244,240,.66)!important;-webkit-backdrop-filter:blur(5px)!important;backdrop-filter:blur(5px)!important;}
footer img{filter:brightness(0) invert(1)!important;} /* footer logo → white on the dark footer */
/* inner page-hero banners → light (consistency with homepage) */
.page-hero{background:linear-gradient(135deg,#FBFAF8 0%,#F0EEE9 55%,#F6F4F0 100%)!important;}
.page-hero__bg-image{opacity:.16!important;}
.page-hero__overlay{background:none!important;}
.page-hero h1,.page-hero__title,.page-hero p,.page-hero__sub,.page-hero__desc,.page-hero__lede,.page-hero__eyebrow+*{color:var(--ink)!important;}
.page-hero .text-gold,.page-hero h1 span{color:var(--red)!important;}
.page-hero .breadcrumb,.page-hero .breadcrumb a,.page-hero__meta{color:var(--muted)!important;}
/* ===== white-on-light text fix (auto-generated from dark base) ===== */
.admin-bar__logout, .admin-bar__who, .admin-comp-form__check, .admin-comp-form__msg, .admin-comp-form__row input, .admin-empty, .admin-event-card__date, .admin-event-detail__stat span, .admin-event-detail__stat strong, .admin-event-form label, .admin-event-picker label, .admin-event-picker select, .admin-event-toggle__caret, .admin-h2, .admin-h3, .admin-help, .admin-login__form label, .admin-login__magic, .admin-login__mode, .admin-login__msg, .admin-modal__close, .admin-modal__close:hover, .admin-modal__inner h2, .admin-pill, .admin-pill--transferred, .admin-staff-form label, .admin-stat small, .admin-stat span, .admin-tab, .admin-tab:hover, .admin-table small, .admin-table th, .admin-upsell-bysku, .blast-panel__sample small, .blast-panel__status, .blog-card p, .blog-card__meta, .booking-form__legal, .booking-step__sub, .booking-success__details span, .booking-success__next, .booking-summary span, .brag-btn--th:hover, .brag-btn--x:hover, .brag-btn:hover, .celebrity-card p, .cfg-bump__badge, .cfg-coupon__msg, .cfg-hint, .cfg-qty__price, .cfg-row label, .cfg-toggle__copy small, .checkin-bar__date, .checkin-bar__logout, .checkin-bar__signout:hover, .checkin-counter__sub, .checkin-feed, .checkin-feed__head button:hover, .checkin-login__hint, .checkin-login__sub, .checkin-picker__empty, .checkin-picker__loading, .checkin-picker__sub, .checkout-back, .checkout-event__venue, .checkout-quote p, .checkout-quote__author, .checkout-summary h2, .checkout-summary__note, .contact-detail__text span, .contact-info p, .credential-list li, .cta-banner p, .date-card.is-disabled .date-card__pill, .date-card__dow, .date-card__mon, .deliver-field span, .dial-email__display, .dial-email__edit, .dial-status, .dialpad__key em, .dialpad__key--ghost, .dialpad__key--ghost:hover, .dialpad__key:hover, .email-modal__hint, .event-picker__venue, .exit-intent__decline, .exit-intent__sub, .faq-item__answer, .form-group label, .funnel-arrow__label, .funnel-range-btn, .funnel-range-btn:hover, .funnel-source__count, .funnel-source__name, .funnel-source__pct, .funnel-sources__header h3, .funnel-sources__header p, .funnel-stage__label, .funnel-stage__num, .funnel-stage__rate span, .funnel-stage__sub, .funnel-summary small, .funnel-summary span, .hero__subtitle, .hero__trust-item .label, .home-trap__lede, .home-trap__stats span, .home-trap__venues, .lead-popup p, .lead-popup__close, .lead-strip__text span, .loc-card span, .location-card p, .logo-uploader__drop, .logo-uploader__hint, .logo-uploader__meta small, .mt-badge--gone, .mt-card__addon, .mt-card__date, .mt-card__note, .mt-credit__empty, .mt-credit__event, .mt-credit__event-meta, .mt-credit__expired, .mt-credit__sub, .mt-email, .mt-empty p, .mt-loggedout p, .mt-modal p, .mt-msg, .mt-reschedule__empty, .mt-reschedule__event-meta, .mt-transfer-form label, .mt-transfer-note, .next-event-date__when, .next-event-date__where, .next-event-strip__address, .next-event-strip__row, .partner-faq details p, .partner-faq summary, .partner-form input, .partner-form label, .partner-form textarea, .partner-form-head p, .partner-form__hint, .partner-form__summary div, .partner-form__summary div strong, .partner-hero__event, .partner-hero__sub, .partner-tiers__loading, .paypal-or, .picker-card__badge--past, .picker-card__date, .picker-card__nums, .pricing-card__desc, .pricing-card__features li, .pricing-card__price .period, .proof-item, .punch-attended h3, .punch-hero__sub, .punch-lookup input, .punch-lookup__hint, .punch-stamp, .punch-stamp--filled, .punch-stamp__number, .punch-status__claim-hint, .punch-status__claim-msg, .punch-status__count, .punch-status__progress p, .punch-status__switch, .punch-status__switch:hover, .recipient-picker__field input, .recipient-picker__field span, .recipient-picker__hint, .recipient-picker__legend, .recipient-picker__opt-body small, .recipient-picker__opt-body strong, .refund-modal input[type=number], .refund-modal textarea, .refund-modal__check, .refund-modal__close:hover, .refund-modal__inner, .scan-card__hint, .scan-card__intro, .scan-card__safe, .scan-merch__label, .scan-result__detail, .scan-result__notes li, .service-card p, .slot-card__type, .social-proof-bar p, .sold-out-proof__list span, .sold-out-proof__note, .sponsor-strip__cta, .sponsor-strip__logo-text, .sponsor-strip__row-label, .sponsor-strip__title-brand span, .stat-item .label, .sticky-cta-bar__label, .stripe-mode-action small, .stripe-mode-box__hint, .stripe-mode-box__label, .stripe-mode-row small, .testimonial-card p, .testimonial-card__author-detail, .thanks-brag__head p, .thanks-classes p, .thanks-deliver__loading, .thanks-deliver__sent h3, .thanks-deliver__sent li, .thanks-deliver__skip, .thanks-deliver__sub, .thanks-deliver__warn, .thanks-hero__sub, .thanks-refer p, .thanks-summary dt, .thanks-vendor h2, .thanks-vendor ol, .thanks-vendor__hint, .ticket-tier__detail, .tier-card--sold-out:hover, .tier-card__best-for, .tier-card__perks li, .tier-card__price small, .trainer-section__image-badge .label, .trap-hero__desc, .upsell-card__bullets li, .upsell-card__safe, .upsell-card__strike, .upsell-decline, .upsell-decline:hover, .upsell-receipt__copy span, .vendor-cta p { color: var(--muted) !important; }
.deliver-field input::placeholder, .form-group input::placeholder, .form-group textarea::placeholder, .lead-form input::placeholder, .lead-popup__form input::placeholder, .lead-strip__form input::placeholder { color: #9a9aa2 !important; }
/* ================= AUTHORITATIVE READABILITY LAYER (light theme) ================= */
/* urgency strip: keep it a RED banner with white text (its bg got lightened) */
.urgency-banner{ background: var(--red) !important; border:0 !important; }
.urgency-banner, .urgency-banner .container, .urgency-banner *{ color:#fff !important; }
.urgency-banner strong, .urgency-banner em{ color:#FFEB3B !important; }
/* dark ink for all body copy inside content regions, EXCLUDING dark/colored
   surfaces (footer, red stat band, buttons, urgency) and red accent classes */
:is(main,section,article,.container,.page-hero,.page-hero__content,.trainer-section,.home-trap)
  :is(p,li,td,th,dd,dt,strong,b,em,small,figcaption,label,blockquote,ul,ol,span,a)
  :not(.red):not(.text-gold):not(.text-red):not(.section-label):not([class*="badge"]):not([class*="pill"]):not([class*="tag"]):not([class*="avatar"])
  :not(.btn):not(.btn *):not(.stats-bar *):not(footer *):not(.urgency-banner *):not(.navbar__cta):not(.navbar__cta *)
{ color: var(--ink) !important; }
/* links inside copy stay red (undo the ink force for real links) */
:is(main,section,article,.container,.page-hero__content) a:not(.btn):not([class*="badge"]):not(.navbar__cta){ color: var(--red) !important; }
/* CORRECTED readability layer — tag+:not on the SAME element (no stray whitespace) */
:is(main,section,article,.container,.page-hero,.page-hero__content,.trainer-section,.home-trap) :is(p,li,td,th,dd,dt,strong,b,em,small,figcaption,label,blockquote,ul,ol,span,a):not(.red):not(.text-gold):not(.text-red):not(.section-label):not([class*="badge"]):not([class*="pill"]):not([class*="tag"]):not([class*="avatar"]):not(.btn):not(.stats-bar *):not(footer *):not(.urgency-banner *):not(.navbar__cta){color:var(--ink)!important;}
:is(main,section,article,.container,.page-hero__content) a:not(.btn):not([class*="badge"]):not(.navbar__cta){color:var(--red)!important;}
/* explicit fallbacks for named stragglers */
.trap-hero__reassurance,#successBody,.nf-msg,.text-center{color:var(--ink)!important;}
.trap-hero__reassurance{color:var(--muted)!important;}
