/* BME Venue – public styles (black / gold / glass) */
.eh { --eh-bg: #070707; --eh-bg2: #111114; --eh-gold: #d4af37; --eh-gold2: #f5d77a; --eh-gold3: #b8891b; --eh-text: #f2f2f2; --eh-muted: #a3a3a3; --eh-glass: rgba(255,255,255,.05); --eh-border: rgba(255,255,255,.1); --eh-radius: 20px;
	color: var(--eh-text); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif; line-height: 1.5; -webkit-font-smoothing: antialiased; }
.eh *, .eh *::before, .eh *::after { box-sizing: border-box; }
.eh a { color: var(--eh-gold2); }
.eh h1, .eh h2, .eh h3 { color: #fff; margin: 0; font-weight: 700; letter-spacing: -.01em; }
.eh-muted { color: var(--eh-muted); }
.eh-eyebrow { color: var(--eh-gold); font-size: 12px; letter-spacing: .22em; text-transform: uppercase; font-weight: 600; margin-bottom: 6px; }
.eh-glass { background: var(--eh-glass); border: 1px solid var(--eh-border); border-radius: var(--eh-radius); backdrop-filter: blur(16px) saturate(140%); -webkit-backdrop-filter: blur(16px) saturate(140%); box-shadow: 0 20px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.08); }
.eh-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: linear-gradient(135deg, var(--eh-gold2), var(--eh-gold3)); color: #111 !important; font-weight: 700; text-decoration: none !important; padding: 14px 28px; border-radius: 999px; border: none; cursor: pointer; font-size: 15px; letter-spacing: .02em; transition: transform .2s, box-shadow .2s, filter .2s; box-shadow: 0 8px 30px rgba(212,175,55,.25), inset 0 1px 0 rgba(255,255,255,.5); }
.eh-btn:hover { transform: translateY(-2px); filter: brightness(1.06); box-shadow: 0 14px 40px rgba(212,175,55,.35); }
.eh-btn:disabled { opacity: .6; cursor: wait; transform: none; }
.eh-btn-sm { padding: 10px 18px; font-size: 13px; }
.eh-btn-block { width: 100%; }
.eh-link { background: none; border: none; color: var(--eh-muted); text-decoration: underline; cursor: pointer; font-size: 13px; padding: 8px 0; display: inline-block; }
.eh-pill { display: inline-block; padding: 8px 16px; border-radius: 999px; border: 1px solid var(--eh-border); color: var(--eh-muted); font-size: 13px; }
.eh-notice { background: rgba(212,175,55,.08); border: 1px solid rgba(212,175,55,.35); color: var(--eh-gold2); padding: 12px 18px; border-radius: 12px; margin: 0 0 18px; font-size: 14px; }
.eh-notice.eh-soldout { text-align: center; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.eh-empty { color: var(--eh-muted); text-align: center; padding: 30px; }
.eh-loading { display: flex; align-items: center; gap: 12px; color: var(--eh-muted); padding: 40px; justify-content: center; }
.eh-spinner { width: 22px; height: 22px; border-radius: 50%; border: 2px solid rgba(212,175,55,.25); border-top-color: var(--eh-gold); animation: eh-spin .8s linear infinite; }
@keyframes eh-spin { to { transform: rotate(360deg); } }

/* ---------- Event page ---------- */
body.eh-event-page { background: var(--eh-bg, #070707); }
.eh-event { background: var(--eh-bg); margin: 0 auto; padding-bottom: 60px; }
.eh-hero { position: relative; overflow: hidden; padding: 70px 24px 60px; background: #050505; isolation: isolate; }
.eh-hero::before { content: ''; position: absolute; inset: -40px; background: var(--eh-cover) center/cover no-repeat; filter: blur(40px) brightness(.35) saturate(1.2); z-index: -2; transform: scale(1.1); }
.eh-hero::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,7,7,.2), rgba(7,7,7,.85) 70%, var(--eh-bg)); z-index: -1; }
.eh-hero-glow { position: absolute; width: 60vw; height: 60vw; max-width: 700px; max-height: 700px; left: 50%; top: -20%; transform: translateX(-50%); background: radial-gradient(circle, rgba(212,175,55,.18), transparent 60%); pointer-events: none; z-index: -1; animation: eh-float 9s ease-in-out infinite; }
@keyframes eh-float { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(20px); } }
.eh-hero-inner { max-width: 1100px; margin: 0 auto; display: grid; grid-template-columns: 340px 1fr; gap: 44px; align-items: center; }
.eh-hero-cover img { width: 100%; display: block; border-radius: 18px; box-shadow: 0 30px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(255,255,255,.08); transform: perspective(1200px) rotateY(6deg); transition: transform .5s; }
.eh-hero-cover:hover img { transform: perspective(1200px) rotateY(0); }
.eh-title { font-size: clamp(32px, 5vw, 56px); line-height: 1.05; margin-bottom: 8px; background: linear-gradient(90deg, #fff, #f5d77a 60%, #fff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.eh-subtitle { color: var(--eh-muted); font-size: 18px; margin: 0 0 18px; }
.eh-facts { list-style: none; padding: 0; margin: 0 0 26px; display: grid; gap: 10px; }
.eh-facts li { display: flex; gap: 12px; align-items: flex-start; font-size: 15px; color: #ddd; }
.eh-ico { font-style: normal; width: 22px; text-align: center; }
.eh-hero-cta { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.eh-from { color: var(--eh-muted); font-size: 14px; }
.eh-from strong { color: #fff; font-size: 18px; }
.eh-about { max-width: 1100px; margin: -20px auto 40px; padding: 30px 34px; font-size: 16px; color: #ddd; }
.eh-about p { margin: 0 0 1em; }

/* ---------- Seat map ---------- */
.eh-seatmap-section { max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.eh-sm-head { display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; gap: 14px; margin-bottom: 14px; }
.eh-sm-title { font-size: 28px; }
.eh-legend { display: flex; gap: 16px; flex-wrap: wrap; font-size: 13px; color: var(--eh-muted); }
.eh-lg::before { content: ''; display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.eh-lg-avail::before { background: var(--eh-st-available, var(--eh-lg-design, var(--eh-gold))); }
.eh-lg-sel::before { background: var(--eh-st-selected, #fff); box-shadow: 0 0 0 2px rgba(255,255,255,.85), 0 0 10px var(--eh-st-selected, #fff); }
.eh-lg-held::before { background: var(--eh-st-held, #f59e0b); box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(0,0,0,.6); }
.eh-lg-sold::before { background: var(--eh-st-sold, #3a3a3f); box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(0,0,0,.6); }
.eh-lg-avail.eh-lg-multi::before { background: var(--eh-lg-design, var(--eh-gold)); }
.eh-sections { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.eh-secchip { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; background: var(--eh-glass); border: 1px solid var(--eh-border); font-size: 13px; }
.eh-secchip i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.eh-sm-grid { display: grid; grid-template-columns: 1fr 340px; gap: 22px; align-items: start; }
.eh-map-card { padding: 14px; position: relative; overflow: hidden; }
.eh-map-wrap { position: relative; border-radius: 14px; overflow: hidden; background: radial-gradient(900px 500px at 50% 0%, #1a1a20, #08080a); }
.eh-svg-public { width: 100%; height: auto; display: block; margin: 0 auto; touch-action: none; user-select: none; -webkit-user-select: none; cursor: default; }
.eh-svg-public.eh-panning, .eh-svg-public.eh-panning * { cursor: grabbing !important; }
.eh-svg-public .eh-obj-stage, .eh-svg-public .eh-obj-dancefloor, .eh-svg-public .eh-obj-bar, .eh-svg-public .eh-obj-dj, .eh-svg-public .eh-obj-entrance, .eh-svg-public .eh-obj-area, .eh-svg-public .eh-obj-wall, .eh-svg-public .eh-obj-speaker, .eh-svg-public .eh-obj-text { cursor: default; }
.eh-svg-public .eh-seat, .eh-svg-public .eh-seat *, .eh-svg-public .eh-table-body, .eh-svg-public .eh-table-label { cursor: pointer; }
.eh-svg-public .eh-seat-sold, .eh-svg-public .eh-seat-sold *, .eh-svg-public .eh-seat-held, .eh-svg-public .eh-seat-held * { cursor: not-allowed; }
.eh-zoombar { position: absolute; right: 24px; top: 24px; display: flex; flex-direction: column; gap: 6px; }
.eh-zoombar button { width: 36px; height: 36px; border-radius: 10px; border: 1px solid var(--eh-border); background: rgba(20,20,24,.8); color: #fff; font-size: 18px; cursor: pointer; backdrop-filter: blur(8px); transition: all .15s; }
.eh-zoombar button:hover { border-color: var(--eh-gold); color: var(--eh-gold2); }
.eh-map-help { text-align: center; color: var(--eh-muted); font-size: 12px; margin: 10px 0 0; }
.eh-tip { position: absolute; pointer-events: none; transform: translate(-50%, calc(-100% - 14px)); background: rgba(12,12,14,.95); border: 1px solid rgba(212,175,55,.4); border-radius: 10px; padding: 8px 12px; font-size: 12px; opacity: 0; transition: opacity .15s; white-space: nowrap; z-index: 3; box-shadow: 0 10px 30px rgba(0,0,0,.5); display: grid; }
.eh-tip.show { opacity: 1; }
.eh-tip strong { color: #fff; font-size: 13px; }
.eh-tip span { color: var(--eh-gold); }
.eh-tip em { color: var(--eh-muted); font-style: normal; }
.eh-side-card { padding: 22px; position: sticky; top: 20px; }
.eh-side-title { font-size: 18px; margin-bottom: 8px; }
.eh-timer { font-size: 12px; color: var(--eh-gold2); background: rgba(212,175,55,.1); border: 1px solid rgba(212,175,55,.3); border-radius: 8px; padding: 6px 10px; margin-bottom: 12px; display: none; font-variant-numeric: tabular-nums; }
.eh-timer.show { display: block; }
.eh-timer.urgent { color: #ffb4b4; background: rgba(255,80,80,.1); border-color: rgba(255,80,80,.4); animation: eh-pulse 1s infinite; }
@keyframes eh-pulse { 50% { opacity: .6; } }
.eh-empty-sel { text-align: center; color: var(--eh-muted); padding: 24px 10px; font-size: 14px; }
.eh-empty-ico { font-size: 34px; margin-bottom: 8px; opacity: .8; }
.eh-sel-list { list-style: none; margin: 0 0 12px; padding: 0; max-height: 300px; overflow: auto; }
.eh-sel-list li { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--eh-border); font-size: 14px; animation: eh-in .25s ease; }
@keyframes eh-in { from { opacity: 0; transform: translateY(6px); } }
.eh-sel-info { flex: 1; display: grid; }
.eh-sel-info strong { color: #fff; font-weight: 600; }
.eh-sel-info span { color: var(--eh-muted); font-size: 12px; }
.eh-sel-price { color: var(--eh-gold2); font-weight: 600; }
.eh-remove { width: 26px; height: 26px; border-radius: 50%; border: 1px solid var(--eh-border); background: transparent; color: var(--eh-muted); cursor: pointer; font-size: 16px; line-height: 1; }
.eh-remove:hover { border-color: #ff8a8a; color: #ff8a8a; }
.eh-total { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 0; font-size: 14px; color: var(--eh-muted); }
.eh-total strong { color: #fff; font-size: 24px; }
.eh-checkout-form { display: grid; gap: 10px; margin-top: 6px; }
.eh-checkout-form input { width: 100%; background: rgba(0,0,0,.35); border: 1px solid var(--eh-border); border-radius: 12px; padding: 12px 14px; color: #fff; font-size: 14px; outline: none; transition: border-color .15s; }
.eh-checkout-form input:focus { border-color: var(--eh-gold); box-shadow: 0 0 0 3px rgba(212,175,55,.15); }
.eh-checkout-form input::placeholder { color: #777; }
.eh-secure { font-size: 11px; color: var(--eh-muted); text-align: center; margin: 4px 0 0; }
.eh-flash { position: fixed; left: 50%; bottom: 30px; transform: translate(-50%, 20px); background: rgba(14,14,16,.96); border: 1px solid rgba(212,175,55,.5); color: #fff; padding: 12px 20px; border-radius: 999px; font-size: 14px; z-index: 9999; opacity: 0; transition: all .3s; box-shadow: 0 10px 40px rgba(0,0,0,.6); max-width: 90vw; text-align: center; }
.eh-flash.show { opacity: 1; transform: translate(-50%, 0); }
.eh-mobilebar { display: none; }

/* SVG object styles (public) */
.eh-svg text { font-family: inherit; pointer-events: none; }
.eh-svg .eh-floor { fill: transparent; }
.eh-svg .eh-table-body { fill: url(#ehTableGrad); stroke: rgba(212,175,55,.6); stroke-width: 1.5; }
.eh-svg .eh-table-label { fill: #fff; font-weight: 800; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; letter-spacing: .02em; paint-order: stroke fill; stroke: rgba(0,0,0,.85); stroke-width: 3px; stroke-linejoin: round; }
.eh-svg .eh-table-sub { fill: #999; font-size: 7px; text-transform: uppercase; letter-spacing: .05em; }
.eh-svg .eh-row-label { fill: #f5d77a; font-weight: 800; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; paint-order: stroke fill; stroke: rgba(0,0,0,.85); stroke-width: 3px; stroke-linejoin: round; }
.eh-svg .eh-seat { cursor: pointer; }
/* Seat states. Every non-available state uses ONE consistent outline: solid white, 3.6 units, dark halo, seat scaled ×1.18.
   Selected adds a glow + pulsing ring on top so it stays the strongest. Hover (mouse only) scales ×1.12 and brightens –
   the same for every state – via CSS variables so it composes with the state's own scale / filter. */
.eh-svg .eh-seat circle { --eh-seat-scale: 1; --eh-seat-filter: none; fill: var(--eh-st-available, var(--eh-seat-color, #d4af37)); stroke: rgba(0,0,0,.65); stroke-width: 1.4; transform: scale(var(--eh-seat-scale)); filter: var(--eh-seat-filter); transition: transform .16s ease-out, filter .16s ease-out; transform-box: fill-box; transform-origin: center; }
.eh-svg .eh-seat-ring { fill: none !important; stroke: var(--eh-st-selected, #fff) !important; stroke-width: 2.5 !important; opacity: .95; animation: eh-ring 1.4s ease-in-out infinite; }
@keyframes eh-ring { 0%, 100% { opacity: .95; transform: scale(1); } 50% { opacity: .45; transform: scale(1.12); } }
@media (hover: hover) {
	.eh-svg .eh-seat:hover circle:not(.eh-seat-ring) { transform: scale(calc(var(--eh-seat-scale) * 1.12)); filter: var(--eh-seat-filter) brightness(1.18); }
	.eh-svg-public .eh-table-body { transition: transform .16s ease-out, filter .16s ease-out; transform-box: fill-box; transform-origin: center; }
	.eh-svg-public .eh-obj-table:hover .eh-table-body { transform: scale(1.03); filter: brightness(1.25); }
}
.eh-svg-public .eh-table-body { cursor: pointer; }
.eh-svg .eh-tap-ring { fill: none; stroke: #f5d77a; stroke-width: 3; pointer-events: none; transform-box: fill-box; transform-origin: center; animation: eh-tap .55s ease-out forwards; }
@keyframes eh-tap { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(3.2); opacity: 0; } }
.eh-svg .eh-seat-num { fill: #fff; font-size: var(--eh-seat-fs, 11px); font-weight: 800; font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; paint-order: stroke fill; stroke: rgba(0,0,0,.85); stroke-width: 2.4px; stroke-linejoin: round; pointer-events: none; }
.eh-svg .eh-seat-selected circle:not(.eh-seat-ring), .eh-svg .eh-seat-mine circle:not(.eh-seat-ring),
.eh-svg .eh-seat-sold circle, .eh-svg .eh-seat-held circle { stroke: #fff; stroke-width: 3.6; --eh-seat-scale: 1.18; --eh-seat-filter: drop-shadow(0 0 3px rgba(0,0,0,.95)); opacity: 1 !important; }
.eh-svg .eh-seat-selected circle:not(.eh-seat-ring), .eh-svg .eh-seat-mine circle:not(.eh-seat-ring) { fill: var(--eh-st-selected, #fff) !important; --eh-seat-filter: drop-shadow(0 0 3px rgba(0,0,0,.95)) drop-shadow(0 0 10px var(--eh-st-selected, #fff)); }
.eh-svg .eh-seat-sold circle { fill: var(--eh-st-sold, #3a3a3f) !important; }
.eh-svg .eh-seat-held circle { fill: var(--eh-st-held, #f59e0b) !important; }
.eh-svg .eh-seat-selected .eh-seat-num, .eh-svg .eh-seat-mine .eh-seat-num, .eh-svg .eh-seat-sold .eh-seat-num, .eh-svg .eh-seat-held .eh-seat-num { font-size: calc(var(--eh-seat-fs, 11px) * 1.15); stroke-width: 2.8px; opacity: 1; }
.eh-svg .eh-seat-sold, .eh-svg .eh-seat-held { cursor: not-allowed; }
.eh-svg .eh-shape { fill: rgba(255,255,255,.05); stroke: rgba(255,255,255,.18); stroke-width: 1.5; }
.eh-svg .eh-obj-stage .eh-shape { fill: url(#ehStageGrad); stroke: rgba(212,175,55,.7); }
.eh-svg .eh-stage-edge { fill: url(#ehGold); }
.eh-svg .eh-stage-light { fill: #fff2b3; filter: url(#ehGlow); animation: eh-twinkle 2.4s ease-in-out infinite; }
.eh-svg .eh-stage-light:nth-child(odd) { animation-delay: 1.2s; }
@keyframes eh-twinkle { 50% { opacity: .35; } }
.eh-svg .eh-obj-dancefloor .eh-shape { fill: url(#ehFloorPat); stroke: rgba(255,255,255,.22); stroke-dasharray: 6 4; }
.eh-svg .eh-obj-bar .eh-shape { fill: #2a1f12; stroke: rgba(212,175,55,.5); }
.eh-svg .eh-obj-dj .eh-shape { fill: #1a1a2b; stroke: #8b5cf6; }
.eh-svg .eh-obj-entrance .eh-shape { fill: #0f2a1a; stroke: #22c55e; }
.eh-svg .eh-entrance-arrow { fill: none; stroke: #22c55e; stroke-width: 2; }
.eh-svg .eh-obj-area .eh-shape { fill: color-mix(in srgb, var(--eh-shape-color, #4b5563) 22%, transparent); stroke: var(--eh-shape-color, #4b5563); stroke-dasharray: 8 5; }
.eh-svg .eh-obj-speaker .eh-shape { fill: #1c1c1c; stroke: #666; }
.eh-svg .eh-speaker-cone { fill: #0a0a0a; stroke: #888; }
.eh-svg .eh-obj-wall .eh-shape { fill: var(--eh-shape-color, #555); stroke: none; }
.eh-svg .eh-shape-label { fill: rgba(255,255,255,.75); font-size: 12px; font-weight: 700; letter-spacing: .18em; }
.eh-svg .eh-obj-stage .eh-shape-label { fill: #f5d77a; font-size: 16px; }
.eh-svg .eh-text { fill: #d4af37; font-weight: 600; }

/* ---------- Order / tickets ---------- */
.eh-order-card { padding: 30px; max-width: 760px; margin: 0 auto; }
.eh-order-head { display: flex; gap: 18px; align-items: flex-start; margin-bottom: 22px; }
.eh-order-head h2 { font-size: 26px; margin-bottom: 4px; }
.eh-check { width: 52px; height: 52px; flex: none; border-radius: 50%; background: linear-gradient(135deg, var(--eh-gold2), var(--eh-gold3)); color: #111; font-weight: 900; font-size: 26px; display: grid; place-items: center; box-shadow: 0 0 30px rgba(212,175,55,.5); }
.eh-tickets { display: grid; gap: 12px; }
.eh-ticket { display: grid; grid-template-columns: 110px 1fr 190px; background: linear-gradient(135deg, #16161a, #0d0d10); border: 1px solid rgba(212,175,55,.35); border-radius: 14px; overflow: hidden; position: relative; }
.eh-ticket::before, .eh-ticket::after { content: ''; position: absolute; width: 18px; height: 18px; border-radius: 50%; background: var(--eh-bg); right: 181px; border: 1px solid rgba(212,175,55,.35); }
.eh-ticket::before { top: -9px; } .eh-ticket::after { bottom: -9px; }
.eh-ticket-poster { background: #0a0a0c; display: grid; place-items: center; padding: 10px; }
.eh-ticket-poster img { width: 100%; height: 100%; max-height: 150px; object-fit: contain; object-position: center; display: block; border-radius: 6px; }
.eh-ticket-main { padding: 16px 18px; display: grid; gap: 2px; font-size: 13px; color: var(--eh-muted); align-content: center; }
.eh-ticket-main strong { color: #fff; font-size: 17px; }
.eh-ticket-no { font-size: 11px; color: #777; margin-top: 4px; }
/* Stub: white with black text so codes/QR read on screen AND on any printer */
.eh-ticket-stub { border-left: 2px dashed rgba(212,175,55,.5); padding: 14px 12px; display: grid; justify-items: center; align-content: center; text-align: center; font-size: 11px; color: #444; background: #fff; }
.eh-ticket-stub code { color: #000; font-weight: 700; font-size: 15px; letter-spacing: .14em; margin: 2px 0; font-family: ui-monospace, Menlo, Consolas, monospace; }
.eh-ticket-stub em { font-style: normal; color: #000; font-weight: 600; }
.eh-ticket-qr { width: 120px; height: 120px; margin-bottom: 4px; }
.eh-group-ticket { display: grid; grid-template-columns: 1fr 200px; margin-top: 14px; background: linear-gradient(135deg, #2a2208, #141004); border: 2px solid var(--eh-gold, #d4af37); border-radius: 14px; overflow: hidden; box-shadow: 0 0 0 4px rgba(212,175,55,.12); }
.eh-group-main { padding: 18px 20px; display: grid; gap: 6px; align-content: center; color: var(--eh-muted); font-size: 13px; }
.eh-group-eyebrow { color: #f5d77a; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 700; }
.eh-group-main strong { color: #fff; font-size: 20px; }
.eh-group-main p { margin: 0; line-height: 1.5; }
.eh-group-seats { display: flex; flex-wrap: wrap; gap: 6px; }
.eh-group-seats span { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); border-radius: 999px; padding: 2px 10px; font-size: 12px; color: #eee; }
.eh-group-main code { justify-self: start; background: #fff; color: #000; font-weight: 700; letter-spacing: .12em; padding: 3px 8px; border-radius: 6px; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; }
.eh-group-stub { background: #fff; display: grid; justify-items: center; align-content: center; padding: 14px; gap: 4px; }
.eh-group-stub span { font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: #8a6d16; font-weight: 700; }
.eh-group-qr { width: 150px; height: 150px; }
.eh-group-qr svg { width: 100%; height: 100%; display: block; }
.eh-ticket-qr svg { width: 100%; height: 100%; display: block; }
.eh-order-total { border-top: 1px solid var(--eh-border); margin-top: 16px; }
.eh-order-card .eh-btn { margin: 6px 16px 6px 0; }

/* ---------- Events grid ---------- */
.eh-grid-wrap { padding: 10px 0; }
.eh-section-title { font-size: 30px; margin-bottom: 20px; }
.eh-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); }
.eh-cols-2 { grid-template-columns: repeat(2, 1fr); } .eh-cols-4 { grid-template-columns: repeat(4, 1fr); }
.eh-card { display: flex; flex-direction: column; text-decoration: none !important; color: inherit !important; background: var(--eh-glass); border: 1px solid var(--eh-border); border-radius: 18px; overflow: hidden; transition: transform .3s, box-shadow .3s, border-color .3s; backdrop-filter: blur(12px); }
.eh-card:hover { transform: translateY(-6px); border-color: rgba(212,175,55,.5); box-shadow: 0 24px 60px rgba(0,0,0,.5), 0 0 40px rgba(212,175,55,.12); }
.eh-card-media { position: relative; aspect-ratio: 4/5; overflow: hidden; background: #0e0e10; }
.eh-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s; }
.eh-card:hover .eh-card-media img { transform: scale(1.05); }
.eh-card-placeholder { width: 100%; height: 100%; background: radial-gradient(circle at 30% 20%, rgba(212,175,55,.25), transparent 50%), #101012; }
.eh-date-badge { position: absolute; top: 12px; left: 12px; background: rgba(8,8,10,.85); border: 1px solid rgba(212,175,55,.5); border-radius: 12px; padding: 6px 10px; text-align: center; line-height: 1.05; backdrop-filter: blur(8px); }
.eh-date-badge span { display: block; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--eh-gold); }
.eh-date-badge strong { display: block; font-size: 22px; color: #fff; }
.eh-card-body { padding: 16px 18px 18px; display: grid; gap: 4px; }
.eh-card-body h3 { font-size: 19px; }
.eh-card-meta { font-size: 13px; color: #ddd; }
.eh-card-foot { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; }

/* ---------- Responsive ---------- */
@media (max-width: 960px) {
	.eh-hero-inner { grid-template-columns: 1fr; gap: 26px; }
	.eh-hero-cover { max-width: 300px; margin: 0 auto; }
	.eh-hero-cover img { transform: none; }
	.eh-sm-grid { grid-template-columns: 1fr; }
	.eh-side-card { position: static; }
	.eh-grid, .eh-cols-4 { grid-template-columns: repeat(2, 1fr); }
	.eh-mobilebar { display: none; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 999; background: rgba(12,12,14,.95); border: 1px solid rgba(212,175,55,.5); border-radius: 999px; padding: 10px 12px 10px 20px; align-items: center; justify-content: space-between; backdrop-filter: blur(12px); box-shadow: 0 10px 40px rgba(0,0,0,.6); font-size: 14px; }
	.eh-mobilebar.show { display: flex; }
	.eh-mobilebar strong { color: #fff; font-size: 18px; }
	.eh-zoombar { right: 22px; top: 22px; }
}
@media (max-width: 560px) {
	.eh-hero { padding: 40px 16px 40px; }
	.eh-grid, .eh-cols-2, .eh-cols-4 { grid-template-columns: 1fr; }
	.eh-map-card { padding: 8px; }
	.eh-ticket { grid-template-columns: 1fr; }
	.eh-ticket::before, .eh-ticket::after { display: none; }
	.eh-ticket-poster { display: none; }
	.eh-ticket-stub { border-left: none; border-top: 2px dashed rgba(212,175,55,.35); }
	.eh-group-ticket { grid-template-columns: 1fr; }
}
@media print {
	.eh-hero, .eh-about, .eh-btn, .eh-link, .eh-mobilebar, .eh-gallery-section, .eh-map-section, .eh-fcards { display: none !important; }
	.eh, .eh-event { background: #fff !important; color: #000 !important; }
	html, body, html.eh-print-tickets, html.eh-print-tickets body { background: #fff !important; }
	.eh-order-card { border: none; box-shadow: none; backdrop-filter: none; background: #fff !important; color: #000 !important; }
	.eh-order-card .eh-muted, .eh-order-total span, .eh-order-card p { color: #333 !important; }
	.eh-order-head h2 { -webkit-text-fill-color: #000; }
	.eh-ticket { background: #fff !important; color: #000; border: 1px solid #999; break-inside: avoid; page-break-inside: avoid; }
	.eh-group-ticket { background: #fff !important; border: 2px solid #000; box-shadow: none; break-inside: avoid; }
	.eh-group-main, .eh-group-main strong, .eh-group-main p, .eh-group-eyebrow { color: #000 !important; }
	.eh-group-seats span { color: #000; border-color: #999; background: none; }
	.eh-ticket::before, .eh-ticket::after { display: none; }
	.eh-ticket-poster { background: #fff; }
	.eh-ticket-main, .eh-ticket-main span, .eh-ticket-no { color: #222 !important; }
	.eh-ticket-main strong, .eh-ticket-stub em, .eh-order-head h2, .eh-order-total strong { color: #000 !important; }
	.eh-ticket-stub { border-left: 2px dashed #999; }
	.eh-ticket-stub code { color: #000 !important; }
	.eh-eyebrow { color: #7a5c0e !important; }
	.eh-check { box-shadow: none; }
	/* Print only the ticket card when the "Print tickets" button is used */
	html.eh-print-tickets body * { visibility: hidden !important; }
	html.eh-print-tickets #eh-order-card, html.eh-print-tickets #eh-order-card * { visibility: visible !important; }
	html.eh-print-tickets #eh-order-card { position: absolute !important; left: 0; top: 0; width: 100% !important; max-width: 100% !important; margin: 0; padding: 10mm; }
}

/* ---------- v1.1: hero variants, gallery, map, wide/fullscreen floor plan, lightbox ---------- */
.eh-btn-ghost { background: rgba(255,255,255,.06); color: #fff !important; border: 1px solid rgba(212,175,55,.5); box-shadow: none; }
.eh-btn-ghost:hover { background: rgba(212,175,55,.15); box-shadow: 0 8px 30px rgba(212,175,55,.2); }
.eh-inline-link { font-size: 13px; margin-left: 8px; white-space: nowrap; }
.eh-hero-cover { position: relative; cursor: zoom-in; }
.eh-zoom-hint { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); background: rgba(8,8,10,.75); border: 1px solid rgba(212,175,55,.5); color: #fff; font-size: 12px; padding: 6px 12px; border-radius: 999px; opacity: 0; transition: opacity .25s; pointer-events: none; backdrop-filter: blur(6px); }
.eh-hero-cover:hover .eh-zoom-hint { opacity: 1; }
@media (hover: none) { .eh-zoom-hint { opacity: .9; } }
/* Banner hero */
.eh-hero-banner .eh-hero { padding-top: 0; }
.eh-banner { position: relative; max-width: 1240px; margin: 0 auto 36px; border-radius: 0 0 24px 24px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.eh-banner img { width: 100%; max-height: 70vh; object-fit: cover; display: block; cursor: zoom-in; }
.eh-zoom-btn { position: absolute; right: 16px; bottom: 16px; width: 42px; height: 42px; border-radius: 12px; border: 1px solid rgba(255,255,255,.25); background: rgba(8,8,10,.7); color: #fff; font-size: 20px; cursor: pointer; backdrop-filter: blur(8px); }
.eh-hero-banner .eh-hero-inner, .eh-hero-minimal .eh-hero-inner { grid-template-columns: 1fr; text-align: center; }
.eh-hero-banner .eh-facts, .eh-hero-minimal .eh-facts { justify-items: center; }
.eh-hero-banner .eh-hero-cta, .eh-hero-minimal .eh-hero-cta { justify-content: center; }
.eh-hero-minimal .eh-hero { padding: 90px 24px 70px; }
/* Section heads */
.eh-section-head { max-width: 1240px; margin: 0 auto 18px; padding: 0 20px; display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.eh-section-head h2 { font-size: 28px; }
.eh-section-head p { margin: 4px 0 0; }
/* Gallery */
.eh-gallery-section { max-width: 1280px; margin: 0 auto 50px; padding: 0 20px; }
.eh-gitem { position: relative; display: block; overflow: hidden; border-radius: 14px; background: #111; border: 1px solid var(--eh-border); cursor: zoom-in; }
.eh-gitem img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease, filter .3s; }
.eh-gitem:hover img { transform: scale(1.06); filter: brightness(1.08); }
.eh-gitem::after { content: '🔍'; position: absolute; right: 10px; top: 10px; width: 32px; height: 32px; border-radius: 10px; background: rgba(8,8,10,.7); display: grid; place-items: center; font-size: 14px; opacity: 0; transition: opacity .2s; }
.eh-gitem:hover::after { opacity: 1; }
.eh-gcap { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 12px 10px; font-size: 12px; color: #fff; background: linear-gradient(transparent, rgba(0,0,0,.8)); }
.eh-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 12px; }
.eh-gallery-grid .eh-gitem-lead { grid-column: span 2; grid-row: span 2; }
.eh-gallery-strip { display: flex; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 10px; scrollbar-width: thin; }
.eh-gallery-strip .eh-gitem { flex: 0 0 auto; width: 320px; height: 240px; scroll-snap-align: start; }
.eh-gallery-masonry { columns: 3 260px; column-gap: 12px; }
.eh-gallery-masonry .eh-gitem { break-inside: avoid; margin-bottom: 12px; }
.eh-gallery-masonry .eh-gitem img { height: auto; }
/* Map */
.eh-map-section { max-width: 1280px; margin: 0 auto 50px; padding: 0 20px; }
.eh-map-embed { overflow: hidden; padding: 0; height: 420px; }
.eh-map-embed iframe { width: 100%; height: 100%; border: 0; filter: invert(.92) hue-rotate(180deg) saturate(.7) contrast(.95); }
/* Wide floor plan */
.eh-seatmap-wide { max-width: 1400px; }
.eh-seatmap-wide .eh-sm-grid { grid-template-columns: 1fr; }
.eh-seatmap-wide .eh-side-card { position: static; }
.eh-seatmap-wide .eh-sel-list { max-height: none; }
@media (min-width: 961px) {
	.eh-seatmap-wide .eh-side-card { display: grid; grid-template-columns: 1fr 1fr; column-gap: 30px; align-items: start; }
	.eh-seatmap-wide .eh-side-card > .eh-side-title, .eh-seatmap-wide .eh-side-card > .eh-timer, .eh-seatmap-wide .eh-side-card > .eh-empty-sel { grid-column: 1 / -1; }
}
/* Fullscreen floor plan */
html.eh-fs-open, html.eh-lb-open { overflow: hidden; }
.eh-seatmap-app.eh-fs { position: fixed; inset: 0; z-index: 99990; background: #050505; overflow: auto; padding: 60px 20px 20px; }
.eh-seatmap-app.eh-fs .eh-sm-grid { grid-template-columns: 1fr 340px; height: calc(100vh - 80px); }
.eh-seatmap-app.eh-fs .eh-map-card { height: 100%; display: flex; flex-direction: column; }
.eh-seatmap-app.eh-fs .eh-map-wrap { flex: 1; display: grid; place-items: center; }
.eh-seatmap-app.eh-fs .eh-map-wrap { height: calc(100vh - 170px); min-height: 240px; }
.eh-seatmap-app.eh-fs .eh-side-card { max-height: calc(100vh - 80px); overflow: auto; }
.eh-seatmap-app.eh-fs .eh-sm-head, .eh-seatmap-app.eh-fs .eh-sections { display: none; }
.eh-fs-close { position: fixed; top: 14px; right: 16px; z-index: 99991; background: rgba(20,20,24,.9); color: #fff; border: 1px solid rgba(212,175,55,.5); border-radius: 999px; padding: 10px 18px; font-size: 14px; cursor: pointer; }
@media (max-width: 960px) { .eh-seatmap-app.eh-fs .eh-sm-grid { grid-template-columns: 1fr; height: auto; } .eh-seatmap-app.eh-fs .eh-map-wrap { height: 70vh; } }
/* Lightbox */
.eh-lightbox { position: fixed; inset: 0; z-index: 99995; background: rgba(4,4,6,.96); display: none; backdrop-filter: blur(10px); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, Roboto, sans-serif; }
.eh-lightbox.open { display: block; animation: eh-fade .2s ease; }
@keyframes eh-fade { from { opacity: 0; } }
.eh-lb-stage { position: absolute; inset: 0; display: grid; place-items: center; touch-action: none; overflow: hidden; }
.eh-lb-stage img { max-width: 92vw; max-height: 86vh; border-radius: 10px; box-shadow: 0 30px 80px rgba(0,0,0,.8); transition: transform .08s linear, opacity .2s; cursor: zoom-in; user-select: none; -webkit-user-drag: none; }
.eh-lb-stage img.zoomed { cursor: grab; }
.eh-lb-stage img.loading { opacity: .3; }
.eh-lightbox button { position: absolute; background: rgba(20,20,24,.85); color: #fff; border: 1px solid rgba(255,255,255,.15); border-radius: 12px; cursor: pointer; font-size: 22px; width: 46px; height: 46px; display: grid; place-items: center; transition: border-color .15s; z-index: 2; }
.eh-lightbox button:hover { border-color: #d4af37; color: #f5d77a; }
.eh-lb-close { top: 16px; right: 16px; }
.eh-lb-prev { left: 16px; top: 50%; transform: translateY(-50%); font-size: 34px !important; }
.eh-lb-next { right: 16px; top: 50%; transform: translateY(-50%); font-size: 34px !important; }
.eh-lightbox.single .eh-lb-prev, .eh-lightbox.single .eh-lb-next { display: none; }
.eh-lb-cap { position: absolute; left: 50%; bottom: 74px; transform: translateX(-50%); color: #eee; font-size: 14px; max-width: 80vw; text-align: center; text-shadow: 0 2px 8px #000; }
.eh-lb-count { position: absolute; left: 20px; top: 26px; color: #aaa; font-size: 13px; letter-spacing: .1em; }
.eh-lb-tools { position: absolute; left: 50%; bottom: 18px; transform: translateX(-50%); display: flex; gap: 8px; }
.eh-lb-tools button { position: static; width: auto; min-width: 46px; padding: 0 12px; font-size: 16px; }
@media (max-width: 760px) {
	.eh-gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 150px; }
	.eh-map-embed { height: 300px; }
	.eh-lb-prev, .eh-lb-next { display: none; }
}

/* Countdown */
.eh-countdown { margin: 0 0 24px; }
.eh-cd-row { display: flex; gap: 12px; flex-wrap: wrap; }
.eh-cd { min-width: 78px; padding: 12px 10px; text-align: center; background: var(--eh-glass); border: 1px solid var(--eh-border); border-radius: 14px; }
.eh-cd strong { display: block; font-size: 30px; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; background: linear-gradient(90deg, #fff, var(--eh-gold2)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.eh-cd span { display: block; font-size: 11px; letter-spacing: .15em; text-transform: uppercase; color: var(--eh-muted); margin-top: 6px; }
.eh-hero-banner .eh-cd-row, .eh-hero-minimal .eh-cd-row { justify-content: center; }
.eh-no-tilt img { transform: none !important; }
.eh-map-light iframe { filter: none; }
/* Elementor widget wrappers */
.eh-widget { color: var(--eh-text); }
.eh-widget .eh-hero { border-radius: 24px; }
.eh-widget .eh-seatmap-section, .eh-widget .eh-gallery-section, .eh-widget .eh-map-section { padding-left: 0; padding-right: 0; margin-bottom: 0; }
.eh-widget .eh-section-head { padding-left: 0; padding-right: 0; }
.eh-widget .eh-about { margin: 0; }
.eh-widget-transparent .eh-hero { background: transparent; }
.eh-widget-transparent .eh-hero::before, .eh-widget-transparent .eh-hero::after { display: none; }

/* ---------- Featured event card (poster + details + Get tickets) ---------- */
.eh-fcards { display: grid; gap: 28px; }
.eh-fcard { --eh-serif: 'Playfair Display', Georgia, 'Times New Roman', serif; --eh-mono: 'Space Mono', ui-monospace, Menlo, Consolas, monospace;
	position: relative; display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: clamp(24px, 5vw, 80px); align-items: center; padding: clamp(20px, 3vw, 34px);
	border-radius: 30px; border: 1px solid rgba(212,175,55,.32); background: radial-gradient(900px 400px at 15% 0%, rgba(212,175,55,.10), transparent 60%), linear-gradient(135deg, #14110a 0%, #0a0a0b 55%, #0d0b07 100%);
	box-shadow: 0 30px 80px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06); overflow: hidden; }
.eh-fcard::after { content: ''; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(1px 1px at 20% 30%, rgba(245,215,122,.5) 50%, transparent 51%), radial-gradient(1px 1px at 70% 60%, rgba(245,215,122,.4) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 85% 20%, rgba(245,215,122,.5) 50%, transparent 51%), radial-gradient(1px 1px at 40% 85%, rgba(245,215,122,.35) 50%, transparent 51%); opacity: .8; }
.eh-fcard-mirror { grid-template-columns: 1fr minmax(220px, 300px); }
.eh-fcard-mirror .eh-fcard-poster { order: 2; }
.eh-fcard-poster { position: relative; z-index: 1; }
.eh-fcard-poster img { width: 100%; display: block; border-radius: 22px; box-shadow: 0 24px 60px rgba(0,0,0,.65), 0 0 0 1px rgba(255,255,255,.06); cursor: zoom-in; transition: transform .5s ease; }
.eh-fcard-poster img:hover { transform: translateY(-4px) scale(1.01); }
.eh-fcard-body { position: relative; z-index: 1; min-width: 0; }
.eh-fcard-pill { display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px; border-radius: 999px; border: 1px solid rgba(212,175,55,.6); color: var(--eh-gold2); font-family: var(--eh-mono); font-size: 11px; letter-spacing: .28em; text-transform: uppercase; margin-bottom: 22px; background: rgba(212,175,55,.06); }
.eh-fcard-pill i { width: 6px; height: 6px; border-radius: 50%; background: var(--eh-gold); box-shadow: 0 0 10px var(--eh-gold2); animation: eh-pulse 2s infinite; }
.eh-fcard-name { font-family: var(--eh-serif); font-weight: 400; font-size: clamp(34px, 5vw, 66px); line-height: 1; letter-spacing: .01em; text-transform: uppercase; color: #fff; margin: 0 0 14px; background: none; -webkit-text-fill-color: #fff; }
.eh-fcard-title { margin: 0 0 24px; }
.eh-fcard-title span { display: inline-block; font-family: var(--eh-serif); font-style: italic; font-size: clamp(18px, 2.2vw, 26px); color: #fff; padding: 2px 8px; background: linear-gradient(90deg, rgba(212,175,55,.32), rgba(212,175,55,.08)); border-left: 3px solid var(--eh-gold); }
.eh-fcard-facts { list-style: none; margin: 0 0 30px; padding: 0; display: grid; gap: 10px; }
.eh-fcard-facts li { position: relative; padding-left: 20px; font-family: var(--eh-mono); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; color: #cfcfcf; }
.eh-fcard-facts li::before { content: ''; position: absolute; left: 0; top: .5em; width: 7px; height: 7px; border-radius: 50%; background: var(--eh-gold); box-shadow: 0 0 8px rgba(212,175,55,.6); }
.eh-fcard-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.eh-fcard-btn { font-family: var(--eh-mono); letter-spacing: .18em; text-transform: uppercase; font-size: 13px; padding: 16px 30px; }
.eh-fcard-btn.eh-btn-ghost { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.22); }
.eh-fcard-past { filter: saturate(.7); }
.eh-fcard-past .eh-fcard-pill { border-color: rgba(255,255,255,.25); color: #bbb; } .eh-fcard-past .eh-fcard-pill i { background: #888; box-shadow: none; animation: none; }
@media (max-width: 800px) {
	.eh-fcard, .eh-fcard-mirror { grid-template-columns: 1fr; text-align: center; }
	.eh-fcard-mirror .eh-fcard-poster { order: 0; }
	.eh-fcard-poster { max-width: 300px; margin: 0 auto; }
	.eh-fcard-facts li { padding-left: 0; } .eh-fcard-facts li::before { display: none; }
	.eh-fcard-actions { justify-content: center; }
}

.eh-form-sub { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--eh-gold); margin: 8px 0 -2px; }
.eh-promo-box { display:grid; gap:7px; margin:5px 0; padding:12px; border:1px solid rgba(212,175,55,.35); border-radius:12px; background:rgba(212,175,55,.06); }
.eh-promo-box .eh-form-sub { margin:0; }
.eh-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.eh-checkout-form select { width: 100%; background: rgba(0,0,0,.35); border: 1px solid var(--eh-border); border-radius: 12px; padding: 12px 14px; color: #fff; font-size: 14px; outline: none; }
.eh-checkout-form select option { color: #000; }

/* Embedded payment step */
.eh-pay-summary { max-height: 220px; }
.eh-pay-who { display: grid; gap: 8px; margin: 6px 0 14px; padding: 12px 14px; border-radius: 12px; background: rgba(0,0,0,.3); border: 1px solid var(--eh-border); font-size: 13px; }
.eh-pay-who > div { display: grid; gap: 2px; }
.eh-pay-lbl { font-size: 10px; letter-spacing: .18em; text-transform: uppercase; color: var(--eh-gold); }
.eh-pay-who strong { color: #fff; letter-spacing: .06em; }
.eh-pay-who .eh-link { justify-self: start; padding: 2px 0; }
.eh-express-wrap { margin: 4px 0 8px; }
.eh-or { display: flex; align-items: center; gap: 12px; color: var(--eh-muted); font-size: 12px; margin: 10px 0; }
.eh-or::before, .eh-or::after { content: ''; flex: 1; height: 1px; background: var(--eh-border); }
.eh-payment-el { min-height: 120px; margin-bottom: 12px; border-radius: 12px; }
.eh-payment-el:not(.ready) { background: repeating-linear-gradient(90deg, rgba(255,255,255,.04) 0 40%, rgba(255,255,255,.08) 50%, rgba(255,255,255,.04) 60% 100%); background-size: 200% 100%; animation: eh-shimmer 1.4s linear infinite; }
@keyframes eh-shimmer { to { background-position: -200% 0; } }
.eh-pay-error { color: #ff9b9b; font-size: 13px; min-height: 18px; margin-bottom: 8px; }
