PageSourceSearch

https://podcast-room.com/assets/Studio-Bj43oyNT.js

js podcast-room.com collected 2026-10-09 01:18:43 UTC 95,182 bytes, 22 lines download raw bytes

1import{r as C,j as e}from"./ui-B6H_bkrQ.js";import{N as Ds,F as Ts}from"./Footer-DVgnl_4d.js";import{B as Es}from"./BlogSection-UUUApCGV.js";import{G as Ps}from"./GoogleReviewsSection-C7s1m7pv.js";import{R as Is,s as zs,c as $s,S as Fs,B as Ls}from"./BookingModal-BfqLECid.js";import{S as Ms}from"./SEO-0cVmrQrP.js";import{k as rt,B as W,A as As,t as Tt,l as Os,m as xe,I as ve,P as Bs,n as _s,o as Rs,p as Ht,S as qs,q as Vs,r as Hs,s as Us,u as ut,v as Gs,D as rs,d as os,w as Ks,X as Ws,e as Ys,f as Qs,h as Zs,L as pt,x as Js,y as Xs,N as Ut,R as en,z as Gt,M as Kt,E as Wt,F as tn,G as sn,i as nn}from"./index-DmJaNNfq.js";import{u as rn,F as Yt,V as Re}from"./FlashSaleBadge-BjLXXMjd.js";import{b as as,u as ge}from"./query-CWVDojdR.js";import{s as wt}from"./useSiteImages-B4EWtyIB.js";import{C as on}from"./cityHubs-q6LK5iML.js";import{A as an}from"./arrow-right-YGxpprbl.js";import{a as cn}from"./addonQuantity-Cjfmf6wx.js";import{L as ln}from"./LaunchCountdown-DM4mNgqN.js";import{F as dn}from"./ConversionTracker-CSfZc92e.
1js";import{u as un,t as mn,C as Nt}from"./zod-hnWNZ7hj.js";import{R as pn,a as Qt}from"./radio-group-C0kqlGhl.js";import{r as fn}from"./schema-DdHViLbq.js";import{o as hn,s as Te,e as Zt,a as xn,d as gn}from"./types-BjxmABca.js";import{c as kt}from"./imageFocal-DDX0Hb-2.js";import{R as bn}from"./RegisterInterestModal-lA12FBWE.js";import{M as St}from"./map-pin-CW9u4jpR.js";import{C as mt}from"./calendar-CiOH4gAZ.js";import{P as Jt}from"./phone-Dr4S7lrY.js";import{M as yn}from"./mail-DABLn3fU.js";import{E as Ct}from"./eye-CbSuW6s1.js";import"./vendor-BzrpNAyj.js";import"./useBrand-Bfg0yF8V.js";import"./user-Cjmijkv3.js";import"./log-out-CGV6ll5K.js";import"./checkbox-BkG9C7p0.js";import"./star-Ds609rw3.js";import"./PhoneInput-DUkp4RBm.js";import"./wallet-BTev5o9f.js";import"./includedCameras-scFx5-gN.js";import"./scroll-area-BGaZJCl7.js";import"./collapsible-CeE75vBx.js";import"./CreditTopUpModal-CKtPB7ez.js";import"./slider-BdxTwqda.js";import"./react-stripe.esm-BjA3t_c5.js";import"./charts-DxS0nGR8.js";import"./sparkles-RVioJtcF.js";import"./search-BObebf_3.js";import"./credit-card-CM1AMnQ1.js";import"./paystackInline-oqllt_wA.js";import"./creditEligibility-Cs3y3aol.js";import"./rotate-ccw-CM-UStXX.js";import"./users-CIi5Nc9K.js";import"./monitor-play-D3L0ezin.js";import"./eye-off-BUGPcbNO.js";import"./ticket-877ODOgt.js";import"./circle-question-mark-sfxY0ERe.js";import"./user-plus-BQDWxMci.js";const Xt={included:!0,label:null,cadence:null};function jn(t){if(typeof t=="number")return Number.isFinite(t)?t:null;if(typeof t!="string")return null;const n=parseFloat(t.replace(/[^0-9.]/g,""));return Number.isFinite(n)?n:null}function vn(t,n){if(!t.chargeable)return Xt;const a=jn(t.price);if(a===null||a<=0)return Xt;const c=t.billingType==="per_hour",o=Number.isInteger(a)?String(a):a.toFixed(2);return{included:!1,label:`+${n}${o}${c?"/hr":""}`,cadence:c?"per hour":"one-time"}}function wn(t){return Array.isArray(t)?t.filter(n=>n&&typeof n.name=="string"&&n.name.trim().length>0):[]}function Nn(t){return Object.prototype.toString.call(t)==="[object Object]"}function es(t){return Nn(t)||Array.isArray(t)}function kn(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function It(t,n){const a=Object.keys(t),c=Object.keys(n);if(a.length!==c.length)return!1;const o=JSON.stringify(Object.keys(t.breakpoints||{})),i=JSON.stringify(Object.keys(n.breakpoints||{}));return o!==i?!1:a.every(l=>{const m=t[l],u=n[l];return typeof m=="function"?`${m}`==`${u}`:!es(m)||!es(u)?m===u:It(m,u)})}function ts(t){return t.concat().sort((n,a)=>n.name>a.name?1:-1).map(n=>n.options)}function Sn(t,n){if(t.length!==n.length)return!1;const a=ts(t),c=ts(n);return a.every((o,i)=>{const l=c[i];return It(o,l)})}function zt(t){return typeof t=="number"}function Et(t){return typeof t=="string"}function ht(t){return typeof t=="boolean"}function ss(t){return Object.prototype.toString.call(t)==="[object Object]"}function B(t){return Math.abs(t)}function $t(t){return Math.sign(t)}function et(t,n){return B(t-n)}function Cn(t,n){if(t===0||n===0||B(t)<=B(n))return 0;const a=et(B(t),B(n));return B(a/t)}function Dn(t){return Math.round(t*100)/100}function tt(t){return st(t).map(Number)}function ue(t){return t[ot(t)]}function ot(t){return Math.max(0,t.length-1)}function Ft(t,n){return n===ot(t)}function ns(t,n=0){return Array.from(Array(t),(a,c)=>n+c)}function st(t){return Object.keys(t)}function is(t,n){return[t,n].reduce((a,c)=>(st(c).forEach(o=>{const i=a[o],l=c[o],m=ss(i)&&ss(l);a[o]=m?is(i,l):l}),a),{})}function Pt(t,n){return typeof n.MouseEvent<"u"&&t instanceof n.MouseEvent}function Tn(t,n){const a={start:c,center:o,end:i};function c(){return 0}function o(u){return i(u)/2}function i(u){return n-u}function l(u,d){return Et(t)?a[t](u):t(n,u,d)}return{measure:l}}function nt(){let t=[];function n(o,i,l,m={passive:!0}){let u;if("addEventListener"in o)o.addEventListener(i,l,m),u=()=>o.removeEventListener(i,l,m);else{const d=o;d.addListener(l),u=()=>d.removeListener(l)}return t.push(u),c}function a(){t=t.filter(o=>o())}const c={add:n,clear:a};return c}function En(t,n,a,c){const o=nt(),i=1e3/60;let l=null,m=0,u=0;function d(){o.add(t,"visibilitychange",()=>{t.hidden&&p()})}function w(){k(),o.clear()}function x(j){if(!u)return;l||(l=j,a(),a());const f=j-l;for(l=j,m+=f;m>=i;)a(),m-=i;const y=m/i;c(y),u&&(u=n.requestAnimationFrame(x))}function g(){u||(u=n.requestAnimationFrame(x))}function k(){n.cancelAnimationFrame(u),l=null,m=0,u=0}function p(){l=null,m=0}return{init:d,destroy:w,start:g,stop:k,update:a,render:c}}function Pn(t,n){const a=n==="rtl",c=t==="y",o=c?"y":"x",i=c?"x":"y",l=!c&&a?-1:1,m=w(),u=x();function d(p){const{height:h,width:j}=p;return c?h:j}function w(){return c?"top":a?"right":"left"}function x(){return c?"bottom":a?"left":"right"}function g(p){return p*l}return{scroll:o,cross:i,startEdge:m,endEdge:u,measureSize:d,direction:g}}function Me(t=0,n=0){const a=B(t-n);function c(d){return d<t}function o(d){return d>n}function i(d){return c(d)||o(d)}function l(d){return i(d)?c(d)?t:n:d}function m(d){return a?d-a*Math.ceil((d-n)/a):d}return{length:a,max:n,min:t,constrain:l,reachedAny:i,reachedMax:o,reachedMin:c,removeOffset:m}}function cs(t,n,a){const{constrain:c}=Me(0,t),o=t+1;let i=l(n);function l(g){return a?B((o+g)%o):c(g)}function m(){return i}function u(g){return i=l(g),x}function d(g){return w().set(m()+g)}function w(){return cs(t,m(),a)}const x={get:m,set:u,add:d,clone:w};return x}function In(t,n,a,c,o,i,l,m,u,d,w,x,g,k,p,h,j,f,y){const{cross:b,direction:D}=t,L=["INPUT","SELECT","TEXTAREA"],I={passive:!1},T=nt(),E=nt(),z=Me(50,225).constrain(k.measure(20)),O={mouse:300,touch:400},P={mouse:500,touch:600},R=p?43:25;let H=!1,U=0,Y=0,le=!1,X=!1,ee=!1,te=!1;function be(N){if(!y)return;function M(q){(ht(y)||y(N,q))&&Pe(q)}const s=n;T.add(s,"dragstart",q=>q.preventDefault(),I).add(s,"touchmove",()=>{},I).add(s,"touchend",()=>{}).add(s,"touchstart",M).add(s,"mousedown",M).add(s,"touchcancel",$).add(s,"contextmenu",$).add(s,"click",de,!0)}function se(){T.clear(),E.clear()}function me(){const N=te?a:n;E.add(N,"touchmove",G,I).add(N,"touchend",$).add(N,"mousemove",G,I).add(N,"mouseup",$)}function ye(N){const M=N.nodeName||"";return L.includes(M)}function ne(){return(p?P:O)[te?"mouse":"touch"]}function Ee(N,M){const s=x.add($t(N)*-1),q=w.byDistance(N,!p).distance;return p||B(N)<z?q:j&&M?q*.5:w.byIndex(s.get(),0).distance}function Pe(N){const M=Pt(N,c);te=M,ee=p&&M&&!N.buttons&&H,H=et(o.get(),l.get())>=2,!(M&&N.button!==0)&&(ye(N.target)||(le=!0,i.pointerDown(N),d.useFriction(0).useDuration(0),o.set(l),me(),U=i.readPoint(N),Y=i.readPoint(N,b),g.emit("pointerDown")))}function G(N){if(!Pt(N,c)&&N.touches.length>=2)return $(N);const s=i.readPoint(N),q=i.readPoint(N,b),re=et(s,U),oe=et(q,Y);if(!X&&!te&&(!N.cancelable||(X=re>oe,!X)))return $(N);const pe=i.pointerMove(N);re>
vendor: 14,336 bytes, line 1
1h&&(ee=!0),d.useFriction(.3).useDuration(.75),m.start(),o.add(D(pe)),N.preventDefault()}function $(N){const s=w.byDistance(0,!1).index!==x.get(),q=i.pointerUp(N)*ne(),re=Ee(D(q),s),oe=Cn(q,re),pe=R-10*oe,Z=f+oe/50;X=!1,le=!1,E.clear(),d.useDuration(pe).useFriction(Z),u.distance(re,!p),te=!1,g.emit("pointerUp")}function de(N){ee&&(N.stopPropagation(),N.preventDefault(),ee=!1)}function Q(){return le}return{init:be,destroy:se,pointerDown:Q}}function zn(t,n){let c,o;function i(x){return x.timeStamp}function l(x,g){const p=`client${(g||t.scroll)==="x"?"X":"Y"}`;return(Pt(x,n)?x:x.touches[0])[p]}function m(x){return c=x,o=x,l(x)}function u(x){const g=l(x)-l(o),k=i(x)-i(c)>170;return o=x,k&&(c=x),g}function d(x){if(!c||!o)return 0;const g=l(o)-l(c),k=i(x)-i(c),p=i(x)-i(o)>170,h=g/k;return k&&!p&&B(h)>.1?h:0}return{pointerDown:m,pointerMove:u,pointerUp:d,readPoint:l}}function $n(){function t(a){const{offsetTop:c,offsetLeft:o,offsetWidth:i,offsetHeight:l}=a;return{top:c,right:o+i,bottom:c+l,left:o,width:i,height:l}}return{measure:t}}function Fn(t){function n(c){return t*(c/100)}return{measure:n}}function Ln(t,n,a,c,o,i,l){const m=[t].concat(c);let u,d,w=[],x=!1;function g(j){return o.measureSize(l.measure(j))}function k(j){if(!i)return;d=g(t),w=c.map(g);function f(y){for(const b of y){if(x)return;const D=b.target===t,L=c.indexOf(b.target),I=D?d:w[L],T=g(D?t:c[L]);if(B(T-I)>=.5){j.reInit(),n.emit("resize");break}}}u=new ResizeObserver(y=>{(ht(i)||i(j,y))&&f(y)}),a.requestAnimationFrame(()=>{m.forEach(y=>u.observe(y))})}function p(){x=!0,u&&u.disconnect()}return{init:k,destroy:p}}function Mn(t,n,a,c,o,i){let l=0,m=0,u=o,d=i,w=t.get(),x=0;function g(){const I=c.get()-t.get(),T=!u;let E=0;return T?(l=0,a.set(c),t.set(c),E=I):(a.set(t),l+=I/u,l*=d,w+=l,t.add(l),E=w-x),m=$t(E),x=w,L}function k(){const I=c.get()-n.get();return B(I)<.001}function p(){return u}function h(){return m}function j(){return l}function f(){return b(o)}function y(){return D(i)}function b(I){return u=I,L}function D(I){return d=I,L}const L={direction:h,duration:p,velocity:j,seek:g,settled:k,useBaseFriction:y,useBaseDuration:f,useFriction:D,useDuration:b};return L}function An(t,n,a,c,o){const i=o.measure(10),l=o.measure(50),m=Me(.1,.99);let u=!1;function d(){return!(u||!t.reachedAny(a.get())||!t.reachedAny(n.get()))}function w(k){if(!d())return;const p=t.reachedMin(n.get())?"min":"max",h=B(t[p]-n.get()),j=a.get()-n.get(),f=m.constrain(h/l);a.subtract(j*f),!k&&B(j)<i&&(a.set(t.constrain(a.get())),c.useDuration(25).useBaseFriction())}function x(k){u=!k}return{shouldConstrain:d,constrain:w,toggleActive:x}}function On(t,n,a,c,o){const i=Me(-n+t,0),l=x(),m=w(),u=g();function d(p,h){return et(p,h)<=1}function w(){const p=l[0],h=ue(l),j=l.lastIndexOf(p),f=l.indexOf(h)+1;return Me(j,f)}function x(){return a.map((p,h)=>{const{min:j,max:f}=i,y=i.constrain(p),b=!h,D=Ft(a,h);return b?f:D||d(j,y)?j:d(f,y)?f:y}).map(p=>parseFloat(p.toFixed(3)))}function g(){if(n<=t+o)return[i.max];if(c==="keepSnaps")return l;const{min:p,max:h}=m;return l.slice(p,h)}return{snapsContained:u,scrollContainLimit:m}}function Bn(t,n,a){const c=n[0],o=a?c-t:ue(n);return{limit:Me(o,c)}}function _n(t,n,a,c){const i=n.min+.1,l=n.max+.1,{reachedMin:m,reachedMax:u}=Me(i,l);function d(g){return g===1?u(a.get()):g===-1?m(a.get()):!1}function w(g){if(!d(g))return;const k=t*(g*-1);c.forEach(p=>p.add(k))}return{loop:w}}function Rn(t){const{max:n,length:a}=t;function c(i){const l=i-n;return a?l/-a:0}return{get:c}}function qn(t,n,a,c,o){const{startEdge:i,endEdge:l}=t,{groupSlides:m}=o,u=x().map(n.measure),d=g(),w=k();function x(){return m(c).map(h=>ue(h)[l]-h[0][i]).map(B)}function g(){return c.map(h=>a[i]-h[i]).map(h=>-B(h))}function k(){return m(d).map(h=>h[0]).map((h,j)=>h+u[j])}return{snaps:d,snapsAligned:w}}function Vn(t,n,a,c,o,i){const{groupSlides:l}=o,{min:m,max:u}=c,d=w();function w(){const g=l(i),k=!t||n==="keepSnaps";return a.length===1?[i]:k?g:g.slice(m,u).map((p,h,j)=>{const f=!h,y=Ft(j,h);if(f){const b=ue(j[0])+1;return ns(b)}if(y){const b=ot(i)-ue(j)[0]+1;return ns(b,ue(j)[0])}return p})}return{slideRegistry:d}}function Hn(t,n,a,c,o){const{reachedAny:i,removeOffset:l,constrain:m}=c;function u(p){return p.concat().sort((h,j)=>B(h)-B(j))[0]}function d(p){const h=t?l(p):m(p),j=n.map((y,b)=>({diff:w(y-h,0),index:b})).sort((y,b)=>B(y.diff)-B(b.diff)),{index:f}=j[0];return{index:f,distance:h}}function w(p,h){const j=[p,p+a,p-a];if(!t)return p;if(!h)return u(j);const f=j.filter(y=>$t(y)===h);return f.length?u(f):ue(j)-a}function x(p,h){const j=n[p]-o.get(),f=w(j,h);return{index:p,distance:f}}function g(p,h){const j=o.get()+p,{index:f,distance:y}=d(j),b=!t&&i(j);if(!h||b)return{index:f,distance:p};const D=n[f]-y,L=p+w(D,0);return{index:f,distance:L}}return{byDistance:g,byIndex:x,shortcut:w}}function Un(t,n,a,c,o,i,l){function m(x){const g=x.distance,k=x.index!==n.get();i.add(g),g&&(c.duration()?t.start():(t.update(),t.render(1),t.update())),k&&(a.set(n.get()),n.set(x.index),l.emit("select"))}function u(x,g){const k=o.byDistance(x,g);m(k)}function d(x,g){const k=n.clone().set(x),p=o.byIndex(k.get(),g);m(p)}return{distance:u,index:d}}function Gn(t,n,a,c,o,i,l,m){const u={passive:!0,capture:!0};let d=0;function w(k){if(!m)return;function p(h){if(new Date().getTime()-d>10)return;l.emit("slideFocusStart"),t.scrollLeft=0;const y=a.findIndex(b=>b.includes(h));zt(y)&&(o.useDuration(0),c.index(y,0),l.emit("slideFocus"))}i.add(document,"keydown",x,!1),n.forEach((h,j)=>{i.add(h,"focus",f=>{(ht(m)||m(k,f))&&p(j)},u)})}function x(k){k.code==="Tab"&&(d=new Date().getTime())}return{init:w}}function Xe(t){let n=t;function a(){return n}function c(u){n=l(u)}function o(u){n+=l(u)}function i(u){n-=l(u)}function l(u){return zt(u)?u:u.get()}return{get:a,set:c,add:o,subtract:i}}function ls(t,n){const a=t.scroll==="x"?l:m,c=n.style;let o=null,i=!1;function l(g){return`translate3d(${g}px,0px,0px)`}function m(g){return`translate3d(0px,${g}px,0px)`}function u(g){if(i)return;const k=Dn(t.direction(g));k!==o&&(c.transform=a(k),o=k)}function d(g){i=!g}function w(){i||(c.transform="",n.getAttribute("style")||n.removeAttribute("style"))}return{clear:w,to:u,toggleActive:d}}function Kn(t,n,a,c,o,i,l,m,u){const w=tt(o),x=tt(o).reverse(),g=f().concat(y());function k(T,E){return T.reduce((z,O)=>z-o[O],E)}function p(T,E){return T.reduce((z,O)=>k(z,E)>0?z.concat([O]):z,[])}function h(T){return i.map((E,z)=>({start:E-c[z]+.5+T,end:E+n-.5+T}))}function j(T,E,z){const O=h(E);return T.map(P=>{const R=z?0:-a,H=z?a:0,U=z?"end":"start",Y=O[P][U];return{index:P,loopPoint:Y,slideLocation:Xe(-1),translate:ls(t,u[P]),target:()=>m.get()>Y?R:H}})}function f(){const T=l[0],E=p(x,T);return j(E,a,!1)}function y(){const T=n-l[0]-1,E=p(w,T);return j(E,-a,!0)}function b(){return g.every(({index:T})=>{const E=w.filter(z=>z!==T);return k(E,n)<=.1})}function D(){g.forEach(T=>{const{target:E,translate:z,slideLocation:O}=T,P=E();P!==O.get()&&(z.to(P),O.set(P))})}function L(){g.forEach(T=>T.translate.clear())}return{canLoop:b,clear:L,loop:D,loopPoints:g}}function Wn(t,n,a){let c,o=!1;function i(u){if(!a)return;function d(w){for(const x of w)if(x.type==="childList"){u.reInit(),n.emit("slidesChanged");break}}c=new MutationObserver(w=>{o||(ht(a)||a(u,w))&&d(w)}),c.observe(t,{childList:!0})}function l(){c&&c.disconnect(),o=!0}return{init:i,destroy:l}}function Yn(t,n,a,c){const o={};let i=null,l=null,m,u=!1;function d(){m=new IntersectionObserver(p=>{u||(p.forEach(h=>{const j=n.indexOf(h.target);o[j]=h}),i=null,l=null,a.emit("slidesInView"))},{root:t.parentElement,threshold:c}),n.forEach(p=>m.observe(p))}function w(){m&&m.disconnect(),u=!0}function x(p){return st(o).reduce((h,j)=>{const f=parseInt(j),{isIntersecting:y}=o[f];return(p&&y||!p&&!y)&&h.push(f),h},[])}function g(p=!0){if(p&&i)return i;if(!p&&l)return l;const h=x(p);return p&&(i=h),p||(l=h),h}return{init:d,destroy:w,get:g}}function Qn(t,n,a,c,o,i){const{measureSize:l,startEdge:m,endEdge:u}=t,d=a[0]&&o,w=p(),x=h(),g=a.map(l),k=j();function p(){if(!d)return 0;const y=a[0];return B(n[m]-y[m])}function h(){if(!d)return 0;const y=i.getComputedStyle(ue(c));return parseFloat(y.getPropertyValue(`margin-${u}`))}function j(){return a.map((y,b,D)=>{const L=!b,I=Ft(D,b);return L?g[b]+w:I?g[b]+x:D[b+1][m]-y[m]}).map(B)}return{slideSizes:g,slideSizesWithGaps:k,startGap:w,endGap:x}}function Zn(t,n,a,c,o,i,l,m,u){const{startEdge:d,endEdge:w,direction:x}=t,g=zt(a);function k(f,y){return tt(f).filter(b=>b%y===0).map(b=>f.slice(b,b+y))}function p(f){return f.length?tt(f).reduce((y,b,D)=>{const L=ue(y)||0,I=L===0,T=b===ot(f),E=o[d]-i[L][d],z=o[d]-i[b][w],O=!c&&I?x(l):0,P=!c&&T?x(m):0,R=B(z-P-(E+O));return D&&R>n+u&&y.push(b),T&&y.push(f.length),y},[]).map((y,b,D)=>{const L=Math.max(D[b-1]||0);return f.slice(L,y)}):[]}function h(f){return g?k(f,a):p(f)}return{groupSlides:h}}function Jn(t,n,a,c,o,i,l){const{align:m,axis:u,direction:d,startIndex:w,loop:x,duration:g,dragFree:k,dragThreshold:p,inViewThreshold:h,slidesToScroll:j,skipSnaps:f,containScroll:y,watchResize:b,watchSlides:D,watchDrag:L,watchFocus:I}=i,T=2,E=$n(),z=E.measure(n),O=a.map(E.measure),P=Pn(u,d),R=P.measureSize(z),H=Fn(R),U=Tn(m,R),Y=!x&&!!y,le=x||!!y,{slideSizes:X,slideSizesWithGaps:ee,startGap:te,endGap:be}=Qn(P,z,O,a,le,o),se=Zn(P,R,j,x,z,O,te,be,T),{snaps:me,snapsAligned:ye}=qn(P,U,z,O,se),ne=-ue(me)+ue(ee),{snapsContained:Ee,scrollContainLimit:Pe}=On(R,ne,ye,y,T),G=Y?Ee:ye,{limit:$}=Bn(ne,G,x),de=cs(ot(G),w,x),Q=de.clone(),A=tt(a),N=({dragHandler:fe,scrollBody:Oe,scrollBounds:Ge,options:{loop:Se}})=>{Se||Ge.constrain(fe.pointerDown()),Oe.seek()},M=({scrollBody:fe,translate:Oe,location:Ge,offsetLocation:Se,previousLocation:K,scrollLooper:J,slideLooper:Ke,dragHandler:he,animation:We,eventHandler:Ye,scrollBounds:gt,options:{loop:at}},it)=>{const ze=fe.settled(),$e=!gt.shouldConstrain(),Qe=at?ze:ze&&$e,Ze=Qe&&!he.pointerDown();Ze&&We.stop();const Ce=Ge.get()*it+K.get()*(1-it);Se.set(Ce),at&&(J.loop(fe.direction()),Ke.loop()),Oe.to(Se.get()),Ze&&Ye.emit("settle"),Qe||Ye.emit("scroll")},s=En(c,o,()=>N(Ue),fe=>M(Ue,fe)),q=.68,re=G[de.get()],oe=Xe(re),pe=Xe(re),Z=Xe(re),ae=Xe(re),Ie=Mn(oe,Z,pe,ae,g,q),we=Hn(x,G,ne,$,ae),Ne=Un(s,de,Q,Ie,we,ae,l),ke=Rn($),qe=nt(),Ae=Yn(n,a,l,h),{slideRegistry:Ve}=Vn(Y,y,G,Pe,se,A),He=Gn(t,a,Ve,Ne,Ie,qe,l,I),Ue={ownerDocument:c,ownerWindow:o,eventHandler:l,containerRect:z,slideRects:O,animation:s,axis:P,dragHandler:In(P,t,c,o,ae,zn(P,o),oe,s,Ne,Ie,we,de,l,H,k,p,f,q,L),eventStore:qe,percentOfView:H,index:de,indexPrevious:Q,limit:$,location:oe,offsetLocation:Z,previousLocation:pe,options:i,resizeHandler:Ln(n,l,o,a,P,b,E),scrollBody:Ie,scrollBounds:An($,Z,ae,Ie,H),scrollLooper:_n(ne,$,Z,[oe,Z,pe,ae]),scrollProgress:ke,scrollSnapList:G.map(ke.get),scrollSnaps:G,scrollTarget:we,scrollTo:Ne,slideLooper:Kn(P,R,ne,X,ee,me,G,Z,a),slideFocus:He,slidesHandler:Wn(n,l,D),slidesInView:Ae,slideIndexes:A,slideRegistry:Ve,slidesToScroll:se,target:ae,translate:ls(P,n)};return Ue}function Xn(){let t={},n;function a(d){n=d}function c(d){return t[d]||[]}function o(d){return c(d).forEach(w=>w(n,d)),u}function i(d,w){return t[d]=c(d).concat([w]),u}function l(d,w){return t[d]=c(d).filter(x=>x!==w),u}function m(){t={}}const u={init:a,emit:o,off:l,on:i,clear:m};return u}const er={align:"center",axis:"x",container:null,slides:null,containScroll:"trimSnaps",direction:"ltr",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function tr(t){function n(i,l){return is(i,l||{})}function a(i){const l=i.breakpoints||{},m=st(l).filter(u=>t.matchMedia(u).matches).map(u=>l[u]).reduce((u,d)=>n(u,d),{});return n(i,m)}function c(i){return i.map(l=>st(l.breakpoints||{})).reduce((l,m)=>l.concat(m),[]).map(t.matchMedia)}return{mergeOptions:n,optionsAtMedia:a,optionsMediaQueries:c}}function sr(t){let n=[];function a(i,l){return n=l.filter(({options:m})=>t.optionsAtMedia(m).active!==!1),n.forEach(m=>m.init(i,t)),l.reduce((m,u)=>Object.assign(m,{[u.name]:u}),{})}function c(){n=n.filter(i=>i.destroy())}return{init:a,destroy:c}}function ft(t,n,a){const c=t.ownerDocument,o=c.defaultView,i=tr(o),l=sr(i),m=nt(),u=Xn(),{mergeOptions:d,optionsAtMedia:w,optionsMediaQueries:x}=i,{on:g,off:k,emit:p}=u,h=P;let j=!1,f,y=d(er,ft.globalOptions),b=d(y),D=[],L,I,T;function E(){const{container:A,slides:N}=b;I=(Et(A)?t.querySelector(A):A)||t.children[0];const s=Et(N)?I.querySelectorAll(N):N;T=[].slice.call(s||I.children)}function z(A){const N=Jn(t,I,T,c,o,A,u);if(A.loop&&!N.slideLooper.canLoop()){const M=Object.assign({},A,{loop:!1});return z(M)}return N}function O(A,N){j||(y=d(y,A),b=w(y),D=N||D,E(),f=z(b),x([y,...D.map(({options:M})=>M)]).forEach(M=>m.add(M,"change",P)),b.active&&(f.translate.to(f.location.get()),f.animation.init(),f.slidesInView.init(),f.slideFocus.init(Q),f.eventHandler.init(Q),f.resizeHandler.init(Q),f.slidesHandler.init(Q),f.options.loop&&f.slideLooper.loop(),I.offsetParent&&T.length&&f.dragHandler.init(Q),L=l.init(Q,D)))}function P(A,N){const M=se();R(),O(d({startIndex:M},A),N),u.emit("reInit")}function R(){f.dragHandler.destroy(),f.eventStore.clear(),f.translate.clear(),f.slideLooper.clear(),f.resizeHandler.destroy(),f.slidesHandler.destroy(),f.slidesInView.destroy(),f.animation.destroy(),l.destroy(),m.clear()}function H(){j||(j=!0,m.clear(),R(),u.emit("destroy"),u.clear())}function U(A,N,M){!b.active||j||(f.scrollBody.useBaseFriction().useDuration(N===!0?0:b.duration),f.scrollTo.index(A,M||0))}function Y(A){const N=f.index.add(1).get();U(N,A,-1)}function le(A){const N=f.index.add(-1).get();U(N,A,1)}function X(){return f.index.add(1).get()!==se()}function ee(){return f.index.add(-1).get()!==se()}function te(){return f.scrollSnapList}function be(){return f.scrollProgress.get(f.offsetLocation.get())}function se(){return f.index.get()}function me(){return f.indexPrevious.get()}function ye(){return f.slidesInView.get()}function ne(){return f.slidesInView.get(!1)}function Ee(){return L}function Pe(){return f}function G(){return t}function $(){return I}function de(){return T}const Q={canScrollNext:X,canScrollPrev:ee,containerNode:$,internalEngine:Pe,destroy:H,off:k,on:g,emit:p,plugins:Ee,previousScrollSnap:me,reInit:h,rootNode:G,scrollNext:Y,scrollPrev:le,scrollProgress:be,scrollSnapList:te,
1scrollTo:U,selectedScrollSnap:se,slideNodes:de,slidesInView:ye,slidesNotInView:ne};return O(n,a),setTimeout(()=>u.emit("init"),0),Q}ft.globalOptions=void 0;function Lt(t={},n=[]){const a=C.useRef(t),c=C.useRef(n),[o,i]=C.useState(),[l,m]=C.useState(),u=C.useCallback(()=>{o&&o.reInit(a.current,c.current)},[o]);return C.useEffect(()=>{It(a.current,t)||(a.current=t,u())},[t,u]),C.useEffect(()=>{Sn(c.current,n)||(c.current=n,u())},[n,u]),C.useEffect(()=>{if(kn()&&l){ft.globalOptions=Lt.globalOptions;const d=ft(l,a.current,c.current);return i(d),()=>d.destroy()}else i(void 0)},[l,i]),[m,o]}Lt.globalOptions=void 0;const ds=C.createContext(null);function xt(){const t=C.useContext(ds);if(!t)throw new Error("useCarousel must be used within a <Carousel />");return t}const us=C.forwardRef(({orientation:t="horizontal",opts:n,setApi:a,plugins:c,className:o,children:i,...l},m)=>{const[u,d]=Lt({...n,axis:t==="horizontal"?"x":"y"},c),[w,x]=C.useState(!1),[g,k]=C.useState(!1),p=C.useCallback(y=>{y&&(x(y.canScrollPrev()),k(y.canScrollNext()))},[]),h=C.useCallback(()=>{d?.scrollPrev()},[d]),j=C.useCallback(()=>{d?.scrollNext()},[d]),f=C.useCallback(y=>{y.key==="ArrowLeft"?(y.preventDefault(),h()):y.key==="ArrowRight"&&(y.preventDefault(),j())},[h,j]);return C.useEffect(()=>{!d||!a||a(d)},[d,a]),C.useEffect(()=>{if(d)return p(d),d.on("reInit",p),d.on("select",p),()=>{d?.off("select",p)}},[d,p]),e.jsx(ds.Provider,{value:{carouselRef:u,api:d,opts:n,orientation:t||(n?.axis==="y"?"vertical":"horizontal"),scrollPrev:h,scrollNext:j,canScrollPrev:w,canScrollNext:g},children:e.jsx("div",{ref:m,onKeyDownCapture:f,className:rt("relative",o),role:"region","aria-roledescription":"carousel",...l,children:i})})});us.displayName="Carousel";const ms=C.forwardRef(({className:t,...n},a)=>{const{carouselRef:c,orientation:o}=xt();return e.jsx("div",{ref:c,className:"overflow-hidden",children:e.jsx("div",{ref:a,className:rt("flex",o==="horizontal"?"-ml-4":"-mt-4 flex-col",t),...n})})});ms.displayName="CarouselContent";const ps=C.forwardRef(({className:t,...n},a)=>{const{orientation:c}=xt();return e.jsx("div",{ref:a,role:"group","aria-roledescription":"slide",className:rt("min-w-0 shrink-0 grow-0 basis-full",c==="horizontal"?"pl-4":"pt-4",t),...n})});ps.displayName="CarouselItem";const fs=C.forwardRef(({className:t,variant:n="outline",size:a="icon",...c},o)=>{const{orientation:i,scrollPrev:l,canScrollPrev:m}=xt();return e.jsxs(W,{ref:o,variant:n,size:a,className:rt("absolute  h-8 w-8 rounded-full",i==="horizontal"?"-left-12 top-1/2 -translate-y-1/2":"-top-12 left-1/2 -translate-x-1/2 rotate-90",t),disabled:!m,onClick:l,...c,children:[e.jsx(As,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Previous slide"})]})});fs.displayName="CarouselPrevious";const hs=C.forwardRef(({className:t,variant:n="outline",size:a="icon",...c},o)=>{const{orientation:i,scrollNext:l,canScrollNext:m}=xt();return e.jsxs(W,{ref:o,variant:n,size:a,className:rt("absolute h-8 w-8 rounded-full",i==="horizontal"?"-right-12 top-1/2 -translate-y-1/2":"-bottom-12 left-1/2 -translate-x-1/2 rotate-90",t),disabled:!m,onClick:l,...c,children:[e.jsx(an,{className:"h-4 w-4"}),e.jsx("span",{className:"sr-only",children:"Next slide"})]})});hs.displayName="CarouselNext";function nr(t){return hn({name:Te().min(2,"Name is required"),email:Te().email("Valid email required"),phone:Te().min(5,"Phone is required"),company:Te().optional(),bookingType:Zt(["one_off","multi_date"]),preferredDates:xn(gn()),projectType:Zt(["podcast","video","live_stream","other"]),estimatedDuration:Te().optional(),location:Te().optional(),message:Te().optional(),honeypot:Te().optional()}).refine(n=>!t.preferredDates||n.preferredDates.length>=1,{message:"Select at least one date",path:["preferredDates"]}).refine(n=>!t.preferredDates||!t.bookingType||n.bookingType!=="one_off"||n.preferredDates.length===1,{message:"One-off bookings require exactly one date",path:["preferredDates"]}).refine(n=>!t.estimatedDuration||(n.estimatedDuration?.trim().length??0)>0,{message:"Duration required",path:["estimatedDuration"]}).refine(n=>!t.location||(n.location?.trim().length??0)>0,{message:"Location required",path:["location"]})}function rr(t){return`${t.getFullYear()}
1-${String(t.getMonth()+1).padStart(2,"0")}-${String(t.getDate()).padStart(2,"0")}`}function xs({studioSlug:t,studioName:n,onSuccess:a,submitLabel:c="Send Enquiry",fields:o}){const i=C.useMemo(()=>fn(o),[o]),l=C.useMemo(()=>nr(i),[i]),m=C.useRef(null),[u,d]=C.useState(null),{register:w,handleSubmit:x,control:g,watch:k,setValue:p,formState:{errors:h}}=un({resolver:mn(l),defaultValues:{name:"",email:"",phone:"",company:"",bookingType:"one_off",preferredDates:[],projectType:"podcast",estimatedDuration:"",location:"",message:"",honeypot:""}}),j=k("bookingType"),f=k("preferredDates"),y=as({mutationFn:async b=>{const D={};i.company&&b.company&&(D.company=b.company),i.bookingType&&(D.bookingType=b.bookingType),i.preferredDates&&(D.preferredDates=b.preferredDates.map(rr)),i.projectType&&(D.projectType=b.projectType),i.estimatedDuration&&b.estimatedDuration&&(D.estimatedDuration=b.estimatedDuration),i.location&&b.location&&(D.location=b.location);const L={name:b.name,email:b.email,phone:b.phone,contactTarget:t,subject:`Enquiry about ${n}`,message:i.message?b.message??"":"",honeypot:b.honeypot,metadata:Object.keys(D).length>0?D:void 0,recaptchaToken:u??void 0};return Os(L)},onSuccess:()=>{d(null),m.current?.reset(),a?.()},onError:()=>{Tt.error("Could not send enquiry. Please try again."),d(null),m.current?.reset()}});return e.jsxs("form",{onSubmit:x(b=>{if(!u){Tt.error("Please complete the reCAPTCHA verification.");return}y.mutate(b)}),className:"space-y-4",children:[e.jsx("input",{type:"text",tabIndex:-1,autoComplete:"off",...w("honeypot"),style:{position:"absolute",left:"-9999px",width:1,height:1,opacity:0},"aria-hidden":!0}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{children:[e.jsx(xe,{htmlFor:"contact-name",children:"Name *"}),e.jsx(ve,{id:"contact-name",...w("name"),"data-testid":"contact-name"}),h.name&&e.jsx("p",{className:"text-red-500 text-sm mt-1",children:h.name.message})]}),e.jsxs("div",{children:[e.jsx(xe,{htmlFor:"contact-email",children:"Email *"}),e.jsx(ve,{id:"contact-email",type:"email",...w("email"),"data-testid":"contact-email"}),h.email&&e.jsx("p",{className:"text-red-500 text-sm mt-1",children:h.email.message})]}),e.jsxs("div",{children:[e.jsx(xe,{htmlFor:"contact-phone",children:"Phone *"}),e.jsx(ve,{id:"contact-phone",type:"tel",...w("phone"),"data-testid":"contact-phone"}),h.phone&&e.jsx("p",{className:"text-red-500 text-sm mt-1",children:h.phone.message})]}),i.company&&e.jsxs("div",{children:[e.jsx(xe,{htmlFor:"contact-company",children:"Company"}),e.jsx(ve,{id:"contact-company",...w("company"),"data-testid":"contact-company"})]})]}),i.bookingType&&e.jsxs("div",{children:[e.jsx(xe,{children:"Booking type *"}),e.jsx(Nt,{control:g,name:"bookingType",render:({field:b})=>e.jsxs(pn,{value:b.value,onValueChange:D=>{b.onChange(D),p("preferredDates",[])},className:"flex gap-6 mt-2",children:[e.jsxs("label",{className:"flex items-center gap-2",children:[e.jsx(Qt,{value:"one_off"})," One-off recording"]}),e.jsxs("label",{className:"flex items-center gap-2",children:[e.jsx(Qt,{value:"multi_date"})," Multiple date recordings"]})]})})]}),i.preferredDates&&e.jsxs("div",{children:[e.jsx(xe,{children:"Preferred date(s) *"}),e.jsxs(Bs,{children:[e.jsx(_s,{asChild:!0,children:e.jsx(W,{type:"button",variant:"outline",className:"w-full justify-start",children:f.length===0?"Select date(s)":f.map(b=>b.toLocaleDateString()).join(", ")})}),e.jsx(Rs,{className:"w-[20rem] p-0 z-[300]",children:e.jsx(Nt,{control:g,name:"preferredDates",render:({field:b})=>j==="one_off"?e.jsx(Ht,{mode:"single",selected:b.value[0],onSelect:D=>b.onChange(D?[D]:[]),disabled:D=>D<new Date(new Date().setHours(0,0,0,0))}):e.jsx(Ht,{mode:"multiple",selected:b.value,onSelect:D=>b.onChange(D??[]),disabled:D=>D<new Date(new Date().setHours(0,0,0,0))})})})]}),h.preferredDates&&e.jsx("p",{className:"text-red-500 text-sm mt-1",children:h.preferredDates.message})]}),(i.projectType||i.estimatedDuration)&&e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[i.projectType&&e.jsxs("div",{children:[e.jsx(xe,{children:"Project type *"}),e.jsx(Nt,{control:g,name:"projectType",render:({field:b})=>e.jsxs(qs,{value:b.value,onValueChange:b.onChange,children:[e.jsx(Vs,{"data-testid":"contact-project-type",children:e.jsx(Hs,{})}),e.jsxs(Us,{children:[e.jsx(ut,{value:"podcast",children:"Podcast"}),e.jsx(ut,{value:"video",children:"Video"}),e.jsx(ut,{value:"live_stream",children:"Live stream"}),e.jsx(ut,{value:"other",children:"Other"})]})]})})]}),i.estimatedDuration&&e.jsxs("div",{children:[e.jsx(xe,{htmlFor:"contact-estimated-duration",children:"Estimated duration *"}),e.jsx(ve,{id:"contact-estimated-duration",placeholder:"e.g. 2 hours per session",...w("estimatedDuration")}),h.estimatedDuration&&e.jsx("p",{className:"text-red-500 text-sm mt-1",children:h.estimatedDuration.message})]})]}),i.location&&e.jsxs("div",{children:[e.jsx(xe,{htmlFor:"contact-location",children:"Location *"}),e.jsx(ve,{id:"contact-location",placeholder:"Where will the recording take place?",...w("location")}),h.location&&e.jsx("p",{className:"text-red-500 text-sm mt-1",children:h.location.message})]}),i.message&&e.jsxs("div",{children:[e.jsx(xe,{htmlFor:"contact-message",children:"Message"}),e.jsx(Gs,{id:"contact-message",rows:4,...w("message")})]}),e.jsx("div",{className:"flex justify-center",children:e.jsx(Is,{ref:m,sitekey:"6Ld3rF0sAAAAANCrLTt2om2kWOTibKWSLDNr1141",onChange:b=>d(b),"data-testid":"recaptcha"})}),e.jsx(W,{type:"submit",disabled:y.isPending||!u,className:"w-full md:w-auto",children:y.isPending?"Sending…":c})]})}function or({open:t,onOpenChange:n,studioSlug:a,studioName:c}){const[o,i]=C.useState(!1);return e.jsx(rs,{open:t,onOpenChange:l=>{n(l),l||i(!1)},children:e.jsxs(os,{hideCloseButton:!0,className:"max-w-2xl max-h-[90vh] overflow-y-auto",children:[e.jsx(Ks,{"aria-label":"Close",className:"absolute right-4 top-4 roun
1ded-sm text-zinc-500 hover:text-zinc-900 transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",children:e.jsx(Ws,{className:"h-5 w-5"})}),e.jsxs(Ys,{children:[e.jsxs(Qs,{children:["Contact us about ",c]}),e.jsx(Zs,{children:"Tell us about your project and we'll get back to you."})]}),o?e.jsxs("div",{className:"text-center py-8",children:[e.jsx("h3",{className:"text-xl font-semibold mb-2",children:"Thanks!"}),e.jsx("p",{className:"text-zinc-600 mb-6",children:"We'll be in touch within 1 business day."}),e.jsx(W,{onClick:()=>n(!1),children:"Close"})]}):e.jsx(xs,{studioSlug:a,studioName:c,onSuccess:()=>i(!0),submitLabel:"Send Enquiry"})]})})}function ar({venueName:t,spaces:n,currentSlug:a}){const c=C.useRef(null);return C.useEffect(()=>{const o=c.current,i=document.documentElement;if(!o)return;const l=()=>i.style.setProperty("--room-switcher-h",`${o.offsetHeight}px`);l();const m=new ResizeObserver(l);return m.observe(o),()=>{m.disconnect(),i.style.setProperty("--room-switcher-h","0px")}},[]),n.length<2?null:e.jsx("div",{ref:c,className:"sticky top-20 z-40 w-full bg-black text-white border-b border-white/10 shadow-lg","data-testid":"room-switcher",children:e.jsxs("div",{className:"container mx-auto w-full px-4 py-2 sm:py-2.5 flex flex-col sm:flex-row sm:items-center sm:justify-center gap-2 sm:gap-6",children:[e.jsxs("p",{className:"hidden sm:block text-xs font-bold uppercase tracking-widest text-zinc-400 shrink-0","data-testid":"room-switcher-label",children:[t," · ",n.length," studios"]}),e.jsx("div",{role:"tablist","aria-label":`Studios at ${t}`,className:"grid w-full sm:w-auto sm:inline-flex rounded-full bg-white/10 p-1 gap-1",
1style:{gridTemplateColumns:`repeat(${n.length}, minmax(0, 1fr))`},children:n.map(o=>{const i=o.slug===a,l=o.price?.trim();return e.jsxs(pt,{href:o.href,replace:!0,role:"tab","aria-selected":i,className:`flex flex-col items-center justify-center rounded-full px-3 py-1.5 sm:px-6 sm:py-2 text-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary ${i?"bg-primary text-black shadow":"text-white hover:bg-white/10"}`,"data-testid":`room-tab-${o.slug}`,children:[e.jsx("span",{className:"text-sm font-bold uppercase tracking-wider leading-tight whitespace-nowrap",children:o.label}),(o.comingSoon||l)&&e.jsx("span",{className:`text-[11px] leading-tight whitespace-nowrap ${i?"text-black/70":"text-zinc-400"}`,"data-testid":`room-tab-${o.slug}-meta`,children:o.comingSoon?"Coming soon":l})]},o.id)})})]})})}function ir(t){if(!t)return[];const n=["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],a={monday:"Mon",tuesday:"Tue",wednesday:"Wed",thursday:"Thu",friday:"Fri",saturday:"Sat",sunday:"Sun"};return n.map(c=>{const o=t[c];return!o||o.closed?{day:a[c],hours:"Closed"}:{day:a[c],hours:`${o.open} - ${o.close}`}})}function cr(t){const n=new RegExp("^(\\p{Emoji_Presentation}|\\p{Emoji}\\uFE0F?)\\s*","u"),a=t.match(n);return a?{emoji:a[1],text:t.slice(a[0].length).trim()}:{emoji:"",text:t}}const Dt="space";function gs(t){return[...t].sort((n,a)=>n.name.localeCompare(a.name,void 0,{numeric:!0}))}function lr(t,n){if(!t||t.spaces.length===0)return;const a=gs(t.spaces),c=n?a.find(l=>l.slug===n):void 0;if(c)return c;const o=a.filter(l=>l.canBook!==!1),i=o.length>0?o:a;return i.find(l=>l.id===t.venue.billingStudioId)??i[0]}function dr(t,n){if(!t||!n)return;const{venue:a,spaces:c}=t,o=c.find(i=>i.id===a.billingStudioId)??c[0];return{...n,slug:a.slug,name:a.name,description:n.description||a.description||o.description,image:a.heroImage||n.image,...a.heroImage?{imageFocalX:null,imageFocalY:null}:{},bookingDisabled:!!n.bookingDisabled||n.comingSoon===!0&&n.canBook!==!0,location:o.location,city:o.city,address:o.address,phone:o.phone,whatsapp:o.whatsapp,whatsappConnected:o.whatsappConnected,whatsappBusinessNumber:o.whatsappBusinessNumber,contactEmail:o.contactEmail,enquiriesEmail:o.enquiriesEmail,travelTrain:o.travelTrain,travelBus:o.travelBus,lat:o.lat,lng:o.lng,mapQuery:o.mapQuery,googleMapsUrl:o.googleMapsUrl,googlePlaceId:o.googlePlaceId,operatingHours:o.operatingHours}}function uo({kind:t="studio",kindPending:n=!1}={}){const[,a]=Js("/studios/:id"),c=a?.id,o=t==="venue",i=Xs(),l=C.useMemo(()=>new URLSearchParams(i).get(Dt),[i]),[m,u]=C.useState(null),[d,w]=C.useState("about"),[x,g]=C.useState(!1),[k,p]=C.useState(!1),[h,j]=C.useState(null),[f,y]=C.useState([]),[b,D]=C.useState(!1),[L,I]=C.useState(!1),{data:T}=ge({queryKey:["admin-session-check"],queryFn:async()=>{try{const r=await fetch("/api/admin/me",{credentials:"include"});if(!r.ok)return null;const v=await r.json();return v?.studioAccess==="all"?v:null}catch{return null}},staleTime:300*1e3}),E=!!T,[z,O]=C.useState(()=>new URLSearchParams(window.location.search).get("tour")==="true"),[P,R]=C.useState(null),[H,U]=C.useState(null),[Y,le]=C.useState(""),[X,ee]=C.useState(""),[te,be]=C.useState(""),[se,me]=C.useState(!1),[ye,ne]=C.useState(""),{data:Ee,isLoading:Pe,error:G}=ge({queryKey:["studio",c],queryFn:()=>sn(c),enabled:!!c&&!o,retry:(r,v)=>v?.status===404?!1:r<3}),{data:$,isLoading:de,error:Q}=ge({queryKey:["venue",c],queryFn:async()=>{const r=await fetch(`/api/venues/${c}`);if(!r.ok){const v=new Error("Venue not found");throw v.status=r.status,v}return r.json()},enabled:!!c&&o,retry:(r,v)=>v?.status===404?!1:r<3}),A=C.useMemo(()=>gs($?.spaces??[]),[$]),N=C.useMemo(()=>lr($,l),[$,l]),M=C.useMemo(()=>dr($,N),[$,N]),s=o?M:Ee,q=o&&$&&A.length>1?A.map(r=>({id:r.id,slug:r.slug,label:zs(r.name,$.venue.name),href:`/studios/${$.venue.slug}?${Dt}=${encodeURIComponent(r.slug)}`,price:r.price??null,comingSoon:r.comingSoon===!0})):[],re=o?de:Pe,oe=o?Q:G,{data:pe=[]}=ge({queryKey:["studios"],queryFn:nn}),Z=s?.googlePlaceId,{data:ae}=ge({queryKey:["google-reviews-meta",Z||"none"],enabled:!!Z,staleTime:1e3*60*60,queryFn:async()=>{const r=await fetch(`/api/google-reviews?placeId=${encodeURIComponent(Z)}`);return r.ok?r.json():null}}),{data:Ie=[]}=ge({queryKey:["regions"],queryFn:async()=>{const r=await fetch("/api/regions");return r.ok?r.json():[]}}),we=Ie.find(r=>r.code===(s?.regionCode||"UK"))?.currencySymbol||"£",{data:Ne=[]}=ge({queryKey:["bookable-services"],queryFn:async()=>{const r=await fetch("/api/bookable-services");if(!r.ok)throw new Error("Failed to fetch services");return r.json()}}),{data:ke}=ge({queryKey:["region-pricing",s?.regionCode],queryFn:async()=>{const r=s?.regionCode||"UK",v=await fetch(`/api/editing-prices/${r}`);if(!v.ok){const S=await fetch("/api/site-pricing");if(!S.ok)throw new Error("Failed to fetch pricing");return S.json()}return v.json()},enabled:!!s}),{data:qe=[]}=ge({queryKey:["platform-additional-services-studio",s?.id],queryFn:async()=>
1{if(!s?.id)return[];const r=await fetch(`/api/platform-additional-services/studio/${s.id}`);return r.ok?r.json():[]},enabled:!!s?.id}),Ae=P?`${P.getFullYear()}-${String(P.getMonth()+1).padStart(2,"0")}-${String(P.getDate()).padStart(2,"0")}`:null,{data:Ve=[]}=ge({queryKey:["tour-slots",s?.id,Ae],queryFn:async()=>{const r=E?"&adminOverride=true":"",v=await fetch(`/api/studios/${s.id}/tour-slots?date=${Ae}${r}`,{credentials:"include"});return v.ok?(await v.json()).slots||[]:[]},enabled:!!s?.id&&!!Ae}),He=as({mutationFn:async()=>{const r=await fetch(`/api/studios/${s.id}/book-tour`,{method:"POST",headers:{"Content-Type":"application/json"},credentials:"include",body:JSON.stringify({customerName:Y,customerEmail:X,customerPhone:te||void 0,bookingDate:Ae,startTime:H,...E?{adminOverride:!0}:{}})});if(!r.ok){const v=await r.json();throw new Error(v.error||"Failed to book tour")}return r.json()},onSuccess:r=>{me(!0),ne(r.bookingReference||"")},onError:r=>{Tt.error(r.message)}});C.useEffect(()=>{const r=v=>{v.key==="Escape"&&u(null)};return window.addEventListener("keydown",r),()=>window.removeEventListener("keydown",r)},[]),C.useEffect(()=>{const r=()=>{const S=["about","gallery","pricing","sets","specs","location","studio-tour","enquire"].filter(_=>document.getElementById(_)),F=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--room-switcher-h"))||0,V=window.scrollY+200+F;for(const _ of S){const ie=document.getElementById(_);if(ie){const{offsetTop:ce,offsetHeight:je}=ie;if(V>=ce&&V<ce+je){w(_);break}}}};return window.addEventListener("scroll",r),r(),()=>window.removeEventListener("scroll",r)},[]);const Ue=rn(),fe=s?.regionCode==="ZA"?0:Ue?.discountPct??0,Oe=C.useRef(null);C.useEffect(()=>{const r=Oe.current,v=!!s&&!s.pricingDisabled&&!s.bookingDisabled&&!x;if(!r||!v){document.documentElement.style.setProperty("--book-bar-height","0px");return}const S=()=>document.documentElement.style.setProperty("--book-bar-height",`${r.offsetHeight}px`);S();const F=new ResizeObserver(S);return F.observe(r),()=>{F.disconnect(),document.documentElement.style.setProperty("--book-bar-height","0px")}},[s,x]);const Ge=n&&!o&&G?.status===404;if(re||Ge){const r=window.__STUDIO_SEO__,v=r&&r.slug===c?r:null;return e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center",children:e.jsxs("div",{className:"w-full max-w-xl mx-auto text-center px-4",children:[v&&e.jsxs(e.Fragment,{children:[e.jsx("h1",{className:"text-3xl font-heading font-bold mb-3",children:v.name}),e.jsx("p",{className:"text-zinc-600 mb-6",children:v.subheading})]}),e.jsx("div",{className:"animate-spin rounded-full h-16 w-16 border-4 border-primary border-t-transparent mx-auto mb-4"}),!v&&e.jsx("p",{className:"text-zinc-600",children:"Loading studio..."})]})})}if(oe?.status===404)return e.jsx(Ut,{});if(o&&$&&$.spaces.length===0)return e.jsx(Ut,{});const Se=!o&&s?pe.find(r=>r.id===s.id)?.venue?.slug:void 0;if(Se&&Se!==c&&s)return e.jsx(en,{to:`/studios/${Se}?${Dt}=${encodeURIComponent(s.slug)}`,replace:!0});if(oe||!s)return e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center",children:e.jsxs("div",{className:"text-center px-4",children:[e.jsx("p",{className:"text-zinc-600 mb-4",children:"We couldn't load this studio just now."}),e.jsx("button",{onClick:()=>window.location.reload(),className:"px-6 py-2 rounded-md bg-primary text-primary-foreground font-medium",children:"Try again"})]})});const K=!!s.pricingDisabled,J=!!s.temporarilyClosed,Ke=!!s.tourDisabled||J,he=!!s.bookingDisabled||J,We=(s.images&&s.images.length>0?s.images:[s.image]).filter(r=>!!r),Ye=We.length>0,gt=s.virtualTourUrl,at=!!s.virtualTourUrl,it=o&&N?.comingSoon===!0,ze=o&&N?N.slug:s.slug,$e=o&&N?N.name:s.name,Qe=wn(s.sets),Ze=Qe.length>0,Ce=s.image||We[0],bs=Ce,ys=s.videos&&s.videos.length>0,js=s.priceHireEngineer||ke,Mt=!!(s.mapQuery||s.address),ct=s.accessibilityLevel,vs=s.features&&s.features.length>0||ct==="partial"||ct==="none",Be=s.name.replace(/^Podcast Room\s*[-–—]\s*/i,"").trim(),lt=s.city||s.location,At=s.venueSlug||s.slug,Fe=Object.values(on).find(r=>r.studioSlugs.includes(s.slug)||r.studioSlugs.includes(At)),Ot=Fe?Fe.studioSlugs.filter(r=>r!==s.slug&&r!==At).map(r=>$s(pe).find(v=>v.slug===r)).filter(r=>!!r&&r.visibleOnWebsite!==!1):[],Bt=s.regionCode==="ZA"?"South Africa":"UK",De=s.address?s.address.replace(/\n/g,", ").replace(/,\s*,/g,",").trim():"",bt=(s.googleMapsUrl||"").trim(),yt=bt||(s.address?`https://maps.google.com/?q=${encodeURIComponent(s.address)}`:""),ws=s.address?`${s.name}, ${s.address}`:s.lat&&s.lng?`${s.lat},${s.lng}`:s.mapQuery||s.name,Ns=/\/maps\/embed|output=embed/.test(bt)?bt:`https://maps.google.com/maps?q=${encodeURIComponent(ws)}&z=16&output=embed`,ks=s.regionCode==="ZA"?`Podcast Room ${Be} | Podcast Studio Hire ${lt}, ${Bt}`:`Podcast Room ${Be} | Professional Podcast Studio in ${lt}`,jt=s.description?s.description.replace(/<[^>]*>/g,"").replace(/\s+/g," ").trim():"",_t=jt?`${jt.slice(0,130).trim()}${jt.length>130?"...":""} Book your session at Podcast Room ${Be}${De?`, ${De}`:""}.`:s.regionCode==="ZA"?`Book a professional podcast studio in ${lt}, ${Bt}. Podcast Room ${Be} offers premium recording equipment, multi-camera video, editing services, and hourly studio hire. Book online today.`:`Professional podcast studio at ${De||`Podcast Room ${Be}, ${s.location}`}. Premium recording equipment, video production, and flexible booking. Book your session online.`,_e=s.regionCode==="ZA",Je=typeof window<"u"&&_e?"https://podcast-room.co.za":"https://podcast-room.com",vt=`${Je}/studios/${c}`,Rt=Ce?Ce.startsWith("http")?Ce:`${typeof window<"u"?window.location.origin:Je}${Ce}`:void 0,qt=s.operatingHours&&!J?Object.entries(s.operatingHours).filter(([,r])=>r&&!r.closed).map(([r,v])=>({"@type":"OpeningHoursSpecification",dayOfWeek:r.charAt(0).toUpperCase()+r.slice(1),opens:v.open,closes:v.close})):void 0,Ss={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:Je},{"@type":"ListItem",position:2,name:"Our Locations",item:`${Je}/our-locations`},{"@type":"ListItem",position:3,name:s.name,item:vt}]},Vt={"@context":"https://schema.org","@type":["LocalBusiness","RecordingStudio"],"@id":vt,name:s.name,description:_t,url:vt,image:Rt?[Rt]:void 0,logo:`${Je}/logo.png`,telephone:_e?"+27 11 880 4808":s.phone||"+44 20 4632 2674",email:s.contactEmail||void 0,address:s.address?{"@type":"PostalAddress",streetAddress:s.address,addressLocality:s.city||s.location,addressCountry:_e?"ZA":"GB"}:void 0,geo:s.lat&&s.lng?{"@type":"GeoCoordinates",latitude:s.lat,longitude:s.lng}:void 0,openingHoursSpecification:qt?.length?qt:void 0,priceRange:_e?"R":"££",currenciesAccepted:_e?"ZAR":"GBP",paymentAccepted:"Credit Card, Debit Card, Bank Transfer",areaServed:{"@type":"City",name:s.city||s.location,..._e?{containedInPlace:{"@type":"Country",name:"South Africa"}}:{}},sameAs:[s.googleMapsUrl,"https://www.instagram.com/podcastroomhq","https://facebook.com/podcastroomsw"].filter(
1Boolean),hasOfferCatalog:{"@type":"OfferCatalog",name:"Podcast Studio Services",itemListElement:[{"@type":"Offer",itemOffered:{"@type":"Service",name:"Podcast Studio Hire",description:`Professional podcast studio hire in ${s.city||s.location} with high-end recording equipment, cameras, and soundproofing`}},{"@type":"Offer",itemOffered:{"@type":"Service",name:"Podcast Editing",description:"Professional podcast editing and post-production services including audio mixing and video editing"}},{"@type":"Offer",itemOffered:{"@type":"Service",name:"Video Podcast Recording",description:`Multi-camera video podcast recording at ${s.name} with professional lighting and equipment`}}]}};return Z&&ae?.rating&&ae.userRatingCount>0&&(Vt.aggregateRating={"@type":"AggregateRating",ratingValue:ae.rating,reviewCount:ae.userRatingCount,bestRating:5,worstRating:1}),e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(Ms,{title:ks,description:_t,canonicalPath:`/studios/${c}`,ogImage:Ce}),e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(Vt).replace(/</g,"\\u003c")}}),e.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(Ss).replace(/</g,"\\u003c")}}),e.jsx(Ds,{}),s.id&&e.jsx(dn,{studioId:s.id}),q.length>1&&$&&N&&e.jsx(ar,{venueName:$.venue.name,spaces:q,currentSlug:N.slug}),e.jsxs("div",{className:"relative h-[60vh] bg-black",children:[e.jsx("img",{src:wt(bs,1920),alt:`${s.name} - Professional Podcast Studio${De?` at ${De}`:` in ${s.location}`}`,className:"w-full h-full object-cover opacity-60",style:kt(s),width:1920,height:1080,loading:"eager",fetchPriority:"high",decoding:"async"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-brand-gradient via-black/50 to-transparent"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-full p-8 md:p-16",children:e.jsx("div",{className:"container mx-auto",children:e.jsxs("div",{className:"flex flex-col md:flex-row items-end justify-between gap-6",children:[e.jsxs("div",{children:[e.jsx("span",{className:"inline-block bg-primary text-black font-bold uppercase px-3 py-1 rounded mb-4 text-sm tracking-wider",children:s.location}),J&&e.jsx("span",{className:"inline-block bg-red-600 text-white font-bold uppercase px-3 py-1 rounded mb-4 ml-2 text-sm tracking-wider","data-testid":"hero-temporarily-closed",children:"Temporarily Closed"}),it&&!J&&e.jsx("span",{className:"inline-block bg-white text-black font-bold uppercase px-3 py-1 rounded mb-4 ml-2 text-sm tracking-wider","data-testid":"hero-coming-soon",children:"Coming Soon"}),e.jsx("h1",{className:"text-5xl md:text-7xl font-heading font-bold uppercase text-white mb-2",children:s.name}),e.jsx("p",{className:"text-base md:text-lg text-zinc-300 max-w-2xl line-clamp-2 mb-1",children:s.heroSubheading?.trim()||`Professional podcast studio in ${lt}`}),s.address&&e.jsxs("div",{className:"flex items-center gap-2 text-zinc-400 mt-3 md:hidden","data-testid":"hero-address",children:[e.jsx(St,{className:"w-4 h-4 text-primary flex-shrink-0"}),e.jsx("span",{className:"text-sm",children:s.address})]})]}),!K&&e.jsxs("div",{className:"hidden md:flex flex-col items-end gap-3",children:[e.jsxs("div",{className:"text-white text-right",children:[e.jsx("p",{className:"text-sm text-zinc-400 uppercase tracking-widest mb-1",children:"Starting from"}),e.jsxs("p",{className:"text-4xl font-bold text-primary",children:[e.jsx(Yt,{text:s.price,regionCode:s.regionCode}),s.includeVat&&e.jsx("span",{className:"ml-2",children:e.jsx(Re,{studioName:s.name})})]})]}),e.jsxs(W,{onClick:()=>{he?p(!0):(j(null),g(!0))},className:"bg-primary hover:bg-primary/90 text-black font-semibold uppercase px-5 py-2 text-sm rounded-full border-0","data-testid":"button-hero-book-now",children:[e.jsx(mt,{className:"w-4 h-4 mr-2"}),J?"Notify Me When We Reopen":he?"Register Interest":"Book Now"]})]})]})})})]}),e.jsx("div",{className:"sticky z-40 bg-brand-gradient backdrop-blur-lg border-b border-white/15 shadow-lg",style:{top:"calc(5rem + var(--room-switcher-h, 0px))"},children:e.jsx("div",{className:"container mx-auto px-4",children:e.jsxs("nav",{className:"flex items-center justify-center gap-1 overflow-x-auto scrollbar-hide",children:[e.jsx("a",{href:"#about",onClick:r=>{r.preventDefault(),document.getElementById("about")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="about"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,children:"About"}),Ye&&e.jsx("a",{href:"#gallery",onClick:r=>{r.preventDefault(),document.getElementById("gallery")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="gallery"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,children:"Gallery"}),js&&!K&&e.jsx("a",{href:"#pricing",onClick:r=>{r.preventDefault(),document.getElementById("pricing")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="pricing"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,children:"Pricing"}),Ze&&e.jsx("a",{href:"#sets",onClick:r=>{r.preventDefault(),document.getElementById("sets")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="set
1s"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,"data-testid":"nav-sets",children:"Sets"}),e.jsx("a",{href:"#specs",onClick:r=>{r.preventDefault(),document.getElementById("specs")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="specs"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,children:"Specs"}),Mt&&e.jsx("a",{href:"#location",onClick:r=>{r.preventDefault(),document.getElementById("location")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="location"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,children:"Location"}),!Ke&&e.jsx("a",{href:"#studio-tour",onClick:r=>{r.preventDefault(),document.getElementById("studio-tour")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="studio-tour"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,children:"Tour"}),!K&&!he&&e.jsx("button",{onClick:()=>{j(null),g(!0)},className:"px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer text-white hover:text-primary hover:border-b-2 hover:border-primary",children:"Book"}),e.jsx("a",{href:"#enquire",onClick:r=>{r.preventDefault(),document.getElementById("enquire")?.scrollIntoView({behavior:"smooth",block:"start"})},className:`px-4 py-4 text-sm font-bold uppercase tracking-wider transition-all whitespace-nowrap cursor-pointer ${d==="enquire"?"text-primary border-b-2 border-primary":"text-white hover:text-primary hover:border-b-2 hover:border-primary"}`,children:"Enquire"})]})})}),e.jsx("div",{className:"container mx-auto px-4 py-12 md:py-24",children:e.jsxs("div",{className:"max-w-6xl mx-auto space-y-12",children:[J&&e.jsxs("div",{className:"w-full rounded-2xl border-2 border-red-600/30 bg-red-50 p-6 md:p-8","data-testid":"banner-temporarily-closed",children:[e.jsx("h2",{className:"text-2xl md:text-3xl font-heading font-bold uppercase text-red-700 mb-3",children:"Temporarily Closed"}),e.jsxs("p",{className:"text-zinc-800 text-lg mb-2",children:[s.name," is temporarily closed — but we'll be back. We can't take bookings here right now."]}),e.jsx("p",{className:"text-zinc-600 mb-5",children:"Leave your details and we'll email you the moment we reopen, or record at one of our other studios in the meantime."}),e.jsxs("div",{className:"flex flex-wrap gap-3",children:[e.jsx(W,{onClick:()=>p(!0),className:"bg-red-600 hover:bg-red-700 text-white font-semibold uppercase rounded-full border-0","data-testid":"button-closed-notify-me",children:"Notify me when you reopen"}),e.jsx(W,{asChild:!0,variant:"outline",className:"rounded-full font-semibold uppercase border-zinc-400 text-zinc-800","data-testid":"button-closed-other-studios",children:e.jsx(pt,{href:"/our-locations",children:"See our other studios"})})]})]}),!J&&s.launchDate&&new Date(s.launchDate)>new Date&&e.jsx(ln,{launchDate:s.launchDate,variant:"page"}),e.jsx("div",{id:"about",className:"scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))] space-y-8",children:e.jsxs("div",{children:[e.jsxs("h2",{className:"text-3xl md:text-4xl font-heading font-bold uppercase mb-6",children:["PODCAST RECORDING & FILMING STUDIO",De?` AT ${De.toUpperCase()}`:` IN ${(s.location||Be).toUpperCase()}`]}),e.jsx("p",{className:"text-zinc-600 leading-relaxed text-lg whitespace-pre-line",children:s.description})]})}),Ye&&e.jsxs("div",{id:"gallery",className:"scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))]",children:[e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase mb-6",children:"Gallery"}),e.jsxs(us,{className:"w-full",children:[e.jsx(ms,{children:We.map((r,v)=>e.jsx(ps,{className:"md:basis-1/2 lg:basis-1/3",children:e.jsx("div",{className:"aspect-square bg-zinc-100 rounded-lg overflow-hidden cursor-pointer group",onClick:()=>u(r),"data-testid":`gallery-image-${v}`,children:e.jsx("img",{src:wt(r,800),className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-700",alt:`${s.name} - Image ${v+1}`,loading:"lazy",decoding:"async"})})},v))}),e.jsx(fs,{}),e.jsx(hs,{})]})]}),at&&(()=>{const r=gt||"";let v=r;const S=r.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/shorts\/|youtube\.com\/embed\/)([\w-]+)/);if(S)v=`https://www.youtube.com/embed/${S[1]}?rel=0&modestbranding=1&playsinline=1`;else if(r.includes("vimeo.com/")&&!r.includes("player.vimeo.com")){const F=r.match(/vimeo\.com\/(\d+)/);F&&(v=`https://player.vimeo.com/video/${F[1]}`)}return e.jsxs("div",{id:"virtual-tour",className:"scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))]",children:[e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase mb-6",children:"Video Tour"}),e.jsx("div",{className:"bg-zinc-100 rounded-lg overflow-hidden border border-zinc-200 shadow-lg",children:e.jsx("div",{className:"aspect-video w-full",children:e.jsx("iframe",{src:v,className:"w-full h-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy",title:`Video Tour of ${$e}
1`,"data-testid":"virtual-tour-iframe"})})}),e.jsx("p",{className:"text-sm text-zinc-600 mt-3 text-center",children:"Take a tour of our studio before you book"})]})})(),ys&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase mb-6",children:"Video Examples"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:s.videos?.map((r,v)=>{let S=r;const F=r.match(/(?:youtube\.com\/watch\?v=|youtu\.be\/|youtube\.com\/shorts\/|youtube\.com\/embed\/)([\w-]+)/);if(F)S=`https://www.youtube.com/embed/${F[1]}?rel=0&modestbranding=1&playsinline=1`;else if(r.includes("vimeo.com/")&&!r.includes("player.vimeo.com")){const V=r.match(/vimeo\.com\/(\d+)/);V&&(S=`https://player.vimeo.com/video/${V[1]}`)}return e.jsx("div",{className:"aspect-video bg-zinc-100 rounded-lg overflow-hidden","data-testid":`video-${v}`,children:e.jsx("iframe",{src:S,className:"w-full h-full",allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,loading:"lazy",title:`${s.name} - Video ${v+1}`})},v)})})]})]})}),K&&e.jsx("div",{className:"container mx-auto px-4",children:e.jsx("div",{className:"max-w-6xl mx-auto",children:e.jsxs("div",{className:"bg-white border border-zinc-200 p-8 md:p-12 rounded-lg my-8 text-center",children:[e.jsx("h2",{className:"text-3xl font-heading font-bold uppercase mb-3",children:"Contact us for pricing"}),e.jsx("p",{className:"text-zinc-600 text-lg max-w-xl mx-auto mb-6",children:"This studio is available for off-site and bespoke recordings. Tell us about your project and we'll get back to you."}),e.jsx(W,{size:"lg",onClick:()=>I(!0),"data-testid":"button-request-quote",children:"Request a Quote"})]})})}),!K&&Ne.length>0&&e.jsx("div",{id:"pricing",className:"w-full bg-brand-gradient text-white py-12 md:py-16 scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))]",children:e.jsx("div",{className:"container mx-auto px-4",children:e.jsxs("div",{className:"max-w-6xl mx-auto",children:[e.jsx("h3",{className:"text-2xl md:text-3xl font-heading font-bold uppercase mb-8 text-center",children:"Studio Pricing"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6 mb-8",children:Ne.sort((r,v)=>(r.sortOrder||0)-(v.sortOrder||0)).map((r,v)=>{let S=Ne[0]?.pricePerHour||55;if(s.priceHireEngineer){const dt=parseInt(s.priceHireEngineer.replace(/[^0-9]/g,""));isNaN(dt)||(S=dt)}let F=0,V=null;v===1&&ke?(F=ke.standardEditingPricePence/100,V={name:"Standard Editing",price:F,billingType:"per_hour"}):v===2&&ke&&(F=ke.advancedEditingPricePence/100,V={name:"Advanced Editing",price:F,billingType:"per_hour"});const _=v===0?S:S+F,ie=fe>0?_-S*(fe/100):_,ce=v>0||A.length>1,je=v===0?"👨‍💻":v===1?"✂️":"✨",Le=v===1;return e.jsxs("div",{className:`${Le?"relative bg-white/5 backdrop-blur-lg border border-primary/50 md:scale-[1.02]":"bg-white/5 backdrop-blur-lg border border-white/15"} rounded-2xl p-6 md:p-8 transition hover:-translate-y-1 hover:shadow-[0_8px_30px_rgba(255,241,5,${Le?"0.25":"0.15"})] flex flex-col`,"data-testid":`price-service-${r.id}`,children:[Le&&e.jsx("span",{className:"absolute -top-3 left-4 bg-primary text-black text-xs font-bold px-3 py-1 rounded-full",children:"MOST POPULAR"}),e.jsxs("div",{className:"flex items-center gap-2 mb-3",children:[e.jsx("span",{className:"text-2xl",children:je}),e.jsx("h4",{className:"font-heading font-bold text-lg uppercase leading-tight",children:r.name})]}),e.jsxs("div",{className:"mt-4 mb-4",children:[ce&&e.jsx("span",{className:"text-sm text-zinc-400 block mb-1",children:"From"}),fe>0?e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"text-zinc-500 line-through text-2xl md:text-3xl font-bold align-baseline mr-2",children:[we,_]}),e.jsxs("span",{className:"text-primary text-4xl md:text-5xl font-bold align-baseline",children:[we,Number.isInteger(ie)?ie:ie.toFixed(2)]})]}):e.jsxs("span",{className:"text-primary text-4xl md:text-5xl font-bold align-baseline",children:[we,_]}),e.jsx("span",{className:"ml-1 text-sm text-zinc-300",children:"/ph"}),s.includeVat&&e.jsx("div",{className:"mt-1",children:e.jsx(Re,{studioName:s.name})})]}),e.jsx("p",{className:"text-sm text-zinc-300 mb-4",children:r.description}),r.includes&&r.includes.length>0&&e.jsx("ul",{className:"space-y-2 mb-6 flex-1",children:r.includes.map((dt,Cs)=>e.jsxs("li",{className:"flex items-center gap-2 text-sm text-zinc-300",children:[e.jsx("span",{className:"text-primary",children:"✓"}),dt]},Cs))}),!he&&e.jsx(W,{onClick:()=>{y(V?[V]:[]),j(Ne[0]),g(!0)},className:"w-full bg-primary text-black hover:bg-primary/90 font-bold uppercase border-0 mt-auto","data-testid":`button-book-service-${v}`,children:"Book Now"})]},r.id)})}),s.additionalServices&&s.additionalServices.length>0&&e.jsxs("div",{className:"mt-8",children:[e.jsx("h4",{className:"font-heading font-bold text-xl uppercase mb-4 text-center",children:"Additional Services"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:s.additionalServices.map((r,v)=>e.jsxs("div",{className:"flex items-center justify-between p-4 bg-white/5 backdrop-blur-sm border border-white/10 rounded-lg hover:bg-white/10 transition-colors","data-testid":`additional-service-${v}`,children:[e.jsx("span",{className:"font-medium text-white",children:r.name}),e.jsxs("span",{className:"font-bold text-primary flex items-center gap-1",children:[r.price,r.billingType==="per_hour"?" p/h":"",s.includeVat&&e.jsx(Re,{studioName:s.name})]})]},v))})]}),qe.filter(r=>r.active).length>0&&e.jsxs("div",{className:"mt-8",children:[e.jsx("h4",{className:"font-heading font-bold text-xl uppercase mb-4 text-center",children:"Additional Services"}),e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:qe.filter(r=>r.active).map(r=>{const v=s?.regionCode==="ZA"&&r.pricePenceZA?r.pricePenceZA/100:r.pricePence/100,S=s?.regionCode==="ZA"?"R":"£";return e.jsxs("div",{className:"flex items-center justify-between p-4 bg-white/5 backdrop-blur-sm border border-white/10 rounded-lg hover:bg-white/10 transition-colors","data-testid":`platform-service-${r.id}`,children:[e.jsx("span",{className:"font-medium text-white",children:r.name}),e.jsxs("span",{className:"font-bold text-primary flex items-center gap-1",children:[S,v.toFixed(2),r.billingType==="per_hour"?" p/h":cn(r)?" each":"",s?.includeVat&&e.jsx(Re,{studioName:s.name})]})]},r.id)})})]})]})})}),e.jsx("div",{className:"container mx-auto px-4 py-12 md:py-24 pb-32",children:e.jsxs("div",{className:"max-w-6xl mx-auto 
1space-y-12",children:[Ze&&e.jsxs("div",{id:"sets",className:"scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))]","data-testid":"section-sets",children:[e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase mb-2",children:"Sets"}),e.jsx("p",{className:"text-zinc-500 mb-6",children:K?"Choose the look for your recording when you book.":"Choose the look for your recording when you book. Sets marked Included cost nothing extra; any surcharge is added to your hire."}),e.jsx("div",{"data-testid":`sets-group-${s.id}`,children:e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 items-start",children:Qe.map(r=>{const v=vn(r,we);return e.jsxs("div",{className:"bg-white border-2 border-zinc-200 rounded-xl overflow-hidden flex flex-col","data-testid":`set-card-${r.name.toLowerCase().replace(/\s+/g,"-")}`,children:[r.imageUrl&&e.jsx("img",{src:r.imageUrl,alt:r.name,loading:"lazy",className:"w-full h-44 object-cover"}),e.jsxs("div",{className:"p-4 flex flex-col gap-2 flex-1",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsx("span",{className:"font-bold text-lg leading-tight",children:r.name}),!K&&(v.included?e.jsx("span",{className:"text-xs font-semibold text-emerald-600 uppercase whitespace-nowrap mt-1","data-testid":"set-price-included",children:"Included"}):e.jsx("span",{className:"font-bold text-zinc-900 whitespace-nowrap","data-testid":"set-price",children:v.label}))]}),r.description&&e.jsx("p",{className:"text-sm text-zinc-600",children:r.description}),!K&&!v.included&&e.jsxs("span",{className:"text-xs text-zinc-500 flex items-center gap-1 mt-auto",children:[v.cadence,s.includeVat&&e.jsx(Re,{studioName:s.name})]})]})]},r.id)})})})]}),vs&&e.jsxs("div",{id:"specs",className:"scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))]",children:[e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase mb-6",children:"Studio Specs"}),s.features&&s.features.length>0&&e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:s.features.map((r,v)=>{const{emoji:S,text:F}=cr(r);return e.jsxs("div",{className:"flex items-center gap-3 p-4 border border-zinc-200 rounded-lg bg-white hover:bg-zinc-50 transition-colors","data-testid":`spec-${v}`,children:[S&&e.jsx("span",{className:"text-2xl flex-shrink-0",children:S}),e.jsx("span",{className:"font-medium text-zinc-700",children:F||r})]},v)})}),ct==="none"&&e.jsxs("div",{className:"mt-4 flex gap-3 p-4 rounded-lg border border-red-200 bg-red-50",children:[e.jsxs("svg",{className:"w-6 h-6 flex-shrink-0 text-blue-600 mt-0.5",viewBox:"0 0 512 512",fill:"currentColor","aria-hidden":"true",children:[e.jsx("circle",{cx:"233.3",cy:"56.9",r:"56.9"}),e.jsx("path",{d:"M426.2 401.5l-31.8-92.7c-5.9-17.3-22.2-28.9-40.5-28.9H253v-80.5h83.1c17.7 0 32-14.3 32-32s-14.3-32-32-32H253v-7.8c0-19.4-15.7-35.1-35.1-35.1s-35.1 15.7-35.1 35.1V313c0 19.4 15.7 35.1 35.1 35.1h130.6l26.3 76.6C382 441.2 397 452 414 452c4.2 0 8.4-.7 12.5-2.1 20.7-7.1 31.7-29.7 24.6-50.4h-24.9z"}),e.jsx("path",{d:"M326.5 395.7c-13.5 48.7-58 84.4-110.8 84.4-63.5 0-115.1-51.6-115.1-115.1 0-46.1 27.3-86.1 66.9-104.9v-72.8C102.6 208.3 64 273.2 64 365c0 84.1 68.3 152.4 152.4 152.4 68.7 0 126.8-45.7 147-107.9l-36.9-13.8z"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-red-900 text-sm",children:"Not wheelchair accessible"}),s.stepsDescription&&e.jsx("p",{className:"text-red-800 text-sm mt-0.5",children:s.stepsDescription})]})]}),ct==="partial"&&e.jsxs("div",{className:"mt-4 flex gap-3 p-4 rounded-lg border border-amber-200 bg-amber-50",children:[e.jsxs("svg",{className:"w-6 h-6 flex-shrink-0 text-blue-600 mt-0.5",viewBox:"0 0 512 512",fill:"currentColor","aria-hidden":"true",children:[e.jsx("circle",{cx:"233.3",cy:"56.9",r:"56.9"}),e.jsx("path",{d:"M426.2 401.5l-31.8-92.7c-5.9-17.3-22.2-28.9-40.5-28.9H253v-80.5h83.1c17.7 0 32-14.3 32-32s-14.3-32-32-32H253v-7.8c0-19.4-15.7-35.1-35.1-35.1s-35.1 15.7-35.1 35.1V313c0 19.4 15.7 35.1 35.1 35.1h130.6l26.3 76.6C382 441.2 397 452 414 452c4.2 0 8.4-.7 12.5-2.1 20.7-7.1 31.7-29.7 24.6-50.4h-24.9z"}),e.jsx("path",{d:"M326.5 395.7c-13.5 48.7-58 84.4-110.8 84.4-63.5 0-115.1-51.6-115.1-115.1 0-46.1 27.3-86.1 66.9-104.9v-72.8C102.6 208.3 64 273.2 64 365c0 84.1 68.3 152.4 152.4 152.4 68.7 0 126.8-45.7 147-107.9l-36.9-13.8z"})]}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-amber-900 text-sm",children:"Semi accessible — limited wheelchair access"}),s.stepsDescription&&e.jsx("p",{className:"text-amber-800 text-sm mt-0.5",children:s.stepsDescription})]})]})]}),Mt&&e.jsxs("div",{id:"location",className:"scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))]",children:[e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase mb-2",children:"Location"}),s.address&&e.jsx("p",{className:"text-zinc-500 mb-6 text-base","data-testid":"location-address",children:De}),e.jsx("div",{className:"bg-zinc-100 rounded-lg overflow-hidden border border-zinc-200",style:{height:"400px"},children:e.jsx("iframe",{src:Ns,width:"100%",height:"100%",style:{border:0},allowFullScreen:!0,loading:"lazy",referrerPolicy:"no-referrer-when-downgrade",title:`Map of ${s.name}`,"data-testid":"studio-map"})}),yt&&e.jsxs("a",{href:yt,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 mt-3 text-sm font-semibold text-zinc-700 hover:text-primary transition-colors","data-testid":"view-on-google-maps",children:[e.jsx(St,{className:"w-4 h-4"}),"View on Google Maps"]})]}),(s.travelTrain||s.travelBus)&&e.jsxs("div",{children:[e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase mb-6",children:"How To Get Here"}),e.jsxs("div",{className:"space-y-4",children:[s.travelTrain&&e.jsxs("div",{className:"flex items-start gap-4 p-4 bg-white border border-zinc-200 rounded-lg","data-testid":"travel-train",children:[e.jsx("div",{className:"text-2xl flex-shrink-0",children:"🚆"}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-bold text-lg mb-1",children:"By Train"}),e.jsx("p",{className:"text-zinc-600",children:s.travelTrain})]})]}),s.travelBus&&e.jsxs("div",{className:"flex items-start gap-4 p-4 bg-white border border-zinc-200 rounded-lg","data-testid":"travel-bus",children:[e.jsx("div",{className:"text-2xl flex-shrink-0",children:"🚌"}),e.jsxs("div",{children:[e.jsx("h4",{className:"font-bold text-lg mb-1",children:"By Bus"}),e.jsx("p",{className:"text-zinc-600",children:s.travelBus})]})]})]})]}),(()=>{const r=ir(s.operatingHours);return r.length>0?e.jsxs("div",{className:"bg-zinc-50 border border-zinc-200 p-8 rounded-2xl",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx("div",{className:"w-12 h-12 bg-primary rounded-full flex items-center justify-center",children:e.jsx(Gt,{className:"w-6 h-6 text-black"})}),e.jsx("h4",{className:"font-bold text-xl uppercase",children:"Opening Hours"})]}),e.jsx("div",{className:"grid grid-cols-2 sm:grid-cols-4 lg:grid-cols-7 gap-3",children:r.map(({day:v,hours:S})=>e.jsxs("div",{className:"text-center py-3 px-2 bg-white rounded-xl border border-zinc-100",children:[e.jsx("div",{className:"font-bold text-zinc-900 text-sm mb-1",children:v}),e.jsx("div",{className:`text-xs ${S==="Closed"?"text-zinc-400 italic":"text-zinc-600"}`,children:S})]},v))})]}):null})(),(s.phone||s.whatsapp||s.address||s.contactEmail||s.whatsappConnected&&s.whatsappBusinessNumber)&&e.jsxs("div",{id:"contact",className:"bg-zinc-50 border border-zinc-200 p-8 rounded-2xl",children:[e.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[e.jsx("div",{className:"w-12 h-12 bg-primary rounded-full flex items-center justify-center",children:e.jsx(Jt,{className:"w-6 h-6 text-black"})}),e.jsx("h4",{className:"font-bold text-xl uppercase",children:"Contact Details"})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[s.phone&&e.jsxs("a",{href:`tel:${s.phone.replace(/\s/g,"")}`,className:"flex items-center gap-3 p-4 bg-white rounded-xl border border-zinc-100 hover:border-primary/30 hover:bg-primary/5 transition-colors","data-testid":"contact-phone",children:[e.jsx("div",{className:"w-10 h-10 bg-zinc-100 rounded-full flex items-center justify-center flex-shrink-0",children:e.jsx(Jt,{className:"w-5 h-5 text-zinc-700"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-zinc-500 font-medium uppercase tracking-wider",children:"Phone"}),e.jsx("p",{className:"text-sm font-semibold text-zinc-900",children:s.phone})]})]}),s.whatsappConnected&&s.whatsappBusinessNumber?e.jsxs("a",{href:`https://wa.me/${s.whatsappBusinessNumber.replace(/[^0-9]/g,"")}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 p-4 bg-white rounded-xl border border-zinc-100 hover:border-green-300 hover:bg-green-50 transition-colors","data-testid":"contact-whatsapp",children:[e.jsx("div",{className:"w-10 h-10 bg-green-100 rounded-full flex items-center justify-center flex-shrink-0",children:e.jsx(Kt,{className:"w-5 h-5 text-green-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-zinc-500 font-medium uppercase tracking-wider",children:"WhatsApp"}),e.jsx("p",{className:"text-sm font-semibold text-zinc-900",children:s.whatsappBusinessNumber})]})]}):s.whatsapp?e.jsxs("a",{href:`https://wa.me/${s.whatsapp.replace(/[^0-9]/g,"")}`,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 p-4 bg-white rounded-xl border border-zinc-100 hover:border-green-300 hover:bg-green-50 transition-colors","data-testid":"contact-whatsapp",children:[e.jsx("div",{className:"w-10 h-10 bg-green-100 rounded-full flex items-center justify-center flex-shrink-0",children:e.jsx(Kt,{className:"w-5 h-5 text-green-600"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-zinc-500 font-medium uppercase tracking-wider",children:"WhatsApp"}),e.jsx("p",{className:"text-sm font-semibold text-zinc-900",children:s.whatsapp})]})]}
1):null,s.contactEmail&&e.jsxs("a",{href:`mailto:${s.contactEmail}`,className:"flex items-center gap-3 p-4 bg-white rounded-xl border border-zinc-100 hover:border-primary/30 hover:bg-primary/5 transition-colors","data-testid":"contact-email",children:[e.jsx("div",{className:"w-10 h-10 bg-zinc-100 rounded-full flex items-center justify-center flex-shrink-0",children:e.jsx(yn,{className:"w-5 h-5 text-zinc-700"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-zinc-500 font-medium uppercase tracking-wider",children:"Email"}),e.jsx("p",{className:"text-sm font-semibold text-zinc-900",children:s.contactEmail})]})]}),s.address&&e.jsxs("a",{href:yt,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 p-4 bg-white rounded-xl border border-zinc-100 hover:border-primary/30 hover:bg-primary/5 transition-colors","data-testid":"contact-address",children:[e.jsx("div",{className:"w-10 h-10 bg-zinc-100 rounded-full flex items-center justify-center flex-shrink-0",children:e.jsx(St,{className:"w-5 h-5 text-zinc-700"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs text-zinc-500 font-medium uppercase tracking-wider",children:"Address"}),e.jsx("p",{className:"text-sm font-semibold text-zinc-900",children:s.address})]})]})]})]}),!Ke&&e.jsxs("div",{id:"studio-tour",className:"relative overflow-hidden rounded-2xl scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))] bg-primary","data-testid":"studio-tour-section",children:[e.jsx("div",{className:"absolute top-0 right-0 w-96 h-96 bg-black/5 rounded-full blur-3xl -translate-y-1/2 translate-x-1/3"}),e.jsx("div",{className:"absolute bottom-0 left-0 w-64 h-64 bg-black/5 rounded-full blur-3xl translate-y-1/3 -translate-x-1/4"}),e.jsx("div",{className:"relative p-8 md:p-12 lg:p-16",children:e.jsxs("div",{className:"flex flex-col md:flex-row items-center gap-8",children:[e.jsxs("div",{className:"flex-1 text-center md:text-left",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 bg-black/10 border border-black/15 rounded-full px-4 py-1.5 mb-4",children:[e.jsxs("span",{className:"relative flex h-2.5 w-2.5",children:[e.jsx("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full bg-black opacity-40"}),e.jsx("span",{className:"relative inline-flex rounded-full h-2.5 w-2.5 bg-black"})]}),e.jsx("span",{className:"text-sm font-bold text-black uppercase tracking-wider",children:"Free 15-Minute Tour"})]}),e.jsxs("h3",{className:"text-3xl md:text-4xl lg:text-5xl font-heading font-bold uppercase text-black mb-4 leading-tight",children:["See It Before",e.jsx("br",{}),"You Book It"]}),e.jsxs("p",{className:"text-black/70 text-lg max-w-lg",children:["Walk through ",s.name,", test the equipment, and chat with our team. Completely free, no strings attached."]}),e.jsxs("div",{className:"flex items-center gap-6 mt-6 justify-center md:justify-start",children:[e.jsxs("div",{className:"flex items-center gap-2 text-black/70",children:[e.jsx(Gt,{className:"w-4 h-4 text-black"}),e.jsx("span",{className:"text-sm",children:"15 minutes"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-black/70",children:[e.jsx(Ct,{className:"w-4 h-4 text-black"}),e.jsx("span",{className:"text-sm",children:"Full studio access"})]}),e.jsxs("div",{className:"flex items-center gap-2 text-black/70",children:[e.jsx(Wt,{className:"w-4 h-4 text-black"}),e.jsx("span",{className:"text-sm",children:"100% free"})]})]})]}),e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[e.jsxs(W,{onClick:()=>O(!0),className:"bg-black hover:bg-black/85 text-primary font-bold uppercase px-10 py-7 text-lg rounded-full whitespace-nowrap shadow-[0_8px_30px_rgba(0,0,0,0.2)] hover:shadow-[0_8px_40px_rgba(0,0,0,0.35)] transition-all duration-300","data-testid":"button-book-tour",children:[e.jsx(Ct,{className:"w-6 h-6 mr-2"}),"Book a Free Tour"]}),e.jsx("span",{className:"text-black/50 text-xs",children:"No payment required"})]})]})})]}),e.jsx(rs,{open:z&&!Ke,onOpenChange:r=>{r||(O(!1),me(!1),ne(""),R(null),U(null),le(""),ee(""),be(""))},children:e.jsxs(os,{className:"bg-[#FFF105] border-black/10 max-w-lg max-h-[90vh] overflow-y-auto p-0 [&>button.absolute]:text-black [&>button.absolute]:opacity-100 [&>button.absolute]:hover:opacity-70",children:[E&&e.jsx("div",{className:"bg-black text-[#FFF105] text-xs font-semibold text-center py-1.5 px-4 uppercase tracking-wider",children:"Admin Mode — Booking as Admin"}),se?e.jsxs("div",{className:"p-8 text-center",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-16 h-16 bg-black/10 border-2 border-black/30 rounded-full mb-4 animate-[scale-in_0.3s_ease-out]",children:e.jsx(Wt,{className:"w-8 h-8 text-black"})}),e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase text-black mb-2",children:"Tour Booked!"}),e.jsxs("p",{className:"text-black/70 mb-1",children:["Your studio tour has been confirmed. We've sent the details to ",e.jsx("strong",{className:"text-black",children:X}),"."]}),ye&&e.jsxs("p",{className:"text-black/60 text-sm mb-6",children:["Reference: ",e.jsx("span",{className:"font-mono font-bold text-black",children:ye})]}),e.jsx(W,{variant:"outline",onClick:()=>{me(!1),O(!1),R(null),U(null),le(""),ee(""),be("")},className:"border-black/30 text-black hover:bg-black/10","data-testid":"button-close-tour-success",children:"Close"})]}):e.jsxs("div",{className:"p-6 space-y-6","data-testid":"tour-booking-form",children:[e.jsxs("div",{className:"text-center",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 bg-black/10 border border-black/15 rounded-full px-4 py-1.5 mb-3",children:[e.jsx(Ct,{className:"w-4 h-4 text-black"}),e.jsx("span",{className:"text-sm font-bold text-black uppercase tracking-wider",children:"Free 15-Minute Tour"})]}),e.jsx("h3",{className:"text-2xl font-heading font-bold uppercase text-black",children:"Book a Studio Tour"}),e.jsxs("p",{className:"text-black/60 text-sm mt-1",children:["Walk through ",s?.name,", test the equipment, and chat with our team."]})]}),P&&H?e.jsxs("div",{className:"flex items-center justify-between bg-black/10 rounded-xl px-4 py-3 border border-black/15",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(mt,{className:"w-5 h-5 text-black"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-black font-bold text-sm",children:P.toLocaleDateString("en-GB",{weekday:"long",day:"numeric",month:"long"})}),e.jsxs("p",{className:"text-black/70 text-sm",children:[H," · 15 mins · Free"]})]})]}),e.jsx("button",{onClick:()=>{R(null),U(null)},className:"text-sm font-bold text-black underline underline-offset-2 hover:text-black/70 transition-colors","data-testid":"button-change-tour-datetime",children:"Change"})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm font-bold text-black uppercase tracking-wider mb-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 bg-black text-primary rounded-full text-xs font-black",children:"1"}),"Choose a Date"]}),e.jsx("div",{className:"flex flex-wrap gap-2",children:Array.from({length:14},(r,v)=>{const S=new Date;S.setDate(S.getDate()+1),S.setHours(0,0,0,0);
1const F=s.launchDate?new Date(s.launchDate):null;F&&F.setHours(0,0,0,0);const V=F&&F>S?F:S,_=new Date(V);_.setDate(_.getDate()+v);const ie=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],ce=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],je=P&&_.toDateString()===P.toDateString();return e.jsxs("button",{onClick:()=>{R(new Date(_)),U(null)},className:`flex flex-col items-center px-3 py-2 rounded-xl text-sm transition-all duration-200 ${je?"bg-black border-2 border-black text-primary font-bold shadow-lg":"bg-white/50 border border-black/10 hover:border-black/30 hover:bg-white/70 text-black"}`,"data-testid":`tour-date-${v}`,children:[e.jsx("span",{className:"text-xs opacity-70",children:ie[_.getDay()]}),e.jsx("span",{className:"font-bold text-base",children:_.getDate()}),e.jsx("span",{className:"text-xs opacity-70",children:ce[_.getMonth()]})]},v)})})]}),P&&e.jsxs("div",{children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm font-bold text-black uppercase tracking-wider mb-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 bg-black text-primary rounded-full text-xs font-black",children:"2"}),"Choose a Time"]}),Ve.length===0?e.jsx("p",{className:"text-black/60 text-sm py-3 px-4 bg-white/40 rounded-xl border border-black/10",children:"No times available on this date. Please try another day."}):e.jsx("div",{className:"grid grid-cols-4 sm:grid-cols-5 gap-2",children:Ve.map(r=>e.jsx("button",{onClick:()=>U(r),className:`px-3 py-2.5 rounded-xl text-sm font-medium transition-all duration-200 ${H===r?"bg-black border-2 border-black text-primary font-bold shadow-lg":"bg-white/50 border border-black/10 hover:border-black/30 hover:bg-white/70 text-black"}`,"data-testid":`tour-time-${r}`,children:r},r))})]})]}),P&&H&&e.jsxs(e.Fragment,{children:[e.jsxs("div",{children:[e.jsxs("label",{className:"flex items-center gap-2 text-sm font-bold text-black uppercase tracking-wider mb-3",children:[e.jsx("span",{className:"inline-flex items-center justify-center w-6 h-6 bg-black text-primary rounded-full text-xs font-black",children:"2"}),"Your Details"]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[e.jsx(ve,{placeholder:"Your name *",value:Y,onChange:r=>le(r.target.value),className:"bg-white/60 border-black/10 text-black placeholder:text-black/40 focus:border-black/30 focus:ring-black/10 rounded-xl h-12","data-testid":"input-tour-name"}),e.jsx(ve,{type:"email",placeholder:"Email address *",value:X,onChange:r=>ee(r.target.value),className:"bg-white/60 border-black/10 text-black placeholder:text-black/40 focus:border-black/30 focus:ring-black/10 rounded-xl h-12","data-testid":"input-tour-email"}),e.jsx(ve,{placeholder:"Phone number (optional)",value:te,onChange:r=>be(r.target.value),className:"sm:col-span-2 bg-white/60 border-black/10 text-black placeholder:text-black/40 focus:border-black/30 focus:ring-black/10 rounded-xl h-12","data-testid":"input-tour-phone"})]})]}),e.jsx("div",{className:"flex flex-col gap-3 pt-2",children:e.jsx(W,{onClick:()=>He.mutate(),disabled:!Y.trim()||!X.includes("@")||He.isPending,className:"bg-black hover:bg-black/85 text-primary font-bold uppercase px-10 py-6 text-base rounded-full w-full shadow-[0_8px_30px_rgba(0,0,0,0.2)] hover:shadow-[0_8px_40px_rgba(0,0,0,0.35)] transition-all duration-300 disabled:opacity-50","data-testid":"button-confirm-tour",children:He.isPending?"Booking...":"Confirm Tour Booking"})})]})]})]})}),e.jsx("div",{id:"enquire",className:"bg-white border border-zinc-200 p-8 md:p-12 rounded-lg scroll-mt-[calc(10rem_+_var(--room-switcher-h,0px))]",children:e.jsx("div",{className:"max-w-2xl mx-auto",children:b?e.jsxs("div",{className:"text-center py-8","data-testid":"form-success-message",children:[e.jsx("div",{className:"inline-flex items-center justify-center w-20 h-20 bg-primary/20 rounded-full mb-6 animate-[scale-in_0.3s_ease-out]",children:e.jsx("svg",{className:"w-10 h-10 text-black animate-[check-draw_0.5s_ease-out_0.2s_both]",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",style:{strokeDasharray:24,strokeDashoffset:0},children:e.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:3,d:"M5 13l4 4L19 7",className:"animate-[draw-check_0.4s_ease-out_0.3s_both]",style:{strokeDasharray:24,animation:"draw-check 0.4s ease-out 0.3s both"}})})}),e.jsx("h3",{className:"text-2xl md:text-3xl font-heading font-bold uppercase mb-3 text-black",children:"Message Sent!"}),e.jsx("p",{className:"text-zinc-600 text-lg mb-6",children:"Thank y
1ou for your enquiry. Someone from our team will be in touch with you shortly."}),e.jsx(W,{onClick:()=>D(!1),variant:"outline",className:"border-zinc-300","data-testid":"button-send-another",children:"Send Another Message"}),e.jsx("style",{children:`
2                      @keyframes scale-in {
3                        0% { transform: scale(0); opacity: 0; }
4                        50% { transform: scale(1.1); }
5                        100% { transform: scale(1); opacity: 1; }
6                      }
7                      @keyframes draw-check {
8                        0% { stroke-dashoffset: 24; }
9                        100% { stroke-dashoffset: 0; }
10                      }
11                    `})]}):e.jsxs(e.Fragment,{children:[!K&&e.jsx("p",{className:"text-center text-zinc-600 mb-2",children:"Not ready to book?"}),e.jsx("h3",{className:"text-2xl md:text-3xl font-heading font-bold uppercase mb-8 text-center",children:"Enquire Below"}),s&&(K?e.jsx(xs,{studioSlug:ze,studioName:$e,fields:s.enquiryFields,onSuccess:()=>D(!0),submitLabel:"Send Message"}):e.jsx(Fs,{studioSlug:ze,studioName:$e,regionCode:s.regionCode,onSuccess:()=>D(!0),submitLabel:"Send Message"}))]})})}),!K&&e.jsxs("div",{className:"relative overflow-hidden rounded-2xl bg-zinc-900",children:[e.jsxs("div",{className:"absolute inset-0",children:[e.jsx("img",{src:s.image,alt:s.name,className:"w-full h-full object-cover opacity-10",style:kt(s)}),e.jsx("div",{className:"absolute inset-0 bg-zinc-900/90"})]}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center pointer-events-none overflow-hidden",children:e.jsxs("svg",{className:"absolute w-[200%] h-full opacity-[0.12]",viewBox:"0 0 1200 200",preserveAspectRatio:"none",children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"waveGrad",x1:"0",y1:"0",x2:"1",y2:"0",children:[e.jsx("stop",{offset:"0%",stopColor:"#FFF105",stopOpacity:"0"}),e.jsx("stop",{offset:"20%",stopColor:"#FFF105",stopOpacity:"1"}),e.jsx("stop",{offset:"80%",stopColor:"#FFF105",stopOpacity:"1"}),e.jsx("stop",{offset:"100%",stopColor:"#FFF105",stopOpacity:"0"})]})}),(()=>{const r=[];for(let S=0;S<120;S++){const F=S/120*1200,V=Math.abs(S-120/2)/(120/2),_=1-V*V,ie=Math.sin(S*.7)*.3+Math.sin(S*1.3)*.2+Math.sin(S*2.1)*.15+Math.sin(S*3.7)*.1,ce=Math.max(4,(_*.8+ie*.5+.2)*160),je=100-ce/2,Le=(Math.sin(S*.5)*.5+.5)*1.5;r.push(e.jsx("rect",{x:F,y:je,width:5,height:ce,rx:2.5,fill:"url(#waveGrad)",style:{animation:`waveformPulse 2.5s ease-in-out ${Le}s infinite alternate`,transformOrigin:`${F+2.5}px 100px`}},S))}return r})()]})}),e.jsx("div",{className:"absolute inset-0 flex items-center justify-center pointer-events-none overflow-hidden",children:e.jsx("svg",{className:"absolute w-[200%] h-full opacity-[0.06]",viewBox:"0 0 1200 200",preserveAspectRatio:"none",children:(()=>{const r=[];for(let S=0;S<120;S++){const F=S/120*1200+5,V=Math.abs(S-120/2)/(120/2),_=1-V*V,ie=Math.cos(S*.9)*.35+Math.sin(S*1.7)*.25+Math.cos(S*2.8)*.15,ce=Math.max(3,(_*.7+ie*.4+.15)*140),je=100-ce/2,Le=(Math.cos(S*.4)*.5+.5)*2;r.push(e.jsx("rect",{x:F,y:je,width:4,height:ce,rx:2,fill:"#FFF105",style:{animation:`waveformPulse 3s ease-in-out ${Le}s infinite alternate`,transformOrigin:`${F+2}px 100px`}},S))}return r})()})}),e.jsxs("div",{className:"relative p-10 md:p-16 flex flex-col items-center justify-center gap-8 text-center",children:[e.jsxs("div",{className:"flex flex-col items-center gap-4",children:[e.jsxs("div",{className:"relative",children:[e.jsx("span",{className:"absolute inset-0 rounded-full bg-red-500/30 animate-ping",style:{animationDuration:"2s"}}),e.jsx("span",{className:"absolute -inset-3 rounded-full bg-red-500/10 animate-pulse"}),e.jsx("div",{className:"relative w-16 h-16 rounded-full bg-gradient-to-br from-red-500 to-red-600 shadow-[0_0_30px_rgba(239,68,68,0.5),0_0_60px_rgba(239,68,68,0.2)] flex items-center justify-center animate-pulse",style:{animationDuration:"2s"},children:e.jsx("div",{className:"w-7 h-7 rounded-full bg-red-300/80"})})]}),e.jsxs("div",{children:[e.jsx("h3",{className:"text-3xl md:text-4xl lg:text-5xl font-heading font-bold uppercase text-white mb-2",children:J?"We'll Be Back":"Ready to Record?"}),e.jsx("p",{className:"text-zinc-400 text-lg",children:J?`${s.name} is temporarily closed — get notified the moment we reopen`:`Book your session at ${s.name} today`})]})]}),e.jsxs(W,{onClick:()=>{he?p(!0):(j(null),g(!0))},className:"bg-primary hover:bg-primary/90 text-black font-bold uppercase px-10 py-7 text-lg rounded-full whitespace-nowrap shadow-[0_0_30px_rgba(255,241,5,0.3)] hover:shadow-[0_0_50px_rgba(255,241,5,0.5)] transition-all duration-300","data-testid":"button-cta-book-now",children:[e.jsx(mt,{className:"w-5 h-5 mr-2"}),J?"Notify Me When We Reopen":he?"Register Interest":"Book Now"]})]}),e.jsx("style",{children:`
12                @keyframes waveformPulse {
13                  0% { transform: scaleY(0.4);
13 opacity: 0.6; }
14                  50% { transform: scaleY(1); opacity: 1; }
15                  100% { transform: scaleY(0.5); opacity: 0.7; }
16                }
17              `})]})]})}),!K&&!he&&e.jsxs("div",{ref:Oe,className:`fixed bottom-0 left-0 right-0 bg-primary shadow-[0_-4px_20px_rgba(255,241,5,0.3)] z-[9999] overflow-hidden transition-transform duration-300 ${x?"translate-y-full":"translate-y-0"}`,style:{paddingBottom:"env(safe-area-inset-bottom, 0px)"},"data-testid":"sticky-booking-bar",children:[e.jsx("div",{className:"absolute inset-0 bg-gradient-to-r from-transparent via-white/40 to-transparent animate-shimmer-fast"}),e.jsx("div",{className:"container mx-auto px-4 py-3 relative",children:e.jsxs("div",{className:"flex items-center justify-center gap-4",children:[e.jsxs("div",{className:"hidden md:flex items-center gap-3 text-black",children:[e.jsxs("div",{className:"relative flex-shrink-0",children:[e.jsx("span",{className:"absolute inset-0 rounded-full bg-red-500/40 animate-ping",style:{animationDuration:"2s"}}),e.jsx("div",{className:"relative w-4 h-4 rounded-full bg-red-500 shadow-[0_0_8px_rgba(239,68,68,0.6)]",style:{animation:"recBlink 2s ease-in-out infinite"}})]}),e.jsxs("span",{className:"text-sm font-medium",children:["Ready to ",e.jsx("span",{className:"font-bold text-red-600",style:{animation:"recBlink 2s ease-in-out infinite"},children:"record"}),"?"]}),e.jsx("span",{className:"font-bold",children:e.jsx(Yt,{text:s.price,strikeClassName:"line-through text-black/40 font-normal mr-1",regionCode:s.regionCode})}),s.includeVat&&e.jsx(Re,{studioName:s.name})]}),e.jsx("style",{children:`
18                @keyframes recBlink {
19                  0%, 100% { opacity: 1; }
20                  50% { opacity: 0.3; }
21                }
22              `}),e.jsxs(W,{onClick:()=>{j(null),y([]),g(!0)},className:"bg-black hover:bg-black/85 text-primary font-semibold uppercase px-6 py-2 rounded-full text-sm border-0","data-testid":"button-sticky-book-now",children:[e.jsx(mt,{className:"w-4 h-4 mr-2"}),"Book This Studio"]})]})})]}),!K&&e.jsx(Ls,{open:x,onOpenChange:r=>{g(r),r||(j(null),y([]))},initialStudio:o?N:s,initialVenueId:o?$?.venue.id:void 0,initialService:h||void 0,preSelectedExtras:f}),m&&e.jsxs("div",{className:"fixed inset-0 bg-black/90 z-50 flex items-center justify-center p-4",onClick:()=>u(null),"data-testid":"lightbox",children:[e.jsx("button",{className:"absolute top-4 right-4 text-white text-4xl hover:text-primary transition-colors",onClick:()=>u(null),"data-testid":"lightbox-close",children:"×"}),e.jsx("img",{src:m,alt:"Gallery fullscreen",className:"max-w-full max-h-full object-contain",onClick:r=>r.stopPropagation()})]}),s&&e.jsx(or,{open:L,onOpenChange:I,studioSlug:ze,studioName:$e}),s&&e.jsx(bn,{open:k,onOpenChange:p,studioSlug:ze,studioName:$e,variant:J?"reopening":"default"}),Fe&&Ot.length>0&&e.jsx("section",{className:"py-16 bg-zinc-50 border-t border-zinc-200",children:e.jsxs("div",{className:"container mx-auto px-4 max-w-6xl",children:[e.jsxs("div",{className:"flex items-center justify-between mb-8 flex-wrap gap-4",children:[e.jsxs("h2",{className:"text-2xl md:text-3xl font-heading font-bold uppercase",children:["More podcast studios in ",Fe.name]}),e.jsxs(pt,{href:`/podcast-studio-${Fe.key}`,className:"inline-flex items-center gap-2 text-sm font-bold uppercase tracking-wider text-zinc-700 hover:text-primary transition-colors","data-testid":"link-city-hub",children:["View all ",Fe.name," studios ",e.jsx(tn,{className:"w-4 h-4"})]})]}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:Ot.map(r=>e.jsxs(pt,{href:`/studios/${r.slug}`,className:"group block rounded-lg overflow-hidden border border-zinc-200 bg-white hover:shadow-lg transition-all","data-testid":`sibling-${r.slug}`,children:[e.jsx("div",{className:"aspect-[4/3] overflow-hidden",children:e.jsx("img",{src:wt(r.image,500),alt:`${r.name} — podcast studio in ${r.location||Fe.name}`,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500",style:kt(r),loading:"lazy",decoding:"async"})}),e.jsxs("div",{className:"p-3",children:[e.jsx("h3",{className:"text-sm font-heading font-bold uppercase truncate group-hover:text-primary transition-colors",title:r.name,children:r.name}),e.jsx("p",{className:"text-xs text-zinc-500 truncate",children:r.location})]})]},r.id))})]})}),e.jsx(Ps,{placeId:Z}),e.jsx(Es,{}),e.jsx(Ts,{}),!K&&!he&&e.jsx("div",{"aria-hidden":"true",style:{height:"calc(4.5rem + env(safe-area-inset-bottom, 0px))"},"data-testid":"sticky-booking-bar-spacer"})]})}
22export{uo as default};

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.