1<!DOCTYPE html><html lang="en" class="light"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png"/><link rel="stylesheet" href="/_next/static/chunks/04c6uvqr.rw3l.css" nonce="IovxAYKVL3TnvxJG901U9A==" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" nonce="IovxAYKVL3TnvxJG901U9A==" href="/_next/static/chunks/08j0-.hnrvsil.js"/>
1<script src="/_next/static/chunks/079p5_fs9teg2.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/144~j65021tzh.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0z6od303gcjzb.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/turbopack-0kl3211m~2pkq.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/11-hmxl2mmjt..js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0md2ilb1elzh7.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0ho~4mcu7_9qh.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0e45-q7k7uui2.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/166u_u1jr~j4y.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0w20gzpvgzwud.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/01167vh-d--ie.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0osj~rxb995xf.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0d78up986s16..js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/144cysjdge7g6.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/07c9gmb.7xj6o.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0h8ea52.j.8fg.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/14x..lz37ludd.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0cao1jff.2xc0.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0yjr0l0i~73al.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0q7g6_wzcfs5c.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/0y_jjs_2qrc~w.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<script src="/_next/static/chunks/12dk56r.nvbw3.js" async="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
1<link rel="preload" href="https://www.googletagmanager.com/gtag/js?id=G-Y5KMVM7V84" as="script" nonce="IovxAYKVL3TnvxJG901U9A=="/><meta name="theme-color" content="#42434e"/><meta name="apple-mobile-web-app-capable" content="yes"/><meta name="mobile-web-app-capable" content="yes"/><meta name="apple-mobile-web-app-status-bar-style" content="default"/><link rel="apple-touch-icon" href="https://content.computicket.com/bo/0f13010f-d472-4001-a5ad-afd578e2b805.png"/><link rel="manifest" href="/api/manifest"/><link rel="preconnect" href="https://content.computicket.com"/><link rel="preconnect" href="https://cf-content.computicket.com"/><title>Buy Tickets Online â Events, Travel, Flights & More | Computicket</title><meta name="description" content="Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans."/><meta name="keywords" content="buy tickets online, concert tickets South Africa, cheap flights, bus tickets, theatre shows, hotel bookings, digital vouchers, South Africa events, Computicket, flight bookings South Africa, accommodation deals, gift cards online"/><meta name="application/ld+json" content="{ 2 "@context": "https://schema.org", 3 "@graph": [ 4 { 5 "@type": "WebSite", 6 "@id": "https://computicket.com/#website", 7 "url": "https://computicket.com", 8 "name": "Computicket", 9 "potentialAction": { 10 "@type": "SearchAction", 11 "target": "https://computicket.com/search?q={search_term_string}", 12 "query-input": "required name=search_term_string" 13 } 14 }, 15 { 16 "@type": "Organization", 17 "@id": "https://computicket.com/#organization", 18 "name": "Computicket", 19 "url": "https://computicket.com", 20 "logo": "https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png", 21 "sameAs": [ 22 "https://www.facebook.com/computicket", 23 "https://twitter.com/computicket", 24 "https://www.instagram.com/computicket" 25 ] 26 } 27 ] 28} 29"/><meta property="og:title" content="Buy Tickets Online â Events, Travel, Flights & More | Computicket"/><meta property="og:description" content="Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans."/><meta property="og:site_name" content="Computicket"/><meta property="og:image" content="https://content.computicket.com/bo/2fd8a76e-cb46-4eee-b512-7156cb5a2738.png"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Buy Tickets Online â Events, Travel, Flights & More | Computicket"/><meta name="twitter:description" content="Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans."/><meta name="twitter:image" content="https://content.computicket.com/bo/2fd8a76e-cb46-4eee-b512-7156cb5a2738.png"/><link rel="icon" href="/favicon.ico?favicon.0plg0~6_wnbeu.ico" sizes="48x48" type="image/x-icon"/>
29<script nonce="IovxAYKVL3TnvxJG901U9A=="> 30 (function() { 31 const urlParams = new URLSearchParams(window.location.search); 32 const accessToken = urlParams.get('access_token'); 33 const refreshToken = urlParams.get('refresh_token'); 34 const expiresIn = urlParams.get('expires_in'); 35 const refreshExpiresIn = urlParams.get('refresh_expires_in'); 36 const tokenType = urlParams.get('token_type'); 37 const idToken = urlParams.get('id_token'); 38 39 if (accessToken && refreshToken) { 40 try { 41 const authData = { 42 Customer_login_token: accessToken, 43 Customer_login_refresh_token: refreshToken, 44 expires_in: expiresIn ? parseInt(expiresIn) : 300, 45 refresh_expires_in: refreshExpiresIn ? parseInt(refreshExpiresIn) : 1800, 46 token_type: tokenType || 'Bearer', 47 id_token: idToken 48 }; 49 50 const now = Date.now(); 51 52 try { 53 const base64Url = accessToken.split('.')[1]; 54 const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 55 const jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) { 56 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 57 }).join('')); 58 const payload = JSON.parse(jsonPayload); 59 60 if (payload.exp) { 61 authData.expires_at = payload.exp * 1000; 62 } else { 63 authData.expires_at = now + (authData.expires_in * 1000); 64 } 65 } catch (e) { 66 authData.expires_at = now + (authData.expires_in * 1000); 67 } 68 69 authData.refresh_expires_at = now + (authData.refresh_expires_in * 1000); 70 71 localStorage.removeItem('customer_login_token'); 72 localStorage.setItem('customer_login_token', JSON.stringify(authData)); 73 74 localStorage.setItem('oauth_login_success', JSON.stringify({ 75 timestamp: now, 76 processed: false, 77 tokens: { 78 accessTokenPrefix: accessToken.substring(0, 10) + '...', 79 refreshTokenPrefix: refreshToken.substring(0, 10) + '...' 80 } 81 })); 82 83 const cleanUrl = window.location.protocol + '//' + window.location.host + window.location.pathname; 84 const oauthRedirectUrl = localStorage.getItem('oauth_redirect_url') || '/'; 85 86 localStorage.removeItem('oauth_state'); 87 localStorage.removeItem('oauth_redirect_url'); 88 localStorage.removeItem('oauth_origin'); 89 localStorage.removeItem('oauth_initiated_at'); 90 91 window.history.replaceState({}, document.title, cleanUrl); 92 93 if (oauthRedirectUrl !== '/' && window.location.pathname !== oauthRedirectUrl) { 94 window.location.href = oauthRedirectUrl; 95 } 96 97 } catch (error) { 98 } 99 } 100 })(); 101 </script>
101<script nonce="IovxAYKVL3TnvxJG901U9A=="> 102 (function() { 103 const urlParams = new URLSearchParams(window.location.search); 104 const eventPosToken = urlParams.get('event_pos_token'); 105 const expiresIn = urlParams.get('expires_in'); 106 const refreshToken = urlParams.get('refresh_token'); 107 const refreshExpiresIn = urlParams.get('refresh_expires_in'); 108 109 if (eventPosToken) { 110 try { 111 const now = Date.now(); 112 113 const authData = { 114 access_token: eventPosToken, 115 refresh_token: refreshToken || null, 116 expires_in: expiresIn ? parseInt(expiresIn) : 3600, 117 refresh_expires_in: refreshExpiresIn ? parseInt(refreshExpiresIn) : 86400, 118 isEventPosToken: true 119 }; 120 121 // Calculate expiration times from JWT if possible 122 try { 123 const base64Url = eventPosToken.split('.')[1]; 124 const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/'); 125 const jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) { 126 return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); 127 }).join('')); 128 const payload = JSON.parse(jsonPayload); 129 130 if (payload.exp) { 131 authData.expires_at = payload.exp * 1000; 132 } else { 133 authData.expires_at = now + (authData.expires_in * 1000); 134 } 135 } catch (e) { 136 authData.expires_at = now + (authData.expires_in * 1000); 137 } 138 139 authData.refresh_expires_at = now + (authData.refresh_expires_in * 1000); 140 141 // Store the EventPOS token 142 localStorage.setItem('auth_token', JSON.stringify(authData)); 143 localStorage.setItem('event_pos_mode', 'true'); 144 145 console.log('[EventPOS] Token received and stored successfully'); 146 147 // Clean URL by removing token parameters 148 const cleanUrl = window.location.protocol + '//' + window.location.host + window.location.pathname; 149 window.history.replaceState({}, document.title, cleanUrl); 150 151 } catch (error) { 152 console.error('[EventPOS] Error processing token:', error); 153 } 154 } 155 })(); 156 </script>
156<style nonce="IovxAYKVL3TnvxJG901U9A=="> 157 input[type="text"], 158 input[type="email"], 159 input[type="password"], 160 input[type="number"], 161 input[type="tel"], 162 input[type="url"], 163 input[type="search"], 164 textarea, 165 select { 166 font-size: 16px !important; 167 } 168 169 * { 170 touch-action: manipulation; 171 -webkit-touch-callout: none; 172 } 173 174 button, input, select, textarea { 175 touch-action: manipulation; 176 } 177 178 body[data-page-path="true"] nav[role="navigation"] ul[data-justify="center"] { 179 display: none !important; 180 } 181 182 body[data-page-path="true"] .navbar-sticky nav[role="navigation"] ul[data-justify="center"] { 183 display: flex !important; 184 } 185 186 .venue-map-container { 187 will-change: transform; 188 transform: translateZ(0); 189 } 190 191 .main-content { 192 min-height: calc(100vh - 200px); 193 } 194 195 .animate-slide-up { 196 animation: slideUp 0.3s ease-out; 197 } 198 199 @keyframes slideUp { 200 from { 201 transform: translateY(100%); 202 } 203 to { 204 transform: translateY(0); 205 } 206 } 207 208 .pwa-install-button { 209 transition: all 0.2s ease; 210 } 211 212 .pwa-install-button:hover { 213 transform: scale(1.05); 214 box-shadow: 0 4px 12px rgba(0,0,0,0.15); 215 } 216 217 .pwa-install-button:active { 218 transform: scale(0.98); 219 } 220 221 @media (max-width: 640px) { 222 #debug-console { 223 top: 50px; 224 right: 5px; 225 left: 5px; 226 width: auto; 227 max-height: 300px; 228 } 229 } 230 </style>
230<script src="/_next/static/chunks/03~yq9q893hmn.js" noModule="" nonce="IovxAYKVL3TnvxJG901U9A=="></script>
230</head><body class="bg-center min-h-screen flex flex-col"><div hidden=""><!--$--><!--/$--></div><!--$--><!--/$--><header class="jsx-18eda90d62bf2fdd"><div role="banner" aria-label="Announcement" style="background:#141a20;color:#ffffff" class="jsx-18eda90d62bf2fdd relative flex w-full items-center justify-center px-3 py-1.5 backdrop-blur-xl sm:px-6"><div class="jsx-18eda90d62bf2fdd flex items-center justify-center gap-x-2 w-full sm:w-auto sm:max-w-[80%]"><p class="jsx-18eda90d62bf2fdd text-[11px] sm:text-xs md:text-sm text-white truncate max-w-[75%] sm:max-w-none"><a class="relative inline-flex items-center tap-highlight-transparent outline-none data-[focus-visible=true]:z-10 data-[focus-visible=true]:outline-2 data-[focus-visible=true]:outline-focus data-[focus-visible=true]:outline-offset-2 text-medium no-underline hover:opacity-hover active:opacity-disabled transition-opacity text-inherit" href="#" tabindex="0" data-react-aria-pressable="true" role="link">#AccessInTheWild</a></p></div></div><div class="jsx-18eda90d62bf2fdd navbar-wrapper relative"><nav style="--navbar-height:4rem;background-color:rgba(255,255,255,1)" role="navigation" aria-label="Main Navigation" class="flex z-40 w-full h-auto items-center justify-center data-[menu-open=true]:border-none sticky top-0 inset-x-0 border-b border-divider backdrop-blur-lg data-[menu-open=true]:backdrop-blur-xl backdrop-saturate-150 bg-background/70 transition-all duration-200"><header class="z-40 flex px-6 gap-4 w-full flex-row relative flex-nowrap items-center justify-between h-[var(--navbar-height)] max-w-full"><ul class="flex gap-4 h-full flex-row flex-nowrap items-center data-[justify=start]:justify-start data-[justify=start]:flex-grow data-[justify=start]:basis-0 data-[justify=center]:justify-center data-[justify=end]:justify-end data-[justify=end]:flex-grow data-[justify=end]:basis-0 sm:hidden" data-justify="start"><button class="group flex items-center justify-center w-6 h-full rounded-small tap-highlight-transparent outline-none data-[focus-visible=true]:z-10 data-[focus-visible=true]:outline-2 data-[focus-visible=true]:outline-focus data-[focus-visible=true]:outline-offset-2 transition-all duration-300 hover:scale-110 active:scale-95" type="button" tabindex="0" data-react-aria-pressable="true" aria-label="Open menu" aria-pressed="false" style="color:#42434E"><span class="sr-only">open navigation menu</span><div class="jsx-18eda90d62bf2fdd flex flex-col justify-center items-center w-5 h-5 relative"><span class="jsx-18eda90d62bf2fdd block h-0.5 w-5 bg-current transform transition-all duration-300 ease-out absolute top-[3px]"></span><span class="jsx-18eda90d62bf2fdd block h-0.5 w-5 bg-current transition-all duration-300 ease-out absolute top-1/2 -translate-y-1/2 opacity-100 scale-100"></span><span class="jsx-18eda90d62bf2fdd block h-0.5 w-5 bg-current transform transition-all duration-300 ease-out absolute bottom-[3px]"></span></div></button></ul><div class="flex basis-0 flex-row flex-grow flex-nowrap justify-start bg-transparent items-center no-underline text-medium whitespace-nowrap box-border"><div role="link" aria-label="Computicket Home" class="jsx-18eda90d62bf2fdd flex items-center transition-opacity hover:opacity-90 cursor-pointer h-full"><div style="height:auto;width:auto;min-width:120px" class="jsx-18eda90d62bf2fdd relative flex items-center"><img alt="Computicket" width="166" height="40" decoding="async" data-nimg="1" class="object-contain" style="color:transparent;max-height:40px;width:auto" src="https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png"/></div></div></div><ul class="h-full flex-row flex-nowrap items-center data-[justify=start]:justify-start data-[justify=start]:flex-grow data-[justify=start]:basis-0 data-[justify=center]:justify-center data-[justify=end]:justify-end data-[justify=end]:flex-grow data-[justify=end]:basis-0 hidden sm:flex gap-4 mx-4" data-justify="center" data-sticky="false" data-page-path="false"><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><div style="color:#42434E" role="link" tabindex="0" class="jsx-18eda90d62bf2fdd relative px-3 py-2 group transition-all duration-300 hover:bg-gray-50 rounded-md cursor-pointer font-medium"><span class="jsx-18eda90d62bf2fdd relative z-10 transition-transform hover:scale-105">Home</span><span style="background-color:#e71f3e" aria-hidden="true" class="jsx-18eda90d62bf2fdd absolute bottom-0 left-1/4 right-1/4 h-0.5 rounded-full opacity-0 transform scale-x-0 transition-all duration-300 group-hover:opacity-40 group-hover:scale-x-100"></span></div></li><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><div style="color:#42434E" role="link" tabindex="0" class="jsx-18eda90d62bf2fdd relative px-3 py-2 group transition-all duration-300 hover:bg-gray-50 rounded-md cursor-pointer font-medium"><span class="jsx-18eda90d62bf2fdd relative z-10 transition-transform hover:scale-105">Events</span><span style="background-color:#e71f3e" aria-hidden="true" class="jsx-18eda90d62bf2fdd absolute bottom-0 left-1/4 right-1/4 h-0.5 rounded-full opacity-0 transform scale-x-0 transition-all duration-300 group-hover:opacity-40 group-hover:scale-x-100"></span></div></li><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><div style="color:#42434E" role="link" tabindex="0" class="jsx-18eda90d62bf2fdd relative px-3 py-2 group transition-all duration-300 hover:bg-gray-50 rounded-md cursor-pointer font-medium"><span class="jsx-18eda90d62bf2fdd relative z-10 transition-transform hover:scale-105">Buses</span><span style="background-color:#e71f3e" aria-hidden="true" class="jsx-18eda90d62bf2fdd absolute bottom-0 left-1/4 right-1/4 h-0.5 rounded-full opacity-0 transform scale-x-0 transition-all duration-300 group-hover:opacity-40 group-hover:scale-x-100"></span></div></li><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><div style="color:#42434E" role="link" tabindex="0" class="jsx-18eda90d62bf2fdd relative px-3 py-2 group transition-all duration-300 hover:bg-gray-50 rounded-md cursor-pointer font-medium"><span class="jsx-18eda90d62bf2fdd relative z-10 transition-transform hover:scale-105">Flights</span><span style="background-color:#e71f3e" aria-hidden="true" class="jsx-18eda90d62bf2fdd absolute bottom-0 left-1/4 right-1/4 h-0.5 rounded-full opacity-0 transform scale-x-0 transition-all duration-300 group-hover:opacity-40 group-hover:scale-x-100"></span></div></li><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><div style="color:#42434E" role="link" tabindex="0" class="jsx-18eda90d62bf2fdd relative px-3 py-2 group transition-all duration-300 hover:bg-gray-50 rounded-md cursor-pointer font-medium"><span class="jsx-18eda90d62bf2fdd relative z-10 transition-transform hover:scale-105">Airtime & Vouchers</span><span style="background-color:#e71f3e" aria-hidden="true" class="jsx-18eda90d62bf2fdd absolute bottom-0 left-1/4 right-1/4 h-0.5 rounded-full opacity-0 transform scale-x-0 transition-all duration-300 group-hover:opacity-40 group-hover:scale-x-100"></span></div></li><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><div style="color:#42434E" role="link" tabindex="0" class="jsx-18eda90d62bf2fdd relative px-3 py-2 group transition-all duration-300 hover:bg-gray-50 rounded-md cursor-pointer font-medium"><span class="jsx-18eda90d62bf2fdd relative z-10 transition-transform hover:scale-105">Stay</span><span style="background-color:#e71f3e" aria-hidden="true" class="jsx-18eda90d62bf2fdd absolute bottom-0 left-1/4 right-1/4 h-0.5 rounded-full opacity-0 transform scale-x-0 transition-all duration-300 group-hover:opacity-40 group-hover:scale-x-100"></span></div></li></ul><ul class="flex h-full flex-row flex-nowrap items-center data-[justify=start]:justify-start data-[justify=start]:flex-grow data-[justify=start]:basis-0 data-[justify=center]:justify-center data-[justify=end]:justify-end data-[justify=end]:flex-grow data-[justify=end]:basis-0 gap-2" data-justify="end"><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><div class="relative basket-icon-container"><button data-disabled="true" type="button" disabled="" data-react-aria-pressable="true" aria-label="Basket is empty" class="z-0 group inline-flex items-center justify-center box-border appearance-none select-none whitespace-nowrap font-normal subpixel-antialiased overflow-hidden tap-highlight-transparent transform-gpu data-[pressed=true]:scale-[0.97] outline-none data-[focus-visible=true]:z-10 data-[focus-visible=true]:outline-2 data-[focus-visible=true]:outline-focus data-[focus-visible=true]:outline-offset-2 text-small gap-2 rounded-medium opacity-disabled pointer-events-none px-0 !gap-0 transition-transform-colors-opacity motion-reduce:transition-none bg-transparent text-default-foreground data-[hover=true]:bg-default/40 min-w-10 w-10 h-10 transition-transform hover:scale-110 relative"><span></span></button></div></li><li class="text-medium whitespace-nowrap box-border list-none data-[active=true]:font-semibold"><button type="button" tabindex="0" data-react-aria-pressable="true" aria-label="Login" class="z-0 group relative justify-center box-border appearance-none select-none whitespace-nowrap font-normal subpixel-antialiased overflow-hidden tap-highlight-transparent transform-gpu data-[pressed=true]:scale-[0.97] outline-none data-[focus-visible=true]:z-10 data-[focus-visible=true]:outline-2 data-[focus-visible=true]:outline-focus data-[focus-visible=true]:outline-offset-2 h-10 text-small roun
230ded-medium [&>svg]:max-w-[theme(spacing.8)] transition-transform-colors-opacity motion-reduce:transition-none bg-transparent text-default-foreground data-[hover=true]:bg-default/40 flex items-center gap-2 px-2 py-1.5 min-w-0"><span></span><span style="color:#42434E" class="jsx-18eda90d62bf2fdd text-sm font-medium hidden sm:inline">Login</span></button></li></ul></header></nav></div></header><div class="flex-grow main-content-wrapper"><main class="flex-grow main-content"><main class="min-h-screen bg-gray-50"><section class="h-52 sm:h-72 md:h-70 relative overflow-hidden bg-gradient-to-r from-gray-300 to-gray-400" aria-label="Loading banner"><div class="absolute right-0 bottom-0 opacity-10"><div class="w-32 h-32 sm:w-40 sm:h-40 md:w-52 md:h-52 lg:w-64 lg:h-64 bg-white opacity-10 rounded-full"></div></div><div class="container mx-auto px-4 py-8 sm:py-12 md:py-16 text-white relative z-10"><div class="max-w-4xl"><div class="h-8 sm:h-10 md:h-14 bg-white bg-opacity-20 rounded w-3/4 max-w-md mb-3 sm:mb-4"></div><div class="h-4 sm:h-5 md:h-6 bg-white bg-opacity-20 rounded w-full max-w-2xl"></div></div></div></section><div id="faq-content" class="container mx-auto px-4 py-8" aria-busy="true" aria-live="polite"><nav aria-label="Breadcrumb skeleton"><div class="mb-6 flex items-center gap-2"><div class="h-4 bg-gray-200 rounded w-16"></div><div class="h-4 bg-gray-200 rounded-full w-4 flex items-center justify-center"><div class="w-2 h-2 border-r-2 border-t-2 border-gray-300 transform rotate-45"></div></div><div class="h-4 bg-gray-200 rounded w-16"></div></div></nav><div class="grid grid-cols-1 lg:grid-cols-4 gap-8"><aside class="hidden lg:block lg:col-span-1"><div class="flex flex-col bg-white shadow-medium rounded-large sticky top-4 p-3"><div class="h-7 bg-gray-200 rounded w-32 mb-4"></div><div class="space-y-2 mb-6"><div class="h-10 bg-gray-200 rounded w-full"></div><div class="h-10 bg-gray-200 rounded w-full"></div><div class="h-10 bg-gray-200 rounded w-full"></div><div class="h-10 bg-gray-200 rounded w-full"></div></div><hr class="my-4 bg-gray-200 h-px border-0"/><div class="h-6 bg-gray-200 rounded w-28 mb-3"></div><div class="flex flex-wrap gap-2 max-h-[200px] overflow-hidden"><div class="h-7 bg-gray-200 rounded-full w-24 mb-2"></div><div class="h-7 bg-gray-200 rounded-full w-24 mb-2"></div><div class="h-7 bg-gray-200 rounded-full w-24 mb-2"></div><div class="h-7 bg-gray-200 rounded-full w-24 mb-2"></div><div class="h-7 bg-gray-200 rounded-full w-24 mb-2"></div></div></div></aside><div class="lg:col-span-3"><div class="lg:hidden mb-4 flex gap-2"><div class="flex-1 h-10 bg-gray-200 rounded"></div><div class="h-10 w-20 bg-gray-200 rounded"></div></div><div class="bg-white shadow-medium rounded-large"><div class="p-3"><div class="flex justify-between items-center flex-wrap gap-3 mb-4"><div><div class="h-7 bg-gray-200 rounded w-40 mb-2"></div><div class="h-4 bg-gray-200 rounded w-32"></div></div><div class="flex gap-2 items-center"><div class="hidden lg:block"><div class="h-8 bg-gray-200 rounded w-32"></div></div><div class="h-8 bg-gray-200 rounded w-24"></div></div></div><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><hr class="h-px bg-gray-200 border-0 my-1"/><div class="border rounded-lg mb-2 px-4 py-4"><div class="flex justify-between"><div class="h-6 bg-gray-200 rounded w-3/4"></div><div class="h-6 w-6 bg-gray-200 rounded-full"></div></div></div><nav class="mt-6 flex justify-center"><div class="flex items-center gap-1"><div class="h-9 w-9 bg-gray-200 rounded-md"></div><div class="h-9 w-9 bg-gray-300 rounded-md"></div><div class="h-9 w-9 bg-gray-200 rounded-md"></div><div class="h-9 w-9 bg-gray-200 rounded-md"></div><div class="h-9 w-9 bg-gray-200 rounded-md"></div><div class="h-9 w-9 bg-gray-200 rounded-md"></div><div class="h-9 w-9 bg-gray-200 rounded-md"></div></div></nav></div></div><section class="mt-8"><div class="bg-white shadow-medium rounded-large p-6"><div class="flex flex-col md:flex-row items-center gap-6"><div class="rounded-full p-4 bg-gray-100 w-16 h-16 shrink-0 flex items-center justify-center"><div class="w-8 h-8 bg-gray-200 rounded-full"></div></div><div class="text-center md:text-left"><div class="h-7 bg-gray-200 rounded w-64 mb-2"></div><div class="h-4 bg-gray-200 rounded w-full mb-1"></div><div class="h-4 bg-gray-200 rounded w-4/5"></div></div><div class="md:ml-auto shrink-0"><div class="h-10 bg-gray-200 rounded w-36"></div></div></div></div></section></div></div></div></main><!--$--><!--/$--></main></div><footer class="w-full pt-10 pb-6" style="background-color:#E9EDF1;color:#42434E" role="contentinfo" aria-label="Site footer"><div class="container mx-auto px-4"><div class="grid grid-cols-1 md:grid-cols-2 gap-8 mb-8"><div class="flex flex-col"><div class="flex items-center mb-3"><div class="mr-3 flex items-center"><span class="inline-block w-8 h-8" style="background-color:#42434E;-webkit-mask-image:url(https://content.computicket.com/bo/5b27bbfc-2046-4ca7-98ca-e909efa1dc77.svg);mask-image:url(https://content.computicket.com/bo/5b27bbfc-2046-4ca7-98ca-e909efa1dc77.svg);-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center" aria-hidden="true"></span></div><span class="text-lg font-medium" style="color:#42434E">Computicket<!-- --> (Pty) Ltd - <!-- -->2026</span></div><div class="flex space-x-4 pt-2"><a href="https://www.facebook.com/Computicket" class="transition-colors" aria-label="Facebook" style="color:#42434E" target="_blank" rel="noopener noreferrer"><span></span></a><a href="https://x.com/Computicket" class="transition-colors" aria-label="X (formerly Twitter)" style="color:#42434E" target="_blank" rel="noopener noreferrer"><span></span></a><a href="https://www.instagram.com/computicket/" class="transition-colors" aria-label="Instagram" style="color:#42434E" target="_blank" rel="noopener noreferrer"><span></span></a></div></div><div class="flex flex-col"><h2 class="font-semibold text-base mb-4" style="color:#42434E" id="contact-heading">Contact Us</h2><ul class="space-y-3" aria-labelledby="contact-heading"><li class="flex items-center space-x-3 text-sm"><span></span><a href="tel:0861915800" style="color:#42434E">0861 915 800</a></li><li class="flex items-center space-x-3 text-sm"><span></span><a href="mailto:[email protected]" class="hover:underline" style="color:#42434E">[email protected]</a></li><li class="flex items-start space-x-3 text-sm"><span></span><a href="https://www.google.co.za/maps/place/Computicket+(Pty)+Ltd/@-26.1427324,28.0059962,17z/data=!3m1!4b1!4m6!3m5!1s0x1e950b7b1a140fb9:0x5e57df13a1016edd!8m2!3d-26.1427324!4d28.0085711!16s%2Fg%2F1td6vhx3?hl=en&entry=ttu&g_ep=EgoyMDI1MDIyNi4xIKXMDSoJLDEwMjExNDUzSAFQAw%3D%3D" target="_blank" rel="noopener noreferrer" style="color:#42434E" class="not-italic hover:underline"><address class="not-italic">Computicket House, Greenacres Office Park, Cnr Victory and Rustenburg Roads, Victory Park 2195</address></a></li></ul></div></div><nav aria-label="Legal links"><div class="flex flex-wrap gap-y-2 gap-x-6 justify-center border-t py-5 border-gray-300 text-xs"><a class="hover:underline" style="color:#42434E" href="/legal">Legal Terms</a><a class="hover:underline" style="color:#42434E" href="/faq">FAQs</a><a class="hover:underline" style="color:#42434E" href="/contact">Contact Us</a><a class="hover:underline" style="color:#42434E" href="/find-a-store">Find A Store</a></div></nav><div class="mt-4 text-center"><p class="text-xs" style="color:#42434E">Computicket (Pty) Ltd - 2025</p></div></div></footer>
230<script nonce="IovxAYKVL3TnvxJG901U9A=="> 231 if ('serviceWorker' in navigator) { 232 window.addEventListener('load', async () => { 233 try { 234 const existingRegistrations = await navigator.serviceWorker.getRegistrations(); 235 236 const oldRegistrations = existingRegistrations.filter(reg => { 237 return reg.scope.includes('/sw.js') || 238 (reg.active && reg.active.scriptURL && reg.active.scriptURL.includes('/sw.js')) || 239 (!reg.scope.includes('/api/sw') && reg.scope !== window.location.origin + '/'); 240 }); 241 242 if (oldRegistrations.length > 0) { 243 for (const registration of oldRegistrations) { 244 try { 245 await registration.unregister(); 246 } catch (error) { 247 // Silent error handling 248 } 249 } 250 } 251 252 if ('caches' in window) { 253 try { 254 const cacheNames = await caches.keys(); 255 256 const legacyCacheNames = cacheNames.filter(name => 257 name.includes('sw-cache') || 258 name.includes('workbox') || 259 name.includes('precache') || 260 (name.includes('runtime-cache') && !name.includes('computicket')) 261 ); 262 263 if (legacyCacheNames.length > 0) { 264 for (const cacheName of legacyCacheNames) { 265 await caches.delete(cacheName); 266 } 267 } 268 } catch (error) { 269 // Silent error handling 270 } 271 } 272 273 const registration = await navigator.serviceWorker.register('/api/sw', { 274 scope: '/', 275 updateViaCache: 'none' 276 }); 277 278 registration.addEventListener('updatefound', () => { 279 const newWorker = registration.installing; 280 281 newWorker.addEventListener('statechange', () => { 282 if (newWorker.state === 'installed') { 283 if (navigator.serviceWorker.controller) { 284 window.swUpdateAvailable = true; 285 } 286 } 287 }); 288 }); 289 290 setInterval(() => { 291 registration.update().catch(err => { 292 // Silent error handling 293 }); 294 }, 60000); 295 296 window.swRegistration = registration; 297 window.swRegistrationTime = new Date().toISOString(); 298 299 } catch (error) { 300 window.swRegistrationError = error; 301 } 302 }); 303 304 navigator.serviceWorker.addEventListener('message', (event) => { 305 if (event.data && event.data.type === 'NEW_VERSION') { 306 window.swVersion = event.data.version; 307 window.swUpdateTime = event.data.timestamp; 308 } 309 }); 310 311 navigator.serviceWorker.addEventListener('controllerchange', () => { 312 window.swControllerChanged = true; 313 }); 314 315 } else { 316 window.swNotSupported = true; 317 } 318 </script>
318<script nonce="IovxAYKVL3TnvxJG901U9A=="> 319 // Simplified PWA event handling - user actions only 320 (function() { 321 let deferredPrompt = null; 322 323 // Handle beforeinstallprompt event for Android/Desktop 324 window.addEventListener('beforeinstallprompt', (e) => { 325 e.preventDefault(); 326 deferredPrompt = e; 327 window.deferredPrompt = deferredPrompt; 328 }); 329 330 // App installed event - only log user-confirmed installations 331 window.addEventListener('appinstalled', () => { 332 // Hide React modal if shown 333 if (window.hideAndroidInstallModal && typeof window.hideAndroidInstallModal === 'function') { 334 window.hideAndroidInstallModal(); 335 } 336 337 // Log successful installation via fetch 338 if (window.fetch) { 339 fetch('/api/logger', { 340 method: 'POST', 341 headers: { 'Content-Type': 'application/json' }, 342 body: JSON.stringify({ 343 level: 'info', 344 message: 'PWA Install Successful - Android', 345 action: 'install_completed', 346 installEvent: 'browser_install_success', 347 source: 'pwa-install', 348 installDetails: { 349 platform: 'android', 350 installMethod: 'browser_confirmed', 351 completionType: 'appinstalled_event' 352 }, 353 userContext: { 354 sessionId: 'unknown', 355 userAgent: navigator.userAgent || 'unknown' 356 }, 357 metadata: { 358 timestamp: new Date().toISOString(), 359 loggedFromClient: true 360 } 361 }) 362 }).catch(() => {}); // Silent fail 363 } 364 365 localStorage.setItem('pwa-app-installed', 'true'); 366 deferredPrompt = null; 367 window.deferredPrompt = null; 368 }); 369 })(); 370 </script>
370<script src="/_next/static/chunks/08j0-.hnrvsil.js" nonce="IovxAYKVL3TnvxJG901U9A==" id="_R_" async=""></script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">(self.__next_f=self.__next_f||[]).push([0])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"1:\"$Sreact.fragment\"\n3:I[339756,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\"]\n4:I[837457,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\"]\n5:I[347257,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"ClientPageRoot\"]\n6:I[963883,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\",\"/_next/static/chunks/0yjr0l0i~73al.js\",\"/_next/static/chunks/0q7g6_wzcfs5c.js\"],\"default\"]\n7:I[897367,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"OutletBoundary\"]\n8:\"$Sreact.suspense\"\nb:I[897367,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"ViewportBoundary\"]\nd:I[897367,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..
370js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,".js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"MetadataBoundary\"]\nf:I[168027,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/04c6uvqr.rw3l.css\",\"style\",{\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}]\n"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"faq\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"faq\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/04c6uvqr.rw3l.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/11-hmxl2mmjt..js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0md2ilb1elzh7.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0e45-q7k7uui2.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/166u_u1jr~j4y.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/0w20gzpvgzwud.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/01167vh-d--ie.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/0osj~rxb995xf.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/0d78up986s16..js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/chunks/144cysjdge7g6.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/_next/static/chunks/14x..lz37ludd.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-13\",{\"src\":\"/_next/static/chunks/0cao1jff.2xc0.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}]],\"$L2\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":null}}],[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0yjr0l0i~73al.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0q7g6_wzcfs5c.js\",\"async\":true,\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}]],[\"$\",\"$L7\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@9\"}]}]]}],{},null,false,null]},null,false,\"$@a\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lb\",null,{\"children\":\"$Lc\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Ld\",null,{\"children\":[\"$\",\"$8\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Le\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$f\",[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/04c6uvqr.rw3l.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\"}]]],\"S\":false,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"D8Ybx9kwjCBHON-jhEJuM\"}\n"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"10:[]\na:\"$W10\"\nc:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"15:I[27201,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"IconMark\"]\n11:Tdca,"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"\n (function() {\n const urlParams = new URLSearchParams(window.location.search);\n const accessToken = urlParams.get('access_token');\n const refreshToken = urlParams.get('refresh_token');\n const expiresIn = urlParams.get('expires_in');\n const refreshExpiresIn = urlParams.get('refresh_expires_in');\n const tokenType = urlParams.get('token_type');\n const idToken = urlParams.get('id_token');\n \n if (accessToken \u0026\u0026 refreshToken) {\n try {\n const authData = {\n Customer_login_token: accessToken,\n Customer_login_refresh_token: refreshToken,\n expires_in: expiresIn ? parseInt(expiresIn) : 300,\n refresh_expires_in: refreshExpiresIn ? parseInt(refreshExpiresIn) : 1800,\n token_type: tokenType || 'Bearer',\n id_token: idToken\n };\n \n const now = Date.now();\n \n try {\n const base64Url = accessToken.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n const payload = JSON.parse(jsonPayload);\n \n if (payload.exp) {\n authData.expires_at = payload.exp * 1000;\n } else {\n authData.expires_at = now + (authData.expires_in * 1000);\n }\n } catch (e) {\n authData.expires_at = now + (authData.expires_in * 1000);\n }\n \n authData.refresh_expires_at = now + (authData.refresh_expires_in * 1000);\n \n localStorage.removeItem('customer_login_token');\n localStorage.setItem('customer_login_token', JSON.stringify(authData));\n \n localStorage.setItem('oauth_login_success', JSON.stringify({\n timestamp: now,\n processed: false,\n tokens: {\n accessTokenPrefix: accessToken.substring(0, 10) + '...',\n refreshTokenPrefix: refreshToken.substring(0, 10) + '...'\n }\n }));\n \n const cleanUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;\n const oauthRedirectUrl = localStorage.getItem('oauth_redirect_url') || '/';\n \n localStorage.removeItem('oauth_state');\n localStorage.removeItem('oauth_redirect_url');\n localStorage.removeItem('oauth_origin');\n localStorage.removeItem('oauth_initiated_at');\n \n window.history.replaceState({}, document.title, cleanUrl);\n \n if (oauthRedirectUrl !== '/' \u0026\u0026 window.location.pathname !== oauthRedirectUrl) {\n window.location.href = oauthRedirectUrl;\n }\n \n } catch (error) {\n }\n }\n })();\n "])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"2:[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"light\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"meta\",null,{\"name\":\"theme-color\",\"content\":\"#42434e\"}],[[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"mobile-web-app-capable\",\"content\":\"yes\"}],[\"$\",\"meta\",null,{\"name\":\"apple-mobile-web-app-status-bar-style\",\"content\":\"default\"}],[\"$\",\"link\",null,{\"rel\":\"apple-touch-icon\",\"href\":\"https://content.computicket.com/bo/0f13010f-d472-4001-a5ad-afd578e2b805.png\"}],[\"$\",\"link\",null,{\"rel\":\"manifest\",\"href\":\"/api/manifest\"}]],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://content.computicket.com\"}],[\"$\",\"link\",null,{\"rel\":\"preconnect\",\"href\":\"https://cf-content.computicket.com\"}],[\"$\",\"script\",null,{\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$11\"}}],\"$L12\",\"$L13\"]}],\"$L14\"]}]\n9:null\n"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"e:[[\"$\",\"title\",\"0\",{\"children\":\"Buy Tickets Online â Events, Travel, Flights \u0026 More | Computicket\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"keywords\",\"content\":\"buy tickets online, concert tickets South Africa, cheap flights, bus tickets, theatre shows, hotel bookings, digital vouchers, South Africa events, Computicket, flight bookings South Africa, accommodation deals, gift cards online\"}],[\"$\",\"meta\",\"3\",{\"name\":\"application/ld+json\",\"content\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@graph\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"@id\\\": \\\"https://computicket.com/#website\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"potentialAction\\\": {\\r\\n \\\"@type\\\": \\\"SearchAction\\\",\\r\\n \\\"target\\\": \\\"https://computicket.com/search?q={search_term_string}\\\",\\r\\n \\\"query-input\\\": \\\"required name=search_term_string\\\"\\r\\n }\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"Organization\\\",\\r\\n \\\"@id\\\": \\\"https://computicket.com/#organization\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\",\\r\\n \\\"logo\\\": \\\"https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png\\\",\\r\\n \\\"sameAs\\\": [\\r\\n \\\"https://www.facebook.com/computicket\\\",\\r\\n \\\"https://twitter.com/computicket\\\",\\r\\n \\\"https://www.instagram.com/computicket\\\"\\r\\n ]\\r\\n }\\r\\n ]\\r\\n}\\r\\n\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:title\",\"content\":\"Buy Tickets Online â Events, Travel, Flights \u0026 More | Computicket\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:description\",\"content\":\"Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans.\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:site_name\",\"content\":\"Computicket\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image\",\"content\":\"https://content.computicket.com/bo/2fd8a76e-cb46-4eee-b512-7156cb5a2738.png\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"9\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"10\",{\"name\":\"twitter:title\",\"content\":\"Buy Tickets Online â Events, Travel, Flights \u0026 More | Computicket\"}],[\"$\",\"meta\",\"11\",{\"name\":\"twitter:description\",\"content\":\"Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans.\"}],[\"$\",\"meta\",\"12\",{\"name\":\"twitter:image\",\"content\":\"https://content.computicket.com/bo/2fd8a76e-cb46-4eee-b512-7156cb5a2738.png\"}],[\"$\",\"link\",\"13\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.0plg0~6_wnbeu.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"$L15\",\"14\",{}]]\n"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"18:I[89566,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\"]\n16:Ta90,"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"\n (function() {\n const urlParams = new URLSearchParams(window.location.search);\n const eventPosToken = urlParams.get('event_pos_token');\n const expiresIn = urlParams.get('expires_in');\n const refreshToken = urlParams.get('refresh_token');\n const refreshExpiresIn = urlParams.get('refresh_expires_in');\n \n if (eventPosToken) {\n try {\n const now = Date.now();\n \n const authData = {\n access_token: eventPosToken,\n refresh_token: refreshToken || null,\n expires_in: expiresIn ? parseInt(expiresIn) : 3600,\n refresh_expires_in: refreshExpiresIn ? parseInt(refreshExpiresIn) : 86400,\n isEventPosToken: true\n };\n \n // Calculate expiration times from JWT if possible\n try {\n const base64Url = eventPosToken.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n const payload = JSON.parse(jsonPayload);\n \n if (payload.exp) {\n authData.expires_at = payload.exp * 1000;\n } else {\n authData.expires_at = now + (authData.expires_in * 1000);\n }\n } catch (e) {\n authData.expires_at = now + (authData.expires_in * 1000);\n }\n \n authData.refresh_expires_at = now + (authData.refresh_expires_in * 1000);\n \n // Store the EventPOS token\n localStorage.setItem('auth_token', JSON.stringify(authData));\n localStorage.setItem('event_pos_mode', 'true');\n \n console.log('[EventPOS] Token received and stored successfully');\n \n // Clean URL by removing token parameters\n const cleanUrl = window.location.protocol + '//' + window.location.host + window.location.pathname;\n window.history.replaceState({}, document.title, cleanUrl);\n \n } catch (error) {\n console.error('[EventPOS] Error processing token:', error);\n }\n }\n })();\n "])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"12:[\"$\",\"script\",null,{\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$16\"}}]\n17:T7df,"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"\n input[type=\"text\"],\n input[type=\"email\"],\n input[type=\"password\"],\n input[type=\"number\"],\n input[type=\"tel\"],\n input[type=\"url\"],\n input[type=\"search\"],\n textarea,\n select {\n font-size: 16px !important;\n }\n \n * {\n touch-action: manipulation;\n -webkit-touch-callout: none;\n }\n \n button, input, select, textarea {\n touch-action: manipulation;\n }\n \n body[data-page-path=\"true\"] nav[role=\"navigation\"] ul[data-justify=\"center\"] {\n display: none !important;\n }\n \n body[data-page-path=\"true\"] .navbar-sticky nav[role=\"navigation\"] ul[data-justify=\"center\"] {\n display: flex !important;\n }\n\n .venue-map-container {\n will-change: transform;\n transform: translateZ(0);\n }\n\n .main-content {\n min-height: calc(100vh - 200px);\n }\n\n .animate-slide-up {\n animation: slideUp 0.3s ease-out;\n }\n\n @keyframes slideUp {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n }\n\n .pwa-install-button {\n transition: all 0.2s ease;\n }\n\n .pwa-install-button:hover {\n transform: scale(1.05);\n box-shadow: 0 4px 12px rgba(0,0,0,0.15);\n }\n\n .pwa-install-button:active {\n transform: scale(0.98);\n }\n\n @media (max-width: 640px) {\n #debug-console {\n top: 50px;\n right: 5px;\n left: 5px;\n width: auto;\n max-height: 300px;\n }\n }\n "])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"13:[\"$\",\"style\",null,{\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$17\"}}]\n"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"14:[\"$\",\"body\",null,{\"className\":\"bg-center min-h-screen flex flex-col\",\"children\":[[\"$\",\"$L18\",null,{\"initialSiteConfig\":{\"menuItems\":[{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/bf89b9e1-4bfb-46b9-9b18-30bfd1119ad5.jpg\",\"displayText\":\"Home\",\"page\":{\"internalDescription\":\"Home Prod\",\"route\":\"/page/home\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-homePage\"}],\"seo\":{\"title\":\"Buy Tickets Online â Events, Travel, Flights \u0026 More | Computicket\",\"description\":\"Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans.\",\"keywords\":\"buy tickets online, concert tickets South Africa, cheap flights, bus tickets, theatre shows, hotel bookings, digital vouchers, South Africa events, Computicket, flight bookings South Africa, accommodation deals, gift cards online\",\"ogImage\":\"https://content.computicket.com/bo/2fd8a76e-cb46-4eee-b512-7156cb5a2738.png\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@graph\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"@id\\\": \\\"https://computicket.com/#website\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"potentialAction\\\": {\\r\\n \\\"@type\\\": \\\"SearchAction\\\",\\r\\n \\\"target\\\": \\\"https://computicket.com/search?q={search_term_string}\\\",\\r\\n \\\"query-input\\\": \\\"required name=search_term_string\\\"\\r\\n }\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"Organization\\\",\\r\\n \\\"@id\\\": \\\"https://computicket.com/#organization\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\",\\r\\n \\\"logo\\\": \\\"https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png\\\",\\r\\n \\\"sameAs\\\": [\\r\\n \\\"https://www.facebook.com/computicket\\\",\\r\\n \\\"https://twitter.com/computicket\\\",\\r\\n \\\"https://www.instagram.com/computicket\\\"\\r\\n ]\\r\\n }\\r\\n ]\\r\\n}\\r\\n\"},\"featuredItems\":[]}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/d0565b7b-f9c7-4372-8825-08e6ee74fecc.jpg\",\"displayText\":\"Events\",\"page\":{\"internalDescription\":\"Events Prod\",\"route\":\"/event\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-eventHome\"}],\"seo\":{\"title\":\"Buy Tickets Online for Events, Concerts, Theatre \u0026 Sport | Computicket\",\"description\":\"Get tickets to the hottest live events in South Africa â concerts, theatre, sport, festivals and more. Secure your seat today with Computicket.\",\"keywords\":\"event tickets South Africa, concert tickets online, buy theatre tickets, sports tickets South Africa, live show tickets, live entertainment South Africa, comedy shows, music festivals, arts and culture events, Johannesburg theatre tickets, Cape Town concerts, festival tickets online, buy tickets for shows\",\"ogImage\":\"https://content.computicket.com/bo/7b44ee00-444b-4795-84d7-b1697c589b41.png\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@type\\\": \\\"CollectionPage\\\",\\r\\n \\\"name\\\": \\\"Event Tickets â Concerts, Theatre, Sport \u0026 More | Computicket\\\",\\r\\n \\\"description\\\": \\\"Explore and book tickets for concerts, live shows, festivals, theatre, and sports events. Find what's on now and secure your seat with Computicket.\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com/event\\\",\\r\\n \\\"isPartOf\\\": {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n \\\"breadcrumb\\\": {\\r\\n \\\"@type\\\": \\\"BreadcrumbList\\\",\\r\\n \\\"itemListElement\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 1,\\r\\n \\\"name\\\": \\\"Home\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 2,\\r\\n \\\"name\\\": \\\"Events\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com/event/list\\\"\\r\\n }\\r\\n ]\\r\\n }\\r\\n}\\r\\n\"}}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/998e8e6f-5682-4ded-a3ab-8c822d275746.jpg\",\"displayText\":\"Buses\",\"page\":{\"internalDescription\":\"Bus Prod\",\"route\":\"/travel/bus/booking\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-busHome\"}
370],\"seo\":{\"title\":\"Cheap Long-Distance Bus Tickets in South Africa | Computicket\",\"description\":\"Compare and book affordable long-distance bus tickets across South Africa. Safe, reliable transport with top bus operators\",\"keywords\":\"long distance bus tickets South Africa, book bus travel online, intercity bus tickets, cheap bus tickets, bus from Johannesburg to Durban, online bus booking South Africa, safe bus transport, luxury coach tickets, bus fare comparison South Africa, Intercape bus tickets, Greyhound, long distance travel South Africa\",\"ogImage\":\"https://content.computicket.com/bo/12538533-3bc7-491e-b18b-f4c78a31ff6c.png\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@type\\\": \\\"CollectionPage\\\",\\r\\n \\\"name\\\": \\\"Book Long-Distance Bus Tickets Online | Computicket Travel\\\",\\r\\n \\\"description\\\": \\\"Compare bus routes and book affordable long-distance bus travel across South Africa with top bus operators. Convenient, safe and reliable.\\\",\\r\\n \\\"url\\\": \\\"https://computicket.comtravel/bus/booking\\\",\\r\\n \\\"isPartOf\\\": {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"name\\\": \\\"Computicket Travel\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n \\\"breadcrumb\\\": {\\r\\n \\\"@type\\\": \\\"BreadcrumbList\\\",\\r\\n \\\"itemListElement\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 1,\\r\\n \\\"name\\\": \\\"Home\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 2,\\r\\n \\\"name\\\": \\\"Bus Travel\\\",\\r\\n \\\"item\\\": \\\"https://computicket.comtravel/bus/booking\\\"\\r\\n }\\r\\n ]\\r\\n }\\r\\n}\\r\\n\"},\"featuredItems\":[{\"internalDescription\":\"Buses Feature item prod\",\"title\":\"BOOK YOUR BUS TICKETS HERE\",\"TextforPrice\":\"Same prices as in-store\",\"subText\":null,\"desktopImage\":\"https://content.computicket.com/wl/uploads/bus_2_generic_landing_banner_min_efe42c1d8a.png\",\"mobileImage\":\"https://content.computicket.com/wl/uploads/Travel_by_bus_mobi_min_49e1308206.png\",\"button\":null,\"buttonText\":null,\"buttonColor\":null,\"buttonUrl\":null,\"newWindow\":null,\"cssBackground\":null,\"dateFrom\":\"2022-11-09T07:17:22Z\",\"dateTo\":\"2025-02-28T07:17:28Z\"}]}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/87be7971-4bd7-49e2-8cbe-df20184f587d.jpg\",\"displayText\":\"Flights\",\"page\":{\"internalDescription\":\"Flight Prod\",\"route\":\"/travel/flight/booking\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-flightHome\"}],\"seo\":{\"title\":\"Book Cheap Flights â Domestic \u0026 International Airlines | Computicket\",\"description\":\"Search and book low-cost, domestic, regional, and international flights. Compare airlines, find flight deals and fly your way with Computicket.\",\"keywords\":\"cheap flight tickets South Africa, book flights online, domestic flights South Africa, international flights South Africa, low cost airlines South Africa, flight deals today, flights from Johannesburg to Cape Town, online flight booking, airfare comparison, budget airline tickets, FlySafair, Airlink, Lift Airlines, return flights South Africa\",\"ogImage\":\"https://content.computicket.com/bo/788dc6c8-f791-4a17-be0d-a4fb07a62437.png\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@type\\\": \\\"CollectionPage\\\",\\r\\n \\\"name\\\": \\\"Book Cheap Flights â Domestic \u0026 International | Computicket Flights\\\",\\r\\n \\\"description\\\": \\\"Search and compare flights on local and international airlines. Book low-cost or premium airline tickets with Computicket.\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com/travel/flight/booking\\\",\\r\\n \\\"isPartOf\\\": {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"name\\\": \\\"Computicket Flights\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n \\\"breadcrumb\\\": {\\r\\n \\\"@type\\\": \\\"BreadcrumbList\\\",\\r\\n \\\"itemListElement\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 1,\\r\\n \\\"name\\\": \\\"Home\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 2,\\r\\n \\\"name\\\": \\\"Flights\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com/travel/flight/booking\\\"\\r\\n }\\r\\n ]\\r\\n }\\r\\n}\\r\\n\"},\"featuredItems\":[{\"internalDescription\":\"Flights Feature item prod\",\"title\":\"INTERNATIONAL \u0026 LOCAL FLIGHTS\",\"TextforPrice\":\"\",\"subText\":null,\"desktopImage\":\"https://content.computicket.com/wl/uploads/Flights_min_8171962dde.png\",\"mobileImage\":\"https://content.computicket.com/wl/uploads/Flights_mobi_min_2af8620bd7.png\",\"button\":null,\"buttonText\":null,\"buttonColor\":null,\"buttonUrl\":null,\"newWindow\":null,\"cssBackgroun
370d\":null,\"dateFrom\":\"2022-11-09T07:17:22Z\",\"dateTo\":\"2025-02-28T07:17:28Z\"}]}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/5ba0a252-b8d5-493f-97e5-6e6246dc42c6.jpg\",\"displayText\":\"Airtime \u0026 Vouchers\",\"page\":{\"internalDescription\":\"Voucher\",\"route\":\"/product/list\",\"external\":false,\"layout\":[],\"featuredItems\":[],\"seo\":{\"title\":\"Buy Digital Vouchers \u0026 Grocery Gift Cards Online | Computicket\",\"description\":\"Instant delivery of digital vouchers, prepaid grocery gift cards and more. A quick and thoughtful gift, sent via SMS or email.\",\"keywords\":\"buy digital vouchers online, grocery gift cards South Africa, SMS voucher delivery, online vouchers South Africa, prepaid shopping vouchers, send voucher by SMS, digital gift cards, Checkers vouchers, Shoprite gift card, instant voucher South Africa, food vouchers online\",\"ogImage\":\"https://content.computicket.com/bo/c2ecf877-0fd8-4424-a7b4-93fc74bdbdf0.png\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@type\\\": \\\"CollectionPage\\\",\\r\\n \\\"name\\\": \\\"Buy Digital Vouchers \u0026 Grocery Gift Cards | Computicket\\\",\\r\\n \\\"description\\\": \\\"Get instant vouchers and prepaid grocery gift cards delivered via SMS or email. Perfect gifts or rewards, sent fast and securely.\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com/voucher/list\\\",\\r\\n \\\"isPartOf\\\": {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n \\\"breadcrumb\\\": {\\r\\n \\\"@type\\\": \\\"BreadcrumbList\\\",\\r\\n \\\"itemListElement\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 1,\\r\\n \\\"name\\\": \\\"Home\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 2,\\r\\n \\\"name\\\": \\\"Vouchers\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com/voucher/list\\\"\\r\\n }\\r\\n ]\\r\\n }\\r\\n}\\r\\n\"}}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/04cdc1ce-da3b-40ec-93a4-59d733aeeedc.jpg\",\"displayText\":\"Stay\",\"page\":{\"internalDescription\":\"Stay\",\"route\":\"/stay\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-stayHome\"}],\"seo\":{\"title\":\"Book Hotels, Guest Houses \u0026 B\u0026Bs Online | Computicket\",\"description\":\"Discover and book affordable accommodation in South Africa. Hotels, bed \u0026 breakfasts, and guest houses with flexible rates.\",\"keywords\":\"book accommodation South Africa, hotels guest houses B\u0026Bs, online hotel booking SA, affordable places to stay South Africa, bed and breakfast booking, guest house South Africa, weekend getaways SA, romantic accommodation South Africa, family friendly hotels, Cape Town accommodation, hotel deals South Africa\",\"ogImage\":\"https://content.computicket.com/bo/aa15add7-a1b2-41ce-af0d-4aea5c1aba2d.png\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@type\\\": \\\"CollectionPage\\\",\\r\\n \\\"name\\\": \\\"Book Accommodation â Hotels, B\u0026Bs \u0026 Guest Houses | Computicket Stays\\\",\\r\\n \\\"description\\\": \\\"Find and book stays across South Africa. Discover hotels, guest houses, and bed \u0026 breakfasts that suit your budget and location.\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com/stay\\\",\\r\\n \\\"isPartOf\\\": {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"name\\\": \\\"Computicket Stays\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n \\\"breadcrumb\\\": {\\r\\n \\\"@type\\\": \\\"BreadcrumbList\\\",\\r\\n \\\"itemListElement\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 1,\\r\\n \\\"name\\\": \\\"Home\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com\\\"\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 2,\\r\\n \\\"name\\\": \\\"Stay\\\",\\r\\n \\\"item\\\": \\\"https://computicket.com/stay\\\"\\r\\n }\\r\\n ]\\r\\n }\\r\\n}\\r\\n\"}}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/5f90970b-3385-4615-8002-0a3c5b3c1647.png\",\"displayText\":\"Blog\",\"hidden\":true,\"page\":{\"internalDescription\":\"Blog\",\"route\":\"/blog\",\"external\":null,\"layout\":[],\"seo\":{\"title\":\"Travel Tips, Events \u0026 Destination Guides | Computicket Blog\",\"description\":\"Discover insider travel tips, trending events, destination guides, and exclusive deals on the Computicket Blog. Get inspired for your next adventure in South Africa.\",\"keywords\":\"South Africa travel blog, travel tips and guides, event updates SA, Computicket blog, accommodation tips South Africa, concerts and shows blog, best events in Cape Town, weekend getaway ideas, romantic travel South Africa, family travel advice SA, budget travel South Africa\",\"ogImage\":\"https://content.computicket.com/bo/65270d1c-9559-47d8-85eb-1bebf213c7ba.jpg\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@type\\\": \\\"Blog\\\",\\r\\n \\\"name\\\": \\\"Computicket Blog\\\",\\r\\n \\\"url\\\": \\\"https://www.computicket.com/blog\\\",\\r\\n \\\"description\\\": \\\"Explore top travel tips, trending events, and accommodation ideas with the Computicket Blog. Your local guide to exploring South Africa.\\\",\\r\\n \\\"publisher\\\": {\\r\\n \\\"@type\\\": \\\"Organization\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"url\\\": \\\"https://www.computicket.com\\\",\\r\\n \\\"logo\\\": {\\r\\n \\\"@type\\\": \\\"ImageObject\\\",\\r\\n \\\"url\\\": \\\"https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png\\\"\\r\\n }\\r\\n },\\r\\n \\\"breadcrumb\\\": {\\r\\n \\\"@type\\\": \\\"BreadcrumbList\\\",\\r\\n \\\"itemListElement\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 1,\\r\\n \\\"name\\\": \\\"Home\\\",\\r\\n \\\"item\\\": \\\"https://www.computicket.com\\\"\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"ListItem\\\",\\r\\n \\\"position\\\": 2,\\r\\n \\\"name\\\": \\\"Blog\\\",\\r\\n \\\"item\\\": \\\"https://www.computicket.com/blog\\\"\\r\\n }\\r\\n ]\\r\\n }\\r\\n}\"}}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/5f90970b-3385-4615-8002-0a3c5b3c1647.png\",\"displayText\":\"Test\",\"hidden\":true,\"page\":{\"internalDescription\":\"Test\",\"route\":\"/page/dev\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-dev\"}
370],\"seo\":{\"title\":\"Book Accommodation | Hotels, B\u0026Bs \u0026 Self Catering | Computicket\",\"description\":\"Find and book accommodation across South Africa. Choose from hotels, guesthouses, B\u0026Bs and self-catering options at competitive prices with Computicket.\",\"keywords\":\"accommodation, hotels, B\u0026B, self catering, guesthouses, lodges, South Africa accommodation\",\"ogImage\":\"https://content.computicket.com/bo/85a77f6d-c1a6-454c-9af6-8da5a2935e09.png\"}}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/5f90970b-3385-4615-8002-0a3c5b3c1647.png\",\"displayText\":\"Access in the wild\",\"hidden\":true,\"page\":{\"internalDescription\":\"Test\",\"route\":\"/page/access-in-the-wild\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-accessInTheWild\"}],\"seo\":{\"title\":\"#AccessInTheWild Competition | Win R35k with Computicket\",\"description\":\"Join the #AccessInTheWild summer campaign! Download characters, get creative \u0026 win R35,000 in flights, events, and travel prizes. Enter now with Mpho, Zee \u0026 Nia!\",\"keywords\":\"AccessInTheWild, Computicket competition, win flights South Africa, travel prizes, event tickets competition, R35000 prize, Mpho Motion, Zee Voltage, Nia Wander, summer competition 2025, bus tickets competition, concert tickets prize, WhatsApp community, social media competition, travel vouchers, South Africa giveaway\",\"ogImage\":\"https://content.computicket.com/bo/e726ad18-8a7b-4fc2-a53a-6dd4ddc1d1ce.png\"}}},{\"menuIcon\":\"\",\"backgroundImage\":\"https://content.computicket.com/bo/5f90970b-3385-4615-8002-0a3c5b3c1647.png\",\"displayText\":\"Sell Your Tickets\",\"hidden\":true,\"page\":{\"internalDescription\":\"TSell Your Ticketsst\",\"route\":\"/page/sell-your-tickets\",\"external\":null,\"layout\":[{\"DisplayType\":\"lookup\",\"param\":\"computicket.com-sellYourTickets\"}],\"seo\":{\"title\":\"Sell Event Tickets | Computicket for Event Organizers\",\"description\":\"List your event on Computicket and reach 60M+ customers. 4.5% commission, free setup, no exclusivity. Sell tickets online and in 1,200+ stores across South Africa.\",\"keywords\":\"event ticketing platform, sell tickets online, event management software, ticketing system South Africa, online ticket sales, box office management, event organizer platform, retail ticket sales, low commission ticketing, free event ticketing, Computicket, Shoprite tickets, ticket scanning app, event registration system\",\"ogImage\":\"https://content.computicket.com/bo/0458f2bc-8a7c-442e-926c-3bb422015349.png\"}}}],\"siteTitle\":\"For all your Travel and Ticket requirements.\",\"agentName\":\"Computicket\",\"channelId\":\"1960\",\"channelType\":\"WEB\",\"supportEmailAddress\":\"[email protected]\",\"contactCentre\":\"0861 915 800\",\"siteDescription\":\"A world of experiences at your fingertips. Buy your Show tickets, Event tickets, Bus tickets, Sport tickets and entries, Theatre tickets, Races, Festivals or Flight tickets we have it all. Looking for some accommodation or a place to stay we cover Johannesburg, Durban, Cape Town and the whole of South Africa.\",\"aboutUsMessage\":\"Computicket since 1971 for all your entertainment and travel ticket requirements.\",\"showHeader\":true,\"showFooter\":true,\"showMenubar\":true,\"showBasket\":true,\"showLogin\":true,\"isDebugmode\":false,\"isPosmode\":false,\"displayHeaderBar\":true,\"headerBarMessage\":\"#AccessInTheWild\",\"footerHeader\":\"Computicket (Pty) Ltd - 2025\",\"menuHeader\":\"\u003cstyle\u003e@media (min-width: 1400px) {.hero-title-responsive {font-size: clamp(52px, 5.8vw, 60px) !important;}}@media (min-width: 1700px) {.hero-title-responsive {font-size: 60px !important;margin-bottom: 28px !important;}}\u003c/style\u003e\u003ch1 class=\\\"hero-title-responsive\\\" style=\\\"font-size: clamp(32px, 5.5vw, 60px);font-weight: 900;line-height: 1.1;letter-spacing: -2px;margin-bottom: 20px;color: #1a1a2e;margin-top: 0;padding: 0;\\\"\u003eYour Holiday Adventure\u003cbr\u003e\u003cspan style=\\\"background: linear-gradient(135deg, #8B2A6B 0%, #00CED1 100%);-webkit-background-clip: text;-webkit-text-fill-color: transparent;background-clip: text;\\\"\u003eStarts Right Here\u003c/span\u003e\u003c/h1\u003e\",\"menuType\":\"round\",\"physicalAddress\":\"Computicket House, Greenacres Office Park, Cnr Victory and Rustenburg Roads, Victory Park 2195\",\"postalAddress\":\"\",\"googleMapsApiKey\":\"AIzaSyCatYNtOe6rDeHmS_2_m8YeuiHNUqgVB5U\",\"gtmNo\":\"G-Y5KMVM7V84\",\"storeLocator\":\"0861915800\",\"allowCustomJs\":true,\"enableUserLocation\":null,\"timeAdd\":120,\"siteMetaTags\":\"[]\",\"pwa\":{\"enablePwa\":true,\"enableSw\":true,\"themeColor\":\"#42434e\",\"cacheVersion\":\"v2x\",\"backgroundColor\":\"#42434e\",\"appleIcon\":\"https://content.computicket.com/bo/0f13010f-d472-4001-a5ad-afd578e2b805.png\",\"installPrompt\":{\"enabled\":true,\"delayMs\":2000,\"dismissDurationHours\":168,\"showOnPages\":[\"/myprofile\",\"/page/access-in-the-wild\"],\"icon\":\"https://content.computicket.com/bo/08112b71-b96a-476a-ae9a-1d7c75a22fb8.png\",\"title\":\"Install Computicket\",\"message\"
370:\"Add to your home screen for easy access\",\"installButtonText\":\"Install\",\"dismissButtonText\":\"Not now\"},\"manifest\":{\"name\":\"Computicket\",\"shortName\":\"Computicket\",\"description\":\"A world of experiences at your fingertips\",\"startUrl\":\"/\",\"display\":\"standalone\",\"icons\":[{\"src\":\"https://content.computicket.com/bo/681d3d76-9113-47e4-87df-8fdcd031bff7.png\",\"sizes\":\"48x48\",\"type\":\"image/png\"},{\"src\":\"https://content.computicket.com/bo/7291350c-e4c7-41e8-940b-319527412fac.png\",\"sizes\":\"72x72\",\"type\":\"image/png\"},{\"src\":\"https://content.computicket.com/bo/08112b71-b96a-476a-ae9a-1d7c75a22fb8.png\",\"sizes\":\"96x96\",\"type\":\"image/png\"},{\"src\":\"https://content.computicket.com/bo/d6d0a798-a270-4c9b-a38c-7c72359da6d7.png\",\"sizes\":\"144x144\",\"type\":\"image/png\"},{\"src\":\"https://content.computicket.com/bo/0f13010f-d472-4001-a5ad-afd578e2b805.png\",\"sizes\":\"192x192\",\"type\":\"image/png\"},{\"src\":\"https://content.computicket.com/bo/2cdd6f6c-e4c8-4df8-8a28-3cf17ac1f5b8.png\",\"sizes\":\"512x512\",\"type\":\"image/png\"}],\"splashScreens\":[{\"src\":\"https://content.computicket.com/bo/9bbc19d7-ff11-4d5b-8537-403b43fdd526.jpg\",\"sizes\":\"640x1136\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/a2baddee-c46e-4b78-8ea7-c11e64c6ad5a.jpg\",\"sizes\":\"750x1334\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/e1dc312b-a962-401c-a2c6-4134b7f4f128.jpg\",\"sizes\":\"1125x2436\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/17f7d5d0-5573-4088-996f-55211a6f3cb5.jpg\",\"sizes\":\"1242x2688\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/9076c26f-68d4-4973-ab8c-b038d56b0011.jpg\",\"sizes\":\"828x1792\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/5d9d89d6-0269-40c0-91f7-0f458f550074.jpg\",\"sizes\":\"1536x2048\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/acd5e517-4ea0-4190-b78f-6aa1cbec9d97.jpg\",\"sizes\":\"1668x2224\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/e592bf6c-23d2-4db7-8437-e2a40d6153cc.jpg\",\"sizes\":\"2048x2732\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/75e9e3cb-19ae-4463-b12b-1573fa455314.jpg\",\"sizes\":\"320x480\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/bc19d7f5-e7e8-4eef-8c0b-c4b661391c65.jpg\",\"sizes\":\"480x800\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/1bb14a53-3763-4752-b454-a96554221c6f.jpg\",\"sizes\":\"720x1280\",\"type\":\"image/jpeg\"},{\"src\":\"https://content.computicket.com/bo/2a6489b3-92a0-41b7-9882-36e260517f99.jpg\",\"sizes\":\"1080x1920\",\"type\":\"image/jpeg\"}]}},\"bus_discount\":[{\"id\":\"ADULT\",\"displayText\":\"Adult\",\"desc\":\"older than 12 years\"},{\"id\":\"SENIOR\",\"displayText\":\"Senior\",\"desc\":\"older than 60 years\"},{\"id\":\"CHILD\",\"displayText\":\"Child\",\"desc\":\"younger than 12 years\"},{\"id\":\"STUDENT\",\"displayText\":\"Student\",\"desc\":\"valid student card is required\"},{\"id\":\"SAPSANDF\",\"displayText\":\"SAPSANDF\",\"desc\":\"SAPSANDF identification is required\"}],\"seo\":{\"title\":\"Buy Tickets Online â Events, Travel, Flights \u0026 More | Computicket\",\"description\":\"Book tickets for events, concerts, theatre, flights, bus travel, vouchers and accommodation â all in one place. Trusted by millions of South Africans.\",\"keywords\":\"buy tickets online, concert tickets South Africa, cheap flights, bus tickets, theatre shows, hotel bookings, digital vouchers, South Africa events, Computicket, flight bookings South Africa, accommodation deals, gift cards online\",\"ogImage\":\"https://content.computicket.com/bo/2fd8a76e-cb46-4eee-b512-7156cb5a2738.png\",\"siteUrl\":\"https://computicket.com\",\"JSON-LD\":\"{\\r\\n \\\"@context\\\": \\\"https://schema.org\\\",\\r\\n \\\"@graph\\\": [\\r\\n {\\r\\n \\\"@type\\\": \\\"WebSite\\\",\\r\\n \\\"@id\\\": \\\"https://computicket.com/#website\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"potentialAction\\\": {\\r\\n \\\"@type\\\": \\\"SearchAction\\\",\\r\\n \\\"target\\\": \\\"https://computicket.com/search?q={search_term_string}\\\",\\r\\n \\\"query-input\\\": \\\"required name=search_term_string\\\"\\r\\n }\\r\\n },\\r\\n {\\r\\n \\\"@type\\\": \\\"Organization\\\",\\r\\n \\\"@id\\\": \\\"https://computicket.com/#organization\\\",\\r\\n \\\"name\\\": \\\"Computicket\\\",\\r\\n \\\"url\\\": \\\"https://computicket.com\\\",\\r\\n \\\"logo\\\": \\\"https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png\\\",\\r\\n \\\"sameAs\\\": [\\r\\n \\\"https://www.facebook.com/computicket\\\",\\r\\n \\\"https://twitter.com/computicket\\\",\\r\\n \\\"https://www.instagram.com/computicket\\\"\\r\\n ]\\r\\n }\\r\\n ]\\r\\n}\\r\\n\"},\"siteTheme\":{\"favicon\":\"https://cmsaccom.computicket.com/api/assets/accomodation/345d87ee-eb05-4b43-b487-8f452329dad2/\",\"siteLogo\":\"https://content.computicket.com/wl/uploads/ctknewlogo_2227c0ca2c.png\",\"primaryColor\":\"#e71f3e\",\"secondaryColor\":\"#141a20\",\"menubarColor\":\"rgba(255,255,255,1)\",\"backgroundColor\":\"#ffffff\",\"fontColorPrimary\":\"#ffffff\",\"fontColorSecondary\":\"#ffffff\",\"mobileLogo\":\"https://content.computicket.com/site/mobile.computicket.com/[email protected]\",\"footerIcon\":\"https://content.computicket.com/bo/5b27bbfc-2046-4ca7-98ca-e909efa1dc77.svg\",\"footerBackgroun
370dColor\":\"#E9EDF1\",\"perPersonColor\":\"#c71c87\",\"unitPriceColor\":\"#42434E\",\"amenitiesColor\":\"#e71f3e\",\"menuTextColor\":\"#42434E\",\"footerFontColor\":\"#42434E\",\"primaryColorGradient\":\"linear-gradient(209.39deg, #C61D86 4.24%, #CA1D7B 11.29%, #D71E5F 34.45%, #DF1F4B 57.61%, #E51F3F 81.78%, #E7203C 104.94%)\",\"secondaryColorGradient\":null},\"lastUpdated\":\"2026-10-02T05:22:16.835Z\"},\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\",\"children\":[\"$L19\",\"$L1a\"]}],\"$L1b\",\"$L1c\"]}]\n"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"1d:I[340221,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\"]\n1e:I[683644,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"PWAInstallProvider\"]\n1f:I[655942,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\"]\n20:I[760542,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\",\"/_next/static/chunks/0y_jjs_2qrc~w.js\"],\"default\"]\n21:I[906976,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\",\"/_next/static/chunks/12dk56r.nvbw3.js\"],\"default\"]\n22:I[446108,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\"]\n23:I[445382,[\"/_next/static/chunks/11-hmxl2mmjt..js\",\"/_next/static/chunks/0md2ilb1elzh7.js\",\"/_next/static/chunks/0ho~4mcu7_9qh.js\",\"/_next/static/chunks/0e45-q7k7uui2.js\",\"/_next/static/chunks/166u_u1jr~j4y.js\",\"/_next/static/chunks/0w20gzpvgzwud.js\",\"/_next/static/chunks/01167vh-d--ie.js\",\"/_next/static/chunks/0osj~rxb995xf.js\",\"/_next/static/chunks/0d78up986s16..
370js\",\"/_next/static/chunks/144cysjdge7g6.js\",\"/_next/static/chunks/07c9gmb.7xj6o.js\",\"/_next/static/chunks/0h8ea52.j.8fg.js\",\"/"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"_next/static/chunks/14x..lz37ludd.js\",\"/_next/static/chunks/0cao1jff.2xc0.js\"],\"default\"]\n19:[\"$\",\"$L1d\",null,{}]\n1a:[\"$\",\"$L1e\",null,{\"siteConfig\":\"$14:props:children:0:props:initialSiteConfig\",\"children\":[[\"$\",\"$L1f\",null,{}],[\"$\",\"div\",null,{\"className\":\"flex-grow main-content-wrapper\",\"children\":[\"$\",\"main\",null,{\"className\":\"flex-grow main-content\",\"children\":[\"$\",\"$L3\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$20\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0y_jjs_2qrc~w.js\",\"async\":true}]],\"template\":[\"$\",\"$L4\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L21\",null,{}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}],[\"$\",\"$L22\",null,{}],[\"$\",\"$L23\",null,{\"siteConfig\":\"$14:props:children:0:props:initialSiteConfig\",\"pwaPromptConfig\":{\"enabled\":true,\"delayMs\":2000,\"dismissDurationHours\":168,\"showOnPages\":\"$14:props:children:0:props:initialSiteConfig:pwa:installPrompt:showOnPages\"},\"primaryColor\":\"#e71f3e\",\"menuTextColor\":\"#42434E\"}]]}]\n24:Tf4d,"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"\n if ('serviceWorker' in navigator) {\n window.addEventListener('load', async () =\u003e {\n try {\n const existingRegistrations = await navigator.serviceWorker.getRegistrations();\n \n const oldRegistrations = existingRegistrations.filter(reg =\u003e {\n return reg.scope.includes('/sw.js') || \n (reg.active \u0026\u0026 reg.active.scriptURL \u0026\u0026 reg.active.scriptURL.includes('/sw.js')) ||\n (!reg.scope.includes('/api/sw') \u0026\u0026 reg.scope !== window.location.origin + '/');\n });\n \n if (oldRegistrations.length \u003e 0) {\n for (const registration of oldRegistrations) {\n try {\n await registration.unregister();\n } catch (error) {\n // Silent error handling\n }\n }\n }\n \n if ('caches' in window) {\n try {\n const cacheNames = await caches.keys();\n \n const legacyCacheNames = cacheNames.filter(name =\u003e \n name.includes('sw-cache') || \n name.includes('workbox') || \n name.includes('precache') ||\n (name.includes('runtime-cache') \u0026\u0026 !name.includes('computicket'))\n );\n \n if (legacyCacheNames.length \u003e 0) {\n for (const cacheName of legacyCacheNames) {\n await caches.delete(cacheName);\n }\n }\n } catch (error) {\n // Silent error handling\n }\n }\n \n const registration = await navigator.serviceWorker.register('/api/sw', {\n scope: '/',\n updateViaCache: 'none'\n });\n \n registration.addEventListener('updatefound', () =\u003e {\n const newWorker = registration.installing;\n \n newWorker.addEventListener('statechange', () =\u003e {\n if (newWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n window.swUpdateAvailable = true;\n }\n }\n });\n });\n \n setInterval(() =\u003e {\n registration.update().catch(err =\u003e {\n // Silent error handling\n });\n }, 60000);\n \n window.swRegistration = registration;\n window.swRegistrationTime = new Date().toISOString();\n \n } catch (error) {\n window.swRegistrationError = error;\n }\n });\n \n navigator.serviceWorker.addEventListener('message', (event) =\u003e {\n if (event.data \u0026\u0026 event.data.type === 'NEW_VERSION') {\n window.swVersion = event.data.version;\n window.swUpdateTime = event.data.timestamp;\n }\n });\n \n navigator.serviceWorker.addEventListener('controllerchange', () =\u003e {\n window.swControllerChanged = true;\n });\n \n } else {\n window.swNotSupported = true;\n }\n "])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"1b:[\"$\",\"script\",null,{\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$24\"}}]\n25:T919,"])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"\n // Simplified PWA event handling - user actions only\n (function() {\n let deferredPrompt = null;\n\n // Handle beforeinstallprompt event for Android/Desktop\n window.addEventListener('beforeinstallprompt', (e) =\u003e {\n e.preventDefault();\n deferredPrompt = e;\n window.deferredPrompt = deferredPrompt;\n });\n\n // App installed event - only log user-confirmed installations\n window.addEventListener('appinstalled', () =\u003e {\n // Hide React modal if shown\n if (window.hideAndroidInstallModal \u0026\u0026 typeof window.hideAndroidInstallModal === 'function') {\n window.hideAndroidInstallModal();\n }\n \n // Log successful installation via fetch\n if (window.fetch) {\n fetch('/api/logger', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n level: 'info',\n message: 'PWA Install Successful - Android',\n action: 'install_completed',\n installEvent: 'browser_install_success',\n source: 'pwa-install',\n installDetails: {\n platform: 'android',\n installMethod: 'browser_confirmed',\n completionType: 'appinstalled_event'\n },\n userContext: {\n sessionId: 'unknown',\n userAgent: navigator.userAgent || 'unknown'\n },\n metadata: {\n timestamp: new Date().toISOString(),\n loggedFromClient: true\n }\n })\n }).catch(() =\u003e {}); // Silent fail\n }\n \n localStorage.setItem('pwa-app-installed', 'true');\n deferredPrompt = null;\n window.deferredPrompt = null;\n });\n })();\n "])</script>
370<script nonce="IovxAYKVL3TnvxJG901U9A==">self.__next_f.push([1,"1c:[\"$\",\"script\",null,{\"nonce\":\"IovxAYKVL3TnvxJG901U9A==\",\"suppressHydrationWarning\":true,\"dangerouslySetInnerHTML\":{\"__html\":\"$25\"}}]\n"])</script>
370</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.