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.