.hxgb-root {
  --ink: #16233F;
  --ink-soft: #2C3A5E;
  --gold: #C9A227;
  --gold-light: #E7CC72;
  --parchment: #F6F1E4;
  --paper: #FFFDF8;
  --paper-shadow: #E9E1CC;
  --sage: #4F6B52;
  --sage-light: #DCE6DA;
  --ember: #8C3F32;
  --ember-light: #F1DCD5;
  --charcoal: #2A2620;
  --charcoal-soft: #6b6456;
  --radius-lg: 22px;
  --radius-md: 14px;
  --radius-sm: 8px;
  --shadow-soft: 0 10px 30px -12px rgba(22,35,63,0.25);
  --shadow-lift: 0 18px 40px -16px rgba(22,35,63,0.35);
  --ease: cubic-bezier(.22,.68,0,1);
}

em {
    font-style: normal !important;
}

.hxgb-root, .hxgb-root * { box-sizing: border-box; }

/* --- OUTER CONTAINER (Full Width Background) --- */
.hxgb-root {
  width: 100vw;
  max-width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
  background: var(--parchment);
  color: var(--charcoal);
  font-family: 'Plus Jakarta Sans', sans-serif;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

.hxgb-root::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(circle at 12% 8%, rgba(201,162,39,0.10), transparent 40%),
    radial-gradient(circle at 88% 92%, rgba(22,35,63,0.08), transparent 45%);
}

.hxgb-root h1, .hxgb-root h2, .hxgb-root h3, .hxgb-root .display {
  font-family: 'Fraunces', serif;
  font-weight: 450;
  letter-spacing: -0.01em;
  margin: 0;
}

.hxgb-root .mono { font-family: 'IBM Plex Mono', monospace; }
.hxgb-root a { color: inherit; text-decoration: none; }

/* --- INNER CONTAINER (Constrained Content) --- */
.hxgb-root .wrap {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 20px; 
  position: relative;
  z-index: 1;
}

/* ---------- HERO ---------- */
.hxgb-root .hero { padding:76px 0 60px; position:relative; }
.hxgb-root .hero-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:56px; opacity:0; animation:hxgb-riseIn .7s var(--ease) forwards; }
.hxgb-root .brand { display:flex; align-items:center; gap:12px; font-family:'Fraunces',serif; font-size:19px; letter-spacing:0.02em; }
.hxgb-root .brand-mark { width:34px; height:34px; border-radius:50%; border:1.5px solid var(--gold); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--gold); }
.hxgb-root .hero-meta { display:flex !important; flex-direction:row; flex-wrap:nowrap; align-items:center; justify-content:flex-end; gap:10px; }
.hxgb-root .hero-top .tag { font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; color:var(--charcoal-soft); border:1px solid rgba(42,38,32,0.18); padding:6px 12px; border-radius:999px; }
/* Use the element selector plus scoped !important declarations here because
   many WordPress themes apply broad `nav` and `nav a` rules on live sites. */
.hxgb-root nav.hxgb-language-switcher { display:inline-flex !important; flex:0 0 auto; align-items:center; gap:2px; width:auto !important; min-width:0 !important; margin:0 !important; padding:7px !important; border:1px solid rgba(42,38,32,0.14) !important; border-radius:999px !important; background:rgba(255,253,248,0.58) !important; box-shadow:none !important; list-style:none !important; }
.hxgb-root nav.hxgb-language-switcher > a { display:block !important; margin:0 !important; padding:4px 8px !important; border:0 !important; border-radius:999px !important; background:transparent !important; color:var(--charcoal-soft) !important; font-family:'IBM Plex Mono',monospace !important; font-size:10px !important; font-weight:600 !important; line-height:1.2 !important; letter-spacing:0 !important; text-decoration:none !important; text-transform:none !important; transition:background .2s ease, color .2s ease; }
.hxgb-root nav.hxgb-language-switcher > a:hover { color:var(--ink) !important; }
.hxgb-root nav.hxgb-language-switcher > a.is-active { background:var(--ink) !important; color:var(--paper) !important; }
.hxgb-root .hero-grid { display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:end; }
.hxgb-root .hero-eyebrow { opacity:0; animation:hxgb-riseIn .7s var(--ease) .08s forwards; display:flex; align-items:center; gap:14px; font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-bottom:22px; }
.hxgb-root .hero-eyebrow::before { content:""; width:34px; height:1px; background:var(--gold); }
.hxgb-root .hero h1 { opacity:0; animation:hxgb-riseIn .8s var(--ease) .16s forwards; font-size:clamp(40px, 5.4vw, 74px); line-height:1.02; color:var(--ink); }
.hxgb-root .hero h1 em { font-style:normal; color:var(--gold); font-weight:450; }
.hxgb-root .hero p.lede { opacity:0; animation:hxgb-riseIn .8s var(--ease) .26s forwards; max-width:46ch; margin-top:22px; font-size:16.5px; line-height:1.65; color:var(--charcoal-soft); }
.hxgb-root .hero-cta { opacity:0; animation:hxgb-riseIn .8s var(--ease) .34s forwards; display:flex; align-items:center; gap:22px; margin-top:34px; }
.hxgb-root .btn { appearance:none; border:none; cursor:pointer; font-family:'Plus Jakarta Sans',sans-serif; font-weight:600; font-size:14.5px; letter-spacing:0.01em; border-radius:999px; padding:15px 28px; display:inline-flex; align-items:center; gap:10px; transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s ease; }
.hxgb-root .btn-primary { background:var(--ink); color:var(--parchment); box-shadow:var(--shadow-soft); }
.hxgb-root .btn-primary:hover { transform:translateY(-3px); box-shadow:var(--shadow-lift); background:var(--ink-soft); }
.hxgb-root .btn-primary:disabled { background:#c7c2b4; color:#8a8474; cursor:not-allowed; box-shadow:none; transform:none; }
.hxgb-root .btn-ghost { background:transparent; border:1.5px solid rgba(42,38,32,0.25); color:var(--charcoal); padding:13.5px 24px; }
.hxgb-root .btn-ghost:hover { border-color:var(--ink); transform:translateY(-2px); }
.hxgb-root .btn-text { background:none; border:none; color:var(--charcoal-soft); font-weight:600; cursor:pointer; padding:8px 4px; font-size:14px; }
.hxgb-root .btn-text:hover { color:var(--ink); }
.hxgb-root .link-scroll { font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--charcoal-soft); display:flex; align-items:center; gap:8px; }
.hxgb-root .link-scroll svg { animation:hxgb-bob 1.8s ease-in-out infinite; }

.hxgb-root .invite-card {
  opacity:0;
  animation:hxgb-riseIn .9s var(--ease) .3s forwards;
  position:relative;
  isolation:isolate;
  width:100%;
  max-width:520px;
  margin-left:auto;
  padding:8px;
  overflow:hidden;
  background:linear-gradient(135deg, #fffefa 0%, #f8efd9 100%);
  border:1px solid rgba(201,162,39,0.3);
  border-radius:24px;
  box-shadow:0 20px 40px -22px rgba(22,35,63,0.38), 0 10px 22px -18px rgba(201,162,39,0.6);
}
.hxgb-root .invite-card::before {
  content:"";
  position:absolute;
  z-index:-1;
  width:180px;
  height:180px;
  right:-88px;
  bottom:-108px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(201,162,39,0.12), transparent 68%);
}
.hxgb-root .invite-card__content {
  position:relative;
  min-height:286px;
  padding:31px 24px 25px;
  background:rgba(255,253,248,0.94);
  border:1px solid rgba(201,162,39,0.5);
  border-radius:17px;
}
.hxgb-root .invite-num {
  color:var(--gold);
  font-family:'Fraunces',serif;
  font-size:clamp(56px, 5.2vw, 68px);
  font-weight:500;
  line-height:.78;
  letter-spacing:-0.06em;
}
.hxgb-root .invite-num span {
  display:block;
  margin-top:17px;
  color:var(--charcoal-soft);
  font-family:'IBM Plex Mono',monospace;
  font-size:18px;
  font-weight:400;
  line-height:1;
  letter-spacing:.14em;
}
.hxgb-root .invite-details { display:grid; gap:8px; margin:29px 0 0; }
.hxgb-root .invite-row {
  display:grid;
  grid-template-columns:minmax(72px, .55fr) minmax(0, 1.45fr);
  align-items:start;
  gap:16px;
  margin:0;
  padding:12px 12px 12px 10px;
  font-size:14px;
  line-height:1.45;
  border:1px solid transparent;
  border-radius:10px;
}
.hxgb-root .invite-row:nth-child(1) { background:#faf3df; border-color:rgba(201,162,39,0.16); }
.hxgb-root .invite-row:nth-child(2) { background:#edf3ee; border-color:rgba(79,107,82,0.13); }
.hxgb-root .invite-row:nth-child(3) { background:#f8ece7; border-color:rgba(140,63,50,0.12); }
.hxgb-root .invite-row .label {
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--charcoal-soft);
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  font-weight:400;
  line-height:1.7;
  text-transform:uppercase;
  letter-spacing:.1em;
}
.hxgb-root .invite-icon {
  display:inline-flex;
  flex:0 0 auto;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:7px;
}
.hxgb-root .invite-icon svg { width:14px; height:14px; }
.hxgb-root .invite-icon--date { color:#9a7510; background:rgba(201,162,39,0.18); }
.hxgb-root .invite-icon--time { color:var(--sage); background:rgba(79,107,82,0.15); }
.hxgb-root .invite-icon--venue { color:var(--ember); background:rgba(140,63,50,0.13); }
.hxgb-root .invite-row .value {
  min-width:0;
  margin:0;
  color:var(--charcoal);
  font-size:14px;
  font-weight:650;
  text-align:right;
  overflow-wrap:anywhere;
}
@media (hover:hover) and (pointer:fine) {
  .hxgb-root .invite-card { transition:transform .35s var(--ease), box-shadow .35s var(--ease); }
  .hxgb-root .invite-card:hover { transform:translateY(-4px); box-shadow:0 25px 46px -22px rgba(22,35,63,0.42), 0 12px 24px -18px rgba(201,162,39,0.62); }
}

@keyframes hxgb-riseIn { from{ opacity:0; transform:translateY(18px); } to{ opacity:1; transform:translateY(0); } }
@keyframes hxgb-bob { 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(5px); } }

/* ---------- EVENT HIGHLIGHTS & EARLY BIRD ---------- */
.hxgb-highlights-banner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 36px;
  background:
    radial-gradient(circle at 8% 12%, rgba(201, 162, 39, 0.12) 0%, transparent 45%),
    radial-gradient(circle at 92% 88%, rgba(22, 35, 63, 0.06) 0%, transparent 50%),
    linear-gradient(145deg, #FFFDF8 0%, #FAF5EA 60%, #F5EDE0 100%);
  border-radius: var(--radius-lg);
  padding: 36px 42px;
  box-shadow: 0 20px 45px -15px rgba(22, 35, 63, 0.12), 0 0 0 1px rgba(255, 255, 255, 0.85) inset, 0 2px 6px rgba(201, 162, 39, 0.12);
  border: 1px solid rgba(201, 162, 39, 0.32);
  margin: 40px auto 60px;
  max-width: 100%;
  overflow: hidden;
}

.hxgb-highlights-banner::before {
  content: "";
  position: absolute;
  inset: 7px;
  border: 1px solid rgba(201, 162, 39, 0.22);
  border-radius: calc(var(--radius-lg) - 6px);
  pointer-events: none;
  z-index: 1;
}

.hxgb-highlights-banner::after {
  content: "";
  position: absolute;
  top: -40px;
  right: -40px;
  width: 180px;
  height: 180px;
  background: radial-gradient(circle, rgba(201, 162, 39, 0.12) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 1;
}

/* Wider programme column when 2-column grid is active */
.hxgb-highlights-banner:has(.prog-cols) {
  grid-template-columns: 1.45fr 1fr;
}

.hxgb-highlight-col {
  position: relative;
  z-index: 2;
}

.hxgb-programme {
  position: relative;
  display: flex;
  flex-direction: column;
}

@media (min-width: 861px) {
  .hxgb-programme::after {
    content: "";
    position: absolute;
    top: 4px;
    bottom: 4px;
    right: -18px;
    width: 1px;
    background: linear-gradient(to bottom, rgba(201, 162, 39, 0.05), rgba(201, 162, 39, 0.28) 20%, rgba(201, 162, 39, 0.28) 80%, rgba(201, 162, 39, 0.05));
  }
}

/* Column Header with Icon */
.hxgb-col-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px dashed rgba(201, 162, 39, 0.25);
}

.hxgb-header-icon {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform 0.3s var(--ease), box-shadow 0.3s ease;
}

.prog-header-icon {
  background: rgba(201, 162, 39, 0.13);
  color: #9B7414;
  border: 1px solid rgba(201, 162, 39, 0.3);
  box-shadow: 0 2px 6px rgba(201, 162, 39, 0.1);
}

.ticket-header-icon {
  background: rgba(22, 35, 63, 0.08);
  color: var(--ink);
  border: 1px solid rgba(22, 35, 63, 0.15);
  box-shadow: 0 2px 6px rgba(22, 35, 63, 0.06);
}

.hxgb-col-header h3 {
  font-family: 'Fraunces', serif;
  font-size: 21px;
  font-weight: 500;
  color: var(--ink);
  margin: 0;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* Programme List */
.prog-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.prog-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: var(--charcoal);
  padding: 5px 8px;
  border-radius: 8px;
  transition: background-color 0.2s ease, transform 0.2s ease;
}

.prog-list li:hover {
  background: rgba(201, 162, 39, 0.08);
  transform: translateX(3px);
}

.prog-time-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: rgba(201, 162, 39, 0.13);
  border: 1px solid rgba(201, 162, 39, 0.32);
  padding: 3px 8px;
  border-radius: 6px;
  flex-shrink: 0;
  box-shadow: 0 1px 2px rgba(201, 162, 39, 0.08);
}

.prog-time-badge .time-clock-icon {
  color: #A47D1C;
  flex-shrink: 0;
}

.prog-time-badge .time {
  font-family: 'IBM Plex Mono', monospace;
  font-weight: 600;
  font-size: 11.5px;
  color: #8A6513;
  letter-spacing: 0.03em;
  white-space: nowrap;
  width: auto;
}

.prog-list .evt {
  font-size: 13.5px;
  font-weight: 550;
  color: var(--ink);
  line-height: 1.35;
}

/* Programme List - 2 columns when more than 7 items */
.prog-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 18px;
}

.prog-cols .prog-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Pricing Column & Cards */
.hxgb-pricing-offer {
  display: flex;
  flex-direction: column;
}


.pricing-cards {
  display: flex;
  gap: 14px;
  margin-bottom: 20px;
}

.p-card {
  flex: 1;
  padding: 18px 16px 16px;
  border-radius: 14px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.28s var(--ease), box-shadow 0.28s ease, border-color 0.28s ease;
}

.p-card:hover {
  transform: translateY(-3px);
}

/* VIP Card */
.p-card.vip-card {
  background: linear-gradient(145deg, #FFFDF6 0%, #F9F1D8 50%, #F2E4B8 100%);
  border: 1.5px solid #D8B754;
  box-shadow: 0 8px 18px -4px rgba(201, 162, 39, 0.22), 0 0 0 1px rgba(255, 255, 255, 0.75) inset;
}

.p-card.vip-card:hover {
  box-shadow: 0 12px 24px -4px rgba(201, 162, 39, 0.32), 0 0 0 1px rgba(255, 255, 255, 0.9) inset;
  border-color: #BD9422;
}

.p-card.vip-card::after {
  content: "";
  position: absolute;
  top: -20px;
  right: -20px;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, rgba(201, 162, 39, 0.28) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

/* Standard Card */
.p-card.std-card {
  background: linear-gradient(145deg, #F8FAF8 0%, #EBF3EA 50%, #DDEBDB 100%);
  border: 1.5px solid #8FAEA0;
  box-shadow: 0 8px 18px -4px rgba(79, 107, 82, 0.16), 0 0 0 1px rgba(255, 255, 255, 0.75) inset;
}

.p-card.std-card:hover {
  box-shadow: 0 12px 24px -4px rgba(79, 107, 82, 0.25), 0 0 0 1px rgba(255, 255, 255, 0.9) inset;
  border-color: #638568;
}

.p-card.std-card::after {
  content: "";
  position: absolute;
  top: -20px;
  right: -20px;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, rgba(79, 107, 82, 0.22) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

/* Card Header inside Pricing Card */
.p-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-bottom: 12px;
}

.p-card-header-left {
  display: flex;
  align-items: center;
  gap: 7px;
}

.p-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.vip-card .p-card-icon {
  color: #B38615;
}

.std-card .p-card-icon {
  color: var(--sage);
}

.p-card .cat {
  display: inline-block;
  font-size: 11.5px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
  line-height: 1.2;
}

.tier-pill {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 9.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 2px 7px;
  border-radius: 999px;
  white-space: nowrap;
}

.vip-pill {
  background: rgba(201, 162, 39, 0.2);
  color: #84610C;
  border: 1px solid rgba(201, 162, 39, 0.35);
}

.std-pill {
  background: rgba(79, 107, 82, 0.15);
  color: #37533A;
  border: 1px solid rgba(79, 107, 82, 0.3);
}

/* Price Row */
.p-card .price-row {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.p-card .current {
  font-family: 'Fraunces', serif;
  font-size: 27px;
  font-weight: 600;
  color: var(--ink);
  display: block;
  line-height: 1;
  letter-spacing: -0.01em;
}

.p-card .normal {
  font-size: 12px;
  color: var(--charcoal-soft);
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.p-card .normal del {
  color: var(--ember);
  font-weight: 700;
}

/* Countdown Timer */
.hxgb-countdown-wrap {
  background: rgba(255, 255, 255, 0.65);
  border: 1px solid rgba(201, 162, 39, 0.25);
  border-radius: 14px;
  padding: 14px 18px;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 4px 16px rgba(22, 35, 63, 0.04);
}

.countdown-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.cd-header-icon {
  color: #A67C1E;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hxgb-countdown-wrap p#countdownLabel {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 11px;
  color: var(--charcoal);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
  flex: 1;
}

.hxgb-countdown-wrap p#countdownLabel strong {
  color: var(--ink);
  font-weight: 700;
}

.cd-live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #10B981;
  box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7);
  animation: hxgb-cd-pulse 2s infinite;
  flex-shrink: 0;
}

@keyframes hxgb-cd-pulse {
  0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); }
  70% { transform: scale(1); box-shadow: 0 0 0 5px rgba(16, 185, 129, 0); }
  100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}

.eb-timer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.cd-box {
  flex: 1;
  background: linear-gradient(180deg, #1A2846 0%, #111A2D 100%);
  color: #F8E7A2;
  padding: 9px 6px 7px;
  border-radius: 9px;
  text-align: center;
  border: 1px solid rgba(201, 162, 39, 0.35);
  box-shadow: 0 4px 10px rgba(22, 35, 63, 0.22), 0 1px 0 rgba(255, 255, 255, 0.12) inset;
  transition: transform 0.2s ease, border-color 0.2s ease;
  min-width: 0;
}

.cd-box:hover {
  transform: translateY(-2px);
  border-color: rgba(201, 162, 39, 0.65);
}

.cd-box span {
  display: block;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 21px;
  font-weight: 700;
  line-height: 1;
  margin-bottom: 4px;
  color: #FDE89C;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
  letter-spacing: -0.02em;
}

.cd-box small {
  display: block;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: rgba(255, 253, 248, 0.72);
}

.cd-sep {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 18px;
  font-weight: 700;
  color: rgba(201, 162, 39, 0.55);
  line-height: 1;
  user-select: none;
  flex-shrink: 0;
  margin-top: -8px;
}

/* Responsive Highlights Banner */
@media (max-width: 860px) {
  .hxgb-highlights-banner {
    grid-template-columns: 1fr;
    padding: 26px 20px;
    gap: 30px;
    margin: 30px auto 45px;
  }
  .hxgb-highlights-banner:has(.prog-cols) {
    grid-template-columns: 1fr;
  }
  .hxgb-programme::after {
    display: none;
  }
  .prog-cols {
    display: block;
  }
  .prog-cols .prog-list + .prog-list {
    margin-top: 6px;
  }
}

@media (max-width: 480px) {
  .pricing-cards {
    flex-direction: column;
  }
  .eb-timer {
    gap: 4px;
  }
  .cd-sep {
    display: none;
  }
  .cd-box {
    padding: 8px 4px 6px;
  }
  .cd-box span {
    font-size: 18px;
  }
}

/* ---------- STORY ---------- */
.hxgb-root .story-section { padding:60px 0 64px; }
.hxgb-root .story-grid { display:grid; grid-template-columns:0.92fr 1.08fr; gap:64px; align-items:center; }
.hxgb-root .story-eyebrow { display:flex; align-items:center; gap:14px; font-family:'IBM Plex Mono',monospace; font-size:13px; letter-spacing:0.14em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
.hxgb-root .story-eyebrow::before { content:""; width:34px; height:1px; background:var(--gold); }
.hxgb-root .story-copy h2 { font-size:clamp(28px, 3vw, 38px); color:var(--ink); line-height:1.12; margin-bottom:20px; }
.hxgb-root .story-copy h2 em { font-style:normal; color:var(--gold); font-weight:450; }
.hxgb-root .story-copy p { font-size:15.5px; line-height:1.75; color:var(--charcoal-soft); margin:0 0 16px; }
.hxgb-root .story-copy p:last-of-type { margin-bottom:0; }
.hxgb-root .story-stats { display:flex; gap:34px; margin-top:28px; padding-top:26px; border-top:1px solid rgba(42,38,32,0.12); }
.hxgb-root .story-stats .stat b { display:block; font-family:'Fraunces',serif; font-size:26px; color:var(--ink); }
.hxgb-root .story-stats .stat span { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.06em; text-transform:uppercase; color:var(--charcoal-soft); }

/* ---------- IMAGE CAROUSEL ---------- */
.hxgb-root .carousel { position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-lift); border:1px solid rgba(201,162,39,0.25); background:var(--ink); aspect-ratio:4/3.1; }
.hxgb-root .carousel-track { display:flex; height:100%; transition:transform .6s var(--ease); }
.hxgb-root .carousel-slide { flex:0 0 100%; position:relative; height:100%; }
.hxgb-root .carousel-slide img { width:100%; height:100%; object-fit:cover; display:block; }
.hxgb-root .carousel-caption { position:absolute; left:0; right:0; bottom:0; padding:26px 26px 20px; background:linear-gradient(0deg, rgba(22,35,63,0.85) 0%, rgba(22,35,63,0.0) 100%); color:var(--paper); }
.hxgb-root .carousel-caption .tag { font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold-light); margin-bottom:6px; display:block; }
.hxgb-root .carousel-caption .title { font-family:'Fraunces',serif; font-size:19px; }
.hxgb-root .carousel-arrow { position:absolute; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; border:1px solid rgba(255,253,248,0.35); background:rgba(22,35,63,0.45); backdrop-filter:blur(6px); color:var(--paper); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background .3s ease, transform .3s var(--ease); z-index:2; }
.hxgb-root .carousel-arrow:hover { background:rgba(22,35,63,0.75); transform:translateY(-50%) scale(1.06); }
.hxgb-root .carousel-arrow.prev { left:16px; }
.hxgb-root .carousel-arrow.next { right:16px; }
.hxgb-root .carousel-dots { position:absolute; top:18px; right:18px; display:flex; gap:7px; z-index:2; }
.hxgb-root .carousel-dots button { width:7px; height:7px; border-radius:50%; border:none; padding:0; background:rgba(255,253,248,0.45); cursor:pointer; transition:background .3s ease, transform .3s ease; }
.hxgb-root .carousel-dots button.active { background:var(--gold-light); transform:scale(1.3); }

/* ---------- BOOKING WIDGET ---------- */
.hxgb-root .booking-section { padding:20px 0 40px; }
.hxgb-root .booking-title { text-align:center; max-width:640px; margin:0 auto 40px; }
.hxgb-root .booking-title .story-eyebrow { justify-content:center; }
.hxgb-root .booking-title .story-eyebrow::before { display:none; }
.hxgb-root .booking-title h2 { font-size:clamp(28px, 3vw, 38px); color:var(--ink); line-height:1.14; }
.hxgb-root .booking-title h2 em { font-style:normal; color:var(--gold); font-weight:450; }
.hxgb-root .widget { background:var(--paper); border-radius:28px; box-shadow:var(--shadow-soft); border:1px solid rgba(22,35,63,0.06); overflow:hidden; }

/* progress rail */
.hxgb-root .rail { padding:30px 40px 26px; border-bottom:1px solid rgba(42,38,32,0.09); display:flex; align-items:center; }
.hxgb-root .rail-step { display:flex; align-items:center; gap:12px; flex:1; position:relative; }
.hxgb-root .rail-step .dot { width:30px; height:30px; border-radius:50%; border:1.5px solid rgba(42,38,32,0.25); display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-size:12px; color:var(--charcoal-soft); background:var(--paper); flex-shrink:0; transition:all .45s var(--ease); z-index:2; }
.hxgb-root .rail-step .label { font-size:13px; font-weight:600; color:var(--charcoal-soft); transition:color .4s var(--ease); white-space:nowrap; }
.hxgb-root .rail-step .line { height:1.5px; flex:1; background:rgba(42,38,32,0.14); margin:0 4px; position:relative; overflow:hidden; }
.hxgb-root .rail-step .line::after { content:""; position:absolute; inset:0; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .6s var(--ease); }
.hxgb-root .rail-step.done .line::after { transform:scaleX(1); }
.hxgb-root .rail-step.active .dot { border-color:var(--gold); background:var(--ink); color:var(--gold-light); box-shadow:0 0 0 5px rgba(201,162,39,0.14); }
.hxgb-root .rail-step.active .label { color:var(--ink); }
.hxgb-root .rail-step.done .dot { border-color:var(--gold); background:var(--gold); color:var(--paper); }
.hxgb-root .rail-step.done .label { color:var(--charcoal); }
.hxgb-root .rail-step:last-child .line { display:none; }

/* step panels */
.hxgb-root .panels { position:relative; }
.hxgb-root .step-panel { padding:10px 10px 40px; display:none; }
.hxgb-root .step-panel.current { display:block; animation:hxgb-stepIn .5s var(--ease); border-radius:0 0 28px 28px; }
@keyframes hxgb-stepIn { from{ opacity:0; transform:translateX(22px); } to{ opacity:1; transform:translateX(0); } }
.hxgb-root .step-panel.leaving { animation:hxgb-stepOut .35s var(--ease) forwards; }
@keyframes hxgb-stepOut { to{ opacity:0; transform:translateX(-22px); } }

/* ---------- STAGE ---------- */
.hxgb-stage {
    width: 100%;
    max-width: 1000px;
    height: 48px;
    margin: 0 auto 40px auto;
    background: linear-gradient(160deg, #FBF3DC, var(--paper-shadow));
    color: var(--ink);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'IBM Plex Mono', monospace;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    border-radius: 8px 8px 24px 24px;
}

.hxgb-root .step-head { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:8px; flex-wrap:wrap; gap:14px; }
.hxgb-root .step-head h2 { font-size:28px; color:var(--ink); }
.hxgb-root .step-head .sub { color:var(--charcoal-soft); font-size:14px; margin-top:6px; }
.hxgb-root .step-eyebrow { font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.12em; text-transform:uppercase; color:var(--gold); }

/* ===== STEP 1: seat map ===== */
.hxgb-root .seat-layout { display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:32px; margin-top:30px; align-items:start; }
.hxgb-root .legend { display:flex; gap:22px; flex-wrap:wrap; margin-bottom:20px; padding:14px 18px; background:var(--parchment); border-radius:var(--radius-sm); }
.hxgb-root .legend-item { display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--charcoal-soft); font-weight:500; }
.hxgb-root .legend-dot { width:14px; height:14px; border-radius:50%; border:1.5px solid rgba(42,38,32,0.3); }
.hxgb-root .legend-dot.avail {
  background:linear-gradient(90deg, #efdfa9 0 50%, var(--sage-light) 50% 100%);
  border-color:var(--sage);
}
.hxgb-root .legend-dot.sel { background:var(--ember); border-color:var(--ember); }
.hxgb-root .legend-dot.booked { background:#D8D2C2; border-color:#D8D2C2; }
.hxgb-root .legend-divider { width:1px; align-self:stretch; background:rgba(42,38,32,0.14); }
.hxgb-root .legend-swatch { width:14px; height:14px; border-radius:4px; }
.hxgb-root .legend-swatch.vip { background:#efdfa9; }
.hxgb-root .legend-swatch.standard { background:var(--sage-light); }

.hxgb-root .table-grid {
    display: grid;
    grid-template-columns: repeat(var(--grid-cols, 5), minmax(0,1fr));
    gap: 22px 12px;
}

.hxgb-root .table-block { display:flex; flex-direction:column; align-items:center; gap:10px; min-width:0; }
.hxgb-root .table-stage { position:relative; width:100%; max-width:150px; aspect-ratio:1/1; }
.hxgb-root .table-top { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:55%; height:55%; border-radius:50%; background:linear-gradient(160deg, var(--paper), var(--paper-shadow)); border:1.5px solid rgba(42,38,32,0.15); display:flex; flex-direction:column; align-items:center; justify-content:center; transition:border-color .3s ease, box-shadow .3s ease; }
.hxgb-root .table-top .tnum { font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:14px; color:var(--ink); }
.hxgb-root .table-top .tcount { font-size:9.5px; color:var(--charcoal-soft); margin-top:2px; font-family:'IBM Plex Mono',monospace; }
.hxgb-root .table-block.full .table-top { border-color:var(--ember); background:linear-gradient(160deg, var(--ember-light), #ecd3cc); }
.hxgb-root .table-block.has-selected .table-top { box-shadow:0 0 0 6px rgba(201,162,39,0.13); }
.hxgb-root .table-block.vip .table-top { border-color:var(--gold); background:linear-gradient(160deg, #FBF3DC, var(--paper-shadow)); }
.hxgb-root .table-block.vip.full .table-top { border-color:var(--ember); background:linear-gradient(160deg, var(--ember-light), #ecd3cc); }
.hxgb-root .vip-flag { position:absolute; top:-10px; right:6%; background:var(--gold); color:var(--ink); font-family:'IBM Plex Mono',monospace; font-size:8.5px; font-weight:600; letter-spacing:0.06em; padding:2px 6px; border-radius:5px; z-index:3; }
.hxgb-root .seat { position:absolute; width:22px; height:22px; transform:translate(-50%,-50%); border-radius:50%; background:var(--paper); border:1.5px solid var(--sage); color:var(--sage); font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:600; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:transform .28s var(--ease), background .28s ease, border-color .28s ease, color .28s ease, box-shadow .28s ease; }
.hxgb-root .seat:hover:not(.booked) { transform:translate(-50%,-50%) scale(1.18); box-shadow:0 4px 10px -2px rgba(22,35,63,0.25); }
.hxgb-root .seat.selected { background:var(--gold); border-color:var(--gold); color:var(--ink); animation:seatPop .38s var(--ease); }
.hxgb-root .seat.booked { background:var(--ember-light); border-color:var(--ember); color:var(--ember); cursor:not-allowed; opacity:0.85; }
.hxgb-root .seat.pending { opacity:0.55; cursor:wait; animation:hxgb-seatPulse .9s ease-in-out infinite; }
@keyframes hxgb-seatPulse { 0%, 100% { opacity:0.4; } 50% { opacity:0.8; } }
.hxgb-root #holdCountdown { color:var(--ember); font-family:'IBM Plex Mono',monospace; font-weight:600; }
.hxgb-root .seat.vip:not(.selected):not(.booked) { border-color:var(--gold); color:#9C7B1E; }
@keyframes seatPop { 0%{ transform:translate(-50%,-50%) scale(0.7); } 55%{ transform:translate(-50%,-50%) scale(1.28); } 100%{ transform:translate(-50%,-50%) scale(1); } }
.hxgb-root .table-label { font-size:11px; color:var(--charcoal-soft); font-weight:600; letter-spacing:0.02em; display:flex; align-items:center; gap:5px; }
.hxgb-root .table-label .cat-tag { font-family:'IBM Plex Mono',monospace; font-size:8.5px; letter-spacing:0.06em; padding:1.5px 5px; border-radius:4px; font-weight:600; }
.hxgb-root .table-label .cat-tag.vip { background:rgba(201,162,39,0.18); color:#8C6E1A; }
.hxgb-root .table-label .cat-tag.standard { background:rgba(79,107,82,0.15); color:var(--sage); }
.hxgb-root .table-block.full .table-label { color:var(--ember); }

/* ===== ROW-BASED SEAT MAP =====
 * This is intentionally scoped to the optional row layout so the original
 * round-table presentation remains byte-for-byte familiar when it is chosen
 * in Settings. The row map uses the same .seat state classes as table seats,
 * so holds, availability polling, selection, pricing, and checkout need no
 * separate client-side behaviour.
 */
.hxgb-root .seat-layout--row { display:flex; flex-direction:column; gap:26px; }
.hxgb-root .seat-layout--row .grid-wrap {
  width:100%;
  max-width:1300px;
  min-width:0;
  margin:0 auto;
}
.hxgb-root .seat-layout--row .summary-card { position:relative; top:auto; width:100%; }
.hxgb-root .seat-layout--row .hxgb-stage {
  max-width:none;
  height:48px;
  margin:0 0 28px;
  border-radius:0;
  border-bottom:2px solid var(--sage);
  background:linear-gradient(180deg, rgba(79,107,82,0.14), rgba(255,253,248,0));
  clip-path:polygon(3% 0, 97% 0, 100% 100%, 0 100%);
  color:var(--sage);
  font-size:11px;
}
.hxgb-root .seat-layout--row .hxgb-stage,
.hxgb-root .row-label,
.hxgb-root .row-seat-grid .row-seat,
.hxgb-root .row-walkway span { font-family:'Plus Jakarta Sans',sans-serif; }
.hxgb-root .table-grid.row-seat-grid {
  display:block;
  overflow-x:auto;
  overflow-y:hidden;
  padding:0 6px 8px;
  scrollbar-color:rgba(42,38,32,0.25) transparent;
  scrollbar-width:thin;
}
.hxgb-root .row-seat-block {
  display:grid;
  grid-template-columns:20px minmax(0, 1fr) 20px;
  align-items:center;
  gap:9px;
  min-width:1080px;
  margin:0 0 3px;
}
.hxgb-root .row-label {
  color:var(--charcoal-soft);
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:600;
  text-align:center;
}
.hxgb-root .row-seats { display:flex; align-items:center; gap:4px; }
.hxgb-root .row-seat-aisle { flex:0 0 12px; height:1px; }
.hxgb-root .row-seat-grid .row-seat {
  appearance:none;
  position:relative;
  flex:1 1 0;
  width:auto;
  min-width:0;
  height:27px;
  margin:0;
  padding:0;
  transform:none;
  border-radius:4px;
  background:var(--paper);
  color:var(--sage);
  font-size:8px;
  line-height:1;
}
.hxgb-root .row-seat-grid .row-seat.vip:not(.selected):not(.booked) {
  background:#efdfa9;
  border-color:var(--gold);
  color:#8C6E1A;
}
.hxgb-root .row-seat-grid .row-seat.standard:not(.selected):not(.booked) {
  background:var(--sage-light);
  border-color:var(--sage);
  color:var(--sage);
}
.hxgb-root .row-seat-grid .row-seat:hover:not(.booked):not(.selected) {
  transform:translateY(-2px);
  background:var(--sage);
  border-color:var(--sage);
  color:var(--paper);
  box-shadow:0 4px 10px -2px rgba(22,35,63,0.22);
}
.hxgb-root .row-seat-grid .row-seat.vip:hover:not(.booked):not(.selected) {
  background:var(--gold);
  border-color:var(--gold);
  color:var(--ink);
}
.hxgb-root .row-seat-grid .row-seat.selected {
  transform:none;
  background:var(--ember);
  border-color:var(--ember);
  color:#fff;
  animation:hxgb-rowSeatPop .28s var(--ease);
}
.hxgb-root .row-seat-grid .row-seat.booked {
  background:#D8D2C2;
  border-color:#D8D2C2;
  color:#918A79;
  opacity:1;
}
.hxgb-root .row-seat-grid .row-seat:focus-visible {
  outline:2px solid var(--ink);
  outline-offset:2px;
}
@keyframes hxgb-rowSeatPop {
  0% { transform:scale(.86); }
  60% { transform:scale(1.08); }
  100% { transform:scale(1); }
}
.hxgb-root .row-walkway {
  position:relative;
  min-width:1080px;
  height:32px;
  margin:0 0 5px;
}
.hxgb-root .row-walkway::before {
  content:'';
  position:absolute;
  top:50%;
  right:0;
  left:0;
  border-top:1px dashed rgba(42,38,32,0.14);
}
.hxgb-root .row-walkway span {
  position:absolute;
  top:50%;
  padding:0 10px;
  transform:translate(-50%, -50%);
  background:var(--paper);
  color:var(--ink-faint);
  font-family:'IBM Plex Mono',monospace;
  font-size:8px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.hxgb-root .row-walkway span:nth-child(1) { left:14%; }
.hxgb-root .row-walkway span:nth-child(2) { left:38%; }
.hxgb-root .row-walkway span:nth-child(3) { left:62%; }
.hxgb-root .row-walkway span:nth-child(4) { left:86%; }
/* Desktop: give each seat a little more visual presence without widening the map. */
@media (min-width:621px) {
  .hxgb-root .row-seats { gap:2px; }
  .hxgb-root .row-seat-grid .row-seat { height:29px; font-size:8.5px; }
}
@media (max-width:980px) {
  .hxgb-root .seat-layout--row { display:flex; }
}
@media (max-width:620px) {
  /* Keep the plugin wrapper out of the vertical scrolling chain on mobile.
     `clip` still prevents layout-wide horizontal overflow without creating a
     competing touch scroller, as `overflow-x:hidden` can do in mobile Safari. */
  .hxgb-root { overflow-x:clip; overflow-y:visible; }

  /* Keep the auditorium at a readable scale and let the guest pan it naturally. */
  .hxgb-root .seat-layout--row { gap:18px; margin-top:22px; }
  .hxgb-root .seat-layout--row .grid-wrap {
    width:100%;
    max-width:100%;
    overflow-x:clip;
    overflow-y:visible;
    /* The whole visible auditorium surface can horizontally pan the grid. */
    touch-action:pan-y pinch-zoom;
  }
  .hxgb-root .seat-layout--row .legend {
    gap:10px 14px;
    margin-bottom:14px;
    padding:12px;
  }
  .hxgb-root .seat-layout--row .legend-item { gap:6px; font-size:11px; }
  .hxgb-root .seat-layout--row .legend-dot,
  .hxgb-root .seat-layout--row .legend-swatch { width:12px; height:12px; }
  .hxgb-root .seat-layout--row .legend-divider { display:none; }
  .hxgb-root .seat-layout--row #earlyBirdNote {
    margin:-4px 0 16px !important;
    font-size:11px !important;
    line-height:1.5;
  }
  .hxgb-root .seat-layout--row .hxgb-stage {
    height:40px;
    margin-bottom:20px;
    font-size:9px;
    letter-spacing:.16em;
  }
  .hxgb-root .table-grid.row-seat-grid {
    width:100%;
    max-width:100%;
    min-width:0;
    margin:0 -2px;
    padding:0 2px 12px;
    overflow-x:scroll;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scroll-padding-inline:2px;
    /* Vertical page scrolling stays native; horizontal drags pan the seat map. */
    touch-action:pan-y pinch-zoom;
  }
  .hxgb-root .table-grid.row-seat-grid.is-panning { cursor:grabbing; user-select:none; }
  .hxgb-root .row-seat-block,
  .hxgb-root .row-walkway { width:950px; min-width:950px; }
  .hxgb-root .row-seat-block {
    /* Keep the right row label directly after seat 30 instead of stretching
       the middle track across unused map width. */
    grid-template-columns:18px max-content 18px;
    gap:7px;
  }
  .hxgb-root .row-label { font-size:9px; }
  .hxgb-root .row-seats { gap:3px; }
  .hxgb-root .row-seat-grid .row-seat { flex:0 0 25px; height:25px; font-size:7.5px; }
  .hxgb-root .row-seat-aisle { flex-basis:12px; }
  .hxgb-root .row-walkway { height:29px; margin-bottom:4px; }
  .hxgb-root .row-walkway span { padding:0 7px; font-size:7px; }
}

/* sidebar summary */
.hxgb-root .summary-card { position:sticky; top:24px; background:var(--parchment); border-radius:var(--radius-md); padding:24px; border:1px solid rgba(42,38,32,0.08); }
.hxgb-root .summary-card h3 { font-size:16px; color:var(--ink); margin-bottom:4px; }
.hxgb-root .summary-card .hint { font-size:12.5px; color:var(--charcoal-soft); margin-bottom:16px; }
.hxgb-root .summary-list { list-style:none; padding:0; margin:0 0 16px; display:flex; flex-direction:column; gap:8px; max-height:220px; overflow-y:auto; }
.hxgb-root .summary-list::-webkit-scrollbar { width:4px; }
.hxgb-root .summary-list::-webkit-scrollbar-thumb { background:rgba(42,38,32,0.2); border-radius:4px; }
.hxgb-root .summary-list li { display:flex; justify-content:space-between; align-items:center; gap:8px; background:var(--paper); border-radius:8px; padding:9px 10px 9px 12px; font-size:12px; font-family:'IBM Plex Mono',monospace; animation:seatPop .3s var(--ease); }
.hxgb-root .summary-list li .li-main { display:flex; flex-direction:column; gap:3px; }
.hxgb-root .summary-list li .li-tag { font-size:8.5px; letter-spacing:0.06em; padding:1.5px 5px; border-radius:4px; font-weight:600; width:fit-content; }
.hxgb-root .summary-list li .li-tag.vip { background:rgba(201,162,39,0.2); color:#8C6E1A; }
.hxgb-root .summary-list li .li-tag.standard { background:rgba(79,107,82,0.15); color:var(--sage); }
.hxgb-root .summary-list li .li-right { display:flex; align-items:center; gap:6px; flex-shrink:0; }
.hxgb-root .summary-list li .li-price { font-weight:600; color:var(--ink); }
.hxgb-root .summary-list li button { background:none; border:none; cursor:pointer; color:var(--ember); font-size:15px; line-height:1; padding:0; }
.hxgb-root .summary-empty { font-size:13px; color:var(--charcoal-soft); font-style:normal; padding:14px 0; text-align:center; border:1px dashed rgba(42,38,32,0.18); border-radius:8px; margin-bottom:16px; }
.hxgb-root .summary-total { display:flex; justify-content:space-between; font-size:14px; font-weight:700; color:var(--ink); padding-top:14px; border-top:1px solid rgba(42,38,32,0.14); margin-bottom:18px; }

/* Row layout: a compact booking bar below the auditorium seat map. */
.hxgb-root .summary-card--row {
  display:flex;
  align-items:center;
  gap:24px;
  padding:20px 24px;
  border-radius:18px;
}
.hxgb-root .summary-card--row .row-summary-selection {
  flex:1 1 44%;
  min-width:0;
  padding-right:24px;
  border-right:1px solid rgba(42,38,32,0.1);
}
.hxgb-root .summary-card--row h3 {
  font-family:'Fraunces',Georgia,serif;
  font-size:16px;
  font-weight:600;
  margin:0 0 2px;
}
.hxgb-root .summary-card--row .hint { margin:0; font-size:11.5px; }
.hxgb-root .summary-card--row .summary-list {
  display:flex;
  flex-flow:row wrap;
  gap:8px;
  max-height:none;
  overflow:visible;
  margin:9px 0 0;
}
.hxgb-root .summary-card--row .summary-list li {
  display:flex;
  align-items:center;
  gap:7px;
  padding:7px 8px 7px 12px;
  border-radius:999px;
  font-size:11px;
  line-height:1;
  animation:none;
}
.hxgb-root .summary-card--row .summary-list li .li-main {
  flex-direction:row;
  align-items:center;
  gap:4px;
  color:var(--ink);
  font-weight:700;
}
.hxgb-root .summary-card--row .summary-list li .li-tag {
  width:auto;
  padding:0;
  background:none;
  color:var(--charcoal-soft);
  font-size:8px;
  font-weight:500;
}
.hxgb-root .summary-card--row .summary-list li .li-tag.vip,
.hxgb-root .summary-card--row .summary-list li .li-tag.standard { background:none; color:var(--charcoal-soft); }
.hxgb-root .summary-card--row .summary-list li .li-right { gap:0; }
.hxgb-root .summary-card--row .summary-list li .li-price { display:none; }
.hxgb-root .summary-card--row .summary-list li button {
  width:18px;
  height:18px;
  padding:0;
  border-radius:50%;
  background:rgba(140,63,50,0.1);
  color:var(--ember);
  font-size:0;
}
.hxgb-root .summary-card--row .summary-list li button::after { content:'\00d7'; font-size:13px; line-height:18px; }
.hxgb-root .summary-card--row .summary-empty {
  padding:8px 0 0;
  margin:0;
  border:0;
  text-align:left;
  font-size:11.5px;
}
.hxgb-root .row-summary-breakdown {
  display:flex;
  align-items:center;
  gap:20px;
  flex:0 0 auto;
  padding-right:22px;
  border-right:1px solid rgba(42,38,32,0.1);
}
.hxgb-root .row-summary-stat {
  display:flex;
  flex-direction:column;
  gap:3px;
  white-space:nowrap;
  color:var(--charcoal-soft);
  font-size:12px;
}
.hxgb-root .row-summary-stat strong { color:var(--ink); font-size:14px; line-height:1; }
.hxgb-root .row-summary-grand {
  padding-left:20px;
  border-left:1px solid rgba(42,38,32,0.1);
}
.hxgb-root .row-summary-grand strong { font-family:'Fraunces',Georgia,serif; color:var(--sage); font-size:19px; font-weight:600; }
.hxgb-root .row-summary-continue { flex:0 0 auto; min-width:188px; justify-content:center; padding:13px 22px; font-size:13px; }
@media (max-width:980px) {
  .hxgb-root .summary-card--row { flex-wrap:wrap; }
  .hxgb-root .summary-card--row .row-summary-selection { flex-basis:100%; padding:0 0 16px; border:0; border-bottom:1px solid rgba(42,38,32,0.1); }
  .hxgb-root .row-summary-breakdown { margin-left:auto; border-right:0; padding-right:0; }
}
@media (max-width:680px) {
  .hxgb-root .summary-card--row { gap:16px; padding:18px; }
  .hxgb-root .row-summary-breakdown { width:100%; flex-wrap:wrap; gap:14px; margin:0; }
  .hxgb-root .row-summary-grand { margin-left:auto; }
  .hxgb-root .row-summary-continue { width:100%; }
}
@media (max-width:620px) {
  /* A short, touch-friendly booking card below the horizontally scrollable map. */
  .hxgb-root .summary-card--row { display:block; padding:16px; border-radius:16px; }
  .hxgb-root .summary-card--row .row-summary-selection { padding:0 0 14px; }
  .hxgb-root .summary-card--row h3 { font-size:15px; }
  .hxgb-root .summary-card--row .hint { font-size:11px; line-height:1.45; }
  .hxgb-root .summary-card--row .summary-list { gap:6px; margin-top:8px; }
  .hxgb-root .summary-card--row .summary-list li { padding:7px 7px 7px 10px; }
  .hxgb-root .row-summary-breakdown {
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:14px 12px;
    width:100%;
    margin:0;
    padding:16px 0;
    border:0;
  }
  .hxgb-root .row-summary-stat { min-width:0; font-size:11px; }
  .hxgb-root .row-summary-stat strong { font-size:13px; }
  .hxgb-root .row-summary-grand {margin:0; padding:0; border:0;}
  .hxgb-root .row-summary-grand strong { font-size:18px; }
  .hxgb-root .row-summary-continue { min-height:48px; padding:13px 18px; }
}

/* ===== STEP 2: details form ===== */
.hxgb-root .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:30px; }
.hxgb-root .field { display:flex; flex-direction:column; gap:8px; }
.hxgb-root .field.full { grid-column:1 / -1; }
.hxgb-root .field label { font-size:12.5px; font-weight:600; color:var(--charcoal-soft); display:flex;}
.hxgb-root .field .req { color:var(--gold); }
.hxgb-root .field input, .hxgb-root .field select, .hxgb-root .field textarea { font-family:'Plus Jakarta Sans',sans-serif; font-size:14.5px; padding:13px 14px; border-radius:10px; border:1.5px solid rgba(42,38,32,0.16); background:var(--paper); color:var(--charcoal); transition:border-color .25s ease, box-shadow .25s ease; }
.hxgb-root .field input:focus, .hxgb-root .field select:focus, .hxgb-root .field textarea:focus { outline:none; border-color:var(--gold); box-shadow:0 0 0 4px rgba(201,162,39,0.14); }
.hxgb-root .field input:disabled { color:var(--charcoal-soft); background:var(--parchment); }
.hxgb-root .field textarea { resize:vertical; min-height:90px; font-family:'Plus Jakarta Sans',sans-serif; }
.hxgb-root .field .err { font-size:12px; color:var(--ember); display:none; }
.hxgb-root .field.invalid input, .hxgb-root .field.invalid select { border-color:var(--ember); }
.hxgb-root .field.invalid .err { display:block; }

/* ===== STEP 3: review ===== */
.hxgb-root .review-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:26px; margin-top:30px; }
.hxgb-root .review-card { background:var(--parchment); border-radius:var(--radius-md); padding:24px; }
.hxgb-root .review-card h3 { font-size:15px; color:var(--ink); margin-bottom:16px; display:flex; align-items:center; gap:8px; }
.hxgb-root .review-card h3::before { content:""; width:6px; height:6px; border-radius:50%; background:var(--gold); }
.hxgb-root .review-line { display:flex; justify-content:space-between; font-size:13.5px; padding:9px 0; border-bottom:1px dashed rgba(42,38,32,0.15); }
.hxgb-root .review-line:last-child { border-bottom:none; }
.hxgb-root .review-line .k { color:var(--charcoal-soft); }
.hxgb-root .review-line .v { font-weight:600; text-align:right; }
.hxgb-root .review-seats { display:flex; flex-wrap:wrap; gap:8px; margin-top:4px; }
.hxgb-root .chip { font-family:'IBM Plex Mono',monospace; font-size:12px; background:var(--gold); color:var(--ink); padding:6px 11px; border-radius:999px; font-weight:600; }
.hxgb-root .chip.standard { background:var(--sage-light); color:var(--sage); }
.hxgb-root .terms { display:flex; align-items:flex-start; gap:10px; margin-top:22px; font-size:13px; color:var(--charcoal-soft); }
.hxgb-root .terms input { margin-top:3px; accent-color:var(--gold); width:16px; height:16px; }
.hxgb-root .terms label { line-height:1.55; }
.hxgb-root .terms-link { margin:-2px 0 0 -4px; padding:2px 4px; border:0; border-bottom:1px solid currentColor; background:transparent; color:var(--ink); cursor:pointer; font:inherit; font-weight:700; line-height:1.45; text-decoration:none; }
.hxgb-root .terms-link:hover,
.hxgb-root .terms-link:focus-visible { color:var(--ember); outline:none; }

/* ===== STEP 4: confirmation ===== */
.hxgb-root .confirm-wrap { text-align:center; padding:20px 0 8px; position:relative; }
.hxgb-root .check-circle { width:88px; height:88px; margin:0 auto 22px; position:relative; }
.hxgb-root .check-circle svg { width:100%; height:100%; }
.hxgb-root .check-circle circle { fill:none; stroke:var(--sage); stroke-width:3; stroke-dasharray:220; stroke-dashoffset:220; animation:drawCircle .7s var(--ease) forwards; }
.hxgb-root .check-circle path { fill:none; stroke:var(--sage); stroke-width:4; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:40; stroke-dashoffset:40; animation:drawCheck .4s var(--ease) .65s forwards; }
@keyframes drawCircle { to{ stroke-dashoffset:0; } }
@keyframes drawCheck { to{ stroke-dashoffset:0; } }
.hxgb-root .confirm-wrap h2 { font-size:30px; color:var(--ink); margin-bottom:10px; }
.hxgb-root .confirm-wrap p { color:var(--charcoal-soft); font-size:14.5px; max-width:40ch; margin:0 auto; }
.hxgb-root .ref-code { display:inline-flex; align-items:center; gap:10px; margin:26px auto 0; background:var(--ink); color:var(--gold-light); font-family:'IBM Plex Mono',monospace; font-size:15px; letter-spacing:0.06em; padding:12px 22px; border-radius:999px; }
.hxgb-root .confirm-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:18px; max-width:920px; margin:34px auto 0; text-align:left; }
.hxgb-root .confirm-grid .review-card { background:var(--parchment); }
.hxgb-root .confirm-actions { display:flex; gap:14px; justify-content:center; margin-top:34px; flex-wrap:wrap; }
@media (max-width:860px) { .hxgb-root .confirm-grid { grid-template-columns:1fr; max-width:480px; } }
.hxgb-root .confetti { position:absolute; top:-20px; width:8px; height:14px; opacity:0.9; animation:fall linear forwards; }
@keyframes fall { to{ transform:translateY(340px) rotate(400deg); opacity:0; } }

/* step footer nav */
.hxgb-root .step-nav { display:flex; justify-content:space-between; align-items:center; margin-top:38px; padding-top:26px; border-top:1px solid rgba(42,38,32,0.1); }
.hxgb-root .step-nav .right { display:flex; gap:14px; align-items:center; }
.hxgb-root .price-pill { font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--charcoal-soft); }
.hxgb-root .price-pill b { color:var(--ink); }
.hxgb-root footer { padding:10px 0 60px; text-align:center; color:var(--charcoal-soft); font-size:12.5px; }

/* responsive */
@media (max-width: 980px) {
  .hxgb-root .hero-grid { grid-template-columns:1fr; }
  .hxgb-root .story-grid { grid-template-columns:1fr; gap:36px; }
  .hxgb-root .story-grid .carousel { order:-1; }
  .hxgb-root .seat-layout { grid-template-columns:1fr; }
  .hxgb-root .summary-card { position:relative; top:0; }
  .hxgb-root .table-grid { grid-template-columns:repeat(3, 1fr); }
  .hxgb-root .form-grid { grid-template-columns:1fr; }
  .hxgb-root .review-grid { grid-template-columns:1fr; }
}
@media (max-width: 620px) {
  .hxgb-root .wrap { padding:0 12px; }
  /* Keep the school name intact, then place the event tag and language
     selector on a dedicated row. This prevents either control from
     squeezing the brand into an awkward two-line break on narrow phones. */
  .hxgb-root .hero-top { align-items:stretch; flex-direction:column; gap:10px; margin-bottom:42px; }
  .hxgb-root .brand { align-self:flex-start; gap:10px; font-size:18px; white-space:nowrap; }
  .hxgb-root .brand-mark { flex:0 0 30px; width:30px; height:30px; font-size:10px; }
  .hxgb-root .hero-meta { flex-wrap:nowrap; justify-content:space-between; gap:8px; width:100%; }
  .hxgb-root .hero-top .tag { flex:1 1 auto; min-width:0; padding:5px 10px; font-size:10px; line-height:1.5; letter-spacing:0.1em; }
  .hxgb-root .hxgb-language-switcher { flex:0 0 auto; white-space:nowrap; }
  .hxgb-root .invite-card { max-width:none; border-radius:20px; }
  .hxgb-root .invite-card__content { min-height:0; padding:28px 20px 23px; border-radius:13px; }
  .hxgb-root .invite-num { font-size:56px; }
  .hxgb-root .invite-num span { margin-top:15px; font-size:16px; }
  .hxgb-root .invite-details { margin-top:25px; }
  .hxgb-root .invite-row { grid-template-columns:76px minmax(0, 1fr); gap:8px; padding:11px 10px 11px 8px; font-size:13px; }
  .hxgb-root .invite-row .value { font-size:13px; }
  .hxgb-root .table-grid { grid-template-columns:repeat(2, 1fr); }
  .hxgb-root .rail { padding:22px 18px;}
  .hxgb-root .rail-step .label { display:none; }
  .hxgb-root .step-panel { padding:32px 20px 36px; }
  .hxgb-root .hero { padding:52px 0 40px; }
  .hxgb-root .story-stats { gap:22px; flex-wrap:wrap; }
  .hxgb-root .carousel-arrow { width:36px; height:36px; }

  /* Footer actions need their own breathing room on a narrow screen. */
  .hxgb-root .step-nav {
    align-items:stretch;
    flex-direction:column;
    gap:16px;
    margin-top:30px;
    padding-top:20px;
  }
  .hxgb-root .step-nav > .btn-text {
    align-self:flex-start;
    padding:0;
    line-height:1.35;
    text-align:left;
  }
  .hxgb-root .step-nav .right {
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    align-items:center;
    gap:12px;
    width:100%;
  }
  .hxgb-root .step-nav .price-pill {
    min-width:0;
    line-height:1.35;
  }
  .hxgb-root .step-nav .price-pill b {
    display:block;
    margin-top:2px;
  }
  .hxgb-root .step-nav .right .btn-primary {
    min-width:148px;
    min-height:48px;
    justify-content:center;
    padding:13px 16px;
    font-size:13.5px;
    line-height:1.2;
    text-align:center;
  }
  .hxgb-root .step-nav > .btn-primary {
    justify-content:center;
    min-height:48px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .hxgb-root, .hxgb-root * { animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

/* ---------- CUSTOM WOOCOMMERCE PAYMENT CARDS ---------- */
.pm-title {
  font-family: 'Fraunces', serif;
  font-size: 24px;
  font-weight: 450;
  margin: 32px 0 16px;
  color: var(--ink);
}

.pm-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 28px;
  margin-top: 10px;
}
@media (min-width: 768px) {
  .pm-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.pm-card {
  border: 1.5px solid rgba(42,38,32,0.12);
  border-radius: 12px;
  padding: 10px 10px;
  display: flex;
  align-items: center;
  gap: 16px;
  cursor: pointer;
  transition: all .25s var(--ease);
  background: var(--paper); /* Clean white background when unselected */
}

.pm-card:hover {
  border-color: rgba(201, 162, 39, 0.4); /* Gold hover border */
}

.pm-card.active {
  border-color: rgba(42,38,32,0.22); /* Muted border matching the layout */
  background: var(--parchment); /* Beige background matching the review cards */
}

.pm-radio {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.pm-radio input {
  appearance: none;
  -webkit-appearance: none;
  width: 22px;
  height: 22px;
  border: 1.5px solid rgba(42,38,32,0.3);
  border-radius: 50%;
  margin: 0;
  position: relative;
  cursor: pointer;
  outline: none;
  transition: all .2s ease;
  background: var(--paper);
}

/* Active Gold Radio Styling */
.pm-card.active .pm-radio input {
  border-color: var(--gold);
  border-width: 2.5px; /* Slightly thicker ring for the gold state */
}

.pm-card.active .pm-radio input::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  background: var(--gold); /* Gold inner dot */
  border-radius: 50%;
}

.pm-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.pm-info h4 {
  margin: 0 0 4px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 16px;
  color: var(--ink);
  font-weight: 700;
}

.pm-info p {
  margin: 0;
  font-size: 14.5px;
  color: var(--charcoal-soft);
  line-height: 1.4;
}

/* Coupon code block */
.coupon-block {
  margin-top: 8px;
}

.coupon-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  padding: 6px 0;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: var(--gold);
  cursor: pointer;
}

.coupon-toggle svg {
  width: 18px;
  height: 18px;
}

.coupon-toggle span {
  text-decoration: underline;
  text-underline-offset: 3px;
}

.coupon-toggle:hover {
  color: var(--ink);
}

.coupon-field {
  display: none;
  margin-top: 12px;
  max-width: 360px;
  gap: 8px;
}

.coupon-field #coupon-input {
  flex: 1;
  width: 200px;
  min-width: 0;
  padding: 9px 12px;
  border: 1px solid rgba(42, 38, 32, 0.25);
  border-radius: 10px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 14px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  background: var(--paper);
  color: var(--ink);
}

.coupon-field #coupon-input:focus {
  outline: none;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(201, 162, 39, 0.18);
}

.coupon-field #coupon-input:disabled {
  border-color: rgba(79, 107, 82, 0.28);
  background: rgba(79, 107, 82, 0.08);
  color: var(--sage);
  cursor: not-allowed;
  opacity: 1;
}

.coupon-field .btn-sm {
  padding: 9px 18px;
  font-size: 14px;
  white-space: nowrap;
  margin-left: 10px;
}

.coupon-field #coupon-apply:disabled {
  cursor: not-allowed;
  opacity: 0.68;
  transform: none;
}

.coupon-field #coupon-apply.is-applied:disabled {
  border-color: rgba(79, 107, 82, 0.42);
  background: var(--sage-light);
  color: var(--sage);
  opacity: 1;
}

.coupon-msg {
  margin: 8px 0 0;
  font-size: 13px;
  font-weight: 600;
  display: none;
}

.coupon-msg.is-error {
  color: #8C3F32;
}

.coupon-msg.is-success {
  color: #4F6B52;
}

.coupon-msg.has-action {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}

.coupon-msg .coupon-select-seats {
  appearance: none;
  border: 1px solid #8C3F32;
  border-radius: 6px;
  padding: 8px 13px;
  background: #8C3F32;
  color: #fffdf8;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.01em;
  cursor: pointer;
  box-shadow: 0 2px 5px rgba(140, 63, 50, 0.22);
  transition: background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.coupon-msg .coupon-select-seats:hover {
  border-color: #6F3027;
  background: #6F3027;
  box-shadow: 0 4px 9px rgba(140, 63, 50, 0.28);
  transform: translateY(-1px);
}

.coupon-msg .coupon-select-seats:focus-visible {
  outline: 3px solid rgba(201, 162, 39, 0.5);
  outline-offset: 2px;
}

.hxgb-coupon-line .k {
  color: var(--sage);
}
/* --- EARLY BIRD BADGE --- */
.eb-badge {
  display: inline-block;
  background: var(--gold);
  color: var(--ink);
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 6px;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.eb-badge-sm {
  display: inline-block;
  background: var(--gold);
  color: var(--ink);
  font-size: 9px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 3px;
  margin-left: 4px;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

/* --- COUPON PROMOTION POPUP --- */
.hxgb-root .hxgb-coupon-promo[hidden] { display:none !important; }
.hxgb-root .hxgb-coupon-promo {
  position:fixed;
  inset:0;
  z-index:99999;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(13,25,50,.72);
  backdrop-filter:blur(5px);
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease, visibility .18s ease;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
  align-items:safe center;
}
.hxgb-root .hxgb-coupon-promo.is-open { opacity:1; visibility:visible; }
.hxgb-root .hxgb-coupon-promo__card {
  position:relative;
  isolation:isolate;
  width:min(100%, 540px);
  padding:42px 44px 30px;
  border:1px solid rgba(201,162,39,.42);
  border-radius:26px;
  background:linear-gradient(145deg, #fffef9 0%, var(--paper) 58%, #f7f0dc 100%);
  color:var(--charcoal);
  text-align:center;
  box-shadow:0 30px 80px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.8);
  transform:translateY(18px) scale(.975);
  transition:transform .28s var(--ease);
  overflow:hidden;
}
.hxgb-root .hxgb-coupon-promo__card::before,
.hxgb-root .hxgb-coupon-promo__card::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:170px;
  height:170px;
  border:1px solid rgba(201,162,39,.23);
  border-radius:50%;
}
.hxgb-root .hxgb-coupon-promo__card::before { top:-112px; left:-78px; box-shadow:0 0 0 18px rgba(201,162,39,.045), 0 0 0 38px rgba(201,162,39,.035); }
.hxgb-root .hxgb-coupon-promo__card::after { right:-112px; bottom:-125px; box-shadow:0 0 0 22px rgba(22,35,63,.025), 0 0 0 44px rgba(22,35,63,.02); }
.hxgb-root .hxgb-coupon-promo.is-open .hxgb-coupon-promo__card { transform:translateY(0) scale(1); }
.hxgb-root .hxgb-coupon-promo__close {
  position:absolute;
  top:16px;
  right:16px;
  z-index:1;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid rgba(42,38,32,.1);
  border-radius:50%;
  background:rgba(255,255,255,.65);
  color:var(--charcoal-soft);
  cursor:pointer;
  font-size:25px;
  line-height:1;
}
.hxgb-root .hxgb-coupon-promo__close:hover,
.hxgb-root .hxgb-coupon-promo__close:focus { border-color:rgba(22,35,63,.25); background:#fff; color:var(--ink); }
.hxgb-root .hxgb-coupon-promo__seal {
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin:0 auto 16px;
  border:1px solid rgba(201,162,39,.5);
  border-radius:50%;
  background:rgba(255,253,248,.8);
  color:var(--gold);
  font-size:22px;
  line-height:1;
  box-shadow:0 5px 15px rgba(201,162,39,.14);
}
.hxgb-root .hxgb-coupon-promo__eyebrow {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  margin:0 0 13px;
  color:var(--gold);
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.hxgb-root .hxgb-coupon-promo__eyebrow::before,
.hxgb-root .hxgb-coupon-promo__eyebrow::after { content:""; width:20px; height:1px; background:currentColor; opacity:.55; }
.hxgb-root .hxgb-coupon-promo h2 { color:var(--ink); font-size:clamp(30px,4.5vw,43px); line-height:1.04; }
.hxgb-root .hxgb-coupon-promo__message { margin:17px auto 24px; max-width:37ch; color:var(--charcoal-soft); font-size:15px; line-height:1.7; }
.hxgb-root .hxgb-coupon-promo__code {
  margin:0 auto;
  padding:14px 15px 15px;
  border:1px solid rgba(22,35,63,.14);
  border-radius:16px;
  background:rgba(246,241,228,.8);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.hxgb-root .hxgb-coupon-promo__code-meta { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:9px; color:var(--charcoal-soft); font-size:10px; font-weight:700; letter-spacing:.1em; text-align:left; text-transform:uppercase; }
.hxgb-root .hxgb-coupon-promo__ready { display:inline-flex; align-items:center; gap:5px; color:var(--sage); font-size:9px; letter-spacing:.07em; white-space:nowrap; }
.hxgb-root .hxgb-coupon-promo__ready i { display:block; width:6px; height:6px; border-radius:50%; background:currentColor; box-shadow:0 0 0 3px rgba(79,107,82,.12); }
.hxgb-root .hxgb-coupon-promo__code-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.hxgb-root .hxgb-coupon-promo__code strong { min-width:0; color:var(--ink); font-family:'IBM Plex Mono',monospace; font-size:clamp(19px,4vw,25px); letter-spacing:.1em; overflow-wrap:anywhere; text-align:left; text-transform:uppercase; }
.hxgb-root .hxgb-coupon-promo__copy {
  flex:0 0 auto;
  min-height:34px;
  padding:7px 10px;
  border:1px solid rgba(22,35,63,.22);
  border-radius:8px;
  background:rgba(255,255,255,.65);
  color:var(--ink);
  cursor:pointer;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:12px;
  font-weight:700;
  white-space:nowrap;
}
.hxgb-root .hxgb-coupon-promo__copy:hover,
.hxgb-root .hxgb-coupon-promo__copy:focus { border-color:var(--ink); background:#fff; }
.hxgb-root .hxgb-coupon-promo__hint { margin:10px 0 20px; color:var(--charcoal-soft); font-size:12px; line-height:1.45; }
.hxgb-root .hxgb-coupon-promo__expiry {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin:-5px 0 20px;
  padding:6px 10px;
  border:1px solid rgba(201,162,39,.25);
  border-radius:999px;
  background:rgba(255,253,248,.7);
  color:var(--charcoal-soft);
  font-size:11px;
}
.hxgb-root .hxgb-coupon-promo__expiry span { text-transform:uppercase; letter-spacing:.07em; font-size:9px; font-weight:700; }
.hxgb-root .hxgb-coupon-promo__expiry strong { color:var(--ink); font-weight:700; }
.hxgb-root .hxgb-coupon-promo__actions { display:flex; flex-direction:column; align-items:center; gap:11px; }
.hxgb-root .hxgb-coupon-promo__actions button {
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:14px;
  font-weight:600;
}
.hxgb-root .hxgb-coupon-promo__use {
  width:100%;
  min-height:48px;
  padding:12px 20px;
  border:1px solid var(--ink);
  border-radius:999px;
  background:var(--ink);
  color:var(--parchment);
  cursor:pointer;
  box-shadow:0 8px 18px rgba(22,35,63,.18);
  transition:transform .2s var(--ease), box-shadow .2s ease, background .2s ease;
}
.hxgb-root .hxgb-coupon-promo__use:hover,
.hxgb-root .hxgb-coupon-promo__use:focus { background:var(--ink-soft); box-shadow:0 11px 22px rgba(22,35,63,.24); transform:translateY(-1px); }
.hxgb-root .hxgb-coupon-promo__use span { margin-left:6px; font-size:17px; vertical-align:-1px; }
.hxgb-root .hxgb-coupon-promo__dismiss { padding:2px 6px; border:0; background:transparent; color:var(--charcoal-soft); cursor:pointer; }
.hxgb-root .hxgb-coupon-promo__dismiss:hover,
.hxgb-root .hxgb-coupon-promo__dismiss:focus { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:480px) {
  .hxgb-root .hxgb-coupon-promo { padding:16px; }
  .hxgb-root .hxgb-coupon-promo__card { padding:37px 22px 24px; border-radius:21px; }
  .hxgb-root .hxgb-coupon-promo__seal { margin-bottom:13px; }
  .hxgb-root .hxgb-coupon-promo__code-row { gap:7px; }
  .hxgb-root .hxgb-coupon-promo__code strong { font-size:18px; letter-spacing:.07em; }
  .hxgb-root .hxgb-coupon-promo__copy { padding:7px 8px; }
}
@media (prefers-reduced-motion:reduce) {
  .hxgb-root .hxgb-coupon-promo,
  .hxgb-root .hxgb-coupon-promo__card { transition:none; }
}

/* --- TERMS & CONDITIONS MODAL --- */
.hxgb-root .hxgb-terms-modal[hidden] { display:none !important; }
.hxgb-root .hxgb-terms-modal {
  position:fixed;
  inset:0;
  z-index:100000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(2,13,34,.84);
  backdrop-filter:blur(6px);
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease, visibility .18s ease;
}
.hxgb-root .hxgb-terms-modal.is-open { opacity:1; visibility:visible; }
.hxgb-root .hxgb-terms-modal__card {
  position:relative;
  width:min(100%, 800px);
  max-height:calc(100vh - 48px);
  overflow:hidden;
  border:2px solid #e2aa20;
  border-radius:20px;
  background:linear-gradient(145deg,#fffdf4,#ffe8b4);
  color:var(--charcoal);
  box-shadow:0 0 0 7px rgba(168,7,26,.28),0 32px 85px rgba(0,0,0,.5),inset 0 1px 0 #fff;
  transform:translateY(18px) scale(.98);
  transition:transform .25s var(--ease);
}
.hxgb-root .hxgb-terms-modal.is-open .hxgb-terms-modal__card { transform:translateY(0) scale(1); }
.hxgb-root .hxgb-terms-modal__close {
  position:absolute;
  top:16px;
  right:16px;
  z-index:1;
  width:36px;
  height:36px;
  padding:0;
  border:1px solid rgba(6,27,67,.2);
  border-radius:50%;
  background:#fffdf4;
  color:var(--ink);
  cursor:pointer;
  font-size:25px;
  line-height:1;
}
.hxgb-root .hxgb-terms-modal__close:hover,
.hxgb-root .hxgb-terms-modal__close:focus-visible { border-color:#a8071a; color:#a8071a; outline:none; }
.hxgb-root .hxgb-terms-modal__head {
  padding:28px 66px 23px 30px;
  border-bottom:1px solid rgba(201,162,39,.55);
  background:var(--ink);
  color:#fff8e8;
}
.hxgb-root .hxgb-terms-modal__head p {
  margin:0 0 7px;
  color:#ffd45d;
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.hxgb-root .hxgb-terms-modal__head h2 { margin:0; color:#fff8e8; font-size:clamp(23px,4vw,34px); line-height:1.12; }
.hxgb-root .hxgb-terms-modal__body {
  max-height:calc(100vh - 215px);
  overflow:auto;
  padding:25px 30px 30px;
  overscroll-behavior:contain;
  scrollbar-color:#c99719 rgba(6,27,67,.08);
}
.hxgb-root .hxgb-terms-modal__body:focus-visible { outline:3px solid rgba(201,162,39,.45); outline-offset:-3px; }
.hxgb-root .hxgb-terms-modal__body > p { margin:0 0 18px; color:var(--charcoal-soft); font-size:14px; line-height:1.65; }
.hxgb-root .hxgb-terms-modal__body ol { margin:0; padding-left:22px; }
.hxgb-root .hxgb-terms-modal__body li { margin:0 0 12px; padding-left:4px; color:var(--charcoal); font-size:13px; line-height:1.55; }
.hxgb-root .hxgb-terms-modal__body li::marker { color:#a8071a; font-weight:700; }
@media (max-width:620px) {
  .hxgb-root .hxgb-terms-modal { padding:12px; }
  .hxgb-root .hxgb-terms-modal__card { max-height:calc(100vh - 24px); border-radius:15px; }
  .hxgb-root .hxgb-terms-modal__head { padding:24px 58px 20px 22px; }
  .hxgb-root .hxgb-terms-modal__body { max-height:calc(100vh - 176px); padding:20px 22px 24px; }
  .hxgb-root .terms { flex-wrap:wrap; gap:4px 9px; }
  .hxgb-root .terms label { flex:1 1 calc(100% - 28px); }
  .hxgb-root .terms-link { margin-left:26px; }
}

/* ========================================================================== 
   THE JOURNEY WITHIN — POSTER-INSPIRED EVENT THEME
   Purely visual overrides: booking behaviour, calculations and seat geometry
   remain controlled by the existing markup and JavaScript.
   ========================================================================== */
.hxgb-root {
  --ink:var(--hxgb-color-ink,#061b43);
  --ink-soft:#0d3470;
  --gold:var(--hxgb-color-gold,#e4a817);
  --gold-light:#ffda69;
  --parchment:var(--hxgb-color-parchment,#fff1d3);
  --paper:var(--hxgb-color-paper,#fffaf0);
  --paper-shadow:#ecd39c;
  --sage:var(--hxgb-color-sage,#1666a8);
  --sage-light:#dcecff;
  --ember:var(--hxgb-color-ember,#a8071a);
  --ember-light:#f7d8dc;
  --charcoal:#25190f;
  --charcoal-soft:#725d48;
  --ink-faint:#88745f;
  --shadow-soft:0 18px 40px -22px rgba(6,27,67,.34);
  --shadow-lift:0 26px 60px -26px rgba(6,27,67,.5);
  background:
    radial-gradient(circle at 8% 2%, rgba(228,168,23,.17), transparent 24rem),
    radial-gradient(circle at 94% 22%, rgba(168,7,26,.09), transparent 28rem),
    linear-gradient(180deg,#f8e4b9 0,#fff5df 27rem,#fff9ec 58rem,#f9e7c0 100%);
}
.hxgb-root::before {
  background:
    linear-gradient(90deg,rgba(168,7,26,.08),transparent 14%,transparent 86%,rgba(168,7,26,.08)),
    repeating-linear-gradient(90deg,rgba(228,168,23,.025) 0 1px,transparent 1px 52px);
}
.hxgb-root h1,
.hxgb-root h2,
.hxgb-root h3,
.hxgb-root .display { text-wrap:balance; }

/* The hero becomes the theatrical poster frame: navy stage, crimson curtains,
   warm spotlights and restrained gold trim without introducing image assets. */
.hxgb-root .hero {
  margin-top:28px;
  padding:34px 42px 48px;
  isolation:isolate;
  overflow:hidden;
  border:1px solid rgba(255,218,105,.72);
  border-radius:30px;
  background-color:#061b43;
  background-image:
    linear-gradient(90deg,rgba(var(--hxgb-hero-overlay-rgb,2,13,35),.86) 0%,rgba(var(--hxgb-hero-overlay-rgb,2,13,35),.64) 48%,rgba(var(--hxgb-hero-overlay-rgb,2,13,35),.74) 100%),
    linear-gradient(180deg,rgba(var(--hxgb-hero-overlay-rgb,2,13,35),.12) 0%,rgba(var(--hxgb-hero-overlay-rgb,2,13,35),.3) 54%,rgba(var(--hxgb-hero-overlay-rgb,2,13,35),.72) 100%),
    url('../images/hxgb-circus-hero.webp');
  background-position:center,center,center 52%;
  background-size:cover,cover,cover;
  background-repeat:no-repeat;
  box-shadow:0 28px 70px -30px rgba(3,19,47,.75),inset 0 0 0 5px rgba(228,168,23,.09),inset 0 -1px 0 rgba(255,218,105,.35);
}
.hxgb-root .hero::after {
  content:"";
  position:absolute;
  inset:10px;
  z-index:-1;
  border:1px solid rgba(255,218,105,.2);
  border-radius:22px;
  pointer-events:none;
}
.hxgb-root .brand { color:#fff8e8; text-shadow:0 2px 12px rgba(0,0,0,.35); }
.hxgb-root .brand-mark {
  border-color:var(--gold-light);
  background:linear-gradient(145deg,#f8cc4e,#b87404);
  color:var(--ink);
  box-shadow:0 0 0 4px rgba(255,218,105,.1),0 5px 18px rgba(0,0,0,.25);
}
.hxgb-root .hero-top .tag {
  border-color:rgba(255,218,105,.45);
  background:rgba(2,14,38,.34);
  color:#ffe59b;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.hxgb-root nav.hxgb-language-switcher {
  border-color:rgba(255,218,105,.48) !important;
  background:rgba(2,14,38,.46) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08) !important;
}
.hxgb-root nav.hxgb-language-switcher > a { color:rgba(255,248,232,.82) !important; }
.hxgb-root nav.hxgb-language-switcher > a:hover { color:#fff !important; }
.hxgb-root nav.hxgb-language-switcher > a.is-active {
  background:linear-gradient(180deg,#ffd85d,#d99a0c) !important;
  color:var(--ink) !important;
  box-shadow:0 2px 8px rgba(0,0,0,.24) !important;
}
.hxgb-root .hero h1 {
  color:#fff7e4;
  text-shadow:0 3px 0 rgba(89,0,13,.75),0 10px 30px rgba(0,0,0,.38);
}
.hxgb-root .hero h1 em {
  color:var(--gold-light);
  text-shadow:0 2px 0 #7d0616,0 7px 18px rgba(0,0,0,.38);
}
.hxgb-root .hero p.lede { color:rgba(255,248,232,.82); }
.hxgb-root .hero .btn-primary,
.hxgb-root .hxgb-coupon-promo__use {
  border:1px solid #ffc83d;
  background:linear-gradient(180deg,#c8182d 0%,#920718 100%);
  color:#fff9e8;
  box-shadow:0 9px 22px rgba(65,0,11,.38),inset 0 1px 0 rgba(255,255,255,.2),0 0 0 3px rgba(255,203,58,.09);
}
.hxgb-root .hero .btn-primary:hover,
.hxgb-root .hxgb-coupon-promo__use:hover { background:linear-gradient(180deg,#dd2035,#a3081c); }

/* Event invitation card */
.hxgb-root .invite-card {
  background:linear-gradient(145deg,#fffdf4,#ffe9b9);
  border-color:#e2aa22;
  box-shadow:0 24px 55px -28px rgba(0,0,0,.68),0 0 0 5px rgba(255,218,105,.09);
}
.hxgb-root .invite-card__content { border-color:rgba(168,7,26,.34); }
.hxgb-root .invite-num { color:#a8071a; text-shadow:0 2px 0 rgba(228,168,23,.22); }
.hxgb-root .invite-num span { color:var(--ink); }
.hxgb-root .invite-row,
.hxgb-root .invite-row:nth-child(1),
.hxgb-root .invite-row:nth-child(2),
.hxgb-root .invite-row:nth-child(3) {
  border-color:rgba(174,116,7,.17);
  background:rgba(255,250,240,.76);
}
.hxgb-root .invite-icon--date,
.hxgb-root .invite-icon--time,
.hxgb-root .invite-icon--venue { color:#a8071a; background:rgba(168,7,26,.09); }

/* Story, programme and ticket promotion */
.hxgb-root .story-eyebrow,
.hxgb-root .step-eyebrow { color:#a8071a; font-weight:700; }
.hxgb-root .story-eyebrow::before { background:#a8071a; }
.hxgb-root .story-copy h2,
.hxgb-root .booking-title h2 { color:var(--ink); }
.hxgb-root .story-copy h2 em,
.hxgb-root .booking-title h2 em { color:#bb0b22; }
.hxgb-root .story-stats { border-color:rgba(168,7,26,.18); }
.hxgb-root .story-stats .stat b { color:#a8071a; }
.hxgb-root .carousel {
  border:3px solid #dfa619;
  box-shadow:0 0 0 6px #9f071a,0 22px 45px -22px rgba(6,27,67,.58);
}
.hxgb-root .carousel-caption { background:linear-gradient(0deg,rgba(3,19,47,.96),rgba(6,27,67,.56) 58%,transparent); }
.hxgb-root .carousel-arrow { border-color:rgba(255,218,105,.66); background:rgba(147,7,25,.78); }
.hxgb-root .carousel-arrow:hover { background:#b30d23; }

.hxgb-root .hxgb-event-poster {
  position:relative;
  margin:4px 0 52px;
  padding:6px;
  overflow:hidden;
  border:1px solid rgba(255,218,105,.72);
  border-radius:24px;
  background:linear-gradient(145deg,#dca315,#7d0012);
  box-shadow:0 24px 52px -24px rgba(0,0,0,.72),0 0 0 5px rgba(228,168,23,.07);
}
.hxgb-root .hxgb-event-poster::after {
  content:"";
  position:absolute;
  inset:6px;
  border:1px solid rgba(255,244,190,.3);
  border-radius:17px;
  pointer-events:none;
}
.hxgb-root .hxgb-event-poster img {
  display:block;
  width:100%;
  aspect-ratio:1235 / 535;
  object-fit:cover;
  border-radius:17px;
}

.hxgb-root .hxgb-highlights-banner {
  background:
    radial-gradient(circle at 82% 20%,rgba(255,205,64,.15),transparent 30%),
    linear-gradient(145deg,#bd1028 0%,#8f0719 48%,#65000e 100%);
  border:2px solid #e7b52c;
  box-shadow:0 0 0 6px rgba(120,0,15,.12),0 24px 54px -27px rgba(76,0,12,.7),inset 0 1px 0 rgba(255,235,169,.34);
}
.hxgb-root .hxgb-highlights-banner::before { border-color:rgba(255,218,105,.5); }
.hxgb-root .hxgb-highlights-banner::after { background:radial-gradient(circle,rgba(255,215,91,.32),transparent 68%); }
.hxgb-root .hxgb-programme::after { background:linear-gradient(to bottom,transparent,rgba(255,218,105,.55) 20% 80%,transparent); }
.hxgb-root .hxgb-col-header { border-color:rgba(255,218,105,.35); }
.hxgb-root .hxgb-col-header h3 { color:#fff5db; text-shadow:0 2px 10px rgba(0,0,0,.3); }
.hxgb-root .prog-header-icon,
.hxgb-root .ticket-header-icon {
  border-color:rgba(255,218,105,.48);
  background:rgba(255,218,105,.13);
  color:var(--gold-light);
}
.hxgb-root .prog-list li { color:#fff5e1; }
.hxgb-root .prog-list li:hover { background:rgba(255,218,105,.1); }
.hxgb-root .prog-list .evt { color:#fff9ea; }
.hxgb-root .prog-time-badge {
  border-color:rgba(255,218,105,.5);
  background:rgba(3,19,47,.48);
}
.hxgb-root .prog-time-badge .time-clock-icon,
.hxgb-root .prog-time-badge .time { color:#ffe082; }
.hxgb-root .p-card.vip-card {
  border-color:var(--hxgb-vip-accent,#a8071a);
  background:
    radial-gradient(circle at 91% 12%,rgba(var(--hxgb-vip-accent-rgb,168,7,26),.16),transparent 31%),
    repeating-conic-gradient(from -12deg at 100% 115%,rgba(var(--hxgb-vip-accent-rgb,168,7,26),.055) 0deg 8deg,transparent 8deg 17deg),
    linear-gradient(145deg,#fffdf4 0%,#fff2cf 58%,#ffe3a1 100%);
  box-shadow:0 10px 24px -10px rgba(34,0,6,.45),inset 0 0 0 1px rgba(255,255,255,.7);
}
.hxgb-root .p-card.std-card {
  border-color:var(--hxgb-standard-accent,#145d9d);
  background:
    radial-gradient(circle at 91% 12%,rgba(var(--hxgb-standard-accent-rgb,20,93,157),.18),transparent 31%),
    repeating-conic-gradient(from -12deg at 100% 115%,rgba(var(--hxgb-standard-accent-rgb,20,93,157),.055) 0deg 8deg,transparent 8deg 17deg),
    linear-gradient(145deg,#fffdf8 0%,#edf5fc 58%,#d7e9f8 100%);
  box-shadow:0 10px 24px -10px rgba(6,27,67,.35),inset 0 0 0 1px rgba(255,255,255,.78);
}
.hxgb-root .p-card > * { position:relative; z-index:2; }
.hxgb-root .p-card::before {
  content:"";
  position:absolute;
  right:12px;
  bottom:3px;
  left:12px;
  z-index:1;
  height:6px;
  background:radial-gradient(circle,#d49a0d 0 1.4px,rgba(228,168,23,.22) 1.5px 3px,transparent 3.2px) left center/17px 6px repeat-x;
  opacity:.68;
  pointer-events:none;
}
.hxgb-root .p-card.vip-card::after,
.hxgb-root .p-card.std-card::after {
  content:"";
  position:absolute;
  top:auto;
  right:-9px;
  bottom:-25px;
  z-index:0;
  width:105px;
  height:86px;
  border-radius:0;
  background:repeating-linear-gradient(106deg,rgba(168,7,26,.58) 0 12px,rgba(255,245,211,.7) 12px 24px);
  clip-path:polygon(50% 0,100% 100%,0 100%);
  opacity:.13;
  transform:rotate(3deg);
  pointer-events:none;
}
.hxgb-root .p-card.std-card::after {
  background:repeating-linear-gradient(106deg,rgba(var(--hxgb-standard-accent-rgb,20,93,157),.58) 0 12px,rgba(255,253,244,.76) 12px 24px);
}
.hxgb-root .p-card.vip-card:hover { border-color:#ffd45c; box-shadow:0 15px 28px -12px rgba(34,0,6,.55); }
.hxgb-root .p-card.std-card:hover { border-color:#6ca2d2; box-shadow:0 15px 28px -12px rgba(6,27,67,.48); }
.hxgb-root .vip-card .p-card-icon,
.hxgb-root .vip-card .current { color:var(--hxgb-vip-accent,#a8071a); }
.hxgb-root .std-card .p-card-icon,
.hxgb-root .std-card .current { color:var(--hxgb-standard-accent,#145d9d); }
.hxgb-root .p-card .current { text-shadow:0 1px 0 rgba(255,255,255,.7); }
.hxgb-root .vip-pill { border-color:rgba(var(--hxgb-vip-accent-rgb,168,7,26),.28); background:rgba(var(--hxgb-vip-accent-rgb,168,7,26),.08); color:var(--hxgb-vip-accent,#a8071a); }
.hxgb-root .std-pill { border-color:rgba(var(--hxgb-standard-accent-rgb,20,93,157),.3); background:rgba(var(--hxgb-standard-accent-rgb,20,93,157),.09); color:var(--hxgb-standard-accent,#145d9d); }
.hxgb-root .hxgb-countdown-wrap { border-color:rgba(255,218,105,.48); background:rgba(3,19,47,.73); box-shadow:inset 0 1px 0 rgba(255,255,255,.08); }
.hxgb-root .hxgb-countdown-wrap p#countdownLabel,
.hxgb-root .hxgb-countdown-wrap p#countdownLabel strong,
.hxgb-root .cd-header-icon { color:#ffe59a; }
.hxgb-root .cd-box { border-color:rgba(255,218,105,.52); background:linear-gradient(180deg,#103b7c,#061b43); }

/* Booking wizard */
.hxgb-root .booking-title .story-eyebrow {
  width:max-content;
  margin-right:auto;
  margin-left:auto;
  padding:7px 16px;
  border:1px solid rgba(168,7,26,.24);
  border-radius:999px;
  background:rgba(255,250,240,.7);
}
.hxgb-root .widget {
  border:2px solid #d8a21c;
  border-radius:26px;
  background:var(--paper);
  box-shadow:0 0 0 6px rgba(168,7,26,.06),0 28px 64px -32px rgba(6,27,67,.52);
}
.hxgb-root .rail {
  border-bottom-color:rgba(255,218,105,.27);
  background:linear-gradient(100deg,#061b43,#0c3474 52%,#061b43);
  border-radius: 16px;
}
.hxgb-root .rail-step .dot { border-color:rgba(255,225,144,.5); background:#061b43; color:rgba(255,248,232,.72); }
.hxgb-root .rail-step .label { color:rgba(255,248,232,.7); }
.hxgb-root .rail-step .line { background:rgba(255,218,105,.2); }
.hxgb-root .rail-step.active .dot { border-color:#ffd964; background:#aa081d; color:#fff9e9; box-shadow:0 0 0 5px rgba(255,216,93,.15),0 0 18px rgba(255,190,32,.26); }
.hxgb-root .rail-step.active .label,
.hxgb-root .rail-step.done .label { color:#fff7df; }
.hxgb-root .rail-step.done .dot { border-color:#ffd964; background:linear-gradient(180deg,#f2bd32,#d69009); color:var(--ink); }
.hxgb-root .step-panel { background:linear-gradient(180deg,#fffaf0,#fff6e4); }
.hxgb-root .step-head h2 { color:var(--ink); }
.hxgb-root .hxgb-stage {
  border:1px solid #e0a51a;
  border-bottom:4px solid #9e0719;
  background:linear-gradient(180deg,#0d3a7a,#061b43);
  color:#ffe17c;
  box-shadow:0 10px 22px -14px rgba(6,27,67,.6),inset 0 1px 0 rgba(255,255,255,.1);
}
.hxgb-root .seat-layout--row .hxgb-stage {
  border:0;
  border-bottom:3px solid #e2a916;
  background:linear-gradient(180deg,rgba(9,46,105,.17),rgba(168,7,26,.05));
  color:#9d071a;
}
.hxgb-root .legend { border:1px solid rgba(218,158,11,.24); background:#fff0cf; }
.hxgb-root .legend-dot.sel { background:#b20a20; border-color:#8f0618; }
.hxgb-root .legend-dot.booked { background:#c5b99f; border-color:#a99b7d; }
.hxgb-root .legend-swatch.vip { background:#ffd662; }
.hxgb-root .legend-swatch.standard { background:#dcecff; }
.hxgb-root .table-block.vip .table-top { border-color:#e0a51a; background:linear-gradient(145deg,#fff7db,#f2cd69); }
.hxgb-root .table-top { border-color:#4f85bd; background:linear-gradient(145deg,#eef6ff,#cfe4fa); }
.hxgb-root .seat.vip:not(.selected):not(.booked),
.hxgb-root .row-seat-grid .row-seat.vip:not(.selected):not(.booked) { border-color:#d99608; background:#ffe08a; color:#7b4c00; }
.hxgb-root .seat.standard:not(.selected):not(.booked),
.hxgb-root .row-seat-grid .row-seat.standard:not(.selected):not(.booked) { border-color:#2570b1; background:#e5f2ff; color:#0b518d; }
.hxgb-root .seat.selected,
.hxgb-root .row-seat-grid .row-seat.selected { border-color:#870013; background:#b40b22; color:#fff; box-shadow:0 0 0 3px rgba(180,11,34,.12); }
.hxgb-root .seat.booked,
.hxgb-root .row-seat-grid .row-seat.booked { border-color:#b7aa90; background:#d6ccb8; color:#7c715e; }
.hxgb-root .vip-flag { border:1px solid #a8071a; background:#ffd45a; color:#780010; }
.hxgb-root .table-label .cat-tag.vip { background:#ffe6a0; color:#8b5800; }
.hxgb-root .table-label .cat-tag.standard { background:#dcecff; color:#0f5c9c; }
.hxgb-root .summary-card,
.hxgb-root .review-card { border:1px solid rgba(218,158,11,.27); background:linear-gradient(145deg,#fff3d7,#ffefd0); }
.hxgb-root .summary-list li { border:1px solid rgba(218,158,11,.18); background:#fffaf0; }
.hxgb-root .summary-list li .li-tag.vip { background:#ffe4a0; color:#8b5800; }
.hxgb-root .summary-list li .li-tag.standard { background:#dcecff; color:#0f5c9c; }
.hxgb-root .row-summary-grand strong { color:#a8071a; }
.hxgb-root .btn-primary {
  border:1px solid #dca315;
  background:linear-gradient(180deg,#bd1028,#900617);
  color:#fff9e8;
  box-shadow:0 9px 20px -11px rgba(104,0,16,.75),inset 0 1px 0 rgba(255,255,255,.2);
}
.hxgb-root .btn-primary:hover { background:linear-gradient(180deg,#d21b32,#a0081c); }
.hxgb-root .btn-primary:disabled { border-color:#c7b994; background:#d6ccb3; color:#897b62; }
.hxgb-root .btn-ghost { border-color:rgba(6,27,67,.26); color:var(--ink); }
.hxgb-root .btn-ghost:hover { border-color:#a8071a; color:#a8071a; }
.hxgb-root .field input,
.hxgb-root .field select,
.hxgb-root .field textarea,
.hxgb-root .coupon-field #coupon-input { border-color:rgba(6,27,67,.18); background:#fffdf7; }
.hxgb-root .field input:focus,
.hxgb-root .field select:focus,
.hxgb-root .field textarea:focus,
.hxgb-root .coupon-field #coupon-input:focus { border-color:#c20821; box-shadow:0 0 0 4px rgba(168,7,26,.1); }
.hxgb-root .review-card h3::before { background:#b10820; box-shadow:0 0 0 3px rgba(177,8,32,.1); }
.hxgb-root .chip { background:#ffd45c; color:#6f4000; }
.hxgb-root .chip.standard { background:#dcecff; color:#0d5796; }
.hxgb-root .coupon-toggle { color:#a8071a; }
.hxgb-root .coupon-toggle:hover { color:var(--ink); }
.hxgb-root .pm-card { border-color:rgba(6,27,67,.16); background:#fffdf7; }
.hxgb-root .pm-card:hover { border-color:#d6a01a; }
.hxgb-root .pm-card.active { border-color:#d39a10; background:#fff0cf; box-shadow:inset 4px 0 0 #a8071a; }
.hxgb-root .pm-card.active .pm-radio input { border-color:#a8071a; }
.hxgb-root .pm-card.active .pm-radio input::after { background:#a8071a; }
.hxgb-root .terms input { accent-color:#a8071a; }
.hxgb-root .ref-code { border:1px solid #f0bd35; background:linear-gradient(180deg,#a90a20,#7c0010); color:#ffe481; box-shadow:0 8px 18px rgba(80,0,12,.22); }
.hxgb-root .check-circle circle,
.hxgb-root .check-circle path { stroke:#a8071a; }

/* Promotion popup adopts the same marquee treatment. */
.hxgb-root .hxgb-coupon-promo { background:rgba(2,13,34,.82); }
.hxgb-root .hxgb-coupon-promo__card {
  border:2px solid #e2aa20;
  background:linear-gradient(145deg,#fffdf4,#ffe8b4);
  box-shadow:0 0 0 7px rgba(168,7,26,.3),0 32px 85px rgba(0,0,0,.48),inset 0 1px 0 #fff;
}
.hxgb-root .hxgb-coupon-promo__card::before { border-color:rgba(168,7,26,.2); box-shadow:0 0 0 18px rgba(168,7,26,.035),0 0 0 38px rgba(168,7,26,.025); }
.hxgb-root .hxgb-coupon-promo__seal { border-color:#d89d0c; background:#a8071a; color:#ffd95d; box-shadow:0 0 0 5px rgba(168,7,26,.08); }
.hxgb-root .hxgb-coupon-promo__eyebrow { color:#a8071a; }
.hxgb-root .hxgb-coupon-promo__code { border-color:rgba(168,7,26,.24); background:rgba(255,250,240,.8); }
.hxgb-root .hxgb-coupon-promo__copy { border-color:rgba(168,7,26,.3); background:#fff8e9; color:#8e0618; }
.hxgb-root .hxgb-coupon-promo__expiry { border-color:rgba(168,7,26,.22); background:#fff7e4; }

@media (max-width:980px) {
  .hxgb-root .hero { padding:30px 30px 40px; }
}
@media (max-width:620px) {
  .hxgb-root .hero { margin-top:14px; padding:24px 18px 32px; border-radius:22px; }
  .hxgb-root .hero::after { inset:7px; border-radius:16px; }
  .hxgb-root .hero h1 { font-size:clamp(36px,12vw,54px); }
  .hxgb-root .hero-meta { align-items:stretch; }
  .hxgb-root .hero-top .tag { display:flex; align-items:center; }
  .hxgb-root .hxgb-highlights-banner { border-radius:18px; }
  .hxgb-root .widget { border-radius:20px; }
  .hxgb-root .rail { padding:22px 18px; }
  .hxgb-root .hxgb-event-poster { margin-bottom:34px; padding:4px; border-radius:16px; }
  .hxgb-root .hxgb-event-poster::after { inset:4px; border-radius:11px; }
  .hxgb-root .hxgb-event-poster img { border-radius:11px; }
}

/* Circus-night page backdrop
   These layers sit behind the existing content and never participate in the
   page layout or receive pointer events. */
.hxgb-root {
  background:
    radial-gradient(ellipse at 50% 100%,rgba(var(--hxgb-page-ray-rgb,164,37,43),.095) 0,rgba(var(--hxgb-page-ray-rgb,164,37,43),.04) 34%,transparent 66%),
    radial-gradient(ellipse at 50% 45%,transparent 8%,rgba(13,0,3,.42) 68%,rgba(5,0,1,.74) 100%),
    repeating-conic-gradient(from -7deg at 50% 100%,rgba(var(--hxgb-page-ray-rgb,164,37,43),.055) 0deg 7deg,rgba(22,0,4,.075) 7deg 15deg),
    linear-gradient(180deg,var(--hxgb-page-bg,#210004) 0%,var(--hxgb-page-bg-mid,#320007) 42%,var(--hxgb-page-bg,#210004) 70%,var(--hxgb-page-bg-end,#0e0002) 100%);
  color:#fff5df;
}

.hxgb-root::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:url('../images/hxgb-circus-props.webp');
  background-position:center top;
  background-size:100% auto;
  background-repeat:repeat-y;
  opacity:var(--hxgb-props-opacity,.2);
  animation:hxgbPropLayerFloat 7s ease-in-out infinite alternate;
  will-change:transform,opacity;
}

@keyframes hxgbMarqueePulse {
  from { opacity:.5; }
  to { opacity:.82; }
}
@keyframes hxgbPropLayerFloat {
  from { transform:translate3d(0,0,0); }
  to { transform:translate3d(0,-10px,0); }
}

/* Open sections use light poster lettering against the midnight backdrop. */
.hxgb-root .story-copy h2,
.hxgb-root .booking-title h2 { color:#fff8e8; text-shadow:0 4px 22px rgba(0,0,0,.28); }
.hxgb-root .story-copy h2 em,
.hxgb-root .booking-title h2 em { color:#ffd45d; }
.hxgb-root .story-copy p { color:rgba(255,246,224,.79); }
.hxgb-root .story-eyebrow,
.hxgb-root .step-eyebrow { color:#ffd45d; }
.hxgb-root .story-eyebrow::before { background:#ffd45d; }
.hxgb-root .story-stats { border-color:rgba(255,218,105,.24); }
.hxgb-root .story-stats .stat b { color:#ffd45d; }
.hxgb-root .story-stats .stat span { color:rgba(255,246,224,.72); }
.hxgb-root .booking-title .story-eyebrow {
  border-color:rgba(255,218,105,.4);
  background:rgba(2,13,34,.38);
  color:#ffd45d;
}
.hxgb-root .widget { color:var(--charcoal); }
.hxgb-root footer { color:rgba(255,246,224,.68); }

@media (max-width:980px) {
  .hxgb-root::before {
    background-size:70px 70px,70px 70px,70px 70px,70px 70px,100% 100%,100% 100%;
    opacity:.5;
  }
  .hxgb-root::after { display:none; }
}
@media (max-width:620px) {
  .hxgb-root {
    background:
      radial-gradient(ellipse at 50% 100%,rgba(var(--hxgb-page-ray-rgb,164,37,43),.08),transparent 62%),
      repeating-conic-gradient(from -7deg at 50% 100%,rgba(var(--hxgb-page-ray-rgb,164,37,43),.045) 0deg 7deg,rgba(22,0,4,.065) 7deg 15deg),
      linear-gradient(180deg,var(--hxgb-page-bg,#210004),var(--hxgb-page-bg-mid,#320007) 48%,var(--hxgb-page-bg-end,#0e0002));
  }
}

@media (prefers-reduced-motion:reduce) {
  .hxgb-root::before,
  .hxgb-root::after { animation:none !important; }
}
