PageSourceSearch

https://vidaintelligence.ai/_next/static/chunks/32fl3fehgkxpq.js

js vidaintelligence.ai collected 2026-10-05 16:08:04 UTC 53,838 bytes, 599 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,573338,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"useMergedRef",{enumerable:!0,get:function(){return r}});let i=e.r(210506);function r(e,t){let a=(0,i.useRef)(null),r=(0,i.useRef)(null);return(0,i.useCallback)(i=>{if(null===i){let e=a.current;e&&(a.current=null,e());let t=r.current;t&&(r.current=null,t())}else e&&(a.current=o(e,i)),t&&(r.current=o(t,i))},[e,t])}function o(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)},137563,(e,t,a)=>{"use strict";function i({widthInt:e,heightInt:t,blurWidth:a,blurHeight:r,blurDataURL:o,objectFit:n}){let s=a?40*a:e,l=r?40*r:t,d=s&&l?`viewBox='0 0 ${s} ${l}'`:"";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"===n?"xMidYMid":"cover"===n?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${o}'/%3E%3C/svg%3E`}Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImageBlurSvg",{enumerable:!0,get:function(){return i}})},393038,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var i={VALID_LOADERS:function(){return o},imageConfigDefault:function(){return n}};for(var r in i)Object.defineProperty(a,r,{enumerable:!0,get:i[r]});let o=["default","imgix","cloudinary","akamai","custom"],n={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}},633380,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"getImgProps",{enumerable:!0,get:function(){return d}}),e.r(985228);let i=e.r(628366),r=e.r(137563),o=e.r(393038),n=["-moz-initial","fill","none","scale-down",void 0];function s(e){return void 0!==e.default}function l(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:c=!1,preload:h=!1,loading:m,className:p,quality:f,width:u,height:g,fill:b=!1,style:x,overrideSrc:v,onLoad:w,onLoadingComplete:y,placeholder:j="empty",blurDataURL:k,fetchPriority:_,decoding:S="async",layout:N,objectFit:O,objectPosition:C,lazyBoundary:P,lazyRoot:T,...E},z){var F;let R,I,M,{imgConf:A,showAltText:D,blurComplete:H,defaultLoader:B}=z,$=A||o.imageConfigDefault;if("allSizes"in $)R=$;else{let e=[...$.deviceSizes,...$.imageSizes].sort((e,t)=>e-t),t=$.deviceSizes.sort((e,t)=>e-t),a=$.qualities?.sort((e,t)=>e-t);R={...$,allSizes:e,deviceSizes:t,qualities:a}}if(void 0===B)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 q=E.loader||B;delete E.loader,delete E.srcSet;let L="__next_img_default"in q;if(L){if("custom"===R.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=q;q=t=>{let{config:a,...i}=t;return e(i)}}if(N){"fill"===N&&(b=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[N];e&&(x={...x,...e});let a={responsive:"100vw",fill:"100vw"}[N];a&&!t&&(t=a)}let W="",U=l(u),G=l(g);if((F=e)&&"object"==typeof F&&(s(F)||void 0!==F.src)){let t=s(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(I=t.blurWidth,M=t.blurHeight,k=k||t.blurDataURL,W=t.src,!b)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 K=!c&&!h&&("lazy"===m||void 0===m);(!(e="string"==typeof e?e:W)||e.startsWith("data:")||e.startsWith("blob:"))&&(a=!0,K=!1),R.unoptimized&&(a=!0),L&&!R.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(a=!0);let V=l(f),X=Object.assign(b?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:O,objectPosition:C}:{},D?{}:{color:"transparent"},x),Q=H||"empty"===j?null:"blur"===j?`url("data:image/svg+xml;charset=utf-8,${(0,r.getImageBlurSvg)({widthInt:U,heightInt:G,blurWidth:I,blurHeight:M,blurDataURL:k||"",objectFit:X.objectFit})}")`:`url("${j}")`,Y=n.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,J=Q?{backgroundSize:Y,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Q}:{},Z=function({config:e,src:t,unoptimized:a,width:r,quality:o,sizes:n,loader:s}){if(a){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,i.getDeploymentId)();if(e){let a=t.indexOf("?");if(-1!==a){let i=new URLSearchParams(t.slice(a+1));i.get("dpl")||(i.append("dpl",e),t=t.slice(0,a)+"?"+i.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:l,kind:d}=function({deviceSizes:e,allSizes:t},a,i){if(i){let a=/(^|\s)(1?\d?\d)vw/g,r=[];for(let e;e=a.exec(i);)r.push(parseInt(e[2]));if(r.length){let a=.01*Math.min(...r);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,r,n),c=l.length-1;return{sizes:n||"w"!==d?n:"100vw",srcSet:l.map((a,i)=>`${s({config:e,src:t,quality:o,width:a})} ${"w"===d?a:i+1}${d}`).join(", "),src:s({config:e,src:t,quality:o,width:l[c]})}}({config:R,src:e,unoptimized:a,width:U,quality:V,sizes:t,loader:q}),ee=K?"lazy":m;return{props:{...E,loading:ee,fetchPriority:_,width:U,height:G,decoding:S,className:p,style:{...X,...J},sizes:Z.sizes,srcSet:Z.srcSet,src:v||Z.src},meta:{unoptimized:a,preload:h||c,placeholder:j,fill:b}}}},563530,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return s}});let i=e.r(210506),r="u"<typeof window,o=r?()=>{}:i.useLayoutEffect,n=r?()=>{}:i.useEffect;function s(e){let{headManager:t,reduceComponentsToState:a}=e;function s(){if(t&&t.mountedInstances){let e=i.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(a(e))}}return r&&(t?.mountedInstances?.add(e.children),s()),o(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),o(()=>(t&&(t._pendingUpdate=s),()=>{t&&(t._pendingUpdate=s)})),n(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},272625,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var i={default:function(){return u},defaultHead:function(){return h}};for(var r in i)Object.defineProperty(a,r,{enumerable:!0,get:i[r]});let o=e.r(481258),n=e.r(744066),s=e.r(717737),l=n._(e.r(210506)),d=o._(e.r(563530)),c=e.r(363931);function h(){return[(0,s.jsx)("meta",{charSet:"utf-8"},"charset"),(0,s.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===l.default.Fragment?e.concat(l.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(985228);let p=["name","httpEquiv","charSet","itemProp"];function f(e){let t,a,i,r;return e.reduce(m,[]).reverse().concat(h().reverse()).filter((t=new Set,a=new Set,i=new Set,r={},e=>{let o=!0,n=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){n=!0;let a=e.key.slice(e.key.indexOf("$")+1);t.has(a)?o=!1:t.add(a)}switch(e.type){case"title":case"base":a.has(e.type)?o=!1:a.add(e.type);break;case"meta":for(let t=0,a=p.length;t<a;t++){let a=p[t];if(e.props.hasOwnProperty(a))if("charSet"===a)i.has(a)?o=!1:i.add(a);else{let t=e.props[a],i=r[a]||new Set;("name"!==a||!n)&&i.has(t)?o=!1:(i.add(t),r[a]=i)}}}return o})).reverse().map((e,t)=>{let a=e.key||t;return l.default.cloneElement(e,{key:a})})}let u=function({children:e}){let t=(0,l.useContext)(c.HeadManagerContext);return(0,s.jsx)(d.default,{reduceComponentsToState:f,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)},685397,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let i=e.r(481258)._(e.r(210506)),r=e.r(393038),o=i.default.createContext(r.imageConfigDefault)},640007,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"RouterContext",{enumerable:!0,get:function(){return i}});let i=e.r(481258)._(e.r(210506)).default.createContext(null)},224769,(e,t,a)=>{"use strict";function i(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 i}})},57587,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"default",{enumerable:!0,get:function(){return n}});let i=e.r(224769),r=e.r(628366);function o({config:e,src:t,width:a,quality:n}){let s=(0,r.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let a=new URLSearchParams(t.slice(e+1)),i=a.get("dpl");if(i){s=i,a.delete("dpl");let r=a.toString();t=t.slice(0,e)+(r?"?"+r:"")}}}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=${a}&q=${l}${t.startsWith("/")&&s?`&dpl=${s}`:""}`}o.__next_img_default=!0;let n=o},970481,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0}),Object.defineProperty(a,"Image",{enumerable:!0,get:function(){return w}});let i=e.r(481258),r=e.r(744066),o=e.r(717737),n=r._(e.r(210506)),s=i._(e.r(92447)),l=i._(e.r(272625)),d=e.r(633380),c=e.r(393038),h=e.r(685397);e.r(985228);let m=e.r(640007),p=i._(e.r(57587)),f=e.r(573338),u={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 g(e,t,a,i,r,o,n){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&&r(!0),a?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let i=!1,r=!1;a.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>i,isPropagationStopped:()=>r,persist:()=>{},preventDefault:()=>{i=!0,t.preventDefault()},stopPropagation:()=>{r=!0,t.stopPropagation()}})}i?.current&&i.current(e)}}))}function b(e){return n.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let x=(0,n.forwardRef)(({src:e,srcSet:t,sizes:a,height:i,width:r,decoding:s,className:l,style:d,fetchPriority:c,placeholder:h,loading:m,unoptimized:p,fill:u,onLoadRef:x,onLoadingCompleteRef:v,setBlurComplete:w,setShowAltText:y,sizesInput:j,onLoad:k,onError:_,...S},N)=>{let O=(0,n.useCallback)(e=>{e&&(_&&(e.src=e.src),e.complete&&g(e,h,x,v,w,p,j))},[e,h,x,v,w,_,p,j]),C=(0,f.useMergedRef)(N,O);return(0,o.jsx)("img",{...S,...b(c),loading:m,width:r,height:i,decoding:s,"data-nimg":u?"fill":"1",className:l,style:d,sizes:a,srcSet:t,src:e,ref:C,onLoad:e=>{g(e.currentTarget,h,x,v,w,p,j)},onError:e=>{y(!0),"empty"!==h&&w(!0),_&&_(e)}})});function v({isAppRouter:e,imgAttributes:t}){let a={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...b(t.fetchPriority)};return e&&s.default.preload?(s.default.preload(t.src,a),null):(0,o.jsx)(l.default,{children:(0,o.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...a},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,n.forwardRef)((e,t)=>{let a=(0,n.useContext)(m.RouterContext),i=(0,n.useContext)(h.ImageConfigContext),r=(0,n.useMemo)(()=>{let e=u||i||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>
3e-t),a=e.deviceSizes.sort((e,t)=>e-t),r=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:a,qualities:r,localPatterns:"u"<typeof window?i?.localPatterns:e.localPatterns}},[i]),{onLoad:s,onLoadingComplete:l}=e,f=(0,n.useRef)(s);(0,n.useEffect)(()=>{f.current=s},[s]);let g=(0,n.useRef)(l);(0,n.useEffect)(()=>{g.current=l},[l]);let[b,w]=(0,n.useState)(!1),[y,j]=(0,n.useState)(!1),{props:k,meta:_}=(0,d.getImgProps)(e,{defaultLoader:p.default,imgConf:r,blurComplete:b,showAltText:y});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(x,{...k,unoptimized:_.unoptimized,placeholder:_.placeholder,fill:_.fill,onLoadRef:f,onLoadingCompleteRef:g,setBlurComplete:w,setShowAltText:j,sizesInput:e.sizes,ref:t}),_.preload?(0,o.jsx)(v,{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)},712846,(e,t,a)=>{"use strict";Object.defineProperty(a,"__esModule",{value:!0});var i={default:function(){return c},getImageProps:function(){return d}};for(var r in i)Object.defineProperty(a,r,{enumerable:!0,get:i[r]});let o=e.r(481258),n=e.r(633380),s=e.r(970481),l=o._(e.r(57587));function d(e){let{props:t}=(0,n.getImgProps)(e,{defaultLoader:l.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,a]of Object.entries(t))void 0===a&&delete t[e];return{props:t}}let c=s.Image},545092,(e,t,a)=>{t.exports=e.r(712846)},188637,e=>{"use strict";e.s(["siteShellInlinePadding",0,"px-(--site-shell-gutter)"])},918465,e=>{"use strict";var t=e.i(647163),a=e.i(188637);let i=(0,t.cn)("mx-auto w-full min-w-0",a.siteShellInlinePadding);(0,t.cn)("absolute inset-y-0 left-1/2 z-0 w-full max-w-shell -translate-x-1/2"),e.s(["siteContentShell",0,i])},840319,e=>{"use strict";var t=e.i(717737),a=e.i(647163);e.s(["VidaHeroShell",0,function({id:e,className:i,frameClassName:r,frame:o,contentClassName:n,children:s,trust:l,...d}){return(0,t.jsxs)("section",{id:e,className:(0,a.cn)("relative flex min-h-[100svh] flex-col bg-white",i),...d,children:[(0,t.jsx)("div",{"aria-hidden":!0,className:(0,a.cn)("absolute max-md:inset-2 z-0 overflow-hidden rounded-tr-[80px] md:inset-6 md:rounded-tr-[116px]",r),children:o}),(0,t.jsxs)("div",{className:(0,a.cn)("relative z-10 mx-auto flex w-full flex-1 flex-col justify-between pb-12 pt-[72px] md:pb-16 md:pt-28 lg:pt-36",n??"px-6 md:px-12 max-w-shell"),children:[s,l]})]})}])},539323,e=>{"use strict";var t=e.i(717737),a=e.i(210506);e.i(549350);var i=e.i(335798),r=e.i(647163);function o(){i.ScrollTrigger.refresh()}function n({wide:e=!1}){return(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1.5",children:[(0,t.jsx)("div",{className:(0,r.cn)("h-6 rounded-sm bg-vida-blue-500/10",e?"w-2/5":"w-3/5")}),(0,t.jsx)("div",{className:"h-12 w-full rounded-sm bg-vida-blue-500/5 ring-2 ring-inset ring-vida-blue-500/10"})]})}function s(){return(0,t.jsxs)("div",{"aria-hidden":!0,className:"flex w-full animate-pulse flex-col gap-4",children:[[0,1,2].map(e=>(0,t.jsxs)("div",{className:"flex flex-col gap-4 min-[480px]:flex-row",children:[(0,t.jsx)(n,{}),(0,t.jsx)(n,{})]},e)),(0,t.jsx)(n,{wide:!0}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("div",{className:"h-6 w-1/4 rounded-sm bg-vida-blue-500/10"}),(0,t.jsx)("div",{className:"h-[140px] w-full rounded-sm bg-vida-blue-500/5 ring-2 ring-inset ring-vida-blue-500/10"})]}),(0,t.jsxs)("div",{className:"mt-1 flex flex-col gap-3 border-t border-vida-blue-500/15 pt-5",children:[[0,1,2].map(e=>(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("div",{className:"h-3.5 w-full rounded-sm bg-vida-blue-500/10"}),(0,t.jsx)("div",{className:"h-3.5 w-11/12 rounded-sm bg-vida-blue-500/10"}),(0,t.jsx)("div",{className:"h-3.5 w-3/4 rounded-sm bg-vida-blue-500/10"})]},e)),[0,1].map(e=>(0,t.jsxs)("div",{className:"flex items-start gap-2.5",children:[(0,t.jsx)("div",{className:"size-5 shrink-0 rounded-sm bg-vida-blue-500/15"}),(0,t.jsx)("div",{className:"h-3.5 w-3/5 rounded-sm bg-vida-blue-500/10"})]},e))]}),(0,t.jsx)("div",{className:"mt-1 flex justify-end",children:(0,t.jsx)("div",{className:"h-14 w-32 rounded-full bg-vida-blue-500/10"})})]})}let l=`
4  /* Reset HubSpot defaults */
5  .hs-form {
6    font-family: 'Inter', sans-serif !important;
7  }
8
9  /* Each HubSpot field group renders as its own <fieldset> (form-columns-1/2) —
10     on the real embed, HubSpot's OWN bundled stylesheet already zeroes out the
11     browser's default fieldset border/padding/min-width before this CSS ever
12     runs, so this was previously a no-op there. The disabled "HubSpotFormPreview"
13     replica never loads that script (that's the whole point of it), so its own
14     <fieldset> elements (added TKT-2026-2517, to give the preview the same
15     ".hs-form > fieldset" flex targets the desktop compaction rules below rely
16     on) would otherwise show the UA-default fieldset chrome and intrinsic
17     min-content sizing. Explicit here so both paths render identically. */
18  .hs-form fieldset {
19    border: none !important;
20    margin: 0 !important;
21    padding: 0 !important;
22    min-width: 0 !important;
23  }
24
25  /* Field labels.
26     TKT-2026-2444 (wave 2) — TWO fixes here.
27
28     1. The exclusion list was ':not(.hs-form-checkbox-display)', but HubSpot's boolean
29        consent checkbox label carries '.hs-form-booleancheckbox-display'. That class was
30        never excluded, and this selector out-specifies the checkbox rule below
31        ('.hs-form label:not(.x)' = (0,2,1) vs '.hs-form .hs-form-booleancheckbox-display'
32        = (0,2,0) — '!important' on both, so specificity decides). Result: the checkbox
33        label resolved to 'display:block', which made the 'display:flex'/'gap:8px'/
34        'align-items' below completely inert. Measured on the real embed: the consent
35        text started 4px INSIDE the checkbox (gap -4px, not +8px) and the wrapped second
36        line hung at a different indent. Excluding both classes is what makes the
37        checkbox rules apply at all.
38
39        The exclusions are wrapped in ':where()' so they add NO specificity. A bare
40        second ':not()' would have taken this selector to (0,3,1) and silently
41        out-specified '.hs-form .hs-error-msgs label' (0,2,1) — which renders HubSpot's
42        validation messages. Caught in review: with the plain ':not()' form, submitting
43        an empty form produced "Please complete this required field." in VIDA blue at
44        16px instead of the intended red at 14px. ':where()' keeps this base rule at
45        (0,1,1) so every more specific rule below (errors, checkbox) wins on its own
46        merit. The declarations are still '!important', which is what beats HubSpot's
47        own non-important stylesheet.
48
49     2. 20px/32px made the label LARGER than the 16px value it labels, and cost 32px of
50        label box on each of 11 fields. 16px/24px at weight 500 keeps the label clearly
51        dominant over the 400-weight input text while removing 8px per field — one of the
52        levers on "the form is disproportionately tall". 16/24 is the VIDA body-md token,
53        so this stays on-scale rather than inventing a size. */
54  .hs-form label:where(:not(.hs-form-booleancheckbox-display)):where(:not(.hs-form-checkbox-display)) {
55    font-family: 'Inter', sans-serif !important;
56    font-size: 16px !important;
57    font-weight: 500 !important;
58    line-height: 24px !important;
59    color: #043B4F !important;
60    margin-bottom: 6px !important;
61    display: block !important;
62  }
63
64  /* Required asterisk */
65  .hs-form label .hs-form-required {
66    color: #961F5F !important;
67  }
68
69  /* Text inputs and selects.
70     TKT-2026-2517 — Marco's live-review read on the desktop Contact hero: "oversized
71     fields, square corners, heavy spacing/borders... reads as a dated 1990s/2000s
72     form." Two changes here:
73
74     1. border-radius: 0 -> 10px. A real corner radius, matching the contemporary
75        rounded language used elsewhere on this hero (the panel itself, the submit
76        pill) instead of the flat-edged box look.
77
78     2. Border color #D9E1E3 -> #7A8F97, width 2px -> 1.5px. This is a contrast fix,
79        not just a taste change: #D9E1E3 on this input's own white fill measures
80        1.33:1, and against the #F0F5F6 panel behind the card, 1.21:1 — both well
81        under the 3:1 WCAG 1.4.11 non-text-contrast floor for a UI component
82        boundary, computed via relative luminance (not eyeballed). Combined with the
83        white-input-on-#F0F5F6-panel fill contrast itself being only 1.1:1, the
84        border was doing all the work of showing where the field is, and doing it
85        below the accessibility floor. #7A8F97 measures 3.39:1 against white and
86        3.08:1 against the panel — clears 3:1 against both surfaces this input can
87        sit on, while staying a soft, "refined" blue-gray rather than a harsh dark
88        line. The 1.5px width is intentional (down from 2px, part of the "heavy
89        borders" fix) — width doesn't factor into the contrast ratio, so thinning it
90        doesn't reopen the accessibility gap the color fix closes. */
91  .hs-form input[type="text"],
92  .hs-form input[type="email"],
93  .hs-form input[type="tel"],
94  .hs-form input[type="number"],
95  .hs-form input[type="url"],
96  .hs-form select,
97  .hs-form textarea {
98    font-family: 'Inter', sans-serif !important;
99    font-size: 16px !important;
100    font-weight: 400 !important;
101    color: #043B4F !important;
102    background-color: #FFFFFF !important;
103    border: 1.5px solid #7A8F97 !important;
104    border-radius: 10px !important;
105    padding: 10px 12px !important;
106    width: 100% !important;
107    box-sizing: border-box !important;
108    outline: none !important;
109    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
110    min-height: 48px !important;
111  }
112
113  /* Hover comes BEFORE focus in source order deliberately (TKT-2026-2517 fix) — found
114     while QA-testing this pass's focus states: a real mouse click leaves the pointer
115     hovering the field it just focused, so both :hover and :focus are true
116     simultaneously. With equal selector specificity ((0,3,1) each, both !important),
117     the one later in source wins — that was :hover before this fix, silently replacing
118     the dark #043B4F focus border with the lighter #B0C4C8 hover border on every
119     mouse-driven focus (the box-shadow ring still rendered, so focus was never
120     invisible, but the border itself showed the wrong, weaker state — keyboard-only Tab
121     navigation, which never triggers :hover, was unaffected and always showed the
122     correct color). Reordering so :focus is last makes it win whenever both apply,
123     while :hover-only (pointer over an unfocused field) is untouched. Pre-existing from
124     an earlier round, not something this pass introduced — fixed here because it's a
125     focus-state correctness issue this pass's own QA was specifically checking for. */
126  .hs-form input[type="text"]:hover,
127  .hs-form input[type="email"]:hover,
128  .hs-form input[type="tel"]:hover,
129  .hs-form input[type="number"]:hover,
130  .hs-form input[type="url"]:hover,
131  .hs-form select:hover,
132  .hs-form textarea:hover {
133    border-color: #B0C4C8 !important;
134  }
135
136  /* Focus — the "outline: none" above strips the UA ring, so a border-colour swap was
137     the ONLY focus affordance (a 2px hue change is a weak WCAG 2.4.7 indicator and
138     invisible to anyone who cannot resolve #D9E1E3 vs #043B4F). Restore a real ring.
139     TKT-2026-2444. */
140  .hs-form input[type="text"]:focus,
141  .hs-form input[type="email"]:focus,
142  .hs-form input[type="tel"]:focus,
143  .hs-form input[type="number"]:focus,
144  .hs-form input[type="url"]:focus,
145  .hs-form select:focus,
146  .hs-form textarea:focus {
147    border-color: #043B4F !important;
148    box-shadow: 0 0 0 3px rgba(4, 59, 79, 0.28) !important;
149  }
150
151  /* Textarea (Message field). 176px reserved more than seven rows of empty box in a
152     panel that already runs ~1.8 viewports tall; 140px still shows ~5 rows and stays
153     'resize: vertical' for anyone writing more. TKT-2026-2444 (wave 2). */
154  .hs-form textarea {
155    min-height: 140px !important;
156    resize: vertical !important;
157  }
158
159  /* Field groups — side-by-side layout */
160  .hs-form .form-columns-2 {
161    display: flex !important;
162    gap: 16px !important;
163  }
164
165  .hs-form .form-columns-2 > .hs-form-field {
166    flex: 1 0 0 !important;
167    min-width: 0 !important;
168  }
169
170  /* Mobile — stack two-up fields so labels like "State/Province*" and
171     "Country*" don't collide inside ~131px boxes (TKT-2026-2425). */
172  @media (max-width: 480px) {
173    .hs-form .form-columns-2 {
174      flex-direction: column !important;
175    }
176
177    .hs-form .form-columns-2 > .hs-form-field {
178      flex: 1 1 100% !important;
179    }
180  }
181
182  /* Field spacing */
183  .hs-form .hs-form-field {
184    margin-bottom: 16px !important;
185  }
186
187  /* Validation messages. #d32f2f on the #F0F5F6 panel is 4.62:1, over the 4.5:1 AA floor
188     for 14px text. Verified live by submitting the real embed empty (8 messages) and by
189     blurring a malformed address ("Email must be formatted correctly."). */
190  .hs-form .hs-error-msgs label {
191    font-size: 14px !important;
192    font-weight: 400 !important;
193    color: #d32f2f !important;
194    line-height: 20px !important;
195    margin-bottom: 0 !important;
196  }
197
198  .hs-form .hs-error-msgs {
199    margin: 6px 0 0 0 !important;
200    padding: 0 !important;
201    list-style: none !important;
202  }
203
204  .hs-form .hs-input.error,
205  .hs-form .hs-input.invalid {
206    border-color: #d32f2f !important;
207  }
208
209  /* Keep the focus ring readable when a field is BOTH focused and in error — the generic
210     focus rule paints a blue ring, which would contradict the red border. */
211  .hs-form .hs-input.error:focus,
212  .hs-form .hs-input.invalid:focus {
213    border-color: #d32f2f !important;
214    box-shadow: 0 0 0 3px rgba(211, 47, 47, 0.28) !important;
215  }
216
217  /* Consent checkbox row.
218     Only reachable now that the label rule above stops matching this element (see the
219     specificity note there). 'flex' puts the box and the copy on separate flex items, so
220     a wrapped second line aligns under the FIRST LINE OF TEXT instead of tucking under
221     the box. TKT-2026-2444 (wave 2). */
222  .hs-form .hs-form-booleancheckbox-display {
223    display: flex !important;
224    align-items: flex-start !important;
225    gap: 10px !important;
226    font-family: 'Inter', sans-serif !important;
227    font-size: 15px !important;
228    font-weight: 400 !important;
229    line-height: 1.5 !important;
230    color: #043B4F !important;
231    cursor: pointer !important;
232    margin-bottom: 0 !important;
233  }
234
235  /* HubSpot's own stylesheet puts 'margin-left: 20px' on this span — the indent it uses
236     when the box is floated. Stacked on the flex gap it measured a 30px trench between
237     the box and its label (checkbox right edge 972, text starting at 1002). Zeroing it
238     leaves the 10px gap as the single source of that spacing. TKT-2026-2444 (wave 2). */
239  .hs-form .hs-form-booleancheckbox-display > span {
240    display: block !important;
241    flex: 1 1 auto !important;
242    min-width: 0 !important;
243    margin: 0 !important;
244    padding: 0 !important;
245  }
246
247  .hs-form .hs-form-booleancheckbox-display input[type="checkbox"] {
248    width: 20px !important;
249    height: 20px !important;
250    min-width: 20px !important;
251    min-height: 20px !important;
252    /* Optical alignment: 'flex-start' pins the box to the TOP of the line box, but the
253       glyphs sit on a baseline inside a 22.5px (15px x 1.5) line box. Nudging by half the
254       leftover leading centres the 20px box on the cap-height of the first line —
255       (22.5 - 20) / 2 = 1.25px. Measured misalignment before this was -4px. */
256    margin: 1.25px 0 0 0 !important;
257    accent-color: #043B4F !important;
258    flex: 0 0 auto !important;
259  }
260
261  .hs-form .hs-form-booleancheckbox-display input[type="checkbox"]:focus-visible {
262    outline: 2px solid #043B4F !important;
263    outline-offset: 2px !important;
264  }
265
266  /* Legal consent / privacy microcopy.
267     Before wave 2 this rendered at 18px/24px in full-strength #043B4F with ZERO margin
268     between blocks — visually the same weight as the form's own body copy, and larger
269     than the field labels it sat under. Measured on the real embed at 1440px it was
270     760px of the panel's 1470px form (52%), i.e. the single largest contributor to
271     "the form is disproportionately tall".
272
273     14px/1.6 in a 72%-alpha ink reads as the legal microcopy it is. The composited
274     colour over the #F0F5F6 panel is rgb(70,110,126) = 5.18:1 against that panel, so it
275     stays above the 4.5:1 WCAG AA floor for normal-size text. TKT-2026-2444 (wave 2). */
276  .hs-form .legal-consent-container {
277    font-family: 'Inter', sans-serif !important;
278    /* Set the legal zone apart from the fields instead of letting it run on. */
279    margin-top: 20px !important;
280    padding-top: 20px !important;
281    border-top: 1px solid rgba(4, 59, 79, 0.14) !important;
282  }
283
284  .hs-form .legal-consent-container .hs-richtext,
285  .hs-form .hs-richtext {
286    font-family: 'Inter', sans-serif !important;
287    font-size: 14px !important;
288    font-weight: 400 !important;
289    line-height: 1.6 !important;
290    color: rgba(4, 59, 79, 0.72) !important;
291  }
292
293  /* Real separation between the three legal paragraphs and the checkboxes they gate.
294     'margin: 0' on every block was what made this read as one undifferentiated wall. */
295  .hs-form .legal-consent-container .hs-richtext {
296    margin: 0 0 12px 0 !important;
297  }
298
299  .hs-form .legal-consent-container .hs-form-booleancheckbox {
300    margin: 0 0 16px 0 !important;
301  }
302
303  .hs-form .legal-consent-container .hs-form-booleancheckbox:last-child,
304  .hs-form .legal-consent-container .hs-richtext:last-child {
305    margin-bottom: 0 !important;
306  }
307
308  /* TKT-2026-2518 — the 3 original portal-owned paragraphs are hidden (not removed:
309     they stay in the DOM, insertConsentSummary() never touches them) in favor of the
310     one-line summary inserted above them. ':not(.vida-consent-summary)' is what keeps
311     this from also hiding the summary itself, since both share the .hs-richtext
312     typography rule above. */
313  .hs-form .legal-consent-container .hs-richtext:not(.vida-consent-summary) {
314    display: none !important;
315  }
316
317  .hs-form .vida-consent-summary {
318    font-family: 'Inter', sans-serif !important;
319    font-size: 14px !important;
320    font-weight: 400 !important;
321    line-height: 1.6 !important;
322    color: rgba(4, 59, 79, 0.72) !important;
323    margin: 0 0 16px 0 !important;
324  }
325
326  .hs-form .legal-consent-container a,
327  .hs-form .hs-richtext a,
328  .hs-form .vida-consent-summary a {
329    color: #043B4F !important;
330    text-decoration: underline !important;
331    text-underline-offset: 0.15em !important;
332  }
333
334  .hs-form .legal-consent-container a:focus-visible,
335  .hs-form .hs-richtext a:focus-visible {
336    outline: 2px solid #043B4F !important;
337    outline-offset: 2px !important;
338  }
339
340  /* Submit row — flex instead of a float. HubSpot's ".actions" wrapper never clears its
341     float, so the button escaped the wrapper's box: ".actions" collapsed to 0px high and
342     the pill rendered over the panel's bottom padding edge (TKT-2026-2444).
343     Wave 2 adds the top margin: with 'margin: 0' the pill sat directly against the last
344     line of legal text with no breathing room. */
345  .hs-form .hs-submit .actions,
346  .hs-form .actions {
347    display: flex !important;
348    justify-content: flex-end !important;
349    padding: 0 !important;
350    margin: 20px 0 0 0 !important;
351  }
352
353  /* Submit button */
354  .hs-form .hs-button,
355  .hs-form input[type="submit"] {
356    font-family: 'Inter', sans-serif !important;
357    font-size: 18px !important;
358    font-weight: 500 !important;
359    line-height: 24px !important;
360    color: #FFFFFF !important;
361    background-color: #961F5F !important;
362    border: none !important;
363    border-radius: 100px !important;
364    padding: 16px 32px !important;
365    cursor: pointer !important;
366    transition: background-color 0.2s ease !important;
367    float: none !important;
368  }
369
370  .hs-form .hs-button:hover,
371  .hs-form input[type="submit"]:hover {
372    background-color: #7a1a4e !important;
373  }
374
375  .hs-form .hs-button:focus-visible,
376  .hs-form input[type="submit"]:focus-visible {
377    outline: 2px solid #043B4F !important;
378    outline-offset: 2px !important;
379  }
380
381  /* Hide HubSpot branding if present */
382  .hs-form .hs-form__virality-link {
383    display: none !important;
384  }
385
386  /*
387   * ============================================================================
388   * Desktop/laptop compaction + Organization/State/Country merge (TKT-2026-2517).
389   * ============================================================================
390   *
391   * Marco's live-review evidence: the form card started around y=238 and ran off
392   * the bottom of the viewport — the Message field and submit button were not
393   * visible without scrolling, on a real desktop window. Two separate problems,
394   * fixed together here:
395   *
396   * 1. HEIGHT. Measured against the real embed at 1440px, the form's own content
397   *    ran ~1234px tall even in the (already two-column, non-scrolling-intent)
398   *    layout — the .legal-consent-container alone was 590px of that, effectively
399   *    half the form. Every size below is a clamp() driven by vh, not a fixed
400   *    px value or a small set of breakpoint jumps: it settles near the original
401   *    generous numbers on a tall screen (~850px+) and compresses smoothly as
402   *    viewport height shrinks, so the same rules that make the form fit at
403   *    1512x850 also make it fit at 1024x560 without a separate rule for each.
404   *    This only activates at min-width: 1024px — below that the page is
405   *    allowed to scroll (per spec) and the original, more generous, width-driven
406   *    sizing above stays exactly as it was.
407   *
408   * 2. ROW COUNT. Organization, State/Province, and Country were three separate
409   *    fieldsets (one full-width row each) — HubSpot's own form-builder grouped
410   *    Organization alone and State+Country together; that grouping is portal-side
411   *    config we have no write access to from this repo, so it can't be changed
412   *    by editing the form definition. It CAN be changed visually from here: each
413   *    top-level field group HubSpot renders is its own fieldset, a direct
414   *    child of .hs-form — display: contents on the Organization and
415   *    State/Country fieldsets removes their own box without touching a single
416   *    HubSpot-owned attribute, promoting their field divs to be direct flex
417   *    children of .hs-form instead. Placed there alongside explicit flex-basis
418   *    ratios (2:1:1), they land on one row: Organization wider, State/Country
419   *    compact — exactly the shape the spec calls out as the fallback when a true
420   *    equal three-up is too cramped, which it is inside this card's own width.
421   *    Every other field group keeps its normal one-fieldset-per-row shape via an
422   *    explicit flex: 1 1 100% — nothing else about the field GROUPING changes,
423   *    only Organization/State/Country's shared row and the sizing in part 1.
424   */
425  @media (min-width: 1024px) {
426    .hs-form {
427      --vida-label-fs: clamp(11px, 1.3vh, 13px);
428      --vida-label-mb: clamp(1px, 0.3vh, 3px);
429      --vida-input-h: clamp(28px, 3.8vh, 38px);
430      --vida-input-py: clamp(3px, 0.7vh, 7px);
431      --vida-field-mb: clamp(3px, 0.8vh, 9px);
432      --vida-field-gap: clamp(10px, 1.4vw, 16px);
433      --vida-textarea-h: clamp(32px, 5vh, 56px);
434      --vida-legal-fs: clamp(11px, 1.3vh, 12.5px);
435      --vida-legal-para-max-h: clamp(32px, 4vh, 64px);
436      --vida-legal-spacer: clamp(4px, 0.9vh, 12px);
437      --vida-legal-para-mb: clamp(3px, 0.6vh, 6px);
438      --vida-legal-cb-mb: clamp(3px, 0.7vh, 8px);
439      --vida-submit-py: clamp(5px, 0.9vh, 10px);
440      --vida-submit-fs: clamp(13.5px, 1.5vh, 15.5px);
441      --vida-submit-mt: clamp(4px, 0.9vh, 12px);
442
443      /* .hs-form becomes the flex container every top-level field group lays out
444         in — see part 2 above. flex-wrap: wrap is what turns "3 items whose
445         flex-basis sums to 100%" into a row, and turns any group whose own
446         flex-basis IS 100% into a forced new line. */
447      display: flex !important;
448      flex-direction: row !important;
449      flex-wrap: wrap !important;
450      align-items: flex-start !important;
451      column-gap: var(--vida-field-gap) !important;
452      row-gap: 0 !important;
453    }
454
455    /* Default: every field group is still its own full-width row (unchanged
456       visual grouping for name/email/message/legal) — only the two fieldsets
457       targeted below deviate from this. */
458    .hs-form > fieldset {
459      flex: 1 1 100% !important;
460      max-width: 100% !important;
461      margin: 0 !important;
462    }
463
464    .hs-form > .hs_submit,
465    .hs-form > input[type="hidden"] {
466      flex: 1 1 100% !important;
467    }
468
469    /* Organization + State/Province + Country merge. :has(> .hs_company) /
470       :has(> .hs_state) target these two fieldsets by the field they contain,
471       not by row position — robust to the hidden hs_form_name honeypot fieldset
472       (and anything else HubSpot might render before them) shifting nth-child
473       order. Specificity (0,2,1) beats the generic .hs-form > fieldset rule
474       above (0,1,1) even before !important is weighed. */
475    .hs-form fieldset:has(> .hs_company),
476    .hs-form fieldset:has(> .hs_state) {
477      display: contents !important;
478    }
479
480    .hs-form .hs_company {
481      flex: 2 1 0% !important;
482      min-width: 0 !important;
483    }
484
485    .hs-form .hs_state,
486    .hs-form .hs_country {
487      flex: 1 1 0% !important;
488      min-width: 0 !important;
489    }
490
491    /* Compact labels. */
492    .hs-form label:where(:not(.hs-form-booleancheckbox-display)):where(:not(.hs-form-checkbox-display)) {
493      font-size: var(--vida-label-fs) !important;
494      line-height: 1.3 !important;
495      margin-bottom: var(--vida-label-mb) !important;
496    }
497
498    /* Compact inputs (textarea gets its own shorter floor/ceiling below). */
499    .hs-form input[type="text"],
500    .hs-form input[type="email"],
501    .hs-form input[type="tel"],
502    .hs-form input[type="number"],
503    .hs-form input[type="url"],
504    .hs-form select {
505      min-height: var(--vida-input-h) !important;
506      padding: var(--vida-input-py) 12px !important;
507    }
508
509    /* Deliberately short — a 140px reserve (5 rows) was one of the largest single
510       contributors to the form running off the bottom of the viewport. ~2-3 visible
511       rows is still practically usable for a contact-form message, and it stays
512       resize: vertical (inherited from the base rule above) for anyone who wants
513       more room. */
514    .hs-form textarea {
515      min-height: var(--vida-textarea-h) !important;
516      padding: var(--vida-input-py) 12px !important;
517    }
518
519    .hs-form .hs-form-field {
520      margin-bottom: var(--vida-field-mb) !important;
521    }
522
523    /* Legal consent — already the single largest block (590px measured at 1440px
524       wide even after the wave-2 pass, ~930 characters of HubSpot-portal-owned GDPR
525       copy across 3 paragraphs that this repo has no write access to shorten).
526       Font-size and every margin here shrink with viewport height same as the rest
527       of the form, but text volume alone still doesn't fit the shortest tested
528       window (1024x560) no matter how far a compact-but-legible font/line-height
529       goes.
530
531       TKT-2026-2519 fix: the ORIGINAL version of this rule put max-height +
532       overflow-y: auto on .legal-consent-container itself — the single element
533       that wraps BOTH the three long paragraphs AND the two consent checkboxes
534       (HubSpot interleaves them: paragraph, checkbox, paragraph, checkbox,
535       paragraph). Clamped to ~40-190px, that box's own scrollable area only ever
536       showed the first paragraph on load; both checkboxes — including the
537       required processing-consent one — sat below the fold of that tiny,
538       easy-to-miss internal scroll region, so elementFromPoint at their visual
539       expected position (right after the visible text) hit .actions/the
540       wrapper below instead. Present in the DOM, invisible and unclickable in
541       practice, at every desktop/laptop width (confirmed NOT reproducible below
542       1024px, where this whole media query is inactive and the fields stack in
543       normal flow).
544
545       Fix: move the max-height/scroll clamp DOWN from the shared container onto
546       each individual .hs-richtext paragraph instead (below). Each paragraph
547       gets its own small scrollable window (long paragraphs still don't fully
548       fit without scrolling, same accepted tradeoff as before — TKT-2026-2517
549       already established that 930 characters of fixed legal copy can't be fully
550       visible inside this vertical budget); the checkboxes and their labels, as
551       siblings of those paragraphs rather than children of a clipped ancestor,
552       always render at their own natural height, fully on-screen and reachable
553       by mouse, keyboard, and touch. Text content, its color/contrast, and every
554       checkbox's required/optional semantics are unchanged. */
555    .hs-form .legal-consent-container {
556      margin-top: var(--vida-legal-spacer) !important;
557      padding-top: var(--vida-legal-spacer) !important;
558    }
559
560    .hs-form .legal-consent-container .hs-richtext,
561    .hs-form .hs-richtext {
562      font-size: var(--vida-legal-fs) !important;
563      line-height: 1.42 !important;
564      max-height: var(--vida-legal-para-max-h) !important;
565      overflow-y: auto !important;
566      overscroll-behavior: contain !important;
567      scrollbar-gutter: stable !important;
568      padding-right: 6px !important;
569    }
570
571    .hs-form .legal-consent-container .hs-richtext {
572      margin: 0 0 var(--vida-legal-para-mb) 0 !important;
573    }
574
575    .hs-form .legal-consent-container .hs-form-booleancheckbox {
576      margin: 0 0 var(--vida-legal-cb-mb) 0 !important;
577    }
578
579    .hs-form .hs-form-booleancheckbox-display {
580      font-size: 13px !important;
581      line-height: 1.4 !important;
582    }
583
584    /* Submit — stays a real touch target (padding floor keeps the button well
585       above the 24x24px WCAG 2.5.8 minimum target size even at the shortest tested
586       viewport) while no longer padding out extra vertical space that isn't
587       needed. */
588    .hs-form .hs-button,
589    .hs-form input[type="submit"] {
590      padding: var(--vida-submit-py) 26px !important;
591      font-size: var(--vida-submit-fs) !important;
592    }
593
594    .hs-form .hs-submit .actions,
595    .hs-form .actions {
596      margin: var(--vida-submit-mt) 0 0 0 !important;
597    }
598  }
599`;e.s(["HubSpotForm",0,function({portalId:e="8070802",formId:i="a9e07356-8ff4-4390-871b-40b07b4507cb",region:n="na2",className:d,fallbackEmail:c}){let h=(0,a.useRef)(null),m=(0,a.useRef)(!1),[p,f]=(0,a.useState)("loading");return(0,a.useEffect)(()=>{let t=h.current;if(!t)return;let a=!1,r=e=>{a||(a=!0,f(e),"ready"===e&&function(e){let t=e.querySelector(".legal-consent-container");if(!t||t.querySelector(".vida-consent-summary"))return;let a=document.createElement("p");a.className="vida-consent-summary",a.innerHTML='By submitting this form, you agree to VIDA’s <a href="/legal/terms">Terms of Service</a> and <a href="/legal/privacy">Privacy Policy</a>, and consent to how we use your information as described there.',t.insertBefore(a,t.firstChild)}(t),requestAnimationFrame(o))},s=new MutationObserver(()=>{t.childElementCount>0&&r("ready")});s.observe(t,{childList:!0}),t.childElementCount>0&&r("ready");let d=window.setTimeout(()=>r("error"),12e3),c=0,p="u"<typeof ResizeObserver?null:new ResizeObserver(()=>{c&&cancelAnimationFrame(c),c=requestAnimationFrame(()=>{c=0,o()})});function u(){m.current||!h.current||window.hbspt&&(m.current=!0,window.hbspt.forms.create({portalId:e,formId:i,region:n,target:`#hubspot-form-${i}`,css:l,cssClass:"vida-hubspot-form"}))}p?.observe(t);let g=()=>{s.disconnect(),p?.disconnect(),c&&cancelAnimationFrame(c),window.clearTimeout(d)};if(window.hbspt)return u(),g;let b=document.createElement("script");return b.src=`//js-${n}.hsforms.net/forms/embed/v2.js`,b.charset="utf-8",b.async=!0,b.onload=u,b.onerror=()=>r("error"),document.head.appendChild(b),()=>{g(),m.current=!1}},[e,i,n]),(0,t.jsxs)("div",{className:(0,r.cn)("w-full",d),children:[(0,t.jsx)("div",{ref:h,id:`hubspot-form-${i}`,className:"w-full"}),(0,t.jsxs)("div",{"aria-live":"polite",className:"w-full",children:["loading"===p?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"sr-only",children:"Loading the contact form…"}),(0,t.jsx)(s,{})]}):null,"error"===p?(0,t.jsxs)("div",{className:"flex w-full flex-col gap-3 border-2 border-vida-blue-500/20 bg-white p-6",children:[(0,t.jsx)("p",{className:"font-vida-body text-base font-semibold text-vida-blue-500",children:"The contact form couldn’t load."}),(0,t.jsxs)("p",{className:"font-vida-body text-base leading-relaxed text-vida-blue-500/80",children:["It may be blocked by a browser extension or network policy.",c?" You can email us directly instead:":""]}),c?(0,t.jsx)("a",{href:`mailto:${c}`,className:"font-vida-body text-base font-medium text-blue-500 underline decoration-solid underline-offset-[0.15em] outline-none transition-colors hover:text-blue-600 focus-visible:ring-2 focus-visible:ring-brand-primary focus-visible:ring-offset-2",children:c}):null]}):null]})]})}])},461539,e=>{"use strict";var t=e.i(717737),a=e.i(210506),i=e.i(545092),r=e.i(647163);let o="/images/contact/envelope.svg";var n=e.i(918465),s=e.i(539323),l=e.i(213479),d=e.i(518431),c=e.i(642584),h=e.i(840319);function m({address:e,className:a,...i}){return(0,t.jsx)("a",{href:`mailto:${e}`,className:(0,r.cn)("font-body text-body-lg font-normal text-blue-500 underline decoration-solid underline-offset-[0.15em] outline-none transition-colors hover:text-blue-600 focus-visible:ring-2 focus-visible:ring-brand-primary focus-visible:ring-offset-2",a),...i,children:e})}e.s(["ContactHeroFormSection",0,function({className:e,figmaSectionNode:p="5980:51253",heroTitle:f,phoneLabel:u,phoneNumber:g,emailLabel:b,emailAddress:x,supportEmailLabel:v,supportEmailAddress:w}){let y=(0,a.useRef)(null);return(0,t.jsx)(h.VidaHeroShell,{"data-figma-node":p,className:(0,r.cn)("overflow-x-clip",e),frame:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(128.119deg, var(--color-light-blue-150) 0.38%, var(--color-orange-100) 96.73%)"}}),(0,t.jsx)("div",{className:"absolute inset-0",style:{backgroundImage:"linear-gradient(180deg, rgba(217, 225, 227, 0.35) 0%, rgba(217, 225, 227, 0) 42%, rgba(238, 212, 200, 0.35) 100%)"}}),(0,t.jsx)(c.VidaInnerHeroField,{variant:"ensemble",className:"absolute inset-0 opacity-45",centerRef:y})]}),contentClassName:(0,r.cn)(n.siteContentShell,"px-[calc(var(--site-shell-gutter)+0.5rem)] md:px-[calc(var(--site-shell-gutter)+1.5rem)]"),children:(0,t.jsxs)("div",{className:(0,r.cn)("contact-hero-grid grid w-full flex-1 content-center grid-cols-1 gap-(--contact-hero-stack-gap-fluid)","tablet:gap-(--spacing-nav-inline-desktop)","tablet:grid-cols-[minmax(0,1fr)_auto] tablet:items-start"),children:[(0,t.jsx)("div",{"data-figma-node":"5980:51254",className:(0,r.cn)("contact-hero-info flex min-h-0 w-full flex-col","tablet:col-start-1","tablet:max-w-(--inner-hero-copy-w-fluid) tablet:justify-start"),children:(0,t.jsxs)("div",{"data-figma-node":"4910:19784",className:"flex w-full flex-col gap-6 tablet:gap-[clamp(1.25rem,4.5vh,5rem)]",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)(l.Reveal,{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{"aria-hidden":!0,
599className:"h-2 w-2 shrink-0 rounded-full bg-vida-pink-500"}),(0,t.jsx)("span",{className:"font-vida-body text-sm font-semibold uppercase tracking-[0.14em] text-vida-pink-500 md:text-base",children:"From Evidence to Impact"})]}),(0,t.jsx)(l.Reveal,{delay:.06,children:(0,t.jsx)("h1",{"data-figma-node":"4910:19785",className:"contact-hero-title inner-hero-title",children:f})}),(0,t.jsx)(l.Reveal,{delay:.14,className:"tablet:hidden",children:(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(d.VidaButton,{href:"#contact-form",variant:"cta",size:"sm",children:"Connect with an Expert"})})})]}),(0,t.jsx)(l.Reveal,{delay:.18,className:"w-full",viewportMargin:"0px",children:(0,t.jsxs)("div",{"data-figma-node":"4910:19786",className:"flex w-full max-w-182.5 flex-col gap-3 tablet:gap-[clamp(0.75rem,2.5vh,2.5rem)]",children:[(0,t.jsx)("h2",{className:"m-0 font-vida-body text-sm font-semibold uppercase tracking-[0.18em] text-vida-blue-500",children:"Talk to VIDA"}),(0,t.jsxs)("div",{className:"flex w-full flex-col gap-3",children:[(0,t.jsxs)("div",{"data-figma-node":"4910:19787",className:"flex w-full items-start gap-(--spacing-scale-300)",children:[(0,t.jsx)("div",{"data-figma-node":"4910:19788",className:"relative shrink-0 text-blue-500",children:(0,t.jsx)(i.default,{src:"/images/contact/phone.svg",alt:"",width:32,height:32,className:"contact-icon",unoptimized:!0})}),(0,t.jsxs)("div",{"data-figma-node":"4910:19790",className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,t.jsx)("p",{"data-figma-node":"4910:19791",className:"contact-meta-label overflow-hidden text-ellipsis",children:u}),(0,t.jsx)("p",{"data-figma-node":"4910:19792",className:"contact-value-text",children:g})]})]}),(0,t.jsxs)("div",{"data-figma-node":"4910:19793",className:"flex w-full items-start gap-(--spacing-scale-300)",children:[(0,t.jsx)("div",{className:"relative shrink-0 text-blue-500",children:(0,t.jsx)(i.default,{src:o,alt:"",width:32,height:32,className:"contact-icon",unoptimized:!0})}),(0,t.jsxs)("div",{"data-figma-node":"4910:19798",className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,t.jsx)("p",{"data-figma-node":"4910:19799",className:"contact-meta-label overflow-hidden text-ellipsis",children:b}),(0,t.jsx)(m,{address:x,"data-figma-node":"4910:19800"})]})]}),(0,t.jsxs)("div",{"data-figma-node":"4910:19794",className:"flex w-full items-start gap-(--spacing-scale-300)",children:[(0,t.jsx)("div",{className:"relative shrink-0 text-blue-500",children:(0,t.jsx)(i.default,{src:o,alt:"",width:32,height:32,className:"contact-icon",unoptimized:!0})}),(0,t.jsxs)("div",{"data-figma-node":"4910:19801",className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,t.jsx)("p",{"data-figma-node":"4910:19802",className:"contact-meta-label overflow-hidden text-ellipsis",children:v}),(0,t.jsx)(m,{address:w,"data-figma-node":"4910:19803"})]})]})]})]})})]})}),(0,t.jsx)("div",{id:"contact-form",ref:y,"data-figma-node":"5980:51308",className:(0,r.cn)("flex w-full flex-col rounded-[1.75rem] border border-vida-blue-500/10 bg-light-blue-50 shadow-[0_24px_48px_-32px_rgba(4,59,79,0.35)]","px-(--spacing-scale-350) py-(--spacing-scale-800)","scroll-mt-(--hero-nav-clearance-mobile)","md:scroll-mt-(--hero-nav-clearance-desktop)","tablet-sm:max-w-155 tablet-sm:px-(--spacing-scale-600)","tablet:col-start-2 tablet:shrink-0 tablet:justify-self-end","tablet:max-w-(--contact-form-max-fluid) tablet:px-[clamp(1.25rem,3vw,3.5rem)] tablet:py-[clamp(0.625rem,2vh,2.25rem)]"),children:(0,t.jsx)(s.HubSpotForm,{className:"w-full",fallbackEmail:x})})]})})}],461539)}]);

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.