1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,18581,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return n}});let s=e.r(71645);function n(e,t){let a=(0,s.useRef)(null),n=(0,s.useRef)(null);return(0,s.useCallback)(s=>{if(null===s){let e=a.current;e&&(a.current=null,e());let t=n.current;t&&(n.current=null,t())}else e&&(a.current=r(e,s)),t&&(n.current=r(t,s))},[e,t])}function r(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let a=e(t);return"function"==typeof a?a:()=>e(null)}}("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},67423,(e,t,a)=>{"use strict";function s({widthInt:e,heightInt:t,blurWidth:a,blurHeight:n,blurDataURL:r,objectFit:i}){let l=a?40*a:e,o=n?40*n:t,d=l&&o?`viewBox='0 0 ${l} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${d}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${d?"none":"contain"===i?"xMidYMid":"cover"===i?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${r}'/%3E%3C/svg%3E`}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImageBlurSvg",{enumerable:!0,get:function(){return s}})},87690,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s={VALID_LOADERS:function(){return r},imageConfigDefault:function(){return i}};for(var n in s)Object.defineProperty(a,n,{enumerable:!0,get:s[n]});let r=["default","imgix","cloudinary","akamai","custom"],i={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(33525);let s=e.r(43369),n=e.r(67423),r=e.r(87690),i=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function d({src:e,sizes:t,unoptimized:a=!1,priority:u=!1,preload:c=!1,loading:p,className:m,quality:x,width:g,height:h,fill:f=!1,style:b,overrideSrc:j,onLoad:v,onLoadingComplete:y,placeholder:E="empty",blurDataURL:k,fetchPriority:w,decoding:N="async",layout:_,objectFit:P,objectPosition:S,lazyBoundary:C,lazyRoot:I,...O},M){var R;let T,A,L,{imgConf:z,showAltText:D,blurComplete:$,defaultLoader:F}=M,q=z||r.imageConfigDefault;if("allSizes"in q)T=q;else{let e=[...q.deviceSizes,...q.imageSizes].sort((e,t)=>e-t),t=q.deviceSizes.sort((e,t)=>e-t),a=q.qualities?.sort((e,t)=>e-t);T={...q,allSizes:e,deviceSizes:t,qualities:a}}if(void 0===F)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let B=O.loader||F;delete O.loader,delete O.srcSet;let K="__next_img_default"in B;if(K){if("custom"===T.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop. 2Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,
2configurable:!0})}else{let e=B;B=t=>{let{config:a,...s}=t;return e(s)}}if(_){"fill"===_&&(f=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[_];e&&(b={...b,...e});let a={responsive:"100vw",fill:"100vw"}[_];a&&!t&&(t=a)}let W="",U=o(g),G=o(h);if((R=e)&&"object"==typeof R&&(l(R)||void 0!==R.src)){let t=l(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(A=t.blurWidth,L=t.blurHeight,k=k||t.blurDataURL,W=t.src,!f)if(U||G){if(U&&!G){let e=U/t.width;G=Math.round(t.height*e)}else if(!U&&G){let e=G/t.height;U=Math.round(t.width*e)}}else U=t.width,G=t.height}let H=!u&&!c&&("lazy"===p||void 0===p);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(a=!0,H=!1),T.unoptimized&&(a=!0),K&&!T.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(a=!0);let V=o(x),J=Object.assign(f?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:P,objectPosition:S}:{},D?{}:{color:"transparent"},b),Y=$||"empty"===E?null:"blur"===E?`url("data:image/svg+xml;charset=utf-8,${(0,n.getImageBlurSvg)({widthInt:U,heightInt:G,blurWidth:A,blurHeight:L,blurDataURL:k||"",objectFit:J.objectFit})}")`:`url("${E}")`,X=i.includes(J.objectFit)?"fill"===J.objectFit?"100% 100%":"cover":J.objectFit,Q=Y?{backgroundSize:X,backgroundPosition:J.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},Z=function({config:e,src:t,unoptimized:a,width:n,quality:r,sizes:i,loader:l}){if(a){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,s.getDeploymentId)();if(e){let a=t.indexOf("?");if(-1!==a){let s=new URLSearchParams(t.slice(a+1));s.get("dpl")||(s.append("dpl",e),t=t.slice(0,a)+"?"+s.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:o,kind:d}=function({deviceSizes:e,allSizes:t},a,s){if(s){let a=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=a.exec(s);)n.push(parseInt(e[2]));if(n.length){let a=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*a),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof a?{widths:e,kind:"w"}:{widths:[...new Set([a,2*a].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,n,i),u=o.length-1;return{sizes:i||"w"!==d?i:"100vw",srcSet:o.map((a,s)=>`${l({config:e,src:t,quality:r,width:a})} ${"w"===d?a:s+1}${d}`).join(", "),src:l({config:e,src:t,quality:r,width:o[u]})}}({config:T,src:e,unoptimized:a,width:U,quality:V,sizes:t,loader:B}),ee=H?"lazy":p;return{props:{...O,loading:ee,fetchPriority:w,width:U,height:G,decoding:N,className:m,style:{...J,...Q},sizes:Z.sizes,srcSet:Z.srcSet,src:j||Z.src},meta:{unoptimized:a,preload:c||u,placeholder:E,fill:f}}}},98879,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return l}});let s=e.r(71645),n="u"<typeof window,r=n?()=>{}:s.useLayoutEffect,i=n?()=>{}:s.useEffect;function l(e){let{headManager:t,reduceComponentsToState:a}=e;function l(){if(t&&t.mountedInstances){let e=s.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(a(e))}}return n&&(t?.mountedInstances?.add(e.children),l()),r(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),r(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),i(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s={default:function(){return g},defaultHead:function(){return c}};for(var n in s)Object.defineProperty(a,n,{enumerable:!0,get:s[n]});let r=e.r(55682),i=e.r(90809),l=e.r(43476),o=i._(e.r(71645)),d=r._(e.r(98879)),u=e.r(42732);function c(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===o.default.Fragment?e.concat(o.default.Children.toArray(t.props.children).reduce((e,t)=>
2"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let m=["name","httpEquiv","charSet","itemProp"];function x(e){let t,a,s,n;return e.reduce(p,[]).reverse().concat(c().reverse()).filter((t=new Set,a=new Set,s=new Set,n={},e=>{let r=!0,i=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){i=!0;let a=e.key.slice(e.key.indexOf("$")+1);t.has(a)?r=!1:t.add(a)}switch(e.type){case"title":case"base":a.has(e.type)?r=!1:a.add(e.type);break;case"meta":for(let t=0,a=m.length;t<a;t++){let a=m[t];if(e.props.hasOwnProperty(a))if("charSet"===a)s.has(a)?r=!1:s.add(a);else{let t=e.props[a],s=n[a]||new Set;("name"!==a||!i)&&s.has(t)?r=!1:(s.add(t),n[a]=s)}}}return r})).reverse().map((e,t)=>{let a=e.key||t;return o.default.cloneElement(e,{key:a})})}let g=function({children:e}){let t=(0,o.useContext)(u.HeadManagerContext);return(0,l.jsx)(d.default,{reduceComponentsToState:x,headManager:t,children:e})};("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},18556,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"ImageConfigContext",{enumerable:!0,get:function(){return r}});let s=e.r(55682)._(e.r(71645)),n=e.r(87690),r=s.default.createContext(n.imageConfigDefault)},65856,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"RouterContext",{enumerable:!0,get:function(){return s}});let s=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,a)=>{"use strict";function s(e,t){let a=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-a)<Math.abs(e-a)?t:e,t.qualities[0]):a}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"findClosestQuality",{enumerable:!0,get:function(){return s}})},1948,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return i}});let s=e.r(70965),n=e.r(43369);function r({config:e,src:t,width:a,quality:i}){let l=(0,n.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let a=new URLSearchParams(t.slice(e+1)),s=a.get("dpl");if(s){l=s,a.delete("dpl");let n=a.toString();t=t.slice(0,e)+(n?"?"+n:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns. 3Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,s.findClosestQuality)(i,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${a}&q=${o}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}r.__next_img_default=!0;let i=r},85437,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"Image",{enumerable:!0,get:function(){return v}});let s=e.r(55682),n=e.r(90809),r=e.r(43476),i=n._(e.r(71645)),l=s._(e.r(74080)),o=s._(e.r(25633)),d=e.r(8927),u=e.r(87690),c=e.r(18556);e.r(33525);let p=e.r(65856),m=s._(e.r(1948)),x=e.r(18581),g={deviceSizes:[640,750,828,1080,1200,1920],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,a,s,n,r,i){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),a?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let s=!1,n=!1;a.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>s,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{s=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}s?.current&&s.current(e)}}))}function f(e){return i.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,i.forwardRef)(({src:e,srcSet:t,sizes:a,height:s,width:n,decoding:l,className:o,style:d,fetchPriority:u,placeholder:c,loading:p,unoptimized:m,fill:g,onLoadRef:b,onLoadingCompleteRef:j,setBlurComplete:v,setShowAltText:y,sizesInput:E,onLoad:k,onError:w,...N},_)=>{let P=(0,i.useCallback)(e=>{e&&(w&&(e.src=e.src),e.complete&&h(e,c,b,j,v,m,E))},[e,c,b,j,v,w,m,E]),S=(0,x.useMergedRef)(_,P);return(0,r.jsx)("img",{...N,...f(u),loading:p,width:n,height:s,decoding:l,"data-nimg":g?"fill":"1",className:o,style:d,sizes:a,srcSet:t,src:e,ref:S,onLoad:e=>{h(e.currentTarget,c,b,j,v,m,E)},onError:e=>{y(!0),"empty"!==c&&v(!0),w&&w(e)}})});function j({isAppRouter:e,imgAttributes:t}){let a={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...f(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,a),null):(0,r.jsx)(o.default,{children:(0,r.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...a},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,i.forwardRef)((e,t)=>{let a=(0,i.useContext)(p.RouterContext),s=(0,i.useContext)(c.ImageConfigContext),n=(0,i.useMemo)(()=>{let e=g||s||u.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>
3e-t),a=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:a,qualities:n,localPatterns:"u"<typeof window?s?.localPatterns:e.localPatterns}},[s]),{onLoad:l,onLoadingComplete:o}=e,x=(0,i.useRef)(l);(0,i.useEffect)(()=>{x.current=l},[l]);let h=(0,i.useRef)(o);(0,i.useEffect)(()=>{h.current=o},[o]);let[f,v]=(0,i.useState)(!1),[y,E]=(0,i.useState)(!1),{props:k,meta:w}=(0,d.getImgProps)(e,{defaultLoader:m.default,imgConf:n,blurComplete:f,showAltText:y});return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(b,{...k,unoptimized:w.unoptimized,placeholder:w.placeholder,fill:w.fill,onLoadRef:x,onLoadingCompleteRef:h,setBlurComplete:v,setShowAltText:E,sizesInput:e.sizes,ref:t}),w.preload?(0,r.jsx)(j,{isAppRouter:!a,imgAttributes:k}):null]})});("function"==typeof a.default||"object"==typeof a.default&&null!==a.default)&&void 0===a.default.__esModule&&(Object.defineProperty(a.default,"__esModule",{value:!0}),Object.assign(a.default,a),t.exports=a.default)},94909,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var s={default:function(){return u},getImageProps:function(){return d}};for(var n in s)Object.defineProperty(a,n,{enumerable:!0,get:s[n]});let r=e.r(55682),i=e.r(8927),l=e.r(85437),o=r._(e.r(1948));function d(e){let{props:t}=(0,i.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image/",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,a]of Object.entries(t))void 0===a&&delete t[e];return{props:t}}let u=l.Image},57688,(e,t,a)=>{t.exports=e.r(94909)},25599,e=>{"use strict";let t={annualEur:49,monthlyEur:6.99};function a(e){return`â¬${e%1==0?e:e.toFixed(2)}`}async function s(){let e="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImdiZWNob3hvdWVoYWliZ21hZHpsIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzA5MDY1ODYsImV4cCI6MjA4NjQ4MjU4Nn0.RsEbPFTn_JzemLWUdfdoKHnPHGbewu9pCYAaBX2gksY";try{let a=await fetch("https://gbechoxouehaibgmadzl.supabase.co/rest/v1/app_config?key=eq.subscription_pricing&select=value",{headers:{apikey:e,Authorization:`Bearer ${e}`},next:{revalidate:300}});if(!a.ok)return t;let s=await a.json(),n=Array.isArray(s)&&s.length>0?s[0].value:void 0;return function(e){if("object"!=typeof e||null===e||Array.isArray(e))return null;let t=e.regular;if("object"!=typeof t||null===t||Array.isArray(t))return null;let a=Number(t.annual_price_eur),s=Number(t.monthly_price_eur);return!Number.isFinite(a)||a<=0||!Number.isFinite(s)||s<=0?null:{annualEur:a,monthlyEur:s}}(n)??t}catch{return t}}e.s(["FALLBACK_PRICING",0,t,"formatEuro",0,a,"formatEuroEt",0,function(e){return a(e).replace(".",",")},"getMembershipPricing",0,s,"perMonthEur",0,function(e){return Math.round(e/12*100)/100},"savePercent",0,function(e){let t=12*e.monthlyEur;return t<=0?0:Math.round((t-e.annualEur)/t*100)},"toCents",0,function(e){return Math.round(100*e)}])},30642,e=>{"use strict";e.s(["FALLBACK_ACTIVE_DEAL_COUNT",0,229,"FALLBACK_PARTNER_COUNT",0,119,"plus",0,function(e){return`${e}+`}])},74473,e=>{"use strict";var t=e.i(43476),a=e.i(57688),s=e.i(71645);let n=[{slug:"olde-hansa",name:"Olde Hansa",scale:1.05},{slug:"fika",name:"Fika"},{slug:"troika",name:"Troika",scale:1.25},{slug:"labocca",name:"La Bocca",scale:.95},{slug:"elevant",name:"Elevant",scale:1.25},{slug:"db",name:"DB",scale:1.2},{slug:"lapizzeria",name:"La Pizzeria di Orm Oja"},{slug:"gourmet-club",name:"Gourmet Club",scale:1.2},{slug:"varav",name:"Värav"},{slug:"junimperium",name:"Junimperium",scale:1.15},{slug:"como",name:"Como Restoran",scale:1.15},{slug:"lennusulps",name:"Lennusulps",scale:1.1},{slug:"ferment",name:"Ferment",scale:1.2},{slug:"brooder",name:"Brööder",scale:1.1},{slug:"veino",name:"Veino"},{slug:"kivi-paber-kaarid",name:"Kivi Paber Käärid",scale:1.2},{slug:"fire-and-ice",name:"Fire and Ice",scale:1.05},{slug:"my-sushi",name:"My Sushi"},{slug:"fotografiska",name:"Fotografiska",scale:1.1},{slug:"pegasus",name:"Pegasus",scale:1.1},{slug:"nomade",name:"Nomade",scale:1.05},{slug:"arkel",name:"Ãrkel",scale:1.1}];var r=e.i(30642);e.s(["default",0,function({partnerCount:e=r.FALLBACK_PARTNER_COUNT,activeDealCount:i=r.FALLBACK_ACTIVE_DEAL_COUNT,underNavbar:l=!0,showDealCount:o=!0}){let d=[...n,...n],u=(0,s.useRef)(null),c=e=>{let t=u.current?.getAnimations?.()[0];t&&(t.playbackRate=e)};return(0,t.jsxs)("section",{className:`${l?"pt-[82px] md:pt-[74px]":"pt-10 md:pt-12"} pb-6 md:pb-8 bg-background`,children:[(0,t.jsxs)("div",{className:"partner-marquee relative overflow-hidden bg-[#c4a77d] border-y border-black/10 py-2.5 md:py-3",onMouseEnter:()=>c(.2),onMouseLeave:()=>c(1),children:[(0,t.jsx)("div",{className:"pointer-events-none absolute inset-y-0 left-0 z-10 w-16 md:w-32 bg-gradient-to-r from-[#c4a77d] to-transparent"}),(0,t.jsx)("div",{className:"pointer-events-none absolute inset-y-0 right-0 z-10 w-16 md:w-32 bg-gradient-to-l from-[#c4a77d] to-transparent"}),(0,t.jsx)("ul",{ref:u,className:"partner-marquee-track items-center [--logo-h:22px] md:[--logo-h:26px] [--logo-w:104px] md:[--logo-w:140px]",children:d.map((e,s)=>(0,t.jsx)("li",{className:"flex-shrink-0 flex items-center justify-center mr-10 md:mr-14","aria-hidden":s>=n.length,children:(0,t.jsx)(a.default,{src:`/partners/logos-white/${e.slug}.png`,alt:e.name,title:e.name,width:200,height:52,className:"w-auto h-auto object-contain opacity-90",style:{maxHeight:`calc(var(--logo-h) * ${e.scale??1})`,maxWidth:"var(--logo-w)"}})},`${e.slug}-${s}`))})]}),(0,t.jsxs)("p",{className:"mt-3.5 text-center font-label uppercase tracking-[0.3em] text-[10px] text-outline/60",children:[(0,t.jsx)("span",{className:"text-primary",children:(0,r.plus)(e)})," ",(0,t.jsx)("span",{"data-lang":"en",children:"Partners"}),(0,t.jsx)("span",{"data-lang":"et",children:"Partnerit"}),o&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"mx-2 text-outline/30",children:"·"}),(0,t.jsx)("span",{className:"text-primary",children:(0,r.plus)(i)})," ",(0,t.jsx)("span",{"data-lang":"en",children:"Active Deals"}),(0,t.jsx)("span",{"data-lang":"et",children:"Aktiivset Pakkumist"})]})]})]})}],74473)},93529,e=>{"use strict";var t=e.i(43476),a=e.i(71645);e.s(["default",0,function({children:e,className:s="",delay:n=0}){let r=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=r.current;if(!e)return;let t=new IntersectionObserver(([a])=>{a.isIntersecting&&(n&&(e.style.transitionDelay=`${n}s`),e.classList.add("revealed"),t.unobserve(e))},{rootMargin:"-80px"});return t.observe(e),()=>t.disconnect()},[n]),(0,t.jsx)("div",{ref:r,className:`scroll-reveal ${s}`,children:e})}])},21369,e=>{"use strict";var t=e.i(43476),a=e.i(57688);function s({src:e,alt:n,priority:r=!1}){return(0,t.jsxs)("div",{className:"relative flex-shrink-0 w-[200px] h-[410px] sm:w-[240px] sm:h-[490px] md:w-[260px] md:h-[532px] lg:w-[280px] lg:h-[572px]",children:[(0,t.jsx)("div",{className:"absolute -inset-[2px] rounded-[46px] opacity-40",style:{background:"linear-gradient(135deg, rgba(225,194,150,0.4) 0%, transparent 40%, transparent 60%, rgba(196,167,125,0.3) 100%)"}}),(0,t.jsx)("div",{className:"absolute inset-0 rounded-[44px] bg-[#111]",style:{boxShadow:"inset 0 0 0 2px #333, inset 0 0 0 4px #1a1a1a, 0 0 40px rgba(225,194,150,0.12), 0 0 80px rgba(196,167,125,0.06), 0 40px 80px rgba(0,0,0,0.35), 0 15px 30px rgba(0,0,0,0.2)"}}),(0,t.jsx)("div",{className:"absolute -right-[3px] top-[140px] w-[3px] h-[50px] bg-[#2a2a2a] rounded-r-[2px]"}),(0,t.jsx)("div",{className:"absolute -left-[3px] top-[110px] w-[3px] h-[30px] bg-[#2a2a2a] rounded-l-[2px]"}),(0,t.jsx)("div",{className:"absolute -left-[3px] top-[155px] w-[3px] h-[50px] bg-[#2a2a2a] rounded-l-[2px]"}),(0,t.jsx)("div",{className:"absolute -left-[3px] top-[215px] w-[3px] h-[50px] bg-[#2a2a2a] rounded-l-[2px]"}),(0,t.jsx)("div",{className:"absolute inset-[12px] rounded-[33px] overflow-hidden bg-[#0d0d0d]",children:(0,t.jsx)(a.default,{src:e,alt:n,fill:!0,sizes:"(max-width: 640px) 200px, (max-width: 1024px) 260px, 280px",className:"object-cover object-top",priority:r})})]})}e.s(["default",0,function(){return(0,t.jsxs)("div",{className:"relative flex gap-7 items-start justify-center",children:[(0,t.jsx)("div",{className:"absolute left-1/2 top-1/2 w-[400px] h-[400px] md:w-[600px] md:h-[600px] lg:w-[700px] lg:h-[700px] rounded-full pointer-events-none animate-glow-pulse",style:{transform:"translate(-50%, -50%)",background:"radial-gradient(circle, rgba(225,194,150,0.18) 0%, rgba(196,167,125,0.06) 50%, transparent 70%)"}}),(0,t.jsx)("div",{className:"animate-fade-up",children:(0,t.jsx)("div",{className:"animate-phone-float-left",children:(0,t.jsx)(s,{src:"/images/app/home-deals.png",alt:"Nomi Pass â Deals and savings home screen",priority:!0})})}),(0,t.jsx)("div",{className:"animate-fade-up",style:{animationDelay:"0.2s"},children:(0,t.jsx)("div",{className:"animate-phone-float-right mt-[60px]",children:(0,t.jsx)(s,{src:"/images/app/discover-map.png",alt:"Nomi Pass â Discover nearby venues and deals"})})})]})}])},63743,e=>{"use strict";var t=e.i(43476),a=e.i(71645);function s(e,t){return Number.isInteger(e)?Math.floor(t*e).toLocaleStr
3ing():(t*e).toFixed(2)}e.s(["counterDisplay",0,s,"default",0,function({target:e,prefix:n="",suffix:r="",duration:i=1.5,className:l=""}){let o=(0,a.useRef)(null),[d,u]=(0,a.useState)(!1),[c,p]=(0,a.useState)(()=>s(e,0));return(0,a.useEffect)(()=>{let e=o.current;if(!e)return;let t=new IntersectionObserver(([a])=>{a.isIntersecting&&(u(!0),t.unobserve(e))},{rootMargin:"0px"});return t.observe(e),()=>t.disconnect()},[]),(0,a.useEffect)(()=>{if(!d)return;let t=performance.now();requestAnimationFrame(function a(n){let r=Math.min((n-t)/1e3/i,1);p(s(e,1-Math.pow(1-r,3))),r<1&&requestAnimationFrame(a)})},[d,e,i]),(0,t.jsxs)("span",{ref:o,className:l,children:[n,c,r]})}])},15775,e=>{"use strict";var t=e.i(43476),a=e.i(71645);e.s(["default",0,function(){let e=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let t=e.current;if(!t)return;let a=t.querySelectorAll(".hw-card"),s=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add("revealed"),s.unobserve(e.target))})},{rootMargin:"-80px"});return a.forEach(e=>s.observe(e)),()=>s.disconnect()},[]),(0,t.jsx)("section",{id:"how-it-works",className:"py-24 md:py-32 px-6 md:px-12 lg:px-24",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,t.jsxs)("div",{className:"text-center mb-16",children:[(0,t.jsxs)("span",{className:"font-label text-primary uppercase tracking-[0.3em] text-xs block mb-4",children:[(0,t.jsx)("span",{"data-lang":"en",children:"How It Works"}),(0,t.jsx)("span",{"data-lang":"et",children:"Kuidas toimib"})]}),(0,t.jsxs)("h2",{className:"font-headline text-4xl md:text-5xl text-on-surface mb-6",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Three taps. Instant savings."}),(0,t.jsx)("span",{"data-lang":"et",children:"Kolm sammu. Kohe säästad."})]}),(0,t.jsxs)("p",{className:"text-outline max-w-2xl mx-auto text-base md:text-lg",children:[(0,t.jsx)("span",{"data-lang":"en",children:"No printing coupons. No awkward negotiations. Just open the app, tap redeem, and watch your bill shrink."}),(0,t.jsx)("span",{"data-lang":"et",children:'Unusta kupongid ja piinlikud hetked. Ava äpp, vajuta "Kasuta" ja arve ongi väiksem.'})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",ref:e,children:[{icon:"search",titleEn:"Browse Deals",titleEt:"Vaata pakkumisi",descEn:"Explore restaurants, bars, and cafes near you. Filter by cuisine, distance, or deal type.",descEt:"Leia restorane, baare ja kohvikuid enda lähedal. Filtreeri köögi, asukoha või pakkumise järgi."},{icon:"smartphone",titleEn:"Show Your Pass",titleEt:"Näita telefoni",descEn:'When you\'re ready to pay, tap "Redeem" and show your phone to the staff. Enter your PIN to verify.',descEt:'Arve tulles vajuta "Kasuta" ja näita telefoni. Sisesta oma PIN ja ongi kõik.'},{icon:"check_circle",titleEn:"Enjoy Savings",titleEt:"Säästad kohe",descEn:"The staff applies your discount. Enjoy your meal, stay, or experience for less. It's that simple.",descEt:"Teenindaja rakendab soodustuse. Söö, joo või lõõgastu â soodsamalt. Nii lihtne ongi."}].map((e,a)=>(0,t.jsxs)("div",{className:"hw-card scroll-reveal bg-surface-container border border-outline-variant/10 rounded-xl p-8 transition-colors duration-300 hover:border-primary/30 hover:shadow-[0_0_30px_rgba(225,194,150,0.08),0_0_60px_rgba(196,167,125,0.04)]",style:{transitionDelay:`${.15*a}s`},children:[(0,t.jsx)("div",{className:"w-12 h-12 bg-primary/10 rounded-lg flex items-center justify-center mb-6",children:(0,t.jsx)("span",{className:"material-symbols-outlined text-primary",children:e.icon})}),(0,t.jsxs)("span",{className:"font-headline text-4xl text-primary/20 block mb-4",children:["0",a+1]}),(0,t.jsxs)("h3",{className:"font-headline text-xl text-on-surface mb-3",children:[(0,t.jsx)("span",{"data-lang":"en",children:e.titleEn}),(0,t.jsx)("span",{"data-lang":"et",children:e.titleEt})]}),(0,t.jsxs)("p",{className:"text-sm text-outline leading-relaxed",children:[(0,t.jsx)("span",{"data-lang":"en",children:e.descEn}),(0,t.jsx)("span",{"data-lang":"et",children:e.descEt})]})]},a))})]})})}])},92233,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(57688);let n=[{id:"savings",labelEn:"Savings",labelEt:"Säästud",icon:"savings",titleEn:"Watch your savings grow",titleEt:"Vaata, kuidas kokkuhoid kasvab",descEn:"Every deal you redeem gets tracked in your profile. See exactly how much you've saved this month, how many deals you've used, and celebrate when you've saved 5x your membership cost.",descEt:"Iga kasutatud pakkumine läheb kirja. Näed täpselt, kui palju oled sel kuul säästnud ja mitu pakkumist kasutanud. Ja kui sääst ületab liikmelisuse hinna 5 korda, siis on põhjust tähistada.",tagEn:"Track Your Wins",tagEt:"Jälgi oma sääste",screens:["/images/app/profile-savings.png"],layout:"rings"},{id:"badges",labelEn:"Badges & Quests",labelEt:"Märgised ja ülesanded",icon:"emoji_events",titleEn:"Collect badges. Complete quests.",titleEt:"Kogu märgiseid. Täida ülesandeid.",descEn:"Unlock exclusive badges as you explore the dining scenes of Tallinn and Tartu. From your first redemption to becoming a city legend, complete Welcome Quests, discover hidden gems, and earn limited-edition achievements that showcase your journey.",descEt:"Ava eksklusiivseid märgiseid, avastades Tallinna ja Tartu toidumaailma. Alates esimesest pakkumisest kuni linnalegendi staatuseni, täida tervitusülesandeid, avasta peidetud pärleid ja teeni piiratud väljaandeid, mis näitavad su teekonda.",tagEn:"Gamified Experience",tagEt:"Mänguline kogemus",screens:["/images/app/feature-badges.png","/images/app/feature-quests.png"],layout:"glow"},{id:"loyalty",labelEn:"Loyalty Cards",labelEt:"Püsikliendikaardid",icon:"loyalty",titleEn:"Digital punch cards for your favourites.",titleEt:"Digikaardid sinu lemmikkohtadele.",descEn:"Every visit to a partner venue earns you a punch on their loyalty card. Collect them all and unlock free rewards: a free beer, a complimentary massage, a dessert on the house. Your favourite spots finally reward your loyalty.",descEt:"Iga külastus partnerkohas annab sulle templi nende püsikliendikaardile. Kogu need kõik ja ava tasuta preemiad: tasuta õlu, komplimentaarne massaaž, magustoit maja poolt. Su lemmikkohad premeerivad lõpuks su truudust.",tagEn:"Rewards Program",tagEt:"Preemiaprogramm",screens:["/images/app/feature-loyalty.png"],layout:"tilt"},{id:"bookings",labelEn:"Reservations",labelEt:"Broneeringud",icon:"calendar_month",titleEn:"Book any venue. Skip the wait.",titleEt:"Broneeri ükskõik kuhu. Jäta järjekord vahele.",descEn:"Reserve your table directly through the app and keep all your upcoming bookings in one place. Confirmations, guest counts, and venue details, everything organised so you can focus on enjoying the evening.",descEt:"Broneeri laud otse äpist ja hoia kõik tulevased broneeringud ühes kohas. Kinnitused, külaliste arv ja koha info, kõik korras, et saaksid õhtust lihtsalt nautida.",tagEn:"Table Management",tagEt:"Laudade haldamine",screens:["/images/app/feature-bookings-list.png","/images/app/feature-reservation-detail.png"],layout:"tilted-pair"}];function r({src:e,alt:a,className:n="",style:i={}}){return(0,t.jsxs)("div",{className:`relative flex-shrink-0 w-[160px] h-[327px] sm:w-[200px] sm:h-[410px] md:w-[260px] md:h-[532px] ${n}`,style:i,children:[(0,t.jsx)("div",{className:"absolute inset-0 rounded-[40px] bg-[#111]",style:{boxShadow:"inset 0 0 0 2px #333, inset 0 0 0 4px #1a1a1a, 0 0 30px rgba(225,194,150,0.06), 0 30px 60px rgba(0,0,0,0.3), 0 10px 20px rgba(0,0,0,0.2)"}}),(0,t.jsx)("div",{className:"absolute -inset-[2px] rounded-[42px] opacity-25",style:{background:"linear-gradient(135deg, rgba(225,194,150,0.3) 0%, transparent 40%, transparent 60%, rgba(196,167,125,0.2) 100%)"}}),(0,t.jsx)("div",{className:"absolute -right-[3px] top-[130px] w-[3px] h-[46px] bg-[#2a2a2a] rounded-r-[2px]"}),(0,t.jsx)("div",{className:"absolute -left-[3px] top-[100px] w-[3px] h-[28px] bg-[#2a2a2a] rounded-l-[2px]"}),(0,t.jsx)("div",{className:"absolute -left-[3px] top-[140px] w-[3px] h-[46px] bg-[#2a2a2a] rounded-l-[2px]"}),(0,t.jsx)("div",{className:"absolute -left-[3px] top-[198px] w-[3px] h-[46px] bg-[#2a2a2a] rounded-l-[2px]"}),(0,t.jsx)("div",{className:"absolute inset-[11px] rounded-[30px] overflow-hidden bg-[#0d0d0d]",children:(0,t.jsx)(s.default,{src:e,alt:a,fill:!0,sizes:"(max-width: 640px) 160px, (max-width: 768px) 200px, 260px",className:"object-cover object-top"})})]})}function i(){return(0,t.jsx)("div",{className:"absolute top-1/2 left-1/2 w-[280px] h-[280px] sm:w-[360
3px] sm:h-[360px] md:w-[560px] md:h-[560px] rounded-full border border-[rgba(201,169,110,0.15)] pointer-events-none animate-glow-pulse-slow",style:{transform:"translate(-50%, -50%)"}})}function l({color:e="rgba(225,194,150,0.12)"}){return(0,t.jsx)("div",{className:"absolute top-1/2 left-1/2 w-[200px] h-[200px] sm:w-[280px] sm:h-[280px] md:w-[400px] md:h-[400px] rounded-full pointer-events-none animate-glow-pulse",style:{transform:"translate(-50%, -50%)",background:`radial-gradient(circle, ${e} 0%, transparent 70%)`}})}function o({feature:e}){let{layout:a,screens:s,titleEn:n}=e;return"rings"===a?(0,t.jsxs)("div",{className:"relative flex justify-center items-center",children:[(0,t.jsx)(i,{}),(0,t.jsx)(l,{}),(0,t.jsx)(r,{src:s[0],alt:n})]}):"glow"===a?(0,t.jsxs)("div",{className:"relative flex justify-center items-start gap-5",children:[(0,t.jsx)(i,{}),(0,t.jsx)(l,{color:"rgba(232,200,74,0.1)"}),(0,t.jsx)(l,{color:"rgba(74,222,128,0.06)"}),(0,t.jsx)(r,{src:s[0],alt:"Badges"}),(0,t.jsx)(r,{src:s[1],alt:"Quests",style:{marginTop:50}})]}):"tilt"===a?(0,t.jsxs)("div",{className:"relative flex justify-center items-center",children:[(0,t.jsx)(i,{}),(0,t.jsx)(l,{color:"rgba(225,194,150,0.1)"}),(0,t.jsx)(r,{src:s[0],alt:n,style:{transform:"rotate(-6deg) translateX(40px)",transformOrigin:"center bottom"}})]}):"tilted-pair"===a?(0,t.jsxs)("div",{className:"relative flex justify-center items-center gap-3",children:[(0,t.jsx)(i,{}),(0,t.jsx)(l,{color:"rgba(74,222,128,0.08)"}),(0,t.jsx)(r,{src:s[0],alt:"Reservations list",style:{transform:"rotate(-5deg)",transformOrigin:"center bottom"}}),(0,t.jsx)(r,{src:s[1],alt:"Reservation detail",style:{transform:"rotate(5deg)",transformOrigin:"center bottom"}})]}):null}e.s(["default",0,function(){let[e,s]=(0,a.useState)(0),[r,i]=(0,a.useState)(!1),l=(0,a.useRef)(null),[d,u]=(0,a.useState)(!1),[c,p]=(0,a.useState)(0),m=n[e];(0,a.useEffect)(()=>{let e=l.current;if(!e)return;let t=new IntersectionObserver(([e])=>u(e.isIntersecting),{rootMargin:"-200px"});return t.observe(e),()=>t.disconnect()},[]);let x=(0,a.useCallback)(()=>{s(e=>(e+1)%n.length),p(e=>e+1)},[]);return(0,a.useEffect)(()=>{if(!d||r)return;let e=setInterval(x,6e3);return()=>clearInterval(e)},[d,r,x]),(0,t.jsx)("section",{ref:l,className:"py-24 md:py-32 px-6 md:px-12 lg:px-24 bg-surface-container-lowest border-y border-outline-variant/10 overflow-hidden",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,t.jsx)("div",{className:"flex overflow-x-auto gap-2 md:gap-3 mb-16 md:flex-wrap md:justify-center pb-2 -mx-6 px-6 md:mx-0 md:px-0 scrollbar-hide",children:n.map((a,n)=>(0,t.jsxs)("button",{onClick:()=>{s(n),p(e=>e+1),i(!0),setTimeout(()=>i(!1),12e3)},className:`relative flex items-center gap-2 px-5 py-2.5 rounded-full font-label text-xs uppercase tracking-widest transition-colors duration-300 overflow-hidden flex-shrink-0 whitespace-nowrap ${e===n?"premium-gradient text-on-primary font-bold":"bg-surface-container border border-outline-variant/15 text-outline hover:text-on-surface hover:border-primary/30"}`,children:[e===n&&!r&&d&&(0,t.jsx)("div",{className:"absolute bottom-0 left-0 h-[2px] bg-on-primary/30 animate-progress-fill",style:{animationDuration:"6000ms"}},c),(0,t.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:a.icon}),(0,t.jsx)("span",{"data-lang":"en",children:a.labelEn}),(0,t.jsx)("span",{"data-lang":"et",children:a.labelEt})]},a.id))}),(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-12 lg:gap-20 items-center animate-fade-up",children:[(0,t.jsx)(o,{feature:m}),(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"font-label text-primary uppercase tracking-[0.3em] text-xs block mb-4",children:[(0,t.jsx)("span",{"data-lang":"en",children:m.tagEn}),(0,t.jsx)("span",{"data-lang":"et",children:m.tagEt})]}),(0,t.jsxs)("h2",{className:"font-headline text-3xl md:text-4xl lg:text-5xl text-on-surface mb-6",children:[(0,t.jsx)("span",{"data-lang":"en",children:m.titleEn}),(0,t.jsx)("span",{"data-lang":"et",children:m.titleEt})]}),(0,t.jsxs)("p",{className:"text-outline text-base md:text-lg leading-relaxed",children:[(0,t.jsx)("span",{"data-lang":"en",children:m.descEn}),(0,t.jsx)("span",{"data-lang":"et",children:m.descEt})]})]})]},m.id)]})})}])},98129,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(57688);let n=[{nameEn:"The Golden Fork",nameEt:"The Golden Fork",categoryEn:"nomi Dining",categoryEt:"nomi Söögikohad",metaEn:"Estonian ⢠Old Town, Tallinn ⢠â¬â¬",metaEt:"Eesti köök ⢠Vanalinn, Tallinn ⢠â¬â¬",dealEn:"2-for-1 Main Courses",dealEt:"2-for-1 pearoad",rating:"4.8",image:"/images/deals/golden-fork.jpg"},{nameEn:"Hotel Serenity",nameEt:"Hotel Serenity",categoryEn:"nomi Stays",categoryEt:"nomi Majutus",metaEn:"5-Star ⢠Old Town, Tallinn ⢠â¬â¬â¬â¬",metaEt:"5 tärni ⢠Vanalinn, Tallinn ⢠â¬â¬â¬â¬",dealEn:"50% Off Second Night",dealEt:"-50% teiselt öölt",rating:"4.9",image:"/images/deals/hotel-serenity.jpg"},{nameEn:"Harmony Spa",nameEt:"Harmony Spa",categoryEn:"nomi Wellness",categoryEt:"nomi Heaolu",metaEn:"Spa & Hotel ⢠Tallinn ⢠â¬â¬â¬",metaEt:"Spaa ja hotell ⢠Tallinn ⢠â¬â¬â¬",dealEn:"Free Massage w/ Day Pass",dealEt:"Tasuta massaaž päevapiletiga",rating:"4.7",image:"/images/deals/harmony-spa.jpg"}];e.s(["default",0,function(){let e=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let t=e.current;if(!t)return;let a=t.querySelectorAll(".deal-card"),s=new IntersectionObserver(e=>
3{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add("revealed"),s.unobserve(e.target))})},{rootMargin:"-80px"});return a.forEach(e=>s.observe(e)),()=>s.disconnect()},[]),(0,t.jsx)("section",{id:"deals",className:"py-24 md:py-32 px-6 md:px-12 lg:px-24",children:(0,t.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,t.jsxs)("div",{className:"text-center mb-16",children:[(0,t.jsxs)("span",{className:"font-label text-primary uppercase tracking-[0.3em] text-xs block mb-4",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Example Deals"}),(0,t.jsx)("span",{"data-lang":"et",children:"Näited"})]}),(0,t.jsxs)("h2",{className:"font-headline text-4xl md:text-5xl text-on-surface mb-6",children:[(0,t.jsx)("span",{"data-lang":"en",children:"The kind of deals you'll get"}),(0,t.jsx)("span",{"data-lang":"et",children:"Mida Nomi Passiga saad"})]}),(0,t.jsxs)("p",{className:"text-outline max-w-2xl mx-auto text-base md:text-lg",children:[(0,t.jsx)("span",{"data-lang":"en",children:"From cozy cafes to fine dining, cocktail bars to brunch spots. We're starting with restaurants, bars and cafes â with spas, entertainment, wellness and more coming soon."}),(0,t.jsx)("span",{"data-lang":"et",children:"Mõnusatest kohvikutest tipprestoranideni, kokteilbaaridest brunÅ¡ikohtadeni. Alustame restoranide, baaride ja kohvikutega â spaad, meelelahutus ja wellness tulekul."})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",ref:e,children:n.map((e,a)=>(0,t.jsxs)("div",{className:"deal-card scroll-reveal group relative rounded-xl overflow-hidden bg-surface-container-low border border-outline-variant/10 hover:-translate-y-2 hover:scale-[1.02] transition-transform duration-300",style:{transitionDelay:`${.15*a}s`},children:[(0,t.jsxs)("div",{className:"h-48 relative overflow-hidden",children:[(0,t.jsx)(s.default,{src:e.image,alt:e.nameEn,fill:!0,sizes:"(max-width: 768px) 100vw, 33vw",className:"object-cover grayscale group-hover:grayscale-0 transition-[filter] duration-700 group-hover:scale-105"}),(0,t.jsx)("div",{className:"absolute inset-0 bg-gradient-to-t from-[#131313] via-trans
3parent to-transparent"}),(0,t.jsx)("div",{className:"absolute top-3 left-3",children:(0,t.jsxs)("span",{className:"bg-primary/20 text-primary text-[9px] font-bold uppercase tracking-wider px-2.5 py-1 rounded-full",children:[(0,t.jsx)("span",{"data-lang":"en",children:e.categoryEn}),(0,t.jsx)("span",{"data-lang":"et",children:e.categoryEt})]})}),(0,t.jsx)("div",{className:"absolute top-3 right-3",children:(0,t.jsxs)("span",{className:"bg-surface-container/80 text-outline text-[8px] uppercase tracking-wider px-2 py-1 rounded-full backdrop-blur-sm",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Coming Soon"}),(0,t.jsx)("span",{"data-lang":"et",children:"Tulekul"})]})})]}),(0,t.jsxs)("div",{className:"p-5",children:[(0,t.jsxs)("div",{className:"flex justify-between items-start mb-2",children:[(0,t.jsx)("h3",{className:"font-headline text-lg text-on-surface",children:e.nameEn}),(0,t.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,t.jsx)("span",{className:"text-primary text-xs",children:"â
"}),(0,t.jsx)("span",{className:"text-xs text-outline",children:e.rating})]})]}),(0,t.jsxs)("p",{className:"text-[11px] text-outline mb-3",children:[(0,t.jsx)("span",{"data-lang":"en",children:e.metaEn}),(0,t.jsx)("span",{"data-lang":"et",children:e.metaEt})]}),(0,t.jsx)("div",{className:"bg-primary/10 rounded-lg px-3 py-2 inline-block",children:(0,t.jsxs)("span",{className:"text-sm text-primary font-semibold",children:[(0,t.jsx)("span",{"data-lang":"en",children:e.dealEn}),(0,t.jsx)("span",{"data-lang":"et",children:e.dealEt})]})})]})]},a))}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-outline/50 mt-8",children:[(0,t.jsx)("span",{"data-lang":"en",children:"* These are illustrative examples of the types of deals we're building. Actual partner venues and offers may vary at launch."}),(0,t.jsx)("span",{"data-lang":"et",children:"* Need on näited pakkumistest, mida loome. Tegelikud kohad ja pakkumised võivad käivitamisel erineda."})]})]})})}],98129)},15503,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(25599);
3e.s(["default",0,function({pricing:e=s.FALLBACK_PRICING}){let[n,r]=(0,a.useState)(4),[i,l]=(0,a.useState)(60),o=Math.round(.2*i),d=n*o,u=12*d-e.annualEur;return(0,t.jsx)("section",{id:"calculator",className:"py-24 md:py-32 px-6 md:px-12 lg:px-24 bg-surface-container-lowest border-y border-outline-variant/10",children:(0,t.jsx)("div",{className:"max-w-7xl mx-auto",children:(0,t.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-16 items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("span",{className:"font-label text-primary uppercase tracking-[0.3em] text-xs block mb-4",children:[(0,t.jsx)("span",{"data-lang":"en",children:"The Math"}),(0,t.jsx)("span",{"data-lang":"et",children:"Arvuta"})]}),(0,t.jsxs)("h2",{className:"font-headline text-4xl md:text-5xl text-on-surface mb-4",children:[(0,t.jsxs)("span",{"data-lang":"en",children:["Pay ",(0,s.formatEuro)(e.annualEur),". Save hundreds."]}),(0,t.jsxs)("span",{"data-lang":"et",children:["Maksa ",(0,s.formatEuro)(e.annualEur),". Säästa sadu."]})]}),(0,t.jsxs)("p",{className:"text-primary text-sm mb-6",children:[(0,t.jsxs)("span",{"data-lang":"en",children:["30-day free trial â then ",(0,s.formatEuro)(e.annualEur),"/year or ",(0,s.formatEuro)(e.monthlyEur),"/month"]}),(0,t.jsxs)("span",{"data-lang":"et",children:["30 päeva tasuta, seejärel ",(0,s.formatEuro)(e.annualEur)," aastas või ",(0,s.formatEuroEt)(e.monthlyEur)," kuus"]})]}),(0,t.jsxs)("p",{className:"text-outline text-base md:text-lg leading-relaxed mb-8",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Use your Nomi Pass a few times a month and the membership pays for itself many times over."}),(0,t.jsx)("span",{"data-lang":"et",children:"Kasuta Nomi Passi paar korda kuus ja liikmelisus tasub end mitmekordselt ära."})]}),(0,t.jsxs)("a",{href:"#waitlist",className:"premium-gradient text-on-primary px-8 py-4 font-label text-xs uppercase tracking-widest font-bold hover:opacity-90 transition-all inline-block",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Download now"}),(0,t.jsx)("span",{"data-lang":"et",children:"Laadi äpp alla"})]})]}),(0,t.jsxs)("div",{className:"bg-surface-container border border-outline-variant/10 rounded-xl p-8",children:[(0,t.jsxs)("h3",{className:"font-headline text-xl text-on-surface mb-2",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Calculate Your Potential Savings"}),(0,t.jsx)("span",{"data-lang":"et",children:"Kui palju sina säästad?"})]}),(0,t.jsxs)("p",{className:"text-xs text-outline mb-8",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Adjust the sliders to see what you could save"}),(0,t.jsx)("span",{"data-lang":"et",children:"Liiguta ja vaata"})]}),(0,t.jsxs)("div",{className:"mb-8",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,t.jsxs)("label",{className:"text-sm text-on-surface",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Times you dine out per month"}),(0,t.jsx)("span",{"data-lang":"et",children:"Mitu korda kuus väljas söömas käid"})]}),(0,t.jsx)("span",{className:"text-lg font-headline text-primary",children:n})]}),(0,t.jsx)("input",{type:"range",min:1,max:40,value:n,onChange:e=>r(Number(e.target.value)),className:"w-full h-1 bg-outline-variant/20 rounded-full appearance-none cursor-pointer accent-primary"}),(0,t.jsxs)("div",{className:"flex justify-between text-[9px] text-outline mt-1",children:[(0,t.jsx)("span",{children:"1"}),(0,t.jsx)("span",{children:"40"})]})]}),(0,t.jsxs)("div",{className:"mb-8",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center mb-3",children:[(0,t.jsxs)("label",{className:"text-sm text-on-surface",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Average spending per visit"}),(0,t.jsx)("span",{"data-lang":"et",children:"Keskmine kulu korraga"})]}),(0,t.jsxs)("span",{className:"text-lg font-headline text-primary",children:["â¬",i]})]}),(0,t.jsx)("input",{type:"range",min:20,max:150,value:i,onChange:e=>l(Number(e.target.value)),className:"w-full h-1 bg-outline-variant/20 rounded-full appearance-none cursor-pointer accent-primary"}),(0,t.jsxs)("div",{className:"flex justify-between text-[9px] text-outline mt-1",children:[(0,t.jsx)("span",{children:"â¬20"}),(0,t.jsx)("span",{children:"â¬150"})]}),(0,t.jsxs)("div",{className:"text-[10px] text-outline mt-2",children:[(0,t.jsxs)("span",{"data-lang":"en",children:["= â¬",o," saved per visit (20% partner discount)"]}),(0,t.jsxs)("span",{"data-lang":"et",children:["= â¬",o," sääst korraga (20% partneri soodustus)"]})]})]}),(0,t.jsxs)("div",{className:"border-t border-outline-variant/10 pt-6 space-y-4",children:[(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)("span",{className:"text-sm text-outline",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Monthly savings"}),(0,t.jsx)("span",{"data-lang":"et",children:"Sääst kuus"})]}),(0,t.jsxs)("span",{className:"text-lg font-headline text-on-surface",children:["â¬",d]})]}),(0,t.jsxs)("div",{className:"flex justify-between items-center",children:[(0,t.jsxs)("span",{className:"text-sm text-outline",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Membership cost"}),(0,t.jsx)("span",{"data-lang":"et",children:"Liikmelisus"})]}),(0,t.jsxs)("span",{className:"text-sm text-outline",children:["-",(0,s.formatEuro)(e.annualEur)]})]}),(0,t.jsxs)("div",{className:"relative flex justify-between items-center border-t border-outline-variant/10 pt-4",children:[(0,t.jsx)("div",{className:"absolute -inset-2 bg-primary/5 blur-xl rounded-xl pointer-events-none"}),(0,t.jsxs)("span",{className:"text-sm font-semibold text-on-surface",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Potential annual savings"}),(0,t.jsx)("span",{"data-lang":"et",children:"Sääst aastas"})]}),(0,t.jsxs)("span",{className:"text-2xl font-headline text-primary font-bold",children:["â¬",u.toLocaleStr
3ing()]})]})]})]})]})})})}])},28792,e=>{"use strict";var t=e.i(43476),a=e.i(71645),s=e.i(25599);e.s(["default",0,function({pricing:e=s.FALLBACK_PRICING}){let[n,r]=(0,a.useState)(null),i=[{qEn:"How will Nomi Pass work?",qEt:"Kuidas Nomi Pass toimib?",aEn:"It's simple: Browse deals in the app, tap \"Redeem\" when you're ready to pay, enter your PIN, and hand your phone to the staff. They enter their PIN to verify, and your discount is applied. The whole process takes seconds.",aEt:'Lihtne: vaata äpist pakkumisi, vajuta arve tulles "Kasuta", sisesta PIN ja anna telefon teenindajale. Teenindaja kinnitab oma PIN-iga ja soodustus rakendub. Võtab mõne sekundi.'},{qEn:"Where will I be able to use Nomi Pass?",qEt:"Kus saan Nomi Passi kasutada?",aEn:"We're live in Tallinn and Tartu, Estonia with restaurants, bars and cafes. Spas, entertainment, wellness and more are coming soon. After Estonia, we plan to expand to Riga and Vilnius.",aEt:"Oleme avatud Tallinnas ja Tartus â restoranid, baarid ja kohvikud. Spaad, meelelahutus ja wellness tulekul. Edasi liigume Riiga ja Vilniusesse."},{qEn:"What kind of deals will be available?",qEt:"Mis pakkumisi tuleb?",aEn:"We'll offer 2-for-1 main courses, percentage discounts (up to 50% off), fixed amount savings, free items, and exclusive special offers. Each venue sets their own deals.",aEt:"2-for-1 pearoogasid, allahindlusi kuni -50%, kindlasummalisi soodustusi, tasuta lisasid ja eripakkumisi. Iga koht otsustab ise, mida pakub."},{qEn:"How do restaurants verify my membership?",qEt:"Kuidas restoran mu liikmelisust kontrollib?",aEn:"We use a dual-PIN system: you enter your personal PIN, then the staff enters the restaurant's PIN. This industry-standard approach prevents fraud and ensures only valid redemptions. No special hardware needed.",aEt:"Topelt-PIN süsteem: sina sisestad oma PINi, teenindaja oma. Lihtne, turvaline ja ilma lisaseadmeteta."},{qEn:"When are you launching?",qEt:"Millal te lanseerite?",aEn:`Nomi Pass is live in Tallinn and Tartu. Download it on the App Store or Google Play and start your 30-day free trial. Membership is ${(0,s.formatEuro)(e.annualEur)}/year or ${(0,s.formatEuro)(e.monthlyEur)}/month.`,aEt:`Nomi Pass on avatud Tallinnas ja Tartus. Laadi \xe4pp alla App Store'ist v\xf5i Google Play'st ja proovi 30 p\xe4eva tasuta. Liikmelisus maksab ${(0,s.formatEuroEt)(e.annualEur)} aastas v\xf5i ${(0,s.formatEuroEt)(e.monthlyEur)} kuus.`},{qEn:"Will there be a limit to how many deals I can use?",qEt:"Kas pakkumiste kasutamisel on piir?",aEn:"With a paid membership, you'll get unlimited redemptions. Some individual deals may have daily limits (e.g., one 2-for-1 per visit), but there's no cap on total usage.",aEt:"Liikmelisusega saad pakkumisi kasutada piiramatult. Mõnel pakkumisel võib olla päevalimiit (nt üks 2-for-1 külastuse kohta), aga üldist piiri pole."}];return(0,t.jsx)("section",{id:"faq",className:"py-24 md:py-32 px-6 md:px-12 lg:px-24",children:(0,t.jsxs)("div",{className:"max-w-3xl mx-auto",children:[(0,t.jsxs)("div",{className:"text-center mb-16",children:[(0,t.jsxs)("span",{className:"font-label text-primary uppercase tracking-[0.3em] text-xs block mb-4",children:[(0,t.jsx)("span",{"data-lang":"en",children:"FAQ"}),(0,t.jsx)("span",{"data-lang":"et",children:"KKK"})]}),(0,t.jsxs)("h2",{className:"font-headline text-4xl md:text-5xl text-on-surface",children:[(0,t.jsx)("span",{"data-lang":"en",children:"Questions? We've got answers."}),(0,t.jsx)("span",{"data-lang":"et",children:"Küsimused ja vastused"})]})]}),(0,t.jsx)("div",{className:"space-y-3",children:i.map((e,a)=>(0,t.jsxs)("div",{className:"border border-outline-variant/10 rounded-xl overflow-hidden",children:[(0,t.jsxs)("button",{onClick:()=>r(n===a?null:a),className:"w-full flex justify-between items-center p-6 text-left hover:bg-surface-container/50 transition-colors",children:[(0,t.jsxs)("span",{className:"font-headline text-base md:text-lg text-on-surface pr-4",children:[(0,t.jsx)("span",{"data-lang":"en",children:e.qEn}),(0,t.jsx)("span",{"data-lang":"et",children:e.qEt})]}),(0,t.jsx)("span",{className:`material-symbols-outlined text-primary transition-transform duration-300 flex-shrink-0 ${n===a?"rotate-45":""}`,children:"add"})]}),(0,t.jsx)("div",{className:`overflow-hidden transition-all duration-300 ${n===a?"max-h-96 pb-6":"max-h-0"}`,children:(0,t.jsxs)("p",{className:"px-6 text-sm text-outline leading-relaxed",children:[(0,t.jsx)("span",{"data-lang":"en",children:e.aEn}),(0,t.jsx)("span",{"data-lang":"et",children:e.aEt})]})})]},a))})]})})}])}]);
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.