1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,88143,(e,t,r)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:r,blurHeight:i,blurDataURL:n,objectFit:l}){let a=r?40*r:e,s=i?40*i:t,o=a&&s?`viewBox='0 0 ${a} ${s}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${o}%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='${o?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${n}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},87690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return l},imageConfigDefault:function(){return a}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let l=["default","imgix","cloudinary","akamai","custom"],a={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"],maximumRedirects:3,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1}},8927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return o}}),e.r(33525);let i=e.r(88143),n=e.r(87690),l=["-moz-initial","fill","none","scale-down",void 0];function a(e){return void 0!==e.default}function s(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 o({src:e,sizes:t,unoptimized:r=!1,priority:o=!1,preload:d=!1,loading:c,className:u,quality:f,width:m,height:p,fill:g=!1,style:h,overrideSrc:x,onLoad:b,onLoadingComplete:y,placeholder:v="empty",blurDataURL:w,fetchPriority:j,decoding:_="async",layout:N,objectFit:P,objectPosition:S,lazyBoundary:C,lazyRoot:O,...E},$){var z;let M,R,L,{imgConf:k,showAltText:I,blurComplete:A,defaultLoader:T}=$,D=k||n.imageConfigDefault;if("allSizes"in D)M=D;else{let e=[...D.deviceSizes,...D.imageSizes].sort((e,t)=>e-t),t=D.deviceSizes.sort((e,t)=>e-t),r=D.qualities?.sort((e,t)=>e-t);M={...D,allSizes:e,deviceSizes:t,qualities:r}}if(void 0===T)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=E.loader||T;delete E.loader,delete E.srcSet;let F="__next_img_default"in B;if(F){if("custom"===M.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,configurable:!0})}else{let e=B;B=t=>{let{config:r,...i}=t;return e(i)}}if(N){"fill"===N&&(g=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[N];e&&(h={...h,...e});let r={responsive:"100vw",fill:"100vw"}[N];r&&!t&&(t=r)}let U="",G=s(m),q=s(p);if((z=e)&&"object"==typeof z&&(a(z)||void 0!==z.src)){let t=a(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)}
2`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(R=t.blurWidth,L=t.blurHeight,w=w||t.blurDataURL,U=t.src,!g)if(G||q){if(G&&!q){let e=G/t.width;q=Math.round(t.height*e)}else if(!G&&q){let e=q/t.height;G=Math.round(t.width*e)}}else G=t.width,q=t.height}let H=!o&&!d&&("lazy"===c||void 0===c);(!(e="string"==typeof e?e:U)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,H=!1),M.unoptimized&&(r=!0),F&&!M.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let W=s(f),V=Object.assign(g?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:P,objectPosition:S}:{},I?{}:{color:"transparent"},h),X=A||"empty"===v?null:"blur"===v?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:G,heightInt:q,blurWidth:R,blurHeight:L,blurDataURL:w||"",objectFit:V.objectFit})}")`:`url("${v}")`,Y=l.includes(V.objectFit)?"fill"===V.objectFit?"100% 100%":"cover":V.objectFit,J=X?{backgroundSize:Y,backgroundPosition:V.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Q=function({config:e,src:t,unoptimized:r,width:i,quality:n,sizes:l,loader:a}){if(r)return{src:t,srcSet:void 0,sizes:void 0};let{widths:s,kind:o}=function({deviceSizes:e,allSizes:t},r,i){if(i){let r=/(^|\s)(1?\d?\d)vw/g,n=[];for(let e;e=r.exec(i);)n.push(parseInt(e[2]));if(n.length){let r=.01*Math.min(...n);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,l),d=s.length-1;return{sizes:l||"w"!==o?l:"100vw",srcSet:s.map((r,i)=>`${a({config:e,src:t,quality:n,width:r})} ${"w"===o?r:i+1}${o}`).join(", "),src:a({config:e,src:t,quality:n,width:s[d]})}}({config:M,src:e,unoptimized:r,width:G,quality:W,sizes:t,loader:B}),K=H?"lazy":c;return{props:{...E,loading:K,fetchPriority:j,width:G,height:q,decoding:_,className:u,style:{...V,...J},sizes:Q.sizes,srcSet:Q.srcSet,src:x||Q.src},meta:{unoptimized:r,preload:d||o,placeholder:v,fill:g}}}},98879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return s}});let i=e.r(71645),n="undefined"==typeof window,l=n?()=>{}:i.useLayoutEffect,a=n?()=>{}:i.useEffect;function s(e){let{headManager:t,reduceComponentsToState:r}=e;function s(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return n&&(t?.mountedInstances?.add(e.children),s()),l(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),l(()=>(t&&(t._pendingUpdate=s),()=>{t&&(t._pendingUpdate=s)})),a(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return g},defaultHead:function(){return u}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let l=e.r(55682),a=e.r(90809),s=e.r(43476),o=a._(e.r(71645)),d=l._(e.r(98879)),c=e.r(42732);function u(){return[(0,s.jsx)("meta",{charSet:"utf-8"},"charset"),(0,s.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(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)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let m=["name","httpEquiv","charSet","itemProp"];function p(e){let t,r,i,n;return e.reduce(f,[]).reverse().concat(u().reverse()).filter((t=new Set,r=new Set,i=new Set,n={},e=>{let l=!0,a=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){a=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?l=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?l=!1:r.add(e.type);break;case"meta":for(let t=0,r=m.length;t<r;t++){let r=m[t];if(e.props.hasOwnProperty(r))if("charSet"===r)i.has(r)?l=!1:i.add(r);else{let t=e.props[r],i=n[r]||new Set;
2("name"!==r||!a)&&i.has(t)?l=!1:(i.add(t),n[r]=i)}}}return l})).reverse().map((e,t)=>{let r=e.key||t;return o.default.cloneElement(e,{key:r})})}let g=function({children:e}){let t=(0,o.useContext)(c.HeadManagerContext);return(0,s.jsx)(d.default,{reduceComponentsToState:p,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},18556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return l}});let i=e.r(55682)._(e.r(71645)),n=e.r(87690),l=i.default.createContext(n.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,r)=>{"use strict";function i(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,0):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return i}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let i=e.r(70965);function n({config:e,src:t,width:r,quality: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 l=(0,i.findClosestQuality)(n,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${l}${t.startsWith("/_next/static/media/")&&1?"&dpl=dpl_6qeqPSxjQddNw1scU4EYtMrLNMkH":""}`}n.__next_img_default=!0;let l=n},5500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return v}});let i=e.r(55682),n=e.r(90809),l=e.r(43476),a=n._(e.r(71645)),s=i._(e.r(74080)),o=i._(e.r(25633)),d=e.r(8927),c=e.r(87690),u=e.r(18556);e.r(33525);let f=e.r(65856),m=i._(e.r(1948)),p=e.r(18581),g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function h(e,t,r,i,n,l,a){let s=e?.src;e&&e["data-loaded-src"]!==s&&(e["data-loaded-src"]=s,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&n(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,n=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>n,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{n=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function x(e){return a.use?{fetchPriority:e}:{fetchpriority:e}}"undefined"==typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,a.forwardRef)(({src:e,srcSet:t,sizes:r,height:i,width:n,decoding:s,className:o,style:d,fetchPriority:c,placeholder:u,loading:f,unoptimized:m,fill:g,onLoadRef:b,onLoadingCompleteRef:y,setBlurComplete:v,setShowAltText:w,sizesInput:j,onLoad:_,onError:N,...P},S)=>{let C=(0,a.useCallback)(e=>{e&&(N&&(e.src=e.src),e.complete&&h(e,u,b,y,v,m,j))},[e,u,b,y,v,N,m,j]),O=(0,p.useMergedRef)(S,C);return(0,l.jsx)("img",{...P,...x(c),loading:f,width:n,height:i,decoding:s,"data-nimg":g?"fill":"1",className:o,style:d,sizes:r,srcSet:t,src:e,ref:O,onLoad:e=>{h(e.currentTarget,u,b,y,v,m,j)},onError:e=>{w(!0),"empty"!==u&&v(!0),N&&N(e)}})});function y({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...x(t.fetchPriority)};return e&&s.default.preload?(s.default.preload(t.src,r),null):(0,l.jsx)(o.default,{children:(0,l.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let v=(0,a.forwardRef)((e,t)=>{let r=(0,a.useContext)(f.RouterContext),i=(0,a.useContext)(u.ImageConfigContext),n=(0,a.useMemo)(()=>{let e=g||i||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>
3e-t),r=e.deviceSizes.sort((e,t)=>e-t),n=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:n,localPatterns:"undefined"==typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:s,onLoadingComplete:o}=e,p=(0,a.useRef)(s);(0,a.useEffect)(()=>{p.current=s},[s]);let h=(0,a.useRef)(o);(0,a.useEffect)(()=>{h.current=o},[o]);let[x,v]=(0,a.useState)(!1),[w,j]=(0,a.useState)(!1),{props:_,meta:N}=(0,d.getImgProps)(e,{defaultLoader:m.default,imgConf:n,blurComplete:x,showAltText:w});return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(b,{..._,unoptimized:N.unoptimized,placeholder:N.placeholder,fill:N.fill,onLoadRef:p,onLoadingCompleteRef:h,setBlurComplete:v,setShowAltText:j,sizesInput:e.sizes,ref:t}),N.preload?(0,l.jsx)(y,{isAppRouter:!r,imgAttributes:_}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},94909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var i={default:function(){return c},getImageProps:function(){return d}};for(var n in i)Object.defineProperty(r,n,{enumerable:!0,get:i[n]});let l=e.r(55682),a=e.r(8927),s=e.r(5500),o=l._(e.r(1948));function d(e){let{props:t}=(0,a.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=s.Image},57688,(e,t,r)=>{t.exports=e.r(94909)},7466,25631,e=>{"use strict";var t=e.i(43476),r=e.i(71645);e.i(4121);var i=e.i(76525),n=e.i(75003),l=e.i(83118),a=e.i(18566),s=e.i(97815),o=e.i(64192),d=e.i(37842),c=e.i(10361),u=e.i(24652),f=e.i(38828),m=e.i(69008);function p(e){return!e||!e.active_membership?.active&&!e.previous_membership}e.s(["canReceiveLimitedBonusOffer",()=>p],25631);var g=e.i(57688);let h=()=>{let e=(0,a.useRouter)();return(0,t.jsxs)("div",{className:"bg-white p-8 flex-col w-fit xl:w-full mx-auto shadow-[0_0_10px_0_rgba(0,0,0,0.1)] xl:flex-row rounded-4xl lg:rounded-full flex justify-between items-center gap-4",children:[(0,t.jsxs)("div",{className:"max-w-2xl flex gap-4 md:flex-row flex-col justify-center items-center",children:[(0,t.jsx)(g.default,{src:"/images/gift/gift-hero.png",width:100,height:60,alt:"Sanctifly gift card illustration - Give the gift of premium airport lounge access with VIP membership gift certificate for travelers",className:"object-cover rotate-180"}),(0,t.jsxs)("div",{className:"text-center xl:text-left",children:[(0,t.jsx)(l.Heading,{as:"h4",children:"Give the Gift of Travel Comfort"}),(0,t.jsx)(l.Text,{size:"base",className:"text-[#313131] mt-1",children:"Skip the crowded terminals. Treat someone special to a year of VIP airport lounge access with Sanctifly."})]})]}),(0,t.jsxs)("div",{className:"flex gap-5 flex-col md:flex-row",children:[(0,t.jsx)(i.Button,{variant:"outline",size:"lg",className:"text-secondary border-secondary",onClick:()=>{e.push("/gifting")},children:"Learn More"}),(0,t.jsx)(i.Button,{variant:"secondary",size:"lg",onClick:()=>{e.push("/gifting/purchase")},children:"Buy a Gift Now"})]})]})};function x(e){if(!e||"object"!=typeof e)return{};let t={};for(let[r,i]of Object.entries(e))"string"==typeof i?t[r]=i:("number"==typeof i||"boolean"==typeof i)&&(t[r]=String(i));return t}function b(e,t){if(!e)return;let r=e[t];return"string"==typeof r&&""!==r.trim()?r:"number"==typeof r||"boolean"==typeof r?String(r):void 0}function y(e){for(let t of["billing_interval","subscription_interval","billing_period","recurring_interval","interval"]){let r=e[t];if(!r)continue;let i=r.toLowerCase().trim();if("month"===i||"months"===i||"monthly"===i||"mo"===i||"m"===i)return"month";if("year"===i||"years"===i||"yearly"===i||"annual"===i||"yr"===i||"y"===i)return"year"}let t=e.plan_code;if(t){let e,r=(e=t.toLowerCase()).includes("month")?"month":e.includes("annual")||e.includes("year")?"year":null;if(r)return r}return null}function v(e){let t=Math.round(100*e);return Number.isFinite(t)?t%100==0?String(Math.trunc(t/100)):(t/100).toFixed(2):"0"}function w({className:e}){return(0,t.jsx)("svg",{viewBox:"0 0 32 32",fill:"none","aria-hidden":!0,
3className:`h-9 w-9 shrink-0 ${e??""}`,children:(0,t.jsx)("path",{d:"M16 2.5L17.35 13.2L27.5 15L17.35 16.8L16 27.5L14.65 16.8L4.5 15L14.65 13.2L16 2.5Z",fill:"currentColor"})})}function j({isLight:e}){if(e)return null;let r="Signup for an annual Jetsetter or Trailblazer membership and receive your lounge visit on us!",i="New members receive 100 free points good for 1 additional lounge visit with the purchase of an annual Jetsetter or Trailblazer membership.";return(0,t.jsxs)("div",{className:"relative isolate w-full max-w-[1124px] overflow-hidden rounded-[26px] rounded-tr-[90px] rounded-bl-[90px] border-[3px] border-solid border-white/[0.102] p-4 shadow-[0_18px_40px_-12px_rgba(0,0,0,0.4)] lg:min-h-[163px]",children:[(0,t.jsx)("div",{className:"pointer-events-none absolute inset-0","aria-hidden":!0,style:{background:"linear-gradient(348deg, #EE602C -4.16%, #1E1B4B 63.59%, #0F172A 84.83%), linear-gradient(90deg, #0A0A0A 0%, #1E1B4B 55%, #0F172A 100%)"}}),(0,t.jsx)(w,{className:"pointer-events-none absolute left-5 top-6 z-10 text-[#f5c842] drop-shadow-[0_0_14px_rgba(241,196,15,0.9)] sm:left-6"}),(0,t.jsx)(w,{className:"pointer-events-none absolute bottom-6 right-5 z-10 text-[#f5c842] drop-shadow-[0_0_14px_rgba(241,196,15,0.9)] sm:right-6"}),(0,t.jsxs)("div",{className:"relative z-10 flex w-full flex-col gap-3 px-6 py-2 text-center sm:px-8 lg:hidden",children:[(0,t.jsx)("p",{className:"text-lg font-bold text-white",children:"Limited Time Offer"}),(0,t.jsxs)("p",{className:"text-sm font-bold leading-snug text-white",children:[(0,t.jsx)("span",{className:"font-bold",children:"Limited Time Offer:"})," ",r]}),(0,t.jsxs)("p",{className:"text-xs leading-relaxed text-white/85",children:[i,(0,t.jsx)("span",{className:"block",children:"May not be combined with any other promotions."})]})]}),(0,t.jsxs)("div",{className:"relative z-10 hidden flex-col items-center gap-2 px-2 py-3 text-center sm:px-12 lg:flex",children:[(0,t.jsx)("p",{className:"text-[30px] font-bold tracking-tight text-white ",children:"Limited Time Offer"}),(0,t.jsx)("p",{className:" text-base font-bold leading-snug text-white text-[20px]",children:r}),(0,t.jsxs)("p",{className:"text-[14px] leading-relaxed text-white/80 mt-1",children:[i," May not be combined with any other promotions."]})]})]})}function _(e){if(!e||"object"!=typeof e)return"year";let t=y(x(e.metadata));if(t)return t;let r=y(x(e.recurring?.metadata));return r||("month"===(e.recurring?.interval||e.interval||"year")?"month":"year")}function N(e){let t=y(x(e.metadata));if(t)return t;let r=(e.prices??[]).filter(e=>!1!==e.active),i=r.length>0?r:e.prices??[];return i[0]?_(i[0]):"year"}function P(e){return!1!==e.active}function S({title:e,description:x,variant:y="default",discountPercentagePrice:w=0,discountPercentageByPlanName:S,showLimitedBonusOffer:C=!0}){let{user:O}=(0,s.useAuth)(),{openModal:E,closeModal:$}=(0,o.useModal)(),z=(0,a.useRouter)(),{data:M,isLoading:R,error:L}=(0,f.usePlans)(),k=C&&p(O),[I,A]=(0,r.useState)(null),[T,D]=(0,r.useState)("year"),B=(0,r.useMemo)(()=>{let e=!1,t=!1;if(!M?.data)return{month:e,year:t};for(let r of M.data)if(!(!r.active||(0,m.isExclusiveMembershipPlan)(r)))for(let i of("month"===N(r)?e=!0:t=!0,r.prices??[]))"month"===_(i)?e=!0:t=!0;return{month:e,year:t}},[M]),F=r.default.useRef(!1);r.default.useEffect(()=>{!R&&!F.current&&M?.data&&(!B.year&&B.month&&D("month"),F.current=!0)},[R,M?.data,B.month,B.year]);let U=B.month&&B.year,G=(0,r.useMemo)(()=>{if(!M?.data)return[];let e="month"===T?"Monthly Membership":"Annual Membership",t=[];for(let r of M.data){if(!r.active||(0,m.isExclusiveMembershipPlan)(r))continue;let i=function(e,t){let r=(e.prices??[]).filter(P),i=r.length>0?r:e.prices??[],n=i.find(e=>_(e)===t);return n||(N(e)===t&&i[0]?i[0]:void 0)}(r,T);if(!i)continue;let n=i.amount?i.amount/100:0,l=function(e){let t=b(e.metadata,"points_allocation_amount");if(void 0!==t)return t;let r=b(e.recurring?.metadata,"points_allocation_amount");return void 0!==r?r:"0"}(i),a=function(e){let t=Number(e.replace(/,/g,"").trim());return Number.isFinite(t)?t.toLocaleString("en-US"):e}(l),s=(0,m.getLimitedBonusPointsFromPlanAndPrice)(r,i),o=k?s:null,d=Number(String(l).replace(/,/g,"")),c="number"==typeof o&&o>0&&Number.isFinite(d)&&d>
30,u=c?(d+o).toLocaleString("en-US"):null,f=r.metadata.recharge_usd_points,p=i.id||i.stripe_price_id||i.price_id,g=[],h="month"===T?" /month":"/year";"month"===T?g.push({text:c?`Accrues: <span class="line-through opacity-70">${a}</span> <strong>${u}</strong> points/month`:`Accrues: <strong>${a}</strong> points/month`,highlight:!1}):g.push({text:c?`Includes: <span class="line-through opacity-70">${a}</span> <strong>${u}</strong> points`:`Includes: <strong>${a}</strong> points`,highlight:!1});let x=function(e,t,r){if(t&&Object.keys(t).length>0){let r=Object.keys(t).find(t=>t.toLowerCase().trim()===e.toLowerCase().trim());if(void 0!==r)return t[r]}return r}(r.name,S,w);if(x>0){let t=n*(1-x/100);g.push({text:`${e}: <span class="line-through opacity-80">$${v(n)}</span> <strong>$${v(t)}</strong>${h}`,highlight:!1})}else g.push({text:`${e}: <strong>$${v(n)}</strong>${h}`,highlight:!1});g.push({text:`Additional points: <strong>$${f}</strong> per point`,highlight:!1}),t.push({name:r.name,tagline:r.metadata.suitable_for||"Best for travelers",features:g,ctaLabel:"Purchase Now",price:n,priceId:p,sourcePlan:r,billingInterval:T,...null!=o?{bonusPoints:o}:{}})}return t.sort((e,t)=>e.price-t.price),t},[M,T,w,S,k]),q=(0,r.useMemo)(()=>!!O?.active_membership&&!!O.active_membership.active,[O]);r.default.useEffect(()=>{L&&!R&&E("error",(0,t.jsx)(d.ErrorModal,{isOpen:!0,title:"Something went wrong",description:"Failed to load membership plans",onClose:()=>$("error")}))},[L,R,E,$]);let H=async e=>{if(q)return void window.open(u.DOWNLOAD_APP_URL,"_blank","noopener,noreferrer");if(!e.priceId)return void E("error",(0,t.jsx)(d.ErrorModal,{isOpen:!0,title:"Something went wrong",description:"Unable to continue: missing price for this plan.",onClose:()=>$("error")}));try{A(e.priceId),(0,u.setPendingPurchase)({kind:"membership_plan",price_id:e.priceId,plan:e.sourcePlan??{id:"",name:e.name,description:null,active:!0,metadata:{},prices:[]},created_at:Date.now(),...!k?{show_limited_bonus_offer:!1,apply_bonus:!1}:{}}),z.push("/purchase")}finally{A(null)}},W="light"===y,V=G.some(e=>null!=e.bonusPoints);return R?(0,t.jsxs)("section",{className:`section-spacing relative rounded-tr-[110px] lg:rounded-tr-[140px] rounded-br-[110px] lg:rounded-br-[140px] ${W?"bg-transparent":"bg-linear-to-r from-(--secondary-bg-gradient) to-(--primary-bg-gradient)"}`,children:[!W&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute bottom-full left-0 w-[200px] h-[200px] bg-(--secondary-bg-gradient) -z-10"}),(0,t.jsx)("div",{className:"absolute top-full left-0 w-[200px] h-[200px] bg-(--secondary-bg-gradient) -z-10"})]}),(0,t.jsx)(n.Container,{size:"xxl",className:"relative z-10",children:(0,t.jsx)("div",{className:"flex justify-center items-center h-[400px]",children:(0,t.jsx)("div",{className:`animate-spin rounded-full h-12 w-12 border-t-2 border-b-2 ${W?"border-foreground":"border-white"}`})})})]}):(0,t.jsxs)("section",{id:"membership-plans",className:`section-spacing relative overflow-x-clip rounded-tr-[80px] lg:rounded-tr-[140px] rounded-br-[80px] lg:rounded-br-[140px] ${W?"bg-transparent":"bg-linear-to-r from-(--secondary-bg-gradient) to-(--primary-bg-gradient)"}`,children:[!W&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute bottom-full left-0 w-[200px] h-[200px] bg-(--secondary-bg-gradient) -z-10"}),(0,t.jsx)("div",{className:"absolute top-full left-0 w-[200px] h-[200px] bg-(--secondary-bg-gradient) -z-10"})]}),(0,t.jsxs)(n.Container,{size:"xxl",className:"relative z-10",children:[(0,t.jsxs)("div",{className:"mb-12 flex flex-col gap-6 lg:mb-16 lg:gap-8",children:[(0,t.jsxs)("div",{className:`order-1 w-full lg:order-2 ${W?"max-w-5xl text-left":"max-w-6xl text-left lg:mx-auto lg:text-center"}`,children:[(0,t.jsx)(l.Heading,{as:"h2",className:`text-3xl md:text-4xl lg:text-5xl mb-2 lg:mb-4 ${W?"text-foreground":"text-white"}`,children:e}),x&&(0,t.jsx)(l.Text,{size:"lg",className:`text-[16px] md:text-lg mt-4 ${W?"text-foreground/80":"text-white/90!"}`,children:x})]}),W&&(0,t.jsx)("div",{className:"order-2 w-full rounded-4xl lg:rounded-full overflow-hidden p-8 lg:pl-18 lg:p-8 bg-gradient-to-br from-[var(--primary)] to-[#041424] lg:order-3",children:(0,t.jsxs)("div",{className:"flex flex-col lg:flex-row gap-6 lg:gap-8 items-center justify-space-between",children:[(0,t.jsxs)("div",{className:"max-lg:text-center lg:max-w-[75%]",children:[(0,t.jsx)(l.Heading,{as:"h3",className:"text-2xl md:text-3xl lg:text-4xl font-bold mb-4 text-white",children:"Learn more about Sanctifly membership"}),(0,t.jsx)(l.Text,{size:"base",className:"leading-relaxed text-white/90",children:"Escape the Airport Chaos - An affordable lounge visit will transform your airport experience. With access to 1500 airport lounges worldwide, Sanctifly will make your pre-boarding, layovers and delays worthwhile. You will relax, recharge, and save money - every time you fly!"})]}),(0,t.jsx)("div",{className:"flex justify-center lg:justify-end",children:(0,t.jsx)(i.Button,{variant:"primary",size:"lg",className:"rounded-full font-bold py-4 px-8 bg-white text-secondary hover:bg-white/90 text-base md:text-lg",onClick:()=>
3z.push("/"),children:"Learn more about how Sanctifly membership works"})})]})}),U?(0,t.jsx)("div",{className:`flex justify-center px-2 ${W?"order-3 lg:order-4":"order-2 lg:order-3"}`,children:(0,t.jsxs)("div",{role:"tablist","aria-label":"Membership billing period",className:`relative grid w-full max-w-md grid-cols-2 rounded-full p-1 ${W?"border border-foreground/10 bg-foreground/5 shadow-[0_4px_14px_rgba(0,0,0,0.06)]":"border border-white/45 bg-white/20 shadow-[0_4px_24px_rgba(0,0,0,0.18)] backdrop-blur-md ring-1 ring-white/25"}`,children:[(0,t.jsx)("div",{className:`pointer-events-none absolute inset-y-1 w-[calc(50%-4px)] rounded-full transition-transform duration-300 ease-[cubic-bezier(0.4,0,0.2,1)] ${W?"bg-white shadow-sm":"bg-white shadow-md"}`,style:{transform:"year"===T?"translateX(4px)":"translateX(calc(100% + 4px))"}}),[{id:"year",label:"Yearly"},{id:"month",label:"Monthly"}].map(e=>{let r=T===e.id;return(0,t.jsx)("button",{type:"button",role:"tab","aria-selected":r,className:`relative z-10 flex h-12 items-center justify-center rounded-full text-sm font-semibold transition-colors ${r?"text-primary":W?"text-foreground/60":"text-white drop-shadow-[0_1px_2px_rgba(0,0,0,0.35)]"}`,onClick:()=>D(e.id),children:e.label},e.id)})]})}):null,k&&V?(0,t.jsx)("div",{className:`flex w-full justify-center lg:order-1 ${W?"order-4":"order-3"}`,children:(0,t.jsx)(j,{isLight:W})}):null]}),(0,t.jsx)("div",{className:"grid min-w-0 grid-cols-1 items-stretch md:grid-cols-2 xl:grid-cols-4 gap-6 lg:gap-8 mb-12 lg:mb-16",children:G.map(e=>{let r=e.bonusPoints,n=null!=r;return(0,t.jsxs)("div",{className:`group relative flex h-full min-w-0 w-full flex-col overflow-visible transition-all duration-300 hover:-translate-y-2 ${V?"pt-6 sm:pt-8":""}`,children:[n?(0,t.jsx)("div",{className:`pointer-events-none absolute left-8 z-20 w-3/4 max-w-[calc(100%-4rem)] -translate-y-1/2 ${V?"top-6 sm:top-8":"top-0"}`,role:"status","aria-label":`Limited time offer: ${r} bonus points`,children:(0,t.jsxs)("div",{className:"flex w-full min-w-0 items-center gap-3 rounded-2xl border-2 border-secondary bg-[#FCDFD4] px-4 py-2.5 shadow-[0_4px_14px_rgba(0,0,0,0.08)] sm:gap-3.5 sm:px-5 sm:py-1.5",children:[(0,t.jsx)("span",{className:"flex h-9 w-9 shrink-0 items-center justify-center rounded-lg sm:h-10 sm:w-10",children:(0,t.jsx)(g.default,{src:"/images/gift/gift-hero.png",width:100,height:60,alt:"Sanctifly gift card illustration - Give the gift of premium airport lounge access with VIP membership gift certificate for travelers",className:"h-full w-full object-cover rotate-180"})}),(0,t.jsxs)("div",{className:"min-w-0 text-left font-lexend-deca leading-tight",children:[(0,t.jsx)("p",{className:"text-[10px] font-medium uppercase tracking-wide text-black sm:text-[11px]",children:"Limited time offer"}),(0,t.jsxs)("p",{className:"text-[14px] font-bold text-secondary sm:text-sm",children:["+",r.toLocaleString("en-US")," Bonus points"]})]})]})}):null,(0,t.jsxs)("div",{className:"flex h-full min-w-0 w-full flex-1 flex-col overflow-hidden rounded-4xl rounded-tr-[80px] bg-white shadow-md transition-shadow duration-300 group-hover:shadow-xl lg:rounded-tr-[120px]",children:[(0,t.jsxs)("div",{className:`relative flex shrink-0 flex-col bg-[#eef3f8] px-8 pb-4 ${V?"min-h-[11.5rem] pt-12 sm:min-h-[12rem]":"min-h-[9.5rem] pt-8 sm:min-h-[10rem]"}`,children:[(0,t.jsx)(l.Text,{className:"relative z-1 mb-1 shrink-0 text-2xl! font-bold text-primary",children:e.name}),(0,t.jsx)(l.Heading,{as:"h3",className:"relative z-1 min-h-[3.25rem] text-2xl! font-bold leading-snug text-foreground sm:min-h-[3.5rem]",children:e.tagline})]}),(0,t.jsx)("div",{className:"mb-8 mt-6 flex-1 grow px-8",children:(0,t.jsx)("ul",{className:"space-y-4",children:e.features.map((e,r)=>(0,t.jsxs)("li",{className:"flex items-start",children:[(0,t.jsx)("span",{className:"mr-2 mt-2.5 block w-1.5 h-1.5 bg-foreground rounded-full shrink-0"}),(0,t.jsx)(l.Text,{className:"text-foreground text-base leading-relaxed font-medium",children:(0,t.jsx)("span",{dangerouslySetInnerHTML:{__html:e.text}})})]},r))})}),(0,t.jsx)("div",{className:"mt-auto px-8 pb-8",children:(0,t.jsx)(i.Button,{variant:"primary",size:"lg",className:"w-full rounded-full bg-secondary hover:bg-secondary-hover text-white font-bold py-4 disabled:opacity-60",disabled:!!I,onClick:()=>H(e),children:q?"Download App":e.ctaLabel})})]})]},e.sourcePlan?.id?`${e.sourcePlan.id}-${e.priceId??""}`:`${e.name}-${e.priceId??""}`)})}),(0,t.jsx)(h,{}),(0,t.jsx)(c.PlanRecommendationWidget,{isLight:W}),(0,t.jsx)("div",{className:"w-full h-full rounded-3xl overflow-hidden relative text-center md:text-center mt-10 ",children:(0,t.jsx)(l.Text,{size:"sm",className:`text-sm leading-relaxed mb-2 block ${W?"text-foreground":"text-white"}`,children:"Prices subject to change. Select premier lounges may charge more. Download the app to see all pricing."})})]})]})}e.s(["Membership",()=>S],7466)}]);
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.